From f293ae8d9f2d858c2b97fa5502cb113e926302d4 Mon Sep 17 00:00:00 2001 From: Anthonette Adanyin <106275232+antznette1@users.noreply.github.com> Date: Wed, 17 Dec 2025 11:20:02 +0000 Subject: [PATCH 01/37] fix: Populate Postgres `registry.path` during `feast init` (#5785) --- .../postgres/feature_repo/feature_store.yaml | 2 +- .../tests/unit/local_feast_tests/test_init.py | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/sdk/python/feast/templates/postgres/feature_repo/feature_store.yaml b/sdk/python/feast/templates/postgres/feature_repo/feature_store.yaml index 0663ff0ad97..a2fc2f51b61 100644 --- a/sdk/python/feast/templates/postgres/feature_repo/feature_store.yaml +++ b/sdk/python/feast/templates/postgres/feature_repo/feature_store.yaml @@ -2,7 +2,7 @@ project: my_project provider: local registry: registry_type: sql - path: postgresql://postgres:mysecretpassword@127.0.0.1:55001/feast + path: postgresql://DB_USERNAME:DB_PASSWORD@DB_HOST:DB_PORT/DB_NAME cache_ttl_seconds: 60 sqlalchemy_config_kwargs: echo: false diff --git a/sdk/python/tests/unit/local_feast_tests/test_init.py b/sdk/python/tests/unit/local_feast_tests/test_init.py index 4543a239796..1f3c0993845 100644 --- a/sdk/python/tests/unit/local_feast_tests/test_init.py +++ b/sdk/python/tests/unit/local_feast_tests/test_init.py @@ -67,3 +67,17 @@ def test_repo_init_with_underscore_in_project_name() -> None: ) result = runner.run(["apply"], cwd=repo_dir) assert result.returncode != 0 + + +def test_postgres_template_registry_path_is_parameterized() -> None: + template_fs_yaml = ( + Path(__file__).resolve().parents[3] + / "feast" + / "templates" + / "postgres" + / "feature_repo" + / "feature_store.yaml" + ) + contents = template_fs_yaml.read_text(encoding="utf-8") + expected = "path: postgresql://DB_USERNAME:DB_PASSWORD@DB_HOST:DB_PORT/DB_NAME" + assert expected in contents From fc1599b7d60b38842753f6e9297634d01750f125 Mon Sep 17 00:00:00 2001 From: Willem Pienaar <6728866+woop@users.noreply.github.com> Date: Wed, 17 Dec 2025 19:52:49 -0800 Subject: [PATCH 02/37] Remove Cast.ai logo from index page Removed Cast.ai logo from the homepage. --- infra/website/src/pages/index.astro | 3 --- 1 file changed, 3 deletions(-) diff --git a/infra/website/src/pages/index.astro b/infra/website/src/pages/index.astro index 9c0b8ba1d9e..fd651d86a02 100644 --- a/infra/website/src/pages/index.astro +++ b/infra/website/src/pages/index.astro @@ -114,9 +114,6 @@ features = store.retrieve_online_documents(
-
- -
From f2486a9b3657da1a92dff43ca337fc3f6134461e Mon Sep 17 00:00:00 2001 From: Srihari Date: Mon, 15 Dec 2025 11:05:46 +0530 Subject: [PATCH 03/37] Add Workbecnh Ray Compute engine and offline store test Signed-off-by: Srihari --- .../feast_wb_connection_integration_test.go | 30 +- .../test/e2e_rhoai/feast_wb_milvus_test.go | 31 +- .../feast_wb_ray_offline_store_test.go | 77 +++ .../resources/feast-wb-ray-test.ipynb | 516 ++++++++++++++++++ .../resources/kueue_resources_setup.yaml | 31 ++ .../test/utils/notebook_util.go | 30 + 6 files changed, 659 insertions(+), 56 deletions(-) create mode 100644 infra/feast-operator/test/e2e_rhoai/feast_wb_ray_offline_store_test.go create mode 100644 infra/feast-operator/test/e2e_rhoai/resources/feast-wb-ray-test.ipynb create mode 100644 infra/feast-operator/test/e2e_rhoai/resources/kueue_resources_setup.yaml diff --git a/infra/feast-operator/test/e2e_rhoai/feast_wb_connection_integration_test.go b/infra/feast-operator/test/e2e_rhoai/feast_wb_connection_integration_test.go index a284dc9e839..5b42bfe1276 100644 --- a/infra/feast-operator/test/e2e_rhoai/feast_wb_connection_integration_test.go +++ b/infra/feast-operator/test/e2e_rhoai/feast_wb_connection_integration_test.go @@ -43,16 +43,6 @@ var _ = Describe("Feast Workbench Integration Connection Testing", Ordered, func feastCRName = "credit-scoring" ) - // Create and monitor notebook - createAndMonitorNotebook := func() { - nbParams := utils.GetNotebookParams(namespace, configMapName, notebookPVC, notebookName, testDir) - By("Creating Jupyter Notebook") - Expect(utils.CreateNotebook(nbParams)).To(Succeed(), "Failed to create notebook") - - By("Monitoring notebook logs") - Expect(utils.MonitorNotebookPod(namespace, "jupyter-nb-", notebookName)).To(Succeed(), "Notebook execution failed") - } - // Parameterized test function that handles both auth and non-auth scenarios runFeastWorkbenchIntegration := func(authEnabled bool) { // Apply permissions only if auth is enabled @@ -61,24 +51,8 @@ var _ = Describe("Feast Workbench Integration Connection Testing", Ordered, func utils.ApplyFeastPermissions(permissionFile, "/feast-data/credit_scoring_local/feature_repo/permissions.py", namespace, feastDeploymentName) } - By(fmt.Sprintf("Setting namespace context to : %s", namespace)) - Expect(utils.SetNamespaceContext(namespace, testDir)).To(Succeed()) - fmt.Printf("Successfully set namespace context to: %s\n", namespace) - - By(fmt.Sprintf("Creating Config map: %s", configMapName)) - Expect(utils.CreateNotebookConfigMap(namespace, configMapName, notebookFile, "test/e2e_rhoai/resources/feature_repo", testDir)).To(Succeed()) - fmt.Printf("ConfigMap %s created successfully\n", configMapName) - - By(fmt.Sprintf("Creating Persistent volume claim: %s", notebookPVC)) - Expect(utils.CreateNotebookPVC(pvcFile, testDir)).To(Succeed()) - fmt.Printf("Persistent Volume Claim %s created successfully\n", notebookPVC) - - By(fmt.Sprintf("Creating rolebinding %s for the user", rolebindingName)) - Expect(utils.CreateNotebookRoleBinding(namespace, rolebindingName, utils.GetOCUser(testDir), testDir)).To(Succeed()) - fmt.Printf("Created rolebinding %s successfully\n", rolebindingName) - - // Create and monitor notebook for execution status - createAndMonitorNotebook() + // Use the shared RunNotebookTest function for common setup and execution + utils.RunNotebookTest(namespace, configMapName, notebookFile, "test/e2e_rhoai/resources/feature_repo", pvcFile, rolebindingName, notebookPVC, notebookName, testDir) } BeforeAll(func() { diff --git a/infra/feast-operator/test/e2e_rhoai/feast_wb_milvus_test.go b/infra/feast-operator/test/e2e_rhoai/feast_wb_milvus_test.go index 91e5e4c2e41..4849670399d 100644 --- a/infra/feast-operator/test/e2e_rhoai/feast_wb_milvus_test.go +++ b/infra/feast-operator/test/e2e_rhoai/feast_wb_milvus_test.go @@ -52,34 +52,9 @@ var _ = Describe("Feast Jupyter Notebook Testing", Ordered, func() { fmt.Printf("Namespace %s deleted successfully\n", namespace) }) - runNotebookTest := func() { - // Execute common setup steps - By(fmt.Sprintf("Setting namespace context to : %s", namespace)) - Expect(utils.SetNamespaceContext(namespace, testDir)).To(Succeed()) - fmt.Printf("Successfully set namespace context to: %s\n", namespace) - - By(fmt.Sprintf("Creating Config map: %s", configMapName)) - Expect(utils.CreateNotebookConfigMap(namespace, configMapName, notebookFile, "test/e2e_rhoai/resources/feature_repo", testDir)).To(Succeed()) - fmt.Printf("ConfigMap %s created successfully\n", configMapName) - - By(fmt.Sprintf("Creating Persistent volume claim: %s", notebookPVC)) - Expect(utils.CreateNotebookPVC(pvcFile, testDir)).To(Succeed()) - fmt.Printf("Persistent Volume Claim %s created successfully\n", notebookPVC) - - By(fmt.Sprintf("Creating rolebinding %s for the user", rolebindingName)) - Expect(utils.CreateNotebookRoleBinding(namespace, rolebindingName, utils.GetOCUser(testDir), testDir)).To(Succeed()) - fmt.Printf("Created rolebinding %s successfully\n", rolebindingName) - - // Build notebook parameters and create notebook - nbParams := utils.GetNotebookParams(namespace, configMapName, notebookPVC, notebookName, testDir) - By("Creating Jupyter Notebook") - Expect(utils.CreateNotebook(nbParams)).To(Succeed(), "Failed to create notebook") - - By("Monitoring notebook logs") - Expect(utils.MonitorNotebookPod(namespace, "jupyter-nb-", notebookName)).To(Succeed(), "Notebook execution failed") - } - Context("Feast Jupyter Notebook Test", func() { - It("Should create and run a "+feastMilvusTest+" successfully", runNotebookTest) + It("Should create and run a "+feastMilvusTest+" successfully", func() { + utils.RunNotebookTest(namespace, configMapName, notebookFile, "test/e2e_rhoai/resources/feature_repo", pvcFile, rolebindingName, notebookPVC, notebookName, testDir) + }) }) }) diff --git a/infra/feast-operator/test/e2e_rhoai/feast_wb_ray_offline_store_test.go b/infra/feast-operator/test/e2e_rhoai/feast_wb_ray_offline_store_test.go new file mode 100644 index 00000000000..a7e482063f0 --- /dev/null +++ b/infra/feast-operator/test/e2e_rhoai/feast_wb_ray_offline_store_test.go @@ -0,0 +1,77 @@ +/* +Copyright 2025 Feast Community. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Package e2erhoai provides end-to-end (E2E) test coverage for Feast integration with +// Red Hat OpenShift AI (RHOAI) environments. This specific test validates the functionality +// of executing a Feast Jupyter notebook with Ray offline store within a fully configured OpenShift namespace +package e2erhoai + +import ( + "fmt" + "os/exec" + + utils "github.com/feast-dev/feast/infra/feast-operator/test/utils" + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" +) + +var _ = Describe("Feast Jupyter Notebook Testing with Ray Offline Store", Ordered, func() { + const ( + namespace = "test-ns-feast-wb-ray" + configMapName = "feast-wb-ray-cm" + rolebindingName = "rb-feast-ray-test" + notebookFile = "test/e2e_rhoai/resources/feast-wb-ray-test.ipynb" + pvcFile = "test/e2e_rhoai/resources/pvc.yaml" + kueueResourcesFile = "test/e2e_rhoai/resources/kueue_resources_setup.yaml" + notebookPVC = "jupyterhub-nb-kube-3aadmin-pvc" + testDir = "/test/e2e_rhoai" + notebookName = "feast-wb-ray-test.ipynb" + feastRayTest = "TestFeastRayOfflineStoreNotebook" + ) + + BeforeAll(func() { + By(fmt.Sprintf("Creating test namespace: %s", namespace)) + Expect(utils.CreateNamespace(namespace, testDir)).To(Succeed()) + fmt.Printf("Namespace %s created successfully\n", namespace) + + By("Applying Kueue resources setup") + // Apply with namespace flag - cluster-scoped resources (ResourceFlavor, ClusterQueue) will be applied at cluster level, + // and namespace-scoped resources (LocalQueue) will be applied in the specified namespace + cmd := exec.Command("kubectl", "apply", "-f", kueueResourcesFile, "-n", namespace) + output, err := utils.Run(cmd, testDir) + Expect(err).ToNot(HaveOccurred(), fmt.Sprintf("Failed to apply Kueue resources: %v\nOutput: %s", err, output)) + fmt.Printf("Kueue resources applied successfully\n") + }) + + AfterAll(func() { + By("Deleting Kueue resources") + // Delete with namespace flag - will delete namespace-scoped resources from the namespace + // and cluster-scoped resources from the cluster + cmd := exec.Command("kubectl", "delete", "-f", kueueResourcesFile, "-n", namespace, "--ignore-not-found=true") + _, _ = utils.Run(cmd, testDir) + fmt.Printf("Kueue resources cleanup completed\n") + + By(fmt.Sprintf("Deleting test namespace: %s", namespace)) + Expect(utils.DeleteNamespace(namespace, testDir)).To(Succeed()) + fmt.Printf("Namespace %s deleted successfully\n", namespace) + }) + + Context("Feast Jupyter Notebook Test with Ray Offline store", func() { + It("Should create and run a "+feastRayTest+" successfully", func() { + utils.RunNotebookTest(namespace, configMapName, notebookFile, "test/e2e_rhoai/resources/feature_repo", pvcFile, rolebindingName, notebookPVC, notebookName, testDir) + }) + }) +}) diff --git a/infra/feast-operator/test/e2e_rhoai/resources/feast-wb-ray-test.ipynb b/infra/feast-operator/test/e2e_rhoai/resources/feast-wb-ray-test.ipynb new file mode 100644 index 00000000000..3b91bcccd8e --- /dev/null +++ b/infra/feast-operator/test/e2e_rhoai/resources/feast-wb-ray-test.ipynb @@ -0,0 +1,516 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# --- Configuration Variables ---\n", + "import os \n", + "\n", + "# Namespace where your resources exist\n", + "namespace = os.environ.get(\"NAMESPACE\")\n", + "\n", + "fsconfigmap = \"cm-fs-data\"\n", + "\n", + "# Fetch token and server directly from oc CLI\n", + "import subprocess\n", + "\n", + "def oc(cmd):\n", + " return subprocess.check_output(cmd, shell=True).decode(\"utf-8\").strip()\n", + "\n", + "token = oc(\"oc whoami -t\")\n", + "server = oc(\"oc whoami --show-server\")\n", + "\n", + "os.environ[\"CLUSTER_TOKEN\"] = token\n", + "os.environ[\"CLUSTER_SERVER\"] = server\n", + "\n", + "\n", + "# RayCluster name\n", + "raycluster = \"feastraytest\"\n", + "os.environ[\"RAY_CLUSTER\"] = raycluster\n", + "\n", + "# Show configured values\n", + "print(\"Configuration Variables:\")\n", + "print(f\" Namespace: {namespace}\")\n", + "print(f\" Server: {server}\")\n", + "print(f\" Token: {'*' * 20}\") # hide actual token\n", + "print(f\" Ray Cluster: {raycluster}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "! git clone https://github.com/Srihari1192/feast-rag-ray.git" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%cd feast-rag-ray/feature_repo" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!oc login --token=$token --server=$server" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!oc create configmap $fsconfigmap --from-file=data/customer_daily_profile.parquet --from-file=data/driver_stats.parquet -n $namespace" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Import pieces from codeflare-sdk\n", + "from codeflare_sdk import Cluster, ClusterConfiguration, TokenAuthentication\n", + "\n", + "# Create authentication with token and server from oc\n", + "auth = TokenAuthentication(\n", + " token=token,\n", + " server=server,\n", + " skip_tls=True\n", + ")\n", + "auth.login()\n", + "print(\"✓ Authentication successful\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from kubernetes.client import (\n", + " V1Volume,\n", + " V1ConfigMapVolumeSource,\n", + " V1VolumeMount,\n", + ") \n", + "\n", + "data_volume = V1Volume(\n", + " name=\"data\",\n", + " config_map=V1ConfigMapVolumeSource(name=fsconfigmap)\n", + ")\n", + "\n", + "data_mount = V1VolumeMount(\n", + " name=\"data\",\n", + " mount_path=\"/opt/app-root/src/feast-rag-ray/feature_repo/data\",\n", + " read_only=True\n", + ")\n", + "\n", + "cluster = Cluster(ClusterConfiguration(\n", + " name=raycluster,\n", + " head_cpu_requests=1,\n", + " head_cpu_limits=1,\n", + " head_memory_requests=4,\n", + " head_memory_limits=4,\n", + " head_extended_resource_requests={'nvidia.com/gpu':0}, # For GPU enabled workloads set the head_extended_resource_requests and worker_extended_resource_requests\n", + " worker_extended_resource_requests={'nvidia.com/gpu':0},\n", + " num_workers=2,\n", + " worker_cpu_requests='250m',\n", + " worker_cpu_limits=1,\n", + " worker_memory_requests=4,\n", + " worker_memory_limits=4,\n", + " # image=\"\", # Optional Field \n", + " write_to_file=False, # When enabled Ray Cluster yaml files are written to /HOME/.codeflare/resources\n", + " local_queue=\"fs-user-queue\", # Specify the local queue manually\n", + " # ⭐ Best method: Use secretKeyRef to expose AWS credentials safely\n", + " volumes=[data_volume],\n", + " volume_mounts=[data_mount],\n", + " \n", + "))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "cluster.apply()\n", + "# cluster.wait_ready()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import time\n", + "\n", + "MAX_WAIT = 180 # 3 minutes\n", + "INTERVAL = 5 # check every 5 seconds\n", + "elapsed = 0\n", + "\n", + "print(\"⏳ Waiting up to 3 minutes for RayCluster to be READY...\\n\")\n", + "\n", + "while elapsed < MAX_WAIT:\n", + " details = cluster.details()\n", + " status = details.status.value\n", + "\n", + " print(details)\n", + " print(\"Cluster Status:\", status)\n", + "\n", + " if status == \"ready\":\n", + " print(\"✅ RayCluster is READY!\")\n", + " break\n", + " \n", + " print(f\"⏳ RayCluster is NOT ready yet: {status} ... checking again in {INTERVAL}s\\n\")\n", + " time.sleep(INTERVAL)\n", + " elapsed += INTERVAL\n", + "\n", + "else:\n", + " print(\"❌ Timeout: RayCluster did NOT become READY within 3 minutes.\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "! feast apply" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "from pathlib import Path\n", + "from feast import FeatureStore\n", + "\n", + "# Add feature repo to PYTHONPATH\n", + "repo_path = Path(\".\")\n", + "sys.path.append(str(repo_path))\n", + "\n", + "# Initialize Feature Store\n", + "print(\"Initializing Feast with Ray configuration...\")\n", + "store = FeatureStore(repo_path=\".\")\n", + "\n", + "# Assertions: Verify store is initialized correctly\n", + "assert store is not None, \"FeatureStore should be initialized\"\n", + "assert store.config is not None, \"Store config should be available\"\n", + "assert store.config.offline_store is not None, \"Offline store should be configured\"\n", + "\n", + "print(f\"✓ Offline store: {store.config.offline_store.type}\")\n", + "if hasattr(store.config, \"batch_engine\") and store.config.batch_engine:\n", + " print(f\"✓ Compute engine: {store.config.batch_engine.type}\")\n", + " # Assertion: Verify batch engine is configured if present\n", + " assert store.config.batch_engine.type is not None, \"Batch engine type should be set\"\n", + "else:\n", + " print(\"⚠ No compute engine configured\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Create Entity DataFrame\n", + "\n", + "Create an entity DataFrame for historical feature retrieval with point-in-time timestamps.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from datetime import datetime, timedelta\n", + "import pandas as pd\n", + "\n", + "# --- Create time window ---\n", + "end_date = datetime.now().replace(microsecond=0, second=0, minute=0)\n", + "start_date = end_date - timedelta(days=2)\n", + "\n", + "\n", + "entity_df = pd.DataFrame(\n", + " {\n", + " \"driver_id\": [1001, 1002, 1003],\n", + " \"customer_id\": [2001, 2002, 2003],\n", + " \"event_timestamp\": [\n", + " pd.Timestamp(end_date - timedelta(hours=24), tz=\"UTC\"),\n", + " pd.Timestamp(end_date - timedelta(hours=12), tz=\"UTC\"),\n", + " pd.Timestamp(end_date - timedelta(hours=6), tz=\"UTC\"),\n", + " ],\n", + " }\n", + ")\n", + "\n", + "# Assertions: Verify entity DataFrame is created correctly\n", + "assert len(entity_df) == 3, f\"Expected 3 rows, got {len(entity_df)}\"\n", + "assert \"driver_id\" in entity_df.columns, \"driver_id column should be present\"\n", + "assert \"customer_id\" in entity_df.columns, \"customer_id column should be present\"\n", + "assert \"event_timestamp\" in entity_df.columns, \"event_timestamp column should be present\"\n", + "assert all(entity_df[\"driver_id\"].isin([1001, 1002, 1003])), \"driver_id values should match expected\"\n", + "assert all(entity_df[\"customer_id\"].isin([2001, 2002, 2003])), \"customer_id values should match expected\"\n", + "assert entity_df[\"event_timestamp\"].notna().all(), \"All event_timestamp values should be non-null\"\n", + "\n", + "print(f\"✓ Created entity DataFrame with {len(entity_df)} rows\")\n", + "print(f\"✓ Time range: {start_date} to {end_date}\")\n", + "print(\"\\nEntity DataFrame:\")\n", + "print(entity_df)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Retrieve Historical Features\n", + "\n", + "Retrieve historical features using Ray compute engine for distributed point-in-time joins.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Cell 4: Retrieve Historical Features\n", + "print(\"Retrieving historical features with Ray compute engine...\")\n", + "print(\"(This demonstrates distributed point-in-time joins)\")\n", + "\n", + "try:\n", + " # Get historical features - this uses Ray compute engine for distributed processing\n", + " historical_features = store.get_historical_features(\n", + " entity_df=entity_df,\n", + " features=[\n", + " \"driver_hourly_stats:conv_rate\",\n", + " \"driver_hourly_stats:acc_rate\",\n", + " \"driver_hourly_stats:avg_daily_trips\",\n", + " \"customer_daily_profile:current_balance\",\n", + " \"customer_daily_profile:avg_passenger_count\",\n", + " \"customer_daily_profile:lifetime_trip_count\",\n", + " ],\n", + " )\n", + "\n", + " # Convert to DataFrame - Ray processes this efficiently\n", + " historical_df = historical_features.to_df()\n", + " \n", + " # Assertions: Verify historical features are retrieved correctly\n", + " assert historical_df is not None, \"Historical features DataFrame should not be None\"\n", + " assert len(historical_df) > 0, \"Should retrieve at least one row of historical features\"\n", + " assert \"driver_id\" in historical_df.columns, \"driver_id should be in the result\"\n", + " assert \"customer_id\" in historical_df.columns, \"customer_id should be in the result\"\n", + " \n", + " # Verify expected feature columns are present (some may be None if data doesn't exist)\n", + " expected_features = [\n", + " \"conv_rate\", \"acc_rate\", \"avg_daily_trips\",\n", + " \"current_balance\", \"avg_passenger_count\", \"lifetime_trip_count\"\n", + " ]\n", + " feature_columns = [col for col in historical_df.columns if col in expected_features]\n", + " assert len(feature_columns) > 0, f\"Should have at least one feature column, got: {historical_df.columns.tolist()}\"\n", + " \n", + " print(f\"✓ Retrieved {len(historical_df)} historical feature rows\")\n", + " print(f\"✓ Features: {list(historical_df.columns)}\")\n", + " \n", + " # Display the results\n", + " print(\"\\nHistorical Features DataFrame:\")\n", + " display(historical_df.head(10))\n", + "\n", + "except Exception as e:\n", + " print(f\"⚠ Historical features retrieval failed: {e}\")\n", + " print(\"This might be due to missing Ray dependencies or data\")\n", + " raise\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4. Test On-Demand Feature Transformations\n", + "\n", + "Demonstrate on-demand feature transformations that are computed at request time.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Cell 5: Test On-Demand Features\n", + "print(\"Testing on-demand feature transformations...\")\n", + "\n", + "try:\n", + " # Get features including on-demand transformations\n", + " features_with_odfv = store.get_historical_features(\n", + " entity_df=entity_df.head(1),\n", + " features=[\n", + " \"driver_hourly_stats:conv_rate\",\n", + " \"driver_hourly_stats:acc_rate\",\n", + " \"driver_hourly_stats:avg_daily_trips\",\n", + " \"driver_activity_v2:conv_rate_plus_acc_rate\",\n", + " \"driver_activity_v2:trips_per_day_normalized\",\n", + " ],\n", + " )\n", + "\n", + " odfv_df = features_with_odfv.to_df()\n", + " \n", + " # Assertions: Verify on-demand features are computed correctly\n", + " assert odfv_df is not None, \"On-demand features DataFrame should not be None\"\n", + " assert len(odfv_df) > 0, \"Should retrieve at least one row with on-demand features\"\n", + " assert \"driver_id\" in odfv_df.columns, \"driver_id should be in the result\"\n", + " \n", + " # Verify on-demand feature columns if they exist\n", + " if \"conv_rate_plus_acc_rate\" in odfv_df.columns:\n", + " # Assertion: Verify the on-demand feature is computed\n", + " assert odfv_df[\"conv_rate_plus_acc_rate\"].notna().any(), \"conv_rate_plus_acc_rate should have non-null values\"\n", + " print(\"✓ On-demand feature 'conv_rate_plus_acc_rate' is computed\")\n", + " \n", + " if \"trips_per_day_normalized\" in odfv_df.columns:\n", + " assert odfv_df[\"trips_per_day_normalized\"].notna().any(), \"trips_per_day_normalized should have non-null values\"\n", + " print(\"✓ On-demand feature 'trips_per_day_normalized' is computed\")\n", + " \n", + " print(f\"✓ Retrieved {len(odfv_df)} rows with on-demand transformations\")\n", + " \n", + " # Display results\n", + " print(\"\\nFeatures with On-Demand Transformations:\")\n", + " display(odfv_df)\n", + " \n", + " # Show specific transformed features\n", + " if \"conv_rate_plus_acc_rate\" in odfv_df.columns:\n", + " print(\"\\nSample with on-demand features:\")\n", + " display(\n", + " odfv_df[[\"driver_id\", \"conv_rate\", \"acc_rate\", \"conv_rate_plus_acc_rate\"]]\n", + " )\n", + "\n", + "except Exception as e:\n", + " print(f\"⚠ On-demand features failed: {e}\")\n", + " raise\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 5. Materialize Features to Online Store\n", + "\n", + "Materialize features to the online store using Ray compute engine for efficient batch processing.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from datetime import timezone\n", + "print(\"Materializing features to online store...\")\n", + "store.materialize(\n", + "\tstart_date=datetime(2025, 1, 1, tzinfo=timezone.utc),\n", + "\tend_date=end_date,\n", + ")\n", + "\n", + "# Minimal output assertion: materialization succeeded if no exception\n", + "assert True, \"Materialization completed successfully\"\n", + "print(\"✓ Initial materialization successful\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 6. Test Online Feature Serving\n", + "\n", + "Retrieve features from the online store for low-latency serving.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Cell 7: Test Online Feature Serving\n", + "print(\"Testing online feature serving...\")\n", + "\n", + "try:\n", + " entity_rows = [\n", + " {\"driver_id\": 1001, \"customer_id\": 2001},\n", + " {\"driver_id\": 1002, \"customer_id\": 2002},\n", + " ]\n", + " \n", + " # Assertion: Verify entity rows are valid\n", + " assert len(entity_rows) == 2, \"Should have 2 entity rows\"\n", + " assert all(\"driver_id\" in row for row in entity_rows), \"All entity rows should have driver_id\"\n", + " assert all(\"customer_id\" in row for row in entity_rows), \"All entity rows should have customer_id\"\n", + " \n", + " online_features = store.get_online_features(\n", + " features=[\n", + " \"driver_hourly_stats:conv_rate\",\n", + " \"driver_hourly_stats:acc_rate\",\n", + " \"customer_daily_profile:current_balance\",\n", + " ],\n", + " entity_rows=entity_rows,\n", + " )\n", + "\n", + " online_df = online_features.to_df()\n", + " \n", + " # Assertions: Verify online features are retrieved correctly\n", + " assert online_df is not None, \"Online features DataFrame should not be None\"\n", + " assert len(online_df) == len(entity_rows), f\"Should retrieve {len(entity_rows)} rows, got {len(online_df)}\"\n", + " assert \"driver_id\" in online_df.columns, \"driver_id should be in the result\"\n", + " assert \"customer_id\" in online_df.columns, \"customer_id should be in the result\"\n", + " \n", + " # Verify expected feature columns are present\n", + " expected_features = [\"conv_rate\", \"acc_rate\", \"current_balance\"]\n", + " feature_columns = [col for col in online_df.columns if col in expected_features]\n", + " assert len(feature_columns) > 0, f\"Should have at least one feature column, got: {online_df.columns.tolist()}\"\n", + " \n", + " # Verify entity IDs match\n", + " assert all(online_df[\"driver_id\"].isin([1001, 1002])), \"driver_id values should match entity rows\"\n", + " assert all(online_df[\"customer_id\"].isin([2001, 2002])), \"customer_id values should match entity rows\"\n", + " \n", + " print(f\"✓ Retrieved {len(online_df)} online feature rows\")\n", + " print(f\"✓ Features retrieved: {feature_columns}\")\n", + " \n", + " print(\"\\nOnline Features DataFrame:\")\n", + " display(online_df)\n", + "\n", + "except Exception as e:\n", + " print(f\"⚠ Online serving failed: {e}\")\n", + " raise\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "cluster.down()" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/infra/feast-operator/test/e2e_rhoai/resources/kueue_resources_setup.yaml b/infra/feast-operator/test/e2e_rhoai/resources/kueue_resources_setup.yaml new file mode 100644 index 00000000000..ebcac54f4a0 --- /dev/null +++ b/infra/feast-operator/test/e2e_rhoai/resources/kueue_resources_setup.yaml @@ -0,0 +1,31 @@ +apiVersion: kueue.x-k8s.io/v1beta1 +kind: ResourceFlavor +metadata: + name: "fs-resource-flavor" +--- +apiVersion: kueue.x-k8s.io/v1beta1 +kind: ClusterQueue +metadata: + name: "fs-cluster-queue" +spec: + namespaceSelector: {} # match all. + resourceGroups: + - coveredResources: ["cpu", "memory","nvidia.com/gpu"] + flavors: + - name: "fs-resource-flavor" + resources: + - name: "cpu" + nominalQuota: 9 + - name: "memory" + nominalQuota: 36Gi + - name: "nvidia.com/gpu" + nominalQuota: 0 +--- +apiVersion: kueue.x-k8s.io/v1beta1 +kind: LocalQueue +metadata: + name: "fs-user-queue" + annotations: + "kueue.x-k8s.io/default-queue": "true" +spec: + clusterQueue: "fs-cluster-queue" diff --git a/infra/feast-operator/test/utils/notebook_util.go b/infra/feast-operator/test/utils/notebook_util.go index a4a3e14a2ce..cad4a734a01 100644 --- a/infra/feast-operator/test/utils/notebook_util.go +++ b/infra/feast-operator/test/utils/notebook_util.go @@ -9,6 +9,7 @@ import ( "text/template" "time" + . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" ) @@ -340,3 +341,32 @@ func SetupNotebookEnvironment(namespace, configMapName, notebookFile, featureRep return nil } + +// RunNotebookTest performs all the setup steps, creates a notebook, and monitors its execution. +// This function encapsulates the common notebook test workflow used across multiple test files. +func RunNotebookTest(namespace, configMapName, notebookFile, featureRepoPath, pvcFile, rolebindingName, notebookPVC, notebookName, testDir string) { + // Execute common setup steps + By(fmt.Sprintf("Setting namespace context to : %s", namespace)) + Expect(SetNamespaceContext(namespace, testDir)).To(Succeed()) + fmt.Printf("Successfully set namespace context to: %s\n", namespace) + + By(fmt.Sprintf("Creating Config map: %s", configMapName)) + Expect(CreateNotebookConfigMap(namespace, configMapName, notebookFile, featureRepoPath, testDir)).To(Succeed()) + fmt.Printf("ConfigMap %s created successfully\n", configMapName) + + By(fmt.Sprintf("Creating Persistent volume claim: %s", notebookPVC)) + Expect(CreateNotebookPVC(pvcFile, testDir)).To(Succeed()) + fmt.Printf("Persistent Volume Claim %s created successfully\n", notebookPVC) + + By(fmt.Sprintf("Creating rolebinding %s for the user", rolebindingName)) + Expect(CreateNotebookRoleBinding(namespace, rolebindingName, GetOCUser(testDir), testDir)).To(Succeed()) + fmt.Printf("Created rolebinding %s successfully\n", rolebindingName) + + // Build notebook parameters and create notebook + nbParams := GetNotebookParams(namespace, configMapName, notebookPVC, notebookName, testDir) + By("Creating Jupyter Notebook") + Expect(CreateNotebook(nbParams)).To(Succeed(), "Failed to create notebook") + + By("Monitoring notebook logs") + Expect(MonitorNotebookPod(namespace, "jupyter-nb-", notebookName)).To(Succeed(), "Notebook execution failed") +} From edefc3f0afdb46d73070e230eef19c0941f0b581 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Mon, 22 Dec 2025 20:04:28 -0500 Subject: [PATCH 04/37] feat: Enable static artifacts for feature server that can be used in Feature Transformations (#5787) * feat: Enable static artifacts for feature server that can be used in Feature Transformations Signed-off-by: Francisco Javier Arceo * feat: Enable static artifacts for feature server that can be used in Feature Transformations Signed-off-by: Francisco Javier Arceo * feat: Enable static artifacts for feature server that can be used in Feature Transformations Signed-off-by: Francisco Javier Arceo * updated docs Signed-off-by: Francisco Javier Arceo * adding docs Signed-off-by: Francisco Javier Arceo * update Signed-off-by: Francisco Javier Arceo --------- Signed-off-by: Francisco Javier Arceo --- docs/SUMMARY.md | 1 + docs/reference/alpha-static-artifacts.md | 314 ++++++++++++++++++ .../feature-servers/python-feature-server.md | 42 +++ sdk/python/feast/feature_server.py | 49 +++ .../feast/templates/pytorch_nlp/README.md | 127 ++++++- .../pytorch_nlp/feature_repo/example_repo.py | 115 +++---- .../feature_repo/static_artifacts.py | 139 ++++++++ sdk/python/tests/unit/test_feature_server.py | 201 +++++++++++ 8 files changed, 921 insertions(+), 67 deletions(-) create mode 100644 docs/reference/alpha-static-artifacts.md create mode 100644 sdk/python/feast/templates/pytorch_nlp/feature_repo/static_artifacts.py diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index 50fea300675..7d85aba1ad0 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -158,6 +158,7 @@ * [Registry server](reference/feature-servers/registry-server.md) * [\[Beta\] Web UI](reference/alpha-web-ui.md) * [\[Beta\] On demand feature view](reference/beta-on-demand-feature-view.md) +* [\[Alpha\] Static Artifacts Loading](reference/alpha-static-artifacts.md) * [\[Alpha\] Vector Database](reference/alpha-vector-database.md) * [\[Alpha\] Data quality monitoring](reference/dqm.md) * [\[Alpha\] Streaming feature computation with Denormalized](reference/denormalized.md) diff --git a/docs/reference/alpha-static-artifacts.md b/docs/reference/alpha-static-artifacts.md new file mode 100644 index 00000000000..627898f847f --- /dev/null +++ b/docs/reference/alpha-static-artifacts.md @@ -0,0 +1,314 @@ +# [Alpha] Static Artifacts Loading + +**Warning**: This is an experimental feature. To our knowledge, this is stable, but there are still rough edges in the experience. Contributions are welcome! + +## Overview + +Static Artifacts Loading allows you to load models, lookup tables, and other static resources once during feature server startup instead of loading them on each request. These artifacts are cached in memory and accessible to on-demand feature views for real-time inference. + +This feature optimizes the performance of on-demand feature views that require external resources by eliminating the overhead of repeatedly loading the same artifacts during request processing. + +### Why Use Static Artifacts Loading? + +Static artifacts loading enables data scientists and ML engineers to: + +1. **Improve performance**: Eliminate model loading overhead from each feature request +2. **Enable complex transformations**: Use pre-trained models in on-demand feature views without performance penalties +3. **Share resources**: Multiple feature views can access the same loaded artifacts +4. **Simplify deployment**: Package models and lookup tables with your feature repository + +Common use cases include: +- Sentiment analysis using pre-trained transformers models +- Text classification with small neural networks +- Lookup-based transformations using static dictionaries +- Embedding generation with pre-computed vectors + +## How It Works + +1. **Feature Repository Setup**: Create a `static_artifacts.py` file in your feature repository root +2. **Server Startup**: When `feast serve` starts, it automatically looks for and loads the artifacts +3. **Memory Storage**: Artifacts are stored in the FastAPI application state and accessible via global references +4. **Request Processing**: On-demand feature views access pre-loaded artifacts for fast transformations + +## Example 1: Basic Model Loading + +Create a `static_artifacts.py` file in your feature repository: + +```python +# static_artifacts.py +from fastapi import FastAPI +from transformers import pipeline + +def load_sentiment_model(): + """Load sentiment analysis model.""" + return pipeline( + "sentiment-analysis", + model="cardiffnlp/twitter-roberta-base-sentiment-latest", + device="cpu" + ) + +def load_artifacts(app: FastAPI): + """Load static artifacts into app.state.""" + app.state.sentiment_model = load_sentiment_model() + + # Update global references for access from feature views + import example_repo + example_repo._sentiment_model = app.state.sentiment_model +``` + +Use the pre-loaded model in your on-demand feature view: + +```python +# example_repo.py +import pandas as pd +from feast.on_demand_feature_view import on_demand_feature_view +from feast import Field +from feast.types import String, Float32 + +# Global reference for static artifacts +_sentiment_model = None + +@on_demand_feature_view( + sources=[text_input_request], + schema=[ + Field(name="predicted_sentiment", dtype=String), + Field(name="sentiment_confidence", dtype=Float32), + ], +) +def sentiment_prediction(inputs: pd.DataFrame) -> pd.DataFrame: + """Sentiment prediction using pre-loaded model.""" + global _sentiment_model + + results = [] + for text in inputs["input_text"]: + predictions = _sentiment_model(text) + best_pred = max(predictions, key=lambda x: x["score"]) + + results.append({ + "predicted_sentiment": best_pred["label"], + "sentiment_confidence": best_pred["score"], + }) + + return pd.DataFrame(results) +``` + +## Example 2: Multiple Artifacts with Lookup Tables + +Load multiple types of artifacts: + +```python +# static_artifacts.py +from fastapi import FastAPI +from transformers import pipeline +import json +from pathlib import Path + +def load_sentiment_model(): + """Load sentiment analysis model.""" + return pipeline("sentiment-analysis", model="distilbert-base-uncased-finetuned-sst-2-english") + +def load_lookup_tables(): + """Load static lookup tables.""" + return { + "sentiment_labels": {"NEGATIVE": "negative", "POSITIVE": "positive"}, + "domain_categories": {"twitter.com": "social", "news.com": "news", "github.com": "tech"}, + "priority_users": {"user_123", "user_456", "user_789"} + } + +def load_config(): + """Load application configuration.""" + return { + "model_threshold": 0.7, + "max_text_length": 512, + "default_sentiment": "neutral" + } + +def load_artifacts(app: FastAPI): + """Load all static artifacts.""" + app.state.sentiment_model = load_sentiment_model() + app.state.lookup_tables = load_lookup_tables() + app.state.config = load_config() + + # Update global references + import example_repo + example_repo._sentiment_model = app.state.sentiment_model + example_repo._lookup_tables = app.state.lookup_tables + example_repo._config = app.state.config +``` + +Use multiple artifacts in feature transformations: + +```python +# example_repo.py +import pandas as pd +from feast.on_demand_feature_view import on_demand_feature_view + +# Global references for static artifacts +_sentiment_model = None +_lookup_tables: dict = {} +_config: dict = {} + +@on_demand_feature_view( + sources=[text_input_request, user_input_request], + schema=[ + Field(name="predicted_sentiment", dtype=String), + Field(name="is_priority_user", dtype=Bool), + Field(name="domain_category", dtype=String), + ], +) +def enriched_prediction(inputs: pd.DataFrame) -> pd.DataFrame: + """Multi-artifact feature transformation.""" + global _sentiment_model, _lookup_tables, _config + + results = [] + for i, row in inputs.iterrows(): + text = row["input_text"] + user_id = row["user_id"] + domain = row.get("domain", "") + + # Use pre-loaded model + predictions = _sentiment_model(text) + sentiment_scores = {pred["label"]: pred["score"] for pred in predictions} + + # Use lookup tables + predicted_sentiment = _lookup_tables["sentiment_labels"].get( + max(sentiment_scores, key=sentiment_scores.get), + _config["default_sentiment"] + ) + + is_priority = user_id in _lookup_tables["priority_users"] + category = _lookup_tables["domain_categories"].get(domain, "unknown") + + results.append({ + "predicted_sentiment": predicted_sentiment, + "is_priority_user": is_priority, + "domain_category": category, + }) + + return pd.DataFrame(results) +``` + +## Container Deployment + +Static artifacts work with containerized deployments. Include your artifacts in the container image: + +```dockerfile +FROM python:3.11-slim + +# Install dependencies +COPY requirements.txt . +RUN pip install -r requirements.txt + +# Copy feature repository including static_artifacts.py +COPY feature_repo/ /app/feature_repo/ + +WORKDIR /app/feature_repo + +# Start feature server +CMD ["feast", "serve", "--host", "0.0.0.0"] +``` + +The server will automatically load static artifacts during container startup. + +## Supported Artifact Types + +### Recommended Artifacts +- **Small ML models**: Sentiment analysis, text classification, small neural networks +- **Lookup tables**: Label mappings, category dictionaries, user segments +- **Configuration data**: Model parameters, feature mappings, business rules +- **Pre-computed embeddings**: User vectors, item features, static representations + +### Not Recommended +- **Large Language Models**: Use dedicated serving solutions (vLLM, TensorRT-LLM, TGI) +- **Models requiring specialized hardware**: GPU clusters, TPUs +- **Frequently updated models**: Consider model registries with versioning +- **Large datasets**: Use feature views with proper data sources instead + +## Error Handling + +Static artifacts loading includes graceful error handling: +- **Missing file**: Server starts normally without static artifacts +- **Loading errors**: Warnings are logged, feature views should implement fallback logic +- **Partial failures**: Successfully loaded artifacts remain available + +Always implement fallback behavior in your feature transformations: + +```python +@on_demand_feature_view(...) +def robust_prediction(inputs: pd.DataFrame) -> pd.DataFrame: + global _sentiment_model + + results = [] + for text in inputs["input_text"]: + if _sentiment_model is not None: + # Use pre-loaded model + predictions = _sentiment_model(text) + sentiment = max(predictions, key=lambda x: x["score"])["label"] + else: + # Fallback when artifacts aren't available + sentiment = "neutral" + + results.append({"predicted_sentiment": sentiment}) + + return pd.DataFrame(results) +``` + +## Starting the Feature Server + +Start the feature server as usual: + +```bash +feast serve +``` + +You'll see log messages indicating artifact loading: + +``` +INFO:fastapi:Loading static artifacts from static_artifacts.py +INFO:fastapi:Static artifacts loading completed +INFO:uvicorn:Application startup complete +``` + +## Template Example + +The PyTorch NLP template demonstrates static artifacts loading: + +```bash +feast init my-nlp-project -t pytorch_nlp +cd my-nlp-project/feature_repo +feast serve +``` + +This template includes a complete example with sentiment analysis model loading, lookup tables, and integration with on-demand feature views. + +## Performance Considerations + +- **Startup time**: Artifacts are loaded during server initialization, which may increase startup time +- **Memory usage**: All artifacts remain in memory for the server's lifetime +- **Concurrency**: Artifacts are shared across all request threads +- **Container resources**: Ensure sufficient memory allocation for your artifacts + +## Configuration + +Currently, static artifacts loading uses convention-based configuration: +- **File name**: Must be named `static_artifacts.py` +- **Location**: Must be in the feature repository root directory +- **Function name**: Must implement `load_artifacts(app: FastAPI)` function + +## Limitations + +- File name and location are currently fixed (not configurable) +- Artifacts are loaded synchronously during startup +- No built-in artifact versioning or hot reloading +- Limited to Python-based artifacts (no external binaries) + +## Contributing + +This is an alpha feature and we welcome contributions! Areas for improvement: +- Configurable artifact file locations +- Asynchronous artifact loading +- Built-in artifact versioning +- Performance monitoring and metrics +- Integration with model registries + +Please report issues and contribute improvements via the [Feast GitHub repository](https://github.com/feast-dev/feast). \ No newline at end of file diff --git a/docs/reference/feature-servers/python-feature-server.md b/docs/reference/feature-servers/python-feature-server.md index f8e121ad6af..df0b0b1f78d 100644 --- a/docs/reference/feature-servers/python-feature-server.md +++ b/docs/reference/feature-servers/python-feature-server.md @@ -268,6 +268,48 @@ To start the feature server in TLS mode, you need to provide the private and pub feast serve --key /path/to/key.pem --cert /path/to/cert.pem ``` +# [Alpha] Static Artifacts Loading + +**Warning**: This is an experimental feature. To our knowledge, this is stable, but there are still rough edges in the experience. + +Static artifacts loading allows you to load models, lookup tables, and other static resources once during feature server startup instead of loading them on each request. This improves performance for on-demand feature views that require external resources. + +## Quick Example + +Create a `static_artifacts.py` file in your feature repository: + +```python +# static_artifacts.py +from fastapi import FastAPI +from transformers import pipeline + +def load_artifacts(app: FastAPI): + """Load static artifacts into app.state.""" + app.state.sentiment_model = pipeline("sentiment-analysis", model="distilbert-base-uncased-finetuned-sst-2-english") + + # Update global references for access from feature views + import example_repo + example_repo._sentiment_model = app.state.sentiment_model +``` + +Access pre-loaded artifacts in your on-demand feature views: + +```python +# example_repo.py +_sentiment_model = None + +@on_demand_feature_view(...) +def sentiment_prediction(inputs: pd.DataFrame) -> pd.DataFrame: + global _sentiment_model + return _sentiment_model(inputs["text"]) +``` + +## Documentation + +For comprehensive documentation, examples, and best practices, see the [Alpha Static Artifacts Loading](../alpha-static-artifacts.md) reference guide. + +The [PyTorch NLP template](https://github.com/feast-dev/feast/tree/main/sdk/python/feast/templates/pytorch_nlp) provides a complete working example. + # Online Feature Server Permissions and Access Control ## API Endpoints and Permissions diff --git a/sdk/python/feast/feature_server.py b/sdk/python/feast/feature_server.py index e3ec16496cc..fbbb38821af 100644 --- a/sdk/python/feast/feature_server.py +++ b/sdk/python/feast/feature_server.py @@ -155,6 +155,52 @@ async def _get_features( return features +async def load_static_artifacts(app: FastAPI, store): + """ + Load static artifacts (models, lookup tables, etc.) into app.state. + + This function can be extended to load various types of static artifacts: + - Small ML models (scikit-learn, small neural networks) + - Lookup tables and reference data + - Configuration parameters + - Pre-computed embeddings + + Note: Not recommended for large language models - use dedicated + model serving solutions (vLLM, TGI, etc.) for those. + """ + try: + # Import here to avoid loading heavy dependencies unless needed + import importlib.util + import inspect + from pathlib import Path + + # Look for static artifacts loading in the feature repository + # This allows templates and users to define their own artifact loading + repo_path = Path(store.repo_path) if store.repo_path else Path.cwd() + artifacts_file = repo_path / "static_artifacts.py" + + if artifacts_file.exists(): + # Load and execute custom static artifacts loading + spec = importlib.util.spec_from_file_location( + "static_artifacts", artifacts_file + ) + if spec and spec.loader: + artifacts_module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(artifacts_module) + + # Look for load_artifacts function + if hasattr(artifacts_module, "load_artifacts"): + load_func = artifacts_module.load_artifacts + if inspect.iscoroutinefunction(load_func): + await load_func(app) + else: + load_func(app) + logger.info("Loaded static artifacts from static_artifacts.py") + except Exception as e: + # Non-fatal error - feature server should still start + logger.warning(f"Failed to load static artifacts: {e}") + + def get_app( store: "feast.FeatureStore", registry_ttl_sec: int = DEFAULT_FEATURE_SERVER_REGISTRY_TTL, @@ -217,6 +263,9 @@ def async_refresh(): @asynccontextmanager async def lifespan(app: FastAPI): + # Load static artifacts before initializing store + await load_static_artifacts(app, store) + await store.initialize() async_refresh() yield diff --git a/sdk/python/feast/templates/pytorch_nlp/README.md b/sdk/python/feast/templates/pytorch_nlp/README.md index 3d9babbd232..7fe0e0e708d 100644 --- a/sdk/python/feast/templates/pytorch_nlp/README.md +++ b/sdk/python/feast/templates/pytorch_nlp/README.md @@ -157,7 +157,8 @@ my-sentiment-project/ ├── README.md # This file └── feature_repo/ ├── feature_store.yaml # Feast configuration - ├── example_repo.py # Feature definitions + ├── example_repo.py # Feature definitions (uses pre-loaded artifacts) + ├── static_artifacts.py # Static artifacts loading (models, lookup tables) ├── test_workflow.py # Complete demo workflow └── data/ # Generated sample data └── sentiment_data.parquet @@ -205,6 +206,109 @@ offline_store: - ✅ **No external services** - No Redis/cloud required - ✅ **Perfect for demos** - Easy to share and understand +## 🚀 Static Artifacts Loading + +This template demonstrates **static artifacts loading** - a performance optimization that loads models, lookup tables, and other artifacts once at feature server startup instead of on each request. + +### What are Static Artifacts? + +Static artifacts are pre-loaded resources that remain constant during server operation: +- **Small ML models** (sentiment analysis, classification, small neural networks) +- **Lookup tables and mappings** (label encoders, category mappings) +- **Configuration data** (model parameters, feature mappings) +- **Pre-computed embeddings** (user embeddings, item features) + +### Performance Benefits + +**Before (Per-Request Loading):** +```python +def sentiment_prediction(inputs): + # ❌ Model loads on every request - slow! + model = pipeline("sentiment-analysis", model="...") + return model(inputs["text"]) +``` + +**After (Startup Loading):** +```python +# ✅ Model loads once at server startup +def sentiment_prediction(inputs): + global _sentiment_model # Pre-loaded model + return _sentiment_model(inputs["text"]) +``` + +**Performance Impact:** +- 🚀 **10-100x faster** inference (no model loading overhead) +- 💾 **Lower memory usage** (shared model across requests) +- ⚡ **Better scalability** (consistent response times) + +### How It Works + +1. **Startup**: Feast server loads `static_artifacts.py` during initialization +2. **Loading**: `load_artifacts(app)` function stores models in `app.state` +3. **Access**: On-demand feature views access pre-loaded artifacts via global references + +```python +# static_artifacts.py - Define what to load +def load_artifacts(app: FastAPI): + app.state.sentiment_model = load_sentiment_model() + app.state.lookup_tables = load_lookup_tables() + + # Update global references for easy access + import example_repo + example_repo._sentiment_model = app.state.sentiment_model + example_repo._lookup_tables = app.state.lookup_tables + +# example_repo.py - Use pre-loaded artifacts +_sentiment_model = None # Set by static_artifacts.py + +def sentiment_prediction(inputs): + global _sentiment_model + if _sentiment_model is not None: + return _sentiment_model(inputs["text"]) + else: + return fallback_predictions() +``` + +### Scope and Limitations + +**✅ Great for:** +- Small to medium models (< 1GB) +- Fast-loading models (sentiment analysis, classification) +- Lookup tables and reference data +- Configuration parameters +- Pre-computed embeddings + +**❌ Not recommended for:** +- **Large Language Models (LLMs)** - Use dedicated serving solutions like vLLM, TGI, or TensorRT-LLM +- Models requiring GPU clusters +- Frequently updated models +- Models with complex initialization dependencies + +**Note:** Feast is optimized for feature serving, not large model inference. For production LLM workloads, use specialized model serving platforms. + +### Customizing Static Artifacts + +To add your own artifacts, modify `static_artifacts.py`: + +```python +def load_custom_embeddings(): + """Load pre-computed user embeddings.""" + embeddings_file = Path(__file__).parent / "data" / "user_embeddings.npy" + if embeddings_file.exists(): + import numpy as np + return {"embeddings": np.load(embeddings_file)} + return None + +def load_artifacts(app: FastAPI): + # Load your custom artifacts + app.state.custom_embeddings = load_custom_embeddings() + app.state.config_params = {"threshold": 0.7, "top_k": 10} + + # Make them available to feature views + import example_repo + example_repo._custom_embeddings = app.state.custom_embeddings +``` + ## 📚 Detailed Usage ### 1. Feature Store Setup @@ -409,20 +513,21 @@ def toxicity_detection(inputs: pd.DataFrame) -> pd.DataFrame: ### Performance Optimization **Current Architecture:** -- Models load on each request (see `sentiment_prediction` function) +- ✅ **Static artifacts loading** at server startup (see `static_artifacts.py`) +- ✅ **Pre-loaded models** cached in memory for fast inference - CPU-only operation to avoid multiprocessing issues - SQLite-based storage for fast local access -**TODO: Optimization Opportunities:** -- **Startup-time Model Loading**: Load models once at server startup instead of per-request -- **Custom Provider**: Implement model caching via custom Feast provider -- **Model Serving Layer**: Use dedicated model servers (TorchServe, MLflow) for heavy models +**Implemented Optimizations:** +- **Startup-time Model Loading**: ✅ Models load once at server startup via `static_artifacts.py` +- **Memory-efficient Caching**: ✅ Models stored in `app.state` and accessed via global references +- **Fallback Handling**: ✅ Graceful degradation when artifacts fail to load -**Production Optimizations:** -1. **Model Caching**: Cache loaded models in memory to avoid repeated loading -2. **Batch Inference**: Process multiple texts together for efficiency -3. **Feature Materialization**: Pre-compute expensive features offline -4. **Async Processing**: Use async patterns for real-time serving +**Additional Production Optimizations:** +1. **Batch Inference**: Process multiple texts together for efficiency +2. **Feature Materialization**: Pre-compute expensive features offline +3. **Async Processing**: Use async patterns for real-time serving +4. **Model Serving Layer**: Use dedicated model servers (TorchServe, vLLM) for large models ### Production Configuration Examples diff --git a/sdk/python/feast/templates/pytorch_nlp/feature_repo/example_repo.py b/sdk/python/feast/templates/pytorch_nlp/feature_repo/example_repo.py index e78614aacea..ee49bea2899 100644 --- a/sdk/python/feast/templates/pytorch_nlp/feature_repo/example_repo.py +++ b/sdk/python/feast/templates/pytorch_nlp/feature_repo/example_repo.py @@ -25,6 +25,18 @@ from feast.on_demand_feature_view import on_demand_feature_view from feast.types import Array, Float32, Int64, String +try: + # Import static artifacts helpers (available when feature server loads artifacts) + from static_artifacts import get_lookup_tables, get_sentiment_model +except ImportError: + # Fallback for when static_artifacts.py is not available + get_sentiment_model = None + get_lookup_tables = None + +# Global references for static artifacts (set by feature server) +_sentiment_model = None +_lookup_tables: dict = {} + # Configuration repo_path = Path(__file__).parent data_path = repo_path / "data" @@ -143,76 +155,67 @@ ) def sentiment_prediction(inputs: pd.DataFrame) -> pd.DataFrame: """ - Real-time sentiment prediction using pre-trained models. + Real-time sentiment prediction using pre-loaded static artifacts. - This function demonstrates how to integrate PyTorch/HuggingFace models - directly into Feast feature views for real-time inference. + This function demonstrates how to use static artifacts (pre-loaded models, + lookup tables) for efficient real-time inference. Models are loaded once + at feature server startup rather than on each request. """ try: import numpy as np - from transformers import pipeline except ImportError: - # Fallback to dummy predictions if dependencies aren't available - df = pd.DataFrame() - df["predicted_sentiment"] = ["neutral"] * len(inputs) - df["sentiment_confidence"] = np.array([0.5] * len(inputs), dtype=np.float32) - df["positive_prob"] = np.array([0.33] * len(inputs), dtype=np.float32) - df["negative_prob"] = np.array([0.33] * len(inputs), dtype=np.float32) - df["neutral_prob"] = np.array([0.34] * len(inputs), dtype=np.float32) - df["text_embedding"] = [[np.float32(0.0)] * 384] * len(inputs) - return df + # Fallback to dummy predictions if numpy isn't available - # Initialize model (in production, you'd want to cache this) - model_name = "cardiffnlp/twitter-roberta-base-sentiment-latest" - try: - # Use sentiment pipeline for convenience (force CPU to avoid MPS forking issues) - sentiment_pipeline = pipeline( - "sentiment-analysis", - model=model_name, - tokenizer=model_name, - return_all_scores=True, - device="cpu", # Force CPU to avoid MPS forking issues on macOS - ) - - except Exception: - # Fallback if model loading fails df = pd.DataFrame() df["predicted_sentiment"] = ["neutral"] * len(inputs) - df["sentiment_confidence"] = np.array([0.5] * len(inputs), dtype=np.float32) - df["positive_prob"] = np.array([0.33] * len(inputs), dtype=np.float32) - df["negative_prob"] = np.array([0.33] * len(inputs), dtype=np.float32) - df["neutral_prob"] = np.array([0.34] * len(inputs), dtype=np.float32) - df["text_embedding"] = [[np.float32(0.0)] * 384] * len(inputs) + df["sentiment_confidence"] = [0.5] * len(inputs) + df["positive_prob"] = [0.33] * len(inputs) + df["negative_prob"] = [0.33] * len(inputs) + df["neutral_prob"] = [0.34] * len(inputs) + df["text_embedding"] = [[0.0] * 384] * len(inputs) return df + # Get pre-loaded static artifacts from global references + # These are loaded once at startup via static_artifacts.py + global _sentiment_model, _lookup_tables + + sentiment_model = _sentiment_model + lookup_tables = _lookup_tables + + # Use lookup table for label mapping (from static artifacts) + label_map = lookup_tables.get( + "sentiment_labels", + {"LABEL_0": "negative", "LABEL_1": "neutral", "LABEL_2": "positive"}, + ) + results = [] for text in inputs["input_text"]: try: - # Get sentiment predictions - predictions = sentiment_pipeline(text) - - # Parse results (RoBERTa model returns LABEL_0, LABEL_1, LABEL_2) - label_map = { - "LABEL_0": "negative", - "LABEL_1": "neutral", - "LABEL_2": "positive", - } - - scores = { - label_map.get(pred["label"], pred["label"]): pred["score"] - for pred in predictions - } - - # Get best prediction - best_pred = max(predictions, key=lambda x: x["score"]) - predicted_sentiment = label_map.get(best_pred["label"], best_pred["label"]) - confidence = best_pred["score"] - - # Get embeddings (simplified - dummy embeddings for demo) - # In a real implementation, you'd run the model to get embeddings - # For this demo, we'll create a dummy embedding - embedding = np.random.rand(384).tolist() # DistilBERT size + if sentiment_model is not None: + # Use pre-loaded model for prediction + predictions = sentiment_model(text) + + # Parse results using static lookup tables + scores = { + label_map.get(pred["label"], pred["label"]): pred["score"] + for pred in predictions + } + + # Get best prediction + best_pred = max(predictions, key=lambda x: x["score"]) + predicted_sentiment = label_map.get( + best_pred["label"], best_pred["label"] + ) + confidence = best_pred["score"] + else: + # Fallback when model is not available + predicted_sentiment = "neutral" + confidence = 0.5 + scores = {"positive": 0.33, "negative": 0.33, "neutral": 0.34} + + # Generate dummy embeddings (in production, use pre-loaded embeddings) + embedding = np.random.rand(384).tolist() results.append( { diff --git a/sdk/python/feast/templates/pytorch_nlp/feature_repo/static_artifacts.py b/sdk/python/feast/templates/pytorch_nlp/feature_repo/static_artifacts.py new file mode 100644 index 00000000000..6f7a5ae3091 --- /dev/null +++ b/sdk/python/feast/templates/pytorch_nlp/feature_repo/static_artifacts.py @@ -0,0 +1,139 @@ +""" +Static Artifacts Loading for PyTorch NLP Template + +This module demonstrates how to load static artifacts (models, lookup tables, etc.) +into the Feast feature server at startup for efficient real-time inference. + +Supported artifact types: +- Small ML models (transformers, scikit-learn, etc.) +- Lookup tables and reference data +- Configuration parameters +- Pre-computed embeddings + +Note: Feast is not optimized for large language models. For LLM inference, +use dedicated model serving solutions like vLLM, TensorRT-LLM, or TGI. +""" + +from pathlib import Path +from typing import Any, Dict, Optional + +from fastapi import FastAPI +from fastapi.logger import logger + + +def load_sentiment_model(): + """Load sentiment analysis model for real-time inference.""" + try: + from transformers import pipeline + + logger.info("Loading sentiment analysis model...") + model = pipeline( + "sentiment-analysis", + model="cardiffnlp/twitter-roberta-base-sentiment-latest", + tokenizer="cardiffnlp/twitter-roberta-base-sentiment-latest", + return_all_scores=True, + device="cpu", # Force CPU to avoid MPS forking issues on macOS + ) + logger.info("✅ Sentiment analysis model loaded successfully") + return model + except ImportError: + logger.warning( + "⚠️ Transformers not available, sentiment model will use fallback" + ) + return None + except Exception as e: + logger.warning(f"⚠️ Failed to load sentiment model: {e}") + return None + + +def load_lookup_tables() -> Dict[str, Any]: + """Load static lookup tables for feature engineering.""" + # Example: Load static mappings that are expensive to compute at request time + return { + "sentiment_labels": { + "LABEL_0": "negative", + "LABEL_1": "neutral", + "LABEL_2": "positive", + }, + "emoji_sentiment": {"😊": "positive", "😞": "negative", "😐": "neutral"}, + "domain_categories": {"twitter.com": "social", "news.com": "news"}, + } + + +def load_user_embeddings() -> Optional[Dict[str, Any]]: + """Load pre-computed user embeddings if available.""" + # Example: Load static user embeddings for recommendation features + embeddings_file = Path(__file__).parent / "data" / "user_embeddings.npy" + + if embeddings_file.exists(): + try: + import numpy as np + + embeddings = np.load(embeddings_file) + logger.info(f"✅ Loaded user embeddings: {embeddings.shape}") + return {"embeddings": embeddings} + except Exception as e: + logger.warning(f"⚠️ Failed to load user embeddings: {e}") + + return None + + +def load_artifacts(app: FastAPI): + """ + Main function called by Feast feature server to load static artifacts. + + This function is called during server startup and should store artifacts + in app.state for access by on-demand feature views. + """ + logger.info("🔄 Loading static artifacts for PyTorch NLP template...") + + # Load sentiment analysis model + app.state.sentiment_model = load_sentiment_model() + + # Load lookup tables + app.state.lookup_tables = load_lookup_tables() + + # Load user embeddings (optional) + app.state.user_embeddings = load_user_embeddings() + + # Also set global references for easier access from on-demand feature views + try: + import example_repo + + example_repo._sentiment_model = app.state.sentiment_model + example_repo._lookup_tables = app.state.lookup_tables + logger.info("✅ Global artifact references updated") + except ImportError: + logger.warning("⚠️ Could not update global artifact references") + + logger.info("✅ Static artifacts loading completed") + + +def get_static_artifact(app_state: Any, name: str) -> Any: + """ + Helper function to safely access static artifacts from app.state. + + Args: + app_state: FastAPI app.state object + name: Name of the artifact to retrieve + + Returns: + The requested artifact or None if not found + """ + return getattr(app_state, name, None) + + +# Convenience functions for accessing specific artifacts +def get_sentiment_model(app_state: Any): + """Get the pre-loaded sentiment analysis model.""" + return get_static_artifact(app_state, "sentiment_model") + + +def get_lookup_tables(app_state: Any) -> Dict[str, Any]: + """Get the pre-loaded lookup tables.""" + return get_static_artifact(app_state, "lookup_tables") or {} + + +def get_user_embeddings(app_state: Any): + """Get the pre-loaded user embeddings.""" + return get_static_artifact(app_state, "user_embeddings") diff --git a/sdk/python/tests/unit/test_feature_server.py b/sdk/python/tests/unit/test_feature_server.py index 21c01d61765..e3fd0387fb9 100644 --- a/sdk/python/tests/unit/test_feature_server.py +++ b/sdk/python/tests/unit/test_feature_server.py @@ -207,3 +207,204 @@ def test_materialize_request_model(): assert req2.disable_event_timestamp is False assert req2.start_ts == "2021-01-01T00:00:00" assert req2.end_ts == "2021-01-02T00:00:00" + + +# Static Artifacts Tests +@pytest.fixture +def mock_store_with_static_artifacts(tmp_path): + """Create a mock store with static_artifacts.py file for testing.""" + # Create static_artifacts.py file + static_artifacts_content = ''' +from fastapi import FastAPI +from fastapi.logger import logger + +def load_test_model(): + """Mock model loading for testing.""" + logger.info("Loading test model...") + return "test_model_loaded" + +def load_test_lookup_tables(): + """Mock lookup tables for testing.""" + return {"test_label": "test_value"} + +def load_artifacts(app: FastAPI): + """Load test static artifacts.""" + app.state.test_model = load_test_model() + app.state.test_lookup_tables = load_test_lookup_tables() + logger.info("✅ Test static artifacts loaded") +''' + + # Write static_artifacts.py to temp directory + artifacts_file = tmp_path / "static_artifacts.py" + artifacts_file.write_text(static_artifacts_content) + + # Create mock store + mock_store = MagicMock() + mock_store.repo_path = str(tmp_path) + return mock_store + + +def test_load_static_artifacts_success(mock_store_with_static_artifacts): + """Test successful loading of static artifacts during server startup.""" + import asyncio + + from fastapi import FastAPI + + from feast.feature_server import load_static_artifacts + + app = FastAPI() + + # Load static artifacts + asyncio.run(load_static_artifacts(app, mock_store_with_static_artifacts)) + + # Verify artifacts were loaded into app.state + assert hasattr(app.state, "test_model") + assert hasattr(app.state, "test_lookup_tables") + assert app.state.test_model == "test_model_loaded" + assert app.state.test_lookup_tables == {"test_label": "test_value"} + + +def test_load_static_artifacts_no_file(tmp_path): + """Test graceful handling when static_artifacts.py doesn't exist.""" + import asyncio + + from fastapi import FastAPI + + from feast.feature_server import load_static_artifacts + + app = FastAPI() + mock_store = MagicMock() + mock_store.repo_path = str(tmp_path) # Empty directory + + # Should not raise an exception + asyncio.run(load_static_artifacts(app, mock_store)) + + # Should not have added test artifacts + assert not hasattr(app.state, "test_model") + assert not hasattr(app.state, "test_lookup_tables") + + +def test_load_static_artifacts_invalid_file(tmp_path): + """Test graceful handling when static_artifacts.py has errors.""" + import asyncio + + from fastapi import FastAPI + + from feast.feature_server import load_static_artifacts + + # Create invalid static_artifacts.py + artifacts_file = tmp_path / "static_artifacts.py" + artifacts_file.write_text("raise ValueError('Test error')") + + app = FastAPI() + mock_store = MagicMock() + mock_store.repo_path = str(tmp_path) + + # Should handle the error gracefully + asyncio.run(load_static_artifacts(app, mock_store)) + + # Should not have artifacts due to error + assert not hasattr(app.state, "test_model") + + +def test_load_static_artifacts_no_load_function(tmp_path): + """Test handling when static_artifacts.py has no load_artifacts function.""" + import asyncio + + from fastapi import FastAPI + + from feast.feature_server import load_static_artifacts + + # Create static_artifacts.py without load_artifacts function + artifacts_file = tmp_path / "static_artifacts.py" + artifacts_file.write_text("TEST_CONSTANT = 'test'") + + app = FastAPI() + mock_store = MagicMock() + mock_store.repo_path = str(tmp_path) + + # Should handle gracefully + asyncio.run(load_static_artifacts(app, mock_store)) + + # Should not have artifacts since no load_artifacts function + assert not hasattr(app.state, "test_model") + + +def test_static_artifacts_persist_across_requests(mock_store_with_static_artifacts): + """Test that static artifacts persist across multiple requests.""" + from feast.feature_server import get_app + + # Create app with static artifacts + app = get_app(mock_store_with_static_artifacts) + + # Simulate artifacts being loaded (normally done in lifespan) + app.state.test_model = "persistent_model" + app.state.test_lookup_tables = {"persistent": "data"} + + # Artifacts should be available and persistent + assert app.state.test_model == "persistent_model" + assert app.state.test_lookup_tables["persistent"] == "data" + + # After simulated requests, artifacts should still be there + assert app.state.test_model == "persistent_model" + assert app.state.test_lookup_tables["persistent"] == "data" + + +def test_pytorch_nlp_template_artifacts_pattern(tmp_path): + """Test the specific PyTorch NLP template static artifacts pattern.""" + import asyncio + + from fastapi import FastAPI + + from feast.feature_server import load_static_artifacts + + # Create PyTorch NLP template-style static_artifacts.py + pytorch_artifacts_content = ''' +from fastapi import FastAPI +from fastapi.logger import logger + +def load_sentiment_model(): + """Mock sentiment analysis model loading.""" + logger.info("Loading sentiment analysis model...") + return "mock_roberta_sentiment_model" + +def load_lookup_tables(): + """Load lookup tables for sentiment mapping.""" + return { + "sentiment_labels": {"LABEL_0": "negative", "LABEL_1": "neutral", "LABEL_2": "positive"}, + "emoji_sentiment": {"😊": "positive", "😞": "negative", "😐": "neutral"}, + } + +def load_artifacts(app: FastAPI): + """Load all static artifacts for PyTorch NLP template.""" + app.state.sentiment_model = load_sentiment_model() + app.state.lookup_tables = load_lookup_tables() + + # Update global references (simulating example_repo.py pattern) + # In real template, this would be: import example_repo; example_repo._sentiment_model = ... + logger.info("✅ PyTorch NLP static artifacts loaded successfully") +''' + + artifacts_file = tmp_path / "static_artifacts.py" + artifacts_file.write_text(pytorch_artifacts_content) + + # Test loading + app = FastAPI() + mock_store = MagicMock() + mock_store.repo_path = str(tmp_path) + + asyncio.run(load_static_artifacts(app, mock_store)) + + # Verify PyTorch NLP template artifacts + assert hasattr(app.state, "sentiment_model") + assert hasattr(app.state, "lookup_tables") + assert app.state.sentiment_model == "mock_roberta_sentiment_model" + + # Verify lookup tables structure matches template + lookup_tables = app.state.lookup_tables + assert "sentiment_labels" in lookup_tables + assert "emoji_sentiment" in lookup_tables + assert lookup_tables["sentiment_labels"]["LABEL_0"] == "negative" + assert lookup_tables["sentiment_labels"]["LABEL_1"] == "neutral" + assert lookup_tables["sentiment_labels"]["LABEL_2"] == "positive" + assert lookup_tables["emoji_sentiment"]["😊"] == "positive" From 59dbb33ec809cd3020cb3c5ac2dcbf2fc920fd4d Mon Sep 17 00:00:00 2001 From: Lukas Valatka Date: Tue, 23 Dec 2025 09:55:02 +0200 Subject: [PATCH 05/37] fix: Add possibility to overwrite send_receive_timeout for clickhouse offline store (#5792) * add changes + fix linting issues Signed-off-by: lukas.valatka * generalize based on pr suggestion Signed-off-by: lukas.valatka * add test verifying config parsing Signed-off-by: lukas.valatka * rework test into integration, since CH instance is needed Signed-off-by: lukas.valatka --------- Signed-off-by: lukas.valatka --- .../tests/data_source.py | 28 +++++++++ .../utils/clickhouse/clickhouse_config.py | 6 ++ .../utils/clickhouse/connection_utils.py | 26 ++++++--- .../infra/offline_stores/test_clickhouse.py | 57 +++++++++++++++++++ 4 files changed, 110 insertions(+), 7 deletions(-) diff --git a/sdk/python/feast/infra/offline_stores/contrib/clickhouse_offline_store/tests/data_source.py b/sdk/python/feast/infra/offline_stores/contrib/clickhouse_offline_store/tests/data_source.py index 80fd1751dc5..4234c46eb3f 100644 --- a/sdk/python/feast/infra/offline_stores/contrib/clickhouse_offline_store/tests/data_source.py +++ b/sdk/python/feast/infra/offline_stores/contrib/clickhouse_offline_store/tests/data_source.py @@ -15,6 +15,8 @@ from feast.infra.offline_stores.contrib.clickhouse_offline_store.clickhouse_source import ( ClickhouseSource, ) +from feast.infra.utils.clickhouse.clickhouse_config import ClickhouseConfig +from feast.infra.utils.clickhouse.connection_utils import get_client from tests.integration.feature_repos.universal.data_source_creator import ( DataSourceCreator, ) @@ -114,3 +116,29 @@ def create_saved_dataset_destination(self): def teardown(self): pass + + +def test_get_client_with_additional_params(clickhouse_container): + """ + Test that get_client works with a real ClickHouse container and properly passes + additional settings like send_receive_timeout. + """ + # Create config with custom send_receive_timeout + config = ClickhouseConfig( + host=clickhouse_container.get_container_host_ip(), + port=clickhouse_container.get_exposed_port(8123), + user=CLICKHOUSE_USER, + password=CLICKHOUSE_PASSWORD, + database=CLICKHOUSE_OFFLINE_DB, + additional_client_args={"send_receive_timeout": 60}, + ) + + # Get client and verify it works + client = get_client(config) + + # Verify client is connected and functional by running a simple query + result = client.query("SELECT 1 AS test_value") + assert result.result_rows == [(1,)] + + # Verify the send_receive_timeout was applied + assert client.timeout._read == 60 diff --git a/sdk/python/feast/infra/utils/clickhouse/clickhouse_config.py b/sdk/python/feast/infra/utils/clickhouse/clickhouse_config.py index 1f163e0a81b..75167f8a60e 100644 --- a/sdk/python/feast/infra/utils/clickhouse/clickhouse_config.py +++ b/sdk/python/feast/infra/utils/clickhouse/clickhouse_config.py @@ -1,3 +1,5 @@ +from typing import Any + from pydantic import ConfigDict, StrictStr from feast.repo_config import FeastConfigBaseModel @@ -11,4 +13,8 @@ class ClickhouseConfig(FeastConfigBaseModel): password: StrictStr use_temporary_tables_for_entity_df: bool = True + # See https://github.com/ClickHouse/clickhouse-connect/blob/main/clickhouse_connect/driver/__init__.py#L51 + # Some typical ones e.g. send_receive_timeout (read_timeout), etc + additional_client_args: dict[str, Any] | None = None + model_config = ConfigDict(frozen=True) diff --git a/sdk/python/feast/infra/utils/clickhouse/connection_utils.py b/sdk/python/feast/infra/utils/clickhouse/connection_utils.py index 88f5334db14..6d5f1b87052 100644 --- a/sdk/python/feast/infra/utils/clickhouse/connection_utils.py +++ b/sdk/python/feast/infra/utils/clickhouse/connection_utils.py @@ -11,12 +11,24 @@ def get_client(config: ClickhouseConfig) -> Client: # Clickhouse client is not thread-safe, so we need to create a separate instance for each thread. if not hasattr(thread_local, "clickhouse_client"): - thread_local.clickhouse_client = clickhouse_connect.get_client( - host=config.host, - port=config.port, - user=config.user, - password=config.password, - database=config.database, - ) + additional_client_args = config.additional_client_args + + if additional_client_args: + thread_local.clickhouse_client = clickhouse_connect.get_client( + host=config.host, + port=config.port, + user=config.user, + password=config.password, + database=config.database, + **additional_client_args, + ) + else: + thread_local.clickhouse_client = clickhouse_connect.get_client( + host=config.host, + port=config.port, + user=config.user, + password=config.password, + database=config.database, + ) return thread_local.clickhouse_client diff --git a/sdk/python/tests/unit/infra/offline_stores/test_clickhouse.py b/sdk/python/tests/unit/infra/offline_stores/test_clickhouse.py index 38c632a59a7..f5440ed367d 100644 --- a/sdk/python/tests/unit/infra/offline_stores/test_clickhouse.py +++ b/sdk/python/tests/unit/infra/offline_stores/test_clickhouse.py @@ -1,3 +1,4 @@ +import logging import threading from unittest.mock import MagicMock, patch @@ -6,6 +7,8 @@ from feast.infra.utils.clickhouse.clickhouse_config import ClickhouseConfig from feast.infra.utils.clickhouse.connection_utils import get_client, thread_local +logger = logging.getLogger(__name__) + @pytest.fixture def clickhouse_config(): @@ -76,3 +79,57 @@ def thread_2_work(): assert client_1a is not client_2, ( "Different threads should get different client instances (not cached)" ) + + +def test_clickhouse_config_parses_additional_client_args(): + """ + Test that ClickhouseConfig correctly parses additional_client_args from a dict, + simulating how it would be parsed from YAML by Pydantic. + """ + # This simulates the dict that would come from yaml.safe_load() + raw_config = { + "host": "localhost", + "port": 8123, + "database": "default", + "user": "default", + "password": "password", + "additional_client_args": { + "send_receive_timeout": 60, + "compress": True, + "client_name": "feast_test", + }, + } + + # Pydantic should parse this dict into a ClickhouseConfig object + config = ClickhouseConfig(**raw_config) + + # Verify all fields are correctly parsed + assert config.host == "localhost" + assert config.port == 8123 + assert config.database == "default" + assert config.user == "default" + assert config.password == "password" + + # Verify additional_client_args is correctly parsed as a dict + assert config.additional_client_args is not None + assert isinstance(config.additional_client_args, dict) + assert config.additional_client_args["send_receive_timeout"] == 60 + assert config.additional_client_args["compress"] is True + assert config.additional_client_args["client_name"] == "feast_test" + + +def test_clickhouse_config_handles_none_additional_client_args(): + """ + Test that ClickhouseConfig correctly handles when additional_client_args is not provided. + """ + raw_config = { + "host": "localhost", + "port": 8123, + "database": "default", + "user": "default", + "password": "password", + } + + config = ClickhouseConfig(**raw_config) + + assert config.additional_client_args is None From 75b562805ccfc6af20bd14d555a64fe974b405a6 Mon Sep 17 00:00:00 2001 From: Aniket Paluskar <64416568+aniketpalu@users.noreply.github.com> Date: Tue, 30 Dec 2025 20:30:52 +0530 Subject: [PATCH 06/37] chore: Bump urllib3 version to >=2.6.0 (#5801) * chore: Bump urllib3 version to >=2.6.0 Signed-off-by: Aniket Paluskar * Updated library version in setup.py Signed-off-by: Aniket Paluskar --------- Signed-off-by: Aniket Paluskar --- pyproject.toml | 2 +- .../requirements/py3.10-ci-requirements.txt | 635 ++++++------- .../py3.10-minimal-requirements.txt | 475 +++++----- ...y3.10-minimal-sdist-requirements-build.txt | 280 +++--- .../py3.10-minimal-sdist-requirements.txt | 475 +++++----- .../requirements/py3.10-requirements.txt | 314 +++---- .../requirements/py3.11-ci-requirements.txt | 848 +++++++++--------- .../py3.11-minimal-requirements.txt | 623 ++++++------- ...y3.11-minimal-sdist-requirements-build.txt | 437 ++++----- .../py3.11-minimal-sdist-requirements.txt | 635 ++++++------- .../requirements/py3.11-requirements.txt | 462 +++++----- .../requirements/py3.12-ci-requirements.txt | 848 +++++++++--------- .../py3.12-minimal-requirements.txt | 617 ++++++------- ...y3.12-minimal-sdist-requirements-build.txt | 433 ++++----- .../py3.12-minimal-sdist-requirements.txt | 629 ++++++------- .../requirements/py3.12-requirements.txt | 456 +++++----- setup.py | 2 +- 17 files changed, 4145 insertions(+), 4026 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index b87c70364bb..f2620b0915d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -147,7 +147,7 @@ ci = [ "mock==2.0.0", "moto<5", "mypy>=1.4.1,<1.11.3", - "urllib3>=1.25.4,<3", + "urllib3>=2.6.0,<3", "psutil==5.9.0", "py>=1.11.0", # https://github.com/pytest-dev/pytest/issues/10420 "pytest>=6.0.0,<8", diff --git a/sdk/python/requirements/py3.10-ci-requirements.txt b/sdk/python/requirements/py3.10-ci-requirements.txt index a9fe1faf9bf..2c448173938 100644 --- a/sdk/python/requirements/py3.10-ci-requirements.txt +++ b/sdk/python/requirements/py3.10-ci-requirements.txt @@ -250,9 +250,9 @@ attrs==25.4.0 \ # jsonlines # jsonschema # referencing -azure-core==1.36.0 \ - --hash=sha256:22e5605e6d0bf1d229726af56d9e92bc37b6e726b141a18be0b4d424131741b7 \ - --hash=sha256:fee9923a3a753e94a259563429f3644aaf05c486d45b1215d098115102d91d3b +azure-core==1.37.0 \ + --hash=sha256:7064f2c11e4b97f340e8e8c6d923b822978be3016e46b7bc4aa4b337cfb48aee \ + --hash=sha256:b3abe2c59e7d6bb18b38c275a5029ff80f98990e7c90a5e646249a56630fcc19 # via # azure-identity # azure-storage-blob @@ -276,9 +276,9 @@ beautifulsoup4==4.14.3 \ # via # docling # nbconvert -bigtree==1.0.3 \ - --hash=sha256:18402a143130868b17ca84a74ca263e6f32f046d6978c30d244f8b94c4a01227 \ - --hash=sha256:99a18b6937a9b4ab8e560fec5c0720e10ebf37f84e44f9b5f47702c2e84c9aaa +bigtree==1.0.4 \ + --hash=sha256:e4af0c5bc0d2cd72e18442965e4509f642b16a0de65db6d0ec116e30f959010c \ + --hash=sha256:f58a3238bb9b1142d893c9de4921bfd18d435427c75e0c168dd580eabf6dc7fd # via feast (setup.py) bleach[css]==6.3.0 \ --hash=sha256:6f3b91b1c0a02bb9a78b5a454c92506aa0fdf197e1d5e114d2e00c6f64306d22 \ @@ -308,9 +308,9 @@ build==1.3.0 \ # feast (setup.py) # pip-tools # singlestoredb -cachetools==6.2.2 \ - --hash=sha256:6c09c98183bf58560c97b2abfcedcbaf6a896a490f534b031b661d3723b45ace \ - --hash=sha256:8e6d266b25e539df852251cfd6f990b4bc3a141db73b939058d809ebd2590fc6 +cachetools==6.2.4 \ + --hash=sha256:69a7a52634fed8b8bf6e24a050fb60bff1c9bd8f6d24572b99c32d4e71e62a51 \ + --hash=sha256:82c5c05585e70b6ba2d3ae09ea60b79548872185d2f24ae1f2709d37299fd607 # via google-auth cassandra-driver==3.29.3 \ --hash=sha256:064bf45d3ca87239e11168c0110676fc64f7fdbddb4bcba9be787b8ad5f6d734 \ @@ -553,9 +553,9 @@ charset-normalizer==3.4.4 \ # via # requests # snowflake-connector-python -click==8.2.1 \ - --hash=sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202 \ - --hash=sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b +click==8.3.1 \ + --hash=sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a \ + --hash=sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6 # via # feast (setup.py) # dask @@ -708,99 +708,99 @@ couchbase-columnar==1.0.0 \ --hash=sha256:fc0fad2d386c5b5df7aaaccd8751e01caa886cc640cc8c92523dd07c4e7be519 \ --hash=sha256:fc4efa3e15190c3731478006de494b046bc57785e9c8ae99ac8b375a91683e38 # via feast (setup.py) -coverage[toml]==7.13.0 \ - --hash=sha256:0018f73dfb4301a89292c73be6ba5f58722ff79f51593352759c1790ded1cabe \ - --hash=sha256:00c3d22cf6fb1cf3bf662aaaa4e563be8243a5ed2630339069799835a9cc7f9b \ - --hash=sha256:02d9fb9eccd48f6843c98a37bd6817462f130b86da8660461e8f5e54d4c06070 \ - --hash=sha256:0602f701057c6823e5db1b74530ce85f17c3c5be5c85fc042ac939cbd909426e \ - --hash=sha256:06cac81bf10f74034e055e903f5f946e3e26fc51c09fc9f584e4a1605d977053 \ - --hash=sha256:086cede306d96202e15a4b77ace8472e39d9f4e5f9fd92dd4fecdfb2313b2080 \ - --hash=sha256:0900872f2fdb3ee5646b557918d02279dc3af3dfb39029ac4e945458b13f73bc \ - --hash=sha256:0a3a30f0e257df382f5f9534d4ce3d4cf06eafaf5192beb1a7bd066cb10e78fb \ - --hash=sha256:0b3d67d31383c4c68e19a88e28fc4c2e29517580f1b0ebec4a069d502ce1e0bf \ - --hash=sha256:0dfa3855031070058add1a59fdfda0192fd3e8f97e7c81de0596c145dea51820 \ - --hash=sha256:0f4872f5d6c54419c94c25dd6ae1d015deeb337d06e448cd890a1e89a8ee7f3b \ - --hash=sha256:11c21557d0e0a5a38632cbbaca5f008723b26a89d70db6315523df6df77d6232 \ - --hash=sha256:166ad2a22ee770f5656e1257703139d3533b4a0b6909af67c6b4a3adc1c98657 \ - --hash=sha256:193c3887285eec1dbdb3f2bd7fbc351d570ca9c02ca756c3afbc71b3c98af6ef \ - --hash=sha256:1d84e91521c5e4cb6602fe11ece3e1de03b2760e14ae4fcf1a4b56fa3c801fcd \ - --hash=sha256:1ed5630d946859de835a85e9a43b721123a8a44ec26e2830b296d478c7fd4259 \ - --hash=sha256:22486cdafba4f9e471c816a2a5745337742a617fef68e890d8baf9f3036d7833 \ - --hash=sha256:22ccfe8d9bb0d6134892cbe1262493a8c70d736b9df930f3f3afae0fe3ac924d \ - --hash=sha256:24e4e56304fdb56f96f80eabf840eab043b3afea9348b88be680ec5986780a0f \ - --hash=sha256:25dc33618d45456ccb1d37bce44bc78cf269909aa14c4db2e03d63146a8a1493 \ - --hash=sha256:263c3dbccc78e2e331e59e90115941b5f53e85cfcc6b3b2fbff1fd4e3d2c6ea8 \ - --hash=sha256:28ee1c96109974af104028a8ef57cec21447d42d0e937c0275329272e370ebcf \ - --hash=sha256:30a3a201a127ea57f7e14ba43c93c9c4be8b7d17a26e03bb49e6966d019eede9 \ - --hash=sha256:3188936845cd0cb114fa6a51842a304cdbac2958145d03be2377ec41eb285d19 \ - --hash=sha256:367449cf07d33dc216c083f2036bb7d976c6e4903ab31be400ad74ad9f85ce98 \ - --hash=sha256:37eee4e552a65866f15dedd917d5e5f3d59805994260720821e2c1b51ac3248f \ - --hash=sha256:3a10260e6a152e5f03f26db4a407c4c62d3830b9af9b7c0450b183615f05d43b \ - --hash=sha256:3a7b1cd820e1b6116f92c6128f1188e7afe421c7e1b35fa9836b11444e53ebd9 \ - --hash=sha256:3ab483ea0e251b5790c2aac03acde31bff0c736bf8a86829b89382b407cd1c3b \ - --hash=sha256:3ad968d1e3aa6ce5be295ab5fe3ae1bf5bb4769d0f98a80a0252d543a2ef2e9e \ - --hash=sha256:445badb539005283825959ac9fa4a28f712c214b65af3a2c464f1adc90f5fcbc \ - --hash=sha256:453b7ec753cf5e4356e14fe858064e5520c460d3bbbcb9c35e55c0d21155c256 \ - --hash=sha256:494f5459ffa1bd45e18558cd98710c36c0b8fbfa82a5eabcbe671d80ecffbfe8 \ - --hash=sha256:4b5de7d4583e60d5fd246dd57fcd3a8aa23c6e118a8c72b38adf666ba8e7e927 \ - --hash=sha256:4f3e223b2b2db5e0db0c2b97286aba0036ca000f06aca9b12112eaa9af3d92ae \ - --hash=sha256:4fdb6f54f38e334db97f72fa0c701e66d8479af0bc3f9bfb5b90f1c30f54500f \ - --hash=sha256:51a202e0f80f241ccb68e3e26e19ab5b3bf0f813314f2c967642f13ebcf1ddfe \ - --hash=sha256:581f086833d24a22c89ae0fe2142cfaa1c92c930adf637ddf122d55083fb5a0f \ - --hash=sha256:583221913fbc8f53b88c42e8dbb8fca1d0f2e597cb190ce45916662b8b9d9621 \ - --hash=sha256:58632b187be6f0be500f553be41e277712baa278147ecb7559983c6d9faf7ae1 \ - --hash=sha256:5c67dace46f361125e6b9cace8fe0b729ed8479f47e70c89b838d319375c8137 \ - --hash=sha256:5e70f92ef89bac1ac8a99b3324923b4749f008fdbd7aa9cb35e01d7a284a04f9 \ - --hash=sha256:5f5d9bd30756fff3e7216491a0d6d520c448d5124d3d8e8f56446d6412499e74 \ - --hash=sha256:5f8a0297355e652001015e93be345ee54393e45dc3050af4a0475c5a2b767d46 \ - --hash=sha256:62d7c4f13102148c78d7353c6052af6d899a7f6df66a32bddcc0c0eb7c5326f8 \ - --hash=sha256:69ac2c492918c2461bc6ace42d0479638e60719f2a4ef3f0815fa2df88e9f940 \ - --hash=sha256:6abb3a4c52f05e08460bd9acf04fec027f8718ecaa0d09c40ffbc3fbd70ecc39 \ - --hash=sha256:6e63ccc6e0ad8986386461c3c4b737540f20426e7ec932f42e030320896c311a \ - --hash=sha256:6e9e451dee940a86789134b6b0ffbe31c454ade3b849bb8a9d2cca2541a8e91d \ - --hash=sha256:6fb2d5d272341565f08e962cce14cdf843a08ac43bd621783527adb06b089c4b \ - --hash=sha256:71936a8b3b977ddd0b694c28c6a34f4fff2e9dd201969a4ff5d5fc7742d614b0 \ - --hash=sha256:73419b89f812f498aca53f757dd834919b48ce4799f9d5cad33ca0ae442bdb1a \ - --hash=sha256:739c6c051a7540608d097b8e13c76cfa85263ced467168dc6b477bae3df7d0e2 \ - --hash=sha256:7464663eaca6adba4175f6c19354feea61ebbdd735563a03d1e472c7072d27bb \ - --hash=sha256:74c136e4093627cf04b26a35dab8cbfc9b37c647f0502fc313376e11726ba303 \ - --hash=sha256:76541dc8d53715fb4f7a3a06b34b0dc6846e3c69bc6204c55653a85dd6220971 \ - --hash=sha256:7a485ff48fbd231efa32d58f479befce52dcb6bfb2a88bb7bf9a0b89b1bc8030 \ - --hash=sha256:7e442c013447d1d8d195be62852270b78b6e255b79b8675bad8479641e21fd96 \ - --hash=sha256:7f15a931a668e58087bc39d05d2b4bf4b14ff2875b49c994bbdb1c2217a8daeb \ - --hash=sha256:7f88ae3e69df2ab62fb0bc5219a597cb890ba5c438190ffa87490b315190bb33 \ - --hash=sha256:8069e831f205d2ff1f3d355e82f511eb7c5522d7d413f5db5756b772ec8697f8 \ - --hash=sha256:850d2998f380b1e266459ca5b47bc9e7daf9af1d070f66317972f382d46f1904 \ - --hash=sha256:898cce66d0836973f48dda4e3514d863d70142bdf6dfab932b9b6a90ea5b222d \ - --hash=sha256:9097818b6cc1cfb5f174e3263eba4a62a17683bcfe5c4b5d07f4c97fa51fbf28 \ - --hash=sha256:936bc20503ce24770c71938d1369461f0c5320830800933bc3956e2a4ded930e \ - --hash=sha256:9372dff5ea15930fea0445eaf37bbbafbc771a49e70c0aeed8b4e2c2614cc00e \ - --hash=sha256:9987a9e4f8197a1000280f7cc089e3ea2c8b3c0a64d750537809879a7b4ceaf9 \ - --hash=sha256:99acd4dfdfeb58e1937629eb1ab6ab0899b131f183ee5f23e0b5da5cba2fec74 \ - --hash=sha256:9b01c22bc74a7fb44066aaf765224c0d933ddf1f5047d6cdfe4795504a4493f8 \ - --hash=sha256:a00d3a393207ae12f7c49bb1c113190883b500f48979abb118d8b72b8c95c032 \ - --hash=sha256:a23e5a1f8b982d56fa64f8e442e037f6ce29322f1f9e6c2344cd9e9f4407ee57 \ - --hash=sha256:a2bdb3babb74079f021696cb46b8bb5f5661165c385d3a238712b031a12355be \ - --hash=sha256:a394aa27f2d7ff9bc04cf703817773a59ad6dfbd577032e690f961d2460ee936 \ - --hash=sha256:a6c6e16b663be828a8f0b6c5027d36471d4a9f90d28444aa4ced4d48d7d6ae8f \ - --hash=sha256:af0a583efaacc52ae2521f8d7910aff65cdb093091d76291ac5820d5e947fc1c \ - --hash=sha256:af827b7cbb303e1befa6c4f94fd2bf72f108089cfa0f8abab8f4ca553cf5ca5a \ - --hash=sha256:c4be718e51e86f553bcf515305a158a1cd180d23b72f07ae76d6017c3cc5d791 \ - --hash=sha256:cdb3c9f8fef0a954c632f64328a3935988d33a6604ce4bf67ec3e39670f12ae5 \ - --hash=sha256:d10fd186aac2316f9bbb46ef91977f9d394ded67050ad6d84d94ed6ea2e8e54e \ - --hash=sha256:d1e97353dcc5587b85986cda4ff3ec98081d7e84dd95e8b2a6d59820f0545f8a \ - --hash=sha256:d2a9d7f1c11487b1c69367ab3ac2d81b9b3721f097aa409a3191c3e90f8f3dd7 \ - --hash=sha256:de7f6748b890708578fc4b7bb967d810aeb6fcc9bff4bb77dbca77dab2f9df6a \ - --hash=sha256:e5330fa0cc1f5c3c4c3bb8e101b742025933e7848989370a1d4c8c5e401ea753 \ - --hash=sha256:e999e2dcc094002d6e2c7bbc1fb85b58ba4f465a760a8014d97619330cdbbbf3 \ - --hash=sha256:eb76670874fdd6091eedcc856128ee48c41a9bbbb9c3f1c7c3cf169290e3ffd6 \ - --hash=sha256:f1c23e24a7000da892a312fb17e33c5f94f8b001de44b7cf8ba2e36fbd15859e \ - --hash=sha256:f2ffc92b46ed6e6760f1d47a71e56b5664781bc68986dbd1836b2b70c0ce2071 \ - --hash=sha256:f4f72a85316d8e13234cafe0a9f81b40418ad7a082792fa4165bd7d45d96066b \ - --hash=sha256:f59883c643cb19630500f57016f76cfdcd6845ca8c5b5ea1f6e17f74c8e5f511 \ - --hash=sha256:f6aaef16d65d1787280943f1c8718dc32e9cf141014e4634d64446702d26e0ff \ - --hash=sha256:fe81055d8c6c9de76d60c94ddea73c290b416e061d40d542b24a5871bad498b7 \ - --hash=sha256:ff45e0cd8451e293b63ced93161e189780baf444119391b3e7d25315060368a6 +coverage[toml]==7.13.1 \ + --hash=sha256:0403f647055de2609be776965108447deb8e384fe4a553c119e3ff6bfbab4784 \ + --hash=sha256:0642eae483cc8c2902e4af7298bf886d605e80f26382124cddc3967c2a3df09e \ + --hash=sha256:0b609fc9cdbd1f02e51f67f51e5aee60a841ef58a68d00d5ee2c0faf357481a3 \ + --hash=sha256:0d2c11f3ea4db66b5cbded23b20185c35066892c67d80ec4be4bab257b9ad1e0 \ + --hash=sha256:0e42e0ec0cd3e0d851cb3c91f770c9301f48647cb2877cb78f74bdaa07639a79 \ + --hash=sha256:132718176cc723026d201e347f800cd1a9e4b62ccd3f82476950834dad501c75 \ + --hash=sha256:16cc1da46c04fb0fb128b4dc430b78fa2aba8a6c0c9f8eb391fd5103409a6ac6 \ + --hash=sha256:18be793c4c87de2965e1c0f060f03d9e5aff66cfeae8e1dbe6e5b88056ec153f \ + --hash=sha256:1a55d509a1dc5a5b708b5dad3b5334e07a16ad4c2185e27b40e4dba796ab7f88 \ + --hash=sha256:1dcb645d7e34dcbcc96cd7c132b1fc55c39263ca62eb961c064eb3928997363b \ + --hash=sha256:2016745cb3ba554469d02819d78958b571792bb68e31302610e898f80dd3a573 \ + --hash=sha256:228b90f613b25ba0019361e4ab81520b343b622fc657daf7e501c4ed6a2366c0 \ + --hash=sha256:309ef5706e95e62578cda256b97f5e097916a2c26247c287bbe74794e7150df2 \ + --hash=sha256:339dc63b3eba969067b00f41f15ad161bf2946613156fb131266d8debc8e44d0 \ + --hash=sha256:3820778ea1387c2b6a818caec01c63adc5b3750211af6447e8dcfb9b6f08dbba \ + --hash=sha256:3d42df8201e00384736f0df9be2ced39324c3907607d17d50d50116c989d84cd \ + --hash=sha256:3e7b8bd70c48ffb28461ebe092c2345536fb18bbbf19d287c8913699735f505c \ + --hash=sha256:3f2f725aa3e909b3c5fdb8192490bdd8e1495e85906af74fe6e34a2a77ba0673 \ + --hash=sha256:3fc6a169517ca0d7ca6846c3c5392ef2b9e38896f61d615cb75b9e7134d4ee1e \ + --hash=sha256:45980ea19277dc0a579e432aef6a504fe098ef3a9032ead15e446eb0f1191aee \ + --hash=sha256:4d010d080c4888371033baab27e47c9df7d6fb28d0b7b7adf85a4a49be9298b3 \ + --hash=sha256:4de84e71173d4dada2897e5a0e1b7877e5eefbfe0d6a44edee6ce31d9b8ec09e \ + --hash=sha256:549d195116a1ba1e1ae2f5ca143f9777800f6636eab917d4f02b5310d6d73461 \ + --hash=sha256:562ec27dfa3f311e0db1ba243ec6e5f6ab96b1edfcfc6cf86f28038bc4961ce6 \ + --hash=sha256:57dfc8048c72ba48a8c45e188d811e5efd7e49b387effc8fb17e97936dde5bf6 \ + --hash=sha256:5899d28b5276f536fcf840b18b61a9fce23cc3aec1d114c44c07fe94ebeaa500 \ + --hash=sha256:60cfb538fe9ef86e5b2ab0ca8fc8d62524777f6c611dcaf76dc16fbe9b8e698a \ + --hash=sha256:623dcc6d7a7ba450bbdbeedbaa0c42b329bdae16491af2282f12a7e809be7eb9 \ + --hash=sha256:67170979de0dacac3f3097d02b0ad188d8edcea44ccc44aaa0550af49150c7dc \ + --hash=sha256:6e73ebb44dca5f708dc871fe0b90cf4cff1a13f9956f747cc87b535a840386f5 \ + --hash=sha256:6f34591000f06e62085b1865c9bc5f7858df748834662a51edadfd2c3bfe0dd3 \ + --hash=sha256:724b1b270cb13ea2e6503476e34541a0b1f62280bc997eab443f87790202033d \ + --hash=sha256:75a6f4aa904301dab8022397a22c0039edc1f51e90b83dbd4464b8a38dc87842 \ + --hash=sha256:77545b5dcda13b70f872c3b5974ac64c21d05e65b1590b441c8560115dc3a0d1 \ + --hash=sha256:776483fd35b58d8afe3acbd9988d5de592ab6da2d2a865edfdbc9fdb43e7c486 \ + --hash=sha256:77cc258aeb29a3417062758975521eae60af6f79e930d6993555eeac6a8eac29 \ + --hash=sha256:794f7c05af0763b1bbd1b9e6eff0e52ad068be3b12cd96c87de037b01390c968 \ + --hash=sha256:868a2fae76dfb06e87291bcbd4dcbcc778a8500510b618d50496e520bd94d9b9 \ + --hash=sha256:8842af7f175078456b8b17f1b73a0d16a65dcbdc653ecefeb00a56b3c8c298c4 \ + --hash=sha256:8d9bc218650022a768f3775dd7fdac1886437325d8d295d923ebcfef4892ad5c \ + --hash=sha256:8f572d989142e0908e6acf57ad1b9b86989ff057c006d13b76c146ec6a20216a \ + --hash=sha256:90480b2134999301eea795b3a9dbf606c6fbab1b489150c501da84a959442465 \ + --hash=sha256:916abf1ac5cf7eb16bc540a5bf75c71c43a676f5c52fcb9fe75a2bd75fb944e8 \ + --hash=sha256:92f980729e79b5d16d221038dbf2e8f9a9136afa072f9d5d6ed4cb984b126a09 \ + --hash=sha256:933082f161bbb3e9f90d00990dc956120f608cdbcaeea15c4d897f56ef4fe416 \ + --hash=sha256:97ab3647280d458a1f9adb85244e81587505a43c0c7cff851f5116cd2814b894 \ + --hash=sha256:985b7836931d033570b94c94713c6dba5f9d3ff26045f72c3e5dbc5fe3361e5a \ + --hash=sha256:9e549d642426e3579b3f4b92d0431543b012dcb6e825c91619d4e93b7363c3f9 \ + --hash=sha256:9edd0e01a343766add6817bc448408858ba6b489039eaaa2018474e4001651a4 \ + --hash=sha256:9ee68b21909686eeb21dfcba2c3b81fee70dcf38b140dcd5aa70680995fa3aa5 \ + --hash=sha256:9f5e772ed5fef25b3de9f2008fe67b92d46831bd2bc5bdc5dd6bfd06b83b316f \ + --hash=sha256:a03a4f3a19a189919c7055098790285cc5c5b0b3976f8d227aea39dbf9f8bfdb \ + --hash=sha256:a4d240d260a1aed814790bbe1f10a5ff31ce6c21bc78f0da4a1e8268d6c80dbd \ + --hash=sha256:a5a68357f686f8c4d527a2dc04f52e669c2fc1cbde38f6f7eb6a0e58cbd17cae \ + --hash=sha256:a998cc0aeeea4c6d5622a3754da5a493055d2d95186bad877b0a34ea6e6dbe0a \ + --hash=sha256:b67e47c5595b9224599016e333f5ec25392597a89d5744658f837d204e16c63e \ + --hash=sha256:b6f3b96617e9852703f5b633ea01315ca45c77e879584f283c44127f0f1ec564 \ + --hash=sha256:b7593fe7eb5feaa3fbb461ac79aac9f9fc0387a5ca8080b0c6fe2ca27b091afd \ + --hash=sha256:bb3f6562e89bad0110afbe64e485aac2462efdce6232cdec7862a095dc3412f6 \ + --hash=sha256:bb4f8c3c9a9f34423dba193f241f617b08ffc63e27f67159f60ae6baf2dcfe0f \ + --hash=sha256:bd63e7b74661fed317212fab774e2a648bc4bb09b35f25474f8e3325d2945cd7 \ + --hash=sha256:be753b225d159feb397bd0bf91ae86f689bad0da09d3b301478cd39b878ab31a \ + --hash=sha256:bf100a3288f9bb7f919b87eb84f87101e197535b9bd0e2c2b5b3179633324fee \ + --hash=sha256:c223d078112e90dc0e5c4e35b98b9584164bea9fbbd221c0b21c5241f6d51b62 \ + --hash=sha256:c3d8c679607220979434f494b139dfb00131ebf70bb406553d69c1ff01a5c33d \ + --hash=sha256:c43257717611ff5e9a1d79dce8e47566235ebda63328718d9b65dd640bc832ef \ + --hash=sha256:c832ec92c4499ac463186af72f9ed4d8daec15499b16f0a879b0d1c8e5cf4a3b \ + --hash=sha256:c8e2706ceb622bc63bac98ebb10ef5da80ed70fbd8a7999a5076de3afaef0fb1 \ + --hash=sha256:cb237bfd0ef4d5eb6a19e29f9e528ac67ac3be932ea6b44fb6cc09b9f3ecff78 \ + --hash=sha256:ccd7a6fca48ca9c131d9b0a2972a581e28b13416fc313fb98b6d24a03ce9a398 \ + --hash=sha256:d10a2ed46386e850bb3de503a54f9fe8192e5917fcbb143bfef653a9355e9a53 \ + --hash=sha256:d1443ba9acbb593fa7c1c29e011d7c9761545fe35e7652e85ce7f51a16f7e08d \ + --hash=sha256:d2287ac9360dec3837bfdad969963a5d073a09a85d898bd86bea82aa8876ef3c \ + --hash=sha256:d3c9f051b028810f5a87c88e5d6e9af3c0ff32ef62763bf15d29f740453ca909 \ + --hash=sha256:d72140ccf8a147e94274024ff6fd8fb7811354cf7ef88b1f0a988ebaa5bc774f \ + --hash=sha256:d938b4a840fb1523b9dfbbb454f652967f18e197569c32266d4d13f37244c3d9 \ + --hash=sha256:db622b999ffe49cb891f2fff3b340cdc2f9797d01a0a202a0973ba2562501d90 \ + --hash=sha256:e09fbecc007f7b6afdfb3b07ce5bd9f8494b6856dd4f577d26c66c391b829851 \ + --hash=sha256:e1fa280b3ad78eea5be86f94f461c04943d942697e0dac889fa18fff8f5f9147 \ + --hash=sha256:e4f18eca6028ffa62adbd185a8f1e1dd242f2e68164dba5c2b74a5204850b4cf \ + --hash=sha256:e825dbb7f84dfa24663dd75835e7257f8882629fc11f03ecf77d84a75134b864 \ + --hash=sha256:eaecf47ef10c72ece9a2a92118257da87e460e113b83cc0d2905cbbe931792b4 \ + --hash=sha256:ef6688db9bf91ba111ae734ba6ef1a063304a881749726e0d3575f5c10a9facf \ + --hash=sha256:f398ba4df52d30b1763f62eed9de5620dcde96e6f491f4c62686736b155aa6e4 \ + --hash=sha256:f80e2bb21bfab56ed7405c2d79d34b5dc0bc96c2c1d2a067b643a09fb756c43a \ + --hash=sha256:f83351e0f7dcdb14d7326c3d8d8c4e915fa685cbfdc6281f9470d97a04e9dfe4 \ + --hash=sha256:f8dca5590fec7a89ed6826fce625595279e586ead52e9e958d3237821fbc750c \ + --hash=sha256:fa3edde1aa8807de1d05934982416cb3ec46d1d4d91e280bcce7cca01c507992 \ + --hash=sha256:fea07c1a39a22614acb762e3fbbb4011f65eedafcb2948feeef641ac78b4ee5c \ + --hash=sha256:ff10896fa55167371960c5908150b434b71c876dfab97b69478f22c8b445ea19 \ + --hash=sha256:ff86d4e85188bba72cfb876df3e11fa243439882c55957184af44a35bd5880b7 \ + --hash=sha256:ffed1e4980889765c84a5d1a566159e363b71d6b6fbaf0bebc9d3c30bc016766 # via pytest-cov cryptography==43.0.3 \ --hash=sha256:0c580952eef9bf68c4747774cde7ec1d85a6e61de97281f2dba83c7d2c806362 \ @@ -843,51 +843,51 @@ cryptography==43.0.3 \ # snowflake-connector-python # types-pyopenssl # types-redis -dask[dataframe]==2025.11.0 \ - --hash=sha256:08c35a8146c05c93b34f83cf651009129c42ee71762da7ca452fb7308641c2b8 \ - --hash=sha256:23d59e624b80ee05b7cc8df858682cca58262c4c3b197ccf61da0f6543c8f7c3 +dask[dataframe]==2025.12.0 \ + --hash=sha256:4213ce9c5d51d6d89337cff69de35d902aa0bf6abdb8a25c942a4d0281f3a598 \ + --hash=sha256:8d478f2aabd025e2453cf733ad64559de90cf328c20209e4574e9543707c3e1b # via feast (setup.py) datasets==4.0.0 \ --hash=sha256:7ef95e62025fd122882dbce6cb904c8cd3fbc829de6669a5eb939c77d50e203d \ --hash=sha256:9657e7140a9050db13443ba21cb5de185af8af944479b00e7ff1e00a61c8dbf1 # via feast (setup.py) -db-dtypes==1.4.4 \ - --hash=sha256:26f53db5df1acd746b88c5647913a1b20f731c0af1b11abcb6bec5365f31098a \ - --hash=sha256:32c13039982656a8598a0835f25f0e07e34c9a423e471ee60c2553240b7fcf1e +db-dtypes==1.5.0 \ + --hash=sha256:abdbb2e4eb965800ed6f98af0c5c1cafff9063ace09114be2d26a7f046be2c8a \ + --hash=sha256:ad9e94243f53e104bc77dbf9ae44b580d83a770d3694483aba59c9767966daa5 # via # google-cloud-bigquery # pandas-gbq -debugpy==1.8.17 \ - --hash=sha256:045290c010bcd2d82bc97aa2daf6837443cd52f6328592698809b4549babcee1 \ - --hash=sha256:1440fd514e1b815edd5861ca394786f90eb24960eb26d6f7200994333b1d79e3 \ - --hash=sha256:17e456da14848d618662354e1dccfd5e5fb75deec3d1d48dc0aa0baacda55860 \ - --hash=sha256:24693179ef9dfa20dca8605905a42b392be56d410c333af82f1c5dff807a64cc \ - --hash=sha256:3a32c0af575749083d7492dc79f6ab69f21b2d2ad4cd977a958a07d5865316e4 \ - --hash=sha256:3bea3b0b12f3946e098cce9b43c3c46e317b567f79570c3f43f0b96d00788088 \ - --hash=sha256:5c59b74aa5630f3a5194467100c3b3d1c77898f9ab27e3f7dc5d40fc2f122670 \ - --hash=sha256:60c7dca6571efe660ccb7a9508d73ca14b8796c4ed484c2002abba714226cfef \ - --hash=sha256:6a4e9dacf2cbb60d2514ff7b04b4534b0139facbf2abdffe0639ddb6088e59cf \ - --hash=sha256:6c5cd6f009ad4fca8e33e5238210dc1e5f42db07d4b6ab21ac7ffa904a196420 \ - --hash=sha256:857c1dd5d70042502aef1c6d1c2801211f3ea7e56f75e9c335f434afb403e464 \ - --hash=sha256:893cba7bb0f55161de4365584b025f7064e1f88913551bcd23be3260b231429c \ - --hash=sha256:8deb4e31cd575c9f9370042876e078ca118117c1b5e1f22c32befcfbb6955f0c \ - --hash=sha256:a3aad0537cf4d9c1996434be68c6c9a6d233ac6f76c2a482c7803295b4e4f99a \ - --hash=sha256:b13eea5587e44f27f6c48588b5ad56dcb74a4f3a5f89250443c94587f3eb2ea1 \ - --hash=sha256:b532282ad4eca958b1b2d7dbcb2b7218e02cb934165859b918e3b6ba7772d3f4 \ - --hash=sha256:b69b6bd9dba6a03632534cdf67c760625760a215ae289f7489a452af1031fe1f \ - --hash=sha256:b75868b675949a96ab51abc114c7163f40ff0d8f7d6d5fd63f8932fd38e9c6d7 \ - --hash=sha256:bb1bbf92317e1f35afcf3ef0450219efb3afe00be79d8664b250ac0933b9015f \ - --hash=sha256:c41d2ce8bbaddcc0009cc73f65318eedfa3dbc88a8298081deb05389f1ab5542 \ - --hash=sha256:c6bdf134457ae0cac6fb68205776be635d31174eeac9541e1d0c062165c6461f \ - --hash=sha256:d3fce3f0e3de262a3b67e69916d001f3e767661c6e1ee42553009d445d1cd840 \ - --hash=sha256:e34ee844c2f17b18556b5bbe59e1e2ff4e86a00282d2a46edab73fd7f18f4a83 \ - --hash=sha256:e79a195f9e059edfe5d8bf6f3749b2599452d3e9380484cd261f6b7cd2c7c4da \ - --hash=sha256:e851beb536a427b5df8aa7d0c7835b29a13812f41e46292ff80b2ef77327355a \ - --hash=sha256:e8f8f61c518952fb15f74a302e068b48d9c4691768ade433e4adeea961993464 \ - --hash=sha256:eaa85bce251feca8e4c87ce3b954aba84b8c645b90f0e6a515c00394a9f5c0e7 \ - --hash=sha256:f14467edef672195c6f6b8e27ce5005313cb5d03c9239059bc7182b60c176e2d \ - --hash=sha256:f2ac8055a0c4a09b30b931100996ba49ef334c6947e7ae365cdd870416d7513e \ - --hash=sha256:fd723b47a8c08892b1a16b2c6239a8b96637c62a59b94bb5dab4bac592a58a8e +debugpy==1.8.19 \ + --hash=sha256:0601708223fe1cd0e27c6cce67a899d92c7d68e73690211e6788a4b0e1903f5b \ + --hash=sha256:14035cbdbb1fe4b642babcdcb5935c2da3b1067ac211c5c5a8fdc0bb31adbcaa \ + --hash=sha256:1e8c4d1bd230067bf1bbcdbd6032e5a57068638eb28b9153d008ecde288152af \ + --hash=sha256:327cb28c3ad9e17bc925efc7f7018195fd4787c2fe4b7af1eec11f1d19bdec62 \ + --hash=sha256:360ffd231a780abbc414ba0f005dad409e71c78637efe8f2bd75837132a41d38 \ + --hash=sha256:4468de0c30012d367944f0eab4ecb8371736e8ef9522a465f61214f344c11183 \ + --hash=sha256:6599cab8a783d1496ae9984c52cb13b7c4a3bd06a8e6c33446832a5d97ce0bee \ + --hash=sha256:66e3d2fd8f2035a8f111eb127fa508469dfa40928a89b460b41fd988684dc83d \ + --hash=sha256:76f566baaf7f3e06adbe67ffedccd2ee911d1e486f55931939ce3f0fe1090774 \ + --hash=sha256:783a519e6dfb1f3cd773a9bda592f4887a65040cb0c7bd38dde410f4e53c40d4 \ + --hash=sha256:7b62c0f015120ede25e5124a5f9d8a424e1208e3d96a36c89958f046ee21fff6 \ + --hash=sha256:806d6800246244004625d5222d7765874ab2d22f3ba5f615416cf1342d61c488 \ + --hash=sha256:85016a73ab84dea1c1f1dcd88ec692993bcbe4532d1b49ecb5f3c688ae50c606 \ + --hash=sha256:8e19a725f5d486f20e53a1dde2ab8bb2c9607c40c00a42ab646def962b41125f \ + --hash=sha256:91e35db2672a0abaf325f4868fcac9c1674a0d9ad9bb8a8c849c03a5ebba3e6d \ + --hash=sha256:a21bfdea088f713df05fa246ba0520f6ba44dd7eaec224742f51987a6979a648 \ + --hash=sha256:b1cb98e5325da3059ca24445fca48314bfddfdf65ce1b59ff07055e723f06bd2 \ + --hash=sha256:b605f17e89ba0ecee994391194285fada89cee111cfcd29d6f2ee11cbdc40976 \ + --hash=sha256:b7dd275cf2c99e53adb9654f5ae015f70415bbe2bacbe24cfee30d54b6aa03c5 \ + --hash=sha256:bccb1540a49cde77edc7ce7d9d075c1dbeb2414751bc0048c7a11e1b597a4c2e \ + --hash=sha256:c047177ab2d286451f242b855b650d313198c4a987140d4b35218b2855a64a4a \ + --hash=sha256:c30639998a9f9cd9699b4b621942c0179a6527f083c72351f95c6ab1728d5b73 \ + --hash=sha256:c5dcfa21de1f735a4f7ced4556339a109aa0f618d366ede9da0a3600f2516d8b \ + --hash=sha256:c9b9bf440141a36836bdbe4320a2b126bb38aafa85e1aed05d7bfbb0e2a278bf \ + --hash=sha256:d40c016c1f538dbf1762936e3aeb43a89b965069d9f60f9e39d35d9d25e6b809 \ + --hash=sha256:d9b6f633fd2865af2afba2beb0c1819b6ecd4aed1c8f90f5d1bbca3272306b10 \ + --hash=sha256:e24b1652a1df1ab04d81e7ead446a91c226de704ff5dde6bd0a0dbaab07aa3f2 \ + --hash=sha256:e9c68d9a382ec754dc05ed1d1b4ed5bd824b9f7c1a8cd1083adb84b3c93501de \ + --hash=sha256:eea7e5987445ab0b5ed258093722d5ecb8bb72217c5c9b1e21f64efe23ddebdb \ + --hash=sha256:fce6da15d73be5935b4438435c53adb512326a3e11e4f90793ea87cd9f018254 # via ipykernel decorator==5.2.1 \ --hash=sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360 \ @@ -929,9 +929,9 @@ docling==2.27.0 \ --hash=sha256:1288ed75b27e33bf94daff34faffc6d11b7d7ccc13e3df84fb24adad3991f72d \ --hash=sha256:faba35662612a2c687a3a463e501d95f645316436084af92a0442ce162429a3d # via feast (setup.py) -docling-core[chunking]==2.54.1 \ - --hash=sha256:2d22ee1cd8508fa7ffdd2e01ef30d7521390ff55ef240610f16be0cf54ffe73e \ - --hash=sha256:c6595e8b84f5e9de7a0a6298206d749f4be5730824604e684f204078a3689985 +docling-core[chunking]==2.57.0 \ + --hash=sha256:24b71172e8bc4fbe2b4213b29f51878114f4c13f25fc0bc9920168505c76c1a3 \ + --hash=sha256:398768b4d275ad2e11703ad9446fd0315a9a5fc8d09bc45ed207302d844d6ed5 # via # docling # docling-ibm-models @@ -1044,13 +1044,13 @@ durationpy==0.10 \ easyocr==1.7.2 \ --hash=sha256:5be12f9b0e595d443c9c3d10b0542074b50f0ec2d98b141a109cd961fd1c177c # via docling -elastic-transport==9.2.0 \ - --hash=sha256:0331466ca8febdb7d168c0fbf159294b0066492733b51da94f4dd28a0ee596cd \ - --hash=sha256:f52b961e58e6b76d488993286907f61a6ddccbdae8e0135ce8d369227b6282d8 +elastic-transport==9.2.1 \ + --hash=sha256:39e1a25e486af34ce7aa1bc9005d1c736f1b6fb04c9b64ea0604ded5a61fc1d4 \ + --hash=sha256:97d9abd638ba8aa90faa4ca1bf1a18bde0fe2088fbc8757f2eb7b299f205773d # via elasticsearch -elasticsearch==9.2.0 \ - --hash=sha256:87090fe98c515ec0fce82f633fe11d7e90e04d93581b6b3e05de29efe4cc8b74 \ - --hash=sha256:99656baa34b10130402b6c38429feddf7aee1c3247566e8f95f0d0267fe9f9ab +elasticsearch==9.2.1 \ + --hash=sha256:8665f5a0b4d29a7c2772851c05ea8a09279abb7928b7d727524613bd61d75958 \ + --hash=sha256:97f473418e8976611349757287ac982acf12f4e305182863d985d5a031c36830 # via feast (setup.py) entrypoints==0.4 \ --hash=sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4 \ @@ -1102,9 +1102,9 @@ faiss-cpu==1.10.0 \ --hash=sha256:e71f7e24d5b02d3a51df47b77bd10f394a1b48a8331d5c817e71e9e27a8a75ac \ --hash=sha256:f71c5860c860df2320299f9e4f2ca1725beb559c04acb1cf961ed24e6218277a # via feast (setup.py) -fastapi==0.124.0 \ - --hash=sha256:260cd178ad75e6d259991f2fd9b0fee924b224850079df576a3ba604ce58f4e6 \ - --hash=sha256:91596bdc6dde303c318f06e8d2bc75eafb341fc793a0c9c92c0bc1db1ac52480 +fastapi==0.128.0 \ + --hash=sha256:1cc179e1cef10a6be60ffe429f79b829dce99d8de32d7acb7e6c8dfdf7f2645a \ + --hash=sha256:aebd93f9716ee3b4f4fcfe13ffb7cf308d99c9f3ab5622d8877441072561582d # via # feast (setup.py) # fastapi-mcp @@ -1116,9 +1116,9 @@ fastjsonschema==2.21.2 \ --hash=sha256:1c797122d0a86c5cace2e54bf4e819c36223b552017172f32c5c024a6b77e463 \ --hash=sha256:b1eb43748041c880796cd077f1a07c3d94e93ae84bba5ed36800a33554ae05de # via nbformat -filelock==3.20.0 \ - --hash=sha256:339b4732ffda5cd79b13f4e2711a31b0365ce445d95d243bb996273d072546a2 \ - --hash=sha256:711e943b4ec6be42e1d4e6690b48dc175c822967466bb31c0c293f34334c13f4 +filelock==3.20.1 \ + --hash=sha256:15d9e9a67306188a44baa72f569d2bfd803076269365fdea0934385da4dc361a \ + --hash=sha256:b8360948b351b80f420878d8516519a2204b07aefcdcfd24912a5d33127f188c # via # datasets # huggingface-hub @@ -1294,9 +1294,9 @@ google-api-core[grpc]==2.28.1 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.43.0 \ - --hash=sha256:88228eee5fc21b62a1b5fe773ca15e67778cb07dc8363adcb4a8827b52d81483 \ - --hash=sha256:af628ba6fa493f75c7e9dbe9373d148ca9f4399b5ea29976519e0a3848eddd16 +google-auth==2.45.0 \ + --hash=sha256:82344e86dc00410ef5382d99be677c6043d72e502b625aa4f4afa0bdacca0f36 \ + --hash=sha256:90d3f41b6b72ea72dd9811e765699ee491ab24139f34ebf1ca2b9cc0c38708f3 # via # google-api-core # google-auth-oauthlib @@ -1315,19 +1315,19 @@ google-auth-oauthlib==1.2.2 \ # via # pandas-gbq # pydata-google-auth -google-cloud-bigquery[pandas]==3.38.0 \ - --hash=sha256:8afcb7116f5eac849097a344eb8bfda78b7cfaae128e60e019193dd483873520 \ - --hash=sha256:e06e93ff7b245b239945ef59cb59616057598d369edac457ebf292bd61984da6 +google-cloud-bigquery[pandas]==3.39.0 \ + --hash=sha256:cb375e1d63dea9bd5bf735e66024338f294159d43afdf63e1d023f5fcbbf55ea \ + --hash=sha256:dc7a64921465859105461b43c42562e38e797d7a73feb72b3cfc4865b7b1c5ef # via # feast (setup.py) # pandas-gbq -google-cloud-bigquery-storage==2.35.0 \ - --hash=sha256:c9bab6b8e41d6cb9806e589e65f320c89ada84f466e61566b7208d87924c1430 \ - --hash=sha256:f2e3a08882155de1e9ec53c71c5784eb1f25dc6514c535f5796c3c9eeac17d17 +google-cloud-bigquery-storage==2.36.0 \ + --hash=sha256:1769e568070db672302771d2aec18341de10712aa9c4a8c549f417503e0149f0 \ + --hash=sha256:d3c1ce9d2d3a4d7116259889dcbe3c7c70506f71f6ce6bbe54aa0a68bbba8f8f # via feast (setup.py) -google-cloud-bigtable==2.34.0 \ - --hash=sha256:773258b00cd3f9a3a35639cc38bd711f4f1418aaa0c8d70cb028978ed98dc2c2 \ - --hash=sha256:a4a8db4903840cd3f89fb19c060eea2e7c09c1265cb0538cfc11288dbc6000e4 +google-cloud-bigtable==2.35.0 \ + --hash=sha256:f355bfce1f239453ec2bb3839b0f4f9937cf34ef06ef29e1ca63d58fd38d0c50 \ + --hash=sha256:f5699012c5fea4bd4bdf7e80e5e3a812a847eb8f41bf8dc2f43095d6d876b83b # via feast (setup.py) google-cloud-core==2.5.0 \ --hash=sha256:67d977b41ae6c7211ee830c7912e41003ea8194bff15ae7d72fd6f51e57acabc \ @@ -1337,49 +1337,48 @@ google-cloud-core==2.5.0 \ # google-cloud-bigtable # google-cloud-datastore # google-cloud-storage -google-cloud-datastore==2.21.0 \ - --hash=sha256:eee454dd4a55f5b327f9f344928ff1a09a6f77c23d5e3d908ad31a13cc2f4073 \ - --hash=sha256:f303f27cd1983383f20bd227019cd8a7897419e0ec6b878367c58c66245f9d9b +google-cloud-datastore==2.23.0 \ + --hash=sha256:24a1b1d29b902148fe41b109699f76fd3aa60591e9d547c0f8b87d7bf9ff213f \ + --hash=sha256:80049883a4ae928fdcc661ba6803ec267665dc0e6f3ce2da91441079a6bb6387 # via feast (setup.py) google-cloud-storage==2.19.0 \ --hash=sha256:aeb971b5c29cf8ab98445082cbfe7b161a1f48ed275822f59ed3f1524ea54fba \ --hash=sha256:cd05e9e7191ba6cb68934d8eb76054d9be4562aa89dbc4236feee4d7d51342b2 # via feast (setup.py) -google-crc32c==1.7.1 \ - --hash=sha256:0f99eaa09a9a7e642a61e06742856eec8b19fc0037832e03f941fe7cf0c8e4db \ - --hash=sha256:19eafa0e4af11b0a4eb3974483d55d2d77ad1911e6cf6f832e1574f6781fd337 \ - --hash=sha256:1c67ca0a1f5b56162951a9dae987988679a7db682d6f97ce0f6381ebf0fbea4c \ - --hash=sha256:1f2b3522222746fff0e04a9bd0a23ea003ba3cccc8cf21385c564deb1f223242 \ - --hash=sha256:22beacf83baaf59f9d3ab2bbb4db0fb018da8e5aebdce07ef9f09fce8220285e \ - --hash=sha256:2bff2305f98846f3e825dbeec9ee406f89da7962accdb29356e4eadc251bd472 \ - --hash=sha256:2d73a68a653c57281401871dd4aeebbb6af3191dcac751a76ce430df4d403194 \ - --hash=sha256:32d1da0d74ec5634a05f53ef7df18fc646666a25efaaca9fc7dcfd4caf1d98c3 \ - --hash=sha256:3bda0fcb632d390e3ea8b6b07bf6b4f4a66c9d02dcd6fbf7ba00a197c143f582 \ - --hash=sha256:6335de12921f06e1f774d0dd1fbea6bf610abe0887a1638f64d694013138be5d \ - --hash=sha256:6b211ddaf20f7ebeec5c333448582c224a7c90a9d98826fbab82c0ddc11348e6 \ - --hash=sha256:6efb97eb4369d52593ad6f75e7e10d053cf00c48983f7a973105bc70b0ac4d82 \ - --hash=sha256:6fbab4b935989e2c3610371963ba1b86afb09537fd0c633049be82afe153ac06 \ - --hash=sha256:713121af19f1a617054c41f952294764e0c5443d5a5d9034b2cd60f5dd7e0349 \ - --hash=sha256:754561c6c66e89d55754106739e22fdaa93fafa8da7221b29c8b8e8270c6ec8a \ - --hash=sha256:7cc81b3a2fbd932a4313eb53cc7d9dde424088ca3a0337160f35d91826880c1d \ - --hash=sha256:85fef7fae11494e747c9fd1359a527e5970fc9603c90764843caabd3a16a0a48 \ - --hash=sha256:905a385140bf492ac300026717af339790921f411c0dfd9aa5a9e69a08ed32eb \ - --hash=sha256:9fc196f0b8d8bd2789352c6a522db03f89e83a0ed6b64315923c396d7a932315 \ - --hash=sha256:a8e9afc74168b0b2232fb32dd202c93e46b7d5e4bf03e66ba5dc273bb3559589 \ - --hash=sha256:b07d48faf8292b4db7c3d64ab86f950c2e94e93a11fd47271c28ba458e4a0d76 \ - --hash=sha256:b6d86616faaea68101195c6bdc40c494e4d76f41e07a37ffdef270879c15fb65 \ - --hash=sha256:b7491bdc0c7564fcf48c0179d2048ab2f7c7ba36b84ccd3a3e1c3f7a72d3bba6 \ - --hash=sha256:bb5e35dcd8552f76eed9461a23de1030920a3c953c1982f324be8f97946e7127 \ - --hash=sha256:d68e17bad8f7dd9a49181a1f5a8f4b251c6dbc8cc96fb79f1d321dfd57d66f53 \ - --hash=sha256:dcdf5a64adb747610140572ed18d011896e3b9ae5195f2514b7ff678c80f1603 \ - --hash=sha256:df8b38bdaf1629d62d51be8bdd04888f37c451564c2042d36e5812da9eff3c35 \ - --hash=sha256:e10554d4abc5238823112c2ad7e4560f96c7bf3820b202660373d769d9e6e4c9 \ - --hash=sha256:e42e20a83a29aa2709a0cf271c7f8aefaa23b7ab52e53b322585297bb94d4638 \ - --hash=sha256:ed66cbe1ed9cbaaad9392b5259b3eba4a9e565420d734e6238813c428c3336c9 \ - --hash=sha256:ee6547b657621b6cbed3562ea7826c3e11cab01cd33b74e1f677690652883e77 \ - --hash=sha256:f2226b6a8da04f1d9e61d3e357f2460b9551c5e6950071437e122c958a18ae14 \ - --hash=sha256:fa8136cc14dd27f34a3221c0f16fd42d8a40e4778273e61a3c19aedaa44daf6b \ - --hash=sha256:fc5319db92daa516b653600794d5b9f9439a9a121f3e162f94b0e1891c7933cb +google-crc32c==1.8.0 \ + --hash=sha256:014a7e68d623e9a4222d663931febc3033c5c7c9730785727de2a81f87d5bab8 \ + --hash=sha256:01f126a5cfddc378290de52095e2c7052be2ba7656a9f0caf4bcd1bfb1833f8a \ + --hash=sha256:0470b8c3d73b5f4e3300165498e4cf25221c7eb37f1159e221d1825b6df8a7ff \ + --hash=sha256:119fcd90c57c89f30040b47c211acee231b25a45d225e3225294386f5d258288 \ + --hash=sha256:14f87e04d613dfa218d6135e81b78272c3b904e2a7053b841481b38a7d901411 \ + --hash=sha256:17446feb05abddc187e5441a45971b8394ea4c1b6efd88ab0af393fd9e0a156a \ + --hash=sha256:19b40d637a54cb71e0829179f6cb41835f0fbd9e8eb60552152a8b52c36cbe15 \ + --hash=sha256:2a3dc3318507de089c5384cc74d54318401410f82aa65b2d9cdde9d297aca7cb \ + --hash=sha256:3b9776774b24ba76831609ffbabce8cdf6fa2bd5e9df37b594221c7e333a81fa \ + --hash=sha256:3cc0c8912038065eafa603b238abf252e204accab2a704c63b9e14837a854962 \ + --hash=sha256:3d488e98b18809f5e322978d4506373599c0c13e6c5ad13e53bb44758e18d215 \ + --hash=sha256:3ebb04528e83b2634857f43f9bb8ef5b2bbe7f10f140daeb01b58f972d04736b \ + --hash=sha256:450dc98429d3e33ed2926fc99ee81001928d63460f8538f21a5d6060912a8e27 \ + --hash=sha256:4b8286b659c1335172e39563ab0a768b8015e88e08329fa5321f774275fc3113 \ + --hash=sha256:57a50a9035b75643996fbf224d6661e386c7162d1dfdab9bc4ca790947d1007f \ + --hash=sha256:61f58b28e0b21fcb249a8247ad0db2e64114e201e2e9b4200af020f3b6242c9f \ + --hash=sha256:6f35aaffc8ccd81ba3162443fabb920e65b1f20ab1952a31b13173a67811467d \ + --hash=sha256:71734788a88f551fbd6a97be9668a0020698e07b2bf5b3aa26a36c10cdfb27b2 \ + --hash=sha256:864abafe7d6e2c4c66395c1eb0fe12dc891879769b52a3d56499612ca93b6092 \ + --hash=sha256:86cfc00fe45a0ac7359e5214a1704e51a99e757d0272554874f419f79838c5f7 \ + --hash=sha256:87b0072c4ecc9505cfa16ee734b00cd7721d20a0f595be4d40d3d21b41f65ae2 \ + --hash=sha256:87fa445064e7db928226b2e6f0d5304ab4cd0339e664a4e9a25029f384d9bb93 \ + --hash=sha256:89c17d53d75562edfff86679244830599ee0a48efc216200691de8b02ab6b2b8 \ + --hash=sha256:8b3f68782f3cbd1bce027e48768293072813469af6a61a86f6bb4977a4380f21 \ + --hash=sha256:a428e25fb7691024de47fecfbff7ff957214da51eddded0da0ae0e0f03a2cf79 \ + --hash=sha256:b0d1a7afc6e8e4635564ba8aa5c0548e3173e41b6384d7711a9123165f582de2 \ + --hash=sha256:ba6aba18daf4d36ad4412feede6221414692f44d17e5428bdd81ad3fc1eee5dc \ + --hash=sha256:cb5c869c2923d56cb0c8e6bcdd73c009c36ae39b652dbe46a05eb4ef0ad01454 \ + --hash=sha256:d511b3153e7011a27ab6ee6bb3a5404a55b994dc1a7322c0b87b29606d9790e2 \ + --hash=sha256:db3fe8eaf0612fc8b20fa21a5f25bd785bc3cd5be69f8f3412b0ac2ffd49e733 \ + --hash=sha256:e6584b12cb06796d285d09e33f63309a09368b9d806a551d8036a4207ea43697 \ + --hash=sha256:f4b51844ef67d6cf2e9425983274da75f18b1597bb2c998e1c0a0e8d46f8f651 \ + --hash=sha256:f639065ea2042d5c034bf258a9f085eaa7af0cd250667c0635a3118e8f92c69c # via # google-cloud-bigtable # google-cloud-storage @@ -1466,6 +1465,7 @@ grpcio==1.62.3 \ # google-api-core # google-cloud-bigquery # google-cloud-bigquery-storage + # google-cloud-datastore # googleapis-common-protos # grpc-google-iam-v1 # grpcio-health-checking @@ -1806,9 +1806,9 @@ imagesize==1.4.1 \ --hash=sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b \ --hash=sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a # via sphinx -importlib-metadata==8.7.0 \ - --hash=sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000 \ - --hash=sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd +importlib-metadata==8.7.1 \ + --hash=sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb \ + --hash=sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151 # via # build # dask @@ -1869,9 +1869,9 @@ jmespath==1.0.1 \ # aiobotocore # boto3 # botocore -joblib==1.5.2 \ - --hash=sha256:3faa5c39054b2f03ca547da9b2f52fde67c06240c31853f306aea97f13647b55 \ - --hash=sha256:4e1f0bdbb987e6d843c70cf43714cb276623def372df3c22fe5266b2670bc241 +joblib==1.5.3 \ + --hash=sha256:5fc3c5039fc5ca8c0276333a188bbd59d6b7ab37fe6632daa76bc7f9ec18e713 \ + --hash=sha256:8561a3269e6801106863fd0d6d84bb737be9e7631e33aaed3fb9ce5953688da3 # via scikit-learn json5==0.12.1 \ --hash=sha256:b2743e77b3242f8d03c143dd975a6ec7c52e2f2afe76ed934e53503dd4ad4990 \ @@ -1951,9 +1951,9 @@ jupyter-server-terminals==0.5.3 \ --hash=sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa \ --hash=sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269 # via jupyter-server -jupyterlab==4.5.0 \ - --hash=sha256:88e157c75c1afff64c7dc4b801ec471450b922a4eae4305211ddd40da8201c8a \ - --hash=sha256:aec33d6d8f1225b495ee2cf20f0514f45e6df8e360bdd7ac9bace0b7ac5177ea +jupyterlab==4.5.1 \ + --hash=sha256:09da1ddfbd9eec18b5101dbb8515612aa1e47443321fb99503725a88e93d20d9 \ + --hash=sha256:31b059de96de0754ff1f2ce6279774b6aab8c34d7082e9752db58207c99bd514 # via notebook jupyterlab-pygments==0.3.0 \ --hash=sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d \ @@ -2297,9 +2297,9 @@ markupsafe==3.0.3 \ # jinja2 # nbconvert # werkzeug -marshmallow==3.26.1 \ - --hash=sha256:3350409f20a70a7e4e11a27661187b77cdcaeb20abca41c1454fe33636bea09c \ - --hash=sha256:e6d8affb6cb61d39d26402096dc0aee12d5a26d490a121f118d2e81dc0719dc6 +marshmallow==3.26.2 \ + --hash=sha256:013fa8a3c4c276c24d26d84ce934dc964e2aa794345a0f8c7e5a7191482c8a73 \ + --hash=sha256:bbe2adb5a03e6e3571b573f42527c6fe926e17467833660bebd11593ab8dfd57 # via great-expectations matplotlib-inline==0.2.1 \ --hash=sha256:d56ce5156ba6085e00a9d54fead6ed29a9c47e215cd1bba2e976ef39f5710a76 \ @@ -2307,9 +2307,9 @@ matplotlib-inline==0.2.1 \ # via # ipykernel # ipython -mcp==1.23.3 \ - --hash=sha256:32768af4b46a1b4f7df34e2bfdf5c6011e7b63d7f1b0e321d0fdef4cd6082031 \ - --hash=sha256:b3b0da2cc949950ce1259c7bfc1b081905a51916fcd7c8182125b85e70825201 +mcp==1.25.0 \ + --hash=sha256:56310361ebf0364e2d438e5b45f7668cbb124e158bb358333cd06e49e83a6802 \ + --hash=sha256:b37c38144a666add0862614cc79ec276e97d72aa8ca26d622818d4e278b9721a # via fastapi-mcp mdurl==0.1.2 \ --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ @@ -2327,9 +2327,9 @@ minio==7.2.11 \ --hash=sha256:153582ed52ff3b5005ba558e1f25bfe1e9e834f7f0745e594777f28e3e81e1a0 \ --hash=sha256:4db95a21fe1e2022ec975292d8a1f83bd5b18f830d23d42a4518ac7a5281d7c5 # via feast (setup.py) -mistune==3.1.4 \ - --hash=sha256:93691da911e5d9d2e23bc54472892aff676df27a75274962ff9edc210364266d \ - --hash=sha256:b5a7f801d389f724ec702840c11d8fc48f2b33519102fc7ee739e8177b672164 +mistune==3.2.0 \ + --hash=sha256:708487c8a8cdd99c9d90eb3ed4c3ed961246ff78ac82f03418f5183ab70e398a \ + --hash=sha256:febdc629a3c78616b94393c6580551e0e34cc289987ec6c35ed3f4be42d0eee1 # via # great-expectations # nbconvert @@ -2752,9 +2752,9 @@ mypy-protobuf==3.3.0 \ --hash=sha256:15604f6943b16c05db646903261e3b3e775cf7f7990b7c37b03d043a907b650d \ --hash=sha256:24f3b0aecb06656e983f58e07c732a90577b9d7af3e1066fc2b663bbf0370248 # via feast (setup.py) -nbclient==0.10.2 \ - --hash=sha256:4ffee11e788b4a27fabeb7955547e4318a5298f34342a4bfd01f2e1faaeadc3d \ - --hash=sha256:90b7fc6b810630db87a6d0c2250b1f0ab4cf4d3c27a299b0cde78a4ed3fd9193 +nbclient==0.10.4 \ + --hash=sha256:1e54091b16e6da39e297b0ece3e10f6f29f4ac4e8ee515d29f8a7099bd6553c9 \ + --hash=sha256:9162df5a7373d70d606527300a95a975a47c137776cd942e52d9c7e29ff83440 # via nbconvert nbconvert==7.16.6 \ --hash=sha256:1375a7b67e0c2883678c48e506dc320febb57685e5ee67faa51b18a90f3a712b \ @@ -2799,13 +2799,13 @@ ninja==1.13.0 \ --hash=sha256:fb46acf6b93b8dd0322adc3a4945452a4e774b75b91293bafcc7b7f8e6517dfa \ --hash=sha256:fb8ee8719f8af47fed145cced4a85f0755dd55d45b2bddaf7431fa89803c5f3e # via easyocr -nodeenv==1.9.1 \ - --hash=sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f \ - --hash=sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9 +nodeenv==1.10.0 \ + --hash=sha256:5bb13e3eed2923615535339b3c620e76779af4cb4c6a90deccc9e36b274d3827 \ + --hash=sha256:996c191ad80897d076bdfba80a41994c2b47c68e224c542b48feba42ba00f8bb # via pre-commit -notebook==7.5.0 \ - --hash=sha256:3300262d52905ca271bd50b22617681d95f08a8360d099e097726e6d2efb5811 \ - --hash=sha256:3b27eaf9913033c28dde92d02139414c608992e1df4b969c843219acf2ff95e4 +notebook==7.5.1 \ + --hash=sha256:b2fb4cef4d47d08c33aecce1c6c6e84be05436fbd791f88fce8df9fbca088b75 \ + --hash=sha256:f4e2451c19910c33b88709b84537e11f6368c1cdff1aa0c43db701aea535dd44 # via great-expectations notebook-shim==0.2.4 \ --hash=sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef \ @@ -3439,9 +3439,9 @@ propcache==0.4.1 \ # via # aiohttp # yarl -proto-plus==1.26.1 \ - --hash=sha256:13285478c2dcf2abb829db158e1047e2f1e8d63a077d94263c2b88b043c75a66 \ - --hash=sha256:21a515a4c4c0088a773899e23c7bbade3d18f9c66c73edd4c7ee3816bc96a012 +proto-plus==1.27.0 \ + --hash=sha256:1baa7f81cf0f8acb8bc1f6d085008ba4171eaf669629d1b6d1673b21ed1c0a82 \ + --hash=sha256:873af56dd0d7e91836aee871e5799e1c6f1bda86ac9a983e0bb9f0c266a568c4 # via # google-api-core # google-cloud-bigquery-storage @@ -4074,9 +4074,9 @@ pyopenssl==25.1.0 \ --hash=sha256:2b11f239acc47ac2e5aca04fd7fa829800aeee22a2eb30d744572a157bd8a1ab \ --hash=sha256:8d031884482e0c67ee92bf9a4d8cceb08d92aba7136432ffb0703c5280fc205b # via snowflake-connector-python -pyparsing==3.2.5 \ - --hash=sha256:2df8d5b7b2802ef88e8d016a2eb9c7aeaa923529cd251ed0fe4608275d4105b6 \ - --hash=sha256:e38a4f02064cf41fe6593d328d0512495ad1f3d8a91c4f73fc401b3079a59a5e +pyparsing==3.3.1 \ + --hash=sha256:023b5e7e5520ad96642e2c6db4cb683d3970bd640cdf7115049a6e9c3682df82 \ + --hash=sha256:47fad0f17ac1e2cad3de3b458570fbc9b03560aa029ed5e16ee5554da9a2251c # via great-expectations pypdfium2==4.30.0 \ --hash=sha256:0dfa61421b5eb68e1188b0b2231e7ba35735aef2d867d86e48ee6cab6975195e \ @@ -4099,8 +4099,8 @@ pyproject-hooks==1.2.0 \ # via # build # pip-tools -pyspark==4.0.1 \ - --hash=sha256:9d1f22d994f60369228397e3479003ffe2dd736ba79165003246ff7bd48e2c73 +pyspark==4.1.0 \ + --hash=sha256:09c714ada88dfac3e1213c066617c6f473c1e22fbe279855028f77e12434147d # via feast (setup.py) pytest==7.4.4 \ --hash=sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280 \ @@ -4297,9 +4297,9 @@ python-keycloak==4.2.2 \ --hash=sha256:1d43a1accd4a038ed39317fcb3eb78211df6c75bbcbc4c482c99ee76327136f2 \ --hash=sha256:5137fd87c69031a372a578df96bae96b9aead2c9dad976613bc978e9e0246a1e # via feast (setup.py) -python-multipart==0.0.20 \ - --hash=sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104 \ - --hash=sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13 +python-multipart==0.0.21 \ + --hash=sha256:7137ebd4d3bbf70ea1622998f902b97a29434a9e8dc40eb203bbcf7c2a2cba92 \ + --hash=sha256:cf7a6713e01c87aa35387f4774e812c4361150938d20d232800f75ffcf266090 # via mcp python-pptx==1.0.2 \ --hash=sha256:160838e0b8565a8b1f67947675886e9fea18aa5e795db7ae531606d68e785cba \ @@ -4503,26 +4503,26 @@ pyzmq==27.1.0 \ # ipykernel # jupyter-client # jupyter-server -qdrant-client==1.16.1 \ - --hash=sha256:1eefe89f66e8a468ba0de1680e28b441e69825cfb62e8fb2e457c15e24ce5e3b \ - --hash=sha256:676c7c10fd4d4cb2981b8fcb32fd764f5f661b04b7334d024034d07212f971fd +qdrant-client==1.16.2 \ + --hash=sha256:442c7ef32ae0f005e88b5d3c0783c63d4912b97ae756eb5e052523be682f17d3 \ + --hash=sha256:ca4ef5f9be7b5eadeec89a085d96d5c723585a391eb8b2be8192919ab63185f0 # via feast (setup.py) -ray==2.52.1 \ - --hash=sha256:08eb8f5fd55292ba6bee363a32491136a5e54af54e007f81e0603986fbea41a4 \ - --hash=sha256:24694e60cdc7770b90f123cc578cabb9d1a231c1fe673b5da0027b118de45846 \ - --hash=sha256:2b57ef272a2a0a0dbae6d18d70aa541eab620b4fe3b44d50466d3a533c16f9d9 \ - --hash=sha256:4e8478544fef69a17d865431c0bebdcfeff7c0f76a306f29b73c3bc3cbb0bdb9 \ - --hash=sha256:65bf461fdfe4ffa667c46f9455f8740b2ad6c1fa471b461d5f5cf6b7baf177b5 \ - --hash=sha256:6831592fedf0a122016f5dab4b67d85fa3d4db3b21f588d18834b5c031396d1c \ - --hash=sha256:8045172ad3fcff62b9dab9a4cd2e0991ad0e27fc814fe625a8d3a120306651d6 \ - --hash=sha256:843c0108ad72bb7fc6c23a22e29e6099546a5eaad3ad675c78a146d9080f6ec6 \ - --hash=sha256:993194a8be70540e0f819862031bbf19a64401fbe6c31b42065fd313ba466d34 \ - --hash=sha256:a5a3c268d45060c50cd029979ecc5f1eaaec040b19fa88dd4fe9e927d19ff13e \ - --hash=sha256:b3f9e61b799fb3cc8fd7077a3d2eb676ddfef7db644f6b6a2b657c5c3214cf19 \ - --hash=sha256:b5bc29548abb0a0a7ae9e6ff3b0ccca2824edaf011a4336e15a32793d574fbfd \ - --hash=sha256:bbe492c780a39a64bd3d0766cad10d54cf12222df88d287ec2d8f2d52de37c79 \ - --hash=sha256:e3826aeb4e4399de0c6885bd8be7ce2f629fa0010f0013f1183e0726b3d25e40 \ - --hash=sha256:f59e3b2d1a1466ac0778f2c6fac9ccb5f30107d77e3dddd1d60167248d268474 +ray==2.53.0 \ + --hash=sha256:14f46363e9b4cf0c1c8b4d8623ec337c5bd408377831b5e5b50067930137bbca \ + --hash=sha256:4108280d8a1cb90d7d68e5c954c35e63b8bb9a4ba15f88c5e7da0e2025647712 \ + --hash=sha256:4a1bb3fe09ab4cd0d16ddc96b9f60c9ed83b3f93b87aa8506e0d3b746fd4e825 \ + --hash=sha256:4db914a0a6dd608fa49c066929a1282745a2dbd73caee67d7b80fe684ca65bdd \ + --hash=sha256:4dbb5fce1364763f29741055f50abe33cf726397141f9cc0e845dd3cc963e455 \ + --hash=sha256:65e2ce58d3dc6baa3cf45824d889c1968ebde565ee54dfd80a98af8f31af8e4a \ + --hash=sha256:7196e5358dfcc8211be864f45e6dfe4827202df294af3c7a76ff8fbc080e0522 \ + --hash=sha256:73dbbaa7962a7f5e38aa8cf9483e0e9817205e989aa3dc859c738c2af1ae01df \ + --hash=sha256:85b472ab6fb8f1189f8cef81913fd91b24dd69b3fa7dcca7e144827bd924f6c0 \ + --hash=sha256:90faf630d20b6abf3135997fb3edb5842134aff92e04ee709865db04816d97ef \ + --hash=sha256:a0bbb98b0b0f25a3ee075ca10171e1260e70b6bc690cd509ecd7ce1228af854d \ + --hash=sha256:b828c147f9ff2f277b1d254e4fe9a746fdfaee7e313a93a97c7edf4dae9b81a4 \ + --hash=sha256:bd3ec4c342776ddac23ae2b108c64f5939f417ccc4875900d586c7c978463269 \ + --hash=sha256:d8b95d047d947493803fb8417aea31225dcacdab15afdc75b8a238901949d457 \ + --hash=sha256:eb000c17f7301071fdd15c44c4cd3ac0f7953bb4c7c227e61719fe7048195bcd # via feast (setup.py) redis==4.6.0 \ --hash=sha256:585dc516b9eb042a619ef0a39c3d7d55fe81bdb4df09a52c9cdde0d07bf1aa7d \ @@ -4861,26 +4861,26 @@ ruamel-yaml==0.17.17 \ --hash=sha256:9751de4cbb57d4bfbf8fc394e125ed4a2f170fbff3dc3d78abf50be85924f8be \ --hash=sha256:9af3ec5d7f8065582f3aa841305465025d0afd26c5fb54e15b964e11838fc74f # via great-expectations -ruff==0.14.8 \ - --hash=sha256:15f04cb45c051159baebb0f0037f404f1dc2f15a927418f29730f411a79bc4e7 \ - --hash=sha256:1af35c2d62633d4da0521178e8a2641c636d2a7153da0bac1b30cfd4ccd91344 \ - --hash=sha256:1d62cb310c4fbcb9ee4ac023fe17f984ae1e12b8a4a02e3d21489f9a2a5f730c \ - --hash=sha256:21d48fa744c9d1cb8d71eb0a740c4dd02751a5de9db9a730a8ef75ca34cf138e \ - --hash=sha256:25add4575ffecc53d60eed3f24b1e934493631b48ebbc6ebaf9d8517924aca4b \ - --hash=sha256:2c87e09b3cd9d126fc67a9ecd3b5b1d3ded2b9c7fce3f16e315346b9d05cfb52 \ - --hash=sha256:2e2fcbefe91f9fad0916850edf0854530c15bd1926b6b779de47e9ab619ea38f \ - --hash=sha256:4c943d847b7f02f7db4201a0600ea7d244d8a404fbb639b439e987edcf2baf9a \ - --hash=sha256:774ed0dd87d6ce925e3b8496feb3a00ac564bea52b9feb551ecd17e0a23d1eed \ - --hash=sha256:7aaf2974f378e6b01d1e257c6948207aec6a9b5ba53fab23d0182efb887a0e4a \ - --hash=sha256:8cdb162a7159f4ca36ce980a18c43d8f036966e7f73f866ac8f493b75e0c27e9 \ - --hash=sha256:965a582c93c63fe715fd3e3f8aa37c4b776777203d8e1d8aa3cc0c14424a4b99 \ - --hash=sha256:9eeb0b24242b5bbff3011409a739929f497f3fb5fe3b5698aba5e77e8c833097 \ - --hash=sha256:a9d70721066a296f45786ec31916dc287b44040f553da21564de0ab4d45a869b \ - --hash=sha256:cb6e8bf7b4f627548daa1b69283dac5a296bfe9ce856703b03130732e20ddfe2 \ - --hash=sha256:e5758ca513c43ad8a4ef13f0f081f80f08008f410790f3611a21a92421ab045b \ - --hash=sha256:ec071e9c82eca417f6111fd39f7043acb53cd3fde9b1f95bbed745962e345afb \ - --hash=sha256:eed28f6fafcc9591994c42254f5a5c5ca40e69a30721d2ab18bb0bb3baac3ab6 \ - --hash=sha256:f74f7ba163b6e85a8d81a590363bf71618847e5078d90827749bfda1d88c9cdf +ruff==0.14.10 \ + --hash=sha256:104c49fc7ab73f3f3a758039adea978869a918f31b73280db175b43a2d9b51d6 \ + --hash=sha256:1484983559f026788e3a5c07c81ef7d1e97c1c78ed03041a18f75df104c45405 \ + --hash=sha256:16a01dfb7b9e4eee556fbfd5392806b1b8550c9b4a9f6acd3dbe6812b193c70a \ + --hash=sha256:213db2b2e44be8625002dbea33bb9c60c66ea2c07c084a00d55732689d697a7f \ + --hash=sha256:466297bd73638c6bdf06485683e812db1c00c7ac96d4ddd0294a338c62fdc154 \ + --hash=sha256:4bb98fcbbc61725968893682fd4df8966a34611239c9fd07a1f6a07e7103d08e \ + --hash=sha256:59aabd2e2c4fd614d2862e7939c34a532c04f1084476d6833dddef4afab87e9f \ + --hash=sha256:5bcf45b681e9f1ee6445d317ce1fa9d6cba9a6049542d1c3d5b5958986be8830 \ + --hash=sha256:674f9be9372907f7257c51f1d4fc902cb7cf014b9980152b802794317941f08f \ + --hash=sha256:6987ebe0501ae4f4308d7d24e2d0fe3d7a98430f5adfd0f1fead050a740a3a77 \ + --hash=sha256:7165d31a925b7a294465fa81be8c12a0e9b60fb02bf177e79067c867e71f8b1f \ + --hash=sha256:7a3ce585f2ade3e1f29ec1b92df13e3da262178df8c8bdf876f48fa0e8316c49 \ + --hash=sha256:9a2e830f075d1a42cd28420d7809ace390832a490ed0966fe373ba288e77aaf4 \ + --hash=sha256:b914c40ab64865a17a9a5b67911d14df72346a634527240039eb3bd650e5979d \ + --hash=sha256:c561695675b972effb0c0a45db233f2c816ff3da8dcfbe7dfc7eed625f218935 \ + --hash=sha256:c70427132db492d25f982fffc8d6c7535cc2fd2c83fc8888f05caaa248521e60 \ + --hash=sha256:d85713d522348837ef9df8efca33ccb8bd6fcfc86a2cde3ccb4bc9d28a18003d \ + --hash=sha256:e51d046cf6dda98a4633b8a8a771451107413b0f07183b2bef03f075599e44e6 \ + --hash=sha256:f24b47993a9d8cb858429e97bdf8544c78029f09b520af615c1d261bf827001d # via feast (setup.py) s3transfer==0.13.1 \ --hash=sha256:a981aa7429be23fe6dfc13e80e4020057cbab622b08c0315288758d67cabc724 \ @@ -5171,9 +5171,9 @@ sortedcontainers==2.4.0 \ --hash=sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88 \ --hash=sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0 # via snowflake-connector-python -soupsieve==2.8 \ - --hash=sha256:0cc76456a30e20f5d7f2e14a98a4ae2ee4e5abdc7c5ea0aafe795f344bc7984c \ - --hash=sha256:e2dd4a40a628cb5f28f6d4b0db8800b8f581b65bb380b97de22ba5ca8d72572f +soupsieve==2.8.1 \ + --hash=sha256:4cf733bc50fa805f5df4b8ef4740fc0e0fa6218cf3006269afd3f9d6d80fd350 \ + --hash=sha256:a11fe2a6f3d76ab3cf2de04eb339c1be5b506a8a47f2ceb6d139803177f85434 # via beautifulsoup4 sphinx==6.2.1 \ --hash=sha256:6d56a34697bb749ffa0152feafc4b19836c755d90a7c59b72bc7dfd371b9cc6b \ @@ -5215,12 +5215,14 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:1d8b4a7a8c9b537509d56d5cd10ecdcfbb95912d72480c8861524efecc6a3fff \ --hash=sha256:215f0528b914e5c75ef2559f69dca86878a3beeb0c1be7279d77f18e8d180ed4 \ --hash=sha256:2c0b74aa79e2deade948fe8593654c8ef4228c44ba862bb7c9585c8e0db90f33 \ + --hash=sha256:2e90a344c644a4fa871eb01809c32096487928bd2038bf10f3e4515cb688cc56 \ --hash=sha256:3c5f76216e7b85770d5bb5130ddd11ee89f4d52b11783674a662c7dd57018177 \ --hash=sha256:470daea2c1ce73910f08caf10575676a37159a6d16c4da33d0033546bddebc9b \ --hash=sha256:4748601c8ea959e37e03d13dcda4a44837afcd1b21338e637f7c935b8da06177 \ --hash=sha256:4b6bec67ca45bc166c8729910bd2a87f1c0407ee955df110d78948f5b5827e8a \ --hash=sha256:5225a288e4c8cc2308dbdd874edad6e7d0fd38eac1e9e5f23503425c8eee20d0 \ --hash=sha256:56ead1f8dfb91a54a28cd1d072c74b3d635bcffbd25e50786533b822d4f2cde2 \ + --hash=sha256:5964f832431b7cdfaaa22a660b4c7eb1dfcd6ed41375f67fd3e3440fd95cb3cc \ --hash=sha256:59a8b8bd9c6bedf81ad07c8bd5543eedca55fe9b8780b2b628d495ba55f8db1e \ --hash=sha256:672c45cae53ba88e0dad74b9027dddd09ef6f441e927786b05bec75d949fbb2e \ --hash=sha256:6d0beadc2535157070c9c17ecf25ecec31e13c229a8f69196d7590bde8082bf1 \ @@ -5239,7 +5241,9 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:b8c8b41b97fba5f62349aa285654230296829672fc9939cd7f35aab246d1c08b \ --hash=sha256:ba547ac0b361ab4f1608afbc8432db669bd0819b3e12e29fb5fa9529a8bba81d \ --hash=sha256:c1c2091b1489435ff85728fafeb990f073e64f6f5e81d5cd53059773e8521eb6 \ + --hash=sha256:c64772786d9eee72d4d3784c28f0a636af5b0a29f3fe26ff11f55efe90c0bd85 \ --hash=sha256:cd337d3526ec5298f67d6a30bbbe4ed7e5e68862f0bf6dd21d289f8d37b7d60b \ + --hash=sha256:d29b2b99d527dbc66dd87c3c3248a5dd789d974a507f4653c969999fc7c1191b \ --hash=sha256:d2c3684fca8a05f0ac1d9a21c1f4a266983a7ea9180efb80ffeb03861ecd01a0 \ --hash=sha256:d62e47f5d8a50099b17e2bfc1b0c7d7ecd8ba6b46b1507b58cc4f05eefc3bb1c \ --hash=sha256:d8a2ca754e5415cde2b656c27900b19d50ba076aa05ce66e2207623d3fe41f5a \ @@ -5333,9 +5337,9 @@ sqlparams==6.2.0 \ --hash=sha256:3744a2ad16f71293db6505b21fd5229b4757489a9b09f3553656a1ae97ba7ca5 \ --hash=sha256:63b32ed9051bdc52e7e8b38bc4f78aed51796cdd9135e730f4c6a7db1048dedf # via singlestoredb -sse-starlette==3.0.3 \ - --hash=sha256:88cfb08747e16200ea990c8ca876b03910a23b547ab3bd764c0d8eb81019b971 \ - --hash=sha256:af5bf5a6f3933df1d9c7f8539633dc8444ca6a97ab2e2a7cd3b6e431ac03a431 +sse-starlette==3.1.1 \ + --hash=sha256:bb38f71ae74cfd86b529907a9fda5632195dfa6ae120f214ea4c890c7ee9d436 \ + --hash=sha256:bffa531420c1793ab224f63648c059bcadc412bf9fdb1301ac8de1cf9a67b7fb # via mcp stack-data==0.6.3 \ --hash=sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9 \ @@ -5347,6 +5351,7 @@ starlette==0.50.0 \ # via # fastapi # mcp + # sse-starlette substrait==0.24.2 \ --hash=sha256:743cc352e96b0927b2cd37cd5a8fdac0a96a68df9600bd104fc36aebd222a836 \ --hash=sha256:d1d475833566fa9d67eed3273456883c0568486ccced92b524b31709d2817e19 @@ -5616,19 +5621,19 @@ torchvision==0.24.1 \ # docling-ibm-models # easyocr # timm -tornado==6.5.2 \ - --hash=sha256:06ceb1300fd70cb20e43b1ad8aaee0266e69e7ced38fa910ad2e03285009ce7c \ - --hash=sha256:2436822940d37cde62771cff8774f4f00b3c8024fe482e16ca8387b8a2724db6 \ - --hash=sha256:583a52c7aa94ee046854ba81d9ebb6c81ec0fd30386d96f7640c96dad45a03ef \ - --hash=sha256:74db443e0f5251be86cbf37929f84d8c20c27a355dd452a5cfa2aada0d001ec4 \ - --hash=sha256:ab53c8f9a0fa351e2c0741284e06c7a45da86afb544133201c5cc8578eb076a0 \ - --hash=sha256:b0fe179f28d597deab2842b86ed4060deec7388f1fd9c1b4a41adf8af058907e \ - --hash=sha256:b186e85d1e3536d69583d2298423744740986018e393d0321df7340e71898882 \ - --hash=sha256:b5e735ab2889d7ed33b32a459cac490eda71a1ba6857b0118de476ab6c366c04 \ - --hash=sha256:c6f29e94d9b37a95013bb669616352ddb82e3bfe8326fccee50583caebc8a5f0 \ - --hash=sha256:d6c33dc3672e3a1f3618eb63b7ef4683a7688e7b9e6e8f0d9aa5726360a004af \ - --hash=sha256:e56a5af51cc30dd2cae649429af65ca2f6571da29504a07995175df14c18f35f \ - --hash=sha256:e792706668c87709709c18b353da1f7662317b563ff69f00bab83595940c7108 +tornado==6.5.4 \ + --hash=sha256:053e6e16701eb6cbe641f308f4c1a9541f91b6261991160391bfc342e8a551a1 \ + --hash=sha256:1768110f2411d5cd281bac0a090f707223ce77fd110424361092859e089b38d1 \ + --hash=sha256:2d50f63dda1d2cac3ae1fa23d254e16b5e38153758470e9956cbc3d813d40843 \ + --hash=sha256:50ff0a58b0dc97939d29da29cd624da010e7f804746621c78d14b80238669335 \ + --hash=sha256:6076d5dda368c9328ff41ab5d9dd3608e695e8225d1cd0fd1e006f05da3635a8 \ + --hash=sha256:6eb82872335a53dd063a4f10917b3efd28270b56a33db69009606a0312660a6f \ + --hash=sha256:9c86b1643b33a4cd415f8d0fe53045f913bf07b4a3ef646b735a6a86047dda84 \ + --hash=sha256:a22fa9047405d03260b483980635f0b041989d8bcc9a313f8fe18b411d84b1d7 \ + --hash=sha256:d1cf66105dc6acb5af613c054955b8137e34a03698aa53272dbda4afe252be17 \ + --hash=sha256:d6241c1a16b1c9e4cc28148b1cda97dd1c6cb4fb7068ac1bedc610768dff0ba9 \ + --hash=sha256:e5fb5e04efa54cf0baabdd10061eb4148e0be137166146fff835745f59ab9f7f \ + --hash=sha256:fa07d31e0cd85c60713f2b995da613588aa03e1303d75705dca6af8babc18ddc # via # ipykernel # jupyter-client @@ -5788,9 +5793,9 @@ types-protobuf==3.19.22 \ # via # feast (setup.py) # mypy-protobuf -types-pymysql==1.1.0.20250916 \ - --hash=sha256:873eb9836bb5e3de4368cc7010ca72775f86e9692a5c7810f8c7f48da082e55b \ - --hash=sha256:98d75731795fcc06723a192786662bdfa760e1e00f22809c104fbb47bac5e29b +types-pymysql==1.1.0.20251220 \ + --hash=sha256:ae1c3df32a777489431e2e9963880a0df48f6591e0aa2fd3a6fabd9dee6eca54 \ + --hash=sha256:fa1082af7dea6c53b6caa5784241924b1296ea3a8d3bd060417352c5e10c0618 # via feast (setup.py) types-pyopenssl==24.1.0.20240722 \ --hash=sha256:47913b4678a01d879f503a12044468221ed8576263c1540dcb0484ca21b08c39 \ @@ -5816,9 +5821,9 @@ types-requests==2.30.0.0 \ --hash=sha256:c6cf08e120ca9f0dc4fa4e32c3f953c3fba222bcc1db6b97695bce8da1ba9864 \ --hash=sha256:dec781054324a70ba64430ae9e62e7e9c8e4618c185a5cb3f87a6738251b5a31 # via feast (setup.py) -types-setuptools==80.9.0.20250822 \ - --hash=sha256:070ea7716968ec67a84c7f7768d9952ff24d28b65b6594797a464f1b3066f965 \ - --hash=sha256:53bf881cb9d7e46ed12c76ef76c0aaf28cfe6211d3fab12e0b83620b1a8642c3 +types-setuptools==80.9.0.20251223 \ + --hash=sha256:1b36db79d724c2287d83dc052cf887b47c0da6a2fff044378be0b019545f56e6 \ + --hash=sha256:d3411059ae2f5f03985217d86ac6084efea2c9e9cacd5f0869ef950f308169b2 # via # feast (setup.py) # types-cffi @@ -5881,9 +5886,9 @@ typing-inspection==0.4.2 \ # mcp # pydantic # pydantic-settings -tzdata==2025.2 \ - --hash=sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8 \ - --hash=sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9 +tzdata==2025.3 \ + --hash=sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1 \ + --hash=sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7 # via # arrow # pandas @@ -5983,9 +5988,9 @@ uri-template==1.3.0 \ --hash=sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7 \ --hash=sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363 # via jsonschema -urllib3==2.6.1 \ - --hash=sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f \ - --hash=sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b +urllib3==2.6.2 \ + --hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \ + --hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd # via # feast (setup.py) # botocore diff --git a/sdk/python/requirements/py3.10-minimal-requirements.txt b/sdk/python/requirements/py3.10-minimal-requirements.txt index 947efc21837..66d34c10570 100644 --- a/sdk/python/requirements/py3.10-minimal-requirements.txt +++ b/sdk/python/requirements/py3.10-minimal-requirements.txt @@ -176,9 +176,9 @@ attrs==25.4.0 \ # aiohttp # jsonschema # referencing -bigtree==1.0.3 \ - --hash=sha256:18402a143130868b17ca84a74ca263e6f32f046d6978c30d244f8b94c4a01227 \ - --hash=sha256:99a18b6937a9b4ab8e560fec5c0720e10ebf37f84e44f9b5f47702c2e84c9aaa +bigtree==1.0.4 \ + --hash=sha256:e4af0c5bc0d2cd72e18442965e4509f642b16a0de65db6d0ec116e30f959010c \ + --hash=sha256:f58a3238bb9b1142d893c9de4921bfd18d435427c75e0c168dd580eabf6dc7fd # via feast (setup.py) boto3==1.38.27 \ --hash=sha256:94bd7fdd92d5701b362d4df100d21e28f8307a67ff56b6a8b0398119cf22f859 \ @@ -194,9 +194,9 @@ botocore==1.38.46 \ # boto3 # s3transfer # snowflake-connector-python -cachetools==6.2.2 \ - --hash=sha256:6c09c98183bf58560c97b2abfcedcbaf6a896a490f534b031b661d3723b45ace \ - --hash=sha256:8e6d266b25e539df852251cfd6f990b4bc3a141db73b939058d809ebd2590fc6 +cachetools==6.2.4 \ + --hash=sha256:69a7a52634fed8b8bf6e24a050fb60bff1c9bd8f6d24572b99c32d4e71e62a51 \ + --hash=sha256:82c5c05585e70b6ba2d3ae09ea60b79548872185d2f24ae1f2709d37299fd607 # via google-auth certifi==2025.11.12 \ --hash=sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b \ @@ -471,13 +471,13 @@ cryptography==46.0.0 \ # pyjwt # pyopenssl # snowflake-connector-python -dask[dataframe]==2025.11.0 \ - --hash=sha256:08c35a8146c05c93b34f83cf651009129c42ee71762da7ca452fb7308641c2b8 \ - --hash=sha256:23d59e624b80ee05b7cc8df858682cca58262c4c3b197ccf61da0f6543c8f7c3 +dask[dataframe]==2025.12.0 \ + --hash=sha256:4213ce9c5d51d6d89337cff69de35d902aa0bf6abdb8a25c942a4d0281f3a598 \ + --hash=sha256:8d478f2aabd025e2453cf733ad64559de90cf328c20209e4574e9543707c3e1b # via feast (setup.py) -db-dtypes==1.4.4 \ - --hash=sha256:26f53db5df1acd746b88c5647913a1b20f731c0af1b11abcb6bec5365f31098a \ - --hash=sha256:32c13039982656a8598a0835f25f0e07e34c9a423e471ee60c2553240b7fcf1e +db-dtypes==1.5.0 \ + --hash=sha256:abdbb2e4eb965800ed6f98af0c5c1cafff9063ace09114be2d26a7f046be2c8a \ + --hash=sha256:ad9e94243f53e104bc77dbf9ae44b580d83a770d3694483aba59c9767966daa5 # via # google-cloud-bigquery # pandas-gbq @@ -547,9 +547,9 @@ exceptiongroup==1.3.1 \ --hash=sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219 \ --hash=sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598 # via anyio -fastapi==0.124.0 \ - --hash=sha256:260cd178ad75e6d259991f2fd9b0fee924b224850079df576a3ba604ce58f4e6 \ - --hash=sha256:91596bdc6dde303c318f06e8d2bc75eafb341fc793a0c9c92c0bc1db1ac52480 +fastapi==0.128.0 \ + --hash=sha256:1cc179e1cef10a6be60ffe429f79b829dce99d8de32d7acb7e6c8dfdf7f2645a \ + --hash=sha256:aebd93f9716ee3b4f4fcfe13ffb7cf308d99c9f3ab5622d8877441072561582d # via # feast (setup.py) # fastapi-mcp @@ -557,9 +557,9 @@ fastapi-mcp==0.4.0 \ --hash=sha256:d4a3fe7966af24d44e4b412720561c95eb12bed999a4443a88221834b3b15aec \ --hash=sha256:d4ca9410996f4c7b8ea0d7b20fdf79878dc359ebf89cbf3b222e0b675a55097d # via feast (setup.py) -filelock==3.20.0 \ - --hash=sha256:339b4732ffda5cd79b13f4e2711a31b0365ce445d95d243bb996273d072546a2 \ - --hash=sha256:711e943b4ec6be42e1d4e6690b48dc175c822967466bb31c0c293f34334c13f4 +filelock==3.20.1 \ + --hash=sha256:15d9e9a67306188a44baa72f569d2bfd803076269365fdea0934385da4dc361a \ + --hash=sha256:b8360948b351b80f420878d8516519a2204b07aefcdcfd24912a5d33127f188c # via snowflake-connector-python frozenlist==1.8.0 \ --hash=sha256:0325024fe97f94c41c08872db482cf8ac4800d80e79222c6b0b7b162d5b13686 \ @@ -713,9 +713,9 @@ google-api-core[grpc]==2.28.1 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.43.0 \ - --hash=sha256:88228eee5fc21b62a1b5fe773ca15e67778cb07dc8363adcb4a8827b52d81483 \ - --hash=sha256:af628ba6fa493f75c7e9dbe9373d148ca9f4399b5ea29976519e0a3848eddd16 +google-auth==2.45.0 \ + --hash=sha256:82344e86dc00410ef5382d99be677c6043d72e502b625aa4f4afa0bdacca0f36 \ + --hash=sha256:90d3f41b6b72ea72dd9811e765699ee491ab24139f34ebf1ca2b9cc0c38708f3 # via # google-api-core # google-auth-oauthlib @@ -734,19 +734,19 @@ google-auth-oauthlib==1.2.2 \ # via # pandas-gbq # pydata-google-auth -google-cloud-bigquery[pandas]==3.38.0 \ - --hash=sha256:8afcb7116f5eac849097a344eb8bfda78b7cfaae128e60e019193dd483873520 \ - --hash=sha256:e06e93ff7b245b239945ef59cb59616057598d369edac457ebf292bd61984da6 +google-cloud-bigquery[pandas]==3.39.0 \ + --hash=sha256:cb375e1d63dea9bd5bf735e66024338f294159d43afdf63e1d023f5fcbbf55ea \ + --hash=sha256:dc7a64921465859105461b43c42562e38e797d7a73feb72b3cfc4865b7b1c5ef # via # feast (setup.py) # pandas-gbq -google-cloud-bigquery-storage==2.35.0 \ - --hash=sha256:c9bab6b8e41d6cb9806e589e65f320c89ada84f466e61566b7208d87924c1430 \ - --hash=sha256:f2e3a08882155de1e9ec53c71c5784eb1f25dc6514c535f5796c3c9eeac17d17 +google-cloud-bigquery-storage==2.36.0 \ + --hash=sha256:1769e568070db672302771d2aec18341de10712aa9c4a8c549f417503e0149f0 \ + --hash=sha256:d3c1ce9d2d3a4d7116259889dcbe3c7c70506f71f6ce6bbe54aa0a68bbba8f8f # via feast (setup.py) -google-cloud-bigtable==2.34.0 \ - --hash=sha256:773258b00cd3f9a3a35639cc38bd711f4f1418aaa0c8d70cb028978ed98dc2c2 \ - --hash=sha256:a4a8db4903840cd3f89fb19c060eea2e7c09c1265cb0538cfc11288dbc6000e4 +google-cloud-bigtable==2.35.0 \ + --hash=sha256:f355bfce1f239453ec2bb3839b0f4f9937cf34ef06ef29e1ca63d58fd38d0c50 \ + --hash=sha256:f5699012c5fea4bd4bdf7e80e5e3a812a847eb8f41bf8dc2f43095d6d876b83b # via feast (setup.py) google-cloud-core==2.5.0 \ --hash=sha256:67d977b41ae6c7211ee830c7912e41003ea8194bff15ae7d72fd6f51e57acabc \ @@ -756,49 +756,48 @@ google-cloud-core==2.5.0 \ # google-cloud-bigtable # google-cloud-datastore # google-cloud-storage -google-cloud-datastore==2.21.0 \ - --hash=sha256:eee454dd4a55f5b327f9f344928ff1a09a6f77c23d5e3d908ad31a13cc2f4073 \ - --hash=sha256:f303f27cd1983383f20bd227019cd8a7897419e0ec6b878367c58c66245f9d9b +google-cloud-datastore==2.23.0 \ + --hash=sha256:24a1b1d29b902148fe41b109699f76fd3aa60591e9d547c0f8b87d7bf9ff213f \ + --hash=sha256:80049883a4ae928fdcc661ba6803ec267665dc0e6f3ce2da91441079a6bb6387 # via feast (setup.py) google-cloud-storage==2.19.0 \ --hash=sha256:aeb971b5c29cf8ab98445082cbfe7b161a1f48ed275822f59ed3f1524ea54fba \ --hash=sha256:cd05e9e7191ba6cb68934d8eb76054d9be4562aa89dbc4236feee4d7d51342b2 # via feast (setup.py) -google-crc32c==1.7.1 \ - --hash=sha256:0f99eaa09a9a7e642a61e06742856eec8b19fc0037832e03f941fe7cf0c8e4db \ - --hash=sha256:19eafa0e4af11b0a4eb3974483d55d2d77ad1911e6cf6f832e1574f6781fd337 \ - --hash=sha256:1c67ca0a1f5b56162951a9dae987988679a7db682d6f97ce0f6381ebf0fbea4c \ - --hash=sha256:1f2b3522222746fff0e04a9bd0a23ea003ba3cccc8cf21385c564deb1f223242 \ - --hash=sha256:22beacf83baaf59f9d3ab2bbb4db0fb018da8e5aebdce07ef9f09fce8220285e \ - --hash=sha256:2bff2305f98846f3e825dbeec9ee406f89da7962accdb29356e4eadc251bd472 \ - --hash=sha256:2d73a68a653c57281401871dd4aeebbb6af3191dcac751a76ce430df4d403194 \ - --hash=sha256:32d1da0d74ec5634a05f53ef7df18fc646666a25efaaca9fc7dcfd4caf1d98c3 \ - --hash=sha256:3bda0fcb632d390e3ea8b6b07bf6b4f4a66c9d02dcd6fbf7ba00a197c143f582 \ - --hash=sha256:6335de12921f06e1f774d0dd1fbea6bf610abe0887a1638f64d694013138be5d \ - --hash=sha256:6b211ddaf20f7ebeec5c333448582c224a7c90a9d98826fbab82c0ddc11348e6 \ - --hash=sha256:6efb97eb4369d52593ad6f75e7e10d053cf00c48983f7a973105bc70b0ac4d82 \ - --hash=sha256:6fbab4b935989e2c3610371963ba1b86afb09537fd0c633049be82afe153ac06 \ - --hash=sha256:713121af19f1a617054c41f952294764e0c5443d5a5d9034b2cd60f5dd7e0349 \ - --hash=sha256:754561c6c66e89d55754106739e22fdaa93fafa8da7221b29c8b8e8270c6ec8a \ - --hash=sha256:7cc81b3a2fbd932a4313eb53cc7d9dde424088ca3a0337160f35d91826880c1d \ - --hash=sha256:85fef7fae11494e747c9fd1359a527e5970fc9603c90764843caabd3a16a0a48 \ - --hash=sha256:905a385140bf492ac300026717af339790921f411c0dfd9aa5a9e69a08ed32eb \ - --hash=sha256:9fc196f0b8d8bd2789352c6a522db03f89e83a0ed6b64315923c396d7a932315 \ - --hash=sha256:a8e9afc74168b0b2232fb32dd202c93e46b7d5e4bf03e66ba5dc273bb3559589 \ - --hash=sha256:b07d48faf8292b4db7c3d64ab86f950c2e94e93a11fd47271c28ba458e4a0d76 \ - --hash=sha256:b6d86616faaea68101195c6bdc40c494e4d76f41e07a37ffdef270879c15fb65 \ - --hash=sha256:b7491bdc0c7564fcf48c0179d2048ab2f7c7ba36b84ccd3a3e1c3f7a72d3bba6 \ - --hash=sha256:bb5e35dcd8552f76eed9461a23de1030920a3c953c1982f324be8f97946e7127 \ - --hash=sha256:d68e17bad8f7dd9a49181a1f5a8f4b251c6dbc8cc96fb79f1d321dfd57d66f53 \ - --hash=sha256:dcdf5a64adb747610140572ed18d011896e3b9ae5195f2514b7ff678c80f1603 \ - --hash=sha256:df8b38bdaf1629d62d51be8bdd04888f37c451564c2042d36e5812da9eff3c35 \ - --hash=sha256:e10554d4abc5238823112c2ad7e4560f96c7bf3820b202660373d769d9e6e4c9 \ - --hash=sha256:e42e20a83a29aa2709a0cf271c7f8aefaa23b7ab52e53b322585297bb94d4638 \ - --hash=sha256:ed66cbe1ed9cbaaad9392b5259b3eba4a9e565420d734e6238813c428c3336c9 \ - --hash=sha256:ee6547b657621b6cbed3562ea7826c3e11cab01cd33b74e1f677690652883e77 \ - --hash=sha256:f2226b6a8da04f1d9e61d3e357f2460b9551c5e6950071437e122c958a18ae14 \ - --hash=sha256:fa8136cc14dd27f34a3221c0f16fd42d8a40e4778273e61a3c19aedaa44daf6b \ - --hash=sha256:fc5319db92daa516b653600794d5b9f9439a9a121f3e162f94b0e1891c7933cb +google-crc32c==1.8.0 \ + --hash=sha256:014a7e68d623e9a4222d663931febc3033c5c7c9730785727de2a81f87d5bab8 \ + --hash=sha256:01f126a5cfddc378290de52095e2c7052be2ba7656a9f0caf4bcd1bfb1833f8a \ + --hash=sha256:0470b8c3d73b5f4e3300165498e4cf25221c7eb37f1159e221d1825b6df8a7ff \ + --hash=sha256:119fcd90c57c89f30040b47c211acee231b25a45d225e3225294386f5d258288 \ + --hash=sha256:14f87e04d613dfa218d6135e81b78272c3b904e2a7053b841481b38a7d901411 \ + --hash=sha256:17446feb05abddc187e5441a45971b8394ea4c1b6efd88ab0af393fd9e0a156a \ + --hash=sha256:19b40d637a54cb71e0829179f6cb41835f0fbd9e8eb60552152a8b52c36cbe15 \ + --hash=sha256:2a3dc3318507de089c5384cc74d54318401410f82aa65b2d9cdde9d297aca7cb \ + --hash=sha256:3b9776774b24ba76831609ffbabce8cdf6fa2bd5e9df37b594221c7e333a81fa \ + --hash=sha256:3cc0c8912038065eafa603b238abf252e204accab2a704c63b9e14837a854962 \ + --hash=sha256:3d488e98b18809f5e322978d4506373599c0c13e6c5ad13e53bb44758e18d215 \ + --hash=sha256:3ebb04528e83b2634857f43f9bb8ef5b2bbe7f10f140daeb01b58f972d04736b \ + --hash=sha256:450dc98429d3e33ed2926fc99ee81001928d63460f8538f21a5d6060912a8e27 \ + --hash=sha256:4b8286b659c1335172e39563ab0a768b8015e88e08329fa5321f774275fc3113 \ + --hash=sha256:57a50a9035b75643996fbf224d6661e386c7162d1dfdab9bc4ca790947d1007f \ + --hash=sha256:61f58b28e0b21fcb249a8247ad0db2e64114e201e2e9b4200af020f3b6242c9f \ + --hash=sha256:6f35aaffc8ccd81ba3162443fabb920e65b1f20ab1952a31b13173a67811467d \ + --hash=sha256:71734788a88f551fbd6a97be9668a0020698e07b2bf5b3aa26a36c10cdfb27b2 \ + --hash=sha256:864abafe7d6e2c4c66395c1eb0fe12dc891879769b52a3d56499612ca93b6092 \ + --hash=sha256:86cfc00fe45a0ac7359e5214a1704e51a99e757d0272554874f419f79838c5f7 \ + --hash=sha256:87b0072c4ecc9505cfa16ee734b00cd7721d20a0f595be4d40d3d21b41f65ae2 \ + --hash=sha256:87fa445064e7db928226b2e6f0d5304ab4cd0339e664a4e9a25029f384d9bb93 \ + --hash=sha256:89c17d53d75562edfff86679244830599ee0a48efc216200691de8b02ab6b2b8 \ + --hash=sha256:8b3f68782f3cbd1bce027e48768293072813469af6a61a86f6bb4977a4380f21 \ + --hash=sha256:a428e25fb7691024de47fecfbff7ff957214da51eddded0da0ae0e0f03a2cf79 \ + --hash=sha256:b0d1a7afc6e8e4635564ba8aa5c0548e3173e41b6384d7711a9123165f582de2 \ + --hash=sha256:ba6aba18daf4d36ad4412feede6221414692f44d17e5428bdd81ad3fc1eee5dc \ + --hash=sha256:cb5c869c2923d56cb0c8e6bcdd73c009c36ae39b652dbe46a05eb4ef0ad01454 \ + --hash=sha256:d511b3153e7011a27ab6ee6bb3a5404a55b994dc1a7322c0b87b29606d9790e2 \ + --hash=sha256:db3fe8eaf0612fc8b20fa21a5f25bd785bc3cd5be69f8f3412b0ac2ffd49e733 \ + --hash=sha256:e6584b12cb06796d285d09e33f63309a09368b9d806a551d8036a4207ea43697 \ + --hash=sha256:f4b51844ef67d6cf2e9425983274da75f18b1597bb2c998e1c0a0e8d46f8f651 \ + --hash=sha256:f639065ea2042d5c034bf258a9f085eaa7af0cd250667c0635a3118e8f92c69c # via # google-cloud-bigtable # google-cloud-storage @@ -881,6 +880,7 @@ grpcio==1.62.3 \ # google-api-core # google-cloud-bigquery # google-cloud-bigquery-storage + # google-cloud-datastore # googleapis-common-protos # grpc-google-iam-v1 # grpcio-health-checking @@ -1079,9 +1079,9 @@ idna==3.11 \ # requests # snowflake-connector-python # yarl -importlib-metadata==8.7.0 \ - --hash=sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000 \ - --hash=sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd +importlib-metadata==8.7.1 \ + --hash=sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb \ + --hash=sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151 # via dask jinja2==3.1.6 \ --hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \ @@ -1108,83 +1108,83 @@ kubernetes==33.1.0 \ --hash=sha256:544de42b24b64287f7e0aa9513c93cb503f7f40eea39b20f66810011a86eabc5 \ --hash=sha256:f64d829843a54c251061a8e7a14523b521f2dc5c896cf6d65ccf348648a88993 # via feast (setup.py) -librt==0.7.3 \ - --hash=sha256:020c6db391268bcc8ce75105cb572df8cb659a43fd347366aaa407c366e5117a \ - --hash=sha256:0fa9ac2e49a6bee56e47573a6786cb635e128a7b12a0dc7851090037c0d397a3 \ - --hash=sha256:11ad45122bbed42cfc8b0597450660126ef28fd2d9ae1a219bc5af8406f95678 \ - --hash=sha256:120dd21d46ff875e849f1aae19346223cf15656be489242fe884036b23d39e93 \ - --hash=sha256:14569ac5dd38cfccf0a14597a88038fb16811a6fede25c67b79c6d50fc2c8fdc \ - --hash=sha256:1617bea5ab31266e152871208502ee943cb349c224846928a1173c864261375e \ - --hash=sha256:170cdb8436188347af17bf9cccf3249ba581c933ed56d926497119d4cf730cec \ - --hash=sha256:1975eda520957c6e0eb52d12968dd3609ffb7eef05d4223d097893d6daf1d8a7 \ - --hash=sha256:1fe603877e1865b5fd047a5e40379509a4a60204aa7aa0f72b16f7a41c3f0712 \ - --hash=sha256:24d70810f6e2ea853ff79338001533716b373cc0f63e2a0be5bc96129edb5fb5 \ - --hash=sha256:256793988bff98040de23c57cf36e1f4c2f2dc3dcd17537cdac031d3b681db71 \ - --hash=sha256:25711f364c64cab2c910a0247e90b51421e45dbc8910ceeb4eac97a9e132fc6f \ - --hash=sha256:2682162855a708e3270eba4b92026b93f8257c3e65278b456c77631faf0f4f7a \ - --hash=sha256:2cf9d73499486ce39eebbff5f42452518cc1f88d8b7ea4a711ab32962b176ee2 \ - --hash=sha256:2e40520c37926166c24d0c2e0f3bc3a5f46646c34bdf7b4ea9747c297d6ee809 \ - --hash=sha256:2e980cf1ed1a2420a6424e2ed884629cdead291686f1048810a817de07b5eb18 \ - --hash=sha256:2f03484b54bf4ae80ab2e504a8d99d20d551bfe64a7ec91e218010b467d77093 \ - --hash=sha256:35f1609e3484a649bb80431310ddbec81114cd86648f1d9482bc72a3b86ded2e \ - --hash=sha256:399938edbd3d78339f797d685142dd8a623dfaded023cf451033c85955e4838a \ - --hash=sha256:399bbd7bcc1633c3e356ae274a1deb8781c7bf84d9c7962cc1ae0c6e87837292 \ - --hash=sha256:3ec50cf65235ff5c02c5b747748d9222e564ad48597122a361269dd3aa808798 \ - --hash=sha256:3edbf257c40d21a42615e9e332a6b10a8bacaaf58250aed8552a14a70efd0d65 \ - --hash=sha256:440c788f707c061d237c1e83edf6164ff19f5c0f823a3bf054e88804ebf971ec \ - --hash=sha256:44b3689b040df57f492e02cd4f0bacd1b42c5400e4b8048160c9d5e866de8abe \ - --hash=sha256:4887c29cadbdc50640179e3861c276325ff2986791e6044f73136e6e798ff806 \ - --hash=sha256:5460d99ed30f043595bbdc888f542bad2caeb6226b01c33cda3ae444e8f82d42 \ - --hash=sha256:550fdbfbf5bba6a2960b27376ca76d6aaa2bd4b1a06c4255edd8520c306fcfc0 \ - --hash=sha256:56f2a47beda8409061bc1c865bef2d4bd9ff9255219402c0817e68ab5ad89aed \ - --hash=sha256:572a24fc5958c61431da456a0ef1eeea6b4989d81eeb18b8e5f1f3077592200b \ - --hash=sha256:59cb0470612d21fa1efddfa0dd710756b50d9c7fb6c1236bbf8ef8529331dc70 \ - --hash=sha256:6038ccbd5968325a5d6fd393cf6e00b622a8de545f0994b89dd0f748dcf3e19e \ - --hash=sha256:6488e69d408b492e08bfb68f20c4a899a354b4386a446ecd490baff8d0862720 \ - --hash=sha256:687403cced6a29590e6be6964463835315905221d797bc5c934a98750fe1a9af \ - --hash=sha256:6b407c23f16ccc36614c136251d6b32bf30de7a57f8e782378f1107be008ddb0 \ - --hash=sha256:6b4e7bff1d76dd2b46443078519dc75df1b5e01562345f0bb740cea5266d8218 \ - --hash=sha256:6bdd9adfca615903578d2060ee8a6eb1c24eaf54919ff0ddc820118e5718931b \ - --hash=sha256:6eb9295c730e26b849ed1f4022735f36863eb46b14b6e10604c1c39b8b5efaea \ - --hash=sha256:703456146dc2bf430f7832fd1341adac5c893ec3c1430194fdcefba00012555c \ - --hash=sha256:754a0d09997095ad764ccef050dd5bf26cbf457aab9effcba5890dad081d879e \ - --hash=sha256:7af7785f5edd1f418da09a8cdb9ec84b0213e23d597413e06525340bcce1ea4f \ - --hash=sha256:7b29e97273bd6999e2bfe9fe3531b1f4f64effd28327bced048a33e49b99674a \ - --hash=sha256:7b4f57f7a0c65821c5441d98c47ff7c01d359b1e12328219709bdd97fdd37f90 \ - --hash=sha256:8837d5a52a2d7aa9f4c3220a8484013aed1d8ad75240d9a75ede63709ef89055 \ - --hash=sha256:8ccadf260bb46a61b9c7e89e2218f6efea9f3eeaaab4e3d1f58571890e54858e \ - --hash=sha256:8d8cf653e798ee4c4e654062b633db36984a1572f68c3aa25e364a0ddfbbb910 \ - --hash=sha256:93b2a1f325fefa1482516ced160c8c7b4b8d53226763fa6c93d151fa25164207 \ - --hash=sha256:9f0e0927efe87cd42ad600628e595a1a0aa1c64f6d0b55f7e6059079a428641a \ - --hash=sha256:a59a69deeb458c858b8fea6acf9e2acd5d755d76cd81a655256bc65c20dfff5b \ - --hash=sha256:a9f9b661f82693eb56beb0605156c7fca57f535704ab91837405913417d6990b \ - --hash=sha256:abfc57cab3c53c4546aee31859ef06753bfc136c9d208129bad23e2eca39155a \ - --hash=sha256:aca73d70c3f553552ba9133d4a09e767dcfeee352d8d8d3eb3f77e38a3beb3ed \ - --hash=sha256:adeaa886d607fb02563c1f625cf2ee58778a2567c0c109378da8f17ec3076ad7 \ - --hash=sha256:b278a9248a4e3260fee3db7613772ca9ab6763a129d6d6f29555e2f9b168216d \ - --hash=sha256:b7c1239b64b70be7759554ad1a86288220bbb04d68518b527783c4ad3fb4f80b \ - --hash=sha256:bf8c7735fbfc0754111f00edda35cf9e98a8d478de6c47b04eaa9cef4300eaa7 \ - --hash=sha256:c634a0a6db395fdaba0361aa78395597ee72c3aad651b9a307a3a7eaf5efd67e \ - --hash=sha256:cad9971881e4fec00d96af7eaf4b63aa7a595696fc221808b0d3ce7ca9743258 \ - --hash=sha256:cbdb3f337c88b43c3b49ca377731912c101178be91cb5071aac48faa898e6f8e \ - --hash=sha256:cd8551aa21df6c60baa2624fd086ae7486bdde00c44097b32e1d1b1966e365e0 \ - --hash=sha256:d09f677693328503c9e492e33e9601464297c01f9ebd966ea8fc5308f3069bfd \ - --hash=sha256:d376a35c6561e81d2590506804b428fc1075fcc6298fc5bb49b771534c0ba010 \ - --hash=sha256:d39079379a9a28e74f4d57dc6357fa310a1977b51ff12239d7271ec7e71d67f5 \ - --hash=sha256:d86f94743a11873317094326456b23f8a5788bad9161fd2f0e52088c33564620 \ - --hash=sha256:d91e60ac44bbe3a77a67af4a4c13114cbe9f6d540337ce22f2c9eaf7454ca71f \ - --hash=sha256:d9883b2d819ce83f87ba82a746c81d14ada78784db431e57cc9719179847376e \ - --hash=sha256:e094e445c37c57e9ec612847812c301840239d34ccc5d153a982fa9814478c60 \ - --hash=sha256:e19acfde38cb532a560b98f473adc741c941b7a9bc90f7294bc273d08becb58b \ - --hash=sha256:e32d43610dff472eab939f4d7fbdd240d1667794192690433672ae22d7af8445 \ - --hash=sha256:ed028fc3d41adda916320712838aec289956c89b4f0a361ceadf83a53b4c047a \ - --hash=sha256:ef59c938f72bdbc6ab52dc50f81d0637fde0f194b02d636987cea2ab30f8f55a \ - --hash=sha256:f3d4801db8354436fd3936531e7f0e4feb411f62433a6b6cb32bb416e20b529f \ - --hash=sha256:f57aca20e637750a2c18d979f7096e2c2033cc40cf7ed201494318de1182f135 \ - --hash=sha256:f9da128d0edf990cf0d2ca011b02cd6f639e79286774bd5b0351245cbb5a6e51 \ - --hash=sha256:fbd7351d43b80d9c64c3cfcb50008f786cc82cba0450e8599fdd64f264320bd3 \ - --hash=sha256:fcb72249ac4ea81a7baefcbff74df7029c3cb1cf01a711113fa052d563639c9c \ - --hash=sha256:ff21c554304e8226bf80c3a7754be27c6c3549a9fec563a03c06ee8f494da8fc +librt==0.7.5 \ + --hash=sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee \ + --hash=sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1 \ + --hash=sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4 \ + --hash=sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899 \ + --hash=sha256:0e2bf8f91093fac43e3eaebacf777f12fd539dce9ec5af3efc6d8424e96ccd49 \ + --hash=sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d \ + --hash=sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760 \ + --hash=sha256:191cbd42660446d67cf7a95ac7bfa60f49b8b3b0417c64f216284a1d86fc9335 \ + --hash=sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8 \ + --hash=sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2 \ + --hash=sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec \ + --hash=sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b \ + --hash=sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0 \ + --hash=sha256:39183abee670bc37b85f11e86c44a9cad1ed6efa48b580083e89ecee13dd9717 \ + --hash=sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325 \ + --hash=sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45 \ + --hash=sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d \ + --hash=sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233 \ + --hash=sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d \ + --hash=sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544 \ + --hash=sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802 \ + --hash=sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2 \ + --hash=sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d \ + --hash=sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f \ + --hash=sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169 \ + --hash=sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe \ + --hash=sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982 \ + --hash=sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2 \ + --hash=sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa \ + --hash=sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4 \ + --hash=sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4 \ + --hash=sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57 \ + --hash=sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26 \ + --hash=sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361 \ + --hash=sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad \ + --hash=sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e \ + --hash=sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf \ + --hash=sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f \ + --hash=sha256:8dcae24de1bc9da93aa689cb6313c70e776d7cea2fcf26b9b6160fedfe6bd9af \ + --hash=sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2 \ + --hash=sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89 \ + --hash=sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904 \ + --hash=sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6 \ + --hash=sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276 \ + --hash=sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e \ + --hash=sha256:a9eacbf983319b26b5f340a2e0cd47ac1ee4725a7f3a72fd0f15063c934b69d6 \ + --hash=sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409 \ + --hash=sha256:af69d9e159575e877c7546d1ee817b4ae089aa221dd1117e20c24ad8dc8659c7 \ + --hash=sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a \ + --hash=sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4 \ + --hash=sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775 \ + --hash=sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203 \ + --hash=sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419 \ + --hash=sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5 \ + --hash=sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023 \ + --hash=sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b \ + --hash=sha256:cdb001a1a0e4f41e613bca2c0fc147fc8a7396f53fc94201cbfd8ec7cd69ca4b \ + --hash=sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d \ + --hash=sha256:d2cc7d187e8c6e9b7bdbefa9697ce897a704ea7a7ce844f2b4e0e2aa07ae51d3 \ + --hash=sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e \ + --hash=sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a \ + --hash=sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b \ + --hash=sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db \ + --hash=sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd \ + --hash=sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa \ + --hash=sha256:df2e210400b28e50994477ebf82f055698c79797b6ee47a1669d383ca33263e1 \ + --hash=sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805 \ + --hash=sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a \ + --hash=sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25 \ + --hash=sha256:ea1b60b86595a5dc1f57b44a801a1c4d8209c0a69518391d349973a4491408e6 \ + --hash=sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b \ + --hash=sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5 \ + --hash=sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416 \ + --hash=sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc \ + --hash=sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7 \ + --hash=sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96 # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ @@ -1285,9 +1285,9 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via jinja2 -mcp==1.23.3 \ - --hash=sha256:32768af4b46a1b4f7df34e2bfdf5c6011e7b63d7f1b0e321d0fdef4cd6082031 \ - --hash=sha256:b3b0da2cc949950ce1259c7bfc1b081905a51916fcd7c8182125b85e70825201 +mcp==1.25.0 \ + --hash=sha256:56310361ebf0364e2d438e5b45f7668cbb124e158bb358333cd06e49e83a6802 \ + --hash=sha256:b37c38144a666add0862614cc79ec276e97d72aa8ca26d622818d4e278b9721a # via fastapi-mcp mdurl==0.1.2 \ --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ @@ -1575,45 +1575,45 @@ multidict==6.7.0 \ # aiobotocore # aiohttp # yarl -mypy==1.19.0 \ - --hash=sha256:0c01c99d626380752e527d5ce8e69ffbba2046eb8a060db0329690849cf9b6f9 \ - --hash=sha256:0dde5cb375cb94deff0d4b548b993bec52859d1651e073d63a1386d392a95495 \ - --hash=sha256:0e3c3d1e1d62e678c339e7ade72746a9e0325de42cd2cccc51616c7b2ed1a018 \ - --hash=sha256:0ea4fd21bb48f0da49e6d3b37ef6bd7e8228b9fe41bbf4d80d9364d11adbd43c \ - --hash=sha256:0fb3115cb8fa7c5f887c8a8d81ccdcb94cff334684980d847e5a62e926910e1d \ - --hash=sha256:11f7254c15ab3f8ed68f8e8f5cbe88757848df793e31c36aaa4d4f9783fd08ab \ - --hash=sha256:120cffe120cca5c23c03c77f84abc0c14c5d2e03736f6c312480020082f1994b \ - --hash=sha256:16f76ff3f3fd8137aadf593cb4607d82634fca675e8211ad75c43d86033ee6c6 \ - --hash=sha256:1cf9c59398db1c68a134b0b5354a09a1e124523f00bacd68e553b8bd16ff3299 \ - --hash=sha256:318ba74f75899b0e78b847d8c50821e4c9637c79d9a59680fc1259f29338cb3e \ - --hash=sha256:3210d87b30e6af9c8faed61be2642fcbe60ef77cec64fa1ef810a630a4cf671c \ - --hash=sha256:34ec1ac66d31644f194b7c163d7f8b8434f1b49719d403a5d26c87fff7e913f7 \ - --hash=sha256:37af5166f9475872034b56c5efdcf65ee25394e9e1d172907b84577120714364 \ - --hash=sha256:3ad925b14a0bb99821ff6f734553294aa6a3440a8cb082fe1f5b84dfb662afb1 \ - --hash=sha256:510c014b722308c9bd377993bcbf9a07d7e0692e5fa8fc70e639c1eb19fc6bee \ - --hash=sha256:6016c52ab209919b46169651b362068f632efcd5eb8ef9d1735f6f86da7853b2 \ - --hash=sha256:6148ede033982a8c5ca1143de34c71836a09f105068aaa8b7d5edab2b053e6c8 \ - --hash=sha256:63ea6a00e4bd6822adbfc75b02ab3653a17c02c4347f5bb0cf1d5b9df3a05835 \ - --hash=sha256:7686ed65dbabd24d20066f3115018d2dce030d8fa9db01aa9f0a59b6813e9f9e \ - --hash=sha256:7a500ab5c444268a70565e374fc803972bfd1f09545b13418a5174e29883dab7 \ - --hash=sha256:8f44f2ae3c58421ee05fe609160343c25f70e3967f6e32792b5a78006a9d850f \ - --hash=sha256:a18d8abdda14035c5718acb748faec09571432811af129bf0d9e7b2d6699bf18 \ - --hash=sha256:a31e4c28e8ddb042c84c5e977e28a21195d086aaffaf08b016b78e19c9ef8106 \ - --hash=sha256:a9ac09e52bb0f7fb912f5d2a783345c72441a08ef56ce3e17c1752af36340a39 \ - --hash=sha256:b9d491295825182fba01b6ffe2c6fe4e5a49dbf4e2bb4d1217b6ced3b4797bc6 \ - --hash=sha256:c14a98bc63fd867530e8ec82f217dae29d0550c86e70debc9667fff1ec83284e \ - --hash=sha256:c3385246593ac2b97f155a0e9639be906e73534630f663747c71908dfbf26134 \ - --hash=sha256:cabbee74f29aa9cd3b444ec2f1e4fa5a9d0d746ce7567a6a609e224429781f53 \ - --hash=sha256:cb64b0ba5980466a0f3f9990d1c582bcab8db12e29815ecb57f1408d99b4bff7 \ - --hash=sha256:cf7d84f497f78b682edd407f14a7b6e1a2212b433eedb054e2081380b7395aa3 \ - --hash=sha256:e2c1101ab41d01303103ab6ef82cbbfedb81c1a060c868fa7cc013d573d37ab5 \ - --hash=sha256:f188dcf16483b3e59f9278c4ed939ec0254aa8a60e8fc100648d9ab5ee95a431 \ - --hash=sha256:f2e36bed3c6d9b5f35d28b63ca4b727cb0228e480826ffc8953d1892ddc8999d \ - --hash=sha256:f3e19e3b897562276bb331074d64c076dbdd3e79213f36eed4e592272dabd760 \ - --hash=sha256:f6b874ca77f733222641e5c46e4711648c4037ea13646fd0cdc814c2eaec2528 \ - --hash=sha256:f75e60aca3723a23511948539b0d7ed514dda194bc3755eae0bfc7a6b4887aa7 \ - --hash=sha256:fc51a5b864f73a3a182584b1ac75c404396a17eced54341629d8bdcb644a5bba \ - --hash=sha256:fd4a985b2e32f23bead72e2fb4bbe5d6aceee176be471243bd831d5b2644672d +mypy==1.19.1 \ + --hash=sha256:016f2246209095e8eda7538944daa1d60e1e8134d98983b9fc1e92c1fc0cb8dd \ + --hash=sha256:022ea7279374af1a5d78dfcab853fe6a536eebfda4b59deab53cd21f6cd9f00b \ + --hash=sha256:06e6170bd5836770e8104c8fdd58e5e725cfeb309f0a6c681a811f557e97eac1 \ + --hash=sha256:19d88bb05303fe63f71dd2c6270daca27cb9401c4ca8255fe50d1d920e0eb9ba \ + --hash=sha256:21761006a7f497cb0d4de3d8ef4ca70532256688b0523eee02baf9eec895e27b \ + --hash=sha256:28902ee51f12e0f19e1e16fbe2f8f06b6637f482c459dd393efddd0ec7f82045 \ + --hash=sha256:2899753e2f61e571b3971747e302d5f420c3fd09650e1951e99f823bc3089dac \ + --hash=sha256:2abb24cf3f17864770d18d673c85235ba52456b36a06b6afc1e07c1fdcd3d0e6 \ + --hash=sha256:34c81968774648ab5ac09c29a375fdede03ba253f8f8287847bd480782f73a6a \ + --hash=sha256:409088884802d511ee52ca067707b90c883426bd95514e8cfda8281dc2effe24 \ + --hash=sha256:481daf36a4c443332e2ae9c137dfee878fcea781a2e3f895d54bd3002a900957 \ + --hash=sha256:4b84a7a18f41e167f7995200a1d07a4a6810e89d29859df936f1c3923d263042 \ + --hash=sha256:4f28f99c824ecebcdaa2e55d82953e38ff60ee5ec938476796636b86afa3956e \ + --hash=sha256:5f05aa3d375b385734388e844bc01733bd33c644ab48e9684faa54e5389775ec \ + --hash=sha256:7bcfc336a03a1aaa26dfce9fff3e287a3ba99872a157561cbfcebe67c13308e3 \ + --hash=sha256:804bd67b8054a85447c8954215a906d6eff9cabeabe493fb6334b24f4bfff718 \ + --hash=sha256:8bb5c6f6d043655e055be9b542aa5f3bdd30e4f3589163e85f93f3640060509f \ + --hash=sha256:a009ffa5a621762d0c926a078c2d639104becab69e79538a494bcccb62cc0331 \ + --hash=sha256:a8174a03289288c1f6c46d55cef02379b478bfbc8e358e02047487cad44c6ca1 \ + --hash=sha256:ab43590f9cd5108f41aacf9fca31841142c786827a74ab7cc8a2eacb634e09a1 \ + --hash=sha256:b10e7c2cd7870ba4ad9b2d8a6102eb5ffc1f16ca35e3de6bfa390c1113029d13 \ + --hash=sha256:b13cfdd6c87fc3efb69ea4ec18ef79c74c3f98b4e5498ca9b85ab3b2c2329a67 \ + --hash=sha256:b64d987153888790bcdb03a6473d321820597ab8dd9243b27a92153c4fa50fd2 \ + --hash=sha256:b7951a701c07ea584c4fe327834b92a30825514c868b1f69c30445093fdd9d5a \ + --hash=sha256:bdb12f69bcc02700c2b47e070238f42cb87f18c0bc1fc4cdb4fb2bc5fd7a3b8b \ + --hash=sha256:c35d298c2c4bba75feb2195655dfea8124d855dfd7343bf8b8c055421eaf0cf8 \ + --hash=sha256:c608937067d2fc5a4dd1a5ce92fd9e1398691b8c5d012d66e1ddd430e9244376 \ + --hash=sha256:c9a6538e0415310aad77cb94004ca6482330fece18036b5f360b62c45814c4ef \ + --hash=sha256:d8dfc6ab58ca7dda47d9237349157500468e404b17213d44fc1cb77bce532288 \ + --hash=sha256:da4869fc5e7f62a88f3fe0b5c919d1d9f7ea3cef92d3689de2823fd27e40aa75 \ + --hash=sha256:de759aafbae8763283b2ee5869c7255391fbc4de3ff171f8f030b5ec48381b74 \ + --hash=sha256:e3157c7594ff2ef1634ee058aafc56a82db665c9438fd41b390f3bde1ab12250 \ + --hash=sha256:e3f276d8493c3c97930e354b2595a44a21348b320d859fb4a2b9f66da9ed27ab \ + --hash=sha256:ee4c11e460685c3e0c64a4c5de82ae143622410950d6be863303a1c4ba0e36d6 \ + --hash=sha256:f1235f5ea01b7db5468d53ece6aaddf1ad0b88d9e7462b86ef96fe04995d7247 \ + --hash=sha256:f7cee03c9a2e2ee26ec07479f38ea9c884e301d42c6d43a19d20fb014e3ba925 \ + --hash=sha256:f859fb09d9583a985be9a493d5cfc5515b56b08f7447759a0c5deaf68d80506e \ + --hash=sha256:ffcebe56eb09ff0c0885e750036a095e23793ba6c2e894e7e63f6d89ad51f22e # via sqlalchemy mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ @@ -1765,9 +1765,9 @@ pandas==2.3.3 \ # pandas-gbq # pymilvus # snowflake-connector-python -pandas-gbq==0.31.1 \ - --hash=sha256:a5d6e897917302c50feaca2ed1ce6a284abd8b9139383bf063307aab8d0556d9 \ - --hash=sha256:c59878504adee211cf1c34b22cf94393c59cc953626c61ce76e06c8d25fd146d +pandas-gbq==0.32.0 \ + --hash=sha256:249623d574c65e98cf19b7b7ecda97729f4f0a843eae3a0a82d9ef50adcdf4ef \ + --hash=sha256:28018ff09f2e49ab2b01a11329bd4e562fd65da406030b4a8001a3a4e80a1e34 # via google-cloud-bigquery parsy==2.2 \ --hash=sha256:5e981613d9d2d8b68012d1dd0afe928967bea2e4eefdb76c2f545af0dd02a9e7 \ @@ -1915,9 +1915,9 @@ propcache==0.4.1 \ # via # aiohttp # yarl -proto-plus==1.26.1 \ - --hash=sha256:13285478c2dcf2abb829db158e1047e2f1e8d63a077d94263c2b88b043c75a66 \ - --hash=sha256:21a515a4c4c0088a773899e23c7bbade3d18f9c66c73edd4c7ee3816bc96a012 +proto-plus==1.27.0 \ + --hash=sha256:1baa7f81cf0f8acb8bc1f6d085008ba4171eaf669629d1b6d1673b21ed1c0a82 \ + --hash=sha256:873af56dd0d7e91836aee871e5799e1c6f1bda86ac9a983e0bb9f0c266a568c4 # via # google-api-core # google-cloud-bigquery-storage @@ -1947,26 +1947,28 @@ protobuf==6.33.2 \ # grpcio-status # proto-plus # pymilvus -psutil==7.1.3 \ - --hash=sha256:0005da714eee687b4b8decd3d6cc7c6db36215c9e74e5ad2264b90c3df7d92dc \ - --hash=sha256:1068c303be3a72f8e18e412c5b2a8f6d31750fb152f9cb106b54090296c9d251 \ - --hash=sha256:18349c5c24b06ac5612c0428ec2a0331c26443d259e2a0144a9b24b4395b58fa \ - --hash=sha256:19644c85dcb987e35eeeaefdc3915d059dac7bd1167cdcdbf27e0ce2df0c08c0 \ - --hash=sha256:2bdbcd0e58ca14996a42adf3621a6244f1bb2e2e528886959c72cf1e326677ab \ - --hash=sha256:31d77fcedb7529f27bb3a0472bea9334349f9a04160e8e6e5020f22c59893264 \ - --hash=sha256:3792983e23b69843aea49c8f5b8f115572c5ab64c153bada5270086a2123c7e7 \ - --hash=sha256:3bb428f9f05c1225a558f53e30ccbad9930b11c3fc206836242de1091d3e7dd3 \ - --hash=sha256:56d974e02ca2c8eb4812c3f76c30e28836fffc311d55d979f1465c1feeb2b68b \ - --hash=sha256:6c86281738d77335af7aec228328e944b30930899ea760ecf33a4dba66be5e74 \ - --hash=sha256:8f33a3702e167783a9213db10ad29650ebf383946e91bc77f28a5eb083496bc9 \ - --hash=sha256:95ef04cf2e5ba0ab9eaafc4a11eaae91b44f4ef5541acd2ee91d9108d00d59a7 \ - --hash=sha256:ad81425efc5e75da3f39b3e636293360ad8d0b49bed7df824c79764fb4ba9b8b \ - --hash=sha256:b403da1df4d6d43973dc004d19cee3b848e998ae3154cc8097d139b77156c353 \ - --hash=sha256:bc31fa00f1fbc3c3802141eede66f3a2d51d89716a194bf2cd6fc68310a19880 \ - --hash=sha256:bd0d69cee829226a761e92f28140bec9a5ee9d5b4fb4b0cc589068dbfff559b1 \ - --hash=sha256:c525ffa774fe4496282fb0b1187725793de3e7c6b29e41562733cae9ada151ee \ - --hash=sha256:f39c2c19fe824b47484b96f9692932248a54c43799a84282cfe58d05a6449efd \ - --hash=sha256:fac9cd332c67f4422504297889da5ab7e05fd11e3c4392140f7370f4208ded1f +psutil==7.2.1 \ + --hash=sha256:05cc68dbb8c174828624062e73078e7e35406f4ca2d0866c272c2410d8ef06d1 \ + --hash=sha256:08a2f175e48a898c8eb8eace45ce01777f4785bc744c90aa2cc7f2fa5462a266 \ + --hash=sha256:0d67c1822c355aa6f7314d92018fb4268a76668a536f133599b91edd48759442 \ + --hash=sha256:2ceae842a78d1603753561132d5ad1b2f8a7979cb0c283f5b52fb4e6e14b1a79 \ + --hash=sha256:35630d5af80d5d0d49cfc4d64c1c13838baf6717a13effb35869a5919b854cdf \ + --hash=sha256:3fce5f92c22b00cdefd1645aa58ab4877a01679e901555067b1bd77039aa589f \ + --hash=sha256:494c513ccc53225ae23eec7fe6e1482f1b8a44674241b54561f755a898650679 \ + --hash=sha256:5e38404ca2bb30ed7267a46c02f06ff842e92da3bb8c5bfdadbd35a5722314d8 \ + --hash=sha256:81442dac7abfc2f4f4385ea9e12ddf5a796721c0f6133260687fec5c3780fa49 \ + --hash=sha256:923f8653416604e356073e6e0bccbe7c09990acef442def2f5640dd0faa9689f \ + --hash=sha256:93f3f7b0bb07711b49626e7940d6fe52aa9940ad86e8f7e74842e73189712129 \ + --hash=sha256:99a4cd17a5fdd1f3d014396502daa70b5ec21bf4ffe38393e152f8e449757d67 \ + --hash=sha256:ab2b98c9fc19f13f59628d94df5cc4cc4844bc572467d113a8b517d634e362c6 \ + --hash=sha256:b1b0671619343aa71c20ff9767eced0483e4fc9e1f489d50923738caf6a03c17 \ + --hash=sha256:b2e953fcfaedcfbc952b44744f22d16575d3aa78eb4f51ae74165b4e96e55f42 \ + --hash=sha256:ba9f33bb525b14c3ea563b2fd521a84d2fa214ec59e3e6a2858f78d0844dd60d \ + --hash=sha256:cfbe6b40ca48019a51827f20d830887b3107a74a79b01ceb8cc8de4ccb17b672 \ + --hash=sha256:d34d2ca888208eea2b5c68186841336a7f5e0b990edec929be909353a202768a \ + --hash=sha256:ea46c0d060491051d39f0d2cff4f98d5c72b288289f57a21556cc7d504db37fc \ + --hash=sha256:f7583aec590485b43ca601dd9cea0dcd65bd7bb21d30ef4ddbf4ea6b5ed1bdd3 \ + --hash=sha256:f78baafb38436d5a128f837fab2d92c276dfb48af01a240b861ae02b2413ada8 # via # feast (setup.py) # pandas-gbq @@ -2228,9 +2230,9 @@ python-dotenv==1.2.1 \ # pydantic-settings # pymilvus # uvicorn -python-multipart==0.0.20 \ - --hash=sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104 \ - --hash=sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13 +python-multipart==0.0.21 \ + --hash=sha256:7137ebd4d3bbf70ea1622998f902b97a29434a9e8dc40eb203bbcf7c2a2cba92 \ + --hash=sha256:cf7a6713e01c87aa35387f4774e812c4361150938d20d232800f75ffcf266090 # via mcp pytz==2025.2 \ --hash=sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3 \ @@ -2542,12 +2544,14 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:1d8b4a7a8c9b537509d56d5cd10ecdcfbb95912d72480c8861524efecc6a3fff \ --hash=sha256:215f0528b914e5c75ef2559f69dca86878a3beeb0c1be7279d77f18e8d180ed4 \ --hash=sha256:2c0b74aa79e2deade948fe8593654c8ef4228c44ba862bb7c9585c8e0db90f33 \ + --hash=sha256:2e90a344c644a4fa871eb01809c32096487928bd2038bf10f3e4515cb688cc56 \ --hash=sha256:3c5f76216e7b85770d5bb5130ddd11ee89f4d52b11783674a662c7dd57018177 \ --hash=sha256:470daea2c1ce73910f08caf10575676a37159a6d16c4da33d0033546bddebc9b \ --hash=sha256:4748601c8ea959e37e03d13dcda4a44837afcd1b21338e637f7c935b8da06177 \ --hash=sha256:4b6bec67ca45bc166c8729910bd2a87f1c0407ee955df110d78948f5b5827e8a \ --hash=sha256:5225a288e4c8cc2308dbdd874edad6e7d0fd38eac1e9e5f23503425c8eee20d0 \ --hash=sha256:56ead1f8dfb91a54a28cd1d072c74b3d635bcffbd25e50786533b822d4f2cde2 \ + --hash=sha256:5964f832431b7cdfaaa22a660b4c7eb1dfcd6ed41375f67fd3e3440fd95cb3cc \ --hash=sha256:59a8b8bd9c6bedf81ad07c8bd5543eedca55fe9b8780b2b628d495ba55f8db1e \ --hash=sha256:672c45cae53ba88e0dad74b9027dddd09ef6f441e927786b05bec75d949fbb2e \ --hash=sha256:6d0beadc2535157070c9c17ecf25ecec31e13c229a8f69196d7590bde8082bf1 \ @@ -2566,7 +2570,9 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:b8c8b41b97fba5f62349aa285654230296829672fc9939cd7f35aab246d1c08b \ --hash=sha256:ba547ac0b361ab4f1608afbc8432db669bd0819b3e12e29fb5fa9529a8bba81d \ --hash=sha256:c1c2091b1489435ff85728fafeb990f073e64f6f5e81d5cd53059773e8521eb6 \ + --hash=sha256:c64772786d9eee72d4d3784c28f0a636af5b0a29f3fe26ff11f55efe90c0bd85 \ --hash=sha256:cd337d3526ec5298f67d6a30bbbe4ed7e5e68862f0bf6dd21d289f8d37b7d60b \ + --hash=sha256:d29b2b99d527dbc66dd87c3c3248a5dd789d974a507f4653c969999fc7c1191b \ --hash=sha256:d2c3684fca8a05f0ac1d9a21c1f4a266983a7ea9180efb80ffeb03861ecd01a0 \ --hash=sha256:d62e47f5d8a50099b17e2bfc1b0c7d7ecd8ba6b46b1507b58cc4f05eefc3bb1c \ --hash=sha256:d8a2ca754e5415cde2b656c27900b19d50ba076aa05ce66e2207623d3fe41f5a \ @@ -2584,9 +2590,9 @@ sqlglot==25.20.2 \ --hash=sha256:169fe8308dd70d7bd40117b2221b62bdc7c4e2ea8eb07394b2a6146cdedf05ab \ --hash=sha256:cdbfd7ce3f2f39f32bd7b4c23fd9e0fd261636a6b14285b914e8def25fd0a567 # via ibis-framework -sse-starlette==3.0.3 \ - --hash=sha256:88cfb08747e16200ea990c8ca876b03910a23b547ab3bd764c0d8eb81019b971 \ - --hash=sha256:af5bf5a6f3933df1d9c7f8539633dc8444ca6a97ab2e2a7cd3b6e431ac03a431 +sse-starlette==3.1.1 \ + --hash=sha256:bb38f71ae74cfd86b529907a9fda5632195dfa6ae120f214ea4c890c7ee9d436 \ + --hash=sha256:bffa531420c1793ab224f63648c059bcadc412bf9fdb1301ac8de1cf9a67b7fb # via mcp starlette==0.50.0 \ --hash=sha256:9e5391843ec9b6e472eed1365a78c8098cfceb7a74bfd4d6b1c0c0095efb3bca \ @@ -2594,6 +2600,7 @@ starlette==0.50.0 \ # via # fastapi # mcp + # sse-starlette tabulate==0.9.0 \ --hash=sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c \ --hash=sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f @@ -2673,13 +2680,13 @@ typeguard==4.4.4 \ --hash=sha256:3a7fd2dffb705d4d0efaed4306a704c89b9dee850b688f060a8b1615a79e5f74 \ --hash=sha256:b5f562281b6bfa1f5492470464730ef001646128b180769880468bd84b68b09e # via feast (setup.py) -typer==0.20.0 \ - --hash=sha256:1aaf6494031793e4876fb0bacfa6a912b551cf43c1e63c800df8b1a866720c37 \ - --hash=sha256:5b463df6793ec1dca6213a3cf4c0f03bc6e322ac5e16e13ddd622a889489784a +typer==0.21.0 \ + --hash=sha256:c79c01ca6b30af9fd48284058a7056ba0d3bf5cf10d0ff3d0c5b11b68c258ac6 \ + --hash=sha256:c87c0d2b6eee3b49c5c64649ec92425492c14488096dfbc8a0c2799b2f6f9c53 # via fastapi-mcp -types-pymysql==1.1.0.20250916 \ - --hash=sha256:873eb9836bb5e3de4368cc7010ca72775f86e9692a5c7810f8c7f48da082e55b \ - --hash=sha256:98d75731795fcc06723a192786662bdfa760e1e00f22809c104fbb47bac5e29b +types-pymysql==1.1.0.20251220 \ + --hash=sha256:ae1c3df32a777489431e2e9963880a0df48f6591e0aa2fd3a6fabd9dee6eca54 \ + --hash=sha256:fa1082af7dea6c53b6caa5784241924b1296ea3a8d3bd060417352c5e10c0618 # via feast (setup.py) typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -2715,9 +2722,9 @@ typing-inspection==0.4.2 \ # mcp # pydantic # pydantic-settings -tzdata==2025.2 \ - --hash=sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8 \ - --hash=sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9 +tzdata==2025.3 \ + --hash=sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1 \ + --hash=sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7 # via pandas ujson==5.11.0 \ --hash=sha256:0180a480a7d099082501cad1fe85252e4d4bf926b40960fb3d9e87a3a6fbbc80 \ @@ -2805,9 +2812,9 @@ ujson==5.11.0 \ --hash=sha256:fa79fdb47701942c2132a9dd2297a1a85941d966d8c87bfd9e29b0cf423f26cc \ --hash=sha256:fac6c0649d6b7c3682a0a6e18d3de6857977378dce8d419f57a0b20e3d775b39 # via pymilvus -urllib3==2.6.1 \ - --hash=sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f \ - --hash=sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b +urllib3==2.6.2 \ + --hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \ + --hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd # via # botocore # kubernetes diff --git a/sdk/python/requirements/py3.10-minimal-sdist-requirements-build.txt b/sdk/python/requirements/py3.10-minimal-sdist-requirements-build.txt index 8749629ccb6..8bb08a3bea9 100644 --- a/sdk/python/requirements/py3.10-minimal-sdist-requirements-build.txt +++ b/sdk/python/requirements/py3.10-minimal-sdist-requirements-build.txt @@ -97,7 +97,9 @@ cffi==2.0.0 \ coherent-licensed==0.5.2 \ --hash=sha256:d8071403ce742d3ac3592ddc4fb7057a46caffb415b928b4d52802e5f208416d \ --hash=sha256:edccc5193ca2786f8fb3f0c7374637a143985f781f7eaa21aca3af2bd634b82f - # via zipp + # via + # importlib-metadata + # zipp cython==3.0.12 \ --hash=sha256:0038c9bae46c459669390e53a1ec115f8096b2e4647ae007ff1bf4e6dee92806 \ --hash=sha256:0faa5e39e5c8cdf6f9c3b1c3f24972826e45911e7f5b99cf99453fca5432f45e \ @@ -170,46 +172,46 @@ cython==3.0.12 \ # pyyaml # snowflake-connector-python # sqlalchemy -cython==3.2.2 \ - --hash=sha256:034ab96cb8bc8e7432bc27491f8d66f51e435b1eb21ddc03aa844be8f21ad847 \ - --hash=sha256:098590c1dc309f8a0406ade031963a95a87714296b425539f9920aebf924560d \ - --hash=sha256:0e35ff0f1bb3a7a5c40afb8fb540e4178b6551909f10748bf39d323f8140ccf3 \ - --hash=sha256:13b99ecb9482aff6a6c12d1ca6feef6940c507af909914b49f568de74fa965fb \ - --hash=sha256:14432d7f207245a3c35556155873f494784169297b28978a6204f1c60d31553e \ - --hash=sha256:177faf4d61e9f2d4d2db61194ac9ec16d3fe3041c1b6830f871a01935319eeb3 \ - --hash=sha256:2b910b89a2a71004064c5e890b9512a251eda63fae252caa0feb9835057035f9 \ - --hash=sha256:3de43a5786033a27fae1c882feb5ff0d023c38b83356e6800c1be0bcd6cf9f11 \ - --hash=sha256:436eb562d0affbc0b959f62f3f9c1ed251b9499e4f29c1d19514ae859894b6bf \ - --hash=sha256:50bbaabee733fd2780985e459fc20f655e02def83e8eff10220ad88455a34622 \ - --hash=sha256:5f818d40bbcf17e2089e2de7840f0de1c0ca527acf9b044aba79d5f5d8a5bdba \ - --hash=sha256:60f4aa425e1ff98abf8d965ae7020f06dd2cbc01dbd945137d2f9cca4ff0524a \ - --hash=sha256:692a41c8fe06fb2dc55ca2c8d71c80c469fd16fe69486ed99f3b3cbb2d3af83f \ - --hash=sha256:820c4a99dbf6b3e6c0300be42b4040b501eff0e1feeb80cfa52c48a346fb0df2 \ - --hash=sha256:826cad0ad43ab05a26e873b5d625f64d458dc739ec6fdeecab848b60a91c4252 \ - --hash=sha256:86b1d39a1ea974dd16fe3bcef0df7b64dadd0bd38d05a339f287b48d37cb109f \ - --hash=sha256:8c9265b3e84ae2d999b7c3165c683e366bbbbbe4346468055ca2366fe013f2df \ - --hash=sha256:8db28aef793c81dc69383b619ca508668998aaf099cd839d3cbae85184cce744 \ - --hash=sha256:8e72ee88a9a5381d30a6da116a3c8352730b9b038a49ed9bc5c3d0ed6d69b06c \ - --hash=sha256:9cd2ede6af225499ad22888dbfb13b92d71fc1016f401ee637559a5831b177c2 \ - --hash=sha256:a3898c076e9c458bcb3e4936187919fda5f5365fe4c567d35d2b003444b6f3fe \ - --hash=sha256:a473df474ba89e9fee81ee82b31062a267f9e598096b222783477e56d02ad12c \ - --hash=sha256:a6387e3ad31342443916db9a419509935fddd8d4cbac34aab9c895ae55326a56 \ - --hash=sha256:a9509f1e9c41c86b790cff745bb31927bbc861662a3b462596d71d3d2a578abb \ - --hash=sha256:aa24cd0bdab27ca099b2467806c684404add597c1108e07ddf7b6471653c85d7 \ - --hash=sha256:aff11412ed5fc78bd8b148621f4d1034fcad6cfcba468c20cd9f327b4f61ec3e \ - --hash=sha256:b223c1f84c3420c24f6a4858e979524bd35a79437a5839e29d41201c87ed119d \ - --hash=sha256:b4df52101209817fde7284cf779156f79142fb639b1d7840f11680ff4bb30604 \ - --hash=sha256:b4fe499eed7cd70b2aa4e096b9ce2588f5e6fdf049b46d40a5e55efcde6e4904 \ - --hash=sha256:b5afac4e77e71a9010dc7fd3191ced00f9b12b494dd7525c140781054ce63a73 \ - --hash=sha256:c3add3d483acc73129a61d105389344d792c17e7c1cee24863f16416bd071634 \ - --hash=sha256:ca18d9d53c0e2f0c9347478b37532b46e0dc34c704e052ab1b0d8b21a290fc0f \ - --hash=sha256:d140c2701cbb8cf960300cf1b67f3b4fa9d294d32e51b85f329bff56936a82fd \ - --hash=sha256:d7b3447b2005dffc5f276d420a480d2b57d15091242652d410b6a46fb00ed251 \ - --hash=sha256:d8c93fe128b58942832b1fcac96e48f93c2c69b569eff0d38d30fb5995fecfa0 \ - --hash=sha256:e7200309b81f4066cf36a96efeec646716ca74afd73d159045169263db891133 \ - --hash=sha256:f560ff3aea5b5df93853ec7bf1a1e9623d6d511f4192f197559aca18fca43392 \ - --hash=sha256:fed44d0ab2d36f1b0301c770b0dafec23bcb9700d58e7769cd6d9136b3304c11 \ - --hash=sha256:ff07e784ea748225bbdea07fec0ac451379e9e41a0a84cb57b36db19dd01ae71 +cython==3.2.3 \ + --hash=sha256:0145e64485f0a9741c9314ae176282dffeb48d2ef30ae315d7224698867c317f \ + --hash=sha256:06a1317097f540d3bb6c7b81ed58a0d8b9dbfa97abf39dfd4c22ee87a6c7241e \ + --hash=sha256:0a75a04688875b275a6c875565e672325bae04327dd6ec2fc25aeb5c6cf82fce \ + --hash=sha256:1309bdce06f767e8514377f44b3a5b9e5b91e58af1348010cca10b572e1852ad \ + --hash=sha256:18b5e738c9dbb1cb488b51e35c3a1b9aa7363166cce40158fe6ccb454f6498ac \ + --hash=sha256:18edc858e6a52de47fe03ffa97ea14dadf450e20069de0a8aef531006c4bbd93 \ + --hash=sha256:1d097ad4686b58b8c03d760d08eca28f79878d404ef7452c49636170571654e0 \ + --hash=sha256:228f11be8406015d1ce84a25bf4f96167ff6fc18b834deca5716d95ae15a818c \ + --hash=sha256:22a624290c2883387b2c2cfb5224c15bff21432c6a2cf0c23ac8df3dcbd45e96 \ + --hash=sha256:25732f3981a93407826297f4423206e5e22c3cfccfc74e37bf444453bbdc076f \ + --hash=sha256:26404441f733fd1cfb0dd9c45477f501437e7d51fad05bb402bd2feb4e127aa3 \ + --hash=sha256:283262b8f902323ceb6ed3b643f275a2a963e7ab059f0714a467933383cbc56d \ + --hash=sha256:2a18f2e3bcd018416157d0a83446e29b4a31437ab79061fe5504c077e70389d0 \ + --hash=sha256:3141734fb15f8b5e9402b9240f8da8336edecae91742b41c85678c31ab68f66d \ + --hash=sha256:3829f99d611412288f44ff543e9d2b5c0c83274998b2a6680bbe5cca3539c1fd \ + --hash=sha256:4f40efa83c93060a271046930d2322ec045abb9722d25a377702cb57aa823c2b \ + --hash=sha256:51fd1a56d0fc682c05ecc44f11927dbe28dd2867c30148557b62d7d1017a13d8 \ + --hash=sha256:55c0157a5940fbf0b054508207fe0fc5cc796d0532af492c0fa35b5b41a883f7 \ + --hash=sha256:60d19376252722241a3d3ec8a695c5cae4deb053486d2e5f9a40cb569a0cf984 \ + --hash=sha256:6b01b36c9eb1b68c25bddbeef7379f7bfc37f7c9afc044e71840ffab761a2dd0 \ + --hash=sha256:6b6dd6b7aca8447b2a6779b314cc402f1e4990754507a88477e535b3c8b41ad1 \ + --hash=sha256:73afc824896ffaf22bf8122d0a7107f0120e3188a353bdcfa92317fc0d9a87ce \ + --hash=sha256:74f482da8b605c61b4df6ff716d013f20131949cb2fa59b03e63abd36ef5bac0 \ + --hash=sha256:80f20369d7aaf4e76cfef902025256918a5cc6eb0aed6d8783e4b1c563e4f6c4 \ + --hash=sha256:84330e7c8bf220a82b633678b9f99e10227c8f4c406d67c5552449ab2afedef8 \ + --hash=sha256:9a24cc653fad3adbd9cbaa638d80df3aa08a1fe27f62eb35850971c70be680df \ + --hash=sha256:9aa1a8abf3d8bb53cc19cfaa21c004afad8d4ccb17513f8aa11a788d1f525abd \ + --hash=sha256:9c5ac7201d8382c0da69e4a119c14be6acd7c286615a0383ffbd1dbfdbaa3df7 \ + --hash=sha256:b39dff92db70cbd95528f3b81d70e06bd6d3fc9c1dd91321e4d3b999ece3bceb \ + --hash=sha256:c041f7e338cca2422e0924716b04fabeda57636214324fc1941396acce99e7c7 \ + --hash=sha256:c102388cf7604ff5647164d5041fd5de2393198a87883fdb50f6c078fc2f4f8e \ + --hash=sha256:c2365a0c79ab9c0fa86d30a4a6ba7e37fc1be9537c48b79b9d63ee7e08bf2fef \ + --hash=sha256:cf210228c15b5c625824d8e31d43b6fea25f9e13c81dac632f2f7d838e0229a5 \ + --hash=sha256:d1f8700ba89c977438744f083890d87187f15709507a5489e0f6d682053b7fa0 \ + --hash=sha256:e31f52ea7e35463b21410f150006eb07b663a0b3ceea8ee8f35e0b8e02b75f50 \ + --hash=sha256:e4293f1861480b397809a6f021a6c12e15e918feae1c7add80c99d07af206578 \ + --hash=sha256:f13832412d633376ffc08d751cc18ed0d7d00a398a4065e2871db505258748a6 \ + --hash=sha256:f5bf0cebeb4147e172a114437d3fce5a507595d8fdd821be792b1bb25c691514 \ + --hash=sha256:fabe2f37acb63a5521d16193effb15acd082e35458f30f1c1f3e506271fee8a7 # via uvloop dunamai==1.25.0 \ --hash=sha256:7f9dc687dd3256e613b6cc978d9daabfd2bb5deb8adc541fc135ee423ffa98ab \ @@ -334,83 +336,83 @@ jinja2==3.1.6 \ # via # poetry-dynamic-versioning # uv-dynamic-versioning -librt==0.7.3 \ - --hash=sha256:020c6db391268bcc8ce75105cb572df8cb659a43fd347366aaa407c366e5117a \ - --hash=sha256:0fa9ac2e49a6bee56e47573a6786cb635e128a7b12a0dc7851090037c0d397a3 \ - --hash=sha256:11ad45122bbed42cfc8b0597450660126ef28fd2d9ae1a219bc5af8406f95678 \ - --hash=sha256:120dd21d46ff875e849f1aae19346223cf15656be489242fe884036b23d39e93 \ - --hash=sha256:14569ac5dd38cfccf0a14597a88038fb16811a6fede25c67b79c6d50fc2c8fdc \ - --hash=sha256:1617bea5ab31266e152871208502ee943cb349c224846928a1173c864261375e \ - --hash=sha256:170cdb8436188347af17bf9cccf3249ba581c933ed56d926497119d4cf730cec \ - --hash=sha256:1975eda520957c6e0eb52d12968dd3609ffb7eef05d4223d097893d6daf1d8a7 \ - --hash=sha256:1fe603877e1865b5fd047a5e40379509a4a60204aa7aa0f72b16f7a41c3f0712 \ - --hash=sha256:24d70810f6e2ea853ff79338001533716b373cc0f63e2a0be5bc96129edb5fb5 \ - --hash=sha256:256793988bff98040de23c57cf36e1f4c2f2dc3dcd17537cdac031d3b681db71 \ - --hash=sha256:25711f364c64cab2c910a0247e90b51421e45dbc8910ceeb4eac97a9e132fc6f \ - --hash=sha256:2682162855a708e3270eba4b92026b93f8257c3e65278b456c77631faf0f4f7a \ - --hash=sha256:2cf9d73499486ce39eebbff5f42452518cc1f88d8b7ea4a711ab32962b176ee2 \ - --hash=sha256:2e40520c37926166c24d0c2e0f3bc3a5f46646c34bdf7b4ea9747c297d6ee809 \ - --hash=sha256:2e980cf1ed1a2420a6424e2ed884629cdead291686f1048810a817de07b5eb18 \ - --hash=sha256:2f03484b54bf4ae80ab2e504a8d99d20d551bfe64a7ec91e218010b467d77093 \ - --hash=sha256:35f1609e3484a649bb80431310ddbec81114cd86648f1d9482bc72a3b86ded2e \ - --hash=sha256:399938edbd3d78339f797d685142dd8a623dfaded023cf451033c85955e4838a \ - --hash=sha256:399bbd7bcc1633c3e356ae274a1deb8781c7bf84d9c7962cc1ae0c6e87837292 \ - --hash=sha256:3ec50cf65235ff5c02c5b747748d9222e564ad48597122a361269dd3aa808798 \ - --hash=sha256:3edbf257c40d21a42615e9e332a6b10a8bacaaf58250aed8552a14a70efd0d65 \ - --hash=sha256:440c788f707c061d237c1e83edf6164ff19f5c0f823a3bf054e88804ebf971ec \ - --hash=sha256:44b3689b040df57f492e02cd4f0bacd1b42c5400e4b8048160c9d5e866de8abe \ - --hash=sha256:4887c29cadbdc50640179e3861c276325ff2986791e6044f73136e6e798ff806 \ - --hash=sha256:5460d99ed30f043595bbdc888f542bad2caeb6226b01c33cda3ae444e8f82d42 \ - --hash=sha256:550fdbfbf5bba6a2960b27376ca76d6aaa2bd4b1a06c4255edd8520c306fcfc0 \ - --hash=sha256:56f2a47beda8409061bc1c865bef2d4bd9ff9255219402c0817e68ab5ad89aed \ - --hash=sha256:572a24fc5958c61431da456a0ef1eeea6b4989d81eeb18b8e5f1f3077592200b \ - --hash=sha256:59cb0470612d21fa1efddfa0dd710756b50d9c7fb6c1236bbf8ef8529331dc70 \ - --hash=sha256:6038ccbd5968325a5d6fd393cf6e00b622a8de545f0994b89dd0f748dcf3e19e \ - --hash=sha256:6488e69d408b492e08bfb68f20c4a899a354b4386a446ecd490baff8d0862720 \ - --hash=sha256:687403cced6a29590e6be6964463835315905221d797bc5c934a98750fe1a9af \ - --hash=sha256:6b407c23f16ccc36614c136251d6b32bf30de7a57f8e782378f1107be008ddb0 \ - --hash=sha256:6b4e7bff1d76dd2b46443078519dc75df1b5e01562345f0bb740cea5266d8218 \ - --hash=sha256:6bdd9adfca615903578d2060ee8a6eb1c24eaf54919ff0ddc820118e5718931b \ - --hash=sha256:6eb9295c730e26b849ed1f4022735f36863eb46b14b6e10604c1c39b8b5efaea \ - --hash=sha256:703456146dc2bf430f7832fd1341adac5c893ec3c1430194fdcefba00012555c \ - --hash=sha256:754a0d09997095ad764ccef050dd5bf26cbf457aab9effcba5890dad081d879e \ - --hash=sha256:7af7785f5edd1f418da09a8cdb9ec84b0213e23d597413e06525340bcce1ea4f \ - --hash=sha256:7b29e97273bd6999e2bfe9fe3531b1f4f64effd28327bced048a33e49b99674a \ - --hash=sha256:7b4f57f7a0c65821c5441d98c47ff7c01d359b1e12328219709bdd97fdd37f90 \ - --hash=sha256:8837d5a52a2d7aa9f4c3220a8484013aed1d8ad75240d9a75ede63709ef89055 \ - --hash=sha256:8ccadf260bb46a61b9c7e89e2218f6efea9f3eeaaab4e3d1f58571890e54858e \ - --hash=sha256:8d8cf653e798ee4c4e654062b633db36984a1572f68c3aa25e364a0ddfbbb910 \ - --hash=sha256:93b2a1f325fefa1482516ced160c8c7b4b8d53226763fa6c93d151fa25164207 \ - --hash=sha256:9f0e0927efe87cd42ad600628e595a1a0aa1c64f6d0b55f7e6059079a428641a \ - --hash=sha256:a59a69deeb458c858b8fea6acf9e2acd5d755d76cd81a655256bc65c20dfff5b \ - --hash=sha256:a9f9b661f82693eb56beb0605156c7fca57f535704ab91837405913417d6990b \ - --hash=sha256:abfc57cab3c53c4546aee31859ef06753bfc136c9d208129bad23e2eca39155a \ - --hash=sha256:aca73d70c3f553552ba9133d4a09e767dcfeee352d8d8d3eb3f77e38a3beb3ed \ - --hash=sha256:adeaa886d607fb02563c1f625cf2ee58778a2567c0c109378da8f17ec3076ad7 \ - --hash=sha256:b278a9248a4e3260fee3db7613772ca9ab6763a129d6d6f29555e2f9b168216d \ - --hash=sha256:b7c1239b64b70be7759554ad1a86288220bbb04d68518b527783c4ad3fb4f80b \ - --hash=sha256:bf8c7735fbfc0754111f00edda35cf9e98a8d478de6c47b04eaa9cef4300eaa7 \ - --hash=sha256:c634a0a6db395fdaba0361aa78395597ee72c3aad651b9a307a3a7eaf5efd67e \ - --hash=sha256:cad9971881e4fec00d96af7eaf4b63aa7a595696fc221808b0d3ce7ca9743258 \ - --hash=sha256:cbdb3f337c88b43c3b49ca377731912c101178be91cb5071aac48faa898e6f8e \ - --hash=sha256:cd8551aa21df6c60baa2624fd086ae7486bdde00c44097b32e1d1b1966e365e0 \ - --hash=sha256:d09f677693328503c9e492e33e9601464297c01f9ebd966ea8fc5308f3069bfd \ - --hash=sha256:d376a35c6561e81d2590506804b428fc1075fcc6298fc5bb49b771534c0ba010 \ - --hash=sha256:d39079379a9a28e74f4d57dc6357fa310a1977b51ff12239d7271ec7e71d67f5 \ - --hash=sha256:d86f94743a11873317094326456b23f8a5788bad9161fd2f0e52088c33564620 \ - --hash=sha256:d91e60ac44bbe3a77a67af4a4c13114cbe9f6d540337ce22f2c9eaf7454ca71f \ - --hash=sha256:d9883b2d819ce83f87ba82a746c81d14ada78784db431e57cc9719179847376e \ - --hash=sha256:e094e445c37c57e9ec612847812c301840239d34ccc5d153a982fa9814478c60 \ - --hash=sha256:e19acfde38cb532a560b98f473adc741c941b7a9bc90f7294bc273d08becb58b \ - --hash=sha256:e32d43610dff472eab939f4d7fbdd240d1667794192690433672ae22d7af8445 \ - --hash=sha256:ed028fc3d41adda916320712838aec289956c89b4f0a361ceadf83a53b4c047a \ - --hash=sha256:ef59c938f72bdbc6ab52dc50f81d0637fde0f194b02d636987cea2ab30f8f55a \ - --hash=sha256:f3d4801db8354436fd3936531e7f0e4feb411f62433a6b6cb32bb416e20b529f \ - --hash=sha256:f57aca20e637750a2c18d979f7096e2c2033cc40cf7ed201494318de1182f135 \ - --hash=sha256:f9da128d0edf990cf0d2ca011b02cd6f639e79286774bd5b0351245cbb5a6e51 \ - --hash=sha256:fbd7351d43b80d9c64c3cfcb50008f786cc82cba0450e8599fdd64f264320bd3 \ - --hash=sha256:fcb72249ac4ea81a7baefcbff74df7029c3cb1cf01a711113fa052d563639c9c \ - --hash=sha256:ff21c554304e8226bf80c3a7754be27c6c3549a9fec563a03c06ee8f494da8fc +librt==0.7.5 \ + --hash=sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee \ + --hash=sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1 \ + --hash=sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4 \ + --hash=sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899 \ + --hash=sha256:0e2bf8f91093fac43e3eaebacf777f12fd539dce9ec5af3efc6d8424e96ccd49 \ + --hash=sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d \ + --hash=sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760 \ + --hash=sha256:191cbd42660446d67cf7a95ac7bfa60f49b8b3b0417c64f216284a1d86fc9335 \ + --hash=sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8 \ + --hash=sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2 \ + --hash=sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec \ + --hash=sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b \ + --hash=sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0 \ + --hash=sha256:39183abee670bc37b85f11e86c44a9cad1ed6efa48b580083e89ecee13dd9717 \ + --hash=sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325 \ + --hash=sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45 \ + --hash=sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d \ + --hash=sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233 \ + --hash=sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d \ + --hash=sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544 \ + --hash=sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802 \ + --hash=sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2 \ + --hash=sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d \ + --hash=sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f \ + --hash=sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169 \ + --hash=sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe \ + --hash=sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982 \ + --hash=sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2 \ + --hash=sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa \ + --hash=sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4 \ + --hash=sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4 \ + --hash=sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57 \ + --hash=sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26 \ + --hash=sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361 \ + --hash=sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad \ + --hash=sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e \ + --hash=sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf \ + --hash=sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f \ + --hash=sha256:8dcae24de1bc9da93aa689cb6313c70e776d7cea2fcf26b9b6160fedfe6bd9af \ + --hash=sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2 \ + --hash=sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89 \ + --hash=sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904 \ + --hash=sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6 \ + --hash=sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276 \ + --hash=sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e \ + --hash=sha256:a9eacbf983319b26b5f340a2e0cd47ac1ee4725a7f3a72fd0f15063c934b69d6 \ + --hash=sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409 \ + --hash=sha256:af69d9e159575e877c7546d1ee817b4ae089aa221dd1117e20c24ad8dc8659c7 \ + --hash=sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a \ + --hash=sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4 \ + --hash=sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775 \ + --hash=sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203 \ + --hash=sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419 \ + --hash=sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5 \ + --hash=sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023 \ + --hash=sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b \ + --hash=sha256:cdb001a1a0e4f41e613bca2c0fc147fc8a7396f53fc94201cbfd8ec7cd69ca4b \ + --hash=sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d \ + --hash=sha256:d2cc7d187e8c6e9b7bdbefa9697ce897a704ea7a7ce844f2b4e0e2aa07ae51d3 \ + --hash=sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e \ + --hash=sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a \ + --hash=sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b \ + --hash=sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db \ + --hash=sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd \ + --hash=sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa \ + --hash=sha256:df2e210400b28e50994477ebf82f055698c79797b6ee47a1669d383ca33263e1 \ + --hash=sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805 \ + --hash=sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a \ + --hash=sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25 \ + --hash=sha256:ea1b60b86595a5dc1f57b44a801a1c4d8209c0a69518391d349973a4491408e6 \ + --hash=sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b \ + --hash=sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5 \ + --hash=sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416 \ + --hash=sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc \ + --hash=sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7 \ + --hash=sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96 # via mypy markupsafe==3.0.3 \ --hash=sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f \ @@ -503,21 +505,21 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via jinja2 -maturin==1.10.2 \ - --hash=sha256:04df81ee295dcda37828bd025a4ac688ea856e3946e4cb300a8f44a448de0069 \ - --hash=sha256:07a82864352feeaf2167247c8206937ef6c6ae9533025d416b7004ade0ea601d \ - --hash=sha256:11c73815f21a755d2129c410e6cb19dbfacbc0155bfc46c706b69930c2eb794b \ - --hash=sha256:259292563da89850bf8f7d37aa4ddba22905214c1e180b1c8f55505dfd8c0e81 \ - --hash=sha256:7fbd997c5347649ee7987bd05a92bd5b8b07efa4ac3f8bcbf6196e07eb573d89 \ - --hash=sha256:96e1d391e4c1fa87edf2a37e4d53d5f2e5f39dd880b9d8306ac9f8eb212d23f8 \ - --hash=sha256:a217aa7c42aa332fb8e8377eb07314e1f02cf0fe036f614aca4575121952addd \ - --hash=sha256:a41ec70d99e27c05377be90f8e3c3def2a7bae4d0d9d5ea874aaf2d1da625d5c \ - --hash=sha256:a4c29a770ea2c76082e0afc6d4efd8ee94405588bfae00d10828f72e206c739b \ - --hash=sha256:da031771d9fb6ddb1d373638ec2556feee29e4507365cd5749a2d354bcadd818 \ - --hash=sha256:da777766fd584440dc9fecd30059a94f85e4983f58b09e438ae38ee4b494024c \ - --hash=sha256:e3ce9b2ad4fb9c341f450a6d32dc3edb409a2d582a81bc46ba55f6e3b6196b22 \ - --hash=sha256:efcd496a3202ffe0d0489df1f83d08b91399782fb2dd545d5a1e7bf6fd81af39 \ - --hash=sha256:f0d1b7b5f73c8d30a7e71cd2a2189a7f0126a3a3cd8b3d6843e7e1d4db50f759 +maturin==1.11.0 \ + --hash=sha256:0fbe565ede0901de7743cd028ad6c13be623b1c7158641f8a50d7a4353f4a97c \ + --hash=sha256:16cb48f1f2b6b3d8c2732f77d98d8f7f0ab84765abf0c1c82df2c8ea7d8ef2ec \ + --hash=sha256:276a900d4096c246cc236aa00460adb3ab195c37172a9f1087bbde6a127f0780 \ + --hash=sha256:51cadd0373950cfae6aac6823a3d2bf56e34e4efed0abae8c7d15e337d9bb5e6 \ + --hash=sha256:83b73299f36301d943550c609e0a0dff08d21e3674c1369c10df77ce470fd97b \ + --hash=sha256:8695b79462e1f46013993d715485db289cf5a7702aa2d9941ac333564ca20d79 \ + --hash=sha256:8bf16fc56f4abcf3af7d5fb6dab3888f73e3648287c8efe77e14fa1b006a3ef4 \ + --hash=sha256:95c5d778c96ab237837cd6d38e01f0bdca52c64e0d00647a69133a8e7ae4eed4 \ + --hash=sha256:9aaaec73e120ac7add99f53d606aa6d432c8e0337af742b2ca26fb8d17181500 \ + --hash=sha256:aa2d9db1c03e9eb0640a578caf00a6fa2d9399abb7375a970b0f6d6e934b5441 \ + --hash=sha256:d13d3721931d407491d9b3fe161146aa78ab08a8fc9735302abee1d368aedb03 \ + --hash=sha256:d53bde4f939dac9340aa253c2765073de6b8595a29a294503042fcbfec8bd842 \ + --hash=sha256:dba7daeb54615532c11f8fe39bc9514b81215f6f4e91909ec227e06227c286cf \ + --hash=sha256:debf472d3ecd76a3a750b056b99dcb64c119467dc44f0e2d6e6363acb128b96a # via # cryptography # pydantic-core @@ -784,9 +786,9 @@ types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ --hash=sha256:1e642cdafe837b240295b23b1cbd4691d80b08a07d29932143cbbae30eb0db9c # via mypy -types-setuptools==80.9.0.20250822 \ - --hash=sha256:070ea7716968ec67a84c7f7768d9952ff24d28b65b6594797a464f1b3066f965 \ - --hash=sha256:53bf881cb9d7e46ed12c76ef76c0aaf28cfe6211d3fab12e0b83620b1a8642c3 +types-setuptools==80.9.0.20251223 \ + --hash=sha256:1b36db79d724c2287d83dc052cf887b47c0da6a2fff044378be0b019545f56e6 \ + --hash=sha256:d3411059ae2f5f03985217d86ac6084efea2c9e9cacd5f0869ef950f308169b2 # via mypy typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -795,9 +797,9 @@ typing-extensions==4.15.0 \ # exceptiongroup # mypy # setuptools-scm -uv-dynamic-versioning==0.11.2 \ - --hash=sha256:4c785ea02e00b93896d015fd3613c451735af1715a7f5f52e8e4e1d76e6ec3c5 \ - --hash=sha256:563ab4b7a93904eb8fb8fd9f2959dad853d62baa71f3cdb0233acf8a749d512f +uv-dynamic-versioning==0.12.0 \ + --hash=sha256:2d2f1fb806c2e351d0d0a3840aaf7b3c6ce73757080b1ada4ac5dc44f7dd4c9e \ + --hash=sha256:e853e0c5b2425a68005580325d4975a8c37b66015589ca45ef96e660fe0f8f16 # via mcp versioneer==0.29 \ --hash=sha256:0f1a137bb5d6811e96a79bb0486798aeae9b9c6efc24b389659cebb0ee396cb9 \ diff --git a/sdk/python/requirements/py3.10-minimal-sdist-requirements.txt b/sdk/python/requirements/py3.10-minimal-sdist-requirements.txt index 26ae4fa6590..1c92409c888 100644 --- a/sdk/python/requirements/py3.10-minimal-sdist-requirements.txt +++ b/sdk/python/requirements/py3.10-minimal-sdist-requirements.txt @@ -184,9 +184,9 @@ babel==2.17.0 \ --hash=sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d \ --hash=sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2 # via sphinx -bigtree==1.0.3 \ - --hash=sha256:18402a143130868b17ca84a74ca263e6f32f046d6978c30d244f8b94c4a01227 \ - --hash=sha256:99a18b6937a9b4ab8e560fec5c0720e10ebf37f84e44f9b5f47702c2e84c9aaa +bigtree==1.0.4 \ + --hash=sha256:e4af0c5bc0d2cd72e18442965e4509f642b16a0de65db6d0ec116e30f959010c \ + --hash=sha256:f58a3238bb9b1142d893c9de4921bfd18d435427c75e0c168dd580eabf6dc7fd # via feast (setup.py) boto3==1.38.27 \ --hash=sha256:94bd7fdd92d5701b362d4df100d21e28f8307a67ff56b6a8b0398119cf22f859 \ @@ -202,9 +202,9 @@ botocore==1.38.46 \ # boto3 # s3transfer # snowflake-connector-python -cachetools==6.2.2 \ - --hash=sha256:6c09c98183bf58560c97b2abfcedcbaf6a896a490f534b031b661d3723b45ace \ - --hash=sha256:8e6d266b25e539df852251cfd6f990b4bc3a141db73b939058d809ebd2590fc6 +cachetools==6.2.4 \ + --hash=sha256:69a7a52634fed8b8bf6e24a050fb60bff1c9bd8f6d24572b99c32d4e71e62a51 \ + --hash=sha256:82c5c05585e70b6ba2d3ae09ea60b79548872185d2f24ae1f2709d37299fd607 # via google-auth calver==2025.3.31 \ --hash=sha256:07511edf5e7fa75ae97445c8c5921240e0fe62937289a3ebe6963eddd3c691b6 \ @@ -549,13 +549,13 @@ cython==3.0.12 \ --hash=sha256:feb86122a823937cc06e4c029d80ff69f082ebb0b959ab52a5af6cdd271c5dc3 \ --hash=sha256:ff5c0b6a65b08117d0534941d404833d516dac422eee88c6b4fd55feb409a5ed # via feast (setup.py) -dask[dataframe]==2025.11.0 \ - --hash=sha256:08c35a8146c05c93b34f83cf651009129c42ee71762da7ca452fb7308641c2b8 \ - --hash=sha256:23d59e624b80ee05b7cc8df858682cca58262c4c3b197ccf61da0f6543c8f7c3 +dask[dataframe]==2025.12.0 \ + --hash=sha256:4213ce9c5d51d6d89337cff69de35d902aa0bf6abdb8a25c942a4d0281f3a598 \ + --hash=sha256:8d478f2aabd025e2453cf733ad64559de90cf328c20209e4574e9543707c3e1b # via feast (setup.py) -db-dtypes==1.4.4 \ - --hash=sha256:26f53db5df1acd746b88c5647913a1b20f731c0af1b11abcb6bec5365f31098a \ - --hash=sha256:32c13039982656a8598a0835f25f0e07e34c9a423e471ee60c2553240b7fcf1e +db-dtypes==1.5.0 \ + --hash=sha256:abdbb2e4eb965800ed6f98af0c5c1cafff9063ace09114be2d26a7f046be2c8a \ + --hash=sha256:ad9e94243f53e104bc77dbf9ae44b580d83a770d3694483aba59c9767966daa5 # via # google-cloud-bigquery # pandas-gbq @@ -635,9 +635,9 @@ exceptiongroup==1.3.1 \ # via # anyio # scikit-build-core -fastapi==0.124.0 \ - --hash=sha256:260cd178ad75e6d259991f2fd9b0fee924b224850079df576a3ba604ce58f4e6 \ - --hash=sha256:91596bdc6dde303c318f06e8d2bc75eafb341fc793a0c9c92c0bc1db1ac52480 +fastapi==0.128.0 \ + --hash=sha256:1cc179e1cef10a6be60ffe429f79b829dce99d8de32d7acb7e6c8dfdf7f2645a \ + --hash=sha256:aebd93f9716ee3b4f4fcfe13ffb7cf308d99c9f3ab5622d8877441072561582d # via # feast (setup.py) # fastapi-mcp @@ -645,9 +645,9 @@ fastapi-mcp==0.4.0 \ --hash=sha256:d4a3fe7966af24d44e4b412720561c95eb12bed999a4443a88221834b3b15aec \ --hash=sha256:d4ca9410996f4c7b8ea0d7b20fdf79878dc359ebf89cbf3b222e0b675a55097d # via feast (setup.py) -filelock==3.20.0 \ - --hash=sha256:339b4732ffda5cd79b13f4e2711a31b0365ce445d95d243bb996273d072546a2 \ - --hash=sha256:711e943b4ec6be42e1d4e6690b48dc175c822967466bb31c0c293f34334c13f4 +filelock==3.20.1 \ + --hash=sha256:15d9e9a67306188a44baa72f569d2bfd803076269365fdea0934385da4dc361a \ + --hash=sha256:b8360948b351b80f420878d8516519a2204b07aefcdcfd24912a5d33127f188c # via snowflake-connector-python flit-core==3.12.0 \ --hash=sha256:18f63100d6f94385c6ed57a72073443e1a71a4acb4339491615d0f16d6ff01b2 \ @@ -805,9 +805,9 @@ google-api-core[grpc]==2.28.1 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.43.0 \ - --hash=sha256:88228eee5fc21b62a1b5fe773ca15e67778cb07dc8363adcb4a8827b52d81483 \ - --hash=sha256:af628ba6fa493f75c7e9dbe9373d148ca9f4399b5ea29976519e0a3848eddd16 +google-auth==2.45.0 \ + --hash=sha256:82344e86dc00410ef5382d99be677c6043d72e502b625aa4f4afa0bdacca0f36 \ + --hash=sha256:90d3f41b6b72ea72dd9811e765699ee491ab24139f34ebf1ca2b9cc0c38708f3 # via # google-api-core # google-auth-oauthlib @@ -826,19 +826,19 @@ google-auth-oauthlib==1.2.2 \ # via # pandas-gbq # pydata-google-auth -google-cloud-bigquery[pandas]==3.38.0 \ - --hash=sha256:8afcb7116f5eac849097a344eb8bfda78b7cfaae128e60e019193dd483873520 \ - --hash=sha256:e06e93ff7b245b239945ef59cb59616057598d369edac457ebf292bd61984da6 +google-cloud-bigquery[pandas]==3.39.0 \ + --hash=sha256:cb375e1d63dea9bd5bf735e66024338f294159d43afdf63e1d023f5fcbbf55ea \ + --hash=sha256:dc7a64921465859105461b43c42562e38e797d7a73feb72b3cfc4865b7b1c5ef # via # feast (setup.py) # pandas-gbq -google-cloud-bigquery-storage==2.35.0 \ - --hash=sha256:c9bab6b8e41d6cb9806e589e65f320c89ada84f466e61566b7208d87924c1430 \ - --hash=sha256:f2e3a08882155de1e9ec53c71c5784eb1f25dc6514c535f5796c3c9eeac17d17 +google-cloud-bigquery-storage==2.36.0 \ + --hash=sha256:1769e568070db672302771d2aec18341de10712aa9c4a8c549f417503e0149f0 \ + --hash=sha256:d3c1ce9d2d3a4d7116259889dcbe3c7c70506f71f6ce6bbe54aa0a68bbba8f8f # via feast (setup.py) -google-cloud-bigtable==2.34.0 \ - --hash=sha256:773258b00cd3f9a3a35639cc38bd711f4f1418aaa0c8d70cb028978ed98dc2c2 \ - --hash=sha256:a4a8db4903840cd3f89fb19c060eea2e7c09c1265cb0538cfc11288dbc6000e4 +google-cloud-bigtable==2.35.0 \ + --hash=sha256:f355bfce1f239453ec2bb3839b0f4f9937cf34ef06ef29e1ca63d58fd38d0c50 \ + --hash=sha256:f5699012c5fea4bd4bdf7e80e5e3a812a847eb8f41bf8dc2f43095d6d876b83b # via feast (setup.py) google-cloud-core==2.5.0 \ --hash=sha256:67d977b41ae6c7211ee830c7912e41003ea8194bff15ae7d72fd6f51e57acabc \ @@ -848,49 +848,48 @@ google-cloud-core==2.5.0 \ # google-cloud-bigtable # google-cloud-datastore # google-cloud-storage -google-cloud-datastore==2.21.0 \ - --hash=sha256:eee454dd4a55f5b327f9f344928ff1a09a6f77c23d5e3d908ad31a13cc2f4073 \ - --hash=sha256:f303f27cd1983383f20bd227019cd8a7897419e0ec6b878367c58c66245f9d9b +google-cloud-datastore==2.23.0 \ + --hash=sha256:24a1b1d29b902148fe41b109699f76fd3aa60591e9d547c0f8b87d7bf9ff213f \ + --hash=sha256:80049883a4ae928fdcc661ba6803ec267665dc0e6f3ce2da91441079a6bb6387 # via feast (setup.py) google-cloud-storage==2.19.0 \ --hash=sha256:aeb971b5c29cf8ab98445082cbfe7b161a1f48ed275822f59ed3f1524ea54fba \ --hash=sha256:cd05e9e7191ba6cb68934d8eb76054d9be4562aa89dbc4236feee4d7d51342b2 # via feast (setup.py) -google-crc32c==1.7.1 \ - --hash=sha256:0f99eaa09a9a7e642a61e06742856eec8b19fc0037832e03f941fe7cf0c8e4db \ - --hash=sha256:19eafa0e4af11b0a4eb3974483d55d2d77ad1911e6cf6f832e1574f6781fd337 \ - --hash=sha256:1c67ca0a1f5b56162951a9dae987988679a7db682d6f97ce0f6381ebf0fbea4c \ - --hash=sha256:1f2b3522222746fff0e04a9bd0a23ea003ba3cccc8cf21385c564deb1f223242 \ - --hash=sha256:22beacf83baaf59f9d3ab2bbb4db0fb018da8e5aebdce07ef9f09fce8220285e \ - --hash=sha256:2bff2305f98846f3e825dbeec9ee406f89da7962accdb29356e4eadc251bd472 \ - --hash=sha256:2d73a68a653c57281401871dd4aeebbb6af3191dcac751a76ce430df4d403194 \ - --hash=sha256:32d1da0d74ec5634a05f53ef7df18fc646666a25efaaca9fc7dcfd4caf1d98c3 \ - --hash=sha256:3bda0fcb632d390e3ea8b6b07bf6b4f4a66c9d02dcd6fbf7ba00a197c143f582 \ - --hash=sha256:6335de12921f06e1f774d0dd1fbea6bf610abe0887a1638f64d694013138be5d \ - --hash=sha256:6b211ddaf20f7ebeec5c333448582c224a7c90a9d98826fbab82c0ddc11348e6 \ - --hash=sha256:6efb97eb4369d52593ad6f75e7e10d053cf00c48983f7a973105bc70b0ac4d82 \ - --hash=sha256:6fbab4b935989e2c3610371963ba1b86afb09537fd0c633049be82afe153ac06 \ - --hash=sha256:713121af19f1a617054c41f952294764e0c5443d5a5d9034b2cd60f5dd7e0349 \ - --hash=sha256:754561c6c66e89d55754106739e22fdaa93fafa8da7221b29c8b8e8270c6ec8a \ - --hash=sha256:7cc81b3a2fbd932a4313eb53cc7d9dde424088ca3a0337160f35d91826880c1d \ - --hash=sha256:85fef7fae11494e747c9fd1359a527e5970fc9603c90764843caabd3a16a0a48 \ - --hash=sha256:905a385140bf492ac300026717af339790921f411c0dfd9aa5a9e69a08ed32eb \ - --hash=sha256:9fc196f0b8d8bd2789352c6a522db03f89e83a0ed6b64315923c396d7a932315 \ - --hash=sha256:a8e9afc74168b0b2232fb32dd202c93e46b7d5e4bf03e66ba5dc273bb3559589 \ - --hash=sha256:b07d48faf8292b4db7c3d64ab86f950c2e94e93a11fd47271c28ba458e4a0d76 \ - --hash=sha256:b6d86616faaea68101195c6bdc40c494e4d76f41e07a37ffdef270879c15fb65 \ - --hash=sha256:b7491bdc0c7564fcf48c0179d2048ab2f7c7ba36b84ccd3a3e1c3f7a72d3bba6 \ - --hash=sha256:bb5e35dcd8552f76eed9461a23de1030920a3c953c1982f324be8f97946e7127 \ - --hash=sha256:d68e17bad8f7dd9a49181a1f5a8f4b251c6dbc8cc96fb79f1d321dfd57d66f53 \ - --hash=sha256:dcdf5a64adb747610140572ed18d011896e3b9ae5195f2514b7ff678c80f1603 \ - --hash=sha256:df8b38bdaf1629d62d51be8bdd04888f37c451564c2042d36e5812da9eff3c35 \ - --hash=sha256:e10554d4abc5238823112c2ad7e4560f96c7bf3820b202660373d769d9e6e4c9 \ - --hash=sha256:e42e20a83a29aa2709a0cf271c7f8aefaa23b7ab52e53b322585297bb94d4638 \ - --hash=sha256:ed66cbe1ed9cbaaad9392b5259b3eba4a9e565420d734e6238813c428c3336c9 \ - --hash=sha256:ee6547b657621b6cbed3562ea7826c3e11cab01cd33b74e1f677690652883e77 \ - --hash=sha256:f2226b6a8da04f1d9e61d3e357f2460b9551c5e6950071437e122c958a18ae14 \ - --hash=sha256:fa8136cc14dd27f34a3221c0f16fd42d8a40e4778273e61a3c19aedaa44daf6b \ - --hash=sha256:fc5319db92daa516b653600794d5b9f9439a9a121f3e162f94b0e1891c7933cb +google-crc32c==1.8.0 \ + --hash=sha256:014a7e68d623e9a4222d663931febc3033c5c7c9730785727de2a81f87d5bab8 \ + --hash=sha256:01f126a5cfddc378290de52095e2c7052be2ba7656a9f0caf4bcd1bfb1833f8a \ + --hash=sha256:0470b8c3d73b5f4e3300165498e4cf25221c7eb37f1159e221d1825b6df8a7ff \ + --hash=sha256:119fcd90c57c89f30040b47c211acee231b25a45d225e3225294386f5d258288 \ + --hash=sha256:14f87e04d613dfa218d6135e81b78272c3b904e2a7053b841481b38a7d901411 \ + --hash=sha256:17446feb05abddc187e5441a45971b8394ea4c1b6efd88ab0af393fd9e0a156a \ + --hash=sha256:19b40d637a54cb71e0829179f6cb41835f0fbd9e8eb60552152a8b52c36cbe15 \ + --hash=sha256:2a3dc3318507de089c5384cc74d54318401410f82aa65b2d9cdde9d297aca7cb \ + --hash=sha256:3b9776774b24ba76831609ffbabce8cdf6fa2bd5e9df37b594221c7e333a81fa \ + --hash=sha256:3cc0c8912038065eafa603b238abf252e204accab2a704c63b9e14837a854962 \ + --hash=sha256:3d488e98b18809f5e322978d4506373599c0c13e6c5ad13e53bb44758e18d215 \ + --hash=sha256:3ebb04528e83b2634857f43f9bb8ef5b2bbe7f10f140daeb01b58f972d04736b \ + --hash=sha256:450dc98429d3e33ed2926fc99ee81001928d63460f8538f21a5d6060912a8e27 \ + --hash=sha256:4b8286b659c1335172e39563ab0a768b8015e88e08329fa5321f774275fc3113 \ + --hash=sha256:57a50a9035b75643996fbf224d6661e386c7162d1dfdab9bc4ca790947d1007f \ + --hash=sha256:61f58b28e0b21fcb249a8247ad0db2e64114e201e2e9b4200af020f3b6242c9f \ + --hash=sha256:6f35aaffc8ccd81ba3162443fabb920e65b1f20ab1952a31b13173a67811467d \ + --hash=sha256:71734788a88f551fbd6a97be9668a0020698e07b2bf5b3aa26a36c10cdfb27b2 \ + --hash=sha256:864abafe7d6e2c4c66395c1eb0fe12dc891879769b52a3d56499612ca93b6092 \ + --hash=sha256:86cfc00fe45a0ac7359e5214a1704e51a99e757d0272554874f419f79838c5f7 \ + --hash=sha256:87b0072c4ecc9505cfa16ee734b00cd7721d20a0f595be4d40d3d21b41f65ae2 \ + --hash=sha256:87fa445064e7db928226b2e6f0d5304ab4cd0339e664a4e9a25029f384d9bb93 \ + --hash=sha256:89c17d53d75562edfff86679244830599ee0a48efc216200691de8b02ab6b2b8 \ + --hash=sha256:8b3f68782f3cbd1bce027e48768293072813469af6a61a86f6bb4977a4380f21 \ + --hash=sha256:a428e25fb7691024de47fecfbff7ff957214da51eddded0da0ae0e0f03a2cf79 \ + --hash=sha256:b0d1a7afc6e8e4635564ba8aa5c0548e3173e41b6384d7711a9123165f582de2 \ + --hash=sha256:ba6aba18daf4d36ad4412feede6221414692f44d17e5428bdd81ad3fc1eee5dc \ + --hash=sha256:cb5c869c2923d56cb0c8e6bcdd73c009c36ae39b652dbe46a05eb4ef0ad01454 \ + --hash=sha256:d511b3153e7011a27ab6ee6bb3a5404a55b994dc1a7322c0b87b29606d9790e2 \ + --hash=sha256:db3fe8eaf0612fc8b20fa21a5f25bd785bc3cd5be69f8f3412b0ac2ffd49e733 \ + --hash=sha256:e6584b12cb06796d285d09e33f63309a09368b9d806a551d8036a4207ea43697 \ + --hash=sha256:f4b51844ef67d6cf2e9425983274da75f18b1597bb2c998e1c0a0e8d46f8f651 \ + --hash=sha256:f639065ea2042d5c034bf258a9f085eaa7af0cd250667c0635a3118e8f92c69c # via # google-cloud-bigtable # google-cloud-storage @@ -1023,6 +1022,7 @@ grpcio==1.62.3 \ # google-api-core # google-cloud-bigquery # google-cloud-bigquery-storage + # google-cloud-datastore # googleapis-common-protos # grpc-google-iam-v1 # grpcio-health-checking @@ -1246,9 +1246,9 @@ imagesize==1.4.1 \ --hash=sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b \ --hash=sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a # via sphinx -importlib-metadata==8.7.0 \ - --hash=sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000 \ - --hash=sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd +importlib-metadata==8.7.1 \ + --hash=sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb \ + --hash=sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151 # via dask jinja2==3.1.6 \ --hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \ @@ -1278,83 +1278,83 @@ kubernetes==33.1.0 \ --hash=sha256:544de42b24b64287f7e0aa9513c93cb503f7f40eea39b20f66810011a86eabc5 \ --hash=sha256:f64d829843a54c251061a8e7a14523b521f2dc5c896cf6d65ccf348648a88993 # via feast (setup.py) -librt==0.7.3 \ - --hash=sha256:020c6db391268bcc8ce75105cb572df8cb659a43fd347366aaa407c366e5117a \ - --hash=sha256:0fa9ac2e49a6bee56e47573a6786cb635e128a7b12a0dc7851090037c0d397a3 \ - --hash=sha256:11ad45122bbed42cfc8b0597450660126ef28fd2d9ae1a219bc5af8406f95678 \ - --hash=sha256:120dd21d46ff875e849f1aae19346223cf15656be489242fe884036b23d39e93 \ - --hash=sha256:14569ac5dd38cfccf0a14597a88038fb16811a6fede25c67b79c6d50fc2c8fdc \ - --hash=sha256:1617bea5ab31266e152871208502ee943cb349c224846928a1173c864261375e \ - --hash=sha256:170cdb8436188347af17bf9cccf3249ba581c933ed56d926497119d4cf730cec \ - --hash=sha256:1975eda520957c6e0eb52d12968dd3609ffb7eef05d4223d097893d6daf1d8a7 \ - --hash=sha256:1fe603877e1865b5fd047a5e40379509a4a60204aa7aa0f72b16f7a41c3f0712 \ - --hash=sha256:24d70810f6e2ea853ff79338001533716b373cc0f63e2a0be5bc96129edb5fb5 \ - --hash=sha256:256793988bff98040de23c57cf36e1f4c2f2dc3dcd17537cdac031d3b681db71 \ - --hash=sha256:25711f364c64cab2c910a0247e90b51421e45dbc8910ceeb4eac97a9e132fc6f \ - --hash=sha256:2682162855a708e3270eba4b92026b93f8257c3e65278b456c77631faf0f4f7a \ - --hash=sha256:2cf9d73499486ce39eebbff5f42452518cc1f88d8b7ea4a711ab32962b176ee2 \ - --hash=sha256:2e40520c37926166c24d0c2e0f3bc3a5f46646c34bdf7b4ea9747c297d6ee809 \ - --hash=sha256:2e980cf1ed1a2420a6424e2ed884629cdead291686f1048810a817de07b5eb18 \ - --hash=sha256:2f03484b54bf4ae80ab2e504a8d99d20d551bfe64a7ec91e218010b467d77093 \ - --hash=sha256:35f1609e3484a649bb80431310ddbec81114cd86648f1d9482bc72a3b86ded2e \ - --hash=sha256:399938edbd3d78339f797d685142dd8a623dfaded023cf451033c85955e4838a \ - --hash=sha256:399bbd7bcc1633c3e356ae274a1deb8781c7bf84d9c7962cc1ae0c6e87837292 \ - --hash=sha256:3ec50cf65235ff5c02c5b747748d9222e564ad48597122a361269dd3aa808798 \ - --hash=sha256:3edbf257c40d21a42615e9e332a6b10a8bacaaf58250aed8552a14a70efd0d65 \ - --hash=sha256:440c788f707c061d237c1e83edf6164ff19f5c0f823a3bf054e88804ebf971ec \ - --hash=sha256:44b3689b040df57f492e02cd4f0bacd1b42c5400e4b8048160c9d5e866de8abe \ - --hash=sha256:4887c29cadbdc50640179e3861c276325ff2986791e6044f73136e6e798ff806 \ - --hash=sha256:5460d99ed30f043595bbdc888f542bad2caeb6226b01c33cda3ae444e8f82d42 \ - --hash=sha256:550fdbfbf5bba6a2960b27376ca76d6aaa2bd4b1a06c4255edd8520c306fcfc0 \ - --hash=sha256:56f2a47beda8409061bc1c865bef2d4bd9ff9255219402c0817e68ab5ad89aed \ - --hash=sha256:572a24fc5958c61431da456a0ef1eeea6b4989d81eeb18b8e5f1f3077592200b \ - --hash=sha256:59cb0470612d21fa1efddfa0dd710756b50d9c7fb6c1236bbf8ef8529331dc70 \ - --hash=sha256:6038ccbd5968325a5d6fd393cf6e00b622a8de545f0994b89dd0f748dcf3e19e \ - --hash=sha256:6488e69d408b492e08bfb68f20c4a899a354b4386a446ecd490baff8d0862720 \ - --hash=sha256:687403cced6a29590e6be6964463835315905221d797bc5c934a98750fe1a9af \ - --hash=sha256:6b407c23f16ccc36614c136251d6b32bf30de7a57f8e782378f1107be008ddb0 \ - --hash=sha256:6b4e7bff1d76dd2b46443078519dc75df1b5e01562345f0bb740cea5266d8218 \ - --hash=sha256:6bdd9adfca615903578d2060ee8a6eb1c24eaf54919ff0ddc820118e5718931b \ - --hash=sha256:6eb9295c730e26b849ed1f4022735f36863eb46b14b6e10604c1c39b8b5efaea \ - --hash=sha256:703456146dc2bf430f7832fd1341adac5c893ec3c1430194fdcefba00012555c \ - --hash=sha256:754a0d09997095ad764ccef050dd5bf26cbf457aab9effcba5890dad081d879e \ - --hash=sha256:7af7785f5edd1f418da09a8cdb9ec84b0213e23d597413e06525340bcce1ea4f \ - --hash=sha256:7b29e97273bd6999e2bfe9fe3531b1f4f64effd28327bced048a33e49b99674a \ - --hash=sha256:7b4f57f7a0c65821c5441d98c47ff7c01d359b1e12328219709bdd97fdd37f90 \ - --hash=sha256:8837d5a52a2d7aa9f4c3220a8484013aed1d8ad75240d9a75ede63709ef89055 \ - --hash=sha256:8ccadf260bb46a61b9c7e89e2218f6efea9f3eeaaab4e3d1f58571890e54858e \ - --hash=sha256:8d8cf653e798ee4c4e654062b633db36984a1572f68c3aa25e364a0ddfbbb910 \ - --hash=sha256:93b2a1f325fefa1482516ced160c8c7b4b8d53226763fa6c93d151fa25164207 \ - --hash=sha256:9f0e0927efe87cd42ad600628e595a1a0aa1c64f6d0b55f7e6059079a428641a \ - --hash=sha256:a59a69deeb458c858b8fea6acf9e2acd5d755d76cd81a655256bc65c20dfff5b \ - --hash=sha256:a9f9b661f82693eb56beb0605156c7fca57f535704ab91837405913417d6990b \ - --hash=sha256:abfc57cab3c53c4546aee31859ef06753bfc136c9d208129bad23e2eca39155a \ - --hash=sha256:aca73d70c3f553552ba9133d4a09e767dcfeee352d8d8d3eb3f77e38a3beb3ed \ - --hash=sha256:adeaa886d607fb02563c1f625cf2ee58778a2567c0c109378da8f17ec3076ad7 \ - --hash=sha256:b278a9248a4e3260fee3db7613772ca9ab6763a129d6d6f29555e2f9b168216d \ - --hash=sha256:b7c1239b64b70be7759554ad1a86288220bbb04d68518b527783c4ad3fb4f80b \ - --hash=sha256:bf8c7735fbfc0754111f00edda35cf9e98a8d478de6c47b04eaa9cef4300eaa7 \ - --hash=sha256:c634a0a6db395fdaba0361aa78395597ee72c3aad651b9a307a3a7eaf5efd67e \ - --hash=sha256:cad9971881e4fec00d96af7eaf4b63aa7a595696fc221808b0d3ce7ca9743258 \ - --hash=sha256:cbdb3f337c88b43c3b49ca377731912c101178be91cb5071aac48faa898e6f8e \ - --hash=sha256:cd8551aa21df6c60baa2624fd086ae7486bdde00c44097b32e1d1b1966e365e0 \ - --hash=sha256:d09f677693328503c9e492e33e9601464297c01f9ebd966ea8fc5308f3069bfd \ - --hash=sha256:d376a35c6561e81d2590506804b428fc1075fcc6298fc5bb49b771534c0ba010 \ - --hash=sha256:d39079379a9a28e74f4d57dc6357fa310a1977b51ff12239d7271ec7e71d67f5 \ - --hash=sha256:d86f94743a11873317094326456b23f8a5788bad9161fd2f0e52088c33564620 \ - --hash=sha256:d91e60ac44bbe3a77a67af4a4c13114cbe9f6d540337ce22f2c9eaf7454ca71f \ - --hash=sha256:d9883b2d819ce83f87ba82a746c81d14ada78784db431e57cc9719179847376e \ - --hash=sha256:e094e445c37c57e9ec612847812c301840239d34ccc5d153a982fa9814478c60 \ - --hash=sha256:e19acfde38cb532a560b98f473adc741c941b7a9bc90f7294bc273d08becb58b \ - --hash=sha256:e32d43610dff472eab939f4d7fbdd240d1667794192690433672ae22d7af8445 \ - --hash=sha256:ed028fc3d41adda916320712838aec289956c89b4f0a361ceadf83a53b4c047a \ - --hash=sha256:ef59c938f72bdbc6ab52dc50f81d0637fde0f194b02d636987cea2ab30f8f55a \ - --hash=sha256:f3d4801db8354436fd3936531e7f0e4feb411f62433a6b6cb32bb416e20b529f \ - --hash=sha256:f57aca20e637750a2c18d979f7096e2c2033cc40cf7ed201494318de1182f135 \ - --hash=sha256:f9da128d0edf990cf0d2ca011b02cd6f639e79286774bd5b0351245cbb5a6e51 \ - --hash=sha256:fbd7351d43b80d9c64c3cfcb50008f786cc82cba0450e8599fdd64f264320bd3 \ - --hash=sha256:fcb72249ac4ea81a7baefcbff74df7029c3cb1cf01a711113fa052d563639c9c \ - --hash=sha256:ff21c554304e8226bf80c3a7754be27c6c3549a9fec563a03c06ee8f494da8fc +librt==0.7.5 \ + --hash=sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee \ + --hash=sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1 \ + --hash=sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4 \ + --hash=sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899 \ + --hash=sha256:0e2bf8f91093fac43e3eaebacf777f12fd539dce9ec5af3efc6d8424e96ccd49 \ + --hash=sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d \ + --hash=sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760 \ + --hash=sha256:191cbd42660446d67cf7a95ac7bfa60f49b8b3b0417c64f216284a1d86fc9335 \ + --hash=sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8 \ + --hash=sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2 \ + --hash=sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec \ + --hash=sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b \ + --hash=sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0 \ + --hash=sha256:39183abee670bc37b85f11e86c44a9cad1ed6efa48b580083e89ecee13dd9717 \ + --hash=sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325 \ + --hash=sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45 \ + --hash=sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d \ + --hash=sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233 \ + --hash=sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d \ + --hash=sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544 \ + --hash=sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802 \ + --hash=sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2 \ + --hash=sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d \ + --hash=sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f \ + --hash=sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169 \ + --hash=sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe \ + --hash=sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982 \ + --hash=sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2 \ + --hash=sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa \ + --hash=sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4 \ + --hash=sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4 \ + --hash=sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57 \ + --hash=sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26 \ + --hash=sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361 \ + --hash=sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad \ + --hash=sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e \ + --hash=sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf \ + --hash=sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f \ + --hash=sha256:8dcae24de1bc9da93aa689cb6313c70e776d7cea2fcf26b9b6160fedfe6bd9af \ + --hash=sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2 \ + --hash=sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89 \ + --hash=sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904 \ + --hash=sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6 \ + --hash=sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276 \ + --hash=sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e \ + --hash=sha256:a9eacbf983319b26b5f340a2e0cd47ac1ee4725a7f3a72fd0f15063c934b69d6 \ + --hash=sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409 \ + --hash=sha256:af69d9e159575e877c7546d1ee817b4ae089aa221dd1117e20c24ad8dc8659c7 \ + --hash=sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a \ + --hash=sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4 \ + --hash=sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775 \ + --hash=sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203 \ + --hash=sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419 \ + --hash=sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5 \ + --hash=sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023 \ + --hash=sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b \ + --hash=sha256:cdb001a1a0e4f41e613bca2c0fc147fc8a7396f53fc94201cbfd8ec7cd69ca4b \ + --hash=sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d \ + --hash=sha256:d2cc7d187e8c6e9b7bdbefa9697ce897a704ea7a7ce844f2b4e0e2aa07ae51d3 \ + --hash=sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e \ + --hash=sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a \ + --hash=sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b \ + --hash=sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db \ + --hash=sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd \ + --hash=sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa \ + --hash=sha256:df2e210400b28e50994477ebf82f055698c79797b6ee47a1669d383ca33263e1 \ + --hash=sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805 \ + --hash=sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a \ + --hash=sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25 \ + --hash=sha256:ea1b60b86595a5dc1f57b44a801a1c4d8209c0a69518391d349973a4491408e6 \ + --hash=sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b \ + --hash=sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5 \ + --hash=sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416 \ + --hash=sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc \ + --hash=sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7 \ + --hash=sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96 # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ @@ -1455,9 +1455,9 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via jinja2 -mcp==1.23.3 \ - --hash=sha256:32768af4b46a1b4f7df34e2bfdf5c6011e7b63d7f1b0e321d0fdef4cd6082031 \ - --hash=sha256:b3b0da2cc949950ce1259c7bfc1b081905a51916fcd7c8182125b85e70825201 +mcp==1.25.0 \ + --hash=sha256:56310361ebf0364e2d438e5b45f7668cbb124e158bb358333cd06e49e83a6802 \ + --hash=sha256:b37c38144a666add0862614cc79ec276e97d72aa8ca26d622818d4e278b9721a # via fastapi-mcp mdurl==0.1.2 \ --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ @@ -1747,45 +1747,45 @@ multidict==6.7.0 \ # aiobotocore # aiohttp # yarl -mypy==1.19.0 \ - --hash=sha256:0c01c99d626380752e527d5ce8e69ffbba2046eb8a060db0329690849cf9b6f9 \ - --hash=sha256:0dde5cb375cb94deff0d4b548b993bec52859d1651e073d63a1386d392a95495 \ - --hash=sha256:0e3c3d1e1d62e678c339e7ade72746a9e0325de42cd2cccc51616c7b2ed1a018 \ - --hash=sha256:0ea4fd21bb48f0da49e6d3b37ef6bd7e8228b9fe41bbf4d80d9364d11adbd43c \ - --hash=sha256:0fb3115cb8fa7c5f887c8a8d81ccdcb94cff334684980d847e5a62e926910e1d \ - --hash=sha256:11f7254c15ab3f8ed68f8e8f5cbe88757848df793e31c36aaa4d4f9783fd08ab \ - --hash=sha256:120cffe120cca5c23c03c77f84abc0c14c5d2e03736f6c312480020082f1994b \ - --hash=sha256:16f76ff3f3fd8137aadf593cb4607d82634fca675e8211ad75c43d86033ee6c6 \ - --hash=sha256:1cf9c59398db1c68a134b0b5354a09a1e124523f00bacd68e553b8bd16ff3299 \ - --hash=sha256:318ba74f75899b0e78b847d8c50821e4c9637c79d9a59680fc1259f29338cb3e \ - --hash=sha256:3210d87b30e6af9c8faed61be2642fcbe60ef77cec64fa1ef810a630a4cf671c \ - --hash=sha256:34ec1ac66d31644f194b7c163d7f8b8434f1b49719d403a5d26c87fff7e913f7 \ - --hash=sha256:37af5166f9475872034b56c5efdcf65ee25394e9e1d172907b84577120714364 \ - --hash=sha256:3ad925b14a0bb99821ff6f734553294aa6a3440a8cb082fe1f5b84dfb662afb1 \ - --hash=sha256:510c014b722308c9bd377993bcbf9a07d7e0692e5fa8fc70e639c1eb19fc6bee \ - --hash=sha256:6016c52ab209919b46169651b362068f632efcd5eb8ef9d1735f6f86da7853b2 \ - --hash=sha256:6148ede033982a8c5ca1143de34c71836a09f105068aaa8b7d5edab2b053e6c8 \ - --hash=sha256:63ea6a00e4bd6822adbfc75b02ab3653a17c02c4347f5bb0cf1d5b9df3a05835 \ - --hash=sha256:7686ed65dbabd24d20066f3115018d2dce030d8fa9db01aa9f0a59b6813e9f9e \ - --hash=sha256:7a500ab5c444268a70565e374fc803972bfd1f09545b13418a5174e29883dab7 \ - --hash=sha256:8f44f2ae3c58421ee05fe609160343c25f70e3967f6e32792b5a78006a9d850f \ - --hash=sha256:a18d8abdda14035c5718acb748faec09571432811af129bf0d9e7b2d6699bf18 \ - --hash=sha256:a31e4c28e8ddb042c84c5e977e28a21195d086aaffaf08b016b78e19c9ef8106 \ - --hash=sha256:a9ac09e52bb0f7fb912f5d2a783345c72441a08ef56ce3e17c1752af36340a39 \ - --hash=sha256:b9d491295825182fba01b6ffe2c6fe4e5a49dbf4e2bb4d1217b6ced3b4797bc6 \ - --hash=sha256:c14a98bc63fd867530e8ec82f217dae29d0550c86e70debc9667fff1ec83284e \ - --hash=sha256:c3385246593ac2b97f155a0e9639be906e73534630f663747c71908dfbf26134 \ - --hash=sha256:cabbee74f29aa9cd3b444ec2f1e4fa5a9d0d746ce7567a6a609e224429781f53 \ - --hash=sha256:cb64b0ba5980466a0f3f9990d1c582bcab8db12e29815ecb57f1408d99b4bff7 \ - --hash=sha256:cf7d84f497f78b682edd407f14a7b6e1a2212b433eedb054e2081380b7395aa3 \ - --hash=sha256:e2c1101ab41d01303103ab6ef82cbbfedb81c1a060c868fa7cc013d573d37ab5 \ - --hash=sha256:f188dcf16483b3e59f9278c4ed939ec0254aa8a60e8fc100648d9ab5ee95a431 \ - --hash=sha256:f2e36bed3c6d9b5f35d28b63ca4b727cb0228e480826ffc8953d1892ddc8999d \ - --hash=sha256:f3e19e3b897562276bb331074d64c076dbdd3e79213f36eed4e592272dabd760 \ - --hash=sha256:f6b874ca77f733222641e5c46e4711648c4037ea13646fd0cdc814c2eaec2528 \ - --hash=sha256:f75e60aca3723a23511948539b0d7ed514dda194bc3755eae0bfc7a6b4887aa7 \ - --hash=sha256:fc51a5b864f73a3a182584b1ac75c404396a17eced54341629d8bdcb644a5bba \ - --hash=sha256:fd4a985b2e32f23bead72e2fb4bbe5d6aceee176be471243bd831d5b2644672d +mypy==1.19.1 \ + --hash=sha256:016f2246209095e8eda7538944daa1d60e1e8134d98983b9fc1e92c1fc0cb8dd \ + --hash=sha256:022ea7279374af1a5d78dfcab853fe6a536eebfda4b59deab53cd21f6cd9f00b \ + --hash=sha256:06e6170bd5836770e8104c8fdd58e5e725cfeb309f0a6c681a811f557e97eac1 \ + --hash=sha256:19d88bb05303fe63f71dd2c6270daca27cb9401c4ca8255fe50d1d920e0eb9ba \ + --hash=sha256:21761006a7f497cb0d4de3d8ef4ca70532256688b0523eee02baf9eec895e27b \ + --hash=sha256:28902ee51f12e0f19e1e16fbe2f8f06b6637f482c459dd393efddd0ec7f82045 \ + --hash=sha256:2899753e2f61e571b3971747e302d5f420c3fd09650e1951e99f823bc3089dac \ + --hash=sha256:2abb24cf3f17864770d18d673c85235ba52456b36a06b6afc1e07c1fdcd3d0e6 \ + --hash=sha256:34c81968774648ab5ac09c29a375fdede03ba253f8f8287847bd480782f73a6a \ + --hash=sha256:409088884802d511ee52ca067707b90c883426bd95514e8cfda8281dc2effe24 \ + --hash=sha256:481daf36a4c443332e2ae9c137dfee878fcea781a2e3f895d54bd3002a900957 \ + --hash=sha256:4b84a7a18f41e167f7995200a1d07a4a6810e89d29859df936f1c3923d263042 \ + --hash=sha256:4f28f99c824ecebcdaa2e55d82953e38ff60ee5ec938476796636b86afa3956e \ + --hash=sha256:5f05aa3d375b385734388e844bc01733bd33c644ab48e9684faa54e5389775ec \ + --hash=sha256:7bcfc336a03a1aaa26dfce9fff3e287a3ba99872a157561cbfcebe67c13308e3 \ + --hash=sha256:804bd67b8054a85447c8954215a906d6eff9cabeabe493fb6334b24f4bfff718 \ + --hash=sha256:8bb5c6f6d043655e055be9b542aa5f3bdd30e4f3589163e85f93f3640060509f \ + --hash=sha256:a009ffa5a621762d0c926a078c2d639104becab69e79538a494bcccb62cc0331 \ + --hash=sha256:a8174a03289288c1f6c46d55cef02379b478bfbc8e358e02047487cad44c6ca1 \ + --hash=sha256:ab43590f9cd5108f41aacf9fca31841142c786827a74ab7cc8a2eacb634e09a1 \ + --hash=sha256:b10e7c2cd7870ba4ad9b2d8a6102eb5ffc1f16ca35e3de6bfa390c1113029d13 \ + --hash=sha256:b13cfdd6c87fc3efb69ea4ec18ef79c74c3f98b4e5498ca9b85ab3b2c2329a67 \ + --hash=sha256:b64d987153888790bcdb03a6473d321820597ab8dd9243b27a92153c4fa50fd2 \ + --hash=sha256:b7951a701c07ea584c4fe327834b92a30825514c868b1f69c30445093fdd9d5a \ + --hash=sha256:bdb12f69bcc02700c2b47e070238f42cb87f18c0bc1fc4cdb4fb2bc5fd7a3b8b \ + --hash=sha256:c35d298c2c4bba75feb2195655dfea8124d855dfd7343bf8b8c055421eaf0cf8 \ + --hash=sha256:c608937067d2fc5a4dd1a5ce92fd9e1398691b8c5d012d66e1ddd430e9244376 \ + --hash=sha256:c9a6538e0415310aad77cb94004ca6482330fece18036b5f360b62c45814c4ef \ + --hash=sha256:d8dfc6ab58ca7dda47d9237349157500468e404b17213d44fc1cb77bce532288 \ + --hash=sha256:da4869fc5e7f62a88f3fe0b5c919d1d9f7ea3cef92d3689de2823fd27e40aa75 \ + --hash=sha256:de759aafbae8763283b2ee5869c7255391fbc4de3ff171f8f030b5ec48381b74 \ + --hash=sha256:e3157c7594ff2ef1634ee058aafc56a82db665c9438fd41b390f3bde1ab12250 \ + --hash=sha256:e3f276d8493c3c97930e354b2595a44a21348b320d859fb4a2b9f66da9ed27ab \ + --hash=sha256:ee4c11e460685c3e0c64a4c5de82ae143622410950d6be863303a1c4ba0e36d6 \ + --hash=sha256:f1235f5ea01b7db5468d53ece6aaddf1ad0b88d9e7462b86ef96fe04995d7247 \ + --hash=sha256:f7cee03c9a2e2ee26ec07479f38ea9c884e301d42c6d43a19d20fb014e3ba925 \ + --hash=sha256:f859fb09d9583a985be9a493d5cfc5515b56b08f7447759a0c5deaf68d80506e \ + --hash=sha256:ffcebe56eb09ff0c0885e750036a095e23793ba6c2e894e7e63f6d89ad51f22e # via sqlalchemy mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ @@ -1944,9 +1944,9 @@ pandas==2.3.3 \ # pandas-gbq # pymilvus # snowflake-connector-python -pandas-gbq==0.31.1 \ - --hash=sha256:a5d6e897917302c50feaca2ed1ce6a284abd8b9139383bf063307aab8d0556d9 \ - --hash=sha256:c59878504adee211cf1c34b22cf94393c59cc953626c61ce76e06c8d25fd146d +pandas-gbq==0.32.0 \ + --hash=sha256:249623d574c65e98cf19b7b7ecda97729f4f0a843eae3a0a82d9ef50adcdf4ef \ + --hash=sha256:28018ff09f2e49ab2b01a11329bd4e562fd65da406030b4a8001a3a4e80a1e34 # via google-cloud-bigquery parsy==2.2 \ --hash=sha256:5e981613d9d2d8b68012d1dd0afe928967bea2e4eefdb76c2f545af0dd02a9e7 \ @@ -2120,9 +2120,9 @@ propcache==0.4.1 \ # via # aiohttp # yarl -proto-plus==1.26.1 \ - --hash=sha256:13285478c2dcf2abb829db158e1047e2f1e8d63a077d94263c2b88b043c75a66 \ - --hash=sha256:21a515a4c4c0088a773899e23c7bbade3d18f9c66c73edd4c7ee3816bc96a012 +proto-plus==1.27.0 \ + --hash=sha256:1baa7f81cf0f8acb8bc1f6d085008ba4171eaf669629d1b6d1673b21ed1c0a82 \ + --hash=sha256:873af56dd0d7e91836aee871e5799e1c6f1bda86ac9a983e0bb9f0c266a568c4 # via # google-api-core # google-cloud-bigquery-storage @@ -2153,26 +2153,28 @@ protobuf==6.33.2 \ # proto-plus # pymilvus # substrait -psutil==7.1.3 \ - --hash=sha256:0005da714eee687b4b8decd3d6cc7c6db36215c9e74e5ad2264b90c3df7d92dc \ - --hash=sha256:1068c303be3a72f8e18e412c5b2a8f6d31750fb152f9cb106b54090296c9d251 \ - --hash=sha256:18349c5c24b06ac5612c0428ec2a0331c26443d259e2a0144a9b24b4395b58fa \ - --hash=sha256:19644c85dcb987e35eeeaefdc3915d059dac7bd1167cdcdbf27e0ce2df0c08c0 \ - --hash=sha256:2bdbcd0e58ca14996a42adf3621a6244f1bb2e2e528886959c72cf1e326677ab \ - --hash=sha256:31d77fcedb7529f27bb3a0472bea9334349f9a04160e8e6e5020f22c59893264 \ - --hash=sha256:3792983e23b69843aea49c8f5b8f115572c5ab64c153bada5270086a2123c7e7 \ - --hash=sha256:3bb428f9f05c1225a558f53e30ccbad9930b11c3fc206836242de1091d3e7dd3 \ - --hash=sha256:56d974e02ca2c8eb4812c3f76c30e28836fffc311d55d979f1465c1feeb2b68b \ - --hash=sha256:6c86281738d77335af7aec228328e944b30930899ea760ecf33a4dba66be5e74 \ - --hash=sha256:8f33a3702e167783a9213db10ad29650ebf383946e91bc77f28a5eb083496bc9 \ - --hash=sha256:95ef04cf2e5ba0ab9eaafc4a11eaae91b44f4ef5541acd2ee91d9108d00d59a7 \ - --hash=sha256:ad81425efc5e75da3f39b3e636293360ad8d0b49bed7df824c79764fb4ba9b8b \ - --hash=sha256:b403da1df4d6d43973dc004d19cee3b848e998ae3154cc8097d139b77156c353 \ - --hash=sha256:bc31fa00f1fbc3c3802141eede66f3a2d51d89716a194bf2cd6fc68310a19880 \ - --hash=sha256:bd0d69cee829226a761e92f28140bec9a5ee9d5b4fb4b0cc589068dbfff559b1 \ - --hash=sha256:c525ffa774fe4496282fb0b1187725793de3e7c6b29e41562733cae9ada151ee \ - --hash=sha256:f39c2c19fe824b47484b96f9692932248a54c43799a84282cfe58d05a6449efd \ - --hash=sha256:fac9cd332c67f4422504297889da5ab7e05fd11e3c4392140f7370f4208ded1f +psutil==7.2.1 \ + --hash=sha256:05cc68dbb8c174828624062e73078e7e35406f4ca2d0866c272c2410d8ef06d1 \ + --hash=sha256:08a2f175e48a898c8eb8eace45ce01777f4785bc744c90aa2cc7f2fa5462a266 \ + --hash=sha256:0d67c1822c355aa6f7314d92018fb4268a76668a536f133599b91edd48759442 \ + --hash=sha256:2ceae842a78d1603753561132d5ad1b2f8a7979cb0c283f5b52fb4e6e14b1a79 \ + --hash=sha256:35630d5af80d5d0d49cfc4d64c1c13838baf6717a13effb35869a5919b854cdf \ + --hash=sha256:3fce5f92c22b00cdefd1645aa58ab4877a01679e901555067b1bd77039aa589f \ + --hash=sha256:494c513ccc53225ae23eec7fe6e1482f1b8a44674241b54561f755a898650679 \ + --hash=sha256:5e38404ca2bb30ed7267a46c02f06ff842e92da3bb8c5bfdadbd35a5722314d8 \ + --hash=sha256:81442dac7abfc2f4f4385ea9e12ddf5a796721c0f6133260687fec5c3780fa49 \ + --hash=sha256:923f8653416604e356073e6e0bccbe7c09990acef442def2f5640dd0faa9689f \ + --hash=sha256:93f3f7b0bb07711b49626e7940d6fe52aa9940ad86e8f7e74842e73189712129 \ + --hash=sha256:99a4cd17a5fdd1f3d014396502daa70b5ec21bf4ffe38393e152f8e449757d67 \ + --hash=sha256:ab2b98c9fc19f13f59628d94df5cc4cc4844bc572467d113a8b517d634e362c6 \ + --hash=sha256:b1b0671619343aa71c20ff9767eced0483e4fc9e1f489d50923738caf6a03c17 \ + --hash=sha256:b2e953fcfaedcfbc952b44744f22d16575d3aa78eb4f51ae74165b4e96e55f42 \ + --hash=sha256:ba9f33bb525b14c3ea563b2fd521a84d2fa214ec59e3e6a2858f78d0844dd60d \ + --hash=sha256:cfbe6b40ca48019a51827f20d830887b3107a74a79b01ceb8cc8de4ccb17b672 \ + --hash=sha256:d34d2ca888208eea2b5c68186841336a7f5e0b990edec929be909353a202768a \ + --hash=sha256:ea46c0d060491051d39f0d2cff4f98d5c72b288289f57a21556cc7d504db37fc \ + --hash=sha256:f7583aec590485b43ca601dd9cea0dcd65bd7bb21d30ef4ddbf4ea6b5ed1bdd3 \ + --hash=sha256:f78baafb38436d5a128f837fab2d92c276dfb48af01a240b861ae02b2413ada8 # via # feast (setup.py) # pandas-gbq @@ -2443,9 +2445,9 @@ python-dotenv==1.2.1 \ # pydantic-settings # pymilvus # uvicorn -python-multipart==0.0.20 \ - --hash=sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104 \ - --hash=sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13 +python-multipart==0.0.21 \ + --hash=sha256:7137ebd4d3bbf70ea1622998f902b97a29434a9e8dc40eb203bbcf7c2a2cba92 \ + --hash=sha256:cf7a6713e01c87aa35387f4774e812c4361150938d20d232800f75ffcf266090 # via mcp pytz==2025.2 \ --hash=sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3 \ @@ -2800,12 +2802,14 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:1d8b4a7a8c9b537509d56d5cd10ecdcfbb95912d72480c8861524efecc6a3fff \ --hash=sha256:215f0528b914e5c75ef2559f69dca86878a3beeb0c1be7279d77f18e8d180ed4 \ --hash=sha256:2c0b74aa79e2deade948fe8593654c8ef4228c44ba862bb7c9585c8e0db90f33 \ + --hash=sha256:2e90a344c644a4fa871eb01809c32096487928bd2038bf10f3e4515cb688cc56 \ --hash=sha256:3c5f76216e7b85770d5bb5130ddd11ee89f4d52b11783674a662c7dd57018177 \ --hash=sha256:470daea2c1ce73910f08caf10575676a37159a6d16c4da33d0033546bddebc9b \ --hash=sha256:4748601c8ea959e37e03d13dcda4a44837afcd1b21338e637f7c935b8da06177 \ --hash=sha256:4b6bec67ca45bc166c8729910bd2a87f1c0407ee955df110d78948f5b5827e8a \ --hash=sha256:5225a288e4c8cc2308dbdd874edad6e7d0fd38eac1e9e5f23503425c8eee20d0 \ --hash=sha256:56ead1f8dfb91a54a28cd1d072c74b3d635bcffbd25e50786533b822d4f2cde2 \ + --hash=sha256:5964f832431b7cdfaaa22a660b4c7eb1dfcd6ed41375f67fd3e3440fd95cb3cc \ --hash=sha256:59a8b8bd9c6bedf81ad07c8bd5543eedca55fe9b8780b2b628d495ba55f8db1e \ --hash=sha256:672c45cae53ba88e0dad74b9027dddd09ef6f441e927786b05bec75d949fbb2e \ --hash=sha256:6d0beadc2535157070c9c17ecf25ecec31e13c229a8f69196d7590bde8082bf1 \ @@ -2824,7 +2828,9 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:b8c8b41b97fba5f62349aa285654230296829672fc9939cd7f35aab246d1c08b \ --hash=sha256:ba547ac0b361ab4f1608afbc8432db669bd0819b3e12e29fb5fa9529a8bba81d \ --hash=sha256:c1c2091b1489435ff85728fafeb990f073e64f6f5e81d5cd53059773e8521eb6 \ + --hash=sha256:c64772786d9eee72d4d3784c28f0a636af5b0a29f3fe26ff11f55efe90c0bd85 \ --hash=sha256:cd337d3526ec5298f67d6a30bbbe4ed7e5e68862f0bf6dd21d289f8d37b7d60b \ + --hash=sha256:d29b2b99d527dbc66dd87c3c3248a5dd789d974a507f4653c969999fc7c1191b \ --hash=sha256:d2c3684fca8a05f0ac1d9a21c1f4a266983a7ea9180efb80ffeb03861ecd01a0 \ --hash=sha256:d62e47f5d8a50099b17e2bfc1b0c7d7ecd8ba6b46b1507b58cc4f05eefc3bb1c \ --hash=sha256:d8a2ca754e5415cde2b656c27900b19d50ba076aa05ce66e2207623d3fe41f5a \ @@ -2842,9 +2848,9 @@ sqlglot==25.20.2 \ --hash=sha256:169fe8308dd70d7bd40117b2221b62bdc7c4e2ea8eb07394b2a6146cdedf05ab \ --hash=sha256:cdbfd7ce3f2f39f32bd7b4c23fd9e0fd261636a6b14285b914e8def25fd0a567 # via ibis-framework -sse-starlette==3.0.3 \ - --hash=sha256:88cfb08747e16200ea990c8ca876b03910a23b547ab3bd764c0d8eb81019b971 \ - --hash=sha256:af5bf5a6f3933df1d9c7f8539633dc8444ca6a97ab2e2a7cd3b6e431ac03a431 +sse-starlette==3.1.1 \ + --hash=sha256:bb38f71ae74cfd86b529907a9fda5632195dfa6ae120f214ea4c890c7ee9d436 \ + --hash=sha256:bffa531420c1793ab224f63648c059bcadc412bf9fdb1301ac8de1cf9a67b7fb # via mcp starlette==0.50.0 \ --hash=sha256:9e5391843ec9b6e472eed1365a78c8098cfceb7a74bfd4d6b1c0c0095efb3bca \ @@ -2852,6 +2858,7 @@ starlette==0.50.0 \ # via # fastapi # mcp + # sse-starlette substrait==0.24.2 \ --hash=sha256:743cc352e96b0927b2cd37cd5a8fdac0a96a68df9600bd104fc36aebd222a836 \ --hash=sha256:d1d475833566fa9d67eed3273456883c0568486ccced92b524b31709d2817e19 @@ -2949,17 +2956,17 @@ typeguard==4.4.4 \ --hash=sha256:3a7fd2dffb705d4d0efaed4306a704c89b9dee850b688f060a8b1615a79e5f74 \ --hash=sha256:b5f562281b6bfa1f5492470464730ef001646128b180769880468bd84b68b09e # via feast (setup.py) -typer==0.20.0 \ - --hash=sha256:1aaf6494031793e4876fb0bacfa6a912b551cf43c1e63c800df8b1a866720c37 \ - --hash=sha256:5b463df6793ec1dca6213a3cf4c0f03bc6e322ac5e16e13ddd622a889489784a +typer==0.21.0 \ + --hash=sha256:c79c01ca6b30af9fd48284058a7056ba0d3bf5cf10d0ff3d0c5b11b68c258ac6 \ + --hash=sha256:c87c0d2b6eee3b49c5c64649ec92425492c14488096dfbc8a0c2799b2f6f9c53 # via fastapi-mcp types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ --hash=sha256:1e642cdafe837b240295b23b1cbd4691d80b08a07d29932143cbbae30eb0db9c # via feast (setup.py) -types-pymysql==1.1.0.20250916 \ - --hash=sha256:873eb9836bb5e3de4368cc7010ca72775f86e9692a5c7810f8c7f48da082e55b \ - --hash=sha256:98d75731795fcc06723a192786662bdfa760e1e00f22809c104fbb47bac5e29b +types-pymysql==1.1.0.20251220 \ + --hash=sha256:ae1c3df32a777489431e2e9963880a0df48f6591e0aa2fd3a6fabd9dee6eca54 \ + --hash=sha256:fa1082af7dea6c53b6caa5784241924b1296ea3a8d3bd060417352c5e10c0618 # via feast (setup.py) typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -2995,9 +3002,9 @@ typing-inspection==0.4.2 \ # mcp # pydantic # pydantic-settings -tzdata==2025.2 \ - --hash=sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8 \ - --hash=sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9 +tzdata==2025.3 \ + --hash=sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1 \ + --hash=sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7 # via pandas ujson==5.11.0 \ --hash=sha256:0180a480a7d099082501cad1fe85252e4d4bf926b40960fb3d9e87a3a6fbbc80 \ @@ -3085,9 +3092,9 @@ ujson==5.11.0 \ --hash=sha256:fa79fdb47701942c2132a9dd2297a1a85941d966d8c87bfd9e29b0cf423f26cc \ --hash=sha256:fac6c0649d6b7c3682a0a6e18d3de6857977378dce8d419f57a0b20e3d775b39 # via pymilvus -urllib3==2.6.1 \ - --hash=sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f \ - --hash=sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b +urllib3==2.6.2 \ + --hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \ + --hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd # via # botocore # kubernetes diff --git a/sdk/python/requirements/py3.10-requirements.txt b/sdk/python/requirements/py3.10-requirements.txt index f3844cb169b..6f38b0c16c6 100644 --- a/sdk/python/requirements/py3.10-requirements.txt +++ b/sdk/python/requirements/py3.10-requirements.txt @@ -20,9 +20,9 @@ attrs==25.4.0 \ # via # jsonschema # referencing -bigtree==1.0.3 \ - --hash=sha256:18402a143130868b17ca84a74ca263e6f32f046d6978c30d244f8b94c4a01227 \ - --hash=sha256:99a18b6937a9b4ab8e560fec5c0720e10ebf37f84e44f9b5f47702c2e84c9aaa +bigtree==1.0.4 \ + --hash=sha256:e4af0c5bc0d2cd72e18442965e4509f642b16a0de65db6d0ec116e30f959010c \ + --hash=sha256:f58a3238bb9b1142d893c9de4921bfd18d435427c75e0c168dd580eabf6dc7fd # via feast (setup.py) certifi==2025.11.12 \ --hash=sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b \ @@ -158,9 +158,9 @@ colorama==0.4.6 \ --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 # via feast (setup.py) -dask[dataframe]==2025.11.0 \ - --hash=sha256:08c35a8146c05c93b34f83cf651009129c42ee71762da7ca452fb7308641c2b8 \ - --hash=sha256:23d59e624b80ee05b7cc8df858682cca58262c4c3b197ccf61da0f6543c8f7c3 +dask[dataframe]==2025.12.0 \ + --hash=sha256:4213ce9c5d51d6d89337cff69de35d902aa0bf6abdb8a25c942a4d0281f3a598 \ + --hash=sha256:8d478f2aabd025e2453cf733ad64559de90cf328c20209e4574e9543707c3e1b # via feast (setup.py) dill==0.3.9 \ --hash=sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a \ @@ -170,9 +170,9 @@ exceptiongroup==1.3.1 \ --hash=sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219 \ --hash=sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598 # via anyio -fastapi==0.124.0 \ - --hash=sha256:260cd178ad75e6d259991f2fd9b0fee924b224850079df576a3ba604ce58f4e6 \ - --hash=sha256:91596bdc6dde303c318f06e8d2bc75eafb341fc793a0c9c92c0bc1db1ac52480 +fastapi==0.128.0 \ + --hash=sha256:1cc179e1cef10a6be60ffe429f79b829dce99d8de32d7acb7e6c8dfdf7f2645a \ + --hash=sha256:aebd93f9716ee3b4f4fcfe13ffb7cf308d99c9f3ab5622d8877441072561582d # via feast (setup.py) fsspec==2025.12.0 \ --hash=sha256:8bf1fe301b7d8acfa6e8571e3b1c3d158f909666642431cc78a1b7b4dbc5ec5b \ @@ -239,9 +239,9 @@ idna==3.11 \ # via # anyio # requests -importlib-metadata==8.7.0 \ - --hash=sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000 \ - --hash=sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd +importlib-metadata==8.7.1 \ + --hash=sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb \ + --hash=sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151 # via dask jinja2==3.1.6 \ --hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \ @@ -255,83 +255,83 @@ jsonschema-specifications==2025.9.1 \ --hash=sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe \ --hash=sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d # via jsonschema -librt==0.7.3 \ - --hash=sha256:020c6db391268bcc8ce75105cb572df8cb659a43fd347366aaa407c366e5117a \ - --hash=sha256:0fa9ac2e49a6bee56e47573a6786cb635e128a7b12a0dc7851090037c0d397a3 \ - --hash=sha256:11ad45122bbed42cfc8b0597450660126ef28fd2d9ae1a219bc5af8406f95678 \ - --hash=sha256:120dd21d46ff875e849f1aae19346223cf15656be489242fe884036b23d39e93 \ - --hash=sha256:14569ac5dd38cfccf0a14597a88038fb16811a6fede25c67b79c6d50fc2c8fdc \ - --hash=sha256:1617bea5ab31266e152871208502ee943cb349c224846928a1173c864261375e \ - --hash=sha256:170cdb8436188347af17bf9cccf3249ba581c933ed56d926497119d4cf730cec \ - --hash=sha256:1975eda520957c6e0eb52d12968dd3609ffb7eef05d4223d097893d6daf1d8a7 \ - --hash=sha256:1fe603877e1865b5fd047a5e40379509a4a60204aa7aa0f72b16f7a41c3f0712 \ - --hash=sha256:24d70810f6e2ea853ff79338001533716b373cc0f63e2a0be5bc96129edb5fb5 \ - --hash=sha256:256793988bff98040de23c57cf36e1f4c2f2dc3dcd17537cdac031d3b681db71 \ - --hash=sha256:25711f364c64cab2c910a0247e90b51421e45dbc8910ceeb4eac97a9e132fc6f \ - --hash=sha256:2682162855a708e3270eba4b92026b93f8257c3e65278b456c77631faf0f4f7a \ - --hash=sha256:2cf9d73499486ce39eebbff5f42452518cc1f88d8b7ea4a711ab32962b176ee2 \ - --hash=sha256:2e40520c37926166c24d0c2e0f3bc3a5f46646c34bdf7b4ea9747c297d6ee809 \ - --hash=sha256:2e980cf1ed1a2420a6424e2ed884629cdead291686f1048810a817de07b5eb18 \ - --hash=sha256:2f03484b54bf4ae80ab2e504a8d99d20d551bfe64a7ec91e218010b467d77093 \ - --hash=sha256:35f1609e3484a649bb80431310ddbec81114cd86648f1d9482bc72a3b86ded2e \ - --hash=sha256:399938edbd3d78339f797d685142dd8a623dfaded023cf451033c85955e4838a \ - --hash=sha256:399bbd7bcc1633c3e356ae274a1deb8781c7bf84d9c7962cc1ae0c6e87837292 \ - --hash=sha256:3ec50cf65235ff5c02c5b747748d9222e564ad48597122a361269dd3aa808798 \ - --hash=sha256:3edbf257c40d21a42615e9e332a6b10a8bacaaf58250aed8552a14a70efd0d65 \ - --hash=sha256:440c788f707c061d237c1e83edf6164ff19f5c0f823a3bf054e88804ebf971ec \ - --hash=sha256:44b3689b040df57f492e02cd4f0bacd1b42c5400e4b8048160c9d5e866de8abe \ - --hash=sha256:4887c29cadbdc50640179e3861c276325ff2986791e6044f73136e6e798ff806 \ - --hash=sha256:5460d99ed30f043595bbdc888f542bad2caeb6226b01c33cda3ae444e8f82d42 \ - --hash=sha256:550fdbfbf5bba6a2960b27376ca76d6aaa2bd4b1a06c4255edd8520c306fcfc0 \ - --hash=sha256:56f2a47beda8409061bc1c865bef2d4bd9ff9255219402c0817e68ab5ad89aed \ - --hash=sha256:572a24fc5958c61431da456a0ef1eeea6b4989d81eeb18b8e5f1f3077592200b \ - --hash=sha256:59cb0470612d21fa1efddfa0dd710756b50d9c7fb6c1236bbf8ef8529331dc70 \ - --hash=sha256:6038ccbd5968325a5d6fd393cf6e00b622a8de545f0994b89dd0f748dcf3e19e \ - --hash=sha256:6488e69d408b492e08bfb68f20c4a899a354b4386a446ecd490baff8d0862720 \ - --hash=sha256:687403cced6a29590e6be6964463835315905221d797bc5c934a98750fe1a9af \ - --hash=sha256:6b407c23f16ccc36614c136251d6b32bf30de7a57f8e782378f1107be008ddb0 \ - --hash=sha256:6b4e7bff1d76dd2b46443078519dc75df1b5e01562345f0bb740cea5266d8218 \ - --hash=sha256:6bdd9adfca615903578d2060ee8a6eb1c24eaf54919ff0ddc820118e5718931b \ - --hash=sha256:6eb9295c730e26b849ed1f4022735f36863eb46b14b6e10604c1c39b8b5efaea \ - --hash=sha256:703456146dc2bf430f7832fd1341adac5c893ec3c1430194fdcefba00012555c \ - --hash=sha256:754a0d09997095ad764ccef050dd5bf26cbf457aab9effcba5890dad081d879e \ - --hash=sha256:7af7785f5edd1f418da09a8cdb9ec84b0213e23d597413e06525340bcce1ea4f \ - --hash=sha256:7b29e97273bd6999e2bfe9fe3531b1f4f64effd28327bced048a33e49b99674a \ - --hash=sha256:7b4f57f7a0c65821c5441d98c47ff7c01d359b1e12328219709bdd97fdd37f90 \ - --hash=sha256:8837d5a52a2d7aa9f4c3220a8484013aed1d8ad75240d9a75ede63709ef89055 \ - --hash=sha256:8ccadf260bb46a61b9c7e89e2218f6efea9f3eeaaab4e3d1f58571890e54858e \ - --hash=sha256:8d8cf653e798ee4c4e654062b633db36984a1572f68c3aa25e364a0ddfbbb910 \ - --hash=sha256:93b2a1f325fefa1482516ced160c8c7b4b8d53226763fa6c93d151fa25164207 \ - --hash=sha256:9f0e0927efe87cd42ad600628e595a1a0aa1c64f6d0b55f7e6059079a428641a \ - --hash=sha256:a59a69deeb458c858b8fea6acf9e2acd5d755d76cd81a655256bc65c20dfff5b \ - --hash=sha256:a9f9b661f82693eb56beb0605156c7fca57f535704ab91837405913417d6990b \ - --hash=sha256:abfc57cab3c53c4546aee31859ef06753bfc136c9d208129bad23e2eca39155a \ - --hash=sha256:aca73d70c3f553552ba9133d4a09e767dcfeee352d8d8d3eb3f77e38a3beb3ed \ - --hash=sha256:adeaa886d607fb02563c1f625cf2ee58778a2567c0c109378da8f17ec3076ad7 \ - --hash=sha256:b278a9248a4e3260fee3db7613772ca9ab6763a129d6d6f29555e2f9b168216d \ - --hash=sha256:b7c1239b64b70be7759554ad1a86288220bbb04d68518b527783c4ad3fb4f80b \ - --hash=sha256:bf8c7735fbfc0754111f00edda35cf9e98a8d478de6c47b04eaa9cef4300eaa7 \ - --hash=sha256:c634a0a6db395fdaba0361aa78395597ee72c3aad651b9a307a3a7eaf5efd67e \ - --hash=sha256:cad9971881e4fec00d96af7eaf4b63aa7a595696fc221808b0d3ce7ca9743258 \ - --hash=sha256:cbdb3f337c88b43c3b49ca377731912c101178be91cb5071aac48faa898e6f8e \ - --hash=sha256:cd8551aa21df6c60baa2624fd086ae7486bdde00c44097b32e1d1b1966e365e0 \ - --hash=sha256:d09f677693328503c9e492e33e9601464297c01f9ebd966ea8fc5308f3069bfd \ - --hash=sha256:d376a35c6561e81d2590506804b428fc1075fcc6298fc5bb49b771534c0ba010 \ - --hash=sha256:d39079379a9a28e74f4d57dc6357fa310a1977b51ff12239d7271ec7e71d67f5 \ - --hash=sha256:d86f94743a11873317094326456b23f8a5788bad9161fd2f0e52088c33564620 \ - --hash=sha256:d91e60ac44bbe3a77a67af4a4c13114cbe9f6d540337ce22f2c9eaf7454ca71f \ - --hash=sha256:d9883b2d819ce83f87ba82a746c81d14ada78784db431e57cc9719179847376e \ - --hash=sha256:e094e445c37c57e9ec612847812c301840239d34ccc5d153a982fa9814478c60 \ - --hash=sha256:e19acfde38cb532a560b98f473adc741c941b7a9bc90f7294bc273d08becb58b \ - --hash=sha256:e32d43610dff472eab939f4d7fbdd240d1667794192690433672ae22d7af8445 \ - --hash=sha256:ed028fc3d41adda916320712838aec289956c89b4f0a361ceadf83a53b4c047a \ - --hash=sha256:ef59c938f72bdbc6ab52dc50f81d0637fde0f194b02d636987cea2ab30f8f55a \ - --hash=sha256:f3d4801db8354436fd3936531e7f0e4feb411f62433a6b6cb32bb416e20b529f \ - --hash=sha256:f57aca20e637750a2c18d979f7096e2c2033cc40cf7ed201494318de1182f135 \ - --hash=sha256:f9da128d0edf990cf0d2ca011b02cd6f639e79286774bd5b0351245cbb5a6e51 \ - --hash=sha256:fbd7351d43b80d9c64c3cfcb50008f786cc82cba0450e8599fdd64f264320bd3 \ - --hash=sha256:fcb72249ac4ea81a7baefcbff74df7029c3cb1cf01a711113fa052d563639c9c \ - --hash=sha256:ff21c554304e8226bf80c3a7754be27c6c3549a9fec563a03c06ee8f494da8fc +librt==0.7.5 \ + --hash=sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee \ + --hash=sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1 \ + --hash=sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4 \ + --hash=sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899 \ + --hash=sha256:0e2bf8f91093fac43e3eaebacf777f12fd539dce9ec5af3efc6d8424e96ccd49 \ + --hash=sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d \ + --hash=sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760 \ + --hash=sha256:191cbd42660446d67cf7a95ac7bfa60f49b8b3b0417c64f216284a1d86fc9335 \ + --hash=sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8 \ + --hash=sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2 \ + --hash=sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec \ + --hash=sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b \ + --hash=sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0 \ + --hash=sha256:39183abee670bc37b85f11e86c44a9cad1ed6efa48b580083e89ecee13dd9717 \ + --hash=sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325 \ + --hash=sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45 \ + --hash=sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d \ + --hash=sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233 \ + --hash=sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d \ + --hash=sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544 \ + --hash=sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802 \ + --hash=sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2 \ + --hash=sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d \ + --hash=sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f \ + --hash=sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169 \ + --hash=sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe \ + --hash=sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982 \ + --hash=sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2 \ + --hash=sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa \ + --hash=sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4 \ + --hash=sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4 \ + --hash=sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57 \ + --hash=sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26 \ + --hash=sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361 \ + --hash=sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad \ + --hash=sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e \ + --hash=sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf \ + --hash=sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f \ + --hash=sha256:8dcae24de1bc9da93aa689cb6313c70e776d7cea2fcf26b9b6160fedfe6bd9af \ + --hash=sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2 \ + --hash=sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89 \ + --hash=sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904 \ + --hash=sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6 \ + --hash=sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276 \ + --hash=sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e \ + --hash=sha256:a9eacbf983319b26b5f340a2e0cd47ac1ee4725a7f3a72fd0f15063c934b69d6 \ + --hash=sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409 \ + --hash=sha256:af69d9e159575e877c7546d1ee817b4ae089aa221dd1117e20c24ad8dc8659c7 \ + --hash=sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a \ + --hash=sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4 \ + --hash=sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775 \ + --hash=sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203 \ + --hash=sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419 \ + --hash=sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5 \ + --hash=sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023 \ + --hash=sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b \ + --hash=sha256:cdb001a1a0e4f41e613bca2c0fc147fc8a7396f53fc94201cbfd8ec7cd69ca4b \ + --hash=sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d \ + --hash=sha256:d2cc7d187e8c6e9b7bdbefa9697ce897a704ea7a7ce844f2b4e0e2aa07ae51d3 \ + --hash=sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e \ + --hash=sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a \ + --hash=sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b \ + --hash=sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db \ + --hash=sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd \ + --hash=sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa \ + --hash=sha256:df2e210400b28e50994477ebf82f055698c79797b6ee47a1669d383ca33263e1 \ + --hash=sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805 \ + --hash=sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a \ + --hash=sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25 \ + --hash=sha256:ea1b60b86595a5dc1f57b44a801a1c4d8209c0a69518391d349973a4491408e6 \ + --hash=sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b \ + --hash=sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5 \ + --hash=sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416 \ + --hash=sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc \ + --hash=sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7 \ + --hash=sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96 # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ @@ -551,45 +551,45 @@ mmh3==5.2.0 \ --hash=sha256:fdfd3fb739f4e22746e13ad7ba0c6eedf5f454b18d11249724a388868e308ee4 \ --hash=sha256:ff3d50dc3fe8a98059f99b445dfb62792b5d006c5e0b8f03c6de2813b8376110 # via feast (setup.py) -mypy==1.19.0 \ - --hash=sha256:0c01c99d626380752e527d5ce8e69ffbba2046eb8a060db0329690849cf9b6f9 \ - --hash=sha256:0dde5cb375cb94deff0d4b548b993bec52859d1651e073d63a1386d392a95495 \ - --hash=sha256:0e3c3d1e1d62e678c339e7ade72746a9e0325de42cd2cccc51616c7b2ed1a018 \ - --hash=sha256:0ea4fd21bb48f0da49e6d3b37ef6bd7e8228b9fe41bbf4d80d9364d11adbd43c \ - --hash=sha256:0fb3115cb8fa7c5f887c8a8d81ccdcb94cff334684980d847e5a62e926910e1d \ - --hash=sha256:11f7254c15ab3f8ed68f8e8f5cbe88757848df793e31c36aaa4d4f9783fd08ab \ - --hash=sha256:120cffe120cca5c23c03c77f84abc0c14c5d2e03736f6c312480020082f1994b \ - --hash=sha256:16f76ff3f3fd8137aadf593cb4607d82634fca675e8211ad75c43d86033ee6c6 \ - --hash=sha256:1cf9c59398db1c68a134b0b5354a09a1e124523f00bacd68e553b8bd16ff3299 \ - --hash=sha256:318ba74f75899b0e78b847d8c50821e4c9637c79d9a59680fc1259f29338cb3e \ - --hash=sha256:3210d87b30e6af9c8faed61be2642fcbe60ef77cec64fa1ef810a630a4cf671c \ - --hash=sha256:34ec1ac66d31644f194b7c163d7f8b8434f1b49719d403a5d26c87fff7e913f7 \ - --hash=sha256:37af5166f9475872034b56c5efdcf65ee25394e9e1d172907b84577120714364 \ - --hash=sha256:3ad925b14a0bb99821ff6f734553294aa6a3440a8cb082fe1f5b84dfb662afb1 \ - --hash=sha256:510c014b722308c9bd377993bcbf9a07d7e0692e5fa8fc70e639c1eb19fc6bee \ - --hash=sha256:6016c52ab209919b46169651b362068f632efcd5eb8ef9d1735f6f86da7853b2 \ - --hash=sha256:6148ede033982a8c5ca1143de34c71836a09f105068aaa8b7d5edab2b053e6c8 \ - --hash=sha256:63ea6a00e4bd6822adbfc75b02ab3653a17c02c4347f5bb0cf1d5b9df3a05835 \ - --hash=sha256:7686ed65dbabd24d20066f3115018d2dce030d8fa9db01aa9f0a59b6813e9f9e \ - --hash=sha256:7a500ab5c444268a70565e374fc803972bfd1f09545b13418a5174e29883dab7 \ - --hash=sha256:8f44f2ae3c58421ee05fe609160343c25f70e3967f6e32792b5a78006a9d850f \ - --hash=sha256:a18d8abdda14035c5718acb748faec09571432811af129bf0d9e7b2d6699bf18 \ - --hash=sha256:a31e4c28e8ddb042c84c5e977e28a21195d086aaffaf08b016b78e19c9ef8106 \ - --hash=sha256:a9ac09e52bb0f7fb912f5d2a783345c72441a08ef56ce3e17c1752af36340a39 \ - --hash=sha256:b9d491295825182fba01b6ffe2c6fe4e5a49dbf4e2bb4d1217b6ced3b4797bc6 \ - --hash=sha256:c14a98bc63fd867530e8ec82f217dae29d0550c86e70debc9667fff1ec83284e \ - --hash=sha256:c3385246593ac2b97f155a0e9639be906e73534630f663747c71908dfbf26134 \ - --hash=sha256:cabbee74f29aa9cd3b444ec2f1e4fa5a9d0d746ce7567a6a609e224429781f53 \ - --hash=sha256:cb64b0ba5980466a0f3f9990d1c582bcab8db12e29815ecb57f1408d99b4bff7 \ - --hash=sha256:cf7d84f497f78b682edd407f14a7b6e1a2212b433eedb054e2081380b7395aa3 \ - --hash=sha256:e2c1101ab41d01303103ab6ef82cbbfedb81c1a060c868fa7cc013d573d37ab5 \ - --hash=sha256:f188dcf16483b3e59f9278c4ed939ec0254aa8a60e8fc100648d9ab5ee95a431 \ - --hash=sha256:f2e36bed3c6d9b5f35d28b63ca4b727cb0228e480826ffc8953d1892ddc8999d \ - --hash=sha256:f3e19e3b897562276bb331074d64c076dbdd3e79213f36eed4e592272dabd760 \ - --hash=sha256:f6b874ca77f733222641e5c46e4711648c4037ea13646fd0cdc814c2eaec2528 \ - --hash=sha256:f75e60aca3723a23511948539b0d7ed514dda194bc3755eae0bfc7a6b4887aa7 \ - --hash=sha256:fc51a5b864f73a3a182584b1ac75c404396a17eced54341629d8bdcb644a5bba \ - --hash=sha256:fd4a985b2e32f23bead72e2fb4bbe5d6aceee176be471243bd831d5b2644672d +mypy==1.19.1 \ + --hash=sha256:016f2246209095e8eda7538944daa1d60e1e8134d98983b9fc1e92c1fc0cb8dd \ + --hash=sha256:022ea7279374af1a5d78dfcab853fe6a536eebfda4b59deab53cd21f6cd9f00b \ + --hash=sha256:06e6170bd5836770e8104c8fdd58e5e725cfeb309f0a6c681a811f557e97eac1 \ + --hash=sha256:19d88bb05303fe63f71dd2c6270daca27cb9401c4ca8255fe50d1d920e0eb9ba \ + --hash=sha256:21761006a7f497cb0d4de3d8ef4ca70532256688b0523eee02baf9eec895e27b \ + --hash=sha256:28902ee51f12e0f19e1e16fbe2f8f06b6637f482c459dd393efddd0ec7f82045 \ + --hash=sha256:2899753e2f61e571b3971747e302d5f420c3fd09650e1951e99f823bc3089dac \ + --hash=sha256:2abb24cf3f17864770d18d673c85235ba52456b36a06b6afc1e07c1fdcd3d0e6 \ + --hash=sha256:34c81968774648ab5ac09c29a375fdede03ba253f8f8287847bd480782f73a6a \ + --hash=sha256:409088884802d511ee52ca067707b90c883426bd95514e8cfda8281dc2effe24 \ + --hash=sha256:481daf36a4c443332e2ae9c137dfee878fcea781a2e3f895d54bd3002a900957 \ + --hash=sha256:4b84a7a18f41e167f7995200a1d07a4a6810e89d29859df936f1c3923d263042 \ + --hash=sha256:4f28f99c824ecebcdaa2e55d82953e38ff60ee5ec938476796636b86afa3956e \ + --hash=sha256:5f05aa3d375b385734388e844bc01733bd33c644ab48e9684faa54e5389775ec \ + --hash=sha256:7bcfc336a03a1aaa26dfce9fff3e287a3ba99872a157561cbfcebe67c13308e3 \ + --hash=sha256:804bd67b8054a85447c8954215a906d6eff9cabeabe493fb6334b24f4bfff718 \ + --hash=sha256:8bb5c6f6d043655e055be9b542aa5f3bdd30e4f3589163e85f93f3640060509f \ + --hash=sha256:a009ffa5a621762d0c926a078c2d639104becab69e79538a494bcccb62cc0331 \ + --hash=sha256:a8174a03289288c1f6c46d55cef02379b478bfbc8e358e02047487cad44c6ca1 \ + --hash=sha256:ab43590f9cd5108f41aacf9fca31841142c786827a74ab7cc8a2eacb634e09a1 \ + --hash=sha256:b10e7c2cd7870ba4ad9b2d8a6102eb5ffc1f16ca35e3de6bfa390c1113029d13 \ + --hash=sha256:b13cfdd6c87fc3efb69ea4ec18ef79c74c3f98b4e5498ca9b85ab3b2c2329a67 \ + --hash=sha256:b64d987153888790bcdb03a6473d321820597ab8dd9243b27a92153c4fa50fd2 \ + --hash=sha256:b7951a701c07ea584c4fe327834b92a30825514c868b1f69c30445093fdd9d5a \ + --hash=sha256:bdb12f69bcc02700c2b47e070238f42cb87f18c0bc1fc4cdb4fb2bc5fd7a3b8b \ + --hash=sha256:c35d298c2c4bba75feb2195655dfea8124d855dfd7343bf8b8c055421eaf0cf8 \ + --hash=sha256:c608937067d2fc5a4dd1a5ce92fd9e1398691b8c5d012d66e1ddd430e9244376 \ + --hash=sha256:c9a6538e0415310aad77cb94004ca6482330fece18036b5f360b62c45814c4ef \ + --hash=sha256:d8dfc6ab58ca7dda47d9237349157500468e404b17213d44fc1cb77bce532288 \ + --hash=sha256:da4869fc5e7f62a88f3fe0b5c919d1d9f7ea3cef92d3689de2823fd27e40aa75 \ + --hash=sha256:de759aafbae8763283b2ee5869c7255391fbc4de3ff171f8f030b5ec48381b74 \ + --hash=sha256:e3157c7594ff2ef1634ee058aafc56a82db665c9438fd41b390f3bde1ab12250 \ + --hash=sha256:e3f276d8493c3c97930e354b2595a44a21348b320d859fb4a2b9f66da9ed27ab \ + --hash=sha256:ee4c11e460685c3e0c64a4c5de82ae143622410950d6be863303a1c4ba0e36d6 \ + --hash=sha256:f1235f5ea01b7db5468d53ece6aaddf1ad0b88d9e7462b86ef96fe04995d7247 \ + --hash=sha256:f7cee03c9a2e2ee26ec07479f38ea9c884e301d42c6d43a19d20fb014e3ba925 \ + --hash=sha256:f859fb09d9583a985be9a493d5cfc5515b56b08f7447759a0c5deaf68d80506e \ + --hash=sha256:ffcebe56eb09ff0c0885e750036a095e23793ba6c2e894e7e63f6d89ad51f22e # via sqlalchemy mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ @@ -744,26 +744,28 @@ protobuf==6.33.2 \ --hash=sha256:d9b19771ca75935b3a4422957bc518b0cecb978b31d1dd12037b088f6bcc0e43 \ --hash=sha256:fc2a0e8b05b180e5fc0dd1559fe8ebdae21a27e81ac77728fb6c42b12c7419b4 # via feast (setup.py) -psutil==7.1.3 \ - --hash=sha256:0005da714eee687b4b8decd3d6cc7c6db36215c9e74e5ad2264b90c3df7d92dc \ - --hash=sha256:1068c303be3a72f8e18e412c5b2a8f6d31750fb152f9cb106b54090296c9d251 \ - --hash=sha256:18349c5c24b06ac5612c0428ec2a0331c26443d259e2a0144a9b24b4395b58fa \ - --hash=sha256:19644c85dcb987e35eeeaefdc3915d059dac7bd1167cdcdbf27e0ce2df0c08c0 \ - --hash=sha256:2bdbcd0e58ca14996a42adf3621a6244f1bb2e2e528886959c72cf1e326677ab \ - --hash=sha256:31d77fcedb7529f27bb3a0472bea9334349f9a04160e8e6e5020f22c59893264 \ - --hash=sha256:3792983e23b69843aea49c8f5b8f115572c5ab64c153bada5270086a2123c7e7 \ - --hash=sha256:3bb428f9f05c1225a558f53e30ccbad9930b11c3fc206836242de1091d3e7dd3 \ - --hash=sha256:56d974e02ca2c8eb4812c3f76c30e28836fffc311d55d979f1465c1feeb2b68b \ - --hash=sha256:6c86281738d77335af7aec228328e944b30930899ea760ecf33a4dba66be5e74 \ - --hash=sha256:8f33a3702e167783a9213db10ad29650ebf383946e91bc77f28a5eb083496bc9 \ - --hash=sha256:95ef04cf2e5ba0ab9eaafc4a11eaae91b44f4ef5541acd2ee91d9108d00d59a7 \ - --hash=sha256:ad81425efc5e75da3f39b3e636293360ad8d0b49bed7df824c79764fb4ba9b8b \ - --hash=sha256:b403da1df4d6d43973dc004d19cee3b848e998ae3154cc8097d139b77156c353 \ - --hash=sha256:bc31fa00f1fbc3c3802141eede66f3a2d51d89716a194bf2cd6fc68310a19880 \ - --hash=sha256:bd0d69cee829226a761e92f28140bec9a5ee9d5b4fb4b0cc589068dbfff559b1 \ - --hash=sha256:c525ffa774fe4496282fb0b1187725793de3e7c6b29e41562733cae9ada151ee \ - --hash=sha256:f39c2c19fe824b47484b96f9692932248a54c43799a84282cfe58d05a6449efd \ - --hash=sha256:fac9cd332c67f4422504297889da5ab7e05fd11e3c4392140f7370f4208ded1f +psutil==7.2.1 \ + --hash=sha256:05cc68dbb8c174828624062e73078e7e35406f4ca2d0866c272c2410d8ef06d1 \ + --hash=sha256:08a2f175e48a898c8eb8eace45ce01777f4785bc744c90aa2cc7f2fa5462a266 \ + --hash=sha256:0d67c1822c355aa6f7314d92018fb4268a76668a536f133599b91edd48759442 \ + --hash=sha256:2ceae842a78d1603753561132d5ad1b2f8a7979cb0c283f5b52fb4e6e14b1a79 \ + --hash=sha256:35630d5af80d5d0d49cfc4d64c1c13838baf6717a13effb35869a5919b854cdf \ + --hash=sha256:3fce5f92c22b00cdefd1645aa58ab4877a01679e901555067b1bd77039aa589f \ + --hash=sha256:494c513ccc53225ae23eec7fe6e1482f1b8a44674241b54561f755a898650679 \ + --hash=sha256:5e38404ca2bb30ed7267a46c02f06ff842e92da3bb8c5bfdadbd35a5722314d8 \ + --hash=sha256:81442dac7abfc2f4f4385ea9e12ddf5a796721c0f6133260687fec5c3780fa49 \ + --hash=sha256:923f8653416604e356073e6e0bccbe7c09990acef442def2f5640dd0faa9689f \ + --hash=sha256:93f3f7b0bb07711b49626e7940d6fe52aa9940ad86e8f7e74842e73189712129 \ + --hash=sha256:99a4cd17a5fdd1f3d014396502daa70b5ec21bf4ffe38393e152f8e449757d67 \ + --hash=sha256:ab2b98c9fc19f13f59628d94df5cc4cc4844bc572467d113a8b517d634e362c6 \ + --hash=sha256:b1b0671619343aa71c20ff9767eced0483e4fc9e1f489d50923738caf6a03c17 \ + --hash=sha256:b2e953fcfaedcfbc952b44744f22d16575d3aa78eb4f51ae74165b4e96e55f42 \ + --hash=sha256:ba9f33bb525b14c3ea563b2fd521a84d2fa214ec59e3e6a2858f78d0844dd60d \ + --hash=sha256:cfbe6b40ca48019a51827f20d830887b3107a74a79b01ceb8cc8de4ccb17b672 \ + --hash=sha256:d34d2ca888208eea2b5c68186841336a7f5e0b990edec929be909353a202768a \ + --hash=sha256:ea46c0d060491051d39f0d2cff4f98d5c72b288289f57a21556cc7d504db37fc \ + --hash=sha256:f7583aec590485b43ca601dd9cea0dcd65bd7bb21d30ef4ddbf4ea6b5ed1bdd3 \ + --hash=sha256:f78baafb38436d5a128f837fab2d92c276dfb48af01a240b861ae02b2413ada8 # via feast (setup.py) pyarrow==21.0.0 \ --hash=sha256:067c66ca29aaedae08218569a114e413b26e742171f526e828e1064fcdec13f4 \ @@ -1184,12 +1186,14 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:1d8b4a7a8c9b537509d56d5cd10ecdcfbb95912d72480c8861524efecc6a3fff \ --hash=sha256:215f0528b914e5c75ef2559f69dca86878a3beeb0c1be7279d77f18e8d180ed4 \ --hash=sha256:2c0b74aa79e2deade948fe8593654c8ef4228c44ba862bb7c9585c8e0db90f33 \ + --hash=sha256:2e90a344c644a4fa871eb01809c32096487928bd2038bf10f3e4515cb688cc56 \ --hash=sha256:3c5f76216e7b85770d5bb5130ddd11ee89f4d52b11783674a662c7dd57018177 \ --hash=sha256:470daea2c1ce73910f08caf10575676a37159a6d16c4da33d0033546bddebc9b \ --hash=sha256:4748601c8ea959e37e03d13dcda4a44837afcd1b21338e637f7c935b8da06177 \ --hash=sha256:4b6bec67ca45bc166c8729910bd2a87f1c0407ee955df110d78948f5b5827e8a \ --hash=sha256:5225a288e4c8cc2308dbdd874edad6e7d0fd38eac1e9e5f23503425c8eee20d0 \ --hash=sha256:56ead1f8dfb91a54a28cd1d072c74b3d635bcffbd25e50786533b822d4f2cde2 \ + --hash=sha256:5964f832431b7cdfaaa22a660b4c7eb1dfcd6ed41375f67fd3e3440fd95cb3cc \ --hash=sha256:59a8b8bd9c6bedf81ad07c8bd5543eedca55fe9b8780b2b628d495ba55f8db1e \ --hash=sha256:672c45cae53ba88e0dad74b9027dddd09ef6f441e927786b05bec75d949fbb2e \ --hash=sha256:6d0beadc2535157070c9c17ecf25ecec31e13c229a8f69196d7590bde8082bf1 \ @@ -1208,7 +1212,9 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:b8c8b41b97fba5f62349aa285654230296829672fc9939cd7f35aab246d1c08b \ --hash=sha256:ba547ac0b361ab4f1608afbc8432db669bd0819b3e12e29fb5fa9529a8bba81d \ --hash=sha256:c1c2091b1489435ff85728fafeb990f073e64f6f5e81d5cd53059773e8521eb6 \ + --hash=sha256:c64772786d9eee72d4d3784c28f0a636af5b0a29f3fe26ff11f55efe90c0bd85 \ --hash=sha256:cd337d3526ec5298f67d6a30bbbe4ed7e5e68862f0bf6dd21d289f8d37b7d60b \ + --hash=sha256:d29b2b99d527dbc66dd87c3c3248a5dd789d974a507f4653c969999fc7c1191b \ --hash=sha256:d2c3684fca8a05f0ac1d9a21c1f4a266983a7ea9180efb80ffeb03861ecd01a0 \ --hash=sha256:d62e47f5d8a50099b17e2bfc1b0c7d7ecd8ba6b46b1507b58cc4f05eefc3bb1c \ --hash=sha256:d8a2ca754e5415cde2b656c27900b19d50ba076aa05ce66e2207623d3fe41f5a \ @@ -1316,13 +1322,13 @@ typing-inspection==0.4.2 \ --hash=sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7 \ --hash=sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464 # via pydantic -tzdata==2025.2 \ - --hash=sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8 \ - --hash=sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9 +tzdata==2025.3 \ + --hash=sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1 \ + --hash=sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7 # via pandas -urllib3==2.6.1 \ - --hash=sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f \ - --hash=sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b +urllib3==2.6.2 \ + --hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \ + --hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd # via requests uvicorn[standard]==0.34.0 \ --hash=sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4 \ diff --git a/sdk/python/requirements/py3.11-ci-requirements.txt b/sdk/python/requirements/py3.11-ci-requirements.txt index afc0ff1c64b..091236521ff 100644 --- a/sdk/python/requirements/py3.11-ci-requirements.txt +++ b/sdk/python/requirements/py3.11-ci-requirements.txt @@ -254,9 +254,9 @@ attrs==25.4.0 \ # jsonlines # jsonschema # referencing -azure-core==1.36.0 \ - --hash=sha256:22e5605e6d0bf1d229726af56d9e92bc37b6e726b141a18be0b4d424131741b7 \ - --hash=sha256:fee9923a3a753e94a259563429f3644aaf05c486d45b1215d098115102d91d3b +azure-core==1.37.0 \ + --hash=sha256:7064f2c11e4b97f340e8e8c6d923b822978be3016e46b7bc4aa4b337cfb48aee \ + --hash=sha256:b3abe2c59e7d6bb18b38c275a5029ff80f98990e7c90a5e646249a56630fcc19 # via # azure-identity # azure-storage-blob @@ -345,9 +345,9 @@ beautifulsoup4==4.14.3 \ # via # docling # nbconvert -bigtree==1.0.3 \ - --hash=sha256:18402a143130868b17ca84a74ca263e6f32f046d6978c30d244f8b94c4a01227 \ - --hash=sha256:99a18b6937a9b4ab8e560fec5c0720e10ebf37f84e44f9b5f47702c2e84c9aaa +bigtree==1.0.4 \ + --hash=sha256:e4af0c5bc0d2cd72e18442965e4509f642b16a0de65db6d0ec116e30f959010c \ + --hash=sha256:f58a3238bb9b1142d893c9de4921bfd18d435427c75e0c168dd580eabf6dc7fd # via feast (setup.py) bleach[css]==6.3.0 \ --hash=sha256:6f3b91b1c0a02bb9a78b5a454c92506aa0fdf197e1d5e114d2e00c6f64306d22 \ @@ -377,9 +377,9 @@ build==1.3.0 \ # feast (setup.py) # pip-tools # singlestoredb -cachetools==6.2.2 \ - --hash=sha256:6c09c98183bf58560c97b2abfcedcbaf6a896a490f534b031b661d3723b45ace \ - --hash=sha256:8e6d266b25e539df852251cfd6f990b4bc3a141db73b939058d809ebd2590fc6 +cachetools==6.2.4 \ + --hash=sha256:69a7a52634fed8b8bf6e24a050fb60bff1c9bd8f6d24572b99c32d4e71e62a51 \ + --hash=sha256:82c5c05585e70b6ba2d3ae09ea60b79548872185d2f24ae1f2709d37299fd607 # via google-auth cassandra-driver==3.29.3 \ --hash=sha256:064bf45d3ca87239e11168c0110676fc64f7fdbddb4bcba9be787b8ad5f6d734 \ @@ -786,99 +786,99 @@ couchbase-columnar==1.0.0 \ --hash=sha256:fc0fad2d386c5b5df7aaaccd8751e01caa886cc640cc8c92523dd07c4e7be519 \ --hash=sha256:fc4efa3e15190c3731478006de494b046bc57785e9c8ae99ac8b375a91683e38 # via feast (setup.py) -coverage[toml]==7.13.0 \ - --hash=sha256:0018f73dfb4301a89292c73be6ba5f58722ff79f51593352759c1790ded1cabe \ - --hash=sha256:00c3d22cf6fb1cf3bf662aaaa4e563be8243a5ed2630339069799835a9cc7f9b \ - --hash=sha256:02d9fb9eccd48f6843c98a37bd6817462f130b86da8660461e8f5e54d4c06070 \ - --hash=sha256:0602f701057c6823e5db1b74530ce85f17c3c5be5c85fc042ac939cbd909426e \ - --hash=sha256:06cac81bf10f74034e055e903f5f946e3e26fc51c09fc9f584e4a1605d977053 \ - --hash=sha256:086cede306d96202e15a4b77ace8472e39d9f4e5f9fd92dd4fecdfb2313b2080 \ - --hash=sha256:0900872f2fdb3ee5646b557918d02279dc3af3dfb39029ac4e945458b13f73bc \ - --hash=sha256:0a3a30f0e257df382f5f9534d4ce3d4cf06eafaf5192beb1a7bd066cb10e78fb \ - --hash=sha256:0b3d67d31383c4c68e19a88e28fc4c2e29517580f1b0ebec4a069d502ce1e0bf \ - --hash=sha256:0dfa3855031070058add1a59fdfda0192fd3e8f97e7c81de0596c145dea51820 \ - --hash=sha256:0f4872f5d6c54419c94c25dd6ae1d015deeb337d06e448cd890a1e89a8ee7f3b \ - --hash=sha256:11c21557d0e0a5a38632cbbaca5f008723b26a89d70db6315523df6df77d6232 \ - --hash=sha256:166ad2a22ee770f5656e1257703139d3533b4a0b6909af67c6b4a3adc1c98657 \ - --hash=sha256:193c3887285eec1dbdb3f2bd7fbc351d570ca9c02ca756c3afbc71b3c98af6ef \ - --hash=sha256:1d84e91521c5e4cb6602fe11ece3e1de03b2760e14ae4fcf1a4b56fa3c801fcd \ - --hash=sha256:1ed5630d946859de835a85e9a43b721123a8a44ec26e2830b296d478c7fd4259 \ - --hash=sha256:22486cdafba4f9e471c816a2a5745337742a617fef68e890d8baf9f3036d7833 \ - --hash=sha256:22ccfe8d9bb0d6134892cbe1262493a8c70d736b9df930f3f3afae0fe3ac924d \ - --hash=sha256:24e4e56304fdb56f96f80eabf840eab043b3afea9348b88be680ec5986780a0f \ - --hash=sha256:25dc33618d45456ccb1d37bce44bc78cf269909aa14c4db2e03d63146a8a1493 \ - --hash=sha256:263c3dbccc78e2e331e59e90115941b5f53e85cfcc6b3b2fbff1fd4e3d2c6ea8 \ - --hash=sha256:28ee1c96109974af104028a8ef57cec21447d42d0e937c0275329272e370ebcf \ - --hash=sha256:30a3a201a127ea57f7e14ba43c93c9c4be8b7d17a26e03bb49e6966d019eede9 \ - --hash=sha256:3188936845cd0cb114fa6a51842a304cdbac2958145d03be2377ec41eb285d19 \ - --hash=sha256:367449cf07d33dc216c083f2036bb7d976c6e4903ab31be400ad74ad9f85ce98 \ - --hash=sha256:37eee4e552a65866f15dedd917d5e5f3d59805994260720821e2c1b51ac3248f \ - --hash=sha256:3a10260e6a152e5f03f26db4a407c4c62d3830b9af9b7c0450b183615f05d43b \ - --hash=sha256:3a7b1cd820e1b6116f92c6128f1188e7afe421c7e1b35fa9836b11444e53ebd9 \ - --hash=sha256:3ab483ea0e251b5790c2aac03acde31bff0c736bf8a86829b89382b407cd1c3b \ - --hash=sha256:3ad968d1e3aa6ce5be295ab5fe3ae1bf5bb4769d0f98a80a0252d543a2ef2e9e \ - --hash=sha256:445badb539005283825959ac9fa4a28f712c214b65af3a2c464f1adc90f5fcbc \ - --hash=sha256:453b7ec753cf5e4356e14fe858064e5520c460d3bbbcb9c35e55c0d21155c256 \ - --hash=sha256:494f5459ffa1bd45e18558cd98710c36c0b8fbfa82a5eabcbe671d80ecffbfe8 \ - --hash=sha256:4b5de7d4583e60d5fd246dd57fcd3a8aa23c6e118a8c72b38adf666ba8e7e927 \ - --hash=sha256:4f3e223b2b2db5e0db0c2b97286aba0036ca000f06aca9b12112eaa9af3d92ae \ - --hash=sha256:4fdb6f54f38e334db97f72fa0c701e66d8479af0bc3f9bfb5b90f1c30f54500f \ - --hash=sha256:51a202e0f80f241ccb68e3e26e19ab5b3bf0f813314f2c967642f13ebcf1ddfe \ - --hash=sha256:581f086833d24a22c89ae0fe2142cfaa1c92c930adf637ddf122d55083fb5a0f \ - --hash=sha256:583221913fbc8f53b88c42e8dbb8fca1d0f2e597cb190ce45916662b8b9d9621 \ - --hash=sha256:58632b187be6f0be500f553be41e277712baa278147ecb7559983c6d9faf7ae1 \ - --hash=sha256:5c67dace46f361125e6b9cace8fe0b729ed8479f47e70c89b838d319375c8137 \ - --hash=sha256:5e70f92ef89bac1ac8a99b3324923b4749f008fdbd7aa9cb35e01d7a284a04f9 \ - --hash=sha256:5f5d9bd30756fff3e7216491a0d6d520c448d5124d3d8e8f56446d6412499e74 \ - --hash=sha256:5f8a0297355e652001015e93be345ee54393e45dc3050af4a0475c5a2b767d46 \ - --hash=sha256:62d7c4f13102148c78d7353c6052af6d899a7f6df66a32bddcc0c0eb7c5326f8 \ - --hash=sha256:69ac2c492918c2461bc6ace42d0479638e60719f2a4ef3f0815fa2df88e9f940 \ - --hash=sha256:6abb3a4c52f05e08460bd9acf04fec027f8718ecaa0d09c40ffbc3fbd70ecc39 \ - --hash=sha256:6e63ccc6e0ad8986386461c3c4b737540f20426e7ec932f42e030320896c311a \ - --hash=sha256:6e9e451dee940a86789134b6b0ffbe31c454ade3b849bb8a9d2cca2541a8e91d \ - --hash=sha256:6fb2d5d272341565f08e962cce14cdf843a08ac43bd621783527adb06b089c4b \ - --hash=sha256:71936a8b3b977ddd0b694c28c6a34f4fff2e9dd201969a4ff5d5fc7742d614b0 \ - --hash=sha256:73419b89f812f498aca53f757dd834919b48ce4799f9d5cad33ca0ae442bdb1a \ - --hash=sha256:739c6c051a7540608d097b8e13c76cfa85263ced467168dc6b477bae3df7d0e2 \ - --hash=sha256:7464663eaca6adba4175f6c19354feea61ebbdd735563a03d1e472c7072d27bb \ - --hash=sha256:74c136e4093627cf04b26a35dab8cbfc9b37c647f0502fc313376e11726ba303 \ - --hash=sha256:76541dc8d53715fb4f7a3a06b34b0dc6846e3c69bc6204c55653a85dd6220971 \ - --hash=sha256:7a485ff48fbd231efa32d58f479befce52dcb6bfb2a88bb7bf9a0b89b1bc8030 \ - --hash=sha256:7e442c013447d1d8d195be62852270b78b6e255b79b8675bad8479641e21fd96 \ - --hash=sha256:7f15a931a668e58087bc39d05d2b4bf4b14ff2875b49c994bbdb1c2217a8daeb \ - --hash=sha256:7f88ae3e69df2ab62fb0bc5219a597cb890ba5c438190ffa87490b315190bb33 \ - --hash=sha256:8069e831f205d2ff1f3d355e82f511eb7c5522d7d413f5db5756b772ec8697f8 \ - --hash=sha256:850d2998f380b1e266459ca5b47bc9e7daf9af1d070f66317972f382d46f1904 \ - --hash=sha256:898cce66d0836973f48dda4e3514d863d70142bdf6dfab932b9b6a90ea5b222d \ - --hash=sha256:9097818b6cc1cfb5f174e3263eba4a62a17683bcfe5c4b5d07f4c97fa51fbf28 \ - --hash=sha256:936bc20503ce24770c71938d1369461f0c5320830800933bc3956e2a4ded930e \ - --hash=sha256:9372dff5ea15930fea0445eaf37bbbafbc771a49e70c0aeed8b4e2c2614cc00e \ - --hash=sha256:9987a9e4f8197a1000280f7cc089e3ea2c8b3c0a64d750537809879a7b4ceaf9 \ - --hash=sha256:99acd4dfdfeb58e1937629eb1ab6ab0899b131f183ee5f23e0b5da5cba2fec74 \ - --hash=sha256:9b01c22bc74a7fb44066aaf765224c0d933ddf1f5047d6cdfe4795504a4493f8 \ - --hash=sha256:a00d3a393207ae12f7c49bb1c113190883b500f48979abb118d8b72b8c95c032 \ - --hash=sha256:a23e5a1f8b982d56fa64f8e442e037f6ce29322f1f9e6c2344cd9e9f4407ee57 \ - --hash=sha256:a2bdb3babb74079f021696cb46b8bb5f5661165c385d3a238712b031a12355be \ - --hash=sha256:a394aa27f2d7ff9bc04cf703817773a59ad6dfbd577032e690f961d2460ee936 \ - --hash=sha256:a6c6e16b663be828a8f0b6c5027d36471d4a9f90d28444aa4ced4d48d7d6ae8f \ - --hash=sha256:af0a583efaacc52ae2521f8d7910aff65cdb093091d76291ac5820d5e947fc1c \ - --hash=sha256:af827b7cbb303e1befa6c4f94fd2bf72f108089cfa0f8abab8f4ca553cf5ca5a \ - --hash=sha256:c4be718e51e86f553bcf515305a158a1cd180d23b72f07ae76d6017c3cc5d791 \ - --hash=sha256:cdb3c9f8fef0a954c632f64328a3935988d33a6604ce4bf67ec3e39670f12ae5 \ - --hash=sha256:d10fd186aac2316f9bbb46ef91977f9d394ded67050ad6d84d94ed6ea2e8e54e \ - --hash=sha256:d1e97353dcc5587b85986cda4ff3ec98081d7e84dd95e8b2a6d59820f0545f8a \ - --hash=sha256:d2a9d7f1c11487b1c69367ab3ac2d81b9b3721f097aa409a3191c3e90f8f3dd7 \ - --hash=sha256:de7f6748b890708578fc4b7bb967d810aeb6fcc9bff4bb77dbca77dab2f9df6a \ - --hash=sha256:e5330fa0cc1f5c3c4c3bb8e101b742025933e7848989370a1d4c8c5e401ea753 \ - --hash=sha256:e999e2dcc094002d6e2c7bbc1fb85b58ba4f465a760a8014d97619330cdbbbf3 \ - --hash=sha256:eb76670874fdd6091eedcc856128ee48c41a9bbbb9c3f1c7c3cf169290e3ffd6 \ - --hash=sha256:f1c23e24a7000da892a312fb17e33c5f94f8b001de44b7cf8ba2e36fbd15859e \ - --hash=sha256:f2ffc92b46ed6e6760f1d47a71e56b5664781bc68986dbd1836b2b70c0ce2071 \ - --hash=sha256:f4f72a85316d8e13234cafe0a9f81b40418ad7a082792fa4165bd7d45d96066b \ - --hash=sha256:f59883c643cb19630500f57016f76cfdcd6845ca8c5b5ea1f6e17f74c8e5f511 \ - --hash=sha256:f6aaef16d65d1787280943f1c8718dc32e9cf141014e4634d64446702d26e0ff \ - --hash=sha256:fe81055d8c6c9de76d60c94ddea73c290b416e061d40d542b24a5871bad498b7 \ - --hash=sha256:ff45e0cd8451e293b63ced93161e189780baf444119391b3e7d25315060368a6 +coverage[toml]==7.13.1 \ + --hash=sha256:0403f647055de2609be776965108447deb8e384fe4a553c119e3ff6bfbab4784 \ + --hash=sha256:0642eae483cc8c2902e4af7298bf886d605e80f26382124cddc3967c2a3df09e \ + --hash=sha256:0b609fc9cdbd1f02e51f67f51e5aee60a841ef58a68d00d5ee2c0faf357481a3 \ + --hash=sha256:0d2c11f3ea4db66b5cbded23b20185c35066892c67d80ec4be4bab257b9ad1e0 \ + --hash=sha256:0e42e0ec0cd3e0d851cb3c91f770c9301f48647cb2877cb78f74bdaa07639a79 \ + --hash=sha256:132718176cc723026d201e347f800cd1a9e4b62ccd3f82476950834dad501c75 \ + --hash=sha256:16cc1da46c04fb0fb128b4dc430b78fa2aba8a6c0c9f8eb391fd5103409a6ac6 \ + --hash=sha256:18be793c4c87de2965e1c0f060f03d9e5aff66cfeae8e1dbe6e5b88056ec153f \ + --hash=sha256:1a55d509a1dc5a5b708b5dad3b5334e07a16ad4c2185e27b40e4dba796ab7f88 \ + --hash=sha256:1dcb645d7e34dcbcc96cd7c132b1fc55c39263ca62eb961c064eb3928997363b \ + --hash=sha256:2016745cb3ba554469d02819d78958b571792bb68e31302610e898f80dd3a573 \ + --hash=sha256:228b90f613b25ba0019361e4ab81520b343b622fc657daf7e501c4ed6a2366c0 \ + --hash=sha256:309ef5706e95e62578cda256b97f5e097916a2c26247c287bbe74794e7150df2 \ + --hash=sha256:339dc63b3eba969067b00f41f15ad161bf2946613156fb131266d8debc8e44d0 \ + --hash=sha256:3820778ea1387c2b6a818caec01c63adc5b3750211af6447e8dcfb9b6f08dbba \ + --hash=sha256:3d42df8201e00384736f0df9be2ced39324c3907607d17d50d50116c989d84cd \ + --hash=sha256:3e7b8bd70c48ffb28461ebe092c2345536fb18bbbf19d287c8913699735f505c \ + --hash=sha256:3f2f725aa3e909b3c5fdb8192490bdd8e1495e85906af74fe6e34a2a77ba0673 \ + --hash=sha256:3fc6a169517ca0d7ca6846c3c5392ef2b9e38896f61d615cb75b9e7134d4ee1e \ + --hash=sha256:45980ea19277dc0a579e432aef6a504fe098ef3a9032ead15e446eb0f1191aee \ + --hash=sha256:4d010d080c4888371033baab27e47c9df7d6fb28d0b7b7adf85a4a49be9298b3 \ + --hash=sha256:4de84e71173d4dada2897e5a0e1b7877e5eefbfe0d6a44edee6ce31d9b8ec09e \ + --hash=sha256:549d195116a1ba1e1ae2f5ca143f9777800f6636eab917d4f02b5310d6d73461 \ + --hash=sha256:562ec27dfa3f311e0db1ba243ec6e5f6ab96b1edfcfc6cf86f28038bc4961ce6 \ + --hash=sha256:57dfc8048c72ba48a8c45e188d811e5efd7e49b387effc8fb17e97936dde5bf6 \ + --hash=sha256:5899d28b5276f536fcf840b18b61a9fce23cc3aec1d114c44c07fe94ebeaa500 \ + --hash=sha256:60cfb538fe9ef86e5b2ab0ca8fc8d62524777f6c611dcaf76dc16fbe9b8e698a \ + --hash=sha256:623dcc6d7a7ba450bbdbeedbaa0c42b329bdae16491af2282f12a7e809be7eb9 \ + --hash=sha256:67170979de0dacac3f3097d02b0ad188d8edcea44ccc44aaa0550af49150c7dc \ + --hash=sha256:6e73ebb44dca5f708dc871fe0b90cf4cff1a13f9956f747cc87b535a840386f5 \ + --hash=sha256:6f34591000f06e62085b1865c9bc5f7858df748834662a51edadfd2c3bfe0dd3 \ + --hash=sha256:724b1b270cb13ea2e6503476e34541a0b1f62280bc997eab443f87790202033d \ + --hash=sha256:75a6f4aa904301dab8022397a22c0039edc1f51e90b83dbd4464b8a38dc87842 \ + --hash=sha256:77545b5dcda13b70f872c3b5974ac64c21d05e65b1590b441c8560115dc3a0d1 \ + --hash=sha256:776483fd35b58d8afe3acbd9988d5de592ab6da2d2a865edfdbc9fdb43e7c486 \ + --hash=sha256:77cc258aeb29a3417062758975521eae60af6f79e930d6993555eeac6a8eac29 \ + --hash=sha256:794f7c05af0763b1bbd1b9e6eff0e52ad068be3b12cd96c87de037b01390c968 \ + --hash=sha256:868a2fae76dfb06e87291bcbd4dcbcc778a8500510b618d50496e520bd94d9b9 \ + --hash=sha256:8842af7f175078456b8b17f1b73a0d16a65dcbdc653ecefeb00a56b3c8c298c4 \ + --hash=sha256:8d9bc218650022a768f3775dd7fdac1886437325d8d295d923ebcfef4892ad5c \ + --hash=sha256:8f572d989142e0908e6acf57ad1b9b86989ff057c006d13b76c146ec6a20216a \ + --hash=sha256:90480b2134999301eea795b3a9dbf606c6fbab1b489150c501da84a959442465 \ + --hash=sha256:916abf1ac5cf7eb16bc540a5bf75c71c43a676f5c52fcb9fe75a2bd75fb944e8 \ + --hash=sha256:92f980729e79b5d16d221038dbf2e8f9a9136afa072f9d5d6ed4cb984b126a09 \ + --hash=sha256:933082f161bbb3e9f90d00990dc956120f608cdbcaeea15c4d897f56ef4fe416 \ + --hash=sha256:97ab3647280d458a1f9adb85244e81587505a43c0c7cff851f5116cd2814b894 \ + --hash=sha256:985b7836931d033570b94c94713c6dba5f9d3ff26045f72c3e5dbc5fe3361e5a \ + --hash=sha256:9e549d642426e3579b3f4b92d0431543b012dcb6e825c91619d4e93b7363c3f9 \ + --hash=sha256:9edd0e01a343766add6817bc448408858ba6b489039eaaa2018474e4001651a4 \ + --hash=sha256:9ee68b21909686eeb21dfcba2c3b81fee70dcf38b140dcd5aa70680995fa3aa5 \ + --hash=sha256:9f5e772ed5fef25b3de9f2008fe67b92d46831bd2bc5bdc5dd6bfd06b83b316f \ + --hash=sha256:a03a4f3a19a189919c7055098790285cc5c5b0b3976f8d227aea39dbf9f8bfdb \ + --hash=sha256:a4d240d260a1aed814790bbe1f10a5ff31ce6c21bc78f0da4a1e8268d6c80dbd \ + --hash=sha256:a5a68357f686f8c4d527a2dc04f52e669c2fc1cbde38f6f7eb6a0e58cbd17cae \ + --hash=sha256:a998cc0aeeea4c6d5622a3754da5a493055d2d95186bad877b0a34ea6e6dbe0a \ + --hash=sha256:b67e47c5595b9224599016e333f5ec25392597a89d5744658f837d204e16c63e \ + --hash=sha256:b6f3b96617e9852703f5b633ea01315ca45c77e879584f283c44127f0f1ec564 \ + --hash=sha256:b7593fe7eb5feaa3fbb461ac79aac9f9fc0387a5ca8080b0c6fe2ca27b091afd \ + --hash=sha256:bb3f6562e89bad0110afbe64e485aac2462efdce6232cdec7862a095dc3412f6 \ + --hash=sha256:bb4f8c3c9a9f34423dba193f241f617b08ffc63e27f67159f60ae6baf2dcfe0f \ + --hash=sha256:bd63e7b74661fed317212fab774e2a648bc4bb09b35f25474f8e3325d2945cd7 \ + --hash=sha256:be753b225d159feb397bd0bf91ae86f689bad0da09d3b301478cd39b878ab31a \ + --hash=sha256:bf100a3288f9bb7f919b87eb84f87101e197535b9bd0e2c2b5b3179633324fee \ + --hash=sha256:c223d078112e90dc0e5c4e35b98b9584164bea9fbbd221c0b21c5241f6d51b62 \ + --hash=sha256:c3d8c679607220979434f494b139dfb00131ebf70bb406553d69c1ff01a5c33d \ + --hash=sha256:c43257717611ff5e9a1d79dce8e47566235ebda63328718d9b65dd640bc832ef \ + --hash=sha256:c832ec92c4499ac463186af72f9ed4d8daec15499b16f0a879b0d1c8e5cf4a3b \ + --hash=sha256:c8e2706ceb622bc63bac98ebb10ef5da80ed70fbd8a7999a5076de3afaef0fb1 \ + --hash=sha256:cb237bfd0ef4d5eb6a19e29f9e528ac67ac3be932ea6b44fb6cc09b9f3ecff78 \ + --hash=sha256:ccd7a6fca48ca9c131d9b0a2972a581e28b13416fc313fb98b6d24a03ce9a398 \ + --hash=sha256:d10a2ed46386e850bb3de503a54f9fe8192e5917fcbb143bfef653a9355e9a53 \ + --hash=sha256:d1443ba9acbb593fa7c1c29e011d7c9761545fe35e7652e85ce7f51a16f7e08d \ + --hash=sha256:d2287ac9360dec3837bfdad969963a5d073a09a85d898bd86bea82aa8876ef3c \ + --hash=sha256:d3c9f051b028810f5a87c88e5d6e9af3c0ff32ef62763bf15d29f740453ca909 \ + --hash=sha256:d72140ccf8a147e94274024ff6fd8fb7811354cf7ef88b1f0a988ebaa5bc774f \ + --hash=sha256:d938b4a840fb1523b9dfbbb454f652967f18e197569c32266d4d13f37244c3d9 \ + --hash=sha256:db622b999ffe49cb891f2fff3b340cdc2f9797d01a0a202a0973ba2562501d90 \ + --hash=sha256:e09fbecc007f7b6afdfb3b07ce5bd9f8494b6856dd4f577d26c66c391b829851 \ + --hash=sha256:e1fa280b3ad78eea5be86f94f461c04943d942697e0dac889fa18fff8f5f9147 \ + --hash=sha256:e4f18eca6028ffa62adbd185a8f1e1dd242f2e68164dba5c2b74a5204850b4cf \ + --hash=sha256:e825dbb7f84dfa24663dd75835e7257f8882629fc11f03ecf77d84a75134b864 \ + --hash=sha256:eaecf47ef10c72ece9a2a92118257da87e460e113b83cc0d2905cbbe931792b4 \ + --hash=sha256:ef6688db9bf91ba111ae734ba6ef1a063304a881749726e0d3575f5c10a9facf \ + --hash=sha256:f398ba4df52d30b1763f62eed9de5620dcde96e6f491f4c62686736b155aa6e4 \ + --hash=sha256:f80e2bb21bfab56ed7405c2d79d34b5dc0bc96c2c1d2a067b643a09fb756c43a \ + --hash=sha256:f83351e0f7dcdb14d7326c3d8d8c4e915fa685cbfdc6281f9470d97a04e9dfe4 \ + --hash=sha256:f8dca5590fec7a89ed6826fce625595279e586ead52e9e958d3237821fbc750c \ + --hash=sha256:fa3edde1aa8807de1d05934982416cb3ec46d1d4d91e280bcce7cca01c507992 \ + --hash=sha256:fea07c1a39a22614acb762e3fbbb4011f65eedafcb2948feeef641ac78b4ee5c \ + --hash=sha256:ff10896fa55167371960c5908150b434b71c876dfab97b69478f22c8b445ea19 \ + --hash=sha256:ff86d4e85188bba72cfb876df3e11fa243439882c55957184af44a35bd5880b7 \ + --hash=sha256:ffed1e4980889765c84a5d1a566159e363b71d6b6fbaf0bebc9d3c30bc016766 # via pytest-cov cryptography==43.0.3 \ --hash=sha256:0c580952eef9bf68c4747774cde7ec1d85a6e61de97281f2dba83c7d2c806362 \ @@ -923,51 +923,51 @@ cryptography==43.0.3 \ # snowflake-connector-python # types-pyopenssl # types-redis -dask[dataframe]==2025.11.0 \ - --hash=sha256:08c35a8146c05c93b34f83cf651009129c42ee71762da7ca452fb7308641c2b8 \ - --hash=sha256:23d59e624b80ee05b7cc8df858682cca58262c4c3b197ccf61da0f6543c8f7c3 +dask[dataframe]==2025.12.0 \ + --hash=sha256:4213ce9c5d51d6d89337cff69de35d902aa0bf6abdb8a25c942a4d0281f3a598 \ + --hash=sha256:8d478f2aabd025e2453cf733ad64559de90cf328c20209e4574e9543707c3e1b # via feast (setup.py) datasets==4.0.0 \ --hash=sha256:7ef95e62025fd122882dbce6cb904c8cd3fbc829de6669a5eb939c77d50e203d \ --hash=sha256:9657e7140a9050db13443ba21cb5de185af8af944479b00e7ff1e00a61c8dbf1 # via feast (setup.py) -db-dtypes==1.4.4 \ - --hash=sha256:26f53db5df1acd746b88c5647913a1b20f731c0af1b11abcb6bec5365f31098a \ - --hash=sha256:32c13039982656a8598a0835f25f0e07e34c9a423e471ee60c2553240b7fcf1e +db-dtypes==1.5.0 \ + --hash=sha256:abdbb2e4eb965800ed6f98af0c5c1cafff9063ace09114be2d26a7f046be2c8a \ + --hash=sha256:ad9e94243f53e104bc77dbf9ae44b580d83a770d3694483aba59c9767966daa5 # via # google-cloud-bigquery # pandas-gbq -debugpy==1.8.17 \ - --hash=sha256:045290c010bcd2d82bc97aa2daf6837443cd52f6328592698809b4549babcee1 \ - --hash=sha256:1440fd514e1b815edd5861ca394786f90eb24960eb26d6f7200994333b1d79e3 \ - --hash=sha256:17e456da14848d618662354e1dccfd5e5fb75deec3d1d48dc0aa0baacda55860 \ - --hash=sha256:24693179ef9dfa20dca8605905a42b392be56d410c333af82f1c5dff807a64cc \ - --hash=sha256:3a32c0af575749083d7492dc79f6ab69f21b2d2ad4cd977a958a07d5865316e4 \ - --hash=sha256:3bea3b0b12f3946e098cce9b43c3c46e317b567f79570c3f43f0b96d00788088 \ - --hash=sha256:5c59b74aa5630f3a5194467100c3b3d1c77898f9ab27e3f7dc5d40fc2f122670 \ - --hash=sha256:60c7dca6571efe660ccb7a9508d73ca14b8796c4ed484c2002abba714226cfef \ - --hash=sha256:6a4e9dacf2cbb60d2514ff7b04b4534b0139facbf2abdffe0639ddb6088e59cf \ - --hash=sha256:6c5cd6f009ad4fca8e33e5238210dc1e5f42db07d4b6ab21ac7ffa904a196420 \ - --hash=sha256:857c1dd5d70042502aef1c6d1c2801211f3ea7e56f75e9c335f434afb403e464 \ - --hash=sha256:893cba7bb0f55161de4365584b025f7064e1f88913551bcd23be3260b231429c \ - --hash=sha256:8deb4e31cd575c9f9370042876e078ca118117c1b5e1f22c32befcfbb6955f0c \ - --hash=sha256:a3aad0537cf4d9c1996434be68c6c9a6d233ac6f76c2a482c7803295b4e4f99a \ - --hash=sha256:b13eea5587e44f27f6c48588b5ad56dcb74a4f3a5f89250443c94587f3eb2ea1 \ - --hash=sha256:b532282ad4eca958b1b2d7dbcb2b7218e02cb934165859b918e3b6ba7772d3f4 \ - --hash=sha256:b69b6bd9dba6a03632534cdf67c760625760a215ae289f7489a452af1031fe1f \ - --hash=sha256:b75868b675949a96ab51abc114c7163f40ff0d8f7d6d5fd63f8932fd38e9c6d7 \ - --hash=sha256:bb1bbf92317e1f35afcf3ef0450219efb3afe00be79d8664b250ac0933b9015f \ - --hash=sha256:c41d2ce8bbaddcc0009cc73f65318eedfa3dbc88a8298081deb05389f1ab5542 \ - --hash=sha256:c6bdf134457ae0cac6fb68205776be635d31174eeac9541e1d0c062165c6461f \ - --hash=sha256:d3fce3f0e3de262a3b67e69916d001f3e767661c6e1ee42553009d445d1cd840 \ - --hash=sha256:e34ee844c2f17b18556b5bbe59e1e2ff4e86a00282d2a46edab73fd7f18f4a83 \ - --hash=sha256:e79a195f9e059edfe5d8bf6f3749b2599452d3e9380484cd261f6b7cd2c7c4da \ - --hash=sha256:e851beb536a427b5df8aa7d0c7835b29a13812f41e46292ff80b2ef77327355a \ - --hash=sha256:e8f8f61c518952fb15f74a302e068b48d9c4691768ade433e4adeea961993464 \ - --hash=sha256:eaa85bce251feca8e4c87ce3b954aba84b8c645b90f0e6a515c00394a9f5c0e7 \ - --hash=sha256:f14467edef672195c6f6b8e27ce5005313cb5d03c9239059bc7182b60c176e2d \ - --hash=sha256:f2ac8055a0c4a09b30b931100996ba49ef334c6947e7ae365cdd870416d7513e \ - --hash=sha256:fd723b47a8c08892b1a16b2c6239a8b96637c62a59b94bb5dab4bac592a58a8e +debugpy==1.8.19 \ + --hash=sha256:0601708223fe1cd0e27c6cce67a899d92c7d68e73690211e6788a4b0e1903f5b \ + --hash=sha256:14035cbdbb1fe4b642babcdcb5935c2da3b1067ac211c5c5a8fdc0bb31adbcaa \ + --hash=sha256:1e8c4d1bd230067bf1bbcdbd6032e5a57068638eb28b9153d008ecde288152af \ + --hash=sha256:327cb28c3ad9e17bc925efc7f7018195fd4787c2fe4b7af1eec11f1d19bdec62 \ + --hash=sha256:360ffd231a780abbc414ba0f005dad409e71c78637efe8f2bd75837132a41d38 \ + --hash=sha256:4468de0c30012d367944f0eab4ecb8371736e8ef9522a465f61214f344c11183 \ + --hash=sha256:6599cab8a783d1496ae9984c52cb13b7c4a3bd06a8e6c33446832a5d97ce0bee \ + --hash=sha256:66e3d2fd8f2035a8f111eb127fa508469dfa40928a89b460b41fd988684dc83d \ + --hash=sha256:76f566baaf7f3e06adbe67ffedccd2ee911d1e486f55931939ce3f0fe1090774 \ + --hash=sha256:783a519e6dfb1f3cd773a9bda592f4887a65040cb0c7bd38dde410f4e53c40d4 \ + --hash=sha256:7b62c0f015120ede25e5124a5f9d8a424e1208e3d96a36c89958f046ee21fff6 \ + --hash=sha256:806d6800246244004625d5222d7765874ab2d22f3ba5f615416cf1342d61c488 \ + --hash=sha256:85016a73ab84dea1c1f1dcd88ec692993bcbe4532d1b49ecb5f3c688ae50c606 \ + --hash=sha256:8e19a725f5d486f20e53a1dde2ab8bb2c9607c40c00a42ab646def962b41125f \ + --hash=sha256:91e35db2672a0abaf325f4868fcac9c1674a0d9ad9bb8a8c849c03a5ebba3e6d \ + --hash=sha256:a21bfdea088f713df05fa246ba0520f6ba44dd7eaec224742f51987a6979a648 \ + --hash=sha256:b1cb98e5325da3059ca24445fca48314bfddfdf65ce1b59ff07055e723f06bd2 \ + --hash=sha256:b605f17e89ba0ecee994391194285fada89cee111cfcd29d6f2ee11cbdc40976 \ + --hash=sha256:b7dd275cf2c99e53adb9654f5ae015f70415bbe2bacbe24cfee30d54b6aa03c5 \ + --hash=sha256:bccb1540a49cde77edc7ce7d9d075c1dbeb2414751bc0048c7a11e1b597a4c2e \ + --hash=sha256:c047177ab2d286451f242b855b650d313198c4a987140d4b35218b2855a64a4a \ + --hash=sha256:c30639998a9f9cd9699b4b621942c0179a6527f083c72351f95c6ab1728d5b73 \ + --hash=sha256:c5dcfa21de1f735a4f7ced4556339a109aa0f618d366ede9da0a3600f2516d8b \ + --hash=sha256:c9b9bf440141a36836bdbe4320a2b126bb38aafa85e1aed05d7bfbb0e2a278bf \ + --hash=sha256:d40c016c1f538dbf1762936e3aeb43a89b965069d9f60f9e39d35d9d25e6b809 \ + --hash=sha256:d9b6f633fd2865af2afba2beb0c1819b6ecd4aed1c8f90f5d1bbca3272306b10 \ + --hash=sha256:e24b1652a1df1ab04d81e7ead446a91c226de704ff5dde6bd0a0dbaab07aa3f2 \ + --hash=sha256:e9c68d9a382ec754dc05ed1d1b4ed5bd824b9f7c1a8cd1083adb84b3c93501de \ + --hash=sha256:eea7e5987445ab0b5ed258093722d5ecb8bb72217c5c9b1e21f64efe23ddebdb \ + --hash=sha256:fce6da15d73be5935b4438435c53adb512326a3e11e4f90793ea87cd9f018254 # via ipykernel decorator==5.2.1 \ --hash=sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360 \ @@ -1009,9 +1009,9 @@ docling==2.27.0 \ --hash=sha256:1288ed75b27e33bf94daff34faffc6d11b7d7ccc13e3df84fb24adad3991f72d \ --hash=sha256:faba35662612a2c687a3a463e501d95f645316436084af92a0442ce162429a3d # via feast (setup.py) -docling-core[chunking]==2.54.1 \ - --hash=sha256:2d22ee1cd8508fa7ffdd2e01ef30d7521390ff55ef240610f16be0cf54ffe73e \ - --hash=sha256:c6595e8b84f5e9de7a0a6298206d749f4be5730824604e684f204078a3689985 +docling-core[chunking]==2.57.0 \ + --hash=sha256:24b71172e8bc4fbe2b4213b29f51878114f4c13f25fc0bc9920168505c76c1a3 \ + --hash=sha256:398768b4d275ad2e11703ad9446fd0315a9a5fc8d09bc45ed207302d844d6ed5 # via # docling # docling-ibm-models @@ -1124,13 +1124,13 @@ durationpy==0.10 \ easyocr==1.7.2 \ --hash=sha256:5be12f9b0e595d443c9c3d10b0542074b50f0ec2d98b141a109cd961fd1c177c # via docling -elastic-transport==9.2.0 \ - --hash=sha256:0331466ca8febdb7d168c0fbf159294b0066492733b51da94f4dd28a0ee596cd \ - --hash=sha256:f52b961e58e6b76d488993286907f61a6ddccbdae8e0135ce8d369227b6282d8 +elastic-transport==9.2.1 \ + --hash=sha256:39e1a25e486af34ce7aa1bc9005d1c736f1b6fb04c9b64ea0604ded5a61fc1d4 \ + --hash=sha256:97d9abd638ba8aa90faa4ca1bf1a18bde0fe2088fbc8757f2eb7b299f205773d # via elasticsearch -elasticsearch==9.2.0 \ - --hash=sha256:87090fe98c515ec0fce82f633fe11d7e90e04d93581b6b3e05de29efe4cc8b74 \ - --hash=sha256:99656baa34b10130402b6c38429feddf7aee1c3247566e8f95f0d0267fe9f9ab +elasticsearch==9.2.1 \ + --hash=sha256:8665f5a0b4d29a7c2772851c05ea8a09279abb7928b7d727524613bd61d75958 \ + --hash=sha256:97f473418e8976611349757287ac982acf12f4e305182863d985d5a031c36830 # via feast (setup.py) entrypoints==0.4 \ --hash=sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4 \ @@ -1177,9 +1177,9 @@ faiss-cpu==1.10.0 \ --hash=sha256:e71f7e24d5b02d3a51df47b77bd10f394a1b48a8331d5c817e71e9e27a8a75ac \ --hash=sha256:f71c5860c860df2320299f9e4f2ca1725beb559c04acb1cf961ed24e6218277a # via feast (setup.py) -fastapi==0.124.0 \ - --hash=sha256:260cd178ad75e6d259991f2fd9b0fee924b224850079df576a3ba604ce58f4e6 \ - --hash=sha256:91596bdc6dde303c318f06e8d2bc75eafb341fc793a0c9c92c0bc1db1ac52480 +fastapi==0.128.0 \ + --hash=sha256:1cc179e1cef10a6be60ffe429f79b829dce99d8de32d7acb7e6c8dfdf7f2645a \ + --hash=sha256:aebd93f9716ee3b4f4fcfe13ffb7cf308d99c9f3ab5622d8877441072561582d # via # feast (setup.py) # fastapi-mcp @@ -1191,9 +1191,9 @@ fastjsonschema==2.21.2 \ --hash=sha256:1c797122d0a86c5cace2e54bf4e819c36223b552017172f32c5c024a6b77e463 \ --hash=sha256:b1eb43748041c880796cd077f1a07c3d94e93ae84bba5ed36800a33554ae05de # via nbformat -filelock==3.20.0 \ - --hash=sha256:339b4732ffda5cd79b13f4e2711a31b0365ce445d95d243bb996273d072546a2 \ - --hash=sha256:711e943b4ec6be42e1d4e6690b48dc175c822967466bb31c0c293f34334c13f4 +filelock==3.20.1 \ + --hash=sha256:15d9e9a67306188a44baa72f569d2bfd803076269365fdea0934385da4dc361a \ + --hash=sha256:b8360948b351b80f420878d8516519a2204b07aefcdcfd24912a5d33127f188c # via # datasets # huggingface-hub @@ -1371,9 +1371,9 @@ google-api-core[grpc]==2.28.1 \ # google-cloud-storage # opencensus # pandas-gbq -google-auth==2.43.0 \ - --hash=sha256:88228eee5fc21b62a1b5fe773ca15e67778cb07dc8363adcb4a8827b52d81483 \ - --hash=sha256:af628ba6fa493f75c7e9dbe9373d148ca9f4399b5ea29976519e0a3848eddd16 +google-auth==2.45.0 \ + --hash=sha256:82344e86dc00410ef5382d99be677c6043d72e502b625aa4f4afa0bdacca0f36 \ + --hash=sha256:90d3f41b6b72ea72dd9811e765699ee491ab24139f34ebf1ca2b9cc0c38708f3 # via # google-api-core # google-auth-oauthlib @@ -1392,19 +1392,19 @@ google-auth-oauthlib==1.2.2 \ # via # pandas-gbq # pydata-google-auth -google-cloud-bigquery[pandas]==3.38.0 \ - --hash=sha256:8afcb7116f5eac849097a344eb8bfda78b7cfaae128e60e019193dd483873520 \ - --hash=sha256:e06e93ff7b245b239945ef59cb59616057598d369edac457ebf292bd61984da6 +google-cloud-bigquery[pandas]==3.39.0 \ + --hash=sha256:cb375e1d63dea9bd5bf735e66024338f294159d43afdf63e1d023f5fcbbf55ea \ + --hash=sha256:dc7a64921465859105461b43c42562e38e797d7a73feb72b3cfc4865b7b1c5ef # via # feast (setup.py) # pandas-gbq -google-cloud-bigquery-storage==2.35.0 \ - --hash=sha256:c9bab6b8e41d6cb9806e589e65f320c89ada84f466e61566b7208d87924c1430 \ - --hash=sha256:f2e3a08882155de1e9ec53c71c5784eb1f25dc6514c535f5796c3c9eeac17d17 +google-cloud-bigquery-storage==2.36.0 \ + --hash=sha256:1769e568070db672302771d2aec18341de10712aa9c4a8c549f417503e0149f0 \ + --hash=sha256:d3c1ce9d2d3a4d7116259889dcbe3c7c70506f71f6ce6bbe54aa0a68bbba8f8f # via feast (setup.py) -google-cloud-bigtable==2.34.0 \ - --hash=sha256:773258b00cd3f9a3a35639cc38bd711f4f1418aaa0c8d70cb028978ed98dc2c2 \ - --hash=sha256:a4a8db4903840cd3f89fb19c060eea2e7c09c1265cb0538cfc11288dbc6000e4 +google-cloud-bigtable==2.35.0 \ + --hash=sha256:f355bfce1f239453ec2bb3839b0f4f9937cf34ef06ef29e1ca63d58fd38d0c50 \ + --hash=sha256:f5699012c5fea4bd4bdf7e80e5e3a812a847eb8f41bf8dc2f43095d6d876b83b # via feast (setup.py) google-cloud-core==2.5.0 \ --hash=sha256:67d977b41ae6c7211ee830c7912e41003ea8194bff15ae7d72fd6f51e57acabc \ @@ -1414,49 +1414,48 @@ google-cloud-core==2.5.0 \ # google-cloud-bigtable # google-cloud-datastore # google-cloud-storage -google-cloud-datastore==2.21.0 \ - --hash=sha256:eee454dd4a55f5b327f9f344928ff1a09a6f77c23d5e3d908ad31a13cc2f4073 \ - --hash=sha256:f303f27cd1983383f20bd227019cd8a7897419e0ec6b878367c58c66245f9d9b +google-cloud-datastore==2.23.0 \ + --hash=sha256:24a1b1d29b902148fe41b109699f76fd3aa60591e9d547c0f8b87d7bf9ff213f \ + --hash=sha256:80049883a4ae928fdcc661ba6803ec267665dc0e6f3ce2da91441079a6bb6387 # via feast (setup.py) google-cloud-storage==2.19.0 \ --hash=sha256:aeb971b5c29cf8ab98445082cbfe7b161a1f48ed275822f59ed3f1524ea54fba \ --hash=sha256:cd05e9e7191ba6cb68934d8eb76054d9be4562aa89dbc4236feee4d7d51342b2 # via feast (setup.py) -google-crc32c==1.7.1 \ - --hash=sha256:0f99eaa09a9a7e642a61e06742856eec8b19fc0037832e03f941fe7cf0c8e4db \ - --hash=sha256:19eafa0e4af11b0a4eb3974483d55d2d77ad1911e6cf6f832e1574f6781fd337 \ - --hash=sha256:1c67ca0a1f5b56162951a9dae987988679a7db682d6f97ce0f6381ebf0fbea4c \ - --hash=sha256:1f2b3522222746fff0e04a9bd0a23ea003ba3cccc8cf21385c564deb1f223242 \ - --hash=sha256:22beacf83baaf59f9d3ab2bbb4db0fb018da8e5aebdce07ef9f09fce8220285e \ - --hash=sha256:2bff2305f98846f3e825dbeec9ee406f89da7962accdb29356e4eadc251bd472 \ - --hash=sha256:2d73a68a653c57281401871dd4aeebbb6af3191dcac751a76ce430df4d403194 \ - --hash=sha256:32d1da0d74ec5634a05f53ef7df18fc646666a25efaaca9fc7dcfd4caf1d98c3 \ - --hash=sha256:3bda0fcb632d390e3ea8b6b07bf6b4f4a66c9d02dcd6fbf7ba00a197c143f582 \ - --hash=sha256:6335de12921f06e1f774d0dd1fbea6bf610abe0887a1638f64d694013138be5d \ - --hash=sha256:6b211ddaf20f7ebeec5c333448582c224a7c90a9d98826fbab82c0ddc11348e6 \ - --hash=sha256:6efb97eb4369d52593ad6f75e7e10d053cf00c48983f7a973105bc70b0ac4d82 \ - --hash=sha256:6fbab4b935989e2c3610371963ba1b86afb09537fd0c633049be82afe153ac06 \ - --hash=sha256:713121af19f1a617054c41f952294764e0c5443d5a5d9034b2cd60f5dd7e0349 \ - --hash=sha256:754561c6c66e89d55754106739e22fdaa93fafa8da7221b29c8b8e8270c6ec8a \ - --hash=sha256:7cc81b3a2fbd932a4313eb53cc7d9dde424088ca3a0337160f35d91826880c1d \ - --hash=sha256:85fef7fae11494e747c9fd1359a527e5970fc9603c90764843caabd3a16a0a48 \ - --hash=sha256:905a385140bf492ac300026717af339790921f411c0dfd9aa5a9e69a08ed32eb \ - --hash=sha256:9fc196f0b8d8bd2789352c6a522db03f89e83a0ed6b64315923c396d7a932315 \ - --hash=sha256:a8e9afc74168b0b2232fb32dd202c93e46b7d5e4bf03e66ba5dc273bb3559589 \ - --hash=sha256:b07d48faf8292b4db7c3d64ab86f950c2e94e93a11fd47271c28ba458e4a0d76 \ - --hash=sha256:b6d86616faaea68101195c6bdc40c494e4d76f41e07a37ffdef270879c15fb65 \ - --hash=sha256:b7491bdc0c7564fcf48c0179d2048ab2f7c7ba36b84ccd3a3e1c3f7a72d3bba6 \ - --hash=sha256:bb5e35dcd8552f76eed9461a23de1030920a3c953c1982f324be8f97946e7127 \ - --hash=sha256:d68e17bad8f7dd9a49181a1f5a8f4b251c6dbc8cc96fb79f1d321dfd57d66f53 \ - --hash=sha256:dcdf5a64adb747610140572ed18d011896e3b9ae5195f2514b7ff678c80f1603 \ - --hash=sha256:df8b38bdaf1629d62d51be8bdd04888f37c451564c2042d36e5812da9eff3c35 \ - --hash=sha256:e10554d4abc5238823112c2ad7e4560f96c7bf3820b202660373d769d9e6e4c9 \ - --hash=sha256:e42e20a83a29aa2709a0cf271c7f8aefaa23b7ab52e53b322585297bb94d4638 \ - --hash=sha256:ed66cbe1ed9cbaaad9392b5259b3eba4a9e565420d734e6238813c428c3336c9 \ - --hash=sha256:ee6547b657621b6cbed3562ea7826c3e11cab01cd33b74e1f677690652883e77 \ - --hash=sha256:f2226b6a8da04f1d9e61d3e357f2460b9551c5e6950071437e122c958a18ae14 \ - --hash=sha256:fa8136cc14dd27f34a3221c0f16fd42d8a40e4778273e61a3c19aedaa44daf6b \ - --hash=sha256:fc5319db92daa516b653600794d5b9f9439a9a121f3e162f94b0e1891c7933cb +google-crc32c==1.8.0 \ + --hash=sha256:014a7e68d623e9a4222d663931febc3033c5c7c9730785727de2a81f87d5bab8 \ + --hash=sha256:01f126a5cfddc378290de52095e2c7052be2ba7656a9f0caf4bcd1bfb1833f8a \ + --hash=sha256:0470b8c3d73b5f4e3300165498e4cf25221c7eb37f1159e221d1825b6df8a7ff \ + --hash=sha256:119fcd90c57c89f30040b47c211acee231b25a45d225e3225294386f5d258288 \ + --hash=sha256:14f87e04d613dfa218d6135e81b78272c3b904e2a7053b841481b38a7d901411 \ + --hash=sha256:17446feb05abddc187e5441a45971b8394ea4c1b6efd88ab0af393fd9e0a156a \ + --hash=sha256:19b40d637a54cb71e0829179f6cb41835f0fbd9e8eb60552152a8b52c36cbe15 \ + --hash=sha256:2a3dc3318507de089c5384cc74d54318401410f82aa65b2d9cdde9d297aca7cb \ + --hash=sha256:3b9776774b24ba76831609ffbabce8cdf6fa2bd5e9df37b594221c7e333a81fa \ + --hash=sha256:3cc0c8912038065eafa603b238abf252e204accab2a704c63b9e14837a854962 \ + --hash=sha256:3d488e98b18809f5e322978d4506373599c0c13e6c5ad13e53bb44758e18d215 \ + --hash=sha256:3ebb04528e83b2634857f43f9bb8ef5b2bbe7f10f140daeb01b58f972d04736b \ + --hash=sha256:450dc98429d3e33ed2926fc99ee81001928d63460f8538f21a5d6060912a8e27 \ + --hash=sha256:4b8286b659c1335172e39563ab0a768b8015e88e08329fa5321f774275fc3113 \ + --hash=sha256:57a50a9035b75643996fbf224d6661e386c7162d1dfdab9bc4ca790947d1007f \ + --hash=sha256:61f58b28e0b21fcb249a8247ad0db2e64114e201e2e9b4200af020f3b6242c9f \ + --hash=sha256:6f35aaffc8ccd81ba3162443fabb920e65b1f20ab1952a31b13173a67811467d \ + --hash=sha256:71734788a88f551fbd6a97be9668a0020698e07b2bf5b3aa26a36c10cdfb27b2 \ + --hash=sha256:864abafe7d6e2c4c66395c1eb0fe12dc891879769b52a3d56499612ca93b6092 \ + --hash=sha256:86cfc00fe45a0ac7359e5214a1704e51a99e757d0272554874f419f79838c5f7 \ + --hash=sha256:87b0072c4ecc9505cfa16ee734b00cd7721d20a0f595be4d40d3d21b41f65ae2 \ + --hash=sha256:87fa445064e7db928226b2e6f0d5304ab4cd0339e664a4e9a25029f384d9bb93 \ + --hash=sha256:89c17d53d75562edfff86679244830599ee0a48efc216200691de8b02ab6b2b8 \ + --hash=sha256:8b3f68782f3cbd1bce027e48768293072813469af6a61a86f6bb4977a4380f21 \ + --hash=sha256:a428e25fb7691024de47fecfbff7ff957214da51eddded0da0ae0e0f03a2cf79 \ + --hash=sha256:b0d1a7afc6e8e4635564ba8aa5c0548e3173e41b6384d7711a9123165f582de2 \ + --hash=sha256:ba6aba18daf4d36ad4412feede6221414692f44d17e5428bdd81ad3fc1eee5dc \ + --hash=sha256:cb5c869c2923d56cb0c8e6bcdd73c009c36ae39b652dbe46a05eb4ef0ad01454 \ + --hash=sha256:d511b3153e7011a27ab6ee6bb3a5404a55b994dc1a7322c0b87b29606d9790e2 \ + --hash=sha256:db3fe8eaf0612fc8b20fa21a5f25bd785bc3cd5be69f8f3412b0ac2ffd49e733 \ + --hash=sha256:e6584b12cb06796d285d09e33f63309a09368b9d806a551d8036a4207ea43697 \ + --hash=sha256:f4b51844ef67d6cf2e9425983274da75f18b1597bb2c998e1c0a0e8d46f8f651 \ + --hash=sha256:f639065ea2042d5c034bf258a9f085eaa7af0cd250667c0635a3118e8f92c69c # via # google-cloud-bigtable # google-cloud-storage @@ -1543,6 +1542,7 @@ grpcio==1.62.3 \ # google-api-core # google-cloud-bigquery # google-cloud-bigquery-storage + # google-cloud-datastore # googleapis-common-protos # grpc-google-iam-v1 # grpcio-health-checking @@ -1884,9 +1884,9 @@ imagesize==1.4.1 \ --hash=sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b \ --hash=sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a # via sphinx -importlib-metadata==8.7.0 \ - --hash=sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000 \ - --hash=sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd +importlib-metadata==8.7.1 \ + --hash=sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb \ + --hash=sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151 # via # dask # opentelemetry-api @@ -1957,9 +1957,9 @@ jmespath==1.0.1 \ # aiobotocore # boto3 # botocore -joblib==1.5.2 \ - --hash=sha256:3faa5c39054b2f03ca547da9b2f52fde67c06240c31853f306aea97f13647b55 \ - --hash=sha256:4e1f0bdbb987e6d843c70cf43714cb276623def372df3c22fe5266b2670bc241 +joblib==1.5.3 \ + --hash=sha256:5fc3c5039fc5ca8c0276333a188bbd59d6b7ab37fe6632daa76bc7f9ec18e713 \ + --hash=sha256:8561a3269e6801106863fd0d6d84bb737be9e7631e33aaed3fb9ce5953688da3 # via scikit-learn json5==0.12.1 \ --hash=sha256:b2743e77b3242f8d03c143dd975a6ec7c52e2f2afe76ed934e53503dd4ad4990 \ @@ -2039,9 +2039,9 @@ jupyter-server-terminals==0.5.3 \ --hash=sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa \ --hash=sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269 # via jupyter-server -jupyterlab==4.5.0 \ - --hash=sha256:88e157c75c1afff64c7dc4b801ec471450b922a4eae4305211ddd40da8201c8a \ - --hash=sha256:aec33d6d8f1225b495ee2cf20f0514f45e6df8e360bdd7ac9bace0b7ac5177ea +jupyterlab==4.5.1 \ + --hash=sha256:09da1ddfbd9eec18b5101dbb8515612aa1e47443321fb99503725a88e93d20d9 \ + --hash=sha256:31b059de96de0754ff1f2ce6279774b6aab8c34d7082e9752db58207c99bd514 # via notebook jupyterlab-pygments==0.3.0 \ --hash=sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d \ @@ -2387,9 +2387,9 @@ markupsafe==3.0.3 \ # jinja2 # nbconvert # werkzeug -marshmallow==3.26.1 \ - --hash=sha256:3350409f20a70a7e4e11a27661187b77cdcaeb20abca41c1454fe33636bea09c \ - --hash=sha256:e6d8affb6cb61d39d26402096dc0aee12d5a26d490a121f118d2e81dc0719dc6 +marshmallow==3.26.2 \ + --hash=sha256:013fa8a3c4c276c24d26d84ce934dc964e2aa794345a0f8c7e5a7191482c8a73 \ + --hash=sha256:bbe2adb5a03e6e3571b573f42527c6fe926e17467833660bebd11593ab8dfd57 # via great-expectations matplotlib-inline==0.2.1 \ --hash=sha256:d56ce5156ba6085e00a9d54fead6ed29a9c47e215cd1bba2e976ef39f5710a76 \ @@ -2397,9 +2397,9 @@ matplotlib-inline==0.2.1 \ # via # ipykernel # ipython -mcp==1.23.3 \ - --hash=sha256:32768af4b46a1b4f7df34e2bfdf5c6011e7b63d7f1b0e321d0fdef4cd6082031 \ - --hash=sha256:b3b0da2cc949950ce1259c7bfc1b081905a51916fcd7c8182125b85e70825201 +mcp==1.25.0 \ + --hash=sha256:56310361ebf0364e2d438e5b45f7668cbb124e158bb358333cd06e49e83a6802 \ + --hash=sha256:b37c38144a666add0862614cc79ec276e97d72aa8ca26d622818d4e278b9721a # via fastapi-mcp mdurl==0.1.2 \ --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ @@ -2417,9 +2417,9 @@ minio==7.2.11 \ --hash=sha256:153582ed52ff3b5005ba558e1f25bfe1e9e834f7f0745e594777f28e3e81e1a0 \ --hash=sha256:4db95a21fe1e2022ec975292d8a1f83bd5b18f830d23d42a4518ac7a5281d7c5 # via feast (setup.py) -mistune==3.1.4 \ - --hash=sha256:93691da911e5d9d2e23bc54472892aff676df27a75274962ff9edc210364266d \ - --hash=sha256:b5a7f801d389f724ec702840c11d8fc48f2b33519102fc7ee739e8177b672164 +mistune==3.2.0 \ + --hash=sha256:708487c8a8cdd99c9d90eb3ed4c3ed961246ff78ac82f03418f5183ab70e398a \ + --hash=sha256:febdc629a3c78616b94393c6580551e0e34cc289987ec6c35ed3f4be42d0eee1 # via # great-expectations # nbconvert @@ -2842,9 +2842,9 @@ mypy-protobuf==3.3.0 \ --hash=sha256:15604f6943b16c05db646903261e3b3e775cf7f7990b7c37b03d043a907b650d \ --hash=sha256:24f3b0aecb06656e983f58e07c732a90577b9d7af3e1066fc2b663bbf0370248 # via feast (setup.py) -nbclient==0.10.2 \ - --hash=sha256:4ffee11e788b4a27fabeb7955547e4318a5298f34342a4bfd01f2e1faaeadc3d \ - --hash=sha256:90b7fc6b810630db87a6d0c2250b1f0ab4cf4d3c27a299b0cde78a4ed3fd9193 +nbclient==0.10.4 \ + --hash=sha256:1e54091b16e6da39e297b0ece3e10f6f29f4ac4e8ee515d29f8a7099bd6553c9 \ + --hash=sha256:9162df5a7373d70d606527300a95a975a47c137776cd942e52d9c7e29ff83440 # via nbconvert nbconvert==7.16.6 \ --hash=sha256:1375a7b67e0c2883678c48e506dc320febb57685e5ee67faa51b18a90f3a712b \ @@ -2889,13 +2889,13 @@ ninja==1.13.0 \ --hash=sha256:fb46acf6b93b8dd0322adc3a4945452a4e774b75b91293bafcc7b7f8e6517dfa \ --hash=sha256:fb8ee8719f8af47fed145cced4a85f0755dd55d45b2bddaf7431fa89803c5f3e # via easyocr -nodeenv==1.9.1 \ - --hash=sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f \ - --hash=sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9 +nodeenv==1.10.0 \ + --hash=sha256:5bb13e3eed2923615535339b3c620e76779af4cb4c6a90deccc9e36b274d3827 \ + --hash=sha256:996c191ad80897d076bdfba80a41994c2b47c68e224c542b48feba42ba00f8bb # via pre-commit -notebook==7.5.0 \ - --hash=sha256:3300262d52905ca271bd50b22617681d95f08a8360d099e097726e6d2efb5811 \ - --hash=sha256:3b27eaf9913033c28dde92d02139414c608992e1df4b969c843219acf2ff95e4 +notebook==7.5.1 \ + --hash=sha256:b2fb4cef4d47d08c33aecce1c6c6e84be05436fbd791f88fce8df9fbca088b75 \ + --hash=sha256:f4e2451c19910c33b88709b84537e11f6368c1cdff1aa0c43db701aea535dd44 # via great-expectations notebook-shim==0.2.4 \ --hash=sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef \ @@ -2903,81 +2903,79 @@ notebook-shim==0.2.4 \ # via # jupyterlab # notebook -numpy==2.3.5 \ - --hash=sha256:00dc4e846108a382c5869e77c6ed514394bdeb3403461d25a829711041217d5b \ - --hash=sha256:0472f11f6ec23a74a906a00b48a4dcf3849209696dff7c189714511268d103ae \ - --hash=sha256:04822c00b5fd0323c8166d66c701dc31b7fbd252c100acd708c48f763968d6a3 \ - --hash=sha256:052e8c42e0c49d2575621c158934920524f6c5da05a1d3b9bab5d8e259e045f0 \ - --hash=sha256:09a1bea522b25109bf8e6f3027bd810f7c1085c64a0c7ce050c1676ad0ba010b \ - --hash=sha256:0cd00b7b36e35398fa2d16af7b907b65304ef8bb4817a550e06e5012929830fa \ - --hash=sha256:0d8163f43acde9a73c2a33605353a4f1bc4798745a8b1d73183b28e5b435ae28 \ - --hash=sha256:1062fde1dcf469571705945b0f221b73928f34a20c904ffb45db101907c3454e \ - --hash=sha256:11e06aa0af8c0f05104d56450d6093ee639e15f24ecf62d417329d06e522e017 \ - --hash=sha256:17531366a2e3a9e30762c000f2c43a9aaa05728712e25c11ce1dbe700c53ad41 \ - --hash=sha256:1978155dd49972084bd6ef388d66ab70f0c323ddee6f693d539376498720fb7e \ - --hash=sha256:1ed1ec893cff7040a02c8aa1c8611b94d395590d553f6b53629a4461dc7f7b63 \ - --hash=sha256:2dcd0808a421a482a080f89859a18beb0b3d1e905b81e617a188bd80422d62e9 \ - --hash=sha256:2e2eb32ddb9ccb817d620ac1d8dae7c3f641c1e5f55f531a33e8ab97960a75b8 \ - --hash=sha256:2feae0d2c91d46e59fcd62784a3a83b3fb677fead592ce51b5a6fbb4f95965ff \ - --hash=sha256:3095bdb8dd297e5920b010e96134ed91d852d81d490e787beca7e35ae1d89cf7 \ - --hash=sha256:30bc11310e8153ca664b14c5f1b73e94bd0503681fcf136a163de856f3a50139 \ - --hash=sha256:3101e5177d114a593d79dd79658650fe28b5a0d8abeb8ce6f437c0e6df5be1a4 \ - --hash=sha256:396084a36abdb603546b119d96528c2f6263921c50df3c8fd7cb28873a237748 \ - --hash=sha256:3997b5b3c9a771e157f9aae01dd579ee35ad7109be18db0e85dbdbe1de06e952 \ - --hash=sha256:414802f3b97f3c1eef41e530aaba3b3c1620649871d8cb38c6eaff034c2e16bd \ - --hash=sha256:51c1e14eb1e154ebd80e860722f9e6ed6ec89714ad2db2d3aa33c31d7c12179b \ - --hash=sha256:51c55fe3451421f3a6ef9a9c1439e82101c57a2c9eab9feb196a62b1a10b58ce \ - --hash=sha256:5ee6609ac3604fa7780e30a03e5e241a7956f8e2fcfe547d51e3afa5247ac47f \ - --hash=sha256:612a95a17655e213502f60cfb9bf9408efdc9eb1d5f50535cc6eb365d11b42b5 \ - --hash=sha256:6203fdf9f3dc5bdaed7319ad8698e685c7a3be10819f41d32a0723e611733b42 \ - --hash=sha256:63c0e9e7eea69588479ebf4a8a270d5ac22763cc5854e9a7eae952a3908103f7 \ - --hash=sha256:66f85ce62c70b843bab1fb14a05d5737741e74e28c7b8b5a064de10142fad248 \ - --hash=sha256:6cf9b429b21df6b99f4dee7a1218b8b7ffbbe7df8764dc0bd60ce8a0708fed1e \ - --hash=sha256:70b37199913c1bd300ff6e2693316c6f869c7ee16378faf10e4f5e3275b299c3 \ - --hash=sha256:727fd05b57df37dc0bcf1a27767a3d9a78cbbc92822445f32cc3436ba797337b \ - --hash=sha256:74ae7b798248fe62021dbf3c914245ad45d1a6b0cb4a29ecb4b31d0bfbc4cc3e \ - --hash=sha256:784db1dcdab56bf0517743e746dfb0f885fc68d948aba86eeec2cba234bdf1c0 \ - --hash=sha256:86945f2ee6d10cdfd67bcb4069c1662dd711f7e2a4343db5cecec06b87cf31aa \ - --hash=sha256:86d835afea1eaa143012a2d7a3f45a3adce2d7adc8b4961f0b362214d800846a \ - --hash=sha256:872a5cf366aec6bb1147336480fef14c9164b154aeb6542327de4970282cd2f5 \ - --hash=sha256:8b973c57ff8e184109db042c842423ff4f60446239bd585a5131cc47f06f789d \ - --hash=sha256:8cba086a43d54ca804ce711b2a940b16e452807acebe7852ff327f1ecd49b0d4 \ - --hash=sha256:8f7f0e05112916223d3f438f293abf0727e1181b5983f413dfa2fefc4098245c \ - --hash=sha256:900218e456384ea676e24ea6a0417f030a3b07306d29d7ad843957b40a9d8d52 \ - --hash=sha256:93eebbcf1aafdf7e2ddd44c2923e2672e1010bddc014138b229e49725b4d6be5 \ - --hash=sha256:9c75442b2209b8470d6d5d8b1c25714270686f14c749028d2199c54e29f20b4d \ - --hash=sha256:9ee2197ef8c4f0dfe405d835f3b6a14f5fee7782b5de51ba06fb65fc9b36e9f1 \ - --hash=sha256:a414504bef8945eae5f2d7cb7be2d4af77c5d1cb5e20b296c2c25b61dff2900c \ - --hash=sha256:a4b9159734b326535f4dd01d947f919c6eefd2d9827466a696c44ced82dfbc18 \ - --hash=sha256:a80afd79f45f3c4a7d341f13acbe058d1ca8ac017c165d3fa0d3de6bc1a079d7 \ - --hash=sha256:aa5bc7c5d59d831d9773d1170acac7893ce3a5e130540605770ade83280e7188 \ - --hash=sha256:acfd89508504a19ed06ef963ad544ec6664518c863436306153e13e94605c218 \ - --hash=sha256:aeffcab3d4b43712bb7a60b65f6044d444e75e563ff6180af8f98dd4b905dfd2 \ - --hash=sha256:afaffc4393205524af9dfa400fa250143a6c3bc646c08c9f5e25a9f4b4d6a903 \ - --hash=sha256:b0c7088a73aef3d687c4deef8452a3ac7c1be4e29ed8bf3b366c8111128ac60c \ - --hash=sha256:b46b4ec24f7293f23adcd2d146960559aaf8020213de8ad1909dba6c013bf89c \ - --hash=sha256:b501b5fa195cc9e24fe102f21ec0a44dffc231d2af79950b451e0d99cea02234 \ - --hash=sha256:bf06bc2af43fa8d32d30fae16ad965663e966b1a3202ed407b84c989c3221e82 \ - --hash=sha256:c804e3a5aba5460c73955c955bdbd5c08c354954e9270a2c1565f62e866bdc39 \ - --hash=sha256:c8a9958e88b65c3b27e22ca2a076311636850b612d6bbfb76e8d156aacde2aaf \ - --hash=sha256:cc0a57f895b96ec78969c34f682c602bf8da1a0270b09bc65673df2e7638ec20 \ - --hash=sha256:cc8920d2ec5fa99875b670bb86ddeb21e295cb07aa331810d9e486e0b969d946 \ - --hash=sha256:ccc933afd4d20aad3c00bcef049cb40049f7f196e0397f1109dba6fed63267b0 \ - --hash=sha256:ce581db493ea1a96c0556360ede6607496e8bf9b3a8efa66e06477267bc831e9 \ - --hash=sha256:d0f23b44f57077c1ede8c5f26b30f706498b4862d3ff0a7298b8411dd2f043ff \ - --hash=sha256:d21644de1b609825ede2f48be98dfde4656aefc713654eeee280e37cadc4e0ad \ - --hash=sha256:d6889ec4ec662a1a37eb4b4fb26b6100841804dac55bd9df579e326cdc146227 \ - --hash=sha256:de5672f4a7b200c15a4127042170a694d4df43c992948f5e1af57f0174beed10 \ - --hash=sha256:e6a0bc88393d65807d751a614207b7129a310ca4fe76a74e5c7da5fa5671417e \ - --hash=sha256:ed89927b86296067b4f81f108a2271d8926467a8868e554eaf370fc27fa3ccaf \ - --hash=sha256:ee3888d9ff7c14604052b2ca5535a30216aa0a58e948cdd3eeb8d3415f638769 \ - --hash=sha256:f0963b55cdd70fad460fa4c1341f12f976bb26cb66021a5580329bd498988310 \ - --hash=sha256:f16417ec91f12f814b10bafe79ef77e70113a2f5f7018640e7425ff979253425 \ - --hash=sha256:f28620fe26bee16243be2b7b874da327312240a7cdc38b769a697578d2100013 \ - --hash=sha256:f4255143f5160d0de972d28c8f9665d882b5f61309d8362fdd3e103cf7bf010c \ - --hash=sha256:ffac52f28a7849ad7576293c0cb7b9f08304e8f7d738a8cb8a90ec4c55a998eb \ - --hash=sha256:ffe22d2b05504f786c867c8395de703937f934272eb67586817b46188b4ded6d \ - --hash=sha256:fffe29a1ef00883599d1dc2c51aa2e5d80afe49523c261a74933df395c15c520 +numpy==2.4.0 \ + --hash=sha256:009bd0ea12d3c784b6639a8457537016ce5172109e585338e11334f6a7bb88ee \ + --hash=sha256:02a2038eb27f9443a8b266a66911e926566b5a6ffd1a689b588f7f35b81e7dc3 \ + --hash=sha256:0804a8e4ab070d1d35496e65ffd3cf8114c136a2b81f61dfab0de4b218aacfd5 \ + --hash=sha256:0feafc9e03128074689183031181fac0897ff169692d8492066e949041096548 \ + --hash=sha256:1889b3a3f47a7b5bee16bc25a2145bd7cb91897f815ce3499db64c7458b6d91d \ + --hash=sha256:1d8f9fde5f6dc1b6fc34df8162f3b3079365468703fee7f31d4e0cc8c63baed9 \ + --hash=sha256:1ee32359fb7543b7b7bd0b2f46294db27e29e7bbdf70541e81b190836cd83ded \ + --hash=sha256:20c115517513831860c573996e395707aa9fb691eb179200125c250e895fcd93 \ + --hash=sha256:21555da4ec4a0c942520ead42c3b0dc9477441e085c42b0fbdd6a084869a6f6b \ + --hash=sha256:23a3e9d1a6f360267e8fbb38ba5db355a6a7e9be71d7fce7ab3125e88bb646c8 \ + --hash=sha256:2a8b6bb8369abefb8bd1801b054ad50e02b3275c8614dc6e5b0373c305291037 \ + --hash=sha256:2e284ca13d5a8367e43734148622caf0b261b275673823593e3e3634a6490f83 \ + --hash=sha256:2f585f52b2baf07ff3356158d9268ea095e221371f1074fadea2f42544d58b4d \ + --hash=sha256:316b2f2584682318539f0bcaca5a496ce9ca78c88066579ebd11fd06f8e4741e \ + --hash=sha256:32ed06d0fe9cae27d8fb5f400c63ccee72370599c75e683a6358dd3a4fb50aaf \ + --hash=sha256:355354388cba60f2132df297e2d53053d4063f79077b67b481d21276d61fc4df \ + --hash=sha256:35ddc8f4914466e6fc954c76527aa91aa763682a4f6d73249ef20b418fe6effb \ + --hash=sha256:36667db4d6c1cea79c8930ab72fadfb4060feb4bfe724141cd4bd064d2e5f8ce \ + --hash=sha256:36cbfb13c152b1c7c184ddac43765db8ad672567e7bafff2cc755a09917ed2e6 \ + --hash=sha256:39699233bc72dd482da1415dcb06076e32f60eddc796a796c5fb6c5efce94667 \ + --hash=sha256:39b19251dec4de8ff8496cd0806cbe27bf0684f765abb1f4809554de93785f2d \ + --hash=sha256:3d857f55e7fdf7c38ab96c4558c95b97d1c685be6b05c249f5fdafcbd6f9899e \ + --hash=sha256:3de19cfecd1465d0dcf8a5b5ea8b3155b42ed0b639dba4b71e323d74f2a3be5e \ + --hash=sha256:3f3096405acc48887458bbf9f6814d43785ac7ba2a57ea6442b581dedbc60ce6 \ + --hash=sha256:40483b2f2d3ba7aad426443767ff5632ec3156ef09742b96913787d13c336471 \ + --hash=sha256:413aa561266a4be2d06cd2b9665e89d9f54c543f418773076a76adcf2af08bc7 \ + --hash=sha256:44aba2f0cafd287871a495fb3163408b0bd25bbce135c6f621534a07f4f7875c \ + --hash=sha256:49ff32b09f5aa0cd30a20c2b39db3e669c845589f2b7fc910365210887e39344 \ + --hash=sha256:4d1cfce39e511069b11e67cd0bd78ceff31443b7c9e5c04db73c7a19f572967c \ + --hash=sha256:57c540ed8fb1f05cb997c6761cd56db72395b0d6985e90571ff660452ade4f98 \ + --hash=sha256:5f48cb3e88fbc294dc90e215d86fbaf1c852c63dbdb6c3a3e63f45c4b57f7344 \ + --hash=sha256:5fe44e277225fd3dff6882d86d3d447205d43532c3627313d17e754fb3905a0e \ + --hash=sha256:60e8c196cd82cbbd4f130b5290007e13e6de3eca79f0d4d38014769d96a7c475 \ + --hash=sha256:65167da969cd1ec3a1df31cb221ca3a19a8aaa25370ecb17d428415e93c1935e \ + --hash=sha256:680060061adb2d74ce352628cb798cfdec399068aa7f07ba9fb818b2b3305f98 \ + --hash=sha256:6bbaebf0d11567fa8926215ae731e1d58e6ec28a8a25235b8a47405d301332db \ + --hash=sha256:6c05483c3136ac4c91b4e81903cb53a8707d316f488124d0398499a4f8e8ef51 \ + --hash=sha256:6dc8b7e2f4eb184b37655195f421836cfae6f58197b67e3ffc501f1333d993fa \ + --hash=sha256:6e504f7b16118198f138ef31ba24d985b124c2c469fe8467007cf30fd992f934 \ + --hash=sha256:74623f2ab5cc3f7c886add4f735d1031a1d2be4a4ae63c0546cfd74e7a31ddf6 \ + --hash=sha256:77f0d13fa87036d7553bf81f0e1fe3ce68d14c9976c9851744e4d3e91127e95f \ + --hash=sha256:85eef4cb5625c47ee6425c58a3502555e10f45ee973da878ac8248ad58c136f3 \ + --hash=sha256:882567b7ae57c1b1a0250208cc21a7976d8cbcc49d5a322e607e6f09c9e0bd53 \ + --hash=sha256:8b986403023c8f3bf8f487c2e6186afda156174d31c175f747d8934dfddf3479 \ + --hash=sha256:8cfa5f29a695cb7438965e6c3e8d06e0416060cf0d709c1b1c1653a939bf5c2a \ + --hash=sha256:8eafe7c36c8430b7794edeab3087dec7bf31d634d92f2af9949434b9d1964cba \ + --hash=sha256:9198f447e1dc5647d07c9a6bbe2063cc0132728cc7175b39dbc796da5b54920d \ + --hash=sha256:92190db305a6f48734d3982f2c60fa30d6b5ee9bff10f2887b930d7b40119f4c \ + --hash=sha256:927ccf5cd17c48f801f4ed43a7e5673a2724bd2171460be3e3894e6e332ef83a \ + --hash=sha256:98e81648e0b36e325ab67e46b5400a7a6d4a22b8a7c8e8bbfe20e7db7906bf95 \ + --hash=sha256:9a818668b674047fd88c4cddada7ab8f1c298812783e8328e956b78dc4807f9f \ + --hash=sha256:a152d86a3ae00ba5f47b3acf3b827509fd0b6cb7d3259665e63dafbad22a75ea \ + --hash=sha256:a2718c1de8504121714234b6f8241d0019450353276c88b9453c9c3d92e101db \ + --hash=sha256:a39fb973a726e63223287adc6dafe444ce75af952d711e400f3bf2b36ef55a7b \ + --hash=sha256:a899699294f28f7be8992853c0c60741f16ff199205e2e6cdca155762cbaa59d \ + --hash=sha256:a8fdfed3deaf1928fb7667d96e0567cdf58c2b370ea2ee7e586aa383ec2cb346 \ + --hash=sha256:aabb081ca0ec5d39591fc33018cd4b3f96e1a2dd6756282029986d00a785fba4 \ + --hash=sha256:b1f5b45829ac1848893f0ddf5cb326110604d6df96cdc255b0bf9edd154104d4 \ + --hash=sha256:b48e35f4ab6f6a7597c46e301126ceba4c44cd3280e3750f85db48b082624fa4 \ + --hash=sha256:b54c83f1c0c0f1d748dca0af516062b8829d53d1f0c402be24b4257a9c48ada6 \ + --hash=sha256:ba0cb30acd3ef11c94dc27fbfba68940652492bc107075e7ffe23057f9425681 \ + --hash=sha256:bb50ce5fb202a26fd5404620e7ef820ad1ab3558b444cb0b55beb7ef66cd2d63 \ + --hash=sha256:c95eb6db2884917d86cde0b4d4cf31adf485c8ec36bf8696dd66fa70de96f36b \ + --hash=sha256:d0ffd9e2e4441c96a9c91ec1783285d80bf835b677853fc2770a89d50c1e48ac \ + --hash=sha256:d57b5046c120561ba8fa8e4030fbb8b822f3063910fa901ffadf16e2b7128ad6 \ + --hash=sha256:d9e6a7664ddd9746e20b7325351fe1a8408d0a2bf9c63b5e898290ddc8f09544 \ + --hash=sha256:dc578891de1db95b2a35001b695451767b580bb45753717498213c5ff3c41d63 \ + --hash=sha256:e0434aa22c821f44eeb4c650b81c7fbdd8c0122c6c4b5a576a76d5a35625ecd9 \ + --hash=sha256:e06a922a469cae9a57100864caf4f8a97a1026513793969f8ba5b63137a35d25 \ + --hash=sha256:e493962256a38f58283de033d8af176c5c91c084ea30f15834f7545451c42059 \ + --hash=sha256:ecb0019d44f4cdb50b676c5d0cb4b1eae8e15d1ed3d3e6639f986fc92b2ec52c \ + --hash=sha256:f935c4493eda9069851058fa0d9e39dbf6286be690066509305e52912714dbb2 # via # feast (setup.py) # accelerate @@ -3036,30 +3034,30 @@ openshift-client==1.0.18 \ --hash=sha256:be3979440cfd96788146a3a1650dabe939d4d516eea0b39f87e66d2ab39495b1 \ --hash=sha256:d8a84080307ccd9556f6c62a3707a3e6507baedee36fa425754f67db9ded528b # via codeflare-sdk -opentelemetry-api==1.39.0 \ - --hash=sha256:3c3b3ca5c5687b1b5b37e5c5027ff68eacea8675241b29f13110a8ffbb8f0459 \ - --hash=sha256:6130644268c5ac6bdffaf660ce878f10906b3e789f7e2daa5e169b047a2933b9 +opentelemetry-api==1.39.1 \ + --hash=sha256:2edd8463432a7f8443edce90972169b195e7d6a05500cd29e6d13898187c9950 \ + --hash=sha256:fbde8c80e1b937a2c61f20347e91c0c18a1940cecf012d62e65a7caf08967c9c # via # opentelemetry-exporter-prometheus # opentelemetry-sdk # opentelemetry-semantic-conventions -opentelemetry-exporter-prometheus==0.60b0 \ - --hash=sha256:4f616397040257fae4c5e5272b57b47c13372e3b7f0f2db2427fd4dbe69c60b5 \ - --hash=sha256:c6ae33e52cdd1dbfed1f7436935df94eb03c725b57322026d04e6fbc37108e6e +opentelemetry-exporter-prometheus==0.60b1 \ + --hash=sha256:49f59178de4f4590e3cef0b8b95cf6e071aae70e1f060566df5546fad773b8fd \ + --hash=sha256:a4011b46906323f71724649d301b4dc188aaa068852e814f4df38cc76eac616b # via ray opentelemetry-proto==1.27.0 \ --hash=sha256:33c9345d91dafd8a74fc3d7576c5a38f18b7fdf8d02983ac67485386132aedd6 \ --hash=sha256:b133873de5581a50063e1e4b29cdcf0c5e253a8c2d8dc1229add20a4c3830ace # via ray -opentelemetry-sdk==1.39.0 \ - --hash=sha256:90cfb07600dfc0d2de26120cebc0c8f27e69bf77cd80ef96645232372709a514 \ - --hash=sha256:c22204f12a0529e07aa4d985f1bca9d6b0e7b29fe7f03e923548ae52e0e15dde +opentelemetry-sdk==1.39.1 \ + --hash=sha256:4d5482c478513ecb0a5d938dcc61394e647066e0cc2676bee9f3af3f3f45f01c \ + --hash=sha256:cf4d4563caf7bff906c9f7967e2be22d0d6b349b908be0d90fb21c8e9c995cc6 # via # opentelemetry-exporter-prometheus # ray -opentelemetry-semantic-conventions==0.60b0 \ - --hash=sha256:069530852691136018087b52688857d97bba61cd641d0f8628d2d92788c4f78a \ - --hash=sha256:227d7aa73cbb8a2e418029d6b6465553aa01cf7e78ec9d0bc3255c7b3ac5bf8f +opentelemetry-semantic-conventions==0.60b1 \ + --hash=sha256:87c228b5a0669b748c76d76df6c364c369c28f1c465e50f661e39737e84bc953 \ + --hash=sha256:9fa8c8b0c110da289809292b0591220d3a7b53c1526a23021e977d68597893fb # via opentelemetry-sdk orjson==3.11.5 \ --hash=sha256:0522003e9f7fba91982e83a97fec0708f5a714c96c4209db7104e6b9d132f111 \ @@ -3593,9 +3591,9 @@ propcache==0.4.1 \ # via # aiohttp # yarl -proto-plus==1.26.1 \ - --hash=sha256:13285478c2dcf2abb829db158e1047e2f1e8d63a077d94263c2b88b043c75a66 \ - --hash=sha256:21a515a4c4c0088a773899e23c7bbade3d18f9c66c73edd4c7ee3816bc96a012 +proto-plus==1.27.0 \ + --hash=sha256:1baa7f81cf0f8acb8bc1f6d085008ba4171eaf669629d1b6d1673b21ed1c0a82 \ + --hash=sha256:873af56dd0d7e91836aee871e5799e1c6f1bda86ac9a983e0bb9f0c266a568c4 # via # google-api-core # google-cloud-bigquery-storage @@ -4272,9 +4270,9 @@ pyopenssl==25.1.0 \ --hash=sha256:2b11f239acc47ac2e5aca04fd7fa829800aeee22a2eb30d744572a157bd8a1ab \ --hash=sha256:8d031884482e0c67ee92bf9a4d8cceb08d92aba7136432ffb0703c5280fc205b # via snowflake-connector-python -pyparsing==3.2.5 \ - --hash=sha256:2df8d5b7b2802ef88e8d016a2eb9c7aeaa923529cd251ed0fe4608275d4105b6 \ - --hash=sha256:e38a4f02064cf41fe6593d328d0512495ad1f3d8a91c4f73fc401b3079a59a5e +pyparsing==3.3.1 \ + --hash=sha256:023b5e7e5520ad96642e2c6db4cb683d3970bd640cdf7115049a6e9c3682df82 \ + --hash=sha256:47fad0f17ac1e2cad3de3b458570fbc9b03560aa029ed5e16ee5554da9a2251c # via great-expectations pypdfium2==4.30.0 \ --hash=sha256:0dfa61421b5eb68e1188b0b2231e7ba35735aef2d867d86e48ee6cab6975195e \ @@ -4297,8 +4295,8 @@ pyproject-hooks==1.2.0 \ # via # build # pip-tools -pyspark==4.0.1 \ - --hash=sha256:9d1f22d994f60369228397e3479003ffe2dd736ba79165003246ff7bd48e2c73 +pyspark==4.1.0 \ + --hash=sha256:09c714ada88dfac3e1213c066617c6f473c1e22fbe279855028f77e12434147d # via feast (setup.py) pytest==7.4.4 \ --hash=sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280 \ @@ -4495,9 +4493,9 @@ python-keycloak==4.2.2 \ --hash=sha256:1d43a1accd4a038ed39317fcb3eb78211df6c75bbcbc4c482c99ee76327136f2 \ --hash=sha256:5137fd87c69031a372a578df96bae96b9aead2c9dad976613bc978e9e0246a1e # via feast (setup.py) -python-multipart==0.0.20 \ - --hash=sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104 \ - --hash=sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13 +python-multipart==0.0.21 \ + --hash=sha256:7137ebd4d3bbf70ea1622998f902b97a29434a9e8dc40eb203bbcf7c2a2cba92 \ + --hash=sha256:cf7a6713e01c87aa35387f4774e812c4361150938d20d232800f75ffcf266090 # via mcp python-pptx==1.0.2 \ --hash=sha256:160838e0b8565a8b1f67947675886e9fea18aa5e795db7ae531606d68e785cba \ @@ -4702,9 +4700,9 @@ pyzmq==27.1.0 \ # ipykernel # jupyter-client # jupyter-server -qdrant-client==1.16.1 \ - --hash=sha256:1eefe89f66e8a468ba0de1680e28b441e69825cfb62e8fb2e457c15e24ce5e3b \ - --hash=sha256:676c7c10fd4d4cb2981b8fcb32fd764f5f661b04b7334d024034d07212f971fd +qdrant-client==1.16.2 \ + --hash=sha256:442c7ef32ae0f005e88b5d3c0783c63d4912b97ae756eb5e052523be682f17d3 \ + --hash=sha256:ca4ef5f9be7b5eadeec89a085d96d5c723585a391eb8b2be8192919ab63185f0 # via feast (setup.py) ray[data, default]==2.52.1 \ --hash=sha256:08eb8f5fd55292ba6bee363a32491136a5e54af54e007f81e0603986fbea41a4 \ @@ -5061,26 +5059,26 @@ ruamel-yaml==0.17.17 \ --hash=sha256:9751de4cbb57d4bfbf8fc394e125ed4a2f170fbff3dc3d78abf50be85924f8be \ --hash=sha256:9af3ec5d7f8065582f3aa841305465025d0afd26c5fb54e15b964e11838fc74f # via great-expectations -ruff==0.14.8 \ - --hash=sha256:15f04cb45c051159baebb0f0037f404f1dc2f15a927418f29730f411a79bc4e7 \ - --hash=sha256:1af35c2d62633d4da0521178e8a2641c636d2a7153da0bac1b30cfd4ccd91344 \ - --hash=sha256:1d62cb310c4fbcb9ee4ac023fe17f984ae1e12b8a4a02e3d21489f9a2a5f730c \ - --hash=sha256:21d48fa744c9d1cb8d71eb0a740c4dd02751a5de9db9a730a8ef75ca34cf138e \ - --hash=sha256:25add4575ffecc53d60eed3f24b1e934493631b48ebbc6ebaf9d8517924aca4b \ - --hash=sha256:2c87e09b3cd9d126fc67a9ecd3b5b1d3ded2b9c7fce3f16e315346b9d05cfb52 \ - --hash=sha256:2e2fcbefe91f9fad0916850edf0854530c15bd1926b6b779de47e9ab619ea38f \ - --hash=sha256:4c943d847b7f02f7db4201a0600ea7d244d8a404fbb639b439e987edcf2baf9a \ - --hash=sha256:774ed0dd87d6ce925e3b8496feb3a00ac564bea52b9feb551ecd17e0a23d1eed \ - --hash=sha256:7aaf2974f378e6b01d1e257c6948207aec6a9b5ba53fab23d0182efb887a0e4a \ - --hash=sha256:8cdb162a7159f4ca36ce980a18c43d8f036966e7f73f866ac8f493b75e0c27e9 \ - --hash=sha256:965a582c93c63fe715fd3e3f8aa37c4b776777203d8e1d8aa3cc0c14424a4b99 \ - --hash=sha256:9eeb0b24242b5bbff3011409a739929f497f3fb5fe3b5698aba5e77e8c833097 \ - --hash=sha256:a9d70721066a296f45786ec31916dc287b44040f553da21564de0ab4d45a869b \ - --hash=sha256:cb6e8bf7b4f627548daa1b69283dac5a296bfe9ce856703b03130732e20ddfe2 \ - --hash=sha256:e5758ca513c43ad8a4ef13f0f081f80f08008f410790f3611a21a92421ab045b \ - --hash=sha256:ec071e9c82eca417f6111fd39f7043acb53cd3fde9b1f95bbed745962e345afb \ - --hash=sha256:eed28f6fafcc9591994c42254f5a5c5ca40e69a30721d2ab18bb0bb3baac3ab6 \ - --hash=sha256:f74f7ba163b6e85a8d81a590363bf71618847e5078d90827749bfda1d88c9cdf +ruff==0.14.10 \ + --hash=sha256:104c49fc7ab73f3f3a758039adea978869a918f31b73280db175b43a2d9b51d6 \ + --hash=sha256:1484983559f026788e3a5c07c81ef7d1e97c1c78ed03041a18f75df104c45405 \ + --hash=sha256:16a01dfb7b9e4eee556fbfd5392806b1b8550c9b4a9f6acd3dbe6812b193c70a \ + --hash=sha256:213db2b2e44be8625002dbea33bb9c60c66ea2c07c084a00d55732689d697a7f \ + --hash=sha256:466297bd73638c6bdf06485683e812db1c00c7ac96d4ddd0294a338c62fdc154 \ + --hash=sha256:4bb98fcbbc61725968893682fd4df8966a34611239c9fd07a1f6a07e7103d08e \ + --hash=sha256:59aabd2e2c4fd614d2862e7939c34a532c04f1084476d6833dddef4afab87e9f \ + --hash=sha256:5bcf45b681e9f1ee6445d317ce1fa9d6cba9a6049542d1c3d5b5958986be8830 \ + --hash=sha256:674f9be9372907f7257c51f1d4fc902cb7cf014b9980152b802794317941f08f \ + --hash=sha256:6987ebe0501ae4f4308d7d24e2d0fe3d7a98430f5adfd0f1fead050a740a3a77 \ + --hash=sha256:7165d31a925b7a294465fa81be8c12a0e9b60fb02bf177e79067c867e71f8b1f \ + --hash=sha256:7a3ce585f2ade3e1f29ec1b92df13e3da262178df8c8bdf876f48fa0e8316c49 \ + --hash=sha256:9a2e830f075d1a42cd28420d7809ace390832a490ed0966fe373ba288e77aaf4 \ + --hash=sha256:b914c40ab64865a17a9a5b67911d14df72346a634527240039eb3bd650e5979d \ + --hash=sha256:c561695675b972effb0c0a45db233f2c816ff3da8dcfbe7dfc7eed625f218935 \ + --hash=sha256:c70427132db492d25f982fffc8d6c7535cc2fd2c83fc8888f05caaa248521e60 \ + --hash=sha256:d85713d522348837ef9df8efca33ccb8bd6fcfc86a2cde3ccb4bc9d28a18003d \ + --hash=sha256:e51d046cf6dda98a4633b8a8a771451107413b0f07183b2bef03f075599e44e6 \ + --hash=sha256:f24b47993a9d8cb858429e97bdf8544c78029f09b520af615c1d261bf827001d # via feast (setup.py) s3transfer==0.13.1 \ --hash=sha256:a981aa7429be23fe6dfc13e80e4020057cbab622b08c0315288758d67cabc724 \ @@ -5115,29 +5113,56 @@ safetensors[torch]==0.7.0 \ # docling-ibm-models # timm # transformers -scikit-image==0.25.2 \ - --hash=sha256:24cc986e1f4187a12aa319f777b36008764e856e5013666a4a83f8df083c2641 \ - --hash=sha256:28182a9d3e2ce3c2e251383bdda68f8d88d9fff1a3ebe1eb61206595c9773341 \ - --hash=sha256:330d061bd107d12f8d68f1d611ae27b3b813b8cdb0300a71d07b1379178dd4cd \ - --hash=sha256:483bd8cc10c3d8a7a37fae36dfa5b21e239bd4ee121d91cad1f81bba10cfb0ed \ - --hash=sha256:5c311069899ce757d7dbf1d03e32acb38bb06153236ae77fcd820fd62044c063 \ - --hash=sha256:60516257c5a2d2f74387c502aa2f15a0ef3498fbeaa749f730ab18f0a40fd054 \ - --hash=sha256:64785a8acefee460ec49a354706db0b09d1f325674107d7fa3eadb663fb56d6f \ - --hash=sha256:7efa888130f6c548ec0439b1a7ed7295bc10105458a421e9bf739b457730b6da \ - --hash=sha256:8db8dd03663112783221bf01ccfc9512d1cc50ac9b5b0fe8f4023967564719fb \ - --hash=sha256:9d1e80107bcf2bf1291acfc0bf0425dceb8890abe9f38d8e94e23497cbf7ee0d \ - --hash=sha256:a17e17eb8562660cc0d31bb55643a4da996a81944b82c54805c91b3fe66f4824 \ - --hash=sha256:a4c464b90e978d137330be433df4e76d92ad3c5f46a22f159520ce0fdbea8a09 \ - --hash=sha256:b2cfc96b27afe9a05bc92f8c6235321d3a66499995675b27415e0d0c76625173 \ - --hash=sha256:b4f6b61fc2db6340696afe3db6b26e0356911529f5f6aee8c322aa5157490c9b \ - --hash=sha256:b8abd3c805ce6944b941cfed0406d88faeb19bab3ed3d4b50187af55cf24d147 \ - --hash=sha256:bdd2b8c1de0849964dbc54037f36b4e9420157e67e45a8709a80d727f52c7da2 \ - --hash=sha256:be455aa7039a6afa54e84f9e38293733a2622b8c2fb3362b822d459cc5605e99 \ - --hash=sha256:d3278f586793176599df6a4cf48cb6beadae35c31e58dc01a98023af3dc31c78 \ - --hash=sha256:d989d64ff92e0c6c0f2018c7495a5b20e2451839299a018e0e5108b2680f71e0 \ - --hash=sha256:dd8011efe69c3641920614d550f5505f83658fe33581e49bed86feab43a180fc \ - --hash=sha256:e5a37e6cd4d0c018a7a55b9d601357e3382826d3888c10d0213fc63bff977dde \ - --hash=sha256:f4bac9196fb80d37567316581c6060763b0f4893d3aca34a9ede3825bc035b17 +scikit-image==0.26.0 \ + --hash=sha256:0608aa4a9ec39e0843de10d60edb2785a30c1c47819b67866dd223ebd149acaf \ + --hash=sha256:0660b83968c15293fd9135e8d860053ee19500d52bf55ca4fb09de595a1af650 \ + --hash=sha256:09bad6a5d5949c7896c8347424c4cca899f1d11668030e5548813ab9c2865dcb \ + --hash=sha256:0baa0108d2d027f34d748e84e592b78acc23e965a5de0e4bb03cf371de5c0581 \ + --hash=sha256:163e9afb5b879562b9aeda0dd45208a35316f26cc7a3aed54fd601604e5cf46f \ + --hash=sha256:20ef4a155e2e78b8ab973998e04d8a361d49d719e65412405f4dadd9155a61d9 \ + --hash=sha256:21a818ee6ca2f2131b9e04d8eb7637b5c18773ebe7b399ad23dcc5afaa226d2d \ + --hash=sha256:27d58bc8b2acd351f972c6508c1b557cfed80299826080a4d803dd29c51b707e \ + --hash=sha256:2c1e7bd342f43e7a97e571b3f03ba4c1293ea1a35c3f13f41efdc8a81c1dc8f2 \ + --hash=sha256:3268f13310e6857508bd87202620df996199a016a1d281b309441d227c822394 \ + --hash=sha256:3409e89d66eff5734cd2b672d1c48d2759360057e714e1d92a11df82c87cba37 \ + --hash=sha256:3f5bf622d7c0435884e1e141ebbe4b2804e16b2dd23ae4c6183e2ea99233be70 \ + --hash=sha256:4c717490cec9e276afb0438dd165b7c3072d6c416709cc0f9f5a4c1070d23a44 \ + --hash=sha256:4d57e39ef67a95d26860c8caf9b14b8fb130f83b34c6656a77f191fa6d1d04d8 \ + --hash=sha256:52c496f75a7e45844d951557f13c08c81487c6a1da2e3c9c8a39fcde958e02cc \ + --hash=sha256:6381edf972b32e4f54085449afde64365a57316637496c1325a736987083e2ab \ + --hash=sha256:63af3d3a26125f796f01052052f86806da5b5e54c6abef152edb752683075a9c \ + --hash=sha256:6caec76e16c970c528d15d1c757363334d5cb3069f9cea93d2bead31820511f3 \ + --hash=sha256:724f79fd9b6cb6f4a37864fe09f81f9f5d5b9646b6868109e1b100d1a7019e59 \ + --hash=sha256:74aa5518ccea28121f57a95374581d3b979839adc25bb03f289b1bc9b99c58af \ + --hash=sha256:7af7aa331c6846bd03fa28b164c18d0c3fd419dbb888fb05e958ac4257a78fdd \ + --hash=sha256:7df650e79031634ac90b11e64a9eedaf5a5e06fcd09bcd03a34be01745744466 \ + --hash=sha256:915bb3ba66455cf8adac00dc8fdf18a4cd29656aec7ddd38cb4dda90289a6f21 \ + --hash=sha256:92242351bccf391fc5df2d1529d15470019496d2498d615beb68da85fe7fdf37 \ + --hash=sha256:9490360c8d3f9a7e85c8de87daf7c0c66507960cf4947bb9610d1751928721c7 \ + --hash=sha256:98329aab3bc87db352b9887f64ce8cdb8e75f7c2daa19927f2e121b797b678d5 \ + --hash=sha256:9ea6207d9e9d21c3f464efe733121c0504e494dbdc7728649ff3e23c3c5a4953 \ + --hash=sha256:9eefb4adad066da408a7601c4c24b07af3b472d90e08c3e7483d4e9e829d8c49 \ + --hash=sha256:a07200fe09b9d99fcdab959859fe0f7db8df6333d6204344425d476850ce3604 \ + --hash=sha256:a2d211bc355f59725efdcae699b93b30348a19416cc9e017f7b2fb599faf7219 \ + --hash=sha256:a2e852eccf41d2d322b8e60144e124802873a92b8d43a6f96331aa42888491c7 \ + --hash=sha256:abed017474593cd3056ae0fe948d07d0747b27a085e92df5474f4955dd65aec0 \ + --hash=sha256:ac529eb9dbd5954f9aaa2e3fe9a3fd9661bfe24e134c688587d811a0233127f1 \ + --hash=sha256:aeb14db1ed09ad4bee4ceb9e635547a8d5f3549be67fc6c768c7f923e027e6cd \ + --hash=sha256:b1ede33a0fb3731457eaf53af6361e73dd510f449dac437ab54573b26788baf0 \ + --hash=sha256:b36ab5e778bf50af5ff386c3ac508027dc3aaeccf2161bdf96bde6848f44d21b \ + --hash=sha256:b702c3bb115e1dcf4abf5297429b5c90f2189655888cbed14921f3d26f81d3a4 \ + --hash=sha256:b8d14d3181c21c11170477a42542c1addc7072a90b986675a71266ad17abc37f \ + --hash=sha256:c6624a76c6085218248154cc7e1500e6b488edcd9499004dd0d35040607d7505 \ + --hash=sha256:c9087cf7d0e7f33ab5c46d2068d86d785e70b05400a891f73a13400f1e1faf6a \ + --hash=sha256:cde0bbd57e6795eba83cb10f71a677f7239271121dc950bc060482834a668ad1 \ + --hash=sha256:ce00600cd70d4562ed59f80523e18cdcc1fae0e10676498a01f73c255774aefd \ + --hash=sha256:cefd85033e66d4ea35b525bb0937d7f42d4cdcfed2d1888e1570d5ce450d3932 \ + --hash=sha256:d454b93a6fa770ac5ae2d33570f8e7a321bb80d29511ce4b6b78058ebe176e8c \ + --hash=sha256:d5c244656de905e195a904e36dbc18585e06ecf67d90f0482cbde63d7f9ad59d \ + --hash=sha256:ede4d6d255cc5da9faeb2f9ba7fedbc990abbc652db429f40a16b22e770bb578 \ + --hash=sha256:f5f970ab04efad85c24714321fcc91613fcb64ef2a892a13167df2f3e59199fa \ + --hash=sha256:f775f0e420faac9c2aa6757135f4eb468fb7b70e0b67fa77a5e79be3c30ee331 \ + --hash=sha256:fac96a1f9b06cd771cbbb3cd96c5332f36d4efd839b1d8b053f79e5887acde62 # via easyocr scikit-learn==1.8.0 \ --hash=sha256:00d6f1d66fbcf4eba6e356e1420d33cc06c70a45bb1363cd6f6a8e4ebbbdece2 \ @@ -5398,9 +5423,9 @@ sortedcontainers==2.4.0 \ --hash=sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88 \ --hash=sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0 # via snowflake-connector-python -soupsieve==2.8 \ - --hash=sha256:0cc76456a30e20f5d7f2e14a98a4ae2ee4e5abdc7c5ea0aafe795f344bc7984c \ - --hash=sha256:e2dd4a40a628cb5f28f6d4b0db8800b8f581b65bb380b97de22ba5ca8d72572f +soupsieve==2.8.1 \ + --hash=sha256:4cf733bc50fa805f5df4b8ef4740fc0e0fa6218cf3006269afd3f9d6d80fd350 \ + --hash=sha256:a11fe2a6f3d76ab3cf2de04eb339c1be5b506a8a47f2ceb6d139803177f85434 # via beautifulsoup4 sphinx==6.2.1 \ --hash=sha256:6d56a34697bb749ffa0152feafc4b19836c755d90a7c59b72bc7dfd371b9cc6b \ @@ -5442,12 +5467,14 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:1d8b4a7a8c9b537509d56d5cd10ecdcfbb95912d72480c8861524efecc6a3fff \ --hash=sha256:215f0528b914e5c75ef2559f69dca86878a3beeb0c1be7279d77f18e8d180ed4 \ --hash=sha256:2c0b74aa79e2deade948fe8593654c8ef4228c44ba862bb7c9585c8e0db90f33 \ + --hash=sha256:2e90a344c644a4fa871eb01809c32096487928bd2038bf10f3e4515cb688cc56 \ --hash=sha256:3c5f76216e7b85770d5bb5130ddd11ee89f4d52b11783674a662c7dd57018177 \ --hash=sha256:470daea2c1ce73910f08caf10575676a37159a6d16c4da33d0033546bddebc9b \ --hash=sha256:4748601c8ea959e37e03d13dcda4a44837afcd1b21338e637f7c935b8da06177 \ --hash=sha256:4b6bec67ca45bc166c8729910bd2a87f1c0407ee955df110d78948f5b5827e8a \ --hash=sha256:5225a288e4c8cc2308dbdd874edad6e7d0fd38eac1e9e5f23503425c8eee20d0 \ --hash=sha256:56ead1f8dfb91a54a28cd1d072c74b3d635bcffbd25e50786533b822d4f2cde2 \ + --hash=sha256:5964f832431b7cdfaaa22a660b4c7eb1dfcd6ed41375f67fd3e3440fd95cb3cc \ --hash=sha256:59a8b8bd9c6bedf81ad07c8bd5543eedca55fe9b8780b2b628d495ba55f8db1e \ --hash=sha256:672c45cae53ba88e0dad74b9027dddd09ef6f441e927786b05bec75d949fbb2e \ --hash=sha256:6d0beadc2535157070c9c17ecf25ecec31e13c229a8f69196d7590bde8082bf1 \ @@ -5466,7 +5493,9 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:b8c8b41b97fba5f62349aa285654230296829672fc9939cd7f35aab246d1c08b \ --hash=sha256:ba547ac0b361ab4f1608afbc8432db669bd0819b3e12e29fb5fa9529a8bba81d \ --hash=sha256:c1c2091b1489435ff85728fafeb990f073e64f6f5e81d5cd53059773e8521eb6 \ + --hash=sha256:c64772786d9eee72d4d3784c28f0a636af5b0a29f3fe26ff11f55efe90c0bd85 \ --hash=sha256:cd337d3526ec5298f67d6a30bbbe4ed7e5e68862f0bf6dd21d289f8d37b7d60b \ + --hash=sha256:d29b2b99d527dbc66dd87c3c3248a5dd789d974a507f4653c969999fc7c1191b \ --hash=sha256:d2c3684fca8a05f0ac1d9a21c1f4a266983a7ea9180efb80ffeb03861ecd01a0 \ --hash=sha256:d62e47f5d8a50099b17e2bfc1b0c7d7ecd8ba6b46b1507b58cc4f05eefc3bb1c \ --hash=sha256:d8a2ca754e5415cde2b656c27900b19d50ba076aa05ce66e2207623d3fe41f5a \ @@ -5560,9 +5589,9 @@ sqlparams==6.2.0 \ --hash=sha256:3744a2ad16f71293db6505b21fd5229b4757489a9b09f3553656a1ae97ba7ca5 \ --hash=sha256:63b32ed9051bdc52e7e8b38bc4f78aed51796cdd9135e730f4c6a7db1048dedf # via singlestoredb -sse-starlette==3.0.3 \ - --hash=sha256:88cfb08747e16200ea990c8ca876b03910a23b547ab3bd764c0d8eb81019b971 \ - --hash=sha256:af5bf5a6f3933df1d9c7f8539633dc8444ca6a97ab2e2a7cd3b6e431ac03a431 +sse-starlette==3.1.1 \ + --hash=sha256:bb38f71ae74cfd86b529907a9fda5632195dfa6ae120f214ea4c890c7ee9d436 \ + --hash=sha256:bffa531420c1793ab224f63648c059bcadc412bf9fdb1301ac8de1cf9a67b7fb # via mcp stack-data==0.6.3 \ --hash=sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9 \ @@ -5574,6 +5603,7 @@ starlette==0.50.0 \ # via # fastapi # mcp + # sse-starlette substrait==0.24.2 \ --hash=sha256:743cc352e96b0927b2cd37cd5a8fdac0a96a68df9600bd104fc36aebd222a836 \ --hash=sha256:d1d475833566fa9d67eed3273456883c0568486ccced92b524b31709d2817e19 @@ -5672,9 +5702,9 @@ thriftpy2==0.5.3 \ --hash=sha256:fd4c6131ca6e919f03263cc83b713f1797bc20126a858da8518ed49b3e32c334 \ --hash=sha256:fdc5676b52fa6a3009d205360eb9ba257b8b4813883ed52797a20838bcc45dde # via happybase -tifffile==2025.10.16 \ - --hash=sha256:41463d979c1c262b0a5cdef2a7f95f0388a072ad82d899458b154a48609d759c \ - --hash=sha256:425179ec7837ac0e07bc95d2ea5bea9b179ce854967c12ba07fc3f093e58efc1 +tifffile==2025.12.20 \ + --hash=sha256:bc0345a20675149353cfcb3f1c48d0a3654231ee26bd46beebaab4d2168feeb6 \ + --hash=sha256:cb8a4fee327d15b3e3eeac80bbdd8a53b323c80473330bcfb99418ee4c1c827f # via scikit-image timm==1.0.22 \ --hash=sha256:14fd74bcc17db3856b1a47d26fb305576c98579ab9d02b36714a5e6b25cde422 \ @@ -5836,19 +5866,19 @@ torchvision==0.24.1 \ # docling-ibm-models # easyocr # timm -tornado==6.5.2 \ - --hash=sha256:06ceb1300fd70cb20e43b1ad8aaee0266e69e7ced38fa910ad2e03285009ce7c \ - --hash=sha256:2436822940d37cde62771cff8774f4f00b3c8024fe482e16ca8387b8a2724db6 \ - --hash=sha256:583a52c7aa94ee046854ba81d9ebb6c81ec0fd30386d96f7640c96dad45a03ef \ - --hash=sha256:74db443e0f5251be86cbf37929f84d8c20c27a355dd452a5cfa2aada0d001ec4 \ - --hash=sha256:ab53c8f9a0fa351e2c0741284e06c7a45da86afb544133201c5cc8578eb076a0 \ - --hash=sha256:b0fe179f28d597deab2842b86ed4060deec7388f1fd9c1b4a41adf8af058907e \ - --hash=sha256:b186e85d1e3536d69583d2298423744740986018e393d0321df7340e71898882 \ - --hash=sha256:b5e735ab2889d7ed33b32a459cac490eda71a1ba6857b0118de476ab6c366c04 \ - --hash=sha256:c6f29e94d9b37a95013bb669616352ddb82e3bfe8326fccee50583caebc8a5f0 \ - --hash=sha256:d6c33dc3672e3a1f3618eb63b7ef4683a7688e7b9e6e8f0d9aa5726360a004af \ - --hash=sha256:e56a5af51cc30dd2cae649429af65ca2f6571da29504a07995175df14c18f35f \ - --hash=sha256:e792706668c87709709c18b353da1f7662317b563ff69f00bab83595940c7108 +tornado==6.5.4 \ + --hash=sha256:053e6e16701eb6cbe641f308f4c1a9541f91b6261991160391bfc342e8a551a1 \ + --hash=sha256:1768110f2411d5cd281bac0a090f707223ce77fd110424361092859e089b38d1 \ + --hash=sha256:2d50f63dda1d2cac3ae1fa23d254e16b5e38153758470e9956cbc3d813d40843 \ + --hash=sha256:50ff0a58b0dc97939d29da29cd624da010e7f804746621c78d14b80238669335 \ + --hash=sha256:6076d5dda368c9328ff41ab5d9dd3608e695e8225d1cd0fd1e006f05da3635a8 \ + --hash=sha256:6eb82872335a53dd063a4f10917b3efd28270b56a33db69009606a0312660a6f \ + --hash=sha256:9c86b1643b33a4cd415f8d0fe53045f913bf07b4a3ef646b735a6a86047dda84 \ + --hash=sha256:a22fa9047405d03260b483980635f0b041989d8bcc9a313f8fe18b411d84b1d7 \ + --hash=sha256:d1cf66105dc6acb5af613c054955b8137e34a03698aa53272dbda4afe252be17 \ + --hash=sha256:d6241c1a16b1c9e4cc28148b1cda97dd1c6cb4fb7068ac1bedc610768dff0ba9 \ + --hash=sha256:e5fb5e04efa54cf0baabdd10061eb4148e0be137166146fff835745f59ab9f7f \ + --hash=sha256:fa07d31e0cd85c60713f2b995da613588aa03e1303d75705dca6af8babc18ddc # via # ipykernel # jupyter-client @@ -6008,9 +6038,9 @@ types-protobuf==3.19.22 \ # via # feast (setup.py) # mypy-protobuf -types-pymysql==1.1.0.20250916 \ - --hash=sha256:873eb9836bb5e3de4368cc7010ca72775f86e9692a5c7810f8c7f48da082e55b \ - --hash=sha256:98d75731795fcc06723a192786662bdfa760e1e00f22809c104fbb47bac5e29b +types-pymysql==1.1.0.20251220 \ + --hash=sha256:ae1c3df32a777489431e2e9963880a0df48f6591e0aa2fd3a6fabd9dee6eca54 \ + --hash=sha256:fa1082af7dea6c53b6caa5784241924b1296ea3a8d3bd060417352c5e10c0618 # via feast (setup.py) types-pyopenssl==24.1.0.20240722 \ --hash=sha256:47913b4678a01d879f503a12044468221ed8576263c1540dcb0484ca21b08c39 \ @@ -6036,9 +6066,9 @@ types-requests==2.30.0.0 \ --hash=sha256:c6cf08e120ca9f0dc4fa4e32c3f953c3fba222bcc1db6b97695bce8da1ba9864 \ --hash=sha256:dec781054324a70ba64430ae9e62e7e9c8e4618c185a5cb3f87a6738251b5a31 # via feast (setup.py) -types-setuptools==80.9.0.20250822 \ - --hash=sha256:070ea7716968ec67a84c7f7768d9952ff24d28b65b6594797a464f1b3066f965 \ - --hash=sha256:53bf881cb9d7e46ed12c76ef76c0aaf28cfe6211d3fab12e0b83620b1a8642c3 +types-setuptools==80.9.0.20251223 \ + --hash=sha256:1b36db79d724c2287d83dc052cf887b47c0da6a2fff044378be0b019545f56e6 \ + --hash=sha256:d3411059ae2f5f03985217d86ac6084efea2c9e9cacd5f0869ef950f308169b2 # via # feast (setup.py) # types-cffi @@ -6097,9 +6127,9 @@ typing-inspection==0.4.2 \ # mcp # pydantic # pydantic-settings -tzdata==2025.2 \ - --hash=sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8 \ - --hash=sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9 +tzdata==2025.3 \ + --hash=sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1 \ + --hash=sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7 # via # arrow # pandas @@ -6199,9 +6229,9 @@ uri-template==1.3.0 \ --hash=sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7 \ --hash=sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363 # via jsonschema -urllib3==2.6.1 \ - --hash=sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f \ - --hash=sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b +urllib3==2.6.2 \ + --hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \ + --hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd # via # feast (setup.py) # botocore diff --git a/sdk/python/requirements/py3.11-minimal-requirements.txt b/sdk/python/requirements/py3.11-minimal-requirements.txt index eafab51c27d..93613cb6e50 100644 --- a/sdk/python/requirements/py3.11-minimal-requirements.txt +++ b/sdk/python/requirements/py3.11-minimal-requirements.txt @@ -174,9 +174,9 @@ attrs==25.4.0 \ # aiohttp # jsonschema # referencing -bigtree==1.0.3 \ - --hash=sha256:18402a143130868b17ca84a74ca263e6f32f046d6978c30d244f8b94c4a01227 \ - --hash=sha256:99a18b6937a9b4ab8e560fec5c0720e10ebf37f84e44f9b5f47702c2e84c9aaa +bigtree==1.0.4 \ + --hash=sha256:e4af0c5bc0d2cd72e18442965e4509f642b16a0de65db6d0ec116e30f959010c \ + --hash=sha256:f58a3238bb9b1142d893c9de4921bfd18d435427c75e0c168dd580eabf6dc7fd # via feast (setup.py) boto3==1.38.27 \ --hash=sha256:94bd7fdd92d5701b362d4df100d21e28f8307a67ff56b6a8b0398119cf22f859 \ @@ -192,9 +192,9 @@ botocore==1.38.46 \ # boto3 # s3transfer # snowflake-connector-python -cachetools==6.2.2 \ - --hash=sha256:6c09c98183bf58560c97b2abfcedcbaf6a896a490f534b031b661d3723b45ace \ - --hash=sha256:8e6d266b25e539df852251cfd6f990b4bc3a141db73b939058d809ebd2590fc6 +cachetools==6.2.4 \ + --hash=sha256:69a7a52634fed8b8bf6e24a050fb60bff1c9bd8f6d24572b99c32d4e71e62a51 \ + --hash=sha256:82c5c05585e70b6ba2d3ae09ea60b79548872185d2f24ae1f2709d37299fd607 # via google-auth certifi==2025.11.12 \ --hash=sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b \ @@ -469,13 +469,13 @@ cryptography==46.0.0 \ # pyjwt # pyopenssl # snowflake-connector-python -dask[dataframe]==2025.11.0 \ - --hash=sha256:08c35a8146c05c93b34f83cf651009129c42ee71762da7ca452fb7308641c2b8 \ - --hash=sha256:23d59e624b80ee05b7cc8df858682cca58262c4c3b197ccf61da0f6543c8f7c3 +dask[dataframe]==2025.12.0 \ + --hash=sha256:4213ce9c5d51d6d89337cff69de35d902aa0bf6abdb8a25c942a4d0281f3a598 \ + --hash=sha256:8d478f2aabd025e2453cf733ad64559de90cf328c20209e4574e9543707c3e1b # via feast (setup.py) -db-dtypes==1.4.4 \ - --hash=sha256:26f53db5df1acd746b88c5647913a1b20f731c0af1b11abcb6bec5365f31098a \ - --hash=sha256:32c13039982656a8598a0835f25f0e07e34c9a423e471ee60c2553240b7fcf1e +db-dtypes==1.5.0 \ + --hash=sha256:abdbb2e4eb965800ed6f98af0c5c1cafff9063ace09114be2d26a7f046be2c8a \ + --hash=sha256:ad9e94243f53e104bc77dbf9ae44b580d83a770d3694483aba59c9767966daa5 # via # google-cloud-bigquery # pandas-gbq @@ -541,9 +541,9 @@ durationpy==0.10 \ --hash=sha256:1fa6893409a6e739c9c72334fc65cca1f355dbdd93405d30f726deb5bde42fba \ --hash=sha256:3b41e1b601234296b4fb368338fdcd3e13e0b4fb5b67345948f4f2bf9868b286 # via kubernetes -fastapi==0.124.0 \ - --hash=sha256:260cd178ad75e6d259991f2fd9b0fee924b224850079df576a3ba604ce58f4e6 \ - --hash=sha256:91596bdc6dde303c318f06e8d2bc75eafb341fc793a0c9c92c0bc1db1ac52480 +fastapi==0.128.0 \ + --hash=sha256:1cc179e1cef10a6be60ffe429f79b829dce99d8de32d7acb7e6c8dfdf7f2645a \ + --hash=sha256:aebd93f9716ee3b4f4fcfe13ffb7cf308d99c9f3ab5622d8877441072561582d # via # feast (setup.py) # fastapi-mcp @@ -551,9 +551,9 @@ fastapi-mcp==0.4.0 \ --hash=sha256:d4a3fe7966af24d44e4b412720561c95eb12bed999a4443a88221834b3b15aec \ --hash=sha256:d4ca9410996f4c7b8ea0d7b20fdf79878dc359ebf89cbf3b222e0b675a55097d # via feast (setup.py) -filelock==3.20.0 \ - --hash=sha256:339b4732ffda5cd79b13f4e2711a31b0365ce445d95d243bb996273d072546a2 \ - --hash=sha256:711e943b4ec6be42e1d4e6690b48dc175c822967466bb31c0c293f34334c13f4 +filelock==3.20.1 \ + --hash=sha256:15d9e9a67306188a44baa72f569d2bfd803076269365fdea0934385da4dc361a \ + --hash=sha256:b8360948b351b80f420878d8516519a2204b07aefcdcfd24912a5d33127f188c # via snowflake-connector-python frozenlist==1.8.0 \ --hash=sha256:0325024fe97f94c41c08872db482cf8ac4800d80e79222c6b0b7b162d5b13686 \ @@ -707,9 +707,9 @@ google-api-core[grpc]==2.28.1 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.43.0 \ - --hash=sha256:88228eee5fc21b62a1b5fe773ca15e67778cb07dc8363adcb4a8827b52d81483 \ - --hash=sha256:af628ba6fa493f75c7e9dbe9373d148ca9f4399b5ea29976519e0a3848eddd16 +google-auth==2.45.0 \ + --hash=sha256:82344e86dc00410ef5382d99be677c6043d72e502b625aa4f4afa0bdacca0f36 \ + --hash=sha256:90d3f41b6b72ea72dd9811e765699ee491ab24139f34ebf1ca2b9cc0c38708f3 # via # google-api-core # google-auth-oauthlib @@ -728,19 +728,19 @@ google-auth-oauthlib==1.2.2 \ # via # pandas-gbq # pydata-google-auth -google-cloud-bigquery[pandas]==3.38.0 \ - --hash=sha256:8afcb7116f5eac849097a344eb8bfda78b7cfaae128e60e019193dd483873520 \ - --hash=sha256:e06e93ff7b245b239945ef59cb59616057598d369edac457ebf292bd61984da6 +google-cloud-bigquery[pandas]==3.39.0 \ + --hash=sha256:cb375e1d63dea9bd5bf735e66024338f294159d43afdf63e1d023f5fcbbf55ea \ + --hash=sha256:dc7a64921465859105461b43c42562e38e797d7a73feb72b3cfc4865b7b1c5ef # via # feast (setup.py) # pandas-gbq -google-cloud-bigquery-storage==2.35.0 \ - --hash=sha256:c9bab6b8e41d6cb9806e589e65f320c89ada84f466e61566b7208d87924c1430 \ - --hash=sha256:f2e3a08882155de1e9ec53c71c5784eb1f25dc6514c535f5796c3c9eeac17d17 +google-cloud-bigquery-storage==2.36.0 \ + --hash=sha256:1769e568070db672302771d2aec18341de10712aa9c4a8c549f417503e0149f0 \ + --hash=sha256:d3c1ce9d2d3a4d7116259889dcbe3c7c70506f71f6ce6bbe54aa0a68bbba8f8f # via feast (setup.py) -google-cloud-bigtable==2.34.0 \ - --hash=sha256:773258b00cd3f9a3a35639cc38bd711f4f1418aaa0c8d70cb028978ed98dc2c2 \ - --hash=sha256:a4a8db4903840cd3f89fb19c060eea2e7c09c1265cb0538cfc11288dbc6000e4 +google-cloud-bigtable==2.35.0 \ + --hash=sha256:f355bfce1f239453ec2bb3839b0f4f9937cf34ef06ef29e1ca63d58fd38d0c50 \ + --hash=sha256:f5699012c5fea4bd4bdf7e80e5e3a812a847eb8f41bf8dc2f43095d6d876b83b # via feast (setup.py) google-cloud-core==2.5.0 \ --hash=sha256:67d977b41ae6c7211ee830c7912e41003ea8194bff15ae7d72fd6f51e57acabc \ @@ -750,49 +750,48 @@ google-cloud-core==2.5.0 \ # google-cloud-bigtable # google-cloud-datastore # google-cloud-storage -google-cloud-datastore==2.21.0 \ - --hash=sha256:eee454dd4a55f5b327f9f344928ff1a09a6f77c23d5e3d908ad31a13cc2f4073 \ - --hash=sha256:f303f27cd1983383f20bd227019cd8a7897419e0ec6b878367c58c66245f9d9b +google-cloud-datastore==2.23.0 \ + --hash=sha256:24a1b1d29b902148fe41b109699f76fd3aa60591e9d547c0f8b87d7bf9ff213f \ + --hash=sha256:80049883a4ae928fdcc661ba6803ec267665dc0e6f3ce2da91441079a6bb6387 # via feast (setup.py) google-cloud-storage==2.19.0 \ --hash=sha256:aeb971b5c29cf8ab98445082cbfe7b161a1f48ed275822f59ed3f1524ea54fba \ --hash=sha256:cd05e9e7191ba6cb68934d8eb76054d9be4562aa89dbc4236feee4d7d51342b2 # via feast (setup.py) -google-crc32c==1.7.1 \ - --hash=sha256:0f99eaa09a9a7e642a61e06742856eec8b19fc0037832e03f941fe7cf0c8e4db \ - --hash=sha256:19eafa0e4af11b0a4eb3974483d55d2d77ad1911e6cf6f832e1574f6781fd337 \ - --hash=sha256:1c67ca0a1f5b56162951a9dae987988679a7db682d6f97ce0f6381ebf0fbea4c \ - --hash=sha256:1f2b3522222746fff0e04a9bd0a23ea003ba3cccc8cf21385c564deb1f223242 \ - --hash=sha256:22beacf83baaf59f9d3ab2bbb4db0fb018da8e5aebdce07ef9f09fce8220285e \ - --hash=sha256:2bff2305f98846f3e825dbeec9ee406f89da7962accdb29356e4eadc251bd472 \ - --hash=sha256:2d73a68a653c57281401871dd4aeebbb6af3191dcac751a76ce430df4d403194 \ - --hash=sha256:32d1da0d74ec5634a05f53ef7df18fc646666a25efaaca9fc7dcfd4caf1d98c3 \ - --hash=sha256:3bda0fcb632d390e3ea8b6b07bf6b4f4a66c9d02dcd6fbf7ba00a197c143f582 \ - --hash=sha256:6335de12921f06e1f774d0dd1fbea6bf610abe0887a1638f64d694013138be5d \ - --hash=sha256:6b211ddaf20f7ebeec5c333448582c224a7c90a9d98826fbab82c0ddc11348e6 \ - --hash=sha256:6efb97eb4369d52593ad6f75e7e10d053cf00c48983f7a973105bc70b0ac4d82 \ - --hash=sha256:6fbab4b935989e2c3610371963ba1b86afb09537fd0c633049be82afe153ac06 \ - --hash=sha256:713121af19f1a617054c41f952294764e0c5443d5a5d9034b2cd60f5dd7e0349 \ - --hash=sha256:754561c6c66e89d55754106739e22fdaa93fafa8da7221b29c8b8e8270c6ec8a \ - --hash=sha256:7cc81b3a2fbd932a4313eb53cc7d9dde424088ca3a0337160f35d91826880c1d \ - --hash=sha256:85fef7fae11494e747c9fd1359a527e5970fc9603c90764843caabd3a16a0a48 \ - --hash=sha256:905a385140bf492ac300026717af339790921f411c0dfd9aa5a9e69a08ed32eb \ - --hash=sha256:9fc196f0b8d8bd2789352c6a522db03f89e83a0ed6b64315923c396d7a932315 \ - --hash=sha256:a8e9afc74168b0b2232fb32dd202c93e46b7d5e4bf03e66ba5dc273bb3559589 \ - --hash=sha256:b07d48faf8292b4db7c3d64ab86f950c2e94e93a11fd47271c28ba458e4a0d76 \ - --hash=sha256:b6d86616faaea68101195c6bdc40c494e4d76f41e07a37ffdef270879c15fb65 \ - --hash=sha256:b7491bdc0c7564fcf48c0179d2048ab2f7c7ba36b84ccd3a3e1c3f7a72d3bba6 \ - --hash=sha256:bb5e35dcd8552f76eed9461a23de1030920a3c953c1982f324be8f97946e7127 \ - --hash=sha256:d68e17bad8f7dd9a49181a1f5a8f4b251c6dbc8cc96fb79f1d321dfd57d66f53 \ - --hash=sha256:dcdf5a64adb747610140572ed18d011896e3b9ae5195f2514b7ff678c80f1603 \ - --hash=sha256:df8b38bdaf1629d62d51be8bdd04888f37c451564c2042d36e5812da9eff3c35 \ - --hash=sha256:e10554d4abc5238823112c2ad7e4560f96c7bf3820b202660373d769d9e6e4c9 \ - --hash=sha256:e42e20a83a29aa2709a0cf271c7f8aefaa23b7ab52e53b322585297bb94d4638 \ - --hash=sha256:ed66cbe1ed9cbaaad9392b5259b3eba4a9e565420d734e6238813c428c3336c9 \ - --hash=sha256:ee6547b657621b6cbed3562ea7826c3e11cab01cd33b74e1f677690652883e77 \ - --hash=sha256:f2226b6a8da04f1d9e61d3e357f2460b9551c5e6950071437e122c958a18ae14 \ - --hash=sha256:fa8136cc14dd27f34a3221c0f16fd42d8a40e4778273e61a3c19aedaa44daf6b \ - --hash=sha256:fc5319db92daa516b653600794d5b9f9439a9a121f3e162f94b0e1891c7933cb +google-crc32c==1.8.0 \ + --hash=sha256:014a7e68d623e9a4222d663931febc3033c5c7c9730785727de2a81f87d5bab8 \ + --hash=sha256:01f126a5cfddc378290de52095e2c7052be2ba7656a9f0caf4bcd1bfb1833f8a \ + --hash=sha256:0470b8c3d73b5f4e3300165498e4cf25221c7eb37f1159e221d1825b6df8a7ff \ + --hash=sha256:119fcd90c57c89f30040b47c211acee231b25a45d225e3225294386f5d258288 \ + --hash=sha256:14f87e04d613dfa218d6135e81b78272c3b904e2a7053b841481b38a7d901411 \ + --hash=sha256:17446feb05abddc187e5441a45971b8394ea4c1b6efd88ab0af393fd9e0a156a \ + --hash=sha256:19b40d637a54cb71e0829179f6cb41835f0fbd9e8eb60552152a8b52c36cbe15 \ + --hash=sha256:2a3dc3318507de089c5384cc74d54318401410f82aa65b2d9cdde9d297aca7cb \ + --hash=sha256:3b9776774b24ba76831609ffbabce8cdf6fa2bd5e9df37b594221c7e333a81fa \ + --hash=sha256:3cc0c8912038065eafa603b238abf252e204accab2a704c63b9e14837a854962 \ + --hash=sha256:3d488e98b18809f5e322978d4506373599c0c13e6c5ad13e53bb44758e18d215 \ + --hash=sha256:3ebb04528e83b2634857f43f9bb8ef5b2bbe7f10f140daeb01b58f972d04736b \ + --hash=sha256:450dc98429d3e33ed2926fc99ee81001928d63460f8538f21a5d6060912a8e27 \ + --hash=sha256:4b8286b659c1335172e39563ab0a768b8015e88e08329fa5321f774275fc3113 \ + --hash=sha256:57a50a9035b75643996fbf224d6661e386c7162d1dfdab9bc4ca790947d1007f \ + --hash=sha256:61f58b28e0b21fcb249a8247ad0db2e64114e201e2e9b4200af020f3b6242c9f \ + --hash=sha256:6f35aaffc8ccd81ba3162443fabb920e65b1f20ab1952a31b13173a67811467d \ + --hash=sha256:71734788a88f551fbd6a97be9668a0020698e07b2bf5b3aa26a36c10cdfb27b2 \ + --hash=sha256:864abafe7d6e2c4c66395c1eb0fe12dc891879769b52a3d56499612ca93b6092 \ + --hash=sha256:86cfc00fe45a0ac7359e5214a1704e51a99e757d0272554874f419f79838c5f7 \ + --hash=sha256:87b0072c4ecc9505cfa16ee734b00cd7721d20a0f595be4d40d3d21b41f65ae2 \ + --hash=sha256:87fa445064e7db928226b2e6f0d5304ab4cd0339e664a4e9a25029f384d9bb93 \ + --hash=sha256:89c17d53d75562edfff86679244830599ee0a48efc216200691de8b02ab6b2b8 \ + --hash=sha256:8b3f68782f3cbd1bce027e48768293072813469af6a61a86f6bb4977a4380f21 \ + --hash=sha256:a428e25fb7691024de47fecfbff7ff957214da51eddded0da0ae0e0f03a2cf79 \ + --hash=sha256:b0d1a7afc6e8e4635564ba8aa5c0548e3173e41b6384d7711a9123165f582de2 \ + --hash=sha256:ba6aba18daf4d36ad4412feede6221414692f44d17e5428bdd81ad3fc1eee5dc \ + --hash=sha256:cb5c869c2923d56cb0c8e6bcdd73c009c36ae39b652dbe46a05eb4ef0ad01454 \ + --hash=sha256:d511b3153e7011a27ab6ee6bb3a5404a55b994dc1a7322c0b87b29606d9790e2 \ + --hash=sha256:db3fe8eaf0612fc8b20fa21a5f25bd785bc3cd5be69f8f3412b0ac2ffd49e733 \ + --hash=sha256:e6584b12cb06796d285d09e33f63309a09368b9d806a551d8036a4207ea43697 \ + --hash=sha256:f4b51844ef67d6cf2e9425983274da75f18b1597bb2c998e1c0a0e8d46f8f651 \ + --hash=sha256:f639065ea2042d5c034bf258a9f085eaa7af0cd250667c0635a3118e8f92c69c # via # google-cloud-bigtable # google-cloud-storage @@ -875,6 +874,7 @@ grpcio==1.62.3 \ # google-api-core # google-cloud-bigquery # google-cloud-bigquery-storage + # google-cloud-datastore # googleapis-common-protos # grpc-google-iam-v1 # grpcio-health-checking @@ -1073,9 +1073,9 @@ idna==3.11 \ # requests # snowflake-connector-python # yarl -importlib-metadata==8.7.0 \ - --hash=sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000 \ - --hash=sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd +importlib-metadata==8.7.1 \ + --hash=sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb \ + --hash=sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151 # via dask jinja2==3.1.6 \ --hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \ @@ -1102,83 +1102,83 @@ kubernetes==33.1.0 \ --hash=sha256:544de42b24b64287f7e0aa9513c93cb503f7f40eea39b20f66810011a86eabc5 \ --hash=sha256:f64d829843a54c251061a8e7a14523b521f2dc5c896cf6d65ccf348648a88993 # via feast (setup.py) -librt==0.7.3 \ - --hash=sha256:020c6db391268bcc8ce75105cb572df8cb659a43fd347366aaa407c366e5117a \ - --hash=sha256:0fa9ac2e49a6bee56e47573a6786cb635e128a7b12a0dc7851090037c0d397a3 \ - --hash=sha256:11ad45122bbed42cfc8b0597450660126ef28fd2d9ae1a219bc5af8406f95678 \ - --hash=sha256:120dd21d46ff875e849f1aae19346223cf15656be489242fe884036b23d39e93 \ - --hash=sha256:14569ac5dd38cfccf0a14597a88038fb16811a6fede25c67b79c6d50fc2c8fdc \ - --hash=sha256:1617bea5ab31266e152871208502ee943cb349c224846928a1173c864261375e \ - --hash=sha256:170cdb8436188347af17bf9cccf3249ba581c933ed56d926497119d4cf730cec \ - --hash=sha256:1975eda520957c6e0eb52d12968dd3609ffb7eef05d4223d097893d6daf1d8a7 \ - --hash=sha256:1fe603877e1865b5fd047a5e40379509a4a60204aa7aa0f72b16f7a41c3f0712 \ - --hash=sha256:24d70810f6e2ea853ff79338001533716b373cc0f63e2a0be5bc96129edb5fb5 \ - --hash=sha256:256793988bff98040de23c57cf36e1f4c2f2dc3dcd17537cdac031d3b681db71 \ - --hash=sha256:25711f364c64cab2c910a0247e90b51421e45dbc8910ceeb4eac97a9e132fc6f \ - --hash=sha256:2682162855a708e3270eba4b92026b93f8257c3e65278b456c77631faf0f4f7a \ - --hash=sha256:2cf9d73499486ce39eebbff5f42452518cc1f88d8b7ea4a711ab32962b176ee2 \ - --hash=sha256:2e40520c37926166c24d0c2e0f3bc3a5f46646c34bdf7b4ea9747c297d6ee809 \ - --hash=sha256:2e980cf1ed1a2420a6424e2ed884629cdead291686f1048810a817de07b5eb18 \ - --hash=sha256:2f03484b54bf4ae80ab2e504a8d99d20d551bfe64a7ec91e218010b467d77093 \ - --hash=sha256:35f1609e3484a649bb80431310ddbec81114cd86648f1d9482bc72a3b86ded2e \ - --hash=sha256:399938edbd3d78339f797d685142dd8a623dfaded023cf451033c85955e4838a \ - --hash=sha256:399bbd7bcc1633c3e356ae274a1deb8781c7bf84d9c7962cc1ae0c6e87837292 \ - --hash=sha256:3ec50cf65235ff5c02c5b747748d9222e564ad48597122a361269dd3aa808798 \ - --hash=sha256:3edbf257c40d21a42615e9e332a6b10a8bacaaf58250aed8552a14a70efd0d65 \ - --hash=sha256:440c788f707c061d237c1e83edf6164ff19f5c0f823a3bf054e88804ebf971ec \ - --hash=sha256:44b3689b040df57f492e02cd4f0bacd1b42c5400e4b8048160c9d5e866de8abe \ - --hash=sha256:4887c29cadbdc50640179e3861c276325ff2986791e6044f73136e6e798ff806 \ - --hash=sha256:5460d99ed30f043595bbdc888f542bad2caeb6226b01c33cda3ae444e8f82d42 \ - --hash=sha256:550fdbfbf5bba6a2960b27376ca76d6aaa2bd4b1a06c4255edd8520c306fcfc0 \ - --hash=sha256:56f2a47beda8409061bc1c865bef2d4bd9ff9255219402c0817e68ab5ad89aed \ - --hash=sha256:572a24fc5958c61431da456a0ef1eeea6b4989d81eeb18b8e5f1f3077592200b \ - --hash=sha256:59cb0470612d21fa1efddfa0dd710756b50d9c7fb6c1236bbf8ef8529331dc70 \ - --hash=sha256:6038ccbd5968325a5d6fd393cf6e00b622a8de545f0994b89dd0f748dcf3e19e \ - --hash=sha256:6488e69d408b492e08bfb68f20c4a899a354b4386a446ecd490baff8d0862720 \ - --hash=sha256:687403cced6a29590e6be6964463835315905221d797bc5c934a98750fe1a9af \ - --hash=sha256:6b407c23f16ccc36614c136251d6b32bf30de7a57f8e782378f1107be008ddb0 \ - --hash=sha256:6b4e7bff1d76dd2b46443078519dc75df1b5e01562345f0bb740cea5266d8218 \ - --hash=sha256:6bdd9adfca615903578d2060ee8a6eb1c24eaf54919ff0ddc820118e5718931b \ - --hash=sha256:6eb9295c730e26b849ed1f4022735f36863eb46b14b6e10604c1c39b8b5efaea \ - --hash=sha256:703456146dc2bf430f7832fd1341adac5c893ec3c1430194fdcefba00012555c \ - --hash=sha256:754a0d09997095ad764ccef050dd5bf26cbf457aab9effcba5890dad081d879e \ - --hash=sha256:7af7785f5edd1f418da09a8cdb9ec84b0213e23d597413e06525340bcce1ea4f \ - --hash=sha256:7b29e97273bd6999e2bfe9fe3531b1f4f64effd28327bced048a33e49b99674a \ - --hash=sha256:7b4f57f7a0c65821c5441d98c47ff7c01d359b1e12328219709bdd97fdd37f90 \ - --hash=sha256:8837d5a52a2d7aa9f4c3220a8484013aed1d8ad75240d9a75ede63709ef89055 \ - --hash=sha256:8ccadf260bb46a61b9c7e89e2218f6efea9f3eeaaab4e3d1f58571890e54858e \ - --hash=sha256:8d8cf653e798ee4c4e654062b633db36984a1572f68c3aa25e364a0ddfbbb910 \ - --hash=sha256:93b2a1f325fefa1482516ced160c8c7b4b8d53226763fa6c93d151fa25164207 \ - --hash=sha256:9f0e0927efe87cd42ad600628e595a1a0aa1c64f6d0b55f7e6059079a428641a \ - --hash=sha256:a59a69deeb458c858b8fea6acf9e2acd5d755d76cd81a655256bc65c20dfff5b \ - --hash=sha256:a9f9b661f82693eb56beb0605156c7fca57f535704ab91837405913417d6990b \ - --hash=sha256:abfc57cab3c53c4546aee31859ef06753bfc136c9d208129bad23e2eca39155a \ - --hash=sha256:aca73d70c3f553552ba9133d4a09e767dcfeee352d8d8d3eb3f77e38a3beb3ed \ - --hash=sha256:adeaa886d607fb02563c1f625cf2ee58778a2567c0c109378da8f17ec3076ad7 \ - --hash=sha256:b278a9248a4e3260fee3db7613772ca9ab6763a129d6d6f29555e2f9b168216d \ - --hash=sha256:b7c1239b64b70be7759554ad1a86288220bbb04d68518b527783c4ad3fb4f80b \ - --hash=sha256:bf8c7735fbfc0754111f00edda35cf9e98a8d478de6c47b04eaa9cef4300eaa7 \ - --hash=sha256:c634a0a6db395fdaba0361aa78395597ee72c3aad651b9a307a3a7eaf5efd67e \ - --hash=sha256:cad9971881e4fec00d96af7eaf4b63aa7a595696fc221808b0d3ce7ca9743258 \ - --hash=sha256:cbdb3f337c88b43c3b49ca377731912c101178be91cb5071aac48faa898e6f8e \ - --hash=sha256:cd8551aa21df6c60baa2624fd086ae7486bdde00c44097b32e1d1b1966e365e0 \ - --hash=sha256:d09f677693328503c9e492e33e9601464297c01f9ebd966ea8fc5308f3069bfd \ - --hash=sha256:d376a35c6561e81d2590506804b428fc1075fcc6298fc5bb49b771534c0ba010 \ - --hash=sha256:d39079379a9a28e74f4d57dc6357fa310a1977b51ff12239d7271ec7e71d67f5 \ - --hash=sha256:d86f94743a11873317094326456b23f8a5788bad9161fd2f0e52088c33564620 \ - --hash=sha256:d91e60ac44bbe3a77a67af4a4c13114cbe9f6d540337ce22f2c9eaf7454ca71f \ - --hash=sha256:d9883b2d819ce83f87ba82a746c81d14ada78784db431e57cc9719179847376e \ - --hash=sha256:e094e445c37c57e9ec612847812c301840239d34ccc5d153a982fa9814478c60 \ - --hash=sha256:e19acfde38cb532a560b98f473adc741c941b7a9bc90f7294bc273d08becb58b \ - --hash=sha256:e32d43610dff472eab939f4d7fbdd240d1667794192690433672ae22d7af8445 \ - --hash=sha256:ed028fc3d41adda916320712838aec289956c89b4f0a361ceadf83a53b4c047a \ - --hash=sha256:ef59c938f72bdbc6ab52dc50f81d0637fde0f194b02d636987cea2ab30f8f55a \ - --hash=sha256:f3d4801db8354436fd3936531e7f0e4feb411f62433a6b6cb32bb416e20b529f \ - --hash=sha256:f57aca20e637750a2c18d979f7096e2c2033cc40cf7ed201494318de1182f135 \ - --hash=sha256:f9da128d0edf990cf0d2ca011b02cd6f639e79286774bd5b0351245cbb5a6e51 \ - --hash=sha256:fbd7351d43b80d9c64c3cfcb50008f786cc82cba0450e8599fdd64f264320bd3 \ - --hash=sha256:fcb72249ac4ea81a7baefcbff74df7029c3cb1cf01a711113fa052d563639c9c \ - --hash=sha256:ff21c554304e8226bf80c3a7754be27c6c3549a9fec563a03c06ee8f494da8fc +librt==0.7.5 \ + --hash=sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee \ + --hash=sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1 \ + --hash=sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4 \ + --hash=sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899 \ + --hash=sha256:0e2bf8f91093fac43e3eaebacf777f12fd539dce9ec5af3efc6d8424e96ccd49 \ + --hash=sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d \ + --hash=sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760 \ + --hash=sha256:191cbd42660446d67cf7a95ac7bfa60f49b8b3b0417c64f216284a1d86fc9335 \ + --hash=sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8 \ + --hash=sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2 \ + --hash=sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec \ + --hash=sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b \ + --hash=sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0 \ + --hash=sha256:39183abee670bc37b85f11e86c44a9cad1ed6efa48b580083e89ecee13dd9717 \ + --hash=sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325 \ + --hash=sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45 \ + --hash=sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d \ + --hash=sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233 \ + --hash=sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d \ + --hash=sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544 \ + --hash=sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802 \ + --hash=sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2 \ + --hash=sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d \ + --hash=sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f \ + --hash=sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169 \ + --hash=sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe \ + --hash=sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982 \ + --hash=sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2 \ + --hash=sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa \ + --hash=sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4 \ + --hash=sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4 \ + --hash=sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57 \ + --hash=sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26 \ + --hash=sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361 \ + --hash=sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad \ + --hash=sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e \ + --hash=sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf \ + --hash=sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f \ + --hash=sha256:8dcae24de1bc9da93aa689cb6313c70e776d7cea2fcf26b9b6160fedfe6bd9af \ + --hash=sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2 \ + --hash=sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89 \ + --hash=sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904 \ + --hash=sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6 \ + --hash=sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276 \ + --hash=sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e \ + --hash=sha256:a9eacbf983319b26b5f340a2e0cd47ac1ee4725a7f3a72fd0f15063c934b69d6 \ + --hash=sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409 \ + --hash=sha256:af69d9e159575e877c7546d1ee817b4ae089aa221dd1117e20c24ad8dc8659c7 \ + --hash=sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a \ + --hash=sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4 \ + --hash=sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775 \ + --hash=sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203 \ + --hash=sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419 \ + --hash=sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5 \ + --hash=sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023 \ + --hash=sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b \ + --hash=sha256:cdb001a1a0e4f41e613bca2c0fc147fc8a7396f53fc94201cbfd8ec7cd69ca4b \ + --hash=sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d \ + --hash=sha256:d2cc7d187e8c6e9b7bdbefa9697ce897a704ea7a7ce844f2b4e0e2aa07ae51d3 \ + --hash=sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e \ + --hash=sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a \ + --hash=sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b \ + --hash=sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db \ + --hash=sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd \ + --hash=sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa \ + --hash=sha256:df2e210400b28e50994477ebf82f055698c79797b6ee47a1669d383ca33263e1 \ + --hash=sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805 \ + --hash=sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a \ + --hash=sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25 \ + --hash=sha256:ea1b60b86595a5dc1f57b44a801a1c4d8209c0a69518391d349973a4491408e6 \ + --hash=sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b \ + --hash=sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5 \ + --hash=sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416 \ + --hash=sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc \ + --hash=sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7 \ + --hash=sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96 # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ @@ -1279,9 +1279,9 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via jinja2 -mcp==1.23.3 \ - --hash=sha256:32768af4b46a1b4f7df34e2bfdf5c6011e7b63d7f1b0e321d0fdef4cd6082031 \ - --hash=sha256:b3b0da2cc949950ce1259c7bfc1b081905a51916fcd7c8182125b85e70825201 +mcp==1.25.0 \ + --hash=sha256:56310361ebf0364e2d438e5b45f7668cbb124e158bb358333cd06e49e83a6802 \ + --hash=sha256:b37c38144a666add0862614cc79ec276e97d72aa8ca26d622818d4e278b9721a # via fastapi-mcp mdurl==0.1.2 \ --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ @@ -1569,125 +1569,123 @@ multidict==6.7.0 \ # aiobotocore # aiohttp # yarl -mypy==1.19.0 \ - --hash=sha256:0c01c99d626380752e527d5ce8e69ffbba2046eb8a060db0329690849cf9b6f9 \ - --hash=sha256:0dde5cb375cb94deff0d4b548b993bec52859d1651e073d63a1386d392a95495 \ - --hash=sha256:0e3c3d1e1d62e678c339e7ade72746a9e0325de42cd2cccc51616c7b2ed1a018 \ - --hash=sha256:0ea4fd21bb48f0da49e6d3b37ef6bd7e8228b9fe41bbf4d80d9364d11adbd43c \ - --hash=sha256:0fb3115cb8fa7c5f887c8a8d81ccdcb94cff334684980d847e5a62e926910e1d \ - --hash=sha256:11f7254c15ab3f8ed68f8e8f5cbe88757848df793e31c36aaa4d4f9783fd08ab \ - --hash=sha256:120cffe120cca5c23c03c77f84abc0c14c5d2e03736f6c312480020082f1994b \ - --hash=sha256:16f76ff3f3fd8137aadf593cb4607d82634fca675e8211ad75c43d86033ee6c6 \ - --hash=sha256:1cf9c59398db1c68a134b0b5354a09a1e124523f00bacd68e553b8bd16ff3299 \ - --hash=sha256:318ba74f75899b0e78b847d8c50821e4c9637c79d9a59680fc1259f29338cb3e \ - --hash=sha256:3210d87b30e6af9c8faed61be2642fcbe60ef77cec64fa1ef810a630a4cf671c \ - --hash=sha256:34ec1ac66d31644f194b7c163d7f8b8434f1b49719d403a5d26c87fff7e913f7 \ - --hash=sha256:37af5166f9475872034b56c5efdcf65ee25394e9e1d172907b84577120714364 \ - --hash=sha256:3ad925b14a0bb99821ff6f734553294aa6a3440a8cb082fe1f5b84dfb662afb1 \ - --hash=sha256:510c014b722308c9bd377993bcbf9a07d7e0692e5fa8fc70e639c1eb19fc6bee \ - --hash=sha256:6016c52ab209919b46169651b362068f632efcd5eb8ef9d1735f6f86da7853b2 \ - --hash=sha256:6148ede033982a8c5ca1143de34c71836a09f105068aaa8b7d5edab2b053e6c8 \ - --hash=sha256:63ea6a00e4bd6822adbfc75b02ab3653a17c02c4347f5bb0cf1d5b9df3a05835 \ - --hash=sha256:7686ed65dbabd24d20066f3115018d2dce030d8fa9db01aa9f0a59b6813e9f9e \ - --hash=sha256:7a500ab5c444268a70565e374fc803972bfd1f09545b13418a5174e29883dab7 \ - --hash=sha256:8f44f2ae3c58421ee05fe609160343c25f70e3967f6e32792b5a78006a9d850f \ - --hash=sha256:a18d8abdda14035c5718acb748faec09571432811af129bf0d9e7b2d6699bf18 \ - --hash=sha256:a31e4c28e8ddb042c84c5e977e28a21195d086aaffaf08b016b78e19c9ef8106 \ - --hash=sha256:a9ac09e52bb0f7fb912f5d2a783345c72441a08ef56ce3e17c1752af36340a39 \ - --hash=sha256:b9d491295825182fba01b6ffe2c6fe4e5a49dbf4e2bb4d1217b6ced3b4797bc6 \ - --hash=sha256:c14a98bc63fd867530e8ec82f217dae29d0550c86e70debc9667fff1ec83284e \ - --hash=sha256:c3385246593ac2b97f155a0e9639be906e73534630f663747c71908dfbf26134 \ - --hash=sha256:cabbee74f29aa9cd3b444ec2f1e4fa5a9d0d746ce7567a6a609e224429781f53 \ - --hash=sha256:cb64b0ba5980466a0f3f9990d1c582bcab8db12e29815ecb57f1408d99b4bff7 \ - --hash=sha256:cf7d84f497f78b682edd407f14a7b6e1a2212b433eedb054e2081380b7395aa3 \ - --hash=sha256:e2c1101ab41d01303103ab6ef82cbbfedb81c1a060c868fa7cc013d573d37ab5 \ - --hash=sha256:f188dcf16483b3e59f9278c4ed939ec0254aa8a60e8fc100648d9ab5ee95a431 \ - --hash=sha256:f2e36bed3c6d9b5f35d28b63ca4b727cb0228e480826ffc8953d1892ddc8999d \ - --hash=sha256:f3e19e3b897562276bb331074d64c076dbdd3e79213f36eed4e592272dabd760 \ - --hash=sha256:f6b874ca77f733222641e5c46e4711648c4037ea13646fd0cdc814c2eaec2528 \ - --hash=sha256:f75e60aca3723a23511948539b0d7ed514dda194bc3755eae0bfc7a6b4887aa7 \ - --hash=sha256:fc51a5b864f73a3a182584b1ac75c404396a17eced54341629d8bdcb644a5bba \ - --hash=sha256:fd4a985b2e32f23bead72e2fb4bbe5d6aceee176be471243bd831d5b2644672d +mypy==1.19.1 \ + --hash=sha256:016f2246209095e8eda7538944daa1d60e1e8134d98983b9fc1e92c1fc0cb8dd \ + --hash=sha256:022ea7279374af1a5d78dfcab853fe6a536eebfda4b59deab53cd21f6cd9f00b \ + --hash=sha256:06e6170bd5836770e8104c8fdd58e5e725cfeb309f0a6c681a811f557e97eac1 \ + --hash=sha256:19d88bb05303fe63f71dd2c6270daca27cb9401c4ca8255fe50d1d920e0eb9ba \ + --hash=sha256:21761006a7f497cb0d4de3d8ef4ca70532256688b0523eee02baf9eec895e27b \ + --hash=sha256:28902ee51f12e0f19e1e16fbe2f8f06b6637f482c459dd393efddd0ec7f82045 \ + --hash=sha256:2899753e2f61e571b3971747e302d5f420c3fd09650e1951e99f823bc3089dac \ + --hash=sha256:2abb24cf3f17864770d18d673c85235ba52456b36a06b6afc1e07c1fdcd3d0e6 \ + --hash=sha256:34c81968774648ab5ac09c29a375fdede03ba253f8f8287847bd480782f73a6a \ + --hash=sha256:409088884802d511ee52ca067707b90c883426bd95514e8cfda8281dc2effe24 \ + --hash=sha256:481daf36a4c443332e2ae9c137dfee878fcea781a2e3f895d54bd3002a900957 \ + --hash=sha256:4b84a7a18f41e167f7995200a1d07a4a6810e89d29859df936f1c3923d263042 \ + --hash=sha256:4f28f99c824ecebcdaa2e55d82953e38ff60ee5ec938476796636b86afa3956e \ + --hash=sha256:5f05aa3d375b385734388e844bc01733bd33c644ab48e9684faa54e5389775ec \ + --hash=sha256:7bcfc336a03a1aaa26dfce9fff3e287a3ba99872a157561cbfcebe67c13308e3 \ + --hash=sha256:804bd67b8054a85447c8954215a906d6eff9cabeabe493fb6334b24f4bfff718 \ + --hash=sha256:8bb5c6f6d043655e055be9b542aa5f3bdd30e4f3589163e85f93f3640060509f \ + --hash=sha256:a009ffa5a621762d0c926a078c2d639104becab69e79538a494bcccb62cc0331 \ + --hash=sha256:a8174a03289288c1f6c46d55cef02379b478bfbc8e358e02047487cad44c6ca1 \ + --hash=sha256:ab43590f9cd5108f41aacf9fca31841142c786827a74ab7cc8a2eacb634e09a1 \ + --hash=sha256:b10e7c2cd7870ba4ad9b2d8a6102eb5ffc1f16ca35e3de6bfa390c1113029d13 \ + --hash=sha256:b13cfdd6c87fc3efb69ea4ec18ef79c74c3f98b4e5498ca9b85ab3b2c2329a67 \ + --hash=sha256:b64d987153888790bcdb03a6473d321820597ab8dd9243b27a92153c4fa50fd2 \ + --hash=sha256:b7951a701c07ea584c4fe327834b92a30825514c868b1f69c30445093fdd9d5a \ + --hash=sha256:bdb12f69bcc02700c2b47e070238f42cb87f18c0bc1fc4cdb4fb2bc5fd7a3b8b \ + --hash=sha256:c35d298c2c4bba75feb2195655dfea8124d855dfd7343bf8b8c055421eaf0cf8 \ + --hash=sha256:c608937067d2fc5a4dd1a5ce92fd9e1398691b8c5d012d66e1ddd430e9244376 \ + --hash=sha256:c9a6538e0415310aad77cb94004ca6482330fece18036b5f360b62c45814c4ef \ + --hash=sha256:d8dfc6ab58ca7dda47d9237349157500468e404b17213d44fc1cb77bce532288 \ + --hash=sha256:da4869fc5e7f62a88f3fe0b5c919d1d9f7ea3cef92d3689de2823fd27e40aa75 \ + --hash=sha256:de759aafbae8763283b2ee5869c7255391fbc4de3ff171f8f030b5ec48381b74 \ + --hash=sha256:e3157c7594ff2ef1634ee058aafc56a82db665c9438fd41b390f3bde1ab12250 \ + --hash=sha256:e3f276d8493c3c97930e354b2595a44a21348b320d859fb4a2b9f66da9ed27ab \ + --hash=sha256:ee4c11e460685c3e0c64a4c5de82ae143622410950d6be863303a1c4ba0e36d6 \ + --hash=sha256:f1235f5ea01b7db5468d53ece6aaddf1ad0b88d9e7462b86ef96fe04995d7247 \ + --hash=sha256:f7cee03c9a2e2ee26ec07479f38ea9c884e301d42c6d43a19d20fb014e3ba925 \ + --hash=sha256:f859fb09d9583a985be9a493d5cfc5515b56b08f7447759a0c5deaf68d80506e \ + --hash=sha256:ffcebe56eb09ff0c0885e750036a095e23793ba6c2e894e7e63f6d89ad51f22e # via sqlalchemy mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 # via mypy -numpy==2.3.5 \ - --hash=sha256:00dc4e846108a382c5869e77c6ed514394bdeb3403461d25a829711041217d5b \ - --hash=sha256:0472f11f6ec23a74a906a00b48a4dcf3849209696dff7c189714511268d103ae \ - --hash=sha256:04822c00b5fd0323c8166d66c701dc31b7fbd252c100acd708c48f763968d6a3 \ - --hash=sha256:052e8c42e0c49d2575621c158934920524f6c5da05a1d3b9bab5d8e259e045f0 \ - --hash=sha256:09a1bea522b25109bf8e6f3027bd810f7c1085c64a0c7ce050c1676ad0ba010b \ - --hash=sha256:0cd00b7b36e35398fa2d16af7b907b65304ef8bb4817a550e06e5012929830fa \ - --hash=sha256:0d8163f43acde9a73c2a33605353a4f1bc4798745a8b1d73183b28e5b435ae28 \ - --hash=sha256:1062fde1dcf469571705945b0f221b73928f34a20c904ffb45db101907c3454e \ - --hash=sha256:11e06aa0af8c0f05104d56450d6093ee639e15f24ecf62d417329d06e522e017 \ - --hash=sha256:17531366a2e3a9e30762c000f2c43a9aaa05728712e25c11ce1dbe700c53ad41 \ - --hash=sha256:1978155dd49972084bd6ef388d66ab70f0c323ddee6f693d539376498720fb7e \ - --hash=sha256:1ed1ec893cff7040a02c8aa1c8611b94d395590d553f6b53629a4461dc7f7b63 \ - --hash=sha256:2dcd0808a421a482a080f89859a18beb0b3d1e905b81e617a188bd80422d62e9 \ - --hash=sha256:2e2eb32ddb9ccb817d620ac1d8dae7c3f641c1e5f55f531a33e8ab97960a75b8 \ - --hash=sha256:2feae0d2c91d46e59fcd62784a3a83b3fb677fead592ce51b5a6fbb4f95965ff \ - --hash=sha256:3095bdb8dd297e5920b010e96134ed91d852d81d490e787beca7e35ae1d89cf7 \ - --hash=sha256:30bc11310e8153ca664b14c5f1b73e94bd0503681fcf136a163de856f3a50139 \ - --hash=sha256:3101e5177d114a593d79dd79658650fe28b5a0d8abeb8ce6f437c0e6df5be1a4 \ - --hash=sha256:396084a36abdb603546b119d96528c2f6263921c50df3c8fd7cb28873a237748 \ - --hash=sha256:3997b5b3c9a771e157f9aae01dd579ee35ad7109be18db0e85dbdbe1de06e952 \ - --hash=sha256:414802f3b97f3c1eef41e530aaba3b3c1620649871d8cb38c6eaff034c2e16bd \ - --hash=sha256:51c1e14eb1e154ebd80e860722f9e6ed6ec89714ad2db2d3aa33c31d7c12179b \ - --hash=sha256:51c55fe3451421f3a6ef9a9c1439e82101c57a2c9eab9feb196a62b1a10b58ce \ - --hash=sha256:5ee6609ac3604fa7780e30a03e5e241a7956f8e2fcfe547d51e3afa5247ac47f \ - --hash=sha256:612a95a17655e213502f60cfb9bf9408efdc9eb1d5f50535cc6eb365d11b42b5 \ - --hash=sha256:6203fdf9f3dc5bdaed7319ad8698e685c7a3be10819f41d32a0723e611733b42 \ - --hash=sha256:63c0e9e7eea69588479ebf4a8a270d5ac22763cc5854e9a7eae952a3908103f7 \ - --hash=sha256:66f85ce62c70b843bab1fb14a05d5737741e74e28c7b8b5a064de10142fad248 \ - --hash=sha256:6cf9b429b21df6b99f4dee7a1218b8b7ffbbe7df8764dc0bd60ce8a0708fed1e \ - --hash=sha256:70b37199913c1bd300ff6e2693316c6f869c7ee16378faf10e4f5e3275b299c3 \ - --hash=sha256:727fd05b57df37dc0bcf1a27767a3d9a78cbbc92822445f32cc3436ba797337b \ - --hash=sha256:74ae7b798248fe62021dbf3c914245ad45d1a6b0cb4a29ecb4b31d0bfbc4cc3e \ - --hash=sha256:784db1dcdab56bf0517743e746dfb0f885fc68d948aba86eeec2cba234bdf1c0 \ - --hash=sha256:86945f2ee6d10cdfd67bcb4069c1662dd711f7e2a4343db5cecec06b87cf31aa \ - --hash=sha256:86d835afea1eaa143012a2d7a3f45a3adce2d7adc8b4961f0b362214d800846a \ - --hash=sha256:872a5cf366aec6bb1147336480fef14c9164b154aeb6542327de4970282cd2f5 \ - --hash=sha256:8b973c57ff8e184109db042c842423ff4f60446239bd585a5131cc47f06f789d \ - --hash=sha256:8cba086a43d54ca804ce711b2a940b16e452807acebe7852ff327f1ecd49b0d4 \ - --hash=sha256:8f7f0e05112916223d3f438f293abf0727e1181b5983f413dfa2fefc4098245c \ - --hash=sha256:900218e456384ea676e24ea6a0417f030a3b07306d29d7ad843957b40a9d8d52 \ - --hash=sha256:93eebbcf1aafdf7e2ddd44c2923e2672e1010bddc014138b229e49725b4d6be5 \ - --hash=sha256:9c75442b2209b8470d6d5d8b1c25714270686f14c749028d2199c54e29f20b4d \ - --hash=sha256:9ee2197ef8c4f0dfe405d835f3b6a14f5fee7782b5de51ba06fb65fc9b36e9f1 \ - --hash=sha256:a414504bef8945eae5f2d7cb7be2d4af77c5d1cb5e20b296c2c25b61dff2900c \ - --hash=sha256:a4b9159734b326535f4dd01d947f919c6eefd2d9827466a696c44ced82dfbc18 \ - --hash=sha256:a80afd79f45f3c4a7d341f13acbe058d1ca8ac017c165d3fa0d3de6bc1a079d7 \ - --hash=sha256:aa5bc7c5d59d831d9773d1170acac7893ce3a5e130540605770ade83280e7188 \ - --hash=sha256:acfd89508504a19ed06ef963ad544ec6664518c863436306153e13e94605c218 \ - --hash=sha256:aeffcab3d4b43712bb7a60b65f6044d444e75e563ff6180af8f98dd4b905dfd2 \ - --hash=sha256:afaffc4393205524af9dfa400fa250143a6c3bc646c08c9f5e25a9f4b4d6a903 \ - --hash=sha256:b0c7088a73aef3d687c4deef8452a3ac7c1be4e29ed8bf3b366c8111128ac60c \ - --hash=sha256:b46b4ec24f7293f23adcd2d146960559aaf8020213de8ad1909dba6c013bf89c \ - --hash=sha256:b501b5fa195cc9e24fe102f21ec0a44dffc231d2af79950b451e0d99cea02234 \ - --hash=sha256:bf06bc2af43fa8d32d30fae16ad965663e966b1a3202ed407b84c989c3221e82 \ - --hash=sha256:c804e3a5aba5460c73955c955bdbd5c08c354954e9270a2c1565f62e866bdc39 \ - --hash=sha256:c8a9958e88b65c3b27e22ca2a076311636850b612d6bbfb76e8d156aacde2aaf \ - --hash=sha256:cc0a57f895b96ec78969c34f682c602bf8da1a0270b09bc65673df2e7638ec20 \ - --hash=sha256:cc8920d2ec5fa99875b670bb86ddeb21e295cb07aa331810d9e486e0b969d946 \ - --hash=sha256:ccc933afd4d20aad3c00bcef049cb40049f7f196e0397f1109dba6fed63267b0 \ - --hash=sha256:ce581db493ea1a96c0556360ede6607496e8bf9b3a8efa66e06477267bc831e9 \ - --hash=sha256:d0f23b44f57077c1ede8c5f26b30f706498b4862d3ff0a7298b8411dd2f043ff \ - --hash=sha256:d21644de1b609825ede2f48be98dfde4656aefc713654eeee280e37cadc4e0ad \ - --hash=sha256:d6889ec4ec662a1a37eb4b4fb26b6100841804dac55bd9df579e326cdc146227 \ - --hash=sha256:de5672f4a7b200c15a4127042170a694d4df43c992948f5e1af57f0174beed10 \ - --hash=sha256:e6a0bc88393d65807d751a614207b7129a310ca4fe76a74e5c7da5fa5671417e \ - --hash=sha256:ed89927b86296067b4f81f108a2271d8926467a8868e554eaf370fc27fa3ccaf \ - --hash=sha256:ee3888d9ff7c14604052b2ca5535a30216aa0a58e948cdd3eeb8d3415f638769 \ - --hash=sha256:f0963b55cdd70fad460fa4c1341f12f976bb26cb66021a5580329bd498988310 \ - --hash=sha256:f16417ec91f12f814b10bafe79ef77e70113a2f5f7018640e7425ff979253425 \ - --hash=sha256:f28620fe26bee16243be2b7b874da327312240a7cdc38b769a697578d2100013 \ - --hash=sha256:f4255143f5160d0de972d28c8f9665d882b5f61309d8362fdd3e103cf7bf010c \ - --hash=sha256:ffac52f28a7849ad7576293c0cb7b9f08304e8f7d738a8cb8a90ec4c55a998eb \ - --hash=sha256:ffe22d2b05504f786c867c8395de703937f934272eb67586817b46188b4ded6d \ - --hash=sha256:fffe29a1ef00883599d1dc2c51aa2e5d80afe49523c261a74933df395c15c520 +numpy==2.4.0 \ + --hash=sha256:009bd0ea12d3c784b6639a8457537016ce5172109e585338e11334f6a7bb88ee \ + --hash=sha256:02a2038eb27f9443a8b266a66911e926566b5a6ffd1a689b588f7f35b81e7dc3 \ + --hash=sha256:0804a8e4ab070d1d35496e65ffd3cf8114c136a2b81f61dfab0de4b218aacfd5 \ + --hash=sha256:0feafc9e03128074689183031181fac0897ff169692d8492066e949041096548 \ + --hash=sha256:1889b3a3f47a7b5bee16bc25a2145bd7cb91897f815ce3499db64c7458b6d91d \ + --hash=sha256:1d8f9fde5f6dc1b6fc34df8162f3b3079365468703fee7f31d4e0cc8c63baed9 \ + --hash=sha256:1ee32359fb7543b7b7bd0b2f46294db27e29e7bbdf70541e81b190836cd83ded \ + --hash=sha256:20c115517513831860c573996e395707aa9fb691eb179200125c250e895fcd93 \ + --hash=sha256:21555da4ec4a0c942520ead42c3b0dc9477441e085c42b0fbdd6a084869a6f6b \ + --hash=sha256:23a3e9d1a6f360267e8fbb38ba5db355a6a7e9be71d7fce7ab3125e88bb646c8 \ + --hash=sha256:2a8b6bb8369abefb8bd1801b054ad50e02b3275c8614dc6e5b0373c305291037 \ + --hash=sha256:2e284ca13d5a8367e43734148622caf0b261b275673823593e3e3634a6490f83 \ + --hash=sha256:2f585f52b2baf07ff3356158d9268ea095e221371f1074fadea2f42544d58b4d \ + --hash=sha256:316b2f2584682318539f0bcaca5a496ce9ca78c88066579ebd11fd06f8e4741e \ + --hash=sha256:32ed06d0fe9cae27d8fb5f400c63ccee72370599c75e683a6358dd3a4fb50aaf \ + --hash=sha256:355354388cba60f2132df297e2d53053d4063f79077b67b481d21276d61fc4df \ + --hash=sha256:35ddc8f4914466e6fc954c76527aa91aa763682a4f6d73249ef20b418fe6effb \ + --hash=sha256:36667db4d6c1cea79c8930ab72fadfb4060feb4bfe724141cd4bd064d2e5f8ce \ + --hash=sha256:36cbfb13c152b1c7c184ddac43765db8ad672567e7bafff2cc755a09917ed2e6 \ + --hash=sha256:39699233bc72dd482da1415dcb06076e32f60eddc796a796c5fb6c5efce94667 \ + --hash=sha256:39b19251dec4de8ff8496cd0806cbe27bf0684f765abb1f4809554de93785f2d \ + --hash=sha256:3d857f55e7fdf7c38ab96c4558c95b97d1c685be6b05c249f5fdafcbd6f9899e \ + --hash=sha256:3de19cfecd1465d0dcf8a5b5ea8b3155b42ed0b639dba4b71e323d74f2a3be5e \ + --hash=sha256:3f3096405acc48887458bbf9f6814d43785ac7ba2a57ea6442b581dedbc60ce6 \ + --hash=sha256:40483b2f2d3ba7aad426443767ff5632ec3156ef09742b96913787d13c336471 \ + --hash=sha256:413aa561266a4be2d06cd2b9665e89d9f54c543f418773076a76adcf2af08bc7 \ + --hash=sha256:44aba2f0cafd287871a495fb3163408b0bd25bbce135c6f621534a07f4f7875c \ + --hash=sha256:49ff32b09f5aa0cd30a20c2b39db3e669c845589f2b7fc910365210887e39344 \ + --hash=sha256:4d1cfce39e511069b11e67cd0bd78ceff31443b7c9e5c04db73c7a19f572967c \ + --hash=sha256:57c540ed8fb1f05cb997c6761cd56db72395b0d6985e90571ff660452ade4f98 \ + --hash=sha256:5f48cb3e88fbc294dc90e215d86fbaf1c852c63dbdb6c3a3e63f45c4b57f7344 \ + --hash=sha256:5fe44e277225fd3dff6882d86d3d447205d43532c3627313d17e754fb3905a0e \ + --hash=sha256:60e8c196cd82cbbd4f130b5290007e13e6de3eca79f0d4d38014769d96a7c475 \ + --hash=sha256:65167da969cd1ec3a1df31cb221ca3a19a8aaa25370ecb17d428415e93c1935e \ + --hash=sha256:680060061adb2d74ce352628cb798cfdec399068aa7f07ba9fb818b2b3305f98 \ + --hash=sha256:6bbaebf0d11567fa8926215ae731e1d58e6ec28a8a25235b8a47405d301332db \ + --hash=sha256:6c05483c3136ac4c91b4e81903cb53a8707d316f488124d0398499a4f8e8ef51 \ + --hash=sha256:6dc8b7e2f4eb184b37655195f421836cfae6f58197b67e3ffc501f1333d993fa \ + --hash=sha256:6e504f7b16118198f138ef31ba24d985b124c2c469fe8467007cf30fd992f934 \ + --hash=sha256:74623f2ab5cc3f7c886add4f735d1031a1d2be4a4ae63c0546cfd74e7a31ddf6 \ + --hash=sha256:77f0d13fa87036d7553bf81f0e1fe3ce68d14c9976c9851744e4d3e91127e95f \ + --hash=sha256:85eef4cb5625c47ee6425c58a3502555e10f45ee973da878ac8248ad58c136f3 \ + --hash=sha256:882567b7ae57c1b1a0250208cc21a7976d8cbcc49d5a322e607e6f09c9e0bd53 \ + --hash=sha256:8b986403023c8f3bf8f487c2e6186afda156174d31c175f747d8934dfddf3479 \ + --hash=sha256:8cfa5f29a695cb7438965e6c3e8d06e0416060cf0d709c1b1c1653a939bf5c2a \ + --hash=sha256:8eafe7c36c8430b7794edeab3087dec7bf31d634d92f2af9949434b9d1964cba \ + --hash=sha256:9198f447e1dc5647d07c9a6bbe2063cc0132728cc7175b39dbc796da5b54920d \ + --hash=sha256:92190db305a6f48734d3982f2c60fa30d6b5ee9bff10f2887b930d7b40119f4c \ + --hash=sha256:927ccf5cd17c48f801f4ed43a7e5673a2724bd2171460be3e3894e6e332ef83a \ + --hash=sha256:98e81648e0b36e325ab67e46b5400a7a6d4a22b8a7c8e8bbfe20e7db7906bf95 \ + --hash=sha256:9a818668b674047fd88c4cddada7ab8f1c298812783e8328e956b78dc4807f9f \ + --hash=sha256:a152d86a3ae00ba5f47b3acf3b827509fd0b6cb7d3259665e63dafbad22a75ea \ + --hash=sha256:a2718c1de8504121714234b6f8241d0019450353276c88b9453c9c3d92e101db \ + --hash=sha256:a39fb973a726e63223287adc6dafe444ce75af952d711e400f3bf2b36ef55a7b \ + --hash=sha256:a899699294f28f7be8992853c0c60741f16ff199205e2e6cdca155762cbaa59d \ + --hash=sha256:a8fdfed3deaf1928fb7667d96e0567cdf58c2b370ea2ee7e586aa383ec2cb346 \ + --hash=sha256:aabb081ca0ec5d39591fc33018cd4b3f96e1a2dd6756282029986d00a785fba4 \ + --hash=sha256:b1f5b45829ac1848893f0ddf5cb326110604d6df96cdc255b0bf9edd154104d4 \ + --hash=sha256:b48e35f4ab6f6a7597c46e301126ceba4c44cd3280e3750f85db48b082624fa4 \ + --hash=sha256:b54c83f1c0c0f1d748dca0af516062b8829d53d1f0c402be24b4257a9c48ada6 \ + --hash=sha256:ba0cb30acd3ef11c94dc27fbfba68940652492bc107075e7ffe23057f9425681 \ + --hash=sha256:bb50ce5fb202a26fd5404620e7ef820ad1ab3558b444cb0b55beb7ef66cd2d63 \ + --hash=sha256:c95eb6db2884917d86cde0b4d4cf31adf485c8ec36bf8696dd66fa70de96f36b \ + --hash=sha256:d0ffd9e2e4441c96a9c91ec1783285d80bf835b677853fc2770a89d50c1e48ac \ + --hash=sha256:d57b5046c120561ba8fa8e4030fbb8b822f3063910fa901ffadf16e2b7128ad6 \ + --hash=sha256:d9e6a7664ddd9746e20b7325351fe1a8408d0a2bf9c63b5e898290ddc8f09544 \ + --hash=sha256:dc578891de1db95b2a35001b695451767b580bb45753717498213c5ff3c41d63 \ + --hash=sha256:e0434aa22c821f44eeb4c650b81c7fbdd8c0122c6c4b5a576a76d5a35625ecd9 \ + --hash=sha256:e06a922a469cae9a57100864caf4f8a97a1026513793969f8ba5b63137a35d25 \ + --hash=sha256:e493962256a38f58283de033d8af176c5c91c084ea30f15834f7545451c42059 \ + --hash=sha256:ecb0019d44f4cdb50b676c5d0cb4b1eae8e15d1ed3d3e6639f986fc92b2ec52c \ + --hash=sha256:f935c4493eda9069851058fa0d9e39dbf6286be690066509305e52912714dbb2 # via # feast (setup.py) # dask @@ -1778,9 +1776,9 @@ pandas==2.3.3 \ # pandas-gbq # pymilvus # snowflake-connector-python -pandas-gbq==0.31.1 \ - --hash=sha256:a5d6e897917302c50feaca2ed1ce6a284abd8b9139383bf063307aab8d0556d9 \ - --hash=sha256:c59878504adee211cf1c34b22cf94393c59cc953626c61ce76e06c8d25fd146d +pandas-gbq==0.32.0 \ + --hash=sha256:249623d574c65e98cf19b7b7ecda97729f4f0a843eae3a0a82d9ef50adcdf4ef \ + --hash=sha256:28018ff09f2e49ab2b01a11329bd4e562fd65da406030b4a8001a3a4e80a1e34 # via google-cloud-bigquery parsy==2.2 \ --hash=sha256:5e981613d9d2d8b68012d1dd0afe928967bea2e4eefdb76c2f545af0dd02a9e7 \ @@ -1928,9 +1926,9 @@ propcache==0.4.1 \ # via # aiohttp # yarl -proto-plus==1.26.1 \ - --hash=sha256:13285478c2dcf2abb829db158e1047e2f1e8d63a077d94263c2b88b043c75a66 \ - --hash=sha256:21a515a4c4c0088a773899e23c7bbade3d18f9c66c73edd4c7ee3816bc96a012 +proto-plus==1.27.0 \ + --hash=sha256:1baa7f81cf0f8acb8bc1f6d085008ba4171eaf669629d1b6d1673b21ed1c0a82 \ + --hash=sha256:873af56dd0d7e91836aee871e5799e1c6f1bda86ac9a983e0bb9f0c266a568c4 # via # google-api-core # google-cloud-bigquery-storage @@ -1960,26 +1958,28 @@ protobuf==6.33.2 \ # grpcio-status # proto-plus # pymilvus -psutil==7.1.3 \ - --hash=sha256:0005da714eee687b4b8decd3d6cc7c6db36215c9e74e5ad2264b90c3df7d92dc \ - --hash=sha256:1068c303be3a72f8e18e412c5b2a8f6d31750fb152f9cb106b54090296c9d251 \ - --hash=sha256:18349c5c24b06ac5612c0428ec2a0331c26443d259e2a0144a9b24b4395b58fa \ - --hash=sha256:19644c85dcb987e35eeeaefdc3915d059dac7bd1167cdcdbf27e0ce2df0c08c0 \ - --hash=sha256:2bdbcd0e58ca14996a42adf3621a6244f1bb2e2e528886959c72cf1e326677ab \ - --hash=sha256:31d77fcedb7529f27bb3a0472bea9334349f9a04160e8e6e5020f22c59893264 \ - --hash=sha256:3792983e23b69843aea49c8f5b8f115572c5ab64c153bada5270086a2123c7e7 \ - --hash=sha256:3bb428f9f05c1225a558f53e30ccbad9930b11c3fc206836242de1091d3e7dd3 \ - --hash=sha256:56d974e02ca2c8eb4812c3f76c30e28836fffc311d55d979f1465c1feeb2b68b \ - --hash=sha256:6c86281738d77335af7aec228328e944b30930899ea760ecf33a4dba66be5e74 \ - --hash=sha256:8f33a3702e167783a9213db10ad29650ebf383946e91bc77f28a5eb083496bc9 \ - --hash=sha256:95ef04cf2e5ba0ab9eaafc4a11eaae91b44f4ef5541acd2ee91d9108d00d59a7 \ - --hash=sha256:ad81425efc5e75da3f39b3e636293360ad8d0b49bed7df824c79764fb4ba9b8b \ - --hash=sha256:b403da1df4d6d43973dc004d19cee3b848e998ae3154cc8097d139b77156c353 \ - --hash=sha256:bc31fa00f1fbc3c3802141eede66f3a2d51d89716a194bf2cd6fc68310a19880 \ - --hash=sha256:bd0d69cee829226a761e92f28140bec9a5ee9d5b4fb4b0cc589068dbfff559b1 \ - --hash=sha256:c525ffa774fe4496282fb0b1187725793de3e7c6b29e41562733cae9ada151ee \ - --hash=sha256:f39c2c19fe824b47484b96f9692932248a54c43799a84282cfe58d05a6449efd \ - --hash=sha256:fac9cd332c67f4422504297889da5ab7e05fd11e3c4392140f7370f4208ded1f +psutil==7.2.1 \ + --hash=sha256:05cc68dbb8c174828624062e73078e7e35406f4ca2d0866c272c2410d8ef06d1 \ + --hash=sha256:08a2f175e48a898c8eb8eace45ce01777f4785bc744c90aa2cc7f2fa5462a266 \ + --hash=sha256:0d67c1822c355aa6f7314d92018fb4268a76668a536f133599b91edd48759442 \ + --hash=sha256:2ceae842a78d1603753561132d5ad1b2f8a7979cb0c283f5b52fb4e6e14b1a79 \ + --hash=sha256:35630d5af80d5d0d49cfc4d64c1c13838baf6717a13effb35869a5919b854cdf \ + --hash=sha256:3fce5f92c22b00cdefd1645aa58ab4877a01679e901555067b1bd77039aa589f \ + --hash=sha256:494c513ccc53225ae23eec7fe6e1482f1b8a44674241b54561f755a898650679 \ + --hash=sha256:5e38404ca2bb30ed7267a46c02f06ff842e92da3bb8c5bfdadbd35a5722314d8 \ + --hash=sha256:81442dac7abfc2f4f4385ea9e12ddf5a796721c0f6133260687fec5c3780fa49 \ + --hash=sha256:923f8653416604e356073e6e0bccbe7c09990acef442def2f5640dd0faa9689f \ + --hash=sha256:93f3f7b0bb07711b49626e7940d6fe52aa9940ad86e8f7e74842e73189712129 \ + --hash=sha256:99a4cd17a5fdd1f3d014396502daa70b5ec21bf4ffe38393e152f8e449757d67 \ + --hash=sha256:ab2b98c9fc19f13f59628d94df5cc4cc4844bc572467d113a8b517d634e362c6 \ + --hash=sha256:b1b0671619343aa71c20ff9767eced0483e4fc9e1f489d50923738caf6a03c17 \ + --hash=sha256:b2e953fcfaedcfbc952b44744f22d16575d3aa78eb4f51ae74165b4e96e55f42 \ + --hash=sha256:ba9f33bb525b14c3ea563b2fd521a84d2fa214ec59e3e6a2858f78d0844dd60d \ + --hash=sha256:cfbe6b40ca48019a51827f20d830887b3107a74a79b01ceb8cc8de4ccb17b672 \ + --hash=sha256:d34d2ca888208eea2b5c68186841336a7f5e0b990edec929be909353a202768a \ + --hash=sha256:ea46c0d060491051d39f0d2cff4f98d5c72b288289f57a21556cc7d504db37fc \ + --hash=sha256:f7583aec590485b43ca601dd9cea0dcd65bd7bb21d30ef4ddbf4ea6b5ed1bdd3 \ + --hash=sha256:f78baafb38436d5a128f837fab2d92c276dfb48af01a240b861ae02b2413ada8 # via # feast (setup.py) # pandas-gbq @@ -2241,9 +2241,9 @@ python-dotenv==1.2.1 \ # pydantic-settings # pymilvus # uvicorn -python-multipart==0.0.20 \ - --hash=sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104 \ - --hash=sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13 +python-multipart==0.0.21 \ + --hash=sha256:7137ebd4d3bbf70ea1622998f902b97a29434a9e8dc40eb203bbcf7c2a2cba92 \ + --hash=sha256:cf7a6713e01c87aa35387f4774e812c4361150938d20d232800f75ffcf266090 # via mcp pytz==2025.2 \ --hash=sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3 \ @@ -2555,12 +2555,14 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:1d8b4a7a8c9b537509d56d5cd10ecdcfbb95912d72480c8861524efecc6a3fff \ --hash=sha256:215f0528b914e5c75ef2559f69dca86878a3beeb0c1be7279d77f18e8d180ed4 \ --hash=sha256:2c0b74aa79e2deade948fe8593654c8ef4228c44ba862bb7c9585c8e0db90f33 \ + --hash=sha256:2e90a344c644a4fa871eb01809c32096487928bd2038bf10f3e4515cb688cc56 \ --hash=sha256:3c5f76216e7b85770d5bb5130ddd11ee89f4d52b11783674a662c7dd57018177 \ --hash=sha256:470daea2c1ce73910f08caf10575676a37159a6d16c4da33d0033546bddebc9b \ --hash=sha256:4748601c8ea959e37e03d13dcda4a44837afcd1b21338e637f7c935b8da06177 \ --hash=sha256:4b6bec67ca45bc166c8729910bd2a87f1c0407ee955df110d78948f5b5827e8a \ --hash=sha256:5225a288e4c8cc2308dbdd874edad6e7d0fd38eac1e9e5f23503425c8eee20d0 \ --hash=sha256:56ead1f8dfb91a54a28cd1d072c74b3d635bcffbd25e50786533b822d4f2cde2 \ + --hash=sha256:5964f832431b7cdfaaa22a660b4c7eb1dfcd6ed41375f67fd3e3440fd95cb3cc \ --hash=sha256:59a8b8bd9c6bedf81ad07c8bd5543eedca55fe9b8780b2b628d495ba55f8db1e \ --hash=sha256:672c45cae53ba88e0dad74b9027dddd09ef6f441e927786b05bec75d949fbb2e \ --hash=sha256:6d0beadc2535157070c9c17ecf25ecec31e13c229a8f69196d7590bde8082bf1 \ @@ -2579,7 +2581,9 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:b8c8b41b97fba5f62349aa285654230296829672fc9939cd7f35aab246d1c08b \ --hash=sha256:ba547ac0b361ab4f1608afbc8432db669bd0819b3e12e29fb5fa9529a8bba81d \ --hash=sha256:c1c2091b1489435ff85728fafeb990f073e64f6f5e81d5cd53059773e8521eb6 \ + --hash=sha256:c64772786d9eee72d4d3784c28f0a636af5b0a29f3fe26ff11f55efe90c0bd85 \ --hash=sha256:cd337d3526ec5298f67d6a30bbbe4ed7e5e68862f0bf6dd21d289f8d37b7d60b \ + --hash=sha256:d29b2b99d527dbc66dd87c3c3248a5dd789d974a507f4653c969999fc7c1191b \ --hash=sha256:d2c3684fca8a05f0ac1d9a21c1f4a266983a7ea9180efb80ffeb03861ecd01a0 \ --hash=sha256:d62e47f5d8a50099b17e2bfc1b0c7d7ecd8ba6b46b1507b58cc4f05eefc3bb1c \ --hash=sha256:d8a2ca754e5415cde2b656c27900b19d50ba076aa05ce66e2207623d3fe41f5a \ @@ -2597,9 +2601,9 @@ sqlglot==25.20.2 \ --hash=sha256:169fe8308dd70d7bd40117b2221b62bdc7c4e2ea8eb07394b2a6146cdedf05ab \ --hash=sha256:cdbfd7ce3f2f39f32bd7b4c23fd9e0fd261636a6b14285b914e8def25fd0a567 # via ibis-framework -sse-starlette==3.0.3 \ - --hash=sha256:88cfb08747e16200ea990c8ca876b03910a23b547ab3bd764c0d8eb81019b971 \ - --hash=sha256:af5bf5a6f3933df1d9c7f8539633dc8444ca6a97ab2e2a7cd3b6e431ac03a431 +sse-starlette==3.1.1 \ + --hash=sha256:bb38f71ae74cfd86b529907a9fda5632195dfa6ae120f214ea4c890c7ee9d436 \ + --hash=sha256:bffa531420c1793ab224f63648c059bcadc412bf9fdb1301ac8de1cf9a67b7fb # via mcp starlette==0.50.0 \ --hash=sha256:9e5391843ec9b6e472eed1365a78c8098cfceb7a74bfd4d6b1c0c0095efb3bca \ @@ -2607,6 +2611,7 @@ starlette==0.50.0 \ # via # fastapi # mcp + # sse-starlette tabulate==0.9.0 \ --hash=sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c \ --hash=sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f @@ -2684,13 +2689,13 @@ typeguard==4.4.4 \ --hash=sha256:3a7fd2dffb705d4d0efaed4306a704c89b9dee850b688f060a8b1615a79e5f74 \ --hash=sha256:b5f562281b6bfa1f5492470464730ef001646128b180769880468bd84b68b09e # via feast (setup.py) -typer==0.20.0 \ - --hash=sha256:1aaf6494031793e4876fb0bacfa6a912b551cf43c1e63c800df8b1a866720c37 \ - --hash=sha256:5b463df6793ec1dca6213a3cf4c0f03bc6e322ac5e16e13ddd622a889489784a +typer==0.21.0 \ + --hash=sha256:c79c01ca6b30af9fd48284058a7056ba0d3bf5cf10d0ff3d0c5b11b68c258ac6 \ + --hash=sha256:c87c0d2b6eee3b49c5c64649ec92425492c14488096dfbc8a0c2799b2f6f9c53 # via fastapi-mcp -types-pymysql==1.1.0.20250916 \ - --hash=sha256:873eb9836bb5e3de4368cc7010ca72775f86e9692a5c7810f8c7f48da082e55b \ - --hash=sha256:98d75731795fcc06723a192786662bdfa760e1e00f22809c104fbb47bac5e29b +types-pymysql==1.1.0.20251220 \ + --hash=sha256:ae1c3df32a777489431e2e9963880a0df48f6591e0aa2fd3a6fabd9dee6eca54 \ + --hash=sha256:fa1082af7dea6c53b6caa5784241924b1296ea3a8d3bd060417352c5e10c0618 # via feast (setup.py) typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -2721,9 +2726,9 @@ typing-inspection==0.4.2 \ # mcp # pydantic # pydantic-settings -tzdata==2025.2 \ - --hash=sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8 \ - --hash=sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9 +tzdata==2025.3 \ + --hash=sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1 \ + --hash=sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7 # via pandas ujson==5.11.0 \ --hash=sha256:0180a480a7d099082501cad1fe85252e4d4bf926b40960fb3d9e87a3a6fbbc80 \ @@ -2811,9 +2816,9 @@ ujson==5.11.0 \ --hash=sha256:fa79fdb47701942c2132a9dd2297a1a85941d966d8c87bfd9e29b0cf423f26cc \ --hash=sha256:fac6c0649d6b7c3682a0a6e18d3de6857977378dce8d419f57a0b20e3d775b39 # via pymilvus -urllib3==2.6.1 \ - --hash=sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f \ - --hash=sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b +urllib3==2.6.2 \ + --hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \ + --hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd # via # botocore # kubernetes diff --git a/sdk/python/requirements/py3.11-minimal-sdist-requirements-build.txt b/sdk/python/requirements/py3.11-minimal-sdist-requirements-build.txt index 08b3ebd9c79..beaafd3e5fd 100644 --- a/sdk/python/requirements/py3.11-minimal-sdist-requirements-build.txt +++ b/sdk/python/requirements/py3.11-minimal-sdist-requirements-build.txt @@ -97,7 +97,9 @@ cffi==2.0.0 \ coherent-licensed==0.5.2 \ --hash=sha256:d8071403ce742d3ac3592ddc4fb7057a46caffb415b928b4d52802e5f208416d \ --hash=sha256:edccc5193ca2786f8fb3f0c7374637a143985f781f7eaa21aca3af2bd634b82f - # via zipp + # via + # importlib-metadata + # zipp cython==3.0.12 \ --hash=sha256:0038c9bae46c459669390e53a1ec115f8096b2e4647ae007ff1bf4e6dee92806 \ --hash=sha256:0faa5e39e5c8cdf6f9c3b1c3f24972826e45911e7f5b99cf99453fca5432f45e \ @@ -170,46 +172,46 @@ cython==3.0.12 \ # pyyaml # snowflake-connector-python # sqlalchemy -cython==3.2.2 \ - --hash=sha256:034ab96cb8bc8e7432bc27491f8d66f51e435b1eb21ddc03aa844be8f21ad847 \ - --hash=sha256:098590c1dc309f8a0406ade031963a95a87714296b425539f9920aebf924560d \ - --hash=sha256:0e35ff0f1bb3a7a5c40afb8fb540e4178b6551909f10748bf39d323f8140ccf3 \ - --hash=sha256:13b99ecb9482aff6a6c12d1ca6feef6940c507af909914b49f568de74fa965fb \ - --hash=sha256:14432d7f207245a3c35556155873f494784169297b28978a6204f1c60d31553e \ - --hash=sha256:177faf4d61e9f2d4d2db61194ac9ec16d3fe3041c1b6830f871a01935319eeb3 \ - --hash=sha256:2b910b89a2a71004064c5e890b9512a251eda63fae252caa0feb9835057035f9 \ - --hash=sha256:3de43a5786033a27fae1c882feb5ff0d023c38b83356e6800c1be0bcd6cf9f11 \ - --hash=sha256:436eb562d0affbc0b959f62f3f9c1ed251b9499e4f29c1d19514ae859894b6bf \ - --hash=sha256:50bbaabee733fd2780985e459fc20f655e02def83e8eff10220ad88455a34622 \ - --hash=sha256:5f818d40bbcf17e2089e2de7840f0de1c0ca527acf9b044aba79d5f5d8a5bdba \ - --hash=sha256:60f4aa425e1ff98abf8d965ae7020f06dd2cbc01dbd945137d2f9cca4ff0524a \ - --hash=sha256:692a41c8fe06fb2dc55ca2c8d71c80c469fd16fe69486ed99f3b3cbb2d3af83f \ - --hash=sha256:820c4a99dbf6b3e6c0300be42b4040b501eff0e1feeb80cfa52c48a346fb0df2 \ - --hash=sha256:826cad0ad43ab05a26e873b5d625f64d458dc739ec6fdeecab848b60a91c4252 \ - --hash=sha256:86b1d39a1ea974dd16fe3bcef0df7b64dadd0bd38d05a339f287b48d37cb109f \ - --hash=sha256:8c9265b3e84ae2d999b7c3165c683e366bbbbbe4346468055ca2366fe013f2df \ - --hash=sha256:8db28aef793c81dc69383b619ca508668998aaf099cd839d3cbae85184cce744 \ - --hash=sha256:8e72ee88a9a5381d30a6da116a3c8352730b9b038a49ed9bc5c3d0ed6d69b06c \ - --hash=sha256:9cd2ede6af225499ad22888dbfb13b92d71fc1016f401ee637559a5831b177c2 \ - --hash=sha256:a3898c076e9c458bcb3e4936187919fda5f5365fe4c567d35d2b003444b6f3fe \ - --hash=sha256:a473df474ba89e9fee81ee82b31062a267f9e598096b222783477e56d02ad12c \ - --hash=sha256:a6387e3ad31342443916db9a419509935fddd8d4cbac34aab9c895ae55326a56 \ - --hash=sha256:a9509f1e9c41c86b790cff745bb31927bbc861662a3b462596d71d3d2a578abb \ - --hash=sha256:aa24cd0bdab27ca099b2467806c684404add597c1108e07ddf7b6471653c85d7 \ - --hash=sha256:aff11412ed5fc78bd8b148621f4d1034fcad6cfcba468c20cd9f327b4f61ec3e \ - --hash=sha256:b223c1f84c3420c24f6a4858e979524bd35a79437a5839e29d41201c87ed119d \ - --hash=sha256:b4df52101209817fde7284cf779156f79142fb639b1d7840f11680ff4bb30604 \ - --hash=sha256:b4fe499eed7cd70b2aa4e096b9ce2588f5e6fdf049b46d40a5e55efcde6e4904 \ - --hash=sha256:b5afac4e77e71a9010dc7fd3191ced00f9b12b494dd7525c140781054ce63a73 \ - --hash=sha256:c3add3d483acc73129a61d105389344d792c17e7c1cee24863f16416bd071634 \ - --hash=sha256:ca18d9d53c0e2f0c9347478b37532b46e0dc34c704e052ab1b0d8b21a290fc0f \ - --hash=sha256:d140c2701cbb8cf960300cf1b67f3b4fa9d294d32e51b85f329bff56936a82fd \ - --hash=sha256:d7b3447b2005dffc5f276d420a480d2b57d15091242652d410b6a46fb00ed251 \ - --hash=sha256:d8c93fe128b58942832b1fcac96e48f93c2c69b569eff0d38d30fb5995fecfa0 \ - --hash=sha256:e7200309b81f4066cf36a96efeec646716ca74afd73d159045169263db891133 \ - --hash=sha256:f560ff3aea5b5df93853ec7bf1a1e9623d6d511f4192f197559aca18fca43392 \ - --hash=sha256:fed44d0ab2d36f1b0301c770b0dafec23bcb9700d58e7769cd6d9136b3304c11 \ - --hash=sha256:ff07e784ea748225bbdea07fec0ac451379e9e41a0a84cb57b36db19dd01ae71 +cython==3.2.3 \ + --hash=sha256:0145e64485f0a9741c9314ae176282dffeb48d2ef30ae315d7224698867c317f \ + --hash=sha256:06a1317097f540d3bb6c7b81ed58a0d8b9dbfa97abf39dfd4c22ee87a6c7241e \ + --hash=sha256:0a75a04688875b275a6c875565e672325bae04327dd6ec2fc25aeb5c6cf82fce \ + --hash=sha256:1309bdce06f767e8514377f44b3a5b9e5b91e58af1348010cca10b572e1852ad \ + --hash=sha256:18b5e738c9dbb1cb488b51e35c3a1b9aa7363166cce40158fe6ccb454f6498ac \ + --hash=sha256:18edc858e6a52de47fe03ffa97ea14dadf450e20069de0a8aef531006c4bbd93 \ + --hash=sha256:1d097ad4686b58b8c03d760d08eca28f79878d404ef7452c49636170571654e0 \ + --hash=sha256:228f11be8406015d1ce84a25bf4f96167ff6fc18b834deca5716d95ae15a818c \ + --hash=sha256:22a624290c2883387b2c2cfb5224c15bff21432c6a2cf0c23ac8df3dcbd45e96 \ + --hash=sha256:25732f3981a93407826297f4423206e5e22c3cfccfc74e37bf444453bbdc076f \ + --hash=sha256:26404441f733fd1cfb0dd9c45477f501437e7d51fad05bb402bd2feb4e127aa3 \ + --hash=sha256:283262b8f902323ceb6ed3b643f275a2a963e7ab059f0714a467933383cbc56d \ + --hash=sha256:2a18f2e3bcd018416157d0a83446e29b4a31437ab79061fe5504c077e70389d0 \ + --hash=sha256:3141734fb15f8b5e9402b9240f8da8336edecae91742b41c85678c31ab68f66d \ + --hash=sha256:3829f99d611412288f44ff543e9d2b5c0c83274998b2a6680bbe5cca3539c1fd \ + --hash=sha256:4f40efa83c93060a271046930d2322ec045abb9722d25a377702cb57aa823c2b \ + --hash=sha256:51fd1a56d0fc682c05ecc44f11927dbe28dd2867c30148557b62d7d1017a13d8 \ + --hash=sha256:55c0157a5940fbf0b054508207fe0fc5cc796d0532af492c0fa35b5b41a883f7 \ + --hash=sha256:60d19376252722241a3d3ec8a695c5cae4deb053486d2e5f9a40cb569a0cf984 \ + --hash=sha256:6b01b36c9eb1b68c25bddbeef7379f7bfc37f7c9afc044e71840ffab761a2dd0 \ + --hash=sha256:6b6dd6b7aca8447b2a6779b314cc402f1e4990754507a88477e535b3c8b41ad1 \ + --hash=sha256:73afc824896ffaf22bf8122d0a7107f0120e3188a353bdcfa92317fc0d9a87ce \ + --hash=sha256:74f482da8b605c61b4df6ff716d013f20131949cb2fa59b03e63abd36ef5bac0 \ + --hash=sha256:80f20369d7aaf4e76cfef902025256918a5cc6eb0aed6d8783e4b1c563e4f6c4 \ + --hash=sha256:84330e7c8bf220a82b633678b9f99e10227c8f4c406d67c5552449ab2afedef8 \ + --hash=sha256:9a24cc653fad3adbd9cbaa638d80df3aa08a1fe27f62eb35850971c70be680df \ + --hash=sha256:9aa1a8abf3d8bb53cc19cfaa21c004afad8d4ccb17513f8aa11a788d1f525abd \ + --hash=sha256:9c5ac7201d8382c0da69e4a119c14be6acd7c286615a0383ffbd1dbfdbaa3df7 \ + --hash=sha256:b39dff92db70cbd95528f3b81d70e06bd6d3fc9c1dd91321e4d3b999ece3bceb \ + --hash=sha256:c041f7e338cca2422e0924716b04fabeda57636214324fc1941396acce99e7c7 \ + --hash=sha256:c102388cf7604ff5647164d5041fd5de2393198a87883fdb50f6c078fc2f4f8e \ + --hash=sha256:c2365a0c79ab9c0fa86d30a4a6ba7e37fc1be9537c48b79b9d63ee7e08bf2fef \ + --hash=sha256:cf210228c15b5c625824d8e31d43b6fea25f9e13c81dac632f2f7d838e0229a5 \ + --hash=sha256:d1f8700ba89c977438744f083890d87187f15709507a5489e0f6d682053b7fa0 \ + --hash=sha256:e31f52ea7e35463b21410f150006eb07b663a0b3ceea8ee8f35e0b8e02b75f50 \ + --hash=sha256:e4293f1861480b397809a6f021a6c12e15e918feae1c7add80c99d07af206578 \ + --hash=sha256:f13832412d633376ffc08d751cc18ed0d7d00a398a4065e2871db505258748a6 \ + --hash=sha256:f5bf0cebeb4147e172a114437d3fce5a507595d8fdd821be792b1bb25c691514 \ + --hash=sha256:fabe2f37acb63a5521d16193effb15acd082e35458f30f1c1f3e506271fee8a7 # via uvloop dunamai==1.25.0 \ --hash=sha256:7f9dc687dd3256e613b6cc978d9daabfd2bb5deb8adc541fc135ee423ffa98ab \ @@ -326,83 +328,83 @@ jinja2==3.1.6 \ # via # poetry-dynamic-versioning # uv-dynamic-versioning -librt==0.7.3 \ - --hash=sha256:020c6db391268bcc8ce75105cb572df8cb659a43fd347366aaa407c366e5117a \ - --hash=sha256:0fa9ac2e49a6bee56e47573a6786cb635e128a7b12a0dc7851090037c0d397a3 \ - --hash=sha256:11ad45122bbed42cfc8b0597450660126ef28fd2d9ae1a219bc5af8406f95678 \ - --hash=sha256:120dd21d46ff875e849f1aae19346223cf15656be489242fe884036b23d39e93 \ - --hash=sha256:14569ac5dd38cfccf0a14597a88038fb16811a6fede25c67b79c6d50fc2c8fdc \ - --hash=sha256:1617bea5ab31266e152871208502ee943cb349c224846928a1173c864261375e \ - --hash=sha256:170cdb8436188347af17bf9cccf3249ba581c933ed56d926497119d4cf730cec \ - --hash=sha256:1975eda520957c6e0eb52d12968dd3609ffb7eef05d4223d097893d6daf1d8a7 \ - --hash=sha256:1fe603877e1865b5fd047a5e40379509a4a60204aa7aa0f72b16f7a41c3f0712 \ - --hash=sha256:24d70810f6e2ea853ff79338001533716b373cc0f63e2a0be5bc96129edb5fb5 \ - --hash=sha256:256793988bff98040de23c57cf36e1f4c2f2dc3dcd17537cdac031d3b681db71 \ - --hash=sha256:25711f364c64cab2c910a0247e90b51421e45dbc8910ceeb4eac97a9e132fc6f \ - --hash=sha256:2682162855a708e3270eba4b92026b93f8257c3e65278b456c77631faf0f4f7a \ - --hash=sha256:2cf9d73499486ce39eebbff5f42452518cc1f88d8b7ea4a711ab32962b176ee2 \ - --hash=sha256:2e40520c37926166c24d0c2e0f3bc3a5f46646c34bdf7b4ea9747c297d6ee809 \ - --hash=sha256:2e980cf1ed1a2420a6424e2ed884629cdead291686f1048810a817de07b5eb18 \ - --hash=sha256:2f03484b54bf4ae80ab2e504a8d99d20d551bfe64a7ec91e218010b467d77093 \ - --hash=sha256:35f1609e3484a649bb80431310ddbec81114cd86648f1d9482bc72a3b86ded2e \ - --hash=sha256:399938edbd3d78339f797d685142dd8a623dfaded023cf451033c85955e4838a \ - --hash=sha256:399bbd7bcc1633c3e356ae274a1deb8781c7bf84d9c7962cc1ae0c6e87837292 \ - --hash=sha256:3ec50cf65235ff5c02c5b747748d9222e564ad48597122a361269dd3aa808798 \ - --hash=sha256:3edbf257c40d21a42615e9e332a6b10a8bacaaf58250aed8552a14a70efd0d65 \ - --hash=sha256:440c788f707c061d237c1e83edf6164ff19f5c0f823a3bf054e88804ebf971ec \ - --hash=sha256:44b3689b040df57f492e02cd4f0bacd1b42c5400e4b8048160c9d5e866de8abe \ - --hash=sha256:4887c29cadbdc50640179e3861c276325ff2986791e6044f73136e6e798ff806 \ - --hash=sha256:5460d99ed30f043595bbdc888f542bad2caeb6226b01c33cda3ae444e8f82d42 \ - --hash=sha256:550fdbfbf5bba6a2960b27376ca76d6aaa2bd4b1a06c4255edd8520c306fcfc0 \ - --hash=sha256:56f2a47beda8409061bc1c865bef2d4bd9ff9255219402c0817e68ab5ad89aed \ - --hash=sha256:572a24fc5958c61431da456a0ef1eeea6b4989d81eeb18b8e5f1f3077592200b \ - --hash=sha256:59cb0470612d21fa1efddfa0dd710756b50d9c7fb6c1236bbf8ef8529331dc70 \ - --hash=sha256:6038ccbd5968325a5d6fd393cf6e00b622a8de545f0994b89dd0f748dcf3e19e \ - --hash=sha256:6488e69d408b492e08bfb68f20c4a899a354b4386a446ecd490baff8d0862720 \ - --hash=sha256:687403cced6a29590e6be6964463835315905221d797bc5c934a98750fe1a9af \ - --hash=sha256:6b407c23f16ccc36614c136251d6b32bf30de7a57f8e782378f1107be008ddb0 \ - --hash=sha256:6b4e7bff1d76dd2b46443078519dc75df1b5e01562345f0bb740cea5266d8218 \ - --hash=sha256:6bdd9adfca615903578d2060ee8a6eb1c24eaf54919ff0ddc820118e5718931b \ - --hash=sha256:6eb9295c730e26b849ed1f4022735f36863eb46b14b6e10604c1c39b8b5efaea \ - --hash=sha256:703456146dc2bf430f7832fd1341adac5c893ec3c1430194fdcefba00012555c \ - --hash=sha256:754a0d09997095ad764ccef050dd5bf26cbf457aab9effcba5890dad081d879e \ - --hash=sha256:7af7785f5edd1f418da09a8cdb9ec84b0213e23d597413e06525340bcce1ea4f \ - --hash=sha256:7b29e97273bd6999e2bfe9fe3531b1f4f64effd28327bced048a33e49b99674a \ - --hash=sha256:7b4f57f7a0c65821c5441d98c47ff7c01d359b1e12328219709bdd97fdd37f90 \ - --hash=sha256:8837d5a52a2d7aa9f4c3220a8484013aed1d8ad75240d9a75ede63709ef89055 \ - --hash=sha256:8ccadf260bb46a61b9c7e89e2218f6efea9f3eeaaab4e3d1f58571890e54858e \ - --hash=sha256:8d8cf653e798ee4c4e654062b633db36984a1572f68c3aa25e364a0ddfbbb910 \ - --hash=sha256:93b2a1f325fefa1482516ced160c8c7b4b8d53226763fa6c93d151fa25164207 \ - --hash=sha256:9f0e0927efe87cd42ad600628e595a1a0aa1c64f6d0b55f7e6059079a428641a \ - --hash=sha256:a59a69deeb458c858b8fea6acf9e2acd5d755d76cd81a655256bc65c20dfff5b \ - --hash=sha256:a9f9b661f82693eb56beb0605156c7fca57f535704ab91837405913417d6990b \ - --hash=sha256:abfc57cab3c53c4546aee31859ef06753bfc136c9d208129bad23e2eca39155a \ - --hash=sha256:aca73d70c3f553552ba9133d4a09e767dcfeee352d8d8d3eb3f77e38a3beb3ed \ - --hash=sha256:adeaa886d607fb02563c1f625cf2ee58778a2567c0c109378da8f17ec3076ad7 \ - --hash=sha256:b278a9248a4e3260fee3db7613772ca9ab6763a129d6d6f29555e2f9b168216d \ - --hash=sha256:b7c1239b64b70be7759554ad1a86288220bbb04d68518b527783c4ad3fb4f80b \ - --hash=sha256:bf8c7735fbfc0754111f00edda35cf9e98a8d478de6c47b04eaa9cef4300eaa7 \ - --hash=sha256:c634a0a6db395fdaba0361aa78395597ee72c3aad651b9a307a3a7eaf5efd67e \ - --hash=sha256:cad9971881e4fec00d96af7eaf4b63aa7a595696fc221808b0d3ce7ca9743258 \ - --hash=sha256:cbdb3f337c88b43c3b49ca377731912c101178be91cb5071aac48faa898e6f8e \ - --hash=sha256:cd8551aa21df6c60baa2624fd086ae7486bdde00c44097b32e1d1b1966e365e0 \ - --hash=sha256:d09f677693328503c9e492e33e9601464297c01f9ebd966ea8fc5308f3069bfd \ - --hash=sha256:d376a35c6561e81d2590506804b428fc1075fcc6298fc5bb49b771534c0ba010 \ - --hash=sha256:d39079379a9a28e74f4d57dc6357fa310a1977b51ff12239d7271ec7e71d67f5 \ - --hash=sha256:d86f94743a11873317094326456b23f8a5788bad9161fd2f0e52088c33564620 \ - --hash=sha256:d91e60ac44bbe3a77a67af4a4c13114cbe9f6d540337ce22f2c9eaf7454ca71f \ - --hash=sha256:d9883b2d819ce83f87ba82a746c81d14ada78784db431e57cc9719179847376e \ - --hash=sha256:e094e445c37c57e9ec612847812c301840239d34ccc5d153a982fa9814478c60 \ - --hash=sha256:e19acfde38cb532a560b98f473adc741c941b7a9bc90f7294bc273d08becb58b \ - --hash=sha256:e32d43610dff472eab939f4d7fbdd240d1667794192690433672ae22d7af8445 \ - --hash=sha256:ed028fc3d41adda916320712838aec289956c89b4f0a361ceadf83a53b4c047a \ - --hash=sha256:ef59c938f72bdbc6ab52dc50f81d0637fde0f194b02d636987cea2ab30f8f55a \ - --hash=sha256:f3d4801db8354436fd3936531e7f0e4feb411f62433a6b6cb32bb416e20b529f \ - --hash=sha256:f57aca20e637750a2c18d979f7096e2c2033cc40cf7ed201494318de1182f135 \ - --hash=sha256:f9da128d0edf990cf0d2ca011b02cd6f639e79286774bd5b0351245cbb5a6e51 \ - --hash=sha256:fbd7351d43b80d9c64c3cfcb50008f786cc82cba0450e8599fdd64f264320bd3 \ - --hash=sha256:fcb72249ac4ea81a7baefcbff74df7029c3cb1cf01a711113fa052d563639c9c \ - --hash=sha256:ff21c554304e8226bf80c3a7754be27c6c3549a9fec563a03c06ee8f494da8fc +librt==0.7.5 \ + --hash=sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee \ + --hash=sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1 \ + --hash=sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4 \ + --hash=sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899 \ + --hash=sha256:0e2bf8f91093fac43e3eaebacf777f12fd539dce9ec5af3efc6d8424e96ccd49 \ + --hash=sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d \ + --hash=sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760 \ + --hash=sha256:191cbd42660446d67cf7a95ac7bfa60f49b8b3b0417c64f216284a1d86fc9335 \ + --hash=sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8 \ + --hash=sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2 \ + --hash=sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec \ + --hash=sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b \ + --hash=sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0 \ + --hash=sha256:39183abee670bc37b85f11e86c44a9cad1ed6efa48b580083e89ecee13dd9717 \ + --hash=sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325 \ + --hash=sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45 \ + --hash=sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d \ + --hash=sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233 \ + --hash=sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d \ + --hash=sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544 \ + --hash=sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802 \ + --hash=sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2 \ + --hash=sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d \ + --hash=sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f \ + --hash=sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169 \ + --hash=sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe \ + --hash=sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982 \ + --hash=sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2 \ + --hash=sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa \ + --hash=sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4 \ + --hash=sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4 \ + --hash=sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57 \ + --hash=sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26 \ + --hash=sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361 \ + --hash=sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad \ + --hash=sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e \ + --hash=sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf \ + --hash=sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f \ + --hash=sha256:8dcae24de1bc9da93aa689cb6313c70e776d7cea2fcf26b9b6160fedfe6bd9af \ + --hash=sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2 \ + --hash=sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89 \ + --hash=sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904 \ + --hash=sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6 \ + --hash=sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276 \ + --hash=sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e \ + --hash=sha256:a9eacbf983319b26b5f340a2e0cd47ac1ee4725a7f3a72fd0f15063c934b69d6 \ + --hash=sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409 \ + --hash=sha256:af69d9e159575e877c7546d1ee817b4ae089aa221dd1117e20c24ad8dc8659c7 \ + --hash=sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a \ + --hash=sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4 \ + --hash=sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775 \ + --hash=sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203 \ + --hash=sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419 \ + --hash=sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5 \ + --hash=sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023 \ + --hash=sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b \ + --hash=sha256:cdb001a1a0e4f41e613bca2c0fc147fc8a7396f53fc94201cbfd8ec7cd69ca4b \ + --hash=sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d \ + --hash=sha256:d2cc7d187e8c6e9b7bdbefa9697ce897a704ea7a7ce844f2b4e0e2aa07ae51d3 \ + --hash=sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e \ + --hash=sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a \ + --hash=sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b \ + --hash=sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db \ + --hash=sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd \ + --hash=sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa \ + --hash=sha256:df2e210400b28e50994477ebf82f055698c79797b6ee47a1669d383ca33263e1 \ + --hash=sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805 \ + --hash=sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a \ + --hash=sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25 \ + --hash=sha256:ea1b60b86595a5dc1f57b44a801a1c4d8209c0a69518391d349973a4491408e6 \ + --hash=sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b \ + --hash=sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5 \ + --hash=sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416 \ + --hash=sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc \ + --hash=sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7 \ + --hash=sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96 # via mypy markupsafe==3.0.3 \ --hash=sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f \ @@ -495,21 +497,21 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via jinja2 -maturin==1.10.2 \ - --hash=sha256:04df81ee295dcda37828bd025a4ac688ea856e3946e4cb300a8f44a448de0069 \ - --hash=sha256:07a82864352feeaf2167247c8206937ef6c6ae9533025d416b7004ade0ea601d \ - --hash=sha256:11c73815f21a755d2129c410e6cb19dbfacbc0155bfc46c706b69930c2eb794b \ - --hash=sha256:259292563da89850bf8f7d37aa4ddba22905214c1e180b1c8f55505dfd8c0e81 \ - --hash=sha256:7fbd997c5347649ee7987bd05a92bd5b8b07efa4ac3f8bcbf6196e07eb573d89 \ - --hash=sha256:96e1d391e4c1fa87edf2a37e4d53d5f2e5f39dd880b9d8306ac9f8eb212d23f8 \ - --hash=sha256:a217aa7c42aa332fb8e8377eb07314e1f02cf0fe036f614aca4575121952addd \ - --hash=sha256:a41ec70d99e27c05377be90f8e3c3def2a7bae4d0d9d5ea874aaf2d1da625d5c \ - --hash=sha256:a4c29a770ea2c76082e0afc6d4efd8ee94405588bfae00d10828f72e206c739b \ - --hash=sha256:da031771d9fb6ddb1d373638ec2556feee29e4507365cd5749a2d354bcadd818 \ - --hash=sha256:da777766fd584440dc9fecd30059a94f85e4983f58b09e438ae38ee4b494024c \ - --hash=sha256:e3ce9b2ad4fb9c341f450a6d32dc3edb409a2d582a81bc46ba55f6e3b6196b22 \ - --hash=sha256:efcd496a3202ffe0d0489df1f83d08b91399782fb2dd545d5a1e7bf6fd81af39 \ - --hash=sha256:f0d1b7b5f73c8d30a7e71cd2a2189a7f0126a3a3cd8b3d6843e7e1d4db50f759 +maturin==1.11.0 \ + --hash=sha256:0fbe565ede0901de7743cd028ad6c13be623b1c7158641f8a50d7a4353f4a97c \ + --hash=sha256:16cb48f1f2b6b3d8c2732f77d98d8f7f0ab84765abf0c1c82df2c8ea7d8ef2ec \ + --hash=sha256:276a900d4096c246cc236aa00460adb3ab195c37172a9f1087bbde6a127f0780 \ + --hash=sha256:51cadd0373950cfae6aac6823a3d2bf56e34e4efed0abae8c7d15e337d9bb5e6 \ + --hash=sha256:83b73299f36301d943550c609e0a0dff08d21e3674c1369c10df77ce470fd97b \ + --hash=sha256:8695b79462e1f46013993d715485db289cf5a7702aa2d9941ac333564ca20d79 \ + --hash=sha256:8bf16fc56f4abcf3af7d5fb6dab3888f73e3648287c8efe77e14fa1b006a3ef4 \ + --hash=sha256:95c5d778c96ab237837cd6d38e01f0bdca52c64e0d00647a69133a8e7ae4eed4 \ + --hash=sha256:9aaaec73e120ac7add99f53d606aa6d432c8e0337af742b2ca26fb8d17181500 \ + --hash=sha256:aa2d9db1c03e9eb0640a578caf00a6fa2d9399abb7375a970b0f6d6e934b5441 \ + --hash=sha256:d13d3721931d407491d9b3fe161146aa78ab08a8fc9735302abee1d368aedb03 \ + --hash=sha256:d53bde4f939dac9340aa253c2765073de6b8595a29a294503042fcbfec8bd842 \ + --hash=sha256:dba7daeb54615532c11f8fe39bc9514b81215f6f4e91909ec227e06227c286cf \ + --hash=sha256:debf472d3ecd76a3a750b056b99dcb64c119467dc44f0e2d6e6363acb128b96a # via # cryptography # pydantic-core @@ -518,9 +520,11 @@ maturin==1.10.2 \ meson-python==0.15.0 \ --hash=sha256:3ae38253ff02b2e947a05e362a2eaf5a9a09d133c5666b4123399ee5fbf2e591 \ --hash=sha256:fddb73eecd49e89c1c41c87937cd89c2d0b65a1c63ba28238681d4bd9484d26f - # via - # numpy - # pandas + # via pandas +meson-python==0.18.0 \ + --hash=sha256:3b0fe051551cc238f5febb873247c0949cd60ded556efa130aa57021804868e2 \ + --hash=sha256:c56a99ec9df669a40662fe46960321af6e4b14106c14db228709c1628e23848d + # via numpy meson==1.7.1 \ --hash=sha256:155780a5be87f6dd7f427ad8bcbf0f2b2c5f62ee5fdacca7caa9de8439a24b89 \ --hash=sha256:6d9cbc9ce87a70243c75e4cc668ee3f206ab50b184beb0a08ece948112f19bd7 @@ -531,81 +535,79 @@ mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 # via mypy -numpy==2.3.5 \ - --hash=sha256:00dc4e846108a382c5869e77c6ed514394bdeb3403461d25a829711041217d5b \ - --hash=sha256:0472f11f6ec23a74a906a00b48a4dcf3849209696dff7c189714511268d103ae \ - --hash=sha256:04822c00b5fd0323c8166d66c701dc31b7fbd252c100acd708c48f763968d6a3 \ - --hash=sha256:052e8c42e0c49d2575621c158934920524f6c5da05a1d3b9bab5d8e259e045f0 \ - --hash=sha256:09a1bea522b25109bf8e6f3027bd810f7c1085c64a0c7ce050c1676ad0ba010b \ - --hash=sha256:0cd00b7b36e35398fa2d16af7b907b65304ef8bb4817a550e06e5012929830fa \ - --hash=sha256:0d8163f43acde9a73c2a33605353a4f1bc4798745a8b1d73183b28e5b435ae28 \ - --hash=sha256:1062fde1dcf469571705945b0f221b73928f34a20c904ffb45db101907c3454e \ - --hash=sha256:11e06aa0af8c0f05104d56450d6093ee639e15f24ecf62d417329d06e522e017 \ - --hash=sha256:17531366a2e3a9e30762c000f2c43a9aaa05728712e25c11ce1dbe700c53ad41 \ - --hash=sha256:1978155dd49972084bd6ef388d66ab70f0c323ddee6f693d539376498720fb7e \ - --hash=sha256:1ed1ec893cff7040a02c8aa1c8611b94d395590d553f6b53629a4461dc7f7b63 \ - --hash=sha256:2dcd0808a421a482a080f89859a18beb0b3d1e905b81e617a188bd80422d62e9 \ - --hash=sha256:2e2eb32ddb9ccb817d620ac1d8dae7c3f641c1e5f55f531a33e8ab97960a75b8 \ - --hash=sha256:2feae0d2c91d46e59fcd62784a3a83b3fb677fead592ce51b5a6fbb4f95965ff \ - --hash=sha256:3095bdb8dd297e5920b010e96134ed91d852d81d490e787beca7e35ae1d89cf7 \ - --hash=sha256:30bc11310e8153ca664b14c5f1b73e94bd0503681fcf136a163de856f3a50139 \ - --hash=sha256:3101e5177d114a593d79dd79658650fe28b5a0d8abeb8ce6f437c0e6df5be1a4 \ - --hash=sha256:396084a36abdb603546b119d96528c2f6263921c50df3c8fd7cb28873a237748 \ - --hash=sha256:3997b5b3c9a771e157f9aae01dd579ee35ad7109be18db0e85dbdbe1de06e952 \ - --hash=sha256:414802f3b97f3c1eef41e530aaba3b3c1620649871d8cb38c6eaff034c2e16bd \ - --hash=sha256:51c1e14eb1e154ebd80e860722f9e6ed6ec89714ad2db2d3aa33c31d7c12179b \ - --hash=sha256:51c55fe3451421f3a6ef9a9c1439e82101c57a2c9eab9feb196a62b1a10b58ce \ - --hash=sha256:5ee6609ac3604fa7780e30a03e5e241a7956f8e2fcfe547d51e3afa5247ac47f \ - --hash=sha256:612a95a17655e213502f60cfb9bf9408efdc9eb1d5f50535cc6eb365d11b42b5 \ - --hash=sha256:6203fdf9f3dc5bdaed7319ad8698e685c7a3be10819f41d32a0723e611733b42 \ - --hash=sha256:63c0e9e7eea69588479ebf4a8a270d5ac22763cc5854e9a7eae952a3908103f7 \ - --hash=sha256:66f85ce62c70b843bab1fb14a05d5737741e74e28c7b8b5a064de10142fad248 \ - --hash=sha256:6cf9b429b21df6b99f4dee7a1218b8b7ffbbe7df8764dc0bd60ce8a0708fed1e \ - --hash=sha256:70b37199913c1bd300ff6e2693316c6f869c7ee16378faf10e4f5e3275b299c3 \ - --hash=sha256:727fd05b57df37dc0bcf1a27767a3d9a78cbbc92822445f32cc3436ba797337b \ - --hash=sha256:74ae7b798248fe62021dbf3c914245ad45d1a6b0cb4a29ecb4b31d0bfbc4cc3e \ - --hash=sha256:784db1dcdab56bf0517743e746dfb0f885fc68d948aba86eeec2cba234bdf1c0 \ - --hash=sha256:86945f2ee6d10cdfd67bcb4069c1662dd711f7e2a4343db5cecec06b87cf31aa \ - --hash=sha256:86d835afea1eaa143012a2d7a3f45a3adce2d7adc8b4961f0b362214d800846a \ - --hash=sha256:872a5cf366aec6bb1147336480fef14c9164b154aeb6542327de4970282cd2f5 \ - --hash=sha256:8b973c57ff8e184109db042c842423ff4f60446239bd585a5131cc47f06f789d \ - --hash=sha256:8cba086a43d54ca804ce711b2a940b16e452807acebe7852ff327f1ecd49b0d4 \ - --hash=sha256:8f7f0e05112916223d3f438f293abf0727e1181b5983f413dfa2fefc4098245c \ - --hash=sha256:900218e456384ea676e24ea6a0417f030a3b07306d29d7ad843957b40a9d8d52 \ - --hash=sha256:93eebbcf1aafdf7e2ddd44c2923e2672e1010bddc014138b229e49725b4d6be5 \ - --hash=sha256:9c75442b2209b8470d6d5d8b1c25714270686f14c749028d2199c54e29f20b4d \ - --hash=sha256:9ee2197ef8c4f0dfe405d835f3b6a14f5fee7782b5de51ba06fb65fc9b36e9f1 \ - --hash=sha256:a414504bef8945eae5f2d7cb7be2d4af77c5d1cb5e20b296c2c25b61dff2900c \ - --hash=sha256:a4b9159734b326535f4dd01d947f919c6eefd2d9827466a696c44ced82dfbc18 \ - --hash=sha256:a80afd79f45f3c4a7d341f13acbe058d1ca8ac017c165d3fa0d3de6bc1a079d7 \ - --hash=sha256:aa5bc7c5d59d831d9773d1170acac7893ce3a5e130540605770ade83280e7188 \ - --hash=sha256:acfd89508504a19ed06ef963ad544ec6664518c863436306153e13e94605c218 \ - --hash=sha256:aeffcab3d4b43712bb7a60b65f6044d444e75e563ff6180af8f98dd4b905dfd2 \ - --hash=sha256:afaffc4393205524af9dfa400fa250143a6c3bc646c08c9f5e25a9f4b4d6a903 \ - --hash=sha256:b0c7088a73aef3d687c4deef8452a3ac7c1be4e29ed8bf3b366c8111128ac60c \ - --hash=sha256:b46b4ec24f7293f23adcd2d146960559aaf8020213de8ad1909dba6c013bf89c \ - --hash=sha256:b501b5fa195cc9e24fe102f21ec0a44dffc231d2af79950b451e0d99cea02234 \ - --hash=sha256:bf06bc2af43fa8d32d30fae16ad965663e966b1a3202ed407b84c989c3221e82 \ - --hash=sha256:c804e3a5aba5460c73955c955bdbd5c08c354954e9270a2c1565f62e866bdc39 \ - --hash=sha256:c8a9958e88b65c3b27e22ca2a076311636850b612d6bbfb76e8d156aacde2aaf \ - --hash=sha256:cc0a57f895b96ec78969c34f682c602bf8da1a0270b09bc65673df2e7638ec20 \ - --hash=sha256:cc8920d2ec5fa99875b670bb86ddeb21e295cb07aa331810d9e486e0b969d946 \ - --hash=sha256:ccc933afd4d20aad3c00bcef049cb40049f7f196e0397f1109dba6fed63267b0 \ - --hash=sha256:ce581db493ea1a96c0556360ede6607496e8bf9b3a8efa66e06477267bc831e9 \ - --hash=sha256:d0f23b44f57077c1ede8c5f26b30f706498b4862d3ff0a7298b8411dd2f043ff \ - --hash=sha256:d21644de1b609825ede2f48be98dfde4656aefc713654eeee280e37cadc4e0ad \ - --hash=sha256:d6889ec4ec662a1a37eb4b4fb26b6100841804dac55bd9df579e326cdc146227 \ - --hash=sha256:de5672f4a7b200c15a4127042170a694d4df43c992948f5e1af57f0174beed10 \ - --hash=sha256:e6a0bc88393d65807d751a614207b7129a310ca4fe76a74e5c7da5fa5671417e \ - --hash=sha256:ed89927b86296067b4f81f108a2271d8926467a8868e554eaf370fc27fa3ccaf \ - --hash=sha256:ee3888d9ff7c14604052b2ca5535a30216aa0a58e948cdd3eeb8d3415f638769 \ - --hash=sha256:f0963b55cdd70fad460fa4c1341f12f976bb26cb66021a5580329bd498988310 \ - --hash=sha256:f16417ec91f12f814b10bafe79ef77e70113a2f5f7018640e7425ff979253425 \ - --hash=sha256:f28620fe26bee16243be2b7b874da327312240a7cdc38b769a697578d2100013 \ - --hash=sha256:f4255143f5160d0de972d28c8f9665d882b5f61309d8362fdd3e103cf7bf010c \ - --hash=sha256:ffac52f28a7849ad7576293c0cb7b9f08304e8f7d738a8cb8a90ec4c55a998eb \ - --hash=sha256:ffe22d2b05504f786c867c8395de703937f934272eb67586817b46188b4ded6d \ - --hash=sha256:fffe29a1ef00883599d1dc2c51aa2e5d80afe49523c261a74933df395c15c520 +numpy==2.4.0 \ + --hash=sha256:009bd0ea12d3c784b6639a8457537016ce5172109e585338e11334f6a7bb88ee \ + --hash=sha256:02a2038eb27f9443a8b266a66911e926566b5a6ffd1a689b588f7f35b81e7dc3 \ + --hash=sha256:0804a8e4ab070d1d35496e65ffd3cf8114c136a2b81f61dfab0de4b218aacfd5 \ + --hash=sha256:0feafc9e03128074689183031181fac0897ff169692d8492066e949041096548 \ + --hash=sha256:1889b3a3f47a7b5bee16bc25a2145bd7cb91897f815ce3499db64c7458b6d91d \ + --hash=sha256:1d8f9fde5f6dc1b6fc34df8162f3b3079365468703fee7f31d4e0cc8c63baed9 \ + --hash=sha256:1ee32359fb7543b7b7bd0b2f46294db27e29e7bbdf70541e81b190836cd83ded \ + --hash=sha256:20c115517513831860c573996e395707aa9fb691eb179200125c250e895fcd93 \ + --hash=sha256:21555da4ec4a0c942520ead42c3b0dc9477441e085c42b0fbdd6a084869a6f6b \ + --hash=sha256:23a3e9d1a6f360267e8fbb38ba5db355a6a7e9be71d7fce7ab3125e88bb646c8 \ + --hash=sha256:2a8b6bb8369abefb8bd1801b054ad50e02b3275c8614dc6e5b0373c305291037 \ + --hash=sha256:2e284ca13d5a8367e43734148622caf0b261b275673823593e3e3634a6490f83 \ + --hash=sha256:2f585f52b2baf07ff3356158d9268ea095e221371f1074fadea2f42544d58b4d \ + --hash=sha256:316b2f2584682318539f0bcaca5a496ce9ca78c88066579ebd11fd06f8e4741e \ + --hash=sha256:32ed06d0fe9cae27d8fb5f400c63ccee72370599c75e683a6358dd3a4fb50aaf \ + --hash=sha256:355354388cba60f2132df297e2d53053d4063f79077b67b481d21276d61fc4df \ + --hash=sha256:35ddc8f4914466e6fc954c76527aa91aa763682a4f6d73249ef20b418fe6effb \ + --hash=sha256:36667db4d6c1cea79c8930ab72fadfb4060feb4bfe724141cd4bd064d2e5f8ce \ + --hash=sha256:36cbfb13c152b1c7c184ddac43765db8ad672567e7bafff2cc755a09917ed2e6 \ + --hash=sha256:39699233bc72dd482da1415dcb06076e32f60eddc796a796c5fb6c5efce94667 \ + --hash=sha256:39b19251dec4de8ff8496cd0806cbe27bf0684f765abb1f4809554de93785f2d \ + --hash=sha256:3d857f55e7fdf7c38ab96c4558c95b97d1c685be6b05c249f5fdafcbd6f9899e \ + --hash=sha256:3de19cfecd1465d0dcf8a5b5ea8b3155b42ed0b639dba4b71e323d74f2a3be5e \ + --hash=sha256:3f3096405acc48887458bbf9f6814d43785ac7ba2a57ea6442b581dedbc60ce6 \ + --hash=sha256:40483b2f2d3ba7aad426443767ff5632ec3156ef09742b96913787d13c336471 \ + --hash=sha256:413aa561266a4be2d06cd2b9665e89d9f54c543f418773076a76adcf2af08bc7 \ + --hash=sha256:44aba2f0cafd287871a495fb3163408b0bd25bbce135c6f621534a07f4f7875c \ + --hash=sha256:49ff32b09f5aa0cd30a20c2b39db3e669c845589f2b7fc910365210887e39344 \ + --hash=sha256:4d1cfce39e511069b11e67cd0bd78ceff31443b7c9e5c04db73c7a19f572967c \ + --hash=sha256:57c540ed8fb1f05cb997c6761cd56db72395b0d6985e90571ff660452ade4f98 \ + --hash=sha256:5f48cb3e88fbc294dc90e215d86fbaf1c852c63dbdb6c3a3e63f45c4b57f7344 \ + --hash=sha256:5fe44e277225fd3dff6882d86d3d447205d43532c3627313d17e754fb3905a0e \ + --hash=sha256:60e8c196cd82cbbd4f130b5290007e13e6de3eca79f0d4d38014769d96a7c475 \ + --hash=sha256:65167da969cd1ec3a1df31cb221ca3a19a8aaa25370ecb17d428415e93c1935e \ + --hash=sha256:680060061adb2d74ce352628cb798cfdec399068aa7f07ba9fb818b2b3305f98 \ + --hash=sha256:6bbaebf0d11567fa8926215ae731e1d58e6ec28a8a25235b8a47405d301332db \ + --hash=sha256:6c05483c3136ac4c91b4e81903cb53a8707d316f488124d0398499a4f8e8ef51 \ + --hash=sha256:6dc8b7e2f4eb184b37655195f421836cfae6f58197b67e3ffc501f1333d993fa \ + --hash=sha256:6e504f7b16118198f138ef31ba24d985b124c2c469fe8467007cf30fd992f934 \ + --hash=sha256:74623f2ab5cc3f7c886add4f735d1031a1d2be4a4ae63c0546cfd74e7a31ddf6 \ + --hash=sha256:77f0d13fa87036d7553bf81f0e1fe3ce68d14c9976c9851744e4d3e91127e95f \ + --hash=sha256:85eef4cb5625c47ee6425c58a3502555e10f45ee973da878ac8248ad58c136f3 \ + --hash=sha256:882567b7ae57c1b1a0250208cc21a7976d8cbcc49d5a322e607e6f09c9e0bd53 \ + --hash=sha256:8b986403023c8f3bf8f487c2e6186afda156174d31c175f747d8934dfddf3479 \ + --hash=sha256:8cfa5f29a695cb7438965e6c3e8d06e0416060cf0d709c1b1c1653a939bf5c2a \ + --hash=sha256:8eafe7c36c8430b7794edeab3087dec7bf31d634d92f2af9949434b9d1964cba \ + --hash=sha256:9198f447e1dc5647d07c9a6bbe2063cc0132728cc7175b39dbc796da5b54920d \ + --hash=sha256:92190db305a6f48734d3982f2c60fa30d6b5ee9bff10f2887b930d7b40119f4c \ + --hash=sha256:927ccf5cd17c48f801f4ed43a7e5673a2724bd2171460be3e3894e6e332ef83a \ + --hash=sha256:98e81648e0b36e325ab67e46b5400a7a6d4a22b8a7c8e8bbfe20e7db7906bf95 \ + --hash=sha256:9a818668b674047fd88c4cddada7ab8f1c298812783e8328e956b78dc4807f9f \ + --hash=sha256:a152d86a3ae00ba5f47b3acf3b827509fd0b6cb7d3259665e63dafbad22a75ea \ + --hash=sha256:a2718c1de8504121714234b6f8241d0019450353276c88b9453c9c3d92e101db \ + --hash=sha256:a39fb973a726e63223287adc6dafe444ce75af952d711e400f3bf2b36ef55a7b \ + --hash=sha256:a899699294f28f7be8992853c0c60741f16ff199205e2e6cdca155762cbaa59d \ + --hash=sha256:a8fdfed3deaf1928fb7667d96e0567cdf58c2b370ea2ee7e586aa383ec2cb346 \ + --hash=sha256:aabb081ca0ec5d39591fc33018cd4b3f96e1a2dd6756282029986d00a785fba4 \ + --hash=sha256:b1f5b45829ac1848893f0ddf5cb326110604d6df96cdc255b0bf9edd154104d4 \ + --hash=sha256:b48e35f4ab6f6a7597c46e301126ceba4c44cd3280e3750f85db48b082624fa4 \ + --hash=sha256:b54c83f1c0c0f1d748dca0af516062b8829d53d1f0c402be24b4257a9c48ada6 \ + --hash=sha256:ba0cb30acd3ef11c94dc27fbfba68940652492bc107075e7ffe23057f9425681 \ + --hash=sha256:bb50ce5fb202a26fd5404620e7ef820ad1ab3558b444cb0b55beb7ef66cd2d63 \ + --hash=sha256:c95eb6db2884917d86cde0b4d4cf31adf485c8ec36bf8696dd66fa70de96f36b \ + --hash=sha256:d0ffd9e2e4441c96a9c91ec1783285d80bf835b677853fc2770a89d50c1e48ac \ + --hash=sha256:d57b5046c120561ba8fa8e4030fbb8b822f3063910fa901ffadf16e2b7128ad6 \ + --hash=sha256:d9e6a7664ddd9746e20b7325351fe1a8408d0a2bf9c63b5e898290ddc8f09544 \ + --hash=sha256:dc578891de1db95b2a35001b695451767b580bb45753717498213c5ff3c41d63 \ + --hash=sha256:e0434aa22c821f44eeb4c650b81c7fbdd8c0122c6c4b5a576a76d5a35625ecd9 \ + --hash=sha256:e06a922a469cae9a57100864caf4f8a97a1026513793969f8ba5b63137a35d25 \ + --hash=sha256:e493962256a38f58283de033d8af176c5c91c084ea30f15834f7545451c42059 \ + --hash=sha256:ecb0019d44f4cdb50b676c5d0cb4b1eae8e15d1ed3d3e6639f986fc92b2ec52c \ + --hash=sha256:f935c4493eda9069851058fa0d9e39dbf6286be690066509305e52912714dbb2 # via # pandas # pyarrow @@ -615,6 +617,7 @@ packaging==24.2 \ # via # dunamai # hatchling + # meson-python # pyproject-metadata # scikit-build-core # setuptools-scm @@ -776,9 +779,9 @@ types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ --hash=sha256:1e642cdafe837b240295b23b1cbd4691d80b08a07d29932143cbbae30eb0db9c # via mypy -types-setuptools==80.9.0.20250822 \ - --hash=sha256:070ea7716968ec67a84c7f7768d9952ff24d28b65b6594797a464f1b3066f965 \ - --hash=sha256:53bf881cb9d7e46ed12c76ef76c0aaf28cfe6211d3fab12e0b83620b1a8642c3 +types-setuptools==80.9.0.20251223 \ + --hash=sha256:1b36db79d724c2287d83dc052cf887b47c0da6a2fff044378be0b019545f56e6 \ + --hash=sha256:d3411059ae2f5f03985217d86ac6084efea2c9e9cacd5f0869ef950f308169b2 # via mypy typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -786,9 +789,9 @@ typing-extensions==4.15.0 \ # via # mypy # setuptools-scm -uv-dynamic-versioning==0.11.2 \ - --hash=sha256:4c785ea02e00b93896d015fd3613c451735af1715a7f5f52e8e4e1d76e6ec3c5 \ - --hash=sha256:563ab4b7a93904eb8fb8fd9f2959dad853d62baa71f3cdb0233acf8a749d512f +uv-dynamic-versioning==0.12.0 \ + --hash=sha256:2d2f1fb806c2e351d0d0a3840aaf7b3c6ce73757080b1ada4ac5dc44f7dd4c9e \ + --hash=sha256:e853e0c5b2425a68005580325d4975a8c37b66015589ca45ef96e660fe0f8f16 # via mcp versioneer==0.29 \ --hash=sha256:0f1a137bb5d6811e96a79bb0486798aeae9b9c6efc24b389659cebb0ee396cb9 \ diff --git a/sdk/python/requirements/py3.11-minimal-sdist-requirements.txt b/sdk/python/requirements/py3.11-minimal-sdist-requirements.txt index 9ff17ded290..3fb8dbf6562 100644 --- a/sdk/python/requirements/py3.11-minimal-sdist-requirements.txt +++ b/sdk/python/requirements/py3.11-minimal-sdist-requirements.txt @@ -182,9 +182,9 @@ babel==2.17.0 \ --hash=sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d \ --hash=sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2 # via sphinx -bigtree==1.0.3 \ - --hash=sha256:18402a143130868b17ca84a74ca263e6f32f046d6978c30d244f8b94c4a01227 \ - --hash=sha256:99a18b6937a9b4ab8e560fec5c0720e10ebf37f84e44f9b5f47702c2e84c9aaa +bigtree==1.0.4 \ + --hash=sha256:e4af0c5bc0d2cd72e18442965e4509f642b16a0de65db6d0ec116e30f959010c \ + --hash=sha256:f58a3238bb9b1142d893c9de4921bfd18d435427c75e0c168dd580eabf6dc7fd # via feast (setup.py) boto3==1.38.27 \ --hash=sha256:94bd7fdd92d5701b362d4df100d21e28f8307a67ff56b6a8b0398119cf22f859 \ @@ -200,9 +200,9 @@ botocore==1.38.46 \ # boto3 # s3transfer # snowflake-connector-python -cachetools==6.2.2 \ - --hash=sha256:6c09c98183bf58560c97b2abfcedcbaf6a896a490f534b031b661d3723b45ace \ - --hash=sha256:8e6d266b25e539df852251cfd6f990b4bc3a141db73b939058d809ebd2590fc6 +cachetools==6.2.4 \ + --hash=sha256:69a7a52634fed8b8bf6e24a050fb60bff1c9bd8f6d24572b99c32d4e71e62a51 \ + --hash=sha256:82c5c05585e70b6ba2d3ae09ea60b79548872185d2f24ae1f2709d37299fd607 # via google-auth calver==2025.3.31 \ --hash=sha256:07511edf5e7fa75ae97445c8c5921240e0fe62937289a3ebe6963eddd3c691b6 \ @@ -547,13 +547,13 @@ cython==3.0.12 \ --hash=sha256:feb86122a823937cc06e4c029d80ff69f082ebb0b959ab52a5af6cdd271c5dc3 \ --hash=sha256:ff5c0b6a65b08117d0534941d404833d516dac422eee88c6b4fd55feb409a5ed # via feast (setup.py) -dask[dataframe]==2025.11.0 \ - --hash=sha256:08c35a8146c05c93b34f83cf651009129c42ee71762da7ca452fb7308641c2b8 \ - --hash=sha256:23d59e624b80ee05b7cc8df858682cca58262c4c3b197ccf61da0f6543c8f7c3 +dask[dataframe]==2025.12.0 \ + --hash=sha256:4213ce9c5d51d6d89337cff69de35d902aa0bf6abdb8a25c942a4d0281f3a598 \ + --hash=sha256:8d478f2aabd025e2453cf733ad64559de90cf328c20209e4574e9543707c3e1b # via feast (setup.py) -db-dtypes==1.4.4 \ - --hash=sha256:26f53db5df1acd746b88c5647913a1b20f731c0af1b11abcb6bec5365f31098a \ - --hash=sha256:32c13039982656a8598a0835f25f0e07e34c9a423e471ee60c2553240b7fcf1e +db-dtypes==1.5.0 \ + --hash=sha256:abdbb2e4eb965800ed6f98af0c5c1cafff9063ace09114be2d26a7f046be2c8a \ + --hash=sha256:ad9e94243f53e104bc77dbf9ae44b580d83a770d3694483aba59c9767966daa5 # via # google-cloud-bigquery # pandas-gbq @@ -561,9 +561,9 @@ dill==0.3.9 \ --hash=sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a \ --hash=sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c # via feast (setup.py) -docutils==0.22.3 \ - --hash=sha256:21486ae730e4ca9f622677b1412b879af1791efcfba517e4c6f60be543fc8cdd \ - --hash=sha256:bd772e4aca73aff037958d44f2be5229ded4c09927fcf8690c577b66234d6ceb +docutils==0.22.4 \ + --hash=sha256:4db53b1fde9abecbb74d91230d32ab626d94f6badfc575d6db9194a49df29968 \ + --hash=sha256:d0013f540772d1420576855455d050a2180186c91c15779301ac2ccb3eeb68de # via sphinx duckdb==1.1.3 \ --hash=sha256:00cca22df96aa3473fe4584f84888e2cf1c516e8c2dd837210daec44eadba586 \ @@ -627,9 +627,9 @@ durationpy==0.10 \ --hash=sha256:1fa6893409a6e739c9c72334fc65cca1f355dbdd93405d30f726deb5bde42fba \ --hash=sha256:3b41e1b601234296b4fb368338fdcd3e13e0b4fb5b67345948f4f2bf9868b286 # via kubernetes -fastapi==0.124.0 \ - --hash=sha256:260cd178ad75e6d259991f2fd9b0fee924b224850079df576a3ba604ce58f4e6 \ - --hash=sha256:91596bdc6dde303c318f06e8d2bc75eafb341fc793a0c9c92c0bc1db1ac52480 +fastapi==0.128.0 \ + --hash=sha256:1cc179e1cef10a6be60ffe429f79b829dce99d8de32d7acb7e6c8dfdf7f2645a \ + --hash=sha256:aebd93f9716ee3b4f4fcfe13ffb7cf308d99c9f3ab5622d8877441072561582d # via # feast (setup.py) # fastapi-mcp @@ -637,9 +637,9 @@ fastapi-mcp==0.4.0 \ --hash=sha256:d4a3fe7966af24d44e4b412720561c95eb12bed999a4443a88221834b3b15aec \ --hash=sha256:d4ca9410996f4c7b8ea0d7b20fdf79878dc359ebf89cbf3b222e0b675a55097d # via feast (setup.py) -filelock==3.20.0 \ - --hash=sha256:339b4732ffda5cd79b13f4e2711a31b0365ce445d95d243bb996273d072546a2 \ - --hash=sha256:711e943b4ec6be42e1d4e6690b48dc175c822967466bb31c0c293f34334c13f4 +filelock==3.20.1 \ + --hash=sha256:15d9e9a67306188a44baa72f569d2bfd803076269365fdea0934385da4dc361a \ + --hash=sha256:b8360948b351b80f420878d8516519a2204b07aefcdcfd24912a5d33127f188c # via snowflake-connector-python flit-core==3.12.0 \ --hash=sha256:18f63100d6f94385c6ed57a72073443e1a71a4acb4339491615d0f16d6ff01b2 \ @@ -797,9 +797,9 @@ google-api-core[grpc]==2.28.1 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.43.0 \ - --hash=sha256:88228eee5fc21b62a1b5fe773ca15e67778cb07dc8363adcb4a8827b52d81483 \ - --hash=sha256:af628ba6fa493f75c7e9dbe9373d148ca9f4399b5ea29976519e0a3848eddd16 +google-auth==2.45.0 \ + --hash=sha256:82344e86dc00410ef5382d99be677c6043d72e502b625aa4f4afa0bdacca0f36 \ + --hash=sha256:90d3f41b6b72ea72dd9811e765699ee491ab24139f34ebf1ca2b9cc0c38708f3 # via # google-api-core # google-auth-oauthlib @@ -818,19 +818,19 @@ google-auth-oauthlib==1.2.2 \ # via # pandas-gbq # pydata-google-auth -google-cloud-bigquery[pandas]==3.38.0 \ - --hash=sha256:8afcb7116f5eac849097a344eb8bfda78b7cfaae128e60e019193dd483873520 \ - --hash=sha256:e06e93ff7b245b239945ef59cb59616057598d369edac457ebf292bd61984da6 +google-cloud-bigquery[pandas]==3.39.0 \ + --hash=sha256:cb375e1d63dea9bd5bf735e66024338f294159d43afdf63e1d023f5fcbbf55ea \ + --hash=sha256:dc7a64921465859105461b43c42562e38e797d7a73feb72b3cfc4865b7b1c5ef # via # feast (setup.py) # pandas-gbq -google-cloud-bigquery-storage==2.35.0 \ - --hash=sha256:c9bab6b8e41d6cb9806e589e65f320c89ada84f466e61566b7208d87924c1430 \ - --hash=sha256:f2e3a08882155de1e9ec53c71c5784eb1f25dc6514c535f5796c3c9eeac17d17 +google-cloud-bigquery-storage==2.36.0 \ + --hash=sha256:1769e568070db672302771d2aec18341de10712aa9c4a8c549f417503e0149f0 \ + --hash=sha256:d3c1ce9d2d3a4d7116259889dcbe3c7c70506f71f6ce6bbe54aa0a68bbba8f8f # via feast (setup.py) -google-cloud-bigtable==2.34.0 \ - --hash=sha256:773258b00cd3f9a3a35639cc38bd711f4f1418aaa0c8d70cb028978ed98dc2c2 \ - --hash=sha256:a4a8db4903840cd3f89fb19c060eea2e7c09c1265cb0538cfc11288dbc6000e4 +google-cloud-bigtable==2.35.0 \ + --hash=sha256:f355bfce1f239453ec2bb3839b0f4f9937cf34ef06ef29e1ca63d58fd38d0c50 \ + --hash=sha256:f5699012c5fea4bd4bdf7e80e5e3a812a847eb8f41bf8dc2f43095d6d876b83b # via feast (setup.py) google-cloud-core==2.5.0 \ --hash=sha256:67d977b41ae6c7211ee830c7912e41003ea8194bff15ae7d72fd6f51e57acabc \ @@ -840,49 +840,48 @@ google-cloud-core==2.5.0 \ # google-cloud-bigtable # google-cloud-datastore # google-cloud-storage -google-cloud-datastore==2.21.0 \ - --hash=sha256:eee454dd4a55f5b327f9f344928ff1a09a6f77c23d5e3d908ad31a13cc2f4073 \ - --hash=sha256:f303f27cd1983383f20bd227019cd8a7897419e0ec6b878367c58c66245f9d9b +google-cloud-datastore==2.23.0 \ + --hash=sha256:24a1b1d29b902148fe41b109699f76fd3aa60591e9d547c0f8b87d7bf9ff213f \ + --hash=sha256:80049883a4ae928fdcc661ba6803ec267665dc0e6f3ce2da91441079a6bb6387 # via feast (setup.py) google-cloud-storage==2.19.0 \ --hash=sha256:aeb971b5c29cf8ab98445082cbfe7b161a1f48ed275822f59ed3f1524ea54fba \ --hash=sha256:cd05e9e7191ba6cb68934d8eb76054d9be4562aa89dbc4236feee4d7d51342b2 # via feast (setup.py) -google-crc32c==1.7.1 \ - --hash=sha256:0f99eaa09a9a7e642a61e06742856eec8b19fc0037832e03f941fe7cf0c8e4db \ - --hash=sha256:19eafa0e4af11b0a4eb3974483d55d2d77ad1911e6cf6f832e1574f6781fd337 \ - --hash=sha256:1c67ca0a1f5b56162951a9dae987988679a7db682d6f97ce0f6381ebf0fbea4c \ - --hash=sha256:1f2b3522222746fff0e04a9bd0a23ea003ba3cccc8cf21385c564deb1f223242 \ - --hash=sha256:22beacf83baaf59f9d3ab2bbb4db0fb018da8e5aebdce07ef9f09fce8220285e \ - --hash=sha256:2bff2305f98846f3e825dbeec9ee406f89da7962accdb29356e4eadc251bd472 \ - --hash=sha256:2d73a68a653c57281401871dd4aeebbb6af3191dcac751a76ce430df4d403194 \ - --hash=sha256:32d1da0d74ec5634a05f53ef7df18fc646666a25efaaca9fc7dcfd4caf1d98c3 \ - --hash=sha256:3bda0fcb632d390e3ea8b6b07bf6b4f4a66c9d02dcd6fbf7ba00a197c143f582 \ - --hash=sha256:6335de12921f06e1f774d0dd1fbea6bf610abe0887a1638f64d694013138be5d \ - --hash=sha256:6b211ddaf20f7ebeec5c333448582c224a7c90a9d98826fbab82c0ddc11348e6 \ - --hash=sha256:6efb97eb4369d52593ad6f75e7e10d053cf00c48983f7a973105bc70b0ac4d82 \ - --hash=sha256:6fbab4b935989e2c3610371963ba1b86afb09537fd0c633049be82afe153ac06 \ - --hash=sha256:713121af19f1a617054c41f952294764e0c5443d5a5d9034b2cd60f5dd7e0349 \ - --hash=sha256:754561c6c66e89d55754106739e22fdaa93fafa8da7221b29c8b8e8270c6ec8a \ - --hash=sha256:7cc81b3a2fbd932a4313eb53cc7d9dde424088ca3a0337160f35d91826880c1d \ - --hash=sha256:85fef7fae11494e747c9fd1359a527e5970fc9603c90764843caabd3a16a0a48 \ - --hash=sha256:905a385140bf492ac300026717af339790921f411c0dfd9aa5a9e69a08ed32eb \ - --hash=sha256:9fc196f0b8d8bd2789352c6a522db03f89e83a0ed6b64315923c396d7a932315 \ - --hash=sha256:a8e9afc74168b0b2232fb32dd202c93e46b7d5e4bf03e66ba5dc273bb3559589 \ - --hash=sha256:b07d48faf8292b4db7c3d64ab86f950c2e94e93a11fd47271c28ba458e4a0d76 \ - --hash=sha256:b6d86616faaea68101195c6bdc40c494e4d76f41e07a37ffdef270879c15fb65 \ - --hash=sha256:b7491bdc0c7564fcf48c0179d2048ab2f7c7ba36b84ccd3a3e1c3f7a72d3bba6 \ - --hash=sha256:bb5e35dcd8552f76eed9461a23de1030920a3c953c1982f324be8f97946e7127 \ - --hash=sha256:d68e17bad8f7dd9a49181a1f5a8f4b251c6dbc8cc96fb79f1d321dfd57d66f53 \ - --hash=sha256:dcdf5a64adb747610140572ed18d011896e3b9ae5195f2514b7ff678c80f1603 \ - --hash=sha256:df8b38bdaf1629d62d51be8bdd04888f37c451564c2042d36e5812da9eff3c35 \ - --hash=sha256:e10554d4abc5238823112c2ad7e4560f96c7bf3820b202660373d769d9e6e4c9 \ - --hash=sha256:e42e20a83a29aa2709a0cf271c7f8aefaa23b7ab52e53b322585297bb94d4638 \ - --hash=sha256:ed66cbe1ed9cbaaad9392b5259b3eba4a9e565420d734e6238813c428c3336c9 \ - --hash=sha256:ee6547b657621b6cbed3562ea7826c3e11cab01cd33b74e1f677690652883e77 \ - --hash=sha256:f2226b6a8da04f1d9e61d3e357f2460b9551c5e6950071437e122c958a18ae14 \ - --hash=sha256:fa8136cc14dd27f34a3221c0f16fd42d8a40e4778273e61a3c19aedaa44daf6b \ - --hash=sha256:fc5319db92daa516b653600794d5b9f9439a9a121f3e162f94b0e1891c7933cb +google-crc32c==1.8.0 \ + --hash=sha256:014a7e68d623e9a4222d663931febc3033c5c7c9730785727de2a81f87d5bab8 \ + --hash=sha256:01f126a5cfddc378290de52095e2c7052be2ba7656a9f0caf4bcd1bfb1833f8a \ + --hash=sha256:0470b8c3d73b5f4e3300165498e4cf25221c7eb37f1159e221d1825b6df8a7ff \ + --hash=sha256:119fcd90c57c89f30040b47c211acee231b25a45d225e3225294386f5d258288 \ + --hash=sha256:14f87e04d613dfa218d6135e81b78272c3b904e2a7053b841481b38a7d901411 \ + --hash=sha256:17446feb05abddc187e5441a45971b8394ea4c1b6efd88ab0af393fd9e0a156a \ + --hash=sha256:19b40d637a54cb71e0829179f6cb41835f0fbd9e8eb60552152a8b52c36cbe15 \ + --hash=sha256:2a3dc3318507de089c5384cc74d54318401410f82aa65b2d9cdde9d297aca7cb \ + --hash=sha256:3b9776774b24ba76831609ffbabce8cdf6fa2bd5e9df37b594221c7e333a81fa \ + --hash=sha256:3cc0c8912038065eafa603b238abf252e204accab2a704c63b9e14837a854962 \ + --hash=sha256:3d488e98b18809f5e322978d4506373599c0c13e6c5ad13e53bb44758e18d215 \ + --hash=sha256:3ebb04528e83b2634857f43f9bb8ef5b2bbe7f10f140daeb01b58f972d04736b \ + --hash=sha256:450dc98429d3e33ed2926fc99ee81001928d63460f8538f21a5d6060912a8e27 \ + --hash=sha256:4b8286b659c1335172e39563ab0a768b8015e88e08329fa5321f774275fc3113 \ + --hash=sha256:57a50a9035b75643996fbf224d6661e386c7162d1dfdab9bc4ca790947d1007f \ + --hash=sha256:61f58b28e0b21fcb249a8247ad0db2e64114e201e2e9b4200af020f3b6242c9f \ + --hash=sha256:6f35aaffc8ccd81ba3162443fabb920e65b1f20ab1952a31b13173a67811467d \ + --hash=sha256:71734788a88f551fbd6a97be9668a0020698e07b2bf5b3aa26a36c10cdfb27b2 \ + --hash=sha256:864abafe7d6e2c4c66395c1eb0fe12dc891879769b52a3d56499612ca93b6092 \ + --hash=sha256:86cfc00fe45a0ac7359e5214a1704e51a99e757d0272554874f419f79838c5f7 \ + --hash=sha256:87b0072c4ecc9505cfa16ee734b00cd7721d20a0f595be4d40d3d21b41f65ae2 \ + --hash=sha256:87fa445064e7db928226b2e6f0d5304ab4cd0339e664a4e9a25029f384d9bb93 \ + --hash=sha256:89c17d53d75562edfff86679244830599ee0a48efc216200691de8b02ab6b2b8 \ + --hash=sha256:8b3f68782f3cbd1bce027e48768293072813469af6a61a86f6bb4977a4380f21 \ + --hash=sha256:a428e25fb7691024de47fecfbff7ff957214da51eddded0da0ae0e0f03a2cf79 \ + --hash=sha256:b0d1a7afc6e8e4635564ba8aa5c0548e3173e41b6384d7711a9123165f582de2 \ + --hash=sha256:ba6aba18daf4d36ad4412feede6221414692f44d17e5428bdd81ad3fc1eee5dc \ + --hash=sha256:cb5c869c2923d56cb0c8e6bcdd73c009c36ae39b652dbe46a05eb4ef0ad01454 \ + --hash=sha256:d511b3153e7011a27ab6ee6bb3a5404a55b994dc1a7322c0b87b29606d9790e2 \ + --hash=sha256:db3fe8eaf0612fc8b20fa21a5f25bd785bc3cd5be69f8f3412b0ac2ffd49e733 \ + --hash=sha256:e6584b12cb06796d285d09e33f63309a09368b9d806a551d8036a4207ea43697 \ + --hash=sha256:f4b51844ef67d6cf2e9425983274da75f18b1597bb2c998e1c0a0e8d46f8f651 \ + --hash=sha256:f639065ea2042d5c034bf258a9f085eaa7af0cd250667c0635a3118e8f92c69c # via # google-cloud-bigtable # google-cloud-storage @@ -1015,6 +1014,7 @@ grpcio==1.62.3 \ # google-api-core # google-cloud-bigquery # google-cloud-bigquery-storage + # google-cloud-datastore # googleapis-common-protos # grpc-google-iam-v1 # grpcio-health-checking @@ -1238,9 +1238,9 @@ imagesize==1.4.1 \ --hash=sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b \ --hash=sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a # via sphinx -importlib-metadata==8.7.0 \ - --hash=sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000 \ - --hash=sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd +importlib-metadata==8.7.1 \ + --hash=sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb \ + --hash=sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151 # via dask jinja2==3.1.6 \ --hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \ @@ -1270,83 +1270,83 @@ kubernetes==33.1.0 \ --hash=sha256:544de42b24b64287f7e0aa9513c93cb503f7f40eea39b20f66810011a86eabc5 \ --hash=sha256:f64d829843a54c251061a8e7a14523b521f2dc5c896cf6d65ccf348648a88993 # via feast (setup.py) -librt==0.7.3 \ - --hash=sha256:020c6db391268bcc8ce75105cb572df8cb659a43fd347366aaa407c366e5117a \ - --hash=sha256:0fa9ac2e49a6bee56e47573a6786cb635e128a7b12a0dc7851090037c0d397a3 \ - --hash=sha256:11ad45122bbed42cfc8b0597450660126ef28fd2d9ae1a219bc5af8406f95678 \ - --hash=sha256:120dd21d46ff875e849f1aae19346223cf15656be489242fe884036b23d39e93 \ - --hash=sha256:14569ac5dd38cfccf0a14597a88038fb16811a6fede25c67b79c6d50fc2c8fdc \ - --hash=sha256:1617bea5ab31266e152871208502ee943cb349c224846928a1173c864261375e \ - --hash=sha256:170cdb8436188347af17bf9cccf3249ba581c933ed56d926497119d4cf730cec \ - --hash=sha256:1975eda520957c6e0eb52d12968dd3609ffb7eef05d4223d097893d6daf1d8a7 \ - --hash=sha256:1fe603877e1865b5fd047a5e40379509a4a60204aa7aa0f72b16f7a41c3f0712 \ - --hash=sha256:24d70810f6e2ea853ff79338001533716b373cc0f63e2a0be5bc96129edb5fb5 \ - --hash=sha256:256793988bff98040de23c57cf36e1f4c2f2dc3dcd17537cdac031d3b681db71 \ - --hash=sha256:25711f364c64cab2c910a0247e90b51421e45dbc8910ceeb4eac97a9e132fc6f \ - --hash=sha256:2682162855a708e3270eba4b92026b93f8257c3e65278b456c77631faf0f4f7a \ - --hash=sha256:2cf9d73499486ce39eebbff5f42452518cc1f88d8b7ea4a711ab32962b176ee2 \ - --hash=sha256:2e40520c37926166c24d0c2e0f3bc3a5f46646c34bdf7b4ea9747c297d6ee809 \ - --hash=sha256:2e980cf1ed1a2420a6424e2ed884629cdead291686f1048810a817de07b5eb18 \ - --hash=sha256:2f03484b54bf4ae80ab2e504a8d99d20d551bfe64a7ec91e218010b467d77093 \ - --hash=sha256:35f1609e3484a649bb80431310ddbec81114cd86648f1d9482bc72a3b86ded2e \ - --hash=sha256:399938edbd3d78339f797d685142dd8a623dfaded023cf451033c85955e4838a \ - --hash=sha256:399bbd7bcc1633c3e356ae274a1deb8781c7bf84d9c7962cc1ae0c6e87837292 \ - --hash=sha256:3ec50cf65235ff5c02c5b747748d9222e564ad48597122a361269dd3aa808798 \ - --hash=sha256:3edbf257c40d21a42615e9e332a6b10a8bacaaf58250aed8552a14a70efd0d65 \ - --hash=sha256:440c788f707c061d237c1e83edf6164ff19f5c0f823a3bf054e88804ebf971ec \ - --hash=sha256:44b3689b040df57f492e02cd4f0bacd1b42c5400e4b8048160c9d5e866de8abe \ - --hash=sha256:4887c29cadbdc50640179e3861c276325ff2986791e6044f73136e6e798ff806 \ - --hash=sha256:5460d99ed30f043595bbdc888f542bad2caeb6226b01c33cda3ae444e8f82d42 \ - --hash=sha256:550fdbfbf5bba6a2960b27376ca76d6aaa2bd4b1a06c4255edd8520c306fcfc0 \ - --hash=sha256:56f2a47beda8409061bc1c865bef2d4bd9ff9255219402c0817e68ab5ad89aed \ - --hash=sha256:572a24fc5958c61431da456a0ef1eeea6b4989d81eeb18b8e5f1f3077592200b \ - --hash=sha256:59cb0470612d21fa1efddfa0dd710756b50d9c7fb6c1236bbf8ef8529331dc70 \ - --hash=sha256:6038ccbd5968325a5d6fd393cf6e00b622a8de545f0994b89dd0f748dcf3e19e \ - --hash=sha256:6488e69d408b492e08bfb68f20c4a899a354b4386a446ecd490baff8d0862720 \ - --hash=sha256:687403cced6a29590e6be6964463835315905221d797bc5c934a98750fe1a9af \ - --hash=sha256:6b407c23f16ccc36614c136251d6b32bf30de7a57f8e782378f1107be008ddb0 \ - --hash=sha256:6b4e7bff1d76dd2b46443078519dc75df1b5e01562345f0bb740cea5266d8218 \ - --hash=sha256:6bdd9adfca615903578d2060ee8a6eb1c24eaf54919ff0ddc820118e5718931b \ - --hash=sha256:6eb9295c730e26b849ed1f4022735f36863eb46b14b6e10604c1c39b8b5efaea \ - --hash=sha256:703456146dc2bf430f7832fd1341adac5c893ec3c1430194fdcefba00012555c \ - --hash=sha256:754a0d09997095ad764ccef050dd5bf26cbf457aab9effcba5890dad081d879e \ - --hash=sha256:7af7785f5edd1f418da09a8cdb9ec84b0213e23d597413e06525340bcce1ea4f \ - --hash=sha256:7b29e97273bd6999e2bfe9fe3531b1f4f64effd28327bced048a33e49b99674a \ - --hash=sha256:7b4f57f7a0c65821c5441d98c47ff7c01d359b1e12328219709bdd97fdd37f90 \ - --hash=sha256:8837d5a52a2d7aa9f4c3220a8484013aed1d8ad75240d9a75ede63709ef89055 \ - --hash=sha256:8ccadf260bb46a61b9c7e89e2218f6efea9f3eeaaab4e3d1f58571890e54858e \ - --hash=sha256:8d8cf653e798ee4c4e654062b633db36984a1572f68c3aa25e364a0ddfbbb910 \ - --hash=sha256:93b2a1f325fefa1482516ced160c8c7b4b8d53226763fa6c93d151fa25164207 \ - --hash=sha256:9f0e0927efe87cd42ad600628e595a1a0aa1c64f6d0b55f7e6059079a428641a \ - --hash=sha256:a59a69deeb458c858b8fea6acf9e2acd5d755d76cd81a655256bc65c20dfff5b \ - --hash=sha256:a9f9b661f82693eb56beb0605156c7fca57f535704ab91837405913417d6990b \ - --hash=sha256:abfc57cab3c53c4546aee31859ef06753bfc136c9d208129bad23e2eca39155a \ - --hash=sha256:aca73d70c3f553552ba9133d4a09e767dcfeee352d8d8d3eb3f77e38a3beb3ed \ - --hash=sha256:adeaa886d607fb02563c1f625cf2ee58778a2567c0c109378da8f17ec3076ad7 \ - --hash=sha256:b278a9248a4e3260fee3db7613772ca9ab6763a129d6d6f29555e2f9b168216d \ - --hash=sha256:b7c1239b64b70be7759554ad1a86288220bbb04d68518b527783c4ad3fb4f80b \ - --hash=sha256:bf8c7735fbfc0754111f00edda35cf9e98a8d478de6c47b04eaa9cef4300eaa7 \ - --hash=sha256:c634a0a6db395fdaba0361aa78395597ee72c3aad651b9a307a3a7eaf5efd67e \ - --hash=sha256:cad9971881e4fec00d96af7eaf4b63aa7a595696fc221808b0d3ce7ca9743258 \ - --hash=sha256:cbdb3f337c88b43c3b49ca377731912c101178be91cb5071aac48faa898e6f8e \ - --hash=sha256:cd8551aa21df6c60baa2624fd086ae7486bdde00c44097b32e1d1b1966e365e0 \ - --hash=sha256:d09f677693328503c9e492e33e9601464297c01f9ebd966ea8fc5308f3069bfd \ - --hash=sha256:d376a35c6561e81d2590506804b428fc1075fcc6298fc5bb49b771534c0ba010 \ - --hash=sha256:d39079379a9a28e74f4d57dc6357fa310a1977b51ff12239d7271ec7e71d67f5 \ - --hash=sha256:d86f94743a11873317094326456b23f8a5788bad9161fd2f0e52088c33564620 \ - --hash=sha256:d91e60ac44bbe3a77a67af4a4c13114cbe9f6d540337ce22f2c9eaf7454ca71f \ - --hash=sha256:d9883b2d819ce83f87ba82a746c81d14ada78784db431e57cc9719179847376e \ - --hash=sha256:e094e445c37c57e9ec612847812c301840239d34ccc5d153a982fa9814478c60 \ - --hash=sha256:e19acfde38cb532a560b98f473adc741c941b7a9bc90f7294bc273d08becb58b \ - --hash=sha256:e32d43610dff472eab939f4d7fbdd240d1667794192690433672ae22d7af8445 \ - --hash=sha256:ed028fc3d41adda916320712838aec289956c89b4f0a361ceadf83a53b4c047a \ - --hash=sha256:ef59c938f72bdbc6ab52dc50f81d0637fde0f194b02d636987cea2ab30f8f55a \ - --hash=sha256:f3d4801db8354436fd3936531e7f0e4feb411f62433a6b6cb32bb416e20b529f \ - --hash=sha256:f57aca20e637750a2c18d979f7096e2c2033cc40cf7ed201494318de1182f135 \ - --hash=sha256:f9da128d0edf990cf0d2ca011b02cd6f639e79286774bd5b0351245cbb5a6e51 \ - --hash=sha256:fbd7351d43b80d9c64c3cfcb50008f786cc82cba0450e8599fdd64f264320bd3 \ - --hash=sha256:fcb72249ac4ea81a7baefcbff74df7029c3cb1cf01a711113fa052d563639c9c \ - --hash=sha256:ff21c554304e8226bf80c3a7754be27c6c3549a9fec563a03c06ee8f494da8fc +librt==0.7.5 \ + --hash=sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee \ + --hash=sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1 \ + --hash=sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4 \ + --hash=sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899 \ + --hash=sha256:0e2bf8f91093fac43e3eaebacf777f12fd539dce9ec5af3efc6d8424e96ccd49 \ + --hash=sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d \ + --hash=sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760 \ + --hash=sha256:191cbd42660446d67cf7a95ac7bfa60f49b8b3b0417c64f216284a1d86fc9335 \ + --hash=sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8 \ + --hash=sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2 \ + --hash=sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec \ + --hash=sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b \ + --hash=sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0 \ + --hash=sha256:39183abee670bc37b85f11e86c44a9cad1ed6efa48b580083e89ecee13dd9717 \ + --hash=sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325 \ + --hash=sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45 \ + --hash=sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d \ + --hash=sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233 \ + --hash=sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d \ + --hash=sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544 \ + --hash=sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802 \ + --hash=sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2 \ + --hash=sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d \ + --hash=sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f \ + --hash=sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169 \ + --hash=sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe \ + --hash=sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982 \ + --hash=sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2 \ + --hash=sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa \ + --hash=sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4 \ + --hash=sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4 \ + --hash=sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57 \ + --hash=sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26 \ + --hash=sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361 \ + --hash=sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad \ + --hash=sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e \ + --hash=sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf \ + --hash=sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f \ + --hash=sha256:8dcae24de1bc9da93aa689cb6313c70e776d7cea2fcf26b9b6160fedfe6bd9af \ + --hash=sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2 \ + --hash=sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89 \ + --hash=sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904 \ + --hash=sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6 \ + --hash=sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276 \ + --hash=sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e \ + --hash=sha256:a9eacbf983319b26b5f340a2e0cd47ac1ee4725a7f3a72fd0f15063c934b69d6 \ + --hash=sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409 \ + --hash=sha256:af69d9e159575e877c7546d1ee817b4ae089aa221dd1117e20c24ad8dc8659c7 \ + --hash=sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a \ + --hash=sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4 \ + --hash=sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775 \ + --hash=sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203 \ + --hash=sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419 \ + --hash=sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5 \ + --hash=sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023 \ + --hash=sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b \ + --hash=sha256:cdb001a1a0e4f41e613bca2c0fc147fc8a7396f53fc94201cbfd8ec7cd69ca4b \ + --hash=sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d \ + --hash=sha256:d2cc7d187e8c6e9b7bdbefa9697ce897a704ea7a7ce844f2b4e0e2aa07ae51d3 \ + --hash=sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e \ + --hash=sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a \ + --hash=sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b \ + --hash=sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db \ + --hash=sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd \ + --hash=sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa \ + --hash=sha256:df2e210400b28e50994477ebf82f055698c79797b6ee47a1669d383ca33263e1 \ + --hash=sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805 \ + --hash=sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a \ + --hash=sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25 \ + --hash=sha256:ea1b60b86595a5dc1f57b44a801a1c4d8209c0a69518391d349973a4491408e6 \ + --hash=sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b \ + --hash=sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5 \ + --hash=sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416 \ + --hash=sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc \ + --hash=sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7 \ + --hash=sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96 # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ @@ -1447,9 +1447,9 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via jinja2 -mcp==1.23.3 \ - --hash=sha256:32768af4b46a1b4f7df34e2bfdf5c6011e7b63d7f1b0e321d0fdef4cd6082031 \ - --hash=sha256:b3b0da2cc949950ce1259c7bfc1b081905a51916fcd7c8182125b85e70825201 +mcp==1.25.0 \ + --hash=sha256:56310361ebf0364e2d438e5b45f7668cbb124e158bb358333cd06e49e83a6802 \ + --hash=sha256:b37c38144a666add0862614cc79ec276e97d72aa8ca26d622818d4e278b9721a # via fastapi-mcp mdurl==0.1.2 \ --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ @@ -1739,125 +1739,123 @@ multidict==6.7.0 \ # aiobotocore # aiohttp # yarl -mypy==1.19.0 \ - --hash=sha256:0c01c99d626380752e527d5ce8e69ffbba2046eb8a060db0329690849cf9b6f9 \ - --hash=sha256:0dde5cb375cb94deff0d4b548b993bec52859d1651e073d63a1386d392a95495 \ - --hash=sha256:0e3c3d1e1d62e678c339e7ade72746a9e0325de42cd2cccc51616c7b2ed1a018 \ - --hash=sha256:0ea4fd21bb48f0da49e6d3b37ef6bd7e8228b9fe41bbf4d80d9364d11adbd43c \ - --hash=sha256:0fb3115cb8fa7c5f887c8a8d81ccdcb94cff334684980d847e5a62e926910e1d \ - --hash=sha256:11f7254c15ab3f8ed68f8e8f5cbe88757848df793e31c36aaa4d4f9783fd08ab \ - --hash=sha256:120cffe120cca5c23c03c77f84abc0c14c5d2e03736f6c312480020082f1994b \ - --hash=sha256:16f76ff3f3fd8137aadf593cb4607d82634fca675e8211ad75c43d86033ee6c6 \ - --hash=sha256:1cf9c59398db1c68a134b0b5354a09a1e124523f00bacd68e553b8bd16ff3299 \ - --hash=sha256:318ba74f75899b0e78b847d8c50821e4c9637c79d9a59680fc1259f29338cb3e \ - --hash=sha256:3210d87b30e6af9c8faed61be2642fcbe60ef77cec64fa1ef810a630a4cf671c \ - --hash=sha256:34ec1ac66d31644f194b7c163d7f8b8434f1b49719d403a5d26c87fff7e913f7 \ - --hash=sha256:37af5166f9475872034b56c5efdcf65ee25394e9e1d172907b84577120714364 \ - --hash=sha256:3ad925b14a0bb99821ff6f734553294aa6a3440a8cb082fe1f5b84dfb662afb1 \ - --hash=sha256:510c014b722308c9bd377993bcbf9a07d7e0692e5fa8fc70e639c1eb19fc6bee \ - --hash=sha256:6016c52ab209919b46169651b362068f632efcd5eb8ef9d1735f6f86da7853b2 \ - --hash=sha256:6148ede033982a8c5ca1143de34c71836a09f105068aaa8b7d5edab2b053e6c8 \ - --hash=sha256:63ea6a00e4bd6822adbfc75b02ab3653a17c02c4347f5bb0cf1d5b9df3a05835 \ - --hash=sha256:7686ed65dbabd24d20066f3115018d2dce030d8fa9db01aa9f0a59b6813e9f9e \ - --hash=sha256:7a500ab5c444268a70565e374fc803972bfd1f09545b13418a5174e29883dab7 \ - --hash=sha256:8f44f2ae3c58421ee05fe609160343c25f70e3967f6e32792b5a78006a9d850f \ - --hash=sha256:a18d8abdda14035c5718acb748faec09571432811af129bf0d9e7b2d6699bf18 \ - --hash=sha256:a31e4c28e8ddb042c84c5e977e28a21195d086aaffaf08b016b78e19c9ef8106 \ - --hash=sha256:a9ac09e52bb0f7fb912f5d2a783345c72441a08ef56ce3e17c1752af36340a39 \ - --hash=sha256:b9d491295825182fba01b6ffe2c6fe4e5a49dbf4e2bb4d1217b6ced3b4797bc6 \ - --hash=sha256:c14a98bc63fd867530e8ec82f217dae29d0550c86e70debc9667fff1ec83284e \ - --hash=sha256:c3385246593ac2b97f155a0e9639be906e73534630f663747c71908dfbf26134 \ - --hash=sha256:cabbee74f29aa9cd3b444ec2f1e4fa5a9d0d746ce7567a6a609e224429781f53 \ - --hash=sha256:cb64b0ba5980466a0f3f9990d1c582bcab8db12e29815ecb57f1408d99b4bff7 \ - --hash=sha256:cf7d84f497f78b682edd407f14a7b6e1a2212b433eedb054e2081380b7395aa3 \ - --hash=sha256:e2c1101ab41d01303103ab6ef82cbbfedb81c1a060c868fa7cc013d573d37ab5 \ - --hash=sha256:f188dcf16483b3e59f9278c4ed939ec0254aa8a60e8fc100648d9ab5ee95a431 \ - --hash=sha256:f2e36bed3c6d9b5f35d28b63ca4b727cb0228e480826ffc8953d1892ddc8999d \ - --hash=sha256:f3e19e3b897562276bb331074d64c076dbdd3e79213f36eed4e592272dabd760 \ - --hash=sha256:f6b874ca77f733222641e5c46e4711648c4037ea13646fd0cdc814c2eaec2528 \ - --hash=sha256:f75e60aca3723a23511948539b0d7ed514dda194bc3755eae0bfc7a6b4887aa7 \ - --hash=sha256:fc51a5b864f73a3a182584b1ac75c404396a17eced54341629d8bdcb644a5bba \ - --hash=sha256:fd4a985b2e32f23bead72e2fb4bbe5d6aceee176be471243bd831d5b2644672d +mypy==1.19.1 \ + --hash=sha256:016f2246209095e8eda7538944daa1d60e1e8134d98983b9fc1e92c1fc0cb8dd \ + --hash=sha256:022ea7279374af1a5d78dfcab853fe6a536eebfda4b59deab53cd21f6cd9f00b \ + --hash=sha256:06e6170bd5836770e8104c8fdd58e5e725cfeb309f0a6c681a811f557e97eac1 \ + --hash=sha256:19d88bb05303fe63f71dd2c6270daca27cb9401c4ca8255fe50d1d920e0eb9ba \ + --hash=sha256:21761006a7f497cb0d4de3d8ef4ca70532256688b0523eee02baf9eec895e27b \ + --hash=sha256:28902ee51f12e0f19e1e16fbe2f8f06b6637f482c459dd393efddd0ec7f82045 \ + --hash=sha256:2899753e2f61e571b3971747e302d5f420c3fd09650e1951e99f823bc3089dac \ + --hash=sha256:2abb24cf3f17864770d18d673c85235ba52456b36a06b6afc1e07c1fdcd3d0e6 \ + --hash=sha256:34c81968774648ab5ac09c29a375fdede03ba253f8f8287847bd480782f73a6a \ + --hash=sha256:409088884802d511ee52ca067707b90c883426bd95514e8cfda8281dc2effe24 \ + --hash=sha256:481daf36a4c443332e2ae9c137dfee878fcea781a2e3f895d54bd3002a900957 \ + --hash=sha256:4b84a7a18f41e167f7995200a1d07a4a6810e89d29859df936f1c3923d263042 \ + --hash=sha256:4f28f99c824ecebcdaa2e55d82953e38ff60ee5ec938476796636b86afa3956e \ + --hash=sha256:5f05aa3d375b385734388e844bc01733bd33c644ab48e9684faa54e5389775ec \ + --hash=sha256:7bcfc336a03a1aaa26dfce9fff3e287a3ba99872a157561cbfcebe67c13308e3 \ + --hash=sha256:804bd67b8054a85447c8954215a906d6eff9cabeabe493fb6334b24f4bfff718 \ + --hash=sha256:8bb5c6f6d043655e055be9b542aa5f3bdd30e4f3589163e85f93f3640060509f \ + --hash=sha256:a009ffa5a621762d0c926a078c2d639104becab69e79538a494bcccb62cc0331 \ + --hash=sha256:a8174a03289288c1f6c46d55cef02379b478bfbc8e358e02047487cad44c6ca1 \ + --hash=sha256:ab43590f9cd5108f41aacf9fca31841142c786827a74ab7cc8a2eacb634e09a1 \ + --hash=sha256:b10e7c2cd7870ba4ad9b2d8a6102eb5ffc1f16ca35e3de6bfa390c1113029d13 \ + --hash=sha256:b13cfdd6c87fc3efb69ea4ec18ef79c74c3f98b4e5498ca9b85ab3b2c2329a67 \ + --hash=sha256:b64d987153888790bcdb03a6473d321820597ab8dd9243b27a92153c4fa50fd2 \ + --hash=sha256:b7951a701c07ea584c4fe327834b92a30825514c868b1f69c30445093fdd9d5a \ + --hash=sha256:bdb12f69bcc02700c2b47e070238f42cb87f18c0bc1fc4cdb4fb2bc5fd7a3b8b \ + --hash=sha256:c35d298c2c4bba75feb2195655dfea8124d855dfd7343bf8b8c055421eaf0cf8 \ + --hash=sha256:c608937067d2fc5a4dd1a5ce92fd9e1398691b8c5d012d66e1ddd430e9244376 \ + --hash=sha256:c9a6538e0415310aad77cb94004ca6482330fece18036b5f360b62c45814c4ef \ + --hash=sha256:d8dfc6ab58ca7dda47d9237349157500468e404b17213d44fc1cb77bce532288 \ + --hash=sha256:da4869fc5e7f62a88f3fe0b5c919d1d9f7ea3cef92d3689de2823fd27e40aa75 \ + --hash=sha256:de759aafbae8763283b2ee5869c7255391fbc4de3ff171f8f030b5ec48381b74 \ + --hash=sha256:e3157c7594ff2ef1634ee058aafc56a82db665c9438fd41b390f3bde1ab12250 \ + --hash=sha256:e3f276d8493c3c97930e354b2595a44a21348b320d859fb4a2b9f66da9ed27ab \ + --hash=sha256:ee4c11e460685c3e0c64a4c5de82ae143622410950d6be863303a1c4ba0e36d6 \ + --hash=sha256:f1235f5ea01b7db5468d53ece6aaddf1ad0b88d9e7462b86ef96fe04995d7247 \ + --hash=sha256:f7cee03c9a2e2ee26ec07479f38ea9c884e301d42c6d43a19d20fb014e3ba925 \ + --hash=sha256:f859fb09d9583a985be9a493d5cfc5515b56b08f7447759a0c5deaf68d80506e \ + --hash=sha256:ffcebe56eb09ff0c0885e750036a095e23793ba6c2e894e7e63f6d89ad51f22e # via sqlalchemy mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 # via mypy -numpy==2.3.5 \ - --hash=sha256:00dc4e846108a382c5869e77c6ed514394bdeb3403461d25a829711041217d5b \ - --hash=sha256:0472f11f6ec23a74a906a00b48a4dcf3849209696dff7c189714511268d103ae \ - --hash=sha256:04822c00b5fd0323c8166d66c701dc31b7fbd252c100acd708c48f763968d6a3 \ - --hash=sha256:052e8c42e0c49d2575621c158934920524f6c5da05a1d3b9bab5d8e259e045f0 \ - --hash=sha256:09a1bea522b25109bf8e6f3027bd810f7c1085c64a0c7ce050c1676ad0ba010b \ - --hash=sha256:0cd00b7b36e35398fa2d16af7b907b65304ef8bb4817a550e06e5012929830fa \ - --hash=sha256:0d8163f43acde9a73c2a33605353a4f1bc4798745a8b1d73183b28e5b435ae28 \ - --hash=sha256:1062fde1dcf469571705945b0f221b73928f34a20c904ffb45db101907c3454e \ - --hash=sha256:11e06aa0af8c0f05104d56450d6093ee639e15f24ecf62d417329d06e522e017 \ - --hash=sha256:17531366a2e3a9e30762c000f2c43a9aaa05728712e25c11ce1dbe700c53ad41 \ - --hash=sha256:1978155dd49972084bd6ef388d66ab70f0c323ddee6f693d539376498720fb7e \ - --hash=sha256:1ed1ec893cff7040a02c8aa1c8611b94d395590d553f6b53629a4461dc7f7b63 \ - --hash=sha256:2dcd0808a421a482a080f89859a18beb0b3d1e905b81e617a188bd80422d62e9 \ - --hash=sha256:2e2eb32ddb9ccb817d620ac1d8dae7c3f641c1e5f55f531a33e8ab97960a75b8 \ - --hash=sha256:2feae0d2c91d46e59fcd62784a3a83b3fb677fead592ce51b5a6fbb4f95965ff \ - --hash=sha256:3095bdb8dd297e5920b010e96134ed91d852d81d490e787beca7e35ae1d89cf7 \ - --hash=sha256:30bc11310e8153ca664b14c5f1b73e94bd0503681fcf136a163de856f3a50139 \ - --hash=sha256:3101e5177d114a593d79dd79658650fe28b5a0d8abeb8ce6f437c0e6df5be1a4 \ - --hash=sha256:396084a36abdb603546b119d96528c2f6263921c50df3c8fd7cb28873a237748 \ - --hash=sha256:3997b5b3c9a771e157f9aae01dd579ee35ad7109be18db0e85dbdbe1de06e952 \ - --hash=sha256:414802f3b97f3c1eef41e530aaba3b3c1620649871d8cb38c6eaff034c2e16bd \ - --hash=sha256:51c1e14eb1e154ebd80e860722f9e6ed6ec89714ad2db2d3aa33c31d7c12179b \ - --hash=sha256:51c55fe3451421f3a6ef9a9c1439e82101c57a2c9eab9feb196a62b1a10b58ce \ - --hash=sha256:5ee6609ac3604fa7780e30a03e5e241a7956f8e2fcfe547d51e3afa5247ac47f \ - --hash=sha256:612a95a17655e213502f60cfb9bf9408efdc9eb1d5f50535cc6eb365d11b42b5 \ - --hash=sha256:6203fdf9f3dc5bdaed7319ad8698e685c7a3be10819f41d32a0723e611733b42 \ - --hash=sha256:63c0e9e7eea69588479ebf4a8a270d5ac22763cc5854e9a7eae952a3908103f7 \ - --hash=sha256:66f85ce62c70b843bab1fb14a05d5737741e74e28c7b8b5a064de10142fad248 \ - --hash=sha256:6cf9b429b21df6b99f4dee7a1218b8b7ffbbe7df8764dc0bd60ce8a0708fed1e \ - --hash=sha256:70b37199913c1bd300ff6e2693316c6f869c7ee16378faf10e4f5e3275b299c3 \ - --hash=sha256:727fd05b57df37dc0bcf1a27767a3d9a78cbbc92822445f32cc3436ba797337b \ - --hash=sha256:74ae7b798248fe62021dbf3c914245ad45d1a6b0cb4a29ecb4b31d0bfbc4cc3e \ - --hash=sha256:784db1dcdab56bf0517743e746dfb0f885fc68d948aba86eeec2cba234bdf1c0 \ - --hash=sha256:86945f2ee6d10cdfd67bcb4069c1662dd711f7e2a4343db5cecec06b87cf31aa \ - --hash=sha256:86d835afea1eaa143012a2d7a3f45a3adce2d7adc8b4961f0b362214d800846a \ - --hash=sha256:872a5cf366aec6bb1147336480fef14c9164b154aeb6542327de4970282cd2f5 \ - --hash=sha256:8b973c57ff8e184109db042c842423ff4f60446239bd585a5131cc47f06f789d \ - --hash=sha256:8cba086a43d54ca804ce711b2a940b16e452807acebe7852ff327f1ecd49b0d4 \ - --hash=sha256:8f7f0e05112916223d3f438f293abf0727e1181b5983f413dfa2fefc4098245c \ - --hash=sha256:900218e456384ea676e24ea6a0417f030a3b07306d29d7ad843957b40a9d8d52 \ - --hash=sha256:93eebbcf1aafdf7e2ddd44c2923e2672e1010bddc014138b229e49725b4d6be5 \ - --hash=sha256:9c75442b2209b8470d6d5d8b1c25714270686f14c749028d2199c54e29f20b4d \ - --hash=sha256:9ee2197ef8c4f0dfe405d835f3b6a14f5fee7782b5de51ba06fb65fc9b36e9f1 \ - --hash=sha256:a414504bef8945eae5f2d7cb7be2d4af77c5d1cb5e20b296c2c25b61dff2900c \ - --hash=sha256:a4b9159734b326535f4dd01d947f919c6eefd2d9827466a696c44ced82dfbc18 \ - --hash=sha256:a80afd79f45f3c4a7d341f13acbe058d1ca8ac017c165d3fa0d3de6bc1a079d7 \ - --hash=sha256:aa5bc7c5d59d831d9773d1170acac7893ce3a5e130540605770ade83280e7188 \ - --hash=sha256:acfd89508504a19ed06ef963ad544ec6664518c863436306153e13e94605c218 \ - --hash=sha256:aeffcab3d4b43712bb7a60b65f6044d444e75e563ff6180af8f98dd4b905dfd2 \ - --hash=sha256:afaffc4393205524af9dfa400fa250143a6c3bc646c08c9f5e25a9f4b4d6a903 \ - --hash=sha256:b0c7088a73aef3d687c4deef8452a3ac7c1be4e29ed8bf3b366c8111128ac60c \ - --hash=sha256:b46b4ec24f7293f23adcd2d146960559aaf8020213de8ad1909dba6c013bf89c \ - --hash=sha256:b501b5fa195cc9e24fe102f21ec0a44dffc231d2af79950b451e0d99cea02234 \ - --hash=sha256:bf06bc2af43fa8d32d30fae16ad965663e966b1a3202ed407b84c989c3221e82 \ - --hash=sha256:c804e3a5aba5460c73955c955bdbd5c08c354954e9270a2c1565f62e866bdc39 \ - --hash=sha256:c8a9958e88b65c3b27e22ca2a076311636850b612d6bbfb76e8d156aacde2aaf \ - --hash=sha256:cc0a57f895b96ec78969c34f682c602bf8da1a0270b09bc65673df2e7638ec20 \ - --hash=sha256:cc8920d2ec5fa99875b670bb86ddeb21e295cb07aa331810d9e486e0b969d946 \ - --hash=sha256:ccc933afd4d20aad3c00bcef049cb40049f7f196e0397f1109dba6fed63267b0 \ - --hash=sha256:ce581db493ea1a96c0556360ede6607496e8bf9b3a8efa66e06477267bc831e9 \ - --hash=sha256:d0f23b44f57077c1ede8c5f26b30f706498b4862d3ff0a7298b8411dd2f043ff \ - --hash=sha256:d21644de1b609825ede2f48be98dfde4656aefc713654eeee280e37cadc4e0ad \ - --hash=sha256:d6889ec4ec662a1a37eb4b4fb26b6100841804dac55bd9df579e326cdc146227 \ - --hash=sha256:de5672f4a7b200c15a4127042170a694d4df43c992948f5e1af57f0174beed10 \ - --hash=sha256:e6a0bc88393d65807d751a614207b7129a310ca4fe76a74e5c7da5fa5671417e \ - --hash=sha256:ed89927b86296067b4f81f108a2271d8926467a8868e554eaf370fc27fa3ccaf \ - --hash=sha256:ee3888d9ff7c14604052b2ca5535a30216aa0a58e948cdd3eeb8d3415f638769 \ - --hash=sha256:f0963b55cdd70fad460fa4c1341f12f976bb26cb66021a5580329bd498988310 \ - --hash=sha256:f16417ec91f12f814b10bafe79ef77e70113a2f5f7018640e7425ff979253425 \ - --hash=sha256:f28620fe26bee16243be2b7b874da327312240a7cdc38b769a697578d2100013 \ - --hash=sha256:f4255143f5160d0de972d28c8f9665d882b5f61309d8362fdd3e103cf7bf010c \ - --hash=sha256:ffac52f28a7849ad7576293c0cb7b9f08304e8f7d738a8cb8a90ec4c55a998eb \ - --hash=sha256:ffe22d2b05504f786c867c8395de703937f934272eb67586817b46188b4ded6d \ - --hash=sha256:fffe29a1ef00883599d1dc2c51aa2e5d80afe49523c261a74933df395c15c520 +numpy==2.4.0 \ + --hash=sha256:009bd0ea12d3c784b6639a8457537016ce5172109e585338e11334f6a7bb88ee \ + --hash=sha256:02a2038eb27f9443a8b266a66911e926566b5a6ffd1a689b588f7f35b81e7dc3 \ + --hash=sha256:0804a8e4ab070d1d35496e65ffd3cf8114c136a2b81f61dfab0de4b218aacfd5 \ + --hash=sha256:0feafc9e03128074689183031181fac0897ff169692d8492066e949041096548 \ + --hash=sha256:1889b3a3f47a7b5bee16bc25a2145bd7cb91897f815ce3499db64c7458b6d91d \ + --hash=sha256:1d8f9fde5f6dc1b6fc34df8162f3b3079365468703fee7f31d4e0cc8c63baed9 \ + --hash=sha256:1ee32359fb7543b7b7bd0b2f46294db27e29e7bbdf70541e81b190836cd83ded \ + --hash=sha256:20c115517513831860c573996e395707aa9fb691eb179200125c250e895fcd93 \ + --hash=sha256:21555da4ec4a0c942520ead42c3b0dc9477441e085c42b0fbdd6a084869a6f6b \ + --hash=sha256:23a3e9d1a6f360267e8fbb38ba5db355a6a7e9be71d7fce7ab3125e88bb646c8 \ + --hash=sha256:2a8b6bb8369abefb8bd1801b054ad50e02b3275c8614dc6e5b0373c305291037 \ + --hash=sha256:2e284ca13d5a8367e43734148622caf0b261b275673823593e3e3634a6490f83 \ + --hash=sha256:2f585f52b2baf07ff3356158d9268ea095e221371f1074fadea2f42544d58b4d \ + --hash=sha256:316b2f2584682318539f0bcaca5a496ce9ca78c88066579ebd11fd06f8e4741e \ + --hash=sha256:32ed06d0fe9cae27d8fb5f400c63ccee72370599c75e683a6358dd3a4fb50aaf \ + --hash=sha256:355354388cba60f2132df297e2d53053d4063f79077b67b481d21276d61fc4df \ + --hash=sha256:35ddc8f4914466e6fc954c76527aa91aa763682a4f6d73249ef20b418fe6effb \ + --hash=sha256:36667db4d6c1cea79c8930ab72fadfb4060feb4bfe724141cd4bd064d2e5f8ce \ + --hash=sha256:36cbfb13c152b1c7c184ddac43765db8ad672567e7bafff2cc755a09917ed2e6 \ + --hash=sha256:39699233bc72dd482da1415dcb06076e32f60eddc796a796c5fb6c5efce94667 \ + --hash=sha256:39b19251dec4de8ff8496cd0806cbe27bf0684f765abb1f4809554de93785f2d \ + --hash=sha256:3d857f55e7fdf7c38ab96c4558c95b97d1c685be6b05c249f5fdafcbd6f9899e \ + --hash=sha256:3de19cfecd1465d0dcf8a5b5ea8b3155b42ed0b639dba4b71e323d74f2a3be5e \ + --hash=sha256:3f3096405acc48887458bbf9f6814d43785ac7ba2a57ea6442b581dedbc60ce6 \ + --hash=sha256:40483b2f2d3ba7aad426443767ff5632ec3156ef09742b96913787d13c336471 \ + --hash=sha256:413aa561266a4be2d06cd2b9665e89d9f54c543f418773076a76adcf2af08bc7 \ + --hash=sha256:44aba2f0cafd287871a495fb3163408b0bd25bbce135c6f621534a07f4f7875c \ + --hash=sha256:49ff32b09f5aa0cd30a20c2b39db3e669c845589f2b7fc910365210887e39344 \ + --hash=sha256:4d1cfce39e511069b11e67cd0bd78ceff31443b7c9e5c04db73c7a19f572967c \ + --hash=sha256:57c540ed8fb1f05cb997c6761cd56db72395b0d6985e90571ff660452ade4f98 \ + --hash=sha256:5f48cb3e88fbc294dc90e215d86fbaf1c852c63dbdb6c3a3e63f45c4b57f7344 \ + --hash=sha256:5fe44e277225fd3dff6882d86d3d447205d43532c3627313d17e754fb3905a0e \ + --hash=sha256:60e8c196cd82cbbd4f130b5290007e13e6de3eca79f0d4d38014769d96a7c475 \ + --hash=sha256:65167da969cd1ec3a1df31cb221ca3a19a8aaa25370ecb17d428415e93c1935e \ + --hash=sha256:680060061adb2d74ce352628cb798cfdec399068aa7f07ba9fb818b2b3305f98 \ + --hash=sha256:6bbaebf0d11567fa8926215ae731e1d58e6ec28a8a25235b8a47405d301332db \ + --hash=sha256:6c05483c3136ac4c91b4e81903cb53a8707d316f488124d0398499a4f8e8ef51 \ + --hash=sha256:6dc8b7e2f4eb184b37655195f421836cfae6f58197b67e3ffc501f1333d993fa \ + --hash=sha256:6e504f7b16118198f138ef31ba24d985b124c2c469fe8467007cf30fd992f934 \ + --hash=sha256:74623f2ab5cc3f7c886add4f735d1031a1d2be4a4ae63c0546cfd74e7a31ddf6 \ + --hash=sha256:77f0d13fa87036d7553bf81f0e1fe3ce68d14c9976c9851744e4d3e91127e95f \ + --hash=sha256:85eef4cb5625c47ee6425c58a3502555e10f45ee973da878ac8248ad58c136f3 \ + --hash=sha256:882567b7ae57c1b1a0250208cc21a7976d8cbcc49d5a322e607e6f09c9e0bd53 \ + --hash=sha256:8b986403023c8f3bf8f487c2e6186afda156174d31c175f747d8934dfddf3479 \ + --hash=sha256:8cfa5f29a695cb7438965e6c3e8d06e0416060cf0d709c1b1c1653a939bf5c2a \ + --hash=sha256:8eafe7c36c8430b7794edeab3087dec7bf31d634d92f2af9949434b9d1964cba \ + --hash=sha256:9198f447e1dc5647d07c9a6bbe2063cc0132728cc7175b39dbc796da5b54920d \ + --hash=sha256:92190db305a6f48734d3982f2c60fa30d6b5ee9bff10f2887b930d7b40119f4c \ + --hash=sha256:927ccf5cd17c48f801f4ed43a7e5673a2724bd2171460be3e3894e6e332ef83a \ + --hash=sha256:98e81648e0b36e325ab67e46b5400a7a6d4a22b8a7c8e8bbfe20e7db7906bf95 \ + --hash=sha256:9a818668b674047fd88c4cddada7ab8f1c298812783e8328e956b78dc4807f9f \ + --hash=sha256:a152d86a3ae00ba5f47b3acf3b827509fd0b6cb7d3259665e63dafbad22a75ea \ + --hash=sha256:a2718c1de8504121714234b6f8241d0019450353276c88b9453c9c3d92e101db \ + --hash=sha256:a39fb973a726e63223287adc6dafe444ce75af952d711e400f3bf2b36ef55a7b \ + --hash=sha256:a899699294f28f7be8992853c0c60741f16ff199205e2e6cdca155762cbaa59d \ + --hash=sha256:a8fdfed3deaf1928fb7667d96e0567cdf58c2b370ea2ee7e586aa383ec2cb346 \ + --hash=sha256:aabb081ca0ec5d39591fc33018cd4b3f96e1a2dd6756282029986d00a785fba4 \ + --hash=sha256:b1f5b45829ac1848893f0ddf5cb326110604d6df96cdc255b0bf9edd154104d4 \ + --hash=sha256:b48e35f4ab6f6a7597c46e301126ceba4c44cd3280e3750f85db48b082624fa4 \ + --hash=sha256:b54c83f1c0c0f1d748dca0af516062b8829d53d1f0c402be24b4257a9c48ada6 \ + --hash=sha256:ba0cb30acd3ef11c94dc27fbfba68940652492bc107075e7ffe23057f9425681 \ + --hash=sha256:bb50ce5fb202a26fd5404620e7ef820ad1ab3558b444cb0b55beb7ef66cd2d63 \ + --hash=sha256:c95eb6db2884917d86cde0b4d4cf31adf485c8ec36bf8696dd66fa70de96f36b \ + --hash=sha256:d0ffd9e2e4441c96a9c91ec1783285d80bf835b677853fc2770a89d50c1e48ac \ + --hash=sha256:d57b5046c120561ba8fa8e4030fbb8b822f3063910fa901ffadf16e2b7128ad6 \ + --hash=sha256:d9e6a7664ddd9746e20b7325351fe1a8408d0a2bf9c63b5e898290ddc8f09544 \ + --hash=sha256:dc578891de1db95b2a35001b695451767b580bb45753717498213c5ff3c41d63 \ + --hash=sha256:e0434aa22c821f44eeb4c650b81c7fbdd8c0122c6c4b5a576a76d5a35625ecd9 \ + --hash=sha256:e06a922a469cae9a57100864caf4f8a97a1026513793969f8ba5b63137a35d25 \ + --hash=sha256:e493962256a38f58283de033d8af176c5c91c084ea30f15834f7545451c42059 \ + --hash=sha256:ecb0019d44f4cdb50b676c5d0cb4b1eae8e15d1ed3d3e6639f986fc92b2ec52c \ + --hash=sha256:f935c4493eda9069851058fa0d9e39dbf6286be690066509305e52912714dbb2 # via # feast (setup.py) # dask @@ -1955,9 +1953,9 @@ pandas==2.3.3 \ # pandas-gbq # pymilvus # snowflake-connector-python -pandas-gbq==0.31.1 \ - --hash=sha256:a5d6e897917302c50feaca2ed1ce6a284abd8b9139383bf063307aab8d0556d9 \ - --hash=sha256:c59878504adee211cf1c34b22cf94393c59cc953626c61ce76e06c8d25fd146d +pandas-gbq==0.32.0 \ + --hash=sha256:249623d574c65e98cf19b7b7ecda97729f4f0a843eae3a0a82d9ef50adcdf4ef \ + --hash=sha256:28018ff09f2e49ab2b01a11329bd4e562fd65da406030b4a8001a3a4e80a1e34 # via google-cloud-bigquery parsy==2.2 \ --hash=sha256:5e981613d9d2d8b68012d1dd0afe928967bea2e4eefdb76c2f545af0dd02a9e7 \ @@ -2131,9 +2129,9 @@ propcache==0.4.1 \ # via # aiohttp # yarl -proto-plus==1.26.1 \ - --hash=sha256:13285478c2dcf2abb829db158e1047e2f1e8d63a077d94263c2b88b043c75a66 \ - --hash=sha256:21a515a4c4c0088a773899e23c7bbade3d18f9c66c73edd4c7ee3816bc96a012 +proto-plus==1.27.0 \ + --hash=sha256:1baa7f81cf0f8acb8bc1f6d085008ba4171eaf669629d1b6d1673b21ed1c0a82 \ + --hash=sha256:873af56dd0d7e91836aee871e5799e1c6f1bda86ac9a983e0bb9f0c266a568c4 # via # google-api-core # google-cloud-bigquery-storage @@ -2164,26 +2162,28 @@ protobuf==6.33.2 \ # proto-plus # pymilvus # substrait -psutil==7.1.3 \ - --hash=sha256:0005da714eee687b4b8decd3d6cc7c6db36215c9e74e5ad2264b90c3df7d92dc \ - --hash=sha256:1068c303be3a72f8e18e412c5b2a8f6d31750fb152f9cb106b54090296c9d251 \ - --hash=sha256:18349c5c24b06ac5612c0428ec2a0331c26443d259e2a0144a9b24b4395b58fa \ - --hash=sha256:19644c85dcb987e35eeeaefdc3915d059dac7bd1167cdcdbf27e0ce2df0c08c0 \ - --hash=sha256:2bdbcd0e58ca14996a42adf3621a6244f1bb2e2e528886959c72cf1e326677ab \ - --hash=sha256:31d77fcedb7529f27bb3a0472bea9334349f9a04160e8e6e5020f22c59893264 \ - --hash=sha256:3792983e23b69843aea49c8f5b8f115572c5ab64c153bada5270086a2123c7e7 \ - --hash=sha256:3bb428f9f05c1225a558f53e30ccbad9930b11c3fc206836242de1091d3e7dd3 \ - --hash=sha256:56d974e02ca2c8eb4812c3f76c30e28836fffc311d55d979f1465c1feeb2b68b \ - --hash=sha256:6c86281738d77335af7aec228328e944b30930899ea760ecf33a4dba66be5e74 \ - --hash=sha256:8f33a3702e167783a9213db10ad29650ebf383946e91bc77f28a5eb083496bc9 \ - --hash=sha256:95ef04cf2e5ba0ab9eaafc4a11eaae91b44f4ef5541acd2ee91d9108d00d59a7 \ - --hash=sha256:ad81425efc5e75da3f39b3e636293360ad8d0b49bed7df824c79764fb4ba9b8b \ - --hash=sha256:b403da1df4d6d43973dc004d19cee3b848e998ae3154cc8097d139b77156c353 \ - --hash=sha256:bc31fa00f1fbc3c3802141eede66f3a2d51d89716a194bf2cd6fc68310a19880 \ - --hash=sha256:bd0d69cee829226a761e92f28140bec9a5ee9d5b4fb4b0cc589068dbfff559b1 \ - --hash=sha256:c525ffa774fe4496282fb0b1187725793de3e7c6b29e41562733cae9ada151ee \ - --hash=sha256:f39c2c19fe824b47484b96f9692932248a54c43799a84282cfe58d05a6449efd \ - --hash=sha256:fac9cd332c67f4422504297889da5ab7e05fd11e3c4392140f7370f4208ded1f +psutil==7.2.1 \ + --hash=sha256:05cc68dbb8c174828624062e73078e7e35406f4ca2d0866c272c2410d8ef06d1 \ + --hash=sha256:08a2f175e48a898c8eb8eace45ce01777f4785bc744c90aa2cc7f2fa5462a266 \ + --hash=sha256:0d67c1822c355aa6f7314d92018fb4268a76668a536f133599b91edd48759442 \ + --hash=sha256:2ceae842a78d1603753561132d5ad1b2f8a7979cb0c283f5b52fb4e6e14b1a79 \ + --hash=sha256:35630d5af80d5d0d49cfc4d64c1c13838baf6717a13effb35869a5919b854cdf \ + --hash=sha256:3fce5f92c22b00cdefd1645aa58ab4877a01679e901555067b1bd77039aa589f \ + --hash=sha256:494c513ccc53225ae23eec7fe6e1482f1b8a44674241b54561f755a898650679 \ + --hash=sha256:5e38404ca2bb30ed7267a46c02f06ff842e92da3bb8c5bfdadbd35a5722314d8 \ + --hash=sha256:81442dac7abfc2f4f4385ea9e12ddf5a796721c0f6133260687fec5c3780fa49 \ + --hash=sha256:923f8653416604e356073e6e0bccbe7c09990acef442def2f5640dd0faa9689f \ + --hash=sha256:93f3f7b0bb07711b49626e7940d6fe52aa9940ad86e8f7e74842e73189712129 \ + --hash=sha256:99a4cd17a5fdd1f3d014396502daa70b5ec21bf4ffe38393e152f8e449757d67 \ + --hash=sha256:ab2b98c9fc19f13f59628d94df5cc4cc4844bc572467d113a8b517d634e362c6 \ + --hash=sha256:b1b0671619343aa71c20ff9767eced0483e4fc9e1f489d50923738caf6a03c17 \ + --hash=sha256:b2e953fcfaedcfbc952b44744f22d16575d3aa78eb4f51ae74165b4e96e55f42 \ + --hash=sha256:ba9f33bb525b14c3ea563b2fd521a84d2fa214ec59e3e6a2858f78d0844dd60d \ + --hash=sha256:cfbe6b40ca48019a51827f20d830887b3107a74a79b01ceb8cc8de4ccb17b672 \ + --hash=sha256:d34d2ca888208eea2b5c68186841336a7f5e0b990edec929be909353a202768a \ + --hash=sha256:ea46c0d060491051d39f0d2cff4f98d5c72b288289f57a21556cc7d504db37fc \ + --hash=sha256:f7583aec590485b43ca601dd9cea0dcd65bd7bb21d30ef4ddbf4ea6b5ed1bdd3 \ + --hash=sha256:f78baafb38436d5a128f837fab2d92c276dfb48af01a240b861ae02b2413ada8 # via # feast (setup.py) # pandas-gbq @@ -2454,9 +2454,9 @@ python-dotenv==1.2.1 \ # pydantic-settings # pymilvus # uvicorn -python-multipart==0.0.20 \ - --hash=sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104 \ - --hash=sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13 +python-multipart==0.0.21 \ + --hash=sha256:7137ebd4d3bbf70ea1622998f902b97a29434a9e8dc40eb203bbcf7c2a2cba92 \ + --hash=sha256:cf7a6713e01c87aa35387f4774e812c4361150938d20d232800f75ffcf266090 # via mcp pytz==2025.2 \ --hash=sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3 \ @@ -2581,9 +2581,9 @@ rich==13.9.4 \ # fastapi-mcp # ibis-framework # typer -roman-numerals==3.1.0 \ - --hash=sha256:384e36fc1e8d4bd361bdb3672841faae7a345b3f708aae9895d074c878332551 \ - --hash=sha256:842ae5fd12912d62720c9aad8cab706e8c692556d01a38443e051ee6cc158d90 +roman-numerals==4.1.0 \ + --hash=sha256:1af8b147eb1405d5839e78aeb93131690495fe9da5c91856cb33ad55a7f1e5b2 \ + --hash=sha256:647ba99caddc2cc1e55a51e4360689115551bf4476d90e8162cf8c345fe233c7 # via sphinx rpds-py==0.30.0 \ --hash=sha256:07ae8a593e1c3c6b82ca3292efbe73c30b61332fd612e05abee07c79359f292f \ @@ -2815,12 +2815,14 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:1d8b4a7a8c9b537509d56d5cd10ecdcfbb95912d72480c8861524efecc6a3fff \ --hash=sha256:215f0528b914e5c75ef2559f69dca86878a3beeb0c1be7279d77f18e8d180ed4 \ --hash=sha256:2c0b74aa79e2deade948fe8593654c8ef4228c44ba862bb7c9585c8e0db90f33 \ + --hash=sha256:2e90a344c644a4fa871eb01809c32096487928bd2038bf10f3e4515cb688cc56 \ --hash=sha256:3c5f76216e7b85770d5bb5130ddd11ee89f4d52b11783674a662c7dd57018177 \ --hash=sha256:470daea2c1ce73910f08caf10575676a37159a6d16c4da33d0033546bddebc9b \ --hash=sha256:4748601c8ea959e37e03d13dcda4a44837afcd1b21338e637f7c935b8da06177 \ --hash=sha256:4b6bec67ca45bc166c8729910bd2a87f1c0407ee955df110d78948f5b5827e8a \ --hash=sha256:5225a288e4c8cc2308dbdd874edad6e7d0fd38eac1e9e5f23503425c8eee20d0 \ --hash=sha256:56ead1f8dfb91a54a28cd1d072c74b3d635bcffbd25e50786533b822d4f2cde2 \ + --hash=sha256:5964f832431b7cdfaaa22a660b4c7eb1dfcd6ed41375f67fd3e3440fd95cb3cc \ --hash=sha256:59a8b8bd9c6bedf81ad07c8bd5543eedca55fe9b8780b2b628d495ba55f8db1e \ --hash=sha256:672c45cae53ba88e0dad74b9027dddd09ef6f441e927786b05bec75d949fbb2e \ --hash=sha256:6d0beadc2535157070c9c17ecf25ecec31e13c229a8f69196d7590bde8082bf1 \ @@ -2839,7 +2841,9 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:b8c8b41b97fba5f62349aa285654230296829672fc9939cd7f35aab246d1c08b \ --hash=sha256:ba547ac0b361ab4f1608afbc8432db669bd0819b3e12e29fb5fa9529a8bba81d \ --hash=sha256:c1c2091b1489435ff85728fafeb990f073e64f6f5e81d5cd53059773e8521eb6 \ + --hash=sha256:c64772786d9eee72d4d3784c28f0a636af5b0a29f3fe26ff11f55efe90c0bd85 \ --hash=sha256:cd337d3526ec5298f67d6a30bbbe4ed7e5e68862f0bf6dd21d289f8d37b7d60b \ + --hash=sha256:d29b2b99d527dbc66dd87c3c3248a5dd789d974a507f4653c969999fc7c1191b \ --hash=sha256:d2c3684fca8a05f0ac1d9a21c1f4a266983a7ea9180efb80ffeb03861ecd01a0 \ --hash=sha256:d62e47f5d8a50099b17e2bfc1b0c7d7ecd8ba6b46b1507b58cc4f05eefc3bb1c \ --hash=sha256:d8a2ca754e5415cde2b656c27900b19d50ba076aa05ce66e2207623d3fe41f5a \ @@ -2857,9 +2861,9 @@ sqlglot==25.20.2 \ --hash=sha256:169fe8308dd70d7bd40117b2221b62bdc7c4e2ea8eb07394b2a6146cdedf05ab \ --hash=sha256:cdbfd7ce3f2f39f32bd7b4c23fd9e0fd261636a6b14285b914e8def25fd0a567 # via ibis-framework -sse-starlette==3.0.3 \ - --hash=sha256:88cfb08747e16200ea990c8ca876b03910a23b547ab3bd764c0d8eb81019b971 \ - --hash=sha256:af5bf5a6f3933df1d9c7f8539633dc8444ca6a97ab2e2a7cd3b6e431ac03a431 +sse-starlette==3.1.1 \ + --hash=sha256:bb38f71ae74cfd86b529907a9fda5632195dfa6ae120f214ea4c890c7ee9d436 \ + --hash=sha256:bffa531420c1793ab224f63648c059bcadc412bf9fdb1301ac8de1cf9a67b7fb # via mcp starlette==0.50.0 \ --hash=sha256:9e5391843ec9b6e472eed1365a78c8098cfceb7a74bfd4d6b1c0c0095efb3bca \ @@ -2867,6 +2871,7 @@ starlette==0.50.0 \ # via # fastapi # mcp + # sse-starlette substrait==0.24.2 \ --hash=sha256:743cc352e96b0927b2cd37cd5a8fdac0a96a68df9600bd104fc36aebd222a836 \ --hash=sha256:d1d475833566fa9d67eed3273456883c0568486ccced92b524b31709d2817e19 @@ -2956,17 +2961,17 @@ typeguard==4.4.4 \ --hash=sha256:3a7fd2dffb705d4d0efaed4306a704c89b9dee850b688f060a8b1615a79e5f74 \ --hash=sha256:b5f562281b6bfa1f5492470464730ef001646128b180769880468bd84b68b09e # via feast (setup.py) -typer==0.20.0 \ - --hash=sha256:1aaf6494031793e4876fb0bacfa6a912b551cf43c1e63c800df8b1a866720c37 \ - --hash=sha256:5b463df6793ec1dca6213a3cf4c0f03bc6e322ac5e16e13ddd622a889489784a +typer==0.21.0 \ + --hash=sha256:c79c01ca6b30af9fd48284058a7056ba0d3bf5cf10d0ff3d0c5b11b68c258ac6 \ + --hash=sha256:c87c0d2b6eee3b49c5c64649ec92425492c14488096dfbc8a0c2799b2f6f9c53 # via fastapi-mcp types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ --hash=sha256:1e642cdafe837b240295b23b1cbd4691d80b08a07d29932143cbbae30eb0db9c # via feast (setup.py) -types-pymysql==1.1.0.20250916 \ - --hash=sha256:873eb9836bb5e3de4368cc7010ca72775f86e9692a5c7810f8c7f48da082e55b \ - --hash=sha256:98d75731795fcc06723a192786662bdfa760e1e00f22809c104fbb47bac5e29b +types-pymysql==1.1.0.20251220 \ + --hash=sha256:ae1c3df32a777489431e2e9963880a0df48f6591e0aa2fd3a6fabd9dee6eca54 \ + --hash=sha256:fa1082af7dea6c53b6caa5784241924b1296ea3a8d3bd060417352c5e10c0618 # via feast (setup.py) typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -2997,9 +3002,9 @@ typing-inspection==0.4.2 \ # mcp # pydantic # pydantic-settings -tzdata==2025.2 \ - --hash=sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8 \ - --hash=sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9 +tzdata==2025.3 \ + --hash=sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1 \ + --hash=sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7 # via pandas ujson==5.11.0 \ --hash=sha256:0180a480a7d099082501cad1fe85252e4d4bf926b40960fb3d9e87a3a6fbbc80 \ @@ -3087,9 +3092,9 @@ ujson==5.11.0 \ --hash=sha256:fa79fdb47701942c2132a9dd2297a1a85941d966d8c87bfd9e29b0cf423f26cc \ --hash=sha256:fac6c0649d6b7c3682a0a6e18d3de6857977378dce8d419f57a0b20e3d775b39 # via pymilvus -urllib3==2.6.1 \ - --hash=sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f \ - --hash=sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b +urllib3==2.6.2 \ + --hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \ + --hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd # via # botocore # kubernetes diff --git a/sdk/python/requirements/py3.11-requirements.txt b/sdk/python/requirements/py3.11-requirements.txt index 0bdcae16825..8253a7a0800 100644 --- a/sdk/python/requirements/py3.11-requirements.txt +++ b/sdk/python/requirements/py3.11-requirements.txt @@ -20,9 +20,9 @@ attrs==25.4.0 \ # via # jsonschema # referencing -bigtree==1.0.3 \ - --hash=sha256:18402a143130868b17ca84a74ca263e6f32f046d6978c30d244f8b94c4a01227 \ - --hash=sha256:99a18b6937a9b4ab8e560fec5c0720e10ebf37f84e44f9b5f47702c2e84c9aaa +bigtree==1.0.4 \ + --hash=sha256:e4af0c5bc0d2cd72e18442965e4509f642b16a0de65db6d0ec116e30f959010c \ + --hash=sha256:f58a3238bb9b1142d893c9de4921bfd18d435427c75e0c168dd580eabf6dc7fd # via feast (setup.py) certifi==2025.11.12 \ --hash=sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b \ @@ -158,17 +158,17 @@ colorama==0.4.6 \ --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 # via feast (setup.py) -dask[dataframe]==2025.11.0 \ - --hash=sha256:08c35a8146c05c93b34f83cf651009129c42ee71762da7ca452fb7308641c2b8 \ - --hash=sha256:23d59e624b80ee05b7cc8df858682cca58262c4c3b197ccf61da0f6543c8f7c3 +dask[dataframe]==2025.12.0 \ + --hash=sha256:4213ce9c5d51d6d89337cff69de35d902aa0bf6abdb8a25c942a4d0281f3a598 \ + --hash=sha256:8d478f2aabd025e2453cf733ad64559de90cf328c20209e4574e9543707c3e1b # via feast (setup.py) dill==0.3.9 \ --hash=sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a \ --hash=sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c # via feast (setup.py) -fastapi==0.124.0 \ - --hash=sha256:260cd178ad75e6d259991f2fd9b0fee924b224850079df576a3ba604ce58f4e6 \ - --hash=sha256:91596bdc6dde303c318f06e8d2bc75eafb341fc793a0c9c92c0bc1db1ac52480 +fastapi==0.128.0 \ + --hash=sha256:1cc179e1cef10a6be60ffe429f79b829dce99d8de32d7acb7e6c8dfdf7f2645a \ + --hash=sha256:aebd93f9716ee3b4f4fcfe13ffb7cf308d99c9f3ab5622d8877441072561582d # via feast (setup.py) fsspec==2025.12.0 \ --hash=sha256:8bf1fe301b7d8acfa6e8571e3b1c3d158f909666642431cc78a1b7b4dbc5ec5b \ @@ -235,9 +235,9 @@ idna==3.11 \ # via # anyio # requests -importlib-metadata==8.7.0 \ - --hash=sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000 \ - --hash=sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd +importlib-metadata==8.7.1 \ + --hash=sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb \ + --hash=sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151 # via dask jinja2==3.1.6 \ --hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \ @@ -251,83 +251,83 @@ jsonschema-specifications==2025.9.1 \ --hash=sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe \ --hash=sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d # via jsonschema -librt==0.7.3 \ - --hash=sha256:020c6db391268bcc8ce75105cb572df8cb659a43fd347366aaa407c366e5117a \ - --hash=sha256:0fa9ac2e49a6bee56e47573a6786cb635e128a7b12a0dc7851090037c0d397a3 \ - --hash=sha256:11ad45122bbed42cfc8b0597450660126ef28fd2d9ae1a219bc5af8406f95678 \ - --hash=sha256:120dd21d46ff875e849f1aae19346223cf15656be489242fe884036b23d39e93 \ - --hash=sha256:14569ac5dd38cfccf0a14597a88038fb16811a6fede25c67b79c6d50fc2c8fdc \ - --hash=sha256:1617bea5ab31266e152871208502ee943cb349c224846928a1173c864261375e \ - --hash=sha256:170cdb8436188347af17bf9cccf3249ba581c933ed56d926497119d4cf730cec \ - --hash=sha256:1975eda520957c6e0eb52d12968dd3609ffb7eef05d4223d097893d6daf1d8a7 \ - --hash=sha256:1fe603877e1865b5fd047a5e40379509a4a60204aa7aa0f72b16f7a41c3f0712 \ - --hash=sha256:24d70810f6e2ea853ff79338001533716b373cc0f63e2a0be5bc96129edb5fb5 \ - --hash=sha256:256793988bff98040de23c57cf36e1f4c2f2dc3dcd17537cdac031d3b681db71 \ - --hash=sha256:25711f364c64cab2c910a0247e90b51421e45dbc8910ceeb4eac97a9e132fc6f \ - --hash=sha256:2682162855a708e3270eba4b92026b93f8257c3e65278b456c77631faf0f4f7a \ - --hash=sha256:2cf9d73499486ce39eebbff5f42452518cc1f88d8b7ea4a711ab32962b176ee2 \ - --hash=sha256:2e40520c37926166c24d0c2e0f3bc3a5f46646c34bdf7b4ea9747c297d6ee809 \ - --hash=sha256:2e980cf1ed1a2420a6424e2ed884629cdead291686f1048810a817de07b5eb18 \ - --hash=sha256:2f03484b54bf4ae80ab2e504a8d99d20d551bfe64a7ec91e218010b467d77093 \ - --hash=sha256:35f1609e3484a649bb80431310ddbec81114cd86648f1d9482bc72a3b86ded2e \ - --hash=sha256:399938edbd3d78339f797d685142dd8a623dfaded023cf451033c85955e4838a \ - --hash=sha256:399bbd7bcc1633c3e356ae274a1deb8781c7bf84d9c7962cc1ae0c6e87837292 \ - --hash=sha256:3ec50cf65235ff5c02c5b747748d9222e564ad48597122a361269dd3aa808798 \ - --hash=sha256:3edbf257c40d21a42615e9e332a6b10a8bacaaf58250aed8552a14a70efd0d65 \ - --hash=sha256:440c788f707c061d237c1e83edf6164ff19f5c0f823a3bf054e88804ebf971ec \ - --hash=sha256:44b3689b040df57f492e02cd4f0bacd1b42c5400e4b8048160c9d5e866de8abe \ - --hash=sha256:4887c29cadbdc50640179e3861c276325ff2986791e6044f73136e6e798ff806 \ - --hash=sha256:5460d99ed30f043595bbdc888f542bad2caeb6226b01c33cda3ae444e8f82d42 \ - --hash=sha256:550fdbfbf5bba6a2960b27376ca76d6aaa2bd4b1a06c4255edd8520c306fcfc0 \ - --hash=sha256:56f2a47beda8409061bc1c865bef2d4bd9ff9255219402c0817e68ab5ad89aed \ - --hash=sha256:572a24fc5958c61431da456a0ef1eeea6b4989d81eeb18b8e5f1f3077592200b \ - --hash=sha256:59cb0470612d21fa1efddfa0dd710756b50d9c7fb6c1236bbf8ef8529331dc70 \ - --hash=sha256:6038ccbd5968325a5d6fd393cf6e00b622a8de545f0994b89dd0f748dcf3e19e \ - --hash=sha256:6488e69d408b492e08bfb68f20c4a899a354b4386a446ecd490baff8d0862720 \ - --hash=sha256:687403cced6a29590e6be6964463835315905221d797bc5c934a98750fe1a9af \ - --hash=sha256:6b407c23f16ccc36614c136251d6b32bf30de7a57f8e782378f1107be008ddb0 \ - --hash=sha256:6b4e7bff1d76dd2b46443078519dc75df1b5e01562345f0bb740cea5266d8218 \ - --hash=sha256:6bdd9adfca615903578d2060ee8a6eb1c24eaf54919ff0ddc820118e5718931b \ - --hash=sha256:6eb9295c730e26b849ed1f4022735f36863eb46b14b6e10604c1c39b8b5efaea \ - --hash=sha256:703456146dc2bf430f7832fd1341adac5c893ec3c1430194fdcefba00012555c \ - --hash=sha256:754a0d09997095ad764ccef050dd5bf26cbf457aab9effcba5890dad081d879e \ - --hash=sha256:7af7785f5edd1f418da09a8cdb9ec84b0213e23d597413e06525340bcce1ea4f \ - --hash=sha256:7b29e97273bd6999e2bfe9fe3531b1f4f64effd28327bced048a33e49b99674a \ - --hash=sha256:7b4f57f7a0c65821c5441d98c47ff7c01d359b1e12328219709bdd97fdd37f90 \ - --hash=sha256:8837d5a52a2d7aa9f4c3220a8484013aed1d8ad75240d9a75ede63709ef89055 \ - --hash=sha256:8ccadf260bb46a61b9c7e89e2218f6efea9f3eeaaab4e3d1f58571890e54858e \ - --hash=sha256:8d8cf653e798ee4c4e654062b633db36984a1572f68c3aa25e364a0ddfbbb910 \ - --hash=sha256:93b2a1f325fefa1482516ced160c8c7b4b8d53226763fa6c93d151fa25164207 \ - --hash=sha256:9f0e0927efe87cd42ad600628e595a1a0aa1c64f6d0b55f7e6059079a428641a \ - --hash=sha256:a59a69deeb458c858b8fea6acf9e2acd5d755d76cd81a655256bc65c20dfff5b \ - --hash=sha256:a9f9b661f82693eb56beb0605156c7fca57f535704ab91837405913417d6990b \ - --hash=sha256:abfc57cab3c53c4546aee31859ef06753bfc136c9d208129bad23e2eca39155a \ - --hash=sha256:aca73d70c3f553552ba9133d4a09e767dcfeee352d8d8d3eb3f77e38a3beb3ed \ - --hash=sha256:adeaa886d607fb02563c1f625cf2ee58778a2567c0c109378da8f17ec3076ad7 \ - --hash=sha256:b278a9248a4e3260fee3db7613772ca9ab6763a129d6d6f29555e2f9b168216d \ - --hash=sha256:b7c1239b64b70be7759554ad1a86288220bbb04d68518b527783c4ad3fb4f80b \ - --hash=sha256:bf8c7735fbfc0754111f00edda35cf9e98a8d478de6c47b04eaa9cef4300eaa7 \ - --hash=sha256:c634a0a6db395fdaba0361aa78395597ee72c3aad651b9a307a3a7eaf5efd67e \ - --hash=sha256:cad9971881e4fec00d96af7eaf4b63aa7a595696fc221808b0d3ce7ca9743258 \ - --hash=sha256:cbdb3f337c88b43c3b49ca377731912c101178be91cb5071aac48faa898e6f8e \ - --hash=sha256:cd8551aa21df6c60baa2624fd086ae7486bdde00c44097b32e1d1b1966e365e0 \ - --hash=sha256:d09f677693328503c9e492e33e9601464297c01f9ebd966ea8fc5308f3069bfd \ - --hash=sha256:d376a35c6561e81d2590506804b428fc1075fcc6298fc5bb49b771534c0ba010 \ - --hash=sha256:d39079379a9a28e74f4d57dc6357fa310a1977b51ff12239d7271ec7e71d67f5 \ - --hash=sha256:d86f94743a11873317094326456b23f8a5788bad9161fd2f0e52088c33564620 \ - --hash=sha256:d91e60ac44bbe3a77a67af4a4c13114cbe9f6d540337ce22f2c9eaf7454ca71f \ - --hash=sha256:d9883b2d819ce83f87ba82a746c81d14ada78784db431e57cc9719179847376e \ - --hash=sha256:e094e445c37c57e9ec612847812c301840239d34ccc5d153a982fa9814478c60 \ - --hash=sha256:e19acfde38cb532a560b98f473adc741c941b7a9bc90f7294bc273d08becb58b \ - --hash=sha256:e32d43610dff472eab939f4d7fbdd240d1667794192690433672ae22d7af8445 \ - --hash=sha256:ed028fc3d41adda916320712838aec289956c89b4f0a361ceadf83a53b4c047a \ - --hash=sha256:ef59c938f72bdbc6ab52dc50f81d0637fde0f194b02d636987cea2ab30f8f55a \ - --hash=sha256:f3d4801db8354436fd3936531e7f0e4feb411f62433a6b6cb32bb416e20b529f \ - --hash=sha256:f57aca20e637750a2c18d979f7096e2c2033cc40cf7ed201494318de1182f135 \ - --hash=sha256:f9da128d0edf990cf0d2ca011b02cd6f639e79286774bd5b0351245cbb5a6e51 \ - --hash=sha256:fbd7351d43b80d9c64c3cfcb50008f786cc82cba0450e8599fdd64f264320bd3 \ - --hash=sha256:fcb72249ac4ea81a7baefcbff74df7029c3cb1cf01a711113fa052d563639c9c \ - --hash=sha256:ff21c554304e8226bf80c3a7754be27c6c3549a9fec563a03c06ee8f494da8fc +librt==0.7.5 \ + --hash=sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee \ + --hash=sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1 \ + --hash=sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4 \ + --hash=sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899 \ + --hash=sha256:0e2bf8f91093fac43e3eaebacf777f12fd539dce9ec5af3efc6d8424e96ccd49 \ + --hash=sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d \ + --hash=sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760 \ + --hash=sha256:191cbd42660446d67cf7a95ac7bfa60f49b8b3b0417c64f216284a1d86fc9335 \ + --hash=sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8 \ + --hash=sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2 \ + --hash=sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec \ + --hash=sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b \ + --hash=sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0 \ + --hash=sha256:39183abee670bc37b85f11e86c44a9cad1ed6efa48b580083e89ecee13dd9717 \ + --hash=sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325 \ + --hash=sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45 \ + --hash=sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d \ + --hash=sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233 \ + --hash=sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d \ + --hash=sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544 \ + --hash=sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802 \ + --hash=sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2 \ + --hash=sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d \ + --hash=sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f \ + --hash=sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169 \ + --hash=sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe \ + --hash=sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982 \ + --hash=sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2 \ + --hash=sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa \ + --hash=sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4 \ + --hash=sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4 \ + --hash=sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57 \ + --hash=sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26 \ + --hash=sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361 \ + --hash=sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad \ + --hash=sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e \ + --hash=sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf \ + --hash=sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f \ + --hash=sha256:8dcae24de1bc9da93aa689cb6313c70e776d7cea2fcf26b9b6160fedfe6bd9af \ + --hash=sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2 \ + --hash=sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89 \ + --hash=sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904 \ + --hash=sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6 \ + --hash=sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276 \ + --hash=sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e \ + --hash=sha256:a9eacbf983319b26b5f340a2e0cd47ac1ee4725a7f3a72fd0f15063c934b69d6 \ + --hash=sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409 \ + --hash=sha256:af69d9e159575e877c7546d1ee817b4ae089aa221dd1117e20c24ad8dc8659c7 \ + --hash=sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a \ + --hash=sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4 \ + --hash=sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775 \ + --hash=sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203 \ + --hash=sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419 \ + --hash=sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5 \ + --hash=sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023 \ + --hash=sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b \ + --hash=sha256:cdb001a1a0e4f41e613bca2c0fc147fc8a7396f53fc94201cbfd8ec7cd69ca4b \ + --hash=sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d \ + --hash=sha256:d2cc7d187e8c6e9b7bdbefa9697ce897a704ea7a7ce844f2b4e0e2aa07ae51d3 \ + --hash=sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e \ + --hash=sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a \ + --hash=sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b \ + --hash=sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db \ + --hash=sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd \ + --hash=sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa \ + --hash=sha256:df2e210400b28e50994477ebf82f055698c79797b6ee47a1669d383ca33263e1 \ + --hash=sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805 \ + --hash=sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a \ + --hash=sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25 \ + --hash=sha256:ea1b60b86595a5dc1f57b44a801a1c4d8209c0a69518391d349973a4491408e6 \ + --hash=sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b \ + --hash=sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5 \ + --hash=sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416 \ + --hash=sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc \ + --hash=sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7 \ + --hash=sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96 # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ @@ -547,125 +547,123 @@ mmh3==5.2.0 \ --hash=sha256:fdfd3fb739f4e22746e13ad7ba0c6eedf5f454b18d11249724a388868e308ee4 \ --hash=sha256:ff3d50dc3fe8a98059f99b445dfb62792b5d006c5e0b8f03c6de2813b8376110 # via feast (setup.py) -mypy==1.19.0 \ - --hash=sha256:0c01c99d626380752e527d5ce8e69ffbba2046eb8a060db0329690849cf9b6f9 \ - --hash=sha256:0dde5cb375cb94deff0d4b548b993bec52859d1651e073d63a1386d392a95495 \ - --hash=sha256:0e3c3d1e1d62e678c339e7ade72746a9e0325de42cd2cccc51616c7b2ed1a018 \ - --hash=sha256:0ea4fd21bb48f0da49e6d3b37ef6bd7e8228b9fe41bbf4d80d9364d11adbd43c \ - --hash=sha256:0fb3115cb8fa7c5f887c8a8d81ccdcb94cff334684980d847e5a62e926910e1d \ - --hash=sha256:11f7254c15ab3f8ed68f8e8f5cbe88757848df793e31c36aaa4d4f9783fd08ab \ - --hash=sha256:120cffe120cca5c23c03c77f84abc0c14c5d2e03736f6c312480020082f1994b \ - --hash=sha256:16f76ff3f3fd8137aadf593cb4607d82634fca675e8211ad75c43d86033ee6c6 \ - --hash=sha256:1cf9c59398db1c68a134b0b5354a09a1e124523f00bacd68e553b8bd16ff3299 \ - --hash=sha256:318ba74f75899b0e78b847d8c50821e4c9637c79d9a59680fc1259f29338cb3e \ - --hash=sha256:3210d87b30e6af9c8faed61be2642fcbe60ef77cec64fa1ef810a630a4cf671c \ - --hash=sha256:34ec1ac66d31644f194b7c163d7f8b8434f1b49719d403a5d26c87fff7e913f7 \ - --hash=sha256:37af5166f9475872034b56c5efdcf65ee25394e9e1d172907b84577120714364 \ - --hash=sha256:3ad925b14a0bb99821ff6f734553294aa6a3440a8cb082fe1f5b84dfb662afb1 \ - --hash=sha256:510c014b722308c9bd377993bcbf9a07d7e0692e5fa8fc70e639c1eb19fc6bee \ - --hash=sha256:6016c52ab209919b46169651b362068f632efcd5eb8ef9d1735f6f86da7853b2 \ - --hash=sha256:6148ede033982a8c5ca1143de34c71836a09f105068aaa8b7d5edab2b053e6c8 \ - --hash=sha256:63ea6a00e4bd6822adbfc75b02ab3653a17c02c4347f5bb0cf1d5b9df3a05835 \ - --hash=sha256:7686ed65dbabd24d20066f3115018d2dce030d8fa9db01aa9f0a59b6813e9f9e \ - --hash=sha256:7a500ab5c444268a70565e374fc803972bfd1f09545b13418a5174e29883dab7 \ - --hash=sha256:8f44f2ae3c58421ee05fe609160343c25f70e3967f6e32792b5a78006a9d850f \ - --hash=sha256:a18d8abdda14035c5718acb748faec09571432811af129bf0d9e7b2d6699bf18 \ - --hash=sha256:a31e4c28e8ddb042c84c5e977e28a21195d086aaffaf08b016b78e19c9ef8106 \ - --hash=sha256:a9ac09e52bb0f7fb912f5d2a783345c72441a08ef56ce3e17c1752af36340a39 \ - --hash=sha256:b9d491295825182fba01b6ffe2c6fe4e5a49dbf4e2bb4d1217b6ced3b4797bc6 \ - --hash=sha256:c14a98bc63fd867530e8ec82f217dae29d0550c86e70debc9667fff1ec83284e \ - --hash=sha256:c3385246593ac2b97f155a0e9639be906e73534630f663747c71908dfbf26134 \ - --hash=sha256:cabbee74f29aa9cd3b444ec2f1e4fa5a9d0d746ce7567a6a609e224429781f53 \ - --hash=sha256:cb64b0ba5980466a0f3f9990d1c582bcab8db12e29815ecb57f1408d99b4bff7 \ - --hash=sha256:cf7d84f497f78b682edd407f14a7b6e1a2212b433eedb054e2081380b7395aa3 \ - --hash=sha256:e2c1101ab41d01303103ab6ef82cbbfedb81c1a060c868fa7cc013d573d37ab5 \ - --hash=sha256:f188dcf16483b3e59f9278c4ed939ec0254aa8a60e8fc100648d9ab5ee95a431 \ - --hash=sha256:f2e36bed3c6d9b5f35d28b63ca4b727cb0228e480826ffc8953d1892ddc8999d \ - --hash=sha256:f3e19e3b897562276bb331074d64c076dbdd3e79213f36eed4e592272dabd760 \ - --hash=sha256:f6b874ca77f733222641e5c46e4711648c4037ea13646fd0cdc814c2eaec2528 \ - --hash=sha256:f75e60aca3723a23511948539b0d7ed514dda194bc3755eae0bfc7a6b4887aa7 \ - --hash=sha256:fc51a5b864f73a3a182584b1ac75c404396a17eced54341629d8bdcb644a5bba \ - --hash=sha256:fd4a985b2e32f23bead72e2fb4bbe5d6aceee176be471243bd831d5b2644672d +mypy==1.19.1 \ + --hash=sha256:016f2246209095e8eda7538944daa1d60e1e8134d98983b9fc1e92c1fc0cb8dd \ + --hash=sha256:022ea7279374af1a5d78dfcab853fe6a536eebfda4b59deab53cd21f6cd9f00b \ + --hash=sha256:06e6170bd5836770e8104c8fdd58e5e725cfeb309f0a6c681a811f557e97eac1 \ + --hash=sha256:19d88bb05303fe63f71dd2c6270daca27cb9401c4ca8255fe50d1d920e0eb9ba \ + --hash=sha256:21761006a7f497cb0d4de3d8ef4ca70532256688b0523eee02baf9eec895e27b \ + --hash=sha256:28902ee51f12e0f19e1e16fbe2f8f06b6637f482c459dd393efddd0ec7f82045 \ + --hash=sha256:2899753e2f61e571b3971747e302d5f420c3fd09650e1951e99f823bc3089dac \ + --hash=sha256:2abb24cf3f17864770d18d673c85235ba52456b36a06b6afc1e07c1fdcd3d0e6 \ + --hash=sha256:34c81968774648ab5ac09c29a375fdede03ba253f8f8287847bd480782f73a6a \ + --hash=sha256:409088884802d511ee52ca067707b90c883426bd95514e8cfda8281dc2effe24 \ + --hash=sha256:481daf36a4c443332e2ae9c137dfee878fcea781a2e3f895d54bd3002a900957 \ + --hash=sha256:4b84a7a18f41e167f7995200a1d07a4a6810e89d29859df936f1c3923d263042 \ + --hash=sha256:4f28f99c824ecebcdaa2e55d82953e38ff60ee5ec938476796636b86afa3956e \ + --hash=sha256:5f05aa3d375b385734388e844bc01733bd33c644ab48e9684faa54e5389775ec \ + --hash=sha256:7bcfc336a03a1aaa26dfce9fff3e287a3ba99872a157561cbfcebe67c13308e3 \ + --hash=sha256:804bd67b8054a85447c8954215a906d6eff9cabeabe493fb6334b24f4bfff718 \ + --hash=sha256:8bb5c6f6d043655e055be9b542aa5f3bdd30e4f3589163e85f93f3640060509f \ + --hash=sha256:a009ffa5a621762d0c926a078c2d639104becab69e79538a494bcccb62cc0331 \ + --hash=sha256:a8174a03289288c1f6c46d55cef02379b478bfbc8e358e02047487cad44c6ca1 \ + --hash=sha256:ab43590f9cd5108f41aacf9fca31841142c786827a74ab7cc8a2eacb634e09a1 \ + --hash=sha256:b10e7c2cd7870ba4ad9b2d8a6102eb5ffc1f16ca35e3de6bfa390c1113029d13 \ + --hash=sha256:b13cfdd6c87fc3efb69ea4ec18ef79c74c3f98b4e5498ca9b85ab3b2c2329a67 \ + --hash=sha256:b64d987153888790bcdb03a6473d321820597ab8dd9243b27a92153c4fa50fd2 \ + --hash=sha256:b7951a701c07ea584c4fe327834b92a30825514c868b1f69c30445093fdd9d5a \ + --hash=sha256:bdb12f69bcc02700c2b47e070238f42cb87f18c0bc1fc4cdb4fb2bc5fd7a3b8b \ + --hash=sha256:c35d298c2c4bba75feb2195655dfea8124d855dfd7343bf8b8c055421eaf0cf8 \ + --hash=sha256:c608937067d2fc5a4dd1a5ce92fd9e1398691b8c5d012d66e1ddd430e9244376 \ + --hash=sha256:c9a6538e0415310aad77cb94004ca6482330fece18036b5f360b62c45814c4ef \ + --hash=sha256:d8dfc6ab58ca7dda47d9237349157500468e404b17213d44fc1cb77bce532288 \ + --hash=sha256:da4869fc5e7f62a88f3fe0b5c919d1d9f7ea3cef92d3689de2823fd27e40aa75 \ + --hash=sha256:de759aafbae8763283b2ee5869c7255391fbc4de3ff171f8f030b5ec48381b74 \ + --hash=sha256:e3157c7594ff2ef1634ee058aafc56a82db665c9438fd41b390f3bde1ab12250 \ + --hash=sha256:e3f276d8493c3c97930e354b2595a44a21348b320d859fb4a2b9f66da9ed27ab \ + --hash=sha256:ee4c11e460685c3e0c64a4c5de82ae143622410950d6be863303a1c4ba0e36d6 \ + --hash=sha256:f1235f5ea01b7db5468d53ece6aaddf1ad0b88d9e7462b86ef96fe04995d7247 \ + --hash=sha256:f7cee03c9a2e2ee26ec07479f38ea9c884e301d42c6d43a19d20fb014e3ba925 \ + --hash=sha256:f859fb09d9583a985be9a493d5cfc5515b56b08f7447759a0c5deaf68d80506e \ + --hash=sha256:ffcebe56eb09ff0c0885e750036a095e23793ba6c2e894e7e63f6d89ad51f22e # via sqlalchemy mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 # via mypy -numpy==2.3.5 \ - --hash=sha256:00dc4e846108a382c5869e77c6ed514394bdeb3403461d25a829711041217d5b \ - --hash=sha256:0472f11f6ec23a74a906a00b48a4dcf3849209696dff7c189714511268d103ae \ - --hash=sha256:04822c00b5fd0323c8166d66c701dc31b7fbd252c100acd708c48f763968d6a3 \ - --hash=sha256:052e8c42e0c49d2575621c158934920524f6c5da05a1d3b9bab5d8e259e045f0 \ - --hash=sha256:09a1bea522b25109bf8e6f3027bd810f7c1085c64a0c7ce050c1676ad0ba010b \ - --hash=sha256:0cd00b7b36e35398fa2d16af7b907b65304ef8bb4817a550e06e5012929830fa \ - --hash=sha256:0d8163f43acde9a73c2a33605353a4f1bc4798745a8b1d73183b28e5b435ae28 \ - --hash=sha256:1062fde1dcf469571705945b0f221b73928f34a20c904ffb45db101907c3454e \ - --hash=sha256:11e06aa0af8c0f05104d56450d6093ee639e15f24ecf62d417329d06e522e017 \ - --hash=sha256:17531366a2e3a9e30762c000f2c43a9aaa05728712e25c11ce1dbe700c53ad41 \ - --hash=sha256:1978155dd49972084bd6ef388d66ab70f0c323ddee6f693d539376498720fb7e \ - --hash=sha256:1ed1ec893cff7040a02c8aa1c8611b94d395590d553f6b53629a4461dc7f7b63 \ - --hash=sha256:2dcd0808a421a482a080f89859a18beb0b3d1e905b81e617a188bd80422d62e9 \ - --hash=sha256:2e2eb32ddb9ccb817d620ac1d8dae7c3f641c1e5f55f531a33e8ab97960a75b8 \ - --hash=sha256:2feae0d2c91d46e59fcd62784a3a83b3fb677fead592ce51b5a6fbb4f95965ff \ - --hash=sha256:3095bdb8dd297e5920b010e96134ed91d852d81d490e787beca7e35ae1d89cf7 \ - --hash=sha256:30bc11310e8153ca664b14c5f1b73e94bd0503681fcf136a163de856f3a50139 \ - --hash=sha256:3101e5177d114a593d79dd79658650fe28b5a0d8abeb8ce6f437c0e6df5be1a4 \ - --hash=sha256:396084a36abdb603546b119d96528c2f6263921c50df3c8fd7cb28873a237748 \ - --hash=sha256:3997b5b3c9a771e157f9aae01dd579ee35ad7109be18db0e85dbdbe1de06e952 \ - --hash=sha256:414802f3b97f3c1eef41e530aaba3b3c1620649871d8cb38c6eaff034c2e16bd \ - --hash=sha256:51c1e14eb1e154ebd80e860722f9e6ed6ec89714ad2db2d3aa33c31d7c12179b \ - --hash=sha256:51c55fe3451421f3a6ef9a9c1439e82101c57a2c9eab9feb196a62b1a10b58ce \ - --hash=sha256:5ee6609ac3604fa7780e30a03e5e241a7956f8e2fcfe547d51e3afa5247ac47f \ - --hash=sha256:612a95a17655e213502f60cfb9bf9408efdc9eb1d5f50535cc6eb365d11b42b5 \ - --hash=sha256:6203fdf9f3dc5bdaed7319ad8698e685c7a3be10819f41d32a0723e611733b42 \ - --hash=sha256:63c0e9e7eea69588479ebf4a8a270d5ac22763cc5854e9a7eae952a3908103f7 \ - --hash=sha256:66f85ce62c70b843bab1fb14a05d5737741e74e28c7b8b5a064de10142fad248 \ - --hash=sha256:6cf9b429b21df6b99f4dee7a1218b8b7ffbbe7df8764dc0bd60ce8a0708fed1e \ - --hash=sha256:70b37199913c1bd300ff6e2693316c6f869c7ee16378faf10e4f5e3275b299c3 \ - --hash=sha256:727fd05b57df37dc0bcf1a27767a3d9a78cbbc92822445f32cc3436ba797337b \ - --hash=sha256:74ae7b798248fe62021dbf3c914245ad45d1a6b0cb4a29ecb4b31d0bfbc4cc3e \ - --hash=sha256:784db1dcdab56bf0517743e746dfb0f885fc68d948aba86eeec2cba234bdf1c0 \ - --hash=sha256:86945f2ee6d10cdfd67bcb4069c1662dd711f7e2a4343db5cecec06b87cf31aa \ - --hash=sha256:86d835afea1eaa143012a2d7a3f45a3adce2d7adc8b4961f0b362214d800846a \ - --hash=sha256:872a5cf366aec6bb1147336480fef14c9164b154aeb6542327de4970282cd2f5 \ - --hash=sha256:8b973c57ff8e184109db042c842423ff4f60446239bd585a5131cc47f06f789d \ - --hash=sha256:8cba086a43d54ca804ce711b2a940b16e452807acebe7852ff327f1ecd49b0d4 \ - --hash=sha256:8f7f0e05112916223d3f438f293abf0727e1181b5983f413dfa2fefc4098245c \ - --hash=sha256:900218e456384ea676e24ea6a0417f030a3b07306d29d7ad843957b40a9d8d52 \ - --hash=sha256:93eebbcf1aafdf7e2ddd44c2923e2672e1010bddc014138b229e49725b4d6be5 \ - --hash=sha256:9c75442b2209b8470d6d5d8b1c25714270686f14c749028d2199c54e29f20b4d \ - --hash=sha256:9ee2197ef8c4f0dfe405d835f3b6a14f5fee7782b5de51ba06fb65fc9b36e9f1 \ - --hash=sha256:a414504bef8945eae5f2d7cb7be2d4af77c5d1cb5e20b296c2c25b61dff2900c \ - --hash=sha256:a4b9159734b326535f4dd01d947f919c6eefd2d9827466a696c44ced82dfbc18 \ - --hash=sha256:a80afd79f45f3c4a7d341f13acbe058d1ca8ac017c165d3fa0d3de6bc1a079d7 \ - --hash=sha256:aa5bc7c5d59d831d9773d1170acac7893ce3a5e130540605770ade83280e7188 \ - --hash=sha256:acfd89508504a19ed06ef963ad544ec6664518c863436306153e13e94605c218 \ - --hash=sha256:aeffcab3d4b43712bb7a60b65f6044d444e75e563ff6180af8f98dd4b905dfd2 \ - --hash=sha256:afaffc4393205524af9dfa400fa250143a6c3bc646c08c9f5e25a9f4b4d6a903 \ - --hash=sha256:b0c7088a73aef3d687c4deef8452a3ac7c1be4e29ed8bf3b366c8111128ac60c \ - --hash=sha256:b46b4ec24f7293f23adcd2d146960559aaf8020213de8ad1909dba6c013bf89c \ - --hash=sha256:b501b5fa195cc9e24fe102f21ec0a44dffc231d2af79950b451e0d99cea02234 \ - --hash=sha256:bf06bc2af43fa8d32d30fae16ad965663e966b1a3202ed407b84c989c3221e82 \ - --hash=sha256:c804e3a5aba5460c73955c955bdbd5c08c354954e9270a2c1565f62e866bdc39 \ - --hash=sha256:c8a9958e88b65c3b27e22ca2a076311636850b612d6bbfb76e8d156aacde2aaf \ - --hash=sha256:cc0a57f895b96ec78969c34f682c602bf8da1a0270b09bc65673df2e7638ec20 \ - --hash=sha256:cc8920d2ec5fa99875b670bb86ddeb21e295cb07aa331810d9e486e0b969d946 \ - --hash=sha256:ccc933afd4d20aad3c00bcef049cb40049f7f196e0397f1109dba6fed63267b0 \ - --hash=sha256:ce581db493ea1a96c0556360ede6607496e8bf9b3a8efa66e06477267bc831e9 \ - --hash=sha256:d0f23b44f57077c1ede8c5f26b30f706498b4862d3ff0a7298b8411dd2f043ff \ - --hash=sha256:d21644de1b609825ede2f48be98dfde4656aefc713654eeee280e37cadc4e0ad \ - --hash=sha256:d6889ec4ec662a1a37eb4b4fb26b6100841804dac55bd9df579e326cdc146227 \ - --hash=sha256:de5672f4a7b200c15a4127042170a694d4df43c992948f5e1af57f0174beed10 \ - --hash=sha256:e6a0bc88393d65807d751a614207b7129a310ca4fe76a74e5c7da5fa5671417e \ - --hash=sha256:ed89927b86296067b4f81f108a2271d8926467a8868e554eaf370fc27fa3ccaf \ - --hash=sha256:ee3888d9ff7c14604052b2ca5535a30216aa0a58e948cdd3eeb8d3415f638769 \ - --hash=sha256:f0963b55cdd70fad460fa4c1341f12f976bb26cb66021a5580329bd498988310 \ - --hash=sha256:f16417ec91f12f814b10bafe79ef77e70113a2f5f7018640e7425ff979253425 \ - --hash=sha256:f28620fe26bee16243be2b7b874da327312240a7cdc38b769a697578d2100013 \ - --hash=sha256:f4255143f5160d0de972d28c8f9665d882b5f61309d8362fdd3e103cf7bf010c \ - --hash=sha256:ffac52f28a7849ad7576293c0cb7b9f08304e8f7d738a8cb8a90ec4c55a998eb \ - --hash=sha256:ffe22d2b05504f786c867c8395de703937f934272eb67586817b46188b4ded6d \ - --hash=sha256:fffe29a1ef00883599d1dc2c51aa2e5d80afe49523c261a74933df395c15c520 +numpy==2.4.0 \ + --hash=sha256:009bd0ea12d3c784b6639a8457537016ce5172109e585338e11334f6a7bb88ee \ + --hash=sha256:02a2038eb27f9443a8b266a66911e926566b5a6ffd1a689b588f7f35b81e7dc3 \ + --hash=sha256:0804a8e4ab070d1d35496e65ffd3cf8114c136a2b81f61dfab0de4b218aacfd5 \ + --hash=sha256:0feafc9e03128074689183031181fac0897ff169692d8492066e949041096548 \ + --hash=sha256:1889b3a3f47a7b5bee16bc25a2145bd7cb91897f815ce3499db64c7458b6d91d \ + --hash=sha256:1d8f9fde5f6dc1b6fc34df8162f3b3079365468703fee7f31d4e0cc8c63baed9 \ + --hash=sha256:1ee32359fb7543b7b7bd0b2f46294db27e29e7bbdf70541e81b190836cd83ded \ + --hash=sha256:20c115517513831860c573996e395707aa9fb691eb179200125c250e895fcd93 \ + --hash=sha256:21555da4ec4a0c942520ead42c3b0dc9477441e085c42b0fbdd6a084869a6f6b \ + --hash=sha256:23a3e9d1a6f360267e8fbb38ba5db355a6a7e9be71d7fce7ab3125e88bb646c8 \ + --hash=sha256:2a8b6bb8369abefb8bd1801b054ad50e02b3275c8614dc6e5b0373c305291037 \ + --hash=sha256:2e284ca13d5a8367e43734148622caf0b261b275673823593e3e3634a6490f83 \ + --hash=sha256:2f585f52b2baf07ff3356158d9268ea095e221371f1074fadea2f42544d58b4d \ + --hash=sha256:316b2f2584682318539f0bcaca5a496ce9ca78c88066579ebd11fd06f8e4741e \ + --hash=sha256:32ed06d0fe9cae27d8fb5f400c63ccee72370599c75e683a6358dd3a4fb50aaf \ + --hash=sha256:355354388cba60f2132df297e2d53053d4063f79077b67b481d21276d61fc4df \ + --hash=sha256:35ddc8f4914466e6fc954c76527aa91aa763682a4f6d73249ef20b418fe6effb \ + --hash=sha256:36667db4d6c1cea79c8930ab72fadfb4060feb4bfe724141cd4bd064d2e5f8ce \ + --hash=sha256:36cbfb13c152b1c7c184ddac43765db8ad672567e7bafff2cc755a09917ed2e6 \ + --hash=sha256:39699233bc72dd482da1415dcb06076e32f60eddc796a796c5fb6c5efce94667 \ + --hash=sha256:39b19251dec4de8ff8496cd0806cbe27bf0684f765abb1f4809554de93785f2d \ + --hash=sha256:3d857f55e7fdf7c38ab96c4558c95b97d1c685be6b05c249f5fdafcbd6f9899e \ + --hash=sha256:3de19cfecd1465d0dcf8a5b5ea8b3155b42ed0b639dba4b71e323d74f2a3be5e \ + --hash=sha256:3f3096405acc48887458bbf9f6814d43785ac7ba2a57ea6442b581dedbc60ce6 \ + --hash=sha256:40483b2f2d3ba7aad426443767ff5632ec3156ef09742b96913787d13c336471 \ + --hash=sha256:413aa561266a4be2d06cd2b9665e89d9f54c543f418773076a76adcf2af08bc7 \ + --hash=sha256:44aba2f0cafd287871a495fb3163408b0bd25bbce135c6f621534a07f4f7875c \ + --hash=sha256:49ff32b09f5aa0cd30a20c2b39db3e669c845589f2b7fc910365210887e39344 \ + --hash=sha256:4d1cfce39e511069b11e67cd0bd78ceff31443b7c9e5c04db73c7a19f572967c \ + --hash=sha256:57c540ed8fb1f05cb997c6761cd56db72395b0d6985e90571ff660452ade4f98 \ + --hash=sha256:5f48cb3e88fbc294dc90e215d86fbaf1c852c63dbdb6c3a3e63f45c4b57f7344 \ + --hash=sha256:5fe44e277225fd3dff6882d86d3d447205d43532c3627313d17e754fb3905a0e \ + --hash=sha256:60e8c196cd82cbbd4f130b5290007e13e6de3eca79f0d4d38014769d96a7c475 \ + --hash=sha256:65167da969cd1ec3a1df31cb221ca3a19a8aaa25370ecb17d428415e93c1935e \ + --hash=sha256:680060061adb2d74ce352628cb798cfdec399068aa7f07ba9fb818b2b3305f98 \ + --hash=sha256:6bbaebf0d11567fa8926215ae731e1d58e6ec28a8a25235b8a47405d301332db \ + --hash=sha256:6c05483c3136ac4c91b4e81903cb53a8707d316f488124d0398499a4f8e8ef51 \ + --hash=sha256:6dc8b7e2f4eb184b37655195f421836cfae6f58197b67e3ffc501f1333d993fa \ + --hash=sha256:6e504f7b16118198f138ef31ba24d985b124c2c469fe8467007cf30fd992f934 \ + --hash=sha256:74623f2ab5cc3f7c886add4f735d1031a1d2be4a4ae63c0546cfd74e7a31ddf6 \ + --hash=sha256:77f0d13fa87036d7553bf81f0e1fe3ce68d14c9976c9851744e4d3e91127e95f \ + --hash=sha256:85eef4cb5625c47ee6425c58a3502555e10f45ee973da878ac8248ad58c136f3 \ + --hash=sha256:882567b7ae57c1b1a0250208cc21a7976d8cbcc49d5a322e607e6f09c9e0bd53 \ + --hash=sha256:8b986403023c8f3bf8f487c2e6186afda156174d31c175f747d8934dfddf3479 \ + --hash=sha256:8cfa5f29a695cb7438965e6c3e8d06e0416060cf0d709c1b1c1653a939bf5c2a \ + --hash=sha256:8eafe7c36c8430b7794edeab3087dec7bf31d634d92f2af9949434b9d1964cba \ + --hash=sha256:9198f447e1dc5647d07c9a6bbe2063cc0132728cc7175b39dbc796da5b54920d \ + --hash=sha256:92190db305a6f48734d3982f2c60fa30d6b5ee9bff10f2887b930d7b40119f4c \ + --hash=sha256:927ccf5cd17c48f801f4ed43a7e5673a2724bd2171460be3e3894e6e332ef83a \ + --hash=sha256:98e81648e0b36e325ab67e46b5400a7a6d4a22b8a7c8e8bbfe20e7db7906bf95 \ + --hash=sha256:9a818668b674047fd88c4cddada7ab8f1c298812783e8328e956b78dc4807f9f \ + --hash=sha256:a152d86a3ae00ba5f47b3acf3b827509fd0b6cb7d3259665e63dafbad22a75ea \ + --hash=sha256:a2718c1de8504121714234b6f8241d0019450353276c88b9453c9c3d92e101db \ + --hash=sha256:a39fb973a726e63223287adc6dafe444ce75af952d711e400f3bf2b36ef55a7b \ + --hash=sha256:a899699294f28f7be8992853c0c60741f16ff199205e2e6cdca155762cbaa59d \ + --hash=sha256:a8fdfed3deaf1928fb7667d96e0567cdf58c2b370ea2ee7e586aa383ec2cb346 \ + --hash=sha256:aabb081ca0ec5d39591fc33018cd4b3f96e1a2dd6756282029986d00a785fba4 \ + --hash=sha256:b1f5b45829ac1848893f0ddf5cb326110604d6df96cdc255b0bf9edd154104d4 \ + --hash=sha256:b48e35f4ab6f6a7597c46e301126ceba4c44cd3280e3750f85db48b082624fa4 \ + --hash=sha256:b54c83f1c0c0f1d748dca0af516062b8829d53d1f0c402be24b4257a9c48ada6 \ + --hash=sha256:ba0cb30acd3ef11c94dc27fbfba68940652492bc107075e7ffe23057f9425681 \ + --hash=sha256:bb50ce5fb202a26fd5404620e7ef820ad1ab3558b444cb0b55beb7ef66cd2d63 \ + --hash=sha256:c95eb6db2884917d86cde0b4d4cf31adf485c8ec36bf8696dd66fa70de96f36b \ + --hash=sha256:d0ffd9e2e4441c96a9c91ec1783285d80bf835b677853fc2770a89d50c1e48ac \ + --hash=sha256:d57b5046c120561ba8fa8e4030fbb8b822f3063910fa901ffadf16e2b7128ad6 \ + --hash=sha256:d9e6a7664ddd9746e20b7325351fe1a8408d0a2bf9c63b5e898290ddc8f09544 \ + --hash=sha256:dc578891de1db95b2a35001b695451767b580bb45753717498213c5ff3c41d63 \ + --hash=sha256:e0434aa22c821f44eeb4c650b81c7fbdd8c0122c6c4b5a576a76d5a35625ecd9 \ + --hash=sha256:e06a922a469cae9a57100864caf4f8a97a1026513793969f8ba5b63137a35d25 \ + --hash=sha256:e493962256a38f58283de033d8af176c5c91c084ea30f15834f7545451c42059 \ + --hash=sha256:ecb0019d44f4cdb50b676c5d0cb4b1eae8e15d1ed3d3e6639f986fc92b2ec52c \ + --hash=sha256:f935c4493eda9069851058fa0d9e39dbf6286be690066509305e52912714dbb2 # via # feast (setup.py) # dask @@ -759,26 +757,28 @@ protobuf==6.33.2 \ --hash=sha256:d9b19771ca75935b3a4422957bc518b0cecb978b31d1dd12037b088f6bcc0e43 \ --hash=sha256:fc2a0e8b05b180e5fc0dd1559fe8ebdae21a27e81ac77728fb6c42b12c7419b4 # via feast (setup.py) -psutil==7.1.3 \ - --hash=sha256:0005da714eee687b4b8decd3d6cc7c6db36215c9e74e5ad2264b90c3df7d92dc \ - --hash=sha256:1068c303be3a72f8e18e412c5b2a8f6d31750fb152f9cb106b54090296c9d251 \ - --hash=sha256:18349c5c24b06ac5612c0428ec2a0331c26443d259e2a0144a9b24b4395b58fa \ - --hash=sha256:19644c85dcb987e35eeeaefdc3915d059dac7bd1167cdcdbf27e0ce2df0c08c0 \ - --hash=sha256:2bdbcd0e58ca14996a42adf3621a6244f1bb2e2e528886959c72cf1e326677ab \ - --hash=sha256:31d77fcedb7529f27bb3a0472bea9334349f9a04160e8e6e5020f22c59893264 \ - --hash=sha256:3792983e23b69843aea49c8f5b8f115572c5ab64c153bada5270086a2123c7e7 \ - --hash=sha256:3bb428f9f05c1225a558f53e30ccbad9930b11c3fc206836242de1091d3e7dd3 \ - --hash=sha256:56d974e02ca2c8eb4812c3f76c30e28836fffc311d55d979f1465c1feeb2b68b \ - --hash=sha256:6c86281738d77335af7aec228328e944b30930899ea760ecf33a4dba66be5e74 \ - --hash=sha256:8f33a3702e167783a9213db10ad29650ebf383946e91bc77f28a5eb083496bc9 \ - --hash=sha256:95ef04cf2e5ba0ab9eaafc4a11eaae91b44f4ef5541acd2ee91d9108d00d59a7 \ - --hash=sha256:ad81425efc5e75da3f39b3e636293360ad8d0b49bed7df824c79764fb4ba9b8b \ - --hash=sha256:b403da1df4d6d43973dc004d19cee3b848e998ae3154cc8097d139b77156c353 \ - --hash=sha256:bc31fa00f1fbc3c3802141eede66f3a2d51d89716a194bf2cd6fc68310a19880 \ - --hash=sha256:bd0d69cee829226a761e92f28140bec9a5ee9d5b4fb4b0cc589068dbfff559b1 \ - --hash=sha256:c525ffa774fe4496282fb0b1187725793de3e7c6b29e41562733cae9ada151ee \ - --hash=sha256:f39c2c19fe824b47484b96f9692932248a54c43799a84282cfe58d05a6449efd \ - --hash=sha256:fac9cd332c67f4422504297889da5ab7e05fd11e3c4392140f7370f4208ded1f +psutil==7.2.1 \ + --hash=sha256:05cc68dbb8c174828624062e73078e7e35406f4ca2d0866c272c2410d8ef06d1 \ + --hash=sha256:08a2f175e48a898c8eb8eace45ce01777f4785bc744c90aa2cc7f2fa5462a266 \ + --hash=sha256:0d67c1822c355aa6f7314d92018fb4268a76668a536f133599b91edd48759442 \ + --hash=sha256:2ceae842a78d1603753561132d5ad1b2f8a7979cb0c283f5b52fb4e6e14b1a79 \ + --hash=sha256:35630d5af80d5d0d49cfc4d64c1c13838baf6717a13effb35869a5919b854cdf \ + --hash=sha256:3fce5f92c22b00cdefd1645aa58ab4877a01679e901555067b1bd77039aa589f \ + --hash=sha256:494c513ccc53225ae23eec7fe6e1482f1b8a44674241b54561f755a898650679 \ + --hash=sha256:5e38404ca2bb30ed7267a46c02f06ff842e92da3bb8c5bfdadbd35a5722314d8 \ + --hash=sha256:81442dac7abfc2f4f4385ea9e12ddf5a796721c0f6133260687fec5c3780fa49 \ + --hash=sha256:923f8653416604e356073e6e0bccbe7c09990acef442def2f5640dd0faa9689f \ + --hash=sha256:93f3f7b0bb07711b49626e7940d6fe52aa9940ad86e8f7e74842e73189712129 \ + --hash=sha256:99a4cd17a5fdd1f3d014396502daa70b5ec21bf4ffe38393e152f8e449757d67 \ + --hash=sha256:ab2b98c9fc19f13f59628d94df5cc4cc4844bc572467d113a8b517d634e362c6 \ + --hash=sha256:b1b0671619343aa71c20ff9767eced0483e4fc9e1f489d50923738caf6a03c17 \ + --hash=sha256:b2e953fcfaedcfbc952b44744f22d16575d3aa78eb4f51ae74165b4e96e55f42 \ + --hash=sha256:ba9f33bb525b14c3ea563b2fd521a84d2fa214ec59e3e6a2858f78d0844dd60d \ + --hash=sha256:cfbe6b40ca48019a51827f20d830887b3107a74a79b01ceb8cc8de4ccb17b672 \ + --hash=sha256:d34d2ca888208eea2b5c68186841336a7f5e0b990edec929be909353a202768a \ + --hash=sha256:ea46c0d060491051d39f0d2cff4f98d5c72b288289f57a21556cc7d504db37fc \ + --hash=sha256:f7583aec590485b43ca601dd9cea0dcd65bd7bb21d30ef4ddbf4ea6b5ed1bdd3 \ + --hash=sha256:f78baafb38436d5a128f837fab2d92c276dfb48af01a240b861ae02b2413ada8 # via feast (setup.py) pyarrow==21.0.0 \ --hash=sha256:067c66ca29aaedae08218569a114e413b26e742171f526e828e1064fcdec13f4 \ @@ -1199,12 +1199,14 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:1d8b4a7a8c9b537509d56d5cd10ecdcfbb95912d72480c8861524efecc6a3fff \ --hash=sha256:215f0528b914e5c75ef2559f69dca86878a3beeb0c1be7279d77f18e8d180ed4 \ --hash=sha256:2c0b74aa79e2deade948fe8593654c8ef4228c44ba862bb7c9585c8e0db90f33 \ + --hash=sha256:2e90a344c644a4fa871eb01809c32096487928bd2038bf10f3e4515cb688cc56 \ --hash=sha256:3c5f76216e7b85770d5bb5130ddd11ee89f4d52b11783674a662c7dd57018177 \ --hash=sha256:470daea2c1ce73910f08caf10575676a37159a6d16c4da33d0033546bddebc9b \ --hash=sha256:4748601c8ea959e37e03d13dcda4a44837afcd1b21338e637f7c935b8da06177 \ --hash=sha256:4b6bec67ca45bc166c8729910bd2a87f1c0407ee955df110d78948f5b5827e8a \ --hash=sha256:5225a288e4c8cc2308dbdd874edad6e7d0fd38eac1e9e5f23503425c8eee20d0 \ --hash=sha256:56ead1f8dfb91a54a28cd1d072c74b3d635bcffbd25e50786533b822d4f2cde2 \ + --hash=sha256:5964f832431b7cdfaaa22a660b4c7eb1dfcd6ed41375f67fd3e3440fd95cb3cc \ --hash=sha256:59a8b8bd9c6bedf81ad07c8bd5543eedca55fe9b8780b2b628d495ba55f8db1e \ --hash=sha256:672c45cae53ba88e0dad74b9027dddd09ef6f441e927786b05bec75d949fbb2e \ --hash=sha256:6d0beadc2535157070c9c17ecf25ecec31e13c229a8f69196d7590bde8082bf1 \ @@ -1223,7 +1225,9 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:b8c8b41b97fba5f62349aa285654230296829672fc9939cd7f35aab246d1c08b \ --hash=sha256:ba547ac0b361ab4f1608afbc8432db669bd0819b3e12e29fb5fa9529a8bba81d \ --hash=sha256:c1c2091b1489435ff85728fafeb990f073e64f6f5e81d5cd53059773e8521eb6 \ + --hash=sha256:c64772786d9eee72d4d3784c28f0a636af5b0a29f3fe26ff11f55efe90c0bd85 \ --hash=sha256:cd337d3526ec5298f67d6a30bbbe4ed7e5e68862f0bf6dd21d289f8d37b7d60b \ + --hash=sha256:d29b2b99d527dbc66dd87c3c3248a5dd789d974a507f4653c969999fc7c1191b \ --hash=sha256:d2c3684fca8a05f0ac1d9a21c1f4a266983a7ea9180efb80ffeb03861ecd01a0 \ --hash=sha256:d62e47f5d8a50099b17e2bfc1b0c7d7ecd8ba6b46b1507b58cc4f05eefc3bb1c \ --hash=sha256:d8a2ca754e5415cde2b656c27900b19d50ba076aa05ce66e2207623d3fe41f5a \ @@ -1285,13 +1289,13 @@ typing-inspection==0.4.2 \ --hash=sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7 \ --hash=sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464 # via pydantic -tzdata==2025.2 \ - --hash=sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8 \ - --hash=sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9 +tzdata==2025.3 \ + --hash=sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1 \ + --hash=sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7 # via pandas -urllib3==2.6.1 \ - --hash=sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f \ - --hash=sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b +urllib3==2.6.2 \ + --hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \ + --hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd # via requests uvicorn[standard]==0.34.0 \ --hash=sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4 \ diff --git a/sdk/python/requirements/py3.12-ci-requirements.txt b/sdk/python/requirements/py3.12-ci-requirements.txt index ee0d183d79f..50efe8231a9 100644 --- a/sdk/python/requirements/py3.12-ci-requirements.txt +++ b/sdk/python/requirements/py3.12-ci-requirements.txt @@ -250,9 +250,9 @@ attrs==25.4.0 \ # jsonlines # jsonschema # referencing -azure-core==1.36.0 \ - --hash=sha256:22e5605e6d0bf1d229726af56d9e92bc37b6e726b141a18be0b4d424131741b7 \ - --hash=sha256:fee9923a3a753e94a259563429f3644aaf05c486d45b1215d098115102d91d3b +azure-core==1.37.0 \ + --hash=sha256:7064f2c11e4b97f340e8e8c6d923b822978be3016e46b7bc4aa4b337cfb48aee \ + --hash=sha256:b3abe2c59e7d6bb18b38c275a5029ff80f98990e7c90a5e646249a56630fcc19 # via # azure-identity # azure-storage-blob @@ -341,9 +341,9 @@ beautifulsoup4==4.14.3 \ # via # docling # nbconvert -bigtree==1.0.3 \ - --hash=sha256:18402a143130868b17ca84a74ca263e6f32f046d6978c30d244f8b94c4a01227 \ - --hash=sha256:99a18b6937a9b4ab8e560fec5c0720e10ebf37f84e44f9b5f47702c2e84c9aaa +bigtree==1.0.4 \ + --hash=sha256:e4af0c5bc0d2cd72e18442965e4509f642b16a0de65db6d0ec116e30f959010c \ + --hash=sha256:f58a3238bb9b1142d893c9de4921bfd18d435427c75e0c168dd580eabf6dc7fd # via feast (setup.py) bleach[css]==6.3.0 \ --hash=sha256:6f3b91b1c0a02bb9a78b5a454c92506aa0fdf197e1d5e114d2e00c6f64306d22 \ @@ -373,9 +373,9 @@ build==1.3.0 \ # feast (setup.py) # pip-tools # singlestoredb -cachetools==6.2.2 \ - --hash=sha256:6c09c98183bf58560c97b2abfcedcbaf6a896a490f534b031b661d3723b45ace \ - --hash=sha256:8e6d266b25e539df852251cfd6f990b4bc3a141db73b939058d809ebd2590fc6 +cachetools==6.2.4 \ + --hash=sha256:69a7a52634fed8b8bf6e24a050fb60bff1c9bd8f6d24572b99c32d4e71e62a51 \ + --hash=sha256:82c5c05585e70b6ba2d3ae09ea60b79548872185d2f24ae1f2709d37299fd607 # via google-auth cassandra-driver==3.29.3 \ --hash=sha256:064bf45d3ca87239e11168c0110676fc64f7fdbddb4bcba9be787b8ad5f6d734 \ @@ -782,99 +782,99 @@ couchbase-columnar==1.0.0 \ --hash=sha256:fc0fad2d386c5b5df7aaaccd8751e01caa886cc640cc8c92523dd07c4e7be519 \ --hash=sha256:fc4efa3e15190c3731478006de494b046bc57785e9c8ae99ac8b375a91683e38 # via feast (setup.py) -coverage[toml]==7.13.0 \ - --hash=sha256:0018f73dfb4301a89292c73be6ba5f58722ff79f51593352759c1790ded1cabe \ - --hash=sha256:00c3d22cf6fb1cf3bf662aaaa4e563be8243a5ed2630339069799835a9cc7f9b \ - --hash=sha256:02d9fb9eccd48f6843c98a37bd6817462f130b86da8660461e8f5e54d4c06070 \ - --hash=sha256:0602f701057c6823e5db1b74530ce85f17c3c5be5c85fc042ac939cbd909426e \ - --hash=sha256:06cac81bf10f74034e055e903f5f946e3e26fc51c09fc9f584e4a1605d977053 \ - --hash=sha256:086cede306d96202e15a4b77ace8472e39d9f4e5f9fd92dd4fecdfb2313b2080 \ - --hash=sha256:0900872f2fdb3ee5646b557918d02279dc3af3dfb39029ac4e945458b13f73bc \ - --hash=sha256:0a3a30f0e257df382f5f9534d4ce3d4cf06eafaf5192beb1a7bd066cb10e78fb \ - --hash=sha256:0b3d67d31383c4c68e19a88e28fc4c2e29517580f1b0ebec4a069d502ce1e0bf \ - --hash=sha256:0dfa3855031070058add1a59fdfda0192fd3e8f97e7c81de0596c145dea51820 \ - --hash=sha256:0f4872f5d6c54419c94c25dd6ae1d015deeb337d06e448cd890a1e89a8ee7f3b \ - --hash=sha256:11c21557d0e0a5a38632cbbaca5f008723b26a89d70db6315523df6df77d6232 \ - --hash=sha256:166ad2a22ee770f5656e1257703139d3533b4a0b6909af67c6b4a3adc1c98657 \ - --hash=sha256:193c3887285eec1dbdb3f2bd7fbc351d570ca9c02ca756c3afbc71b3c98af6ef \ - --hash=sha256:1d84e91521c5e4cb6602fe11ece3e1de03b2760e14ae4fcf1a4b56fa3c801fcd \ - --hash=sha256:1ed5630d946859de835a85e9a43b721123a8a44ec26e2830b296d478c7fd4259 \ - --hash=sha256:22486cdafba4f9e471c816a2a5745337742a617fef68e890d8baf9f3036d7833 \ - --hash=sha256:22ccfe8d9bb0d6134892cbe1262493a8c70d736b9df930f3f3afae0fe3ac924d \ - --hash=sha256:24e4e56304fdb56f96f80eabf840eab043b3afea9348b88be680ec5986780a0f \ - --hash=sha256:25dc33618d45456ccb1d37bce44bc78cf269909aa14c4db2e03d63146a8a1493 \ - --hash=sha256:263c3dbccc78e2e331e59e90115941b5f53e85cfcc6b3b2fbff1fd4e3d2c6ea8 \ - --hash=sha256:28ee1c96109974af104028a8ef57cec21447d42d0e937c0275329272e370ebcf \ - --hash=sha256:30a3a201a127ea57f7e14ba43c93c9c4be8b7d17a26e03bb49e6966d019eede9 \ - --hash=sha256:3188936845cd0cb114fa6a51842a304cdbac2958145d03be2377ec41eb285d19 \ - --hash=sha256:367449cf07d33dc216c083f2036bb7d976c6e4903ab31be400ad74ad9f85ce98 \ - --hash=sha256:37eee4e552a65866f15dedd917d5e5f3d59805994260720821e2c1b51ac3248f \ - --hash=sha256:3a10260e6a152e5f03f26db4a407c4c62d3830b9af9b7c0450b183615f05d43b \ - --hash=sha256:3a7b1cd820e1b6116f92c6128f1188e7afe421c7e1b35fa9836b11444e53ebd9 \ - --hash=sha256:3ab483ea0e251b5790c2aac03acde31bff0c736bf8a86829b89382b407cd1c3b \ - --hash=sha256:3ad968d1e3aa6ce5be295ab5fe3ae1bf5bb4769d0f98a80a0252d543a2ef2e9e \ - --hash=sha256:445badb539005283825959ac9fa4a28f712c214b65af3a2c464f1adc90f5fcbc \ - --hash=sha256:453b7ec753cf5e4356e14fe858064e5520c460d3bbbcb9c35e55c0d21155c256 \ - --hash=sha256:494f5459ffa1bd45e18558cd98710c36c0b8fbfa82a5eabcbe671d80ecffbfe8 \ - --hash=sha256:4b5de7d4583e60d5fd246dd57fcd3a8aa23c6e118a8c72b38adf666ba8e7e927 \ - --hash=sha256:4f3e223b2b2db5e0db0c2b97286aba0036ca000f06aca9b12112eaa9af3d92ae \ - --hash=sha256:4fdb6f54f38e334db97f72fa0c701e66d8479af0bc3f9bfb5b90f1c30f54500f \ - --hash=sha256:51a202e0f80f241ccb68e3e26e19ab5b3bf0f813314f2c967642f13ebcf1ddfe \ - --hash=sha256:581f086833d24a22c89ae0fe2142cfaa1c92c930adf637ddf122d55083fb5a0f \ - --hash=sha256:583221913fbc8f53b88c42e8dbb8fca1d0f2e597cb190ce45916662b8b9d9621 \ - --hash=sha256:58632b187be6f0be500f553be41e277712baa278147ecb7559983c6d9faf7ae1 \ - --hash=sha256:5c67dace46f361125e6b9cace8fe0b729ed8479f47e70c89b838d319375c8137 \ - --hash=sha256:5e70f92ef89bac1ac8a99b3324923b4749f008fdbd7aa9cb35e01d7a284a04f9 \ - --hash=sha256:5f5d9bd30756fff3e7216491a0d6d520c448d5124d3d8e8f56446d6412499e74 \ - --hash=sha256:5f8a0297355e652001015e93be345ee54393e45dc3050af4a0475c5a2b767d46 \ - --hash=sha256:62d7c4f13102148c78d7353c6052af6d899a7f6df66a32bddcc0c0eb7c5326f8 \ - --hash=sha256:69ac2c492918c2461bc6ace42d0479638e60719f2a4ef3f0815fa2df88e9f940 \ - --hash=sha256:6abb3a4c52f05e08460bd9acf04fec027f8718ecaa0d09c40ffbc3fbd70ecc39 \ - --hash=sha256:6e63ccc6e0ad8986386461c3c4b737540f20426e7ec932f42e030320896c311a \ - --hash=sha256:6e9e451dee940a86789134b6b0ffbe31c454ade3b849bb8a9d2cca2541a8e91d \ - --hash=sha256:6fb2d5d272341565f08e962cce14cdf843a08ac43bd621783527adb06b089c4b \ - --hash=sha256:71936a8b3b977ddd0b694c28c6a34f4fff2e9dd201969a4ff5d5fc7742d614b0 \ - --hash=sha256:73419b89f812f498aca53f757dd834919b48ce4799f9d5cad33ca0ae442bdb1a \ - --hash=sha256:739c6c051a7540608d097b8e13c76cfa85263ced467168dc6b477bae3df7d0e2 \ - --hash=sha256:7464663eaca6adba4175f6c19354feea61ebbdd735563a03d1e472c7072d27bb \ - --hash=sha256:74c136e4093627cf04b26a35dab8cbfc9b37c647f0502fc313376e11726ba303 \ - --hash=sha256:76541dc8d53715fb4f7a3a06b34b0dc6846e3c69bc6204c55653a85dd6220971 \ - --hash=sha256:7a485ff48fbd231efa32d58f479befce52dcb6bfb2a88bb7bf9a0b89b1bc8030 \ - --hash=sha256:7e442c013447d1d8d195be62852270b78b6e255b79b8675bad8479641e21fd96 \ - --hash=sha256:7f15a931a668e58087bc39d05d2b4bf4b14ff2875b49c994bbdb1c2217a8daeb \ - --hash=sha256:7f88ae3e69df2ab62fb0bc5219a597cb890ba5c438190ffa87490b315190bb33 \ - --hash=sha256:8069e831f205d2ff1f3d355e82f511eb7c5522d7d413f5db5756b772ec8697f8 \ - --hash=sha256:850d2998f380b1e266459ca5b47bc9e7daf9af1d070f66317972f382d46f1904 \ - --hash=sha256:898cce66d0836973f48dda4e3514d863d70142bdf6dfab932b9b6a90ea5b222d \ - --hash=sha256:9097818b6cc1cfb5f174e3263eba4a62a17683bcfe5c4b5d07f4c97fa51fbf28 \ - --hash=sha256:936bc20503ce24770c71938d1369461f0c5320830800933bc3956e2a4ded930e \ - --hash=sha256:9372dff5ea15930fea0445eaf37bbbafbc771a49e70c0aeed8b4e2c2614cc00e \ - --hash=sha256:9987a9e4f8197a1000280f7cc089e3ea2c8b3c0a64d750537809879a7b4ceaf9 \ - --hash=sha256:99acd4dfdfeb58e1937629eb1ab6ab0899b131f183ee5f23e0b5da5cba2fec74 \ - --hash=sha256:9b01c22bc74a7fb44066aaf765224c0d933ddf1f5047d6cdfe4795504a4493f8 \ - --hash=sha256:a00d3a393207ae12f7c49bb1c113190883b500f48979abb118d8b72b8c95c032 \ - --hash=sha256:a23e5a1f8b982d56fa64f8e442e037f6ce29322f1f9e6c2344cd9e9f4407ee57 \ - --hash=sha256:a2bdb3babb74079f021696cb46b8bb5f5661165c385d3a238712b031a12355be \ - --hash=sha256:a394aa27f2d7ff9bc04cf703817773a59ad6dfbd577032e690f961d2460ee936 \ - --hash=sha256:a6c6e16b663be828a8f0b6c5027d36471d4a9f90d28444aa4ced4d48d7d6ae8f \ - --hash=sha256:af0a583efaacc52ae2521f8d7910aff65cdb093091d76291ac5820d5e947fc1c \ - --hash=sha256:af827b7cbb303e1befa6c4f94fd2bf72f108089cfa0f8abab8f4ca553cf5ca5a \ - --hash=sha256:c4be718e51e86f553bcf515305a158a1cd180d23b72f07ae76d6017c3cc5d791 \ - --hash=sha256:cdb3c9f8fef0a954c632f64328a3935988d33a6604ce4bf67ec3e39670f12ae5 \ - --hash=sha256:d10fd186aac2316f9bbb46ef91977f9d394ded67050ad6d84d94ed6ea2e8e54e \ - --hash=sha256:d1e97353dcc5587b85986cda4ff3ec98081d7e84dd95e8b2a6d59820f0545f8a \ - --hash=sha256:d2a9d7f1c11487b1c69367ab3ac2d81b9b3721f097aa409a3191c3e90f8f3dd7 \ - --hash=sha256:de7f6748b890708578fc4b7bb967d810aeb6fcc9bff4bb77dbca77dab2f9df6a \ - --hash=sha256:e5330fa0cc1f5c3c4c3bb8e101b742025933e7848989370a1d4c8c5e401ea753 \ - --hash=sha256:e999e2dcc094002d6e2c7bbc1fb85b58ba4f465a760a8014d97619330cdbbbf3 \ - --hash=sha256:eb76670874fdd6091eedcc856128ee48c41a9bbbb9c3f1c7c3cf169290e3ffd6 \ - --hash=sha256:f1c23e24a7000da892a312fb17e33c5f94f8b001de44b7cf8ba2e36fbd15859e \ - --hash=sha256:f2ffc92b46ed6e6760f1d47a71e56b5664781bc68986dbd1836b2b70c0ce2071 \ - --hash=sha256:f4f72a85316d8e13234cafe0a9f81b40418ad7a082792fa4165bd7d45d96066b \ - --hash=sha256:f59883c643cb19630500f57016f76cfdcd6845ca8c5b5ea1f6e17f74c8e5f511 \ - --hash=sha256:f6aaef16d65d1787280943f1c8718dc32e9cf141014e4634d64446702d26e0ff \ - --hash=sha256:fe81055d8c6c9de76d60c94ddea73c290b416e061d40d542b24a5871bad498b7 \ - --hash=sha256:ff45e0cd8451e293b63ced93161e189780baf444119391b3e7d25315060368a6 +coverage[toml]==7.13.1 \ + --hash=sha256:0403f647055de2609be776965108447deb8e384fe4a553c119e3ff6bfbab4784 \ + --hash=sha256:0642eae483cc8c2902e4af7298bf886d605e80f26382124cddc3967c2a3df09e \ + --hash=sha256:0b609fc9cdbd1f02e51f67f51e5aee60a841ef58a68d00d5ee2c0faf357481a3 \ + --hash=sha256:0d2c11f3ea4db66b5cbded23b20185c35066892c67d80ec4be4bab257b9ad1e0 \ + --hash=sha256:0e42e0ec0cd3e0d851cb3c91f770c9301f48647cb2877cb78f74bdaa07639a79 \ + --hash=sha256:132718176cc723026d201e347f800cd1a9e4b62ccd3f82476950834dad501c75 \ + --hash=sha256:16cc1da46c04fb0fb128b4dc430b78fa2aba8a6c0c9f8eb391fd5103409a6ac6 \ + --hash=sha256:18be793c4c87de2965e1c0f060f03d9e5aff66cfeae8e1dbe6e5b88056ec153f \ + --hash=sha256:1a55d509a1dc5a5b708b5dad3b5334e07a16ad4c2185e27b40e4dba796ab7f88 \ + --hash=sha256:1dcb645d7e34dcbcc96cd7c132b1fc55c39263ca62eb961c064eb3928997363b \ + --hash=sha256:2016745cb3ba554469d02819d78958b571792bb68e31302610e898f80dd3a573 \ + --hash=sha256:228b90f613b25ba0019361e4ab81520b343b622fc657daf7e501c4ed6a2366c0 \ + --hash=sha256:309ef5706e95e62578cda256b97f5e097916a2c26247c287bbe74794e7150df2 \ + --hash=sha256:339dc63b3eba969067b00f41f15ad161bf2946613156fb131266d8debc8e44d0 \ + --hash=sha256:3820778ea1387c2b6a818caec01c63adc5b3750211af6447e8dcfb9b6f08dbba \ + --hash=sha256:3d42df8201e00384736f0df9be2ced39324c3907607d17d50d50116c989d84cd \ + --hash=sha256:3e7b8bd70c48ffb28461ebe092c2345536fb18bbbf19d287c8913699735f505c \ + --hash=sha256:3f2f725aa3e909b3c5fdb8192490bdd8e1495e85906af74fe6e34a2a77ba0673 \ + --hash=sha256:3fc6a169517ca0d7ca6846c3c5392ef2b9e38896f61d615cb75b9e7134d4ee1e \ + --hash=sha256:45980ea19277dc0a579e432aef6a504fe098ef3a9032ead15e446eb0f1191aee \ + --hash=sha256:4d010d080c4888371033baab27e47c9df7d6fb28d0b7b7adf85a4a49be9298b3 \ + --hash=sha256:4de84e71173d4dada2897e5a0e1b7877e5eefbfe0d6a44edee6ce31d9b8ec09e \ + --hash=sha256:549d195116a1ba1e1ae2f5ca143f9777800f6636eab917d4f02b5310d6d73461 \ + --hash=sha256:562ec27dfa3f311e0db1ba243ec6e5f6ab96b1edfcfc6cf86f28038bc4961ce6 \ + --hash=sha256:57dfc8048c72ba48a8c45e188d811e5efd7e49b387effc8fb17e97936dde5bf6 \ + --hash=sha256:5899d28b5276f536fcf840b18b61a9fce23cc3aec1d114c44c07fe94ebeaa500 \ + --hash=sha256:60cfb538fe9ef86e5b2ab0ca8fc8d62524777f6c611dcaf76dc16fbe9b8e698a \ + --hash=sha256:623dcc6d7a7ba450bbdbeedbaa0c42b329bdae16491af2282f12a7e809be7eb9 \ + --hash=sha256:67170979de0dacac3f3097d02b0ad188d8edcea44ccc44aaa0550af49150c7dc \ + --hash=sha256:6e73ebb44dca5f708dc871fe0b90cf4cff1a13f9956f747cc87b535a840386f5 \ + --hash=sha256:6f34591000f06e62085b1865c9bc5f7858df748834662a51edadfd2c3bfe0dd3 \ + --hash=sha256:724b1b270cb13ea2e6503476e34541a0b1f62280bc997eab443f87790202033d \ + --hash=sha256:75a6f4aa904301dab8022397a22c0039edc1f51e90b83dbd4464b8a38dc87842 \ + --hash=sha256:77545b5dcda13b70f872c3b5974ac64c21d05e65b1590b441c8560115dc3a0d1 \ + --hash=sha256:776483fd35b58d8afe3acbd9988d5de592ab6da2d2a865edfdbc9fdb43e7c486 \ + --hash=sha256:77cc258aeb29a3417062758975521eae60af6f79e930d6993555eeac6a8eac29 \ + --hash=sha256:794f7c05af0763b1bbd1b9e6eff0e52ad068be3b12cd96c87de037b01390c968 \ + --hash=sha256:868a2fae76dfb06e87291bcbd4dcbcc778a8500510b618d50496e520bd94d9b9 \ + --hash=sha256:8842af7f175078456b8b17f1b73a0d16a65dcbdc653ecefeb00a56b3c8c298c4 \ + --hash=sha256:8d9bc218650022a768f3775dd7fdac1886437325d8d295d923ebcfef4892ad5c \ + --hash=sha256:8f572d989142e0908e6acf57ad1b9b86989ff057c006d13b76c146ec6a20216a \ + --hash=sha256:90480b2134999301eea795b3a9dbf606c6fbab1b489150c501da84a959442465 \ + --hash=sha256:916abf1ac5cf7eb16bc540a5bf75c71c43a676f5c52fcb9fe75a2bd75fb944e8 \ + --hash=sha256:92f980729e79b5d16d221038dbf2e8f9a9136afa072f9d5d6ed4cb984b126a09 \ + --hash=sha256:933082f161bbb3e9f90d00990dc956120f608cdbcaeea15c4d897f56ef4fe416 \ + --hash=sha256:97ab3647280d458a1f9adb85244e81587505a43c0c7cff851f5116cd2814b894 \ + --hash=sha256:985b7836931d033570b94c94713c6dba5f9d3ff26045f72c3e5dbc5fe3361e5a \ + --hash=sha256:9e549d642426e3579b3f4b92d0431543b012dcb6e825c91619d4e93b7363c3f9 \ + --hash=sha256:9edd0e01a343766add6817bc448408858ba6b489039eaaa2018474e4001651a4 \ + --hash=sha256:9ee68b21909686eeb21dfcba2c3b81fee70dcf38b140dcd5aa70680995fa3aa5 \ + --hash=sha256:9f5e772ed5fef25b3de9f2008fe67b92d46831bd2bc5bdc5dd6bfd06b83b316f \ + --hash=sha256:a03a4f3a19a189919c7055098790285cc5c5b0b3976f8d227aea39dbf9f8bfdb \ + --hash=sha256:a4d240d260a1aed814790bbe1f10a5ff31ce6c21bc78f0da4a1e8268d6c80dbd \ + --hash=sha256:a5a68357f686f8c4d527a2dc04f52e669c2fc1cbde38f6f7eb6a0e58cbd17cae \ + --hash=sha256:a998cc0aeeea4c6d5622a3754da5a493055d2d95186bad877b0a34ea6e6dbe0a \ + --hash=sha256:b67e47c5595b9224599016e333f5ec25392597a89d5744658f837d204e16c63e \ + --hash=sha256:b6f3b96617e9852703f5b633ea01315ca45c77e879584f283c44127f0f1ec564 \ + --hash=sha256:b7593fe7eb5feaa3fbb461ac79aac9f9fc0387a5ca8080b0c6fe2ca27b091afd \ + --hash=sha256:bb3f6562e89bad0110afbe64e485aac2462efdce6232cdec7862a095dc3412f6 \ + --hash=sha256:bb4f8c3c9a9f34423dba193f241f617b08ffc63e27f67159f60ae6baf2dcfe0f \ + --hash=sha256:bd63e7b74661fed317212fab774e2a648bc4bb09b35f25474f8e3325d2945cd7 \ + --hash=sha256:be753b225d159feb397bd0bf91ae86f689bad0da09d3b301478cd39b878ab31a \ + --hash=sha256:bf100a3288f9bb7f919b87eb84f87101e197535b9bd0e2c2b5b3179633324fee \ + --hash=sha256:c223d078112e90dc0e5c4e35b98b9584164bea9fbbd221c0b21c5241f6d51b62 \ + --hash=sha256:c3d8c679607220979434f494b139dfb00131ebf70bb406553d69c1ff01a5c33d \ + --hash=sha256:c43257717611ff5e9a1d79dce8e47566235ebda63328718d9b65dd640bc832ef \ + --hash=sha256:c832ec92c4499ac463186af72f9ed4d8daec15499b16f0a879b0d1c8e5cf4a3b \ + --hash=sha256:c8e2706ceb622bc63bac98ebb10ef5da80ed70fbd8a7999a5076de3afaef0fb1 \ + --hash=sha256:cb237bfd0ef4d5eb6a19e29f9e528ac67ac3be932ea6b44fb6cc09b9f3ecff78 \ + --hash=sha256:ccd7a6fca48ca9c131d9b0a2972a581e28b13416fc313fb98b6d24a03ce9a398 \ + --hash=sha256:d10a2ed46386e850bb3de503a54f9fe8192e5917fcbb143bfef653a9355e9a53 \ + --hash=sha256:d1443ba9acbb593fa7c1c29e011d7c9761545fe35e7652e85ce7f51a16f7e08d \ + --hash=sha256:d2287ac9360dec3837bfdad969963a5d073a09a85d898bd86bea82aa8876ef3c \ + --hash=sha256:d3c9f051b028810f5a87c88e5d6e9af3c0ff32ef62763bf15d29f740453ca909 \ + --hash=sha256:d72140ccf8a147e94274024ff6fd8fb7811354cf7ef88b1f0a988ebaa5bc774f \ + --hash=sha256:d938b4a840fb1523b9dfbbb454f652967f18e197569c32266d4d13f37244c3d9 \ + --hash=sha256:db622b999ffe49cb891f2fff3b340cdc2f9797d01a0a202a0973ba2562501d90 \ + --hash=sha256:e09fbecc007f7b6afdfb3b07ce5bd9f8494b6856dd4f577d26c66c391b829851 \ + --hash=sha256:e1fa280b3ad78eea5be86f94f461c04943d942697e0dac889fa18fff8f5f9147 \ + --hash=sha256:e4f18eca6028ffa62adbd185a8f1e1dd242f2e68164dba5c2b74a5204850b4cf \ + --hash=sha256:e825dbb7f84dfa24663dd75835e7257f8882629fc11f03ecf77d84a75134b864 \ + --hash=sha256:eaecf47ef10c72ece9a2a92118257da87e460e113b83cc0d2905cbbe931792b4 \ + --hash=sha256:ef6688db9bf91ba111ae734ba6ef1a063304a881749726e0d3575f5c10a9facf \ + --hash=sha256:f398ba4df52d30b1763f62eed9de5620dcde96e6f491f4c62686736b155aa6e4 \ + --hash=sha256:f80e2bb21bfab56ed7405c2d79d34b5dc0bc96c2c1d2a067b643a09fb756c43a \ + --hash=sha256:f83351e0f7dcdb14d7326c3d8d8c4e915fa685cbfdc6281f9470d97a04e9dfe4 \ + --hash=sha256:f8dca5590fec7a89ed6826fce625595279e586ead52e9e958d3237821fbc750c \ + --hash=sha256:fa3edde1aa8807de1d05934982416cb3ec46d1d4d91e280bcce7cca01c507992 \ + --hash=sha256:fea07c1a39a22614acb762e3fbbb4011f65eedafcb2948feeef641ac78b4ee5c \ + --hash=sha256:ff10896fa55167371960c5908150b434b71c876dfab97b69478f22c8b445ea19 \ + --hash=sha256:ff86d4e85188bba72cfb876df3e11fa243439882c55957184af44a35bd5880b7 \ + --hash=sha256:ffed1e4980889765c84a5d1a566159e363b71d6b6fbaf0bebc9d3c30bc016766 # via pytest-cov cryptography==43.0.3 \ --hash=sha256:0c580952eef9bf68c4747774cde7ec1d85a6e61de97281f2dba83c7d2c806362 \ @@ -919,51 +919,51 @@ cryptography==43.0.3 \ # snowflake-connector-python # types-pyopenssl # types-redis -dask[dataframe]==2025.11.0 \ - --hash=sha256:08c35a8146c05c93b34f83cf651009129c42ee71762da7ca452fb7308641c2b8 \ - --hash=sha256:23d59e624b80ee05b7cc8df858682cca58262c4c3b197ccf61da0f6543c8f7c3 +dask[dataframe]==2025.12.0 \ + --hash=sha256:4213ce9c5d51d6d89337cff69de35d902aa0bf6abdb8a25c942a4d0281f3a598 \ + --hash=sha256:8d478f2aabd025e2453cf733ad64559de90cf328c20209e4574e9543707c3e1b # via feast (setup.py) datasets==4.0.0 \ --hash=sha256:7ef95e62025fd122882dbce6cb904c8cd3fbc829de6669a5eb939c77d50e203d \ --hash=sha256:9657e7140a9050db13443ba21cb5de185af8af944479b00e7ff1e00a61c8dbf1 # via feast (setup.py) -db-dtypes==1.4.4 \ - --hash=sha256:26f53db5df1acd746b88c5647913a1b20f731c0af1b11abcb6bec5365f31098a \ - --hash=sha256:32c13039982656a8598a0835f25f0e07e34c9a423e471ee60c2553240b7fcf1e +db-dtypes==1.5.0 \ + --hash=sha256:abdbb2e4eb965800ed6f98af0c5c1cafff9063ace09114be2d26a7f046be2c8a \ + --hash=sha256:ad9e94243f53e104bc77dbf9ae44b580d83a770d3694483aba59c9767966daa5 # via # google-cloud-bigquery # pandas-gbq -debugpy==1.8.17 \ - --hash=sha256:045290c010bcd2d82bc97aa2daf6837443cd52f6328592698809b4549babcee1 \ - --hash=sha256:1440fd514e1b815edd5861ca394786f90eb24960eb26d6f7200994333b1d79e3 \ - --hash=sha256:17e456da14848d618662354e1dccfd5e5fb75deec3d1d48dc0aa0baacda55860 \ - --hash=sha256:24693179ef9dfa20dca8605905a42b392be56d410c333af82f1c5dff807a64cc \ - --hash=sha256:3a32c0af575749083d7492dc79f6ab69f21b2d2ad4cd977a958a07d5865316e4 \ - --hash=sha256:3bea3b0b12f3946e098cce9b43c3c46e317b567f79570c3f43f0b96d00788088 \ - --hash=sha256:5c59b74aa5630f3a5194467100c3b3d1c77898f9ab27e3f7dc5d40fc2f122670 \ - --hash=sha256:60c7dca6571efe660ccb7a9508d73ca14b8796c4ed484c2002abba714226cfef \ - --hash=sha256:6a4e9dacf2cbb60d2514ff7b04b4534b0139facbf2abdffe0639ddb6088e59cf \ - --hash=sha256:6c5cd6f009ad4fca8e33e5238210dc1e5f42db07d4b6ab21ac7ffa904a196420 \ - --hash=sha256:857c1dd5d70042502aef1c6d1c2801211f3ea7e56f75e9c335f434afb403e464 \ - --hash=sha256:893cba7bb0f55161de4365584b025f7064e1f88913551bcd23be3260b231429c \ - --hash=sha256:8deb4e31cd575c9f9370042876e078ca118117c1b5e1f22c32befcfbb6955f0c \ - --hash=sha256:a3aad0537cf4d9c1996434be68c6c9a6d233ac6f76c2a482c7803295b4e4f99a \ - --hash=sha256:b13eea5587e44f27f6c48588b5ad56dcb74a4f3a5f89250443c94587f3eb2ea1 \ - --hash=sha256:b532282ad4eca958b1b2d7dbcb2b7218e02cb934165859b918e3b6ba7772d3f4 \ - --hash=sha256:b69b6bd9dba6a03632534cdf67c760625760a215ae289f7489a452af1031fe1f \ - --hash=sha256:b75868b675949a96ab51abc114c7163f40ff0d8f7d6d5fd63f8932fd38e9c6d7 \ - --hash=sha256:bb1bbf92317e1f35afcf3ef0450219efb3afe00be79d8664b250ac0933b9015f \ - --hash=sha256:c41d2ce8bbaddcc0009cc73f65318eedfa3dbc88a8298081deb05389f1ab5542 \ - --hash=sha256:c6bdf134457ae0cac6fb68205776be635d31174eeac9541e1d0c062165c6461f \ - --hash=sha256:d3fce3f0e3de262a3b67e69916d001f3e767661c6e1ee42553009d445d1cd840 \ - --hash=sha256:e34ee844c2f17b18556b5bbe59e1e2ff4e86a00282d2a46edab73fd7f18f4a83 \ - --hash=sha256:e79a195f9e059edfe5d8bf6f3749b2599452d3e9380484cd261f6b7cd2c7c4da \ - --hash=sha256:e851beb536a427b5df8aa7d0c7835b29a13812f41e46292ff80b2ef77327355a \ - --hash=sha256:e8f8f61c518952fb15f74a302e068b48d9c4691768ade433e4adeea961993464 \ - --hash=sha256:eaa85bce251feca8e4c87ce3b954aba84b8c645b90f0e6a515c00394a9f5c0e7 \ - --hash=sha256:f14467edef672195c6f6b8e27ce5005313cb5d03c9239059bc7182b60c176e2d \ - --hash=sha256:f2ac8055a0c4a09b30b931100996ba49ef334c6947e7ae365cdd870416d7513e \ - --hash=sha256:fd723b47a8c08892b1a16b2c6239a8b96637c62a59b94bb5dab4bac592a58a8e +debugpy==1.8.19 \ + --hash=sha256:0601708223fe1cd0e27c6cce67a899d92c7d68e73690211e6788a4b0e1903f5b \ + --hash=sha256:14035cbdbb1fe4b642babcdcb5935c2da3b1067ac211c5c5a8fdc0bb31adbcaa \ + --hash=sha256:1e8c4d1bd230067bf1bbcdbd6032e5a57068638eb28b9153d008ecde288152af \ + --hash=sha256:327cb28c3ad9e17bc925efc7f7018195fd4787c2fe4b7af1eec11f1d19bdec62 \ + --hash=sha256:360ffd231a780abbc414ba0f005dad409e71c78637efe8f2bd75837132a41d38 \ + --hash=sha256:4468de0c30012d367944f0eab4ecb8371736e8ef9522a465f61214f344c11183 \ + --hash=sha256:6599cab8a783d1496ae9984c52cb13b7c4a3bd06a8e6c33446832a5d97ce0bee \ + --hash=sha256:66e3d2fd8f2035a8f111eb127fa508469dfa40928a89b460b41fd988684dc83d \ + --hash=sha256:76f566baaf7f3e06adbe67ffedccd2ee911d1e486f55931939ce3f0fe1090774 \ + --hash=sha256:783a519e6dfb1f3cd773a9bda592f4887a65040cb0c7bd38dde410f4e53c40d4 \ + --hash=sha256:7b62c0f015120ede25e5124a5f9d8a424e1208e3d96a36c89958f046ee21fff6 \ + --hash=sha256:806d6800246244004625d5222d7765874ab2d22f3ba5f615416cf1342d61c488 \ + --hash=sha256:85016a73ab84dea1c1f1dcd88ec692993bcbe4532d1b49ecb5f3c688ae50c606 \ + --hash=sha256:8e19a725f5d486f20e53a1dde2ab8bb2c9607c40c00a42ab646def962b41125f \ + --hash=sha256:91e35db2672a0abaf325f4868fcac9c1674a0d9ad9bb8a8c849c03a5ebba3e6d \ + --hash=sha256:a21bfdea088f713df05fa246ba0520f6ba44dd7eaec224742f51987a6979a648 \ + --hash=sha256:b1cb98e5325da3059ca24445fca48314bfddfdf65ce1b59ff07055e723f06bd2 \ + --hash=sha256:b605f17e89ba0ecee994391194285fada89cee111cfcd29d6f2ee11cbdc40976 \ + --hash=sha256:b7dd275cf2c99e53adb9654f5ae015f70415bbe2bacbe24cfee30d54b6aa03c5 \ + --hash=sha256:bccb1540a49cde77edc7ce7d9d075c1dbeb2414751bc0048c7a11e1b597a4c2e \ + --hash=sha256:c047177ab2d286451f242b855b650d313198c4a987140d4b35218b2855a64a4a \ + --hash=sha256:c30639998a9f9cd9699b4b621942c0179a6527f083c72351f95c6ab1728d5b73 \ + --hash=sha256:c5dcfa21de1f735a4f7ced4556339a109aa0f618d366ede9da0a3600f2516d8b \ + --hash=sha256:c9b9bf440141a36836bdbe4320a2b126bb38aafa85e1aed05d7bfbb0e2a278bf \ + --hash=sha256:d40c016c1f538dbf1762936e3aeb43a89b965069d9f60f9e39d35d9d25e6b809 \ + --hash=sha256:d9b6f633fd2865af2afba2beb0c1819b6ecd4aed1c8f90f5d1bbca3272306b10 \ + --hash=sha256:e24b1652a1df1ab04d81e7ead446a91c226de704ff5dde6bd0a0dbaab07aa3f2 \ + --hash=sha256:e9c68d9a382ec754dc05ed1d1b4ed5bd824b9f7c1a8cd1083adb84b3c93501de \ + --hash=sha256:eea7e5987445ab0b5ed258093722d5ecb8bb72217c5c9b1e21f64efe23ddebdb \ + --hash=sha256:fce6da15d73be5935b4438435c53adb512326a3e11e4f90793ea87cd9f018254 # via ipykernel decorator==5.2.1 \ --hash=sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360 \ @@ -1005,9 +1005,9 @@ docling==2.27.0 \ --hash=sha256:1288ed75b27e33bf94daff34faffc6d11b7d7ccc13e3df84fb24adad3991f72d \ --hash=sha256:faba35662612a2c687a3a463e501d95f645316436084af92a0442ce162429a3d # via feast (setup.py) -docling-core[chunking]==2.54.1 \ - --hash=sha256:2d22ee1cd8508fa7ffdd2e01ef30d7521390ff55ef240610f16be0cf54ffe73e \ - --hash=sha256:c6595e8b84f5e9de7a0a6298206d749f4be5730824604e684f204078a3689985 +docling-core[chunking]==2.57.0 \ + --hash=sha256:24b71172e8bc4fbe2b4213b29f51878114f4c13f25fc0bc9920168505c76c1a3 \ + --hash=sha256:398768b4d275ad2e11703ad9446fd0315a9a5fc8d09bc45ed207302d844d6ed5 # via # docling # docling-ibm-models @@ -1120,13 +1120,13 @@ durationpy==0.10 \ easyocr==1.7.2 \ --hash=sha256:5be12f9b0e595d443c9c3d10b0542074b50f0ec2d98b141a109cd961fd1c177c # via docling -elastic-transport==9.2.0 \ - --hash=sha256:0331466ca8febdb7d168c0fbf159294b0066492733b51da94f4dd28a0ee596cd \ - --hash=sha256:f52b961e58e6b76d488993286907f61a6ddccbdae8e0135ce8d369227b6282d8 +elastic-transport==9.2.1 \ + --hash=sha256:39e1a25e486af34ce7aa1bc9005d1c736f1b6fb04c9b64ea0604ded5a61fc1d4 \ + --hash=sha256:97d9abd638ba8aa90faa4ca1bf1a18bde0fe2088fbc8757f2eb7b299f205773d # via elasticsearch -elasticsearch==9.2.0 \ - --hash=sha256:87090fe98c515ec0fce82f633fe11d7e90e04d93581b6b3e05de29efe4cc8b74 \ - --hash=sha256:99656baa34b10130402b6c38429feddf7aee1c3247566e8f95f0d0267fe9f9ab +elasticsearch==9.2.1 \ + --hash=sha256:8665f5a0b4d29a7c2772851c05ea8a09279abb7928b7d727524613bd61d75958 \ + --hash=sha256:97f473418e8976611349757287ac982acf12f4e305182863d985d5a031c36830 # via feast (setup.py) entrypoints==0.4 \ --hash=sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4 \ @@ -1173,9 +1173,9 @@ faiss-cpu==1.10.0 \ --hash=sha256:e71f7e24d5b02d3a51df47b77bd10f394a1b48a8331d5c817e71e9e27a8a75ac \ --hash=sha256:f71c5860c860df2320299f9e4f2ca1725beb559c04acb1cf961ed24e6218277a # via feast (setup.py) -fastapi==0.124.0 \ - --hash=sha256:260cd178ad75e6d259991f2fd9b0fee924b224850079df576a3ba604ce58f4e6 \ - --hash=sha256:91596bdc6dde303c318f06e8d2bc75eafb341fc793a0c9c92c0bc1db1ac52480 +fastapi==0.128.0 \ + --hash=sha256:1cc179e1cef10a6be60ffe429f79b829dce99d8de32d7acb7e6c8dfdf7f2645a \ + --hash=sha256:aebd93f9716ee3b4f4fcfe13ffb7cf308d99c9f3ab5622d8877441072561582d # via # feast (setup.py) # fastapi-mcp @@ -1187,9 +1187,9 @@ fastjsonschema==2.21.2 \ --hash=sha256:1c797122d0a86c5cace2e54bf4e819c36223b552017172f32c5c024a6b77e463 \ --hash=sha256:b1eb43748041c880796cd077f1a07c3d94e93ae84bba5ed36800a33554ae05de # via nbformat -filelock==3.20.0 \ - --hash=sha256:339b4732ffda5cd79b13f4e2711a31b0365ce445d95d243bb996273d072546a2 \ - --hash=sha256:711e943b4ec6be42e1d4e6690b48dc175c822967466bb31c0c293f34334c13f4 +filelock==3.20.1 \ + --hash=sha256:15d9e9a67306188a44baa72f569d2bfd803076269365fdea0934385da4dc361a \ + --hash=sha256:b8360948b351b80f420878d8516519a2204b07aefcdcfd24912a5d33127f188c # via # datasets # huggingface-hub @@ -1367,9 +1367,9 @@ google-api-core[grpc]==2.28.1 \ # google-cloud-storage # opencensus # pandas-gbq -google-auth==2.43.0 \ - --hash=sha256:88228eee5fc21b62a1b5fe773ca15e67778cb07dc8363adcb4a8827b52d81483 \ - --hash=sha256:af628ba6fa493f75c7e9dbe9373d148ca9f4399b5ea29976519e0a3848eddd16 +google-auth==2.45.0 \ + --hash=sha256:82344e86dc00410ef5382d99be677c6043d72e502b625aa4f4afa0bdacca0f36 \ + --hash=sha256:90d3f41b6b72ea72dd9811e765699ee491ab24139f34ebf1ca2b9cc0c38708f3 # via # google-api-core # google-auth-oauthlib @@ -1388,19 +1388,19 @@ google-auth-oauthlib==1.2.2 \ # via # pandas-gbq # pydata-google-auth -google-cloud-bigquery[pandas]==3.38.0 \ - --hash=sha256:8afcb7116f5eac849097a344eb8bfda78b7cfaae128e60e019193dd483873520 \ - --hash=sha256:e06e93ff7b245b239945ef59cb59616057598d369edac457ebf292bd61984da6 +google-cloud-bigquery[pandas]==3.39.0 \ + --hash=sha256:cb375e1d63dea9bd5bf735e66024338f294159d43afdf63e1d023f5fcbbf55ea \ + --hash=sha256:dc7a64921465859105461b43c42562e38e797d7a73feb72b3cfc4865b7b1c5ef # via # feast (setup.py) # pandas-gbq -google-cloud-bigquery-storage==2.35.0 \ - --hash=sha256:c9bab6b8e41d6cb9806e589e65f320c89ada84f466e61566b7208d87924c1430 \ - --hash=sha256:f2e3a08882155de1e9ec53c71c5784eb1f25dc6514c535f5796c3c9eeac17d17 +google-cloud-bigquery-storage==2.36.0 \ + --hash=sha256:1769e568070db672302771d2aec18341de10712aa9c4a8c549f417503e0149f0 \ + --hash=sha256:d3c1ce9d2d3a4d7116259889dcbe3c7c70506f71f6ce6bbe54aa0a68bbba8f8f # via feast (setup.py) -google-cloud-bigtable==2.34.0 \ - --hash=sha256:773258b00cd3f9a3a35639cc38bd711f4f1418aaa0c8d70cb028978ed98dc2c2 \ - --hash=sha256:a4a8db4903840cd3f89fb19c060eea2e7c09c1265cb0538cfc11288dbc6000e4 +google-cloud-bigtable==2.35.0 \ + --hash=sha256:f355bfce1f239453ec2bb3839b0f4f9937cf34ef06ef29e1ca63d58fd38d0c50 \ + --hash=sha256:f5699012c5fea4bd4bdf7e80e5e3a812a847eb8f41bf8dc2f43095d6d876b83b # via feast (setup.py) google-cloud-core==2.5.0 \ --hash=sha256:67d977b41ae6c7211ee830c7912e41003ea8194bff15ae7d72fd6f51e57acabc \ @@ -1410,49 +1410,48 @@ google-cloud-core==2.5.0 \ # google-cloud-bigtable # google-cloud-datastore # google-cloud-storage -google-cloud-datastore==2.21.0 \ - --hash=sha256:eee454dd4a55f5b327f9f344928ff1a09a6f77c23d5e3d908ad31a13cc2f4073 \ - --hash=sha256:f303f27cd1983383f20bd227019cd8a7897419e0ec6b878367c58c66245f9d9b +google-cloud-datastore==2.23.0 \ + --hash=sha256:24a1b1d29b902148fe41b109699f76fd3aa60591e9d547c0f8b87d7bf9ff213f \ + --hash=sha256:80049883a4ae928fdcc661ba6803ec267665dc0e6f3ce2da91441079a6bb6387 # via feast (setup.py) google-cloud-storage==2.19.0 \ --hash=sha256:aeb971b5c29cf8ab98445082cbfe7b161a1f48ed275822f59ed3f1524ea54fba \ --hash=sha256:cd05e9e7191ba6cb68934d8eb76054d9be4562aa89dbc4236feee4d7d51342b2 # via feast (setup.py) -google-crc32c==1.7.1 \ - --hash=sha256:0f99eaa09a9a7e642a61e06742856eec8b19fc0037832e03f941fe7cf0c8e4db \ - --hash=sha256:19eafa0e4af11b0a4eb3974483d55d2d77ad1911e6cf6f832e1574f6781fd337 \ - --hash=sha256:1c67ca0a1f5b56162951a9dae987988679a7db682d6f97ce0f6381ebf0fbea4c \ - --hash=sha256:1f2b3522222746fff0e04a9bd0a23ea003ba3cccc8cf21385c564deb1f223242 \ - --hash=sha256:22beacf83baaf59f9d3ab2bbb4db0fb018da8e5aebdce07ef9f09fce8220285e \ - --hash=sha256:2bff2305f98846f3e825dbeec9ee406f89da7962accdb29356e4eadc251bd472 \ - --hash=sha256:2d73a68a653c57281401871dd4aeebbb6af3191dcac751a76ce430df4d403194 \ - --hash=sha256:32d1da0d74ec5634a05f53ef7df18fc646666a25efaaca9fc7dcfd4caf1d98c3 \ - --hash=sha256:3bda0fcb632d390e3ea8b6b07bf6b4f4a66c9d02dcd6fbf7ba00a197c143f582 \ - --hash=sha256:6335de12921f06e1f774d0dd1fbea6bf610abe0887a1638f64d694013138be5d \ - --hash=sha256:6b211ddaf20f7ebeec5c333448582c224a7c90a9d98826fbab82c0ddc11348e6 \ - --hash=sha256:6efb97eb4369d52593ad6f75e7e10d053cf00c48983f7a973105bc70b0ac4d82 \ - --hash=sha256:6fbab4b935989e2c3610371963ba1b86afb09537fd0c633049be82afe153ac06 \ - --hash=sha256:713121af19f1a617054c41f952294764e0c5443d5a5d9034b2cd60f5dd7e0349 \ - --hash=sha256:754561c6c66e89d55754106739e22fdaa93fafa8da7221b29c8b8e8270c6ec8a \ - --hash=sha256:7cc81b3a2fbd932a4313eb53cc7d9dde424088ca3a0337160f35d91826880c1d \ - --hash=sha256:85fef7fae11494e747c9fd1359a527e5970fc9603c90764843caabd3a16a0a48 \ - --hash=sha256:905a385140bf492ac300026717af339790921f411c0dfd9aa5a9e69a08ed32eb \ - --hash=sha256:9fc196f0b8d8bd2789352c6a522db03f89e83a0ed6b64315923c396d7a932315 \ - --hash=sha256:a8e9afc74168b0b2232fb32dd202c93e46b7d5e4bf03e66ba5dc273bb3559589 \ - --hash=sha256:b07d48faf8292b4db7c3d64ab86f950c2e94e93a11fd47271c28ba458e4a0d76 \ - --hash=sha256:b6d86616faaea68101195c6bdc40c494e4d76f41e07a37ffdef270879c15fb65 \ - --hash=sha256:b7491bdc0c7564fcf48c0179d2048ab2f7c7ba36b84ccd3a3e1c3f7a72d3bba6 \ - --hash=sha256:bb5e35dcd8552f76eed9461a23de1030920a3c953c1982f324be8f97946e7127 \ - --hash=sha256:d68e17bad8f7dd9a49181a1f5a8f4b251c6dbc8cc96fb79f1d321dfd57d66f53 \ - --hash=sha256:dcdf5a64adb747610140572ed18d011896e3b9ae5195f2514b7ff678c80f1603 \ - --hash=sha256:df8b38bdaf1629d62d51be8bdd04888f37c451564c2042d36e5812da9eff3c35 \ - --hash=sha256:e10554d4abc5238823112c2ad7e4560f96c7bf3820b202660373d769d9e6e4c9 \ - --hash=sha256:e42e20a83a29aa2709a0cf271c7f8aefaa23b7ab52e53b322585297bb94d4638 \ - --hash=sha256:ed66cbe1ed9cbaaad9392b5259b3eba4a9e565420d734e6238813c428c3336c9 \ - --hash=sha256:ee6547b657621b6cbed3562ea7826c3e11cab01cd33b74e1f677690652883e77 \ - --hash=sha256:f2226b6a8da04f1d9e61d3e357f2460b9551c5e6950071437e122c958a18ae14 \ - --hash=sha256:fa8136cc14dd27f34a3221c0f16fd42d8a40e4778273e61a3c19aedaa44daf6b \ - --hash=sha256:fc5319db92daa516b653600794d5b9f9439a9a121f3e162f94b0e1891c7933cb +google-crc32c==1.8.0 \ + --hash=sha256:014a7e68d623e9a4222d663931febc3033c5c7c9730785727de2a81f87d5bab8 \ + --hash=sha256:01f126a5cfddc378290de52095e2c7052be2ba7656a9f0caf4bcd1bfb1833f8a \ + --hash=sha256:0470b8c3d73b5f4e3300165498e4cf25221c7eb37f1159e221d1825b6df8a7ff \ + --hash=sha256:119fcd90c57c89f30040b47c211acee231b25a45d225e3225294386f5d258288 \ + --hash=sha256:14f87e04d613dfa218d6135e81b78272c3b904e2a7053b841481b38a7d901411 \ + --hash=sha256:17446feb05abddc187e5441a45971b8394ea4c1b6efd88ab0af393fd9e0a156a \ + --hash=sha256:19b40d637a54cb71e0829179f6cb41835f0fbd9e8eb60552152a8b52c36cbe15 \ + --hash=sha256:2a3dc3318507de089c5384cc74d54318401410f82aa65b2d9cdde9d297aca7cb \ + --hash=sha256:3b9776774b24ba76831609ffbabce8cdf6fa2bd5e9df37b594221c7e333a81fa \ + --hash=sha256:3cc0c8912038065eafa603b238abf252e204accab2a704c63b9e14837a854962 \ + --hash=sha256:3d488e98b18809f5e322978d4506373599c0c13e6c5ad13e53bb44758e18d215 \ + --hash=sha256:3ebb04528e83b2634857f43f9bb8ef5b2bbe7f10f140daeb01b58f972d04736b \ + --hash=sha256:450dc98429d3e33ed2926fc99ee81001928d63460f8538f21a5d6060912a8e27 \ + --hash=sha256:4b8286b659c1335172e39563ab0a768b8015e88e08329fa5321f774275fc3113 \ + --hash=sha256:57a50a9035b75643996fbf224d6661e386c7162d1dfdab9bc4ca790947d1007f \ + --hash=sha256:61f58b28e0b21fcb249a8247ad0db2e64114e201e2e9b4200af020f3b6242c9f \ + --hash=sha256:6f35aaffc8ccd81ba3162443fabb920e65b1f20ab1952a31b13173a67811467d \ + --hash=sha256:71734788a88f551fbd6a97be9668a0020698e07b2bf5b3aa26a36c10cdfb27b2 \ + --hash=sha256:864abafe7d6e2c4c66395c1eb0fe12dc891879769b52a3d56499612ca93b6092 \ + --hash=sha256:86cfc00fe45a0ac7359e5214a1704e51a99e757d0272554874f419f79838c5f7 \ + --hash=sha256:87b0072c4ecc9505cfa16ee734b00cd7721d20a0f595be4d40d3d21b41f65ae2 \ + --hash=sha256:87fa445064e7db928226b2e6f0d5304ab4cd0339e664a4e9a25029f384d9bb93 \ + --hash=sha256:89c17d53d75562edfff86679244830599ee0a48efc216200691de8b02ab6b2b8 \ + --hash=sha256:8b3f68782f3cbd1bce027e48768293072813469af6a61a86f6bb4977a4380f21 \ + --hash=sha256:a428e25fb7691024de47fecfbff7ff957214da51eddded0da0ae0e0f03a2cf79 \ + --hash=sha256:b0d1a7afc6e8e4635564ba8aa5c0548e3173e41b6384d7711a9123165f582de2 \ + --hash=sha256:ba6aba18daf4d36ad4412feede6221414692f44d17e5428bdd81ad3fc1eee5dc \ + --hash=sha256:cb5c869c2923d56cb0c8e6bcdd73c009c36ae39b652dbe46a05eb4ef0ad01454 \ + --hash=sha256:d511b3153e7011a27ab6ee6bb3a5404a55b994dc1a7322c0b87b29606d9790e2 \ + --hash=sha256:db3fe8eaf0612fc8b20fa21a5f25bd785bc3cd5be69f8f3412b0ac2ffd49e733 \ + --hash=sha256:e6584b12cb06796d285d09e33f63309a09368b9d806a551d8036a4207ea43697 \ + --hash=sha256:f4b51844ef67d6cf2e9425983274da75f18b1597bb2c998e1c0a0e8d46f8f651 \ + --hash=sha256:f639065ea2042d5c034bf258a9f085eaa7af0cd250667c0635a3118e8f92c69c # via # google-cloud-bigtable # google-cloud-storage @@ -1539,6 +1538,7 @@ grpcio==1.62.3 \ # google-api-core # google-cloud-bigquery # google-cloud-bigquery-storage + # google-cloud-datastore # googleapis-common-protos # grpc-google-iam-v1 # grpcio-health-checking @@ -1880,9 +1880,9 @@ imagesize==1.4.1 \ --hash=sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b \ --hash=sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a # via sphinx -importlib-metadata==8.7.0 \ - --hash=sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000 \ - --hash=sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd +importlib-metadata==8.7.1 \ + --hash=sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb \ + --hash=sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151 # via opentelemetry-api importlib-resources==6.5.2 \ --hash=sha256:185f87adef5bcc288449d98fb4fba07cea78bc036455dd44c5fc4a2fe78fed2c \ @@ -1951,9 +1951,9 @@ jmespath==1.0.1 \ # aiobotocore # boto3 # botocore -joblib==1.5.2 \ - --hash=sha256:3faa5c39054b2f03ca547da9b2f52fde67c06240c31853f306aea97f13647b55 \ - --hash=sha256:4e1f0bdbb987e6d843c70cf43714cb276623def372df3c22fe5266b2670bc241 +joblib==1.5.3 \ + --hash=sha256:5fc3c5039fc5ca8c0276333a188bbd59d6b7ab37fe6632daa76bc7f9ec18e713 \ + --hash=sha256:8561a3269e6801106863fd0d6d84bb737be9e7631e33aaed3fb9ce5953688da3 # via scikit-learn json5==0.12.1 \ --hash=sha256:b2743e77b3242f8d03c143dd975a6ec7c52e2f2afe76ed934e53503dd4ad4990 \ @@ -2033,9 +2033,9 @@ jupyter-server-terminals==0.5.3 \ --hash=sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa \ --hash=sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269 # via jupyter-server -jupyterlab==4.5.0 \ - --hash=sha256:88e157c75c1afff64c7dc4b801ec471450b922a4eae4305211ddd40da8201c8a \ - --hash=sha256:aec33d6d8f1225b495ee2cf20f0514f45e6df8e360bdd7ac9bace0b7ac5177ea +jupyterlab==4.5.1 \ + --hash=sha256:09da1ddfbd9eec18b5101dbb8515612aa1e47443321fb99503725a88e93d20d9 \ + --hash=sha256:31b059de96de0754ff1f2ce6279774b6aab8c34d7082e9752db58207c99bd514 # via notebook jupyterlab-pygments==0.3.0 \ --hash=sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d \ @@ -2381,9 +2381,9 @@ markupsafe==3.0.3 \ # jinja2 # nbconvert # werkzeug -marshmallow==3.26.1 \ - --hash=sha256:3350409f20a70a7e4e11a27661187b77cdcaeb20abca41c1454fe33636bea09c \ - --hash=sha256:e6d8affb6cb61d39d26402096dc0aee12d5a26d490a121f118d2e81dc0719dc6 +marshmallow==3.26.2 \ + --hash=sha256:013fa8a3c4c276c24d26d84ce934dc964e2aa794345a0f8c7e5a7191482c8a73 \ + --hash=sha256:bbe2adb5a03e6e3571b573f42527c6fe926e17467833660bebd11593ab8dfd57 # via great-expectations matplotlib-inline==0.2.1 \ --hash=sha256:d56ce5156ba6085e00a9d54fead6ed29a9c47e215cd1bba2e976ef39f5710a76 \ @@ -2391,9 +2391,9 @@ matplotlib-inline==0.2.1 \ # via # ipykernel # ipython -mcp==1.23.3 \ - --hash=sha256:32768af4b46a1b4f7df34e2bfdf5c6011e7b63d7f1b0e321d0fdef4cd6082031 \ - --hash=sha256:b3b0da2cc949950ce1259c7bfc1b081905a51916fcd7c8182125b85e70825201 +mcp==1.25.0 \ + --hash=sha256:56310361ebf0364e2d438e5b45f7668cbb124e158bb358333cd06e49e83a6802 \ + --hash=sha256:b37c38144a666add0862614cc79ec276e97d72aa8ca26d622818d4e278b9721a # via fastapi-mcp mdurl==0.1.2 \ --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ @@ -2411,9 +2411,9 @@ minio==7.2.11 \ --hash=sha256:153582ed52ff3b5005ba558e1f25bfe1e9e834f7f0745e594777f28e3e81e1a0 \ --hash=sha256:4db95a21fe1e2022ec975292d8a1f83bd5b18f830d23d42a4518ac7a5281d7c5 # via feast (setup.py) -mistune==3.1.4 \ - --hash=sha256:93691da911e5d9d2e23bc54472892aff676df27a75274962ff9edc210364266d \ - --hash=sha256:b5a7f801d389f724ec702840c11d8fc48f2b33519102fc7ee739e8177b672164 +mistune==3.2.0 \ + --hash=sha256:708487c8a8cdd99c9d90eb3ed4c3ed961246ff78ac82f03418f5183ab70e398a \ + --hash=sha256:febdc629a3c78616b94393c6580551e0e34cc289987ec6c35ed3f4be42d0eee1 # via # great-expectations # nbconvert @@ -2836,9 +2836,9 @@ mypy-protobuf==3.3.0 \ --hash=sha256:15604f6943b16c05db646903261e3b3e775cf7f7990b7c37b03d043a907b650d \ --hash=sha256:24f3b0aecb06656e983f58e07c732a90577b9d7af3e1066fc2b663bbf0370248 # via feast (setup.py) -nbclient==0.10.2 \ - --hash=sha256:4ffee11e788b4a27fabeb7955547e4318a5298f34342a4bfd01f2e1faaeadc3d \ - --hash=sha256:90b7fc6b810630db87a6d0c2250b1f0ab4cf4d3c27a299b0cde78a4ed3fd9193 +nbclient==0.10.4 \ + --hash=sha256:1e54091b16e6da39e297b0ece3e10f6f29f4ac4e8ee515d29f8a7099bd6553c9 \ + --hash=sha256:9162df5a7373d70d606527300a95a975a47c137776cd942e52d9c7e29ff83440 # via nbconvert nbconvert==7.16.6 \ --hash=sha256:1375a7b67e0c2883678c48e506dc320febb57685e5ee67faa51b18a90f3a712b \ @@ -2883,13 +2883,13 @@ ninja==1.13.0 \ --hash=sha256:fb46acf6b93b8dd0322adc3a4945452a4e774b75b91293bafcc7b7f8e6517dfa \ --hash=sha256:fb8ee8719f8af47fed145cced4a85f0755dd55d45b2bddaf7431fa89803c5f3e # via easyocr -nodeenv==1.9.1 \ - --hash=sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f \ - --hash=sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9 +nodeenv==1.10.0 \ + --hash=sha256:5bb13e3eed2923615535339b3c620e76779af4cb4c6a90deccc9e36b274d3827 \ + --hash=sha256:996c191ad80897d076bdfba80a41994c2b47c68e224c542b48feba42ba00f8bb # via pre-commit -notebook==7.5.0 \ - --hash=sha256:3300262d52905ca271bd50b22617681d95f08a8360d099e097726e6d2efb5811 \ - --hash=sha256:3b27eaf9913033c28dde92d02139414c608992e1df4b969c843219acf2ff95e4 +notebook==7.5.1 \ + --hash=sha256:b2fb4cef4d47d08c33aecce1c6c6e84be05436fbd791f88fce8df9fbca088b75 \ + --hash=sha256:f4e2451c19910c33b88709b84537e11f6368c1cdff1aa0c43db701aea535dd44 # via great-expectations notebook-shim==0.2.4 \ --hash=sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef \ @@ -2897,81 +2897,79 @@ notebook-shim==0.2.4 \ # via # jupyterlab # notebook -numpy==2.3.5 \ - --hash=sha256:00dc4e846108a382c5869e77c6ed514394bdeb3403461d25a829711041217d5b \ - --hash=sha256:0472f11f6ec23a74a906a00b48a4dcf3849209696dff7c189714511268d103ae \ - --hash=sha256:04822c00b5fd0323c8166d66c701dc31b7fbd252c100acd708c48f763968d6a3 \ - --hash=sha256:052e8c42e0c49d2575621c158934920524f6c5da05a1d3b9bab5d8e259e045f0 \ - --hash=sha256:09a1bea522b25109bf8e6f3027bd810f7c1085c64a0c7ce050c1676ad0ba010b \ - --hash=sha256:0cd00b7b36e35398fa2d16af7b907b65304ef8bb4817a550e06e5012929830fa \ - --hash=sha256:0d8163f43acde9a73c2a33605353a4f1bc4798745a8b1d73183b28e5b435ae28 \ - --hash=sha256:1062fde1dcf469571705945b0f221b73928f34a20c904ffb45db101907c3454e \ - --hash=sha256:11e06aa0af8c0f05104d56450d6093ee639e15f24ecf62d417329d06e522e017 \ - --hash=sha256:17531366a2e3a9e30762c000f2c43a9aaa05728712e25c11ce1dbe700c53ad41 \ - --hash=sha256:1978155dd49972084bd6ef388d66ab70f0c323ddee6f693d539376498720fb7e \ - --hash=sha256:1ed1ec893cff7040a02c8aa1c8611b94d395590d553f6b53629a4461dc7f7b63 \ - --hash=sha256:2dcd0808a421a482a080f89859a18beb0b3d1e905b81e617a188bd80422d62e9 \ - --hash=sha256:2e2eb32ddb9ccb817d620ac1d8dae7c3f641c1e5f55f531a33e8ab97960a75b8 \ - --hash=sha256:2feae0d2c91d46e59fcd62784a3a83b3fb677fead592ce51b5a6fbb4f95965ff \ - --hash=sha256:3095bdb8dd297e5920b010e96134ed91d852d81d490e787beca7e35ae1d89cf7 \ - --hash=sha256:30bc11310e8153ca664b14c5f1b73e94bd0503681fcf136a163de856f3a50139 \ - --hash=sha256:3101e5177d114a593d79dd79658650fe28b5a0d8abeb8ce6f437c0e6df5be1a4 \ - --hash=sha256:396084a36abdb603546b119d96528c2f6263921c50df3c8fd7cb28873a237748 \ - --hash=sha256:3997b5b3c9a771e157f9aae01dd579ee35ad7109be18db0e85dbdbe1de06e952 \ - --hash=sha256:414802f3b97f3c1eef41e530aaba3b3c1620649871d8cb38c6eaff034c2e16bd \ - --hash=sha256:51c1e14eb1e154ebd80e860722f9e6ed6ec89714ad2db2d3aa33c31d7c12179b \ - --hash=sha256:51c55fe3451421f3a6ef9a9c1439e82101c57a2c9eab9feb196a62b1a10b58ce \ - --hash=sha256:5ee6609ac3604fa7780e30a03e5e241a7956f8e2fcfe547d51e3afa5247ac47f \ - --hash=sha256:612a95a17655e213502f60cfb9bf9408efdc9eb1d5f50535cc6eb365d11b42b5 \ - --hash=sha256:6203fdf9f3dc5bdaed7319ad8698e685c7a3be10819f41d32a0723e611733b42 \ - --hash=sha256:63c0e9e7eea69588479ebf4a8a270d5ac22763cc5854e9a7eae952a3908103f7 \ - --hash=sha256:66f85ce62c70b843bab1fb14a05d5737741e74e28c7b8b5a064de10142fad248 \ - --hash=sha256:6cf9b429b21df6b99f4dee7a1218b8b7ffbbe7df8764dc0bd60ce8a0708fed1e \ - --hash=sha256:70b37199913c1bd300ff6e2693316c6f869c7ee16378faf10e4f5e3275b299c3 \ - --hash=sha256:727fd05b57df37dc0bcf1a27767a3d9a78cbbc92822445f32cc3436ba797337b \ - --hash=sha256:74ae7b798248fe62021dbf3c914245ad45d1a6b0cb4a29ecb4b31d0bfbc4cc3e \ - --hash=sha256:784db1dcdab56bf0517743e746dfb0f885fc68d948aba86eeec2cba234bdf1c0 \ - --hash=sha256:86945f2ee6d10cdfd67bcb4069c1662dd711f7e2a4343db5cecec06b87cf31aa \ - --hash=sha256:86d835afea1eaa143012a2d7a3f45a3adce2d7adc8b4961f0b362214d800846a \ - --hash=sha256:872a5cf366aec6bb1147336480fef14c9164b154aeb6542327de4970282cd2f5 \ - --hash=sha256:8b973c57ff8e184109db042c842423ff4f60446239bd585a5131cc47f06f789d \ - --hash=sha256:8cba086a43d54ca804ce711b2a940b16e452807acebe7852ff327f1ecd49b0d4 \ - --hash=sha256:8f7f0e05112916223d3f438f293abf0727e1181b5983f413dfa2fefc4098245c \ - --hash=sha256:900218e456384ea676e24ea6a0417f030a3b07306d29d7ad843957b40a9d8d52 \ - --hash=sha256:93eebbcf1aafdf7e2ddd44c2923e2672e1010bddc014138b229e49725b4d6be5 \ - --hash=sha256:9c75442b2209b8470d6d5d8b1c25714270686f14c749028d2199c54e29f20b4d \ - --hash=sha256:9ee2197ef8c4f0dfe405d835f3b6a14f5fee7782b5de51ba06fb65fc9b36e9f1 \ - --hash=sha256:a414504bef8945eae5f2d7cb7be2d4af77c5d1cb5e20b296c2c25b61dff2900c \ - --hash=sha256:a4b9159734b326535f4dd01d947f919c6eefd2d9827466a696c44ced82dfbc18 \ - --hash=sha256:a80afd79f45f3c4a7d341f13acbe058d1ca8ac017c165d3fa0d3de6bc1a079d7 \ - --hash=sha256:aa5bc7c5d59d831d9773d1170acac7893ce3a5e130540605770ade83280e7188 \ - --hash=sha256:acfd89508504a19ed06ef963ad544ec6664518c863436306153e13e94605c218 \ - --hash=sha256:aeffcab3d4b43712bb7a60b65f6044d444e75e563ff6180af8f98dd4b905dfd2 \ - --hash=sha256:afaffc4393205524af9dfa400fa250143a6c3bc646c08c9f5e25a9f4b4d6a903 \ - --hash=sha256:b0c7088a73aef3d687c4deef8452a3ac7c1be4e29ed8bf3b366c8111128ac60c \ - --hash=sha256:b46b4ec24f7293f23adcd2d146960559aaf8020213de8ad1909dba6c013bf89c \ - --hash=sha256:b501b5fa195cc9e24fe102f21ec0a44dffc231d2af79950b451e0d99cea02234 \ - --hash=sha256:bf06bc2af43fa8d32d30fae16ad965663e966b1a3202ed407b84c989c3221e82 \ - --hash=sha256:c804e3a5aba5460c73955c955bdbd5c08c354954e9270a2c1565f62e866bdc39 \ - --hash=sha256:c8a9958e88b65c3b27e22ca2a076311636850b612d6bbfb76e8d156aacde2aaf \ - --hash=sha256:cc0a57f895b96ec78969c34f682c602bf8da1a0270b09bc65673df2e7638ec20 \ - --hash=sha256:cc8920d2ec5fa99875b670bb86ddeb21e295cb07aa331810d9e486e0b969d946 \ - --hash=sha256:ccc933afd4d20aad3c00bcef049cb40049f7f196e0397f1109dba6fed63267b0 \ - --hash=sha256:ce581db493ea1a96c0556360ede6607496e8bf9b3a8efa66e06477267bc831e9 \ - --hash=sha256:d0f23b44f57077c1ede8c5f26b30f706498b4862d3ff0a7298b8411dd2f043ff \ - --hash=sha256:d21644de1b609825ede2f48be98dfde4656aefc713654eeee280e37cadc4e0ad \ - --hash=sha256:d6889ec4ec662a1a37eb4b4fb26b6100841804dac55bd9df579e326cdc146227 \ - --hash=sha256:de5672f4a7b200c15a4127042170a694d4df43c992948f5e1af57f0174beed10 \ - --hash=sha256:e6a0bc88393d65807d751a614207b7129a310ca4fe76a74e5c7da5fa5671417e \ - --hash=sha256:ed89927b86296067b4f81f108a2271d8926467a8868e554eaf370fc27fa3ccaf \ - --hash=sha256:ee3888d9ff7c14604052b2ca5535a30216aa0a58e948cdd3eeb8d3415f638769 \ - --hash=sha256:f0963b55cdd70fad460fa4c1341f12f976bb26cb66021a5580329bd498988310 \ - --hash=sha256:f16417ec91f12f814b10bafe79ef77e70113a2f5f7018640e7425ff979253425 \ - --hash=sha256:f28620fe26bee16243be2b7b874da327312240a7cdc38b769a697578d2100013 \ - --hash=sha256:f4255143f5160d0de972d28c8f9665d882b5f61309d8362fdd3e103cf7bf010c \ - --hash=sha256:ffac52f28a7849ad7576293c0cb7b9f08304e8f7d738a8cb8a90ec4c55a998eb \ - --hash=sha256:ffe22d2b05504f786c867c8395de703937f934272eb67586817b46188b4ded6d \ - --hash=sha256:fffe29a1ef00883599d1dc2c51aa2e5d80afe49523c261a74933df395c15c520 +numpy==2.4.0 \ + --hash=sha256:009bd0ea12d3c784b6639a8457537016ce5172109e585338e11334f6a7bb88ee \ + --hash=sha256:02a2038eb27f9443a8b266a66911e926566b5a6ffd1a689b588f7f35b81e7dc3 \ + --hash=sha256:0804a8e4ab070d1d35496e65ffd3cf8114c136a2b81f61dfab0de4b218aacfd5 \ + --hash=sha256:0feafc9e03128074689183031181fac0897ff169692d8492066e949041096548 \ + --hash=sha256:1889b3a3f47a7b5bee16bc25a2145bd7cb91897f815ce3499db64c7458b6d91d \ + --hash=sha256:1d8f9fde5f6dc1b6fc34df8162f3b3079365468703fee7f31d4e0cc8c63baed9 \ + --hash=sha256:1ee32359fb7543b7b7bd0b2f46294db27e29e7bbdf70541e81b190836cd83ded \ + --hash=sha256:20c115517513831860c573996e395707aa9fb691eb179200125c250e895fcd93 \ + --hash=sha256:21555da4ec4a0c942520ead42c3b0dc9477441e085c42b0fbdd6a084869a6f6b \ + --hash=sha256:23a3e9d1a6f360267e8fbb38ba5db355a6a7e9be71d7fce7ab3125e88bb646c8 \ + --hash=sha256:2a8b6bb8369abefb8bd1801b054ad50e02b3275c8614dc6e5b0373c305291037 \ + --hash=sha256:2e284ca13d5a8367e43734148622caf0b261b275673823593e3e3634a6490f83 \ + --hash=sha256:2f585f52b2baf07ff3356158d9268ea095e221371f1074fadea2f42544d58b4d \ + --hash=sha256:316b2f2584682318539f0bcaca5a496ce9ca78c88066579ebd11fd06f8e4741e \ + --hash=sha256:32ed06d0fe9cae27d8fb5f400c63ccee72370599c75e683a6358dd3a4fb50aaf \ + --hash=sha256:355354388cba60f2132df297e2d53053d4063f79077b67b481d21276d61fc4df \ + --hash=sha256:35ddc8f4914466e6fc954c76527aa91aa763682a4f6d73249ef20b418fe6effb \ + --hash=sha256:36667db4d6c1cea79c8930ab72fadfb4060feb4bfe724141cd4bd064d2e5f8ce \ + --hash=sha256:36cbfb13c152b1c7c184ddac43765db8ad672567e7bafff2cc755a09917ed2e6 \ + --hash=sha256:39699233bc72dd482da1415dcb06076e32f60eddc796a796c5fb6c5efce94667 \ + --hash=sha256:39b19251dec4de8ff8496cd0806cbe27bf0684f765abb1f4809554de93785f2d \ + --hash=sha256:3d857f55e7fdf7c38ab96c4558c95b97d1c685be6b05c249f5fdafcbd6f9899e \ + --hash=sha256:3de19cfecd1465d0dcf8a5b5ea8b3155b42ed0b639dba4b71e323d74f2a3be5e \ + --hash=sha256:3f3096405acc48887458bbf9f6814d43785ac7ba2a57ea6442b581dedbc60ce6 \ + --hash=sha256:40483b2f2d3ba7aad426443767ff5632ec3156ef09742b96913787d13c336471 \ + --hash=sha256:413aa561266a4be2d06cd2b9665e89d9f54c543f418773076a76adcf2af08bc7 \ + --hash=sha256:44aba2f0cafd287871a495fb3163408b0bd25bbce135c6f621534a07f4f7875c \ + --hash=sha256:49ff32b09f5aa0cd30a20c2b39db3e669c845589f2b7fc910365210887e39344 \ + --hash=sha256:4d1cfce39e511069b11e67cd0bd78ceff31443b7c9e5c04db73c7a19f572967c \ + --hash=sha256:57c540ed8fb1f05cb997c6761cd56db72395b0d6985e90571ff660452ade4f98 \ + --hash=sha256:5f48cb3e88fbc294dc90e215d86fbaf1c852c63dbdb6c3a3e63f45c4b57f7344 \ + --hash=sha256:5fe44e277225fd3dff6882d86d3d447205d43532c3627313d17e754fb3905a0e \ + --hash=sha256:60e8c196cd82cbbd4f130b5290007e13e6de3eca79f0d4d38014769d96a7c475 \ + --hash=sha256:65167da969cd1ec3a1df31cb221ca3a19a8aaa25370ecb17d428415e93c1935e \ + --hash=sha256:680060061adb2d74ce352628cb798cfdec399068aa7f07ba9fb818b2b3305f98 \ + --hash=sha256:6bbaebf0d11567fa8926215ae731e1d58e6ec28a8a25235b8a47405d301332db \ + --hash=sha256:6c05483c3136ac4c91b4e81903cb53a8707d316f488124d0398499a4f8e8ef51 \ + --hash=sha256:6dc8b7e2f4eb184b37655195f421836cfae6f58197b67e3ffc501f1333d993fa \ + --hash=sha256:6e504f7b16118198f138ef31ba24d985b124c2c469fe8467007cf30fd992f934 \ + --hash=sha256:74623f2ab5cc3f7c886add4f735d1031a1d2be4a4ae63c0546cfd74e7a31ddf6 \ + --hash=sha256:77f0d13fa87036d7553bf81f0e1fe3ce68d14c9976c9851744e4d3e91127e95f \ + --hash=sha256:85eef4cb5625c47ee6425c58a3502555e10f45ee973da878ac8248ad58c136f3 \ + --hash=sha256:882567b7ae57c1b1a0250208cc21a7976d8cbcc49d5a322e607e6f09c9e0bd53 \ + --hash=sha256:8b986403023c8f3bf8f487c2e6186afda156174d31c175f747d8934dfddf3479 \ + --hash=sha256:8cfa5f29a695cb7438965e6c3e8d06e0416060cf0d709c1b1c1653a939bf5c2a \ + --hash=sha256:8eafe7c36c8430b7794edeab3087dec7bf31d634d92f2af9949434b9d1964cba \ + --hash=sha256:9198f447e1dc5647d07c9a6bbe2063cc0132728cc7175b39dbc796da5b54920d \ + --hash=sha256:92190db305a6f48734d3982f2c60fa30d6b5ee9bff10f2887b930d7b40119f4c \ + --hash=sha256:927ccf5cd17c48f801f4ed43a7e5673a2724bd2171460be3e3894e6e332ef83a \ + --hash=sha256:98e81648e0b36e325ab67e46b5400a7a6d4a22b8a7c8e8bbfe20e7db7906bf95 \ + --hash=sha256:9a818668b674047fd88c4cddada7ab8f1c298812783e8328e956b78dc4807f9f \ + --hash=sha256:a152d86a3ae00ba5f47b3acf3b827509fd0b6cb7d3259665e63dafbad22a75ea \ + --hash=sha256:a2718c1de8504121714234b6f8241d0019450353276c88b9453c9c3d92e101db \ + --hash=sha256:a39fb973a726e63223287adc6dafe444ce75af952d711e400f3bf2b36ef55a7b \ + --hash=sha256:a899699294f28f7be8992853c0c60741f16ff199205e2e6cdca155762cbaa59d \ + --hash=sha256:a8fdfed3deaf1928fb7667d96e0567cdf58c2b370ea2ee7e586aa383ec2cb346 \ + --hash=sha256:aabb081ca0ec5d39591fc33018cd4b3f96e1a2dd6756282029986d00a785fba4 \ + --hash=sha256:b1f5b45829ac1848893f0ddf5cb326110604d6df96cdc255b0bf9edd154104d4 \ + --hash=sha256:b48e35f4ab6f6a7597c46e301126ceba4c44cd3280e3750f85db48b082624fa4 \ + --hash=sha256:b54c83f1c0c0f1d748dca0af516062b8829d53d1f0c402be24b4257a9c48ada6 \ + --hash=sha256:ba0cb30acd3ef11c94dc27fbfba68940652492bc107075e7ffe23057f9425681 \ + --hash=sha256:bb50ce5fb202a26fd5404620e7ef820ad1ab3558b444cb0b55beb7ef66cd2d63 \ + --hash=sha256:c95eb6db2884917d86cde0b4d4cf31adf485c8ec36bf8696dd66fa70de96f36b \ + --hash=sha256:d0ffd9e2e4441c96a9c91ec1783285d80bf835b677853fc2770a89d50c1e48ac \ + --hash=sha256:d57b5046c120561ba8fa8e4030fbb8b822f3063910fa901ffadf16e2b7128ad6 \ + --hash=sha256:d9e6a7664ddd9746e20b7325351fe1a8408d0a2bf9c63b5e898290ddc8f09544 \ + --hash=sha256:dc578891de1db95b2a35001b695451767b580bb45753717498213c5ff3c41d63 \ + --hash=sha256:e0434aa22c821f44eeb4c650b81c7fbdd8c0122c6c4b5a576a76d5a35625ecd9 \ + --hash=sha256:e06a922a469cae9a57100864caf4f8a97a1026513793969f8ba5b63137a35d25 \ + --hash=sha256:e493962256a38f58283de033d8af176c5c91c084ea30f15834f7545451c42059 \ + --hash=sha256:ecb0019d44f4cdb50b676c5d0cb4b1eae8e15d1ed3d3e6639f986fc92b2ec52c \ + --hash=sha256:f935c4493eda9069851058fa0d9e39dbf6286be690066509305e52912714dbb2 # via # feast (setup.py) # accelerate @@ -3030,30 +3028,30 @@ openshift-client==1.0.18 \ --hash=sha256:be3979440cfd96788146a3a1650dabe939d4d516eea0b39f87e66d2ab39495b1 \ --hash=sha256:d8a84080307ccd9556f6c62a3707a3e6507baedee36fa425754f67db9ded528b # via codeflare-sdk -opentelemetry-api==1.39.0 \ - --hash=sha256:3c3b3ca5c5687b1b5b37e5c5027ff68eacea8675241b29f13110a8ffbb8f0459 \ - --hash=sha256:6130644268c5ac6bdffaf660ce878f10906b3e789f7e2daa5e169b047a2933b9 +opentelemetry-api==1.39.1 \ + --hash=sha256:2edd8463432a7f8443edce90972169b195e7d6a05500cd29e6d13898187c9950 \ + --hash=sha256:fbde8c80e1b937a2c61f20347e91c0c18a1940cecf012d62e65a7caf08967c9c # via # opentelemetry-exporter-prometheus # opentelemetry-sdk # opentelemetry-semantic-conventions -opentelemetry-exporter-prometheus==0.60b0 \ - --hash=sha256:4f616397040257fae4c5e5272b57b47c13372e3b7f0f2db2427fd4dbe69c60b5 \ - --hash=sha256:c6ae33e52cdd1dbfed1f7436935df94eb03c725b57322026d04e6fbc37108e6e +opentelemetry-exporter-prometheus==0.60b1 \ + --hash=sha256:49f59178de4f4590e3cef0b8b95cf6e071aae70e1f060566df5546fad773b8fd \ + --hash=sha256:a4011b46906323f71724649d301b4dc188aaa068852e814f4df38cc76eac616b # via ray opentelemetry-proto==1.27.0 \ --hash=sha256:33c9345d91dafd8a74fc3d7576c5a38f18b7fdf8d02983ac67485386132aedd6 \ --hash=sha256:b133873de5581a50063e1e4b29cdcf0c5e253a8c2d8dc1229add20a4c3830ace # via ray -opentelemetry-sdk==1.39.0 \ - --hash=sha256:90cfb07600dfc0d2de26120cebc0c8f27e69bf77cd80ef96645232372709a514 \ - --hash=sha256:c22204f12a0529e07aa4d985f1bca9d6b0e7b29fe7f03e923548ae52e0e15dde +opentelemetry-sdk==1.39.1 \ + --hash=sha256:4d5482c478513ecb0a5d938dcc61394e647066e0cc2676bee9f3af3f3f45f01c \ + --hash=sha256:cf4d4563caf7bff906c9f7967e2be22d0d6b349b908be0d90fb21c8e9c995cc6 # via # opentelemetry-exporter-prometheus # ray -opentelemetry-semantic-conventions==0.60b0 \ - --hash=sha256:069530852691136018087b52688857d97bba61cd641d0f8628d2d92788c4f78a \ - --hash=sha256:227d7aa73cbb8a2e418029d6b6465553aa01cf7e78ec9d0bc3255c7b3ac5bf8f +opentelemetry-semantic-conventions==0.60b1 \ + --hash=sha256:87c228b5a0669b748c76d76df6c364c369c28f1c465e50f661e39737e84bc953 \ + --hash=sha256:9fa8c8b0c110da289809292b0591220d3a7b53c1526a23021e977d68597893fb # via opentelemetry-sdk orjson==3.11.5 \ --hash=sha256:0522003e9f7fba91982e83a97fec0708f5a714c96c4209db7104e6b9d132f111 \ @@ -3583,9 +3581,9 @@ propcache==0.4.1 \ # via # aiohttp # yarl -proto-plus==1.26.1 \ - --hash=sha256:13285478c2dcf2abb829db158e1047e2f1e8d63a077d94263c2b88b043c75a66 \ - --hash=sha256:21a515a4c4c0088a773899e23c7bbade3d18f9c66c73edd4c7ee3816bc96a012 +proto-plus==1.27.0 \ + --hash=sha256:1baa7f81cf0f8acb8bc1f6d085008ba4171eaf669629d1b6d1673b21ed1c0a82 \ + --hash=sha256:873af56dd0d7e91836aee871e5799e1c6f1bda86ac9a983e0bb9f0c266a568c4 # via # google-api-core # google-cloud-bigquery-storage @@ -4262,9 +4260,9 @@ pyopenssl==25.1.0 \ --hash=sha256:2b11f239acc47ac2e5aca04fd7fa829800aeee22a2eb30d744572a157bd8a1ab \ --hash=sha256:8d031884482e0c67ee92bf9a4d8cceb08d92aba7136432ffb0703c5280fc205b # via snowflake-connector-python -pyparsing==3.2.5 \ - --hash=sha256:2df8d5b7b2802ef88e8d016a2eb9c7aeaa923529cd251ed0fe4608275d4105b6 \ - --hash=sha256:e38a4f02064cf41fe6593d328d0512495ad1f3d8a91c4f73fc401b3079a59a5e +pyparsing==3.3.1 \ + --hash=sha256:023b5e7e5520ad96642e2c6db4cb683d3970bd640cdf7115049a6e9c3682df82 \ + --hash=sha256:47fad0f17ac1e2cad3de3b458570fbc9b03560aa029ed5e16ee5554da9a2251c # via great-expectations pypdfium2==4.30.0 \ --hash=sha256:0dfa61421b5eb68e1188b0b2231e7ba35735aef2d867d86e48ee6cab6975195e \ @@ -4287,8 +4285,8 @@ pyproject-hooks==1.2.0 \ # via # build # pip-tools -pyspark==4.0.1 \ - --hash=sha256:9d1f22d994f60369228397e3479003ffe2dd736ba79165003246ff7bd48e2c73 +pyspark==4.1.0 \ + --hash=sha256:09c714ada88dfac3e1213c066617c6f473c1e22fbe279855028f77e12434147d # via feast (setup.py) pytest==7.4.4 \ --hash=sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280 \ @@ -4485,9 +4483,9 @@ python-keycloak==4.2.2 \ --hash=sha256:1d43a1accd4a038ed39317fcb3eb78211df6c75bbcbc4c482c99ee76327136f2 \ --hash=sha256:5137fd87c69031a372a578df96bae96b9aead2c9dad976613bc978e9e0246a1e # via feast (setup.py) -python-multipart==0.0.20 \ - --hash=sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104 \ - --hash=sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13 +python-multipart==0.0.21 \ + --hash=sha256:7137ebd4d3bbf70ea1622998f902b97a29434a9e8dc40eb203bbcf7c2a2cba92 \ + --hash=sha256:cf7a6713e01c87aa35387f4774e812c4361150938d20d232800f75ffcf266090 # via mcp python-pptx==1.0.2 \ --hash=sha256:160838e0b8565a8b1f67947675886e9fea18aa5e795db7ae531606d68e785cba \ @@ -4692,9 +4690,9 @@ pyzmq==27.1.0 \ # ipykernel # jupyter-client # jupyter-server -qdrant-client==1.16.1 \ - --hash=sha256:1eefe89f66e8a468ba0de1680e28b441e69825cfb62e8fb2e457c15e24ce5e3b \ - --hash=sha256:676c7c10fd4d4cb2981b8fcb32fd764f5f661b04b7334d024034d07212f971fd +qdrant-client==1.16.2 \ + --hash=sha256:442c7ef32ae0f005e88b5d3c0783c63d4912b97ae756eb5e052523be682f17d3 \ + --hash=sha256:ca4ef5f9be7b5eadeec89a085d96d5c723585a391eb8b2be8192919ab63185f0 # via feast (setup.py) ray[data, default]==2.52.1 \ --hash=sha256:08eb8f5fd55292ba6bee363a32491136a5e54af54e007f81e0603986fbea41a4 \ @@ -5051,26 +5049,26 @@ ruamel-yaml==0.17.17 \ --hash=sha256:9751de4cbb57d4bfbf8fc394e125ed4a2f170fbff3dc3d78abf50be85924f8be \ --hash=sha256:9af3ec5d7f8065582f3aa841305465025d0afd26c5fb54e15b964e11838fc74f # via great-expectations -ruff==0.14.8 \ - --hash=sha256:15f04cb45c051159baebb0f0037f404f1dc2f15a927418f29730f411a79bc4e7 \ - --hash=sha256:1af35c2d62633d4da0521178e8a2641c636d2a7153da0bac1b30cfd4ccd91344 \ - --hash=sha256:1d62cb310c4fbcb9ee4ac023fe17f984ae1e12b8a4a02e3d21489f9a2a5f730c \ - --hash=sha256:21d48fa744c9d1cb8d71eb0a740c4dd02751a5de9db9a730a8ef75ca34cf138e \ - --hash=sha256:25add4575ffecc53d60eed3f24b1e934493631b48ebbc6ebaf9d8517924aca4b \ - --hash=sha256:2c87e09b3cd9d126fc67a9ecd3b5b1d3ded2b9c7fce3f16e315346b9d05cfb52 \ - --hash=sha256:2e2fcbefe91f9fad0916850edf0854530c15bd1926b6b779de47e9ab619ea38f \ - --hash=sha256:4c943d847b7f02f7db4201a0600ea7d244d8a404fbb639b439e987edcf2baf9a \ - --hash=sha256:774ed0dd87d6ce925e3b8496feb3a00ac564bea52b9feb551ecd17e0a23d1eed \ - --hash=sha256:7aaf2974f378e6b01d1e257c6948207aec6a9b5ba53fab23d0182efb887a0e4a \ - --hash=sha256:8cdb162a7159f4ca36ce980a18c43d8f036966e7f73f866ac8f493b75e0c27e9 \ - --hash=sha256:965a582c93c63fe715fd3e3f8aa37c4b776777203d8e1d8aa3cc0c14424a4b99 \ - --hash=sha256:9eeb0b24242b5bbff3011409a739929f497f3fb5fe3b5698aba5e77e8c833097 \ - --hash=sha256:a9d70721066a296f45786ec31916dc287b44040f553da21564de0ab4d45a869b \ - --hash=sha256:cb6e8bf7b4f627548daa1b69283dac5a296bfe9ce856703b03130732e20ddfe2 \ - --hash=sha256:e5758ca513c43ad8a4ef13f0f081f80f08008f410790f3611a21a92421ab045b \ - --hash=sha256:ec071e9c82eca417f6111fd39f7043acb53cd3fde9b1f95bbed745962e345afb \ - --hash=sha256:eed28f6fafcc9591994c42254f5a5c5ca40e69a30721d2ab18bb0bb3baac3ab6 \ - --hash=sha256:f74f7ba163b6e85a8d81a590363bf71618847e5078d90827749bfda1d88c9cdf +ruff==0.14.10 \ + --hash=sha256:104c49fc7ab73f3f3a758039adea978869a918f31b73280db175b43a2d9b51d6 \ + --hash=sha256:1484983559f026788e3a5c07c81ef7d1e97c1c78ed03041a18f75df104c45405 \ + --hash=sha256:16a01dfb7b9e4eee556fbfd5392806b1b8550c9b4a9f6acd3dbe6812b193c70a \ + --hash=sha256:213db2b2e44be8625002dbea33bb9c60c66ea2c07c084a00d55732689d697a7f \ + --hash=sha256:466297bd73638c6bdf06485683e812db1c00c7ac96d4ddd0294a338c62fdc154 \ + --hash=sha256:4bb98fcbbc61725968893682fd4df8966a34611239c9fd07a1f6a07e7103d08e \ + --hash=sha256:59aabd2e2c4fd614d2862e7939c34a532c04f1084476d6833dddef4afab87e9f \ + --hash=sha256:5bcf45b681e9f1ee6445d317ce1fa9d6cba9a6049542d1c3d5b5958986be8830 \ + --hash=sha256:674f9be9372907f7257c51f1d4fc902cb7cf014b9980152b802794317941f08f \ + --hash=sha256:6987ebe0501ae4f4308d7d24e2d0fe3d7a98430f5adfd0f1fead050a740a3a77 \ + --hash=sha256:7165d31a925b7a294465fa81be8c12a0e9b60fb02bf177e79067c867e71f8b1f \ + --hash=sha256:7a3ce585f2ade3e1f29ec1b92df13e3da262178df8c8bdf876f48fa0e8316c49 \ + --hash=sha256:9a2e830f075d1a42cd28420d7809ace390832a490ed0966fe373ba288e77aaf4 \ + --hash=sha256:b914c40ab64865a17a9a5b67911d14df72346a634527240039eb3bd650e5979d \ + --hash=sha256:c561695675b972effb0c0a45db233f2c816ff3da8dcfbe7dfc7eed625f218935 \ + --hash=sha256:c70427132db492d25f982fffc8d6c7535cc2fd2c83fc8888f05caaa248521e60 \ + --hash=sha256:d85713d522348837ef9df8efca33ccb8bd6fcfc86a2cde3ccb4bc9d28a18003d \ + --hash=sha256:e51d046cf6dda98a4633b8a8a771451107413b0f07183b2bef03f075599e44e6 \ + --hash=sha256:f24b47993a9d8cb858429e97bdf8544c78029f09b520af615c1d261bf827001d # via feast (setup.py) s3transfer==0.13.1 \ --hash=sha256:a981aa7429be23fe6dfc13e80e4020057cbab622b08c0315288758d67cabc724 \ @@ -5105,29 +5103,56 @@ safetensors[torch]==0.7.0 \ # docling-ibm-models # timm # transformers -scikit-image==0.25.2 \ - --hash=sha256:24cc986e1f4187a12aa319f777b36008764e856e5013666a4a83f8df083c2641 \ - --hash=sha256:28182a9d3e2ce3c2e251383bdda68f8d88d9fff1a3ebe1eb61206595c9773341 \ - --hash=sha256:330d061bd107d12f8d68f1d611ae27b3b813b8cdb0300a71d07b1379178dd4cd \ - --hash=sha256:483bd8cc10c3d8a7a37fae36dfa5b21e239bd4ee121d91cad1f81bba10cfb0ed \ - --hash=sha256:5c311069899ce757d7dbf1d03e32acb38bb06153236ae77fcd820fd62044c063 \ - --hash=sha256:60516257c5a2d2f74387c502aa2f15a0ef3498fbeaa749f730ab18f0a40fd054 \ - --hash=sha256:64785a8acefee460ec49a354706db0b09d1f325674107d7fa3eadb663fb56d6f \ - --hash=sha256:7efa888130f6c548ec0439b1a7ed7295bc10105458a421e9bf739b457730b6da \ - --hash=sha256:8db8dd03663112783221bf01ccfc9512d1cc50ac9b5b0fe8f4023967564719fb \ - --hash=sha256:9d1e80107bcf2bf1291acfc0bf0425dceb8890abe9f38d8e94e23497cbf7ee0d \ - --hash=sha256:a17e17eb8562660cc0d31bb55643a4da996a81944b82c54805c91b3fe66f4824 \ - --hash=sha256:a4c464b90e978d137330be433df4e76d92ad3c5f46a22f159520ce0fdbea8a09 \ - --hash=sha256:b2cfc96b27afe9a05bc92f8c6235321d3a66499995675b27415e0d0c76625173 \ - --hash=sha256:b4f6b61fc2db6340696afe3db6b26e0356911529f5f6aee8c322aa5157490c9b \ - --hash=sha256:b8abd3c805ce6944b941cfed0406d88faeb19bab3ed3d4b50187af55cf24d147 \ - --hash=sha256:bdd2b8c1de0849964dbc54037f36b4e9420157e67e45a8709a80d727f52c7da2 \ - --hash=sha256:be455aa7039a6afa54e84f9e38293733a2622b8c2fb3362b822d459cc5605e99 \ - --hash=sha256:d3278f586793176599df6a4cf48cb6beadae35c31e58dc01a98023af3dc31c78 \ - --hash=sha256:d989d64ff92e0c6c0f2018c7495a5b20e2451839299a018e0e5108b2680f71e0 \ - --hash=sha256:dd8011efe69c3641920614d550f5505f83658fe33581e49bed86feab43a180fc \ - --hash=sha256:e5a37e6cd4d0c018a7a55b9d601357e3382826d3888c10d0213fc63bff977dde \ - --hash=sha256:f4bac9196fb80d37567316581c6060763b0f4893d3aca34a9ede3825bc035b17 +scikit-image==0.26.0 \ + --hash=sha256:0608aa4a9ec39e0843de10d60edb2785a30c1c47819b67866dd223ebd149acaf \ + --hash=sha256:0660b83968c15293fd9135e8d860053ee19500d52bf55ca4fb09de595a1af650 \ + --hash=sha256:09bad6a5d5949c7896c8347424c4cca899f1d11668030e5548813ab9c2865dcb \ + --hash=sha256:0baa0108d2d027f34d748e84e592b78acc23e965a5de0e4bb03cf371de5c0581 \ + --hash=sha256:163e9afb5b879562b9aeda0dd45208a35316f26cc7a3aed54fd601604e5cf46f \ + --hash=sha256:20ef4a155e2e78b8ab973998e04d8a361d49d719e65412405f4dadd9155a61d9 \ + --hash=sha256:21a818ee6ca2f2131b9e04d8eb7637b5c18773ebe7b399ad23dcc5afaa226d2d \ + --hash=sha256:27d58bc8b2acd351f972c6508c1b557cfed80299826080a4d803dd29c51b707e \ + --hash=sha256:2c1e7bd342f43e7a97e571b3f03ba4c1293ea1a35c3f13f41efdc8a81c1dc8f2 \ + --hash=sha256:3268f13310e6857508bd87202620df996199a016a1d281b309441d227c822394 \ + --hash=sha256:3409e89d66eff5734cd2b672d1c48d2759360057e714e1d92a11df82c87cba37 \ + --hash=sha256:3f5bf622d7c0435884e1e141ebbe4b2804e16b2dd23ae4c6183e2ea99233be70 \ + --hash=sha256:4c717490cec9e276afb0438dd165b7c3072d6c416709cc0f9f5a4c1070d23a44 \ + --hash=sha256:4d57e39ef67a95d26860c8caf9b14b8fb130f83b34c6656a77f191fa6d1d04d8 \ + --hash=sha256:52c496f75a7e45844d951557f13c08c81487c6a1da2e3c9c8a39fcde958e02cc \ + --hash=sha256:6381edf972b32e4f54085449afde64365a57316637496c1325a736987083e2ab \ + --hash=sha256:63af3d3a26125f796f01052052f86806da5b5e54c6abef152edb752683075a9c \ + --hash=sha256:6caec76e16c970c528d15d1c757363334d5cb3069f9cea93d2bead31820511f3 \ + --hash=sha256:724f79fd9b6cb6f4a37864fe09f81f9f5d5b9646b6868109e1b100d1a7019e59 \ + --hash=sha256:74aa5518ccea28121f57a95374581d3b979839adc25bb03f289b1bc9b99c58af \ + --hash=sha256:7af7aa331c6846bd03fa28b164c18d0c3fd419dbb888fb05e958ac4257a78fdd \ + --hash=sha256:7df650e79031634ac90b11e64a9eedaf5a5e06fcd09bcd03a34be01745744466 \ + --hash=sha256:915bb3ba66455cf8adac00dc8fdf18a4cd29656aec7ddd38cb4dda90289a6f21 \ + --hash=sha256:92242351bccf391fc5df2d1529d15470019496d2498d615beb68da85fe7fdf37 \ + --hash=sha256:9490360c8d3f9a7e85c8de87daf7c0c66507960cf4947bb9610d1751928721c7 \ + --hash=sha256:98329aab3bc87db352b9887f64ce8cdb8e75f7c2daa19927f2e121b797b678d5 \ + --hash=sha256:9ea6207d9e9d21c3f464efe733121c0504e494dbdc7728649ff3e23c3c5a4953 \ + --hash=sha256:9eefb4adad066da408a7601c4c24b07af3b472d90e08c3e7483d4e9e829d8c49 \ + --hash=sha256:a07200fe09b9d99fcdab959859fe0f7db8df6333d6204344425d476850ce3604 \ + --hash=sha256:a2d211bc355f59725efdcae699b93b30348a19416cc9e017f7b2fb599faf7219 \ + --hash=sha256:a2e852eccf41d2d322b8e60144e124802873a92b8d43a6f96331aa42888491c7 \ + --hash=sha256:abed017474593cd3056ae0fe948d07d0747b27a085e92df5474f4955dd65aec0 \ + --hash=sha256:ac529eb9dbd5954f9aaa2e3fe9a3fd9661bfe24e134c688587d811a0233127f1 \ + --hash=sha256:aeb14db1ed09ad4bee4ceb9e635547a8d5f3549be67fc6c768c7f923e027e6cd \ + --hash=sha256:b1ede33a0fb3731457eaf53af6361e73dd510f449dac437ab54573b26788baf0 \ + --hash=sha256:b36ab5e778bf50af5ff386c3ac508027dc3aaeccf2161bdf96bde6848f44d21b \ + --hash=sha256:b702c3bb115e1dcf4abf5297429b5c90f2189655888cbed14921f3d26f81d3a4 \ + --hash=sha256:b8d14d3181c21c11170477a42542c1addc7072a90b986675a71266ad17abc37f \ + --hash=sha256:c6624a76c6085218248154cc7e1500e6b488edcd9499004dd0d35040607d7505 \ + --hash=sha256:c9087cf7d0e7f33ab5c46d2068d86d785e70b05400a891f73a13400f1e1faf6a \ + --hash=sha256:cde0bbd57e6795eba83cb10f71a677f7239271121dc950bc060482834a668ad1 \ + --hash=sha256:ce00600cd70d4562ed59f80523e18cdcc1fae0e10676498a01f73c255774aefd \ + --hash=sha256:cefd85033e66d4ea35b525bb0937d7f42d4cdcfed2d1888e1570d5ce450d3932 \ + --hash=sha256:d454b93a6fa770ac5ae2d33570f8e7a321bb80d29511ce4b6b78058ebe176e8c \ + --hash=sha256:d5c244656de905e195a904e36dbc18585e06ecf67d90f0482cbde63d7f9ad59d \ + --hash=sha256:ede4d6d255cc5da9faeb2f9ba7fedbc990abbc652db429f40a16b22e770bb578 \ + --hash=sha256:f5f970ab04efad85c24714321fcc91613fcb64ef2a892a13167df2f3e59199fa \ + --hash=sha256:f775f0e420faac9c2aa6757135f4eb468fb7b70e0b67fa77a5e79be3c30ee331 \ + --hash=sha256:fac96a1f9b06cd771cbbb3cd96c5332f36d4efd839b1d8b053f79e5887acde62 # via easyocr scikit-learn==1.8.0 \ --hash=sha256:00d6f1d66fbcf4eba6e356e1420d33cc06c70a45bb1363cd6f6a8e4ebbbdece2 \ @@ -5389,9 +5414,9 @@ sortedcontainers==2.4.0 \ --hash=sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88 \ --hash=sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0 # via snowflake-connector-python -soupsieve==2.8 \ - --hash=sha256:0cc76456a30e20f5d7f2e14a98a4ae2ee4e5abdc7c5ea0aafe795f344bc7984c \ - --hash=sha256:e2dd4a40a628cb5f28f6d4b0db8800b8f581b65bb380b97de22ba5ca8d72572f +soupsieve==2.8.1 \ + --hash=sha256:4cf733bc50fa805f5df4b8ef4740fc0e0fa6218cf3006269afd3f9d6d80fd350 \ + --hash=sha256:a11fe2a6f3d76ab3cf2de04eb339c1be5b506a8a47f2ceb6d139803177f85434 # via beautifulsoup4 sphinx==6.2.1 \ --hash=sha256:6d56a34697bb749ffa0152feafc4b19836c755d90a7c59b72bc7dfd371b9cc6b \ @@ -5433,12 +5458,14 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:1d8b4a7a8c9b537509d56d5cd10ecdcfbb95912d72480c8861524efecc6a3fff \ --hash=sha256:215f0528b914e5c75ef2559f69dca86878a3beeb0c1be7279d77f18e8d180ed4 \ --hash=sha256:2c0b74aa79e2deade948fe8593654c8ef4228c44ba862bb7c9585c8e0db90f33 \ + --hash=sha256:2e90a344c644a4fa871eb01809c32096487928bd2038bf10f3e4515cb688cc56 \ --hash=sha256:3c5f76216e7b85770d5bb5130ddd11ee89f4d52b11783674a662c7dd57018177 \ --hash=sha256:470daea2c1ce73910f08caf10575676a37159a6d16c4da33d0033546bddebc9b \ --hash=sha256:4748601c8ea959e37e03d13dcda4a44837afcd1b21338e637f7c935b8da06177 \ --hash=sha256:4b6bec67ca45bc166c8729910bd2a87f1c0407ee955df110d78948f5b5827e8a \ --hash=sha256:5225a288e4c8cc2308dbdd874edad6e7d0fd38eac1e9e5f23503425c8eee20d0 \ --hash=sha256:56ead1f8dfb91a54a28cd1d072c74b3d635bcffbd25e50786533b822d4f2cde2 \ + --hash=sha256:5964f832431b7cdfaaa22a660b4c7eb1dfcd6ed41375f67fd3e3440fd95cb3cc \ --hash=sha256:59a8b8bd9c6bedf81ad07c8bd5543eedca55fe9b8780b2b628d495ba55f8db1e \ --hash=sha256:672c45cae53ba88e0dad74b9027dddd09ef6f441e927786b05bec75d949fbb2e \ --hash=sha256:6d0beadc2535157070c9c17ecf25ecec31e13c229a8f69196d7590bde8082bf1 \ @@ -5457,7 +5484,9 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:b8c8b41b97fba5f62349aa285654230296829672fc9939cd7f35aab246d1c08b \ --hash=sha256:ba547ac0b361ab4f1608afbc8432db669bd0819b3e12e29fb5fa9529a8bba81d \ --hash=sha256:c1c2091b1489435ff85728fafeb990f073e64f6f5e81d5cd53059773e8521eb6 \ + --hash=sha256:c64772786d9eee72d4d3784c28f0a636af5b0a29f3fe26ff11f55efe90c0bd85 \ --hash=sha256:cd337d3526ec5298f67d6a30bbbe4ed7e5e68862f0bf6dd21d289f8d37b7d60b \ + --hash=sha256:d29b2b99d527dbc66dd87c3c3248a5dd789d974a507f4653c969999fc7c1191b \ --hash=sha256:d2c3684fca8a05f0ac1d9a21c1f4a266983a7ea9180efb80ffeb03861ecd01a0 \ --hash=sha256:d62e47f5d8a50099b17e2bfc1b0c7d7ecd8ba6b46b1507b58cc4f05eefc3bb1c \ --hash=sha256:d8a2ca754e5415cde2b656c27900b19d50ba076aa05ce66e2207623d3fe41f5a \ @@ -5551,9 +5580,9 @@ sqlparams==6.2.0 \ --hash=sha256:3744a2ad16f71293db6505b21fd5229b4757489a9b09f3553656a1ae97ba7ca5 \ --hash=sha256:63b32ed9051bdc52e7e8b38bc4f78aed51796cdd9135e730f4c6a7db1048dedf # via singlestoredb -sse-starlette==3.0.3 \ - --hash=sha256:88cfb08747e16200ea990c8ca876b03910a23b547ab3bd764c0d8eb81019b971 \ - --hash=sha256:af5bf5a6f3933df1d9c7f8539633dc8444ca6a97ab2e2a7cd3b6e431ac03a431 +sse-starlette==3.1.1 \ + --hash=sha256:bb38f71ae74cfd86b529907a9fda5632195dfa6ae120f214ea4c890c7ee9d436 \ + --hash=sha256:bffa531420c1793ab224f63648c059bcadc412bf9fdb1301ac8de1cf9a67b7fb # via mcp stack-data==0.6.3 \ --hash=sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9 \ @@ -5565,6 +5594,7 @@ starlette==0.50.0 \ # via # fastapi # mcp + # sse-starlette substrait==0.24.2 \ --hash=sha256:743cc352e96b0927b2cd37cd5a8fdac0a96a68df9600bd104fc36aebd222a836 \ --hash=sha256:d1d475833566fa9d67eed3273456883c0568486ccced92b524b31709d2817e19 @@ -5663,9 +5693,9 @@ thriftpy2==0.5.3 \ --hash=sha256:fd4c6131ca6e919f03263cc83b713f1797bc20126a858da8518ed49b3e32c334 \ --hash=sha256:fdc5676b52fa6a3009d205360eb9ba257b8b4813883ed52797a20838bcc45dde # via happybase -tifffile==2025.10.16 \ - --hash=sha256:41463d979c1c262b0a5cdef2a7f95f0388a072ad82d899458b154a48609d759c \ - --hash=sha256:425179ec7837ac0e07bc95d2ea5bea9b179ce854967c12ba07fc3f093e58efc1 +tifffile==2025.12.20 \ + --hash=sha256:bc0345a20675149353cfcb3f1c48d0a3654231ee26bd46beebaab4d2168feeb6 \ + --hash=sha256:cb8a4fee327d15b3e3eeac80bbdd8a53b323c80473330bcfb99418ee4c1c827f # via scikit-image timm==1.0.22 \ --hash=sha256:14fd74bcc17db3856b1a47d26fb305576c98579ab9d02b36714a5e6b25cde422 \ @@ -5825,19 +5855,19 @@ torchvision==0.24.1 \ # docling-ibm-models # easyocr # timm -tornado==6.5.2 \ - --hash=sha256:06ceb1300fd70cb20e43b1ad8aaee0266e69e7ced38fa910ad2e03285009ce7c \ - --hash=sha256:2436822940d37cde62771cff8774f4f00b3c8024fe482e16ca8387b8a2724db6 \ - --hash=sha256:583a52c7aa94ee046854ba81d9ebb6c81ec0fd30386d96f7640c96dad45a03ef \ - --hash=sha256:74db443e0f5251be86cbf37929f84d8c20c27a355dd452a5cfa2aada0d001ec4 \ - --hash=sha256:ab53c8f9a0fa351e2c0741284e06c7a45da86afb544133201c5cc8578eb076a0 \ - --hash=sha256:b0fe179f28d597deab2842b86ed4060deec7388f1fd9c1b4a41adf8af058907e \ - --hash=sha256:b186e85d1e3536d69583d2298423744740986018e393d0321df7340e71898882 \ - --hash=sha256:b5e735ab2889d7ed33b32a459cac490eda71a1ba6857b0118de476ab6c366c04 \ - --hash=sha256:c6f29e94d9b37a95013bb669616352ddb82e3bfe8326fccee50583caebc8a5f0 \ - --hash=sha256:d6c33dc3672e3a1f3618eb63b7ef4683a7688e7b9e6e8f0d9aa5726360a004af \ - --hash=sha256:e56a5af51cc30dd2cae649429af65ca2f6571da29504a07995175df14c18f35f \ - --hash=sha256:e792706668c87709709c18b353da1f7662317b563ff69f00bab83595940c7108 +tornado==6.5.4 \ + --hash=sha256:053e6e16701eb6cbe641f308f4c1a9541f91b6261991160391bfc342e8a551a1 \ + --hash=sha256:1768110f2411d5cd281bac0a090f707223ce77fd110424361092859e089b38d1 \ + --hash=sha256:2d50f63dda1d2cac3ae1fa23d254e16b5e38153758470e9956cbc3d813d40843 \ + --hash=sha256:50ff0a58b0dc97939d29da29cd624da010e7f804746621c78d14b80238669335 \ + --hash=sha256:6076d5dda368c9328ff41ab5d9dd3608e695e8225d1cd0fd1e006f05da3635a8 \ + --hash=sha256:6eb82872335a53dd063a4f10917b3efd28270b56a33db69009606a0312660a6f \ + --hash=sha256:9c86b1643b33a4cd415f8d0fe53045f913bf07b4a3ef646b735a6a86047dda84 \ + --hash=sha256:a22fa9047405d03260b483980635f0b041989d8bcc9a313f8fe18b411d84b1d7 \ + --hash=sha256:d1cf66105dc6acb5af613c054955b8137e34a03698aa53272dbda4afe252be17 \ + --hash=sha256:d6241c1a16b1c9e4cc28148b1cda97dd1c6cb4fb7068ac1bedc610768dff0ba9 \ + --hash=sha256:e5fb5e04efa54cf0baabdd10061eb4148e0be137166146fff835745f59ab9f7f \ + --hash=sha256:fa07d31e0cd85c60713f2b995da613588aa03e1303d75705dca6af8babc18ddc # via # ipykernel # jupyter-client @@ -5997,9 +6027,9 @@ types-protobuf==3.19.22 \ # via # feast (setup.py) # mypy-protobuf -types-pymysql==1.1.0.20250916 \ - --hash=sha256:873eb9836bb5e3de4368cc7010ca72775f86e9692a5c7810f8c7f48da082e55b \ - --hash=sha256:98d75731795fcc06723a192786662bdfa760e1e00f22809c104fbb47bac5e29b +types-pymysql==1.1.0.20251220 \ + --hash=sha256:ae1c3df32a777489431e2e9963880a0df48f6591e0aa2fd3a6fabd9dee6eca54 \ + --hash=sha256:fa1082af7dea6c53b6caa5784241924b1296ea3a8d3bd060417352c5e10c0618 # via feast (setup.py) types-pyopenssl==24.1.0.20240722 \ --hash=sha256:47913b4678a01d879f503a12044468221ed8576263c1540dcb0484ca21b08c39 \ @@ -6025,9 +6055,9 @@ types-requests==2.30.0.0 \ --hash=sha256:c6cf08e120ca9f0dc4fa4e32c3f953c3fba222bcc1db6b97695bce8da1ba9864 \ --hash=sha256:dec781054324a70ba64430ae9e62e7e9c8e4618c185a5cb3f87a6738251b5a31 # via feast (setup.py) -types-setuptools==80.9.0.20250822 \ - --hash=sha256:070ea7716968ec67a84c7f7768d9952ff24d28b65b6594797a464f1b3066f965 \ - --hash=sha256:53bf881cb9d7e46ed12c76ef76c0aaf28cfe6211d3fab12e0b83620b1a8642c3 +types-setuptools==80.9.0.20251223 \ + --hash=sha256:1b36db79d724c2287d83dc052cf887b47c0da6a2fff044378be0b019545f56e6 \ + --hash=sha256:d3411059ae2f5f03985217d86ac6084efea2c9e9cacd5f0869ef950f308169b2 # via # feast (setup.py) # types-cffi @@ -6085,9 +6115,9 @@ typing-inspection==0.4.2 \ # mcp # pydantic # pydantic-settings -tzdata==2025.2 \ - --hash=sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8 \ - --hash=sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9 +tzdata==2025.3 \ + --hash=sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1 \ + --hash=sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7 # via # arrow # pandas @@ -6187,9 +6217,9 @@ uri-template==1.3.0 \ --hash=sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7 \ --hash=sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363 # via jsonschema -urllib3==2.6.1 \ - --hash=sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f \ - --hash=sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b +urllib3==2.6.2 \ + --hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \ + --hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd # via # feast (setup.py) # botocore diff --git a/sdk/python/requirements/py3.12-minimal-requirements.txt b/sdk/python/requirements/py3.12-minimal-requirements.txt index b0f2f48c9b0..d2064d4ed78 100644 --- a/sdk/python/requirements/py3.12-minimal-requirements.txt +++ b/sdk/python/requirements/py3.12-minimal-requirements.txt @@ -170,9 +170,9 @@ attrs==25.4.0 \ # aiohttp # jsonschema # referencing -bigtree==1.0.3 \ - --hash=sha256:18402a143130868b17ca84a74ca263e6f32f046d6978c30d244f8b94c4a01227 \ - --hash=sha256:99a18b6937a9b4ab8e560fec5c0720e10ebf37f84e44f9b5f47702c2e84c9aaa +bigtree==1.0.4 \ + --hash=sha256:e4af0c5bc0d2cd72e18442965e4509f642b16a0de65db6d0ec116e30f959010c \ + --hash=sha256:f58a3238bb9b1142d893c9de4921bfd18d435427c75e0c168dd580eabf6dc7fd # via feast (setup.py) boto3==1.38.27 \ --hash=sha256:94bd7fdd92d5701b362d4df100d21e28f8307a67ff56b6a8b0398119cf22f859 \ @@ -188,9 +188,9 @@ botocore==1.38.46 \ # boto3 # s3transfer # snowflake-connector-python -cachetools==6.2.2 \ - --hash=sha256:6c09c98183bf58560c97b2abfcedcbaf6a896a490f534b031b661d3723b45ace \ - --hash=sha256:8e6d266b25e539df852251cfd6f990b4bc3a141db73b939058d809ebd2590fc6 +cachetools==6.2.4 \ + --hash=sha256:69a7a52634fed8b8bf6e24a050fb60bff1c9bd8f6d24572b99c32d4e71e62a51 \ + --hash=sha256:82c5c05585e70b6ba2d3ae09ea60b79548872185d2f24ae1f2709d37299fd607 # via google-auth certifi==2025.11.12 \ --hash=sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b \ @@ -465,13 +465,13 @@ cryptography==46.0.0 \ # pyjwt # pyopenssl # snowflake-connector-python -dask[dataframe]==2025.11.0 \ - --hash=sha256:08c35a8146c05c93b34f83cf651009129c42ee71762da7ca452fb7308641c2b8 \ - --hash=sha256:23d59e624b80ee05b7cc8df858682cca58262c4c3b197ccf61da0f6543c8f7c3 +dask[dataframe]==2025.12.0 \ + --hash=sha256:4213ce9c5d51d6d89337cff69de35d902aa0bf6abdb8a25c942a4d0281f3a598 \ + --hash=sha256:8d478f2aabd025e2453cf733ad64559de90cf328c20209e4574e9543707c3e1b # via feast (setup.py) -db-dtypes==1.4.4 \ - --hash=sha256:26f53db5df1acd746b88c5647913a1b20f731c0af1b11abcb6bec5365f31098a \ - --hash=sha256:32c13039982656a8598a0835f25f0e07e34c9a423e471ee60c2553240b7fcf1e +db-dtypes==1.5.0 \ + --hash=sha256:abdbb2e4eb965800ed6f98af0c5c1cafff9063ace09114be2d26a7f046be2c8a \ + --hash=sha256:ad9e94243f53e104bc77dbf9ae44b580d83a770d3694483aba59c9767966daa5 # via # google-cloud-bigquery # pandas-gbq @@ -537,9 +537,9 @@ durationpy==0.10 \ --hash=sha256:1fa6893409a6e739c9c72334fc65cca1f355dbdd93405d30f726deb5bde42fba \ --hash=sha256:3b41e1b601234296b4fb368338fdcd3e13e0b4fb5b67345948f4f2bf9868b286 # via kubernetes -fastapi==0.124.0 \ - --hash=sha256:260cd178ad75e6d259991f2fd9b0fee924b224850079df576a3ba604ce58f4e6 \ - --hash=sha256:91596bdc6dde303c318f06e8d2bc75eafb341fc793a0c9c92c0bc1db1ac52480 +fastapi==0.128.0 \ + --hash=sha256:1cc179e1cef10a6be60ffe429f79b829dce99d8de32d7acb7e6c8dfdf7f2645a \ + --hash=sha256:aebd93f9716ee3b4f4fcfe13ffb7cf308d99c9f3ab5622d8877441072561582d # via # feast (setup.py) # fastapi-mcp @@ -547,9 +547,9 @@ fastapi-mcp==0.4.0 \ --hash=sha256:d4a3fe7966af24d44e4b412720561c95eb12bed999a4443a88221834b3b15aec \ --hash=sha256:d4ca9410996f4c7b8ea0d7b20fdf79878dc359ebf89cbf3b222e0b675a55097d # via feast (setup.py) -filelock==3.20.0 \ - --hash=sha256:339b4732ffda5cd79b13f4e2711a31b0365ce445d95d243bb996273d072546a2 \ - --hash=sha256:711e943b4ec6be42e1d4e6690b48dc175c822967466bb31c0c293f34334c13f4 +filelock==3.20.1 \ + --hash=sha256:15d9e9a67306188a44baa72f569d2bfd803076269365fdea0934385da4dc361a \ + --hash=sha256:b8360948b351b80f420878d8516519a2204b07aefcdcfd24912a5d33127f188c # via snowflake-connector-python frozenlist==1.8.0 \ --hash=sha256:0325024fe97f94c41c08872db482cf8ac4800d80e79222c6b0b7b162d5b13686 \ @@ -703,9 +703,9 @@ google-api-core[grpc]==2.28.1 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.43.0 \ - --hash=sha256:88228eee5fc21b62a1b5fe773ca15e67778cb07dc8363adcb4a8827b52d81483 \ - --hash=sha256:af628ba6fa493f75c7e9dbe9373d148ca9f4399b5ea29976519e0a3848eddd16 +google-auth==2.45.0 \ + --hash=sha256:82344e86dc00410ef5382d99be677c6043d72e502b625aa4f4afa0bdacca0f36 \ + --hash=sha256:90d3f41b6b72ea72dd9811e765699ee491ab24139f34ebf1ca2b9cc0c38708f3 # via # google-api-core # google-auth-oauthlib @@ -724,19 +724,19 @@ google-auth-oauthlib==1.2.2 \ # via # pandas-gbq # pydata-google-auth -google-cloud-bigquery[pandas]==3.38.0 \ - --hash=sha256:8afcb7116f5eac849097a344eb8bfda78b7cfaae128e60e019193dd483873520 \ - --hash=sha256:e06e93ff7b245b239945ef59cb59616057598d369edac457ebf292bd61984da6 +google-cloud-bigquery[pandas]==3.39.0 \ + --hash=sha256:cb375e1d63dea9bd5bf735e66024338f294159d43afdf63e1d023f5fcbbf55ea \ + --hash=sha256:dc7a64921465859105461b43c42562e38e797d7a73feb72b3cfc4865b7b1c5ef # via # feast (setup.py) # pandas-gbq -google-cloud-bigquery-storage==2.35.0 \ - --hash=sha256:c9bab6b8e41d6cb9806e589e65f320c89ada84f466e61566b7208d87924c1430 \ - --hash=sha256:f2e3a08882155de1e9ec53c71c5784eb1f25dc6514c535f5796c3c9eeac17d17 +google-cloud-bigquery-storage==2.36.0 \ + --hash=sha256:1769e568070db672302771d2aec18341de10712aa9c4a8c549f417503e0149f0 \ + --hash=sha256:d3c1ce9d2d3a4d7116259889dcbe3c7c70506f71f6ce6bbe54aa0a68bbba8f8f # via feast (setup.py) -google-cloud-bigtable==2.34.0 \ - --hash=sha256:773258b00cd3f9a3a35639cc38bd711f4f1418aaa0c8d70cb028978ed98dc2c2 \ - --hash=sha256:a4a8db4903840cd3f89fb19c060eea2e7c09c1265cb0538cfc11288dbc6000e4 +google-cloud-bigtable==2.35.0 \ + --hash=sha256:f355bfce1f239453ec2bb3839b0f4f9937cf34ef06ef29e1ca63d58fd38d0c50 \ + --hash=sha256:f5699012c5fea4bd4bdf7e80e5e3a812a847eb8f41bf8dc2f43095d6d876b83b # via feast (setup.py) google-cloud-core==2.5.0 \ --hash=sha256:67d977b41ae6c7211ee830c7912e41003ea8194bff15ae7d72fd6f51e57acabc \ @@ -746,49 +746,48 @@ google-cloud-core==2.5.0 \ # google-cloud-bigtable # google-cloud-datastore # google-cloud-storage -google-cloud-datastore==2.21.0 \ - --hash=sha256:eee454dd4a55f5b327f9f344928ff1a09a6f77c23d5e3d908ad31a13cc2f4073 \ - --hash=sha256:f303f27cd1983383f20bd227019cd8a7897419e0ec6b878367c58c66245f9d9b +google-cloud-datastore==2.23.0 \ + --hash=sha256:24a1b1d29b902148fe41b109699f76fd3aa60591e9d547c0f8b87d7bf9ff213f \ + --hash=sha256:80049883a4ae928fdcc661ba6803ec267665dc0e6f3ce2da91441079a6bb6387 # via feast (setup.py) google-cloud-storage==2.19.0 \ --hash=sha256:aeb971b5c29cf8ab98445082cbfe7b161a1f48ed275822f59ed3f1524ea54fba \ --hash=sha256:cd05e9e7191ba6cb68934d8eb76054d9be4562aa89dbc4236feee4d7d51342b2 # via feast (setup.py) -google-crc32c==1.7.1 \ - --hash=sha256:0f99eaa09a9a7e642a61e06742856eec8b19fc0037832e03f941fe7cf0c8e4db \ - --hash=sha256:19eafa0e4af11b0a4eb3974483d55d2d77ad1911e6cf6f832e1574f6781fd337 \ - --hash=sha256:1c67ca0a1f5b56162951a9dae987988679a7db682d6f97ce0f6381ebf0fbea4c \ - --hash=sha256:1f2b3522222746fff0e04a9bd0a23ea003ba3cccc8cf21385c564deb1f223242 \ - --hash=sha256:22beacf83baaf59f9d3ab2bbb4db0fb018da8e5aebdce07ef9f09fce8220285e \ - --hash=sha256:2bff2305f98846f3e825dbeec9ee406f89da7962accdb29356e4eadc251bd472 \ - --hash=sha256:2d73a68a653c57281401871dd4aeebbb6af3191dcac751a76ce430df4d403194 \ - --hash=sha256:32d1da0d74ec5634a05f53ef7df18fc646666a25efaaca9fc7dcfd4caf1d98c3 \ - --hash=sha256:3bda0fcb632d390e3ea8b6b07bf6b4f4a66c9d02dcd6fbf7ba00a197c143f582 \ - --hash=sha256:6335de12921f06e1f774d0dd1fbea6bf610abe0887a1638f64d694013138be5d \ - --hash=sha256:6b211ddaf20f7ebeec5c333448582c224a7c90a9d98826fbab82c0ddc11348e6 \ - --hash=sha256:6efb97eb4369d52593ad6f75e7e10d053cf00c48983f7a973105bc70b0ac4d82 \ - --hash=sha256:6fbab4b935989e2c3610371963ba1b86afb09537fd0c633049be82afe153ac06 \ - --hash=sha256:713121af19f1a617054c41f952294764e0c5443d5a5d9034b2cd60f5dd7e0349 \ - --hash=sha256:754561c6c66e89d55754106739e22fdaa93fafa8da7221b29c8b8e8270c6ec8a \ - --hash=sha256:7cc81b3a2fbd932a4313eb53cc7d9dde424088ca3a0337160f35d91826880c1d \ - --hash=sha256:85fef7fae11494e747c9fd1359a527e5970fc9603c90764843caabd3a16a0a48 \ - --hash=sha256:905a385140bf492ac300026717af339790921f411c0dfd9aa5a9e69a08ed32eb \ - --hash=sha256:9fc196f0b8d8bd2789352c6a522db03f89e83a0ed6b64315923c396d7a932315 \ - --hash=sha256:a8e9afc74168b0b2232fb32dd202c93e46b7d5e4bf03e66ba5dc273bb3559589 \ - --hash=sha256:b07d48faf8292b4db7c3d64ab86f950c2e94e93a11fd47271c28ba458e4a0d76 \ - --hash=sha256:b6d86616faaea68101195c6bdc40c494e4d76f41e07a37ffdef270879c15fb65 \ - --hash=sha256:b7491bdc0c7564fcf48c0179d2048ab2f7c7ba36b84ccd3a3e1c3f7a72d3bba6 \ - --hash=sha256:bb5e35dcd8552f76eed9461a23de1030920a3c953c1982f324be8f97946e7127 \ - --hash=sha256:d68e17bad8f7dd9a49181a1f5a8f4b251c6dbc8cc96fb79f1d321dfd57d66f53 \ - --hash=sha256:dcdf5a64adb747610140572ed18d011896e3b9ae5195f2514b7ff678c80f1603 \ - --hash=sha256:df8b38bdaf1629d62d51be8bdd04888f37c451564c2042d36e5812da9eff3c35 \ - --hash=sha256:e10554d4abc5238823112c2ad7e4560f96c7bf3820b202660373d769d9e6e4c9 \ - --hash=sha256:e42e20a83a29aa2709a0cf271c7f8aefaa23b7ab52e53b322585297bb94d4638 \ - --hash=sha256:ed66cbe1ed9cbaaad9392b5259b3eba4a9e565420d734e6238813c428c3336c9 \ - --hash=sha256:ee6547b657621b6cbed3562ea7826c3e11cab01cd33b74e1f677690652883e77 \ - --hash=sha256:f2226b6a8da04f1d9e61d3e357f2460b9551c5e6950071437e122c958a18ae14 \ - --hash=sha256:fa8136cc14dd27f34a3221c0f16fd42d8a40e4778273e61a3c19aedaa44daf6b \ - --hash=sha256:fc5319db92daa516b653600794d5b9f9439a9a121f3e162f94b0e1891c7933cb +google-crc32c==1.8.0 \ + --hash=sha256:014a7e68d623e9a4222d663931febc3033c5c7c9730785727de2a81f87d5bab8 \ + --hash=sha256:01f126a5cfddc378290de52095e2c7052be2ba7656a9f0caf4bcd1bfb1833f8a \ + --hash=sha256:0470b8c3d73b5f4e3300165498e4cf25221c7eb37f1159e221d1825b6df8a7ff \ + --hash=sha256:119fcd90c57c89f30040b47c211acee231b25a45d225e3225294386f5d258288 \ + --hash=sha256:14f87e04d613dfa218d6135e81b78272c3b904e2a7053b841481b38a7d901411 \ + --hash=sha256:17446feb05abddc187e5441a45971b8394ea4c1b6efd88ab0af393fd9e0a156a \ + --hash=sha256:19b40d637a54cb71e0829179f6cb41835f0fbd9e8eb60552152a8b52c36cbe15 \ + --hash=sha256:2a3dc3318507de089c5384cc74d54318401410f82aa65b2d9cdde9d297aca7cb \ + --hash=sha256:3b9776774b24ba76831609ffbabce8cdf6fa2bd5e9df37b594221c7e333a81fa \ + --hash=sha256:3cc0c8912038065eafa603b238abf252e204accab2a704c63b9e14837a854962 \ + --hash=sha256:3d488e98b18809f5e322978d4506373599c0c13e6c5ad13e53bb44758e18d215 \ + --hash=sha256:3ebb04528e83b2634857f43f9bb8ef5b2bbe7f10f140daeb01b58f972d04736b \ + --hash=sha256:450dc98429d3e33ed2926fc99ee81001928d63460f8538f21a5d6060912a8e27 \ + --hash=sha256:4b8286b659c1335172e39563ab0a768b8015e88e08329fa5321f774275fc3113 \ + --hash=sha256:57a50a9035b75643996fbf224d6661e386c7162d1dfdab9bc4ca790947d1007f \ + --hash=sha256:61f58b28e0b21fcb249a8247ad0db2e64114e201e2e9b4200af020f3b6242c9f \ + --hash=sha256:6f35aaffc8ccd81ba3162443fabb920e65b1f20ab1952a31b13173a67811467d \ + --hash=sha256:71734788a88f551fbd6a97be9668a0020698e07b2bf5b3aa26a36c10cdfb27b2 \ + --hash=sha256:864abafe7d6e2c4c66395c1eb0fe12dc891879769b52a3d56499612ca93b6092 \ + --hash=sha256:86cfc00fe45a0ac7359e5214a1704e51a99e757d0272554874f419f79838c5f7 \ + --hash=sha256:87b0072c4ecc9505cfa16ee734b00cd7721d20a0f595be4d40d3d21b41f65ae2 \ + --hash=sha256:87fa445064e7db928226b2e6f0d5304ab4cd0339e664a4e9a25029f384d9bb93 \ + --hash=sha256:89c17d53d75562edfff86679244830599ee0a48efc216200691de8b02ab6b2b8 \ + --hash=sha256:8b3f68782f3cbd1bce027e48768293072813469af6a61a86f6bb4977a4380f21 \ + --hash=sha256:a428e25fb7691024de47fecfbff7ff957214da51eddded0da0ae0e0f03a2cf79 \ + --hash=sha256:b0d1a7afc6e8e4635564ba8aa5c0548e3173e41b6384d7711a9123165f582de2 \ + --hash=sha256:ba6aba18daf4d36ad4412feede6221414692f44d17e5428bdd81ad3fc1eee5dc \ + --hash=sha256:cb5c869c2923d56cb0c8e6bcdd73c009c36ae39b652dbe46a05eb4ef0ad01454 \ + --hash=sha256:d511b3153e7011a27ab6ee6bb3a5404a55b994dc1a7322c0b87b29606d9790e2 \ + --hash=sha256:db3fe8eaf0612fc8b20fa21a5f25bd785bc3cd5be69f8f3412b0ac2ffd49e733 \ + --hash=sha256:e6584b12cb06796d285d09e33f63309a09368b9d806a551d8036a4207ea43697 \ + --hash=sha256:f4b51844ef67d6cf2e9425983274da75f18b1597bb2c998e1c0a0e8d46f8f651 \ + --hash=sha256:f639065ea2042d5c034bf258a9f085eaa7af0cd250667c0635a3118e8f92c69c # via # google-cloud-bigtable # google-cloud-storage @@ -871,6 +870,7 @@ grpcio==1.62.3 \ # google-api-core # google-cloud-bigquery # google-cloud-bigquery-storage + # google-cloud-datastore # googleapis-common-protos # grpc-google-iam-v1 # grpcio-health-checking @@ -1094,83 +1094,83 @@ kubernetes==33.1.0 \ --hash=sha256:544de42b24b64287f7e0aa9513c93cb503f7f40eea39b20f66810011a86eabc5 \ --hash=sha256:f64d829843a54c251061a8e7a14523b521f2dc5c896cf6d65ccf348648a88993 # via feast (setup.py) -librt==0.7.3 \ - --hash=sha256:020c6db391268bcc8ce75105cb572df8cb659a43fd347366aaa407c366e5117a \ - --hash=sha256:0fa9ac2e49a6bee56e47573a6786cb635e128a7b12a0dc7851090037c0d397a3 \ - --hash=sha256:11ad45122bbed42cfc8b0597450660126ef28fd2d9ae1a219bc5af8406f95678 \ - --hash=sha256:120dd21d46ff875e849f1aae19346223cf15656be489242fe884036b23d39e93 \ - --hash=sha256:14569ac5dd38cfccf0a14597a88038fb16811a6fede25c67b79c6d50fc2c8fdc \ - --hash=sha256:1617bea5ab31266e152871208502ee943cb349c224846928a1173c864261375e \ - --hash=sha256:170cdb8436188347af17bf9cccf3249ba581c933ed56d926497119d4cf730cec \ - --hash=sha256:1975eda520957c6e0eb52d12968dd3609ffb7eef05d4223d097893d6daf1d8a7 \ - --hash=sha256:1fe603877e1865b5fd047a5e40379509a4a60204aa7aa0f72b16f7a41c3f0712 \ - --hash=sha256:24d70810f6e2ea853ff79338001533716b373cc0f63e2a0be5bc96129edb5fb5 \ - --hash=sha256:256793988bff98040de23c57cf36e1f4c2f2dc3dcd17537cdac031d3b681db71 \ - --hash=sha256:25711f364c64cab2c910a0247e90b51421e45dbc8910ceeb4eac97a9e132fc6f \ - --hash=sha256:2682162855a708e3270eba4b92026b93f8257c3e65278b456c77631faf0f4f7a \ - --hash=sha256:2cf9d73499486ce39eebbff5f42452518cc1f88d8b7ea4a711ab32962b176ee2 \ - --hash=sha256:2e40520c37926166c24d0c2e0f3bc3a5f46646c34bdf7b4ea9747c297d6ee809 \ - --hash=sha256:2e980cf1ed1a2420a6424e2ed884629cdead291686f1048810a817de07b5eb18 \ - --hash=sha256:2f03484b54bf4ae80ab2e504a8d99d20d551bfe64a7ec91e218010b467d77093 \ - --hash=sha256:35f1609e3484a649bb80431310ddbec81114cd86648f1d9482bc72a3b86ded2e \ - --hash=sha256:399938edbd3d78339f797d685142dd8a623dfaded023cf451033c85955e4838a \ - --hash=sha256:399bbd7bcc1633c3e356ae274a1deb8781c7bf84d9c7962cc1ae0c6e87837292 \ - --hash=sha256:3ec50cf65235ff5c02c5b747748d9222e564ad48597122a361269dd3aa808798 \ - --hash=sha256:3edbf257c40d21a42615e9e332a6b10a8bacaaf58250aed8552a14a70efd0d65 \ - --hash=sha256:440c788f707c061d237c1e83edf6164ff19f5c0f823a3bf054e88804ebf971ec \ - --hash=sha256:44b3689b040df57f492e02cd4f0bacd1b42c5400e4b8048160c9d5e866de8abe \ - --hash=sha256:4887c29cadbdc50640179e3861c276325ff2986791e6044f73136e6e798ff806 \ - --hash=sha256:5460d99ed30f043595bbdc888f542bad2caeb6226b01c33cda3ae444e8f82d42 \ - --hash=sha256:550fdbfbf5bba6a2960b27376ca76d6aaa2bd4b1a06c4255edd8520c306fcfc0 \ - --hash=sha256:56f2a47beda8409061bc1c865bef2d4bd9ff9255219402c0817e68ab5ad89aed \ - --hash=sha256:572a24fc5958c61431da456a0ef1eeea6b4989d81eeb18b8e5f1f3077592200b \ - --hash=sha256:59cb0470612d21fa1efddfa0dd710756b50d9c7fb6c1236bbf8ef8529331dc70 \ - --hash=sha256:6038ccbd5968325a5d6fd393cf6e00b622a8de545f0994b89dd0f748dcf3e19e \ - --hash=sha256:6488e69d408b492e08bfb68f20c4a899a354b4386a446ecd490baff8d0862720 \ - --hash=sha256:687403cced6a29590e6be6964463835315905221d797bc5c934a98750fe1a9af \ - --hash=sha256:6b407c23f16ccc36614c136251d6b32bf30de7a57f8e782378f1107be008ddb0 \ - --hash=sha256:6b4e7bff1d76dd2b46443078519dc75df1b5e01562345f0bb740cea5266d8218 \ - --hash=sha256:6bdd9adfca615903578d2060ee8a6eb1c24eaf54919ff0ddc820118e5718931b \ - --hash=sha256:6eb9295c730e26b849ed1f4022735f36863eb46b14b6e10604c1c39b8b5efaea \ - --hash=sha256:703456146dc2bf430f7832fd1341adac5c893ec3c1430194fdcefba00012555c \ - --hash=sha256:754a0d09997095ad764ccef050dd5bf26cbf457aab9effcba5890dad081d879e \ - --hash=sha256:7af7785f5edd1f418da09a8cdb9ec84b0213e23d597413e06525340bcce1ea4f \ - --hash=sha256:7b29e97273bd6999e2bfe9fe3531b1f4f64effd28327bced048a33e49b99674a \ - --hash=sha256:7b4f57f7a0c65821c5441d98c47ff7c01d359b1e12328219709bdd97fdd37f90 \ - --hash=sha256:8837d5a52a2d7aa9f4c3220a8484013aed1d8ad75240d9a75ede63709ef89055 \ - --hash=sha256:8ccadf260bb46a61b9c7e89e2218f6efea9f3eeaaab4e3d1f58571890e54858e \ - --hash=sha256:8d8cf653e798ee4c4e654062b633db36984a1572f68c3aa25e364a0ddfbbb910 \ - --hash=sha256:93b2a1f325fefa1482516ced160c8c7b4b8d53226763fa6c93d151fa25164207 \ - --hash=sha256:9f0e0927efe87cd42ad600628e595a1a0aa1c64f6d0b55f7e6059079a428641a \ - --hash=sha256:a59a69deeb458c858b8fea6acf9e2acd5d755d76cd81a655256bc65c20dfff5b \ - --hash=sha256:a9f9b661f82693eb56beb0605156c7fca57f535704ab91837405913417d6990b \ - --hash=sha256:abfc57cab3c53c4546aee31859ef06753bfc136c9d208129bad23e2eca39155a \ - --hash=sha256:aca73d70c3f553552ba9133d4a09e767dcfeee352d8d8d3eb3f77e38a3beb3ed \ - --hash=sha256:adeaa886d607fb02563c1f625cf2ee58778a2567c0c109378da8f17ec3076ad7 \ - --hash=sha256:b278a9248a4e3260fee3db7613772ca9ab6763a129d6d6f29555e2f9b168216d \ - --hash=sha256:b7c1239b64b70be7759554ad1a86288220bbb04d68518b527783c4ad3fb4f80b \ - --hash=sha256:bf8c7735fbfc0754111f00edda35cf9e98a8d478de6c47b04eaa9cef4300eaa7 \ - --hash=sha256:c634a0a6db395fdaba0361aa78395597ee72c3aad651b9a307a3a7eaf5efd67e \ - --hash=sha256:cad9971881e4fec00d96af7eaf4b63aa7a595696fc221808b0d3ce7ca9743258 \ - --hash=sha256:cbdb3f337c88b43c3b49ca377731912c101178be91cb5071aac48faa898e6f8e \ - --hash=sha256:cd8551aa21df6c60baa2624fd086ae7486bdde00c44097b32e1d1b1966e365e0 \ - --hash=sha256:d09f677693328503c9e492e33e9601464297c01f9ebd966ea8fc5308f3069bfd \ - --hash=sha256:d376a35c6561e81d2590506804b428fc1075fcc6298fc5bb49b771534c0ba010 \ - --hash=sha256:d39079379a9a28e74f4d57dc6357fa310a1977b51ff12239d7271ec7e71d67f5 \ - --hash=sha256:d86f94743a11873317094326456b23f8a5788bad9161fd2f0e52088c33564620 \ - --hash=sha256:d91e60ac44bbe3a77a67af4a4c13114cbe9f6d540337ce22f2c9eaf7454ca71f \ - --hash=sha256:d9883b2d819ce83f87ba82a746c81d14ada78784db431e57cc9719179847376e \ - --hash=sha256:e094e445c37c57e9ec612847812c301840239d34ccc5d153a982fa9814478c60 \ - --hash=sha256:e19acfde38cb532a560b98f473adc741c941b7a9bc90f7294bc273d08becb58b \ - --hash=sha256:e32d43610dff472eab939f4d7fbdd240d1667794192690433672ae22d7af8445 \ - --hash=sha256:ed028fc3d41adda916320712838aec289956c89b4f0a361ceadf83a53b4c047a \ - --hash=sha256:ef59c938f72bdbc6ab52dc50f81d0637fde0f194b02d636987cea2ab30f8f55a \ - --hash=sha256:f3d4801db8354436fd3936531e7f0e4feb411f62433a6b6cb32bb416e20b529f \ - --hash=sha256:f57aca20e637750a2c18d979f7096e2c2033cc40cf7ed201494318de1182f135 \ - --hash=sha256:f9da128d0edf990cf0d2ca011b02cd6f639e79286774bd5b0351245cbb5a6e51 \ - --hash=sha256:fbd7351d43b80d9c64c3cfcb50008f786cc82cba0450e8599fdd64f264320bd3 \ - --hash=sha256:fcb72249ac4ea81a7baefcbff74df7029c3cb1cf01a711113fa052d563639c9c \ - --hash=sha256:ff21c554304e8226bf80c3a7754be27c6c3549a9fec563a03c06ee8f494da8fc +librt==0.7.5 \ + --hash=sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee \ + --hash=sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1 \ + --hash=sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4 \ + --hash=sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899 \ + --hash=sha256:0e2bf8f91093fac43e3eaebacf777f12fd539dce9ec5af3efc6d8424e96ccd49 \ + --hash=sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d \ + --hash=sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760 \ + --hash=sha256:191cbd42660446d67cf7a95ac7bfa60f49b8b3b0417c64f216284a1d86fc9335 \ + --hash=sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8 \ + --hash=sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2 \ + --hash=sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec \ + --hash=sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b \ + --hash=sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0 \ + --hash=sha256:39183abee670bc37b85f11e86c44a9cad1ed6efa48b580083e89ecee13dd9717 \ + --hash=sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325 \ + --hash=sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45 \ + --hash=sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d \ + --hash=sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233 \ + --hash=sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d \ + --hash=sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544 \ + --hash=sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802 \ + --hash=sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2 \ + --hash=sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d \ + --hash=sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f \ + --hash=sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169 \ + --hash=sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe \ + --hash=sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982 \ + --hash=sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2 \ + --hash=sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa \ + --hash=sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4 \ + --hash=sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4 \ + --hash=sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57 \ + --hash=sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26 \ + --hash=sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361 \ + --hash=sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad \ + --hash=sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e \ + --hash=sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf \ + --hash=sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f \ + --hash=sha256:8dcae24de1bc9da93aa689cb6313c70e776d7cea2fcf26b9b6160fedfe6bd9af \ + --hash=sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2 \ + --hash=sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89 \ + --hash=sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904 \ + --hash=sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6 \ + --hash=sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276 \ + --hash=sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e \ + --hash=sha256:a9eacbf983319b26b5f340a2e0cd47ac1ee4725a7f3a72fd0f15063c934b69d6 \ + --hash=sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409 \ + --hash=sha256:af69d9e159575e877c7546d1ee817b4ae089aa221dd1117e20c24ad8dc8659c7 \ + --hash=sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a \ + --hash=sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4 \ + --hash=sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775 \ + --hash=sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203 \ + --hash=sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419 \ + --hash=sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5 \ + --hash=sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023 \ + --hash=sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b \ + --hash=sha256:cdb001a1a0e4f41e613bca2c0fc147fc8a7396f53fc94201cbfd8ec7cd69ca4b \ + --hash=sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d \ + --hash=sha256:d2cc7d187e8c6e9b7bdbefa9697ce897a704ea7a7ce844f2b4e0e2aa07ae51d3 \ + --hash=sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e \ + --hash=sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a \ + --hash=sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b \ + --hash=sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db \ + --hash=sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd \ + --hash=sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa \ + --hash=sha256:df2e210400b28e50994477ebf82f055698c79797b6ee47a1669d383ca33263e1 \ + --hash=sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805 \ + --hash=sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a \ + --hash=sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25 \ + --hash=sha256:ea1b60b86595a5dc1f57b44a801a1c4d8209c0a69518391d349973a4491408e6 \ + --hash=sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b \ + --hash=sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5 \ + --hash=sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416 \ + --hash=sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc \ + --hash=sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7 \ + --hash=sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96 # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ @@ -1271,9 +1271,9 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via jinja2 -mcp==1.23.3 \ - --hash=sha256:32768af4b46a1b4f7df34e2bfdf5c6011e7b63d7f1b0e321d0fdef4cd6082031 \ - --hash=sha256:b3b0da2cc949950ce1259c7bfc1b081905a51916fcd7c8182125b85e70825201 +mcp==1.25.0 \ + --hash=sha256:56310361ebf0364e2d438e5b45f7668cbb124e158bb358333cd06e49e83a6802 \ + --hash=sha256:b37c38144a666add0862614cc79ec276e97d72aa8ca26d622818d4e278b9721a # via fastapi-mcp mdurl==0.1.2 \ --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ @@ -1561,125 +1561,123 @@ multidict==6.7.0 \ # aiobotocore # aiohttp # yarl -mypy==1.19.0 \ - --hash=sha256:0c01c99d626380752e527d5ce8e69ffbba2046eb8a060db0329690849cf9b6f9 \ - --hash=sha256:0dde5cb375cb94deff0d4b548b993bec52859d1651e073d63a1386d392a95495 \ - --hash=sha256:0e3c3d1e1d62e678c339e7ade72746a9e0325de42cd2cccc51616c7b2ed1a018 \ - --hash=sha256:0ea4fd21bb48f0da49e6d3b37ef6bd7e8228b9fe41bbf4d80d9364d11adbd43c \ - --hash=sha256:0fb3115cb8fa7c5f887c8a8d81ccdcb94cff334684980d847e5a62e926910e1d \ - --hash=sha256:11f7254c15ab3f8ed68f8e8f5cbe88757848df793e31c36aaa4d4f9783fd08ab \ - --hash=sha256:120cffe120cca5c23c03c77f84abc0c14c5d2e03736f6c312480020082f1994b \ - --hash=sha256:16f76ff3f3fd8137aadf593cb4607d82634fca675e8211ad75c43d86033ee6c6 \ - --hash=sha256:1cf9c59398db1c68a134b0b5354a09a1e124523f00bacd68e553b8bd16ff3299 \ - --hash=sha256:318ba74f75899b0e78b847d8c50821e4c9637c79d9a59680fc1259f29338cb3e \ - --hash=sha256:3210d87b30e6af9c8faed61be2642fcbe60ef77cec64fa1ef810a630a4cf671c \ - --hash=sha256:34ec1ac66d31644f194b7c163d7f8b8434f1b49719d403a5d26c87fff7e913f7 \ - --hash=sha256:37af5166f9475872034b56c5efdcf65ee25394e9e1d172907b84577120714364 \ - --hash=sha256:3ad925b14a0bb99821ff6f734553294aa6a3440a8cb082fe1f5b84dfb662afb1 \ - --hash=sha256:510c014b722308c9bd377993bcbf9a07d7e0692e5fa8fc70e639c1eb19fc6bee \ - --hash=sha256:6016c52ab209919b46169651b362068f632efcd5eb8ef9d1735f6f86da7853b2 \ - --hash=sha256:6148ede033982a8c5ca1143de34c71836a09f105068aaa8b7d5edab2b053e6c8 \ - --hash=sha256:63ea6a00e4bd6822adbfc75b02ab3653a17c02c4347f5bb0cf1d5b9df3a05835 \ - --hash=sha256:7686ed65dbabd24d20066f3115018d2dce030d8fa9db01aa9f0a59b6813e9f9e \ - --hash=sha256:7a500ab5c444268a70565e374fc803972bfd1f09545b13418a5174e29883dab7 \ - --hash=sha256:8f44f2ae3c58421ee05fe609160343c25f70e3967f6e32792b5a78006a9d850f \ - --hash=sha256:a18d8abdda14035c5718acb748faec09571432811af129bf0d9e7b2d6699bf18 \ - --hash=sha256:a31e4c28e8ddb042c84c5e977e28a21195d086aaffaf08b016b78e19c9ef8106 \ - --hash=sha256:a9ac09e52bb0f7fb912f5d2a783345c72441a08ef56ce3e17c1752af36340a39 \ - --hash=sha256:b9d491295825182fba01b6ffe2c6fe4e5a49dbf4e2bb4d1217b6ced3b4797bc6 \ - --hash=sha256:c14a98bc63fd867530e8ec82f217dae29d0550c86e70debc9667fff1ec83284e \ - --hash=sha256:c3385246593ac2b97f155a0e9639be906e73534630f663747c71908dfbf26134 \ - --hash=sha256:cabbee74f29aa9cd3b444ec2f1e4fa5a9d0d746ce7567a6a609e224429781f53 \ - --hash=sha256:cb64b0ba5980466a0f3f9990d1c582bcab8db12e29815ecb57f1408d99b4bff7 \ - --hash=sha256:cf7d84f497f78b682edd407f14a7b6e1a2212b433eedb054e2081380b7395aa3 \ - --hash=sha256:e2c1101ab41d01303103ab6ef82cbbfedb81c1a060c868fa7cc013d573d37ab5 \ - --hash=sha256:f188dcf16483b3e59f9278c4ed939ec0254aa8a60e8fc100648d9ab5ee95a431 \ - --hash=sha256:f2e36bed3c6d9b5f35d28b63ca4b727cb0228e480826ffc8953d1892ddc8999d \ - --hash=sha256:f3e19e3b897562276bb331074d64c076dbdd3e79213f36eed4e592272dabd760 \ - --hash=sha256:f6b874ca77f733222641e5c46e4711648c4037ea13646fd0cdc814c2eaec2528 \ - --hash=sha256:f75e60aca3723a23511948539b0d7ed514dda194bc3755eae0bfc7a6b4887aa7 \ - --hash=sha256:fc51a5b864f73a3a182584b1ac75c404396a17eced54341629d8bdcb644a5bba \ - --hash=sha256:fd4a985b2e32f23bead72e2fb4bbe5d6aceee176be471243bd831d5b2644672d +mypy==1.19.1 \ + --hash=sha256:016f2246209095e8eda7538944daa1d60e1e8134d98983b9fc1e92c1fc0cb8dd \ + --hash=sha256:022ea7279374af1a5d78dfcab853fe6a536eebfda4b59deab53cd21f6cd9f00b \ + --hash=sha256:06e6170bd5836770e8104c8fdd58e5e725cfeb309f0a6c681a811f557e97eac1 \ + --hash=sha256:19d88bb05303fe63f71dd2c6270daca27cb9401c4ca8255fe50d1d920e0eb9ba \ + --hash=sha256:21761006a7f497cb0d4de3d8ef4ca70532256688b0523eee02baf9eec895e27b \ + --hash=sha256:28902ee51f12e0f19e1e16fbe2f8f06b6637f482c459dd393efddd0ec7f82045 \ + --hash=sha256:2899753e2f61e571b3971747e302d5f420c3fd09650e1951e99f823bc3089dac \ + --hash=sha256:2abb24cf3f17864770d18d673c85235ba52456b36a06b6afc1e07c1fdcd3d0e6 \ + --hash=sha256:34c81968774648ab5ac09c29a375fdede03ba253f8f8287847bd480782f73a6a \ + --hash=sha256:409088884802d511ee52ca067707b90c883426bd95514e8cfda8281dc2effe24 \ + --hash=sha256:481daf36a4c443332e2ae9c137dfee878fcea781a2e3f895d54bd3002a900957 \ + --hash=sha256:4b84a7a18f41e167f7995200a1d07a4a6810e89d29859df936f1c3923d263042 \ + --hash=sha256:4f28f99c824ecebcdaa2e55d82953e38ff60ee5ec938476796636b86afa3956e \ + --hash=sha256:5f05aa3d375b385734388e844bc01733bd33c644ab48e9684faa54e5389775ec \ + --hash=sha256:7bcfc336a03a1aaa26dfce9fff3e287a3ba99872a157561cbfcebe67c13308e3 \ + --hash=sha256:804bd67b8054a85447c8954215a906d6eff9cabeabe493fb6334b24f4bfff718 \ + --hash=sha256:8bb5c6f6d043655e055be9b542aa5f3bdd30e4f3589163e85f93f3640060509f \ + --hash=sha256:a009ffa5a621762d0c926a078c2d639104becab69e79538a494bcccb62cc0331 \ + --hash=sha256:a8174a03289288c1f6c46d55cef02379b478bfbc8e358e02047487cad44c6ca1 \ + --hash=sha256:ab43590f9cd5108f41aacf9fca31841142c786827a74ab7cc8a2eacb634e09a1 \ + --hash=sha256:b10e7c2cd7870ba4ad9b2d8a6102eb5ffc1f16ca35e3de6bfa390c1113029d13 \ + --hash=sha256:b13cfdd6c87fc3efb69ea4ec18ef79c74c3f98b4e5498ca9b85ab3b2c2329a67 \ + --hash=sha256:b64d987153888790bcdb03a6473d321820597ab8dd9243b27a92153c4fa50fd2 \ + --hash=sha256:b7951a701c07ea584c4fe327834b92a30825514c868b1f69c30445093fdd9d5a \ + --hash=sha256:bdb12f69bcc02700c2b47e070238f42cb87f18c0bc1fc4cdb4fb2bc5fd7a3b8b \ + --hash=sha256:c35d298c2c4bba75feb2195655dfea8124d855dfd7343bf8b8c055421eaf0cf8 \ + --hash=sha256:c608937067d2fc5a4dd1a5ce92fd9e1398691b8c5d012d66e1ddd430e9244376 \ + --hash=sha256:c9a6538e0415310aad77cb94004ca6482330fece18036b5f360b62c45814c4ef \ + --hash=sha256:d8dfc6ab58ca7dda47d9237349157500468e404b17213d44fc1cb77bce532288 \ + --hash=sha256:da4869fc5e7f62a88f3fe0b5c919d1d9f7ea3cef92d3689de2823fd27e40aa75 \ + --hash=sha256:de759aafbae8763283b2ee5869c7255391fbc4de3ff171f8f030b5ec48381b74 \ + --hash=sha256:e3157c7594ff2ef1634ee058aafc56a82db665c9438fd41b390f3bde1ab12250 \ + --hash=sha256:e3f276d8493c3c97930e354b2595a44a21348b320d859fb4a2b9f66da9ed27ab \ + --hash=sha256:ee4c11e460685c3e0c64a4c5de82ae143622410950d6be863303a1c4ba0e36d6 \ + --hash=sha256:f1235f5ea01b7db5468d53ece6aaddf1ad0b88d9e7462b86ef96fe04995d7247 \ + --hash=sha256:f7cee03c9a2e2ee26ec07479f38ea9c884e301d42c6d43a19d20fb014e3ba925 \ + --hash=sha256:f859fb09d9583a985be9a493d5cfc5515b56b08f7447759a0c5deaf68d80506e \ + --hash=sha256:ffcebe56eb09ff0c0885e750036a095e23793ba6c2e894e7e63f6d89ad51f22e # via sqlalchemy mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 # via mypy -numpy==2.3.5 \ - --hash=sha256:00dc4e846108a382c5869e77c6ed514394bdeb3403461d25a829711041217d5b \ - --hash=sha256:0472f11f6ec23a74a906a00b48a4dcf3849209696dff7c189714511268d103ae \ - --hash=sha256:04822c00b5fd0323c8166d66c701dc31b7fbd252c100acd708c48f763968d6a3 \ - --hash=sha256:052e8c42e0c49d2575621c158934920524f6c5da05a1d3b9bab5d8e259e045f0 \ - --hash=sha256:09a1bea522b25109bf8e6f3027bd810f7c1085c64a0c7ce050c1676ad0ba010b \ - --hash=sha256:0cd00b7b36e35398fa2d16af7b907b65304ef8bb4817a550e06e5012929830fa \ - --hash=sha256:0d8163f43acde9a73c2a33605353a4f1bc4798745a8b1d73183b28e5b435ae28 \ - --hash=sha256:1062fde1dcf469571705945b0f221b73928f34a20c904ffb45db101907c3454e \ - --hash=sha256:11e06aa0af8c0f05104d56450d6093ee639e15f24ecf62d417329d06e522e017 \ - --hash=sha256:17531366a2e3a9e30762c000f2c43a9aaa05728712e25c11ce1dbe700c53ad41 \ - --hash=sha256:1978155dd49972084bd6ef388d66ab70f0c323ddee6f693d539376498720fb7e \ - --hash=sha256:1ed1ec893cff7040a02c8aa1c8611b94d395590d553f6b53629a4461dc7f7b63 \ - --hash=sha256:2dcd0808a421a482a080f89859a18beb0b3d1e905b81e617a188bd80422d62e9 \ - --hash=sha256:2e2eb32ddb9ccb817d620ac1d8dae7c3f641c1e5f55f531a33e8ab97960a75b8 \ - --hash=sha256:2feae0d2c91d46e59fcd62784a3a83b3fb677fead592ce51b5a6fbb4f95965ff \ - --hash=sha256:3095bdb8dd297e5920b010e96134ed91d852d81d490e787beca7e35ae1d89cf7 \ - --hash=sha256:30bc11310e8153ca664b14c5f1b73e94bd0503681fcf136a163de856f3a50139 \ - --hash=sha256:3101e5177d114a593d79dd79658650fe28b5a0d8abeb8ce6f437c0e6df5be1a4 \ - --hash=sha256:396084a36abdb603546b119d96528c2f6263921c50df3c8fd7cb28873a237748 \ - --hash=sha256:3997b5b3c9a771e157f9aae01dd579ee35ad7109be18db0e85dbdbe1de06e952 \ - --hash=sha256:414802f3b97f3c1eef41e530aaba3b3c1620649871d8cb38c6eaff034c2e16bd \ - --hash=sha256:51c1e14eb1e154ebd80e860722f9e6ed6ec89714ad2db2d3aa33c31d7c12179b \ - --hash=sha256:51c55fe3451421f3a6ef9a9c1439e82101c57a2c9eab9feb196a62b1a10b58ce \ - --hash=sha256:5ee6609ac3604fa7780e30a03e5e241a7956f8e2fcfe547d51e3afa5247ac47f \ - --hash=sha256:612a95a17655e213502f60cfb9bf9408efdc9eb1d5f50535cc6eb365d11b42b5 \ - --hash=sha256:6203fdf9f3dc5bdaed7319ad8698e685c7a3be10819f41d32a0723e611733b42 \ - --hash=sha256:63c0e9e7eea69588479ebf4a8a270d5ac22763cc5854e9a7eae952a3908103f7 \ - --hash=sha256:66f85ce62c70b843bab1fb14a05d5737741e74e28c7b8b5a064de10142fad248 \ - --hash=sha256:6cf9b429b21df6b99f4dee7a1218b8b7ffbbe7df8764dc0bd60ce8a0708fed1e \ - --hash=sha256:70b37199913c1bd300ff6e2693316c6f869c7ee16378faf10e4f5e3275b299c3 \ - --hash=sha256:727fd05b57df37dc0bcf1a27767a3d9a78cbbc92822445f32cc3436ba797337b \ - --hash=sha256:74ae7b798248fe62021dbf3c914245ad45d1a6b0cb4a29ecb4b31d0bfbc4cc3e \ - --hash=sha256:784db1dcdab56bf0517743e746dfb0f885fc68d948aba86eeec2cba234bdf1c0 \ - --hash=sha256:86945f2ee6d10cdfd67bcb4069c1662dd711f7e2a4343db5cecec06b87cf31aa \ - --hash=sha256:86d835afea1eaa143012a2d7a3f45a3adce2d7adc8b4961f0b362214d800846a \ - --hash=sha256:872a5cf366aec6bb1147336480fef14c9164b154aeb6542327de4970282cd2f5 \ - --hash=sha256:8b973c57ff8e184109db042c842423ff4f60446239bd585a5131cc47f06f789d \ - --hash=sha256:8cba086a43d54ca804ce711b2a940b16e452807acebe7852ff327f1ecd49b0d4 \ - --hash=sha256:8f7f0e05112916223d3f438f293abf0727e1181b5983f413dfa2fefc4098245c \ - --hash=sha256:900218e456384ea676e24ea6a0417f030a3b07306d29d7ad843957b40a9d8d52 \ - --hash=sha256:93eebbcf1aafdf7e2ddd44c2923e2672e1010bddc014138b229e49725b4d6be5 \ - --hash=sha256:9c75442b2209b8470d6d5d8b1c25714270686f14c749028d2199c54e29f20b4d \ - --hash=sha256:9ee2197ef8c4f0dfe405d835f3b6a14f5fee7782b5de51ba06fb65fc9b36e9f1 \ - --hash=sha256:a414504bef8945eae5f2d7cb7be2d4af77c5d1cb5e20b296c2c25b61dff2900c \ - --hash=sha256:a4b9159734b326535f4dd01d947f919c6eefd2d9827466a696c44ced82dfbc18 \ - --hash=sha256:a80afd79f45f3c4a7d341f13acbe058d1ca8ac017c165d3fa0d3de6bc1a079d7 \ - --hash=sha256:aa5bc7c5d59d831d9773d1170acac7893ce3a5e130540605770ade83280e7188 \ - --hash=sha256:acfd89508504a19ed06ef963ad544ec6664518c863436306153e13e94605c218 \ - --hash=sha256:aeffcab3d4b43712bb7a60b65f6044d444e75e563ff6180af8f98dd4b905dfd2 \ - --hash=sha256:afaffc4393205524af9dfa400fa250143a6c3bc646c08c9f5e25a9f4b4d6a903 \ - --hash=sha256:b0c7088a73aef3d687c4deef8452a3ac7c1be4e29ed8bf3b366c8111128ac60c \ - --hash=sha256:b46b4ec24f7293f23adcd2d146960559aaf8020213de8ad1909dba6c013bf89c \ - --hash=sha256:b501b5fa195cc9e24fe102f21ec0a44dffc231d2af79950b451e0d99cea02234 \ - --hash=sha256:bf06bc2af43fa8d32d30fae16ad965663e966b1a3202ed407b84c989c3221e82 \ - --hash=sha256:c804e3a5aba5460c73955c955bdbd5c08c354954e9270a2c1565f62e866bdc39 \ - --hash=sha256:c8a9958e88b65c3b27e22ca2a076311636850b612d6bbfb76e8d156aacde2aaf \ - --hash=sha256:cc0a57f895b96ec78969c34f682c602bf8da1a0270b09bc65673df2e7638ec20 \ - --hash=sha256:cc8920d2ec5fa99875b670bb86ddeb21e295cb07aa331810d9e486e0b969d946 \ - --hash=sha256:ccc933afd4d20aad3c00bcef049cb40049f7f196e0397f1109dba6fed63267b0 \ - --hash=sha256:ce581db493ea1a96c0556360ede6607496e8bf9b3a8efa66e06477267bc831e9 \ - --hash=sha256:d0f23b44f57077c1ede8c5f26b30f706498b4862d3ff0a7298b8411dd2f043ff \ - --hash=sha256:d21644de1b609825ede2f48be98dfde4656aefc713654eeee280e37cadc4e0ad \ - --hash=sha256:d6889ec4ec662a1a37eb4b4fb26b6100841804dac55bd9df579e326cdc146227 \ - --hash=sha256:de5672f4a7b200c15a4127042170a694d4df43c992948f5e1af57f0174beed10 \ - --hash=sha256:e6a0bc88393d65807d751a614207b7129a310ca4fe76a74e5c7da5fa5671417e \ - --hash=sha256:ed89927b86296067b4f81f108a2271d8926467a8868e554eaf370fc27fa3ccaf \ - --hash=sha256:ee3888d9ff7c14604052b2ca5535a30216aa0a58e948cdd3eeb8d3415f638769 \ - --hash=sha256:f0963b55cdd70fad460fa4c1341f12f976bb26cb66021a5580329bd498988310 \ - --hash=sha256:f16417ec91f12f814b10bafe79ef77e70113a2f5f7018640e7425ff979253425 \ - --hash=sha256:f28620fe26bee16243be2b7b874da327312240a7cdc38b769a697578d2100013 \ - --hash=sha256:f4255143f5160d0de972d28c8f9665d882b5f61309d8362fdd3e103cf7bf010c \ - --hash=sha256:ffac52f28a7849ad7576293c0cb7b9f08304e8f7d738a8cb8a90ec4c55a998eb \ - --hash=sha256:ffe22d2b05504f786c867c8395de703937f934272eb67586817b46188b4ded6d \ - --hash=sha256:fffe29a1ef00883599d1dc2c51aa2e5d80afe49523c261a74933df395c15c520 +numpy==2.4.0 \ + --hash=sha256:009bd0ea12d3c784b6639a8457537016ce5172109e585338e11334f6a7bb88ee \ + --hash=sha256:02a2038eb27f9443a8b266a66911e926566b5a6ffd1a689b588f7f35b81e7dc3 \ + --hash=sha256:0804a8e4ab070d1d35496e65ffd3cf8114c136a2b81f61dfab0de4b218aacfd5 \ + --hash=sha256:0feafc9e03128074689183031181fac0897ff169692d8492066e949041096548 \ + --hash=sha256:1889b3a3f47a7b5bee16bc25a2145bd7cb91897f815ce3499db64c7458b6d91d \ + --hash=sha256:1d8f9fde5f6dc1b6fc34df8162f3b3079365468703fee7f31d4e0cc8c63baed9 \ + --hash=sha256:1ee32359fb7543b7b7bd0b2f46294db27e29e7bbdf70541e81b190836cd83ded \ + --hash=sha256:20c115517513831860c573996e395707aa9fb691eb179200125c250e895fcd93 \ + --hash=sha256:21555da4ec4a0c942520ead42c3b0dc9477441e085c42b0fbdd6a084869a6f6b \ + --hash=sha256:23a3e9d1a6f360267e8fbb38ba5db355a6a7e9be71d7fce7ab3125e88bb646c8 \ + --hash=sha256:2a8b6bb8369abefb8bd1801b054ad50e02b3275c8614dc6e5b0373c305291037 \ + --hash=sha256:2e284ca13d5a8367e43734148622caf0b261b275673823593e3e3634a6490f83 \ + --hash=sha256:2f585f52b2baf07ff3356158d9268ea095e221371f1074fadea2f42544d58b4d \ + --hash=sha256:316b2f2584682318539f0bcaca5a496ce9ca78c88066579ebd11fd06f8e4741e \ + --hash=sha256:32ed06d0fe9cae27d8fb5f400c63ccee72370599c75e683a6358dd3a4fb50aaf \ + --hash=sha256:355354388cba60f2132df297e2d53053d4063f79077b67b481d21276d61fc4df \ + --hash=sha256:35ddc8f4914466e6fc954c76527aa91aa763682a4f6d73249ef20b418fe6effb \ + --hash=sha256:36667db4d6c1cea79c8930ab72fadfb4060feb4bfe724141cd4bd064d2e5f8ce \ + --hash=sha256:36cbfb13c152b1c7c184ddac43765db8ad672567e7bafff2cc755a09917ed2e6 \ + --hash=sha256:39699233bc72dd482da1415dcb06076e32f60eddc796a796c5fb6c5efce94667 \ + --hash=sha256:39b19251dec4de8ff8496cd0806cbe27bf0684f765abb1f4809554de93785f2d \ + --hash=sha256:3d857f55e7fdf7c38ab96c4558c95b97d1c685be6b05c249f5fdafcbd6f9899e \ + --hash=sha256:3de19cfecd1465d0dcf8a5b5ea8b3155b42ed0b639dba4b71e323d74f2a3be5e \ + --hash=sha256:3f3096405acc48887458bbf9f6814d43785ac7ba2a57ea6442b581dedbc60ce6 \ + --hash=sha256:40483b2f2d3ba7aad426443767ff5632ec3156ef09742b96913787d13c336471 \ + --hash=sha256:413aa561266a4be2d06cd2b9665e89d9f54c543f418773076a76adcf2af08bc7 \ + --hash=sha256:44aba2f0cafd287871a495fb3163408b0bd25bbce135c6f621534a07f4f7875c \ + --hash=sha256:49ff32b09f5aa0cd30a20c2b39db3e669c845589f2b7fc910365210887e39344 \ + --hash=sha256:4d1cfce39e511069b11e67cd0bd78ceff31443b7c9e5c04db73c7a19f572967c \ + --hash=sha256:57c540ed8fb1f05cb997c6761cd56db72395b0d6985e90571ff660452ade4f98 \ + --hash=sha256:5f48cb3e88fbc294dc90e215d86fbaf1c852c63dbdb6c3a3e63f45c4b57f7344 \ + --hash=sha256:5fe44e277225fd3dff6882d86d3d447205d43532c3627313d17e754fb3905a0e \ + --hash=sha256:60e8c196cd82cbbd4f130b5290007e13e6de3eca79f0d4d38014769d96a7c475 \ + --hash=sha256:65167da969cd1ec3a1df31cb221ca3a19a8aaa25370ecb17d428415e93c1935e \ + --hash=sha256:680060061adb2d74ce352628cb798cfdec399068aa7f07ba9fb818b2b3305f98 \ + --hash=sha256:6bbaebf0d11567fa8926215ae731e1d58e6ec28a8a25235b8a47405d301332db \ + --hash=sha256:6c05483c3136ac4c91b4e81903cb53a8707d316f488124d0398499a4f8e8ef51 \ + --hash=sha256:6dc8b7e2f4eb184b37655195f421836cfae6f58197b67e3ffc501f1333d993fa \ + --hash=sha256:6e504f7b16118198f138ef31ba24d985b124c2c469fe8467007cf30fd992f934 \ + --hash=sha256:74623f2ab5cc3f7c886add4f735d1031a1d2be4a4ae63c0546cfd74e7a31ddf6 \ + --hash=sha256:77f0d13fa87036d7553bf81f0e1fe3ce68d14c9976c9851744e4d3e91127e95f \ + --hash=sha256:85eef4cb5625c47ee6425c58a3502555e10f45ee973da878ac8248ad58c136f3 \ + --hash=sha256:882567b7ae57c1b1a0250208cc21a7976d8cbcc49d5a322e607e6f09c9e0bd53 \ + --hash=sha256:8b986403023c8f3bf8f487c2e6186afda156174d31c175f747d8934dfddf3479 \ + --hash=sha256:8cfa5f29a695cb7438965e6c3e8d06e0416060cf0d709c1b1c1653a939bf5c2a \ + --hash=sha256:8eafe7c36c8430b7794edeab3087dec7bf31d634d92f2af9949434b9d1964cba \ + --hash=sha256:9198f447e1dc5647d07c9a6bbe2063cc0132728cc7175b39dbc796da5b54920d \ + --hash=sha256:92190db305a6f48734d3982f2c60fa30d6b5ee9bff10f2887b930d7b40119f4c \ + --hash=sha256:927ccf5cd17c48f801f4ed43a7e5673a2724bd2171460be3e3894e6e332ef83a \ + --hash=sha256:98e81648e0b36e325ab67e46b5400a7a6d4a22b8a7c8e8bbfe20e7db7906bf95 \ + --hash=sha256:9a818668b674047fd88c4cddada7ab8f1c298812783e8328e956b78dc4807f9f \ + --hash=sha256:a152d86a3ae00ba5f47b3acf3b827509fd0b6cb7d3259665e63dafbad22a75ea \ + --hash=sha256:a2718c1de8504121714234b6f8241d0019450353276c88b9453c9c3d92e101db \ + --hash=sha256:a39fb973a726e63223287adc6dafe444ce75af952d711e400f3bf2b36ef55a7b \ + --hash=sha256:a899699294f28f7be8992853c0c60741f16ff199205e2e6cdca155762cbaa59d \ + --hash=sha256:a8fdfed3deaf1928fb7667d96e0567cdf58c2b370ea2ee7e586aa383ec2cb346 \ + --hash=sha256:aabb081ca0ec5d39591fc33018cd4b3f96e1a2dd6756282029986d00a785fba4 \ + --hash=sha256:b1f5b45829ac1848893f0ddf5cb326110604d6df96cdc255b0bf9edd154104d4 \ + --hash=sha256:b48e35f4ab6f6a7597c46e301126ceba4c44cd3280e3750f85db48b082624fa4 \ + --hash=sha256:b54c83f1c0c0f1d748dca0af516062b8829d53d1f0c402be24b4257a9c48ada6 \ + --hash=sha256:ba0cb30acd3ef11c94dc27fbfba68940652492bc107075e7ffe23057f9425681 \ + --hash=sha256:bb50ce5fb202a26fd5404620e7ef820ad1ab3558b444cb0b55beb7ef66cd2d63 \ + --hash=sha256:c95eb6db2884917d86cde0b4d4cf31adf485c8ec36bf8696dd66fa70de96f36b \ + --hash=sha256:d0ffd9e2e4441c96a9c91ec1783285d80bf835b677853fc2770a89d50c1e48ac \ + --hash=sha256:d57b5046c120561ba8fa8e4030fbb8b822f3063910fa901ffadf16e2b7128ad6 \ + --hash=sha256:d9e6a7664ddd9746e20b7325351fe1a8408d0a2bf9c63b5e898290ddc8f09544 \ + --hash=sha256:dc578891de1db95b2a35001b695451767b580bb45753717498213c5ff3c41d63 \ + --hash=sha256:e0434aa22c821f44eeb4c650b81c7fbdd8c0122c6c4b5a576a76d5a35625ecd9 \ + --hash=sha256:e06a922a469cae9a57100864caf4f8a97a1026513793969f8ba5b63137a35d25 \ + --hash=sha256:e493962256a38f58283de033d8af176c5c91c084ea30f15834f7545451c42059 \ + --hash=sha256:ecb0019d44f4cdb50b676c5d0cb4b1eae8e15d1ed3d3e6639f986fc92b2ec52c \ + --hash=sha256:f935c4493eda9069851058fa0d9e39dbf6286be690066509305e52912714dbb2 # via # feast (setup.py) # dask @@ -1770,9 +1768,9 @@ pandas==2.3.3 \ # pandas-gbq # pymilvus # snowflake-connector-python -pandas-gbq==0.31.1 \ - --hash=sha256:a5d6e897917302c50feaca2ed1ce6a284abd8b9139383bf063307aab8d0556d9 \ - --hash=sha256:c59878504adee211cf1c34b22cf94393c59cc953626c61ce76e06c8d25fd146d +pandas-gbq==0.32.0 \ + --hash=sha256:249623d574c65e98cf19b7b7ecda97729f4f0a843eae3a0a82d9ef50adcdf4ef \ + --hash=sha256:28018ff09f2e49ab2b01a11329bd4e562fd65da406030b4a8001a3a4e80a1e34 # via google-cloud-bigquery parsy==2.2 \ --hash=sha256:5e981613d9d2d8b68012d1dd0afe928967bea2e4eefdb76c2f545af0dd02a9e7 \ @@ -1920,9 +1918,9 @@ propcache==0.4.1 \ # via # aiohttp # yarl -proto-plus==1.26.1 \ - --hash=sha256:13285478c2dcf2abb829db158e1047e2f1e8d63a077d94263c2b88b043c75a66 \ - --hash=sha256:21a515a4c4c0088a773899e23c7bbade3d18f9c66c73edd4c7ee3816bc96a012 +proto-plus==1.27.0 \ + --hash=sha256:1baa7f81cf0f8acb8bc1f6d085008ba4171eaf669629d1b6d1673b21ed1c0a82 \ + --hash=sha256:873af56dd0d7e91836aee871e5799e1c6f1bda86ac9a983e0bb9f0c266a568c4 # via # google-api-core # google-cloud-bigquery-storage @@ -1952,26 +1950,28 @@ protobuf==6.33.2 \ # grpcio-status # proto-plus # pymilvus -psutil==7.1.3 \ - --hash=sha256:0005da714eee687b4b8decd3d6cc7c6db36215c9e74e5ad2264b90c3df7d92dc \ - --hash=sha256:1068c303be3a72f8e18e412c5b2a8f6d31750fb152f9cb106b54090296c9d251 \ - --hash=sha256:18349c5c24b06ac5612c0428ec2a0331c26443d259e2a0144a9b24b4395b58fa \ - --hash=sha256:19644c85dcb987e35eeeaefdc3915d059dac7bd1167cdcdbf27e0ce2df0c08c0 \ - --hash=sha256:2bdbcd0e58ca14996a42adf3621a6244f1bb2e2e528886959c72cf1e326677ab \ - --hash=sha256:31d77fcedb7529f27bb3a0472bea9334349f9a04160e8e6e5020f22c59893264 \ - --hash=sha256:3792983e23b69843aea49c8f5b8f115572c5ab64c153bada5270086a2123c7e7 \ - --hash=sha256:3bb428f9f05c1225a558f53e30ccbad9930b11c3fc206836242de1091d3e7dd3 \ - --hash=sha256:56d974e02ca2c8eb4812c3f76c30e28836fffc311d55d979f1465c1feeb2b68b \ - --hash=sha256:6c86281738d77335af7aec228328e944b30930899ea760ecf33a4dba66be5e74 \ - --hash=sha256:8f33a3702e167783a9213db10ad29650ebf383946e91bc77f28a5eb083496bc9 \ - --hash=sha256:95ef04cf2e5ba0ab9eaafc4a11eaae91b44f4ef5541acd2ee91d9108d00d59a7 \ - --hash=sha256:ad81425efc5e75da3f39b3e636293360ad8d0b49bed7df824c79764fb4ba9b8b \ - --hash=sha256:b403da1df4d6d43973dc004d19cee3b848e998ae3154cc8097d139b77156c353 \ - --hash=sha256:bc31fa00f1fbc3c3802141eede66f3a2d51d89716a194bf2cd6fc68310a19880 \ - --hash=sha256:bd0d69cee829226a761e92f28140bec9a5ee9d5b4fb4b0cc589068dbfff559b1 \ - --hash=sha256:c525ffa774fe4496282fb0b1187725793de3e7c6b29e41562733cae9ada151ee \ - --hash=sha256:f39c2c19fe824b47484b96f9692932248a54c43799a84282cfe58d05a6449efd \ - --hash=sha256:fac9cd332c67f4422504297889da5ab7e05fd11e3c4392140f7370f4208ded1f +psutil==7.2.1 \ + --hash=sha256:05cc68dbb8c174828624062e73078e7e35406f4ca2d0866c272c2410d8ef06d1 \ + --hash=sha256:08a2f175e48a898c8eb8eace45ce01777f4785bc744c90aa2cc7f2fa5462a266 \ + --hash=sha256:0d67c1822c355aa6f7314d92018fb4268a76668a536f133599b91edd48759442 \ + --hash=sha256:2ceae842a78d1603753561132d5ad1b2f8a7979cb0c283f5b52fb4e6e14b1a79 \ + --hash=sha256:35630d5af80d5d0d49cfc4d64c1c13838baf6717a13effb35869a5919b854cdf \ + --hash=sha256:3fce5f92c22b00cdefd1645aa58ab4877a01679e901555067b1bd77039aa589f \ + --hash=sha256:494c513ccc53225ae23eec7fe6e1482f1b8a44674241b54561f755a898650679 \ + --hash=sha256:5e38404ca2bb30ed7267a46c02f06ff842e92da3bb8c5bfdadbd35a5722314d8 \ + --hash=sha256:81442dac7abfc2f4f4385ea9e12ddf5a796721c0f6133260687fec5c3780fa49 \ + --hash=sha256:923f8653416604e356073e6e0bccbe7c09990acef442def2f5640dd0faa9689f \ + --hash=sha256:93f3f7b0bb07711b49626e7940d6fe52aa9940ad86e8f7e74842e73189712129 \ + --hash=sha256:99a4cd17a5fdd1f3d014396502daa70b5ec21bf4ffe38393e152f8e449757d67 \ + --hash=sha256:ab2b98c9fc19f13f59628d94df5cc4cc4844bc572467d113a8b517d634e362c6 \ + --hash=sha256:b1b0671619343aa71c20ff9767eced0483e4fc9e1f489d50923738caf6a03c17 \ + --hash=sha256:b2e953fcfaedcfbc952b44744f22d16575d3aa78eb4f51ae74165b4e96e55f42 \ + --hash=sha256:ba9f33bb525b14c3ea563b2fd521a84d2fa214ec59e3e6a2858f78d0844dd60d \ + --hash=sha256:cfbe6b40ca48019a51827f20d830887b3107a74a79b01ceb8cc8de4ccb17b672 \ + --hash=sha256:d34d2ca888208eea2b5c68186841336a7f5e0b990edec929be909353a202768a \ + --hash=sha256:ea46c0d060491051d39f0d2cff4f98d5c72b288289f57a21556cc7d504db37fc \ + --hash=sha256:f7583aec590485b43ca601dd9cea0dcd65bd7bb21d30ef4ddbf4ea6b5ed1bdd3 \ + --hash=sha256:f78baafb38436d5a128f837fab2d92c276dfb48af01a240b861ae02b2413ada8 # via # feast (setup.py) # pandas-gbq @@ -2233,9 +2233,9 @@ python-dotenv==1.2.1 \ # pydantic-settings # pymilvus # uvicorn -python-multipart==0.0.20 \ - --hash=sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104 \ - --hash=sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13 +python-multipart==0.0.21 \ + --hash=sha256:7137ebd4d3bbf70ea1622998f902b97a29434a9e8dc40eb203bbcf7c2a2cba92 \ + --hash=sha256:cf7a6713e01c87aa35387f4774e812c4361150938d20d232800f75ffcf266090 # via mcp pytz==2025.2 \ --hash=sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3 \ @@ -2547,12 +2547,14 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:1d8b4a7a8c9b537509d56d5cd10ecdcfbb95912d72480c8861524efecc6a3fff \ --hash=sha256:215f0528b914e5c75ef2559f69dca86878a3beeb0c1be7279d77f18e8d180ed4 \ --hash=sha256:2c0b74aa79e2deade948fe8593654c8ef4228c44ba862bb7c9585c8e0db90f33 \ + --hash=sha256:2e90a344c644a4fa871eb01809c32096487928bd2038bf10f3e4515cb688cc56 \ --hash=sha256:3c5f76216e7b85770d5bb5130ddd11ee89f4d52b11783674a662c7dd57018177 \ --hash=sha256:470daea2c1ce73910f08caf10575676a37159a6d16c4da33d0033546bddebc9b \ --hash=sha256:4748601c8ea959e37e03d13dcda4a44837afcd1b21338e637f7c935b8da06177 \ --hash=sha256:4b6bec67ca45bc166c8729910bd2a87f1c0407ee955df110d78948f5b5827e8a \ --hash=sha256:5225a288e4c8cc2308dbdd874edad6e7d0fd38eac1e9e5f23503425c8eee20d0 \ --hash=sha256:56ead1f8dfb91a54a28cd1d072c74b3d635bcffbd25e50786533b822d4f2cde2 \ + --hash=sha256:5964f832431b7cdfaaa22a660b4c7eb1dfcd6ed41375f67fd3e3440fd95cb3cc \ --hash=sha256:59a8b8bd9c6bedf81ad07c8bd5543eedca55fe9b8780b2b628d495ba55f8db1e \ --hash=sha256:672c45cae53ba88e0dad74b9027dddd09ef6f441e927786b05bec75d949fbb2e \ --hash=sha256:6d0beadc2535157070c9c17ecf25ecec31e13c229a8f69196d7590bde8082bf1 \ @@ -2571,7 +2573,9 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:b8c8b41b97fba5f62349aa285654230296829672fc9939cd7f35aab246d1c08b \ --hash=sha256:ba547ac0b361ab4f1608afbc8432db669bd0819b3e12e29fb5fa9529a8bba81d \ --hash=sha256:c1c2091b1489435ff85728fafeb990f073e64f6f5e81d5cd53059773e8521eb6 \ + --hash=sha256:c64772786d9eee72d4d3784c28f0a636af5b0a29f3fe26ff11f55efe90c0bd85 \ --hash=sha256:cd337d3526ec5298f67d6a30bbbe4ed7e5e68862f0bf6dd21d289f8d37b7d60b \ + --hash=sha256:d29b2b99d527dbc66dd87c3c3248a5dd789d974a507f4653c969999fc7c1191b \ --hash=sha256:d2c3684fca8a05f0ac1d9a21c1f4a266983a7ea9180efb80ffeb03861ecd01a0 \ --hash=sha256:d62e47f5d8a50099b17e2bfc1b0c7d7ecd8ba6b46b1507b58cc4f05eefc3bb1c \ --hash=sha256:d8a2ca754e5415cde2b656c27900b19d50ba076aa05ce66e2207623d3fe41f5a \ @@ -2589,9 +2593,9 @@ sqlglot==25.20.2 \ --hash=sha256:169fe8308dd70d7bd40117b2221b62bdc7c4e2ea8eb07394b2a6146cdedf05ab \ --hash=sha256:cdbfd7ce3f2f39f32bd7b4c23fd9e0fd261636a6b14285b914e8def25fd0a567 # via ibis-framework -sse-starlette==3.0.3 \ - --hash=sha256:88cfb08747e16200ea990c8ca876b03910a23b547ab3bd764c0d8eb81019b971 \ - --hash=sha256:af5bf5a6f3933df1d9c7f8539633dc8444ca6a97ab2e2a7cd3b6e431ac03a431 +sse-starlette==3.1.1 \ + --hash=sha256:bb38f71ae74cfd86b529907a9fda5632195dfa6ae120f214ea4c890c7ee9d436 \ + --hash=sha256:bffa531420c1793ab224f63648c059bcadc412bf9fdb1301ac8de1cf9a67b7fb # via mcp starlette==0.50.0 \ --hash=sha256:9e5391843ec9b6e472eed1365a78c8098cfceb7a74bfd4d6b1c0c0095efb3bca \ @@ -2599,6 +2603,7 @@ starlette==0.50.0 \ # via # fastapi # mcp + # sse-starlette tabulate==0.9.0 \ --hash=sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c \ --hash=sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f @@ -2676,13 +2681,13 @@ typeguard==4.4.4 \ --hash=sha256:3a7fd2dffb705d4d0efaed4306a704c89b9dee850b688f060a8b1615a79e5f74 \ --hash=sha256:b5f562281b6bfa1f5492470464730ef001646128b180769880468bd84b68b09e # via feast (setup.py) -typer==0.20.0 \ - --hash=sha256:1aaf6494031793e4876fb0bacfa6a912b551cf43c1e63c800df8b1a866720c37 \ - --hash=sha256:5b463df6793ec1dca6213a3cf4c0f03bc6e322ac5e16e13ddd622a889489784a +typer==0.21.0 \ + --hash=sha256:c79c01ca6b30af9fd48284058a7056ba0d3bf5cf10d0ff3d0c5b11b68c258ac6 \ + --hash=sha256:c87c0d2b6eee3b49c5c64649ec92425492c14488096dfbc8a0c2799b2f6f9c53 # via fastapi-mcp -types-pymysql==1.1.0.20250916 \ - --hash=sha256:873eb9836bb5e3de4368cc7010ca72775f86e9692a5c7810f8c7f48da082e55b \ - --hash=sha256:98d75731795fcc06723a192786662bdfa760e1e00f22809c104fbb47bac5e29b +types-pymysql==1.1.0.20251220 \ + --hash=sha256:ae1c3df32a777489431e2e9963880a0df48f6591e0aa2fd3a6fabd9dee6eca54 \ + --hash=sha256:fa1082af7dea6c53b6caa5784241924b1296ea3a8d3bd060417352c5e10c0618 # via feast (setup.py) typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -2713,9 +2718,9 @@ typing-inspection==0.4.2 \ # mcp # pydantic # pydantic-settings -tzdata==2025.2 \ - --hash=sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8 \ - --hash=sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9 +tzdata==2025.3 \ + --hash=sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1 \ + --hash=sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7 # via pandas ujson==5.11.0 \ --hash=sha256:0180a480a7d099082501cad1fe85252e4d4bf926b40960fb3d9e87a3a6fbbc80 \ @@ -2803,9 +2808,9 @@ ujson==5.11.0 \ --hash=sha256:fa79fdb47701942c2132a9dd2297a1a85941d966d8c87bfd9e29b0cf423f26cc \ --hash=sha256:fac6c0649d6b7c3682a0a6e18d3de6857977378dce8d419f57a0b20e3d775b39 # via pymilvus -urllib3==2.6.1 \ - --hash=sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f \ - --hash=sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b +urllib3==2.6.2 \ + --hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \ + --hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd # via # botocore # kubernetes diff --git a/sdk/python/requirements/py3.12-minimal-sdist-requirements-build.txt b/sdk/python/requirements/py3.12-minimal-sdist-requirements-build.txt index 329c5840ede..20d5e108fcc 100644 --- a/sdk/python/requirements/py3.12-minimal-sdist-requirements-build.txt +++ b/sdk/python/requirements/py3.12-minimal-sdist-requirements-build.txt @@ -166,46 +166,46 @@ cython==3.0.12 \ # pyyaml # snowflake-connector-python # sqlalchemy -cython==3.2.2 \ - --hash=sha256:034ab96cb8bc8e7432bc27491f8d66f51e435b1eb21ddc03aa844be8f21ad847 \ - --hash=sha256:098590c1dc309f8a0406ade031963a95a87714296b425539f9920aebf924560d \ - --hash=sha256:0e35ff0f1bb3a7a5c40afb8fb540e4178b6551909f10748bf39d323f8140ccf3 \ - --hash=sha256:13b99ecb9482aff6a6c12d1ca6feef6940c507af909914b49f568de74fa965fb \ - --hash=sha256:14432d7f207245a3c35556155873f494784169297b28978a6204f1c60d31553e \ - --hash=sha256:177faf4d61e9f2d4d2db61194ac9ec16d3fe3041c1b6830f871a01935319eeb3 \ - --hash=sha256:2b910b89a2a71004064c5e890b9512a251eda63fae252caa0feb9835057035f9 \ - --hash=sha256:3de43a5786033a27fae1c882feb5ff0d023c38b83356e6800c1be0bcd6cf9f11 \ - --hash=sha256:436eb562d0affbc0b959f62f3f9c1ed251b9499e4f29c1d19514ae859894b6bf \ - --hash=sha256:50bbaabee733fd2780985e459fc20f655e02def83e8eff10220ad88455a34622 \ - --hash=sha256:5f818d40bbcf17e2089e2de7840f0de1c0ca527acf9b044aba79d5f5d8a5bdba \ - --hash=sha256:60f4aa425e1ff98abf8d965ae7020f06dd2cbc01dbd945137d2f9cca4ff0524a \ - --hash=sha256:692a41c8fe06fb2dc55ca2c8d71c80c469fd16fe69486ed99f3b3cbb2d3af83f \ - --hash=sha256:820c4a99dbf6b3e6c0300be42b4040b501eff0e1feeb80cfa52c48a346fb0df2 \ - --hash=sha256:826cad0ad43ab05a26e873b5d625f64d458dc739ec6fdeecab848b60a91c4252 \ - --hash=sha256:86b1d39a1ea974dd16fe3bcef0df7b64dadd0bd38d05a339f287b48d37cb109f \ - --hash=sha256:8c9265b3e84ae2d999b7c3165c683e366bbbbbe4346468055ca2366fe013f2df \ - --hash=sha256:8db28aef793c81dc69383b619ca508668998aaf099cd839d3cbae85184cce744 \ - --hash=sha256:8e72ee88a9a5381d30a6da116a3c8352730b9b038a49ed9bc5c3d0ed6d69b06c \ - --hash=sha256:9cd2ede6af225499ad22888dbfb13b92d71fc1016f401ee637559a5831b177c2 \ - --hash=sha256:a3898c076e9c458bcb3e4936187919fda5f5365fe4c567d35d2b003444b6f3fe \ - --hash=sha256:a473df474ba89e9fee81ee82b31062a267f9e598096b222783477e56d02ad12c \ - --hash=sha256:a6387e3ad31342443916db9a419509935fddd8d4cbac34aab9c895ae55326a56 \ - --hash=sha256:a9509f1e9c41c86b790cff745bb31927bbc861662a3b462596d71d3d2a578abb \ - --hash=sha256:aa24cd0bdab27ca099b2467806c684404add597c1108e07ddf7b6471653c85d7 \ - --hash=sha256:aff11412ed5fc78bd8b148621f4d1034fcad6cfcba468c20cd9f327b4f61ec3e \ - --hash=sha256:b223c1f84c3420c24f6a4858e979524bd35a79437a5839e29d41201c87ed119d \ - --hash=sha256:b4df52101209817fde7284cf779156f79142fb639b1d7840f11680ff4bb30604 \ - --hash=sha256:b4fe499eed7cd70b2aa4e096b9ce2588f5e6fdf049b46d40a5e55efcde6e4904 \ - --hash=sha256:b5afac4e77e71a9010dc7fd3191ced00f9b12b494dd7525c140781054ce63a73 \ - --hash=sha256:c3add3d483acc73129a61d105389344d792c17e7c1cee24863f16416bd071634 \ - --hash=sha256:ca18d9d53c0e2f0c9347478b37532b46e0dc34c704e052ab1b0d8b21a290fc0f \ - --hash=sha256:d140c2701cbb8cf960300cf1b67f3b4fa9d294d32e51b85f329bff56936a82fd \ - --hash=sha256:d7b3447b2005dffc5f276d420a480d2b57d15091242652d410b6a46fb00ed251 \ - --hash=sha256:d8c93fe128b58942832b1fcac96e48f93c2c69b569eff0d38d30fb5995fecfa0 \ - --hash=sha256:e7200309b81f4066cf36a96efeec646716ca74afd73d159045169263db891133 \ - --hash=sha256:f560ff3aea5b5df93853ec7bf1a1e9623d6d511f4192f197559aca18fca43392 \ - --hash=sha256:fed44d0ab2d36f1b0301c770b0dafec23bcb9700d58e7769cd6d9136b3304c11 \ - --hash=sha256:ff07e784ea748225bbdea07fec0ac451379e9e41a0a84cb57b36db19dd01ae71 +cython==3.2.3 \ + --hash=sha256:0145e64485f0a9741c9314ae176282dffeb48d2ef30ae315d7224698867c317f \ + --hash=sha256:06a1317097f540d3bb6c7b81ed58a0d8b9dbfa97abf39dfd4c22ee87a6c7241e \ + --hash=sha256:0a75a04688875b275a6c875565e672325bae04327dd6ec2fc25aeb5c6cf82fce \ + --hash=sha256:1309bdce06f767e8514377f44b3a5b9e5b91e58af1348010cca10b572e1852ad \ + --hash=sha256:18b5e738c9dbb1cb488b51e35c3a1b9aa7363166cce40158fe6ccb454f6498ac \ + --hash=sha256:18edc858e6a52de47fe03ffa97ea14dadf450e20069de0a8aef531006c4bbd93 \ + --hash=sha256:1d097ad4686b58b8c03d760d08eca28f79878d404ef7452c49636170571654e0 \ + --hash=sha256:228f11be8406015d1ce84a25bf4f96167ff6fc18b834deca5716d95ae15a818c \ + --hash=sha256:22a624290c2883387b2c2cfb5224c15bff21432c6a2cf0c23ac8df3dcbd45e96 \ + --hash=sha256:25732f3981a93407826297f4423206e5e22c3cfccfc74e37bf444453bbdc076f \ + --hash=sha256:26404441f733fd1cfb0dd9c45477f501437e7d51fad05bb402bd2feb4e127aa3 \ + --hash=sha256:283262b8f902323ceb6ed3b643f275a2a963e7ab059f0714a467933383cbc56d \ + --hash=sha256:2a18f2e3bcd018416157d0a83446e29b4a31437ab79061fe5504c077e70389d0 \ + --hash=sha256:3141734fb15f8b5e9402b9240f8da8336edecae91742b41c85678c31ab68f66d \ + --hash=sha256:3829f99d611412288f44ff543e9d2b5c0c83274998b2a6680bbe5cca3539c1fd \ + --hash=sha256:4f40efa83c93060a271046930d2322ec045abb9722d25a377702cb57aa823c2b \ + --hash=sha256:51fd1a56d0fc682c05ecc44f11927dbe28dd2867c30148557b62d7d1017a13d8 \ + --hash=sha256:55c0157a5940fbf0b054508207fe0fc5cc796d0532af492c0fa35b5b41a883f7 \ + --hash=sha256:60d19376252722241a3d3ec8a695c5cae4deb053486d2e5f9a40cb569a0cf984 \ + --hash=sha256:6b01b36c9eb1b68c25bddbeef7379f7bfc37f7c9afc044e71840ffab761a2dd0 \ + --hash=sha256:6b6dd6b7aca8447b2a6779b314cc402f1e4990754507a88477e535b3c8b41ad1 \ + --hash=sha256:73afc824896ffaf22bf8122d0a7107f0120e3188a353bdcfa92317fc0d9a87ce \ + --hash=sha256:74f482da8b605c61b4df6ff716d013f20131949cb2fa59b03e63abd36ef5bac0 \ + --hash=sha256:80f20369d7aaf4e76cfef902025256918a5cc6eb0aed6d8783e4b1c563e4f6c4 \ + --hash=sha256:84330e7c8bf220a82b633678b9f99e10227c8f4c406d67c5552449ab2afedef8 \ + --hash=sha256:9a24cc653fad3adbd9cbaa638d80df3aa08a1fe27f62eb35850971c70be680df \ + --hash=sha256:9aa1a8abf3d8bb53cc19cfaa21c004afad8d4ccb17513f8aa11a788d1f525abd \ + --hash=sha256:9c5ac7201d8382c0da69e4a119c14be6acd7c286615a0383ffbd1dbfdbaa3df7 \ + --hash=sha256:b39dff92db70cbd95528f3b81d70e06bd6d3fc9c1dd91321e4d3b999ece3bceb \ + --hash=sha256:c041f7e338cca2422e0924716b04fabeda57636214324fc1941396acce99e7c7 \ + --hash=sha256:c102388cf7604ff5647164d5041fd5de2393198a87883fdb50f6c078fc2f4f8e \ + --hash=sha256:c2365a0c79ab9c0fa86d30a4a6ba7e37fc1be9537c48b79b9d63ee7e08bf2fef \ + --hash=sha256:cf210228c15b5c625824d8e31d43b6fea25f9e13c81dac632f2f7d838e0229a5 \ + --hash=sha256:d1f8700ba89c977438744f083890d87187f15709507a5489e0f6d682053b7fa0 \ + --hash=sha256:e31f52ea7e35463b21410f150006eb07b663a0b3ceea8ee8f35e0b8e02b75f50 \ + --hash=sha256:e4293f1861480b397809a6f021a6c12e15e918feae1c7add80c99d07af206578 \ + --hash=sha256:f13832412d633376ffc08d751cc18ed0d7d00a398a4065e2871db505258748a6 \ + --hash=sha256:f5bf0cebeb4147e172a114437d3fce5a507595d8fdd821be792b1bb25c691514 \ + --hash=sha256:fabe2f37acb63a5521d16193effb15acd082e35458f30f1c1f3e506271fee8a7 # via uvloop dunamai==1.25.0 \ --hash=sha256:7f9dc687dd3256e613b6cc978d9daabfd2bb5deb8adc541fc135ee423ffa98ab \ @@ -321,83 +321,83 @@ jinja2==3.1.6 \ # via # poetry-dynamic-versioning # uv-dynamic-versioning -librt==0.7.3 \ - --hash=sha256:020c6db391268bcc8ce75105cb572df8cb659a43fd347366aaa407c366e5117a \ - --hash=sha256:0fa9ac2e49a6bee56e47573a6786cb635e128a7b12a0dc7851090037c0d397a3 \ - --hash=sha256:11ad45122bbed42cfc8b0597450660126ef28fd2d9ae1a219bc5af8406f95678 \ - --hash=sha256:120dd21d46ff875e849f1aae19346223cf15656be489242fe884036b23d39e93 \ - --hash=sha256:14569ac5dd38cfccf0a14597a88038fb16811a6fede25c67b79c6d50fc2c8fdc \ - --hash=sha256:1617bea5ab31266e152871208502ee943cb349c224846928a1173c864261375e \ - --hash=sha256:170cdb8436188347af17bf9cccf3249ba581c933ed56d926497119d4cf730cec \ - --hash=sha256:1975eda520957c6e0eb52d12968dd3609ffb7eef05d4223d097893d6daf1d8a7 \ - --hash=sha256:1fe603877e1865b5fd047a5e40379509a4a60204aa7aa0f72b16f7a41c3f0712 \ - --hash=sha256:24d70810f6e2ea853ff79338001533716b373cc0f63e2a0be5bc96129edb5fb5 \ - --hash=sha256:256793988bff98040de23c57cf36e1f4c2f2dc3dcd17537cdac031d3b681db71 \ - --hash=sha256:25711f364c64cab2c910a0247e90b51421e45dbc8910ceeb4eac97a9e132fc6f \ - --hash=sha256:2682162855a708e3270eba4b92026b93f8257c3e65278b456c77631faf0f4f7a \ - --hash=sha256:2cf9d73499486ce39eebbff5f42452518cc1f88d8b7ea4a711ab32962b176ee2 \ - --hash=sha256:2e40520c37926166c24d0c2e0f3bc3a5f46646c34bdf7b4ea9747c297d6ee809 \ - --hash=sha256:2e980cf1ed1a2420a6424e2ed884629cdead291686f1048810a817de07b5eb18 \ - --hash=sha256:2f03484b54bf4ae80ab2e504a8d99d20d551bfe64a7ec91e218010b467d77093 \ - --hash=sha256:35f1609e3484a649bb80431310ddbec81114cd86648f1d9482bc72a3b86ded2e \ - --hash=sha256:399938edbd3d78339f797d685142dd8a623dfaded023cf451033c85955e4838a \ - --hash=sha256:399bbd7bcc1633c3e356ae274a1deb8781c7bf84d9c7962cc1ae0c6e87837292 \ - --hash=sha256:3ec50cf65235ff5c02c5b747748d9222e564ad48597122a361269dd3aa808798 \ - --hash=sha256:3edbf257c40d21a42615e9e332a6b10a8bacaaf58250aed8552a14a70efd0d65 \ - --hash=sha256:440c788f707c061d237c1e83edf6164ff19f5c0f823a3bf054e88804ebf971ec \ - --hash=sha256:44b3689b040df57f492e02cd4f0bacd1b42c5400e4b8048160c9d5e866de8abe \ - --hash=sha256:4887c29cadbdc50640179e3861c276325ff2986791e6044f73136e6e798ff806 \ - --hash=sha256:5460d99ed30f043595bbdc888f542bad2caeb6226b01c33cda3ae444e8f82d42 \ - --hash=sha256:550fdbfbf5bba6a2960b27376ca76d6aaa2bd4b1a06c4255edd8520c306fcfc0 \ - --hash=sha256:56f2a47beda8409061bc1c865bef2d4bd9ff9255219402c0817e68ab5ad89aed \ - --hash=sha256:572a24fc5958c61431da456a0ef1eeea6b4989d81eeb18b8e5f1f3077592200b \ - --hash=sha256:59cb0470612d21fa1efddfa0dd710756b50d9c7fb6c1236bbf8ef8529331dc70 \ - --hash=sha256:6038ccbd5968325a5d6fd393cf6e00b622a8de545f0994b89dd0f748dcf3e19e \ - --hash=sha256:6488e69d408b492e08bfb68f20c4a899a354b4386a446ecd490baff8d0862720 \ - --hash=sha256:687403cced6a29590e6be6964463835315905221d797bc5c934a98750fe1a9af \ - --hash=sha256:6b407c23f16ccc36614c136251d6b32bf30de7a57f8e782378f1107be008ddb0 \ - --hash=sha256:6b4e7bff1d76dd2b46443078519dc75df1b5e01562345f0bb740cea5266d8218 \ - --hash=sha256:6bdd9adfca615903578d2060ee8a6eb1c24eaf54919ff0ddc820118e5718931b \ - --hash=sha256:6eb9295c730e26b849ed1f4022735f36863eb46b14b6e10604c1c39b8b5efaea \ - --hash=sha256:703456146dc2bf430f7832fd1341adac5c893ec3c1430194fdcefba00012555c \ - --hash=sha256:754a0d09997095ad764ccef050dd5bf26cbf457aab9effcba5890dad081d879e \ - --hash=sha256:7af7785f5edd1f418da09a8cdb9ec84b0213e23d597413e06525340bcce1ea4f \ - --hash=sha256:7b29e97273bd6999e2bfe9fe3531b1f4f64effd28327bced048a33e49b99674a \ - --hash=sha256:7b4f57f7a0c65821c5441d98c47ff7c01d359b1e12328219709bdd97fdd37f90 \ - --hash=sha256:8837d5a52a2d7aa9f4c3220a8484013aed1d8ad75240d9a75ede63709ef89055 \ - --hash=sha256:8ccadf260bb46a61b9c7e89e2218f6efea9f3eeaaab4e3d1f58571890e54858e \ - --hash=sha256:8d8cf653e798ee4c4e654062b633db36984a1572f68c3aa25e364a0ddfbbb910 \ - --hash=sha256:93b2a1f325fefa1482516ced160c8c7b4b8d53226763fa6c93d151fa25164207 \ - --hash=sha256:9f0e0927efe87cd42ad600628e595a1a0aa1c64f6d0b55f7e6059079a428641a \ - --hash=sha256:a59a69deeb458c858b8fea6acf9e2acd5d755d76cd81a655256bc65c20dfff5b \ - --hash=sha256:a9f9b661f82693eb56beb0605156c7fca57f535704ab91837405913417d6990b \ - --hash=sha256:abfc57cab3c53c4546aee31859ef06753bfc136c9d208129bad23e2eca39155a \ - --hash=sha256:aca73d70c3f553552ba9133d4a09e767dcfeee352d8d8d3eb3f77e38a3beb3ed \ - --hash=sha256:adeaa886d607fb02563c1f625cf2ee58778a2567c0c109378da8f17ec3076ad7 \ - --hash=sha256:b278a9248a4e3260fee3db7613772ca9ab6763a129d6d6f29555e2f9b168216d \ - --hash=sha256:b7c1239b64b70be7759554ad1a86288220bbb04d68518b527783c4ad3fb4f80b \ - --hash=sha256:bf8c7735fbfc0754111f00edda35cf9e98a8d478de6c47b04eaa9cef4300eaa7 \ - --hash=sha256:c634a0a6db395fdaba0361aa78395597ee72c3aad651b9a307a3a7eaf5efd67e \ - --hash=sha256:cad9971881e4fec00d96af7eaf4b63aa7a595696fc221808b0d3ce7ca9743258 \ - --hash=sha256:cbdb3f337c88b43c3b49ca377731912c101178be91cb5071aac48faa898e6f8e \ - --hash=sha256:cd8551aa21df6c60baa2624fd086ae7486bdde00c44097b32e1d1b1966e365e0 \ - --hash=sha256:d09f677693328503c9e492e33e9601464297c01f9ebd966ea8fc5308f3069bfd \ - --hash=sha256:d376a35c6561e81d2590506804b428fc1075fcc6298fc5bb49b771534c0ba010 \ - --hash=sha256:d39079379a9a28e74f4d57dc6357fa310a1977b51ff12239d7271ec7e71d67f5 \ - --hash=sha256:d86f94743a11873317094326456b23f8a5788bad9161fd2f0e52088c33564620 \ - --hash=sha256:d91e60ac44bbe3a77a67af4a4c13114cbe9f6d540337ce22f2c9eaf7454ca71f \ - --hash=sha256:d9883b2d819ce83f87ba82a746c81d14ada78784db431e57cc9719179847376e \ - --hash=sha256:e094e445c37c57e9ec612847812c301840239d34ccc5d153a982fa9814478c60 \ - --hash=sha256:e19acfde38cb532a560b98f473adc741c941b7a9bc90f7294bc273d08becb58b \ - --hash=sha256:e32d43610dff472eab939f4d7fbdd240d1667794192690433672ae22d7af8445 \ - --hash=sha256:ed028fc3d41adda916320712838aec289956c89b4f0a361ceadf83a53b4c047a \ - --hash=sha256:ef59c938f72bdbc6ab52dc50f81d0637fde0f194b02d636987cea2ab30f8f55a \ - --hash=sha256:f3d4801db8354436fd3936531e7f0e4feb411f62433a6b6cb32bb416e20b529f \ - --hash=sha256:f57aca20e637750a2c18d979f7096e2c2033cc40cf7ed201494318de1182f135 \ - --hash=sha256:f9da128d0edf990cf0d2ca011b02cd6f639e79286774bd5b0351245cbb5a6e51 \ - --hash=sha256:fbd7351d43b80d9c64c3cfcb50008f786cc82cba0450e8599fdd64f264320bd3 \ - --hash=sha256:fcb72249ac4ea81a7baefcbff74df7029c3cb1cf01a711113fa052d563639c9c \ - --hash=sha256:ff21c554304e8226bf80c3a7754be27c6c3549a9fec563a03c06ee8f494da8fc +librt==0.7.5 \ + --hash=sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee \ + --hash=sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1 \ + --hash=sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4 \ + --hash=sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899 \ + --hash=sha256:0e2bf8f91093fac43e3eaebacf777f12fd539dce9ec5af3efc6d8424e96ccd49 \ + --hash=sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d \ + --hash=sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760 \ + --hash=sha256:191cbd42660446d67cf7a95ac7bfa60f49b8b3b0417c64f216284a1d86fc9335 \ + --hash=sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8 \ + --hash=sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2 \ + --hash=sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec \ + --hash=sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b \ + --hash=sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0 \ + --hash=sha256:39183abee670bc37b85f11e86c44a9cad1ed6efa48b580083e89ecee13dd9717 \ + --hash=sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325 \ + --hash=sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45 \ + --hash=sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d \ + --hash=sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233 \ + --hash=sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d \ + --hash=sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544 \ + --hash=sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802 \ + --hash=sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2 \ + --hash=sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d \ + --hash=sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f \ + --hash=sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169 \ + --hash=sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe \ + --hash=sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982 \ + --hash=sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2 \ + --hash=sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa \ + --hash=sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4 \ + --hash=sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4 \ + --hash=sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57 \ + --hash=sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26 \ + --hash=sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361 \ + --hash=sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad \ + --hash=sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e \ + --hash=sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf \ + --hash=sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f \ + --hash=sha256:8dcae24de1bc9da93aa689cb6313c70e776d7cea2fcf26b9b6160fedfe6bd9af \ + --hash=sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2 \ + --hash=sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89 \ + --hash=sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904 \ + --hash=sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6 \ + --hash=sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276 \ + --hash=sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e \ + --hash=sha256:a9eacbf983319b26b5f340a2e0cd47ac1ee4725a7f3a72fd0f15063c934b69d6 \ + --hash=sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409 \ + --hash=sha256:af69d9e159575e877c7546d1ee817b4ae089aa221dd1117e20c24ad8dc8659c7 \ + --hash=sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a \ + --hash=sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4 \ + --hash=sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775 \ + --hash=sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203 \ + --hash=sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419 \ + --hash=sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5 \ + --hash=sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023 \ + --hash=sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b \ + --hash=sha256:cdb001a1a0e4f41e613bca2c0fc147fc8a7396f53fc94201cbfd8ec7cd69ca4b \ + --hash=sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d \ + --hash=sha256:d2cc7d187e8c6e9b7bdbefa9697ce897a704ea7a7ce844f2b4e0e2aa07ae51d3 \ + --hash=sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e \ + --hash=sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a \ + --hash=sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b \ + --hash=sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db \ + --hash=sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd \ + --hash=sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa \ + --hash=sha256:df2e210400b28e50994477ebf82f055698c79797b6ee47a1669d383ca33263e1 \ + --hash=sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805 \ + --hash=sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a \ + --hash=sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25 \ + --hash=sha256:ea1b60b86595a5dc1f57b44a801a1c4d8209c0a69518391d349973a4491408e6 \ + --hash=sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b \ + --hash=sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5 \ + --hash=sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416 \ + --hash=sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc \ + --hash=sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7 \ + --hash=sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96 # via mypy markupsafe==3.0.3 \ --hash=sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f \ @@ -490,21 +490,21 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via jinja2 -maturin==1.10.2 \ - --hash=sha256:04df81ee295dcda37828bd025a4ac688ea856e3946e4cb300a8f44a448de0069 \ - --hash=sha256:07a82864352feeaf2167247c8206937ef6c6ae9533025d416b7004ade0ea601d \ - --hash=sha256:11c73815f21a755d2129c410e6cb19dbfacbc0155bfc46c706b69930c2eb794b \ - --hash=sha256:259292563da89850bf8f7d37aa4ddba22905214c1e180b1c8f55505dfd8c0e81 \ - --hash=sha256:7fbd997c5347649ee7987bd05a92bd5b8b07efa4ac3f8bcbf6196e07eb573d89 \ - --hash=sha256:96e1d391e4c1fa87edf2a37e4d53d5f2e5f39dd880b9d8306ac9f8eb212d23f8 \ - --hash=sha256:a217aa7c42aa332fb8e8377eb07314e1f02cf0fe036f614aca4575121952addd \ - --hash=sha256:a41ec70d99e27c05377be90f8e3c3def2a7bae4d0d9d5ea874aaf2d1da625d5c \ - --hash=sha256:a4c29a770ea2c76082e0afc6d4efd8ee94405588bfae00d10828f72e206c739b \ - --hash=sha256:da031771d9fb6ddb1d373638ec2556feee29e4507365cd5749a2d354bcadd818 \ - --hash=sha256:da777766fd584440dc9fecd30059a94f85e4983f58b09e438ae38ee4b494024c \ - --hash=sha256:e3ce9b2ad4fb9c341f450a6d32dc3edb409a2d582a81bc46ba55f6e3b6196b22 \ - --hash=sha256:efcd496a3202ffe0d0489df1f83d08b91399782fb2dd545d5a1e7bf6fd81af39 \ - --hash=sha256:f0d1b7b5f73c8d30a7e71cd2a2189a7f0126a3a3cd8b3d6843e7e1d4db50f759 +maturin==1.11.0 \ + --hash=sha256:0fbe565ede0901de7743cd028ad6c13be623b1c7158641f8a50d7a4353f4a97c \ + --hash=sha256:16cb48f1f2b6b3d8c2732f77d98d8f7f0ab84765abf0c1c82df2c8ea7d8ef2ec \ + --hash=sha256:276a900d4096c246cc236aa00460adb3ab195c37172a9f1087bbde6a127f0780 \ + --hash=sha256:51cadd0373950cfae6aac6823a3d2bf56e34e4efed0abae8c7d15e337d9bb5e6 \ + --hash=sha256:83b73299f36301d943550c609e0a0dff08d21e3674c1369c10df77ce470fd97b \ + --hash=sha256:8695b79462e1f46013993d715485db289cf5a7702aa2d9941ac333564ca20d79 \ + --hash=sha256:8bf16fc56f4abcf3af7d5fb6dab3888f73e3648287c8efe77e14fa1b006a3ef4 \ + --hash=sha256:95c5d778c96ab237837cd6d38e01f0bdca52c64e0d00647a69133a8e7ae4eed4 \ + --hash=sha256:9aaaec73e120ac7add99f53d606aa6d432c8e0337af742b2ca26fb8d17181500 \ + --hash=sha256:aa2d9db1c03e9eb0640a578caf00a6fa2d9399abb7375a970b0f6d6e934b5441 \ + --hash=sha256:d13d3721931d407491d9b3fe161146aa78ab08a8fc9735302abee1d368aedb03 \ + --hash=sha256:d53bde4f939dac9340aa253c2765073de6b8595a29a294503042fcbfec8bd842 \ + --hash=sha256:dba7daeb54615532c11f8fe39bc9514b81215f6f4e91909ec227e06227c286cf \ + --hash=sha256:debf472d3ecd76a3a750b056b99dcb64c119467dc44f0e2d6e6363acb128b96a # via # cryptography # pydantic-core @@ -513,9 +513,11 @@ maturin==1.10.2 \ meson-python==0.15.0 \ --hash=sha256:3ae38253ff02b2e947a05e362a2eaf5a9a09d133c5666b4123399ee5fbf2e591 \ --hash=sha256:fddb73eecd49e89c1c41c87937cd89c2d0b65a1c63ba28238681d4bd9484d26f - # via - # numpy - # pandas + # via pandas +meson-python==0.18.0 \ + --hash=sha256:3b0fe051551cc238f5febb873247c0949cd60ded556efa130aa57021804868e2 \ + --hash=sha256:c56a99ec9df669a40662fe46960321af6e4b14106c14db228709c1628e23848d + # via numpy meson==1.7.1 \ --hash=sha256:155780a5be87f6dd7f427ad8bcbf0f2b2c5f62ee5fdacca7caa9de8439a24b89 \ --hash=sha256:6d9cbc9ce87a70243c75e4cc668ee3f206ab50b184beb0a08ece948112f19bd7 @@ -526,81 +528,79 @@ mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 # via mypy -numpy==2.3.5 \ - --hash=sha256:00dc4e846108a382c5869e77c6ed514394bdeb3403461d25a829711041217d5b \ - --hash=sha256:0472f11f6ec23a74a906a00b48a4dcf3849209696dff7c189714511268d103ae \ - --hash=sha256:04822c00b5fd0323c8166d66c701dc31b7fbd252c100acd708c48f763968d6a3 \ - --hash=sha256:052e8c42e0c49d2575621c158934920524f6c5da05a1d3b9bab5d8e259e045f0 \ - --hash=sha256:09a1bea522b25109bf8e6f3027bd810f7c1085c64a0c7ce050c1676ad0ba010b \ - --hash=sha256:0cd00b7b36e35398fa2d16af7b907b65304ef8bb4817a550e06e5012929830fa \ - --hash=sha256:0d8163f43acde9a73c2a33605353a4f1bc4798745a8b1d73183b28e5b435ae28 \ - --hash=sha256:1062fde1dcf469571705945b0f221b73928f34a20c904ffb45db101907c3454e \ - --hash=sha256:11e06aa0af8c0f05104d56450d6093ee639e15f24ecf62d417329d06e522e017 \ - --hash=sha256:17531366a2e3a9e30762c000f2c43a9aaa05728712e25c11ce1dbe700c53ad41 \ - --hash=sha256:1978155dd49972084bd6ef388d66ab70f0c323ddee6f693d539376498720fb7e \ - --hash=sha256:1ed1ec893cff7040a02c8aa1c8611b94d395590d553f6b53629a4461dc7f7b63 \ - --hash=sha256:2dcd0808a421a482a080f89859a18beb0b3d1e905b81e617a188bd80422d62e9 \ - --hash=sha256:2e2eb32ddb9ccb817d620ac1d8dae7c3f641c1e5f55f531a33e8ab97960a75b8 \ - --hash=sha256:2feae0d2c91d46e59fcd62784a3a83b3fb677fead592ce51b5a6fbb4f95965ff \ - --hash=sha256:3095bdb8dd297e5920b010e96134ed91d852d81d490e787beca7e35ae1d89cf7 \ - --hash=sha256:30bc11310e8153ca664b14c5f1b73e94bd0503681fcf136a163de856f3a50139 \ - --hash=sha256:3101e5177d114a593d79dd79658650fe28b5a0d8abeb8ce6f437c0e6df5be1a4 \ - --hash=sha256:396084a36abdb603546b119d96528c2f6263921c50df3c8fd7cb28873a237748 \ - --hash=sha256:3997b5b3c9a771e157f9aae01dd579ee35ad7109be18db0e85dbdbe1de06e952 \ - --hash=sha256:414802f3b97f3c1eef41e530aaba3b3c1620649871d8cb38c6eaff034c2e16bd \ - --hash=sha256:51c1e14eb1e154ebd80e860722f9e6ed6ec89714ad2db2d3aa33c31d7c12179b \ - --hash=sha256:51c55fe3451421f3a6ef9a9c1439e82101c57a2c9eab9feb196a62b1a10b58ce \ - --hash=sha256:5ee6609ac3604fa7780e30a03e5e241a7956f8e2fcfe547d51e3afa5247ac47f \ - --hash=sha256:612a95a17655e213502f60cfb9bf9408efdc9eb1d5f50535cc6eb365d11b42b5 \ - --hash=sha256:6203fdf9f3dc5bdaed7319ad8698e685c7a3be10819f41d32a0723e611733b42 \ - --hash=sha256:63c0e9e7eea69588479ebf4a8a270d5ac22763cc5854e9a7eae952a3908103f7 \ - --hash=sha256:66f85ce62c70b843bab1fb14a05d5737741e74e28c7b8b5a064de10142fad248 \ - --hash=sha256:6cf9b429b21df6b99f4dee7a1218b8b7ffbbe7df8764dc0bd60ce8a0708fed1e \ - --hash=sha256:70b37199913c1bd300ff6e2693316c6f869c7ee16378faf10e4f5e3275b299c3 \ - --hash=sha256:727fd05b57df37dc0bcf1a27767a3d9a78cbbc92822445f32cc3436ba797337b \ - --hash=sha256:74ae7b798248fe62021dbf3c914245ad45d1a6b0cb4a29ecb4b31d0bfbc4cc3e \ - --hash=sha256:784db1dcdab56bf0517743e746dfb0f885fc68d948aba86eeec2cba234bdf1c0 \ - --hash=sha256:86945f2ee6d10cdfd67bcb4069c1662dd711f7e2a4343db5cecec06b87cf31aa \ - --hash=sha256:86d835afea1eaa143012a2d7a3f45a3adce2d7adc8b4961f0b362214d800846a \ - --hash=sha256:872a5cf366aec6bb1147336480fef14c9164b154aeb6542327de4970282cd2f5 \ - --hash=sha256:8b973c57ff8e184109db042c842423ff4f60446239bd585a5131cc47f06f789d \ - --hash=sha256:8cba086a43d54ca804ce711b2a940b16e452807acebe7852ff327f1ecd49b0d4 \ - --hash=sha256:8f7f0e05112916223d3f438f293abf0727e1181b5983f413dfa2fefc4098245c \ - --hash=sha256:900218e456384ea676e24ea6a0417f030a3b07306d29d7ad843957b40a9d8d52 \ - --hash=sha256:93eebbcf1aafdf7e2ddd44c2923e2672e1010bddc014138b229e49725b4d6be5 \ - --hash=sha256:9c75442b2209b8470d6d5d8b1c25714270686f14c749028d2199c54e29f20b4d \ - --hash=sha256:9ee2197ef8c4f0dfe405d835f3b6a14f5fee7782b5de51ba06fb65fc9b36e9f1 \ - --hash=sha256:a414504bef8945eae5f2d7cb7be2d4af77c5d1cb5e20b296c2c25b61dff2900c \ - --hash=sha256:a4b9159734b326535f4dd01d947f919c6eefd2d9827466a696c44ced82dfbc18 \ - --hash=sha256:a80afd79f45f3c4a7d341f13acbe058d1ca8ac017c165d3fa0d3de6bc1a079d7 \ - --hash=sha256:aa5bc7c5d59d831d9773d1170acac7893ce3a5e130540605770ade83280e7188 \ - --hash=sha256:acfd89508504a19ed06ef963ad544ec6664518c863436306153e13e94605c218 \ - --hash=sha256:aeffcab3d4b43712bb7a60b65f6044d444e75e563ff6180af8f98dd4b905dfd2 \ - --hash=sha256:afaffc4393205524af9dfa400fa250143a6c3bc646c08c9f5e25a9f4b4d6a903 \ - --hash=sha256:b0c7088a73aef3d687c4deef8452a3ac7c1be4e29ed8bf3b366c8111128ac60c \ - --hash=sha256:b46b4ec24f7293f23adcd2d146960559aaf8020213de8ad1909dba6c013bf89c \ - --hash=sha256:b501b5fa195cc9e24fe102f21ec0a44dffc231d2af79950b451e0d99cea02234 \ - --hash=sha256:bf06bc2af43fa8d32d30fae16ad965663e966b1a3202ed407b84c989c3221e82 \ - --hash=sha256:c804e3a5aba5460c73955c955bdbd5c08c354954e9270a2c1565f62e866bdc39 \ - --hash=sha256:c8a9958e88b65c3b27e22ca2a076311636850b612d6bbfb76e8d156aacde2aaf \ - --hash=sha256:cc0a57f895b96ec78969c34f682c602bf8da1a0270b09bc65673df2e7638ec20 \ - --hash=sha256:cc8920d2ec5fa99875b670bb86ddeb21e295cb07aa331810d9e486e0b969d946 \ - --hash=sha256:ccc933afd4d20aad3c00bcef049cb40049f7f196e0397f1109dba6fed63267b0 \ - --hash=sha256:ce581db493ea1a96c0556360ede6607496e8bf9b3a8efa66e06477267bc831e9 \ - --hash=sha256:d0f23b44f57077c1ede8c5f26b30f706498b4862d3ff0a7298b8411dd2f043ff \ - --hash=sha256:d21644de1b609825ede2f48be98dfde4656aefc713654eeee280e37cadc4e0ad \ - --hash=sha256:d6889ec4ec662a1a37eb4b4fb26b6100841804dac55bd9df579e326cdc146227 \ - --hash=sha256:de5672f4a7b200c15a4127042170a694d4df43c992948f5e1af57f0174beed10 \ - --hash=sha256:e6a0bc88393d65807d751a614207b7129a310ca4fe76a74e5c7da5fa5671417e \ - --hash=sha256:ed89927b86296067b4f81f108a2271d8926467a8868e554eaf370fc27fa3ccaf \ - --hash=sha256:ee3888d9ff7c14604052b2ca5535a30216aa0a58e948cdd3eeb8d3415f638769 \ - --hash=sha256:f0963b55cdd70fad460fa4c1341f12f976bb26cb66021a5580329bd498988310 \ - --hash=sha256:f16417ec91f12f814b10bafe79ef77e70113a2f5f7018640e7425ff979253425 \ - --hash=sha256:f28620fe26bee16243be2b7b874da327312240a7cdc38b769a697578d2100013 \ - --hash=sha256:f4255143f5160d0de972d28c8f9665d882b5f61309d8362fdd3e103cf7bf010c \ - --hash=sha256:ffac52f28a7849ad7576293c0cb7b9f08304e8f7d738a8cb8a90ec4c55a998eb \ - --hash=sha256:ffe22d2b05504f786c867c8395de703937f934272eb67586817b46188b4ded6d \ - --hash=sha256:fffe29a1ef00883599d1dc2c51aa2e5d80afe49523c261a74933df395c15c520 +numpy==2.4.0 \ + --hash=sha256:009bd0ea12d3c784b6639a8457537016ce5172109e585338e11334f6a7bb88ee \ + --hash=sha256:02a2038eb27f9443a8b266a66911e926566b5a6ffd1a689b588f7f35b81e7dc3 \ + --hash=sha256:0804a8e4ab070d1d35496e65ffd3cf8114c136a2b81f61dfab0de4b218aacfd5 \ + --hash=sha256:0feafc9e03128074689183031181fac0897ff169692d8492066e949041096548 \ + --hash=sha256:1889b3a3f47a7b5bee16bc25a2145bd7cb91897f815ce3499db64c7458b6d91d \ + --hash=sha256:1d8f9fde5f6dc1b6fc34df8162f3b3079365468703fee7f31d4e0cc8c63baed9 \ + --hash=sha256:1ee32359fb7543b7b7bd0b2f46294db27e29e7bbdf70541e81b190836cd83ded \ + --hash=sha256:20c115517513831860c573996e395707aa9fb691eb179200125c250e895fcd93 \ + --hash=sha256:21555da4ec4a0c942520ead42c3b0dc9477441e085c42b0fbdd6a084869a6f6b \ + --hash=sha256:23a3e9d1a6f360267e8fbb38ba5db355a6a7e9be71d7fce7ab3125e88bb646c8 \ + --hash=sha256:2a8b6bb8369abefb8bd1801b054ad50e02b3275c8614dc6e5b0373c305291037 \ + --hash=sha256:2e284ca13d5a8367e43734148622caf0b261b275673823593e3e3634a6490f83 \ + --hash=sha256:2f585f52b2baf07ff3356158d9268ea095e221371f1074fadea2f42544d58b4d \ + --hash=sha256:316b2f2584682318539f0bcaca5a496ce9ca78c88066579ebd11fd06f8e4741e \ + --hash=sha256:32ed06d0fe9cae27d8fb5f400c63ccee72370599c75e683a6358dd3a4fb50aaf \ + --hash=sha256:355354388cba60f2132df297e2d53053d4063f79077b67b481d21276d61fc4df \ + --hash=sha256:35ddc8f4914466e6fc954c76527aa91aa763682a4f6d73249ef20b418fe6effb \ + --hash=sha256:36667db4d6c1cea79c8930ab72fadfb4060feb4bfe724141cd4bd064d2e5f8ce \ + --hash=sha256:36cbfb13c152b1c7c184ddac43765db8ad672567e7bafff2cc755a09917ed2e6 \ + --hash=sha256:39699233bc72dd482da1415dcb06076e32f60eddc796a796c5fb6c5efce94667 \ + --hash=sha256:39b19251dec4de8ff8496cd0806cbe27bf0684f765abb1f4809554de93785f2d \ + --hash=sha256:3d857f55e7fdf7c38ab96c4558c95b97d1c685be6b05c249f5fdafcbd6f9899e \ + --hash=sha256:3de19cfecd1465d0dcf8a5b5ea8b3155b42ed0b639dba4b71e323d74f2a3be5e \ + --hash=sha256:3f3096405acc48887458bbf9f6814d43785ac7ba2a57ea6442b581dedbc60ce6 \ + --hash=sha256:40483b2f2d3ba7aad426443767ff5632ec3156ef09742b96913787d13c336471 \ + --hash=sha256:413aa561266a4be2d06cd2b9665e89d9f54c543f418773076a76adcf2af08bc7 \ + --hash=sha256:44aba2f0cafd287871a495fb3163408b0bd25bbce135c6f621534a07f4f7875c \ + --hash=sha256:49ff32b09f5aa0cd30a20c2b39db3e669c845589f2b7fc910365210887e39344 \ + --hash=sha256:4d1cfce39e511069b11e67cd0bd78ceff31443b7c9e5c04db73c7a19f572967c \ + --hash=sha256:57c540ed8fb1f05cb997c6761cd56db72395b0d6985e90571ff660452ade4f98 \ + --hash=sha256:5f48cb3e88fbc294dc90e215d86fbaf1c852c63dbdb6c3a3e63f45c4b57f7344 \ + --hash=sha256:5fe44e277225fd3dff6882d86d3d447205d43532c3627313d17e754fb3905a0e \ + --hash=sha256:60e8c196cd82cbbd4f130b5290007e13e6de3eca79f0d4d38014769d96a7c475 \ + --hash=sha256:65167da969cd1ec3a1df31cb221ca3a19a8aaa25370ecb17d428415e93c1935e \ + --hash=sha256:680060061adb2d74ce352628cb798cfdec399068aa7f07ba9fb818b2b3305f98 \ + --hash=sha256:6bbaebf0d11567fa8926215ae731e1d58e6ec28a8a25235b8a47405d301332db \ + --hash=sha256:6c05483c3136ac4c91b4e81903cb53a8707d316f488124d0398499a4f8e8ef51 \ + --hash=sha256:6dc8b7e2f4eb184b37655195f421836cfae6f58197b67e3ffc501f1333d993fa \ + --hash=sha256:6e504f7b16118198f138ef31ba24d985b124c2c469fe8467007cf30fd992f934 \ + --hash=sha256:74623f2ab5cc3f7c886add4f735d1031a1d2be4a4ae63c0546cfd74e7a31ddf6 \ + --hash=sha256:77f0d13fa87036d7553bf81f0e1fe3ce68d14c9976c9851744e4d3e91127e95f \ + --hash=sha256:85eef4cb5625c47ee6425c58a3502555e10f45ee973da878ac8248ad58c136f3 \ + --hash=sha256:882567b7ae57c1b1a0250208cc21a7976d8cbcc49d5a322e607e6f09c9e0bd53 \ + --hash=sha256:8b986403023c8f3bf8f487c2e6186afda156174d31c175f747d8934dfddf3479 \ + --hash=sha256:8cfa5f29a695cb7438965e6c3e8d06e0416060cf0d709c1b1c1653a939bf5c2a \ + --hash=sha256:8eafe7c36c8430b7794edeab3087dec7bf31d634d92f2af9949434b9d1964cba \ + --hash=sha256:9198f447e1dc5647d07c9a6bbe2063cc0132728cc7175b39dbc796da5b54920d \ + --hash=sha256:92190db305a6f48734d3982f2c60fa30d6b5ee9bff10f2887b930d7b40119f4c \ + --hash=sha256:927ccf5cd17c48f801f4ed43a7e5673a2724bd2171460be3e3894e6e332ef83a \ + --hash=sha256:98e81648e0b36e325ab67e46b5400a7a6d4a22b8a7c8e8bbfe20e7db7906bf95 \ + --hash=sha256:9a818668b674047fd88c4cddada7ab8f1c298812783e8328e956b78dc4807f9f \ + --hash=sha256:a152d86a3ae00ba5f47b3acf3b827509fd0b6cb7d3259665e63dafbad22a75ea \ + --hash=sha256:a2718c1de8504121714234b6f8241d0019450353276c88b9453c9c3d92e101db \ + --hash=sha256:a39fb973a726e63223287adc6dafe444ce75af952d711e400f3bf2b36ef55a7b \ + --hash=sha256:a899699294f28f7be8992853c0c60741f16ff199205e2e6cdca155762cbaa59d \ + --hash=sha256:a8fdfed3deaf1928fb7667d96e0567cdf58c2b370ea2ee7e586aa383ec2cb346 \ + --hash=sha256:aabb081ca0ec5d39591fc33018cd4b3f96e1a2dd6756282029986d00a785fba4 \ + --hash=sha256:b1f5b45829ac1848893f0ddf5cb326110604d6df96cdc255b0bf9edd154104d4 \ + --hash=sha256:b48e35f4ab6f6a7597c46e301126ceba4c44cd3280e3750f85db48b082624fa4 \ + --hash=sha256:b54c83f1c0c0f1d748dca0af516062b8829d53d1f0c402be24b4257a9c48ada6 \ + --hash=sha256:ba0cb30acd3ef11c94dc27fbfba68940652492bc107075e7ffe23057f9425681 \ + --hash=sha256:bb50ce5fb202a26fd5404620e7ef820ad1ab3558b444cb0b55beb7ef66cd2d63 \ + --hash=sha256:c95eb6db2884917d86cde0b4d4cf31adf485c8ec36bf8696dd66fa70de96f36b \ + --hash=sha256:d0ffd9e2e4441c96a9c91ec1783285d80bf835b677853fc2770a89d50c1e48ac \ + --hash=sha256:d57b5046c120561ba8fa8e4030fbb8b822f3063910fa901ffadf16e2b7128ad6 \ + --hash=sha256:d9e6a7664ddd9746e20b7325351fe1a8408d0a2bf9c63b5e898290ddc8f09544 \ + --hash=sha256:dc578891de1db95b2a35001b695451767b580bb45753717498213c5ff3c41d63 \ + --hash=sha256:e0434aa22c821f44eeb4c650b81c7fbdd8c0122c6c4b5a576a76d5a35625ecd9 \ + --hash=sha256:e06a922a469cae9a57100864caf4f8a97a1026513793969f8ba5b63137a35d25 \ + --hash=sha256:e493962256a38f58283de033d8af176c5c91c084ea30f15834f7545451c42059 \ + --hash=sha256:ecb0019d44f4cdb50b676c5d0cb4b1eae8e15d1ed3d3e6639f986fc92b2ec52c \ + --hash=sha256:f935c4493eda9069851058fa0d9e39dbf6286be690066509305e52912714dbb2 # via # pandas # pyarrow @@ -610,6 +610,7 @@ packaging==24.2 \ # via # dunamai # hatchling + # meson-python # pyproject-metadata # scikit-build-core # setuptools-scm @@ -769,9 +770,9 @@ types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ --hash=sha256:1e642cdafe837b240295b23b1cbd4691d80b08a07d29932143cbbae30eb0db9c # via mypy -types-setuptools==80.9.0.20250822 \ - --hash=sha256:070ea7716968ec67a84c7f7768d9952ff24d28b65b6594797a464f1b3066f965 \ - --hash=sha256:53bf881cb9d7e46ed12c76ef76c0aaf28cfe6211d3fab12e0b83620b1a8642c3 +types-setuptools==80.9.0.20251223 \ + --hash=sha256:1b36db79d724c2287d83dc052cf887b47c0da6a2fff044378be0b019545f56e6 \ + --hash=sha256:d3411059ae2f5f03985217d86ac6084efea2c9e9cacd5f0869ef950f308169b2 # via mypy typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -779,9 +780,9 @@ typing-extensions==4.15.0 \ # via # mypy # setuptools-scm -uv-dynamic-versioning==0.11.2 \ - --hash=sha256:4c785ea02e00b93896d015fd3613c451735af1715a7f5f52e8e4e1d76e6ec3c5 \ - --hash=sha256:563ab4b7a93904eb8fb8fd9f2959dad853d62baa71f3cdb0233acf8a749d512f +uv-dynamic-versioning==0.12.0 \ + --hash=sha256:2d2f1fb806c2e351d0d0a3840aaf7b3c6ce73757080b1ada4ac5dc44f7dd4c9e \ + --hash=sha256:e853e0c5b2425a68005580325d4975a8c37b66015589ca45ef96e660fe0f8f16 # via mcp versioneer==0.29 \ --hash=sha256:0f1a137bb5d6811e96a79bb0486798aeae9b9c6efc24b389659cebb0ee396cb9 \ diff --git a/sdk/python/requirements/py3.12-minimal-sdist-requirements.txt b/sdk/python/requirements/py3.12-minimal-sdist-requirements.txt index 9f25dc790ef..ac6f755be87 100644 --- a/sdk/python/requirements/py3.12-minimal-sdist-requirements.txt +++ b/sdk/python/requirements/py3.12-minimal-sdist-requirements.txt @@ -178,9 +178,9 @@ babel==2.17.0 \ --hash=sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d \ --hash=sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2 # via sphinx -bigtree==1.0.3 \ - --hash=sha256:18402a143130868b17ca84a74ca263e6f32f046d6978c30d244f8b94c4a01227 \ - --hash=sha256:99a18b6937a9b4ab8e560fec5c0720e10ebf37f84e44f9b5f47702c2e84c9aaa +bigtree==1.0.4 \ + --hash=sha256:e4af0c5bc0d2cd72e18442965e4509f642b16a0de65db6d0ec116e30f959010c \ + --hash=sha256:f58a3238bb9b1142d893c9de4921bfd18d435427c75e0c168dd580eabf6dc7fd # via feast (setup.py) boto3==1.38.27 \ --hash=sha256:94bd7fdd92d5701b362d4df100d21e28f8307a67ff56b6a8b0398119cf22f859 \ @@ -196,9 +196,9 @@ botocore==1.38.46 \ # boto3 # s3transfer # snowflake-connector-python -cachetools==6.2.2 \ - --hash=sha256:6c09c98183bf58560c97b2abfcedcbaf6a896a490f534b031b661d3723b45ace \ - --hash=sha256:8e6d266b25e539df852251cfd6f990b4bc3a141db73b939058d809ebd2590fc6 +cachetools==6.2.4 \ + --hash=sha256:69a7a52634fed8b8bf6e24a050fb60bff1c9bd8f6d24572b99c32d4e71e62a51 \ + --hash=sha256:82c5c05585e70b6ba2d3ae09ea60b79548872185d2f24ae1f2709d37299fd607 # via google-auth calver==2025.3.31 \ --hash=sha256:07511edf5e7fa75ae97445c8c5921240e0fe62937289a3ebe6963eddd3c691b6 \ @@ -543,13 +543,13 @@ cython==3.0.12 \ --hash=sha256:feb86122a823937cc06e4c029d80ff69f082ebb0b959ab52a5af6cdd271c5dc3 \ --hash=sha256:ff5c0b6a65b08117d0534941d404833d516dac422eee88c6b4fd55feb409a5ed # via feast (setup.py) -dask[dataframe]==2025.11.0 \ - --hash=sha256:08c35a8146c05c93b34f83cf651009129c42ee71762da7ca452fb7308641c2b8 \ - --hash=sha256:23d59e624b80ee05b7cc8df858682cca58262c4c3b197ccf61da0f6543c8f7c3 +dask[dataframe]==2025.12.0 \ + --hash=sha256:4213ce9c5d51d6d89337cff69de35d902aa0bf6abdb8a25c942a4d0281f3a598 \ + --hash=sha256:8d478f2aabd025e2453cf733ad64559de90cf328c20209e4574e9543707c3e1b # via feast (setup.py) -db-dtypes==1.4.4 \ - --hash=sha256:26f53db5df1acd746b88c5647913a1b20f731c0af1b11abcb6bec5365f31098a \ - --hash=sha256:32c13039982656a8598a0835f25f0e07e34c9a423e471ee60c2553240b7fcf1e +db-dtypes==1.5.0 \ + --hash=sha256:abdbb2e4eb965800ed6f98af0c5c1cafff9063ace09114be2d26a7f046be2c8a \ + --hash=sha256:ad9e94243f53e104bc77dbf9ae44b580d83a770d3694483aba59c9767966daa5 # via # google-cloud-bigquery # pandas-gbq @@ -557,9 +557,9 @@ dill==0.3.9 \ --hash=sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a \ --hash=sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c # via feast (setup.py) -docutils==0.22.3 \ - --hash=sha256:21486ae730e4ca9f622677b1412b879af1791efcfba517e4c6f60be543fc8cdd \ - --hash=sha256:bd772e4aca73aff037958d44f2be5229ded4c09927fcf8690c577b66234d6ceb +docutils==0.22.4 \ + --hash=sha256:4db53b1fde9abecbb74d91230d32ab626d94f6badfc575d6db9194a49df29968 \ + --hash=sha256:d0013f540772d1420576855455d050a2180186c91c15779301ac2ccb3eeb68de # via sphinx duckdb==1.1.3 \ --hash=sha256:00cca22df96aa3473fe4584f84888e2cf1c516e8c2dd837210daec44eadba586 \ @@ -623,9 +623,9 @@ durationpy==0.10 \ --hash=sha256:1fa6893409a6e739c9c72334fc65cca1f355dbdd93405d30f726deb5bde42fba \ --hash=sha256:3b41e1b601234296b4fb368338fdcd3e13e0b4fb5b67345948f4f2bf9868b286 # via kubernetes -fastapi==0.124.0 \ - --hash=sha256:260cd178ad75e6d259991f2fd9b0fee924b224850079df576a3ba604ce58f4e6 \ - --hash=sha256:91596bdc6dde303c318f06e8d2bc75eafb341fc793a0c9c92c0bc1db1ac52480 +fastapi==0.128.0 \ + --hash=sha256:1cc179e1cef10a6be60ffe429f79b829dce99d8de32d7acb7e6c8dfdf7f2645a \ + --hash=sha256:aebd93f9716ee3b4f4fcfe13ffb7cf308d99c9f3ab5622d8877441072561582d # via # feast (setup.py) # fastapi-mcp @@ -633,9 +633,9 @@ fastapi-mcp==0.4.0 \ --hash=sha256:d4a3fe7966af24d44e4b412720561c95eb12bed999a4443a88221834b3b15aec \ --hash=sha256:d4ca9410996f4c7b8ea0d7b20fdf79878dc359ebf89cbf3b222e0b675a55097d # via feast (setup.py) -filelock==3.20.0 \ - --hash=sha256:339b4732ffda5cd79b13f4e2711a31b0365ce445d95d243bb996273d072546a2 \ - --hash=sha256:711e943b4ec6be42e1d4e6690b48dc175c822967466bb31c0c293f34334c13f4 +filelock==3.20.1 \ + --hash=sha256:15d9e9a67306188a44baa72f569d2bfd803076269365fdea0934385da4dc361a \ + --hash=sha256:b8360948b351b80f420878d8516519a2204b07aefcdcfd24912a5d33127f188c # via snowflake-connector-python flit-core==3.12.0 \ --hash=sha256:18f63100d6f94385c6ed57a72073443e1a71a4acb4339491615d0f16d6ff01b2 \ @@ -793,9 +793,9 @@ google-api-core[grpc]==2.28.1 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.43.0 \ - --hash=sha256:88228eee5fc21b62a1b5fe773ca15e67778cb07dc8363adcb4a8827b52d81483 \ - --hash=sha256:af628ba6fa493f75c7e9dbe9373d148ca9f4399b5ea29976519e0a3848eddd16 +google-auth==2.45.0 \ + --hash=sha256:82344e86dc00410ef5382d99be677c6043d72e502b625aa4f4afa0bdacca0f36 \ + --hash=sha256:90d3f41b6b72ea72dd9811e765699ee491ab24139f34ebf1ca2b9cc0c38708f3 # via # google-api-core # google-auth-oauthlib @@ -814,19 +814,19 @@ google-auth-oauthlib==1.2.2 \ # via # pandas-gbq # pydata-google-auth -google-cloud-bigquery[pandas]==3.38.0 \ - --hash=sha256:8afcb7116f5eac849097a344eb8bfda78b7cfaae128e60e019193dd483873520 \ - --hash=sha256:e06e93ff7b245b239945ef59cb59616057598d369edac457ebf292bd61984da6 +google-cloud-bigquery[pandas]==3.39.0 \ + --hash=sha256:cb375e1d63dea9bd5bf735e66024338f294159d43afdf63e1d023f5fcbbf55ea \ + --hash=sha256:dc7a64921465859105461b43c42562e38e797d7a73feb72b3cfc4865b7b1c5ef # via # feast (setup.py) # pandas-gbq -google-cloud-bigquery-storage==2.35.0 \ - --hash=sha256:c9bab6b8e41d6cb9806e589e65f320c89ada84f466e61566b7208d87924c1430 \ - --hash=sha256:f2e3a08882155de1e9ec53c71c5784eb1f25dc6514c535f5796c3c9eeac17d17 +google-cloud-bigquery-storage==2.36.0 \ + --hash=sha256:1769e568070db672302771d2aec18341de10712aa9c4a8c549f417503e0149f0 \ + --hash=sha256:d3c1ce9d2d3a4d7116259889dcbe3c7c70506f71f6ce6bbe54aa0a68bbba8f8f # via feast (setup.py) -google-cloud-bigtable==2.34.0 \ - --hash=sha256:773258b00cd3f9a3a35639cc38bd711f4f1418aaa0c8d70cb028978ed98dc2c2 \ - --hash=sha256:a4a8db4903840cd3f89fb19c060eea2e7c09c1265cb0538cfc11288dbc6000e4 +google-cloud-bigtable==2.35.0 \ + --hash=sha256:f355bfce1f239453ec2bb3839b0f4f9937cf34ef06ef29e1ca63d58fd38d0c50 \ + --hash=sha256:f5699012c5fea4bd4bdf7e80e5e3a812a847eb8f41bf8dc2f43095d6d876b83b # via feast (setup.py) google-cloud-core==2.5.0 \ --hash=sha256:67d977b41ae6c7211ee830c7912e41003ea8194bff15ae7d72fd6f51e57acabc \ @@ -836,49 +836,48 @@ google-cloud-core==2.5.0 \ # google-cloud-bigtable # google-cloud-datastore # google-cloud-storage -google-cloud-datastore==2.21.0 \ - --hash=sha256:eee454dd4a55f5b327f9f344928ff1a09a6f77c23d5e3d908ad31a13cc2f4073 \ - --hash=sha256:f303f27cd1983383f20bd227019cd8a7897419e0ec6b878367c58c66245f9d9b +google-cloud-datastore==2.23.0 \ + --hash=sha256:24a1b1d29b902148fe41b109699f76fd3aa60591e9d547c0f8b87d7bf9ff213f \ + --hash=sha256:80049883a4ae928fdcc661ba6803ec267665dc0e6f3ce2da91441079a6bb6387 # via feast (setup.py) google-cloud-storage==2.19.0 \ --hash=sha256:aeb971b5c29cf8ab98445082cbfe7b161a1f48ed275822f59ed3f1524ea54fba \ --hash=sha256:cd05e9e7191ba6cb68934d8eb76054d9be4562aa89dbc4236feee4d7d51342b2 # via feast (setup.py) -google-crc32c==1.7.1 \ - --hash=sha256:0f99eaa09a9a7e642a61e06742856eec8b19fc0037832e03f941fe7cf0c8e4db \ - --hash=sha256:19eafa0e4af11b0a4eb3974483d55d2d77ad1911e6cf6f832e1574f6781fd337 \ - --hash=sha256:1c67ca0a1f5b56162951a9dae987988679a7db682d6f97ce0f6381ebf0fbea4c \ - --hash=sha256:1f2b3522222746fff0e04a9bd0a23ea003ba3cccc8cf21385c564deb1f223242 \ - --hash=sha256:22beacf83baaf59f9d3ab2bbb4db0fb018da8e5aebdce07ef9f09fce8220285e \ - --hash=sha256:2bff2305f98846f3e825dbeec9ee406f89da7962accdb29356e4eadc251bd472 \ - --hash=sha256:2d73a68a653c57281401871dd4aeebbb6af3191dcac751a76ce430df4d403194 \ - --hash=sha256:32d1da0d74ec5634a05f53ef7df18fc646666a25efaaca9fc7dcfd4caf1d98c3 \ - --hash=sha256:3bda0fcb632d390e3ea8b6b07bf6b4f4a66c9d02dcd6fbf7ba00a197c143f582 \ - --hash=sha256:6335de12921f06e1f774d0dd1fbea6bf610abe0887a1638f64d694013138be5d \ - --hash=sha256:6b211ddaf20f7ebeec5c333448582c224a7c90a9d98826fbab82c0ddc11348e6 \ - --hash=sha256:6efb97eb4369d52593ad6f75e7e10d053cf00c48983f7a973105bc70b0ac4d82 \ - --hash=sha256:6fbab4b935989e2c3610371963ba1b86afb09537fd0c633049be82afe153ac06 \ - --hash=sha256:713121af19f1a617054c41f952294764e0c5443d5a5d9034b2cd60f5dd7e0349 \ - --hash=sha256:754561c6c66e89d55754106739e22fdaa93fafa8da7221b29c8b8e8270c6ec8a \ - --hash=sha256:7cc81b3a2fbd932a4313eb53cc7d9dde424088ca3a0337160f35d91826880c1d \ - --hash=sha256:85fef7fae11494e747c9fd1359a527e5970fc9603c90764843caabd3a16a0a48 \ - --hash=sha256:905a385140bf492ac300026717af339790921f411c0dfd9aa5a9e69a08ed32eb \ - --hash=sha256:9fc196f0b8d8bd2789352c6a522db03f89e83a0ed6b64315923c396d7a932315 \ - --hash=sha256:a8e9afc74168b0b2232fb32dd202c93e46b7d5e4bf03e66ba5dc273bb3559589 \ - --hash=sha256:b07d48faf8292b4db7c3d64ab86f950c2e94e93a11fd47271c28ba458e4a0d76 \ - --hash=sha256:b6d86616faaea68101195c6bdc40c494e4d76f41e07a37ffdef270879c15fb65 \ - --hash=sha256:b7491bdc0c7564fcf48c0179d2048ab2f7c7ba36b84ccd3a3e1c3f7a72d3bba6 \ - --hash=sha256:bb5e35dcd8552f76eed9461a23de1030920a3c953c1982f324be8f97946e7127 \ - --hash=sha256:d68e17bad8f7dd9a49181a1f5a8f4b251c6dbc8cc96fb79f1d321dfd57d66f53 \ - --hash=sha256:dcdf5a64adb747610140572ed18d011896e3b9ae5195f2514b7ff678c80f1603 \ - --hash=sha256:df8b38bdaf1629d62d51be8bdd04888f37c451564c2042d36e5812da9eff3c35 \ - --hash=sha256:e10554d4abc5238823112c2ad7e4560f96c7bf3820b202660373d769d9e6e4c9 \ - --hash=sha256:e42e20a83a29aa2709a0cf271c7f8aefaa23b7ab52e53b322585297bb94d4638 \ - --hash=sha256:ed66cbe1ed9cbaaad9392b5259b3eba4a9e565420d734e6238813c428c3336c9 \ - --hash=sha256:ee6547b657621b6cbed3562ea7826c3e11cab01cd33b74e1f677690652883e77 \ - --hash=sha256:f2226b6a8da04f1d9e61d3e357f2460b9551c5e6950071437e122c958a18ae14 \ - --hash=sha256:fa8136cc14dd27f34a3221c0f16fd42d8a40e4778273e61a3c19aedaa44daf6b \ - --hash=sha256:fc5319db92daa516b653600794d5b9f9439a9a121f3e162f94b0e1891c7933cb +google-crc32c==1.8.0 \ + --hash=sha256:014a7e68d623e9a4222d663931febc3033c5c7c9730785727de2a81f87d5bab8 \ + --hash=sha256:01f126a5cfddc378290de52095e2c7052be2ba7656a9f0caf4bcd1bfb1833f8a \ + --hash=sha256:0470b8c3d73b5f4e3300165498e4cf25221c7eb37f1159e221d1825b6df8a7ff \ + --hash=sha256:119fcd90c57c89f30040b47c211acee231b25a45d225e3225294386f5d258288 \ + --hash=sha256:14f87e04d613dfa218d6135e81b78272c3b904e2a7053b841481b38a7d901411 \ + --hash=sha256:17446feb05abddc187e5441a45971b8394ea4c1b6efd88ab0af393fd9e0a156a \ + --hash=sha256:19b40d637a54cb71e0829179f6cb41835f0fbd9e8eb60552152a8b52c36cbe15 \ + --hash=sha256:2a3dc3318507de089c5384cc74d54318401410f82aa65b2d9cdde9d297aca7cb \ + --hash=sha256:3b9776774b24ba76831609ffbabce8cdf6fa2bd5e9df37b594221c7e333a81fa \ + --hash=sha256:3cc0c8912038065eafa603b238abf252e204accab2a704c63b9e14837a854962 \ + --hash=sha256:3d488e98b18809f5e322978d4506373599c0c13e6c5ad13e53bb44758e18d215 \ + --hash=sha256:3ebb04528e83b2634857f43f9bb8ef5b2bbe7f10f140daeb01b58f972d04736b \ + --hash=sha256:450dc98429d3e33ed2926fc99ee81001928d63460f8538f21a5d6060912a8e27 \ + --hash=sha256:4b8286b659c1335172e39563ab0a768b8015e88e08329fa5321f774275fc3113 \ + --hash=sha256:57a50a9035b75643996fbf224d6661e386c7162d1dfdab9bc4ca790947d1007f \ + --hash=sha256:61f58b28e0b21fcb249a8247ad0db2e64114e201e2e9b4200af020f3b6242c9f \ + --hash=sha256:6f35aaffc8ccd81ba3162443fabb920e65b1f20ab1952a31b13173a67811467d \ + --hash=sha256:71734788a88f551fbd6a97be9668a0020698e07b2bf5b3aa26a36c10cdfb27b2 \ + --hash=sha256:864abafe7d6e2c4c66395c1eb0fe12dc891879769b52a3d56499612ca93b6092 \ + --hash=sha256:86cfc00fe45a0ac7359e5214a1704e51a99e757d0272554874f419f79838c5f7 \ + --hash=sha256:87b0072c4ecc9505cfa16ee734b00cd7721d20a0f595be4d40d3d21b41f65ae2 \ + --hash=sha256:87fa445064e7db928226b2e6f0d5304ab4cd0339e664a4e9a25029f384d9bb93 \ + --hash=sha256:89c17d53d75562edfff86679244830599ee0a48efc216200691de8b02ab6b2b8 \ + --hash=sha256:8b3f68782f3cbd1bce027e48768293072813469af6a61a86f6bb4977a4380f21 \ + --hash=sha256:a428e25fb7691024de47fecfbff7ff957214da51eddded0da0ae0e0f03a2cf79 \ + --hash=sha256:b0d1a7afc6e8e4635564ba8aa5c0548e3173e41b6384d7711a9123165f582de2 \ + --hash=sha256:ba6aba18daf4d36ad4412feede6221414692f44d17e5428bdd81ad3fc1eee5dc \ + --hash=sha256:cb5c869c2923d56cb0c8e6bcdd73c009c36ae39b652dbe46a05eb4ef0ad01454 \ + --hash=sha256:d511b3153e7011a27ab6ee6bb3a5404a55b994dc1a7322c0b87b29606d9790e2 \ + --hash=sha256:db3fe8eaf0612fc8b20fa21a5f25bd785bc3cd5be69f8f3412b0ac2ffd49e733 \ + --hash=sha256:e6584b12cb06796d285d09e33f63309a09368b9d806a551d8036a4207ea43697 \ + --hash=sha256:f4b51844ef67d6cf2e9425983274da75f18b1597bb2c998e1c0a0e8d46f8f651 \ + --hash=sha256:f639065ea2042d5c034bf258a9f085eaa7af0cd250667c0635a3118e8f92c69c # via # google-cloud-bigtable # google-cloud-storage @@ -1011,6 +1010,7 @@ grpcio==1.62.3 \ # google-api-core # google-cloud-bigquery # google-cloud-bigquery-storage + # google-cloud-datastore # googleapis-common-protos # grpc-google-iam-v1 # grpcio-health-checking @@ -1262,83 +1262,83 @@ kubernetes==33.1.0 \ --hash=sha256:544de42b24b64287f7e0aa9513c93cb503f7f40eea39b20f66810011a86eabc5 \ --hash=sha256:f64d829843a54c251061a8e7a14523b521f2dc5c896cf6d65ccf348648a88993 # via feast (setup.py) -librt==0.7.3 \ - --hash=sha256:020c6db391268bcc8ce75105cb572df8cb659a43fd347366aaa407c366e5117a \ - --hash=sha256:0fa9ac2e49a6bee56e47573a6786cb635e128a7b12a0dc7851090037c0d397a3 \ - --hash=sha256:11ad45122bbed42cfc8b0597450660126ef28fd2d9ae1a219bc5af8406f95678 \ - --hash=sha256:120dd21d46ff875e849f1aae19346223cf15656be489242fe884036b23d39e93 \ - --hash=sha256:14569ac5dd38cfccf0a14597a88038fb16811a6fede25c67b79c6d50fc2c8fdc \ - --hash=sha256:1617bea5ab31266e152871208502ee943cb349c224846928a1173c864261375e \ - --hash=sha256:170cdb8436188347af17bf9cccf3249ba581c933ed56d926497119d4cf730cec \ - --hash=sha256:1975eda520957c6e0eb52d12968dd3609ffb7eef05d4223d097893d6daf1d8a7 \ - --hash=sha256:1fe603877e1865b5fd047a5e40379509a4a60204aa7aa0f72b16f7a41c3f0712 \ - --hash=sha256:24d70810f6e2ea853ff79338001533716b373cc0f63e2a0be5bc96129edb5fb5 \ - --hash=sha256:256793988bff98040de23c57cf36e1f4c2f2dc3dcd17537cdac031d3b681db71 \ - --hash=sha256:25711f364c64cab2c910a0247e90b51421e45dbc8910ceeb4eac97a9e132fc6f \ - --hash=sha256:2682162855a708e3270eba4b92026b93f8257c3e65278b456c77631faf0f4f7a \ - --hash=sha256:2cf9d73499486ce39eebbff5f42452518cc1f88d8b7ea4a711ab32962b176ee2 \ - --hash=sha256:2e40520c37926166c24d0c2e0f3bc3a5f46646c34bdf7b4ea9747c297d6ee809 \ - --hash=sha256:2e980cf1ed1a2420a6424e2ed884629cdead291686f1048810a817de07b5eb18 \ - --hash=sha256:2f03484b54bf4ae80ab2e504a8d99d20d551bfe64a7ec91e218010b467d77093 \ - --hash=sha256:35f1609e3484a649bb80431310ddbec81114cd86648f1d9482bc72a3b86ded2e \ - --hash=sha256:399938edbd3d78339f797d685142dd8a623dfaded023cf451033c85955e4838a \ - --hash=sha256:399bbd7bcc1633c3e356ae274a1deb8781c7bf84d9c7962cc1ae0c6e87837292 \ - --hash=sha256:3ec50cf65235ff5c02c5b747748d9222e564ad48597122a361269dd3aa808798 \ - --hash=sha256:3edbf257c40d21a42615e9e332a6b10a8bacaaf58250aed8552a14a70efd0d65 \ - --hash=sha256:440c788f707c061d237c1e83edf6164ff19f5c0f823a3bf054e88804ebf971ec \ - --hash=sha256:44b3689b040df57f492e02cd4f0bacd1b42c5400e4b8048160c9d5e866de8abe \ - --hash=sha256:4887c29cadbdc50640179e3861c276325ff2986791e6044f73136e6e798ff806 \ - --hash=sha256:5460d99ed30f043595bbdc888f542bad2caeb6226b01c33cda3ae444e8f82d42 \ - --hash=sha256:550fdbfbf5bba6a2960b27376ca76d6aaa2bd4b1a06c4255edd8520c306fcfc0 \ - --hash=sha256:56f2a47beda8409061bc1c865bef2d4bd9ff9255219402c0817e68ab5ad89aed \ - --hash=sha256:572a24fc5958c61431da456a0ef1eeea6b4989d81eeb18b8e5f1f3077592200b \ - --hash=sha256:59cb0470612d21fa1efddfa0dd710756b50d9c7fb6c1236bbf8ef8529331dc70 \ - --hash=sha256:6038ccbd5968325a5d6fd393cf6e00b622a8de545f0994b89dd0f748dcf3e19e \ - --hash=sha256:6488e69d408b492e08bfb68f20c4a899a354b4386a446ecd490baff8d0862720 \ - --hash=sha256:687403cced6a29590e6be6964463835315905221d797bc5c934a98750fe1a9af \ - --hash=sha256:6b407c23f16ccc36614c136251d6b32bf30de7a57f8e782378f1107be008ddb0 \ - --hash=sha256:6b4e7bff1d76dd2b46443078519dc75df1b5e01562345f0bb740cea5266d8218 \ - --hash=sha256:6bdd9adfca615903578d2060ee8a6eb1c24eaf54919ff0ddc820118e5718931b \ - --hash=sha256:6eb9295c730e26b849ed1f4022735f36863eb46b14b6e10604c1c39b8b5efaea \ - --hash=sha256:703456146dc2bf430f7832fd1341adac5c893ec3c1430194fdcefba00012555c \ - --hash=sha256:754a0d09997095ad764ccef050dd5bf26cbf457aab9effcba5890dad081d879e \ - --hash=sha256:7af7785f5edd1f418da09a8cdb9ec84b0213e23d597413e06525340bcce1ea4f \ - --hash=sha256:7b29e97273bd6999e2bfe9fe3531b1f4f64effd28327bced048a33e49b99674a \ - --hash=sha256:7b4f57f7a0c65821c5441d98c47ff7c01d359b1e12328219709bdd97fdd37f90 \ - --hash=sha256:8837d5a52a2d7aa9f4c3220a8484013aed1d8ad75240d9a75ede63709ef89055 \ - --hash=sha256:8ccadf260bb46a61b9c7e89e2218f6efea9f3eeaaab4e3d1f58571890e54858e \ - --hash=sha256:8d8cf653e798ee4c4e654062b633db36984a1572f68c3aa25e364a0ddfbbb910 \ - --hash=sha256:93b2a1f325fefa1482516ced160c8c7b4b8d53226763fa6c93d151fa25164207 \ - --hash=sha256:9f0e0927efe87cd42ad600628e595a1a0aa1c64f6d0b55f7e6059079a428641a \ - --hash=sha256:a59a69deeb458c858b8fea6acf9e2acd5d755d76cd81a655256bc65c20dfff5b \ - --hash=sha256:a9f9b661f82693eb56beb0605156c7fca57f535704ab91837405913417d6990b \ - --hash=sha256:abfc57cab3c53c4546aee31859ef06753bfc136c9d208129bad23e2eca39155a \ - --hash=sha256:aca73d70c3f553552ba9133d4a09e767dcfeee352d8d8d3eb3f77e38a3beb3ed \ - --hash=sha256:adeaa886d607fb02563c1f625cf2ee58778a2567c0c109378da8f17ec3076ad7 \ - --hash=sha256:b278a9248a4e3260fee3db7613772ca9ab6763a129d6d6f29555e2f9b168216d \ - --hash=sha256:b7c1239b64b70be7759554ad1a86288220bbb04d68518b527783c4ad3fb4f80b \ - --hash=sha256:bf8c7735fbfc0754111f00edda35cf9e98a8d478de6c47b04eaa9cef4300eaa7 \ - --hash=sha256:c634a0a6db395fdaba0361aa78395597ee72c3aad651b9a307a3a7eaf5efd67e \ - --hash=sha256:cad9971881e4fec00d96af7eaf4b63aa7a595696fc221808b0d3ce7ca9743258 \ - --hash=sha256:cbdb3f337c88b43c3b49ca377731912c101178be91cb5071aac48faa898e6f8e \ - --hash=sha256:cd8551aa21df6c60baa2624fd086ae7486bdde00c44097b32e1d1b1966e365e0 \ - --hash=sha256:d09f677693328503c9e492e33e9601464297c01f9ebd966ea8fc5308f3069bfd \ - --hash=sha256:d376a35c6561e81d2590506804b428fc1075fcc6298fc5bb49b771534c0ba010 \ - --hash=sha256:d39079379a9a28e74f4d57dc6357fa310a1977b51ff12239d7271ec7e71d67f5 \ - --hash=sha256:d86f94743a11873317094326456b23f8a5788bad9161fd2f0e52088c33564620 \ - --hash=sha256:d91e60ac44bbe3a77a67af4a4c13114cbe9f6d540337ce22f2c9eaf7454ca71f \ - --hash=sha256:d9883b2d819ce83f87ba82a746c81d14ada78784db431e57cc9719179847376e \ - --hash=sha256:e094e445c37c57e9ec612847812c301840239d34ccc5d153a982fa9814478c60 \ - --hash=sha256:e19acfde38cb532a560b98f473adc741c941b7a9bc90f7294bc273d08becb58b \ - --hash=sha256:e32d43610dff472eab939f4d7fbdd240d1667794192690433672ae22d7af8445 \ - --hash=sha256:ed028fc3d41adda916320712838aec289956c89b4f0a361ceadf83a53b4c047a \ - --hash=sha256:ef59c938f72bdbc6ab52dc50f81d0637fde0f194b02d636987cea2ab30f8f55a \ - --hash=sha256:f3d4801db8354436fd3936531e7f0e4feb411f62433a6b6cb32bb416e20b529f \ - --hash=sha256:f57aca20e637750a2c18d979f7096e2c2033cc40cf7ed201494318de1182f135 \ - --hash=sha256:f9da128d0edf990cf0d2ca011b02cd6f639e79286774bd5b0351245cbb5a6e51 \ - --hash=sha256:fbd7351d43b80d9c64c3cfcb50008f786cc82cba0450e8599fdd64f264320bd3 \ - --hash=sha256:fcb72249ac4ea81a7baefcbff74df7029c3cb1cf01a711113fa052d563639c9c \ - --hash=sha256:ff21c554304e8226bf80c3a7754be27c6c3549a9fec563a03c06ee8f494da8fc +librt==0.7.5 \ + --hash=sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee \ + --hash=sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1 \ + --hash=sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4 \ + --hash=sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899 \ + --hash=sha256:0e2bf8f91093fac43e3eaebacf777f12fd539dce9ec5af3efc6d8424e96ccd49 \ + --hash=sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d \ + --hash=sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760 \ + --hash=sha256:191cbd42660446d67cf7a95ac7bfa60f49b8b3b0417c64f216284a1d86fc9335 \ + --hash=sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8 \ + --hash=sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2 \ + --hash=sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec \ + --hash=sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b \ + --hash=sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0 \ + --hash=sha256:39183abee670bc37b85f11e86c44a9cad1ed6efa48b580083e89ecee13dd9717 \ + --hash=sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325 \ + --hash=sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45 \ + --hash=sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d \ + --hash=sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233 \ + --hash=sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d \ + --hash=sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544 \ + --hash=sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802 \ + --hash=sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2 \ + --hash=sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d \ + --hash=sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f \ + --hash=sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169 \ + --hash=sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe \ + --hash=sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982 \ + --hash=sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2 \ + --hash=sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa \ + --hash=sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4 \ + --hash=sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4 \ + --hash=sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57 \ + --hash=sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26 \ + --hash=sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361 \ + --hash=sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad \ + --hash=sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e \ + --hash=sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf \ + --hash=sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f \ + --hash=sha256:8dcae24de1bc9da93aa689cb6313c70e776d7cea2fcf26b9b6160fedfe6bd9af \ + --hash=sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2 \ + --hash=sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89 \ + --hash=sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904 \ + --hash=sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6 \ + --hash=sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276 \ + --hash=sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e \ + --hash=sha256:a9eacbf983319b26b5f340a2e0cd47ac1ee4725a7f3a72fd0f15063c934b69d6 \ + --hash=sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409 \ + --hash=sha256:af69d9e159575e877c7546d1ee817b4ae089aa221dd1117e20c24ad8dc8659c7 \ + --hash=sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a \ + --hash=sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4 \ + --hash=sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775 \ + --hash=sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203 \ + --hash=sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419 \ + --hash=sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5 \ + --hash=sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023 \ + --hash=sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b \ + --hash=sha256:cdb001a1a0e4f41e613bca2c0fc147fc8a7396f53fc94201cbfd8ec7cd69ca4b \ + --hash=sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d \ + --hash=sha256:d2cc7d187e8c6e9b7bdbefa9697ce897a704ea7a7ce844f2b4e0e2aa07ae51d3 \ + --hash=sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e \ + --hash=sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a \ + --hash=sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b \ + --hash=sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db \ + --hash=sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd \ + --hash=sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa \ + --hash=sha256:df2e210400b28e50994477ebf82f055698c79797b6ee47a1669d383ca33263e1 \ + --hash=sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805 \ + --hash=sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a \ + --hash=sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25 \ + --hash=sha256:ea1b60b86595a5dc1f57b44a801a1c4d8209c0a69518391d349973a4491408e6 \ + --hash=sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b \ + --hash=sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5 \ + --hash=sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416 \ + --hash=sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc \ + --hash=sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7 \ + --hash=sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96 # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ @@ -1439,9 +1439,9 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via jinja2 -mcp==1.23.3 \ - --hash=sha256:32768af4b46a1b4f7df34e2bfdf5c6011e7b63d7f1b0e321d0fdef4cd6082031 \ - --hash=sha256:b3b0da2cc949950ce1259c7bfc1b081905a51916fcd7c8182125b85e70825201 +mcp==1.25.0 \ + --hash=sha256:56310361ebf0364e2d438e5b45f7668cbb124e158bb358333cd06e49e83a6802 \ + --hash=sha256:b37c38144a666add0862614cc79ec276e97d72aa8ca26d622818d4e278b9721a # via fastapi-mcp mdurl==0.1.2 \ --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ @@ -1731,125 +1731,123 @@ multidict==6.7.0 \ # aiobotocore # aiohttp # yarl -mypy==1.19.0 \ - --hash=sha256:0c01c99d626380752e527d5ce8e69ffbba2046eb8a060db0329690849cf9b6f9 \ - --hash=sha256:0dde5cb375cb94deff0d4b548b993bec52859d1651e073d63a1386d392a95495 \ - --hash=sha256:0e3c3d1e1d62e678c339e7ade72746a9e0325de42cd2cccc51616c7b2ed1a018 \ - --hash=sha256:0ea4fd21bb48f0da49e6d3b37ef6bd7e8228b9fe41bbf4d80d9364d11adbd43c \ - --hash=sha256:0fb3115cb8fa7c5f887c8a8d81ccdcb94cff334684980d847e5a62e926910e1d \ - --hash=sha256:11f7254c15ab3f8ed68f8e8f5cbe88757848df793e31c36aaa4d4f9783fd08ab \ - --hash=sha256:120cffe120cca5c23c03c77f84abc0c14c5d2e03736f6c312480020082f1994b \ - --hash=sha256:16f76ff3f3fd8137aadf593cb4607d82634fca675e8211ad75c43d86033ee6c6 \ - --hash=sha256:1cf9c59398db1c68a134b0b5354a09a1e124523f00bacd68e553b8bd16ff3299 \ - --hash=sha256:318ba74f75899b0e78b847d8c50821e4c9637c79d9a59680fc1259f29338cb3e \ - --hash=sha256:3210d87b30e6af9c8faed61be2642fcbe60ef77cec64fa1ef810a630a4cf671c \ - --hash=sha256:34ec1ac66d31644f194b7c163d7f8b8434f1b49719d403a5d26c87fff7e913f7 \ - --hash=sha256:37af5166f9475872034b56c5efdcf65ee25394e9e1d172907b84577120714364 \ - --hash=sha256:3ad925b14a0bb99821ff6f734553294aa6a3440a8cb082fe1f5b84dfb662afb1 \ - --hash=sha256:510c014b722308c9bd377993bcbf9a07d7e0692e5fa8fc70e639c1eb19fc6bee \ - --hash=sha256:6016c52ab209919b46169651b362068f632efcd5eb8ef9d1735f6f86da7853b2 \ - --hash=sha256:6148ede033982a8c5ca1143de34c71836a09f105068aaa8b7d5edab2b053e6c8 \ - --hash=sha256:63ea6a00e4bd6822adbfc75b02ab3653a17c02c4347f5bb0cf1d5b9df3a05835 \ - --hash=sha256:7686ed65dbabd24d20066f3115018d2dce030d8fa9db01aa9f0a59b6813e9f9e \ - --hash=sha256:7a500ab5c444268a70565e374fc803972bfd1f09545b13418a5174e29883dab7 \ - --hash=sha256:8f44f2ae3c58421ee05fe609160343c25f70e3967f6e32792b5a78006a9d850f \ - --hash=sha256:a18d8abdda14035c5718acb748faec09571432811af129bf0d9e7b2d6699bf18 \ - --hash=sha256:a31e4c28e8ddb042c84c5e977e28a21195d086aaffaf08b016b78e19c9ef8106 \ - --hash=sha256:a9ac09e52bb0f7fb912f5d2a783345c72441a08ef56ce3e17c1752af36340a39 \ - --hash=sha256:b9d491295825182fba01b6ffe2c6fe4e5a49dbf4e2bb4d1217b6ced3b4797bc6 \ - --hash=sha256:c14a98bc63fd867530e8ec82f217dae29d0550c86e70debc9667fff1ec83284e \ - --hash=sha256:c3385246593ac2b97f155a0e9639be906e73534630f663747c71908dfbf26134 \ - --hash=sha256:cabbee74f29aa9cd3b444ec2f1e4fa5a9d0d746ce7567a6a609e224429781f53 \ - --hash=sha256:cb64b0ba5980466a0f3f9990d1c582bcab8db12e29815ecb57f1408d99b4bff7 \ - --hash=sha256:cf7d84f497f78b682edd407f14a7b6e1a2212b433eedb054e2081380b7395aa3 \ - --hash=sha256:e2c1101ab41d01303103ab6ef82cbbfedb81c1a060c868fa7cc013d573d37ab5 \ - --hash=sha256:f188dcf16483b3e59f9278c4ed939ec0254aa8a60e8fc100648d9ab5ee95a431 \ - --hash=sha256:f2e36bed3c6d9b5f35d28b63ca4b727cb0228e480826ffc8953d1892ddc8999d \ - --hash=sha256:f3e19e3b897562276bb331074d64c076dbdd3e79213f36eed4e592272dabd760 \ - --hash=sha256:f6b874ca77f733222641e5c46e4711648c4037ea13646fd0cdc814c2eaec2528 \ - --hash=sha256:f75e60aca3723a23511948539b0d7ed514dda194bc3755eae0bfc7a6b4887aa7 \ - --hash=sha256:fc51a5b864f73a3a182584b1ac75c404396a17eced54341629d8bdcb644a5bba \ - --hash=sha256:fd4a985b2e32f23bead72e2fb4bbe5d6aceee176be471243bd831d5b2644672d +mypy==1.19.1 \ + --hash=sha256:016f2246209095e8eda7538944daa1d60e1e8134d98983b9fc1e92c1fc0cb8dd \ + --hash=sha256:022ea7279374af1a5d78dfcab853fe6a536eebfda4b59deab53cd21f6cd9f00b \ + --hash=sha256:06e6170bd5836770e8104c8fdd58e5e725cfeb309f0a6c681a811f557e97eac1 \ + --hash=sha256:19d88bb05303fe63f71dd2c6270daca27cb9401c4ca8255fe50d1d920e0eb9ba \ + --hash=sha256:21761006a7f497cb0d4de3d8ef4ca70532256688b0523eee02baf9eec895e27b \ + --hash=sha256:28902ee51f12e0f19e1e16fbe2f8f06b6637f482c459dd393efddd0ec7f82045 \ + --hash=sha256:2899753e2f61e571b3971747e302d5f420c3fd09650e1951e99f823bc3089dac \ + --hash=sha256:2abb24cf3f17864770d18d673c85235ba52456b36a06b6afc1e07c1fdcd3d0e6 \ + --hash=sha256:34c81968774648ab5ac09c29a375fdede03ba253f8f8287847bd480782f73a6a \ + --hash=sha256:409088884802d511ee52ca067707b90c883426bd95514e8cfda8281dc2effe24 \ + --hash=sha256:481daf36a4c443332e2ae9c137dfee878fcea781a2e3f895d54bd3002a900957 \ + --hash=sha256:4b84a7a18f41e167f7995200a1d07a4a6810e89d29859df936f1c3923d263042 \ + --hash=sha256:4f28f99c824ecebcdaa2e55d82953e38ff60ee5ec938476796636b86afa3956e \ + --hash=sha256:5f05aa3d375b385734388e844bc01733bd33c644ab48e9684faa54e5389775ec \ + --hash=sha256:7bcfc336a03a1aaa26dfce9fff3e287a3ba99872a157561cbfcebe67c13308e3 \ + --hash=sha256:804bd67b8054a85447c8954215a906d6eff9cabeabe493fb6334b24f4bfff718 \ + --hash=sha256:8bb5c6f6d043655e055be9b542aa5f3bdd30e4f3589163e85f93f3640060509f \ + --hash=sha256:a009ffa5a621762d0c926a078c2d639104becab69e79538a494bcccb62cc0331 \ + --hash=sha256:a8174a03289288c1f6c46d55cef02379b478bfbc8e358e02047487cad44c6ca1 \ + --hash=sha256:ab43590f9cd5108f41aacf9fca31841142c786827a74ab7cc8a2eacb634e09a1 \ + --hash=sha256:b10e7c2cd7870ba4ad9b2d8a6102eb5ffc1f16ca35e3de6bfa390c1113029d13 \ + --hash=sha256:b13cfdd6c87fc3efb69ea4ec18ef79c74c3f98b4e5498ca9b85ab3b2c2329a67 \ + --hash=sha256:b64d987153888790bcdb03a6473d321820597ab8dd9243b27a92153c4fa50fd2 \ + --hash=sha256:b7951a701c07ea584c4fe327834b92a30825514c868b1f69c30445093fdd9d5a \ + --hash=sha256:bdb12f69bcc02700c2b47e070238f42cb87f18c0bc1fc4cdb4fb2bc5fd7a3b8b \ + --hash=sha256:c35d298c2c4bba75feb2195655dfea8124d855dfd7343bf8b8c055421eaf0cf8 \ + --hash=sha256:c608937067d2fc5a4dd1a5ce92fd9e1398691b8c5d012d66e1ddd430e9244376 \ + --hash=sha256:c9a6538e0415310aad77cb94004ca6482330fece18036b5f360b62c45814c4ef \ + --hash=sha256:d8dfc6ab58ca7dda47d9237349157500468e404b17213d44fc1cb77bce532288 \ + --hash=sha256:da4869fc5e7f62a88f3fe0b5c919d1d9f7ea3cef92d3689de2823fd27e40aa75 \ + --hash=sha256:de759aafbae8763283b2ee5869c7255391fbc4de3ff171f8f030b5ec48381b74 \ + --hash=sha256:e3157c7594ff2ef1634ee058aafc56a82db665c9438fd41b390f3bde1ab12250 \ + --hash=sha256:e3f276d8493c3c97930e354b2595a44a21348b320d859fb4a2b9f66da9ed27ab \ + --hash=sha256:ee4c11e460685c3e0c64a4c5de82ae143622410950d6be863303a1c4ba0e36d6 \ + --hash=sha256:f1235f5ea01b7db5468d53ece6aaddf1ad0b88d9e7462b86ef96fe04995d7247 \ + --hash=sha256:f7cee03c9a2e2ee26ec07479f38ea9c884e301d42c6d43a19d20fb014e3ba925 \ + --hash=sha256:f859fb09d9583a985be9a493d5cfc5515b56b08f7447759a0c5deaf68d80506e \ + --hash=sha256:ffcebe56eb09ff0c0885e750036a095e23793ba6c2e894e7e63f6d89ad51f22e # via sqlalchemy mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 # via mypy -numpy==2.3.5 \ - --hash=sha256:00dc4e846108a382c5869e77c6ed514394bdeb3403461d25a829711041217d5b \ - --hash=sha256:0472f11f6ec23a74a906a00b48a4dcf3849209696dff7c189714511268d103ae \ - --hash=sha256:04822c00b5fd0323c8166d66c701dc31b7fbd252c100acd708c48f763968d6a3 \ - --hash=sha256:052e8c42e0c49d2575621c158934920524f6c5da05a1d3b9bab5d8e259e045f0 \ - --hash=sha256:09a1bea522b25109bf8e6f3027bd810f7c1085c64a0c7ce050c1676ad0ba010b \ - --hash=sha256:0cd00b7b36e35398fa2d16af7b907b65304ef8bb4817a550e06e5012929830fa \ - --hash=sha256:0d8163f43acde9a73c2a33605353a4f1bc4798745a8b1d73183b28e5b435ae28 \ - --hash=sha256:1062fde1dcf469571705945b0f221b73928f34a20c904ffb45db101907c3454e \ - --hash=sha256:11e06aa0af8c0f05104d56450d6093ee639e15f24ecf62d417329d06e522e017 \ - --hash=sha256:17531366a2e3a9e30762c000f2c43a9aaa05728712e25c11ce1dbe700c53ad41 \ - --hash=sha256:1978155dd49972084bd6ef388d66ab70f0c323ddee6f693d539376498720fb7e \ - --hash=sha256:1ed1ec893cff7040a02c8aa1c8611b94d395590d553f6b53629a4461dc7f7b63 \ - --hash=sha256:2dcd0808a421a482a080f89859a18beb0b3d1e905b81e617a188bd80422d62e9 \ - --hash=sha256:2e2eb32ddb9ccb817d620ac1d8dae7c3f641c1e5f55f531a33e8ab97960a75b8 \ - --hash=sha256:2feae0d2c91d46e59fcd62784a3a83b3fb677fead592ce51b5a6fbb4f95965ff \ - --hash=sha256:3095bdb8dd297e5920b010e96134ed91d852d81d490e787beca7e35ae1d89cf7 \ - --hash=sha256:30bc11310e8153ca664b14c5f1b73e94bd0503681fcf136a163de856f3a50139 \ - --hash=sha256:3101e5177d114a593d79dd79658650fe28b5a0d8abeb8ce6f437c0e6df5be1a4 \ - --hash=sha256:396084a36abdb603546b119d96528c2f6263921c50df3c8fd7cb28873a237748 \ - --hash=sha256:3997b5b3c9a771e157f9aae01dd579ee35ad7109be18db0e85dbdbe1de06e952 \ - --hash=sha256:414802f3b97f3c1eef41e530aaba3b3c1620649871d8cb38c6eaff034c2e16bd \ - --hash=sha256:51c1e14eb1e154ebd80e860722f9e6ed6ec89714ad2db2d3aa33c31d7c12179b \ - --hash=sha256:51c55fe3451421f3a6ef9a9c1439e82101c57a2c9eab9feb196a62b1a10b58ce \ - --hash=sha256:5ee6609ac3604fa7780e30a03e5e241a7956f8e2fcfe547d51e3afa5247ac47f \ - --hash=sha256:612a95a17655e213502f60cfb9bf9408efdc9eb1d5f50535cc6eb365d11b42b5 \ - --hash=sha256:6203fdf9f3dc5bdaed7319ad8698e685c7a3be10819f41d32a0723e611733b42 \ - --hash=sha256:63c0e9e7eea69588479ebf4a8a270d5ac22763cc5854e9a7eae952a3908103f7 \ - --hash=sha256:66f85ce62c70b843bab1fb14a05d5737741e74e28c7b8b5a064de10142fad248 \ - --hash=sha256:6cf9b429b21df6b99f4dee7a1218b8b7ffbbe7df8764dc0bd60ce8a0708fed1e \ - --hash=sha256:70b37199913c1bd300ff6e2693316c6f869c7ee16378faf10e4f5e3275b299c3 \ - --hash=sha256:727fd05b57df37dc0bcf1a27767a3d9a78cbbc92822445f32cc3436ba797337b \ - --hash=sha256:74ae7b798248fe62021dbf3c914245ad45d1a6b0cb4a29ecb4b31d0bfbc4cc3e \ - --hash=sha256:784db1dcdab56bf0517743e746dfb0f885fc68d948aba86eeec2cba234bdf1c0 \ - --hash=sha256:86945f2ee6d10cdfd67bcb4069c1662dd711f7e2a4343db5cecec06b87cf31aa \ - --hash=sha256:86d835afea1eaa143012a2d7a3f45a3adce2d7adc8b4961f0b362214d800846a \ - --hash=sha256:872a5cf366aec6bb1147336480fef14c9164b154aeb6542327de4970282cd2f5 \ - --hash=sha256:8b973c57ff8e184109db042c842423ff4f60446239bd585a5131cc47f06f789d \ - --hash=sha256:8cba086a43d54ca804ce711b2a940b16e452807acebe7852ff327f1ecd49b0d4 \ - --hash=sha256:8f7f0e05112916223d3f438f293abf0727e1181b5983f413dfa2fefc4098245c \ - --hash=sha256:900218e456384ea676e24ea6a0417f030a3b07306d29d7ad843957b40a9d8d52 \ - --hash=sha256:93eebbcf1aafdf7e2ddd44c2923e2672e1010bddc014138b229e49725b4d6be5 \ - --hash=sha256:9c75442b2209b8470d6d5d8b1c25714270686f14c749028d2199c54e29f20b4d \ - --hash=sha256:9ee2197ef8c4f0dfe405d835f3b6a14f5fee7782b5de51ba06fb65fc9b36e9f1 \ - --hash=sha256:a414504bef8945eae5f2d7cb7be2d4af77c5d1cb5e20b296c2c25b61dff2900c \ - --hash=sha256:a4b9159734b326535f4dd01d947f919c6eefd2d9827466a696c44ced82dfbc18 \ - --hash=sha256:a80afd79f45f3c4a7d341f13acbe058d1ca8ac017c165d3fa0d3de6bc1a079d7 \ - --hash=sha256:aa5bc7c5d59d831d9773d1170acac7893ce3a5e130540605770ade83280e7188 \ - --hash=sha256:acfd89508504a19ed06ef963ad544ec6664518c863436306153e13e94605c218 \ - --hash=sha256:aeffcab3d4b43712bb7a60b65f6044d444e75e563ff6180af8f98dd4b905dfd2 \ - --hash=sha256:afaffc4393205524af9dfa400fa250143a6c3bc646c08c9f5e25a9f4b4d6a903 \ - --hash=sha256:b0c7088a73aef3d687c4deef8452a3ac7c1be4e29ed8bf3b366c8111128ac60c \ - --hash=sha256:b46b4ec24f7293f23adcd2d146960559aaf8020213de8ad1909dba6c013bf89c \ - --hash=sha256:b501b5fa195cc9e24fe102f21ec0a44dffc231d2af79950b451e0d99cea02234 \ - --hash=sha256:bf06bc2af43fa8d32d30fae16ad965663e966b1a3202ed407b84c989c3221e82 \ - --hash=sha256:c804e3a5aba5460c73955c955bdbd5c08c354954e9270a2c1565f62e866bdc39 \ - --hash=sha256:c8a9958e88b65c3b27e22ca2a076311636850b612d6bbfb76e8d156aacde2aaf \ - --hash=sha256:cc0a57f895b96ec78969c34f682c602bf8da1a0270b09bc65673df2e7638ec20 \ - --hash=sha256:cc8920d2ec5fa99875b670bb86ddeb21e295cb07aa331810d9e486e0b969d946 \ - --hash=sha256:ccc933afd4d20aad3c00bcef049cb40049f7f196e0397f1109dba6fed63267b0 \ - --hash=sha256:ce581db493ea1a96c0556360ede6607496e8bf9b3a8efa66e06477267bc831e9 \ - --hash=sha256:d0f23b44f57077c1ede8c5f26b30f706498b4862d3ff0a7298b8411dd2f043ff \ - --hash=sha256:d21644de1b609825ede2f48be98dfde4656aefc713654eeee280e37cadc4e0ad \ - --hash=sha256:d6889ec4ec662a1a37eb4b4fb26b6100841804dac55bd9df579e326cdc146227 \ - --hash=sha256:de5672f4a7b200c15a4127042170a694d4df43c992948f5e1af57f0174beed10 \ - --hash=sha256:e6a0bc88393d65807d751a614207b7129a310ca4fe76a74e5c7da5fa5671417e \ - --hash=sha256:ed89927b86296067b4f81f108a2271d8926467a8868e554eaf370fc27fa3ccaf \ - --hash=sha256:ee3888d9ff7c14604052b2ca5535a30216aa0a58e948cdd3eeb8d3415f638769 \ - --hash=sha256:f0963b55cdd70fad460fa4c1341f12f976bb26cb66021a5580329bd498988310 \ - --hash=sha256:f16417ec91f12f814b10bafe79ef77e70113a2f5f7018640e7425ff979253425 \ - --hash=sha256:f28620fe26bee16243be2b7b874da327312240a7cdc38b769a697578d2100013 \ - --hash=sha256:f4255143f5160d0de972d28c8f9665d882b5f61309d8362fdd3e103cf7bf010c \ - --hash=sha256:ffac52f28a7849ad7576293c0cb7b9f08304e8f7d738a8cb8a90ec4c55a998eb \ - --hash=sha256:ffe22d2b05504f786c867c8395de703937f934272eb67586817b46188b4ded6d \ - --hash=sha256:fffe29a1ef00883599d1dc2c51aa2e5d80afe49523c261a74933df395c15c520 +numpy==2.4.0 \ + --hash=sha256:009bd0ea12d3c784b6639a8457537016ce5172109e585338e11334f6a7bb88ee \ + --hash=sha256:02a2038eb27f9443a8b266a66911e926566b5a6ffd1a689b588f7f35b81e7dc3 \ + --hash=sha256:0804a8e4ab070d1d35496e65ffd3cf8114c136a2b81f61dfab0de4b218aacfd5 \ + --hash=sha256:0feafc9e03128074689183031181fac0897ff169692d8492066e949041096548 \ + --hash=sha256:1889b3a3f47a7b5bee16bc25a2145bd7cb91897f815ce3499db64c7458b6d91d \ + --hash=sha256:1d8f9fde5f6dc1b6fc34df8162f3b3079365468703fee7f31d4e0cc8c63baed9 \ + --hash=sha256:1ee32359fb7543b7b7bd0b2f46294db27e29e7bbdf70541e81b190836cd83ded \ + --hash=sha256:20c115517513831860c573996e395707aa9fb691eb179200125c250e895fcd93 \ + --hash=sha256:21555da4ec4a0c942520ead42c3b0dc9477441e085c42b0fbdd6a084869a6f6b \ + --hash=sha256:23a3e9d1a6f360267e8fbb38ba5db355a6a7e9be71d7fce7ab3125e88bb646c8 \ + --hash=sha256:2a8b6bb8369abefb8bd1801b054ad50e02b3275c8614dc6e5b0373c305291037 \ + --hash=sha256:2e284ca13d5a8367e43734148622caf0b261b275673823593e3e3634a6490f83 \ + --hash=sha256:2f585f52b2baf07ff3356158d9268ea095e221371f1074fadea2f42544d58b4d \ + --hash=sha256:316b2f2584682318539f0bcaca5a496ce9ca78c88066579ebd11fd06f8e4741e \ + --hash=sha256:32ed06d0fe9cae27d8fb5f400c63ccee72370599c75e683a6358dd3a4fb50aaf \ + --hash=sha256:355354388cba60f2132df297e2d53053d4063f79077b67b481d21276d61fc4df \ + --hash=sha256:35ddc8f4914466e6fc954c76527aa91aa763682a4f6d73249ef20b418fe6effb \ + --hash=sha256:36667db4d6c1cea79c8930ab72fadfb4060feb4bfe724141cd4bd064d2e5f8ce \ + --hash=sha256:36cbfb13c152b1c7c184ddac43765db8ad672567e7bafff2cc755a09917ed2e6 \ + --hash=sha256:39699233bc72dd482da1415dcb06076e32f60eddc796a796c5fb6c5efce94667 \ + --hash=sha256:39b19251dec4de8ff8496cd0806cbe27bf0684f765abb1f4809554de93785f2d \ + --hash=sha256:3d857f55e7fdf7c38ab96c4558c95b97d1c685be6b05c249f5fdafcbd6f9899e \ + --hash=sha256:3de19cfecd1465d0dcf8a5b5ea8b3155b42ed0b639dba4b71e323d74f2a3be5e \ + --hash=sha256:3f3096405acc48887458bbf9f6814d43785ac7ba2a57ea6442b581dedbc60ce6 \ + --hash=sha256:40483b2f2d3ba7aad426443767ff5632ec3156ef09742b96913787d13c336471 \ + --hash=sha256:413aa561266a4be2d06cd2b9665e89d9f54c543f418773076a76adcf2af08bc7 \ + --hash=sha256:44aba2f0cafd287871a495fb3163408b0bd25bbce135c6f621534a07f4f7875c \ + --hash=sha256:49ff32b09f5aa0cd30a20c2b39db3e669c845589f2b7fc910365210887e39344 \ + --hash=sha256:4d1cfce39e511069b11e67cd0bd78ceff31443b7c9e5c04db73c7a19f572967c \ + --hash=sha256:57c540ed8fb1f05cb997c6761cd56db72395b0d6985e90571ff660452ade4f98 \ + --hash=sha256:5f48cb3e88fbc294dc90e215d86fbaf1c852c63dbdb6c3a3e63f45c4b57f7344 \ + --hash=sha256:5fe44e277225fd3dff6882d86d3d447205d43532c3627313d17e754fb3905a0e \ + --hash=sha256:60e8c196cd82cbbd4f130b5290007e13e6de3eca79f0d4d38014769d96a7c475 \ + --hash=sha256:65167da969cd1ec3a1df31cb221ca3a19a8aaa25370ecb17d428415e93c1935e \ + --hash=sha256:680060061adb2d74ce352628cb798cfdec399068aa7f07ba9fb818b2b3305f98 \ + --hash=sha256:6bbaebf0d11567fa8926215ae731e1d58e6ec28a8a25235b8a47405d301332db \ + --hash=sha256:6c05483c3136ac4c91b4e81903cb53a8707d316f488124d0398499a4f8e8ef51 \ + --hash=sha256:6dc8b7e2f4eb184b37655195f421836cfae6f58197b67e3ffc501f1333d993fa \ + --hash=sha256:6e504f7b16118198f138ef31ba24d985b124c2c469fe8467007cf30fd992f934 \ + --hash=sha256:74623f2ab5cc3f7c886add4f735d1031a1d2be4a4ae63c0546cfd74e7a31ddf6 \ + --hash=sha256:77f0d13fa87036d7553bf81f0e1fe3ce68d14c9976c9851744e4d3e91127e95f \ + --hash=sha256:85eef4cb5625c47ee6425c58a3502555e10f45ee973da878ac8248ad58c136f3 \ + --hash=sha256:882567b7ae57c1b1a0250208cc21a7976d8cbcc49d5a322e607e6f09c9e0bd53 \ + --hash=sha256:8b986403023c8f3bf8f487c2e6186afda156174d31c175f747d8934dfddf3479 \ + --hash=sha256:8cfa5f29a695cb7438965e6c3e8d06e0416060cf0d709c1b1c1653a939bf5c2a \ + --hash=sha256:8eafe7c36c8430b7794edeab3087dec7bf31d634d92f2af9949434b9d1964cba \ + --hash=sha256:9198f447e1dc5647d07c9a6bbe2063cc0132728cc7175b39dbc796da5b54920d \ + --hash=sha256:92190db305a6f48734d3982f2c60fa30d6b5ee9bff10f2887b930d7b40119f4c \ + --hash=sha256:927ccf5cd17c48f801f4ed43a7e5673a2724bd2171460be3e3894e6e332ef83a \ + --hash=sha256:98e81648e0b36e325ab67e46b5400a7a6d4a22b8a7c8e8bbfe20e7db7906bf95 \ + --hash=sha256:9a818668b674047fd88c4cddada7ab8f1c298812783e8328e956b78dc4807f9f \ + --hash=sha256:a152d86a3ae00ba5f47b3acf3b827509fd0b6cb7d3259665e63dafbad22a75ea \ + --hash=sha256:a2718c1de8504121714234b6f8241d0019450353276c88b9453c9c3d92e101db \ + --hash=sha256:a39fb973a726e63223287adc6dafe444ce75af952d711e400f3bf2b36ef55a7b \ + --hash=sha256:a899699294f28f7be8992853c0c60741f16ff199205e2e6cdca155762cbaa59d \ + --hash=sha256:a8fdfed3deaf1928fb7667d96e0567cdf58c2b370ea2ee7e586aa383ec2cb346 \ + --hash=sha256:aabb081ca0ec5d39591fc33018cd4b3f96e1a2dd6756282029986d00a785fba4 \ + --hash=sha256:b1f5b45829ac1848893f0ddf5cb326110604d6df96cdc255b0bf9edd154104d4 \ + --hash=sha256:b48e35f4ab6f6a7597c46e301126ceba4c44cd3280e3750f85db48b082624fa4 \ + --hash=sha256:b54c83f1c0c0f1d748dca0af516062b8829d53d1f0c402be24b4257a9c48ada6 \ + --hash=sha256:ba0cb30acd3ef11c94dc27fbfba68940652492bc107075e7ffe23057f9425681 \ + --hash=sha256:bb50ce5fb202a26fd5404620e7ef820ad1ab3558b444cb0b55beb7ef66cd2d63 \ + --hash=sha256:c95eb6db2884917d86cde0b4d4cf31adf485c8ec36bf8696dd66fa70de96f36b \ + --hash=sha256:d0ffd9e2e4441c96a9c91ec1783285d80bf835b677853fc2770a89d50c1e48ac \ + --hash=sha256:d57b5046c120561ba8fa8e4030fbb8b822f3063910fa901ffadf16e2b7128ad6 \ + --hash=sha256:d9e6a7664ddd9746e20b7325351fe1a8408d0a2bf9c63b5e898290ddc8f09544 \ + --hash=sha256:dc578891de1db95b2a35001b695451767b580bb45753717498213c5ff3c41d63 \ + --hash=sha256:e0434aa22c821f44eeb4c650b81c7fbdd8c0122c6c4b5a576a76d5a35625ecd9 \ + --hash=sha256:e06a922a469cae9a57100864caf4f8a97a1026513793969f8ba5b63137a35d25 \ + --hash=sha256:e493962256a38f58283de033d8af176c5c91c084ea30f15834f7545451c42059 \ + --hash=sha256:ecb0019d44f4cdb50b676c5d0cb4b1eae8e15d1ed3d3e6639f986fc92b2ec52c \ + --hash=sha256:f935c4493eda9069851058fa0d9e39dbf6286be690066509305e52912714dbb2 # via # feast (setup.py) # dask @@ -1947,9 +1945,9 @@ pandas==2.3.3 \ # pandas-gbq # pymilvus # snowflake-connector-python -pandas-gbq==0.31.1 \ - --hash=sha256:a5d6e897917302c50feaca2ed1ce6a284abd8b9139383bf063307aab8d0556d9 \ - --hash=sha256:c59878504adee211cf1c34b22cf94393c59cc953626c61ce76e06c8d25fd146d +pandas-gbq==0.32.0 \ + --hash=sha256:249623d574c65e98cf19b7b7ecda97729f4f0a843eae3a0a82d9ef50adcdf4ef \ + --hash=sha256:28018ff09f2e49ab2b01a11329bd4e562fd65da406030b4a8001a3a4e80a1e34 # via google-cloud-bigquery parsy==2.2 \ --hash=sha256:5e981613d9d2d8b68012d1dd0afe928967bea2e4eefdb76c2f545af0dd02a9e7 \ @@ -2123,9 +2121,9 @@ propcache==0.4.1 \ # via # aiohttp # yarl -proto-plus==1.26.1 \ - --hash=sha256:13285478c2dcf2abb829db158e1047e2f1e8d63a077d94263c2b88b043c75a66 \ - --hash=sha256:21a515a4c4c0088a773899e23c7bbade3d18f9c66c73edd4c7ee3816bc96a012 +proto-plus==1.27.0 \ + --hash=sha256:1baa7f81cf0f8acb8bc1f6d085008ba4171eaf669629d1b6d1673b21ed1c0a82 \ + --hash=sha256:873af56dd0d7e91836aee871e5799e1c6f1bda86ac9a983e0bb9f0c266a568c4 # via # google-api-core # google-cloud-bigquery-storage @@ -2156,26 +2154,28 @@ protobuf==6.33.2 \ # proto-plus # pymilvus # substrait -psutil==7.1.3 \ - --hash=sha256:0005da714eee687b4b8decd3d6cc7c6db36215c9e74e5ad2264b90c3df7d92dc \ - --hash=sha256:1068c303be3a72f8e18e412c5b2a8f6d31750fb152f9cb106b54090296c9d251 \ - --hash=sha256:18349c5c24b06ac5612c0428ec2a0331c26443d259e2a0144a9b24b4395b58fa \ - --hash=sha256:19644c85dcb987e35eeeaefdc3915d059dac7bd1167cdcdbf27e0ce2df0c08c0 \ - --hash=sha256:2bdbcd0e58ca14996a42adf3621a6244f1bb2e2e528886959c72cf1e326677ab \ - --hash=sha256:31d77fcedb7529f27bb3a0472bea9334349f9a04160e8e6e5020f22c59893264 \ - --hash=sha256:3792983e23b69843aea49c8f5b8f115572c5ab64c153bada5270086a2123c7e7 \ - --hash=sha256:3bb428f9f05c1225a558f53e30ccbad9930b11c3fc206836242de1091d3e7dd3 \ - --hash=sha256:56d974e02ca2c8eb4812c3f76c30e28836fffc311d55d979f1465c1feeb2b68b \ - --hash=sha256:6c86281738d77335af7aec228328e944b30930899ea760ecf33a4dba66be5e74 \ - --hash=sha256:8f33a3702e167783a9213db10ad29650ebf383946e91bc77f28a5eb083496bc9 \ - --hash=sha256:95ef04cf2e5ba0ab9eaafc4a11eaae91b44f4ef5541acd2ee91d9108d00d59a7 \ - --hash=sha256:ad81425efc5e75da3f39b3e636293360ad8d0b49bed7df824c79764fb4ba9b8b \ - --hash=sha256:b403da1df4d6d43973dc004d19cee3b848e998ae3154cc8097d139b77156c353 \ - --hash=sha256:bc31fa00f1fbc3c3802141eede66f3a2d51d89716a194bf2cd6fc68310a19880 \ - --hash=sha256:bd0d69cee829226a761e92f28140bec9a5ee9d5b4fb4b0cc589068dbfff559b1 \ - --hash=sha256:c525ffa774fe4496282fb0b1187725793de3e7c6b29e41562733cae9ada151ee \ - --hash=sha256:f39c2c19fe824b47484b96f9692932248a54c43799a84282cfe58d05a6449efd \ - --hash=sha256:fac9cd332c67f4422504297889da5ab7e05fd11e3c4392140f7370f4208ded1f +psutil==7.2.1 \ + --hash=sha256:05cc68dbb8c174828624062e73078e7e35406f4ca2d0866c272c2410d8ef06d1 \ + --hash=sha256:08a2f175e48a898c8eb8eace45ce01777f4785bc744c90aa2cc7f2fa5462a266 \ + --hash=sha256:0d67c1822c355aa6f7314d92018fb4268a76668a536f133599b91edd48759442 \ + --hash=sha256:2ceae842a78d1603753561132d5ad1b2f8a7979cb0c283f5b52fb4e6e14b1a79 \ + --hash=sha256:35630d5af80d5d0d49cfc4d64c1c13838baf6717a13effb35869a5919b854cdf \ + --hash=sha256:3fce5f92c22b00cdefd1645aa58ab4877a01679e901555067b1bd77039aa589f \ + --hash=sha256:494c513ccc53225ae23eec7fe6e1482f1b8a44674241b54561f755a898650679 \ + --hash=sha256:5e38404ca2bb30ed7267a46c02f06ff842e92da3bb8c5bfdadbd35a5722314d8 \ + --hash=sha256:81442dac7abfc2f4f4385ea9e12ddf5a796721c0f6133260687fec5c3780fa49 \ + --hash=sha256:923f8653416604e356073e6e0bccbe7c09990acef442def2f5640dd0faa9689f \ + --hash=sha256:93f3f7b0bb07711b49626e7940d6fe52aa9940ad86e8f7e74842e73189712129 \ + --hash=sha256:99a4cd17a5fdd1f3d014396502daa70b5ec21bf4ffe38393e152f8e449757d67 \ + --hash=sha256:ab2b98c9fc19f13f59628d94df5cc4cc4844bc572467d113a8b517d634e362c6 \ + --hash=sha256:b1b0671619343aa71c20ff9767eced0483e4fc9e1f489d50923738caf6a03c17 \ + --hash=sha256:b2e953fcfaedcfbc952b44744f22d16575d3aa78eb4f51ae74165b4e96e55f42 \ + --hash=sha256:ba9f33bb525b14c3ea563b2fd521a84d2fa214ec59e3e6a2858f78d0844dd60d \ + --hash=sha256:cfbe6b40ca48019a51827f20d830887b3107a74a79b01ceb8cc8de4ccb17b672 \ + --hash=sha256:d34d2ca888208eea2b5c68186841336a7f5e0b990edec929be909353a202768a \ + --hash=sha256:ea46c0d060491051d39f0d2cff4f98d5c72b288289f57a21556cc7d504db37fc \ + --hash=sha256:f7583aec590485b43ca601dd9cea0dcd65bd7bb21d30ef4ddbf4ea6b5ed1bdd3 \ + --hash=sha256:f78baafb38436d5a128f837fab2d92c276dfb48af01a240b861ae02b2413ada8 # via # feast (setup.py) # pandas-gbq @@ -2446,9 +2446,9 @@ python-dotenv==1.2.1 \ # pydantic-settings # pymilvus # uvicorn -python-multipart==0.0.20 \ - --hash=sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104 \ - --hash=sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13 +python-multipart==0.0.21 \ + --hash=sha256:7137ebd4d3bbf70ea1622998f902b97a29434a9e8dc40eb203bbcf7c2a2cba92 \ + --hash=sha256:cf7a6713e01c87aa35387f4774e812c4361150938d20d232800f75ffcf266090 # via mcp pytz==2025.2 \ --hash=sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3 \ @@ -2573,9 +2573,9 @@ rich==13.9.4 \ # fastapi-mcp # ibis-framework # typer -roman-numerals==3.1.0 \ - --hash=sha256:384e36fc1e8d4bd361bdb3672841faae7a345b3f708aae9895d074c878332551 \ - --hash=sha256:842ae5fd12912d62720c9aad8cab706e8c692556d01a38443e051ee6cc158d90 +roman-numerals==4.1.0 \ + --hash=sha256:1af8b147eb1405d5839e78aeb93131690495fe9da5c91856cb33ad55a7f1e5b2 \ + --hash=sha256:647ba99caddc2cc1e55a51e4360689115551bf4476d90e8162cf8c345fe233c7 # via sphinx rpds-py==0.30.0 \ --hash=sha256:07ae8a593e1c3c6b82ca3292efbe73c30b61332fd612e05abee07c79359f292f \ @@ -2807,12 +2807,14 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:1d8b4a7a8c9b537509d56d5cd10ecdcfbb95912d72480c8861524efecc6a3fff \ --hash=sha256:215f0528b914e5c75ef2559f69dca86878a3beeb0c1be7279d77f18e8d180ed4 \ --hash=sha256:2c0b74aa79e2deade948fe8593654c8ef4228c44ba862bb7c9585c8e0db90f33 \ + --hash=sha256:2e90a344c644a4fa871eb01809c32096487928bd2038bf10f3e4515cb688cc56 \ --hash=sha256:3c5f76216e7b85770d5bb5130ddd11ee89f4d52b11783674a662c7dd57018177 \ --hash=sha256:470daea2c1ce73910f08caf10575676a37159a6d16c4da33d0033546bddebc9b \ --hash=sha256:4748601c8ea959e37e03d13dcda4a44837afcd1b21338e637f7c935b8da06177 \ --hash=sha256:4b6bec67ca45bc166c8729910bd2a87f1c0407ee955df110d78948f5b5827e8a \ --hash=sha256:5225a288e4c8cc2308dbdd874edad6e7d0fd38eac1e9e5f23503425c8eee20d0 \ --hash=sha256:56ead1f8dfb91a54a28cd1d072c74b3d635bcffbd25e50786533b822d4f2cde2 \ + --hash=sha256:5964f832431b7cdfaaa22a660b4c7eb1dfcd6ed41375f67fd3e3440fd95cb3cc \ --hash=sha256:59a8b8bd9c6bedf81ad07c8bd5543eedca55fe9b8780b2b628d495ba55f8db1e \ --hash=sha256:672c45cae53ba88e0dad74b9027dddd09ef6f441e927786b05bec75d949fbb2e \ --hash=sha256:6d0beadc2535157070c9c17ecf25ecec31e13c229a8f69196d7590bde8082bf1 \ @@ -2831,7 +2833,9 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:b8c8b41b97fba5f62349aa285654230296829672fc9939cd7f35aab246d1c08b \ --hash=sha256:ba547ac0b361ab4f1608afbc8432db669bd0819b3e12e29fb5fa9529a8bba81d \ --hash=sha256:c1c2091b1489435ff85728fafeb990f073e64f6f5e81d5cd53059773e8521eb6 \ + --hash=sha256:c64772786d9eee72d4d3784c28f0a636af5b0a29f3fe26ff11f55efe90c0bd85 \ --hash=sha256:cd337d3526ec5298f67d6a30bbbe4ed7e5e68862f0bf6dd21d289f8d37b7d60b \ + --hash=sha256:d29b2b99d527dbc66dd87c3c3248a5dd789d974a507f4653c969999fc7c1191b \ --hash=sha256:d2c3684fca8a05f0ac1d9a21c1f4a266983a7ea9180efb80ffeb03861ecd01a0 \ --hash=sha256:d62e47f5d8a50099b17e2bfc1b0c7d7ecd8ba6b46b1507b58cc4f05eefc3bb1c \ --hash=sha256:d8a2ca754e5415cde2b656c27900b19d50ba076aa05ce66e2207623d3fe41f5a \ @@ -2849,9 +2853,9 @@ sqlglot==25.20.2 \ --hash=sha256:169fe8308dd70d7bd40117b2221b62bdc7c4e2ea8eb07394b2a6146cdedf05ab \ --hash=sha256:cdbfd7ce3f2f39f32bd7b4c23fd9e0fd261636a6b14285b914e8def25fd0a567 # via ibis-framework -sse-starlette==3.0.3 \ - --hash=sha256:88cfb08747e16200ea990c8ca876b03910a23b547ab3bd764c0d8eb81019b971 \ - --hash=sha256:af5bf5a6f3933df1d9c7f8539633dc8444ca6a97ab2e2a7cd3b6e431ac03a431 +sse-starlette==3.1.1 \ + --hash=sha256:bb38f71ae74cfd86b529907a9fda5632195dfa6ae120f214ea4c890c7ee9d436 \ + --hash=sha256:bffa531420c1793ab224f63648c059bcadc412bf9fdb1301ac8de1cf9a67b7fb # via mcp starlette==0.50.0 \ --hash=sha256:9e5391843ec9b6e472eed1365a78c8098cfceb7a74bfd4d6b1c0c0095efb3bca \ @@ -2859,6 +2863,7 @@ starlette==0.50.0 \ # via # fastapi # mcp + # sse-starlette substrait==0.24.2 \ --hash=sha256:743cc352e96b0927b2cd37cd5a8fdac0a96a68df9600bd104fc36aebd222a836 \ --hash=sha256:d1d475833566fa9d67eed3273456883c0568486ccced92b524b31709d2817e19 @@ -2948,17 +2953,17 @@ typeguard==4.4.4 \ --hash=sha256:3a7fd2dffb705d4d0efaed4306a704c89b9dee850b688f060a8b1615a79e5f74 \ --hash=sha256:b5f562281b6bfa1f5492470464730ef001646128b180769880468bd84b68b09e # via feast (setup.py) -typer==0.20.0 \ - --hash=sha256:1aaf6494031793e4876fb0bacfa6a912b551cf43c1e63c800df8b1a866720c37 \ - --hash=sha256:5b463df6793ec1dca6213a3cf4c0f03bc6e322ac5e16e13ddd622a889489784a +typer==0.21.0 \ + --hash=sha256:c79c01ca6b30af9fd48284058a7056ba0d3bf5cf10d0ff3d0c5b11b68c258ac6 \ + --hash=sha256:c87c0d2b6eee3b49c5c64649ec92425492c14488096dfbc8a0c2799b2f6f9c53 # via fastapi-mcp types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ --hash=sha256:1e642cdafe837b240295b23b1cbd4691d80b08a07d29932143cbbae30eb0db9c # via feast (setup.py) -types-pymysql==1.1.0.20250916 \ - --hash=sha256:873eb9836bb5e3de4368cc7010ca72775f86e9692a5c7810f8c7f48da082e55b \ - --hash=sha256:98d75731795fcc06723a192786662bdfa760e1e00f22809c104fbb47bac5e29b +types-pymysql==1.1.0.20251220 \ + --hash=sha256:ae1c3df32a777489431e2e9963880a0df48f6591e0aa2fd3a6fabd9dee6eca54 \ + --hash=sha256:fa1082af7dea6c53b6caa5784241924b1296ea3a8d3bd060417352c5e10c0618 # via feast (setup.py) typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ @@ -2989,9 +2994,9 @@ typing-inspection==0.4.2 \ # mcp # pydantic # pydantic-settings -tzdata==2025.2 \ - --hash=sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8 \ - --hash=sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9 +tzdata==2025.3 \ + --hash=sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1 \ + --hash=sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7 # via pandas ujson==5.11.0 \ --hash=sha256:0180a480a7d099082501cad1fe85252e4d4bf926b40960fb3d9e87a3a6fbbc80 \ @@ -3079,9 +3084,9 @@ ujson==5.11.0 \ --hash=sha256:fa79fdb47701942c2132a9dd2297a1a85941d966d8c87bfd9e29b0cf423f26cc \ --hash=sha256:fac6c0649d6b7c3682a0a6e18d3de6857977378dce8d419f57a0b20e3d775b39 # via pymilvus -urllib3==2.6.1 \ - --hash=sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f \ - --hash=sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b +urllib3==2.6.2 \ + --hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \ + --hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd # via # botocore # kubernetes diff --git a/sdk/python/requirements/py3.12-requirements.txt b/sdk/python/requirements/py3.12-requirements.txt index 6e6f3194c68..697d4f25b0c 100644 --- a/sdk/python/requirements/py3.12-requirements.txt +++ b/sdk/python/requirements/py3.12-requirements.txt @@ -20,9 +20,9 @@ attrs==25.4.0 \ # via # jsonschema # referencing -bigtree==1.0.3 \ - --hash=sha256:18402a143130868b17ca84a74ca263e6f32f046d6978c30d244f8b94c4a01227 \ - --hash=sha256:99a18b6937a9b4ab8e560fec5c0720e10ebf37f84e44f9b5f47702c2e84c9aaa +bigtree==1.0.4 \ + --hash=sha256:e4af0c5bc0d2cd72e18442965e4509f642b16a0de65db6d0ec116e30f959010c \ + --hash=sha256:f58a3238bb9b1142d893c9de4921bfd18d435427c75e0c168dd580eabf6dc7fd # via feast (setup.py) certifi==2025.11.12 \ --hash=sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b \ @@ -158,17 +158,17 @@ colorama==0.4.6 \ --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 # via feast (setup.py) -dask[dataframe]==2025.11.0 \ - --hash=sha256:08c35a8146c05c93b34f83cf651009129c42ee71762da7ca452fb7308641c2b8 \ - --hash=sha256:23d59e624b80ee05b7cc8df858682cca58262c4c3b197ccf61da0f6543c8f7c3 +dask[dataframe]==2025.12.0 \ + --hash=sha256:4213ce9c5d51d6d89337cff69de35d902aa0bf6abdb8a25c942a4d0281f3a598 \ + --hash=sha256:8d478f2aabd025e2453cf733ad64559de90cf328c20209e4574e9543707c3e1b # via feast (setup.py) dill==0.3.9 \ --hash=sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a \ --hash=sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c # via feast (setup.py) -fastapi==0.124.0 \ - --hash=sha256:260cd178ad75e6d259991f2fd9b0fee924b224850079df576a3ba604ce58f4e6 \ - --hash=sha256:91596bdc6dde303c318f06e8d2bc75eafb341fc793a0c9c92c0bc1db1ac52480 +fastapi==0.128.0 \ + --hash=sha256:1cc179e1cef10a6be60ffe429f79b829dce99d8de32d7acb7e6c8dfdf7f2645a \ + --hash=sha256:aebd93f9716ee3b4f4fcfe13ffb7cf308d99c9f3ab5622d8877441072561582d # via feast (setup.py) fsspec==2025.12.0 \ --hash=sha256:8bf1fe301b7d8acfa6e8571e3b1c3d158f909666642431cc78a1b7b4dbc5ec5b \ @@ -247,83 +247,83 @@ jsonschema-specifications==2025.9.1 \ --hash=sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe \ --hash=sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d # via jsonschema -librt==0.7.3 \ - --hash=sha256:020c6db391268bcc8ce75105cb572df8cb659a43fd347366aaa407c366e5117a \ - --hash=sha256:0fa9ac2e49a6bee56e47573a6786cb635e128a7b12a0dc7851090037c0d397a3 \ - --hash=sha256:11ad45122bbed42cfc8b0597450660126ef28fd2d9ae1a219bc5af8406f95678 \ - --hash=sha256:120dd21d46ff875e849f1aae19346223cf15656be489242fe884036b23d39e93 \ - --hash=sha256:14569ac5dd38cfccf0a14597a88038fb16811a6fede25c67b79c6d50fc2c8fdc \ - --hash=sha256:1617bea5ab31266e152871208502ee943cb349c224846928a1173c864261375e \ - --hash=sha256:170cdb8436188347af17bf9cccf3249ba581c933ed56d926497119d4cf730cec \ - --hash=sha256:1975eda520957c6e0eb52d12968dd3609ffb7eef05d4223d097893d6daf1d8a7 \ - --hash=sha256:1fe603877e1865b5fd047a5e40379509a4a60204aa7aa0f72b16f7a41c3f0712 \ - --hash=sha256:24d70810f6e2ea853ff79338001533716b373cc0f63e2a0be5bc96129edb5fb5 \ - --hash=sha256:256793988bff98040de23c57cf36e1f4c2f2dc3dcd17537cdac031d3b681db71 \ - --hash=sha256:25711f364c64cab2c910a0247e90b51421e45dbc8910ceeb4eac97a9e132fc6f \ - --hash=sha256:2682162855a708e3270eba4b92026b93f8257c3e65278b456c77631faf0f4f7a \ - --hash=sha256:2cf9d73499486ce39eebbff5f42452518cc1f88d8b7ea4a711ab32962b176ee2 \ - --hash=sha256:2e40520c37926166c24d0c2e0f3bc3a5f46646c34bdf7b4ea9747c297d6ee809 \ - --hash=sha256:2e980cf1ed1a2420a6424e2ed884629cdead291686f1048810a817de07b5eb18 \ - --hash=sha256:2f03484b54bf4ae80ab2e504a8d99d20d551bfe64a7ec91e218010b467d77093 \ - --hash=sha256:35f1609e3484a649bb80431310ddbec81114cd86648f1d9482bc72a3b86ded2e \ - --hash=sha256:399938edbd3d78339f797d685142dd8a623dfaded023cf451033c85955e4838a \ - --hash=sha256:399bbd7bcc1633c3e356ae274a1deb8781c7bf84d9c7962cc1ae0c6e87837292 \ - --hash=sha256:3ec50cf65235ff5c02c5b747748d9222e564ad48597122a361269dd3aa808798 \ - --hash=sha256:3edbf257c40d21a42615e9e332a6b10a8bacaaf58250aed8552a14a70efd0d65 \ - --hash=sha256:440c788f707c061d237c1e83edf6164ff19f5c0f823a3bf054e88804ebf971ec \ - --hash=sha256:44b3689b040df57f492e02cd4f0bacd1b42c5400e4b8048160c9d5e866de8abe \ - --hash=sha256:4887c29cadbdc50640179e3861c276325ff2986791e6044f73136e6e798ff806 \ - --hash=sha256:5460d99ed30f043595bbdc888f542bad2caeb6226b01c33cda3ae444e8f82d42 \ - --hash=sha256:550fdbfbf5bba6a2960b27376ca76d6aaa2bd4b1a06c4255edd8520c306fcfc0 \ - --hash=sha256:56f2a47beda8409061bc1c865bef2d4bd9ff9255219402c0817e68ab5ad89aed \ - --hash=sha256:572a24fc5958c61431da456a0ef1eeea6b4989d81eeb18b8e5f1f3077592200b \ - --hash=sha256:59cb0470612d21fa1efddfa0dd710756b50d9c7fb6c1236bbf8ef8529331dc70 \ - --hash=sha256:6038ccbd5968325a5d6fd393cf6e00b622a8de545f0994b89dd0f748dcf3e19e \ - --hash=sha256:6488e69d408b492e08bfb68f20c4a899a354b4386a446ecd490baff8d0862720 \ - --hash=sha256:687403cced6a29590e6be6964463835315905221d797bc5c934a98750fe1a9af \ - --hash=sha256:6b407c23f16ccc36614c136251d6b32bf30de7a57f8e782378f1107be008ddb0 \ - --hash=sha256:6b4e7bff1d76dd2b46443078519dc75df1b5e01562345f0bb740cea5266d8218 \ - --hash=sha256:6bdd9adfca615903578d2060ee8a6eb1c24eaf54919ff0ddc820118e5718931b \ - --hash=sha256:6eb9295c730e26b849ed1f4022735f36863eb46b14b6e10604c1c39b8b5efaea \ - --hash=sha256:703456146dc2bf430f7832fd1341adac5c893ec3c1430194fdcefba00012555c \ - --hash=sha256:754a0d09997095ad764ccef050dd5bf26cbf457aab9effcba5890dad081d879e \ - --hash=sha256:7af7785f5edd1f418da09a8cdb9ec84b0213e23d597413e06525340bcce1ea4f \ - --hash=sha256:7b29e97273bd6999e2bfe9fe3531b1f4f64effd28327bced048a33e49b99674a \ - --hash=sha256:7b4f57f7a0c65821c5441d98c47ff7c01d359b1e12328219709bdd97fdd37f90 \ - --hash=sha256:8837d5a52a2d7aa9f4c3220a8484013aed1d8ad75240d9a75ede63709ef89055 \ - --hash=sha256:8ccadf260bb46a61b9c7e89e2218f6efea9f3eeaaab4e3d1f58571890e54858e \ - --hash=sha256:8d8cf653e798ee4c4e654062b633db36984a1572f68c3aa25e364a0ddfbbb910 \ - --hash=sha256:93b2a1f325fefa1482516ced160c8c7b4b8d53226763fa6c93d151fa25164207 \ - --hash=sha256:9f0e0927efe87cd42ad600628e595a1a0aa1c64f6d0b55f7e6059079a428641a \ - --hash=sha256:a59a69deeb458c858b8fea6acf9e2acd5d755d76cd81a655256bc65c20dfff5b \ - --hash=sha256:a9f9b661f82693eb56beb0605156c7fca57f535704ab91837405913417d6990b \ - --hash=sha256:abfc57cab3c53c4546aee31859ef06753bfc136c9d208129bad23e2eca39155a \ - --hash=sha256:aca73d70c3f553552ba9133d4a09e767dcfeee352d8d8d3eb3f77e38a3beb3ed \ - --hash=sha256:adeaa886d607fb02563c1f625cf2ee58778a2567c0c109378da8f17ec3076ad7 \ - --hash=sha256:b278a9248a4e3260fee3db7613772ca9ab6763a129d6d6f29555e2f9b168216d \ - --hash=sha256:b7c1239b64b70be7759554ad1a86288220bbb04d68518b527783c4ad3fb4f80b \ - --hash=sha256:bf8c7735fbfc0754111f00edda35cf9e98a8d478de6c47b04eaa9cef4300eaa7 \ - --hash=sha256:c634a0a6db395fdaba0361aa78395597ee72c3aad651b9a307a3a7eaf5efd67e \ - --hash=sha256:cad9971881e4fec00d96af7eaf4b63aa7a595696fc221808b0d3ce7ca9743258 \ - --hash=sha256:cbdb3f337c88b43c3b49ca377731912c101178be91cb5071aac48faa898e6f8e \ - --hash=sha256:cd8551aa21df6c60baa2624fd086ae7486bdde00c44097b32e1d1b1966e365e0 \ - --hash=sha256:d09f677693328503c9e492e33e9601464297c01f9ebd966ea8fc5308f3069bfd \ - --hash=sha256:d376a35c6561e81d2590506804b428fc1075fcc6298fc5bb49b771534c0ba010 \ - --hash=sha256:d39079379a9a28e74f4d57dc6357fa310a1977b51ff12239d7271ec7e71d67f5 \ - --hash=sha256:d86f94743a11873317094326456b23f8a5788bad9161fd2f0e52088c33564620 \ - --hash=sha256:d91e60ac44bbe3a77a67af4a4c13114cbe9f6d540337ce22f2c9eaf7454ca71f \ - --hash=sha256:d9883b2d819ce83f87ba82a746c81d14ada78784db431e57cc9719179847376e \ - --hash=sha256:e094e445c37c57e9ec612847812c301840239d34ccc5d153a982fa9814478c60 \ - --hash=sha256:e19acfde38cb532a560b98f473adc741c941b7a9bc90f7294bc273d08becb58b \ - --hash=sha256:e32d43610dff472eab939f4d7fbdd240d1667794192690433672ae22d7af8445 \ - --hash=sha256:ed028fc3d41adda916320712838aec289956c89b4f0a361ceadf83a53b4c047a \ - --hash=sha256:ef59c938f72bdbc6ab52dc50f81d0637fde0f194b02d636987cea2ab30f8f55a \ - --hash=sha256:f3d4801db8354436fd3936531e7f0e4feb411f62433a6b6cb32bb416e20b529f \ - --hash=sha256:f57aca20e637750a2c18d979f7096e2c2033cc40cf7ed201494318de1182f135 \ - --hash=sha256:f9da128d0edf990cf0d2ca011b02cd6f639e79286774bd5b0351245cbb5a6e51 \ - --hash=sha256:fbd7351d43b80d9c64c3cfcb50008f786cc82cba0450e8599fdd64f264320bd3 \ - --hash=sha256:fcb72249ac4ea81a7baefcbff74df7029c3cb1cf01a711113fa052d563639c9c \ - --hash=sha256:ff21c554304e8226bf80c3a7754be27c6c3549a9fec563a03c06ee8f494da8fc +librt==0.7.5 \ + --hash=sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee \ + --hash=sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1 \ + --hash=sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4 \ + --hash=sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899 \ + --hash=sha256:0e2bf8f91093fac43e3eaebacf777f12fd539dce9ec5af3efc6d8424e96ccd49 \ + --hash=sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d \ + --hash=sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760 \ + --hash=sha256:191cbd42660446d67cf7a95ac7bfa60f49b8b3b0417c64f216284a1d86fc9335 \ + --hash=sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8 \ + --hash=sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2 \ + --hash=sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec \ + --hash=sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b \ + --hash=sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0 \ + --hash=sha256:39183abee670bc37b85f11e86c44a9cad1ed6efa48b580083e89ecee13dd9717 \ + --hash=sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325 \ + --hash=sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45 \ + --hash=sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d \ + --hash=sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233 \ + --hash=sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d \ + --hash=sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544 \ + --hash=sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802 \ + --hash=sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2 \ + --hash=sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d \ + --hash=sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f \ + --hash=sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169 \ + --hash=sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe \ + --hash=sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982 \ + --hash=sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2 \ + --hash=sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa \ + --hash=sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4 \ + --hash=sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4 \ + --hash=sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57 \ + --hash=sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26 \ + --hash=sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361 \ + --hash=sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad \ + --hash=sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e \ + --hash=sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf \ + --hash=sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f \ + --hash=sha256:8dcae24de1bc9da93aa689cb6313c70e776d7cea2fcf26b9b6160fedfe6bd9af \ + --hash=sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2 \ + --hash=sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89 \ + --hash=sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904 \ + --hash=sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6 \ + --hash=sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276 \ + --hash=sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e \ + --hash=sha256:a9eacbf983319b26b5f340a2e0cd47ac1ee4725a7f3a72fd0f15063c934b69d6 \ + --hash=sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409 \ + --hash=sha256:af69d9e159575e877c7546d1ee817b4ae089aa221dd1117e20c24ad8dc8659c7 \ + --hash=sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a \ + --hash=sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4 \ + --hash=sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775 \ + --hash=sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203 \ + --hash=sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419 \ + --hash=sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5 \ + --hash=sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023 \ + --hash=sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b \ + --hash=sha256:cdb001a1a0e4f41e613bca2c0fc147fc8a7396f53fc94201cbfd8ec7cd69ca4b \ + --hash=sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d \ + --hash=sha256:d2cc7d187e8c6e9b7bdbefa9697ce897a704ea7a7ce844f2b4e0e2aa07ae51d3 \ + --hash=sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e \ + --hash=sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a \ + --hash=sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b \ + --hash=sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db \ + --hash=sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd \ + --hash=sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa \ + --hash=sha256:df2e210400b28e50994477ebf82f055698c79797b6ee47a1669d383ca33263e1 \ + --hash=sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805 \ + --hash=sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a \ + --hash=sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25 \ + --hash=sha256:ea1b60b86595a5dc1f57b44a801a1c4d8209c0a69518391d349973a4491408e6 \ + --hash=sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b \ + --hash=sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5 \ + --hash=sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416 \ + --hash=sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc \ + --hash=sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7 \ + --hash=sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96 # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ @@ -543,125 +543,123 @@ mmh3==5.2.0 \ --hash=sha256:fdfd3fb739f4e22746e13ad7ba0c6eedf5f454b18d11249724a388868e308ee4 \ --hash=sha256:ff3d50dc3fe8a98059f99b445dfb62792b5d006c5e0b8f03c6de2813b8376110 # via feast (setup.py) -mypy==1.19.0 \ - --hash=sha256:0c01c99d626380752e527d5ce8e69ffbba2046eb8a060db0329690849cf9b6f9 \ - --hash=sha256:0dde5cb375cb94deff0d4b548b993bec52859d1651e073d63a1386d392a95495 \ - --hash=sha256:0e3c3d1e1d62e678c339e7ade72746a9e0325de42cd2cccc51616c7b2ed1a018 \ - --hash=sha256:0ea4fd21bb48f0da49e6d3b37ef6bd7e8228b9fe41bbf4d80d9364d11adbd43c \ - --hash=sha256:0fb3115cb8fa7c5f887c8a8d81ccdcb94cff334684980d847e5a62e926910e1d \ - --hash=sha256:11f7254c15ab3f8ed68f8e8f5cbe88757848df793e31c36aaa4d4f9783fd08ab \ - --hash=sha256:120cffe120cca5c23c03c77f84abc0c14c5d2e03736f6c312480020082f1994b \ - --hash=sha256:16f76ff3f3fd8137aadf593cb4607d82634fca675e8211ad75c43d86033ee6c6 \ - --hash=sha256:1cf9c59398db1c68a134b0b5354a09a1e124523f00bacd68e553b8bd16ff3299 \ - --hash=sha256:318ba74f75899b0e78b847d8c50821e4c9637c79d9a59680fc1259f29338cb3e \ - --hash=sha256:3210d87b30e6af9c8faed61be2642fcbe60ef77cec64fa1ef810a630a4cf671c \ - --hash=sha256:34ec1ac66d31644f194b7c163d7f8b8434f1b49719d403a5d26c87fff7e913f7 \ - --hash=sha256:37af5166f9475872034b56c5efdcf65ee25394e9e1d172907b84577120714364 \ - --hash=sha256:3ad925b14a0bb99821ff6f734553294aa6a3440a8cb082fe1f5b84dfb662afb1 \ - --hash=sha256:510c014b722308c9bd377993bcbf9a07d7e0692e5fa8fc70e639c1eb19fc6bee \ - --hash=sha256:6016c52ab209919b46169651b362068f632efcd5eb8ef9d1735f6f86da7853b2 \ - --hash=sha256:6148ede033982a8c5ca1143de34c71836a09f105068aaa8b7d5edab2b053e6c8 \ - --hash=sha256:63ea6a00e4bd6822adbfc75b02ab3653a17c02c4347f5bb0cf1d5b9df3a05835 \ - --hash=sha256:7686ed65dbabd24d20066f3115018d2dce030d8fa9db01aa9f0a59b6813e9f9e \ - --hash=sha256:7a500ab5c444268a70565e374fc803972bfd1f09545b13418a5174e29883dab7 \ - --hash=sha256:8f44f2ae3c58421ee05fe609160343c25f70e3967f6e32792b5a78006a9d850f \ - --hash=sha256:a18d8abdda14035c5718acb748faec09571432811af129bf0d9e7b2d6699bf18 \ - --hash=sha256:a31e4c28e8ddb042c84c5e977e28a21195d086aaffaf08b016b78e19c9ef8106 \ - --hash=sha256:a9ac09e52bb0f7fb912f5d2a783345c72441a08ef56ce3e17c1752af36340a39 \ - --hash=sha256:b9d491295825182fba01b6ffe2c6fe4e5a49dbf4e2bb4d1217b6ced3b4797bc6 \ - --hash=sha256:c14a98bc63fd867530e8ec82f217dae29d0550c86e70debc9667fff1ec83284e \ - --hash=sha256:c3385246593ac2b97f155a0e9639be906e73534630f663747c71908dfbf26134 \ - --hash=sha256:cabbee74f29aa9cd3b444ec2f1e4fa5a9d0d746ce7567a6a609e224429781f53 \ - --hash=sha256:cb64b0ba5980466a0f3f9990d1c582bcab8db12e29815ecb57f1408d99b4bff7 \ - --hash=sha256:cf7d84f497f78b682edd407f14a7b6e1a2212b433eedb054e2081380b7395aa3 \ - --hash=sha256:e2c1101ab41d01303103ab6ef82cbbfedb81c1a060c868fa7cc013d573d37ab5 \ - --hash=sha256:f188dcf16483b3e59f9278c4ed939ec0254aa8a60e8fc100648d9ab5ee95a431 \ - --hash=sha256:f2e36bed3c6d9b5f35d28b63ca4b727cb0228e480826ffc8953d1892ddc8999d \ - --hash=sha256:f3e19e3b897562276bb331074d64c076dbdd3e79213f36eed4e592272dabd760 \ - --hash=sha256:f6b874ca77f733222641e5c46e4711648c4037ea13646fd0cdc814c2eaec2528 \ - --hash=sha256:f75e60aca3723a23511948539b0d7ed514dda194bc3755eae0bfc7a6b4887aa7 \ - --hash=sha256:fc51a5b864f73a3a182584b1ac75c404396a17eced54341629d8bdcb644a5bba \ - --hash=sha256:fd4a985b2e32f23bead72e2fb4bbe5d6aceee176be471243bd831d5b2644672d +mypy==1.19.1 \ + --hash=sha256:016f2246209095e8eda7538944daa1d60e1e8134d98983b9fc1e92c1fc0cb8dd \ + --hash=sha256:022ea7279374af1a5d78dfcab853fe6a536eebfda4b59deab53cd21f6cd9f00b \ + --hash=sha256:06e6170bd5836770e8104c8fdd58e5e725cfeb309f0a6c681a811f557e97eac1 \ + --hash=sha256:19d88bb05303fe63f71dd2c6270daca27cb9401c4ca8255fe50d1d920e0eb9ba \ + --hash=sha256:21761006a7f497cb0d4de3d8ef4ca70532256688b0523eee02baf9eec895e27b \ + --hash=sha256:28902ee51f12e0f19e1e16fbe2f8f06b6637f482c459dd393efddd0ec7f82045 \ + --hash=sha256:2899753e2f61e571b3971747e302d5f420c3fd09650e1951e99f823bc3089dac \ + --hash=sha256:2abb24cf3f17864770d18d673c85235ba52456b36a06b6afc1e07c1fdcd3d0e6 \ + --hash=sha256:34c81968774648ab5ac09c29a375fdede03ba253f8f8287847bd480782f73a6a \ + --hash=sha256:409088884802d511ee52ca067707b90c883426bd95514e8cfda8281dc2effe24 \ + --hash=sha256:481daf36a4c443332e2ae9c137dfee878fcea781a2e3f895d54bd3002a900957 \ + --hash=sha256:4b84a7a18f41e167f7995200a1d07a4a6810e89d29859df936f1c3923d263042 \ + --hash=sha256:4f28f99c824ecebcdaa2e55d82953e38ff60ee5ec938476796636b86afa3956e \ + --hash=sha256:5f05aa3d375b385734388e844bc01733bd33c644ab48e9684faa54e5389775ec \ + --hash=sha256:7bcfc336a03a1aaa26dfce9fff3e287a3ba99872a157561cbfcebe67c13308e3 \ + --hash=sha256:804bd67b8054a85447c8954215a906d6eff9cabeabe493fb6334b24f4bfff718 \ + --hash=sha256:8bb5c6f6d043655e055be9b542aa5f3bdd30e4f3589163e85f93f3640060509f \ + --hash=sha256:a009ffa5a621762d0c926a078c2d639104becab69e79538a494bcccb62cc0331 \ + --hash=sha256:a8174a03289288c1f6c46d55cef02379b478bfbc8e358e02047487cad44c6ca1 \ + --hash=sha256:ab43590f9cd5108f41aacf9fca31841142c786827a74ab7cc8a2eacb634e09a1 \ + --hash=sha256:b10e7c2cd7870ba4ad9b2d8a6102eb5ffc1f16ca35e3de6bfa390c1113029d13 \ + --hash=sha256:b13cfdd6c87fc3efb69ea4ec18ef79c74c3f98b4e5498ca9b85ab3b2c2329a67 \ + --hash=sha256:b64d987153888790bcdb03a6473d321820597ab8dd9243b27a92153c4fa50fd2 \ + --hash=sha256:b7951a701c07ea584c4fe327834b92a30825514c868b1f69c30445093fdd9d5a \ + --hash=sha256:bdb12f69bcc02700c2b47e070238f42cb87f18c0bc1fc4cdb4fb2bc5fd7a3b8b \ + --hash=sha256:c35d298c2c4bba75feb2195655dfea8124d855dfd7343bf8b8c055421eaf0cf8 \ + --hash=sha256:c608937067d2fc5a4dd1a5ce92fd9e1398691b8c5d012d66e1ddd430e9244376 \ + --hash=sha256:c9a6538e0415310aad77cb94004ca6482330fece18036b5f360b62c45814c4ef \ + --hash=sha256:d8dfc6ab58ca7dda47d9237349157500468e404b17213d44fc1cb77bce532288 \ + --hash=sha256:da4869fc5e7f62a88f3fe0b5c919d1d9f7ea3cef92d3689de2823fd27e40aa75 \ + --hash=sha256:de759aafbae8763283b2ee5869c7255391fbc4de3ff171f8f030b5ec48381b74 \ + --hash=sha256:e3157c7594ff2ef1634ee058aafc56a82db665c9438fd41b390f3bde1ab12250 \ + --hash=sha256:e3f276d8493c3c97930e354b2595a44a21348b320d859fb4a2b9f66da9ed27ab \ + --hash=sha256:ee4c11e460685c3e0c64a4c5de82ae143622410950d6be863303a1c4ba0e36d6 \ + --hash=sha256:f1235f5ea01b7db5468d53ece6aaddf1ad0b88d9e7462b86ef96fe04995d7247 \ + --hash=sha256:f7cee03c9a2e2ee26ec07479f38ea9c884e301d42c6d43a19d20fb014e3ba925 \ + --hash=sha256:f859fb09d9583a985be9a493d5cfc5515b56b08f7447759a0c5deaf68d80506e \ + --hash=sha256:ffcebe56eb09ff0c0885e750036a095e23793ba6c2e894e7e63f6d89ad51f22e # via sqlalchemy mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 # via mypy -numpy==2.3.5 \ - --hash=sha256:00dc4e846108a382c5869e77c6ed514394bdeb3403461d25a829711041217d5b \ - --hash=sha256:0472f11f6ec23a74a906a00b48a4dcf3849209696dff7c189714511268d103ae \ - --hash=sha256:04822c00b5fd0323c8166d66c701dc31b7fbd252c100acd708c48f763968d6a3 \ - --hash=sha256:052e8c42e0c49d2575621c158934920524f6c5da05a1d3b9bab5d8e259e045f0 \ - --hash=sha256:09a1bea522b25109bf8e6f3027bd810f7c1085c64a0c7ce050c1676ad0ba010b \ - --hash=sha256:0cd00b7b36e35398fa2d16af7b907b65304ef8bb4817a550e06e5012929830fa \ - --hash=sha256:0d8163f43acde9a73c2a33605353a4f1bc4798745a8b1d73183b28e5b435ae28 \ - --hash=sha256:1062fde1dcf469571705945b0f221b73928f34a20c904ffb45db101907c3454e \ - --hash=sha256:11e06aa0af8c0f05104d56450d6093ee639e15f24ecf62d417329d06e522e017 \ - --hash=sha256:17531366a2e3a9e30762c000f2c43a9aaa05728712e25c11ce1dbe700c53ad41 \ - --hash=sha256:1978155dd49972084bd6ef388d66ab70f0c323ddee6f693d539376498720fb7e \ - --hash=sha256:1ed1ec893cff7040a02c8aa1c8611b94d395590d553f6b53629a4461dc7f7b63 \ - --hash=sha256:2dcd0808a421a482a080f89859a18beb0b3d1e905b81e617a188bd80422d62e9 \ - --hash=sha256:2e2eb32ddb9ccb817d620ac1d8dae7c3f641c1e5f55f531a33e8ab97960a75b8 \ - --hash=sha256:2feae0d2c91d46e59fcd62784a3a83b3fb677fead592ce51b5a6fbb4f95965ff \ - --hash=sha256:3095bdb8dd297e5920b010e96134ed91d852d81d490e787beca7e35ae1d89cf7 \ - --hash=sha256:30bc11310e8153ca664b14c5f1b73e94bd0503681fcf136a163de856f3a50139 \ - --hash=sha256:3101e5177d114a593d79dd79658650fe28b5a0d8abeb8ce6f437c0e6df5be1a4 \ - --hash=sha256:396084a36abdb603546b119d96528c2f6263921c50df3c8fd7cb28873a237748 \ - --hash=sha256:3997b5b3c9a771e157f9aae01dd579ee35ad7109be18db0e85dbdbe1de06e952 \ - --hash=sha256:414802f3b97f3c1eef41e530aaba3b3c1620649871d8cb38c6eaff034c2e16bd \ - --hash=sha256:51c1e14eb1e154ebd80e860722f9e6ed6ec89714ad2db2d3aa33c31d7c12179b \ - --hash=sha256:51c55fe3451421f3a6ef9a9c1439e82101c57a2c9eab9feb196a62b1a10b58ce \ - --hash=sha256:5ee6609ac3604fa7780e30a03e5e241a7956f8e2fcfe547d51e3afa5247ac47f \ - --hash=sha256:612a95a17655e213502f60cfb9bf9408efdc9eb1d5f50535cc6eb365d11b42b5 \ - --hash=sha256:6203fdf9f3dc5bdaed7319ad8698e685c7a3be10819f41d32a0723e611733b42 \ - --hash=sha256:63c0e9e7eea69588479ebf4a8a270d5ac22763cc5854e9a7eae952a3908103f7 \ - --hash=sha256:66f85ce62c70b843bab1fb14a05d5737741e74e28c7b8b5a064de10142fad248 \ - --hash=sha256:6cf9b429b21df6b99f4dee7a1218b8b7ffbbe7df8764dc0bd60ce8a0708fed1e \ - --hash=sha256:70b37199913c1bd300ff6e2693316c6f869c7ee16378faf10e4f5e3275b299c3 \ - --hash=sha256:727fd05b57df37dc0bcf1a27767a3d9a78cbbc92822445f32cc3436ba797337b \ - --hash=sha256:74ae7b798248fe62021dbf3c914245ad45d1a6b0cb4a29ecb4b31d0bfbc4cc3e \ - --hash=sha256:784db1dcdab56bf0517743e746dfb0f885fc68d948aba86eeec2cba234bdf1c0 \ - --hash=sha256:86945f2ee6d10cdfd67bcb4069c1662dd711f7e2a4343db5cecec06b87cf31aa \ - --hash=sha256:86d835afea1eaa143012a2d7a3f45a3adce2d7adc8b4961f0b362214d800846a \ - --hash=sha256:872a5cf366aec6bb1147336480fef14c9164b154aeb6542327de4970282cd2f5 \ - --hash=sha256:8b973c57ff8e184109db042c842423ff4f60446239bd585a5131cc47f06f789d \ - --hash=sha256:8cba086a43d54ca804ce711b2a940b16e452807acebe7852ff327f1ecd49b0d4 \ - --hash=sha256:8f7f0e05112916223d3f438f293abf0727e1181b5983f413dfa2fefc4098245c \ - --hash=sha256:900218e456384ea676e24ea6a0417f030a3b07306d29d7ad843957b40a9d8d52 \ - --hash=sha256:93eebbcf1aafdf7e2ddd44c2923e2672e1010bddc014138b229e49725b4d6be5 \ - --hash=sha256:9c75442b2209b8470d6d5d8b1c25714270686f14c749028d2199c54e29f20b4d \ - --hash=sha256:9ee2197ef8c4f0dfe405d835f3b6a14f5fee7782b5de51ba06fb65fc9b36e9f1 \ - --hash=sha256:a414504bef8945eae5f2d7cb7be2d4af77c5d1cb5e20b296c2c25b61dff2900c \ - --hash=sha256:a4b9159734b326535f4dd01d947f919c6eefd2d9827466a696c44ced82dfbc18 \ - --hash=sha256:a80afd79f45f3c4a7d341f13acbe058d1ca8ac017c165d3fa0d3de6bc1a079d7 \ - --hash=sha256:aa5bc7c5d59d831d9773d1170acac7893ce3a5e130540605770ade83280e7188 \ - --hash=sha256:acfd89508504a19ed06ef963ad544ec6664518c863436306153e13e94605c218 \ - --hash=sha256:aeffcab3d4b43712bb7a60b65f6044d444e75e563ff6180af8f98dd4b905dfd2 \ - --hash=sha256:afaffc4393205524af9dfa400fa250143a6c3bc646c08c9f5e25a9f4b4d6a903 \ - --hash=sha256:b0c7088a73aef3d687c4deef8452a3ac7c1be4e29ed8bf3b366c8111128ac60c \ - --hash=sha256:b46b4ec24f7293f23adcd2d146960559aaf8020213de8ad1909dba6c013bf89c \ - --hash=sha256:b501b5fa195cc9e24fe102f21ec0a44dffc231d2af79950b451e0d99cea02234 \ - --hash=sha256:bf06bc2af43fa8d32d30fae16ad965663e966b1a3202ed407b84c989c3221e82 \ - --hash=sha256:c804e3a5aba5460c73955c955bdbd5c08c354954e9270a2c1565f62e866bdc39 \ - --hash=sha256:c8a9958e88b65c3b27e22ca2a076311636850b612d6bbfb76e8d156aacde2aaf \ - --hash=sha256:cc0a57f895b96ec78969c34f682c602bf8da1a0270b09bc65673df2e7638ec20 \ - --hash=sha256:cc8920d2ec5fa99875b670bb86ddeb21e295cb07aa331810d9e486e0b969d946 \ - --hash=sha256:ccc933afd4d20aad3c00bcef049cb40049f7f196e0397f1109dba6fed63267b0 \ - --hash=sha256:ce581db493ea1a96c0556360ede6607496e8bf9b3a8efa66e06477267bc831e9 \ - --hash=sha256:d0f23b44f57077c1ede8c5f26b30f706498b4862d3ff0a7298b8411dd2f043ff \ - --hash=sha256:d21644de1b609825ede2f48be98dfde4656aefc713654eeee280e37cadc4e0ad \ - --hash=sha256:d6889ec4ec662a1a37eb4b4fb26b6100841804dac55bd9df579e326cdc146227 \ - --hash=sha256:de5672f4a7b200c15a4127042170a694d4df43c992948f5e1af57f0174beed10 \ - --hash=sha256:e6a0bc88393d65807d751a614207b7129a310ca4fe76a74e5c7da5fa5671417e \ - --hash=sha256:ed89927b86296067b4f81f108a2271d8926467a8868e554eaf370fc27fa3ccaf \ - --hash=sha256:ee3888d9ff7c14604052b2ca5535a30216aa0a58e948cdd3eeb8d3415f638769 \ - --hash=sha256:f0963b55cdd70fad460fa4c1341f12f976bb26cb66021a5580329bd498988310 \ - --hash=sha256:f16417ec91f12f814b10bafe79ef77e70113a2f5f7018640e7425ff979253425 \ - --hash=sha256:f28620fe26bee16243be2b7b874da327312240a7cdc38b769a697578d2100013 \ - --hash=sha256:f4255143f5160d0de972d28c8f9665d882b5f61309d8362fdd3e103cf7bf010c \ - --hash=sha256:ffac52f28a7849ad7576293c0cb7b9f08304e8f7d738a8cb8a90ec4c55a998eb \ - --hash=sha256:ffe22d2b05504f786c867c8395de703937f934272eb67586817b46188b4ded6d \ - --hash=sha256:fffe29a1ef00883599d1dc2c51aa2e5d80afe49523c261a74933df395c15c520 +numpy==2.4.0 \ + --hash=sha256:009bd0ea12d3c784b6639a8457537016ce5172109e585338e11334f6a7bb88ee \ + --hash=sha256:02a2038eb27f9443a8b266a66911e926566b5a6ffd1a689b588f7f35b81e7dc3 \ + --hash=sha256:0804a8e4ab070d1d35496e65ffd3cf8114c136a2b81f61dfab0de4b218aacfd5 \ + --hash=sha256:0feafc9e03128074689183031181fac0897ff169692d8492066e949041096548 \ + --hash=sha256:1889b3a3f47a7b5bee16bc25a2145bd7cb91897f815ce3499db64c7458b6d91d \ + --hash=sha256:1d8f9fde5f6dc1b6fc34df8162f3b3079365468703fee7f31d4e0cc8c63baed9 \ + --hash=sha256:1ee32359fb7543b7b7bd0b2f46294db27e29e7bbdf70541e81b190836cd83ded \ + --hash=sha256:20c115517513831860c573996e395707aa9fb691eb179200125c250e895fcd93 \ + --hash=sha256:21555da4ec4a0c942520ead42c3b0dc9477441e085c42b0fbdd6a084869a6f6b \ + --hash=sha256:23a3e9d1a6f360267e8fbb38ba5db355a6a7e9be71d7fce7ab3125e88bb646c8 \ + --hash=sha256:2a8b6bb8369abefb8bd1801b054ad50e02b3275c8614dc6e5b0373c305291037 \ + --hash=sha256:2e284ca13d5a8367e43734148622caf0b261b275673823593e3e3634a6490f83 \ + --hash=sha256:2f585f52b2baf07ff3356158d9268ea095e221371f1074fadea2f42544d58b4d \ + --hash=sha256:316b2f2584682318539f0bcaca5a496ce9ca78c88066579ebd11fd06f8e4741e \ + --hash=sha256:32ed06d0fe9cae27d8fb5f400c63ccee72370599c75e683a6358dd3a4fb50aaf \ + --hash=sha256:355354388cba60f2132df297e2d53053d4063f79077b67b481d21276d61fc4df \ + --hash=sha256:35ddc8f4914466e6fc954c76527aa91aa763682a4f6d73249ef20b418fe6effb \ + --hash=sha256:36667db4d6c1cea79c8930ab72fadfb4060feb4bfe724141cd4bd064d2e5f8ce \ + --hash=sha256:36cbfb13c152b1c7c184ddac43765db8ad672567e7bafff2cc755a09917ed2e6 \ + --hash=sha256:39699233bc72dd482da1415dcb06076e32f60eddc796a796c5fb6c5efce94667 \ + --hash=sha256:39b19251dec4de8ff8496cd0806cbe27bf0684f765abb1f4809554de93785f2d \ + --hash=sha256:3d857f55e7fdf7c38ab96c4558c95b97d1c685be6b05c249f5fdafcbd6f9899e \ + --hash=sha256:3de19cfecd1465d0dcf8a5b5ea8b3155b42ed0b639dba4b71e323d74f2a3be5e \ + --hash=sha256:3f3096405acc48887458bbf9f6814d43785ac7ba2a57ea6442b581dedbc60ce6 \ + --hash=sha256:40483b2f2d3ba7aad426443767ff5632ec3156ef09742b96913787d13c336471 \ + --hash=sha256:413aa561266a4be2d06cd2b9665e89d9f54c543f418773076a76adcf2af08bc7 \ + --hash=sha256:44aba2f0cafd287871a495fb3163408b0bd25bbce135c6f621534a07f4f7875c \ + --hash=sha256:49ff32b09f5aa0cd30a20c2b39db3e669c845589f2b7fc910365210887e39344 \ + --hash=sha256:4d1cfce39e511069b11e67cd0bd78ceff31443b7c9e5c04db73c7a19f572967c \ + --hash=sha256:57c540ed8fb1f05cb997c6761cd56db72395b0d6985e90571ff660452ade4f98 \ + --hash=sha256:5f48cb3e88fbc294dc90e215d86fbaf1c852c63dbdb6c3a3e63f45c4b57f7344 \ + --hash=sha256:5fe44e277225fd3dff6882d86d3d447205d43532c3627313d17e754fb3905a0e \ + --hash=sha256:60e8c196cd82cbbd4f130b5290007e13e6de3eca79f0d4d38014769d96a7c475 \ + --hash=sha256:65167da969cd1ec3a1df31cb221ca3a19a8aaa25370ecb17d428415e93c1935e \ + --hash=sha256:680060061adb2d74ce352628cb798cfdec399068aa7f07ba9fb818b2b3305f98 \ + --hash=sha256:6bbaebf0d11567fa8926215ae731e1d58e6ec28a8a25235b8a47405d301332db \ + --hash=sha256:6c05483c3136ac4c91b4e81903cb53a8707d316f488124d0398499a4f8e8ef51 \ + --hash=sha256:6dc8b7e2f4eb184b37655195f421836cfae6f58197b67e3ffc501f1333d993fa \ + --hash=sha256:6e504f7b16118198f138ef31ba24d985b124c2c469fe8467007cf30fd992f934 \ + --hash=sha256:74623f2ab5cc3f7c886add4f735d1031a1d2be4a4ae63c0546cfd74e7a31ddf6 \ + --hash=sha256:77f0d13fa87036d7553bf81f0e1fe3ce68d14c9976c9851744e4d3e91127e95f \ + --hash=sha256:85eef4cb5625c47ee6425c58a3502555e10f45ee973da878ac8248ad58c136f3 \ + --hash=sha256:882567b7ae57c1b1a0250208cc21a7976d8cbcc49d5a322e607e6f09c9e0bd53 \ + --hash=sha256:8b986403023c8f3bf8f487c2e6186afda156174d31c175f747d8934dfddf3479 \ + --hash=sha256:8cfa5f29a695cb7438965e6c3e8d06e0416060cf0d709c1b1c1653a939bf5c2a \ + --hash=sha256:8eafe7c36c8430b7794edeab3087dec7bf31d634d92f2af9949434b9d1964cba \ + --hash=sha256:9198f447e1dc5647d07c9a6bbe2063cc0132728cc7175b39dbc796da5b54920d \ + --hash=sha256:92190db305a6f48734d3982f2c60fa30d6b5ee9bff10f2887b930d7b40119f4c \ + --hash=sha256:927ccf5cd17c48f801f4ed43a7e5673a2724bd2171460be3e3894e6e332ef83a \ + --hash=sha256:98e81648e0b36e325ab67e46b5400a7a6d4a22b8a7c8e8bbfe20e7db7906bf95 \ + --hash=sha256:9a818668b674047fd88c4cddada7ab8f1c298812783e8328e956b78dc4807f9f \ + --hash=sha256:a152d86a3ae00ba5f47b3acf3b827509fd0b6cb7d3259665e63dafbad22a75ea \ + --hash=sha256:a2718c1de8504121714234b6f8241d0019450353276c88b9453c9c3d92e101db \ + --hash=sha256:a39fb973a726e63223287adc6dafe444ce75af952d711e400f3bf2b36ef55a7b \ + --hash=sha256:a899699294f28f7be8992853c0c60741f16ff199205e2e6cdca155762cbaa59d \ + --hash=sha256:a8fdfed3deaf1928fb7667d96e0567cdf58c2b370ea2ee7e586aa383ec2cb346 \ + --hash=sha256:aabb081ca0ec5d39591fc33018cd4b3f96e1a2dd6756282029986d00a785fba4 \ + --hash=sha256:b1f5b45829ac1848893f0ddf5cb326110604d6df96cdc255b0bf9edd154104d4 \ + --hash=sha256:b48e35f4ab6f6a7597c46e301126ceba4c44cd3280e3750f85db48b082624fa4 \ + --hash=sha256:b54c83f1c0c0f1d748dca0af516062b8829d53d1f0c402be24b4257a9c48ada6 \ + --hash=sha256:ba0cb30acd3ef11c94dc27fbfba68940652492bc107075e7ffe23057f9425681 \ + --hash=sha256:bb50ce5fb202a26fd5404620e7ef820ad1ab3558b444cb0b55beb7ef66cd2d63 \ + --hash=sha256:c95eb6db2884917d86cde0b4d4cf31adf485c8ec36bf8696dd66fa70de96f36b \ + --hash=sha256:d0ffd9e2e4441c96a9c91ec1783285d80bf835b677853fc2770a89d50c1e48ac \ + --hash=sha256:d57b5046c120561ba8fa8e4030fbb8b822f3063910fa901ffadf16e2b7128ad6 \ + --hash=sha256:d9e6a7664ddd9746e20b7325351fe1a8408d0a2bf9c63b5e898290ddc8f09544 \ + --hash=sha256:dc578891de1db95b2a35001b695451767b580bb45753717498213c5ff3c41d63 \ + --hash=sha256:e0434aa22c821f44eeb4c650b81c7fbdd8c0122c6c4b5a576a76d5a35625ecd9 \ + --hash=sha256:e06a922a469cae9a57100864caf4f8a97a1026513793969f8ba5b63137a35d25 \ + --hash=sha256:e493962256a38f58283de033d8af176c5c91c084ea30f15834f7545451c42059 \ + --hash=sha256:ecb0019d44f4cdb50b676c5d0cb4b1eae8e15d1ed3d3e6639f986fc92b2ec52c \ + --hash=sha256:f935c4493eda9069851058fa0d9e39dbf6286be690066509305e52912714dbb2 # via # feast (setup.py) # dask @@ -755,26 +753,28 @@ protobuf==6.33.2 \ --hash=sha256:d9b19771ca75935b3a4422957bc518b0cecb978b31d1dd12037b088f6bcc0e43 \ --hash=sha256:fc2a0e8b05b180e5fc0dd1559fe8ebdae21a27e81ac77728fb6c42b12c7419b4 # via feast (setup.py) -psutil==7.1.3 \ - --hash=sha256:0005da714eee687b4b8decd3d6cc7c6db36215c9e74e5ad2264b90c3df7d92dc \ - --hash=sha256:1068c303be3a72f8e18e412c5b2a8f6d31750fb152f9cb106b54090296c9d251 \ - --hash=sha256:18349c5c24b06ac5612c0428ec2a0331c26443d259e2a0144a9b24b4395b58fa \ - --hash=sha256:19644c85dcb987e35eeeaefdc3915d059dac7bd1167cdcdbf27e0ce2df0c08c0 \ - --hash=sha256:2bdbcd0e58ca14996a42adf3621a6244f1bb2e2e528886959c72cf1e326677ab \ - --hash=sha256:31d77fcedb7529f27bb3a0472bea9334349f9a04160e8e6e5020f22c59893264 \ - --hash=sha256:3792983e23b69843aea49c8f5b8f115572c5ab64c153bada5270086a2123c7e7 \ - --hash=sha256:3bb428f9f05c1225a558f53e30ccbad9930b11c3fc206836242de1091d3e7dd3 \ - --hash=sha256:56d974e02ca2c8eb4812c3f76c30e28836fffc311d55d979f1465c1feeb2b68b \ - --hash=sha256:6c86281738d77335af7aec228328e944b30930899ea760ecf33a4dba66be5e74 \ - --hash=sha256:8f33a3702e167783a9213db10ad29650ebf383946e91bc77f28a5eb083496bc9 \ - --hash=sha256:95ef04cf2e5ba0ab9eaafc4a11eaae91b44f4ef5541acd2ee91d9108d00d59a7 \ - --hash=sha256:ad81425efc5e75da3f39b3e636293360ad8d0b49bed7df824c79764fb4ba9b8b \ - --hash=sha256:b403da1df4d6d43973dc004d19cee3b848e998ae3154cc8097d139b77156c353 \ - --hash=sha256:bc31fa00f1fbc3c3802141eede66f3a2d51d89716a194bf2cd6fc68310a19880 \ - --hash=sha256:bd0d69cee829226a761e92f28140bec9a5ee9d5b4fb4b0cc589068dbfff559b1 \ - --hash=sha256:c525ffa774fe4496282fb0b1187725793de3e7c6b29e41562733cae9ada151ee \ - --hash=sha256:f39c2c19fe824b47484b96f9692932248a54c43799a84282cfe58d05a6449efd \ - --hash=sha256:fac9cd332c67f4422504297889da5ab7e05fd11e3c4392140f7370f4208ded1f +psutil==7.2.1 \ + --hash=sha256:05cc68dbb8c174828624062e73078e7e35406f4ca2d0866c272c2410d8ef06d1 \ + --hash=sha256:08a2f175e48a898c8eb8eace45ce01777f4785bc744c90aa2cc7f2fa5462a266 \ + --hash=sha256:0d67c1822c355aa6f7314d92018fb4268a76668a536f133599b91edd48759442 \ + --hash=sha256:2ceae842a78d1603753561132d5ad1b2f8a7979cb0c283f5b52fb4e6e14b1a79 \ + --hash=sha256:35630d5af80d5d0d49cfc4d64c1c13838baf6717a13effb35869a5919b854cdf \ + --hash=sha256:3fce5f92c22b00cdefd1645aa58ab4877a01679e901555067b1bd77039aa589f \ + --hash=sha256:494c513ccc53225ae23eec7fe6e1482f1b8a44674241b54561f755a898650679 \ + --hash=sha256:5e38404ca2bb30ed7267a46c02f06ff842e92da3bb8c5bfdadbd35a5722314d8 \ + --hash=sha256:81442dac7abfc2f4f4385ea9e12ddf5a796721c0f6133260687fec5c3780fa49 \ + --hash=sha256:923f8653416604e356073e6e0bccbe7c09990acef442def2f5640dd0faa9689f \ + --hash=sha256:93f3f7b0bb07711b49626e7940d6fe52aa9940ad86e8f7e74842e73189712129 \ + --hash=sha256:99a4cd17a5fdd1f3d014396502daa70b5ec21bf4ffe38393e152f8e449757d67 \ + --hash=sha256:ab2b98c9fc19f13f59628d94df5cc4cc4844bc572467d113a8b517d634e362c6 \ + --hash=sha256:b1b0671619343aa71c20ff9767eced0483e4fc9e1f489d50923738caf6a03c17 \ + --hash=sha256:b2e953fcfaedcfbc952b44744f22d16575d3aa78eb4f51ae74165b4e96e55f42 \ + --hash=sha256:ba9f33bb525b14c3ea563b2fd521a84d2fa214ec59e3e6a2858f78d0844dd60d \ + --hash=sha256:cfbe6b40ca48019a51827f20d830887b3107a74a79b01ceb8cc8de4ccb17b672 \ + --hash=sha256:d34d2ca888208eea2b5c68186841336a7f5e0b990edec929be909353a202768a \ + --hash=sha256:ea46c0d060491051d39f0d2cff4f98d5c72b288289f57a21556cc7d504db37fc \ + --hash=sha256:f7583aec590485b43ca601dd9cea0dcd65bd7bb21d30ef4ddbf4ea6b5ed1bdd3 \ + --hash=sha256:f78baafb38436d5a128f837fab2d92c276dfb48af01a240b861ae02b2413ada8 # via feast (setup.py) pyarrow==21.0.0 \ --hash=sha256:067c66ca29aaedae08218569a114e413b26e742171f526e828e1064fcdec13f4 \ @@ -1195,12 +1195,14 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:1d8b4a7a8c9b537509d56d5cd10ecdcfbb95912d72480c8861524efecc6a3fff \ --hash=sha256:215f0528b914e5c75ef2559f69dca86878a3beeb0c1be7279d77f18e8d180ed4 \ --hash=sha256:2c0b74aa79e2deade948fe8593654c8ef4228c44ba862bb7c9585c8e0db90f33 \ + --hash=sha256:2e90a344c644a4fa871eb01809c32096487928bd2038bf10f3e4515cb688cc56 \ --hash=sha256:3c5f76216e7b85770d5bb5130ddd11ee89f4d52b11783674a662c7dd57018177 \ --hash=sha256:470daea2c1ce73910f08caf10575676a37159a6d16c4da33d0033546bddebc9b \ --hash=sha256:4748601c8ea959e37e03d13dcda4a44837afcd1b21338e637f7c935b8da06177 \ --hash=sha256:4b6bec67ca45bc166c8729910bd2a87f1c0407ee955df110d78948f5b5827e8a \ --hash=sha256:5225a288e4c8cc2308dbdd874edad6e7d0fd38eac1e9e5f23503425c8eee20d0 \ --hash=sha256:56ead1f8dfb91a54a28cd1d072c74b3d635bcffbd25e50786533b822d4f2cde2 \ + --hash=sha256:5964f832431b7cdfaaa22a660b4c7eb1dfcd6ed41375f67fd3e3440fd95cb3cc \ --hash=sha256:59a8b8bd9c6bedf81ad07c8bd5543eedca55fe9b8780b2b628d495ba55f8db1e \ --hash=sha256:672c45cae53ba88e0dad74b9027dddd09ef6f441e927786b05bec75d949fbb2e \ --hash=sha256:6d0beadc2535157070c9c17ecf25ecec31e13c229a8f69196d7590bde8082bf1 \ @@ -1219,7 +1221,9 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:b8c8b41b97fba5f62349aa285654230296829672fc9939cd7f35aab246d1c08b \ --hash=sha256:ba547ac0b361ab4f1608afbc8432db669bd0819b3e12e29fb5fa9529a8bba81d \ --hash=sha256:c1c2091b1489435ff85728fafeb990f073e64f6f5e81d5cd53059773e8521eb6 \ + --hash=sha256:c64772786d9eee72d4d3784c28f0a636af5b0a29f3fe26ff11f55efe90c0bd85 \ --hash=sha256:cd337d3526ec5298f67d6a30bbbe4ed7e5e68862f0bf6dd21d289f8d37b7d60b \ + --hash=sha256:d29b2b99d527dbc66dd87c3c3248a5dd789d974a507f4653c969999fc7c1191b \ --hash=sha256:d2c3684fca8a05f0ac1d9a21c1f4a266983a7ea9180efb80ffeb03861ecd01a0 \ --hash=sha256:d62e47f5d8a50099b17e2bfc1b0c7d7ecd8ba6b46b1507b58cc4f05eefc3bb1c \ --hash=sha256:d8a2ca754e5415cde2b656c27900b19d50ba076aa05ce66e2207623d3fe41f5a \ @@ -1281,13 +1285,13 @@ typing-inspection==0.4.2 \ --hash=sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7 \ --hash=sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464 # via pydantic -tzdata==2025.2 \ - --hash=sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8 \ - --hash=sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9 +tzdata==2025.3 \ + --hash=sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1 \ + --hash=sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7 # via pandas -urllib3==2.6.1 \ - --hash=sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f \ - --hash=sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b +urllib3==2.6.2 \ + --hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \ + --hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd # via requests uvicorn[standard]==0.34.0 \ --hash=sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4 \ diff --git a/setup.py b/setup.py index 44344f5666d..d4ecc5ee0af 100644 --- a/setup.py +++ b/setup.py @@ -207,7 +207,7 @@ "mock==2.0.0", "moto==4.2.14", "mypy>=1.4.1,<1.11.3", - "urllib3>=1.25.4,<3", + "urllib3>=2.6.0,<3", "psutil==5.9.0", "py>=1.11.0", # https://github.com/pytest-dev/pytest/issues/10420 "pytest>=6.0.0,<8", From e484c12a65d4c23ebc0163d4b27843797e092204 Mon Sep 17 00:00:00 2001 From: Aniket Paluskar <64416568+aniketpalu@users.noreply.github.com> Date: Tue, 30 Dec 2025 20:36:08 +0530 Subject: [PATCH 07/37] feat: Offline Store historical features retrieval based on datetime range in Ray (#5738) * feat: Offline Store historical features retrieval based on datetime range in Ray Signed-off-by: Aniket Paluskar * Reforamatted code to fix lint issues Signed-off-by: Aniket Paluskar * preserve event_timestamp in non-entity mode for correct point-in-time joins Signed-off-by: Aniket Paluskar * Minor lint changes Signed-off-by: Aniket Paluskar * Added test cases for datetime range based feature retrieval in Ray Signed-off-by: Aniket Paluskar --------- Signed-off-by: Aniket Paluskar --- .../contrib/ray_offline_store/ray.py | 197 +++++++++++++++++- .../tests/test_ray_integration.py | 125 +++++++++++ 2 files changed, 318 insertions(+), 4 deletions(-) diff --git a/sdk/python/feast/infra/offline_stores/contrib/ray_offline_store/ray.py b/sdk/python/feast/infra/offline_stores/contrib/ray_offline_store/ray.py index 98247c6c0e0..b7b3619c15a 100644 --- a/sdk/python/feast/infra/offline_stores/contrib/ray_offline_store/ray.py +++ b/sdk/python/feast/infra/offline_stores/contrib/ray_offline_store/ray.py @@ -1,7 +1,7 @@ import logging import os import uuid -from datetime import datetime +from datetime import datetime, timedelta from pathlib import Path from typing import Any, Callable, Dict, List, Literal, Optional, Tuple, Union @@ -1197,6 +1197,171 @@ def schema(self) -> pa.Schema: return pa.Table.from_pandas(df).schema +def _compute_non_entity_dates_ray( + feature_views: List[FeatureView], + start_date_opt: Optional[datetime], + end_date_opt: Optional[datetime], +) -> Tuple[datetime, datetime]: + # Why: derive bounded time window when no entity_df is provided using explicit dates or max TTL fallback + end_date = ( + make_tzaware(end_date_opt) if end_date_opt else make_tzaware(datetime.utcnow()) + ) + if start_date_opt is None: + max_ttl_seconds = 0 + for fv in feature_views: + if getattr(fv, "ttl", None): + try: + ttl_val = fv.ttl + if isinstance(ttl_val, timedelta): + max_ttl_seconds = max( + max_ttl_seconds, int(ttl_val.total_seconds()) + ) + except Exception: + pass + start_date = ( + end_date - timedelta(seconds=max_ttl_seconds) + if max_ttl_seconds > 0 + else end_date - timedelta(days=30) + ) + else: + start_date = make_tzaware(start_date_opt) + return start_date, end_date + + +def _make_filter_range(timestamp_field: str, start_date: datetime, end_date: datetime): + # Why: factory function for time-range filtering in Ray map_batches + def _filter_range(batch: pd.DataFrame) -> pd.Series: + ts = pd.to_datetime(batch[timestamp_field], utc=True) + return (ts >= start_date) & (ts <= end_date) + + return _filter_range + + +def _make_select_distinct_entity_timestamps(join_keys: List[str], timestamp_field: str): + # Why: factory function for distinct (entity_keys, event_timestamp) projection in Ray map_batches + # This preserves multiple transactions per entity ID with different timestamps for proper PIT joins + def _select_distinct_entity_timestamps(batch: pd.DataFrame) -> pd.DataFrame: + cols = [c for c in join_keys if c in batch.columns] + if timestamp_field in batch.columns: + # Rename timestamp to standardized event_timestamp + batch = batch.copy() + if timestamp_field != "event_timestamp": + batch["event_timestamp"] = batch[timestamp_field] + cols = cols + ["event_timestamp"] + if not cols: + return pd.DataFrame(columns=join_keys + ["event_timestamp"]) + return batch[cols].drop_duplicates().reset_index(drop=True) + + return _select_distinct_entity_timestamps + + +def _distinct_entities_for_feature_view_ray( + store: "RayOfflineStore", + config: RepoConfig, + fv: FeatureView, + registry: BaseRegistry, + project: str, + start_date: datetime, + end_date: datetime, +) -> Tuple[Dataset, List[str]]: + # Why: read minimal columns, filter by time, and project distinct (join_keys, event_timestamp) per FeatureView + # This preserves multiple transactions per entity ID for proper point-in-time joins + ray_wrapper = get_ray_wrapper() + entities = fv.entities or [] + entity_objs = [registry.get_entity(e, project) for e in entities] + original_join_keys, _rev_feats, timestamp_field, _created_col = _get_column_names( + fv, entity_objs + ) + + source_info = resolve_feature_view_source_with_fallback( + fv, config, is_materialization=False + ) + source_path = store._get_source_path(source_info.data_source, config) + required_columns = list(set(original_join_keys + [timestamp_field])) + ds = ray_wrapper.read_parquet(source_path, columns=required_columns) + + field_mapping = getattr(fv.batch_source, "field_mapping", None) + if field_mapping: + ds = apply_field_mapping(ds, field_mapping) + original_join_keys = [field_mapping.get(k, k) for k in original_join_keys] + timestamp_field = field_mapping.get(timestamp_field, timestamp_field) + + if fv.projection.join_key_map: + join_keys = [ + fv.projection.join_key_map.get(key, key) for key in original_join_keys + ] + else: + join_keys = original_join_keys + + ds = ensure_timestamp_compatibility(ds, [timestamp_field]) + ds = ds.filter(_make_filter_range(timestamp_field, start_date, end_date)) + # Extract distinct (entity_keys, event_timestamp) combinations - not just entity_keys + ds = ds.map_batches( + _make_select_distinct_entity_timestamps(join_keys, timestamp_field), + batch_format="pandas", + ) + return ds, join_keys + + +def _make_align_columns(all_join_keys: List[str], include_timestamp: bool = False): + # Why: factory function for schema alignment in Ray map_batches + # When include_timestamp=True, also aligns event_timestamp column for proper PIT joins + def _align_columns(batch: pd.DataFrame) -> pd.DataFrame: + batch = batch.copy() + output_cols = list(all_join_keys) + if include_timestamp: + output_cols = output_cols + ["event_timestamp"] + for k in output_cols: + if k not in batch.columns: + batch[k] = pd.NA + return batch[output_cols] + + return _align_columns + + +def _make_distinct_by_keys(keys: List[str], include_timestamp: bool = False): + # Why: factory function for deduplication in Ray map_batches + # When include_timestamp=True, deduplicates on (keys + event_timestamp) for proper PIT joins + def _distinct(batch: pd.DataFrame) -> pd.DataFrame: + subset = list(keys) + if include_timestamp and "event_timestamp" in batch.columns: + subset = subset + ["event_timestamp"] + return batch.drop_duplicates(subset=subset).reset_index(drop=True) + + return _distinct + + +def _align_and_union_entities_ray( + datasets: List[Dataset], + all_join_keys: List[str], + include_timestamp: bool = False, +) -> Dataset: + # Why: align schemas across FeatureViews and union to a unified entity set + # When include_timestamp=True, preserves distinct (entity_keys, event_timestamp) combinations + # for proper point-in-time joins with multiple transactions per entity + ray_wrapper = get_ray_wrapper() + output_cols = list(all_join_keys) + if include_timestamp: + output_cols = output_cols + ["event_timestamp"] + if not datasets: + return ray_wrapper.from_pandas(pd.DataFrame(columns=output_cols)) + + aligned = [ + ds.map_batches( + _make_align_columns(all_join_keys, include_timestamp=include_timestamp), + batch_format="pandas", + ) + for ds in datasets + ] + entity_ds = aligned[0] + for ds in aligned[1:]: + entity_ds = entity_ds.union(ds) + return entity_ds.map_batches( + _make_distinct_by_keys(all_join_keys, include_timestamp=include_timestamp), + batch_format="pandas", + ) + + class RayOfflineStore(OfflineStore): def __init__(self) -> None: self._staging_location: Optional[str] = None @@ -1874,17 +2039,41 @@ def get_historical_features( config: RepoConfig, feature_views: List[FeatureView], feature_refs: List[str], - entity_df: Union[pd.DataFrame, str], + entity_df: Optional[Union[pd.DataFrame, str]], registry: BaseRegistry, project: str, full_feature_names: bool = False, + **kwargs: Any, ) -> RetrievalJob: store = RayOfflineStore() store._init_ray(config) - # Load entity_df as Ray dataset for distributed processing + # Load or derive entity dataset for distributed processing ray_wrapper = get_ray_wrapper() - if isinstance(entity_df, str): + if entity_df is None: + # Non-entity mode: derive entity set from feature sources within a bounded time window + # Preserves distinct (entity_keys, event_timestamp) combinations for proper PIT joins + # This handles cases where multiple transactions per entity ID exist + start_date, end_date = _compute_non_entity_dates_ray( + feature_views, kwargs.get("start_date"), kwargs.get("end_date") + ) + per_view_entity_ds: List[Dataset] = [] + all_join_keys: List[str] = [] + for fv in feature_views: + ds, join_keys = _distinct_entities_for_feature_view_ray( + store, config, fv, registry, project, start_date, end_date + ) + per_view_entity_ds.append(ds) + for k in join_keys: + if k not in all_join_keys: + all_join_keys.append(k) + # Use include_timestamp=True to preserve actual event_timestamp from data + # instead of assigning a fixed end_date to all entities + entity_ds = _align_and_union_entities_ray( + per_view_entity_ds, all_join_keys, include_timestamp=True + ) + entity_df_sample = entity_ds.limit(1000).to_pandas() + elif isinstance(entity_df, str): entity_ds = ray_wrapper.read_csv(entity_df) entity_df_sample = entity_ds.limit(1000).to_pandas() else: diff --git a/sdk/python/feast/infra/offline_stores/contrib/ray_offline_store/tests/test_ray_integration.py b/sdk/python/feast/infra/offline_stores/contrib/ray_offline_store/tests/test_ray_integration.py index 5ab82f8ef47..0420054b8fb 100644 --- a/sdk/python/feast/infra/offline_stores/contrib/ray_offline_store/tests/test_ray_integration.py +++ b/sdk/python/feast/infra/offline_stores/contrib/ray_offline_store/tests/test_ray_integration.py @@ -1,3 +1,5 @@ +from datetime import timedelta + import pandas as pd import pytest @@ -144,3 +146,126 @@ def test_ray_offline_store_persist(environment, universal_data_sources): import os assert os.path.exists(saved_path) + + +@pytest.mark.integration +@pytest.mark.universal_offline_stores +def test_ray_offline_store_non_entity_mode_basic(environment, universal_data_sources): + """Test historical features retrieval without entity_df (non-entity mode). + + This tests the basic functionality where entity_df=None and start_date/end_date + are provided to retrieve all features within the time range. + """ + store = environment.feature_store + + (entities, datasets, data_sources) = universal_data_sources + feature_views = construct_universal_feature_views(data_sources) + + store.apply( + [ + driver(), + feature_views.driver, + ] + ) + + # Use the environment's start and end dates for the query + start_date = environment.start_date + end_date = environment.end_date + + # Non-entity mode: entity_df=None with start_date and end_date + result_df = store.get_historical_features( + entity_df=None, + features=[ + "driver_stats:conv_rate", + "driver_stats:acc_rate", + "driver_stats:avg_daily_trips", + ], + full_feature_names=False, + start_date=start_date, + end_date=end_date, + ).to_df() + + # Verify data was retrieved + assert len(result_df) > 0, "Non-entity mode should return data" + assert "conv_rate" in result_df.columns + assert "acc_rate" in result_df.columns + assert "avg_daily_trips" in result_df.columns + assert "event_timestamp" in result_df.columns + assert "driver_id" in result_df.columns + + # Verify timestamps are within the requested range + result_df["event_timestamp"] = pd.to_datetime( + result_df["event_timestamp"], utc=True + ) + assert (result_df["event_timestamp"] >= start_date).all() + assert (result_df["event_timestamp"] <= end_date).all() + + +@pytest.mark.integration +@pytest.mark.universal_offline_stores +def test_ray_offline_store_non_entity_mode_preserves_multiple_timestamps( + environment, universal_data_sources +): + """Test that non-entity mode preserves multiple transactions per entity ID. + + This is a regression test for the fix that ensures distinct (entity_key, event_timestamp) + combinations are preserved, not just distinct entity keys. This is critical for + proper point-in-time joins when an entity has multiple transactions. + """ + store = environment.feature_store + + (entities, datasets, data_sources) = universal_data_sources + feature_views = construct_universal_feature_views(data_sources) + + store.apply( + [ + driver(), + feature_views.driver, + ] + ) + + now = _utc_now() + ts1 = pd.Timestamp(now - timedelta(hours=2)).round("ms") + ts2 = pd.Timestamp(now - timedelta(hours=1)).round("ms") + ts3 = pd.Timestamp(now).round("ms") + + # Write data with multiple timestamps for the same entity (driver_id=9001) + df_to_write = pd.DataFrame.from_dict( + { + "event_timestamp": [ts1, ts2, ts3], + "driver_id": [9001, 9001, 9001], # Same entity, different timestamps + "conv_rate": [0.1, 0.2, 0.3], + "acc_rate": [0.9, 0.8, 0.7], + "avg_daily_trips": [10, 20, 30], + "created": [ts1, ts2, ts3], + }, + ) + + store.write_to_offline_store( + feature_views.driver.name, df_to_write, allow_registry_cache=False + ) + + # Query without entity_df - should get all 3 rows for driver_id=9001 + result_df = store.get_historical_features( + entity_df=None, + features=[ + "driver_stats:conv_rate", + "driver_stats:acc_rate", + ], + full_feature_names=False, + start_date=ts1 - timedelta(minutes=1), + end_date=ts3 + timedelta(minutes=1), + ).to_df() + + # Filter to just our test entity + result_df = result_df[result_df["driver_id"] == 9001] + + # Verify we got all 3 rows with different timestamps (not just 1 row) + assert len(result_df) == 3, ( + f"Expected 3 rows for driver_id=9001 (one per timestamp), got {len(result_df)}" + ) + + # Verify the feature values are correct for each timestamp + result_df = result_df.sort_values("event_timestamp").reset_index(drop=True) + assert list(result_df["conv_rate"]) == [0.1, 0.2, 0.3] + assert list(result_df["acc_rate"]) == [0.9, 0.8, 0.7] From 103c5e9477a81671a6f405fde5145611afa67995 Mon Sep 17 00:00:00 2001 From: Tony Date: Wed, 31 Dec 2025 06:42:04 +0200 Subject: [PATCH 08/37] fix: Support arro3 table schema with newer deltalake packages (#5799) * fix: Support arro3 table schema with newer deltalake packages Signed-off-by: Anton Shtarev * Fix lint Signed-off-by: Anton Shtarev --------- Signed-off-by: Anton Shtarev --- .../feast/infra/offline_stores/file_source.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/sdk/python/feast/infra/offline_stores/file_source.py b/sdk/python/feast/infra/offline_stores/file_source.py index 12524ab4fc2..02d40ad770b 100644 --- a/sdk/python/feast/infra/offline_stores/file_source.py +++ b/sdk/python/feast/infra/offline_stores/file_source.py @@ -202,11 +202,18 @@ def get_table_column_names_and_types( "AWS_ENDPOINT_URL": str(self.s3_endpoint_override), } - schema = ( - DeltaTable(self.path, storage_options=storage_options) - .schema() - .to_pyarrow() - ) + delta_schema = DeltaTable( + self.path, storage_options=storage_options + ).schema() + if hasattr(delta_schema, "to_arrow"): + # deltalake >= 0.10.0 + arro3_schema = delta_schema.to_arrow() + schema = pyarrow.schema(arro3_schema) + elif hasattr(delta_schema, "to_pyarrow"): + # deltalake < 0.10.0 + schema = delta_schema.to_pyarrow() + else: + raise Exception("Unknown DeltaTable package version") else: raise Exception(f"Unknown FileFormat -> {self.file_format}") From 58d0325477626cb5637edd824505bf57a95a422a Mon Sep 17 00:00:00 2001 From: Jacob Weinhold <29459386+jfw-ppi@users.noreply.github.com> Date: Fri, 2 Jan 2026 08:58:16 +0100 Subject: [PATCH 09/37] fix: Spark Materialization Engine Cannot Infer Schema (#5806) * fix: build Spark DataFrame from Arrow with schema and empty handling(#5594) Signed-off-by: Jacob Weinhold <29459386+jfw-ppi@users.noreply.github.com> * fix: build Spark DataFrame from Arrow with schema and empty handling(#5594) Signed-off-by: Jacob Weinhold <29459386+jfw-ppi@users.noreply.github.com> --------- Signed-off-by: Jacob Weinhold <29459386+jfw-ppi@users.noreply.github.com> --- sdk/python/feast/infra/compute_engines/spark/nodes.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/sdk/python/feast/infra/compute_engines/spark/nodes.py b/sdk/python/feast/infra/compute_engines/spark/nodes.py index fa5a7bd6208..124ce65ff90 100644 --- a/sdk/python/feast/infra/compute_engines/spark/nodes.py +++ b/sdk/python/feast/infra/compute_engines/spark/nodes.py @@ -4,6 +4,7 @@ import pandas as pd from pyspark.sql import DataFrame, SparkSession, Window from pyspark.sql import functions as F +from pyspark.sql.pandas.types import from_arrow_schema from feast import BatchFeatureView, StreamFeatureView from feast.aggregation import Aggregation @@ -80,7 +81,14 @@ def execute(self, context: ExecutionContext) -> DAGValue: if isinstance(retrieval_job, SparkRetrievalJob): spark_df = cast(SparkRetrievalJob, retrieval_job).to_spark_df() else: - spark_df = self.spark_session.createDataFrame(retrieval_job.to_arrow()) + arrow_table = retrieval_job.to_arrow() + if arrow_table.num_rows == 0: + spark_schema = from_arrow_schema(arrow_table.schema) + spark_df = self.spark_session.createDataFrame( + self.spark_session.sparkContext.emptyRDD(), schema=spark_schema + ) + else: + spark_df = self.spark_session.createDataFrame(arrow_table.to_pandas()) return DAGValue( data=spark_df, From 5b787afce9263a5cc37bf69119d505d3ffd5f13c Mon Sep 17 00:00:00 2001 From: Jacob Weinhold <29459386+jfw-ppi@users.noreply.github.com> Date: Fri, 2 Jan 2026 09:00:49 +0100 Subject: [PATCH 10/37] feat: Support staging for spark materialization (#5671) (#5797) * feat: support staging for spark materialization (#5671) Signed-off-by: Jacob Weinhold <29459386+jfw-ppi@users.noreply.github.com> * feat: support staging for spark materialization ([#5671](https://github.com/feast-dev/feast/issues/5671)) Signed-off-by: Jacob Weinhold <29459386+jfw-ppi@users.noreply.github.com> --------- Signed-off-by: Jacob Weinhold <29459386+jfw-ppi@users.noreply.github.com> --- docs/reference/offline-stores/spark.md | 6 +- .../contrib/spark_offline_store/spark.py | 208 ++++++++++++++---- .../contrib/spark_offline_store/test_spark.py | 208 ++++++++++++++++++ 3 files changed, 374 insertions(+), 48 deletions(-) diff --git a/docs/reference/offline-stores/spark.md b/docs/reference/offline-stores/spark.md index 2e2facba64a..7f2d4094785 100644 --- a/docs/reference/offline-stores/spark.md +++ b/docs/reference/offline-stores/spark.md @@ -32,9 +32,13 @@ offline_store: spark.sql.session.timeZone: "UTC" spark.sql.execution.arrow.fallback.enabled: "true" spark.sql.execution.arrow.pyspark.enabled: "true" + # Optional: spill large materializations to the staging location instead of collecting in the driver + staging_location: "s3://my-bucket/tmp/feast" online_store: path: data/online_store.db ``` + +> The `staging_location` can point to object storage (like S3, GCS, or Azure blobs) or a local filesystem directory (e.g., `/tmp/feast/staging`) to spill large materialization outputs before reading them back into Feast. {% endcode %} The full set of configuration options is available in [SparkOfflineStoreConfig](https://rtd.feast.dev/en/master/#feast.infra.offline_stores.contrib.spark_offline_store.spark.SparkOfflineStoreConfig). @@ -60,7 +64,7 @@ Below is a matrix indicating which functionality is supported by `SparkRetrieval | export to arrow table | yes | | export to arrow batches | no | | export to SQL | no | -| export to data lake (S3, GCS, etc.) | no | +| export to data lake (S3, GCS, etc.) | yes | | export to data warehouse | no | | export as Spark dataframe | yes | | local execution of Python-based on-demand transforms | no | diff --git a/sdk/python/feast/infra/offline_stores/contrib/spark_offline_store/spark.py b/sdk/python/feast/infra/offline_stores/contrib/spark_offline_store/spark.py index 47e76a014f0..af83d303504 100644 --- a/sdk/python/feast/infra/offline_stores/contrib/spark_offline_store/spark.py +++ b/sdk/python/feast/infra/offline_stores/contrib/spark_offline_store/spark.py @@ -16,6 +16,7 @@ Union, cast, ) +from urllib.parse import urlparse if TYPE_CHECKING: from feast.saved_dataset import ValidationReference @@ -24,6 +25,7 @@ import pandas import pandas as pd import pyarrow +import pyarrow.dataset as ds import pyarrow.parquet as pq import pyspark from pydantic import StrictStr @@ -445,8 +447,43 @@ def _to_df_internal(self, timeout: Optional[int] = None) -> pd.DataFrame: def _to_arrow_internal(self, timeout: Optional[int] = None) -> pyarrow.Table: """Return dataset as pyarrow Table synchronously""" + if self._should_use_staging_for_arrow(): + return self._to_arrow_via_staging() + return pyarrow.Table.from_pandas(self._to_df_internal(timeout=timeout)) + def _should_use_staging_for_arrow(self) -> bool: + offline_store = getattr(self._config, "offline_store", None) + return bool( + isinstance(offline_store, SparkOfflineStoreConfig) + and getattr(offline_store, "staging_location", None) + ) + + def _to_arrow_via_staging(self) -> pyarrow.Table: + paths = self.to_remote_storage() + if not paths: + return pyarrow.table({}) + + parquet_paths = _filter_parquet_files(paths) + if not parquet_paths: + return pyarrow.table({}) + + normalized_paths = self._normalize_staging_paths(parquet_paths) + dataset = ds.dataset(normalized_paths, format="parquet") + return dataset.to_table() + + def _normalize_staging_paths(self, paths: List[str]) -> List[str]: + """Normalize staging paths for PyArrow datasets.""" + normalized = [] + for path in paths: + if path.startswith("file://"): + normalized.append(path[len("file://") :]) + elif "://" in path: + normalized.append(path) + else: + normalized.append(path) + return normalized + def to_feast_df( self, validation_reference: Optional["ValidationReference"] = None, @@ -508,55 +545,53 @@ def supports_remote_storage_export(self) -> bool: def to_remote_storage(self) -> List[str]: """Currently only works for local and s3-based staging locations""" - if self.supports_remote_storage_export(): - sdf: pyspark.sql.DataFrame = self.to_spark_df() - - if self._config.offline_store.staging_location.startswith("/"): - local_file_staging_location = os.path.abspath( - self._config.offline_store.staging_location - ) - - # write to staging location - output_uri = os.path.join( - str(local_file_staging_location), str(uuid.uuid4()) - ) - sdf.write.parquet(output_uri) - - return _list_files_in_folder(output_uri) - elif self._config.offline_store.staging_location.startswith("s3://"): - from feast.infra.utils import aws_utils - - spark_compatible_s3_staging_location = ( - self._config.offline_store.staging_location.replace( - "s3://", "s3a://" - ) - ) - - # write to staging location - output_uri = os.path.join( - str(spark_compatible_s3_staging_location), str(uuid.uuid4()) - ) - sdf.write.parquet(output_uri) - - return aws_utils.list_s3_files( - self._config.offline_store.region, output_uri - ) - elif self._config.offline_store.staging_location.startswith("hdfs://"): - output_uri = os.path.join( - self._config.offline_store.staging_location, str(uuid.uuid4()) - ) - sdf.write.parquet(output_uri) - spark_session = get_spark_session_or_start_new_with_repoconfig( - store_config=self._config.offline_store - ) - return _list_hdfs_files(spark_session, output_uri) - else: - raise NotImplementedError( - "to_remote_storage is only implemented for file://, s3:// and hdfs:// uri schemes" - ) + if not self.supports_remote_storage_export(): + raise NotImplementedError() + + sdf: pyspark.sql.DataFrame = self.to_spark_df() + staging_location = self._config.offline_store.staging_location + + if staging_location.startswith("/"): + local_file_staging_location = os.path.abspath(staging_location) + output_uri = os.path.join(local_file_staging_location, str(uuid.uuid4())) + sdf.write.parquet(output_uri) + return _list_files_in_folder(output_uri) + elif staging_location.startswith("s3://"): + from feast.infra.utils import aws_utils + spark_compatible_s3_staging_location = staging_location.replace( + "s3://", "s3a://" + ) + output_uri = os.path.join( + spark_compatible_s3_staging_location, str(uuid.uuid4()) + ) + sdf.write.parquet(output_uri) + s3_uri_for_listing = output_uri.replace("s3a://", "s3://", 1) + return aws_utils.list_s3_files( + self._config.offline_store.region, s3_uri_for_listing + ) + elif staging_location.startswith("gs://"): + output_uri = os.path.join(staging_location, str(uuid.uuid4())) + sdf.write.parquet(output_uri) + return _list_gcs_files(output_uri) + elif staging_location.startswith(("wasbs://", "abfs://", "abfss://")) or ( + staging_location.startswith("https://") + and ".blob.core.windows.net" in staging_location + ): + output_uri = os.path.join(staging_location, str(uuid.uuid4())) + sdf.write.parquet(output_uri) + return _list_azure_files(output_uri) + elif staging_location.startswith("hdfs://"): + output_uri = os.path.join(staging_location, str(uuid.uuid4())) + sdf.write.parquet(output_uri) + spark_session = get_spark_session_or_start_new_with_repoconfig( + store_config=self._config.offline_store + ) + return _list_hdfs_files(spark_session, output_uri) else: - raise NotImplementedError() + raise NotImplementedError( + "to_remote_storage is only implemented for file://, s3://, gs://, azure, and hdfs uri schemes" + ) @property def metadata(self) -> Optional[RetrievalMetadata]: @@ -789,6 +824,10 @@ def _list_files_in_folder(folder): return files +def _filter_parquet_files(paths: List[str]) -> List[str]: + return [path for path in paths if path.endswith(".parquet")] + + def _list_hdfs_files(spark_session: SparkSession, uri: str) -> List[str]: jvm = spark_session._jvm jsc = spark_session._jsc @@ -805,6 +844,81 @@ def _list_hdfs_files(spark_session: SparkSession, uri: str) -> List[str]: return files +def _list_gcs_files(path: str) -> List[str]: + try: + from google.cloud import storage + except ImportError as e: + from feast.errors import FeastExtrasDependencyImportError + + raise FeastExtrasDependencyImportError("gcp", str(e)) + + assert path.startswith("gs://"), "GCS path must start with gs://" + bucket_path = path[len("gs://") :] + if "/" in bucket_path: + bucket, prefix = bucket_path.split("/", 1) + else: + bucket, prefix = bucket_path, "" + + client = storage.Client() + bucket_obj = client.bucket(bucket) + blobs = bucket_obj.list_blobs(prefix=prefix) + + files = [] + for blob in blobs: + if not blob.name.endswith("/"): + files.append(f"gs://{bucket}/{blob.name}") + return files + + +def _list_azure_files(path: str) -> List[str]: + try: + from azure.identity import DefaultAzureCredential + from azure.storage.blob import BlobServiceClient + except ImportError as e: + from feast.errors import FeastExtrasDependencyImportError + + raise FeastExtrasDependencyImportError("azure", str(e)) + + parsed = urlparse(path) + scheme = parsed.scheme + + if scheme in ("wasbs", "abfs", "abfss"): + if "@" not in parsed.netloc: + raise ValueError("Azure staging URI must include container@account host") + container, account_host = parsed.netloc.split("@", 1) + account_url = f"https://{account_host}" + base = f"{scheme}://{container}@{account_host}" + prefix = parsed.path.lstrip("/") + else: + account_url = f"{parsed.scheme}://{parsed.netloc}" + container_and_prefix = parsed.path.lstrip("/").split("/", 1) + container = container_and_prefix[0] + base = f"{account_url}/{container}" + prefix = container_and_prefix[1] if len(container_and_prefix) > 1 else "" + + credential = os.environ.get("AZURE_STORAGE_KEY") or os.environ.get( + "AZURE_STORAGE_ACCOUNT_KEY" + ) + if credential: + client = BlobServiceClient(account_url=account_url, credential=credential) + else: + default_credential = DefaultAzureCredential( + exclude_shared_token_cache_credential=True + ) + client = BlobServiceClient( + account_url=account_url, credential=default_credential + ) + + container_client = client.get_container_client(container) + blobs = container_client.list_blobs(name_starts_with=prefix if prefix else None) + + files = [] + for blob in blobs: + if not blob.name.endswith("/"): + files.append(f"{base}/{blob.name}") + return files + + def _cast_data_frame( df_new: pyspark.sql.DataFrame, df_existing: pyspark.sql.DataFrame ) -> pyspark.sql.DataFrame: diff --git a/sdk/python/tests/unit/infra/offline_stores/contrib/spark_offline_store/test_spark.py b/sdk/python/tests/unit/infra/offline_stores/contrib/spark_offline_store/test_spark.py index 22c75ebf387..fbbba055e56 100644 --- a/sdk/python/tests/unit/infra/offline_stores/contrib/spark_offline_store/test_spark.py +++ b/sdk/python/tests/unit/infra/offline_stores/contrib/spark_offline_store/test_spark.py @@ -1,13 +1,17 @@ +import os from datetime import datetime from unittest.mock import MagicMock, patch import pandas as pd +import pyarrow as pa from feast.entity import Entity from feast.feature_view import FeatureView, Field +from feast.infra.offline_stores.contrib.spark_offline_store import spark as spark_module from feast.infra.offline_stores.contrib.spark_offline_store.spark import ( SparkOfflineStore, SparkOfflineStoreConfig, + SparkRetrievalJob, ) from feast.infra.offline_stores.contrib.spark_offline_store.spark_source import ( SparkSource, @@ -504,3 +508,207 @@ def test_get_historical_features_non_entity_with_only_end_date(mock_get_spark_se # Verify data: mocked DataFrame flows to Pandas pdf = retrieval_job._to_df_internal() assert pdf.equals(expected_pdf) + + +def test_to_arrow_uses_staging_when_enabled(monkeypatch, tmp_path): + repo_config = RepoConfig( + project="test_project", + registry="test_registry", + provider="local", + offline_store=SparkOfflineStoreConfig( + type="spark", + staging_location=str(tmp_path), + ), + ) + + job = SparkRetrievalJob( + spark_session=MagicMock(), + query="select 1", + full_feature_names=False, + config=repo_config, + ) + + expected_table = pa.table({"a": [1]}) + dataset_mock = MagicMock() + + monkeypatch.setattr( + job, "to_remote_storage", MagicMock(return_value=["file:///test.parquet"]) + ) + monkeypatch.setattr( + spark_module.ds, "dataset", MagicMock(return_value=dataset_mock) + ) + dataset_mock.to_table.return_value = expected_table + + result = job._to_arrow_internal() + + job.to_remote_storage.assert_called_once() + spark_module.ds.dataset.assert_called_once_with(["/test.parquet"], format="parquet") + assert result.equals(expected_table) + + +def test_to_arrow_normalizes_local_staging_paths(monkeypatch, tmp_path): + repo_config = RepoConfig( + project="test_project", + registry="test_registry", + provider="local", + offline_store=SparkOfflineStoreConfig( + type="spark", + staging_location=str(tmp_path / "local"), + ), + ) + + job = SparkRetrievalJob( + spark_session=MagicMock(), + query="select 1", + full_feature_names=False, + config=repo_config, + ) + + expected_table = pa.table({"a": [1]}) + dataset_mock = MagicMock() + + raw_path = os.path.join(str(tmp_path), "staged.parquet") + monkeypatch.setattr(job, "to_remote_storage", MagicMock(return_value=[raw_path])) + monkeypatch.setattr( + spark_module.ds, "dataset", MagicMock(return_value=dataset_mock) + ) + dataset_mock.to_table.return_value = expected_table + + result = job._to_arrow_internal() + + job.to_remote_storage.assert_called_once() + spark_module.ds.dataset.assert_called_once_with([raw_path], format="parquet") + assert result.equals(expected_table) + + +def test_to_arrow_falls_back_to_pandas_when_staging_disabled(monkeypatch): + repo_config = RepoConfig( + project="test_project", + registry="test_registry", + provider="local", + offline_store=SparkOfflineStoreConfig( + type="spark", + staging_location=None, + ), + ) + + job = SparkRetrievalJob( + spark_session=MagicMock(), + query="select 1", + full_feature_names=False, + config=repo_config, + ) + + pdf = pd.DataFrame({"a": [1]}) + monkeypatch.setattr(job, "_to_df_internal", MagicMock(return_value=pdf)) + monkeypatch.setattr( + job, "to_remote_storage", MagicMock(side_effect=AssertionError("not called")) + ) + + result = job._to_arrow_internal() + + assert result.equals(pa.Table.from_pandas(pdf)) + + +@patch("feast.infra.utils.aws_utils.list_s3_files") +def test_to_remote_storage_lists_with_s3_scheme(mock_list_s3_files): + spark_df = MagicMock() + spark_df.write.parquet = MagicMock() + spark_session = MagicMock() + spark_session.sql.return_value = spark_df + + mock_list_s3_files.return_value = ["s3://bucket/prefix/file.parquet"] + + repo_config = RepoConfig( + project="test_project", + registry="test_registry", + provider="local", + offline_store=SparkOfflineStoreConfig( + type="spark", + staging_location="s3://bucket/prefix", + region="us-west-2", + ), + ) + + job = SparkRetrievalJob( + spark_session=spark_session, + query="select 1", + full_feature_names=False, + config=repo_config, + ) + + result = job.to_remote_storage() + + assert spark_df.write.parquet.call_args[0][0].startswith("s3a://bucket/prefix") + assert mock_list_s3_files.call_args[0][1].startswith("s3://bucket/prefix") + assert result == mock_list_s3_files.return_value + + +@patch("feast.infra.offline_stores.contrib.spark_offline_store.spark._list_gcs_files") +def test_to_remote_storage_lists_with_gcs_scheme(mock_list_gcs_files): + spark_df = MagicMock() + spark_df.write.parquet = MagicMock() + spark_session = MagicMock() + spark_session.sql.return_value = spark_df + + mock_list_gcs_files.return_value = ["gs://bucket/prefix/file.parquet"] + + repo_config = RepoConfig( + project="test_project", + registry="test_registry", + provider="local", + offline_store=SparkOfflineStoreConfig( + type="spark", + staging_location="gs://bucket/prefix", + ), + ) + + job = SparkRetrievalJob( + spark_session=spark_session, + query="select 1", + full_feature_names=False, + config=repo_config, + ) + + result = job.to_remote_storage() + + assert spark_df.write.parquet.call_args[0][0].startswith("gs://bucket/prefix") + mock_list_gcs_files.assert_called_once() + assert result == mock_list_gcs_files.return_value + + +@patch("feast.infra.offline_stores.contrib.spark_offline_store.spark._list_azure_files") +def test_to_remote_storage_lists_with_azure_scheme(mock_list_azure_files): + spark_df = MagicMock() + spark_df.write.parquet = MagicMock() + spark_session = MagicMock() + spark_session.sql.return_value = spark_df + + mock_list_azure_files.return_value = [ + "wasbs://container@account.blob.core.windows.net/path/file.parquet" + ] + + repo_config = RepoConfig( + project="test_project", + registry="test_registry", + provider="local", + offline_store=SparkOfflineStoreConfig( + type="spark", + staging_location="wasbs://container@account.blob.core.windows.net/path", + ), + ) + + job = SparkRetrievalJob( + spark_session=spark_session, + query="select 1", + full_feature_names=False, + config=repo_config, + ) + + result = job.to_remote_storage() + + assert spark_df.write.parquet.call_args[0][0].startswith( + "wasbs://container@account.blob.core.windows.net/path" + ) + mock_list_azure_files.assert_called_once() + assert result == mock_list_azure_files.return_value From b16fa09dace4665de1013acdc8057493aa651ac4 Mon Sep 17 00:00:00 2001 From: Srihari Venkataramaiah Date: Fri, 2 Jan 2026 13:32:58 +0530 Subject: [PATCH 11/37] test: Update Feast Connection workbench tests (#5794) test: Update Workbench Connection Tests Signed-off-by: Srihari --- .../feast_wb_connection_integration_test.go | 66 +++++- .../test/e2e_rhoai/feast_wb_milvus_test.go | 11 +- .../feast_wb_ray_offline_store_test.go | 7 +- .../test/e2e_rhoai/resources/custom-nb.yaml | 2 + .../feast-wb-connection-credit-scoring.ipynb | 221 ++++-------------- ...-test.ipynb => feast-wb-milvus-test.ipynb} | 0 .../test/utils/notebook_util.go | 25 +- infra/feast-operator/test/utils/test_util.go | 98 ++++++++ 8 files changed, 239 insertions(+), 191 deletions(-) rename infra/feast-operator/test/e2e_rhoai/resources/{feast-test.ipynb => feast-wb-milvus-test.ipynb} (100%) diff --git a/infra/feast-operator/test/e2e_rhoai/feast_wb_connection_integration_test.go b/infra/feast-operator/test/e2e_rhoai/feast_wb_connection_integration_test.go index 5b42bfe1276..43bfff17c2f 100644 --- a/infra/feast-operator/test/e2e_rhoai/feast_wb_connection_integration_test.go +++ b/infra/feast-operator/test/e2e_rhoai/feast_wb_connection_integration_test.go @@ -22,6 +22,7 @@ package e2erhoai import ( "fmt" + "time" utils "github.com/feast-dev/feast/infra/feast-operator/test/utils" . "github.com/onsi/ginkgo/v2" @@ -43,6 +44,60 @@ var _ = Describe("Feast Workbench Integration Connection Testing", Ordered, func feastCRName = "credit-scoring" ) + // Verify feast ConfigMap + verifyFeastConfigMap := func(authEnabled bool) { + feastConfigMapName := "jupyter-nb-kube-3aadmin-feast-config" + configMapKey := "credit_scoring_local" + By(fmt.Sprintf("Listing ConfigMaps and verifying %s exists with correct content", feastConfigMapName)) + + // Build expected content based on auth type + expectedContent := []string{ + "project: credit_scoring_local", + } + if authEnabled { + expectedContent = append(expectedContent, "type: kubernetes") + } else { + expectedContent = append(expectedContent, "type: no_auth") + } + + // First, list ConfigMaps and check if target ConfigMap exists + // Retry with polling since the ConfigMap may be created asynchronously + const maxRetries = 5 + const retryInterval = 5 * time.Second + var configMapExists bool + var err error + + for i := 0; i < maxRetries; i++ { + exists, listErr := utils.VerifyConfigMapExistsInList(namespace, feastConfigMapName) + if listErr != nil { + err = listErr + if i < maxRetries-1 { + fmt.Printf("Failed to list ConfigMaps, retrying in %v... (attempt %d/%d)\n", retryInterval, i+1, maxRetries) + time.Sleep(retryInterval) + continue + } + } else if exists { + configMapExists = true + fmt.Printf("ConfigMap %s found in ConfigMap list\n", feastConfigMapName) + break + } + + if i < maxRetries-1 { + fmt.Printf("ConfigMap %s not found in list yet, retrying in %v... (attempt %d/%d)\n", feastConfigMapName, retryInterval, i+1, maxRetries) + time.Sleep(retryInterval) + } + } + + if !configMapExists { + Expect(err).ToNot(HaveOccurred(), fmt.Sprintf("Failed to find ConfigMap %s in ConfigMap list after %d attempts: %v", feastConfigMapName, maxRetries, err)) + } + + // Once ConfigMap exists in list, verify content (project name and auth type) + err = utils.VerifyFeastConfigMapContent(namespace, feastConfigMapName, configMapKey, expectedContent) + Expect(err).ToNot(HaveOccurred(), fmt.Sprintf("Failed to verify Feast ConfigMap %s content: %v", feastConfigMapName, err)) + fmt.Printf("Feast ConfigMap %s verified successfully with project and auth type\n", feastConfigMapName) + } + // Parameterized test function that handles both auth and non-auth scenarios runFeastWorkbenchIntegration := func(authEnabled bool) { // Apply permissions only if auth is enabled @@ -51,8 +106,15 @@ var _ = Describe("Feast Workbench Integration Connection Testing", Ordered, func utils.ApplyFeastPermissions(permissionFile, "/feast-data/credit_scoring_local/feature_repo/permissions.py", namespace, feastDeploymentName) } - // Use the shared RunNotebookTest function for common setup and execution - utils.RunNotebookTest(namespace, configMapName, notebookFile, "test/e2e_rhoai/resources/feature_repo", pvcFile, rolebindingName, notebookPVC, notebookName, testDir) + // Create notebook with all setup steps + // Pass feastProject parameter to set the opendatahub.io/feast-config annotation + utils.CreateNotebookTest(namespace, configMapName, notebookFile, "test/e2e_rhoai/resources/feature_repo", pvcFile, rolebindingName, notebookPVC, notebookName, testDir, "credit_scoring_local") + + // Verify Feast ConfigMap was created with correct auth type + verifyFeastConfigMap(authEnabled) + + // Monitor notebook execution + utils.MonitorNotebookTest(namespace, notebookName) } BeforeAll(func() { diff --git a/infra/feast-operator/test/e2e_rhoai/feast_wb_milvus_test.go b/infra/feast-operator/test/e2e_rhoai/feast_wb_milvus_test.go index 4849670399d..b4e1d37b827 100644 --- a/infra/feast-operator/test/e2e_rhoai/feast_wb_milvus_test.go +++ b/infra/feast-operator/test/e2e_rhoai/feast_wb_milvus_test.go @@ -32,11 +32,11 @@ var _ = Describe("Feast Jupyter Notebook Testing", Ordered, func() { namespace = "test-ns-feast-wb" configMapName = "feast-wb-cm" rolebindingName = "rb-feast-test" - notebookFile = "test/e2e_rhoai/resources/feast-test.ipynb" + notebookFile = "test/e2e_rhoai/resources/feast-wb-milvus-test.ipynb" pvcFile = "test/e2e_rhoai/resources/pvc.yaml" notebookPVC = "jupyterhub-nb-kube-3aadmin-pvc" testDir = "/test/e2e_rhoai" - notebookName = "feast-test.ipynb" + notebookName = "feast-wb-milvus-test.ipynb" feastMilvusTest = "TestFeastMilvusNotebook" ) @@ -54,7 +54,12 @@ var _ = Describe("Feast Jupyter Notebook Testing", Ordered, func() { Context("Feast Jupyter Notebook Test", func() { It("Should create and run a "+feastMilvusTest+" successfully", func() { - utils.RunNotebookTest(namespace, configMapName, notebookFile, "test/e2e_rhoai/resources/feature_repo", pvcFile, rolebindingName, notebookPVC, notebookName, testDir) + // Create notebook with all setup steps + // Pass empty string for feastProject to keep annotation empty + utils.CreateNotebookTest(namespace, configMapName, notebookFile, "test/e2e_rhoai/resources/feature_repo", pvcFile, rolebindingName, notebookPVC, notebookName, testDir, "") + + // Monitor notebook execution + utils.MonitorNotebookTest(namespace, notebookName) }) }) }) diff --git a/infra/feast-operator/test/e2e_rhoai/feast_wb_ray_offline_store_test.go b/infra/feast-operator/test/e2e_rhoai/feast_wb_ray_offline_store_test.go index a7e482063f0..eb467ad07ff 100644 --- a/infra/feast-operator/test/e2e_rhoai/feast_wb_ray_offline_store_test.go +++ b/infra/feast-operator/test/e2e_rhoai/feast_wb_ray_offline_store_test.go @@ -71,7 +71,12 @@ var _ = Describe("Feast Jupyter Notebook Testing with Ray Offline Store", Ordere Context("Feast Jupyter Notebook Test with Ray Offline store", func() { It("Should create and run a "+feastRayTest+" successfully", func() { - utils.RunNotebookTest(namespace, configMapName, notebookFile, "test/e2e_rhoai/resources/feature_repo", pvcFile, rolebindingName, notebookPVC, notebookName, testDir) + // Create notebook with all setup steps + // Pass empty string for feastProject to keep annotation empty + utils.CreateNotebookTest(namespace, configMapName, notebookFile, "test/e2e_rhoai/resources/feature_repo", pvcFile, rolebindingName, notebookPVC, notebookName, testDir, "") + + // Monitor notebook execution + utils.MonitorNotebookTest(namespace, notebookName) }) }) }) diff --git a/infra/feast-operator/test/e2e_rhoai/resources/custom-nb.yaml b/infra/feast-operator/test/e2e_rhoai/resources/custom-nb.yaml index 6acf8bdf0cb..6dd9304e4b9 100644 --- a/infra/feast-operator/test/e2e_rhoai/resources/custom-nb.yaml +++ b/infra/feast-operator/test/e2e_rhoai/resources/custom-nb.yaml @@ -13,12 +13,14 @@ metadata: notebooks.opendatahub.io/last-size-selection: Small opendatahub.io/link: https://jupyter-nb-kube-3aadmin-{{.Namespace}}.{{.IngressDomain}}/notebook/{{.Namespace}}/jupyter-nb-kube-3aadmin opendatahub.io/username: {{.Username}} + opendatahub.io/feast-config: {{.FeastProject}} generation: 1 labels: app: jupyter-nb-kube-3aadmin opendatahub.io/dashboard: "true" opendatahub.io/odh-managed: "true" opendatahub.io/user: {{.Username}} + opendatahub.io/feast-integration: 'true' name: jupyter-nb-kube-3aadmin namespace: {{.Namespace}} spec: diff --git a/infra/feast-operator/test/e2e_rhoai/resources/feast-wb-connection-credit-scoring.ipynb b/infra/feast-operator/test/e2e_rhoai/resources/feast-wb-connection-credit-scoring.ipynb index 6a775b772a5..39e1f9c6e37 100755 --- a/infra/feast-operator/test/e2e_rhoai/resources/feast-wb-connection-credit-scoring.ipynb +++ b/infra/feast-operator/test/e2e_rhoai/resources/feast-wb-connection-credit-scoring.ipynb @@ -16,6 +16,45 @@ "print(f\"✅ Found Expected Feast version: {actual_version} in workbench\")" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# --- Configuration Variables ---\n", + "import os \n", + "\n", + "# Fetch token and server directly from oc CLI\n", + "import subprocess\n", + "\n", + "def oc(cmd):\n", + " return subprocess.check_output(cmd, shell=True).decode(\"utf-8\").strip()\n", + "\n", + "token = oc(\"oc whoami -t\")\n", + "server = oc(\"oc whoami --show-server\")\n", + "namespace = os.environ.get(\"NAMESPACE\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!oc login --token=$token --server=$server" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Add user permission to namespace\n", + "!oc adm policy add-role-to-user admin $(oc whoami) -n $namespace" + ] + }, { "cell_type": "code", "execution_count": null, @@ -34,7 +73,7 @@ ").read()\n", "\n", "# Save the configmap data into an environment variable (if needed)\n", - "os.environ[\"CONFIGMAP_DATA\"] = yaml_content\n" + "os.environ[\"CONFIGMAP_DATA\"] = yaml_content" ] }, { @@ -43,186 +82,8 @@ "metadata": {}, "outputs": [], "source": [ - "#!/usr/bin/env python3\n", - "import os\n", - "import json\n", - "import yaml\n", - "from pathlib import Path\n", - "from typing import Dict, List, Any, Optional\n", "from feast import FeatureStore\n", - "from feast.repo_config import RepoConfig\n", - "\n", - "def create_feature_store_yaml(config_content: str, config_name: str) -> str:\n", - " \"\"\"\n", - " Create a feature_store.yaml file from config content.\n", - " \n", - " Args:\n", - " config_content: YAML content as string\n", - " config_name: Name identifier for the config (used for filename)\n", - " \n", - " Returns:\n", - " Path to the created YAML file\n", - " \"\"\"\n", - " # Parse the YAML content to validate it\n", - " try:\n", - " config_dict = yaml.safe_load(config_content)\n", - " except yaml.YAMLError as e:\n", - " raise ValueError(f\"Failed to parse YAML content for {config_name}: {e}\")\n", - " \n", - " # Ensure required fields are present\n", - " required_fields = ['project', 'registry', 'provider']\n", - " for field in required_fields:\n", - " if field not in config_dict:\n", - " raise ValueError(f\"Failed to create config {config_name}: missing required field '{field}'\")\n", - " \n", - " # Create filename\n", - " filename = f\"feature_store_{config_name}.yaml\"\n", - " filepath = Path(filename)\n", - " \n", - " # Write the YAML file\n", - " with open(filepath, 'w') as f:\n", - " yaml.dump(config_dict, f, default_flow_style=False, sort_keys=False)\n", - " \n", - " return str(filepath)\n", - "\n", - "\n", - "def create_feature_store_object(yaml_file_path: str) -> FeatureStore:\n", - " \"\"\"\n", - " Create a FeatureStore object from a YAML file.\n", - " \n", - " Args:\n", - " yaml_file_path: Path to the feature_store.yaml file\n", - " \n", - " Returns:\n", - " FeatureStore object\n", - " \"\"\"\n", - " try:\n", - " # Create FeatureStore from the YAML file\n", - " fs = FeatureStore(fs_yaml_file=Path(yaml_file_path))\n", - " return fs\n", - " except Exception as e:\n", - " raise RuntimeError(f\"Failed to create FeatureStore object from {yaml_file_path}: {e}\")\n", - "\n", - "\n", - "def process_client_configs(client_configs: Dict[str, str]) -> Dict[str, Dict[str, Any]]:\n", - " \"\"\"\n", - " Process multiple client config YAML contents and create feature stores.\n", - " \n", - " Args:\n", - " client_configs: Dictionary mapping config names to YAML content strings\n", - " \n", - " Returns:\n", - " Dictionary with results for each config\n", - " \"\"\"\n", - " results = {}\n", - " created_yamls = []\n", - " feature_stores = {}\n", - " \n", - " print(\"Creating feature store YAMLs and objects...\")\n", - " print(\"=\" * 50)\n", - " \n", - " for config_name, config_content in client_configs.items():\n", - " try:\n", - " print(f\"\\nProcessing config: {config_name}\")\n", - "\n", - " # Create YAML file\n", - " yaml_path = create_feature_store_yaml(config_content, config_name)\n", - " created_yamls.append(yaml_path)\n", - " print(f\"✓ Created YAML file: {yaml_path}\")\n", - " \n", - " # Create FeatureStore object\n", - " fs = create_feature_store_object(yaml_path)\n", - " fs_var_name = f\"fs_{fs.project}\"\n", - " globals()[fs_var_name] = fs\n", - " feature_stores[config_name] = fs_var_name\n", - " print(f\"✓ Created FeatureStore object: {fs_var_name}\")\n", - "\n", - " results[config_name] = {\n", - " 'yaml_path': yaml_path,\n", - " 'feature_store': fs_var_name,\n", - " 'project_name': fs.project,\n", - " 'success': True,\n", - " 'error': None\n", - " }\n", - " \n", - " except Exception as e:\n", - " print(f\"✗ Failed to process config {config_name}: {e}\")\n", - " results[config_name] = {\n", - " 'yaml_path': None,\n", - " 'feature_store': None,\n", - " 'project_name': None,\n", - " 'success': False,\n", - " 'error': str(e)\n", - " }\n", - " \n", - " return results\n", - "\n", - "\n", - "def print_summary(results: Dict[str, Dict[str, Any]]) -> None:\n", - " \"\"\"\n", - " Print summary of all operations.\n", - " \n", - " Args:\n", - " results: Results dictionary from process_client_configs\n", - " \"\"\"\n", - " print(\"\\n\" + \"=\" * 50)\n", - " print(\"SUMMARY\")\n", - " print(\"=\" * 50)\n", - "\n", - " successful_configs = [name for name, result in results.items() if result['success']]\n", - " failed_configs = [name for name, result in results.items() if not result['success']]\n", - " print(f\"\\n\\n✓✓Feature Store YAML files have been created in: {os.getcwd()}\")\n", - " print(f\"\\n✓ Successfully processed {len(successful_configs)} config(s):\")\n", - " for config_name in successful_configs:\n", - " result = results[config_name]\n", - " print(f\" - {config_name}: {result['yaml_path']} (Project: {result['project_name']})\")\n", - "\n", - " if failed_configs:\n", - " print(f\"\\n✗ Failed to process {len(failed_configs)} config(s):\")\n", - " for config_name in failed_configs:\n", - " result = results[config_name]\n", - " print(f\" - {config_name}: {result['error']}\")\n", - "\n", - " print(f\"\\n\\n✓✓ Feature Store Object(s) details:\")\n", - " for config_name in successful_configs:\n", - " result = results[config_name]\n", - " print(f\"> Object Name - {result['feature_store']} ; project name - {result['project_name']} ; yaml path - {result['yaml_path']}\")\n", - "\n", - " print(\"\\n\")\n", - " print(\"=\" * 25, \"Usage:\", \"=\" * 25)\n", - " print(\"You can now use feature store object(s) to access the feature store resources and functions!\")\n", - " print(\"\\n// Note: Replace object_name with the actual object name from the list above.\")\n", - " print(\"object_name.list_features()\\nobject_name.get_historical_features()\")\n", - " print(\"=\" * 58)\n", - "\n", - "\n", - "def main():\n", - " \"\"\"\n", - " Main function to demonstrate usage with example configs.\n", - " \"\"\"\n", - " yaml_content = os.getenv(\"CONFIGMAP_DATA\")\n", - "\n", - " if not yaml_content:\n", - " raise ValueError(\"CONFIGMAP_DATA environment variable is not set.\")\n", - "\n", - " # Use environment YAML as config\n", - " client_configs = {\n", - " \"feast_credit_scoring_client\": yaml_content\n", - " }\n", - "\n", - " print(\"=\" * 50)\n", - " print(\"This script will create feature store YAMLs and objects from client configs.\")\n", - " print(f\"Processing {len(client_configs)} selected configurations...\")\n", - " \n", - " # Process the configs\n", - " results = process_client_configs(client_configs)\n", - " \n", - " # Print summary\n", - " print_summary(results)\n", - "\n", - "\n", - "if __name__ == \"__main__\":\n", - " main()" + "fs_credit_scoring_local = FeatureStore(fs_yaml_file='/opt/app-root/src/feast-config/credit_scoring_local')" ] }, { diff --git a/infra/feast-operator/test/e2e_rhoai/resources/feast-test.ipynb b/infra/feast-operator/test/e2e_rhoai/resources/feast-wb-milvus-test.ipynb similarity index 100% rename from infra/feast-operator/test/e2e_rhoai/resources/feast-test.ipynb rename to infra/feast-operator/test/e2e_rhoai/resources/feast-wb-milvus-test.ipynb diff --git a/infra/feast-operator/test/utils/notebook_util.go b/infra/feast-operator/test/utils/notebook_util.go index cad4a734a01..8652b481889 100644 --- a/infra/feast-operator/test/utils/notebook_util.go +++ b/infra/feast-operator/test/utils/notebook_util.go @@ -29,6 +29,7 @@ type NotebookTemplateParams struct { PipTrustedHost string FeastVerison string OpenAIAPIKey string + FeastProject string } // CreateNotebook renders a notebook manifest from a template and applies it using kubectl. @@ -288,7 +289,8 @@ func BuildNotebookCommand(notebookName, testDir string) []string { } // GetNotebookParams builds and returns NotebookTemplateParams from environment variables and configuration -func GetNotebookParams(namespace, configMapName, notebookPVC, notebookName, testDir string) NotebookTemplateParams { +// feastProject is optional - if provided, it will be set in the notebook annotation, otherwise it will be empty +func GetNotebookParams(namespace, configMapName, notebookPVC, notebookName, testDir string, feastProject string) NotebookTemplateParams { username := GetOCUser(testDir) command := BuildNotebookCommand(notebookName, testDir) @@ -313,6 +315,7 @@ func GetNotebookParams(namespace, configMapName, notebookPVC, notebookName, test PipTrustedHost: getEnv("PIP_TRUSTED_HOST"), FeastVerison: getEnv("FEAST_VERSION"), OpenAIAPIKey: getEnv("OPENAI_API_KEY"), + FeastProject: feastProject, } } @@ -342,9 +345,10 @@ func SetupNotebookEnvironment(namespace, configMapName, notebookFile, featureRep return nil } -// RunNotebookTest performs all the setup steps, creates a notebook, and monitors its execution. -// This function encapsulates the common notebook test workflow used across multiple test files. -func RunNotebookTest(namespace, configMapName, notebookFile, featureRepoPath, pvcFile, rolebindingName, notebookPVC, notebookName, testDir string) { +// CreateNotebookTest performs all the setup steps and creates a notebook. +// This function handles namespace context, ConfigMap, PVC, rolebinding, and notebook creation. +// feastProject is optional - if provided, it will be set in the notebook annotation, otherwise it will be empty +func CreateNotebookTest(namespace, configMapName, notebookFile, featureRepoPath, pvcFile, rolebindingName, notebookPVC, notebookName, testDir string, feastProject string) { // Execute common setup steps By(fmt.Sprintf("Setting namespace context to : %s", namespace)) Expect(SetNamespaceContext(namespace, testDir)).To(Succeed()) @@ -363,10 +367,21 @@ func RunNotebookTest(namespace, configMapName, notebookFile, featureRepoPath, pv fmt.Printf("Created rolebinding %s successfully\n", rolebindingName) // Build notebook parameters and create notebook - nbParams := GetNotebookParams(namespace, configMapName, notebookPVC, notebookName, testDir) + nbParams := GetNotebookParams(namespace, configMapName, notebookPVC, notebookName, testDir, feastProject) By("Creating Jupyter Notebook") Expect(CreateNotebook(nbParams)).To(Succeed(), "Failed to create notebook") +} +// MonitorNotebookTest monitors the notebook execution and verifies completion. +func MonitorNotebookTest(namespace, notebookName string) { By("Monitoring notebook logs") Expect(MonitorNotebookPod(namespace, "jupyter-nb-", notebookName)).To(Succeed(), "Notebook execution failed") } + +// RunNotebookTest performs all the setup steps, creates a notebook, and monitors its execution. +// This function is kept for backward compatibility. For new tests, use CreateNotebookTest and MonitorNotebookTest separately. +// feastProject is optional - if provided, it will be set in the notebook annotation, otherwise it will be empty +func RunNotebookTest(namespace, configMapName, notebookFile, featureRepoPath, pvcFile, rolebindingName, notebookPVC, notebookName, testDir string, feastProject string) { + CreateNotebookTest(namespace, configMapName, notebookFile, featureRepoPath, pvcFile, rolebindingName, notebookPVC, notebookName, testDir, feastProject) + MonitorNotebookTest(namespace, notebookName) +} diff --git a/infra/feast-operator/test/utils/test_util.go b/infra/feast-operator/test/utils/test_util.go index 1f476708d4c..a883efc020d 100644 --- a/infra/feast-operator/test/utils/test_util.go +++ b/infra/feast-operator/test/utils/test_util.go @@ -152,6 +152,104 @@ func checkIfConfigMapExists(namespace, configMapName string) error { return nil } +// ListConfigMaps lists all ConfigMaps in the given namespace +func ListConfigMaps(namespace string) ([]string, error) { + cmd := exec.Command("kubectl", "get", "cm", "-n", namespace, "-o", "jsonpath={range .items[*]}{.metadata.name}{\"\\n\"}{end}") + var out bytes.Buffer + var stderr bytes.Buffer + cmd.Stdout = &out + cmd.Stderr = &stderr + + if err := cmd.Run(); err != nil { + return nil, fmt.Errorf("failed to list config maps in namespace %s. Error: %v. Stderr: %s", + namespace, err, stderr.String()) + } + + configMaps := strings.Split(strings.TrimSpace(out.String()), "\n") + // Filter out empty strings + var result []string + for _, cm := range configMaps { + if cm != "" { + result = append(result, cm) + } + } + return result, nil +} + +// VerifyConfigMapExistsInList checks if a ConfigMap exists in the list of ConfigMaps +func VerifyConfigMapExistsInList(namespace, configMapName string) (bool, error) { + configMaps, err := ListConfigMaps(namespace) + if err != nil { + return false, err + } + + for _, cm := range configMaps { + if cm == configMapName { + return true, nil + } + } + + return false, nil +} + +// VerifyFeastConfigMapExists verifies that a ConfigMap exists and contains the specified key/file +func VerifyFeastConfigMapExists(namespace, configMapName, expectedKey string) error { + // First verify the ConfigMap exists + if err := checkIfConfigMapExists(namespace, configMapName); err != nil { + return fmt.Errorf("config map %s does not exist: %w", configMapName, err) + } + + // Get the ConfigMap data to verify the key exists + cmd := exec.Command("kubectl", "get", "cm", configMapName, "-n", namespace, "-o", "jsonpath={.data."+expectedKey+"}") + var out bytes.Buffer + var stderr bytes.Buffer + cmd.Stdout = &out + cmd.Stderr = &stderr + + if err := cmd.Run(); err != nil { + return fmt.Errorf("failed to get config map data for %s in namespace %s. Error: %v. Stderr: %s", + configMapName, namespace, err, stderr.String()) + } + + configContent := out.String() + if configContent == "" { + return fmt.Errorf("config map %s does not contain key %s", configMapName, expectedKey) + } + + return nil +} + +// VerifyFeastConfigMapContent verifies that a ConfigMap contains the expected feast configuration content +// This assumes the ConfigMap and key already exist (use VerifyFeastConfigMapExists first) +func VerifyFeastConfigMapContent(namespace, configMapName, expectedKey string, expectedContent []string) error { + // Get the ConfigMap data + cmd := exec.Command("kubectl", "get", "cm", configMapName, "-n", namespace, "-o", "jsonpath={.data."+expectedKey+"}") + var out bytes.Buffer + var stderr bytes.Buffer + cmd.Stdout = &out + cmd.Stderr = &stderr + + if err := cmd.Run(); err != nil { + return fmt.Errorf("failed to get config map data for %s in namespace %s. Error: %v. Stderr: %s", + configMapName, namespace, err, stderr.String()) + } + + configContent := out.String() + if configContent == "" { + return fmt.Errorf("config map %s does not contain key %s", configMapName, expectedKey) + } + + // Verify all expected content strings are present + for _, expected := range expectedContent { + if !strings.Contains(configContent, expected) { + return fmt.Errorf("config map %s content does not contain expected string: %s. Content:\n%s", + configMapName, expected, configContent) + } + } + + return nil +} + // validates if a kubernetes service exists using the kubectl CLI. func checkIfKubernetesServiceExists(namespace, serviceName string) error { cmd := exec.Command("kubectl", "get", "service", serviceName, "-n", namespace) From ce35ce6751a32373492b64de338771218a6dc4b1 Mon Sep 17 00:00:00 2001 From: Jacob Weinhold <29459386+jfw-ppi@users.noreply.github.com> Date: Sat, 3 Jan 2026 06:18:09 +0100 Subject: [PATCH 12/37] feat: Added batching to feature server /push to offline store (#5683) (#5729) * feat: added batching to feature server /push to offline store (#5683) Signed-off-by: Jacob Weinhold <29459386+jfw-ppi@users.noreply.github.com> fix: formatting,l int errors (#5683) Signed-off-by: Jacob Weinhold <29459386+jfw-ppi@users.noreply.github.com> * Merge branch 'master' into 5683-configurable-batching-feature-server-push Signed-off-by: Jacob Weinhold <29459386+jfw-ppi@users.noreply.github.com> * feat: added batching to feature server /push to offline store ([#5683](https://github.com/feast-dev/feast/issues/5683)) Signed-off-by: Jacob Weinhold <29459386+jfw-ppi@users.noreply.github.com> --------- Signed-off-by: Jacob Weinhold <29459386+jfw-ppi@users.noreply.github.com> --- .../feature-servers/python-feature-server.md | 20 + docs/reference/feature-store-yaml.md | 16 + sdk/python/feast/feature_server.py | 341 +++++++++++++++++- .../infra/feature_servers/base_config.py | 22 ++ sdk/python/tests/unit/test_feature_server.py | 256 +++++++++++++ 5 files changed, 636 insertions(+), 19 deletions(-) diff --git a/docs/reference/feature-servers/python-feature-server.md b/docs/reference/feature-servers/python-feature-server.md index df0b0b1f78d..2668ffd8839 100644 --- a/docs/reference/feature-servers/python-feature-server.md +++ b/docs/reference/feature-servers/python-feature-server.md @@ -199,6 +199,26 @@ requests.post( "http://localhost:6566/push", data=json.dumps(push_data)) ``` +#### Offline write batching for `/push` + +The Python feature server supports configurable batching for the **offline** +portion of writes executed via the `/push` endpoint. + +Only the offline part of a push is affected: + +- `to: "offline"` → **fully batched** +- `to: "online_and_offline"` → **online written immediately**, **offline batched** +- `to: "online"` → unaffected, always immediate + +Enable batching in your `feature_store.yaml`: + +```yaml +feature_server: + type: local + offline_push_batching_enabled: true + offline_push_batching_batch_size: 1000 + offline_push_batching_batch_interval_seconds: 10 +``` ### Materializing features diff --git a/docs/reference/feature-store-yaml.md b/docs/reference/feature-store-yaml.md index 01f586c047b..820731064fc 100644 --- a/docs/reference/feature-store-yaml.md +++ b/docs/reference/feature-store-yaml.md @@ -25,6 +25,22 @@ online_store: * **project\_id** — Optional parameter for the datastore online store. Sets the GCP project id used by Feast, if not set Feast will use the default GCP project id in the local environment. * **project** — Defines a namespace for the entire feature store. Can be used to isolate multiple deployments in a single installation of Feast. +### feature_server + +The `feature_server` block configures the Python Feature Server when it is used +to serve online features and handle `/push` requests. This section is optional +and only applies when running the Python feature server. + +An example configuration: + +```yaml +feature_server: + type: local + offline_push_batching_enabled: true # Enables batching of offline writes processed by /push. Online writes are unaffected. + offline_push_batching_batch_size: 100 # Maximum number of buffered rows before writing to the offline store. + offline_push_batching_batch_interval_seconds: 5 # Maximum time rows may remain buffered before a forced flush. +``` + ## Providers The `provider` field defines the environment in which Feast will execute data flows. As a result, it also determines the default values for other fields. diff --git a/sdk/python/feast/feature_server.py b/sdk/python/feast/feature_server.py index fbbb38821af..ecad3404eaf 100644 --- a/sdk/python/feast/feature_server.py +++ b/sdk/python/feast/feature_server.py @@ -1,13 +1,29 @@ +# Copyright 2025 The Feast Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + import asyncio import os import sys import threading import time import traceback +from collections import defaultdict from contextlib import asynccontextmanager from datetime import datetime from importlib import resources as importlib_resources -from typing import Any, Dict, List, Optional, Union +from types import SimpleNamespace +from typing import Any, DefaultDict, Dict, List, NamedTuple, Optional, Set, Union import pandas as pd import psutil @@ -241,6 +257,41 @@ def get_app( registry_proto = None shutting_down = False active_timer: Optional[threading.Timer] = None + # --- Offline write batching config and batcher --- + fs_cfg = getattr(store.config, "feature_server", None) + batching_cfg = None + if fs_cfg is not None: + enabled = getattr(fs_cfg, "offline_push_batching_enabled", False) + batch_size = getattr(fs_cfg, "offline_push_batching_batch_size", None) + batch_interval_seconds = getattr( + fs_cfg, "offline_push_batching_batch_interval_seconds", None + ) + + if enabled is True: + size_ok = isinstance(batch_size, int) and not isinstance(batch_size, bool) + interval_ok = isinstance(batch_interval_seconds, int) and not isinstance( + batch_interval_seconds, bool + ) + if size_ok and interval_ok: + batching_cfg = SimpleNamespace( + enabled=True, + batch_size=batch_size, + batch_interval_seconds=batch_interval_seconds, + ) + else: + logger.warning( + "Offline write batching enabled but missing or invalid numeric values; " + "disabling batching (batch_size=%r, batch_interval_seconds=%r)", + batch_size, + batch_interval_seconds, + ) + + offline_batcher: Optional[OfflineWriteBatcher] = None + if batching_cfg is not None and batching_cfg.enabled is True: + offline_batcher = OfflineWriteBatcher(store=store, cfg=batching_cfg) + logger.debug("Offline write batching is ENABLED") + else: + logger.debug("Offline write batching is DISABLED") def stop_refresh(): nonlocal shutting_down @@ -268,9 +319,13 @@ async def lifespan(app: FastAPI): await store.initialize() async_refresh() - yield - stop_refresh() - await store.close() + try: + yield + finally: + stop_refresh() + if offline_batcher is not None: + offline_batcher.shutdown() + await store.close() app = FastAPI(lifespan=lifespan) @@ -340,7 +395,7 @@ async def retrieve_online_documents( return response_dict @app.post("/push", dependencies=[Depends(inject_user_details)]) - async def push(request: PushFeaturesRequest) -> None: + async def push(request: PushFeaturesRequest) -> Response: df = pd.DataFrame(request.df) actions = [] if request.to == "offline": @@ -375,22 +430,63 @@ async def push(request: PushFeaturesRequest) -> None: for feature_view in fvs_with_push_sources: assert_permissions(resource=feature_view, actions=actions) - push_params = dict( - push_source_name=request.push_source_name, - df=df, - allow_registry_cache=request.allow_registry_cache, - to=to, - transform_on_write=request.transform_on_write, - ) + async def _push_with_to(push_to: PushMode) -> None: + """ + Helper for performing a single push operation. + + NOTE: + - Feast providers **do not currently support async offline writes**. + - Therefore: + * ONLINE and ONLINE_AND_OFFLINE → may be async, depending on provider.async_supported.online.write + * OFFLINE → always synchronous, but executed via run_in_threadpool when called from HTTP handlers. + - The OfflineWriteBatcher handles offline writes directly in its own background thread, but the offline store writes are currently synchronous only. + """ + push_source_name = request.push_source_name + allow_registry_cache = request.allow_registry_cache + transform_on_write = request.transform_on_write + + # Async currently only applies to online store writes (ONLINE / ONLINE_AND_OFFLINE paths) as theres no async for offline store + if push_to in (PushMode.ONLINE, PushMode.ONLINE_AND_OFFLINE) and ( + store._get_provider().async_supported.online.write + ): + await store.push_async( + push_source_name=push_source_name, + df=df, + allow_registry_cache=allow_registry_cache, + to=push_to, + transform_on_write=transform_on_write, + ) + else: + await run_in_threadpool( + lambda: store.push( + push_source_name=push_source_name, + df=df, + allow_registry_cache=allow_registry_cache, + to=push_to, + transform_on_write=transform_on_write, + ) + ) - should_push_async = ( - store._get_provider().async_supported.online.write - and to in [PushMode.ONLINE, PushMode.ONLINE_AND_OFFLINE] - ) - if should_push_async: - await store.push_async(**push_params) + needs_online = to in (PushMode.ONLINE, PushMode.ONLINE_AND_OFFLINE) + needs_offline = to in (PushMode.OFFLINE, PushMode.ONLINE_AND_OFFLINE) + + status_code = status.HTTP_200_OK + + if offline_batcher is None or not needs_offline: + await _push_with_to(to) else: - store.push(**push_params) + if needs_online: + await _push_with_to(PushMode.ONLINE) + + offline_batcher.enqueue( + push_source_name=request.push_source_name, + df=df, + allow_registry_cache=request.allow_registry_cache, + transform_on_write=request.transform_on_write, + ) + status_code = status.HTTP_202_ACCEPTED + + return Response(status_code=status_code) async def _get_feast_object( feature_view_name: str, allow_registry_cache: bool @@ -732,3 +828,210 @@ def start_server( ) else: uvicorn.run(app, host=host, port=port, access_log=(not no_access_log)) + + +class _OfflineBatchKey(NamedTuple): + push_source_name: str + allow_registry_cache: bool + transform_on_write: bool + + +class OfflineWriteBatcher: + """ + In-process offline write batcher for /push requests. + + - Buffers DataFrames per (push_source_name, allow_registry_cache, transform_on_write) + - Flushes when either: + * total rows in a buffer >= batch_size, or + * time since last flush >= batch_interval_seconds + - Flush runs in a dedicated background thread so the HTTP event loop stays unblocked. + """ + + def __init__(self, store: "feast.FeatureStore", cfg: Any): + self._store = store + self._cfg = cfg + + # Buffers and timestamps keyed by batch key + self._buffers: DefaultDict[_OfflineBatchKey, List[pd.DataFrame]] = defaultdict( + list + ) + self._last_flush: DefaultDict[_OfflineBatchKey, float] = defaultdict(time.time) + self._inflight: Set[_OfflineBatchKey] = set() + + self._lock = threading.Lock() + self._stop_event = threading.Event() + + # Start background flusher thread + self._thread = threading.Thread( + target=self._run, name="offline_write_batcher", daemon=True + ) + self._thread.start() + + logger.debug( + "OfflineWriteBatcher initialized: batch_size=%s, batch_interval_seconds=%s", + getattr(cfg, "batch_size", None), + getattr(cfg, "batch_interval_seconds", None), + ) + + # ---------- Public API ---------- + + def enqueue( + self, + push_source_name: str, + df: pd.DataFrame, + allow_registry_cache: bool, + transform_on_write: bool, + ) -> None: + """ + Enqueue a dataframe for offline write, grouped by push source + flags. + Cheap and non-blocking; heavy I/O happens in background thread. + """ + key = _OfflineBatchKey( + push_source_name=push_source_name, + allow_registry_cache=allow_registry_cache, + transform_on_write=transform_on_write, + ) + + with self._lock: + self._buffers[key].append(df) + total_rows = sum(len(d) for d in self._buffers[key]) + should_flush = total_rows >= self._cfg.batch_size + + if should_flush: + # Size-based flush + logger.debug( + "OfflineWriteBatcher size threshold reached for %s: %s rows", + key, + total_rows, + ) + self._flush(key) + + def flush_all(self) -> None: + """ + Flush all buffers synchronously. Intended for graceful shutdown. + """ + with self._lock: + keys = list(self._buffers.keys()) + for key in keys: + self._flush(key) + + def shutdown(self, timeout: float = 5.0) -> None: + """ + Stop the background thread and perform a best-effort flush. + """ + logger.debug("Shutting down OfflineWriteBatcher") + self._stop_event.set() + try: + self._thread.join(timeout=timeout) + except Exception: + logger.exception("Error joining OfflineWriteBatcher thread") + + # Best-effort final flush + try: + self.flush_all() + except Exception: + logger.exception("Error during final OfflineWriteBatcher flush") + + # ---------- Internal helpers ---------- + + def _run(self) -> None: + """ + Background loop: periodically checks for buffers that should be flushed + based on time since last flush. + """ + interval = max(1, int(getattr(self._cfg, "batch_interval_seconds", 30))) + logger.debug( + "OfflineWriteBatcher background loop started with check interval=%s", + interval, + ) + + while not self._stop_event.wait(timeout=interval): + now = time.time() + try: + with self._lock: + keys_to_flush: List[_OfflineBatchKey] = [] + for key, dfs in list(self._buffers.items()): + if not dfs: + continue + last = self._last_flush[ + key + ] # this will also init the default timestamp + age = now - last + if age >= self._cfg.batch_interval_seconds: + logger.debug( + "OfflineWriteBatcher time threshold reached for %s: age=%s", + key, + age, + ) + keys_to_flush.append(key) + for key in keys_to_flush: + self._flush(key) + except Exception: + logger.exception("Error in OfflineWriteBatcher background loop") + + logger.debug("OfflineWriteBatcher background loop exiting") + + def _drain_locked(self, key: _OfflineBatchKey) -> Optional[List[pd.DataFrame]]: + """ + Drain a single buffer; caller must hold self._lock. + """ + if key in self._inflight: + return None + + dfs = self._buffers.get(key) + if not dfs: + return None + + self._buffers[key] = [] + self._inflight.add(key) + return dfs + + def _flush(self, key: _OfflineBatchKey) -> None: + """ + Flush a single buffer. Extracts data under lock, then does I/O without lock. + """ + while True: + with self._lock: + dfs = self._drain_locked(key) + + if not dfs: + return + + batch_df = pd.concat(dfs, ignore_index=True) + + # NOTE: offline writes are currently synchronous only, so we call directly + try: + self._store.push( + push_source_name=key.push_source_name, + df=batch_df, + allow_registry_cache=key.allow_registry_cache, + to=PushMode.OFFLINE, + transform_on_write=key.transform_on_write, + ) + except Exception: + logger.exception("Error flushing offline batch for %s", key) + with self._lock: + self._buffers[key] = dfs + self._buffers[key] + self._inflight.discard(key) + return + + logger.debug( + "Flushing offline batch for push_source=%s with %s rows", + key.push_source_name, + len(batch_df), + ) + + with self._lock: + self._last_flush[key] = time.time() + self._inflight.discard(key) + pending_rows = sum(len(d) for d in self._buffers.get(key, [])) + should_flush = pending_rows >= self._cfg.batch_size + + if not should_flush: + return + + logger.debug( + "OfflineWriteBatcher size threshold reached for %s: %s rows", + key, + pending_rows, + ) diff --git a/sdk/python/feast/infra/feature_servers/base_config.py b/sdk/python/feast/infra/feature_servers/base_config.py index 1a348032e17..b13e23d035e 100644 --- a/sdk/python/feast/infra/feature_servers/base_config.py +++ b/sdk/python/feast/infra/feature_servers/base_config.py @@ -1,3 +1,16 @@ +# Copyright 2025 The Feast Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. from typing import Optional from pydantic import StrictBool, StrictInt @@ -32,3 +45,12 @@ class BaseFeatureServerConfig(FeastConfigBaseModel): feature_logging: Optional[FeatureLoggingConfig] = None """ Feature logging configuration """ + + offline_push_batching_enabled: Optional[StrictBool] = None + """Whether to batch writes to the offline store via the `/push` endpoint.""" + + offline_push_batching_batch_size: Optional[StrictInt] = None + """The maximum batch size for offline writes via `/push`.""" + + offline_push_batching_batch_interval_seconds: Optional[StrictInt] = None + """The batch interval between offline writes via `/push`.""" diff --git a/sdk/python/tests/unit/test_feature_server.py b/sdk/python/tests/unit/test_feature_server.py index e3fd0387fb9..c271fad7fad 100644 --- a/sdk/python/tests/unit/test_feature_server.py +++ b/sdk/python/tests/unit/test_feature_server.py @@ -1,4 +1,20 @@ +# Copyright 2025 The Feast Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. import json +import time +from collections import Counter +from types import SimpleNamespace from unittest.mock import AsyncMock, MagicMock import pytest @@ -209,6 +225,246 @@ def test_materialize_request_model(): assert req2.end_ts == "2021-01-02T00:00:00" +def _enable_offline_batching_config( + fs, enabled: bool = True, batch_size: int = 1, batch_interval_seconds: int = 60 +): + """ + Attach a minimal feature_server.offline_push_batching config + to a mocked FeatureStore. + """ + if not hasattr(fs, "config") or fs.config is None: + fs.config = SimpleNamespace() + + if not hasattr(fs.config, "feature_server") or fs.config.feature_server is None: + fs.config.feature_server = SimpleNamespace() + + fs.config.feature_server.offline_push_batching_enabled = enabled + fs.config.feature_server.offline_push_batching_batch_size = batch_size + fs.config.feature_server.offline_push_batching_batch_interval_seconds = ( + batch_interval_seconds + ) + + +def push_body_many(push_mode=PushMode.ONLINE, count: int = 2, id_start: int = 100): + """Build a push body with multiple entities.""" + driver_ids = list(range(id_start, id_start + count)) + lats = [float(i) for i in driver_ids] + longs = [str(lat) for lat in lats] + event_ts = [str(_utc_now()) for _ in range(count)] + created_ts = [str(_utc_now()) for _ in range(count)] + + return { + "push_source_name": "driver_locations_push", + "df": { + "driver_lat": lats, + "driver_long": longs, + "driver_id": driver_ids, + "event_timestamp": event_ts, + "created_timestamp": created_ts, + }, + "to": push_mode.name.lower(), + } + + +@pytest.mark.parametrize("online_write", [True, False]) +@pytest.mark.parametrize("batching_enabled", [True, False]) +@pytest.mark.parametrize( + "push_mode", + [PushMode.ONLINE, PushMode.OFFLINE, PushMode.ONLINE_AND_OFFLINE], +) +def test_push_batched_matrix( + online_write, batching_enabled, push_mode, mock_fs_factory +): + """ + Matrix over: + - online_write ∈ {True, False} + - batching_enabled ∈ {True, False} + - push_mode ∈ {ONLINE, OFFLINE, ONLINE_AND_OFFLINE} + + Asserts: + - which of fs.push / fs.push_async are called + - how many times + - with which `to` values + + For batching_enabled=True, batch_size=1 ensures immediate flush of offline part. + """ + fs = mock_fs_factory(online_write=online_write) + + _enable_offline_batching_config( + fs, + enabled=batching_enabled, + batch_size=1, # flush immediately on a single offline request + batch_interval_seconds=60, + ) + + client = TestClient(get_app(fs)) + + # use a multi-row payload to ensure we test non-trivial dfs + resp = client.post("/push", json=push_body_many(push_mode, count=2, id_start=100)) + needs_offline = push_mode in (PushMode.OFFLINE, PushMode.ONLINE_AND_OFFLINE) + expected_status = 202 if batching_enabled and needs_offline else 200 + assert resp.status_code == expected_status + + # Collect calls + sync_calls = fs.push.call_args_list + async_calls = fs.push_async.await_args_list + sync_tos = [c.kwargs.get("to") for c in sync_calls] + async_tos = [c.kwargs.get("to") for c in async_calls] + + # ------------------------------- + # Build expectations + # ------------------------------- + expected_sync_calls = 0 + expected_async_calls = 0 + expected_sync_tos = [] + expected_async_tos = [] + + if push_mode == PushMode.ONLINE: + # Only online path, batching irrelevant + if online_write: + expected_async_calls = 1 + expected_async_tos = [PushMode.ONLINE] + else: + expected_sync_calls = 1 + expected_sync_tos = [PushMode.ONLINE] + + elif push_mode == PushMode.OFFLINE: + # Only offline path, never async + if batching_enabled: + # via batcher, but externally still one push(to=OFFLINE) + expected_sync_calls = 1 + expected_sync_tos = [PushMode.OFFLINE] + else: + # direct push(to=OFFLINE) + expected_sync_calls = 1 + expected_sync_tos = [PushMode.OFFLINE] + + elif push_mode == PushMode.ONLINE_AND_OFFLINE: + if not batching_enabled: + # Old behaviour: single call with to=ONLINE_AND_OFFLINE + if online_write: + expected_async_calls = 1 + expected_async_tos = [PushMode.ONLINE_AND_OFFLINE] + else: + expected_sync_calls = 1 + expected_sync_tos = [PushMode.ONLINE_AND_OFFLINE] + else: + # Batching enabled: ONLINE part and OFFLINE part are split + if online_write: + # async ONLINE + sync OFFLINE (via batcher) + expected_async_calls = 1 + expected_async_tos = [PushMode.ONLINE] + expected_sync_calls = 1 + expected_sync_tos = [PushMode.OFFLINE] + else: + # both ONLINE and OFFLINE via sync push + expected_sync_calls = 2 + expected_sync_tos = [PushMode.ONLINE, PushMode.OFFLINE] + + # ------------------------------- + # Assert counts + # ------------------------------- + assert fs.push.call_count == expected_sync_calls + assert fs.push_async.await_count == expected_async_calls + + # Allow ordering differences by comparing as multisets + assert Counter(sync_tos) == Counter(expected_sync_tos) + assert Counter(async_tos) == Counter(expected_async_tos) + + +def test_offline_batches_are_separated_by_flags(mock_fs_factory): + """ + Offline batches must be separated by (allow_registry_cache, transform_on_write). + + If we send three offline pushes with the same push_source_name but different + combinations of allow_registry_cache / transform_on_write, they must result + in three separate fs.push(...) calls, not one merged batch. + """ + fs = mock_fs_factory(online_write=True) + # Large batch_size so we rely on interval-based flush, not size-based. + _enable_offline_batching_config( + fs, enabled=True, batch_size=100, batch_interval_seconds=1 + ) + + client = TestClient(get_app(fs)) + + # Base body: allow_registry_cache=True, transform_on_write=True (default) + body_base = push_body_many(PushMode.OFFLINE, count=2, id_start=100) + + # 1) Default flags: allow_registry_cache=True, transform_on_write=True + resp1 = client.post("/push", json=body_base) + assert resp1.status_code == 202 + + # 2) Different allow_registry_cache + body_allow_false = dict(body_base) + body_allow_false["allow_registry_cache"] = False + resp2 = client.post("/push", json=body_allow_false) + assert resp2.status_code == 202 + + # 3) Different transform_on_write + body_transform_false = dict(body_base) + body_transform_false["transform_on_write"] = False + resp3 = client.post("/push", json=body_transform_false) + assert resp3.status_code == 202 + + # Immediately after: no flush expected yet (interval-based) + assert fs.push.call_count == 0 + + # Wait up to ~3 seconds for interval-based flush + deadline = time.time() + 3.0 + while time.time() < deadline and fs.push.call_count < 3: + time.sleep(0.1) + + # We expect exactly 3 separate pushes, each with 2 rows and to=OFFLINE + assert fs.push.call_count == 3 + + lengths = [c.kwargs["df"].shape[0] for c in fs.push.call_args_list] + tos = [c.kwargs["to"] for c in fs.push.call_args_list] + allow_flags = [c.kwargs["allow_registry_cache"] for c in fs.push.call_args_list] + transform_flags = [c.kwargs["transform_on_write"] for c in fs.push.call_args_list] + + assert all(t == PushMode.OFFLINE for t in tos) + assert lengths == [2, 2, 2] + + # Ensure we really saw 3 distinct (allow_registry_cache, transform_on_write) combos + assert len({(a, t) for a, t in zip(allow_flags, transform_flags)}) == 3 + + +def test_offline_batcher_interval_flush(mock_fs_factory): + """ + With batching enabled and a large batch_size, ensure that the time-based + flush still triggers even when the size threshold is never reached. + """ + fs = mock_fs_factory(online_write=True) + _enable_offline_batching_config( + fs, + enabled=True, + batch_size=100, # won't be hit by this test + batch_interval_seconds=1, # small interval + ) + + client = TestClient(get_app(fs)) + + # Send a single OFFLINE push (2 rows), below size threshold + resp = client.post( + "/push", json=push_body_many(PushMode.OFFLINE, count=2, id_start=500) + ) + assert resp.status_code == 202 + + # Immediately after: no sync push yet (buffer only) + assert fs.push.call_count == 0 + + # Wait up to ~3 seconds for interval-based flush + deadline = time.time() + 3.0 + while time.time() < deadline and fs.push.call_count < 1: + time.sleep(0.1) + + assert fs.push.call_count == 1 + kwargs = fs.push.call_args.kwargs + assert kwargs["to"] == PushMode.OFFLINE + assert len(kwargs["df"]) == 2 + + # Static Artifacts Tests @pytest.fixture def mock_store_with_static_artifacts(tmp_path): From 678589b65e0ed24a8369c9f34e94ee4acd7fb14e Mon Sep 17 00:00:00 2001 From: Yassin Nouh <70436855+YassinNouh21@users.noreply.github.com> Date: Mon, 5 Jan 2026 05:48:56 +0200 Subject: [PATCH 13/37] fix: Add hybrid online store to ONLINE_STORE_CLASS_FOR_TYPE mapping (#5810) * fix: Add hybrid online store to ONLINE_STORE_CLASS_FOR_TYPE mapping This fixes the import error when using HybridOnlineStore with the shorthand type configuration in feature_store.yaml. Changes: - Add missing __init__.py to hybrid_online_store package - Add "hybrid" entry to ONLINE_STORE_CLASS_FOR_TYPE in repo_config.py - Update HybridOnlineStoreConfig type Literal to use standard "hybrid" shorthand - Update documentation to use type: hybrid Signed-off-by: yassinnouh21 * fix: Add hybrid to Go operator ValidOnlineStoreDBStorePersistenceTypes The data source types test validates that Python ONLINE_STORE_CLASS_FOR_TYPE matches the Go operator's ValidOnlineStoreDBStorePersistenceTypes. This adds the hybrid type to both v1 and v1alpha1 API versions. Signed-off-by: yassinnouh21 --------- Signed-off-by: yassinnouh21 --- docs/reference/online-stores/hybrid.md | 2 +- infra/feast-operator/api/v1/featurestore_types.go | 3 ++- infra/feast-operator/api/v1alpha1/featurestore_types.go | 3 ++- .../config/crd/bases/feast.dev_featurestores.yaml | 4 ++++ infra/feast-operator/dist/install.yaml | 4 ++++ .../infra/online_stores/hybrid_online_store/__init__.py | 0 .../hybrid_online_store/hybrid_online_store.py | 6 ++---- sdk/python/feast/repo_config.py | 1 + 8 files changed, 16 insertions(+), 7 deletions(-) create mode 100644 sdk/python/feast/infra/online_stores/hybrid_online_store/__init__.py diff --git a/docs/reference/online-stores/hybrid.md b/docs/reference/online-stores/hybrid.md index 38527d9a66e..a03cc4ae853 100644 --- a/docs/reference/online-stores/hybrid.md +++ b/docs/reference/online-stores/hybrid.md @@ -20,7 +20,7 @@ project: my_feature_repo registry: data/registry.db provider: local online_store: - type: hybrid_online_store.HybridOnlineStore + type: hybrid routing_tag: team # or any tag name you want to use in FeatureView's for routing online_stores: - type: bigtable diff --git a/infra/feast-operator/api/v1/featurestore_types.go b/infra/feast-operator/api/v1/featurestore_types.go index 462447d23c6..cb79578a1ff 100644 --- a/infra/feast-operator/api/v1/featurestore_types.go +++ b/infra/feast-operator/api/v1/featurestore_types.go @@ -371,7 +371,7 @@ type OnlineStoreFilePersistence struct { // OnlineStoreDBStorePersistence configures the DB store persistence for the online store service type OnlineStoreDBStorePersistence struct { // Type of the persistence type you want to use. - // +kubebuilder:validation:Enum=snowflake.online;redis;ikv;datastore;dynamodb;bigtable;postgres;cassandra;mysql;hazelcast;singlestore;hbase;elasticsearch;qdrant;couchbase.online;milvus + // +kubebuilder:validation:Enum=snowflake.online;redis;ikv;datastore;dynamodb;bigtable;postgres;cassandra;mysql;hazelcast;singlestore;hbase;elasticsearch;qdrant;couchbase.online;milvus;hybrid Type string `json:"type"` // Data store parameters should be placed as-is from the "feature_store.yaml" under the secret key. "registry_type" & "type" fields should be removed. SecretRef corev1.LocalObjectReference `json:"secretRef"` @@ -396,6 +396,7 @@ var ValidOnlineStoreDBStorePersistenceTypes = []string{ "qdrant", "couchbase.online", "milvus", + "hybrid", } // LocalRegistryConfig configures the registry service diff --git a/infra/feast-operator/api/v1alpha1/featurestore_types.go b/infra/feast-operator/api/v1alpha1/featurestore_types.go index 45dff27f816..c246877ea7c 100644 --- a/infra/feast-operator/api/v1alpha1/featurestore_types.go +++ b/infra/feast-operator/api/v1alpha1/featurestore_types.go @@ -371,7 +371,7 @@ type OnlineStoreFilePersistence struct { // OnlineStoreDBStorePersistence configures the DB store persistence for the online store service type OnlineStoreDBStorePersistence struct { // Type of the persistence type you want to use. - // +kubebuilder:validation:Enum=snowflake.online;redis;ikv;datastore;dynamodb;bigtable;postgres;cassandra;mysql;hazelcast;singlestore;hbase;elasticsearch;qdrant;couchbase.online;milvus + // +kubebuilder:validation:Enum=snowflake.online;redis;ikv;datastore;dynamodb;bigtable;postgres;cassandra;mysql;hazelcast;singlestore;hbase;elasticsearch;qdrant;couchbase.online;milvus;hybrid Type string `json:"type"` // Data store parameters should be placed as-is from the "feature_store.yaml" under the secret key. "registry_type" & "type" fields should be removed. SecretRef corev1.LocalObjectReference `json:"secretRef"` @@ -396,6 +396,7 @@ var ValidOnlineStoreDBStorePersistenceTypes = []string{ "qdrant", "couchbase.online", "milvus", + "hybrid", } // LocalRegistryConfig configures the registry service diff --git a/infra/feast-operator/config/crd/bases/feast.dev_featurestores.yaml b/infra/feast-operator/config/crd/bases/feast.dev_featurestores.yaml index d47acf74135..04456c5a929 100644 --- a/infra/feast-operator/config/crd/bases/feast.dev_featurestores.yaml +++ b/infra/feast-operator/config/crd/bases/feast.dev_featurestores.yaml @@ -1322,6 +1322,7 @@ spec: - qdrant - couchbase.online - milvus + - hybrid type: string required: - secretRef @@ -5358,6 +5359,7 @@ spec: - qdrant - couchbase.online - milvus + - hybrid type: string required: - secretRef @@ -9521,6 +9523,7 @@ spec: - qdrant - couchbase.online - milvus + - hybrid type: string required: - secretRef @@ -13557,6 +13560,7 @@ spec: - qdrant - couchbase.online - milvus + - hybrid type: string required: - secretRef diff --git a/infra/feast-operator/dist/install.yaml b/infra/feast-operator/dist/install.yaml index 57e32090b19..0bfc0da14d8 100644 --- a/infra/feast-operator/dist/install.yaml +++ b/infra/feast-operator/dist/install.yaml @@ -1330,6 +1330,7 @@ spec: - qdrant - couchbase.online - milvus + - hybrid type: string required: - secretRef @@ -5366,6 +5367,7 @@ spec: - qdrant - couchbase.online - milvus + - hybrid type: string required: - secretRef @@ -9529,6 +9531,7 @@ spec: - qdrant - couchbase.online - milvus + - hybrid type: string required: - secretRef @@ -13565,6 +13568,7 @@ spec: - qdrant - couchbase.online - milvus + - hybrid type: string required: - secretRef diff --git a/sdk/python/feast/infra/online_stores/hybrid_online_store/__init__.py b/sdk/python/feast/infra/online_stores/hybrid_online_store/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/sdk/python/feast/infra/online_stores/hybrid_online_store/hybrid_online_store.py b/sdk/python/feast/infra/online_stores/hybrid_online_store/hybrid_online_store.py index e929e039411..8faefdbd344 100644 --- a/sdk/python/feast/infra/online_stores/hybrid_online_store/hybrid_online_store.py +++ b/sdk/python/feast/infra/online_stores/hybrid_online_store/hybrid_online_store.py @@ -21,7 +21,7 @@ Example configuration (feature_store.yaml): online_store: - type: hybrid_online_store.HybridOnlineStore + type: hybrid routing_tag: team # or any tag name you want to use for routing online_stores: - type: feast.infra.online_stores.bigtable.BigtableOnlineStore @@ -64,9 +64,7 @@ class HybridOnlineStoreConfig(FeastConfigBaseModel): online_stores: A list of OnlineStoresWithConfig, each specifying the type and config for an online store backend. """ - type: Literal["HybridOnlineStore", "hybrid_online_store.HybridOnlineStore"] = ( - "hybrid_online_store.HybridOnlineStore" - ) + type: Literal["hybrid"] = "hybrid" class OnlineStoresWithConfig(FeastConfigBaseModel): """ diff --git a/sdk/python/feast/repo_config.py b/sdk/python/feast/repo_config.py index 2cd148edb66..318ca324cd6 100644 --- a/sdk/python/feast/repo_config.py +++ b/sdk/python/feast/repo_config.py @@ -84,6 +84,7 @@ "qdrant": "feast.infra.online_stores.qdrant_online_store.qdrant.QdrantOnlineStore", "couchbase.online": "feast.infra.online_stores.couchbase_online_store.couchbase.CouchbaseOnlineStore", "milvus": "feast.infra.online_stores.milvus_online_store.milvus.MilvusOnlineStore", + "hybrid": "feast.infra.online_stores.hybrid_online_store.hybrid_online_store.HybridOnlineStore", **LEGACY_ONLINE_STORE_CLASS_FOR_TYPE, } From 9e3f213c7130f75fb732045f9b8c20e863fb753b Mon Sep 17 00:00:00 2001 From: Jatin Kumar Date: Tue, 6 Jan 2026 01:45:24 -0300 Subject: [PATCH 14/37] fix(redis): Preserve millisecond timestamp precision for Redis online store (#5807) * Update redis.py Add millisecond-precision timestamp support to Redis online store Signed-off-by: Jatin Kumar * Update redis.py sub-second precision when returning timestamps to client Signed-off-by: Jatin Kumar * Update redis.py fix(redis): preserve millisecond timestamp precision Signed-off-by: Jatin Kumar * Update redis.py fix: Remove whitespace on blank lines (W293) Signed-off-by: Jatin Kumar --------- Signed-off-by: Jatin Kumar --- sdk/python/feast/infra/online_stores/redis.py | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/sdk/python/feast/infra/online_stores/redis.py b/sdk/python/feast/infra/online_stores/redis.py index 59892fcbe0f..9a4e908810d 100644 --- a/sdk/python/feast/infra/online_stores/redis.py +++ b/sdk/python/feast/infra/online_stores/redis.py @@ -304,22 +304,25 @@ def online_write_batch( for redis_key_bin, prev_event_time, (_, values, timestamp, _) in zip( keys, prev_event_timestamps, data ): - event_time_seconds = int(utils.make_tzaware(timestamp).timestamp()) - - # ignore if event_timestamp is before the event features that are currently in the feature store + # Convert incoming timestamp to millisecond-aware datetime + aware_ts = utils.make_tzaware(timestamp) + # Build protobuf timestamp with nanos + ts = Timestamp() + ts.FromDatetime(aware_ts) + # New timestamp in nanoseconds + new_total_nanos = ts.seconds * 1_000_000_000 + ts.nanos + # Compare against existing timestamp (nanosecond precision) if prev_event_time: prev_ts = Timestamp() prev_ts.ParseFromString(prev_event_time) - if prev_ts.seconds and event_time_seconds <= prev_ts.seconds: - # TODO: somehow signal that it's not overwriting the current record? + prev_total_nanos = prev_ts.seconds * 1_000_000_000 + prev_ts.nanos + # Skip only if older OR exact same instant + if prev_total_nanos and new_total_nanos <= prev_total_nanos: if progress: progress(1) continue - - ts = Timestamp() - ts.seconds = event_time_seconds - entity_hset = dict() - entity_hset[ts_key] = ts.SerializeToString() + # Store full timestamp (seconds + nanos) + entity_hset = {ts_key: ts.SerializeToString()} for feature_name, val in values.items(): f_key = _mmh3(f"{feature_view}:{feature_name}") @@ -456,5 +459,7 @@ def _get_features_for_entity( if not res: return None, None else: - timestamp = datetime.fromtimestamp(res_ts.seconds, tz=timezone.utc) + # reconstruct full timestamp including nanos + total_seconds = res_ts.seconds + res_ts.nanos / 1_000_000_000.0 + timestamp = datetime.fromtimestamp(total_seconds, tz=timezone.utc) return timestamp, res From 1dc2be5177ee333220cfcd9e9a9f20bdfa2b3eca Mon Sep 17 00:00:00 2001 From: Myeongwon Kim <65876994+samuelkim7@users.noreply.github.com> Date: Tue, 6 Jan 2026 15:33:14 +0100 Subject: [PATCH 15/37] feat: Add GCS registry store in Go feature server (#5818) Signed-off-by: samuelkim7 --- go.mod | 53 +++++++-- go.sum | 84 +++++++++++++++ go/internal/feast/registry/gcs.go | 114 ++++++++++++++++++++ go/internal/feast/registry/registry.go | 6 +- go/internal/feast/registry/registry_test.go | 102 +++++++++++++----- 5 files changed, 318 insertions(+), 41 deletions(-) create mode 100644 go/internal/feast/registry/gcs.go diff --git a/go.mod b/go.mod index a097aa67719..7f918de268e 100644 --- a/go.mod +++ b/go.mod @@ -25,13 +25,24 @@ require ( go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 go.opentelemetry.io/otel/sdk v1.38.0 go.opentelemetry.io/otel/trace v1.38.0 - golang.org/x/sync v0.17.0 - google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 - google.golang.org/grpc v1.75.0 - google.golang.org/protobuf v1.36.8 + golang.org/x/sync v0.18.0 + google.golang.org/genproto/googleapis/rpc v0.0.0-20251111163417-95abcf5c77ba + google.golang.org/grpc v1.76.0 + google.golang.org/protobuf v1.36.10 ) require ( + cel.dev/expr v0.24.0 // indirect + cloud.google.com/go v0.123.0 // indirect + cloud.google.com/go/auth v0.17.0 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect + cloud.google.com/go/compute/metadata v0.9.0 // indirect + cloud.google.com/go/iam v1.5.3 // indirect + cloud.google.com/go/monitoring v1.24.2 // indirect + cloud.google.com/go/storage v1.58.0 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.54.0 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.54.0 // indirect github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect github.com/andybalholm/brotli v1.1.0 // indirect github.com/apache/thrift v0.21.0 // indirect @@ -53,13 +64,21 @@ require ( github.com/aws/smithy-go v1.22.2 // indirect github.com/cenkalti/backoff/v5 v5.0.3 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect + github.com/envoyproxy/go-control-plane/envoy v1.32.4 // indirect + github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/go-jose/go-jose/v4 v4.1.2 // indirect github.com/go-logr/logr v1.4.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/goccy/go-json v0.10.3 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/flatbuffers v24.3.25+incompatible // indirect + github.com/google/s2a-go v0.1.9 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.7 // indirect + github.com/googleapis/gax-go/v2 v2.15.0 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 // indirect github.com/klauspost/asmfmt v1.3.2 // indirect github.com/klauspost/compress v1.17.9 // indirect @@ -69,20 +88,32 @@ require ( github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 // indirect github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 // indirect github.com/pierrec/lz4/v4 v4.1.21 // indirect + github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/spiffe/go-spiffe/v2 v2.5.0 // indirect github.com/stretchr/objx v0.5.2 // indirect + github.com/zeebo/errs v1.4.0 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect - go.opentelemetry.io/auto/sdk v1.1.0 // indirect + go.opentelemetry.io/auto/sdk v1.2.1 // indirect + go.opentelemetry.io/contrib/detectors/gcp v1.36.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect go.opentelemetry.io/otel/metric v1.38.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.38.0 // indirect go.opentelemetry.io/proto/otlp v1.7.1 // indirect + golang.org/x/crypto v0.43.0 // indirect golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect - golang.org/x/mod v0.26.0 // indirect - golang.org/x/net v0.43.0 // indirect - golang.org/x/sys v0.35.0 // indirect - golang.org/x/text v0.28.0 // indirect - golang.org/x/tools v0.35.0 // indirect + golang.org/x/mod v0.28.0 // indirect + golang.org/x/net v0.46.0 // indirect + golang.org/x/oauth2 v0.33.0 // indirect + golang.org/x/sys v0.37.0 // indirect + golang.org/x/text v0.30.0 // indirect + golang.org/x/time v0.14.0 // indirect + golang.org/x/tools v0.37.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5 // indirect + google.golang.org/api v0.256.0 // indirect + google.golang.org/genproto v0.0.0-20250922171735-9219d122eba9 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20251111163417-95abcf5c77ba // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index f2530758915..7d306beabb6 100644 --- a/go.sum +++ b/go.sum @@ -1,3 +1,25 @@ +cel.dev/expr v0.24.0 h1:56OvJKSH3hDGL0ml5uSxZmz3/3Pq4tJ+fb1unVLAFcY= +cel.dev/expr v0.24.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw= +cloud.google.com/go v0.123.0 h1:2NAUJwPR47q+E35uaJeYoNhuNEM9kM8SjgRgdeOJUSE= +cloud.google.com/go v0.123.0/go.mod h1:xBoMV08QcqUGuPW65Qfm1o9Y4zKZBpGS+7bImXLTAZU= +cloud.google.com/go/auth v0.17.0 h1:74yCm7hCj2rUyyAocqnFzsAYXgJhrG26XCFimrc/Kz4= +cloud.google.com/go/auth v0.17.0/go.mod h1:6wv/t5/6rOPAX4fJiRjKkJCvswLwdet7G8+UGXt7nCQ= +cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc= +cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c= +cloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdBtwLoEkH9Zs= +cloud.google.com/go/compute/metadata v0.9.0/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10= +cloud.google.com/go/iam v1.5.3 h1:+vMINPiDF2ognBJ97ABAYYwRgsaqxPbQDlMnbHMjolc= +cloud.google.com/go/iam v1.5.3/go.mod h1:MR3v9oLkZCTlaqljW6Eb2d3HGDGK5/bDv93jhfISFvU= +cloud.google.com/go/monitoring v1.24.2 h1:5OTsoJ1dXYIiMiuL+sYscLc9BumrL3CarVLL7dd7lHM= +cloud.google.com/go/monitoring v1.24.2/go.mod h1:x7yzPWcgDRnPEv3sI+jJGBkwl5qINf+6qY4eq0I9B4U= +cloud.google.com/go/storage v1.58.0 h1:PflFXlmFJjG/nBeR9B7pKddLQWaFaRWx4uUi/LyNxxo= +cloud.google.com/go/storage v1.58.0/go.mod h1:cMWbtM+anpC74gn6qjLh+exqYcfmB9Hqe5z6adx+CLI= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0 h1:UQUsRi8WTzhZntp5313l+CHIAT95ojUI2lpP/ExlZa4= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0/go.mod h1:Cz6ft6Dkn3Et6l2v2a9/RpN7epQ1GtDlO6lj8bEcOvw= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.54.0 h1:lhhYARPUu3LmHysQ/igznQphfzynnqI3D75oUyw1HXk= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.54.0/go.mod h1:l9rva3ApbBpEJxSNYnwT9N4CDLrWgtq3u8736C5hyJw= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.54.0 h1:s0WlVbf9qpvkh1c/uDAPElam0WrL7fHRIidgZJ7UqZI= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.54.0/go.mod h1:Mf6O40IAyB9zR/1J8nGDDPirZQQPbYJni8Yisy7NTMc= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= @@ -54,13 +76,24 @@ github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1x github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 h1:aQ3y1lwWyqYPiWZThqv1aFbZMiM9vblcSArJRf2Irls= +github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= +github.com/envoyproxy/go-control-plane v0.13.4 h1:zEqyPVyku6IvWCFwux4x9RxkLOMUL+1vC9xUFv5l2/M= +github.com/envoyproxy/go-control-plane/envoy v1.32.4 h1:jb83lalDRZSpPWW2Z7Mck/8kXZ5CQAFYVjQcdVIr83A= +github.com/envoyproxy/go-control-plane/envoy v1.32.4/go.mod h1:Gzjc5k8JcJswLjAx1Zm+wSYE20UrLtt7JZMWiWQXQEw= +github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfUKS7KJ7spH3d86P8= +github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-jose/go-jose/v4 v4.1.2 h1:TK/7NqRQZfgAh+Td8AlsrvtPoUyiHh0LqVvokh+1vHI= +github.com/go-jose/go-jose/v4 v4.1.2/go.mod h1:22cg9HWM1pOlnRiY+9cQYJ9XHmya1bYW8OeDM6Ku6Oo= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= @@ -77,8 +110,14 @@ github.com/google/flatbuffers v24.3.25+incompatible h1:CX395cjN9Kke9mmalRoL3d81A github.com/google/flatbuffers v24.3.25+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0= +github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.3.7 h1:zrn2Ee/nWmHulBx5sAVrGgAa0f2/R35S4DJwfFaUPFQ= +github.com/googleapis/enterprise-certificate-proxy v0.3.7/go.mod h1:MkHOF77EYAE7qfSuSS9PU6g4Nt4e11cnsDUowfwewLA= +github.com/googleapis/gax-go/v2 v2.15.0 h1:SyjDc1mGgZU5LncH8gimWo9lW1DtIfPibOG81vgd/bo= +github.com/googleapis/gax-go/v2 v2.15.0/go.mod h1:zVVkkxAQHa1RQpg9z2AUCMnKhi0Qld9rcmyfL1OZhoc= github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 h1:8Tjv8EJ+pM1xP8mK6egEbD1OgnVTyacbefKhmbLhIhU= github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2/go.mod h1:pkJQ2tZHJ0aFOVEEot6oZmaVEZcRme73eIFmhiVuRWs= github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK4= @@ -107,6 +146,8 @@ github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/redis/go-redis/v9 v9.6.1 h1:HHDteefn6ZkTtY5fGUE8tj8uy85AHk6zP7CpzIAM0y4= @@ -115,21 +156,34 @@ github.com/roberson-io/mmh3 v0.0.0-20190729202758-fdfce3ba6225 h1:ZMsPCp7oYgjoIF github.com/roberson-io/mmh3 v0.0.0-20190729202758-fdfce3ba6225/go.mod h1:XEESr+X1SY8ZSuc3jqsTlb3clCkqQJ4DcF3Qxv1N3PM= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spiffe/go-spiffe/v2 v2.5.0 h1:N2I01KCUkv1FAjZXJMwh95KK1ZIQLYbPfhaxw8WS0hE= +github.com/spiffe/go-spiffe/v2 v2.5.0/go.mod h1:P+NxobPc6wXhVtINNtFjNWGBTreew1GBUCwT2wPmb7g= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= +github.com/zeebo/errs v1.4.0 h1:XNdoD/RRMKP7HD0UhJnIzUy74ISdGGxURlYG8HSWSfM= +github.com/zeebo/errs v1.4.0/go.mod h1:sgbWHsvVuTPHcqJJGQ1WhI5KbWlHYz+2+2C/LSEtCw4= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= +go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= +go.opentelemetry.io/contrib/detectors/gcp v1.36.0 h1:F7q2tNlCaHY9nMKHR6XH9/qkp8FktLnIcy6jJNyOCQw= +go.opentelemetry.io/contrib/detectors/gcp v1.36.0/go.mod h1:IbBN8uAIIx734PTonTPxAxnjc2pQTxWNkwfstZ+6H2k= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 h1:YH4g8lQroajqUwWbq/tr2QX1JFmEXaDLgG+ew9bLMWo= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0/go.mod h1:fvPi2qXDqFs8M4B4fmJhE92TyQs9Ydjlg3RvfUp+NbQ= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 h1:F7Jx+6hwnZ41NSFTO5q4LYDtJRXBf2PD0rNBkeB/lus= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0/go.mod h1:UHB22Z8QsdRDrnAtX4PntOl36ajSxcdUMt1sF7Y6E7Q= go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8= go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 h1:GqRJVj7UmLjCVyVJ3ZFLdPRmhDUp2zFmQe3RHIOsw24= @@ -148,36 +202,66 @@ go.opentelemetry.io/proto/otlp v1.7.1 h1:gTOMpGDb0WTBOP8JaO72iL3auEZhVmAQg4ipjOV go.opentelemetry.io/proto/otlp v1.7.1/go.mod h1:b2rVh6rfI/s2pHWNlB7ILJcRALpcNDzKhACevjI+ZnE= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +golang.org/x/crypto v0.43.0 h1:dduJYIi3A3KOfdGOHX8AVZ/jGiyPa3IbBozJ5kNuE04= +golang.org/x/crypto v0.43.0/go.mod h1:BFbav4mRNlXJL4wNeejLpWxB7wMbc79PdRGhWKncxR0= golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 h1:e66Fs6Z+fZTbFBAxKfP3PALWBtpfqks2bwGcexMxgtk= golang.org/x/exp v0.0.0-20240909161429-701f63a606c0/go.mod h1:2TbTHSBQa924w8M6Xs1QcRcFwyucIwBGpK1p2f1YFFY= golang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg= golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ= +golang.org/x/mod v0.28.0 h1:gQBtGhjxykdjY9YhZpSlZIsbnaE2+PgjfLWUQTnoZ1U= +golang.org/x/mod v0.28.0/go.mod h1:yfB/L0NOf/kmEbXjzCPOx1iK1fRutOydrCMsqRhEBxI= golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE= golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg= +golang.org/x/net v0.46.0 h1:giFlY12I07fugqwPuWJi68oOnpfqFnJIJzaIIm2JVV4= +golang.org/x/net v0.46.0/go.mod h1:Q9BGdFy1y4nkUwiLvT5qtyhAnEHgnQ/zd8PfU6nc210= +golang.org/x/oauth2 v0.33.0 h1:4Q+qn+E5z8gPRJfmRy7C2gGG3T4jIprK6aSYgTXGRpo= +golang.org/x/oauth2 v0.33.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= +golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI= golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ= +golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng= golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= +golang.org/x/text v0.30.0 h1:yznKA/E9zq54KzlzBEAWn1NXSQ8DIp/NYMy88xJjl4k= +golang.org/x/text v0.30.0/go.mod h1:yDdHFIX9t+tORqspjENWgzaCVXgk0yYnYuSZ8UzzBVM= +golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= +golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= golang.org/x/tools v0.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0= golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw= +golang.org/x/tools v0.37.0 h1:DVSRzp7FwePZW356yEAChSdNcQo6Nsp+fex1SUW09lE= +golang.org/x/tools v0.37.0/go.mod h1:MBN5QPQtLMHVdvsbtarmTNukZDdgwdwlO5qGacAzF0w= golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da h1:noIWHXmPHxILtqtCOPIhSt0ABwskkZKjD3bXGnZGpNY= golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= +google.golang.org/api v0.256.0 h1:u6Khm8+F9sxbCTYNoBHg6/Hwv0N/i+V94MvkOSor6oI= +google.golang.org/api v0.256.0/go.mod h1:KIgPhksXADEKJlnEoRa9qAII4rXcy40vfI8HRqcU964= +google.golang.org/genproto v0.0.0-20250922171735-9219d122eba9 h1:LvZVVaPE0JSqL+ZWb6ErZfnEOKIqqFWUJE2D0fObSmc= +google.golang.org/genproto v0.0.0-20250922171735-9219d122eba9/go.mod h1:QFOrLhdAe2PsTp3vQY4quuLKTi9j3XG3r6JPPaw7MSc= google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5 h1:BIRfGDEjiHRrk0QKZe3Xv2ieMhtgRGeLcZQ0mIVn4EY= google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5/go.mod h1:j3QtIyytwqGr1JUDtYXwtMXWPKsEa5LtzIFN1Wn5WvE= +google.golang.org/genproto/googleapis/api v0.0.0-20251111163417-95abcf5c77ba h1:B14OtaXuMaCQsl2deSvNkyPKIzq3BjfxQp8d00QyWx4= +google.golang.org/genproto/googleapis/api v0.0.0-20251111163417-95abcf5c77ba/go.mod h1:G5IanEx8/PgI9w6CFcYQf7jMtHQhZruvfM1i3qOqk5U= google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 h1:eaY8u2EuxbRv7c3NiGK0/NedzVsCcV6hDuU5qPX5EGE= google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5/go.mod h1:M4/wBTSeyLxupu3W3tJtOgB14jILAS/XWPSSa3TAlJc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20251111163417-95abcf5c77ba h1:UKgtfRM7Yh93Sya0Fo8ZzhDP4qBckrrxEr2oF5UIVb8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20251111163417-95abcf5c77ba/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk= google.golang.org/grpc v1.75.0 h1:+TW+dqTd2Biwe6KKfhE5JpiYIBWq865PhKGSXiivqt4= google.golang.org/grpc v1.75.0/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ= +google.golang.org/grpc v1.76.0 h1:UnVkv1+uMLYXoIz6o7chp59WfQUYA2ex/BXQ9rHZu7A= +google.golang.org/grpc v1.76.0/go.mod h1:Ju12QI8M6iQJtbcsV+awF5a4hfJMLi4X0JLo94ULZ6c= google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= +google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= +google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/go/internal/feast/registry/gcs.go b/go/internal/feast/registry/gcs.go new file mode 100644 index 00000000000..00968a55ae3 --- /dev/null +++ b/go/internal/feast/registry/gcs.go @@ -0,0 +1,114 @@ +package registry + +import ( + "context" + "errors" + "io" + "net/url" + "strings" + "time" + + "cloud.google.com/go/storage" + "google.golang.org/protobuf/proto" + + "github.com/feast-dev/feast/go/protos/feast/core" +) + +// GCSObjectReader defines the interface for reading GCS objects to allow mocking in tests. +type GCSObjectReader interface { + GetObject(ctx context.Context, bucket string, object string) (io.ReadCloser, error) + DeleteObject(ctx context.Context, bucket string, object string) error +} + +// GCSClient implements GCSObjectReader using the real GCS SDK. +type GCSClient struct { + client *storage.Client +} + +func (g *GCSClient) GetObject(ctx context.Context, bucket string, object string) (io.ReadCloser, error) { + return g.client.Bucket(bucket).Object(object).NewReader(ctx) +} + +func (g *GCSClient) DeleteObject(ctx context.Context, bucket string, object string) error { + return g.client.Bucket(bucket).Object(object).Delete(ctx) +} + +// GCSRegistryStore is a GCS bucket-based implementation of the RegistryStore interface. +type GCSRegistryStore struct { + registryPath string + client GCSObjectReader +} + +// NewGCSRegistryStore creates a GCSRegistryStore with the given configuration. +func NewGCSRegistryStore(config *RegistryConfig, repoPath string) *GCSRegistryStore { + var rs GCSRegistryStore + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + client, err := storage.NewClient(ctx) + if err != nil { + rs = GCSRegistryStore{ + registryPath: config.Path, + } + } else { + rs = GCSRegistryStore{ + registryPath: config.Path, + client: &GCSClient{client: client}, + } + } + return &rs +} + +// GetRegistryProto reads and parses the registry proto from the GCS bucket object. +func (g *GCSRegistryStore) GetRegistryProto() (*core.Registry, error) { + bucket, object, err := g.parseGCSPath() + if err != nil { + return nil, err + } + + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + reader, err := g.client.GetObject(ctx, bucket, object) + if err != nil { + return nil, err + } + defer reader.Close() + + data, err := io.ReadAll(reader) + if err != nil { + return nil, err + } + + registry := &core.Registry{} + if err := proto.Unmarshal(data, registry); err != nil { + return nil, err + } + return registry, nil +} + +func (g *GCSRegistryStore) UpdateRegistryProto(rp *core.Registry) error { + return errors.New("not implemented in GCSRegistryStore") +} + +func (g *GCSRegistryStore) Teardown() error { + bucket, object, err := g.parseGCSPath() + if err != nil { + return err + } + + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + return g.client.DeleteObject(ctx, bucket, object) +} + +func (g *GCSRegistryStore) parseGCSPath() (string, string, error) { + uri, err := url.Parse(g.registryPath) + if err != nil { + return "", "", errors.New("invalid GCS registry path format") + } + bucket := uri.Host + object := strings.TrimPrefix(uri.Path, "/") + return bucket, object, nil +} diff --git a/go/internal/feast/registry/registry.go b/go/internal/feast/registry/registry.go index 160dda94fd6..9cd0febe5d3 100644 --- a/go/internal/feast/registry/registry.go +++ b/go/internal/feast/registry/registry.go @@ -357,7 +357,7 @@ func getRegistryStoreFromScheme(registryPath string, registryConfig *RegistryCon if registryStoreType, ok := REGISTRY_STORE_CLASS_FOR_SCHEME[uri.Scheme]; ok { return getRegistryStoreFromType(registryStoreType, registryConfig, repoPath, project) } - return nil, fmt.Errorf("registry path %s has unsupported scheme %s. Supported schemes are file, s3 and gs", registryPath, uri.Scheme) + return nil, fmt.Errorf("registry path %s has unsupported scheme %s. Supported schemes are file, s3 and gcs", registryPath, uri.Scheme) } func getRegistryStoreFromType(registryStoreType string, registryConfig *RegistryConfig, repoPath string, project string) (RegistryStore, error) { @@ -366,6 +366,8 @@ func getRegistryStoreFromType(registryStoreType string, registryConfig *Registry return NewFileRegistryStore(registryConfig, repoPath), nil case "S3RegistryStore": return NewS3RegistryStore(registryConfig, repoPath), nil + case "GCSRegistryStore": + return NewGCSRegistryStore(registryConfig, repoPath), nil } - return nil, errors.New("only FileRegistryStore as a RegistryStore is supported at this moment") + return nil, errors.New("only FileRegistryStore, S3RegistryStore, and GCSRegistryStore are supported at this moment") } diff --git a/go/internal/feast/registry/registry_test.go b/go/internal/feast/registry/registry_test.go index 3e544d486e5..6f75dbbbeb2 100644 --- a/go/internal/feast/registry/registry_test.go +++ b/go/internal/feast/registry/registry_test.go @@ -12,7 +12,7 @@ import ( "github.com/aws/aws-sdk-go-v2/service/s3" ) -func TestGetOnlineFeaturesS3Registry(t *testing.T) { +func TestCloudRegistryStores(t *testing.T) { mockS3Client := &MockS3Client{ GetObjectFn: func(ctx context.Context, params *s3.GetObjectInput, optFns ...func(*s3.Options)) (*s3.GetObjectOutput, error) { return &s3.GetObjectOutput{ @@ -24,56 +24,82 @@ func TestGetOnlineFeaturesS3Registry(t *testing.T) { }, } + mockGCSClient := &MockGCSClient{ + GetObjectFn: func(ctx context.Context, bucket string, object string) (io.ReadCloser, error) { + return io.NopCloser(strings.NewReader("mock data")), nil + }, + DeleteObjectFn: func(ctx context.Context, bucket string, object string) error { + return nil + }, + } + tests := []struct { name string config *RepoConfig }{ { - name: "redis with simple features", + name: "s3 registry store", config: &RepoConfig{ Project: "feature_repo", - Registry: map[string]interface{}{ + Registry: map[string]any{ "path": "s3://test-bucket/path/to/registry.db", }, Provider: "aws", }, }, + { + name: "gcs registry store", + config: &RepoConfig{ + Project: "feature_repo", + Registry: map[string]any{ + "path": "gs://test-bucket/path/to/registry.db", + }, + Provider: "gcp", + }, + }, } + for _, test := range tests { - registryConfig, err := test.config.GetRegistryConfig() - if err != nil { - t.Errorf("Error getting registry config. msg: %s", err.Error()) - } - r := &Registry{ - project: test.config.Project, - cachedRegistryProtoTtl: time.Duration(registryConfig.CacheTtlSeconds) * time.Second, - } - _ = registryConfig.RegistryStoreType - registryPath := registryConfig.Path - uri, err := url.Parse(registryPath) - if err != nil { - t.Errorf("Error parsing registry path. msg: %s", err.Error()) - } - if registryStoreType, ok := REGISTRY_STORE_CLASS_FOR_SCHEME[uri.Scheme]; ok { - switch registryStoreType { - case "S3RegistryStore": - registryStore := &S3RegistryStore{ - filePath: registryConfig.Path, - s3Client: mockS3Client, + t.Run(test.name, func(t *testing.T) { + registryConfig, err := test.config.GetRegistryConfig() + if err != nil { + t.Errorf("Error getting registry config. msg: %s", err.Error()) + } + r := &Registry{ + project: test.config.Project, + cachedRegistryProtoTtl: time.Duration(registryConfig.CacheTtlSeconds) * time.Second, + } + registryPath := registryConfig.Path + uri, err := url.Parse(registryPath) + if err != nil { + t.Errorf("Error parsing registry path. msg: %s", err.Error()) + } + if registryStoreType, ok := REGISTRY_STORE_CLASS_FOR_SCHEME[uri.Scheme]; ok { + switch registryStoreType { + case "S3RegistryStore": + r.registryStore = &S3RegistryStore{ + filePath: registryConfig.Path, + s3Client: mockS3Client, + } + case "GCSRegistryStore": + r.registryStore = &GCSRegistryStore{ + registryPath: registryConfig.Path, + client: mockGCSClient, + } + default: + t.Errorf("Unsupported registry store type: %s", registryStoreType) + return } - r.registryStore = registryStore err := r.InitializeRegistry() if err != nil { t.Errorf("Error initializing registry. msg: %s. registry path=%q", err.Error(), registryPath) } - default: - t.Errorf("Only S3RegistryStore is supported on this testing. got=%s", registryStoreType) } - } + }) } } -// MockS3Client is mock client for testing s3 registry store +// MockS3Client is mock client for testing S3 registry store type MockS3Client struct { GetObjectFn func(ctx context.Context, params *s3.GetObjectInput, optFns ...func(*s3.Options)) (*s3.GetObjectOutput, error) DeleteObjectFn func(ctx context.Context, params *s3.DeleteObjectInput, optFns ...func(*s3.Options)) (*s3.DeleteObjectOutput, error) @@ -92,3 +118,23 @@ func (m *MockS3Client) DeleteObject(ctx context.Context, params *s3.DeleteObject } return nil, errors.New("not implemented") } + +// MockGCSClient is mock client for testing GCS registry store +type MockGCSClient struct { + GetObjectFn func(ctx context.Context, bucket string, object string) (io.ReadCloser, error) + DeleteObjectFn func(ctx context.Context, bucket string, object string) error +} + +func (m *MockGCSClient) GetObject(ctx context.Context, bucket string, object string) (io.ReadCloser, error) { + if m.GetObjectFn != nil { + return m.GetObjectFn(ctx, bucket, object) + } + return nil, errors.New("not implemented") +} + +func (m *MockGCSClient) DeleteObject(ctx context.Context, bucket string, object string) error { + if m.DeleteObjectFn != nil { + return m.DeleteObjectFn(ctx, bucket, object) + } + return errors.New("not implemented") +} From bbba34cfa6c4f5824d336a81d53024bb6a28ca52 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Tue, 6 Jan 2026 12:41:59 -0500 Subject: [PATCH 16/37] chore: Refactor some unit tests into integration tests (#5820) * chore: Refactor some unit tests into integration tests Signed-off-by: Francisco Javier Arceo * chore: Refactor some unit tests into integration tests Signed-off-by: Francisco Javier Arceo * rename TestConfig Signed-off-by: Francisco Javier Arceo * rename TestConfig Signed-off-by: Francisco Javier Arceo * add integration flag Signed-off-by: Francisco Javier Arceo * update paths Signed-off-by: Francisco Javier Arceo * update paths Signed-off-by: Francisco Javier Arceo --------- Signed-off-by: Francisco Javier Arceo --- .github/workflows/registry-rest-api-tests.yml | 4 +- .../registration/rest_api}/conftest.py | 34 +++++-- .../resource/feast-registry-nginx.yaml | 0 .../resource/feast_config_credit_scoring.yaml | 0 .../resource/feast_config_driver_ranking.yaml | 0 .../resource/feast_config_rhoai.yaml | 0 .../rest_api}/resource/postgres.yaml | 0 .../rest_api}/resource/redis.yaml | 0 .../registration/rest_api}/support.py | 0 .../rest_api/test_registry_rest_api.py} | 94 ++++++++++--------- 10 files changed, 81 insertions(+), 51 deletions(-) rename sdk/python/tests/{registry_rest_api_tests => integration/registration/rest_api}/conftest.py (78%) rename sdk/python/tests/{registry_rest_api_tests => integration/registration/rest_api}/resource/feast-registry-nginx.yaml (100%) rename sdk/python/tests/{registry_rest_api_tests => integration/registration/rest_api}/resource/feast_config_credit_scoring.yaml (100%) rename sdk/python/tests/{registry_rest_api_tests => integration/registration/rest_api}/resource/feast_config_driver_ranking.yaml (100%) rename sdk/python/tests/{registry_rest_api_tests => integration/registration/rest_api}/resource/feast_config_rhoai.yaml (100%) rename sdk/python/tests/{registry_rest_api_tests => integration/registration/rest_api}/resource/postgres.yaml (100%) rename sdk/python/tests/{registry_rest_api_tests => integration/registration/rest_api}/resource/redis.yaml (100%) rename sdk/python/tests/{registry_rest_api_tests => integration/registration/rest_api}/support.py (100%) rename sdk/python/tests/{registry_rest_api_tests/test_feast_registry.py => integration/registration/rest_api/test_registry_rest_api.py} (84%) diff --git a/.github/workflows/registry-rest-api-tests.yml b/.github/workflows/registry-rest-api-tests.yml index 5eddd68a539..cd679c7044b 100644 --- a/.github/workflows/registry-rest-api-tests.yml +++ b/.github/workflows/registry-rest-api-tests.yml @@ -145,8 +145,8 @@ jobs: - name: Setup and Run Registry Rest API tests run: | echo "Running Registry REST API tests..." - cd sdk/python/tests/registry_rest_api_tests/ - pytest test_feast_registry.py -s + cd sdk/python + pytest tests/integration/registration/rest_api/test_registry_rest_api.py --integration -s - name: Clean up docker images if: always() diff --git a/sdk/python/tests/registry_rest_api_tests/conftest.py b/sdk/python/tests/integration/registration/rest_api/conftest.py similarity index 78% rename from sdk/python/tests/registry_rest_api_tests/conftest.py rename to sdk/python/tests/integration/registration/rest_api/conftest.py index 2a128785fd8..36c358a9aa6 100644 --- a/sdk/python/tests/registry_rest_api_tests/conftest.py +++ b/sdk/python/tests/integration/registration/rest_api/conftest.py @@ -1,9 +1,11 @@ import os +from pathlib import Path import pytest import requests from kubernetes import client, config -from support import ( + +from tests.integration.registration.rest_api.support import ( applyFeastProject, create_feast_project, create_namespace, @@ -41,6 +43,10 @@ def feast_rest_client(): config.load_kube_config() api_instance = client.CoreV1Api() + # Get the directory containing this conftest.py file + test_dir = Path(__file__).parent + resource_dir = test_dir / "resource" + # Constants and environment values namespace = "test-ns-feast-rest" credit_scoring = "credit-scoring" @@ -54,23 +60,37 @@ def feast_rest_client(): try: if not run_on_openshift: # Deploy dependencies - deploy_and_validate_pod(namespace, "resource/redis.yaml", "app=redis") - deploy_and_validate_pod(namespace, "resource/postgres.yaml", "app=postgres") + deploy_and_validate_pod( + namespace, str(resource_dir / "redis.yaml"), "app=redis" + ) + deploy_and_validate_pod( + namespace, str(resource_dir / "postgres.yaml"), "app=postgres" + ) # Create and validate FeatureStore CRs create_feast_project( - "resource/feast_config_credit_scoring.yaml", namespace, credit_scoring + str(resource_dir / "feast_config_credit_scoring.yaml"), + namespace, + credit_scoring, ) validate_feature_store_cr_status(namespace, credit_scoring) create_feast_project( - "resource/feast_config_driver_ranking.yaml", namespace, driver_ranking + str(resource_dir / "feast_config_driver_ranking.yaml"), + namespace, + driver_ranking, ) validate_feature_store_cr_status(namespace, driver_ranking) # Deploy ingress and get route URL run_kubectl_command( - ["apply", "-f", "resource/feast-registry-nginx.yaml", "-n", namespace] + [ + "apply", + "-f", + str(resource_dir / "feast-registry-nginx.yaml"), + "-n", + namespace, + ] ) ingress_host = run_kubectl_command( [ @@ -114,7 +134,7 @@ def feast_rest_client(): aws_secret_key, aws_bucket, registry_path, - "resource/feast_config_rhoai.yaml", + str(resource_dir / "feast_config_rhoai.yaml"), namespace, ) validate_feature_store_cr_status(namespace, "test-s3") diff --git a/sdk/python/tests/registry_rest_api_tests/resource/feast-registry-nginx.yaml b/sdk/python/tests/integration/registration/rest_api/resource/feast-registry-nginx.yaml similarity index 100% rename from sdk/python/tests/registry_rest_api_tests/resource/feast-registry-nginx.yaml rename to sdk/python/tests/integration/registration/rest_api/resource/feast-registry-nginx.yaml diff --git a/sdk/python/tests/registry_rest_api_tests/resource/feast_config_credit_scoring.yaml b/sdk/python/tests/integration/registration/rest_api/resource/feast_config_credit_scoring.yaml similarity index 100% rename from sdk/python/tests/registry_rest_api_tests/resource/feast_config_credit_scoring.yaml rename to sdk/python/tests/integration/registration/rest_api/resource/feast_config_credit_scoring.yaml diff --git a/sdk/python/tests/registry_rest_api_tests/resource/feast_config_driver_ranking.yaml b/sdk/python/tests/integration/registration/rest_api/resource/feast_config_driver_ranking.yaml similarity index 100% rename from sdk/python/tests/registry_rest_api_tests/resource/feast_config_driver_ranking.yaml rename to sdk/python/tests/integration/registration/rest_api/resource/feast_config_driver_ranking.yaml diff --git a/sdk/python/tests/registry_rest_api_tests/resource/feast_config_rhoai.yaml b/sdk/python/tests/integration/registration/rest_api/resource/feast_config_rhoai.yaml similarity index 100% rename from sdk/python/tests/registry_rest_api_tests/resource/feast_config_rhoai.yaml rename to sdk/python/tests/integration/registration/rest_api/resource/feast_config_rhoai.yaml diff --git a/sdk/python/tests/registry_rest_api_tests/resource/postgres.yaml b/sdk/python/tests/integration/registration/rest_api/resource/postgres.yaml similarity index 100% rename from sdk/python/tests/registry_rest_api_tests/resource/postgres.yaml rename to sdk/python/tests/integration/registration/rest_api/resource/postgres.yaml diff --git a/sdk/python/tests/registry_rest_api_tests/resource/redis.yaml b/sdk/python/tests/integration/registration/rest_api/resource/redis.yaml similarity index 100% rename from sdk/python/tests/registry_rest_api_tests/resource/redis.yaml rename to sdk/python/tests/integration/registration/rest_api/resource/redis.yaml diff --git a/sdk/python/tests/registry_rest_api_tests/support.py b/sdk/python/tests/integration/registration/rest_api/support.py similarity index 100% rename from sdk/python/tests/registry_rest_api_tests/support.py rename to sdk/python/tests/integration/registration/rest_api/support.py diff --git a/sdk/python/tests/registry_rest_api_tests/test_feast_registry.py b/sdk/python/tests/integration/registration/rest_api/test_registry_rest_api.py similarity index 84% rename from sdk/python/tests/registry_rest_api_tests/test_feast_registry.py rename to sdk/python/tests/integration/registration/rest_api/test_registry_rest_api.py index 04e86618cf7..5d37d700a64 100644 --- a/sdk/python/tests/registry_rest_api_tests/test_feast_registry.py +++ b/sdk/python/tests/integration/registration/rest_api/test_registry_rest_api.py @@ -13,7 +13,7 @@ # Test Configuration Constants @dataclass(frozen=True) -class TestConfig: +class RegistryTestConfig: """Configuration constants for registry REST API tests.""" CREDIT_SCORING_PROJECT = "credit_scoring_local" @@ -103,7 +103,7 @@ def validate_entity_structure(entity: Dict[str, Any]) -> None: assert "lastUpdatedTimestamp" in meta assert isinstance(entity["project"], str) - assert entity["project"] in TestConfig.PROJECT_NAMES + assert entity["project"] in RegistryTestConfig.PROJECT_NAMES @staticmethod def validate_feature_structure(feature: Dict[str, Any]) -> None: @@ -132,6 +132,7 @@ def validate_batch_source(batch_source: Dict[str, Any]) -> None: assert batch_source.get("type") == "BATCH_FILE" +@pytest.mark.integration @pytest.mark.skipif( not os.path.exists(os.path.expanduser("~/.kube/config")), reason="Kube config not available in this environment", @@ -143,7 +144,7 @@ class TestRegistryServerRest: def test_list_entities(self, feast_rest_client): """Test listing entities for a specific project.""" response = feast_rest_client.get( - f"/entities/?project={TestConfig.CREDIT_SCORING_PROJECT}" + f"/entities/?project={RegistryTestConfig.CREDIT_SCORING_PROJECT}" ) data = APITestHelpers.validate_response_success(response) @@ -151,21 +152,21 @@ def test_list_entities(self, feast_rest_client): assert "entities" in data entities = data["entities"] assert isinstance(entities, list) - assert len(entities) == TestConfig.CREDIT_SCORING_ENTITIES_COUNT + assert len(entities) == RegistryTestConfig.CREDIT_SCORING_ENTITIES_COUNT # Validate entity names actual_entity_names = {entity["spec"]["name"] for entity in entities} - assert actual_entity_names == TestConfig.ENTITY_NAMES + assert actual_entity_names == RegistryTestConfig.ENTITY_NAMES # Validate pagination APITestHelpers.validate_pagination( - data, TestConfig.CREDIT_SCORING_ENTITIES_COUNT + data, RegistryTestConfig.CREDIT_SCORING_ENTITIES_COUNT ) def test_get_entity(self, feast_rest_client): """Test getting a specific entity with detailed validation.""" response = feast_rest_client.get( - f"/entities/zipcode/?project={TestConfig.CREDIT_SCORING_PROJECT}" + f"/entities/zipcode/?project={RegistryTestConfig.CREDIT_SCORING_PROJECT}" ) data = APITestHelpers.validate_response_success(response) @@ -178,7 +179,7 @@ def test_get_entity(self, feast_rest_client): spec["description"] == "ZIP code identifier for geographic location-based features" ) - assert spec["tags"] == TestConfig.ZIPCODE_SPEC_TAGS + assert spec["tags"] == RegistryTestConfig.ZIPCODE_SPEC_TAGS # Validate meta meta = data["meta"] @@ -215,22 +216,22 @@ def test_entities_all(self, feast_rest_client): def test_list_data_sources(self, feast_rest_client): """Test listing data sources for a specific project.""" response = feast_rest_client.get( - f"/data_sources/?project={TestConfig.CREDIT_SCORING_PROJECT}" + f"/data_sources/?project={RegistryTestConfig.CREDIT_SCORING_PROJECT}" ) data = APITestHelpers.validate_response_success(response) assert "dataSources" in data data_sources = data["dataSources"] - assert len(data_sources) == TestConfig.CREDIT_SCORING_DATA_SOURCES_COUNT + assert len(data_sources) == RegistryTestConfig.CREDIT_SCORING_DATA_SOURCES_COUNT APITestHelpers.validate_pagination( - data, TestConfig.CREDIT_SCORING_DATA_SOURCES_COUNT + data, RegistryTestConfig.CREDIT_SCORING_DATA_SOURCES_COUNT ) def test_get_data_sources(self, feast_rest_client): """Test getting a specific data source.""" response = feast_rest_client.get( - f"/data_sources/Zipcode source/?project={TestConfig.CREDIT_SCORING_PROJECT}" + f"/data_sources/Zipcode source/?project={RegistryTestConfig.CREDIT_SCORING_PROJECT}" ) data = APITestHelpers.validate_response_success(response) @@ -254,7 +255,7 @@ def test_data_sources_all(self, feast_rest_client): # Validate project associations for relevant data source types for ds in data_sources: if ds["type"] in ("BATCH_FILE", "REQUEST_SOURCE"): - assert ds["project"] in TestConfig.PROJECT_NAMES + assert ds["project"] in RegistryTestConfig.PROJECT_NAMES pagination = data.get("pagination", {}) assert pagination.get("page") == 1 @@ -266,12 +267,15 @@ def test_data_sources_all(self, feast_rest_client): def test_list_feature_services(self, feast_rest_client): """Test listing feature services for a specific project.""" response = feast_rest_client.get( - f"/feature_services/?project={TestConfig.DRIVER_RANKING_PROJECT}" + f"/feature_services/?project={RegistryTestConfig.DRIVER_RANKING_PROJECT}" ) data = APITestHelpers.validate_response_success(response) feature_services = data.get("featureServices", []) - assert len(feature_services) == TestConfig.DRIVER_RANKING_FEATURE_SERVICES_COUNT + assert ( + len(feature_services) + == RegistryTestConfig.DRIVER_RANKING_FEATURE_SERVICES_COUNT + ) # Validate batch sources in features for fs in feature_services: @@ -288,7 +292,7 @@ def test_feature_services_all(self, feast_rest_client): assert len(feature_services) >= 1 for fs in feature_services: - assert fs.get("project") in TestConfig.PROJECT_NAMES + assert fs.get("project") in RegistryTestConfig.PROJECT_NAMES # Validate features structure spec = fs.get("spec", {}) @@ -299,7 +303,7 @@ def test_feature_services_all(self, feast_rest_client): def test_get_feature_services(self, feast_rest_client): """Test getting a specific feature service.""" response = feast_rest_client.get( - f"/feature_services/driver_activity_v2/?project={TestConfig.DRIVER_RANKING_PROJECT}" + f"/feature_services/driver_activity_v2/?project={RegistryTestConfig.DRIVER_RANKING_PROJECT}" ) data = APITestHelpers.validate_response_success(response) @@ -313,21 +317,22 @@ def test_get_feature_services(self, feast_rest_client): def test_list_feature_views(self, feast_rest_client): """Test listing feature views for a specific project.""" response = feast_rest_client.get( - f"/feature_views/?project={TestConfig.CREDIT_SCORING_PROJECT}" + f"/feature_views/?project={RegistryTestConfig.CREDIT_SCORING_PROJECT}" ) data = APITestHelpers.validate_response_success(response) assert ( - len(data["featureViews"]) == TestConfig.CREDIT_SCORING_FEATURE_VIEWS_COUNT + len(data["featureViews"]) + == RegistryTestConfig.CREDIT_SCORING_FEATURE_VIEWS_COUNT ) APITestHelpers.validate_pagination( - data, TestConfig.CREDIT_SCORING_FEATURE_VIEWS_COUNT + data, RegistryTestConfig.CREDIT_SCORING_FEATURE_VIEWS_COUNT ) def test_get_feature_view(self, feast_rest_client): """Test getting a specific feature view.""" response = feast_rest_client.get( - f"/feature_views/credit_history/?project={TestConfig.CREDIT_SCORING_PROJECT}" + f"/feature_views/credit_history/?project={RegistryTestConfig.CREDIT_SCORING_PROJECT}" ) data = APITestHelpers.validate_response_success(response) @@ -351,26 +356,26 @@ def test_feature_views_all(self, feast_rest_client): def test_list_features(self, feast_rest_client): """Test listing features for a specific project.""" response = feast_rest_client.get( - f"/features/?project={TestConfig.CREDIT_SCORING_PROJECT}&include_relationships=true" + f"/features/?project={RegistryTestConfig.CREDIT_SCORING_PROJECT}&include_relationships=true" ) data = APITestHelpers.validate_response_success(response) features = data.get("features") assert isinstance(features, list) - assert len(features) == TestConfig.CREDIT_SCORING_FEATURES_COUNT + assert len(features) == RegistryTestConfig.CREDIT_SCORING_FEATURES_COUNT # Validate each feature structure for feature in features: APITestHelpers.validate_feature_structure(feature) APITestHelpers.validate_pagination( - data, TestConfig.CREDIT_SCORING_FEATURES_COUNT + data, RegistryTestConfig.CREDIT_SCORING_FEATURES_COUNT ) def test_get_feature(self, feast_rest_client): """Test getting a specific feature.""" response = feast_rest_client.get( - f"/features/zipcode_features/city/?project={TestConfig.CREDIT_SCORING_PROJECT}&include_relationships=false" + f"/features/zipcode_features/city/?project={RegistryTestConfig.CREDIT_SCORING_PROJECT}&include_relationships=false" ) data = APITestHelpers.validate_response_success(response) @@ -396,14 +401,17 @@ def test_features_all(self, feast_rest_client): # Validate expected projects are present actual_projects = set(f["project"] for f in features) - assert TestConfig.PROJECT_NAMES.issubset(actual_projects) + assert RegistryTestConfig.PROJECT_NAMES.issubset(actual_projects) APITestHelpers.validate_pagination_all_endpoint(data, "features") # Project Tests @pytest.mark.parametrize( "project_name", - [TestConfig.CREDIT_SCORING_PROJECT, TestConfig.DRIVER_RANKING_PROJECT], + [ + RegistryTestConfig.CREDIT_SCORING_PROJECT, + RegistryTestConfig.DRIVER_RANKING_PROJECT, + ], ) def test_get_project_by_name(self, feast_rest_client, project_name): """Test getting a project by name.""" @@ -420,13 +428,13 @@ def test_get_projects_list(self, feast_rest_client): assert len(projects) == 2 actual_project_names = [project["spec"]["name"] for project in projects] - assert set(actual_project_names) == TestConfig.PROJECT_NAMES + assert set(actual_project_names) == RegistryTestConfig.PROJECT_NAMES # Lineage Tests def test_get_registry_lineage(self, feast_rest_client): """Test getting registry lineage for a specific project.""" response = feast_rest_client.get( - f"/lineage/registry?project={TestConfig.CREDIT_SCORING_PROJECT}" + f"/lineage/registry?project={RegistryTestConfig.CREDIT_SCORING_PROJECT}" ) data = APITestHelpers.validate_response_success(response) @@ -448,11 +456,11 @@ def test_get_registry_lineage(self, feast_rest_client): def test_get_lineage_complete(self, feast_rest_client): """Test getting complete lineage for a specific project.""" response = feast_rest_client.get( - f"/lineage/complete?project={TestConfig.CREDIT_SCORING_PROJECT}" + f"/lineage/complete?project={RegistryTestConfig.CREDIT_SCORING_PROJECT}" ) data = APITestHelpers.validate_response_success(response) - assert data.get("project") == TestConfig.CREDIT_SCORING_PROJECT + assert data.get("project") == RegistryTestConfig.CREDIT_SCORING_PROJECT assert "objects" in data objects = data["objects"] @@ -511,12 +519,12 @@ def test_get_registry_complete_all(self, feast_rest_client): assert len(data["projects"]) > 0 project_names = [project["project"] for project in data.get("projects", [])] - assert TestConfig.CREDIT_SCORING_PROJECT in project_names + assert RegistryTestConfig.CREDIT_SCORING_PROJECT in project_names def test_get_lineage_object_path(self, feast_rest_client): """Test getting lineage for a specific object.""" response = feast_rest_client.get( - f"/lineage/objects/entity/dob_ssn?project={TestConfig.CREDIT_SCORING_PROJECT}" + f"/lineage/objects/entity/dob_ssn?project={RegistryTestConfig.CREDIT_SCORING_PROJECT}" ) data = APITestHelpers.validate_response_success(response) @@ -541,7 +549,7 @@ def test_get_lineage_object_path(self, feast_rest_client): def test_saved_datasets_endpoints(self, feast_rest_client, endpoint, key): """Test saved datasets endpoints with parameterization.""" if endpoint == "/saved_datasets": - url = f"{endpoint}?project={TestConfig.CREDIT_SCORING_PROJECT}&include_relationships=false" + url = f"{endpoint}?project={RegistryTestConfig.CREDIT_SCORING_PROJECT}&include_relationships=false" else: url = f"{endpoint}?allow_cache=true&page=1&limit=50&sort_order=asc&include_relationships=false" @@ -555,11 +563,13 @@ def test_saved_datasets_endpoints(self, feast_rest_client, endpoint, key): # Extract and validate names actual_names = [ds["spec"]["name"] for ds in saved_datasets] APITestHelpers.validate_names_match( - actual_names, TestConfig.SAVED_DATASET_NAMES + actual_names, RegistryTestConfig.SAVED_DATASET_NAMES ) # Validate pagination - APITestHelpers.validate_pagination(data, TestConfig.SAVED_DATASETS_COUNT) + APITestHelpers.validate_pagination( + data, RegistryTestConfig.SAVED_DATASETS_COUNT + ) if endpoint == "/saved_datasets/all": assert data["pagination"]["page"] == 1 assert data["pagination"]["limit"] == 50 @@ -568,7 +578,7 @@ def test_get_saved_datasets_by_name(self, feast_rest_client): """Test getting a specific saved dataset by name.""" dataset_name = "comprehensive_credit_dataset_v1" response = feast_rest_client.get( - f"/saved_datasets/{dataset_name}?project={TestConfig.CREDIT_SCORING_PROJECT}&include_relationships=false" + f"/saved_datasets/{dataset_name}?project={RegistryTestConfig.CREDIT_SCORING_PROJECT}&include_relationships=false" ) data = APITestHelpers.validate_response_success(response) @@ -580,14 +590,14 @@ def test_get_saved_datasets_by_name(self, feast_rest_client): def test_get_permission_by_name(self, feast_rest_client): """Test getting a specific permission by name.""" response = feast_rest_client.get( - f"/permissions/feast_admin_permission?project={TestConfig.CREDIT_SCORING_PROJECT}&include_relationships=false" + f"/permissions/feast_admin_permission?project={RegistryTestConfig.CREDIT_SCORING_PROJECT}&include_relationships=false" ) APITestHelpers.validate_response_success(response) def test_list_permissions(self, feast_rest_client): """Test listing permissions for a specific project.""" response = feast_rest_client.get( - f"/permissions?project={TestConfig.CREDIT_SCORING_PROJECT}&include_relationships=false" + f"/permissions?project={RegistryTestConfig.CREDIT_SCORING_PROJECT}&include_relationships=false" ) data = APITestHelpers.validate_response_success(response) @@ -595,9 +605,9 @@ def test_list_permissions(self, feast_rest_client): # Extract and validate names actual_names = [ds["spec"]["name"] for ds in data["permissions"]] - assert len(actual_names) == len(TestConfig.PERMISSION_NAMES) + assert len(actual_names) == len(RegistryTestConfig.PERMISSION_NAMES) - for name in TestConfig.PERMISSION_NAMES: + for name in RegistryTestConfig.PERMISSION_NAMES: assert name in actual_names - APITestHelpers.validate_pagination(data, TestConfig.PERMISSIONS_COUNT) + APITestHelpers.validate_pagination(data, RegistryTestConfig.PERMISSIONS_COUNT) From b8d75625ee0ff56cb80c3f06a879bcccbb6d64a8 Mon Sep 17 00:00:00 2001 From: Srihari Date: Mon, 5 Jan 2026 19:26:26 +0530 Subject: [PATCH 17/37] test: Remove e2e_rhoai package tests Signed-off-by: Srihari --- .../test/e2e_rhoai/e2e_suite_test.go | 32 -- .../test/e2e_rhoai/feast_postupgrade_test.go | 56 -- .../test/e2e_rhoai/feast_preupgrade_test.go | 74 --- .../feast_wb_connection_integration_test.go | 168 ------ .../test/e2e_rhoai/feast_wb_milvus_test.go | 65 --- .../feast_wb_ray_offline_store_test.go | 82 --- .../test/e2e_rhoai/resources/custom-nb.yaml | 92 ---- .../feast-wb-connection-credit-scoring.ipynb | 416 -------------- .../resources/feast-wb-milvus-test.ipynb | 481 ---------------- .../resources/feast-wb-ray-test.ipynb | 516 ------------------ .../e2e_rhoai/resources/feast_kube_auth.yaml | 74 --- .../resources/feature_repo/__init__.py | 0 .../resources/feature_repo/example_repo.py | 42 -- .../resources/feature_repo/feature_store.yaml | 16 - .../resources/kueue_resources_setup.yaml | 31 -- .../test/e2e_rhoai/resources/permissions.py | 19 - .../test/e2e_rhoai/resources/pvc.yaml | 10 - .../test/utils/notebook_util.go | 387 ------------- infra/feast-operator/test/utils/test_util.go | 172 ------ 19 files changed, 2733 deletions(-) delete mode 100644 infra/feast-operator/test/e2e_rhoai/e2e_suite_test.go delete mode 100644 infra/feast-operator/test/e2e_rhoai/feast_postupgrade_test.go delete mode 100644 infra/feast-operator/test/e2e_rhoai/feast_preupgrade_test.go delete mode 100644 infra/feast-operator/test/e2e_rhoai/feast_wb_connection_integration_test.go delete mode 100644 infra/feast-operator/test/e2e_rhoai/feast_wb_milvus_test.go delete mode 100644 infra/feast-operator/test/e2e_rhoai/feast_wb_ray_offline_store_test.go delete mode 100644 infra/feast-operator/test/e2e_rhoai/resources/custom-nb.yaml delete mode 100755 infra/feast-operator/test/e2e_rhoai/resources/feast-wb-connection-credit-scoring.ipynb delete mode 100755 infra/feast-operator/test/e2e_rhoai/resources/feast-wb-milvus-test.ipynb delete mode 100644 infra/feast-operator/test/e2e_rhoai/resources/feast-wb-ray-test.ipynb delete mode 100644 infra/feast-operator/test/e2e_rhoai/resources/feast_kube_auth.yaml delete mode 100644 infra/feast-operator/test/e2e_rhoai/resources/feature_repo/__init__.py delete mode 100755 infra/feast-operator/test/e2e_rhoai/resources/feature_repo/example_repo.py delete mode 100755 infra/feast-operator/test/e2e_rhoai/resources/feature_repo/feature_store.yaml delete mode 100644 infra/feast-operator/test/e2e_rhoai/resources/kueue_resources_setup.yaml delete mode 100644 infra/feast-operator/test/e2e_rhoai/resources/permissions.py delete mode 100644 infra/feast-operator/test/e2e_rhoai/resources/pvc.yaml delete mode 100644 infra/feast-operator/test/utils/notebook_util.go diff --git a/infra/feast-operator/test/e2e_rhoai/e2e_suite_test.go b/infra/feast-operator/test/e2e_rhoai/e2e_suite_test.go deleted file mode 100644 index 86750f36e4f..00000000000 --- a/infra/feast-operator/test/e2e_rhoai/e2e_suite_test.go +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2025 Feast Community. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package e2erhoai - -import ( - "fmt" - "testing" - - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" -) - -// Run e2e feast Notebook tests using the Ginkgo runner. -func TestNotebookRunE2E(t *testing.T) { - RegisterFailHandler(Fail) - _, _ = fmt.Fprintf(GinkgoWriter, "Feast Jupyter Notebook Test suite\n") - RunSpecs(t, "e2erhoai Feast Notebook test suite") -} diff --git a/infra/feast-operator/test/e2e_rhoai/feast_postupgrade_test.go b/infra/feast-operator/test/e2e_rhoai/feast_postupgrade_test.go deleted file mode 100644 index d8d091a44b8..00000000000 --- a/infra/feast-operator/test/e2e_rhoai/feast_postupgrade_test.go +++ /dev/null @@ -1,56 +0,0 @@ -/* -Copyright 2025 Feast Community. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package e2erhoai - -import ( - "fmt" - - . "github.com/feast-dev/feast/infra/feast-operator/test/utils" - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" -) - -var _ = Describe("Feast PostUpgrade scenario Testing", Ordered, func() { - const ( - namespace = "test-ns-feast-upgrade" - testDir = "/test/e2e_rhoai" - feastDeploymentName = FeastPrefix + "credit-scoring" - feastCRName = "credit-scoring" - ) - - AfterAll(func() { - By(fmt.Sprintf("Deleting test namespace: %s", namespace)) - Expect(DeleteNamespace(namespace, testDir)).To(Succeed()) - fmt.Printf("Namespace %s deleted successfully\n", namespace) - }) - runPostUpgradeTest := func() { - By("Verify Feature Store CR is in Ready state") - ValidateFeatureStoreCRStatus(namespace, feastCRName) - - By("Running `feast apply` and `feast materialize-incremental` to validate registry definitions") - VerifyApplyFeatureStoreDefinitions(namespace, feastCRName, feastDeploymentName) - - By("Validating Feast entity, feature, and feature view presence") - VerifyFeastMethods(namespace, feastDeploymentName, testDir) - } - - // This context verifies that a pre-created Feast FeatureStore CR continues to function as expected - // after an upgrade. It validates `feast apply`, registry sync, feature retrieval, and model execution. - Context("Feast post Upgrade Test", func() { - It("Should create and run a feastPostUpgrade test scenario feast apply and materialize functionality successfully", runPostUpgradeTest) - }) -}) diff --git a/infra/feast-operator/test/e2e_rhoai/feast_preupgrade_test.go b/infra/feast-operator/test/e2e_rhoai/feast_preupgrade_test.go deleted file mode 100644 index 680d79812fe..00000000000 --- a/infra/feast-operator/test/e2e_rhoai/feast_preupgrade_test.go +++ /dev/null @@ -1,74 +0,0 @@ -/* -Copyright 2025 Feast Community. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package e2erhoai - -import ( - "fmt" - - . "github.com/feast-dev/feast/infra/feast-operator/test/utils" - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" -) - -var _ = Describe("Feast PreUpgrade scenario Testing", Ordered, func() { - const ( - namespace = "test-ns-feast-upgrade" - replaceNamespace = "test-ns-feast" - testDir = "/test/e2e_rhoai" - feastDeploymentName = FeastPrefix + "credit-scoring" - feastCRName = "credit-scoring" - ) - - filesToUpdateNamespace := []string{ - "test/testdata/feast_integration_test_crs/postgres.yaml", - "test/testdata/feast_integration_test_crs/redis.yaml", - "test/testdata/feast_integration_test_crs/feast.yaml", - } - - BeforeAll(func() { - By(fmt.Sprintf("Creating test namespace: %s", namespace)) - Expect(CreateNamespace(namespace, testDir)).To(Succeed()) - fmt.Printf("Namespace %s created successfully\n", namespace) - - By("Replacing placeholder namespace in CR YAMLs for test setup") - Expect(ReplaceNamespaceInYamlFilesInPlace(filesToUpdateNamespace, replaceNamespace, namespace)).To(Succeed()) - }) - - AfterAll(func() { - By("Restoring original namespace in CR YAMLs") - Expect(ReplaceNamespaceInYamlFilesInPlace(filesToUpdateNamespace, namespace, replaceNamespace)).To(Succeed()) - - if CurrentSpecReport().Failed() { - By(fmt.Sprintf("Deleting test namespace: %s", namespace)) - Expect(DeleteNamespace(namespace, testDir)).To(Succeed()) - fmt.Printf("Namespace %s deleted successfully\n", namespace) - } - }) - - runPreUpgradeTest := func() { - By("Applying Feast infra manifests and verifying setup") - ApplyFeastInfraManifestsAndVerify(namespace, testDir) - - By("Applying and validating the credit-scoring FeatureStore CR") - ApplyFeastYamlAndVerify(namespace, testDir, feastDeploymentName, feastCRName, "test/testdata/feast_integration_test_crs/feast.yaml") - } - - // This context ensures the Feast CR setup is functional prior to any upgrade - Context("Feast Pre Upgrade Test", func() { - It("Should create and run a feastPreUpgrade test scenario feast credit-scoring CR setup successfully", runPreUpgradeTest) - }) -}) diff --git a/infra/feast-operator/test/e2e_rhoai/feast_wb_connection_integration_test.go b/infra/feast-operator/test/e2e_rhoai/feast_wb_connection_integration_test.go deleted file mode 100644 index 43bfff17c2f..00000000000 --- a/infra/feast-operator/test/e2e_rhoai/feast_wb_connection_integration_test.go +++ /dev/null @@ -1,168 +0,0 @@ -/* -Copyright 2025 Feast Community. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package e2erhoai provides end-to-end (E2E) test coverage for Feast integration with -// Red Hat OpenShift AI (RHOAI) environments. -// This specific test validates the functionality -// of executing a Feast workbench integration connection with kubernetes auth and without auth successfully -package e2erhoai - -import ( - "fmt" - "time" - - utils "github.com/feast-dev/feast/infra/feast-operator/test/utils" - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" -) - -var _ = Describe("Feast Workbench Integration Connection Testing", Ordered, func() { - const ( - namespace = "test-ns-feast" - configMapName = "feast-wb-cm" - rolebindingName = "rb-feast-test" - notebookFile = "test/e2e_rhoai/resources/feast-wb-connection-credit-scoring.ipynb" - pvcFile = "test/e2e_rhoai/resources/pvc.yaml" - permissionFile = "test/e2e_rhoai/resources/permissions.py" - notebookPVC = "jupyterhub-nb-kube-3aadmin-pvc" - testDir = "/test/e2e_rhoai" - notebookName = "feast-wb-connection-credit-scoring.ipynb" - feastDeploymentName = utils.FeastPrefix + "credit-scoring" - feastCRName = "credit-scoring" - ) - - // Verify feast ConfigMap - verifyFeastConfigMap := func(authEnabled bool) { - feastConfigMapName := "jupyter-nb-kube-3aadmin-feast-config" - configMapKey := "credit_scoring_local" - By(fmt.Sprintf("Listing ConfigMaps and verifying %s exists with correct content", feastConfigMapName)) - - // Build expected content based on auth type - expectedContent := []string{ - "project: credit_scoring_local", - } - if authEnabled { - expectedContent = append(expectedContent, "type: kubernetes") - } else { - expectedContent = append(expectedContent, "type: no_auth") - } - - // First, list ConfigMaps and check if target ConfigMap exists - // Retry with polling since the ConfigMap may be created asynchronously - const maxRetries = 5 - const retryInterval = 5 * time.Second - var configMapExists bool - var err error - - for i := 0; i < maxRetries; i++ { - exists, listErr := utils.VerifyConfigMapExistsInList(namespace, feastConfigMapName) - if listErr != nil { - err = listErr - if i < maxRetries-1 { - fmt.Printf("Failed to list ConfigMaps, retrying in %v... (attempt %d/%d)\n", retryInterval, i+1, maxRetries) - time.Sleep(retryInterval) - continue - } - } else if exists { - configMapExists = true - fmt.Printf("ConfigMap %s found in ConfigMap list\n", feastConfigMapName) - break - } - - if i < maxRetries-1 { - fmt.Printf("ConfigMap %s not found in list yet, retrying in %v... (attempt %d/%d)\n", feastConfigMapName, retryInterval, i+1, maxRetries) - time.Sleep(retryInterval) - } - } - - if !configMapExists { - Expect(err).ToNot(HaveOccurred(), fmt.Sprintf("Failed to find ConfigMap %s in ConfigMap list after %d attempts: %v", feastConfigMapName, maxRetries, err)) - } - - // Once ConfigMap exists in list, verify content (project name and auth type) - err = utils.VerifyFeastConfigMapContent(namespace, feastConfigMapName, configMapKey, expectedContent) - Expect(err).ToNot(HaveOccurred(), fmt.Sprintf("Failed to verify Feast ConfigMap %s content: %v", feastConfigMapName, err)) - fmt.Printf("Feast ConfigMap %s verified successfully with project and auth type\n", feastConfigMapName) - } - - // Parameterized test function that handles both auth and non-auth scenarios - runFeastWorkbenchIntegration := func(authEnabled bool) { - // Apply permissions only if auth is enabled - if authEnabled { - By("Applying Feast permissions for kubernetes authenticated scenario") - utils.ApplyFeastPermissions(permissionFile, "/feast-data/credit_scoring_local/feature_repo/permissions.py", namespace, feastDeploymentName) - } - - // Create notebook with all setup steps - // Pass feastProject parameter to set the opendatahub.io/feast-config annotation - utils.CreateNotebookTest(namespace, configMapName, notebookFile, "test/e2e_rhoai/resources/feature_repo", pvcFile, rolebindingName, notebookPVC, notebookName, testDir, "credit_scoring_local") - - // Verify Feast ConfigMap was created with correct auth type - verifyFeastConfigMap(authEnabled) - - // Monitor notebook execution - utils.MonitorNotebookTest(namespace, notebookName) - } - - BeforeAll(func() { - By(fmt.Sprintf("Creating test namespace: %s", namespace)) - Expect(utils.CreateNamespace(namespace, testDir)).To(Succeed()) - fmt.Printf("Namespace %s created successfully\n", namespace) - - By("Applying Feast infra manifests and verifying setup") - utils.ApplyFeastInfraManifestsAndVerify(namespace, testDir) - }) - - AfterAll(func() { - By(fmt.Sprintf("Deleting test namespace: %s", namespace)) - Expect(utils.DeleteNamespace(namespace, testDir)).To(Succeed()) - fmt.Printf("Namespace %s deleted successfully\n", namespace) - }) - - Context("Feast Workbench Integration Tests - Without Auth", func() { - BeforeEach(func() { - By("Applying and validating the credit-scoring FeatureStore CR without auth") - utils.ApplyFeastYamlAndVerify(namespace, testDir, feastDeploymentName, feastCRName, "test/testdata/feast_integration_test_crs/feast.yaml") - - By("Verify Feature Store CR is in Ready state") - utils.ValidateFeatureStoreCRStatus(namespace, feastCRName) - - By("Running `feast apply` and `feast materialize-incremental` to validate registry definitions") - utils.VerifyApplyFeatureStoreDefinitions(namespace, feastCRName, feastDeploymentName) - }) - - It("Should create and run a FeastWorkbenchIntegrationWithoutAuth scenario successfully", func() { - runFeastWorkbenchIntegration(false) - }) - }) - - Context("Feast Workbench Integration Tests - With Auth", func() { - BeforeEach(func() { - By("Applying and validating the credit-scoring FeatureStore CR (with auth)") - utils.ApplyFeastYamlAndVerify(namespace, testDir, feastDeploymentName, feastCRName, "test/e2e_rhoai/resources/feast_kube_auth.yaml") - - By("Verify Feature Store CR is in Ready state") - utils.ValidateFeatureStoreCRStatus(namespace, feastCRName) - - By("Running `feast apply` and `feast materialize-incremental` to validate registry definitions") - utils.VerifyApplyFeatureStoreDefinitions(namespace, feastCRName, feastDeploymentName) - }) - - It("Should create and run a FeastWorkbenchIntegrationWithAuth scenario successfully", func() { - runFeastWorkbenchIntegration(true) - }) - }) -}) diff --git a/infra/feast-operator/test/e2e_rhoai/feast_wb_milvus_test.go b/infra/feast-operator/test/e2e_rhoai/feast_wb_milvus_test.go deleted file mode 100644 index b4e1d37b827..00000000000 --- a/infra/feast-operator/test/e2e_rhoai/feast_wb_milvus_test.go +++ /dev/null @@ -1,65 +0,0 @@ -/* -Copyright 2025 Feast Community. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package e2erhoai provides end-to-end (E2E) test coverage for Feast integration with -// Red Hat OpenShift AI (RHOAI) environments. This specific test validates the functionality -// of executing a Feast Jupyter notebook within a fully configured OpenShift namespace -package e2erhoai - -import ( - "fmt" - - utils "github.com/feast-dev/feast/infra/feast-operator/test/utils" - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" -) - -var _ = Describe("Feast Jupyter Notebook Testing", Ordered, func() { - const ( - namespace = "test-ns-feast-wb" - configMapName = "feast-wb-cm" - rolebindingName = "rb-feast-test" - notebookFile = "test/e2e_rhoai/resources/feast-wb-milvus-test.ipynb" - pvcFile = "test/e2e_rhoai/resources/pvc.yaml" - notebookPVC = "jupyterhub-nb-kube-3aadmin-pvc" - testDir = "/test/e2e_rhoai" - notebookName = "feast-wb-milvus-test.ipynb" - feastMilvusTest = "TestFeastMilvusNotebook" - ) - - BeforeAll(func() { - By(fmt.Sprintf("Creating test namespace: %s", namespace)) - Expect(utils.CreateNamespace(namespace, testDir)).To(Succeed()) - fmt.Printf("Namespace %s created successfully\n", namespace) - }) - - AfterAll(func() { - By(fmt.Sprintf("Deleting test namespace: %s", namespace)) - Expect(utils.DeleteNamespace(namespace, testDir)).To(Succeed()) - fmt.Printf("Namespace %s deleted successfully\n", namespace) - }) - - Context("Feast Jupyter Notebook Test", func() { - It("Should create and run a "+feastMilvusTest+" successfully", func() { - // Create notebook with all setup steps - // Pass empty string for feastProject to keep annotation empty - utils.CreateNotebookTest(namespace, configMapName, notebookFile, "test/e2e_rhoai/resources/feature_repo", pvcFile, rolebindingName, notebookPVC, notebookName, testDir, "") - - // Monitor notebook execution - utils.MonitorNotebookTest(namespace, notebookName) - }) - }) -}) diff --git a/infra/feast-operator/test/e2e_rhoai/feast_wb_ray_offline_store_test.go b/infra/feast-operator/test/e2e_rhoai/feast_wb_ray_offline_store_test.go deleted file mode 100644 index eb467ad07ff..00000000000 --- a/infra/feast-operator/test/e2e_rhoai/feast_wb_ray_offline_store_test.go +++ /dev/null @@ -1,82 +0,0 @@ -/* -Copyright 2025 Feast Community. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package e2erhoai provides end-to-end (E2E) test coverage for Feast integration with -// Red Hat OpenShift AI (RHOAI) environments. This specific test validates the functionality -// of executing a Feast Jupyter notebook with Ray offline store within a fully configured OpenShift namespace -package e2erhoai - -import ( - "fmt" - "os/exec" - - utils "github.com/feast-dev/feast/infra/feast-operator/test/utils" - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" -) - -var _ = Describe("Feast Jupyter Notebook Testing with Ray Offline Store", Ordered, func() { - const ( - namespace = "test-ns-feast-wb-ray" - configMapName = "feast-wb-ray-cm" - rolebindingName = "rb-feast-ray-test" - notebookFile = "test/e2e_rhoai/resources/feast-wb-ray-test.ipynb" - pvcFile = "test/e2e_rhoai/resources/pvc.yaml" - kueueResourcesFile = "test/e2e_rhoai/resources/kueue_resources_setup.yaml" - notebookPVC = "jupyterhub-nb-kube-3aadmin-pvc" - testDir = "/test/e2e_rhoai" - notebookName = "feast-wb-ray-test.ipynb" - feastRayTest = "TestFeastRayOfflineStoreNotebook" - ) - - BeforeAll(func() { - By(fmt.Sprintf("Creating test namespace: %s", namespace)) - Expect(utils.CreateNamespace(namespace, testDir)).To(Succeed()) - fmt.Printf("Namespace %s created successfully\n", namespace) - - By("Applying Kueue resources setup") - // Apply with namespace flag - cluster-scoped resources (ResourceFlavor, ClusterQueue) will be applied at cluster level, - // and namespace-scoped resources (LocalQueue) will be applied in the specified namespace - cmd := exec.Command("kubectl", "apply", "-f", kueueResourcesFile, "-n", namespace) - output, err := utils.Run(cmd, testDir) - Expect(err).ToNot(HaveOccurred(), fmt.Sprintf("Failed to apply Kueue resources: %v\nOutput: %s", err, output)) - fmt.Printf("Kueue resources applied successfully\n") - }) - - AfterAll(func() { - By("Deleting Kueue resources") - // Delete with namespace flag - will delete namespace-scoped resources from the namespace - // and cluster-scoped resources from the cluster - cmd := exec.Command("kubectl", "delete", "-f", kueueResourcesFile, "-n", namespace, "--ignore-not-found=true") - _, _ = utils.Run(cmd, testDir) - fmt.Printf("Kueue resources cleanup completed\n") - - By(fmt.Sprintf("Deleting test namespace: %s", namespace)) - Expect(utils.DeleteNamespace(namespace, testDir)).To(Succeed()) - fmt.Printf("Namespace %s deleted successfully\n", namespace) - }) - - Context("Feast Jupyter Notebook Test with Ray Offline store", func() { - It("Should create and run a "+feastRayTest+" successfully", func() { - // Create notebook with all setup steps - // Pass empty string for feastProject to keep annotation empty - utils.CreateNotebookTest(namespace, configMapName, notebookFile, "test/e2e_rhoai/resources/feature_repo", pvcFile, rolebindingName, notebookPVC, notebookName, testDir, "") - - // Monitor notebook execution - utils.MonitorNotebookTest(namespace, notebookName) - }) - }) -}) diff --git a/infra/feast-operator/test/e2e_rhoai/resources/custom-nb.yaml b/infra/feast-operator/test/e2e_rhoai/resources/custom-nb.yaml deleted file mode 100644 index 6dd9304e4b9..00000000000 --- a/infra/feast-operator/test/e2e_rhoai/resources/custom-nb.yaml +++ /dev/null @@ -1,92 +0,0 @@ -# This template maybe used to spin up a custom notebook image -# i.e.: sed s/{{.IngressDomain}}/$(oc get ingresses.config/cluster -o jsonpath={.spec.domain})/g tests/resources/custom-nb.template | oc apply -f - -# resources generated: -# pod/jupyter-nb-kube-3aadmin-0 -# service/jupyter-nb-kube-3aadmin -# route.route.openshift.io/jupyter-nb-kube-3aadmin (jupyter-nb-kube-3aadmin-opendatahub.apps.tedbig412.cp.fyre.ibm.com) -# service/jupyter-nb-kube-3aadmin-tls -apiVersion: kubeflow.org/v1 -kind: Notebook -metadata: - annotations: - notebooks.opendatahub.io/inject-auth: "true" - notebooks.opendatahub.io/last-size-selection: Small - opendatahub.io/link: https://jupyter-nb-kube-3aadmin-{{.Namespace}}.{{.IngressDomain}}/notebook/{{.Namespace}}/jupyter-nb-kube-3aadmin - opendatahub.io/username: {{.Username}} - opendatahub.io/feast-config: {{.FeastProject}} - generation: 1 - labels: - app: jupyter-nb-kube-3aadmin - opendatahub.io/dashboard: "true" - opendatahub.io/odh-managed: "true" - opendatahub.io/user: {{.Username}} - opendatahub.io/feast-integration: 'true' - name: jupyter-nb-kube-3aadmin - namespace: {{.Namespace}} -spec: - template: - spec: - affinity: - nodeAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - preference: - matchExpressions: - - key: nvidia.com/gpu.present - operator: NotIn - values: - - "true" - weight: 1 - containers: - - env: - - name: NOTEBOOK_ARGS - value: |- - --ServerApp.port=8888 - --ServerApp.token='' - --ServerApp.password='' - --ServerApp.base_url=/notebook/test-feast-wb/jupyter-nb-kube-3aadmin - --ServerApp.quit_button=False - --ServerApp.tornado_settings={"user":"{{.Username}}","hub_host":"https://odh-dashboard-{{.OpenDataHubNamespace}}.{{.IngressDomain}}","hub_prefix":"/notebookController/{{.Username}}"} - - name: JUPYTER_IMAGE - value: {{.NotebookImage}} - - name: JUPYTER_NOTEBOOK_PORT - value: "8888" - - name: PIP_INDEX_URL - value: {{.PipIndexUrl}} - - name: PIP_TRUSTED_HOST - value: {{.PipTrustedHost}} - - name: FEAST_VERSION - value: {{.FeastVerison}} - - name: OPENAI_API_KEY - value: {{.OpenAIAPIKey}} - - name: NAMESPACE - value: {{.Namespace}} - image: {{.NotebookImage}} - command: {{.Command}} - imagePullPolicy: Always - name: jupyter-nb-kube-3aadmin - ports: - - containerPort: 8888 - name: notebook-port - protocol: TCP - resources: - limits: - cpu: "2" - memory: 3Gi - requests: - cpu: "1" - memory: 3Gi - volumeMounts: - - mountPath: /opt/app-root/src - name: jupyterhub-nb-kube-3aadmin-pvc - - mountPath: /opt/app-root/notebooks - name: {{.NotebookConfigMapName}} - workingDir: /opt/app-root/src - enableServiceLinks: false - serviceAccountName: default - volumes: - - name: jupyterhub-nb-kube-3aadmin-pvc - persistentVolumeClaim: - claimName: {{.NotebookPVC}} - - name: {{.NotebookConfigMapName}} - configMap: - name: {{.NotebookConfigMapName}} diff --git a/infra/feast-operator/test/e2e_rhoai/resources/feast-wb-connection-credit-scoring.ipynb b/infra/feast-operator/test/e2e_rhoai/resources/feast-wb-connection-credit-scoring.ipynb deleted file mode 100755 index 39e1f9c6e37..00000000000 --- a/infra/feast-operator/test/e2e_rhoai/resources/feast-wb-connection-credit-scoring.ipynb +++ /dev/null @@ -1,416 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "import feast\n", - "\n", - "actual_version = feast.__version__\n", - "assert actual_version == os.environ.get(\"FEAST_VERSION\"), (\n", - " f\"❌ Feast version mismatch. Expected: {os.environ.get('FEAST_VERSION')}, Found: {actual_version}\"\n", - ")\n", - "print(f\"✅ Found Expected Feast version: {actual_version} in workbench\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# --- Configuration Variables ---\n", - "import os \n", - "\n", - "# Fetch token and server directly from oc CLI\n", - "import subprocess\n", - "\n", - "def oc(cmd):\n", - " return subprocess.check_output(cmd, shell=True).decode(\"utf-8\").strip()\n", - "\n", - "token = oc(\"oc whoami -t\")\n", - "server = oc(\"oc whoami --show-server\")\n", - "namespace = os.environ.get(\"NAMESPACE\")\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "!oc login --token=$token --server=$server" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Add user permission to namespace\n", - "!oc adm policy add-role-to-user admin $(oc whoami) -n $namespace" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "\n", - "namespace = os.environ.get(\"NAMESPACE\") # read namespace from env\n", - "if not namespace:\n", - " raise ValueError(\"NAMESPACE environment variable is not set\")\n", - "\n", - "yaml_content = os.popen(\n", - " f\"oc get configmap feast-credit-scoring-client -n {namespace} \"\n", - " \"-o jsonpath='{.data.feature_store\\\\.yaml}' | sed 's/\\\\\\\\n/\\\\n/g'\"\n", - ").read()\n", - "\n", - "# Save the configmap data into an environment variable (if needed)\n", - "os.environ[\"CONFIGMAP_DATA\"] = yaml_content" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from feast import FeatureStore\n", - "fs_credit_scoring_local = FeatureStore(fs_yaml_file='/opt/app-root/src/feast-config/credit_scoring_local')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "project_name = \"credit_scoring_local\"\n", - "project = fs_credit_scoring_local.get_project(project_name)\n", - "\n", - "# 1. Assert object returned\n", - "assert project is not None, f\"❌ get_project('{project_name}') returned None\"\n", - "\n", - "# 2. Extract project name (works for dict or Feast object)\n", - "if isinstance(project, dict):\n", - " returned_name = project.get(\"spec\", {}).get(\"name\")\n", - "else:\n", - " # Feast Project object\n", - " returned_name = getattr(project, \"name\", None)\n", - " if not returned_name and hasattr(project, \"spec\") and hasattr(project.spec, \"name\"):\n", - " returned_name = project.spec.name\n", - "\n", - "# 3. Assert that name exists\n", - "assert returned_name, f\"❌ Returned project does not contain a valid name: {project}\"\n", - "\n", - "print(\"• Project Name Returned:\", returned_name)\n", - "\n", - "# 4. Assert the name matches expected\n", - "assert returned_name == project_name, (\n", - " f\"❌ Expected project '{project_name}', but got '{returned_name}'\"\n", - ")\n", - "\n", - "print(f\"\\n✓ get_project('{project_name}') validation passed!\")\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "feast_list_functions = [\n", - " \"list_projects\",\n", - " \"list_entities\",\n", - " \"list_feature_views\",\n", - " \"list_all_feature_views\",\n", - " \"list_batch_feature_views\",\n", - " \"list_on_demand_feature_views\",\n", - "]\n", - "\n", - "# validates feast list methods returns data and method type\n", - "def validate_list_method(fs_obj, method_name):\n", - " assert hasattr(fs_obj, method_name), f\"Method not found: {method_name}\"\n", - "\n", - " method = getattr(fs_obj, method_name)\n", - " result = method()\n", - "\n", - " assert isinstance(result, list), (\n", - " f\"{method_name}() must return a list, got {type(result)}\"\n", - " )\n", - " assert len(result) > 0, (\n", - " f\"{method_name}() returned an empty list — expected data\"\n", - " )\n", - "\n", - " print(f\"✓ {method_name}() returned {len(result)} items\")\n", - "\n", - "for m in feast_list_functions:\n", - " validate_list_method(fs_credit_scoring_local, m)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "feast_list_functions = [\n", - " \"list_feature_services\",\n", - " # \"list_permissions\",\n", - " \"list_saved_datasets\",\n", - "]\n", - "\n", - "# validates feast methods exists and type is valid\n", - "def validate_list_func(fs_obj, method_name):\n", - " assert hasattr(fs_obj, method_name), f\"Method not found: {method_name}\"\n", - "\n", - " method = getattr(fs_obj, method_name)\n", - "\n", - " result = method()\n", - "\n", - " assert isinstance(result, list), (\n", - " f\"{method_name}() must return a list, got {type(result)}\"\n", - " )\n", - "\n", - "for m in feast_list_functions:\n", - " validate_list_func(fs_credit_scoring_local, m)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# validate_list_data_sources for with and without permissions \n", - "\n", - "import os\n", - "from feast.errors import FeastPermissionError\n", - "\n", - "def validate_list_data_sources(fs_obj):\n", - " \"\"\"\n", - " Validates list_data_sources() with special handling for Kubernetes auth mode.\n", - " If CONFIGMAP_DATA indicates auth=kubernetes, expect FeastPermissionError.\n", - " Otherwise validate output type normally.\n", - " \"\"\"\n", - " auth_mode = os.getenv(\"CONFIGMAP_DATA\")\n", - "\n", - " # Case 1: Kubernetes auth → expect permission error\n", - " if \"kubernetes\" in auth_mode.lower():\n", - " try:\n", - " fs_obj.list_data_sources()\n", - " raise AssertionError(\n", - " \"Expected FeastPermissionError due to Kubernetes auth, but the call succeeded.\"\n", - " )\n", - " except FeastPermissionError as e:\n", - " # Correct, this is expected\n", - " return\n", - " except Exception as e:\n", - " raise AssertionError(\n", - " f\"Expected FeastPermissionError, but got different exception: {type(e)} - {e}\"\n", - " )\n", - "\n", - " # Case 2: Non-Kubernetes auth → normal path\n", - " assert hasattr(fs_obj, \"list_data_sources\"), \"Method not found: list_data_sources\"\n", - " result = fs_obj.list_data_sources()\n", - " assert isinstance(result, list), (\n", - " f\"list_data_sources() must return a list, got {type(result)}\"\n", - " )\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "entity = fs_credit_scoring_local.get_entity(\"dob_ssn\")\n", - "\n", - "assert entity is not None, \"❌ Entity 'dob_ssn' not found!\"\n", - "assert entity.name == \"dob_ssn\", f\"❌ Entity name mismatch: {entity.name}\"\n", - "\n", - "print(\"✓ Entity validation successful!\\n\", entity.name)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "fv = fs_credit_scoring_local.get_feature_view(\"credit_history\")\n", - "\n", - "assert fv is not None, \"❌ FeatureView 'credit_history' not found!\"\n", - "assert fv.name == \"credit_history\", f\"❌ Name mismatch: {fv.name}\"\n", - "\n", - "print(\"• FeatureView : validation successful!\", fv.name)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "from feast.errors import FeastPermissionError\n", - "\n", - "def validate_get_data_source(fs_obj, name: str):\n", - " auth_mode = os.getenv(\"CONFIGMAP_DATA\", \"\")\n", - "\n", - " print(\"📌 CONFIGMAP_DATA:\", auth_mode)\n", - "\n", - " # If Kubernetes auth is enabled → expect permission error\n", - " if \"auth\" in \"kubernetes\" in auth_mode.lower():\n", - " print(f\"🔒 Kubernetes auth detected, expecting permission error for get_data_source('{name}')\")\n", - "\n", - " try:\n", - " fs_obj.get_data_source(name)\n", - " raise AssertionError(\n", - " f\"❌ Expected FeastPermissionError when accessing data source '{name}', but call succeeded\"\n", - " )\n", - "\n", - " except FeastPermissionError as e:\n", - " print(f\"✅ Correctly blocked with FeastPermissionError: {e}\")\n", - " return\n", - "\n", - " except Exception as e:\n", - " raise AssertionError(\n", - " f\"❌ Expected FeastPermissionError but got {type(e)}: {e}\"\n", - " )\n", - "\n", - " # Otherwise → normal validation\n", - " print(f\"🔍 Fetching data source '{name}'...\")\n", - "\n", - " ds = fs_obj.get_data_source(name)\n", - "\n", - " print(\"\\n📌 Data Source Object:\")\n", - " print(ds)\n", - "\n", - " assert ds.name == name, (\n", - " f\"❌ Expected name '{name}', got '{ds.name}'\"\n", - " )\n", - "\n", - " print(f\"✅ Data source '{name}' exists and is correctly configured.\")\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "feast_features = [\n", - " \"zipcode_features:city\",\n", - " \"zipcode_features:state\",\n", - "]\n", - "\n", - "entity_rows = [{\n", - " \"zipcode\": 1463,\n", - " \"dob_ssn\": \"19530219_5179\"\n", - "}]\n", - "\n", - "response = fs_credit_scoring_local.get_online_features(\n", - " features=feast_features,\n", - " entity_rows=entity_rows,\n", - ").to_dict()\n", - "\n", - "print(\"Actual response:\", response)\n", - "\n", - "expected = {\n", - " 'zipcode': [1463],\n", - " 'dob_ssn': ['19530219_5179'],\n", - " 'city': ['PEPPERELL'],\n", - " 'state': ['MA'],\n", - "}\n", - "\n", - "assert response == expected" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "\n", - "# Input entity dataframe\n", - "entity_df = pd.DataFrame({\n", - " \"dob_ssn\": [\"19530219_5179\"],\n", - " \"zipcode\": [1463],\n", - " \"event_timestamp\": [pd.Timestamp(\"2020-04-26 18:01:04\")]\n", - "})\n", - "\n", - "feast_features = [\n", - " \"zipcode_features:city\",\n", - " \"zipcode_features:state\",\n", - " \"credit_history:credit_card_due\",\n", - " \"credit_history:mortgage_due\",\n", - "]\n", - "\n", - "# Retrieve historical features\n", - "historical_df = fs_credit_scoring_local.get_historical_features(\n", - " entity_df=entity_df,\n", - " features=feast_features,\n", - ").to_df()\n", - "\n", - "print(\"Historical DF:\\n\", historical_df)\n", - "\n", - "# Validate dataframe is not empty\n", - "assert not historical_df.empty, \" Historical features dataframe is empty!\"\n", - "\n", - "# 2. Validate required columns exist\n", - "expected_cols = {\n", - " \"dob_ssn\", \"zipcode\", \"event_timestamp\",\n", - " \"city\", \"state\",\n", - " \"credit_card_due\", \"mortgage_due\"\n", - "}\n", - "\n", - "missing_cols = expected_cols - set(historical_df.columns)\n", - "assert not missing_cols, f\" Missing columns in result: {missing_cols}\"\n", - "\n", - "# 3. Validate city/state are non-null (critical features)\n", - "assert pd.notna(historical_df.loc[0, \"city\"]), \" 'city' value is null!\"\n", - "assert pd.notna(historical_df.loc[0, \"state\"]), \" 'state' value is null!\"\n", - "\n", - "# 4. Validate entity matches input\n", - "assert historical_df.loc[0, \"zipcode\"] == 1463, \" zipcode mismatch!\"\n", - "assert historical_df.loc[0, \"dob_ssn\"] == \"19530219_5179\", \"❌ dob_ssn mismatch!\"\n", - "\n", - "print(\"✅ All validations passed successfully!\")\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.5" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/infra/feast-operator/test/e2e_rhoai/resources/feast-wb-milvus-test.ipynb b/infra/feast-operator/test/e2e_rhoai/resources/feast-wb-milvus-test.ipynb deleted file mode 100755 index e2838a4f33e..00000000000 --- a/infra/feast-operator/test/e2e_rhoai/resources/feast-wb-milvus-test.ipynb +++ /dev/null @@ -1,481 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "import feast\n", - "\n", - "actual_version = feast.__version__\n", - "assert actual_version == os.environ.get(\"FEAST_VERSION\"), (\n", - " f\"❌ Feast version mismatch. Expected: {os.environ.get('FEAST_VERSION')}, Found: {actual_version}\"\n", - ")\n", - "print(f\"✅ Successfully installed Feast version: {actual_version}\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%cd /opt/app-root/src/feature_repo\n", - "!ls -l" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "!cat /opt/app-root/src/feature_repo/feature_store.yaml" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "!mkdir -p data\n", - "!wget -O data/city_wikipedia_summaries_with_embeddings.parquet https://raw.githubusercontent.com/opendatahub-io/feast/master/examples/rag/feature_repo/data/city_wikipedia_summaries_with_embeddings.parquet" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd \n", - "\n", - "df = pd.read_parquet(\"./data/city_wikipedia_summaries_with_embeddings.parquet\")\n", - "df['vector'] = df['vector'].apply(lambda x: x.tolist())\n", - "embedding_length = len(df['vector'][0])\n", - "assert embedding_length == 384, f\"❌ Expected vector length 384, but got {embedding_length}\"\n", - "print(f'embedding length = {embedding_length}')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from IPython.display import display\n", - "\n", - "display(df.head())" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "!pip install -q pymilvus[milvus_lite] transformers torch" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import subprocess\n", - "\n", - "# Run `feast apply` and capture output\n", - "result = subprocess.run([\"feast\", \"apply\"], capture_output=True, text=True)\n", - "\n", - "# Combine stdout and stderr in case important info is in either\n", - "output = result.stdout + result.stderr\n", - "\n", - "# Print full output for debugging (optional)\n", - "print(output)\n", - "\n", - "# Expected substrings to validate\n", - "expected_messages = [\n", - " \"Applying changes for project rag\",\n", - " \"Connecting to Milvus in local mode\",\n", - " \"Deploying infrastructure for city_embeddings\"\n", - "]\n", - "\n", - "# Validate all expected messages are in output\n", - "for msg in expected_messages:\n", - " assert msg in output, f\"❌ Expected message not found: '{msg}'\"\n", - "\n", - "print(\"✅ All expected messages were found in the output.\")\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from datetime import datetime\n", - "from feast import FeatureStore\n", - "\n", - "store = FeatureStore(repo_path=\".\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import io\n", - "import sys\n", - "\n", - "# Capture stdout\n", - "captured_output = io.StringIO()\n", - "sys_stdout_backup = sys.stdout\n", - "sys.stdout = captured_output\n", - "\n", - "# Call the function\n", - "store.write_to_online_store(feature_view_name='city_embeddings', df=df)\n", - "\n", - "# Restore stdout\n", - "sys.stdout = sys_stdout_backup\n", - "\n", - "# Get the output\n", - "output_str = captured_output.getvalue()\n", - "\n", - "# Expected message\n", - "expected_msg = \"Connecting to Milvus in local mode using data/online_store.db\"\n", - "\n", - "# Validate\n", - "assert expected_msg in output_str, f\"❌ Expected message not found.\\nExpected: {expected_msg}\\nActual Output:\\n{output_str}\"\n", - "\n", - "print(\"✅ Output message validated successfully.\")\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# List batch feature views\n", - "batch_fvs = store.list_batch_feature_views()\n", - "\n", - "# Print the number of batch feature views\n", - "print(\"Number of batch feature views:\", len(batch_fvs))\n", - "\n", - "# Assert that the result is an integer and non-negative\n", - "assert isinstance(len(batch_fvs), int), \"Result is not an integer\"\n", - "assert len(batch_fvs) >= 0, \"Feature view count is negative\"\n", - "\n", - "print(\"Feature views listed correctly ✅\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from feast import FeatureStore\n", - "\n", - "# Initialize store (if not already)\n", - "store = FeatureStore(repo_path=\".\") # Adjust path if necessary\n", - "\n", - "# Retrieve the feature view\n", - "fv = store.get_feature_view(\"city_embeddings\")\n", - "\n", - "# Assert name\n", - "assert fv.name == \"city_embeddings\", \"Feature view name mismatch\"\n", - "\n", - "# Assert entities\n", - "assert fv.entities == [\"item_id\"], f\"Expected entities ['item_id'], got {fv.entities}\"\n", - "\n", - "# Assert feature names and vector index settings\n", - "feature_names = [f.name for f in fv.features]\n", - "assert \"vector\" in feature_names, \"Missing 'vector' feature\"\n", - "assert \"state\" in feature_names, \"Missing 'state' feature\"\n", - "assert \"sentence_chunks\" in feature_names, \"Missing 'sentence_chunks' feature\"\n", - "assert \"wiki_summary\" in feature_names, \"Missing 'wiki_summary' feature\"\n", - "\n", - "# Assert 'vector' feature is a vector index with COSINE metric\n", - "vector_feature = next(f for f in fv.features if f.name == \"vector\")\n", - "assert vector_feature.vector_index, \"'vector' feature is not indexed\"\n", - "assert vector_feature.vector_search_metric == \"COSINE\", \"Expected COSINE search metric for 'vector'\"\n", - "\n", - "print(\"All assertions passed ✅\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from feast.entity import Entity\n", - "from feast.types import ValueType\n", - "entity = Entity(\n", - " name=\"item_id1\",\n", - " value_type=ValueType.INT64,\n", - " description=\"test id\",\n", - " tags={\"team\": \"feast\"},\n", - ")\n", - "store.apply(entity)\n", - "assert any(e.name == \"item_id1\" for e in store.list_entities())\n", - "print(\"Entity added ✅\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "entity_to_delete = store.get_entity(\"item_id1\")\n", - "\n", - "store.apply(\n", - " objects=[],\n", - " objects_to_delete=[entity_to_delete],\n", - " partial=False\n", - ")\n", - "\n", - "# Validation after deletion\n", - "assert not any(e.name == \"item_id1\" for e in store.list_entities())\n", - "print(\"Entity deleted ✅\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# List batch feature views\n", - "batch_fvs = store.list_batch_feature_views()\n", - "assert len(batch_fvs) == 1\n", - "\n", - "# Print count\n", - "print(f\"Found {len(batch_fvs)} batch feature view(s) ✅\")\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "pymilvus_client = store._provider._online_store._connect(store.config)\n", - "COLLECTION_NAME = pymilvus_client.list_collections()[0]\n", - "\n", - "milvus_query_result = pymilvus_client.query(\n", - " collection_name=COLLECTION_NAME,\n", - " filter=\"item_id == '0'\",\n", - ")\n", - "pd.DataFrame(milvus_query_result[0]).head()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import torch\n", - "import torch.nn.functional as F\n", - "from feast import FeatureStore\n", - "from pymilvus import MilvusClient, DataType, FieldSchema\n", - "from transformers import AutoTokenizer, AutoModel\n", - "from example_repo import city_embeddings_feature_view, item\n", - "\n", - "TOKENIZER = \"sentence-transformers/all-MiniLM-L6-v2\"\n", - "MODEL = \"sentence-transformers/all-MiniLM-L6-v2\"\n", - "\n", - "def mean_pooling(model_output, attention_mask):\n", - " token_embeddings = model_output[\n", - " 0\n", - " ] # First element of model_output contains all token embeddings\n", - " input_mask_expanded = (\n", - " attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()\n", - " )\n", - " return torch.sum(token_embeddings * input_mask_expanded, 1) / torch.clamp(\n", - " input_mask_expanded.sum(1), min=1e-9\n", - " )\n", - "\n", - "def run_model(sentences, tokenizer, model):\n", - " encoded_input = tokenizer(\n", - " sentences, padding=True, truncation=True, return_tensors=\"pt\"\n", - " )\n", - " # Compute token embeddings\n", - " with torch.no_grad():\n", - " model_output = model(**encoded_input)\n", - "\n", - " sentence_embeddings = mean_pooling(model_output, encoded_input[\"attention_mask\"])\n", - " sentence_embeddings = F.normalize(sentence_embeddings, p=2, dim=1)\n", - " return sentence_embeddings" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "question = \"Which city has the largest population in New York?\"\n", - "\n", - "tokenizer = AutoTokenizer.from_pretrained(TOKENIZER)\n", - "model = AutoModel.from_pretrained(MODEL)\n", - "query_embedding = run_model(question, tokenizer, model)\n", - "query = query_embedding.detach().cpu().numpy().tolist()[0]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from IPython.display import display\n", - "\n", - "# Retrieve top k documents\n", - "context_data = store.retrieve_online_documents_v2(\n", - " features=[\n", - " \"city_embeddings:vector\",\n", - " \"city_embeddings:item_id\",\n", - " \"city_embeddings:state\",\n", - " \"city_embeddings:sentence_chunks\",\n", - " \"city_embeddings:wiki_summary\",\n", - " ],\n", - " query=query,\n", - " top_k=3,\n", - " distance_metric='COSINE',\n", - ").to_df()\n", - "display(context_data)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def format_documents(context_df):\n", - " output_context = \"\"\n", - " unique_documents = context_df.drop_duplicates().apply(\n", - " lambda x: \"City & State = {\" + x['state'] +\"}\\nSummary = {\" + x['wiki_summary'].strip()+\"}\",\n", - " axis=1,\n", - " )\n", - " for i, document_text in enumerate(unique_documents):\n", - " output_context+= f\"****START DOCUMENT {i}****\\n{document_text.strip()}\\n****END DOCUMENT {i}****\"\n", - " return output_context" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "RAG_CONTEXT = format_documents(context_data[['state', 'wiki_summary']])\n", - "print(RAG_CONTEXT)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "FULL_PROMPT = f\"\"\"\n", - "You are an assistant for answering questions about states. You will be provided documentation from Wikipedia. Provide a conversational answer.\n", - "If you don't know the answer, just say \"I do not know.\" Don't make up an answer.\n", - "\n", - "Here are document(s) you should use when answer the users question:\n", - "{RAG_CONTEXT}\n", - "\"\"\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "!pip install openai" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "from openai import OpenAI\n", - "\n", - "client = OpenAI(\n", - " api_key=os.environ.get(\"OPENAI_API_KEY\"),\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "response = client.chat.completions.create(\n", - " model=\"gpt-4o-mini\",\n", - " messages=[\n", - " {\"role\": \"system\", \"content\": FULL_PROMPT},\n", - " {\"role\": \"user\", \"content\": question}\n", - " ],\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# The expected output\n", - "expected_output = (\n", - " \"New York City\"\n", - ")\n", - "\n", - "# Actual output from response\n", - "actual_output = '\\n'.join([c.message.content.strip() for c in response.choices])\n", - "\n", - "# Validate\n", - "assert expected_output in actual_output, f\"❌ Output mismatch:\\nExpected: {expected_output}\\nActual: {actual_output}\"\n", - "\n", - "print(\"✅ Output matches expected response.\")" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.5" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/infra/feast-operator/test/e2e_rhoai/resources/feast-wb-ray-test.ipynb b/infra/feast-operator/test/e2e_rhoai/resources/feast-wb-ray-test.ipynb deleted file mode 100644 index 3b91bcccd8e..00000000000 --- a/infra/feast-operator/test/e2e_rhoai/resources/feast-wb-ray-test.ipynb +++ /dev/null @@ -1,516 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# --- Configuration Variables ---\n", - "import os \n", - "\n", - "# Namespace where your resources exist\n", - "namespace = os.environ.get(\"NAMESPACE\")\n", - "\n", - "fsconfigmap = \"cm-fs-data\"\n", - "\n", - "# Fetch token and server directly from oc CLI\n", - "import subprocess\n", - "\n", - "def oc(cmd):\n", - " return subprocess.check_output(cmd, shell=True).decode(\"utf-8\").strip()\n", - "\n", - "token = oc(\"oc whoami -t\")\n", - "server = oc(\"oc whoami --show-server\")\n", - "\n", - "os.environ[\"CLUSTER_TOKEN\"] = token\n", - "os.environ[\"CLUSTER_SERVER\"] = server\n", - "\n", - "\n", - "# RayCluster name\n", - "raycluster = \"feastraytest\"\n", - "os.environ[\"RAY_CLUSTER\"] = raycluster\n", - "\n", - "# Show configured values\n", - "print(\"Configuration Variables:\")\n", - "print(f\" Namespace: {namespace}\")\n", - "print(f\" Server: {server}\")\n", - "print(f\" Token: {'*' * 20}\") # hide actual token\n", - "print(f\" Ray Cluster: {raycluster}\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "! git clone https://github.com/Srihari1192/feast-rag-ray.git" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%cd feast-rag-ray/feature_repo" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "!oc login --token=$token --server=$server" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "!oc create configmap $fsconfigmap --from-file=data/customer_daily_profile.parquet --from-file=data/driver_stats.parquet -n $namespace" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Import pieces from codeflare-sdk\n", - "from codeflare_sdk import Cluster, ClusterConfiguration, TokenAuthentication\n", - "\n", - "# Create authentication with token and server from oc\n", - "auth = TokenAuthentication(\n", - " token=token,\n", - " server=server,\n", - " skip_tls=True\n", - ")\n", - "auth.login()\n", - "print(\"✓ Authentication successful\")\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from kubernetes.client import (\n", - " V1Volume,\n", - " V1ConfigMapVolumeSource,\n", - " V1VolumeMount,\n", - ") \n", - "\n", - "data_volume = V1Volume(\n", - " name=\"data\",\n", - " config_map=V1ConfigMapVolumeSource(name=fsconfigmap)\n", - ")\n", - "\n", - "data_mount = V1VolumeMount(\n", - " name=\"data\",\n", - " mount_path=\"/opt/app-root/src/feast-rag-ray/feature_repo/data\",\n", - " read_only=True\n", - ")\n", - "\n", - "cluster = Cluster(ClusterConfiguration(\n", - " name=raycluster,\n", - " head_cpu_requests=1,\n", - " head_cpu_limits=1,\n", - " head_memory_requests=4,\n", - " head_memory_limits=4,\n", - " head_extended_resource_requests={'nvidia.com/gpu':0}, # For GPU enabled workloads set the head_extended_resource_requests and worker_extended_resource_requests\n", - " worker_extended_resource_requests={'nvidia.com/gpu':0},\n", - " num_workers=2,\n", - " worker_cpu_requests='250m',\n", - " worker_cpu_limits=1,\n", - " worker_memory_requests=4,\n", - " worker_memory_limits=4,\n", - " # image=\"\", # Optional Field \n", - " write_to_file=False, # When enabled Ray Cluster yaml files are written to /HOME/.codeflare/resources\n", - " local_queue=\"fs-user-queue\", # Specify the local queue manually\n", - " # ⭐ Best method: Use secretKeyRef to expose AWS credentials safely\n", - " volumes=[data_volume],\n", - " volume_mounts=[data_mount],\n", - " \n", - "))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "cluster.apply()\n", - "# cluster.wait_ready()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import time\n", - "\n", - "MAX_WAIT = 180 # 3 minutes\n", - "INTERVAL = 5 # check every 5 seconds\n", - "elapsed = 0\n", - "\n", - "print(\"⏳ Waiting up to 3 minutes for RayCluster to be READY...\\n\")\n", - "\n", - "while elapsed < MAX_WAIT:\n", - " details = cluster.details()\n", - " status = details.status.value\n", - "\n", - " print(details)\n", - " print(\"Cluster Status:\", status)\n", - "\n", - " if status == \"ready\":\n", - " print(\"✅ RayCluster is READY!\")\n", - " break\n", - " \n", - " print(f\"⏳ RayCluster is NOT ready yet: {status} ... checking again in {INTERVAL}s\\n\")\n", - " time.sleep(INTERVAL)\n", - " elapsed += INTERVAL\n", - "\n", - "else:\n", - " print(\"❌ Timeout: RayCluster did NOT become READY within 3 minutes.\")\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "! feast apply" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "from pathlib import Path\n", - "from feast import FeatureStore\n", - "\n", - "# Add feature repo to PYTHONPATH\n", - "repo_path = Path(\".\")\n", - "sys.path.append(str(repo_path))\n", - "\n", - "# Initialize Feature Store\n", - "print(\"Initializing Feast with Ray configuration...\")\n", - "store = FeatureStore(repo_path=\".\")\n", - "\n", - "# Assertions: Verify store is initialized correctly\n", - "assert store is not None, \"FeatureStore should be initialized\"\n", - "assert store.config is not None, \"Store config should be available\"\n", - "assert store.config.offline_store is not None, \"Offline store should be configured\"\n", - "\n", - "print(f\"✓ Offline store: {store.config.offline_store.type}\")\n", - "if hasattr(store.config, \"batch_engine\") and store.config.batch_engine:\n", - " print(f\"✓ Compute engine: {store.config.batch_engine.type}\")\n", - " # Assertion: Verify batch engine is configured if present\n", - " assert store.config.batch_engine.type is not None, \"Batch engine type should be set\"\n", - "else:\n", - " print(\"⚠ No compute engine configured\")\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 2. Create Entity DataFrame\n", - "\n", - "Create an entity DataFrame for historical feature retrieval with point-in-time timestamps.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from datetime import datetime, timedelta\n", - "import pandas as pd\n", - "\n", - "# --- Create time window ---\n", - "end_date = datetime.now().replace(microsecond=0, second=0, minute=0)\n", - "start_date = end_date - timedelta(days=2)\n", - "\n", - "\n", - "entity_df = pd.DataFrame(\n", - " {\n", - " \"driver_id\": [1001, 1002, 1003],\n", - " \"customer_id\": [2001, 2002, 2003],\n", - " \"event_timestamp\": [\n", - " pd.Timestamp(end_date - timedelta(hours=24), tz=\"UTC\"),\n", - " pd.Timestamp(end_date - timedelta(hours=12), tz=\"UTC\"),\n", - " pd.Timestamp(end_date - timedelta(hours=6), tz=\"UTC\"),\n", - " ],\n", - " }\n", - ")\n", - "\n", - "# Assertions: Verify entity DataFrame is created correctly\n", - "assert len(entity_df) == 3, f\"Expected 3 rows, got {len(entity_df)}\"\n", - "assert \"driver_id\" in entity_df.columns, \"driver_id column should be present\"\n", - "assert \"customer_id\" in entity_df.columns, \"customer_id column should be present\"\n", - "assert \"event_timestamp\" in entity_df.columns, \"event_timestamp column should be present\"\n", - "assert all(entity_df[\"driver_id\"].isin([1001, 1002, 1003])), \"driver_id values should match expected\"\n", - "assert all(entity_df[\"customer_id\"].isin([2001, 2002, 2003])), \"customer_id values should match expected\"\n", - "assert entity_df[\"event_timestamp\"].notna().all(), \"All event_timestamp values should be non-null\"\n", - "\n", - "print(f\"✓ Created entity DataFrame with {len(entity_df)} rows\")\n", - "print(f\"✓ Time range: {start_date} to {end_date}\")\n", - "print(\"\\nEntity DataFrame:\")\n", - "print(entity_df)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3. Retrieve Historical Features\n", - "\n", - "Retrieve historical features using Ray compute engine for distributed point-in-time joins.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Cell 4: Retrieve Historical Features\n", - "print(\"Retrieving historical features with Ray compute engine...\")\n", - "print(\"(This demonstrates distributed point-in-time joins)\")\n", - "\n", - "try:\n", - " # Get historical features - this uses Ray compute engine for distributed processing\n", - " historical_features = store.get_historical_features(\n", - " entity_df=entity_df,\n", - " features=[\n", - " \"driver_hourly_stats:conv_rate\",\n", - " \"driver_hourly_stats:acc_rate\",\n", - " \"driver_hourly_stats:avg_daily_trips\",\n", - " \"customer_daily_profile:current_balance\",\n", - " \"customer_daily_profile:avg_passenger_count\",\n", - " \"customer_daily_profile:lifetime_trip_count\",\n", - " ],\n", - " )\n", - "\n", - " # Convert to DataFrame - Ray processes this efficiently\n", - " historical_df = historical_features.to_df()\n", - " \n", - " # Assertions: Verify historical features are retrieved correctly\n", - " assert historical_df is not None, \"Historical features DataFrame should not be None\"\n", - " assert len(historical_df) > 0, \"Should retrieve at least one row of historical features\"\n", - " assert \"driver_id\" in historical_df.columns, \"driver_id should be in the result\"\n", - " assert \"customer_id\" in historical_df.columns, \"customer_id should be in the result\"\n", - " \n", - " # Verify expected feature columns are present (some may be None if data doesn't exist)\n", - " expected_features = [\n", - " \"conv_rate\", \"acc_rate\", \"avg_daily_trips\",\n", - " \"current_balance\", \"avg_passenger_count\", \"lifetime_trip_count\"\n", - " ]\n", - " feature_columns = [col for col in historical_df.columns if col in expected_features]\n", - " assert len(feature_columns) > 0, f\"Should have at least one feature column, got: {historical_df.columns.tolist()}\"\n", - " \n", - " print(f\"✓ Retrieved {len(historical_df)} historical feature rows\")\n", - " print(f\"✓ Features: {list(historical_df.columns)}\")\n", - " \n", - " # Display the results\n", - " print(\"\\nHistorical Features DataFrame:\")\n", - " display(historical_df.head(10))\n", - "\n", - "except Exception as e:\n", - " print(f\"⚠ Historical features retrieval failed: {e}\")\n", - " print(\"This might be due to missing Ray dependencies or data\")\n", - " raise\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 4. Test On-Demand Feature Transformations\n", - "\n", - "Demonstrate on-demand feature transformations that are computed at request time.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Cell 5: Test On-Demand Features\n", - "print(\"Testing on-demand feature transformations...\")\n", - "\n", - "try:\n", - " # Get features including on-demand transformations\n", - " features_with_odfv = store.get_historical_features(\n", - " entity_df=entity_df.head(1),\n", - " features=[\n", - " \"driver_hourly_stats:conv_rate\",\n", - " \"driver_hourly_stats:acc_rate\",\n", - " \"driver_hourly_stats:avg_daily_trips\",\n", - " \"driver_activity_v2:conv_rate_plus_acc_rate\",\n", - " \"driver_activity_v2:trips_per_day_normalized\",\n", - " ],\n", - " )\n", - "\n", - " odfv_df = features_with_odfv.to_df()\n", - " \n", - " # Assertions: Verify on-demand features are computed correctly\n", - " assert odfv_df is not None, \"On-demand features DataFrame should not be None\"\n", - " assert len(odfv_df) > 0, \"Should retrieve at least one row with on-demand features\"\n", - " assert \"driver_id\" in odfv_df.columns, \"driver_id should be in the result\"\n", - " \n", - " # Verify on-demand feature columns if they exist\n", - " if \"conv_rate_plus_acc_rate\" in odfv_df.columns:\n", - " # Assertion: Verify the on-demand feature is computed\n", - " assert odfv_df[\"conv_rate_plus_acc_rate\"].notna().any(), \"conv_rate_plus_acc_rate should have non-null values\"\n", - " print(\"✓ On-demand feature 'conv_rate_plus_acc_rate' is computed\")\n", - " \n", - " if \"trips_per_day_normalized\" in odfv_df.columns:\n", - " assert odfv_df[\"trips_per_day_normalized\"].notna().any(), \"trips_per_day_normalized should have non-null values\"\n", - " print(\"✓ On-demand feature 'trips_per_day_normalized' is computed\")\n", - " \n", - " print(f\"✓ Retrieved {len(odfv_df)} rows with on-demand transformations\")\n", - " \n", - " # Display results\n", - " print(\"\\nFeatures with On-Demand Transformations:\")\n", - " display(odfv_df)\n", - " \n", - " # Show specific transformed features\n", - " if \"conv_rate_plus_acc_rate\" in odfv_df.columns:\n", - " print(\"\\nSample with on-demand features:\")\n", - " display(\n", - " odfv_df[[\"driver_id\", \"conv_rate\", \"acc_rate\", \"conv_rate_plus_acc_rate\"]]\n", - " )\n", - "\n", - "except Exception as e:\n", - " print(f\"⚠ On-demand features failed: {e}\")\n", - " raise\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 5. Materialize Features to Online Store\n", - "\n", - "Materialize features to the online store using Ray compute engine for efficient batch processing.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from datetime import timezone\n", - "print(\"Materializing features to online store...\")\n", - "store.materialize(\n", - "\tstart_date=datetime(2025, 1, 1, tzinfo=timezone.utc),\n", - "\tend_date=end_date,\n", - ")\n", - "\n", - "# Minimal output assertion: materialization succeeded if no exception\n", - "assert True, \"Materialization completed successfully\"\n", - "print(\"✓ Initial materialization successful\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 6. Test Online Feature Serving\n", - "\n", - "Retrieve features from the online store for low-latency serving.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Cell 7: Test Online Feature Serving\n", - "print(\"Testing online feature serving...\")\n", - "\n", - "try:\n", - " entity_rows = [\n", - " {\"driver_id\": 1001, \"customer_id\": 2001},\n", - " {\"driver_id\": 1002, \"customer_id\": 2002},\n", - " ]\n", - " \n", - " # Assertion: Verify entity rows are valid\n", - " assert len(entity_rows) == 2, \"Should have 2 entity rows\"\n", - " assert all(\"driver_id\" in row for row in entity_rows), \"All entity rows should have driver_id\"\n", - " assert all(\"customer_id\" in row for row in entity_rows), \"All entity rows should have customer_id\"\n", - " \n", - " online_features = store.get_online_features(\n", - " features=[\n", - " \"driver_hourly_stats:conv_rate\",\n", - " \"driver_hourly_stats:acc_rate\",\n", - " \"customer_daily_profile:current_balance\",\n", - " ],\n", - " entity_rows=entity_rows,\n", - " )\n", - "\n", - " online_df = online_features.to_df()\n", - " \n", - " # Assertions: Verify online features are retrieved correctly\n", - " assert online_df is not None, \"Online features DataFrame should not be None\"\n", - " assert len(online_df) == len(entity_rows), f\"Should retrieve {len(entity_rows)} rows, got {len(online_df)}\"\n", - " assert \"driver_id\" in online_df.columns, \"driver_id should be in the result\"\n", - " assert \"customer_id\" in online_df.columns, \"customer_id should be in the result\"\n", - " \n", - " # Verify expected feature columns are present\n", - " expected_features = [\"conv_rate\", \"acc_rate\", \"current_balance\"]\n", - " feature_columns = [col for col in online_df.columns if col in expected_features]\n", - " assert len(feature_columns) > 0, f\"Should have at least one feature column, got: {online_df.columns.tolist()}\"\n", - " \n", - " # Verify entity IDs match\n", - " assert all(online_df[\"driver_id\"].isin([1001, 1002])), \"driver_id values should match entity rows\"\n", - " assert all(online_df[\"customer_id\"].isin([2001, 2002])), \"customer_id values should match entity rows\"\n", - " \n", - " print(f\"✓ Retrieved {len(online_df)} online feature rows\")\n", - " print(f\"✓ Features retrieved: {feature_columns}\")\n", - " \n", - " print(\"\\nOnline Features DataFrame:\")\n", - " display(online_df)\n", - "\n", - "except Exception as e:\n", - " print(f\"⚠ Online serving failed: {e}\")\n", - " raise\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "cluster.down()" - ] - } - ], - "metadata": { - "language_info": { - "name": "python" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/infra/feast-operator/test/e2e_rhoai/resources/feast_kube_auth.yaml b/infra/feast-operator/test/e2e_rhoai/resources/feast_kube_auth.yaml deleted file mode 100644 index fae126b528a..00000000000 --- a/infra/feast-operator/test/e2e_rhoai/resources/feast_kube_auth.yaml +++ /dev/null @@ -1,74 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: feast-data-stores - namespace: test-ns-feast -stringData: - redis: | - connection_string: redis.test-ns-feast.svc.cluster.local:6379 - sql: | - path: postgresql+psycopg://${POSTGRESQL_USER}:${POSTGRESQL_PASSWORD}@postgres.test-ns-feast.svc.cluster.local:5432/${POSTGRESQL_DATABASE} - cache_ttl_seconds: 60 - sqlalchemy_config_kwargs: - echo: false - pool_pre_ping: true ---- -apiVersion: feast.dev/v1 -kind: FeatureStore -metadata: - name: credit-scoring - namespace: test-ns-feast -spec: - authz: - kubernetes: - roles: [] - feastProject: credit_scoring_local - feastProjectDir: - git: - url: https://github.com/feast-dev/feast-credit-score-local-tutorial - ref: 598a270 - services: - offlineStore: - persistence: - file: - type: duckdb - server: - envFrom: - - secretRef: - name: postgres-secret - env: - - name: MPLCONFIGDIR - value: /tmp - resources: - requests: - cpu: 150m - memory: 128Mi - onlineStore: - persistence: - store: - type: redis - secretRef: - name: feast-data-stores - server: - envFrom: - - secretRef: - name: postgres-secret - env: - - name: MPLCONFIGDIR - value: /tmp - resources: - requests: - cpu: 150m - memory: 128Mi - registry: - local: - persistence: - store: - type: sql - secretRef: - name: feast-data-stores - server: - envFrom: - - secretRef: - name: postgres-secret - restAPI: true diff --git a/infra/feast-operator/test/e2e_rhoai/resources/feature_repo/__init__.py b/infra/feast-operator/test/e2e_rhoai/resources/feature_repo/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/infra/feast-operator/test/e2e_rhoai/resources/feature_repo/example_repo.py b/infra/feast-operator/test/e2e_rhoai/resources/feature_repo/example_repo.py deleted file mode 100755 index 7a37d99d495..00000000000 --- a/infra/feast-operator/test/e2e_rhoai/resources/feature_repo/example_repo.py +++ /dev/null @@ -1,42 +0,0 @@ -from datetime import timedelta - -from feast import ( - FeatureView, - Field, - FileSource, -) -from feast.data_format import ParquetFormat -from feast.types import Float32, Array, String, ValueType -from feast import Entity - -item = Entity( - name="item_id", - description="Item ID", - value_type=ValueType.INT64, -) - -parquet_file_path = "./data/city_wikipedia_summaries_with_embeddings.parquet" - -source = FileSource( - file_format=ParquetFormat(), - path=parquet_file_path, - timestamp_field="event_timestamp", -) - -city_embeddings_feature_view = FeatureView( - name="city_embeddings", - entities=[item], - schema=[ - Field( - name="vector", - dtype=Array(Float32), - vector_index=True, - vector_search_metric="COSINE", - ), - Field(name="state", dtype=String), - Field(name="sentence_chunks", dtype=String), - Field(name="wiki_summary", dtype=String), - ], - source=source, - ttl=timedelta(hours=2), -) diff --git a/infra/feast-operator/test/e2e_rhoai/resources/feature_repo/feature_store.yaml b/infra/feast-operator/test/e2e_rhoai/resources/feature_repo/feature_store.yaml deleted file mode 100755 index f8f9cc293dc..00000000000 --- a/infra/feast-operator/test/e2e_rhoai/resources/feature_repo/feature_store.yaml +++ /dev/null @@ -1,16 +0,0 @@ -project: rag -provider: local -registry: data/registry.db -online_store: - type: milvus - path: data/online_store.db - vector_enabled: true - embedding_dim: 384 - index_type: "FLAT" - metric_type: "COSINE" -offline_store: - type: file -entity_key_serialization_version: 3 -auth: - type: no_auth - diff --git a/infra/feast-operator/test/e2e_rhoai/resources/kueue_resources_setup.yaml b/infra/feast-operator/test/e2e_rhoai/resources/kueue_resources_setup.yaml deleted file mode 100644 index ebcac54f4a0..00000000000 --- a/infra/feast-operator/test/e2e_rhoai/resources/kueue_resources_setup.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: kueue.x-k8s.io/v1beta1 -kind: ResourceFlavor -metadata: - name: "fs-resource-flavor" ---- -apiVersion: kueue.x-k8s.io/v1beta1 -kind: ClusterQueue -metadata: - name: "fs-cluster-queue" -spec: - namespaceSelector: {} # match all. - resourceGroups: - - coveredResources: ["cpu", "memory","nvidia.com/gpu"] - flavors: - - name: "fs-resource-flavor" - resources: - - name: "cpu" - nominalQuota: 9 - - name: "memory" - nominalQuota: 36Gi - - name: "nvidia.com/gpu" - nominalQuota: 0 ---- -apiVersion: kueue.x-k8s.io/v1beta1 -kind: LocalQueue -metadata: - name: "fs-user-queue" - annotations: - "kueue.x-k8s.io/default-queue": "true" -spec: - clusterQueue: "fs-cluster-queue" diff --git a/infra/feast-operator/test/e2e_rhoai/resources/permissions.py b/infra/feast-operator/test/e2e_rhoai/resources/permissions.py deleted file mode 100644 index 7b48a7b4c56..00000000000 --- a/infra/feast-operator/test/e2e_rhoai/resources/permissions.py +++ /dev/null @@ -1,19 +0,0 @@ -from feast.feast_object import ALL_FEATURE_VIEW_TYPES -from feast.permissions.permission import Permission -from feast.permissions.action import READ, AuthzedAction -from feast.permissions.policy import NamespaceBasedPolicy -from feast.project import Project -from feast.entity import Entity -from feast.feature_service import FeatureService -from feast.saved_dataset import SavedDataset - -perm_namespace = ["test-ns-feast"] - -WITHOUT_DATA_SOURCE = [Project, Entity, FeatureService, SavedDataset] + ALL_FEATURE_VIEW_TYPES - -test_perm = Permission( - name="feast-auth", - types=WITHOUT_DATA_SOURCE, - policy=NamespaceBasedPolicy(namespaces=perm_namespace), - actions=[AuthzedAction.DESCRIBE] + READ -) diff --git a/infra/feast-operator/test/e2e_rhoai/resources/pvc.yaml b/infra/feast-operator/test/e2e_rhoai/resources/pvc.yaml deleted file mode 100644 index a9e8c1be299..00000000000 --- a/infra/feast-operator/test/e2e_rhoai/resources/pvc.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: jupyterhub-nb-kube-3aadmin-pvc -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi diff --git a/infra/feast-operator/test/utils/notebook_util.go b/infra/feast-operator/test/utils/notebook_util.go deleted file mode 100644 index 8652b481889..00000000000 --- a/infra/feast-operator/test/utils/notebook_util.go +++ /dev/null @@ -1,387 +0,0 @@ -package utils - -import ( - "bytes" - "fmt" - "os" - "os/exec" - "strings" - "text/template" - "time" - - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" -) - -type NotebookTemplateParams struct { - Namespace string - IngressDomain string - OpenDataHubNamespace string - NotebookImage string - NotebookConfigMapName string - NotebookPVC string - Username string - OC_TOKEN string - OC_SERVER string - NotebookFile string - Command string - PipIndexUrl string - PipTrustedHost string - FeastVerison string - OpenAIAPIKey string - FeastProject string -} - -// CreateNotebook renders a notebook manifest from a template and applies it using kubectl. -func CreateNotebook(params NotebookTemplateParams) error { - content, err := os.ReadFile("test/e2e_rhoai/resources/custom-nb.yaml") - if err != nil { - return fmt.Errorf("failed to read template file: %w", err) - } - - tmpl, err := template.New("notebook").Parse(string(content)) - if err != nil { - return fmt.Errorf("failed to parse template: %w", err) - } - - var rendered bytes.Buffer - if err := tmpl.Execute(&rendered, params); err != nil { - return fmt.Errorf("failed to substitute template: %w", err) - } - - tmpFile, err := os.CreateTemp("", "notebook-*.yaml") - if err != nil { - return fmt.Errorf("failed to create temp file: %w", err) - } - - // Defer cleanup of temp file - defer func() { - if err := os.Remove(tmpFile.Name()); err != nil { - fmt.Printf("warning: failed to remove temp file %s: %v", tmpFile.Name(), err) - } - }() - - if _, err := tmpFile.Write(rendered.Bytes()); err != nil { - return fmt.Errorf("failed to write to temp file: %w", err) - } - - if err := tmpFile.Close(); err != nil { - return fmt.Errorf("failed to close temp file: %w", err) - } - - // fmt.Println("Notebook manifest applied successfully") - cmd := exec.Command("kubectl", "apply", "-f", tmpFile.Name(), "-n", params.Namespace) - output, err := Run(cmd, "/test/e2e_rhoai") - Expect(err).ToNot(HaveOccurred(), fmt.Sprintf( - "Failed to create Notebook %s.\nError: %v\nOutput: %s\n", - tmpFile.Name(), err, output, - )) - fmt.Printf("Notebook %s created successfully\n", tmpFile.Name()) - return nil -} - -// MonitorNotebookPod waits for a notebook pod to reach Running state and verifies execution logs. -func MonitorNotebookPod(namespace, podPrefix string, notebookName string) error { - const successMarker = "Notebook executed successfully" - const failureMarker = "Notebook execution failed" - const pollInterval = 5 * time.Second - var pod *PodInfo - - fmt.Println("🔄 Waiting for notebook pod to reach Running & Ready state...") - - foundRunningReady := false - for i := 0; i < 36; i++ { - var err error - pod, err = getPodByPrefix(namespace, podPrefix) - if err != nil { - fmt.Printf("⏳ Pod not created yet: %v\n", err) - time.Sleep(pollInterval) - continue - } - if pod.Status == "Running" { - fmt.Printf("✅ Pod %s is Running and Ready.\n", pod.Name) - foundRunningReady = true - break - } - fmt.Printf("⏳ Pod %s not ready yet. Phase: %s\n", pod.Name, pod.Status) - time.Sleep(pollInterval) - } - - if !foundRunningReady { - return fmt.Errorf("❌ Pod %s did not reach Running & Ready state within 3 minutes", podPrefix) - } - - // Start monitoring notebook logs - fmt.Printf("⏳ Monitoring Notebook pod %s Logs for Jupyter Notebook %s execution status\n", pod.Name, notebookName) - - for i := 0; i < 60; i++ { - logs, err := getPodLogs(namespace, pod.Name) - if err != nil { - fmt.Printf("⏳ Failed to get logs for pod %s: %v\n", pod.Name, err) - time.Sleep(pollInterval) - continue - } - - if strings.Contains(logs, successMarker) { - Expect(logs).To(ContainSubstring(successMarker)) - fmt.Printf("✅ Jupyter Notebook pod %s executed successfully.\n", pod.Name) - return nil - } - - if strings.Contains(logs, failureMarker) { - fmt.Printf("❌ Notebook pod %s failed: failure marker found.\n", pod.Name) - return fmt.Errorf("Notebook failed in execution. Logs:\n%s", logs) - } - - time.Sleep(pollInterval) - } - - return fmt.Errorf("❌ Timed out waiting for notebook pod %s to complete", podPrefix) -} - -type PodInfo struct { - Name string - Status string -} - -// returns the first pod matching a name prefix in the given namespace. -func getPodByPrefix(namespace, prefix string) (*PodInfo, error) { - cmd := exec.Command( - "kubectl", "get", "pods", "-n", namespace, - "-o", "jsonpath={range .items[*]}{.metadata.name} {.status.phase}{\"\\n\"}{end}", - ) - output, err := Run(cmd, "/test/e2e_rhoai") - if err != nil { - return nil, fmt.Errorf("failed to get pods: %w", err) - } - - lines := strings.Split(strings.TrimSpace(string(output)), "\n") - for _, line := range lines { - parts := strings.Fields(line) - if len(parts) < 2 { - continue - } - name := parts[0] - status := parts[1] - - if strings.HasPrefix(name, prefix) { - return &PodInfo{ - Name: name, - Status: status, - }, nil - } - } - - return nil, fmt.Errorf("no pod found with prefix %q in namespace %q", prefix, namespace) -} - -// retrieves the logs of a specified pod in the given namespace. -func getPodLogs(namespace, podName string) (string, error) { - cmd := exec.Command("kubectl", "logs", "-n", namespace, podName) - var out bytes.Buffer - var stderr bytes.Buffer - cmd.Stdout = &out - cmd.Stderr = &stderr - - err := cmd.Run() - if err != nil { - return "", fmt.Errorf("error getting pod logs: %v - %s", err, stderr.String()) - } - - return out.String(), nil -} - -// returns the OpenShift cluster ingress domain. -func GetIngressDomain(testDir string) string { - cmd := exec.Command("oc", "get", "ingresses.config.openshift.io", "cluster", "-o", "jsonpath={.spec.domain}") - output, _ := Run(cmd, testDir) - return string(output) -} - -// returns the current OpenShift user authentication token. -func GetOCToken(testDir string) string { - cmd := exec.Command("oc", "whoami", "--show-token") - output, _ := Run(cmd, testDir) - return string(output) -} - -// returns the OpenShift API server URL for the current user. -func GetOCServer(testDir string) string { - cmd := exec.Command("oc", "whoami", "--show-server") - output, _ := Run(cmd, testDir) - return string(output) -} - -// returns the OpenShift cluster logged in Username -func GetOCUser(testDir string) string { - cmd := exec.Command("oc", "whoami") - output, _ := Run(cmd, testDir) - return strings.TrimSpace(string(output)) -} - -// SetNamespaceContext sets the kubectl namespace context to the specified namespace -func SetNamespaceContext(namespace, testDir string) error { - cmd := exec.Command("kubectl", "config", "set-context", "--current", "--namespace", namespace) - output, err := Run(cmd, testDir) - if err != nil { - return fmt.Errorf("failed to set namespace context to %s: %w\nOutput: %s", namespace, err, output) - } - return nil -} - -// CreateNotebookConfigMap creates a ConfigMap containing the notebook file and feature repo -func CreateNotebookConfigMap(namespace, configMapName, notebookFile, featureRepoPath, testDir string) error { - cmd := exec.Command("kubectl", "create", "configmap", configMapName, - "--from-file="+notebookFile, - "--from-file="+featureRepoPath) - output, err := Run(cmd, testDir) - if err != nil { - return fmt.Errorf("failed to create ConfigMap %s: %w\nOutput: %s", configMapName, err, output) - } - return nil -} - -// CreateNotebookPVC creates a PersistentVolumeClaim for the notebook -func CreateNotebookPVC(pvcFile, testDir string) error { - cmd := exec.Command("kubectl", "apply", "-f", pvcFile) - _, err := Run(cmd, testDir) - if err != nil { - return fmt.Errorf("failed to create PVC from %s: %w", pvcFile, err) - } - return nil -} - -// CreateNotebookRoleBinding creates a rolebinding for the user in the specified namespace -func CreateNotebookRoleBinding(namespace, rolebindingName, username, testDir string) error { - cmd := exec.Command("kubectl", "create", "rolebinding", rolebindingName, - "-n", namespace, - "--role=admin", - "--user="+username) - _, err := Run(cmd, testDir) - if err != nil { - return fmt.Errorf("failed to create rolebinding %s: %w", rolebindingName, err) - } - return nil -} - -// BuildNotebookCommand builds the command array for executing a notebook with papermill -func BuildNotebookCommand(notebookName, testDir string) []string { - return []string{ - "/bin/sh", - "-c", - fmt.Sprintf( - "pip install papermill && "+ - "mkdir -p /opt/app-root/src/feature_repo && "+ - "cp -rL /opt/app-root/notebooks/* /opt/app-root/src/feature_repo/ && "+ - "oc login --token=%s --server=%s --insecure-skip-tls-verify=true && "+ - "(papermill /opt/app-root/notebooks/%s /opt/app-root/src/output.ipynb --kernel python3 && "+ - "echo '✅ Notebook executed successfully' || "+ - "(echo '❌ Notebook execution failed' && "+ - "cp /opt/app-root/src/output.ipynb /opt/app-root/src/failed_output.ipynb && "+ - "echo '📄 Copied failed notebook to failed_output.ipynb')) && "+ - "jupyter nbconvert --to notebook --stdout /opt/app-root/src/output.ipynb || echo '⚠️ nbconvert failed' && "+ - "sleep 100; exit 0", - GetOCToken(testDir), - GetOCServer(testDir), - notebookName, - ), - } -} - -// GetNotebookParams builds and returns NotebookTemplateParams from environment variables and configuration -// feastProject is optional - if provided, it will be set in the notebook annotation, otherwise it will be empty -func GetNotebookParams(namespace, configMapName, notebookPVC, notebookName, testDir string, feastProject string) NotebookTemplateParams { - username := GetOCUser(testDir) - command := BuildNotebookCommand(notebookName, testDir) - - getEnv := func(key string) string { - val, _ := os.LookupEnv(key) - return val - } - - return NotebookTemplateParams{ - Namespace: namespace, - IngressDomain: GetIngressDomain(testDir), - OpenDataHubNamespace: getEnv("APPLICATIONS_NAMESPACE"), - NotebookImage: getEnv("NOTEBOOK_IMAGE"), - NotebookConfigMapName: configMapName, - NotebookPVC: notebookPVC, - Username: username, - OC_TOKEN: GetOCToken(testDir), - OC_SERVER: GetOCServer(testDir), - NotebookFile: notebookName, - Command: "[\"" + strings.Join(command, "\",\"") + "\"]", - PipIndexUrl: getEnv("PIP_INDEX_URL"), - PipTrustedHost: getEnv("PIP_TRUSTED_HOST"), - FeastVerison: getEnv("FEAST_VERSION"), - OpenAIAPIKey: getEnv("OPENAI_API_KEY"), - FeastProject: feastProject, - } -} - -// SetupNotebookEnvironment performs all the setup steps required for notebook testing -func SetupNotebookEnvironment(namespace, configMapName, notebookFile, featureRepoPath, pvcFile, rolebindingName, testDir string) error { - // Set namespace context - if err := SetNamespaceContext(namespace, testDir); err != nil { - return fmt.Errorf("failed to set namespace context: %w", err) - } - - // Create config map - if err := CreateNotebookConfigMap(namespace, configMapName, notebookFile, featureRepoPath, testDir); err != nil { - return fmt.Errorf("failed to create config map: %w", err) - } - - // Create PVC - if err := CreateNotebookPVC(pvcFile, testDir); err != nil { - return fmt.Errorf("failed to create PVC: %w", err) - } - - // Create rolebinding - username := GetOCUser(testDir) - if err := CreateNotebookRoleBinding(namespace, rolebindingName, username, testDir); err != nil { - return fmt.Errorf("failed to create rolebinding: %w", err) - } - - return nil -} - -// CreateNotebookTest performs all the setup steps and creates a notebook. -// This function handles namespace context, ConfigMap, PVC, rolebinding, and notebook creation. -// feastProject is optional - if provided, it will be set in the notebook annotation, otherwise it will be empty -func CreateNotebookTest(namespace, configMapName, notebookFile, featureRepoPath, pvcFile, rolebindingName, notebookPVC, notebookName, testDir string, feastProject string) { - // Execute common setup steps - By(fmt.Sprintf("Setting namespace context to : %s", namespace)) - Expect(SetNamespaceContext(namespace, testDir)).To(Succeed()) - fmt.Printf("Successfully set namespace context to: %s\n", namespace) - - By(fmt.Sprintf("Creating Config map: %s", configMapName)) - Expect(CreateNotebookConfigMap(namespace, configMapName, notebookFile, featureRepoPath, testDir)).To(Succeed()) - fmt.Printf("ConfigMap %s created successfully\n", configMapName) - - By(fmt.Sprintf("Creating Persistent volume claim: %s", notebookPVC)) - Expect(CreateNotebookPVC(pvcFile, testDir)).To(Succeed()) - fmt.Printf("Persistent Volume Claim %s created successfully\n", notebookPVC) - - By(fmt.Sprintf("Creating rolebinding %s for the user", rolebindingName)) - Expect(CreateNotebookRoleBinding(namespace, rolebindingName, GetOCUser(testDir), testDir)).To(Succeed()) - fmt.Printf("Created rolebinding %s successfully\n", rolebindingName) - - // Build notebook parameters and create notebook - nbParams := GetNotebookParams(namespace, configMapName, notebookPVC, notebookName, testDir, feastProject) - By("Creating Jupyter Notebook") - Expect(CreateNotebook(nbParams)).To(Succeed(), "Failed to create notebook") -} - -// MonitorNotebookTest monitors the notebook execution and verifies completion. -func MonitorNotebookTest(namespace, notebookName string) { - By("Monitoring notebook logs") - Expect(MonitorNotebookPod(namespace, "jupyter-nb-", notebookName)).To(Succeed(), "Notebook execution failed") -} - -// RunNotebookTest performs all the setup steps, creates a notebook, and monitors its execution. -// This function is kept for backward compatibility. For new tests, use CreateNotebookTest and MonitorNotebookTest separately. -// feastProject is optional - if provided, it will be set in the notebook annotation, otherwise it will be empty -func RunNotebookTest(namespace, configMapName, notebookFile, featureRepoPath, pvcFile, rolebindingName, notebookPVC, notebookName, testDir string, feastProject string) { - CreateNotebookTest(namespace, configMapName, notebookFile, featureRepoPath, pvcFile, rolebindingName, notebookPVC, notebookName, testDir, feastProject) - MonitorNotebookTest(namespace, notebookName) -} diff --git a/infra/feast-operator/test/utils/test_util.go b/infra/feast-operator/test/utils/test_util.go index a883efc020d..7b5f0f8d6a0 100644 --- a/infra/feast-operator/test/utils/test_util.go +++ b/infra/feast-operator/test/utils/test_util.go @@ -152,104 +152,6 @@ func checkIfConfigMapExists(namespace, configMapName string) error { return nil } -// ListConfigMaps lists all ConfigMaps in the given namespace -func ListConfigMaps(namespace string) ([]string, error) { - cmd := exec.Command("kubectl", "get", "cm", "-n", namespace, "-o", "jsonpath={range .items[*]}{.metadata.name}{\"\\n\"}{end}") - var out bytes.Buffer - var stderr bytes.Buffer - cmd.Stdout = &out - cmd.Stderr = &stderr - - if err := cmd.Run(); err != nil { - return nil, fmt.Errorf("failed to list config maps in namespace %s. Error: %v. Stderr: %s", - namespace, err, stderr.String()) - } - - configMaps := strings.Split(strings.TrimSpace(out.String()), "\n") - // Filter out empty strings - var result []string - for _, cm := range configMaps { - if cm != "" { - result = append(result, cm) - } - } - return result, nil -} - -// VerifyConfigMapExistsInList checks if a ConfigMap exists in the list of ConfigMaps -func VerifyConfigMapExistsInList(namespace, configMapName string) (bool, error) { - configMaps, err := ListConfigMaps(namespace) - if err != nil { - return false, err - } - - for _, cm := range configMaps { - if cm == configMapName { - return true, nil - } - } - - return false, nil -} - -// VerifyFeastConfigMapExists verifies that a ConfigMap exists and contains the specified key/file -func VerifyFeastConfigMapExists(namespace, configMapName, expectedKey string) error { - // First verify the ConfigMap exists - if err := checkIfConfigMapExists(namespace, configMapName); err != nil { - return fmt.Errorf("config map %s does not exist: %w", configMapName, err) - } - - // Get the ConfigMap data to verify the key exists - cmd := exec.Command("kubectl", "get", "cm", configMapName, "-n", namespace, "-o", "jsonpath={.data."+expectedKey+"}") - var out bytes.Buffer - var stderr bytes.Buffer - cmd.Stdout = &out - cmd.Stderr = &stderr - - if err := cmd.Run(); err != nil { - return fmt.Errorf("failed to get config map data for %s in namespace %s. Error: %v. Stderr: %s", - configMapName, namespace, err, stderr.String()) - } - - configContent := out.String() - if configContent == "" { - return fmt.Errorf("config map %s does not contain key %s", configMapName, expectedKey) - } - - return nil -} - -// VerifyFeastConfigMapContent verifies that a ConfigMap contains the expected feast configuration content -// This assumes the ConfigMap and key already exist (use VerifyFeastConfigMapExists first) -func VerifyFeastConfigMapContent(namespace, configMapName, expectedKey string, expectedContent []string) error { - // Get the ConfigMap data - cmd := exec.Command("kubectl", "get", "cm", configMapName, "-n", namespace, "-o", "jsonpath={.data."+expectedKey+"}") - var out bytes.Buffer - var stderr bytes.Buffer - cmd.Stdout = &out - cmd.Stderr = &stderr - - if err := cmd.Run(); err != nil { - return fmt.Errorf("failed to get config map data for %s in namespace %s. Error: %v. Stderr: %s", - configMapName, namespace, err, stderr.String()) - } - - configContent := out.String() - if configContent == "" { - return fmt.Errorf("config map %s does not contain key %s", configMapName, expectedKey) - } - - // Verify all expected content strings are present - for _, expected := range expectedContent { - if !strings.Contains(configContent, expected) { - return fmt.Errorf("config map %s content does not contain expected string: %s. Content:\n%s", - configMapName, expected, configContent) - } - } - - return nil -} - // validates if a kubernetes service exists using the kubectl CLI. func checkIfKubernetesServiceExists(namespace, serviceName string) error { cmd := exec.Command("kubectl", "get", "service", serviceName, "-n", namespace) @@ -794,77 +696,3 @@ func ApplyFeastYamlAndVerify(namespace string, testDir string, feastDeploymentNa By("Verifying client feature_store.yaml for expected store types") validateFeatureStoreYaml(namespace, feastDeploymentName) } - -// ReplaceNamespaceInYaml reads a YAML file, replaces all existingNamespace with the actual namespace -func ReplaceNamespaceInYamlFilesInPlace(filePaths []string, existingNamespace string, actualNamespace string) error { - for _, filePath := range filePaths { - data, err := os.ReadFile(filePath) - if err != nil { - return fmt.Errorf("failed to read YAML file %s: %w", filePath, err) - } - updated := strings.ReplaceAll(string(data), existingNamespace, actualNamespace) - - err = os.WriteFile(filePath, []byte(updated), 0644) - if err != nil { - return fmt.Errorf("failed to write updated YAML file %s: %w", filePath, err) - } - } - return nil -} - -func ApplyFeastPermissions(fileName string, registryFilePath string, namespace string, podNamePrefix string) { - By("Applying Feast permissions to the Feast registry pod") - - // 1. Get the pod by prefix - By(fmt.Sprintf("Finding pod with prefix %q in namespace %q", podNamePrefix, namespace)) - pod, err := getPodByPrefix(namespace, podNamePrefix) - ExpectWithOffset(1, err).NotTo(HaveOccurred()) - ExpectWithOffset(1, pod).NotTo(BeNil()) - - podName := pod.Name - fmt.Printf("Found pod: %s\n", podName) - - cmd := exec.Command( - "oc", "cp", - fileName, // local source file - fmt.Sprintf("%s/%s:%s", namespace, podName, registryFilePath), // remote destination - "-c", "registry", - ) - - _, err = Run(cmd, "/test/e2e_rhoai") - ExpectWithOffset(1, err).NotTo(HaveOccurred()) - - fmt.Printf("Successfully copied file to pod: %s\n", podName) - - // Run `feast apply` inside the pod to apply updated permissions - By("Running feast apply inside the Feast registry pod") - cmd = exec.Command( - "oc", "exec", podName, - "-n", namespace, - "-c", "registry", - "--", - "bash", "-c", - "cd /feast-data/credit_scoring_local/feature_repo && feast apply", - ) - _, err = Run(cmd, "/test/e2e_rhoai") - ExpectWithOffset(1, err).NotTo(HaveOccurred()) - fmt.Println("Feast permissions apply executed successfully") - - By("Validating that Feast permission has been applied") - - cmd = exec.Command( - "oc", "exec", podName, - "-n", namespace, - "-c", "registry", - "--", - "feast", "permissions", "list", - ) - - output, err := Run(cmd, "/test/e2e_rhoai") - ExpectWithOffset(1, err).NotTo(HaveOccurred()) - - // Change "feast-auth" if your permission name is different - ExpectWithOffset(1, output).To(ContainSubstring("feast-auth"), "Expected permission 'feast-auth' to exist") - - fmt.Println("Verified: Feast permission 'feast-auth' exists") -} From 11122cef17be1180a9c390234d06efdf8b51c938 Mon Sep 17 00:00:00 2001 From: Yassin Nouh <70436855+YassinNouh21@users.noreply.github.com> Date: Sat, 10 Jan 2026 03:21:15 +0200 Subject: [PATCH 18/37] fix: Add get_table_query_string_with_alias() for PostgreSQL subquery aliasing (#5811) --- .../postgres_offline_store/postgres_source.py | 34 +++++ .../postgres_offline_store/test_postgres.py | 135 ++++++++++++++++++ 2 files changed, 169 insertions(+) diff --git a/sdk/python/feast/infra/offline_stores/contrib/postgres_offline_store/postgres_source.py b/sdk/python/feast/infra/offline_stores/contrib/postgres_offline_store/postgres_source.py index 0d3045e4aa7..272b8ad0474 100644 --- a/sdk/python/feast/infra/offline_stores/contrib/postgres_offline_store/postgres_source.py +++ b/sdk/python/feast/infra/offline_stores/contrib/postgres_offline_store/postgres_source.py @@ -145,11 +145,45 @@ def get_table_column_names_and_types( ) def get_table_query_string(self) -> str: + """Returns a string that can be used to reference this table in SQL. + + For query-based sources, returns the query wrapped in parentheses. + + Note: + When using the returned string directly in a FROM clause with PostgreSQL, + you may need to add an alias if this is a query-based source. PostgreSQL + requires all subqueries in FROM clauses to have aliases. Consider using + get_table_query_string_with_alias() for automatic aliasing. + """ if self._postgres_options._table: return f"{self._postgres_options._table}" else: return f"({self._postgres_options._query})" + def get_table_query_string_with_alias(self, alias: str = "subquery") -> str: + """Returns a string for use in FROM clause with alias for PostgreSQL compatibility. + + PostgreSQL requires all subqueries in FROM clauses to have aliases. This method + automatically adds an alias when the source is query-based. + + Args: + alias: The alias to use for query-based sources. Defaults to "subquery". + + Returns: + For table-based sources: the table name (no alias needed). + For query-based sources: "(query) AS alias". + + Example:: + + source = PostgreSQLSource(query="SELECT * FROM my_table", ...) + entity_sql = f"SELECT id, ts FROM {source.get_table_query_string_with_alias()}" + # Results in: "SELECT id, ts FROM (SELECT * FROM my_table) AS subquery" + """ + if self._postgres_options._table: + return f"{self._postgres_options._table}" + else: + return f"({self._postgres_options._query}) AS {alias}" + class PostgreSQLOptions: def __init__( diff --git a/sdk/python/tests/unit/infra/offline_stores/contrib/postgres_offline_store/test_postgres.py b/sdk/python/tests/unit/infra/offline_stores/contrib/postgres_offline_store/test_postgres.py index ce98315eef4..fad837e4c16 100644 --- a/sdk/python/tests/unit/infra/offline_stores/contrib/postgres_offline_store/test_postgres.py +++ b/sdk/python/tests/unit/infra/offline_stores/contrib/postgres_offline_store/test_postgres.py @@ -950,3 +950,138 @@ def test_cli_date_combinations(self): # Should not fail on parameter validation stderr_output = result.stderr.decode() assert "must be provided" not in stderr_output + + +class TestPostgreSQLSourceQueryStringAlias: + """Test suite for get_table_query_string_with_alias() method. + + This addresses GitHub issue #5605: PostgreSQL requires all subqueries + in FROM clauses to have aliases. + """ + + def test_table_source_get_table_query_string(self): + """Test get_table_query_string() with table-based source""" + source = PostgreSQLSource( + name="test_source", + table="my_schema.my_table", + timestamp_field="event_timestamp", + ) + result = source.get_table_query_string() + assert result == "my_schema.my_table" + + def test_query_source_get_table_query_string(self): + """Test get_table_query_string() with query-based source""" + source = PostgreSQLSource( + name="test_source", + query="SELECT * FROM my_table WHERE active = true", + timestamp_field="event_timestamp", + ) + result = source.get_table_query_string() + assert result == "(SELECT * FROM my_table WHERE active = true)" + + def test_table_source_with_alias(self): + """Test get_table_query_string_with_alias() with table-based source returns table without alias""" + source = PostgreSQLSource( + name="test_source", + table="my_schema.my_table", + timestamp_field="event_timestamp", + ) + result = source.get_table_query_string_with_alias() + # Table sources don't need aliases + assert result == "my_schema.my_table" + + def test_query_source_with_default_alias(self): + """Test get_table_query_string_with_alias() with query-based source uses default alias""" + source = PostgreSQLSource( + name="test_source", + query="SELECT * FROM my_table WHERE active = true", + timestamp_field="event_timestamp", + ) + result = source.get_table_query_string_with_alias() + assert result == "(SELECT * FROM my_table WHERE active = true) AS subquery" + + def test_query_source_with_custom_alias(self): + """Test get_table_query_string_with_alias() with custom alias""" + source = PostgreSQLSource( + name="test_source", + query="SELECT id, name FROM users", + timestamp_field="event_timestamp", + ) + result = source.get_table_query_string_with_alias(alias="user_data") + assert result == "(SELECT id, name FROM users) AS user_data" + + def test_table_source_with_custom_alias_ignored(self): + """Test get_table_query_string_with_alias() ignores alias for table-based sources""" + source = PostgreSQLSource( + name="test_source", + table="events", + timestamp_field="event_timestamp", + ) + result = source.get_table_query_string_with_alias(alias="ignored_alias") + # Alias should be ignored for table sources + assert result == "events" + + def test_sql_query_with_alias_is_valid(self): + """Test that SQL using get_table_query_string_with_alias() is syntactically valid""" + source = PostgreSQLSource( + name="test_source", + query="SELECT id, ts FROM raw_data", + timestamp_field="ts", + ) + + # Construct a SQL query using the new method + entity_sql = f"SELECT id, ts FROM {source.get_table_query_string_with_alias()}" + + # Verify SQL is valid using sqlglot + parsed = sqlglot.parse(entity_sql, dialect="postgres") + assert len(parsed) == 1 + assert parsed[0] is not None + + def test_sql_query_without_alias_fails_in_postgres(self): + """Test that SQL using get_table_query_string() for query source produces invalid PostgreSQL + + This demonstrates the issue that get_table_query_string_with_alias() fixes: + PostgreSQL requires all subqueries in FROM clauses to have aliases. + """ + source = PostgreSQLSource( + name="test_source", + query="SELECT id, ts FROM raw_data", + timestamp_field="ts", + ) + + # Using the old method (without alias) for query-based source + entity_sql_without_alias = ( + f"SELECT id, ts FROM {source.get_table_query_string()}" + ) + + # This produces: SELECT id, ts FROM (SELECT id, ts FROM raw_data) + # which is invalid in PostgreSQL (subquery needs alias) + # sqlglot is lenient and may parse it, but PostgreSQL would reject it + assert "AS" not in entity_sql_without_alias, ( + "get_table_query_string() should not add alias" + ) + + # Using the new method (with alias) produces valid SQL + entity_sql_with_alias = ( + f"SELECT id, ts FROM {source.get_table_query_string_with_alias()}" + ) + assert "AS subquery" in entity_sql_with_alias + + def test_complex_query_with_alias(self): + """Test get_table_query_string_with_alias() with complex nested query""" + complex_query = """ + SELECT u.id, u.name, o.total + FROM users u + JOIN orders o ON u.id = o.user_id + WHERE o.created_at > '2023-01-01' + """ + source = PostgreSQLSource( + name="test_source", + query=complex_query, + timestamp_field="created_at", + ) + + result = source.get_table_query_string_with_alias(alias="user_orders") + assert result.startswith("(") + assert result.endswith(") AS user_orders") + assert "SELECT u.id" in result From 6e401d9471ca7747da38fea5c0027d5718c9096f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Jan 2026 13:31:52 +0000 Subject: [PATCH 19/37] chore(deps): Bump urllib3 from 2.6.2 to 2.6.3 in /sdk/python/requirements (#5822) chore(deps): Bump urllib3 in /sdk/python/requirements Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.6.2 to 2.6.3. - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/2.6.2...2.6.3) --- updated-dependencies: - dependency-name: urllib3 dependency-version: 2.6.3 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- sdk/python/requirements/py3.10-ci-requirements.txt | 6 +++--- sdk/python/requirements/py3.10-minimal-requirements.txt | 6 +++--- .../requirements/py3.10-minimal-sdist-requirements.txt | 6 +++--- sdk/python/requirements/py3.10-requirements.txt | 6 +++--- sdk/python/requirements/py3.11-ci-requirements.txt | 6 +++--- sdk/python/requirements/py3.11-minimal-requirements.txt | 6 +++--- .../requirements/py3.11-minimal-sdist-requirements.txt | 6 +++--- sdk/python/requirements/py3.11-requirements.txt | 6 +++--- sdk/python/requirements/py3.12-ci-requirements.txt | 6 +++--- sdk/python/requirements/py3.12-minimal-requirements.txt | 6 +++--- .../requirements/py3.12-minimal-sdist-requirements.txt | 6 +++--- sdk/python/requirements/py3.12-requirements.txt | 6 +++--- 12 files changed, 36 insertions(+), 36 deletions(-) diff --git a/sdk/python/requirements/py3.10-ci-requirements.txt b/sdk/python/requirements/py3.10-ci-requirements.txt index 2c448173938..554c9eba60f 100644 --- a/sdk/python/requirements/py3.10-ci-requirements.txt +++ b/sdk/python/requirements/py3.10-ci-requirements.txt @@ -5988,9 +5988,9 @@ uri-template==1.3.0 \ --hash=sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7 \ --hash=sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363 # via jsonschema -urllib3==2.6.2 \ - --hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \ - --hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd +urllib3==2.6.3 \ + --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ + --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 # via # feast (setup.py) # botocore diff --git a/sdk/python/requirements/py3.10-minimal-requirements.txt b/sdk/python/requirements/py3.10-minimal-requirements.txt index 66d34c10570..49c47aba783 100644 --- a/sdk/python/requirements/py3.10-minimal-requirements.txt +++ b/sdk/python/requirements/py3.10-minimal-requirements.txt @@ -2812,9 +2812,9 @@ ujson==5.11.0 \ --hash=sha256:fa79fdb47701942c2132a9dd2297a1a85941d966d8c87bfd9e29b0cf423f26cc \ --hash=sha256:fac6c0649d6b7c3682a0a6e18d3de6857977378dce8d419f57a0b20e3d775b39 # via pymilvus -urllib3==2.6.2 \ - --hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \ - --hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd +urllib3==2.6.3 \ + --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ + --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 # via # botocore # kubernetes diff --git a/sdk/python/requirements/py3.10-minimal-sdist-requirements.txt b/sdk/python/requirements/py3.10-minimal-sdist-requirements.txt index 1c92409c888..159a6a266ae 100644 --- a/sdk/python/requirements/py3.10-minimal-sdist-requirements.txt +++ b/sdk/python/requirements/py3.10-minimal-sdist-requirements.txt @@ -3092,9 +3092,9 @@ ujson==5.11.0 \ --hash=sha256:fa79fdb47701942c2132a9dd2297a1a85941d966d8c87bfd9e29b0cf423f26cc \ --hash=sha256:fac6c0649d6b7c3682a0a6e18d3de6857977378dce8d419f57a0b20e3d775b39 # via pymilvus -urllib3==2.6.2 \ - --hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \ - --hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd +urllib3==2.6.3 \ + --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ + --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 # via # botocore # kubernetes diff --git a/sdk/python/requirements/py3.10-requirements.txt b/sdk/python/requirements/py3.10-requirements.txt index 6f38b0c16c6..bf89b08b92a 100644 --- a/sdk/python/requirements/py3.10-requirements.txt +++ b/sdk/python/requirements/py3.10-requirements.txt @@ -1326,9 +1326,9 @@ tzdata==2025.3 \ --hash=sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1 \ --hash=sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7 # via pandas -urllib3==2.6.2 \ - --hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \ - --hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd +urllib3==2.6.3 \ + --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ + --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 # via requests uvicorn[standard]==0.34.0 \ --hash=sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4 \ diff --git a/sdk/python/requirements/py3.11-ci-requirements.txt b/sdk/python/requirements/py3.11-ci-requirements.txt index 091236521ff..b3bbdb5ad4d 100644 --- a/sdk/python/requirements/py3.11-ci-requirements.txt +++ b/sdk/python/requirements/py3.11-ci-requirements.txt @@ -6229,9 +6229,9 @@ uri-template==1.3.0 \ --hash=sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7 \ --hash=sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363 # via jsonschema -urllib3==2.6.2 \ - --hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \ - --hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd +urllib3==2.6.3 \ + --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ + --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 # via # feast (setup.py) # botocore diff --git a/sdk/python/requirements/py3.11-minimal-requirements.txt b/sdk/python/requirements/py3.11-minimal-requirements.txt index 93613cb6e50..04ac9943f7b 100644 --- a/sdk/python/requirements/py3.11-minimal-requirements.txt +++ b/sdk/python/requirements/py3.11-minimal-requirements.txt @@ -2816,9 +2816,9 @@ ujson==5.11.0 \ --hash=sha256:fa79fdb47701942c2132a9dd2297a1a85941d966d8c87bfd9e29b0cf423f26cc \ --hash=sha256:fac6c0649d6b7c3682a0a6e18d3de6857977378dce8d419f57a0b20e3d775b39 # via pymilvus -urllib3==2.6.2 \ - --hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \ - --hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd +urllib3==2.6.3 \ + --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ + --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 # via # botocore # kubernetes diff --git a/sdk/python/requirements/py3.11-minimal-sdist-requirements.txt b/sdk/python/requirements/py3.11-minimal-sdist-requirements.txt index 3fb8dbf6562..56fa579fe39 100644 --- a/sdk/python/requirements/py3.11-minimal-sdist-requirements.txt +++ b/sdk/python/requirements/py3.11-minimal-sdist-requirements.txt @@ -3092,9 +3092,9 @@ ujson==5.11.0 \ --hash=sha256:fa79fdb47701942c2132a9dd2297a1a85941d966d8c87bfd9e29b0cf423f26cc \ --hash=sha256:fac6c0649d6b7c3682a0a6e18d3de6857977378dce8d419f57a0b20e3d775b39 # via pymilvus -urllib3==2.6.2 \ - --hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \ - --hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd +urllib3==2.6.3 \ + --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ + --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 # via # botocore # kubernetes diff --git a/sdk/python/requirements/py3.11-requirements.txt b/sdk/python/requirements/py3.11-requirements.txt index 8253a7a0800..fcae25c341f 100644 --- a/sdk/python/requirements/py3.11-requirements.txt +++ b/sdk/python/requirements/py3.11-requirements.txt @@ -1293,9 +1293,9 @@ tzdata==2025.3 \ --hash=sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1 \ --hash=sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7 # via pandas -urllib3==2.6.2 \ - --hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \ - --hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd +urllib3==2.6.3 \ + --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ + --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 # via requests uvicorn[standard]==0.34.0 \ --hash=sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4 \ diff --git a/sdk/python/requirements/py3.12-ci-requirements.txt b/sdk/python/requirements/py3.12-ci-requirements.txt index 50efe8231a9..48c1fc21371 100644 --- a/sdk/python/requirements/py3.12-ci-requirements.txt +++ b/sdk/python/requirements/py3.12-ci-requirements.txt @@ -6217,9 +6217,9 @@ uri-template==1.3.0 \ --hash=sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7 \ --hash=sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363 # via jsonschema -urllib3==2.6.2 \ - --hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \ - --hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd +urllib3==2.6.3 \ + --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ + --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 # via # feast (setup.py) # botocore diff --git a/sdk/python/requirements/py3.12-minimal-requirements.txt b/sdk/python/requirements/py3.12-minimal-requirements.txt index d2064d4ed78..707d8cdddad 100644 --- a/sdk/python/requirements/py3.12-minimal-requirements.txt +++ b/sdk/python/requirements/py3.12-minimal-requirements.txt @@ -2808,9 +2808,9 @@ ujson==5.11.0 \ --hash=sha256:fa79fdb47701942c2132a9dd2297a1a85941d966d8c87bfd9e29b0cf423f26cc \ --hash=sha256:fac6c0649d6b7c3682a0a6e18d3de6857977378dce8d419f57a0b20e3d775b39 # via pymilvus -urllib3==2.6.2 \ - --hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \ - --hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd +urllib3==2.6.3 \ + --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ + --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 # via # botocore # kubernetes diff --git a/sdk/python/requirements/py3.12-minimal-sdist-requirements.txt b/sdk/python/requirements/py3.12-minimal-sdist-requirements.txt index ac6f755be87..b787047fe86 100644 --- a/sdk/python/requirements/py3.12-minimal-sdist-requirements.txt +++ b/sdk/python/requirements/py3.12-minimal-sdist-requirements.txt @@ -3084,9 +3084,9 @@ ujson==5.11.0 \ --hash=sha256:fa79fdb47701942c2132a9dd2297a1a85941d966d8c87bfd9e29b0cf423f26cc \ --hash=sha256:fac6c0649d6b7c3682a0a6e18d3de6857977378dce8d419f57a0b20e3d775b39 # via pymilvus -urllib3==2.6.2 \ - --hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \ - --hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd +urllib3==2.6.3 \ + --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ + --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 # via # botocore # kubernetes diff --git a/sdk/python/requirements/py3.12-requirements.txt b/sdk/python/requirements/py3.12-requirements.txt index 697d4f25b0c..cefe5dbf8c7 100644 --- a/sdk/python/requirements/py3.12-requirements.txt +++ b/sdk/python/requirements/py3.12-requirements.txt @@ -1289,9 +1289,9 @@ tzdata==2025.3 \ --hash=sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1 \ --hash=sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7 # via pandas -urllib3==2.6.2 \ - --hash=sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797 \ - --hash=sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd +urllib3==2.6.3 \ + --hash=sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed \ + --hash=sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 # via requests uvicorn[standard]==0.34.0 \ --hash=sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4 \ From ef3dc050e1072f3d50299e33a85fcf612ab8ce3f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Jan 2026 13:32:04 +0000 Subject: [PATCH 20/37] chore(deps): Bump golang.org/x/crypto from 0.43.0 to 0.45.0 (#5819) Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.43.0 to 0.45.0. - [Commits](https://github.com/golang/crypto/compare/v0.43.0...v0.45.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-version: 0.45.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 15 ++++++------- go.sum | 66 ++++++++++++++++++++++++++-------------------------------- 2 files changed, 38 insertions(+), 43 deletions(-) diff --git a/go.mod b/go.mod index 7f918de268e..5b2592536df 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,7 @@ go 1.24.0 toolchain go1.24.4 require ( + cloud.google.com/go/storage v1.58.0 github.com/apache/arrow/go/v17 v17.0.0 github.com/aws/aws-sdk-go-v2 v1.36.4 github.com/aws/aws-sdk-go-v2/config v1.29.14 @@ -39,7 +40,6 @@ require ( cloud.google.com/go/compute/metadata v0.9.0 // indirect cloud.google.com/go/iam v1.5.3 // indirect cloud.google.com/go/monitoring v1.24.2 // indirect - cloud.google.com/go/storage v1.58.0 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.54.0 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.54.0 // indirect @@ -101,15 +101,16 @@ require ( go.opentelemetry.io/otel/metric v1.38.0 // indirect go.opentelemetry.io/otel/sdk/metric v1.38.0 // indirect go.opentelemetry.io/proto/otlp v1.7.1 // indirect - golang.org/x/crypto v0.43.0 // indirect + golang.org/x/crypto v0.45.0 // indirect golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect - golang.org/x/mod v0.28.0 // indirect - golang.org/x/net v0.46.0 // indirect + golang.org/x/mod v0.29.0 // indirect + golang.org/x/net v0.47.0 // indirect golang.org/x/oauth2 v0.33.0 // indirect - golang.org/x/sys v0.37.0 // indirect - golang.org/x/text v0.30.0 // indirect + golang.org/x/sys v0.38.0 // indirect + golang.org/x/telemetry v0.0.0-20251008203120-078029d740a8 // indirect + golang.org/x/text v0.31.0 // indirect golang.org/x/time v0.14.0 // indirect - golang.org/x/tools v0.37.0 // indirect + golang.org/x/tools v0.38.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect google.golang.org/api v0.256.0 // indirect google.golang.org/genproto v0.0.0-20250922171735-9219d122eba9 // indirect diff --git a/go.sum b/go.sum index 7d306beabb6..aff636cad1b 100644 --- a/go.sum +++ b/go.sum @@ -10,14 +10,22 @@ cloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdB cloud.google.com/go/compute/metadata v0.9.0/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10= cloud.google.com/go/iam v1.5.3 h1:+vMINPiDF2ognBJ97ABAYYwRgsaqxPbQDlMnbHMjolc= cloud.google.com/go/iam v1.5.3/go.mod h1:MR3v9oLkZCTlaqljW6Eb2d3HGDGK5/bDv93jhfISFvU= +cloud.google.com/go/logging v1.13.0 h1:7j0HgAp0B94o1YRDqiqm26w4q1rDMH7XNRU34lJXHYc= +cloud.google.com/go/logging v1.13.0/go.mod h1:36CoKh6KA/M0PbhPKMq6/qety2DCAErbhXT62TuXALA= +cloud.google.com/go/longrunning v0.7.0 h1:FV0+SYF1RIj59gyoWDRi45GiYUMM3K1qO51qoboQT1E= +cloud.google.com/go/longrunning v0.7.0/go.mod h1:ySn2yXmjbK9Ba0zsQqunhDkYi0+9rlXIwnoAf+h+TPY= cloud.google.com/go/monitoring v1.24.2 h1:5OTsoJ1dXYIiMiuL+sYscLc9BumrL3CarVLL7dd7lHM= cloud.google.com/go/monitoring v1.24.2/go.mod h1:x7yzPWcgDRnPEv3sI+jJGBkwl5qINf+6qY4eq0I9B4U= cloud.google.com/go/storage v1.58.0 h1:PflFXlmFJjG/nBeR9B7pKddLQWaFaRWx4uUi/LyNxxo= cloud.google.com/go/storage v1.58.0/go.mod h1:cMWbtM+anpC74gn6qjLh+exqYcfmB9Hqe5z6adx+CLI= +cloud.google.com/go/trace v1.11.6 h1:2O2zjPzqPYAHrn3OKl029qlqG6W8ZdYaOWRyr8NgMT4= +cloud.google.com/go/trace v1.11.6/go.mod h1:GA855OeDEBiBMzcckLPE2kDunIpC72N+Pq8WFieFjnI= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0 h1:UQUsRi8WTzhZntp5313l+CHIAT95ojUI2lpP/ExlZa4= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0/go.mod h1:Cz6ft6Dkn3Et6l2v2a9/RpN7epQ1GtDlO6lj8bEcOvw= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.54.0 h1:lhhYARPUu3LmHysQ/igznQphfzynnqI3D75oUyw1HXk= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.54.0/go.mod h1:l9rva3ApbBpEJxSNYnwT9N4CDLrWgtq3u8736C5hyJw= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.54.0 h1:xfK3bbi6F2RDtaZFtUdKO3osOBIhNb+xTs8lFW6yx9o= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.54.0/go.mod h1:vB2GH9GAYYJTO3mEn8oYwzEdhlayZIdQz6zdzgUIRvA= github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.54.0 h1:s0WlVbf9qpvkh1c/uDAPElam0WrL7fHRIidgZJ7UqZI= github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.54.0/go.mod h1:Mf6O40IAyB9zR/1J8nGDDPirZQQPbYJni8Yisy7NTMc= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= @@ -84,8 +92,11 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8Yc github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/envoyproxy/go-control-plane v0.13.4 h1:zEqyPVyku6IvWCFwux4x9RxkLOMUL+1vC9xUFv5l2/M= +github.com/envoyproxy/go-control-plane v0.13.4/go.mod h1:kDfuBlDVsSj2MjrLEtRWtHlsWIFcGyB2RMO44Dc5GZA= github.com/envoyproxy/go-control-plane/envoy v1.32.4 h1:jb83lalDRZSpPWW2Z7Mck/8kXZ5CQAFYVjQcdVIr83A= github.com/envoyproxy/go-control-plane/envoy v1.32.4/go.mod h1:Gzjc5k8JcJswLjAx1Zm+wSYE20UrLtt7JZMWiWQXQEw= +github.com/envoyproxy/go-control-plane/ratelimit v0.1.0 h1:/G9QYbddjL25KvtKTv3an9lx6VBE2cnb8wp1vEGNYGI= +github.com/envoyproxy/go-control-plane/ratelimit v0.1.0/go.mod h1:Wk+tMFAFbCXaJPzVVHnPgRKdUdwW/KdbRt94AzgRee4= github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfUKS7KJ7spH3d86P8= github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= @@ -110,6 +121,8 @@ github.com/google/flatbuffers v24.3.25+incompatible h1:CX395cjN9Kke9mmalRoL3d81A github.com/google/flatbuffers v24.3.25+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/martian/v3 v3.3.3 h1:DIhPTQrbPkgs2yJYdXU/eNACCG5DVQjySNRNlflZ9Fc= +github.com/google/martian/v3 v3.3.3/go.mod h1:iEPrYcgCF7jA9OtScMFQyAlZZ4YXTKEtJ1E6RWzmBA0= github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0= github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= @@ -154,9 +167,8 @@ github.com/redis/go-redis/v9 v9.6.1 h1:HHDteefn6ZkTtY5fGUE8tj8uy85AHk6zP7CpzIAM0 github.com/redis/go-redis/v9 v9.6.1/go.mod h1:0C0c6ycQsdpVNQpxb1njEQIqkx5UcsM8FJCQLgE9+RA= github.com/roberson-io/mmh3 v0.0.0-20190729202758-fdfce3ba6225 h1:ZMsPCp7oYgjoIFt1c+sM2qojxZXotSYcMF8Ur9/LJlM= github.com/roberson-io/mmh3 v0.0.0-20190729202758-fdfce3ba6225/go.mod h1:XEESr+X1SY8ZSuc3jqsTlb3clCkqQJ4DcF3Qxv1N3PM= -github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= -github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= +github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= @@ -174,8 +186,6 @@ github.com/zeebo/errs v1.4.0 h1:XNdoD/RRMKP7HD0UhJnIzUy74ISdGGxURlYG8HSWSfM= github.com/zeebo/errs v1.4.0/go.mod h1:sgbWHsvVuTPHcqJJGQ1WhI5KbWlHYz+2+2C/LSEtCw4= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= -go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= -go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= go.opentelemetry.io/contrib/detectors/gcp v1.36.0 h1:F7q2tNlCaHY9nMKHR6XH9/qkp8FktLnIcy6jJNyOCQw= @@ -190,6 +200,8 @@ go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 h1:GqRJVj7UmLjCVyVJ3ZF go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0/go.mod h1:ri3aaHSmCTVYu2AWv44YMauwAQc0aqI9gHKIcSbI1pU= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 h1:aTL7F04bJHUlztTsNGJ2l+6he8c+y/b//eR0jjjemT4= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0/go.mod h1:kldtb7jDTeol0l3ewcmd8SDvx3EmIE7lyvqbasU3QC4= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.38.0 h1:wm/Q0GAAykXv83wzcKzGGqAnnfLFyFe7RslekZuv+VI= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.38.0/go.mod h1:ra3Pa40+oKjvYh+ZD3EdxFZZB0xdMfuileHAm4nNN7w= go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA= go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI= go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E= @@ -202,42 +214,32 @@ go.opentelemetry.io/proto/otlp v1.7.1 h1:gTOMpGDb0WTBOP8JaO72iL3auEZhVmAQg4ipjOV go.opentelemetry.io/proto/otlp v1.7.1/go.mod h1:b2rVh6rfI/s2pHWNlB7ILJcRALpcNDzKhACevjI+ZnE= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= -golang.org/x/crypto v0.43.0 h1:dduJYIi3A3KOfdGOHX8AVZ/jGiyPa3IbBozJ5kNuE04= -golang.org/x/crypto v0.43.0/go.mod h1:BFbav4mRNlXJL4wNeejLpWxB7wMbc79PdRGhWKncxR0= +golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q= +golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4= golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 h1:e66Fs6Z+fZTbFBAxKfP3PALWBtpfqks2bwGcexMxgtk= golang.org/x/exp v0.0.0-20240909161429-701f63a606c0/go.mod h1:2TbTHSBQa924w8M6Xs1QcRcFwyucIwBGpK1p2f1YFFY= -golang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg= -golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ= -golang.org/x/mod v0.28.0 h1:gQBtGhjxykdjY9YhZpSlZIsbnaE2+PgjfLWUQTnoZ1U= -golang.org/x/mod v0.28.0/go.mod h1:yfB/L0NOf/kmEbXjzCPOx1iK1fRutOydrCMsqRhEBxI= -golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE= -golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg= -golang.org/x/net v0.46.0 h1:giFlY12I07fugqwPuWJi68oOnpfqFnJIJzaIIm2JVV4= -golang.org/x/net v0.46.0/go.mod h1:Q9BGdFy1y4nkUwiLvT5qtyhAnEHgnQ/zd8PfU6nc210= +golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA= +golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= +golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= +golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= golang.org/x/oauth2 v0.33.0 h1:4Q+qn+E5z8gPRJfmRy7C2gGG3T4jIprK6aSYgTXGRpo= golang.org/x/oauth2 v0.33.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= -golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= -golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI= -golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ= -golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= -golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng= -golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= -golang.org/x/text v0.30.0 h1:yznKA/E9zq54KzlzBEAWn1NXSQ8DIp/NYMy88xJjl4k= -golang.org/x/text v0.30.0/go.mod h1:yDdHFIX9t+tORqspjENWgzaCVXgk0yYnYuSZ8UzzBVM= +golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= +golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/telemetry v0.0.0-20251008203120-078029d740a8 h1:LvzTn0GQhWuvKH/kVRS3R3bVAsdQWI7hvfLHGgh9+lU= +golang.org/x/telemetry v0.0.0-20251008203120-078029d740a8/go.mod h1:Pi4ztBfryZoJEkyFTI5/Ocsu2jXyDr6iSdgJiYE/uwE= +golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= +golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= -golang.org/x/tools v0.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0= -golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw= -golang.org/x/tools v0.37.0 h1:DVSRzp7FwePZW356yEAChSdNcQo6Nsp+fex1SUW09lE= -golang.org/x/tools v0.37.0/go.mod h1:MBN5QPQtLMHVdvsbtarmTNukZDdgwdwlO5qGacAzF0w= +golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ= +golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da h1:noIWHXmPHxILtqtCOPIhSt0ABwskkZKjD3bXGnZGpNY= golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= @@ -246,20 +248,12 @@ google.golang.org/api v0.256.0 h1:u6Khm8+F9sxbCTYNoBHg6/Hwv0N/i+V94MvkOSor6oI= google.golang.org/api v0.256.0/go.mod h1:KIgPhksXADEKJlnEoRa9qAII4rXcy40vfI8HRqcU964= google.golang.org/genproto v0.0.0-20250922171735-9219d122eba9 h1:LvZVVaPE0JSqL+ZWb6ErZfnEOKIqqFWUJE2D0fObSmc= google.golang.org/genproto v0.0.0-20250922171735-9219d122eba9/go.mod h1:QFOrLhdAe2PsTp3vQY4quuLKTi9j3XG3r6JPPaw7MSc= -google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5 h1:BIRfGDEjiHRrk0QKZe3Xv2ieMhtgRGeLcZQ0mIVn4EY= -google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5/go.mod h1:j3QtIyytwqGr1JUDtYXwtMXWPKsEa5LtzIFN1Wn5WvE= google.golang.org/genproto/googleapis/api v0.0.0-20251111163417-95abcf5c77ba h1:B14OtaXuMaCQsl2deSvNkyPKIzq3BjfxQp8d00QyWx4= google.golang.org/genproto/googleapis/api v0.0.0-20251111163417-95abcf5c77ba/go.mod h1:G5IanEx8/PgI9w6CFcYQf7jMtHQhZruvfM1i3qOqk5U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 h1:eaY8u2EuxbRv7c3NiGK0/NedzVsCcV6hDuU5qPX5EGE= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5/go.mod h1:M4/wBTSeyLxupu3W3tJtOgB14jILAS/XWPSSa3TAlJc= google.golang.org/genproto/googleapis/rpc v0.0.0-20251111163417-95abcf5c77ba h1:UKgtfRM7Yh93Sya0Fo8ZzhDP4qBckrrxEr2oF5UIVb8= google.golang.org/genproto/googleapis/rpc v0.0.0-20251111163417-95abcf5c77ba/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk= -google.golang.org/grpc v1.75.0 h1:+TW+dqTd2Biwe6KKfhE5JpiYIBWq865PhKGSXiivqt4= -google.golang.org/grpc v1.75.0/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ= google.golang.org/grpc v1.76.0 h1:UnVkv1+uMLYXoIz6o7chp59WfQUYA2ex/BXQ9rHZu7A= google.golang.org/grpc v1.76.0/go.mod h1:Ju12QI8M6iQJtbcsV+awF5a4hfJMLi4X0JLo94ULZ6c= -google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= -google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 3c10b6eb693ba3e930020346f3edf6a70d30f5a1 Mon Sep 17 00:00:00 2001 From: Calvin Devereaux <43762553+WhiteLotusLA@users.noreply.github.com> Date: Mon, 12 Jan 2026 22:51:32 -0800 Subject: [PATCH 21/37] fix: Update model_validator to use instance method signature (Pydantic v2.12 deprecation) (#5825) fix: update model_validator to use instance method signature Pydantic v2.12 deprecated using @model_validator(mode='after') with a classmethod-style signature (cls, values). This change updates the _validate_credentials method to use the correct instance method signature (self), which: - Eliminates the deprecation warning - Uses direct attribute access (self.username) instead of dict access - Returns self instead of values This is a non-breaking change that maintains the same validation logic while conforming to Pydantic v2.12+ best practices. Fixes deprecation warning: 'Using @model_validator with mode="after" on a classmethod is deprecated' Signed-off-by: WhiteLotusLA --- sdk/python/feast/permissions/auth_model.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/sdk/python/feast/permissions/auth_model.py b/sdk/python/feast/permissions/auth_model.py index 179a8bc0c0e..3690d62b728 100644 --- a/sdk/python/feast/permissions/auth_model.py +++ b/sdk/python/feast/permissions/auth_model.py @@ -33,25 +33,23 @@ class OidcClientAuthConfig(OidcAuthConfig): token: Optional[str] = None # pre-issued `token` @model_validator(mode="after") - def _validate_credentials(cls, values): + def _validate_credentials(self): """Enforce exactly one valid credential set.""" - d = values.__dict__ if hasattr(values, "__dict__") else values - - has_user_pass = bool(d.get("username")) and bool(d.get("password")) - has_secret = bool(d.get("client_secret")) - has_token = bool(d.get("token")) + has_user_pass = bool(self.username) and bool(self.password) + has_secret = bool(self.client_secret) + has_token = bool(self.token) # 1 static token if has_token and not (has_user_pass or has_secret): - return values + return self # 2 client_credentials if has_secret and not has_user_pass and not has_token: - return values + return self # 3 ROPG if has_user_pass and has_secret and not has_token: - return values + return self raise ValueError( "Invalid OIDC client auth combination: " From de37f6677ad3b6ca7862734e50593eaad7aaef57 Mon Sep 17 00:00:00 2001 From: Aniket Paluskar <64416568+aniketpalu@users.noreply.github.com> Date: Tue, 13 Jan 2026 18:36:57 +0530 Subject: [PATCH 22/37] fix: Search API to return all matching tags in matched_tags field (#5843) * fix: Search API to return all matching tags in matched_tags field Signed-off-by: Aniket Paluskar * Added unit tests to check if multiple tags are returned if they are matching the query Signed-off-by: Aniket Paluskar --------- Signed-off-by: Aniket Paluskar --- .../feature-servers/registry-server.md | 13 ++- .../feast/api/registry/rest/rest_utils.py | 66 +++++++------ sdk/python/tests/unit/api/test_search_api.py | 98 +++++++++++++------ 3 files changed, 112 insertions(+), 65 deletions(-) diff --git a/docs/reference/feature-servers/registry-server.md b/docs/reference/feature-servers/registry-server.md index dbcf661fc86..496eaa8badc 100644 --- a/docs/reference/feature-servers/registry-server.md +++ b/docs/reference/feature-servers/registry-server.md @@ -1207,28 +1207,33 @@ Please refer the [page](./../../../docs/getting-started/concepts/permission.md) "name": "user_id", "description": "Primary identifier for users", "project": "project1", - "match_score": 100 + "match_score": 100, + "matched_tags": {} }, { "type": "featureView", "name": "user_features", "description": "User demographic and behavioral features", "project": "project1", - "match_score": 100 + "match_score": 100, + "matched_tags": {"team": "user_analytics"} }, { "type": "feature", "name": "user_age", "description": "Age of the user in years", "project": "project1", - "match_score": 80 + "featureView": "user_features", + "match_score": 80, + "matched_tags": {} }, { "type": "dataSource", "name": "user_analytics", "description": "Analytics data for user behavior tracking", "project": "project2", - "match_score": 80 + "match_score": 80, + "matched_tags": {"source": "user_data"} } ], "pagination": { diff --git a/sdk/python/feast/api/registry/rest/rest_utils.py b/sdk/python/feast/api/registry/rest/rest_utils.py index dac6b7ccf7b..4c517b0abdf 100644 --- a/sdk/python/feast/api/registry/rest/rest_utils.py +++ b/sdk/python/feast/api/registry/rest/rest_utils.py @@ -18,7 +18,6 @@ MATCH_SCORE_NAME = 100 MATCH_SCORE_DESCRIPTION = 80 MATCH_SCORE_TAGS = 60 -MATCH_SCORE_PARTIAL = 40 def grpc_call(handler_fn, request): @@ -537,12 +536,42 @@ def filter_search_results_and_match_score( ) -> List[Dict]: """Filter search results based on query string""" if not query: + # Add all tags as matched_tags when no query (all tags match) + for result in results: + result["matched_tags"] = result.get("tags", {}) return results query_lower = query.lower() filtered_results = [] for result in results: + matched_tags = {} + best_fuzzy_tag_score = 0.0 + + # Collect all matching tags (exact and fuzzy) upfront + tags = result.get("tags", {}) + has_exact_tag_match = False + + for key, value in tags.items(): + key_lower = str(key).lower() + value_str = str(value).lower() + tag_combined = f"{key_lower}={value_str}" + + # Exact match in key or value + if query_lower in tag_combined: + has_exact_tag_match = True + matched_tags[key] = value + else: + # Fuzzy match for tags (on combined "key:value" string) + tag_fuzzy_score = fuzzy_match(query_lower, tag_combined) + + if tag_fuzzy_score >= MATCH_SCORE_DEFAULT_THRESHOLD: + matched_tags[key] = value + if tag_fuzzy_score > best_fuzzy_tag_score: + best_fuzzy_tag_score = tag_fuzzy_score + + result["matched_tags"] = matched_tags + # Search in name if query_lower in result.get("name", "").lower(): result["match_score"] = MATCH_SCORE_NAME @@ -555,42 +584,15 @@ def filter_search_results_and_match_score( filtered_results.append(result) continue - # Search in tags - tags = result.get("tags", {}) - tag_match = False - matched_tag = None - best_fuzzy_score = 0.0 - best_fuzzy_tag = None - - for key, value in tags.items(): - key_lower = key.lower() - value_str = str(value).lower() - - # Exact match in key or value - if query_lower in key_lower or query_lower in value_str: - tag_match = True - # Store the matched tag as a dictionary - matched_tag = {key: value} - break - - # Fuzzy match for tags (on combined "key:value" string) - tag_combined = f"{key_lower}={value_str}" - tag_fuzzy_score = fuzzy_match(query_lower, tag_combined) - - if tag_fuzzy_score > best_fuzzy_score: - best_fuzzy_score = tag_fuzzy_score - best_fuzzy_tag = {key: value} - - if tag_match: + # Exact tag match + if has_exact_tag_match: result["match_score"] = MATCH_SCORE_TAGS - result["matched_tag"] = matched_tag filtered_results.append(result) continue # Fuzzy tag match - if best_fuzzy_score >= MATCH_SCORE_DEFAULT_THRESHOLD: - result["match_score"] = best_fuzzy_score * 100 - result["matched_tag"] = best_fuzzy_tag + if best_fuzzy_tag_score >= MATCH_SCORE_DEFAULT_THRESHOLD: + result["match_score"] = best_fuzzy_tag_score * 100 filtered_results.append(result) continue diff --git a/sdk/python/tests/unit/api/test_search_api.py b/sdk/python/tests/unit/api/test_search_api.py index 9116db1c59b..f0d7c3942e8 100644 --- a/sdk/python/tests/unit/api/test_search_api.py +++ b/sdk/python/tests/unit/api/test_search_api.py @@ -734,8 +734,8 @@ def test_search_by_tags(self, shared_search_responses): f"Expected to find some of {expected_resources} but found none in {found_resources}" ) - def test_search_matched_tag_exact_match(self, search_test_app): - """Test that matched_tag field is present when a tag matches exactly""" + def test_search_matched_tags_exact_match(self, search_test_app): + """Test that matched_tags field is present when a tag matches exactly""" # Search for "data" which should match tag key "team" with value "data" response = search_test_app.get("/search?query=data") assert response.status_code == 200 @@ -745,34 +745,75 @@ def test_search_matched_tag_exact_match(self, search_test_app): # Find results that matched via tags (match_score = 60) tag_matched_results = [ - r for r in results if r.get("match_score") == 60 and "matched_tag" in r + r for r in results if r.get("match_score") == 60 and "matched_tags" in r ] assert len(tag_matched_results) > 0, ( - "Expected to find at least one result with matched_tag from tag matching" + "Expected to find at least one result with matched_tags from tag matching" ) - # Verify matched_tag is present and has a valid dictionary value + # Verify matched_tags is present and has a valid dictionary value for result in tag_matched_results: - matched_tag = result.get("matched_tag") - assert matched_tag is not None, ( - f"matched_tag should not be None for result {result['name']}" + matched_tags = result.get("matched_tags") + assert matched_tags is not None, ( + f"matched_tags should not be None for result {result['name']}" ) - assert isinstance(matched_tag, dict), ( - f"matched_tag should be a dictionary, got {type(matched_tag)}" + assert isinstance(matched_tags, dict), ( + f"matched_tags should be a dictionary, got {type(matched_tags)}" ) - # matched_tag should be a dictionary with key:value format - assert len(matched_tag) > 0, "matched_tag should not be empty" - assert len(matched_tag) == 1, ( - f"matched_tag should contain exactly one key-value pair, got {len(matched_tag)}" + # matched_tags should be a non-empty dict for tag-matched results + assert len(matched_tags) > 0, ( + "matched_tags should not be empty for tag matches" ) logger.debug( - f"Found {len(tag_matched_results)} results with matched_tag: {[r['name'] + ' -> ' + str(r.get('matched_tag', 'N/A')) for r in tag_matched_results]}" + f"Found {len(tag_matched_results)} results with matched_tags: {[r['name'] + ' -> ' + str(r.get('matched_tags', 'N/A')) for r in tag_matched_results]}" ) - def test_search_matched_tag_fuzzy_match(self, search_test_app): - """Test that matched_tag field is present when a tag matches via fuzzy matching""" + def test_search_matched_tags_multiple_tags(self, search_test_app): + """Test that multiple matching tags are returned in matched_tags""" + # Search for "a" which should match: + # - Names containing "a" (e.g., user_training_dataset, data sources) + # - Tags where key/value contains "a": "team" (key), "data" (value), "training" (value) + response = search_test_app.get("/search?query=a") + logger.info(response.json()) + assert response.status_code == 200 + + data = response.json() + results = data["results"] + + # Find user_training_dataset which has tags: {"environment": "test", "purpose": "training", "team": "data"} + # "team" contains "a", "data" contains "a", "training" contains "a" + # So matched_tags should have at least 2 entries: "purpose" and "team" + dataset_results = [ + r for r in results if r.get("name") == "user_training_dataset" + ] + + assert len(dataset_results) > 0, ( + "Expected to find user_training_dataset in results" + ) + + dataset_result = dataset_results[0] + matched_tags = dataset_result.get("matched_tags", {}) + + assert isinstance(matched_tags, dict), ( + f"matched_tags should be a dictionary, got {type(matched_tags)}" + ) + + # Should have multiple matching tags: "purpose" and "team" + assert len(matched_tags) >= 2, ( + f"Expected at least 2 matching tags for 'a' query, got {len(matched_tags)}: {matched_tags}" + ) + + # Verify the expected tags are present + assert "team" in matched_tags and "purpose" in matched_tags, ( + f"Expected 'team' and 'purpose' in matched_tags, got: {matched_tags}" + ) + + logger.debug(f"user_training_dataset matched_tags: {matched_tags}") + + def test_search_matched_tags_fuzzy_match(self, search_test_app): + """Test that matched_tags field is present when a tag matches via fuzzy matching""" # Search for "te" which should fuzzy match tag key "team" # "te" vs "team": overlap={'t','e'}/union={'t','e','a','m'} = 2/4 = 50% (below threshold) # Try "tea" which should fuzzy match "team" better @@ -789,7 +830,7 @@ def test_search_matched_tag_fuzzy_match(self, search_test_app): for r in results if r.get("match_score", 0) >= 40 and r.get("match_score", 0) < 60 - and "matched_tag" in r + and "matched_tags" in r ] # If we don't find fuzzy matches, try a different query that's more likely to match @@ -805,22 +846,21 @@ def test_search_matched_tag_fuzzy_match(self, search_test_app): for r in results if r.get("match_score", 0) >= 40 and r.get("match_score", 0) < 60 - and "matched_tag" in r + and "matched_tags" in r ] if len(fuzzy_tag_matched_results) > 0: - # Verify matched_tag is present for fuzzy matches + # Verify matched_tags is present for fuzzy matches for result in fuzzy_tag_matched_results: - matched_tag = result.get("matched_tag") - assert matched_tag is not None, ( - f"matched_tag should not be None for fuzzy-matched result {result['name']}" + matched_tags = result.get("matched_tags") + assert matched_tags is not None, ( + f"matched_tags should not be None for fuzzy-matched result {result['name']}" ) - assert isinstance(matched_tag, dict), ( - f"matched_tag should be a dictionary, got {type(matched_tag)}" + assert isinstance(matched_tags, dict), ( + f"matched_tags should be a dictionary, got {type(matched_tags)}" ) - assert len(matched_tag) > 0, "matched_tag should not be empty" - assert len(matched_tag) == 1, ( - f"matched_tag should contain exactly one key-value pair, got {len(matched_tag)}" + assert len(matched_tags) > 0, ( + "matched_tags should not be empty for fuzzy tag matches" ) # Verify the match_score is in the fuzzy range assert 40 <= result.get("match_score", 0) < 60, ( @@ -828,7 +868,7 @@ def test_search_matched_tag_fuzzy_match(self, search_test_app): ) logger.debug( - f"Found {len(fuzzy_tag_matched_results)} results with fuzzy matched_tag: {[r['name'] + ' -> ' + str(r.get('matched_tag', 'N/A')) + ' (score: ' + str(r.get('match_score', 'N/A')) + ')' for r in fuzzy_tag_matched_results]}" + f"Found {len(fuzzy_tag_matched_results)} results with fuzzy matched_tags: {[r['name'] + ' -> ' + str(r.get('matched_tags', 'N/A')) + ' (score: ' + str(r.get('match_score', 'N/A')) + ')' for r in fuzzy_tag_matched_results]}" ) def test_search_sorting_functionality(self, shared_search_responses): From 1524f1ca14bed2f274617035b5eb34f427617b0b Mon Sep 17 00:00:00 2001 From: Jitendra Yejare Date: Tue, 13 Jan 2026 20:22:37 +0530 Subject: [PATCH 23/37] fix: Denial by default to all resources when no permissions set (#5663) * Denial by default to all resources when no permissions set Signed-off-by: jyejare filter only for named patterns No matching permissions are handled * Tests are updated to match the new behavior Signed-off-by: jyejare --------- Signed-off-by: jyejare --- sdk/python/feast/permissions/enforcer.py | 49 ++++++++++++++----- .../auth/server/test_auth_registry_server.py | 30 ++++++++++++ .../unit/permissions/test_security_manager.py | 12 ++--- 3 files changed, 73 insertions(+), 18 deletions(-) diff --git a/sdk/python/feast/permissions/enforcer.py b/sdk/python/feast/permissions/enforcer.py index 2cb6608a2d8..4db0241ef5a 100644 --- a/sdk/python/feast/permissions/enforcer.py +++ b/sdk/python/feast/permissions/enforcer.py @@ -43,9 +43,9 @@ def enforce_policy( # If no permissions are defined, deny access to all resources # This is a security measure to prevent unauthorized access logger.warning("No permissions defined - denying access to all resources") - if not filter_only: - raise FeastPermissionError("No permissions defined - access denied") - return [] + raise FeastPermissionError( + "Permissions are not defined - access denied for all resources" + ) _permitted_resources: list[FeastObject] = [] for resource in resources: @@ -71,17 +71,42 @@ def enforce_policy( if evaluator.is_decided(): grant, explanations = evaluator.grant() - if not grant and not filter_only: + if not grant: + if filter_only and p.name_patterns: + continue logger.error(f"Permission denied: {','.join(explanations)}") raise FeastPermissionError(",".join(explanations)) - if grant: - logger.debug( - f"Permission granted for {type(resource).__name__}:{resource.name}" - ) - _permitted_resources.append(resource) + logger.debug( + f"Permission granted for {type(resource).__name__}:{resource.name}" + ) + _permitted_resources.append(resource) break else: - message = f"No permissions defined to manage {actions} on {type(resource)}/{resource.name}." - logger.exception(f"**PERMISSION NOT GRANTED**: {message}") - raise FeastPermissionError(message) + if not filter_only: + message = f"No permissions defined to manage {actions} on {type(resource)}/{resource.name}." + logger.exception(f"**PERMISSION NOT GRANTED**: {message}") + raise FeastPermissionError(message) + else: + # filter_only=True: Check if there are permissions for this resource type + resource_type_permissions = [ + p + for p in permissions + if any(isinstance(resource, t) for t in p.types) # type: ignore + ] + if not resource_type_permissions: + # No permissions exist for this resource type - should raise error + message = f"No permissions defined to manage {actions} on {type(resource)}/{resource.name}." + logger.exception(f"**PERMISSION NOT GRANTED**: {message}") + raise FeastPermissionError(message) + elif not any(p.name_patterns for p in resource_type_permissions): + # Permissions exist for this resource type but no name_patterns - should raise error + message = f"No permissions defined to manage {actions} on {type(resource)}/{resource.name}." + logger.exception(f"**PERMISSION NOT GRANTED**: {message}") + raise FeastPermissionError(message) + else: + # Permissions exist for this resource type with name_patterns - filter out this resource + logger.debug( + f"Filtering out {type(resource).__name__}:{resource.name} - no matching permissions" + ) + continue return _permitted_resources diff --git a/sdk/python/tests/unit/permissions/auth/server/test_auth_registry_server.py b/sdk/python/tests/unit/permissions/auth/server/test_auth_registry_server.py index 71a883e1933..e0f75d1d3d8 100644 --- a/sdk/python/tests/unit/permissions/auth/server/test_auth_registry_server.py +++ b/sdk/python/tests/unit/permissions/auth/server/test_auth_registry_server.py @@ -142,6 +142,11 @@ def _test_get_historical_features(client_fs: FeatureStore): def _test_get_entity(client_fs: FeatureStore, permissions: list[Permission]): + if _is_auth_enabled(client_fs) and len(permissions) == 0: + with pytest.raises(FeastPermissionError): + client_fs.get_entity("driver") + return + if not _is_auth_enabled(client_fs) or _is_permission_enabled( client_fs, permissions, read_entities_perm ): @@ -156,6 +161,18 @@ def _test_get_entity(client_fs: FeatureStore, permissions: list[Permission]): def _test_list_entities(client_fs: FeatureStore, permissions: list[Permission]): + if _is_auth_enabled(client_fs) and len(permissions) == 0: + with pytest.raises(FeastPermissionError): + client_fs.list_entities() + return + + if _is_auth_enabled(client_fs) and _permissions_exist_in_permission_list( + [invalid_list_entities_perm], permissions + ): + with pytest.raises(FeastPermissionError): + client_fs.list_entities() + return + entities = client_fs.list_entities() if not _is_auth_enabled(client_fs) or _is_permission_enabled( @@ -183,6 +200,10 @@ def _test_list_permissions( with pytest.raises(Exception): client_fs.list_permissions() return [] + elif _is_auth_enabled(client_fs) and len(applied_permissions) == 0: + with pytest.raises(FeastPermissionError): + client_fs.list_permissions() + return [] else: permissions = client_fs.list_permissions() @@ -229,6 +250,11 @@ def _is_auth_enabled(client_fs: FeatureStore) -> bool: def _test_get_fv(client_fs: FeatureStore, permissions: list[Permission]): + if _is_auth_enabled(client_fs) and len(permissions) == 0: + with pytest.raises(FeastPermissionError): + client_fs.get_feature_view("driver_hourly_stats") + return + if not _is_auth_enabled(client_fs) or _is_permission_enabled( client_fs, permissions, read_fv_perm ): @@ -249,6 +275,10 @@ def _test_list_fvs(client_fs: FeatureStore, permissions: list[Permission]): with pytest.raises(Exception): client_fs.list_feature_views() return [] + elif _is_auth_enabled(client_fs) and len(permissions) == 0: + with pytest.raises(FeastPermissionError): + client_fs.list_feature_views() + return [] else: fvs = client_fs.list_feature_views() for fv in fvs: diff --git a/sdk/python/tests/unit/permissions/test_security_manager.py b/sdk/python/tests/unit/permissions/test_security_manager.py index ee0ec9e079a..34d8e4962e9 100644 --- a/sdk/python/tests/unit/permissions/test_security_manager.py +++ b/sdk/python/tests/unit/permissions/test_security_manager.py @@ -15,7 +15,7 @@ @pytest.mark.parametrize( "username, requested_actions, allowed, allowed_single, raise_error_in_assert, raise_error_in_permit, intra_communication_flag", [ - (None, [], False, [False, False], [True, True], False, False), + (None, [], False, [False, False], [True, True], True, False), (None, [], True, [True, True], [False, False], False, True), ( "r", @@ -42,7 +42,7 @@ False, [False, False], [True, True], - False, + True, False, ), ("r", [AuthzedAction.UPDATE], True, [True, True], [False, False], False, True), @@ -52,7 +52,7 @@ False, [False, False], [True, True], - False, + True, False, ), ( @@ -116,7 +116,7 @@ False, [False, False], [True, True], - True, + False, False, ), ( @@ -134,7 +134,7 @@ False, [False, True], [True, False], - True, + False, False, ), ( @@ -152,7 +152,7 @@ False, [False, False], [True, True], - True, + False, False, ), ( From 7d9c06f8fd96e4bd6f8f53f2e9ab5f6f0324f5c9 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Wed, 14 Jan 2026 08:06:33 -0500 Subject: [PATCH 24/37] docs: Add feature transformation latency blog post (#5852) * Initial plan * Add feature transformation latency blog post and update gitignore Co-authored-by: franciscojavierarceo <4163062+franciscojavierarceo@users.noreply.github.com> * Add files via upload * Apply suggestion from @franciscojavierarceo * Delete IMAGE_REQUIRED.md --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: franciscojavierarceo <4163062+franciscojavierarceo@users.noreply.github.com> Co-authored-by: Francisco Javier Arceo Co-authored-by: Francisco Javier Arceo --- .gitignore | 1 + .../blog/feature-transformation-latency.md | 79 ++++++++++++++++++ infra/website/public/images/blog/latency.png | Bin 0 -> 177998 bytes 3 files changed, 80 insertions(+) create mode 100644 infra/website/docs/blog/feature-transformation-latency.md create mode 100644 infra/website/public/images/blog/latency.png diff --git a/.gitignore b/.gitignore index df688d95c7e..64f5056279f 100644 --- a/.gitignore +++ b/.gitignore @@ -235,6 +235,7 @@ infra/feast-operator/bin # ignore the website build directory infra/website/node_modules/ infra/website/.astro/ +infra/website/dist/ # offline builds offline_build/ diff --git a/infra/website/docs/blog/feature-transformation-latency.md b/infra/website/docs/blog/feature-transformation-latency.md new file mode 100644 index 00000000000..5fdce45f72a --- /dev/null +++ b/infra/website/docs/blog/feature-transformation-latency.md @@ -0,0 +1,79 @@ +--- +title: "Faster On Demand Transformations in Feast 🏎️💨" +description: "Discover how Feast's new Native Python Mode and transformations on writes reduce feature transformation latency by up to 10x, enabling faster and more efficient feature engineering workflows." +date: 2025-01-14 +authors: ["Francisco Javier Arceo", "Shuchu Han"] +--- + +
+ Pandas vs Native Python Latency Decomposition +
+ +# Faster On Demand Transformations in Feast 🏎️💨 + +*Thank you to Shuchu Han and Francisco Javier Arceo for their contributions [evaluating the latency](https://github.com/feast-dev/feast/issues/4207) of transformation for On Demand Feature Views and adding [transformations on writes to On Demand Feature Views](https://github.com/feast-dev/feast/issues/4376). Thank you also to Maks Stachowiak, Ross Briden, Ankit Nadig, and the folks at Affirm for inspiring this work and creating an initial proof of concept.* + +Feature engineering is at the core of building high-performance machine learning models. The Feast team has introduced two major enhancements to [On Demand Feature Views](https://docs.feast.dev/reference/beta-on-demand-feature-view) (ODFVs), pushing the boundaries of efficiency and flexibility for data scientists and engineers. Here's a closer look at these exciting updates: + +## 1. Turbocharging Transformations with Native Python Mode + +Traditionally, transformations in ODFVs were limited to Pandas-based operations. While powerful, Pandas transformations can be computationally expensive for certain use cases. Feast now introduces **Native Python Mode**, a feature that allows users to write transformations using pure Python. + +Key benefits of Native Python Mode include: + +* **Blazing Speed:** Transformations using Native Python are nearly **10x faster** compared to Pandas for many operations. +* **Intuitive Design:** This mode supports list-based and singleton (row-level) transformations, making it easier for data scientists to think in terms of individual rows rather than entire datasets. +* **Versatility:** Users can now switch between batch and singleton transformations effortlessly, catering to both historical and online retrieval scenarios. + +Here's an example of using Native Python Mode for singleton transformations: + +```python +@on_demand_feature_view( + sources=[driver_hourly_stats_view, input_request], + schema=[Field(name="conv_rate_plus_acc_singleton", dtype=Float64)], + mode="python", + singleton=True, +) +def transformed_conv_rate_singleton(inputs: Dict[str, Any]) -> Dict[str, Any]: + return {"conv_rate_plus_acc_singleton": inputs["conv_rate"] + inputs["acc_rate"]} +``` + +This approach aligns with how many data scientists naturally process data, simplifying the implementation of feature engineering workflows. + +## 2. Transformations on Writes: A New Dimension of Latency Optimization + +Until now, ODFVs operated solely as **transformations on reads**, applying logic during online feature retrieval. While this ensured flexibility, it sometimes came at the cost of increased latency during retrieval. Feast now supports **transformations on writes**, enabling users to apply transformations during data ingestion and store the transformed features in the online store. + +Why does this matter? + +* **Reduced Online Latency:** With transformations pre-applied at ingestion, online retrieval becomes a straightforward lookup, significantly improving performance for latency-sensitive applications. +* **Operational Flexibility:** By toggling the `write_to_online_store` parameter, users can choose whether transformations should occur at write time (to optimize reads) or at read time (to preserve data freshness). + +Here's an example of applying transformations during ingestion: + +```python +@on_demand_feature_view( + sources=[driver_hourly_stats_view], + schema=[Field(name="conv_rate_adjusted", dtype=Float64)], + mode="pandas", + write_to_online_store=True, # Apply transformation during write time +) +def transformed_conv_rate(features_df: pd.DataFrame) -> pd.DataFrame: + df = pd.DataFrame() + df["conv_rate_adjusted"] = features_df["conv_rate"] * 1.1 + return df +``` + +With this new capability, data engineers can optimize online retrieval performance without sacrificing the flexibility of on-demand transformations. + +## The Future of ODFVs and Feature Transformations + +These enhancements bring ODFVs closer to the goal of seamless feature engineering at scale. By combining high-speed Python-based transformations with the ability to optimize retrieval latency, Feast empowers teams to build more efficient, responsive, and production-ready feature pipelines. + +For more detailed examples and use cases, check out the [documentation for On Demand Feature Views](https://docs.feast.dev/reference/beta-on-demand-feature-view). Whether you're a data scientist prototyping features or an engineer optimizing a production system, the new ODFV capabilities offer the tools you need to succeed. + +The future of Feature Transformations in Feast will be to unify feature transformations and feature views to allow for a simpler API. If you have thoughts or interest in giving feedback to the maintainers, feel free to comment directly on [the GitHub Issue](https://github.com/feast-dev/feast/issues/4584) or in [the RFC](https://docs.google.com/document/d/1KXCXcsXq1bUvbSpfhnUjDSsu4HpuUZ5XiZoQyltCkvo/edit?tab=t.0#heading=h.g6j9jyjkf5sm). + +Our goal is to make Feast blazing fast for feature transformation and serving. + +**Are you ready to unlock the full potential of On Demand Feature Views? Update your Feast repository and start building today!** diff --git a/infra/website/public/images/blog/latency.png b/infra/website/public/images/blog/latency.png new file mode 100644 index 0000000000000000000000000000000000000000..c0271a3f4fec2a5ade3cb20eb5244f2742d5585f GIT binary patch literal 177998 zcmb@tRa6~K)GgY$OOW6if@^U1U;%MM_dk5ddI?005E`9`fVN4_F`-0FcGaL`8p^ z85#nBWN3mKoVwD`=S(d{GH7@)A?ZU|^jHibX?O;oTk;TTNyq>ULy?~~dEtnaI%3ti zWu%NPEs(W~)pX$oE)3x?feB7_I;X>F6h4eE!w>r}`{Um4+&2^42jlGyaDY3N9_^Uu zUx>jZtif#&D2;eUMU8yxY=~kX)E~a6dZbDA1_tC1^rB}QBPVHqLc>D(AINq4o$bfVleHi8m{T&`yCyyCM1W2XHY`E)$N_$Vp=HrFo$SM`K>DjFnwvpL8a%-hR zc0|C?KrLk!(+H$c8QOKZi16pxoE}r(a53scAwr-=5A^0p){8{e;Ll+z*P@t}ag`u9 zzrn^D#Qp>>*DsF}R~ZyGXl9ERe0l#d@Xq+;7M8vQpW+XaFA5)rAJ3q1HP7?De(HHBRRk(qszw}^xeQdaghm9LmC){uzqz@i1p{_ zOW8&*Kp7>`BxBtCDr5=RMM@GA3Yt2IaPV83uBWAZV>F4m*dI|ApuQ8Nv&ZB%_xi!9 z)k`otkRD!(8AnzqLa0nF7v`sqv`y`1?b(|xtEs@jX+HS9Fhr@}0H)>#1pd!gU)apdM za-XFzcINo3Ng3cHl%o5H^4(bc?_IO0nUsgLgwjcwB1rJH)B&6#O%kTq&%G4Iuf22* zk6SF}-j`6M7`DRbzaU`B@qY0PLTul!_v^YAog+Yal0s<+L8rr}{dZ$L(moB>Yt=kib0)jR5#^Fc%^+gsQVVt==TjKh_l;*p%b zSEew@tENab%Vfwzk4QM_`I@TwUjN>eOBzoMt*b>+Cu}kdQRfToazh@O>zhLX_TKW| z+Sc3L)6)AR+`;ww2NwHe{~vXsJ-N$rwmiJO3ZqA@i#{IQ_VLNW!| zld99^W<{oGrZ#_ZHODpi7;@$zD`+cVE6OyP4zXI;GeonbnR1h6(59GXJpR%wb1Z9H zb=-TN(Vl%-ZmfTC!sXd<%yqhUQawDKYtEjjkeU8Fg))zQ%s91H;vxOO0%fTFtqB>z zki`&Z2RTnBy4a*_U}j{BZstX|N~cO*Pi;e1P|77rHs@r)g_a&n-tswH1A+i<@B(zl2;Rj{nt*zWi` z7iX1X*1TRjS35C0YMwi%UB*+US57l;d184IIe$>TvADQQu|ogXtp2Ehy?Sry^V0m% zdR^Yq)5=(NSwpL}e7(ua!Lm(F=e7?|6R#1kGPky~7!f~VUz8RhZ$Em!Yh-Lh39-Y7 z)J*7(@}csLJ*md~R{J#-cxy;AN?A?d!zvq>(kdmYwba>}U((hoUn7 zvaY|wch9cNk1c{}m zcRF^Sfim9q-#p*V-z6XtA-a9mASSr((+S4~#>0h@gfup{x;V9M&iT$mN$IKCirI?! z)j7FXn!Y^>hloq6O6o}J6?+_}Ph#o^REJcv>o>Ym@+_fMIfsOYEaG{oA~V=*rVFt0u!eMh!i~g$wS7^?Pc>U0b=V+-N^bkvY0+a zwTZ}qn27`xa1zK*t~aGQRrh0K^l!?VMu)~pt$Xcj-AJ8BpSE4W<8L|j@rHEH=BZ{6 zd${YkoBMK8qJzp9?BsxG}e8_iD%Ha;4S8#PZmWA=DDH4!Hh-x&LM0KZ>9&Ysn3dfwxf?#8?S z<%V^?k+E94+DLezdoqwcyg1w*=T-Yuv8~~;s&6PfEh(8^qiOewGiPHq!8Bn|+M3}` zqs0oZ<40S$*VE%(TB0{2cA_r50}UP1OOr_T_IBe=N5!M_uiyK__bS9?4V9FYiRB&5 z{ob-;ni+q^El8@;nkx1AExeANJ2`%=*ygNOc&>au{@&L=9yS9N z+ZySdboN#+QCn0;S-J06VPbWryVG8FJjo-jGtp7+rPhJ=+)=V#0vZ7Aztuu*`fPXE z2^ynW?zHrME`GtUGNXOG z6?F7{HZm$Ll+$KIx^>P?%eD1IZapKZ6YK4I>%7||z@y;d??sXzGwA1Q*=yAcFF#MT z0J8hyJ@wnv+JN7{MAl%I=c(rPpZj`n%2M63^}=~#W=tksr|etBN%QSf@Os>a6KDh6 zecl)C4Go@}=Pao@DLCEh%A(W7>sY=?TG6X`WqC!@J?MP9EWEAQT1j;|bvan4>h!+X z-}&$T~e z{N|6#5)wSUE^sC=zt=Kx=Gs^f-c6mIdxFU}2!SB`DgQ@fN%BTByJqr~fOyzW-$2>m zjlK&`Vjxn8E5dxdor<`~h{*P!uRxyPo^kw#h)Ad;{6w=?OKsyYv>~!(LXs>Nwp3c!lQr{fV zwt1(q#Z9fSmsgY%#Y?Xp&<+-Wqn1xU@sVMBn9!%$Xf|<{mt)?t*8X}ccrV5lmJk-z z(ksr9*f+MIcAVD=g{-P}6znBAd;&4Iyk&v#K-`WR`)O(7oqBtqO{SiA`h1JdZl>lf zZw$~y`@`F+;m7hyYI}Lz>_k)CU-V?irPlzm{54kMTC%dP&-w}RJs7|#f}&veEdq9OXw z5TxMd;Cnr((1GS0olN0SooHHDl3E3mJ)tLkQ#Q5&DaA}9aLx?N;5f{aiL-a{! z0#>LkJA2boMA{F*2X*A2i;@5KNhKz?7mesv&mm(JCQoKv?o^PJ3Il!sBI=7upDmaw zd?JQ^z~#)y#k!|$DX{}P(YjA?%uXp)*R|4Y75V`Dls|Hp;nK~?&H>&+ZK#YoQWf!v zeg#{`R7%E;4k^x^AD+nfJD;jzp){_L$^C-9nmJ&54?nCer~4MPl@agt@9yOIdj!Qm zRL$;zs2|se7RAsY+JE~mFT5cCVn{cT+aahei*;wzl9Xa^KW@kADJy%kkri5@@tcV4 zk0Y1dJBvsvDc}RDU8Di+hP+obj#ybux#)&m2#|`C^8`T<3UcE;Wd!B)=c>TyG?nV$ z-Bj`16t&R9ZMfo%oEuzl`q;O2KHz!Uz|RSSgI=uwSEP z2^Jn7zf7&Q=Ks1ZIx4L!E4964{zZu1oz>(iWw>;CGGPXwtByP@f9hopRx&G3f_x(} zH5H^$GFH8Z!7mrHtFYrD2azNU*M=HO?3&i!gtwF*3iuQ? z57pN@Y+yse8`4ilO|U=FkMTSue%_!W5pT4aDaa}wXdc?BNf(5hrlfCdonFUvzlvSn z5{;H6)ONYZ>egz6KeO7EpoI+?%kyO05G$a5+BZ?&>w zs0Zm0$mn)FOphoOW7qLAU>5OKwXV1?Sh+4t_Z}BGeUX@5ce5~BQB5%PKGi4HNzzOu z6Bdc3*f-f&=qo<>6`$O1^@<<7;Fk+rKPpysXyK}GiX4{`70TAZ}pXp zYg@R2cvt0a-SjtK)oxx~=1~Zi!P_@OI|GsIdj~y4y|FmrFgFv@1IjvNrpo$ zI#j;+j=C%syD%4CcPKgFQzkHVJ)3vd$Yklct?>0e>(w3)SulKt1d0V0ghDD-<6LN< zaPB9*5B997NZ@z>V^NHgmeyDLI>yPQeD1Nz3nJIAdkrxZl0*sy0wyi{E9NgcFcqNT zwBX$MGQwuk4C%TAAS!T!c<(S?Jk141x#(EFhFmwZ?DFXZ<%>W@MJE z2V(-v|IN{Le-w#1Z^-YX{DR?QDsLpvcJ`VTwaN$)6^WSup(Ki&27J1Sf^^1^EG5e< z_j9dK@mOl|I!*-*n!ojf9UK%=fI($!Ud7k1`*DgL@1~(8mV^SUnZFQ59_UU4B)Fos zg_WW~OAbtpiGK$Fk$Rj`tLah6SzwpmH;!g8^1prWpEavrd9APuVGK*9AKGHJotZoi zIbD=P9LPK zf&>?*q9RQ}-uU-8EMltOVi#9N_@B1|e6SXMNNzp9M4c{(z+CfG=yaC-gWi84Q`in<>nC@g{`rndtr>sN$%hYREzgp=9R5 z!-@&~8Xjl)ec%fG{IYdlKoX4OaMn21^Hwv)2YmukXQ2GP?jGe8wuQcI zD4$YFnvarg_9S<=xS081Kf~}Lc(D*=(50K*Y}f^#Yf_BGu9~*SB6xK=x1Jr!hrCLV zpt8)D7%p>x=$mTy&R?w0&QZ8Ag=T!gj$-QcCe9MiXsBZ~ExEt2yfnY4=wLwvn1IwJ zXU4Bm^EpI?8Xu0WE@n8Vs>oOKObpgi3+ejlCg|_wk|otA;>KoObuqhLE8$BB zlfsB?ZyrkT-_i1oLp#}@#SSeRg(X7=RD>s?g)OaOz0US?t)nvemDCm$e2_oZ znW)vQQ7n(PJTbdEiZ% zF+o=?qeMhEz!lGE@Xjv*d?ynbz%_Z&GMI^4s8Y)hn`^}dFzy+yAT;tX1Yc||q-X&2 zMol(dpfh4R|4`yWv}}gkpx4Etb=dA|`1SOy-9WS*!&J28v*)qE>?|~Eo2xYoTZ(L; z&gjxoMk^7S${ZIegwV3(2EW6V(-yi&3k3u+Z+j<(2$18zw>pH5N_ODm8wCMn==B`n zaVuS^q3iu`b9F(@y+5Mwux_`SEozPek29^4gKx$u;UK1PtNy5H#E*;!c=RGC&p$Ee zs|?E>t}$?^!$)N;ShFf9D50}tI`P%<(s6Y0{z_a#D3??4wZ$-P_2-1@Ih1kP&*n6( zE1nPWL-Q2hx4gy=9<4uC4l1}IiSw*;dm?C1kzJZrbbBm!pC(}^v ze&9eS{EjU=4$Cb|r9@1glXjgha1URd&cE`MkQ2j%j@&^P!4*bFl{mPMX`wi(O%EG# zRKW6wkWG}eo=7PJoBCxV@b%hFoBQKNL8E?THj`xgTKN@49PtFh*eK?>UWUZ+lTzv- zqivzzmLrs)6JxUx6G=!($m6ss6CLIk?Pa%Nh)!29^Y^qfC|IwPeyS=o09PF2vjyz~ z#q%qJcbkqm7v!0)X^kjh-U|x5PD{uS2PJFHGiR-q1jmjUx=?5}tr6nVY4NG)*66RD zKKJgt)9UyG5Xe2Ult50Zq+|`XqOybBxYov9VYPQ?VTAQpWcESNC6t@q;;K8S#0aPP zNIjvc6tNt#AM9*>oEbP~o$S0G`(aLrmt_4AoC6p-vEQkZ=?IuqkZrh=6q zmd?zIE4zgy>&BPi-5HZx%$LRUNheXfQ(jGF`210vZRS7JsE3;kk+3KtNt?~7>{E9ASz$`N6_gH8{DeM*dzwBr4o*8;q__v=$!-+_L;d8_utBSbs z)vw6%=*$!El@K&~jH*8**OchgNJP!PZHTlROH}n-%|K#Q*5ur!P%-!i?TCnUtFfIToaScvb8bH|l>DtRDXH61iLlhJt%8(z4Jl_=A6hA)8 zd)eFvf8b*wR%3gLx^o16$Z`1KPCE@~!9KTVy3!UW>_PDGSH*qD%QuJP@}e!?A%$ z?&FuZ%5aEI$`NTkIrVZ}@ef>=kvPwNmQ1_*BO`<|Op!GE1pmx2<3*$xw#VfcMKy9K zM=I%{lT$J$Q?p(B@-m{WcBI&DKhM*nzLU#WTc}*ikk{#x^q%kNsBnN#XkYIyA6`2@ zL05o=cFVaalE8+6=B&wk;QkC7|9FN1jcG;i<{fP;`5e ztfm3KQImn+W9Ks+B;eqd+%2+5!O1QUIl9oG62}PF( zm+6U4mT^3_02*i))5PzB*V+hkNGC$9(hG*3e_MHf*`Lc+NyJ{(d|KAD-XP95Qqv}rs-IhF8G5MdTBn&;I@f}vk+<^cqA!M*B#LeKY+RVA>^)* z0Li*@#M2xh|08-fg&$dLc;vf!f5~sJZ;qd>+$wXCSEt}!lhx# zFhDjP;`E)et6$34N1YEufBs$adY+c-lDItVp58`hq1k5dJ(7opNa8Ibi%$Z2mRp3h zPhuEL7PuL~j1CYb;C!-9t@r}i0#ape(_dj4H+~;2qX5|mkXl~kZSL5u#?AF0x?X_) zHy^9xABS69i471D8Iqz(0Q&bhNtHcGF>L7gg>cr0%0Ww6_Q_B2dP3?IM4wc)7Zo3{nwE6^MWsQpw;M&ohzL^Vy|*$6Y{W zk^LmDIZD8*E2V5Pggn1k&ez7zsu+#o$!Fy;rOk~K+9y+BX|=J_qaP;f+Wu6TI)%%f ztHvhF<=V~B*x2X*b;A%%I+&yN!j<0ppNgQaZ~lKxK@!F*$nH+lp!XLAyfnp!@1un= zxM%u6k2$`GHBg7AL0Kcw#%k;2B%l5f<&($a z_CMuky0)UO;?w=%(pc*hul%v##Tso`5B7MUZ$B-sth~QEpOQRG`A=M2U&bF?Z|d4U z*_TT+c=aBR+wG+M5fd@B+A1r1DwT!?GW0fa`Fd49njDI9)tkdmv1~N9DQVFR;&9i( ziQ6cm=!^A0j+Qa<^9fBt4hms`zyzky0?^amcu~Wgww@HOk4_50Mqlpf5QmmNX#55chl8WCg z>EQh@vf<~;bDk@A*O|2D(~p;5T+nrf9p3NjO;!V#_2jqVTMc78-SzOGuercJ z(o;gG>KUazh$EJ;1}rQ`)V>|KvgP+T!iRYRNyvST174=KURLXL8oJgUwx|95%~I?k zcDi2q1tDPY(`(A7ozpMhTY^yK$7YXf3D?@oo+{JW$)r9fXyAY|B`18aexK=n=i#Zq zj*6))Em7g6v1xfaehQ${L3!N643_O%bJ*9>XE+1xt10Zbty-SD>Vys~wzO<^u5UJ4 z|8yn_0+NjJH(v6j$GYZ94}emv~3IN&YQQ>B^*2p ze0&h!cgT@Ti#(|~Z3jZ(!HebY3QwXs>j(YFktd&6TU^4(vOW_hc@^ ztPesHr$4Xq5D|X_L(9CbE-J8TZf; zKfz{EI`sRi#R9Z-hQDMSu^UAFa&vp@BGgN0n$2Iwv+o{!OGy(+o&xZ~rgvexsn|yD z{TlvqUx^^r6>$m8ho#{YbRnHQl`XHVU@7~9}0xSj6!v?A6d-8rp3|Enp*E~mJ7io zU(P;y3h<_Hzu-ne;A`bTmhJ877;(lYuYnQ8)U%1WxSe=S> zpXm$geK}vmeax>Psc5wDLtm~Qf4?=9_TX2T?Xi33Z|W(j|4TVv@dMPM*z^p0kxx@U z00nHO;`b%0N@NL0^PPKKY=9F{G&$WaNSWMQ5J9-D<|r?QxRR(eK2{wM{%Xa&CMnLIKO+@fzo|V`?U<_Y326 zj+%k!CoO!tr0`)$K~|4~D^H^XIVI!5zfHIp0gPd933QMXf;kQd!C9(On+G37c}rZ+QNs7 z_2%*)<)|HfcN)Ydd(f;5lSm6c)ZTh^txd~MRF@78)`CsO9*#BLB}2(_quD28_r}iX*KWzUOlcCHV_MCCy*PzXa-U%WShaRgx%V7OdfPJ&>8r_Q8HLb!vbRz!HyFLRCkhtz%_7R=SwR zlp-NF+UD7jCr<(Z(`*gTVk;+A_E~L#dycFV>S9hb)7+}X%Nx!;mT&!VGbTE}XpX}a zu=MnB+%K$XnMf3kOwUpu;~IZCH#gZhIF3*%_4jQ|n+q-Ek$?$)8c+Nw(Q8E!Q6$~e z`}@uD0djLZ2R6dbIB2aQrK;i|j?UQb9&2+mw;KJ=9Tpud$dM$36%M5o4U;k5p;+6M zR-1u!_aQ$0Lc>Q%$+#_ffiS`AWM&i8BinrQF8_;;uZ$XrpAmxu-svB2p?o-cVxdxP z+9|CLa^kbp_}1^&JN+9s#G>%62v}n!WegW8up27Tuv{+eZ!R3A5|2+l60|IL^QAJ6 zC?YIotINO4C!@Y<2e)dVgm#h*fQX|Am`rlRfv+xpEa-k+y=mB<7Teoh?9{z(f6|nIltF}DS$E^T?jqV9q`Ci;$HLlU{TQM1q~GKb zy*jc_Gh}pG$Nmo|OW{@4NF(qjM+4U|HVuDgL_pG7Jq>gwd(L7=Q-le`lndm1Hyj7O z1|%llyR66EUyQ$;eur6<61PSDNIRE8$&6;&ZcKE&c?#P*vQUU7^KDQd$ySTZr8GSta`a`ag zFfu5ytx5{=T)GjJFxBm!rGq{h-xqlbSnz3$;g1FDAJ*2(UB1RuN!7f$yp6%B1R-pk z37K}r_tJY!m-}Oh+Xfa3m4Jv2`f`#dI(TKRD@D$Dzm>QXa{7<97Us)=L+Bof@%x^Q znP?EYb8zKg>|EKlg&+((OTn7fMH}%HGWlWeeZ~E{*J)8{*N0k@{=aCOxcpgSQg`HU zcgLc8I2g`wd$uvCaAqzsa#Uwmj=TP|V%-m0ag*WEGf>}o`XdZmuoO@wMzm~d!}XBw zDwrA6L(=d7z_@19e|X7I0yC>(J}}_55vg~$U9*JK?Uy&LZvkce7~1L=RgzqZF=yFM zpm9k#F_J;A6i(AlR%Y%E0F?C zkEL4C&_kn#m+RtrytC^i<>nID_(JQC53wBV4#vW7Nze3Hwbipkcfc3Z-PXPyA zVt};vcb)gt++%j;dEi2ke5S$hIKuuebfV`k+7k#xrOq)~SN8^PPEMzv`DWU8p@)Kc ze$HsDuF35tRW_ZB@MJ(Xk?Bx=WoZU4qfp#+1kr?w3Z<^6`12Z3{#s6rNY#k%YK5PP(wa7`s*kH`GRIBjis%Gkt075z$Z=;TF+B1 zG_bg%XSI&;2f?=hM=r4}CKe-g%ai>sug)29mJ?2#I60H;N0yCpGnkV`>Kb)}z5&hN z0itrhme13?^ zT$->yk}+3YXUHi3%_p=Fr|H~ zMSS;UGHVRCvf7Fk5GoZh+B4Dih_|>z?>5KQO5G6+3dZSN;j>A+ovedd*nlVPrB^*1 z-Yt`_et9@@PHHxR@%dRc$3i-3%clW#O&*n>6hsvmD=Pp%JJ7FMMe2c8 zlkOg+B})lerUrAKEF;_8&Eo7=Pz*nCbr^N_Zv}*NwltESBDF~LLl}aZdQu$1g&P7e zCkM?RWP(4y{M!++j1I$8!Jz7T{1GSVl;Q*t54>@Dsn`5nVv=6K?=^ZuN;fK5Ncg8D z&?u-QfS8TNtDk;hQeWH3YFCF~(kb8TCDo30f{sBpdCcsXGv-|L2M=NXn%vTv7;OMA zJ7;1pMZCLALcxL;5d!^vZ|I^)8G2eaoU989(fpJXv5S#uX>PjHlL)+`hM*2c({k#5 zr{DnSl75tWYn}Rluz}Ob3jtz|+m)mg+LBOv$9T(`@AARBrR$TNJ)` zKMzi`sl&q7rwHXv*CgM1Ul0t;gBv>clC%kOJwi1wS7 zZQk+#k^B#+6=J!H-gZQ3KdnB29o}X*pk!wDc6vHkitPx3006Vp)#V?%pHrvh8N(v6 zzPjB?Zu>Vfm(6gPm;beBv}qzOA_dSLAsAwzQ(<|$AV|fFCX)NkHZZ;KVV=$fr!|%| z$)_9#WJx<4n_b?)+(}!;tdsTB1gGi-ib;Ey&rVyNtHSabM=7imtoCfy951YO+i4sz zcqsrtgA3pJR+}0!DN5yPti6fP9P!Jl4u7SQ^ZJD@ z1RD-R1#S_=qW&kHmP$!Y=)L!=l2v(-cssd_pd%`-5IO~r{hHC}#Hf$&rhDIA249vy z#42zZ=D*U?a7E)WBpMBge8YcVjb%Pi+miq4oawU4^#Sa#5UGNYBQKWl+@9>d;?p!; zefHC*e}zMYd-&ozXC(EbH`K__z93^>n%?fw_T~|R+d?&s^_ygH{OJr1(6z8294;IA zeZ0l-i=NWj{i5Dk&w%=QGYLk(R zbX*!xc5aR;#-hgR@ET@;emGyG*)3t8=k$^XRpCo@|DzK>4_^L9b%nr9{L(u!( zH$|13>MOS!9M~i`Fr14mT$y5>(bZb(lgfp{mx+mvH{*xFSOEC?*|5>_Col^sP?_@& z1rQ3cF}-}hle1s_isw*u8AS|bCVl(#=dVR|oPqwkfc~NF^pU~!HLHo9*zez88*GpS z9rO&$QY^;#JUZWg=)N`c$rEeV5Q_VoIeZ3LZ83@r_%H_Hp8Coggf00&^&G>X?^!R_Fz1JHvc~T( zL2`P}581!jcXr;Kff3b8ovD$H+_z7=^3YdWCq{%xFd9t7_rSMwmDm+Nf&K+{xnFiX z#Y@5be1zBTKa<6Wu-|jZ#+ewgG!QY7%E9lXm}t!*(`fxcJKf}z?j}awgI+UUpM{Yn z+!_`W$IQtq=`b9dzUmRUT>4ZSV$RidW`=~fHkg+D6kP~RG_Ej?J{a%h3P$$DHD)-I zOCB5Zwvg|*w737K67>dU+eiQ@x8SV~;(&H6?@O3WBc53qv_d zP5iO_8HqwNf|Mm#sZ=1ykqGdaVlyhI-hWtiG}*t!D>-BMT96p0IBjgT+{*HJDcgKg z*=xn|A;YH*gKCHmOWnFcPM?tWeik34YUJAVH-c(EEEkuZ&{wjN-4b-8NR0BGj=DPu zn0pOmr(2>1T=Z?Ny`YIKOa5U9KxknpHFdMcJD+lFB;6y>;}KpmRzxNoBl1_f%;Q>X zz&}w-J-LW~vkn_A6wVaYvtp2OMx}6{$JMJDjcb|%hnRf0GC7R3?MK|5M_}{cS?>BT z?<=k(vhoWfhO}(4NhND47;Ya)sw2p=OAM$Fwc2TG?EF1Ft6p=(P0VT?U}Z59mh(mf zZdjQ*de_SyIGK<>xQq2dOlJ>s3jC3V&R2PUe37mF)8MS5He+%Mvuv{#YR9%*%6Rl1 z+i(~lWQvkvWOXWUimBl;O;zh){kscInD=c*wTX#m7wJVnD0)x!5Hi4wMjY$*FEBBe z902qiXHqm0{klJ^M7}=hTF+a`Br&$oe-TfVBZO^0&l%^grQ)M@J*VH!cPtF;=7_5F@h^o7~X*vO>f-&2E{>pY`Z z{hK70b9oW>nXsI#vAZiyYw|vHPv1&7UH3#>?m-Ta^tcV~3;wduFrE}{?lkCW~5=A6eu61&_vY@FAX$QGfOHLqwb8H@4sXvZf z^Y?3mU50jZ{5iYOUE_^jIWL}|1-_ow51WeN#}mw`unzz(BSjO0Dch-){P-w)9|kjD zOWZU7^~$g>@Orba9mevpy6FSSH`kU01%Ex9!{O+5Je&*UGZI;>V6E$@?$3<{b-F9T zi*8qZ2ZK`|VCc-*Unx?FC9W6NQ4P{J3O0{Q|ASVDn&bE|V}^>Ao-ut_Y~mESEc4 zI6{vNrSvgVoCv|ZUD-PdFo~&9(~J;mVE!z(pgiyxnmJ`iDti=%RmIa)`3V0_^=MP~ z-$rKYwE-fcJ!2c!!?8uX%R9;h9WvNVct@x6#_L)E{40SnY{T>U^dD5qdz0Z{b=3-B zrfJk?Zz<+|kbk4NL??@t=i%%?w-JC80C z@u`qf|H68vTB~Y8z-1jXbLCxOJ3Fy&q9Y-`Pp}&1%ZkRA@PRhdZpZ0|sXg?wz}bbv z)Ggf^K{{dmjs0Oi_Dz4_^J;7mOT(@S-6Mm=*v|Mw)2VceiQeyr*xA(*EaXEzINY+z zQldJO4+8;;S&7tuv!%XM<{#DEom_@t$hcM2=k$d5A^t5GYJ7a%^svFqgG~)@QPBPHV@XlQ z2cwdOa8qR*5DO40<}-%X411lX{+_hNez?Gbg0L+u#>If{lKL>oWBWJ)KB3*N+Q z%{uWE9~reyAFmHQ^`#_aaJ`7BU%hXRU~y*v06w~jkuy$%-%Cf~l_p^_fJms92l{W8 zyHgX|3rx?a3#$bkQo_}PrrVZVjn165qYd|{mQr(-fkQvW{Wh?T&MdA0y1NfXBmnpn zKB-mh-k%DQ+oXV3l4<+9wM}GSC1e8Q@&_6Ssd}+S|3ufpysN!epci1 z_FTWwVbyzLHOx>O0iyd2CP?@Ue^~D|*i`E83zd|Vk{DX|CB;v?HFS zI0XIVal4X98Ps4=f(3`Nq)o;uuUTA+MhBWs$QV-iGHi$a+7%9qjM5=Cj-d~!i|I)S z>4^-|(H#~bZQJF~r>P9&G$-6}Ul{AyVCr>1oUVM*>93DB6VCr)H%3W6X2`&JUcCRM zTvcl#vv)`vO(afifA?d>^vsr`^qczpG^{lF3bPR9(4__h--HC3NE(}&!x=g(Lz_J6 zejf+o-BeN_wbFV-6*gdboe8Nx>>X;O9At2PD#9C08B$e&030=fD6G!bpslg(lM=Gz68U&e=q zKJ5n~6oXDRitW$J^jwjr7g*qdR~kiKQ~aqL??WS5CHx}aHGwQ;1jw6&*Expmg8;p>Q5X&&p}0Pa`t({b9#7| zNW;Bk!m4uQjt5j-Ws&8x?fwLC=#G6>#~)4|SxSh2`^@%ooz}1JcXAQ939Gd%w(ny# zAj5B!9sl_4XBQH(M{=?mFDDaeV8DvZLh9wDe+5G5k8+`zN7K`gNU@>`d+9k=4HOJm zWYG=aXrU$q#qZN3lm1+tsM-EyZ=o)vY$6rjRHX}p(hG_7oJE2=DY zC-29?_9&VFxENupd~o}Bchy_G@Gz-slE;yRl!pAQxo>a^h@t8eor5{3TAeVPUgZE_ zsZ*J%L~KvDP@ZJ@jFMgzAX8MyFO4B3l}#D(=o0{aSUk;W=;Vn7Kf7N;(6|1fJ-5DC zd(m2!ax@rX%7%-M?NDccfeZ*$)sVv$?`Yt8dolq>Mf%7WzP^h*Ut3YNe2fFu2@*Q zd0#04G$A>=#EfkvlazQ*8rS}lfhXNlDNk{Ke5!%AyAS7w9 z2&tf6WFPv3;d<_78Pg_eaC`aauIvKECkSX;5ySY8)NB9*g`ZXMOk^SZIA++GMX3>O zs&)KMbq)2J+??e~Fr7_LGZ`PNdpIY$5M*w4QS%(?#3&P#N^?=^zfCC|{SiT7XA`9D z^&@J4r?A>Cth++BZ^7Q4M{Pm$L;y|K+yAT!f|4_-eubGe@5Og^*tp3MnMJw^!2OYzSkcrTwrUEHH2nbXtgW@mIe)X9{ zb*X@q;**i-L5W3T|2rU+#iaU6Sk!#;TLZw3e|6?fGxV>$f?V+!N<@|0_&>b=9y2%G z-jF}886!b4l=h~{+$eyW$FU_r8q<^z$~aK|-5{TmNcz^Hr3? z(qEiZ=|9RVhdh_&`c8alr-O_|Wq4BN=6yj^vCk*7U14)9S^GDO3cHEG>Zviu`ur=Z zrFeOzl+UfKhq{SsRw^b!=!A!lKv@Tm(pehoE267j2F{!Gsw$wbga&}#Ek0(hL$2`5 zS%6Pcp(Jl#niEUBESIP^m(NIHAT3%TEd|kN`7b18#rO|>@=RDRdihm_=Ff2vWxRS{ z0*hP|)qcV&nQ_2IVp`kE}C zZqQWpBEC)Fo-0IJ|CU_;cXXru*!`K)Zb%5`~KN-l=t-D_L^Zm!iVLk9`wq zE-*AUV(_5tN1E?q#h-BsroI4sppJ`q#M;Mg=Pq;WLbW{d_(_-+IlS`K^XA>*QuH&-zex2M5VD@LmcV z;HYNJ{eYegDO3X4iXO+hEDs`fK1v8*S!4)%*$tZ5kdW*vginLMBs6=9FMA8OonenW z*p1UFy1LJ1iA_w@ zc2bjMw35y-}+S6e(xW8iD}yxf)@kL#iT;%4T%^A>{UMOb#@!i z*(p}?W{tVv-8JZhlybbHp+70hpnZeyw7YU+j50O=7Xcxf%DDu0?(4$B-|5L0Xf#j^ zYxHFGrDN0#bV`}Qqm6e58n9TmID*}sGkRy^T_(K@G|LnC!CfZ>@dY(0GUl&S-Xmx7$cR!sB1-ATTtj}>&&9K` zIvfgSka?-tQ^mBjH>N=R!M91GZ6?#}vUW-_Y!pc}wg)AYf*9l2zv4A%E8~-j_DuBv zw+};lJQBqOk|@461EYY$iShjm>LJfy+$JuTr$BNRI;VoYLrj?tJ(GWrZ_nY94F|ub z%`52FbY`2xVKp()rzj5s8J}%^OIFq}Dw#PF?FzBnyAVUe@`#VB=7aH&>b?{^7I(vY zkX;W#ajitT5Jn!ld|Wod*P1>xQ&yoq8L|5n6QG77{A(x8dQOEx%LOKvxhpLBEs6gf zB0_=jPyf^VSc)#@??@?m<-m`h#IyEuQ2ge=#|mMonZwy?Rv6tIufo1bDUZzoR8Hx! zQBw`DUH29D+^V^qUC6prpXg@6&})Q_L9_ye(bq}Z#KnYJ*`oM(^s_>KBO-;xgq!X= zO)RxF;!C$hzkQ1@`}fbwn_hno#~jz)LqMD|$p>QQId?Q>TTkB_yO0~^2q}XsfHG2g zFgZ#NGYzeQ`R)`tCCYSn-&o+|OB28!b&Jcct0FBPat>urPLVWfp>2XHM~HK>q~Dw@ zr_pk(&k_BA-0znp5(#@@d;rTDzd#_5HAA9Vy-}&OQW~_6JzmV8B&pQ*MwL_p45MQh zjU@V=Kxn+nDfPk>dS8rPh=22hb$I_F*y|Ae2Y-4rxxV9KU~mOrd0!RiCOp=QLPNt; z1wj!{ASan6Lif{)g@!e|Y40OF*6>!Rc5fB>W?z{Ss>tSgtXqTk5{VKo9fUwxQxLE- z2tm;~>>c#90S5y~%TE^Vuq)~M6#{w42ITcu%=qNvEPt0hcKK*XdR}?=Pgg+ctZi#9 z>3A%*vA%@?24~!nd!F&`3$d12Wp{ZNP_?tFhbs((*;fgt%Co1X~Hqg1MBNb7YQmiNVV<-0Er*;#cm+y2zV{liyiWV-|$EKeg+>x?3+bq-TvFPMrx zJ3uXbuPbrz0?xxqLQ{B%PLK4Xjof^SKO)V-`73Pfm#xaASoWN5ngD(O4FCl zi>Mi{&*yneXlTyQkfzp5zplH3i5L~OW67#<@$G^U)N#EEY)+-uEwJ_5K{IppIm&wZ zp?d6do$kjN2+oRGDc+Zp1wC7g^jx?eNGSC2(g){U2N_CfG$S(4hlRy)8rC+b{%upj z#y<*wkLv2$GShD{+)3TP3on1*yjjRM2Md^un@4k-U=)o{<$3wq;&P;ucS&FNcGq#E znF1wy8?e{D)=uNLNX4V61;&KRWRO1~RgdedJQ?I4d?I|Uj!_X8+P-tb;mV;akxRw{}fiz?hEMSq|Xao_wrhhY8 zNjoj^c?b!Qzzkp zY4!c84Psv2#*?EB5NpU3>udg>Qi@8=*0ENDyg&CJZaKcxFVN_J8c~_ca&kBwN+)VQ zs2{ee9yDk&#sOAA{X9GDqr*HaCy!3Er%)Nv=Qq2qg$8~)H)KkTF}-4O%Wtp{eqj*9>N9Y0tkeRxa+Z4Ma@>xy(1K(9m6VQ&`V3yK;0XpE%zJ@^h5mUHs-Y?7^wM*p*35`xVe_coH&X7~7S~y4b+9tT5TGGr&26P(C$UVEW!cd4 zs;T2WUICr-bgekfXM+3t9P(G*(-i75@Ahx22YU)rI>qLntARu%SHsCa9mlOs8HQe- zRviO;Kui1;U^$Y1^zOlnX*9)Pr2YKT^%tXm%Ve8BHh}-9& z3d27F#PZYV5-PngSE0qa@$vEdqj$>z$euIsW+UY|(#)ssB1NGJ@-=XZ@9`r-y{(4v zCE;zgQNQr{&0nQJ(b7UfQuFq6);CX=v`_n*zI#fSFDQt6eX)+>7LRNkHED}BG92qC zCthjl+ZB!r4h{9CB-;kEPI_2^2iZbCi>{R4uZ;-f-ov)@)=?;^7Tv$>hy++TSRb}u zH3e4$u(sY-{%t+(LNOuAdxJGyarW3XEyO(Vw!9IKB7^|0R=hj%;BXd-yEK2~%G@4V zKg%|9Zb-K6TD+Sk$PcAm3+|=VRA*p4qU}r{K^Z&Vj*9%15aHm%;C7>Y^_RlqIzN~7 zVRUZs0|gZlB2!GrXUzA(D5%RG*CDx9^+G}|mgp`Y!4d=%_sC>)cdM+Aa=OHmTqqRL z$|t!aMc0R@?b}Cwx+&7!%X38Vi~xv&y#538YlN>}7#8+Pij;$ITc*P>U8g6%KW&{? zEInWqH5o*!Hw{uw;E#kT^C7uT>C-v>5zRUO275MCsZC70;=*6WgitaH}E!E zs9o*k{)L2X9+h7lw^t_iirAl2Xp7`+8-uIVS1ax zR|{q$sX2G(b#CK(ptnbD6(^y!wjYoDj=wdAwPzT#!us8vJ)1F463449uF7B=1;SkE z^LHWZ{yFYkoTk}cT%5D1Oma_mQtRzE#o6+6va;_bAyC`X2L90s1$lM39&6KTH+q0{q3l?o4kK+YBy$ zR7XI^_0y9Aj3t5!3b&yY5`m8q@nOO^_gf+;L5SB?c#28CAcTB6Bt$B&k+VE5CF1B=7ovx z_E>`%wKmn9Le_QWe;upk0D|}go4BlR!ectCXR3EiYAewy$kr>pxMGtn&gFn(e#`Cn z_HO9mZhLGb(2^zwc;NGn7*CrS4++8Vrk^E@$UD`L4kL% z*FZzRLb>;1gPfDz_Ge}}(hF6?_eTN-Z}D9c%pZ}1-1sNc-}|_WD;0Gcf2Lz$N4`f1 z+*%ejrRzot9vp?_c*{FC!a<&UVL1$UaYozoKV~B%-PoyKy~PwuTbC6+-Hmwm=w}ra z@E)qoL{6s$y$yU9hUvnasCr+&VAFEk?XsgyLv z5Lm%08eO-AV+bwiYz9i1yrlDYnNFABj&Te85fgU!-;0X^knf;7*sa+?LSkv_R^6A!qWj9>Y0FYdfq8ObmqcLWDS(oD==Nb4*0|Jo zUf@hXVa_0X@jYvT^G&(Y(5!vqYOc9nM!JlPXINQ7w}BSz&CBrdgTKya8!}Q7g+;j( zLZc#&Gx_P;+2dYEo3`Jmv|;Msw-V$PWZyddy4kMq25%evVh@Rz?v5pcTSA7sgH>dy zB4!-I*KJtrXcE;m zxUwFo1|T1%n7RhX;-W2+tu;d)npreoZ2kOUp+#)JtR+~MDq;5+4!2<#NTbXgaA0I| z*O)%3CbZp>3{@*DD~HhlL23pk@TDX#k4 z%h_BC=-z%;Qdo?XqkdSku`S|!Dc4Q*tVO-wD!D(ZjHC!!PNjNeHf(9f#mrraIZJJi#S1Z z=}@Ox*d0D}jTCc>%Ya${Hf0U0x zR!ebv^gl{H(lj&w1Z2AsCnq0;O1=Vuu(|SDR$69>`_+N-CppVCq+^K@>UJe7=b){j z41X&4<-w>jG=Fi>k~gf&P<0Plg54r4ZewXoKDo42TI?}Bsbe?f`t6(9^L^9=SpbZN z^5LN*i)RU|#iY!sPu0#a4B9{OmKBAY{`cCP-+@U1JaImoM@>e{;LD2pri3Aol^?PE zNK?OyJfmf5r!yoEttI7-y*wKrd?dRw?_0c%ENW)TVw_wOuHK}-UZZ|W*|a)ra0Ti+ zvW^Zoac4D^+3w)a!w+X5w>r{OW?gqpq!fPPrN`X+$+mSmy!DI<*F|?b=R@B>xwm5B zguZJ%l#TJZ9aSl*rEcb&i}M1H-RnUbCH``$6n25xM=aE&JZ?JX1l^XY!J<|kwak7r zKa3&t@7_iI>Cm~C>ct>62k$xQ1jKu|`7+@Nxz2?5#)xB4NKz41&STPWrg9~qew6L0 zU#1Tg+r6rDH)0*K^vPK^)L$zvS=VQQ7S9F+xhuuF4HF;luARDjUC+clGv06KuyfIJ zR(O`{km&}x1sobSRlA+V1xi2eJ}dj`>NXLcwk%B-9}B^fDSH=liXS`MQ4A{t1w(xP zXsUh!WzH^Tn`>#UUY3+DAZsMaE7cRmeDD<}Uh`=lQqi=m_$3~0GiD9V|0a!oFETy4ajPkU#VziAwPA;lB=vpDS{Z9O5O7FdxC3nW|p~gD98XVJ%z-;h5 zxNG&-ubSi}HiJ|tDUL7SeEElPdTcu_-i8@Wa#e$(At2DF#l@xXQN)FX5T=s#b=8J& zH{Nr~2vR}vnZq^<=E_A@wCDR&hn_-oktd(Eov6l2c8FbOFQbnjpai!@j1Ip1le4*n zaL!Z-6c@!*9JD5Ai4{*=A}tNg(}nciY|#X>QX*n^GB*cIn_sauTDh9;VRSjnQTv;Z z@YoboNdX`oLg&qrHX9>x3XjwEF~f^#U3Fa7ps6y}rd`WZ_l^`>2Zg$9x`65C^LDS@ zI!zy2S*4kgMiPLOE$vk@1P? z<@0BZ)0m$)J`C@++_)8hQ;3M=YwK0M)PIl4!cDGANSNK_pvID^tKIT#s)>JZPN2_b zT~hx3%lF|(St$$Zw$H^6CEeNw9Zydh(>HBr$CG5wRM)P#%JPAMuLJ5 ztxl)JTGy>)XDmERzb}OSUl6@bwU9Z78%3_dCfZt|rgmTMQkQX!S_9X5QxYk6~GiE-M`; zJWpBFdFM|T7d{+Dr(ci(;76eV=``k-9!x0qS{*TN7X=Rs{<6_^5A|vqhTd3)4$I4m zpW;eHr2e&a4Z-XT{w)5-Hp!;{lc_ude^y2AM3Tkus&_i3qROX7|J_)OkVFFJ;;8KostsCVo+Qg;Ft=pR)%oxqURM7bXKQqBU)*VUKAhhw75L`4~R zc-*?r7vI}5@NGk)RUvjLiEg!;bhbMg7u+1=Gqo z;DX0Z5+RuR5WE<|J{+^8>e)i$A1(U&XL~yl-77q8DT~e3Cx60Zm)xd_T%u;9)pg?} z6g2*{kb4WR@%i-esO`;+840wx`%{ z4hh`v?4G;x?JYw34_OwF+@ZmpT~5>JdV%iX;I~Miig-cN4^LCm$x~)Mf!9jk?WSAb z*QY5cQC)aP+Y;i5|Jfe$@@r;VyT3+%oEMSHbzWBrbU7`gNF5%uto6=h_|zFvJ^!lW zIKkB|I=yjW03!UNp;Po76GFK(!CS+MmCLq=cqc(76nuK}&X7d0@8i_=agSg&h`a)X z?7r4v@o-9#)`@dzeM_i93A$6ezCdc~mG)9-=Q6`}<-l{;@b0WP3u!$yix&w2;biKp zN$am^wn$0;ZcHK(@sDPHWhW!&A%53Y({vs>F1PQ^Hv&<7h750ViVuCw*kqIcdV8LC z4L1vKK#Tovu?;!?Y-0m$C08X=#ZGQ3>C)ke6=rkcZv2N8zrcgRr;H_{FIOTjd^N)m z5ju#vlQz4vh2#?*xZFx%+Q)RNY|;yktq!075qsbX0Kr+)W-p>I{;|!ZzmrqMZ2EAe zm1q)?uh`YRCV1u;mkMgOlD{x8b#pgQH4WJoAs~3ikOv_lc)uORikRtY$HOz+cC`14 z8A4f#^v;RnC3Yt)oS#cG(LY-KH@emxZIs6#K^x&M8Kle_xlEf@DP?T{#~G9oV`m~QmV$v6D4`FyeTwQWc3heiU6x+ zih8_N!L~g4H$33`?#6lweToc~A4w=Y?zk;uB-7BaFc${}q^d6it$$h;x*7$EFVPE% zeYWC7T4H0!5xjeYU*RFF$cCX(cp^)LH?*p{oNkg1Z?5Wj;?gr{Tpbxhd>VWI_2k!o z&)b{@eIrt@@BJP0>KhO87O!c&TF8yDGK1f@`$EHFL^~&O6h@Gj;ZYF6i6=rcCL+QT z;)S}cWv?g5qR?qIZ$Kzz;2YHTqC@zj>{H=@aq>SF_!Y1n>FKQ?@6>_iDq>;c3i-VY z_k#}M=}dkvGx#Ryz@{j!#oc$3U{*}+wg=ZZq_6dYz_LYHdP9&O8H}`=)$;i(lws@E z%NS_CkAScuHmDyPz9zsY*wD!?n+`D%^`=E;Q;)BtGeL~XLGUj7C(ZwNlw1FJ{rdm? zg`maxZ{+`bd}W+V-&~8XJoY~ZVT7%Jiv7=-_@P|D4^T3$Y0} zFe9sO6NbNxVwXhuLojb&H^9UF@4uO0Oao+(J5mxVEekIjRgL{NuTHxO-eF(}KivS~ zr?4)Uo>*+)JZ~wJ=!m=>*G87>&mGi%2;yR5Ca0&pJUn#bGFwfg*a$*a2!PWX#{X97 ztEi04&x15c@XQ9m!M-umJZRrk`_BboX{wRH)os8qm(0tRLZdKD(- z6tk-QGyPDYLo3PxA4r!ShSs&h8;fZQhS-2BDqlxtc^<>&iNS7KD~cverHu^X_ zE34o%FSfaE_WR#oSya!?iq1$Vj)*u4t-14m$^DT>*VWaPM~8=t3xtB>!yz_N_^gm5 zPfyQmkfXokVzmr55|U6Ipg&KuiB&@Ork#MluK4C!HM1DjRzB=OSw2Ys{#z&--5 z#3`5N`GzZBT(23JrjS!))3Sd4gIQ!=OWp@AJF&4h60bx@Jsu||a5NXJ2||Y~t5v;| zRGSwSQP|P)3kuBr{2oe!HmxM-3qwtKvxfand?E18_@bj$FM<1NsA6M8{2O?D>V4FF+!hoR1c5;QJsZdR z91tQbZJn2~*}TwLT&3nCmI{uB2A6`{Se`^-VIeSWFhnPU0L}^DttsCZ961-v8L})p z8DQ}5m%@TVoAg-};BVykxs{Yt4|+9 zG3DVk<1$mzC=@aY{R0DCtG~Net*xzpSnv^`y$Sva-BVK%($LgQku7v>%%qDIG&bob&IR91K1ZH1YP0?m^H-iE z+4uQo)>B0d8c!VT>|+xXR4AQJ0p}UjSlUz3Q98US;5J=s>Kd(2cl*G9eSB_# z5n@RMEDc1`<%Lf=UP5d%H8dWt>e~(41N@orGDHHO$_<*|{O5=z6#^?3Js&PV9h#Bd z&qxWM#RG`aW6Ex4tf8Sn_OOCn?=Y`vXxJ9`{4`mjC33rwxIbO7Tw?>DtF>cfWNd$a zJO(gb@?*TkKnh=$qJ&C+e?JPv%a<=DBqYEPU?4cBQ~RT55xkE;zGkm7q9`aTvRa45=+!#{6Ai&sfD;lCIW-^F9UUEMGfj<+sp#u3%*^n9 z`V@?*TW3EzF)?wp*bE3mPgl1z1DITLQW6e6J{iCJuev(T>C4qs6N72MEd{zVdU#yU z%xDY$6g|6)SkX;HFrFO(9N?{tEGWIWUlo z!0&FiNCCd^+vFRSOuY0)tiaJsgG+w-euQ{lVIehPOiFTc38 zmVpn+d^X;P{8&DIE(*LWT3uZwd%o#?i^tS(+;-0!D*${Q*t_CzT556UHvpb`z~h}& zw$E16e)<019ymLDi&qg|10ZRw-Lz?R95LS~E-pX@RkQXgDk?rcKK}mxoP>+jR!Zam zYw`1OaXFnT(@SO2sRAZnS67!W6<2Q9+60B}bp*Y(4|1gs`mctFnLmdwhMo)H-jQfQ$B;$7xAlUtgY{goGs7qOqbPj-6XrcxilG zRa29jmv`sXn>V(4PThrg8qi`btyIM#T3T8;IXRAWd4^haBj_u zfL><-i*9G<*PRQl`Ydi|cDvgQl9iJX2R!S4&IF%e_hBUIlr1c_pQh z!9n1+;Kk^d%gf73Z6>1tC3+A3EMOMEX#OLhB@RKs7W>&xa86(yFIG2IskaU zz%W;77B;<){#}fkni}|WbY*aGuslt*@gKzIMPXiE>*`swuHS~`Zp&PfTuVo&JmpoO zx3i_=eE(3YWtTu=hIvE&kU%(VpG^V2>57YoM;ID}2{3}&yCXkD35`i86dDnMssL{> ztQgp2U|`tW*|D~>Yu-%Jiv=_y@aX~2#+S$#Ou9AJ=UYRGiHQ)K*y!jJ!4a2*o0|rW z7#5jvs7A@h_`d+;wF7A5$Mdp&-l2LnmP{mI(PP?SxlIUYw-OIYJeE`*z9A|z9v3ml$3&6gt zLI$@<^rEBJmoHsh)B4p8^V}tVgPaN_0vaGt^Ys3vPg_lmyS@G3{$*Wl?QWAW7uO`f z(ts~6FIVi}B~Z%&03Lx&3*e8NTlHm9S-^Whkx1jV7a}^`vb<0!Ov6p~8UKk}|Hbg5 z^p;NmFqW+D<@GhFb?N@NT_j`Z>A*_l{Qj|M*i=5DpwVsHvU>KI`k-=qoc}d zYVc5WqJYa1BbfvMdes3IzO>Zlc{m3EL3w%kXYv)#W)h4rjatV^AAp3o196APfSeI4 zi)P?TZ{NJhR4meHb7b}&H2(xhX=rHZpV4q@%*2h>MFwEIzNV(zv=R`WJO80;qdhlK zugj^oAkZFJQ&Uka2~^)7dE& z*9!+6hoJHgXl8?`SgdpO-;U4#8Fy@o6VSB$so_uqwn;TKP$>W#oi4w1&eYo4I%Ylb zhKRsSa73^5Eeb_2`G#vFfQhlOv7qBtfO*waR;u9i0OkaiHrZxuYs-Kar9&c7_M=ZX zD4acDErJ%9;CUHGndZBs@yg1|+w*NT*~C6`{w$2w-+-wCi#6!8vA1_aV`F1o9d}|M zF<_wpi4_!3VMVaP+zskuWeQb;KCjH#RV>y!Eq8Q$#T~Z>Z=K&>9WCyA{!VR9cP{~Y1wgXJoehAFv*}S;xezepIT5R$lSWi#?paAFR=Lep2-q;Sn zz3%Vtt$56TL+1c=va_}Q7%vU5D}et8y+j`0bqAP0W@fZxeiajdHQ{+X?)>bqcxfsE zG}#36*3jhSWa8e&MaM3-VFNbr@^k9nOlWU@1LFM3IGWxD%xpdI={(0L8=wM-i;m0f zf$in{)!bpi8e+IHl7NM5Zf*t^kRa*xtsgcvcE}H4Eow7yv$6eX}MmTPO;_ydL`g;@`P7C^~x<9h$0vATKU?OxyK1U~sN zjsPp57WkyRoTY^HDS|fJnLi6+v*pUCp;2!?8;l9$%ZL0J9#+g5nVy`)jS#1j0cfcl zO(GP^5b1id@~5imQ^@GejW+-rg{mkNVt)bB^afxQdV0vn$YzykBilrzq(}SvY8tiG z)o@ukhxxig07(9MMPOEIY#9Ku`u0Z$G3mg-Ks~+rZQ<+22YqAijASYqm88?tQvgtwAGUZPHh`Vheq2HC zqGMue0q9OxXeb6T@95~Lv4n--2oEQxzW?Q<=GuttQXzadAt8awZYmmBw6U=%si}Ic z=VgWA1_lO|+6NZ*3pulay|xV+>e?%ec8+bE@DP+A9slAw<(T|y<#iNfpTvun} zqJ3Y0p&!;SKgBrtbunPh|2FAbj}uv1T+BK~lcnF}9iD4}fs?9_91p*l)#}#IjqC9M zK96on8W|czw=J&I5VkGYbAY*i#-7`b08mGOX9HpuV@d4-f-l@9sI8a$+M@9q22Phn z_1RhF`VfkKvO3 z+4K1dALCTei{Yo~U(0GfVowQ;>h#jC)fFFM+HLu+8r6@d+7HLiPj2zj<^W|%m)D$B zFY3y*1)C5cvNkNRbSpC?*XS}9sM0eE{+_xngxkm#lcTVtGLps#WGUMDukB5i0C-fI zf&y@v!{cLo37~9IS=L`T#|Er9?``)!5BEV^4;cctkx39&QO79+xFZB&X=<9++G>E) z^ADR%P1kO>b4Dzy9qWnAGLO?@*%hg;HGtRg=ylc~5VC>u*&l6iSYwDd(-B0RXgHqdrYydaIQ?e^wj7fU^D0Wa{Tz z0m$AL{clvw>BZ|cydPanxjEZiw_*}-G>T}{UKO}_be2Eb7ZgfcFvLXvj;&Pe+Rxr( zXxQLxx4Oct$8ZX%O!iDpqp|wK3QMhf}Kmh?=05zxVGc`7ojBLC$#R0ExyD^+A%JT4r2_<;`u#TI$McMDu{m1GGzoVYA zgHfGc?ZhacEH8n|&R1#LLlhG$;uUOW)frGm#=z^UT(HOIr;&5gF5s$uQ#2B{ucp4I z0s&DV1Qz*+vO0=IY$JJyg?;}SpFheuqBwiW3MfG8Obt+wH5%tzOGewKE(Ozv{HR49 zl}K4>HMEQqB%^72&(leucd7F`mjf8bd6PVxIz1lUe#-!xPPzSVqT^G7bq>~e7y$$`|N8NPtl_+Rg@rGgYU-L9!Kgefg_P_Fo=Z8 z^lwfiZzx0A*I!-GsEhn3eyWdZc&(s8_a&OWpCAZbZ^^i#?F?v0_P=8#3vJ{MyCwH0 z;@hu`K#Q9+X9BlqaI{LlyyWgcPACw)0&)$NK5TlcXtCDfpB20DWmC4;>?Ea!tn+)$4p$jGo!~4kZqJ*~@UMPY}MR~l{Ko#`AC+23~dSo(h9<6O0#_k65Z_? zI5PjNH{(P|aY>+q(T z(UT@Duo4?LlG?p7C>9RpE!Nj}cN!K+fHN<{><|kttyl!?LUtxdt#1xqjF6&}bAd%q{O|wk_TeOqy4egP6nA`K-dX28v1i*COnE&Q<=?WM~E- z1lyR2a+1{8xl-eaNuyCKCFM|H-O9=OrmmI+1~rYuZ660ur_?}w)zrjWynepk1a1T- z(WqhsZp4x(W*8=eE`l)WA)57dgS2(_j|A_|Jf_a++Ph7*J9plDmDMhV!c`Gq z?AxHANP8`ER@?mSbAEBsci4UthTK-?=G$O45a=IGPQ~B7zx+Hj7VCdL{m@gs>~FIK zM$Wz;E1L4ZXpZ6uU{KbduiSr6P4YHn1YKh=i_~_ArU(oBvCa9=`*`e7i0d?Jef@|Gvy zwcEp(NFcV$PSgD}rSjD1{aQ+4y&ukp)TWX?X`z@tM@nrb!t_m!zy+Lxgd(uAGxzqbv)D|qa{FokJw+PLw1O)@B zsD0M=0kO_Rqz@{`xkX`02L#7_?#u1MLQ5b{E)HF7zIM~6y_3xE@!4M%L8J!vs}**# zcqZ!g4|OHW=g(IncM6?v^GTZJh_rb9s3nr$9^Z~zhPtq@S3d>{YqUO;D{GuDEeG0I zo_PN@73MgVCreC&gw|{aD?haEE)V}nI zud%k(Rhvyi^i8X5`+S?5jT`*6Ty3R)^L;^|o?vP0BP!=|*BFM-7g|-Q{wGolNc3bF zLCzJyJCPl(j?T4zf~PCDN5}PnOQGxMVD~FE-zFCUNdoL<+8vA#IU?Oxec8)%h}f}U z8Z&vdPc3vV!Pa1PEsJgfi;2;VGoO-Jhuffpm=Gu)0az9j_DTi*mxdN;?C1n1YvC>` z4{E8PxC;iyC=dsn2@EXX_k@->PP(RpH@)jWU|S> z9H@Kwz|ahsOS4DVj^^)aJ6(9&``?*GzweUPGKZbGKUY>>wdVFWw&lHvj)&uOqoccR zsOK>C|4K0nx4-`*C7w}jK8z(V?LC|T!>y02X=C$qMWzYa_K9W#dSd?fSjj?V02Hd) zI0SXNX|vtxbu8W_b46z0w*c~ye~{x^y}Sy3#vW# zpI;AT@G5o?n28gJ_0&e0t+z^L-&Ay)AET2!)g{OrJ$7j&z$q`amMOw9qANGtPlKB+ zcNO~jR)yXLx=g-&9&3FbN!J#4Mb3K4`@a8twv&>R%vrNBUg@9FHurl?kq=ks>EQV$ zY8z*YDcb#rl=nef=X`EYf=3>`2CEYkWgF{sTRgOz<#u^kNW9#*Zvr0;-gNW%qsY6o zipnSS{c?JF02NCt+}M=)-Nq}uk*8kJwa6Z;jXS=kB6=-4>0%^%4*0|RDrXUP8EFTBr}SYJ-D=7ZD%!=TkMeB6xFP=&;7M$V zl0!r&rdc$m>i@^fQEW*NydT*ltt9zBabTa9w@XdCMyqt9LNm9JBG!>$bX*={-Y^0R z;?D5&B-O-|k2EOk+~aLtHU96oJZuSjE}19aPQQ=sN}H}_8i@+W6#c#1B+JH*HZ*~o z0e1p3aG_^(k?jf*6CHx<@BAU<4Cyl$%66`n_DB8Ks_@@@eoZt{p7^kCPA-LEOnFR6 z6l{a|_4QU+e$7T_=EB#O(W;5;{Vs^B-rWRT9{p)H)-BduX@84%Rw53^;xXh=Sm!3} z{f?m5NOF7cB}2<260ote*`XzTqONp}4MRsJfTS!>i2FUYI&_`i7eOFOOBt?<$-7o5D+MH$^~c!4=SvCm%bZiU^Z=%?#=Ee z*bJw-npP>Ld;w($X4N<+kQ57sUV6AJjwjrus7;$raB{(oQ7A)xmotX58}x0Z5`2tK z)?a86N-voDKblBu9T5u(l)^P^VyU5+f4Ni@3)awK&a zP_BX$U_Yl}evi>L!&zpVXk5%9Jf(&H6HU7@xqz$;e@7>XYlbNf-F zBcKJCoseQmNe^bw9sRbN`V6Og$PW{1BwPjV)Md_^>Ep%!X%NDRCL%z=mIM_8;~ACZ zi(T%5;2N=3^`4#E0Sf5;Q)V{@)x&V&HH9OhmmTmVsZKy4skEIY9|G9lXcbS0<=z5qayvQSwv?4) zx7^id8KM6o!HFz8j7<#13`Pg5D7|Gh15#WGBq|QX2MM}v`6L(@d}nF0qbcMGxY&Kx z`EfX2?E`ztPA;R}Bwu;nnYn9T?csLb3_i0QdVf)qoV$|0AQeT^nPs#kRQuM8taQYd zL~O>y$0z7_hD1$bmIR~pe`FQT0Fz2aZzaILlnE4t&7&(QD5Ag1o*~^8PLfkxPi?&{ z6;-vZnzra6Gpl%#_(uUd=81%@LJ!n`hX7%7MT}pKI4~-rjE?Q$=PduMhq&LleY)Ja zjI;Kp;4!zg^tU}`1Zry2n>D%p;q1|AG*%P(U=?h$k45XcEHRi})yLo2&6rXnRpH@E z7kVE1R@nn`6#+*I#Wu=cc#?>@+yz19r-SiDZ7Fb6gJcsCVuTJo!hfb0w1%|1lD`}t z>v=`GASkpDiW)``73)a~+S-ngHku!PhHng>i#!!1MARSo@nT022RzI}Gxzu!e0+b^ zf|he=?&B0LNYV*;g@xQrS9+L>iz(E!%CsZFp}F*-kk2Cc|FlA%WrFjUO&U0uz%1#L zEjScL$DxtFM@XYT@~1aW=yE+bQ2=E%`{|F=dmwKp1MGJMK-h$`1$>kZ7R_!jB++{} z=k@H8cm3CSo)oUkE*7l{ga9Zci;GJj5H`tT8#dVwW&q!|!R(9y-lW^KS=1bG|J~lz z*SF!Zd&o|p&W z76_A2_y%q&rjKT~%?8gTCXS6=2?4BO-Ct^)!wiy32_wjdK+>8bOHFp6x%4Qx>8o`Y zgLJ`;c>o{&^p6kEzc*{yA=sY_JWj1IFf+?&KVQ9ny3|P=TTN_sycwuCOE9}<72)9+ zZ!_+a+S0!){}y<6wb2og(8$P$UwX7~{wqOdruDl=j200%nk_X#DTUhr8wx%~!{LBo zn#CV=AwQisZNAmyDQlTl(|%#|&)q?2=|fqiy^keq;+_pGJ%Z{f7>sG?C=PjxCHu1q zZ#p9pX)SS$Ux|4u%Ka?Jb`})-Yrf?@l3V;|YL1%cHj?2io!An58u66Q7uboI{i<1I;KO!9isV!L+x;%W)H&@du7tuS8UT6LEKAe3!M$I_M+^!S0t09 z6P|(x-hAkcLRn8AEAI)*q$v0t_#=P=PZ@mJm6pHH_Kx%!6bc_GOWiY1>*&Ut-+ z#A1T?1m+q+YU`8rPWQ9lpqazhFD57Lub+CiD}36?XWxn3wr0On!qH^;L2TG8fC;tr zM3Nh?{OkRH7<EbLQ;5*Is*F*ShxF2g{0P30$F^$})7r;x<1j{986ht#6EZ zQqx{+Ypz#}>queO*xr``NQ1aR2%o-N0VTpG<3oh?OX7l%n7p#=q^BI|B%oTcT&r_71lgGxm3*GkICp5{z z-^pVu4V5-d^cZVDszKfX%V7gul$Ws-`Z~VG%%#*xI?k57^3bawi|B|_Bmn}CCj+h0 zT1WjzMu|KELy{0&5u%3>rWUPf!$TzBCW!-7;DKc7CYwoHJ%;_cB{;<82_U$=)}JK#%F7Vrb@jFLZHXm#B|ucy{6(1KsXQXto}6xtt%AM6(0WVHxb`FnV%CAZH}Y_y z`EXPgVs|Vw%^7UJZ~D`{YJtf035##YBt!kJljYC4if!P0n%?e>=Y*Pn+^!;Pj^skW z@o8GtG?#v`cJ3u$JR;V{jpEv<@RHwJdk*qM1icOhwTQe3opPRAI;ZgJorvzW`=p@w zyr?L&oVXG(eZr91@ZId**0JPGCl#fQPpyei8;vj8ICrS?4Fa~SAb)($y?g*)<0ds;4~!0*-#UuXQ4Zl1KqFsGG$9y~hQ zpXF?8xqo(1TqN@})-h4zt-D9uA+4he2CvLaixyP8s+6hJ9+|-3vR0$Iad%%_?(Vp1 zU-Fw1Z!v>_fE2$d%w>B2xO}F7Pt%z9LQsI95B;jME_dh2+b)OYCJSg#b@zm60piy@ z;-Iwgyfr`TX2pErxe4B~^mDcTW%rPm6!)~LV)oV;oyGN0+BHXuk{J|>ok7*~9`EEz z+y%N?SX2|fk!!lxG_#oQp;55ft$BW~H5X$DhnhxgIT>tXx~D=d1v-y{_Kw>e0au|f z{%HOT94QkGQei@w_f7zQTe(h=y`T}GfVA)MhB5FjHd4_|IGs7< z@A;IIR9*x#r|T@tf!Ag_%bw(Qu?Y%?r-v4?>s}x!@=NL{N8_4H>hQli4za_PTozE6 zurKr7cLTb1?T}E5W8ii1KU3{@SI5;p5~sh`dq`a_F}ipny~f^`GEMJBaRqx|Yz6 zATU!@?%Sxf$4cQ*wN=KcS06tN9^hOCc&*?#Y&w-6Ni-k#oHb@^k(|-q<~%Gb@J4u|A-g6%*eHD3GP*h<;5g3dAic z>UgI9c|kpxE1&xzY6R>4RKaPVMO)aaDmmB3je{SEN1y#4$*pH(N9Bi@Xmu1L`Ijod zI2V6R46;tmG`8!>&Fz=xeTVMoaz)Cs{xQhZ%ma-v-#ok;uLz=(hFae{d&?-d1$Zr*XexQq5M)S@Qg|KT9C&Y~y1(oEwq>h4Sh$xB z+VHei1(rS%q0Ik~05FI_=}K4)`zhmZiH6GM$@JatmUL2U^l2<&s)@Hfz)3t%+3ADJZYhV zz8XxhxBpR5=jl%cs6?zbveSG3S?WV(C#ks=Gb*n72L7sb)_xvm?=-m-2-M@toSLq! ztR~;Zwo#`&z(id049*@ru#<%Nsr;_7$5byGu~z52C((Nv7PMa1-+w=G`hx-Yc?#Uh zs?RsDB(7-tNagIn+T@JA>zEFN`y!>-=1Qxvn;!|OHOaq`)O=S3euPAf^etfkMVfF} zPRBHgt9ROtf|kCRAv8x1C&cD(Dr27oL*A% zs3E;@e$k0k#9UCnAvn*}Nl2oX)JGIHyNWY8EaqcrZBkIpgj+sLPtRuZi-cJQ_g+@| zXZ08fG#n+}7+jJ^qpK|>GOs}tC0&*-S6(IP?lsI)Y;kwYGg{rww|A&el zu8)Ene}35&jX44UaM#M_{l?EvUzkT_{gD&=%m5qsd|wi816*_QhS6ZGH|g80>v_ z>(LAPV(_tK?N56xMBx&NqVA&RQB?%3zZioJufB5ik_wH}fEV8OPDj$^Z8EkN0#hiq-|)ZS>LQ#0%uep3=tALz21wz*uY{0q7yBP#>6)kDkR_R*pD& zWJqRe^;a9OBz65p2EX%lN@AK zSwP~b;eVTyZ7r)?ik3rQDKImJ43+S2g9X7!#wOx+-hsZmYb@EdB?E3~=MIjU4Z18O zYKmACSgAT`MLZMDl8rHaBo!rgl(T2GNuk^jYw75|%~+M_Np3er9VB5LWn}Sg33g0z zWANcmBcXbb%*7|Chv!|~vXasciQG|}94@|rcvT)ZiGivWWu;0iZo3Hq=u$lr&$nK2 z_$2^EKD*N*Xae8p>z!b{5B#s|lu15G{GJ{JG}uSeBKdwkA-GU;p&n$6h;Zm?(s6|^ zecfJFGf%v;5olE34mRMHjIf145kK9RFQaLjpsUkQXwyjrzkMT8IhrHZBzy31zHGQWDke?nzcQa!TVo0-i zdk8nWE);6yqhu+Jq>&0z7mhXfC~)Gllz$=>sU6|0_!`#cxK}AZ(w?FjG3r8$w`mzr~9uiT~!!eweDhPvh)Io z*^tnf5EK!ik;Ywzx2s>wQEtj@Ga^F_l}>yaOs1Q!-l2Z*Zpk=kpR8sTN_`FKyYV3t zB-Z9*zqq`O9BK5l{YafN(p&b@yIxouJ_{Ui;k1+ztv)cD0+sce{M815nx|^<6<9K? z63{JImpOS6;Ubx`CzEc?Q09=GT%))_jA{t-BTBiX46FC?rGC>}B_pD+$$wxrnu!`L z&1x;RIc;vBVKb@yCL%F{kiP_WR*lo4)Bw7Rbw@jiIj;-;71<`R$rNIoqA$d*ln(?(n*UM4OI^L zGbuCi`M9|Mjgj%(&!@!Z93;KW2)m3;k-NVXcRtxK0I~D-aE<}xlI#K0PerU6(U0br zYt5*>j~)Dc&nrcip{S2woB-vf-rF~DtgY36vL)Yfb7Rp#=ao7}MIXE?`u zZx2066KZwh(h}vK;+A_;J*B%}ZEOaVcUc<0S>TH|e?ldjvloBfGu-*q|8!TAZQLvk zGfQ@xRLYv8YPPdXHn7AL50ER!A1vS>VY!sqXm^+r>MI@dh9r` zg9o4Qdp}hRHq$zah!3$cvDVdgw(MLz!8x^$)S8eQC<7b`1=V!>dals5yGY%|woH-C zHOtGnmJU@WZvyog${o2rEB&U_J_ec9MDw@iU!t=j@!ziY_$s68rJtPowU?DRmVUAq zs=Z0OGvM3zU%BtkMd1VQQJth|mcAjud(x=}Dk*VjyDER+7ySXg2|a6_?8tV= zIB2!8eu&vA;;j_p7UAU=5?!0_`O=)NtQb3YRRJgQ-DxwpzHnG*++MtIoqLaV?l||u zxG_eI5GhZQ`CcN+_J0FK>Vv%uimXaS!vn^$AkTf(!NkP>K6!AswYH+^gYWl-`Z~My z*N*RKkaJ7cPr}TTLE`#WE8{TEGBSM@gnkmj70T~1HmmSu>RqSm|HyQYN%|O&ROp^IMW&iK z)oF*ZytjeeEi;0G2g^aGGhRBbl`W%Hd!=Ld`!yW)ySf#I45ScrsR6ceWGNbKLdHV1 zg$X=p$#4HBJ4rhzm)&2vAc@Dl+a)Jc!h&PCiGj+ z5>4i+juv&bj4b>jjaYY=uD>O{N&Q;9l6Z8qJSHg;5wXm0aOcMUqO!z}rcgu_Y#})p zx^$~L)3dYTwX9pn{fe3zgV4sPxEa7V-u$mD;f4gvb{M3;jxm@pej0ySzF6Q zZBFI08DC3bQ{(@Mgv1fd^@C+SAcNBdiaxbbe`MF&WLHL?IEr{H1xYY$upIIIe()NeezzcQ$sG z(nk`dm81p7*`L$@U9_X$Oh?2cDI(N4c6^-v9vPqUr4aF+k9$|I5ZL&S1)asDJ58}1 z3j`$2f(FzUOnOR7TOHZBPGWfX+d)iqwn{i#oc}8_5(u5583b~tfseL*w?g##3N{{N zJGSkGg7<~(9GJO6La|ceI;osF7^ekprC_ z#7{4S^jQKskFSqsTuX0GO!@U$*Mi25Gun=05m0XrPW4aeDPrU|mF+Dn6yOsRH^|9J zBR8%W3Jsi{7_-r|01F9;CPz+goECz4#cJd5EmVw<<>NT|7B=dh*$3-~;qFu2ifZ=6 z%(Jk({@f+;Y5 z%-=%`LdtVCGNDE-z`V-rBVk;FL03J67X$BvU`I9}n7q~$FTCCjjjrl)g3(68#?$X! zf`&yE7Y}3m=sNPMV*6-1q(wYXLbmG_?cgfg+M9YKLiEsW8d^9zSqekO*S@|mJAFaG zSPIUz?}8H2-RZ;;=KBk2>w>wI@M+CK8Sdq=At*nvJl*oZg3(NPrfnNQ#DksyAs1?I~ ziV8`x@oKsMj+id|K1+g?NRNE{L_(^t+78U9Kig*GWoNK)g-ioxRR3dzJ-(ysTmM0S z?5n;w>tx>X^_LX5j`3VDdirk!&eiQZ!k}7uYSan+t1o!4f#b`V{TOZb04(XjWCY-P zu4H~A%0>Xd&s8Fq)XWyV(p9F=654g45gYu|pk!cHs7cn5oVz}(Bm<4V&RCl?u zKQuj}TuUv9sb{Ygy^J&%wL7+n%y+p5%)H%l*Nyt^5Rpn>?Y_Ku>}aNN{%`!F;N@>) zxLk*?mLm{^RI|5ERn`4lIL(cEpyxl7*#H>fGn0f!qBral6+D@?aWk{dLjr}@I`e>X zadUNh#&C0LwPXBh7nwT7CW%0Cg13j$MNR{5c%K)m>tMA>2#{Gt8MHcAPkwbPL4pi9 z#GK@4DSf+rjR;$qff`uC$qH)w>^}g2s_Al^%Pse_pEP3^b|1IFSNwoUEd<+))d}S=7HiMq~g6 z)ej0!ubtAjD^z)dOlb=%bZ6^s7cwRyH|07fbKi|Pp0=UsJ`6O9UA*tA9+*AK{j%A< z?FU^Ye6xMye}9(pgoStEth`RA#k|WAyo2*T^yVDWa+q#K`I9H>+tE{r9^d-7LGtON zj}_IQEbW1Q-(S4_Ax7xX|4Jwoijn z!!TNn{5y@VFft)xoe7@Fx<557fo?i&%?@J&uD)d9Ag7;>2VeNW7i}i= zDWC8B1!AqYs->Sz*b~)bfW!BYWqrOZU#^uf;K~liB*VF9-8(pe#T_qJYzrsV=po|4 zb7B2py8eS-MYVs&3`s4U=*>17aNxjEuo$7}<}o7iEkTGq29jBF9k3QSR>ftI?TOVd zdH;))0p@06S@Z{~5Q>2EQNGFT5wIQ9P|t0AlIl84(fPb1qs?nThTCzb zrDjU>?iXA8)qeYoyZ@E6&VldBy%6}+gwn)x^5xQ&qQtD@(6jQk zrrm?$2D9D2*NuV(n`tfQZoDBvmXtWIZNKsXsI2`Y?meNxun!$mDta(CF{Cv(=?zv5 zxAIDhMWvm=&jb)w*V-q{M}pkAg1W^$M9# zmJGYA0QM^={du2y=i|{Ngw)u=f&(;pAM^vlN2o6T11+RNZvQ;TP4Smh0a8G1C|$?+ zGMI;gZ}Sp56Pw}T`C=IQf9%HlCxOR*jRa_(|3BQxc`;fb8otFp?_5d4;JOkM9v%>c z8(-=07-GD|%Zrov{-R8%=#x*Jkiua=|s(;omNEm2h(Pw~b+f4#Er zKpZg|c%ka_S^o1tmxUvw6nBg|$cfkyhe;JHhdinvTj8VSO)~|6Q1#2({CxZmvkqLl zRSTZaH@k7KiR8ZL{kH>M`Xd15BRO%zA{jyJ+>8vgYd1CHH;>U0x- z`b+0J9~k8&s(j!v&SD#3FUw>V6*4mQJEj#GT37)HgdPCeK9nVu6&II!^{#u*#(?BW zc8gklAV-}&)E%Qt)v1QV!UmOfXQe{qE+~w!ARyIS7LW5_1EzfZI|iV=<~tXR|Ho-5 z3+M=m^k;cQFNC5~GPSCMK*-*Ohw|I;Q#Eg69b?5PxrOmV#A(#hJ2``Gz9&)Ns;5h2 zleXMo+0dkT-GYz)xV^AS36KaqMJE6$a$^zFr=yd;!HUS!ggirH<8JLdlt)2gqd}4d zrCXCS;(e~>^hS)1WPh7A{mvAZowaZ|nGJq9h_fhml(COyW)$1)@4IEdcj{k?=$H<= z8Eo_VJ7}-hRn&QYvy z39=#rC%^fg`(8n-=E$pCVW$c<&z^zM*HYh?mh_RsI;Uo^`EYItg=_1;Nd3Y{o)@5*XWcJGmM`>$W2}T3f{XCMD#cpPsx`MdN0r`m(*?=F4fja|bk9JQf9Sc0S2EkqEw+OH z<#qaCE3G26=;YbV((|Q>zm8dqQ5?}w=o#-Km+xSG_gk)-+dBuUnfPh%%`J)(Nu%Qj$!k0?|d?)RLZ5N2#9Lt42y=gLHi&qzv%h)fLy-i#O z1gL2o4?CoMVY~@m}Ari9fMbMw7QgWa%q#EKLaN>Y?RI@eVvc3 z1+SPEZF=N4JdGY@*aW*PT|GhBUWER3UTXpbr2?TN^8dQRDvc;kdnu@+ccoI#Qq-NT z^wrLL@X12HM-<6>66w^6aHzb%ks$a^&%$c*stkiU?X%UzYY#^`(ReLA>RI8NON&WI z=cI*Fb6iRh7*)y41_e8MFw~kB2OUHBUrr!9(M4^3-{8OXX)+Ub1Lh+MH zua{zVH~Bdxr-fA5^PEWt62@9>9Ob2}jnD>;Na*FeCAd$GPs5*2Egriuud8YVC5#+8 z_AeUzcE^oOG`|-`CaR3s+nzOeVXG(;CAe?+ptboeca`%h3YXOR9ZY*?l+e|3ZW5=X zL}yr1W>zy8o4DwiK#MtQ9^y-V78h=p@8@ZxG%!Z0xAc%-BjJgst^2GdmWz&EZO7L7 z`Cb(jQIr<*@Pox3PT*pGRWynqPwN$EZQ_pHo~Oqk+Vu$sB z%OX{AMngSZ%~+((P@aiV{)p(#&ng8Hwf(j^s|DBUmn!}_0VnNXZ(Kn#HnF!BHTL7(K{q2B|)1>_ivmrIprpCSLO z*jJ)FCDb(jlFho7?CwGDv92{NG01R-F@Jt|TVqz{`?=MQRT2TM|-4miP~Q@+HiumFdaiN}9{%73VteCs6*l1vs9e)8_A?)JdZ+$n==`Dz7OK z&)H$rKktdm?V25d#7$(U>Re4S1Ye%mZ^r1%S6%gdH~E06u@ z#~&R_>Z*-T!HKlR^BM$i@=~XaPwa2|%XgN@-q4}d_}FWSOJTO^OtznG&kSv9W}0k6 zt}k1_zf0#yNWf@QD@&x2wkIGlOP>`Pykrf6h&d6`)cts?0EHBQubdc-o3$R4=Bw z6ScChrQJvW+ zTce6}+T}d~ePH3$%N$)xGDt=qwL*PGmO5d0rg$6S(z59$Lo#_?&ZjJP9J(`@@nvt$ zr`^|PXkFKPoYdT&{as!c13fLigl3X7NrmA>)rkKLH^lt?jAax+(b3dtbDXlSxPVo` zxV}#~2!nC;?WBaS!zv;IwybFsRPe^e!oY^hD##%qT0)6(5@G8R14=wlgz?9TX{#i+2c>3(6=B#EXG{u^5Skf)FckZBWV z)!VBmNq3uoPE2Nw6H-x_J{2YD(exh03s$^v5N;qku4oDxZ2PSygWs;zqR;%vzB zI_0(`C=eMW--mScyJ+k8kH|2bHyvC;jH<{sPf$UjoFMCZ&a39JIjEg?rHp3;3hOxo z4j#_Xu9)Y{j~Q~_U&2Q=aHhq^EAbr=6~?IoH$W<1Eg**ZPNe6D~8^c|P6@B?X& zS;reT5F;^WxU9ZUizuYdoJ46nXonSio&8ul5M$&Y8b=JtXAO@im0UJbm5g+eP(Yq#_P=NBTYm*Il&} zZegSakt>C5JL#h^xG%f9x`9Bb1Vdtu4|ACV$N?dN?O6{mq?yZ|kx}vSK>?yB34-1Wy4#SpQI{(h3yIvAMmG7r zeIAjAb~?Ev1q=|gFi+}~q0dLUuta8LRhdsn_@hT83NkoDCnjr+9=Q`_c+?xE*RnSZ z&de%@w0wjw%y&=!F1bauzLNNTv>b?-8sbUd1mJSb0E;GblQtgfuj$bU@4;l*Y z3GVma_+OlXui9hh-NL2>v!cYDFDMw2l$wFGF7sYAf?q0W#Nx)=ox!p=I8G+@6>VR= zQ6Cee&=6kbFou)Z<>=0 z?nXYxE>dpTP+Qz+Z`r4j5nfU|sBZ_UQPRrZ2rX2gvVT{1N#21c)`$^2yb+%r+{LlX*>TzT>f4Gg^JL#FmfFsIfm?7 zg69G;?g`4YHho6U?VUHJzdqY$-`DCB!g#wOewMX3z1u&21Jt<$G{F!Ev;<%|R2_X9062DHY@5;qFQJ`+nrikb5E-?^HWq zwbx&jYwcwrn&G$7(X3ZF~gT-Ss!>_e^q?M@;fl&^!%dRD&fmk52w9hWOIU9W^H9{Orj#Cb;DL~QbsmU(C{C#&^%{D;hem};o*?1 zg`&Q<0=(*a8Y9?w|2PB*To4i_^TWiSRWXX&sl3r+yPc&)NYJlQr{l3wr zwo#JX_(R)fjfw7YUEGVY0=)0von?9R;Dl4#i;jS3DEgngXmI$~kj%a5FK8EcLq1UN zn=sLPm8FLr6p@H_uaV?~tHJi08NN2(i{WP=*CZy7Fu7!pomVsa#^~Yre z&(iHmaY{wwkG!(;9S?s_a<*~(eB7=(H1O5J!*iK|O%4GC0y&z7Prjbs&J`_X^^QyX zn$Go(57{T|jZGdS=Vml~^KhR@A+Z*-y%3A!$=HQ0@i-+OW6F6T3o38u$ zp4iQ>&%^cjT=w)~$_04W2z*p31U@rIMwiZuuRhN4-CJ6^Uyjw8nlL)v@SvP-$f|XB zXl^U5YpE`(FRgQY_%wK|sXe(~lcqlUCBVE3MXYsMAqz7#`kcyo+mKU4fS1?x_v#5> zom-xGVbWBX;}B8gRUg&Qaqg&&FRjP&Cuz|*Ozy;jz z_BnRqrSp!56A1X>&%g;F&+=HRJGer(5t#@7u!2twLj5+)FK&x;8F!az_A(>c(E^Go zTSpK$tR^nToaA1&i%WXO2U-WW-);2nT5rhoXY(wQi;udx9(gK(=Xh3o+s%ES9&S4y zW>RO5TyLuitJdinbFEfY?zQ@s3_5SmeknmZ&M#_xe~%4kceA7V`i$S4FvD|%xU;E5 zihUOviAZ`DE)U*+^0!-PUR*rA2SA3K|IcQ?+_KjwOoA&@1skgYF!`IU=3LXm^JsQ} z?{JR?FfF~G7TD$-5#nPoE^z->IHY|$jK$akIJ2h}^o{(b|B{KHKG}OXEO}i^Ysleb zc7r1>^j$%+vr?><(UR*}vLjn%X{Dpd^jNEu4bL0TEm@pGQ?HguH>LH-I&3zIcwHc8 zV^^DJJM<*Ab^VU2-0suM9fZgOth_lDQdZ_rQD&##V!I%IuxKw>nvDF5W%2x;uN5H~ zv)Zz}gOEYP5jh%NIJo@X_cDF1()T7uAjW8?r$$rD&(iGnJjc(ff5&CdOif-cz2JkU zCY)*g{xsuZromB%lThxDVu(4{ouS9GV004WqZAgXkK<-%VWPR@+eCAP5n~-ajim`* z$K~T1x-sXjT2MehC=P|}uyUneSF+>J4TrY``K2?ZER_$xgha3V?dg-181T3VV;Z48 zQ|Tv*r~9#)7rl1X+aE2A6dcS?t{iTO_U|hA%#l6i*!tmEYcSx4xjAo5fl3H+7^>M zkQ0)pl6Xv5&8klJVRojEuzXhtU{gts3LlQ?12sghP z3oG8&)A3(!U2UH%@cbtBXcdp-^J`jK)PQ6JdrXp+JFB7hzJ-pJMg#+8qt*KCNg;0O z_Iy0!PO%#zx$~e=#&@c>;_wjgZ(=xngXEc1efE{amw)3 zjfVp;{%pj@`iSlRs=MX}0r#rHnmJCkO8Dm4)!ZhB?Wde}`=Q1VUv@4bNRp6eiN|J5 z2A#$F(B28{W1{(C^8ATHuSV|1u3oSa| zFJu9|ll8iEQ?t$^vg0VLfMzt9+L$Z!b+if<^~$6|MB(gfCo{Dgtd`?8@XtlPp{q5C zMSXO^hgZnJ1W|%y?HNT%#_Lw(d0(ZwN!fZk&%0$gv2Gk)Kj!`c_t45O^}8u;dqs0r z3H=95x&Hex#=M?Y)AwVFd#`tN3GOhjfVGIY* zlgT-G5#ckZcygsT=5u-%PJN}~qkkRswd&pPwj40Lbb)HiJ~L~NWs>r7L?5n3Zu}Mp znu@eGjaUoU1Tmv1Lc*blYve$!P2(hadSHs|>i#J3*_QA7yi)VlNI{$4(h{h?zbnyJ z1#x-U-(#aVd1)Y&XF*goup`cyG+4wS6K1=UQD(biWkv5YF zE2^(%mzoICu>uAF3J=i3EEeE#okQho_AA)!#fR<>-!o|3F zg(u*1qTtUm7x;ylKwZd}`ho;C4bbJAG#$V{y!C z7f-jO&!P_U6-^v0U>jV;M7{QQ7l1Z@oCMyEl&z9mX}q=qP(WzS;X+Ev?5vN_zE}`V zN;OqM-s&5Bm3YMV9UzRG%1*yFDhj5`h0#`(&4$)rVTL_FvxN1(E}!D9buZ93@}-{} zh0zy$&`;5xrNUBi+KMKiU^S9&Wm{Kfb@(;IUa zQe@lj{VTdE-d6Kz+gNOW$|X9}o~6Yvlv03x2)nyODytY;84#AKQYku~Wj^CR&n?eK za5%#CtJ>@jG(We%G(;R!$gDjJ58T#CYQr|JupXdmQ?JK}QckHmJ^k1E(_|_gd^gW$ ztVYVcTTv4$RY)@iak=7iB0LH{PSA;GU)D~QdHfAHmR|kRyfBZ2v7f(9WI5+hg0L^nj-3NVr7SyDo z?dcxaQ=`6Qb@?uFnq7%^WUy+WTBE4X1N7uOV;Q)-{O`bm;T_BpQTg{h54*8G{lr~_* zkLj(RafPoCZ614+>+ zNj5`2cx9U5JrS(mJG+UzYO(QB#b8?d+i|Dj@Y95ho)(>E@pduRQo{yxe0f(;YfcjJ z3vq$;9U)jy7xxs8CND{yMT@L_jGY*(i<=D-WCW+D9j^s(WytL<)j`UNa?7Ca8vAgH zho*DhK(xRIZ7;#M`BUg$HJ4C?dL@n976o4y*<30u;`sjDPgH8tPW{>W1Q1k<$A3;x z8Tw>@$kTwfIYL;BO{4T-PgazGXRx_T0Z6T@*fy(NZ-fvtJ6{yKGs6~^d+?+EO0&k# z*8pZL4sS7SK1Ho`vdX13lnTjPy*V9aFXa$7F0i+zMg?pAhD2uA_F1jVom1}yzmza{ z&BI@dE=!kb&`Ec(QL*P{sLxl6AvCH7H~%uU!cAAg6UCJNk4??Zd=9gk-oF9J2IkHq zcLt@2{PT&5^Pkwwrsvf19}d%^s#cu>&dMG`b~rIAAtSnM zVlSNz2l5jnYxP1aB=N+cuJHo7)FM39KxEoLd=R${vzrWtY~QKdYc+Ik!p8KU+Vtiw z6ll7|3!jmQO@6#Nml2W^KMsnIa9-F9lV>nG?!hOa#R#S=D4jU6;@1xa$@HPJ;z<dxj-S^%dMq=(W%V#~oX;ra-fgEo;w z<+@>n{{n);gF*(q>Lg96)uu$;YZ!vO{D!m$PHC#|)&gUK$}Yem&~Qhz+#M6_wB zs;yV&)pZxK-9H?nkRjB>E9wOQGcg@hSe{a$Z|5bfit)FW`E1zVH;d!H6!`AMUuA~jEfKz8klnKN)lR611W8;lo;vSnEcZ%b*!YL*din{+Or1rIjh8mW z=MIQGsP6YFg^f*UQfneZe0kprI{l_Xm$SLN3pC}gHl1NcW(4@@YZOK&d+Wa&RQ`J& z?bpj&f8P}ndL;J!n;;X3s%8}0X z^3)3cK2F8ETR^t)Z*Cq)_=o+|Lj6Vsol2j}VFPdXPd58o&!zJWct!EcOPuX};8Q~* z!uNlH+ga>(vKKB#a~E43{SR_prfi>}wX}&lnA^F?=bx}RT=?8pRINk^OMRP>|2lbsK}{acs?*Zyg(8W zZHFV;_ebu%-JMr5;U;)&mBI%wJNn+xyTHGBHQFP}N{TVD@-)NkyF15avxe-F`Wyx> zpBM>S_q%d93qAlF6+W###$VNfq|sWFyr@CTtD&MF|IJ`>^(x~5k})9^8;DL0xC+=O z;%t92uK@j1q!Fo;O&1L8!Vraz&dyBLp##|5kdfT(K)<36CXY8(=2j_#N=q9QI`v#i zRh|gbYrU!JYuRy`K27k{fZP8|uThEr&kxX;iKf2JQ)g*+eG?cSVV^ht{I+kg$Dvgl8Pa5iXzU{oqL z0czr-@+^gTPe6wySj9D@yVpu} zk;9A7ZBj}?eCuHog0}N4T+?TC8S=Z{*Ic0BE=O`;OOt4L`fny;rLMotFYWiKk!cfP z;+ca>$+87T>$)kWJT}syHcabz&VU0?yX=+)3A)^1_Zqtgrc}EcbIRNqXhX4o<^XhhVbb7{)9aF~4%k;yAOWhIiW2W#iviUvsIWu3GgLC1nR#h}l=6f9D-cf02+Z9{x7U{asD-FGOc zOl=B%{lN+b#eJ*m@1I0fjYp$XbG?jA(VCis3&nJ8zUJjK70nqWDXpsFAuGoDXoqe*cdLFDK+)Y8=c^yLQ_h25%X*x-UQxfD>Z5 z3Zn(I9n{W7(o*tFg@ie&(}n@z@=O2|3sr|sxm=iUGpBMl0{_G0S>Rd&Jlr;gNPinC zDW^*VK?QPlO8SXY#m)SW1}r3iObt>>7bmb*N(aTMqHN;}_g{G0d`nSp&)d~HL`F-m zw0vRi@-!!In%s5G{A#veQ$fUlmXhhF>Y-XAhNbawN>ozFKvRDj6bghUJ}zjxDrjgx znH1nZj+n~S4aR>O`oF33|FPAK4DE5S{^uPZrxij#s&WiEyY;Pk876^ceQXa-;KBwQz182&XOZ(C~ha>ENw$UkX~KBTkQOc zEm;wKm5rh{U;6k41vplZuEDp$`jr{!dw%>W{q_o?5L}7hOU>VG(uFrf{`2c%@5oJ& zK(b6X-ah`vtuNn)KE>+7RZn?CO%t4ik0*zSjui!JCo3?aC0^*%aY7Cyk6Dc~I=)h@|88 z72#6g+O>ZZ!O4lp$sd1zT%X!WguFA8HnBQQIu8~EYkR5Q*Tqazo((B7<1A)C%=(C* zK8E^<_unE0%21vkfhHXtr%E8$t@W}~QOJExNqnK+7Z*l7lQ(KA-YiMKa<8TOS5H8D z+_oH)O>Oay_|0=Mp##ibz{1`sZPRWg?&05D1zYmf>GeM*H|^%e`)6T#cj<%HubTqX z`wNVjtp1y02gGDZ_ELcyWb&V1_!K@y!(**2ytu`lF3e9-;NzfWUOq;@q)OKt-RK1M ztK{_2mll3?pX&mA?BK+l*;#3X`GFy7kuMebwW4Ce zzQgBp$#7v%{5B?r;90$!6vN1MyV%$lh7lb<525Vg+By$CBSOe04bX4IdCL8B$rcnU zi5=YT#%ns)r7FP7Bjy91Q1F=LI=AI8b&%?Gd%DqQ=gzQL?MPi@thmd~v#HiY+@~0U83{~}y#z|w_z7HZL;*cjjuDv+d zGc)5$E9g$q$$fl6u9kP}IVqN;PncodY3rD$$N2!~nqQy+x%Lmg2xc>pHgOY=zEsz( z0smFOVegI92gz5z7d$7|k9?w5Fblz|vYiVKg~OPkFV=ODmsl5t^qOCxuCZQgq`tk^dNuoO>c&{obmO{3*hgsYA>7DRS#CwAytY9NMx68t zg9W+oUQ4d<3iDVl{!>kuVD@wVFdJ!q!YnO$vCCG zp5DusR2^Tu&)x+yot%1*C{`UF=%OBN?+I$T3Q$J>ewf6{W()Z?bb@MKEWi9tTt7z? zEycStm`rEt<3W=+9a+28x8avwBHt3ZoIcT9QadCZw=jQtQIL4lCiyFQe zu}L%$ahOkx71ybE+UR1oOv;h?vE_ai<~P&ey_%?*?D}oXW9qX+}a( zuhaaJa^Kwzv{iN!D_OMH{E&85pv(8)o9Aha)kC^}s&87XCYz-#SIqU&wyLWRh33*g ziPM37Kkb)uzV=foimQC-qLg?lDVk;KC3@*GcS7C<|2n`+D6!72w%KB#l|W|1U=^DG z2|2#esr$v7Ab1>~R8sAF?|aS%z5ce^)qKs82M`l(a{f0ur`5PLpptl1^5g0M`rXm1QP|dYa$Gg? zs*LmgnDvmq{a~cv**n7>&Y6a@z<_PfHMou$Z{gPksHMWl$AyG{;Dyc4 ziSJ&4wbm+cJ^LIvyrePp#iZMEjZ=4iVZ>u>M_i>+ha}=JnzqzZaJQi_K-}Zk@4T>a z*EOzyjfz<9n9OOX?Vhv#Cu+8Q5J)F?<_>3**j(-yMcS6Vr7khH?ONU7qc=*B?;W@v z^x8z+4D2mz%-Qlq!- zhX&`WDTkR)S*JG&={o5n3g%cv zq~2=ygfq^`2|XDrzHqes0qx(c1kr5%TwS)jfu^C+c$V|Y4fNK^QT^z$jnq9PTaWJM zq*}@rGvCedzNeoSvon9*TX28Nw{h+&fD0l8BPMzL%Gjl=mc4efCr9+j)X&Pajyqj> zPg;M?_F5}WQAM#QfuiW4rbwyWn&!*T_Kvgr8!W|S_HZ))pVsw8E-RZSC{zdTNx|GU zB*;r-d}Jgg4R!5pMUIur+WGx$^;$-{v8tcRsr5|59nZ^4ey*G2h^(Qyg}LYMHP7$d z?id@+^4$HNKO*bZvo%5$yAu?tWhdO8Y2BRFf1J&;Gd=RcsQ%)w ztOVo>oJ-*5yWru&vMY2++2C=ueG`7)<5yD%9QTUiJkrY#ZjK=F}WR_JDUH{Xi+mT zu_q;CT7NMBlSENHoGE;BiI?!W{+avHX3#ca__ax5AUw z?X=yY$(Xv;`+F^Qu5;ZdlaC8sB`E6fur&8KcVi|!m#%#S)SP>ZMlACL(TdX*mak%@B&*FsJ(j2JSm=;$*$9^edE$#T4Q#)L`R!ob)M> z+~&9_yo$-cep%+v!U*@4{LfzTTUpKei=Ea`REPS}KqOeno$ogyksp7l;0uL7AmbAg zrrf$GJF_k`ulRYO8?`s7-a1%T{Q;e#c&T?yXMP zMQhn}lfREuxm-q#xT0yJ{0QGy+gHK*Wr?KY52`3?G(8d$gdY+! zb;JNF-#KSY?HKqU8nUsWz9-9vQcQ32ZhHVl&MyxzU8JDErZ*tW3*ty`)qt7CF=Zivh{inorMiq zcf+Zbe@6W$JLL}Xt)L^EJeiV^a7p||iARAEjUHK6)i4)b>Ru zU+eVLw7ys z8x?`gH(BZ4M%90V6&_}^{kpVFrW|Cm&JZ;J*ruKTOE7EA%cyH#KIh2Sp~+`v?kF^`9-Z2j&CCs1R_(%>S@*=C2e+b_UNZ5f59g`8SNMidw^6SBPq7S zBQ|_-PO^@CTG83RoQ@9d?xT7ionG&T)K-WeeKSlpX!QZyh9%(U8z`6lYc#2Z9)b2P zQCCS9v)iI4lUh8Fx26y4-s|l`-su9vcf{J(SY4{fk3dGDwzU8wX2M z?-n+wmVyl<$)NVb{kETqce;JaM~$CV{}-V~3aIyDz*SNz00jX{N)!(klWwzt_X8vp z5yTS;tHi%e&j67f-JfU1hT$AY7@uwh`WlfUO}-J*DR!CxNp$Tv4{WYARY8Ok-2y!W z`hy@y@>{ZS%EfAPDk-Py@A<*3?2kZ=T?8Ex0`v3BehY11+#QNtGM<|?2!qKh^cz$j zYzF75OF+BHB|dC3L9lOO(*X(>Ok@G2>l2W~CJK^}V|@XWgx;Zd9<+?)tv-Z6D9cXP z2(Kl}MrEst6tO6xLydh-_IHQ0I=RUd&IRwGl*+T7K=B}S!Lo8HAu#q{Eu;yA4jY0X zjX(mN|BX3anzX5nXEpT4+(c6vM!@n))e%r^C?Y%pl-j=AavKWm7Rp>sMbp}qR!G8_ ze^vIEH|F@9!*xmVI*||@hSZ;!bV7g_*iaIDdO9Rsxbi2!r+A72ikCP(IX3p=gZ1IEHCLlY!;-LOo4A^&ue7mm$!E_O z0m`cbmN)6i>GvQXEEEY#_hc=41mCph1If1U@9Pr(tik`!$+`LggEac4X;R(R&?}^@ zC0l8%a{XfYH&oRwHTs<~uU|CmVBR>e&9Yx#$Z#{TwL=_d+39O@v)^!*XkWG)blEut zCJ}>sKb{Ep7L<-xfaaZ`nC~Ncod(<&e!ptTCFm4Jr8%^X-MVUfpEJv8=4vB9U`99~ z@urzX`;UtFl%d@zQR&=CFt{88M56Gif%`(4OoDFwr-UaTl%;6IVk#RQ2!Z0jZ<)j(6uuULAdU>MulLn9=IysiK@4YDTY$w>QC^;?V z#Z4+ll{$QS)dFF~P-&G?8AK316au?-%Yq?wEmX^M0f&~WP~95UcP#9p<+7E%0Ma$ zS#(Bt7pwh7rxsmG)I6?ADOuD?Ko~g6SuJ$=m zY;P4dg-qcHGx96zd*fOZ4B6{tcpzwOFw7$EvzaF1{!Rjt_~BRhe1}ERI>(e9@7PXf zrt!W^VJGR!x(^0#|8(a1TMB0jH;Cga5bFHrr2+)#q+smF;%zn8SV&npuN$Air}&Zk z_0JpbBhZogyzmnI%x}CXOFViUiE!{e)RZEs5-x{+sC2fne>2D1VL}mm$$RsP4gv3A zXMAv-RHK9>hvxYGvffV6zc|(AG9wSR)GH0nEgB;!dwa~u$l}LQ<{xP;)B`oHf9lk; zrF+;{ts-(R5$IU29w$l^>v;CJ#rXQDU~*LkL@C~+?>1beolMF=A?W=u!finpC))16 zKUy>E4Sn~4)0V_jULoqz@1A^p)nyH=j~{P4(ap7e%hh@RfxGcvrKv^!UC4jp2jhfM zOz)3ho`_%n%nUA)(rNv3g^M7+i|_{Nc;1+Oe!PI|`Gy&3 zqPuu8!y@{IlX^JTuZgHFg#88s=8?M^YBF6cJT%q*ig+0M*<<8!#jMKfPtUG(*JN0Z}y zq4W7C=+M)}&0RakHx7UQhPW$em0tc0@jUlwoNPJU9DR@+cyv7{7R!G|u{1Kd?RLa5 zvBLHrQ7NJof||l91*Ku?X0vO)((>VI}-w zG`QO|%2F3Km%gckdS%9s{2(i^zP*Qc=Mp=}OLMtJO9Lap z3mNgdW){~Cm{1}q$lUQbdNgx5qr|bw^efo@i|1HVMY5K%)5+;1t>}-b8OlH2d_pZ= zX1`vCno7|xpZa`nhtMNerr%~gQIqY7|JzQ*bs_4IKNO0{8xsUmGM8Q}^n!^R#Z*~c zOC$mMQVO2DPY=*j)#BN9_olwW%1+04L37YE;=i5u*(dh*h5;zVEtZq{It19IagzRN z$^^I?YWbq$MNF$hl(Vt*Tukg_1CEb0y(BaOomZ(NKoooCPZMhCPm?^1LE!h7j9(e< zyfE_A^U?Bf;Q3f>s6p!9n9CSn6o`l9{(0K;ClIT8}q5J+G>o&F1y(jX)SI?kaos^@*advbBCl@9Xj`v69+`ocv|bLacgikoM#v zhI(GqahW$^#O<`K1g(^Du;uF*_~vT0>VO?-W03S8-o6^Bb@sRNXq}1I@-(SueP1DZu|9YzN*ReXxb5%o z@+OIYAyZ$IU5=PuDsQa9e+tI<6rS5w)gUZ#aLnQN6S#oxOZO3(+$mQW} zVR8TSOclpQr=eO;kw4WX$>qY+j0$E<)Qv8Se=W5yhlf-aeSYWPk6rZLx>9Mbvc00( zpg7r$L2bA`9Mt#etqf_ZgzvMz@{p8M@!gVeT&vvf3Epo9*LzI5bH6huYZFYmfQHHT^?)E&r4X z_ps_{EqRRLVX}A~KaC~%?(OJ0m-)oP0RPj}Lo$Jj#=zqvs(9A&tGTC1Bn4t#bDz&1 z8Z1ss)*N&<;rIy0?#^YI4s$#bJ=wm~PaGi-tcvP~mr}qmIgGXKHye}eu7IAV$D z*QT$21J<-? z!tmaVAxk2B`4xKtn=~o2TB27Lf4WAwq4(~J_JS2(D$aSM^`QRGLxO0oItWB;y0N~Z zzHFfUHbms8@L^*7R>Rqyw${@V{k`**qLEjOhuQzL8LZGat-|b{ zAl@hMKU^KJ$*t;Z?6_Ec((v`mYd3rU==Q{5OHgZ7fQ;o=pton(2U(Guu#0}Qa;P$S zv<%b6VexyN7)LRWKLZVG$Y*kZL4{#f{_RlN>(?W&dCW^(qG>TSM;SPem zyWM)yotIbgc=P^a)XFHY3#Rf5Cr9B&izD~Q!rPEt@1u%%)*?;Hn3X$%1P~L!){-*s z%_vvLmc5bKsa7pdi`d~ES*89U{JXd>s#pg_tRq;vEae`PmpnV4%DTRynxk^_x%w61 zz4Cx0V88I86_*}QQzteB4kU;iN5ZLlX6On zBsVw8r{G^vd>N<$LIdmfo8`AQ_XauHIoWB))IFIPRAJ@Fsjjwuvr_-wO4@~T#&r=8L z@GrheI4V0xex9(CtL@BF%hD!-d%D*(X53y$G8cXF@}<5jD|Pegd3GiB+`QKS&yQr& z;l94XxqzbOGi#cMBy_?}Hpc#^hr^e)^Pkx8JD?HBcAHuKsf#AuU7d^7C9Y<-iPM&% z|Av^x>mlY0ofsf~N%{h&vokWTo2b*J`SWGrt~~S;UGL1Lt$1l7b4vrdcuPT|X!>xZ z6t%g5j-H_ZV(tj0AVpoB2q7=aOcVV(IV$bB@AZXav%vHe3BfzB+Q($E?<1sMx@IyD zTJfb}DvRXHDy<)6`L^dr*hpD(BX41$EW^S?v2K3EEzBME_l@yZ@9Ne5uG-q8BPaB3 zX_mQhO(P=gacPZ{9y`&ysZV3a>;X7oKCTdcxMS|E#d zdkff(kdA=Np^xhJR@rUMUPmdV^S7dvIl?1`t&>rf5DAl>hm+tz1;}R%U9J)8SW#F5X?{D^*4YZKN&htq*TND|@)-X70z;>j1~xG07DcrtQ$rpDub z#}~UYWozzDd>M`RU82+VoAYw^#@^2dQKoVVdwX_Vtn6(c8`mp+9gDN7={PEMh~L?| zl1?VwLUF+dGy$~p|B2E@cmUy-S`S!P0`;TQ8dDF8pWZZ&B1i6k1$>n zV9B6Z9BWa&`<1vXis`xrVymH+){a+yGROJmkhayd4HrTTBxQ?5{ApO&frf3EbIYgY z`n*>Sryigc5&Hvrc`GbleK=)V){1wu%x$P@v8L_w3-5;p*9nIOBBvL|vxj%Rlk^Jt zZSKpIDG!%S6i-Ig3~U$fHJyPc(If6K=h3zvHa@)m^KGPMjv{o&){y}Jj53DW>m<(i z%BWtZP(>1uVpRMjZ%*qgRbT;V`w(J%`>YQh0016MI z=Fz~BgyyFVY7B{7yba6#<@F#lAXo?wy-yiU03(h?lauk_lSFoD+C|If$8_aJcqx`l zlxTi-V#<*1q^Hl2ze7(-9IRDhDX0tr&HE`@dFDDXFzV>gB-$}e_GkT7)FpS{g{=gd zemB`fzx!a?c3KH&vd?mUF6$_8x`l%Nf1K`CGmpZt@BjaL-AA`$&iCKKc=1a}xx%2P zQA7xA5+qCtW{wYii;m1jKtXE~Sdb+}KXFGT5*BJItWW9jI$&wbO#&KSFn+J1vDbtb z^p}EH!(T#iU=g`Jhs~^=f=TkkQV1xzM4EnRpIuG1X#DeXPEOcv^T|eiJl2G^eR1H)$=e2ENj_pHRXrNHk2XC?GjMpt_H#WTtF$sSEEwHWe0tuxLsMw+%7H5+UW`&-0gt6)>etcDh9W>v2p>x#m2_XKoJ;~L357n!1|uC=OTWz+N(9b!>&Ow`T+U@L`Yh%B z%pSavRlBK$LKZ}oK1aW0E7OS9yN891m=>Jo^?SiuJJ9`|i=tHq>b+ahwp6vknfc^c zd}*0B#7V%w$fy;xnO#v4LVh^s56`6ofgvnxSh&QQYLv`(5W_rki;@an<__wkg*`5` zjF15>zg8A);0Q=4Lk>$pqVxkIk3iRvaJcMOpqY6Uw=h&VJzr9?0uaK?c$2o ztJa@iREVX+RX;!TKZt7B_tKy14v9M%=M3GP>7 z(}MRyU~=(7X`4c6TMvzD*t_B%KPHC3@_mw7AM;kZRJ2|2Lm6&Cu$idwVeoz(+Y>Kb zfNBsrXar{Oo)jdADZunjL4oBZI64Ln`haCZn~z{rzV#`@Uy0AidG;DlQa>Ec&&W)nzEPW__rxc0_k3Mlbgh@`_Bqd|CJ}?L=md^q^JH1Z|lhH-@9(p zbbu5;OMCmDDH6wV>TLT*Ou)7~GPiPFA@;^@{&)4Q7mJ4JVkxyhgH65}yP8aWn6e!1 zT{^fHuR4qj^%pDQbUiJkwXG3?=4jaqd~vgVBfVFme#+)Nb~^RD+g znl6}q;hJo4eoe(iF^CF|cj@Hb*BMyzNK-EpYFWN8vUv}p&Fp}ovu+;YZbm8hD+=Sw>8=QKx?GtU%a(4Q&ST(n;U#->KbKry7!W; zt=49$s**~%)JU^0Ck(apS3k^o_jA!|6l>N<2}!GsPdT|j?jiDLbCKj^qk9dc(*C%u zo8Pnj_KBcSED%2KWuSwYD?)RO{}$bZb1e+Es$#*+5!_%hm^NxSf4x+u7N~-o13FAX zK?3h5A7e8HbN~WDn#jSpv5*jOc>LE25*i^O1!a&`9+)7&k^=pv=pp$1pU2Zwzj2xC zI`Ycpl9PoJ1s7;4Fpe+*(jh13Xcp6Q33{7Y3U5 z=ckfTJo=k$*Za4Eu&{1E3E{~-e-Mkl-5%62LmPoqLBEFIN^Hmu3-hNBtf?3yq9M3* zIlZz@d(arf1%PRmthpC&?>GqfBedN_4lLc%9U?1oRLqi<+_kh#Q<@b4QV=c zTykswOa<%+kr{-p3Lc#;^detf+-<7Xyda~C(#t0ri0|>U4B~HQ(;t?6Ezn_LA7Z!^ ztk#?W%0KXG?jvu`$W{UyCoK3yMV+X~1N@ha*SJpq1}78_s@c};dtJII zyXPneLUXPzPTswiOj15(CL{?WCqKAv?&vHxVWFrjuNsUETau_Ze6ak=4g`FeCf|s< z^b8WO9;Mq;BXm(?W}JsZSyw+pPKQ$5SG(IBSu)1GzU=qn2I}gjXgzQ2!#wI67>ehS zT#|lZ@=x-iz;b@Gtsd4toTo)+^O($qL*H+cn2l}SwIh6=Rk#lC_G`nhPV|G{ za$E6GrkIhh72om|Cj2&JwK^F*(I4jxd2APX54wmvU=T%FV@$hQt%^0bB$P4k&!mv! z8L}ax+o|zR5S>&!>nx*fV=1`Fveogc~7l4h#Y`Eg?{ix7(m!WvRn8O8PWAdt9{yh4kEv8iqET>VJHN*`7$P@)WI&T%0P#cfMzwBe*&Bn!2_8HoEK>hLBzCGbu z{A`(P&U0B?{N}>VE?I`!sL$m`_Raso7o`6+#V@$Z*fxcw33>jz6R;T;iu3=%*S{cH z(HP}@lm9nU?cWcD&;I@A|Fv7#99KcY(9ZDw>x86}vJ0OQBE;We;Rx7w z@*9?i$a6A!BzfprDEcAtgQYH_r^mOoiR62|`%l)FjiZU9%W?HdG~bD?7nB1ct;=pI z98a0#{?FLPHzKZDh5v+v!8W(Ie|w8DGTuhWLfgqXPH#h)Z{+CY#D&@#IJZ9jfq~)(*}^ehI0|IIMRxJ>@+Q6$I_8Xzd@3S>58)=q zXDOqGF853kBfc*?F%g@R%amztxi$Wdf2^%{aK<>Nwo7}4y>cQ~qOAM-x1E{;BQm(1 zu3M*KDtor{U?4$H!{(yM6Cq2mZ;uP z^pVjvOuglr1L-=)7gxb_;AOMc+QUQc`Rz|DK2Mofkr5N5j6T1*E-i(xa6;+hWG%eB zrmd=()9)|_OODuR!mvZyKh|VNHAh_@esV<|cv+KouejLqQI=^5AAA(pF#gl!Dtn-e zRISpLgo)6o$jiUiDp6u04rnv3n4*gA)`61|gdGDHv+U%|4+5#xyH7v9;l?;@!Wf$v zhfZ^`R#A!VwHVzx#_wR=;`G*J=Z|kWAJtfr3$r+Ql)yznQ66tOvv*nzPmhmx+0+7x z``<8b8_pp0Spk!rUaj3LYwJRI|JBu1KpQPRlU#iN%7ITy6?|{DcI(e_M?6y(#u*~P zO|Hm9Y*gXt<)sr51l}ob${dD}gv~pg{`uoX2P-Nrb{3!pyX7k`XMSS3sJxM)xg9cT z9%=&N%po0kL9;4qMS||9lfY#_Ae`*pI|S^z2{)_U=#L*TL{VNI<}EG_IW@Hf`D*Qy zk-e?0t)pYC6oa9mAr-$vY1zNay=lR*^~}oL95a&l@{Xj9jScyXXucy&EPCybnHWzl zzS*c^crAgcI6ptXyj&TEj8mZj7d3Sh8WSPKKzdh@I>v-sfSdczknoVieXvFQ*P(6eolr49HncZLR;& z$je+-_RLtBynQbb81xIgMC9gp$~f8bESi7OgnU(azPBjwB@;0P7_$^Z75pUwQT<%m zb}q|Kw^;VxkDM15Cp#M7`N3yX__{P0^vb{xIjTi%ZQ|4fjL6G?wz(ZG50D>V_(WS@ ze{QRyZOA!ew2Da%9rNhoFD5n#qb#V2N8dL@7TJ}dy!Q4suE7&+KFTigmw9T;pSDgf z5=4oloh=-Jw8BC1XK2Ur?Ch*6D-egV4QfitcuQTuMldC#qL84`wcl~i`1qutah5Zf zeP}Q&LJCUX($d1!`uEq*pLCFK%TCQ_tLfk`5mLDY1y*x)Z{AAK#mSCm{#aOeL=XmM zl#lX0P6&7tvPd@E+WwWh*td`$Z1^^v1QPF@VQ6pGPcOp4!fnuLoc(C$ke*adHIJmE`ud%U_j8m`X&0L-9 zu&C$SQ07{8U;rIV_0}8Yhgh-m^$gdcW$#71+SbD%;hCA4jg5`B5+93;dtX1FdtC>H zP7vnn>szRljvBBJ?=suj*?IHk4J7FEXZA8JeSQ6YZbfP7cf@9qXbgMO-GAE{LYeOF z?!dYU3+tCm5D*Z^$9Hlo%E;ghABqgy^QA2`dESQL;NXBUfk($a67F_3kd$ms;W3ZL zQzFMiQ}NHfuDiUvyp2ns14ji1--^MU>@L_pPftpsjgY!~_bw$B)#2gc-0W=bh>eU) z=!D(Q))o~dW#8c7BTCB6y**k{pBk-_SL%WyG{cqVXdr%SYH@mHG?bJ;nqR$om806T zc6cYG9XvX@-~DKPBwrzUcj=!=0;Qd1s`+0}bGvVjgAOXmNlE^Hm&59p0(?biJcTmJ zB3C}S5pRksM*O4}_87qITY$^T%14Bza10MpR9;>;^STcQ0j;gAJq8O_TbqPJoq+53 zxC^r%A0NLA@~U!joCGq`((clO)X>Fd@40%%dL8(aWc#y&6{_d2Wfc@$8w?&Ax~YM7 z)7skFA~dwAUaarUfZ+rtK6jWh`Z4FftE{+~jV3mI&`OOoJw5%7WY53=oRxKbYfIx6 zD8-x5ONx)$!C+F;3DW9+Ia+Q{rHaa%8<8hJmA`D6o@1LBQxKBtJhRFH+`7>A$ zW0zj$t*MH(gFX&^hxxBAEAq%6F^`0$)BqB5aFn#Q1z!H$r$)b7Xmp<})m1L6{`k>k zs@xFRPk9*&d;5|>tAC|lfJzfzXx*|aE-nU!G&MD~-Q-Jkb@kV;0&%kVgoOHKTA9jg z9!)QDVEt8Ng(@J;9}oMMUYSp7X4X2}Uj|w^w<9mGXja)% z1@Axj{_b89qahxYM!-n|@0N0gfb-U5+2e#>tLo#UBi02fa&nLnX;rO@vJ7eeF*TK( zl@-HdMgEv9^6V<0dPXr;agoc80WA<*nif<<_L1;@{0{6}Z(Dp%$sRla zWB+PU?!GlC%@D_u<%MVn?;=;p7Hi4PMMTIfxb$=8vhL1Q7v|(hHi#uMvBk-{d3qKW z7TybnMav}dkwnWRP$&N0_adMXNr{VV=T-zrW^Qh-prGLI-!iv@0|BVM5>EyBR`uH7 zUlh!Gfs(zQosiFwjlI1+C`|y=BatTwsPwYa-!T>OTD`J{hK83h)ZXVCg+R9#98Njw z=W~Bo2a#afo;%E^Bqbe>DsTaW19j|9mjc_$%bzeaGYbn}fcI1`bair4m7}qJ{rd7~ zOa&NKf=5E*-~z^MVIfnNsYdS&P*<5exfs9Fii(HQm7hQNnQ*_Jsp_(-25R|8#LEe! z6a~{oJred2Kpx?vq7Q&aptN9&7=i@#s&(F`JqVUrPyPfA}YwcrcL}#a_ zP60wwi}?wVMdlY4iXV?_V7j9(uJ!`CYFhY*Jit&X z-!))BZhJJvCwz5XQx5BJUjLEP-rhbm1b$XCHr_kE00s(=J~K13QfFY+EffLRizw*cn+(W6Jt)0N7!K){>vWz5mhkxi{0 z7zY67>FE>{ssNb{lsrl%k2sA#eGsq~VBq2XLYc~zvL=p>j)8$UO?$1rzkA|ZTU)<> z|BgbTWSK@sMshk!%e3r)VP5VCGkh`y-r5N4AJ)%Z0gTsv^{Te64kx4?+`n{vQm;{< z=nYth3Z<9t&u>`S!}XqfMu1dnXqeaP0i%G%sFh6IzkfgBvC=Kb>)D#(`g+fs>notY zb2YYOKYxB)a3Bopc#<5cm6xY%{X3Co?>~EVnMOU~fhy;OerI8Sd%J>)_Q(gnoy&l> z*583O$AL`0uB)oz%~w?bX70s{+ep=lDHdY9P*V|_Sl(~AkPpep+N!Fs$gZlYs>Gln zxi_n;tGxJmQ()VlhMXJ%`BYGVa|&zQ){p@g;`B^)M9``=`D*MK_q&yi_6O$?CmdrobPz}IyjWe=Qm4BnucLn4OKyH}b;#d@M+!R|2qlcEHVqA%f|CudK}Mc(fSN z;^Vlwx&pxgD+$ivz&WJzC_>pdH~@zQ#HOUUxM4NTK1#;CD%5TCcW;7%ygVRILjo9l zT@*=#6ccfAX{ly>gFsAzC53s0EK_1e+`zzq1l>pV;?dF3M8LoScNZCExvc}pvjs1Z z1GbLZ#CPhSowYSJ6H%z$g(mI7G2kzRb;PBm*;VSWb8twj@sZ;nA0Gp=+K^?fdy=ia zUwCbv_~y;?^ryVMK%|D(G)AfJNRsP1$l>*@uB@=VRHB2CKedW#H&MMi9ZmU6zG5nt zivJ0C3kV=60D_V_s1Yftsk(r=Xljy1Na5qW09I3gdUs=kLf3uh_46i!Cz7yIEnucT z^XmP0{oIv$ZQn~EMx$h+k5#;FsRDmwu&1X7obqd0kUu*F3_%3jLKl31u-p0%z;EiU z1}QB+W;4kF1|Ub%e0{zJ?6}ij%W3QRW=V;51qihP&@ih6xSgi>7$V{Ber)Ku@XU2} zpr5Oa+WhtN^z<~)e(sUJvGK5TMz2NH+z!w$K#MAM6iKC-c(;E2nzH5% zypQo4Vrd>0mcp-JzXB_bvW)DyMZdkV!9y7h^keH7EOg1lXKXYlSwC1b&z;$44)X#{ z3j`4G3Rn-HR6; zMQV95G@@YZ44+vcQszVP7+Elk9)}12qp>sFX4|`iO2YM*!-VZ}6HklB?$H0#U*P^N zm45U65E7JaEfXt}L5~Gvz$OaDzfA%50Y0ehnv!FukW9rJPglT@d}HV0Ai&TXXW?ww zV$|k$<`QbkM>z;SabQ0IPP$R9{N5+=FL-CZ0O zb%kI1UVsnl>CH}P8@G7u=w+>)?k%;MwBKSr$hV-Mn3$l5mZ_g>aa#Uv!`BF)vZkiy zRf*Qh>Z-$R4W7AQH-$AY1;A`s=yD){qb(065pZ%k7%LlFrC!B42`9wioG6y+yET}%mA>dPoJbJrd+9CLe;+OSL(dp zp02!o`!>8^IfWa`eA`Xv=5kHE?ed^se#nrI(!If;+IqO4{d6xA-fvY+VczVxBo>2_ ziKQt+%D-ZN#al=S0Xh#S0~EmD)6-KSR!yRBsCS7k7txhMn+jnd$g34?3|oRR`=MO0DN{Gtn??n z0A!8Rs9C2>i$hQglpz6_&Oh(eq3_u8%z7vTJR^dHr3wz9h$wx~L`(o#w$#-s(<1!ORRTz4U^M2dmq@u( z-ap$X@c^lsY6e1n(K30Z*qO@Oy1EVK=os*U@87=%cv-AbcsJOjQfJ)mSqJx1tAP)e zGY<7EjBWBqF!R^Eso*An+CWes5P1x6VQOaqe0P~uZf@F1!T@$092^|^w15*jU1pTg zp)t$($||LL5C2@uQrd}>OGa%N(2^b-zXiTO7HsTGk1gS?@NoEx)sj)`qP=?z*ocES zGzjclvUF0$wfUyJJ$LBn{(5yrKyE>hKfQiOLc*%`*W#koTC|=MgKe1Gh}brB9hMWG zpjT!V*ta2g|2FC%`)Bha6=!4*-<`97MB()Bk#f zsDhuLzy9-Qc{v;)eF`Y}vUh89vq8mFVL`!X&Ci>gn_zt{8_V-v#1-)C7DHjs_}V zoQn&yl9Jpfb*+1=M8J4~Vo%sH#)S`BX;`V>3+n(*413b&ii(Q7JjR)p=H_NRlE;9& zgCJa}Dew#8RTHwaD-^#zci+?m(Zj&&%c!U**C9a`(z}D1!u)ZvaN|}HE-peu(eF|~ zfZic;1_l&`?k%4x_bR0E*@CE)s*g{jQ3Z$!31yal`qYWpAD^6L&o3Caa|eC{oU9tS zK#w!kwM4|ljUyts@m+Tt*5u=Be2zDPhpfQWLTc`Jbv)Hy)%<#fm)R#*s{}+Do(Tw~ zWM{|1gxuCYRH0p{lSO1pN=kr&beFRe)qtThLk78{)UAPIXj==ct-FvRa1)8w^!{ej37~ZJl5=eXz*m}Xk!e(5tROP-Zj>!q78%#01F_FK%1hTUQ`Tva;rdJ;ru+jGY@6dxxLPrrkuDHZ^~W7AD2 z1|tx2=+h!CE&Wy^$dnu~#SAQf+e_*5MgoX|A7RvD*$G49Av>e{N0o?}N$Pk-+Os2WZy6I~6 z&$c$6$gABv(m~leh*&x8Q5c$Z9Mva`kz=dkSPZf})8fB52r0 z%SU;+K0Zqk8qpQ%*?cuRPEp;XZI~#@ikCaKHKB7TFB8ig1iK}W1Hz8AQ5zh-%`bmhM1 zUX%P++c_Bfd7nN_ijvz2#?wltE6SOaSKWhyfQ%M z@DLA3Nm)&Kn-;PX67r5vYiG`wZZ=0;&^on9wUJY9bh^?U#O`?WXz7s{0p@TV2=K{) zA6HeS?#+w*^7X41@DNi=@BafRz_ipaL>kJ0>LzVjScCzO78}hmT06454r>Y=;D*LP`#L$<+J!G%TPs9 zTI$1-Tcg5Qc+78qjQY;KUh?l7xIllS9GS8w1AT$fgbrE$9v)fVeY=NqsY_BX?b85O zCnhI9EVB0Sc>d@f05IR9b*v|zzhsq^@*U-&cp^9uz~sl+C~c1gViaWmT_5kq$Hhrj zzZ`?_AwT^6>lNh;{Mzy@Ha51mE(iod^VQ(cP{9tyO~~=~+miD`#vzeAim#>wHd9R zAMy$sQbg*gJPEOm)m$CSjt_iI#s2G|%Uv6156x8-q>H$e15-P8OQZbb#U5TmRN3Ut z1)Dgl$2*FQiV;zfBnx^2t4md-0fgJOt8>n@ZalwlM=YGL-O6x6Zju!v`pJT0y*^ws zpChM#a4}EbN$`BrBpzOF@|~=-w6t%oinnkA?s~P{YrL3ot=_V~fB(kEqoM@@r08F~ z=dn)IoLbF$gsc3((;KKG-ANoGe<;%BuY*ME=-42Ei&N3EejWM+K=XQ?gY^6J)Fu+4t>#O!c94Ov77cI*3+u7YLDq3@`0IPS-_IkYS51$gJ*VNR| z0O|;%dGjDSpqUy|EX~cmFf4Mq^Q^1lz_ZlE<;g|&CVUL2PjhRA`@;MMRc)Q80r&aaf`~ucR%b2ddu^E3@@+{)dgml+2G({ zWDVQz9$_6Fs*hJSv_&*@C^fW;BXvj@tFy@SN>2jh=%~L{a~rt`?T1osICbyM4I0)~R=5Vq3}bA+&|6@%GHZR%n{p_!OZWf%PBg7vZbXUNrmT z$F4v2&JAVEY4>%}m znn040E|1ko#cY6YXj0SJ^py4R>C=LwT>5i=d(;RGs2@GsUqzrl?v}^D?boYR_nY0Q zKk(sca#!&p3_}^ork*H0u`fd$HGG-i3!pxaWDQ0^0z7)$h{o7=Ww`KD_TeYDllyfI zyb1e6#b0`poZi(*+)bA@Ff#H7q!#d7P_)=Qga!saR8>_~C|982FfbT=N=y^WC;`00 zk|$6Q!#q4Z!1nf|*3)n#h1)G8_}N=izK48Xzu{+k~jMrQuO;Rv(LfRpo^s}9_n z(@Jfx0A1c0rXFv(KiB;M%6lo#CBWBtd3j|4nuk6hGAfFPoBIu)$z7z+;d14?{ril7 zok4)C`CII81?*w=W3_{`o84rFaae6bLv>F1qpHe;vm6Q98Ej)U7E}JyOZwpb?IVF= zrG;56o_^cwTH{sVs-V_~j^TG}tHfDlLPbR-ARzGk`E#qzbU@t!9&LI?x_NjEg8^{2 z;aVRd1nZS6nMFmw@3{{YJ%Y}2%dsjy{|5iXRj4{&zkXfgwdyI(C}-;htoSD-B%o&1 zqbpFl#mC2|q|i&&7C>KR(hvw0_t}l5h}b?!Kt>`Yjq5mH6`To zKym0LPGuyMTwoeUv?{0~17ycfjt}{aYrW^X(21?hX8I&e{Qvnrx>AIo-Xs;)j2U%| zi;gaPn7EW@XD<;oRl=~{R*_+!-f?M0m2{=b*PS!r+H^aIVb?oFuzR4xLHa&tt1(DP1C zn!zi~-n2OTn9jbd4vNoiqs*KV9kz4wP7QFv%0YWwN|gjQNL`u5FB@LI6y9VndNmB- z)7)J6z@RIEcP}n3hOS>U^#&gw-_@&4j+MP5-qcZ+Js;HwLf@B`zWkK`C~5VHK!yHw zz)f{@pqfcay2UBEb$AS8@y{PNc6OqWuI~SQ0ZI?O2vBF178aD0l)wargoMEC2Uxbh zzaM~GYHI3-`TZ>|H|f9qZfj!%=nFelJZOLY73g06^J%p4;i*q{7(qv*@n6mYF3`uv z2QYV_iJ%sRk!|hd)Y;Y+9UCj_xiql9IZHuKez3iWbum&?BSQZ$D^8Q~6XoUYuq|)- z@q>+%^NimDn7*he{;q4Mi;<W@rxQJEWUgPg-(4AP z3Mb>^;)2>t)y8Jtp>os{;4sJW`q8O%>65)FY#fW6&xXa#n>PV^DtgoejV>TPh7TWp zZ)#G}8fge>xZVoSLRd_C`P%%pFT0vqs1M!$eM0*xrsuBDFr3wg7M7O4V6IEEP*UQf z+d4W#>0>B3@8ToyFI*rB;dlNk4+;B^g_fT{OLq(Tg6)f5p>ZY`xnf9YsA?SZvS$t9 zB}Q6uaz!jjEUf?}zU?gH_=JUDbv*pZ-*&1BEc;bes8rKuNePqyI=-O5#l_`ZWduzJ zkZROXKteo4kyBAwil!d!t^xq^-XaW`nwXdv5n2*r8r}yw2bo1uAfp(tsURqZ}hC}?Gz2l73eTA3UY5zJ9`k&H|ggxUfv)ddVOHxDT5 zShCzM5fBoF!xmtyh$JE={xDs-9!j!F)=j|;B~$uy$cC#fAU=Z>5Qyr6))D{_5Qvm4 zxY`RL-*a-zqAw^QiHUnXWVpF6D&8VKhmc2Jy>g|R_rJsb|BrkosB{h!W_WSAhLuZl9&APyv z^tBD`|NE;=;`IQDqJgCcBuz(uk?4Otq}$VnRtG_Nc!`XPpc?PtL?V)cTlLsHF=i(Y zVJLaT-q_U$@J8bYBi3S+NC{$PH_8i5lnZ)HQRpxlJS*DZt&yu?Ctk00{}b~AS6Scs z`rP%f_|927YwN$_D^_1nP5g4iNHo?3|I{?#_Rmku%(N&x)*twwQ%4XO?D)!j#o%<9 z6uFRTu{w%~;E!WAPP^79JOq12Bvr$ov9XnH-{n|fX2!bi6@KBanSNY`vZ;44mL?8Qv3Z*QmjBlQu-)Fu} z@lydQ!z|Y0pWgA<*cA`iAji8y5sF&S_c~@%Y{I>{f0w zQjU-0^1PjIBex@8zI~rX877V}^=Nwjm*398hp0;W^eTG5VKrhCw~_g8x=C!AkJ=JA z7wy-qS}*$un17?b2X&P$a$X=pJJu{)&yU55u6RiXeYt z{pymVI3;5`3w7$Gd)1`>Y}zH&Rkr&Nbsa^*x0f=g$sMPaAI(O-zUnJ$Fz!umSEE=R zBe1s|79Tq_;}WWL`tV`m%eTjkge>B3ckHY>R)gAwHME0*s|8LmsBn7QoWA}@$MqKk zA71dfi!*X+rZY;oejK!rHXM94AhY|UJG8p@o|f)g8GcDNLGd+)n4D|d*t?&?$R;ir zYnP=E8{VLEF*x61n%BGTSsiQlJ9f){j6EsA*?HVU-6SqLmH_cNJ+|ySQSz}WeOrGn zPr*fWi|=UFOHQ%6XDE_O#VzbV-YgYXNZ9(Mt0JrGB3p+$T#yQ%O;lXOo;?b*-||0g zEYQbC?GgXH@Dpb4(e78lU=>wEpvEJwSkM{M%>6Zj5oLaNf~cMZ~$%rwMa2kI=9Kek%y%?sxxV>q zu}u1$L%g%050j^4k9e2EMQg703Kjl9rCXR3!TPJD0Gdx1#%#NTPKJjQ;&*W#Y6%_~ zPJl|i6&_Gsm=ewtFlf|Qbq_8O|4$kyUb5_ zhc|K4r21pm2ldmjrcjjPX0re6`meKR?{u)jwlaQ4vlTj(szOa4*ZEGCcWtdIy*-V% zQzPGSb*J0ac|)Jb@ew_iDV0v2+8-yW^Rmz-lII1PPvAN+DR_ur_5Hz`Hd^^pGy)~h z%M^_vt7v^1ge|5Kj}02RafIu(-^9=y+3P$i&<$ZtlhUs6!_s_cxx4aaOsV%ztHhLe z7^=k=!kqm43>D2v8cl!DUIj}HLJ|LRi=-kWLLRrx6U!Srg;Gq(Di;wEA1(M(2B8;W z_j-ltOA)Arlnxh01RJX1>lS4&?IH>SOJa(9UaBYj>&?FFJyMWfRVO9o;OA-oCBGmk zu&I59wRPtP!*9)uG|@8$ElFti*T>D_1`>7JJ%X251}IoEXsH-jB63(`Lm^Z^SVIMQ z8IKh|3>74Fz`$sRz=I5MRkS^5)9(B>C(Q!<21KF#HXaVecO4j9# z7%zCCLTO0Jd6byRs}nc%wWA~UL-?+$3U;S$MT2L4ci+=-lA5h89wOUyN0vqWR6RV22O%fNAvTT`LC<%jsq}=ET-Vr8bc>o>lft%gmLn zQ?79C#?--j=+JPAh>Ap+msMQe$jDd#4{tiAZZb6NqodNZxWTWUPbc+w(|Aly2VKKI z^e(R3ANyy%KTH%{)LUz+r#>rF7@8gQ%aXpPjl;|N3)tRY|EKiC8;F+s}o$ zUuwP6XD?uIJiKZ71+_?o%Meq03@OvHLtw+Mkxz1Ow^~i8781f94Sgnz?A$0?Qd%cI ze|4^}uNazlPLp(5x?^B)+tv%wn3#&IGAcLYoy8KT|4~R&I zyYVDqrSyz<`p1n~5$;2hmsm!oJftokw5+x}v}-Uq+Mluz)H1Z&OfI2_P?9aoF0Sub+!hu6lb9hpy?f~ISXtVu ztF7~B(YnF=B(JV?Gg7H}b@O#PmyP}BDe;1;_XSzinUj+SKw~bAgb36>T9FR_(9}KX zv#=)+*ZRvPt!d0>;fFv&C)Q>BYqztzXZkgn!LhNSo)K^B)w^-S)6SB26W=D$6+Y4@ms0=15n$}j$!*J@D!CII0Z|JMCn4S7x7Q%*k`8PCN*41jf z9P52fWXhC4-;Gs|lshmLm2vMy2qo;B@{?M{!)cP(eOQX2l^x{Ha_)JD1a(#r=WhlUp`od)k2dR$h72TIQR zN94f`Z8Jbz3#6e%sgV zZEb0#CaPPiZBz4Q>QwvRbm~FX{#G(jxX|g8*h-U=?bCqdkgAaox=xiEfsg)UQ|d5Y z(*4*@h&HAX{m3&lzqE98%9D&%7}UmdDZb9*cNIjxVhSqyTOd%2Et`#+MLPcV@b1(n zr&wB0R3QLjAmAQr$;~3+tt=_dXX!?pp5tK3%KBUCqp7u+8&y~GSbFlDy@2!K(Mx3>OJnud*sfnGbYdBdZ`{np zO%VV>CmUVdIa@V*qB>@DWM*gga&kA|pxaNZy(YDz@i~#&-KCxBtn#-^4ql_DUnh6h zL%f&f8dWm_uU+9jSS>vMQeW>m`G;Ypes$t|UKkOs9hRwuw|ZPe2?gfHsDo`5MvBw{ zeLWfrQVBg{dI|=oa{Sp{rgvO91?Q3M$N=NG%DVh*Ju+EIH zPnI`pDuZl_!=`tx<>iT!zDKcS40w3+;X9wMIM_8v)6&yR2saEXY0B<)lz33vb&W9@ zCTQP3hfmX)@m%wE;8HS;e%T#q zi$z{D|F)N3yv|*u5Br>7{^eipd1=0Zq2U8EZamsJW~r(#?{z8JKQz8dc=OM_GF9V| zfIu;|dIZ}qKhI@bIPS)~Hly&N?Dm1gjrN%EOH1`r>4ZKC?_M`ok4ZJ0CKYSP26=cl z7Ba&_iSMmkeOhYia{*#yPLl&gfh^wDtem!$FE{`@0WQMANQ zvuljv?mySM7iAAWwz6uVEQ%j*watig(fw#kuj5VU)4aQ!{wkruqjv~)>d~sXN7=oB zTYtxjDY6Ro=IZ1(1Y@Uo)1J5K4 zbD3@rg9OW8pKXRd3%n#xxF1cR{Vszdq^M-!C}Z4+nuSHg{QGBi9?{$sJTxqjks7xk zSxzK1R6Le57}%z2&q)%50_?BZqccSw)+r0yzC`#XZ0y-t0c$JcH;skfJO5p~n@Vav zYJcfUuxWG*hxWaAm4rJXb5uSjA9jtQ^Eh4>3c5&2syW|Z_ocZ1(dy^IFEKIdjt(}} zWiN!U<3lZ7+PmWFcMg$~nG%}Ep@c%1HfE~oUH22?;Qcl2E-LbehGob~Fa?+YP}HHn zopx&3P;^6@kD(nwB-U29T%GKu9>-FupC^2cDhz?9q@Wmg`pe%ij_dA*D#JTHo9H`# z3v!)t@?0=21rpszOP=;BLDX_6k2R{is(2!0T|2L_KQ$|6*sFHPTCn?0AfvKlqL8?- z#pv(2_Q#uJZ-=R6*4Sdsbz`vWA=iGAQ(qP`T`RKV>>O#Zs>$JcT zvvDN1TI2RV2<9}OzXkDaZS8a3$kDN%XIq0yLboZsxc6QT>>yBpN*W=YT7|6)`LZKQL;BoI2 z3E7S6?e+#)6MoZMl`AqE2c+cqzZflG3G`jLLl=fp_z|V3@9jPD4h`#n%cPu4svbYT zpy19^E9P{OFKc9)vR%2FCnNj2(X>)FTLZt22`<^#In4OHnB`S6@+_>^lymJ&yLPqT ziH`t9NAfHw?1vwVuj{?lACu>6dVBqrMh^Dth@HkNe2&{I`F<~tI&~j0)a&mWXk$bg z2P_1`pQ`-eV2Ar_E99a}t`hztfnb$juhTPbkeaz8`_;?J{f<#l-)%#sS3d^!!aOnp zJWV^tJ}2pG$M25}_TCMjdLtENc}dVj%+u6c**&BFX-)lzdvBRboZMkaqqRI^rVi;P zvf-~gy&pdcXWFT~U)!k(dYSwd>k=^~{sRJ2yp>;FXK?k~H7MTN9-h66yhNmNSIuv> zJTcwx0JNlVncepc1CD>xXI^KB;ZRmrxrI`(yY;!5+^qZ=ElJB*z(GLqM5&EA;U!vO z|E&Qve3aH3#qU?+zeSb&a7&~o!$VP|#t&z|w4z0WC_5Fpe?Wu76P$gfBX(Q>N zo$vc@vKdwnPTM|zPLik`Xg|*{<9f zvi*O^=spV`dTYPdpvnh<7xJr=ulAsZ#-!JSlma3l$1-I+`CFhX?e|#TsbQ%#?^X(i zGufOP4$on5JV@HyvpWAJ+f zA`Uz1)CK37^>62;9W~UKlPG?+vDGcCt*RU)MKsddr7U<#Saqa_7xSt;Ys(vPFckG) z>llX~79a5gi^cWz1ymIZbMtETzDixuS9Zr}9aWC3FAlE;qRdC9U1xTA2Fm=Lv|nOy zWzTV={2nb}*G8Y&%sIkFgjZJ#of>dcp39?E(@$!g-lrZNnT*p(J+ieaSHj{iO1>TB zmk_zp)qzmVTNE4f=fs2v7#Gb=Jl&Pev7>L<`!ajF(?(o)Ihv+DqiWGrsNi5y-lkkz z=QVq7#g#Aw>uUW;Vnh8JTYzVOyO;DawxKF5mNm*_^%n;cJ?g^A!-T?nsDqerVm_^# z+@)a|7_Bix224;ioGvC2X}2pt$ES$o`1c~)*ncTG(H(O&arS|Rdgl-Q)AkPyL5F>b zCr3vVTW~R3|6(e6)4XN_Xctp*3I@F8aeux)Q96gvF3ia1T9~Yq?e~z$_j@zE>^)!p zsXD7}|HO(B>k}~Mkt-W$#bzt-7lSgfnC1c9aK8O8m7&|_-4VyEGh3FxsiCRcNWu=)4PSZ#FI=JZ~28abOb5ml{eGc z$uC!{2)9ja`_8mA5Sj`)PI_$FT?qSJT+vTYU62!q2rkG;RPQb*p-H;sjQtbq+= zh~V{4H|q9xYMiR3R@6Jm|GG-f83vhSC!G4uHJ*fqvov(wE&K>s1QBEGFJEO{)2j_} zEFWG@lR7O(b*x$35XDpE)geN>`*IQS*HsC^h;%*~hMhyW8@i^pT-OzvwjSuM1^qZnF<{#%#I=HmC&)*Wl>MhNj zK70D;Gg1-qXL52diSo#r!1V*qfPy{8tbF3In0we4w4E=|!U(+U zdzl%mJU_Js9V*jqNN!}cmi0&|_W~<;imwH-w1;hUhN7IAuj&H3oQ+=m6e6@f&PT!2ioMCGz38Mc zz&40MF%3>OhC^?`KdQ@v2tJB3At<;`q4>??xFzJOnOVJ60P>Nw{vMTysd#K6IFXN@ zAOLMNCemq+Lvco4;m}_{M2BT^okLKnpz)QE%3A#%nBE7F^72cvr8?(g=C}2boV|u^ zjpwGvhrI5m3wj?~KarDsYe`OZicW%WPSzC_2b8nph};d zoCHG+xD1-H*wwMRn$ptEXAF)JF)^4Di|3hKy15=*?-am%fx54ywLV}TXOM4VMG=ew zMJzw9^@FG>@z6%Nj^SnFa$BkxweCJ};(}93?s!WZfyn0%LxF8haC89-Hz1>GEx8k_ zaAX<6ieIrF`G)8^aAQ%iu`6?P@<>pj3|%j~EzGZqdj(mW)ADGPVjQ* zNeHSN@T{4vYtUhMhcDh-Q%m?|@vzbnqoQ)5M)PF)YJ^e?_u7cN7z zeJvLqzE-Bf6+7#_`WuU6t3wN$zRH8Fw*{4vid=LgnQUG%_t--pO+|ikOngbBqJYBJ zQbhi`Nzq9RW8#&v8Z|qed<2T~7eLxfZ!0QIe0^tUb1!HmklxfvnETaC9Kw1#1T#{Hn1p&}s60TZ?w(SFZ7vT>{cQgY201V~ye~MIS6wxzbWI*# zbg;4YHeY8M_n&TlljR#0kDD6&>bu{(In6j}VK7z}IQ?`(@P|uke_^##<5HAW>pJe` zc}3)9)6vc|#&{;9$=4L~YjsylM5MW;#WrQ<7iY!;UEMM7sTj}@fIEZt#*I3#Y_ztv zCh}q=oyKZ`yN#w5FazJ(OHNJWVo;K+G|TLcZ1x*EiHM1f`){_NX)b6)k-$!*iaCLH z^cpuexOuMe@yUUw1Dq5f72>#?29_u};JU})loyx+`kkB`b z%enr$mD&z185tUoqmn^;ApgNw0x}O!;hr3Ac8>eZz6B9PWkp5cS|g!de;%Ez|6Xok zeM(}Y*RVrnd%8>wn2HdlqN%De^yMClx;3MBSD)BaKPk7vfm-0PrRDbW@Gc1B3@hyE zBwQ`5t>>^TL1{@z`uFb12l?6C+m8VMo@Y=Bz7IJ6m6Cx$%6_1zqoV_CXW)GRrQ(AJ z5B_6&D*66h@k6&h1_P(e;})s#!F&J?R+EH}AZ1T!e@xFk=@U5p`!z^FpP z=^3aVrdt!uqp>jzi69KMJ_5tQmmIjr;hr9HX6C??qkULpu4!leXl`~GESVmua>IeC z1{5%Q1x6B}YnhvyW0})aow52xd|%0-ulQIB<7rrUqSWKN!!75sG&kmuTt}QBkQ=*=$q!lXsah8N6uP^LVNnZ*83H4qcZyU9OEL z^a?HJc2JS<+J62rP;_)0ohEDGb39~7pR!2|V5?@O>0z#s+ z%^k{zCz5=yb;JFIv{DX^4%1Z~75#6r4wht(qjv4bd>YsLi8a%ueT%jR-Zy91Px!1% zd7TLEw+u@&SF$nuzI`d1>Gw{x(PQAkz5lE?`4z<;(!^X=UjMe!IeJO;QFl_r+}96= zo}yxZ{*lry%q>MktJ^y{NS4{D+i6ezFxX_QsDNphhkoyvUHYYfTacr1brb%xMzWt@ zJi9pRaL3!oPR_q|elE>(bJS7Q%I4RjxZXz<`oo4Psv5~vZoLaTSuFy%(SgBkY70^Y zWVvYHE-$11(c0MD-bd2b@l?UX*l(ZNp}5GvLo+S6tB)Dinszs>Hf%>W(~s0>KGN`L zK6E-_mnw9EpQ3`iuk*@&@rxUQK~2G~8grAPz4w8MUTVsi`FH^z%lI198ZZw?`NU*5q2*U&*Z^5A4wogNBvp4vktmc&f!Uh9*v&4BU=Ow3z5!%kqK2T^Z-zi#XlY@G1wFjK&je}_XG zWOIIghdhO~f;K&{Pm3#{YK{32!7UvyEj=(|^f8Fwfq?;evP(KTpaHA1?aRr`%$!a4 zD<~`5s@oj{_tC=d*F4~pBe=wvl$ORgH|Hpr{EURIXJn+-b^7n>PK; z%*$_*DfLO71AblQ@ zmz%>SQC3;{fnA!rWp({x2qhgw(7})H&jVp!|Gj$Ie7NH>Tc@}Ec9DUu_UYvDh`;+Nr{?;;|(VhswI{@V@GjknvWijKFifREBzl-bqhnz zh1zlRT@3k#rp!nZ^f*`w2@Fj{oK z_x~L&fw)qL9Ui%t(S4N|t?zr3Tl_LxBT0})BtJXnpg6YkRl4`dAR#W_ST zCs^kbO}Ul?iMU9v}ol9 zw>FTWf-;kKDm&fR7Q~-VUfp5DvU6}`WoOe+QJpE$!o%Ub$~deLI8#4==89^*|M1~i zP16`km?7ad1AhCn3jBJjaB#DW(aoDJkO6XoTHW8@AAFvm0t7Yi%~(b_ySgxEL0ePC zvJwtz)PKiy+tYIg+%KTAsW@Dz>3m$;o*~Bq0y0Rl$;K3<-Q`4lGv&wky~!E|%M9rK z<6pm~Vq`SZ);=q>6ODbZv9aMJP>hU>l$6STY~3%Offfi63?}KmT)iMDYpA0jHpvS- zkMr3XaJx{-Lm~npp?S0iMiqH2as!;rAnB_bT>)GAF@!RJkkLJp4*7o6F+;|0C($Hu zf9^wEEQ?${gqdV(W)MJBcb5|U3&oI z?nd`d-c9hyd5ZC+xNETZw|_io!v6b5MpE)DHcfacj%<8z%8-zPRA&Gu5weWA)N~zF8FGhd&*DXo%o&`DGJ8 z823Qr69g~jNd+>c#+wOV*k%$GEY%xt{D386l2Q3o6^O=1nC4|ae(Yp?+)b0gOH}fV zJ5tcE(doWW$vFgWwDz6%X}^HB6G=?;eERFufqd-KUQW;*gkFE+z@Td}GqVY^-M#sp zDO3|I4Ct=a-NlsK$YOn^%h>KCqv`^4MPAGZl7m(WA>$a=yYfvxyQ$8Ongbkt;JQ^NS0&S@ZYnV*DqonnPGioLFJTgIu#1 z9j2Fgz8B2q&dzHvltErRzG_nMzYmowRPfs?HLHq9h{4d{&<1HNC{Q8LLRob{0SQ`F zeFFoZ#r(>8=vG2lKPP6Hb%TBKKjt+bh;R@R5^8^3+HEcEy9ItiNK0@UuZPVulWXSR zzi9Api;F|DPj6yGCY10PLqkYKf}QVc&}m>C7KGP#)5I@RP?Unn4=lIfPla8wIf~{i zvtq&-{u+MYheo60WOfFIof?)m_wR5}w0BzaL#P3?@sD3;3cQ8CgHRig^pYz=^)b`& z)(@_=z_?Blnxop(PxR?5ryU~nM0J?&Oy0k!<|%sJO8s3XoH zoNCuw;?YW1u3q)qS*ij}J{Y$_L%jt36O?DGwVScs)+41>nx3AXI1Dv8IXMl@E-VG? zoScxx%)|tDWt{|ud&!FK3FoDuavmX}O~|k+%*&GolO>ctQ37DrgQPUsjJTOjGbLnD zBk~DKH(f5qqpqrcW^27=E4`|8#lPrZ7c&MY(0z_oALqCAn@{5F>`^j>mAd){;U&2e zr`h~n*+A3T$9Ug*^iI8Z&G{_;Z4K6VjDEEdd!C?740-D}w#yUPF25}k{u5Xpgezg< zOxO4Rka=(!%vuQiii$VA*h>wy?#ERBJM~bVh{4&tpot~CrvuJ$` z-HkLK$@S`fi}Hb?6d~7*BjdQ%ZaC}2-sy&vr}xTeoQrhf9+gfvYcK*~{Fh-dr+T|B z;HWdGFkgCnjpI{F+svDpn;N|#`R_xY#a@^4STgeY(rpnNtGVSd~3@xoy|{TprK0$OH)Np``o+&I?fYi-?G5 zWXK+;*cBKw1lBd1B};=}(RrxM2C^S2M_koGh|grR_nW8CyKW2|EPMtf7SLXMje6** zs)pkhKZ&IQegRFy*{Fx@tp*1B*qCGaLnyeRc9(&?os^Di92}3ohY^9b{ywE81jgLW zet9zD_4nHoFmY%m3$jZ{>_e6f7)*#sNx@UoEqp^vY!_A~NC`N*iZS0sC>$I_hf6zU z8K|i%U=;xC#?dri&}Dp3gz!BqyOqG!FdhV*4umlj+ht{g4Gq$s&f<^U+n3|d6W}$w8AGQb*P~c{K1Sem*xj|G0SU-fIMgfZhlnYS7^rqi~9Uja*@QA|V zAvQpZ5^f5J*}e6tN{3;P?b5TbI8_eM*H9>$nVZ9_Qo!tWmt^r@YXo~lAb9*c&j6cF zITkuPsCwE0j}Ly89DOI|`_a+@5RCt?1ojs%UI3zyUs#yEJuA*DCnqN=S^@R|9^E`~ zuayxfi=geYo^oTPp`ig*dBRCn zKVu%)$cm2=?SJqz>=_w@7`y1TZFe;nZH&(DQf<*su3x5ok69MbeW2R zg_)^l?m3NEV9CE3l{m@ew<=RviV^pPT+Jx%vkmU;|NcZb7(fui3}+gVr^XBV>>Ob- z3e`G)FUuX#7Y#)zRG6+rIEbTKBPDZc>9FPgowq>#MC~`@2=WOLprqzBAR4NoO$U_7d_dY%h zko_R>lb-$r>!la4)5t*d%jN?|yR+1Cs$Kx)Wd;-BKwERn@{54skf!f$hnLo>-_9pX z%&^*JJW(O62yi4NrBG2)HxIBkEBR%wcDGX*^;XuUEWh~C-rg6rQ9+AP0ZGx5xf3Si z%9_=8FJ2TA0e>n;xXmPuXP)-rtrb6QkMB%GiT!F>Hc_}7}r@th^C}UgqKr5!U|Bs$f^4H%dGL2oZ7V-EIh4~ z>UC|aigMxlo!Qy%SFgYkusm0VYEI)PYP{^9M`_$?{Rv7efotsOYwX zK0MA)G3XZ-;gx;Vnws%e)@Sn9EKO@-5Z`|c8h|w*`d>fLIWylu-kqS^%pC+`+0ec9 zMkW3MDWHIcy=7oFZUN4Ya99TG{lU(1F4u2BC&0!JyLFR`k*+Rv%n1pT zB&E@cdLLK=k&xr&p2s*!tr!8x8zQ!^3KktJ520~CJsdw}W@2(E9h|G!TIgE@6VU$t zKE&C8ZAJ;e0!Y8gpA9~D9xROGL8k$wgV6#VkfSGTjap8JjoIrmu(8BMMDHIJek)Rr zc7gZRAOm|%6Op#I_GxwOlqGX1}YHJ%PyT9+L*GbWPE16jjN!~TB0CPqoZ zd=7z5+Tvv-IV8IPf|zsYu=rP7ccRsH^Wxh^{1qb#?6h2-(^UlsG@=lBi=~bYWUl@J zeNSal#ZZ~&5d!_QW7}PA`@3`coIqo;$V?L;Q7w|nC{(7+!#n<0n7)1e`(m8pj=M%V zemJ?J8F|9&$T4f9KCb-T-+S^AzsN}t!HBRhRaCT+ViOTU%|-?hRu-yn;m-K(IFX-D z+;!w{_Y}-(T2OY(>39C-W223$a-_y?PP`E4b*v)ByK?&(d(i%InISbn_)Tw_f=A|A zbJf%%xlW#eLD9tpHgDpK7-(eSOianx=vbn-NEZ^};i) zTCk`xm2H>v{Y)Np^a_bCY2**+zftN~t)#7^vaOln5tYNe{`}fvC5z63zC{nK$I}I4 z{p?QGq3N2L$*L*L+9)^o+1G$-IvAc;bpck5;{*(AlSZa(u_6y)gyyL-iMUr zewqbreW5`s=M-=S$}I-|NB4S)A~p>Om#0+HdiCvlLEQYsC)f3!V8i0S*#hXb`Y;PS zRb@6^Fl7c_YTMpz9oR3~!uI@S5%PdWg_F=_=5WXOc;s{Tm47Rk?s`Yg6l5Wq8gw{3 zUTwr1hN?4|_6daj1U!OoEFmXMFUuwefdFqIne-Yk-$k-iTp7=*3#`96@e$cSR95~0 zz~JX?)Z|_06jlzKNB(uhp%daQ#xj8Hamd7F{ni z(M~xT`+vi&`dL2EYfkK6DxrFqSkb33^UkGr7SG#;9jWklw9s1V`qzNp|I-2}-ZHg1 zhro0Alw%t&;{NByVt}z&*mXi`@NkLH$7~$dZDENrI*Aco9vCetbg=MJLC)JPgXrQM zZiLaLa;3TKFNkwtr~|44TJJi?xN!U{8)2wQ>^6lH4YX`cN15QekDDgkXOFpQG3Uhu zMqHg^J-;jXAyS}!>HwLpPo1$ArHIB$%j6TaLx*z+>$%AKNZEIVnL%cd3Qpo)aj+}8 zNobS2%JbM=iB=>eB-L@g}@(Z!^h zNVfN}2L)wy<8^+kE6W}W5)E>Xy$pz+bD)XDGvxl-dj3v!vs!5bFVpIiXYYjwXg?*P zcpM}|GzbtPq<8Sc;tOp0n=Ye6a=1fS9}58|s`H8UmMcecyaj{eK$l1uDlKvE=#}!k2OacgK-7btu5RFVu1TNA zF(h7{{jPpH-|39)(Q7#9n}#i5Dn@L^wW=`aco9-~s;A!=LWrSNzH+ayU02KQx6uJV zQyTHsnyp-A zvYxv%Ly3hag)GO~#qnM>(iw*fawoXB26ejBblT%XmZNA>SBvqx80~({A=<6t$?KdP zq@uzhye;STSAmi~nvy%2%C8(-*gb@R=NY(Tv*ND~!=ehPljZRfhsKZ# zQ0PugP01Z}$DP63>+3FxKcRFzgq8vP2|UebxrgTv5b>CZ@uUlL zHZz+9)Bt?X5EO($uKm$s+^tYR3eEpBL8FJJS`dWrwi&hP5m0p3??+%l)a!mGTPrb}lEzP(EMgN>e zu>{R(?;eq+ERTva5wQ&JmW)mqm9Nt)p!n7bT>tN$v2~bQuNJ>IueTNe#RK}?+SV4l zUUbtCtQNFfj(bR|^WSVvw#dmWjZ|M>UuG!OAqG+^vGsYTH{9^_=05DU7>_=kGgg&{ zC+g-0@K%S#n-zPn{cVJRP00G`?$!$1)B54!#1h6&O=@SWm0*82Q7l7aF(u0`C5QV` zcJ}-7x3?zi9W+gRo59S`$~I_>886#cs=V3s{@{%YRr$8bQFzek`VuG!Qb)_@&$I0J z$Q^ZckrD*I<~g1?Jas}R&acXf$_|`z_ZkI zF~VS&Vs4fW=3%EMjuXUJuA`$#F=85__j~6zQnGC3=tVS|x;!*qTcl$3Qc}`+9}Cf% z4^E8KEDxR@tjh(gRdn7?pp3f9TW6tRpflZl%*Rlz)i(Qh>H&#j*?Kh@>FzFTgnwfR zaZTL+J{lLRP{N|IQr566o50P~aez{0qxkB*!IBNLN6*;Da&x8~j?ekNx3@>7XH@*S zJ;hy8Mp}9VhqLaoS`qybKg2>)LU~4j(;-w znfO26jp}^$N|%ID&fj#lpKQ$2OExi?mhNO&)3L|HLBTu~Yx12IrK0xAzCY#Kr}Lw4 z#R8YKPZD}M&esr41hl}>@Zx9RewCBw@^%F^dRM+qUDBc?e)`?yWZGn*y1-@#I3oCE zEbv$>JSO|MA$}1OW=mkKb^6Z;0fGc~0wDD~BtC%y9X7~n$PqAjBe$8{32Yq%(gR-9 zVkXcl46&O~c|v{`WG6c~)OGp&a#?kZ7D#OxtoPTE6kxiZ`}uQzIFjy}%V3LLnLg^jIRe_*{j)fTO_7+;; zc&!~AKE0xU)+qGVZNxy3^h2$$f(PcRd0W@^vp1eCw4dBZMOcDSbk#SnVQS`mkuM6q zpmasbZaf8_wXhDxqxmsD+VoEEgBEK89g*O8`e)@cIYZBeq-X?hl4?xFu>bFx{dUhj zAMvxUq2H<{Da!_>$ix1|^27=fnEs@U^OKnG&bsIS(5z%niNlUTg z{?sX_W2I^F|5$qquPCFh{d?$6DU=-{JebPy7Kd%jIIhFmc}}_TFb-p9@lKO zP&*(2xI>TZs@kBPTFiq(*uQ!_gNNA16}*SDba5fUaZ+J4P?%v97WR)UtBnl-6Wk7$ zM#g7%8p$X$FalsQMEHR3LS4=(GSE|Z!le;8Gs)Kr3r3aB3m@9kS$yJNGcUm7#HC7b zx_!5F-G6WL8qC{?pb3JK`?h5epEEhUrumcv8q|V5X7c`c8VoawBIqP1qT>OkBYH3% z+9?4f1Wx{aT;T9Ka3O)o0SZBl6uR9FHcb>y2=wr(9H=q5$!R}Z0~jNb>~ausm^Zh` zI2x@-jR}MyQK6x@$dt9~-HkVI2n{MMlMCuZ*jHGBQ4yzVX*UFz{yaFPn#!MD7kF4l z_`<~yaZqylW_9HqeFAvGKo7Ct0EDGf|CvU$Or1Il1VWzQv1%rH)CU$Y>}hGMispFslUZCXq2H!@9RN8C2Gv)3YWXUCq^Dd~a@hA}vJa z8Vuoq9!E$#Qm{_{$K|h#4a8k5;?^7fIxEa6T!YtyZ$}#cy$6oihLH|yZh@F8-6WI z>(L0(Id~TfpE3>M#rRlH1WF;3St8H#2-F6+1sW}n3TB{u^|@+j4NU+s+nNPQQEXi%3Y^8bw=5*rTHnvc zM?{P*BJUrwwszj=Gk$kiAPXi3aZ>oQbS!tH9y4U9Ix!h(itmNdY+z}zWe+$Va58w=YO`R2WFX}hlf=j#I) zBxTr&|HBKV9aEQ6Kbi4=CGjY~TJwKeSm7cfFhd|TU+p<`wyhT>+4!Dxh~U6F;csm` zsY=SY3O4e1snDbnf|uHyOvXdOD&Ochck4D;3mp?ls&QXr_n->Kc!BzD zW|-{Qw5F&*voTBdJqeN=9tXcZ(a5j)w(!~UAcg`sSE{I}ot4-~kH0`k+6>7_7{logF?DS_9Cr6pi}JmnA!1 zbjgn+){}ggy#J{Ec({ui$BPL=DAMMrS%%29Kuij)KaahI^j@obzkGQx!x_6bv+@CA z?n0qKY~=HHU~^ObZgW{r!1~X=-aGOKjZH?8^K)-)fG680;tr{&=(wH7#}UEae@z2k zb41}j9@NzpMb(BbKQ#&w{i{6Af}~F~yZhUpaXY=1S}Ev?*2!<6O#x$E{`H;6x65WS z=mRACTcCuQGEL_T>ZrgJ1W}8Tb1jzW)K2+FuyJ#Y1wu zZtt+!ESe8ieqwwaA1!&CgQi<~@LG(Bo?l>{U3yOmz4bZVO2lFa)TqLcb&01b$PW%x zXVIPR$_cBI*Qf0}RC8He!`2(>5g)p^eeVimZ`yJxxNmA+9Xb5$&SxsP@L3cXbgeZe z?$H|3mYbof&s!b(;FGIP2rW1GR^C#0`Oo;F)BF_*Ed!~NEVGl0;lL{|v%?e9R>D_UAdi;R9vhq+ZYc` z2%=8i{$Z4+Tz$R8Nrs2>!jzbT-`Tmf{xI{u;w3{ukm>;Fo^5J4AhIxGROCznLB}!6 zy$wG%9~xOHc@%_H_ZY^yv#~zTE3mp`H3^t`H1um?bu1>?VvPirb1SV03zodQC5YW+ z`J9LsN!D2Z^>QxHdKScjT3X|OdLl_=DW2qHn!k<9Uc9&pwU;=X*9`~@faXp>0Gxn_ zRMqnh33^F;`}l|;CWIEX0N@rg21l3pY2?XK&~W$=Vom3s&gl|)K{S|3r8EpyVb0F; z8Au4NsSy7*OGP!7?I?wx#}}Ldfhg3eH2zKY!-=Me?R3Aw--2e!2>`DD>%^p{yq0pP z{z7666&J+>0c(?y7&rfZRNCJnSM>C^lL%4Y3yTtCLeTfEN5WFUL4XK?B_OIQdBdDM zW!uCbV?m;3x&Q%y|TB>PjT>ZGF+pA9@Sa@w#6q1@Wf_3Muxn!HXxS#BvL z)$*@H;lK=FP>?Oq>vr~3$>N43p+KhqB4BVMQMG7}(WU^Jl&mWtAoM&haZ(Uxp3Biw zrMkX0X%M4YVA8UVo#HXJ!%H^CpaArY1?rD;anfn#^aW2uN#nsO$?3};mUQ>j{I89j zYaVTr)8bHCWyEN`F87-gjO(g9;veMIGkaXI?OzKQ_x|O$$G|0+XMHE}1X~JQeQ2#b zqj#NnZ2++|IQTbzThr>IHEihQ5dy~B?f?DDndr{*2S2|u`xpIr0E5d+19!Etr*{(B znl^6#K0pV>BlUYegh|Q6OmGQp(;pB3bp({cf9dX28j6AjLk<2d+(!tdkODm^A+TvBIV6CO4lD$r|0svcUy$ofJep zm>KkihNuin{-E31(+af!Gs7;`IP6e zQRDCvTiogyv^kNE&7bi?b03^e`Muo`6z*f*8c1@Jq%5Yi95*_i>)EjI2eZCcn%; zc0EfyW>#R;kWeZ{QqKHF$NZs_1Do?HRbY`{Bw5QL3B+XGq&AO(%nnzS-BnC0qK+j* zyNjRQJD+IT)oRrM=z%OgzO=F2vzmv9xsWzAYn@EiUHyybYZEm%R~G;=|3k-}gzr`S z^Rg?CTPMYyKfmY`_qr%?Is8p8>N4Lt@M_!rJSI74Wsz)gR4dHbe<|@ko%lZ)M{DsR zg!I2EK>zi>hsFvD$A2d%_Yd691BIdglaaigmyO1%{y$H#@+Fe;p~+hiEKrw3{m*lI zlYOB<;eak*@9_om1X~@`;1P5}q|kYhsKDSDowim&CJYjglwMdO6GnqzcEq6zQ{x(b zweU>r3Pnn7#urLp7NvQteE6ZRgcrJ;0c^*gofK=EAUD%2r9KAK&9DX!Yd^y@3*z~X zsK&2I8-~#d@IR(Qr!`N?=6lADAcv!`>vGrQ4<+_vgMAxih^M;DE$Q1{r%dpot2mDg zJG?vp*Z+K|`JVlG$yU&SPZtah0HPkyCXmE@*Q3#+LA+>ybMQK(x6sH3hb3&1<2=@# z=-j=g16mZRus0PW=`7H(d0@7ML^nePT|JZ`Q%|dx1paNEZ^jR8sGaOa^~j{z?E=rs z{cj6fKZy(0U487F&efldk!4Y;7Uq%T1k01-BvICMzsvoYP5m$krf&gsJ+?at5k`Qj z>G}u_n)keBeCbXfj2N{{p4S(qr9%d3+d<<6d)S1(2hqsuu&B@^*TKy4t@Y9e}zIH7WPKwVtLzxmK*nP*uS$gj+x+^rQO7lpyj#iSUs`I|sS zizWb3{}RQZtdy4k1)}pJ1{NO1$3NJO$kFNjREJIN^1tInG$wP01g@erHe+4z(XI7; zdg1C(_?StSio0yy`-pTR*;a;Gfr^jZpYzAN(hE6?UyjYSKOc`!4OJT_f#yydZo6X2 z$;E1GH^Re^%&O{&f+{6dhC-wwMz0pK`;adLtEke)mx(a0md%Edgt?{tfD^Og=SUJz zT;}a!^I2B-mPMBWFzLQ-HkwCiS28WarCVbj{XW;Sm(oQb9C}o8n?;Vt#yac zCiNj#`W`@~w0k;TE%S=a1r19o_1?(lbCBcYul%6MA8tSCxNK;`i+#dHTIZmvAnQ3k z(o2A3L88jZPbQW2>!`5H70Dqq@Xy&I6)V-{sS1t$RFN{iVwopW3U;l~GnxV>ybvDb zSXzl0vyq<142VTHU414tSY29!`d%<3$FvwSlCSJ98dh-H5;Lwir>x?zwk~80DX-#` z1XPvkDO(-0Hu1v_bO)1#Qq?SLYqtBRoIX>-llqkDgRw#%YT964Ylq}E8#0!-2Jx=D zo|}fh1=J%xttYy1Fl(`SL;czgOP3n{dU7v*7(8vOW<~Ugq3)N$iwu9A?C3{01dtz~iHuQ?R))!6trT73eybwsGP&>+PZ z%FfQ}^};nY|NeTH`dwJ+e&XXD-zu|4c(S+~kUDMQM<9b)@5=<3sxc3ct^kL4NQX+K@R#Sx+tpz=)b z^b16fs*`=95fRK(e13^#tiaGkw4Cka8ldUo{&aNn-Nx?&c3DO=2n#7c7XF#cGa3Zbo{12vlSuv-0`#B$XDX9KV)c*-z%*u5dez*C| zBuW$03dh9lko}>Md2P+;Vg3c&nZuQiPw=Di2kiP=4_ADf?KZKO*tOz%%=At zk?e#2d* z52TGWbhy-hMp{QnlnGs+_u5lN7sZVJc@t8`7p+Q6h2hm5yMN(C=B{Mi$IXnrBTPX? zN%!lu7p^R+QJ?eZ5!Gb;hvAF9HnfJl-7*W_g&{Eod0izX@x3GQKF-d0R*n*aA8O*% zRHNM-rYC${Kl2mpN1jkmL^St(?@HHH$9XAT|J2w$ad3?vS9_qSF5Jl{k2~XIFog5# zHT~k4K4T6Xsv7GmSkcy#Db7&dM!YL+$XQ57pPw~1Y0CBZaeq-^HOp)1Oi8ME28f>6 zL`F6xyXA@&{SU3tcvG%4H5JCr_aT)q4aMNA;}TZJob)H+Pbi)}^Rmm(?^Qjeo=Cbr z`4wIgZ#FSe?yd*x+#DJGIq^nBsgHyppO+rtUY_~!mmo0y8?05#Zu*@*J912D>o#>N zMi9rGJe{i2uh|XBz7^;4aB|v|@>m)gGcokErZ@Y&*47>ZL;hLO8t=+85uIvCMrnM# z$Gl^cf?UbXzBP=}(C*W+(X>H@x*2|e&DvFhIY;rB5ItksP}TCvTpH?f@j@bpjkTn* z_>Dp#z1FzQWU_t3WF%4e1I5ASnHV>5W33q-<2hQTHv$vF6k9Qj$ni9%nmCn$6`WEs z9KAPoUj+1OO++LLtv~ejN->E(PJ1Gtl3!n+%c19Su$efzX`;Q>8Bx1_k(Nt?K*!+< zZP$~382zZs;4u1`&;J+BfYO>`+7{xwv;EhT8)ISCniqRMMMRK1xF^F z(tZGm+OzlpX2!m)v*}fwzB(mMOh|shAZP3KhZ9#ivABpR;&Ck-i9|IyLZX|kJ|mmW zpuxQp?axeCphe`9f!JquVSkHAcJ;~DV~=LUmya=PiSaY?)Ln?9q^SbBt~5O;-#S}K zchD#Hi)~rk$BVU_2fQ-eUO|G;$mQ&|56T>mDFi0yy1OT|XC6bR8qqKjtv>{!-xcc; zTWB<1v1d>j#LoP8FF@8UaMwBS2rQa=I?pyM_CmLmtilDO^iQr)2EWs8f$>#Y1|@eh zt;qaK&9;LiuIQf=cooI$p8ncOcGn0A@o3qZWlop#{)$suP>RP$Z6BM62zT-q63ULi zWuFO7h-U7(ISiK=AK^i&`hR%i!fT^BJ`yow$^L=LqLK<3T3uK9*1XKX3~y zKeY%>v^IHfn2`*ot|pG!(TVxIQDWoM{E1{0!7E&{m$~a@;kxJ?kzIFIS zOBWI}p^jV8`+qWp`JP>n@R&wPhoRG%1{>n%FbG5A4Ju9OgbA{q^phlj9Za3?@!=Px zn{VmL?jkvACHh9%$6Qt&Os%NjN^e4MtIKanSH!ugLNFon49u7z_~`H5a5A`-8vZ`T zu@Qxm7MkTVO-@(bBJ8zWNg&(%3nexf3a-WayvFi7Ep!8bWNX{xUCty`SfXWVqpvYN zIhKG?Yd-DP!{cUFsY{8L_a=XW1HAw4;DvPp5V46e^i@)Af7Qcq_3qb9d&BlvZ(C{Plc$B}08Xa`!r^RDTHcD&Y34ouEL(vyVm)O-s64&gU!P z;R#aqBI1Tx4PVri*N)zHsawo=;vY53yrC>LcaaIsymdw@2P<$%Y*pF)R0|apbR>^R zQ2HhIeN%p;w$cw#`qtEWWJ0hZZWLR% z>?IK?dN78xJ9Ywx$b8-)>KWOT>1@(U~9e2ALN9KrVIL&8WA8A{cycG&@itI2TW`iXFxMPX%nNG=IqOM;s0 zb2BsMB)d)lLFvW;Rc@w)apRaUDFju3lO;NeqLK|+L6O`Kk)~!Ji^5#&1U$&^2RiIC ztTW5jh8}bAlDFOirBtFhcd~C9;#TSygs-Oh$LUcHqEB)X3yV`7)Mtigx zGU^&0HoJOx9Vh#vL4MUA)Z$N7i^n6|AZfc3zW(qryL?^Xl?feo%V&MragJc zk5}1)J?x59vKpmjhIBBnLp0^Bgur=y`yw)+@z_04lLw)&+{PAhff+6BnZmM*3NQmb@^U>{XQG9t~6n))7U!c(-Ie>(@^g}v+{m!5&VtY*BlN3}y?*5mx_F?|RvI**8ta#GfJ3?*fm0mSoa8ZZE9 z`djo5QaIIJtYvhSs6=3$wd3rw^KME{KQo19ev6Q@&!{97EPy~j`E>raP|49w?^_zL zPWvB9-A`T%_DlVY%&(^WIvitETD%x(c<|_Yw;i`ox!WRUjl9!yO|Nusy%XAC4K$1I+rW6~A zf<+z_4#{28)&5iU{bO%Jn}D7bUifCcH>)5moSdMEJq+e7e8V(JD-}dD{eqJYAqAbD zE z!omoNhPzPZS9}5jT3iBD2wzA4cIq2Naauw;_-Z#7M_3eZ-#Y#ThwJ$O0aKn`QHZn( z8o~FiDk*Tke-=L=2!djPX#tW(^DaGN`ypkH)ss{#GL9N=B@~mIn*Fg$iy(8WpC>v3 zaOgq-4!Ix-Byaa%EC%D^@rC7@71}&d#cewd$)GfUp(c(f}-VNB08pec~ zcwo?U;;X?3q~jjfj=z%sk>B;4CLl_qm3gzwP7cZovDtM%Cy3vT(kNnv(!f7T1%I@L zLs}AHKtQZ^- zdU1AKxqcUd(8P4vRC?*8nyN}Oq5!Db>pTzRV+(4Ns6*2GI_F={Dbb3$!3R!$gLpJ% zB;L1NdNTPx2TxUZr(0`~|EY+I?`Af2)M`E(JW)I=q8CAMool7-lHUqBLIC@^?T%K?`PzUad`zgan%ikr2XU zDIg|w%@9aZx`c7TfHq&NGX)U}k6aiBw6-CPVYXt(#>Ez#tf*&m7THaPu=FRGqd~r8 zqP%q07yUr+I%>w=p@TeFp4cu5xX{=qQ$u*3cF@7QXHz(4DA34pl;)n&1`k<6JB5SH zu>xr6`hv_!GQxzUYx$AYEFc!9gCNa|92X@}ArQK}!L=r~((<>$=wT=!JhXWn@EzxDHP}( z>nAVS!2q2xO2dVJ*^hCQ2{SM9w`4~UGf zg+UoJB6*p5@jJ)^)ZH(^a#~Y5HHk>tR4Ca54MbngXoBMy6ry-#HHHMx%y#XK_c5eL z+-^9q-)SoFAPcQgAqWkI;E#nR)|8MA%et+W%2GBYkUQFfE+I;Q3o=h%&tSdI;9w3` z2RI&L0ysF+Wcw+K2bYI>mQB9dlPEZ;Z+%!%6A1QSijeQ`@4JTPTW6aenq=9nn*v2C zx)A%-L$e7l8p#W|=rIMYd7@#G{xKL^nA4yhc*ll8c?ZMR_XeTwDSZfQ<~#ExS@mZ!#l_Y@gBp&!l4iz+-P1lC|_`Z zrX@Mscf!tI0le`EwV8QaM@~!QecG3`XnhiQ51Gk`csh*66)pWpYPAX@^6YwgjYM}0 z+_Ls{Ha<(fR)!J`HC{~aIC!j6^WTYU)mRovhn34umH2;bx*gx2D4TpnRZtrv1C4*< zqCd(Ng`tQyE>Nyb6AXrjSxBxlq?$$s>T1|vDiti>u`CUx=YVvS&%g*_ok`n;xx?(_ zG9UGL^Z8SEPOyHYkp_}0;h$OGdW}ULw>OOEPzDWtFYco<2G_2wi8eT)ZxyIV2KxJf zVUmMNy*{Tjv|>cg-`}4HV3*#vR1V|4bWw~f(&8F%iPTce@j2>y=y&j*e{UYlGuq&e zuX4&Rk*|~jJ<0Mf_KJYr98+R`em?Mp{s4as$P~c#33OK8E5Ctx4sd(|U(@9;`FVJ% zZKt`aroI17>S`%Iq?Y&!ynRy#S_08cjOt1*S|32p_ZS}Coq#SFrT>Iux%g)ckg6qUExo3V^N<#WeHtv;=d zl`Rat!aCb&nObaI{9E#?=IUt_rF-bv(SXG5pHnOqnIj9WcP02k4nxXi4z}=`PdqoUytwxDk(*-gYQ zQ!`=E5<|MzvTl5Q9H4@LUHKDAO8sv>%>!%ckpVQpoy(xNIaIe?k07$=cHQxIeY>nm zl_?P@dtU+=3!wYf5*TsjvFN`}2O1*;orbaT-+x|pGj@P?!a>ST z8kxsJ8FJ4V!$1uL3?g9CTe|HwZMboK!Nkn`@QK(L*R3%h$cMV*<>JG73F+ zfAMAv%0bgw&1i!kN%(x^wXB-~kN}`?77-N%LS$VQ;%}!7RTakV-|FipS{Up8NCU{y z19a3foeGh+f6xmAk`+1i>sgW&W%EaYG@32K`TStnN5U8wmQ73$N6P_6GAc?+AcLxq zCkn1sX8}&E@5GFNRnWj%xfc#PDsV|sD;gKd7~J_cyXOv|4t#u?hK5=44B(=IHv(*c zf&Dcw5Cby|SdZTA|GnJ@YEs|??udV!yW)26qd5W5Cq}^wWTo!ttu{r%m4E;^HmWSF*MH z`%JOnN8IVb8YORTBR_u3sgkOS@DgkY;AJJ&0tKei#^}*s#jn%bZoKF8rzi>~o@{%8 z_fy;|bJ`4wq9R~EcUITm}#l~hkW{`!=c`<0CA&a|IB1ZNfR z{cmFf+hV1{g8mKYbG4P&EN|b6x6{^&3oTAI-kK%eV14|zpET;~>U!`y1@SJx|KI&O zk71q;?0j)Qz||x!%yo6A!5}@J&{Er*YXTm;jsq#2K>8`5!cQ7$zw}K!XZY;&)ZN2F z5;W<9$FBk*ZI0jNmeVsIU>;2tDI09mmU**lC5Z+R13mk}Fo;x*-u2?yH!>*tx8tn8 zz*+0B|J@a6wuW0-Z8(B%>~~_f0A8X0HtmhT<%rBfVAl&?xJa`E_&qZw_T5~a0T)^z z7zP$@0NXRR)0Ku`<^m69 zAhajO76+iTW`q6I_G=3k;>(#~KPG6WS**AviQ{dgOz_Bb`>mVGxZhD?4geF}t};s! zpfBHRKmfU8*zdG1Ffb4RQMQ3^aA_$%9^TF6bi0J}YH!SAQKNUuAHZ+#KQ1sm1DnX< zJ7A~`U<9kj7tQ*A?#HtS{jIt<8g1qP^Yv|dX@pP|x;D@T#Batez1lj{5!qXW)AoJb zdYd}&qA@z^$wKuyQSusRvri{a!)Q2>xUZV{lrR z`W?@zqWUI(Znb1z5cgZG5HSkcFOG@K?DsKt7UpVDy$)y2-rU*o215k}0;Jbq2s{)&xwp8ovjc*Kkk{&p zB(fUBj89^h0A&eCD@8r_#eB{W-anKmX6ZLLM>ESDSo1r{rv`SAfHwt@d0^CE`Fz8p z5-K-rZLF%|j+ghj7%=ub8GQ~cJKg^-F3ink41*UdwC2*U-$YV50^27bdZPz8hO_-i zH(#J$rxLO|xbTt4QG=n63jmkK_QPmLJ&SkSB}Js%M%P9>stz{DC!R zfWIjmw=NnNCQ~AmeGAApz({Tm=wrY_dG7}~K5ix(Up}I3Xt-d28>xBu`~5?|>lNy| z4lIcS?zaU26c@@ZNF&jo|V2?$cyBF1KBnk@!W)LC3td*gvI zpKe!6C17U(%fi-$Z{QcerVfM}R~wRd7a%flXumlHR*kMAfPXg$*#o-yo0}VO(R?;@ zLys_1VwaBy7mw)fs_Lk?IX0gqz{u*?v2@uJ{c zt(;3@(1Fe|P&?Vt-~TZN2Ejhh~YS9B)9a2ui z>0#|W-}};RD*)_TU>1PF(z4U=Nbh$$uAySyC)@a#HiY5f?@Z|kA3KR$m+H$~nW4#G zQEuye{c@9QVr_4>;9T%=uHkI-aOBWj3>`xL&A!a!hH3c`<&+LMN3E`ocfe~AWD^Zj!3Bv`2$Qb+MB(CZU)Ef0+z3Bm! z9Z6{li$dO3o}I;ih_3z}T7*9Bdmg!k=if`_q^Qsneb+fhIJp8M4j5bgP`u^TsEtlukzfWih~vW%~L zjCYsX@BD8!{J~s}8?*!=Fl)pgphWaPj5G$Z1`rX|=jWS&2z6(wLWzM8gmt>aJq}Gk z7e*fp?BV5}KmXf)cN-EC^4IUI6{Iy_odzA$Gxr)vpx(dvL)L!a)doy&pTsg}shUMS z#t-dUhM_M5(jPS?0Z#-M_Z=c(%1i@5kY0KYlSHLzET=XhHNqi@^@APb)?ZSKMYS9DS5) zrIlAzN%~#Cql;%D#-92VO?LV2UJ&%9X-kapZTq=~&4fm?h=CgXtP=GNR=wRc(nE2d8I4?bSX!prV*(*~!bGNCyXPdI%p8>vD2 zLB!EiP58>kFb5BHnmjuf+91(bM|+2_#B}IGGhu%7&ELsg&IbmlMCD@a@TRzu?DpS? zSZ?a?q-V(d@W8Ge(AKOw9HPd3;zNq+GKy3~1(lFj?t@mWf;3F3j@Gg}Y>Fz5p1uky zK)=h(Mpo&5$xfaR#c}sAIsaW3*l(FJerEZc_xJrLbBWN@H!?EP(ZQsh2S&%h!4(Ap z%>`+f7AEMrG4S4N&>=bk94Am{38uc;e9j8$th<26+}^$X43d3IgbSp$f733v;en=BBM(LCAUI1q?T^Wd_VOo2FX4J2Xr@o7D!i14GBIfqtzFtT9qsKXzU zw{LA-rrfKV*V8Y|pbqn22;g8uwm2+^K$i~=4#3*33>|gz1vE||?86Uz&+GoL{v9-;XOKgnaAdwN86#54b3CFp1k~Qc)E8>mX*>7FFe(!$ zp(u#%{RfSXU-94&-q%sDrEOYvnZ`#@Ab9Lm&&m1aXz6gK{XU{#64YXfAP~idUuz0| z(SjidWZD18fh_*f*P$wy7-5MF*ix+;e|A))+8 zZ(O%RUz>%v{NrPY6tOH1Rp>TA^lolK>SpFEe$BI5WS5m)X!EwefCPY*5PWH|jYKF6 z+T+l!IydisyK)Hadfn5zUb<7CLjX@TaPGSsUd#&ZduxCd zFJyz~g0&@sflT>7{&6Zki8=7pvKo~I&E0AnZq3~&uZ_C5JHMxrUwA%tGpt&Bg9Uss zY?CX7sC;fSFn;9kw7e#-+zELd7S?F*G6VwX27SCB2mz=;uqP|pvxOr%kHx0l2zcWG z>b7*!W-q==-?G@I0UOe2KfTEDOq9$$6DN;Tyd9!G&?eaaud8PYUQs$bhT|Dd$aPv# zXnm|@%Nmi#(m$8fALy2gqlU3Le3)y(P~!ae`})crK5S(CIDM3~oS*P4?{o1DGJs-GW^3*78`U zO;%~8g1iE}WZqY_Vo1vUH{j(@JA{|&tcLF+Ga#kiom;wfS5tdvW(TrdkUyR0OJ3%K z6r5Vbb(3o89C@D!fQ2ht%=73N?4kbW5AT)>QjP9$P@wkm*Kgk?=L#gJ7s*vVYk;}| z_TTe?_Ui$Cv7Ow|C-)n51(Fm38wCl-J&2Qqc&Lo9;QoE|H{|&x+-GC58c9uo`YsU# zn${rM@tA-69AvCw4+*@zy+Jkrmbex$F#yiaWr&K3s>yNbcHU(e4{!(F+-^pxZ$@K5 zzECrAWAo$Sn$FYQFk(b+j63_!k7J^{0Fp^2rNg(dNW4m42oySQJM zv7Wr6fd;)3lXx1g?|uPbVZLXrOKn?)88)no|G9k4>s(NiLBVZjJna0hXrl((#c8(e z|MVTWiwn-+t5Q-&cGyig#t8uo@#O^}ZNJj7ev8QGU08R#;j$n{iDyvAobFd=#~!?v zO+r6@sLuAVcX+9we7)=$BYNhXfu%7&g~_@HN`h588fxYsp^KkFJa7fGN?%Ptr%}j$ zY~qg2V2kHEfvNu`pke6xtDY|B$%~AZV3z^Un$*mf^$0>sBc)T$lBskkCnAACAuP(= zo&YrtfeLwX6@7&NKCE&Fn^rYjOqhplsG0rq?n(3Qrl=$0FrQ7 zvj@Y;lpaWCwYa264388JJialOXJR~#Jj}4cWSU-6v%Hu9Y(7>8yp76}BGGPq z-}@GMx5U2id-j@nMSw_`nYA(T7{fD_w4sB*)|YcnPR_ z3UzlA2Z^y_Wf_-@4yh>?C=Z6KXk@Cky^~kBwCHshT24YZ!!!wQMyRU1=K1JHF|Hnn zb3fe@KdoR^8Q+u?G$%XNUdTgoBGnb85XkcxNKM|?EYIxwx-9kWK`1C{VBHfm?1Zky zb8b&SWPcw;Hvwd~##n*p;r7260Kt?r%wXq2=YCIH z3xcE|wnv3grKxRO!vNltVHNz?>_@DkoQ~JAW}|be4{;-S>>TB9dX{d# zuu^42QHsWVO`1wW{$_m2Q(kQR7GXdt^!T()f~R+T6dW3*-d*3_(00!i5Rblb1?5^$ zWyx8>yr}(iCGB9h84{v6U0N8oDk$#$Cos{s{_^QmxqgFdJss}*!0+E`d~RFpMTc#b z6J6}9+pUIO)Yh3?Fx}1hDm1xTv^k^|pRL{6?nKYjT}hw>irwaazmmMMGHR~9Grki^ zl&A1oOCx)-^e?h~y!sZC;1UuLAWfbr?6Y~GrdDpy)~q90wyLv(9qJG+X}QUo_4>?p z$p0>N+WyOatpDF83@Jl4%N|XaL@wf^v-vum@#wAT3KE}#&0$dDOdd}p2|!%3dkNXs zHm~nv{9eq>%ur>@OLI<(#gE>Z5=P-bK+zv>JwAJH;_Q<&EF}B48O)YrLytugHRLbG z3GJ24ze^rcmlYWfvxU~PxoA~t;>UX`GE1>rG-TBJgytNlADh~0JO_>MQYBe9C2qZ+ zd~rEGZMeIbzQz7mo$me9;mz-KjmYQI+t!BV0br{P2m|<#KOoqfD3Smt0kHdTgLhh} zFGoTpj^bm{rGI-a-j6{5ch3nco!kZ-cW}1SOAgLo?n#md2Rw8s0~U~9tsYgdJpBsb zCA)KJC2^dlSOAW1lT?e^PYSqwLCQ=F|591D-|?Sl!r4h064_zmBg!u=M7lb@f;Y5 z{uNq0k7`slT$!!hflERlh!fu?0~X~*omX?y@kwENu4U0R*O%QoO0hO!pEm~Bb(l>L z%?)B1D2Fm;Xb#*K1aP%bZLNRGoBoTICj70;YA_RL6P8v-OOMSsQ@CQ=V(}8%dw%iu zbT;3wL@$`-hZVjl@Eq(@vP=Z%X+kxUqa)z~^DKFK*eol;<2X0OVCj+9m5=jT7U z&A9p-(b(wmAo&^1%F{X@eb;S2;r!@hC>3@;7(N|mI4CP2~Vat;^^3AdHDM^S0s>p zzulrvTDx$`zmEw2T5jY2SFmbU%vO0Hs)8s{G!fh6epdX?zk&4spMKCUTM|+gvgP+>60NQPt8BNW*1?Es7%w9TL!BFR$`2*e3Keg_Sm z(XCM62EN2GCIuP-p|eA0A&{m|Nx9C6Q zz2qy80O%mfwjn0!EmD||set4EG4&QeZG>Ilcc2uf4Nx2k1S?wHtq@!b#jUuzJG4M? zDN?+}0zraXu+rl0F2$YTE?@5Vxu5rYXEKwS-OOZn_Uv^X`Jdm}Vzhtc94Si4)x>*2 zO(xw#x)CWz;a~b_8SCC-chE4CM9Xb~3n<-^GWBas&ngMe9tdY%bqDK790$LY8wEn;7QHpn-!Ln8cDA6may{$Kk*=Bf0J zksE~z>KdBq^lK^FuZfDr|04e2g;PXEQ@e$A1TMX{#oTqtpUZx<;Ptr0KgS$o0d`Fi z5}ch?Z2DxQRn7lAIO8%lfqkcE`Q`=-@6KRb{QaGu4R+knnTS zWn3lRPL|nBX8ADLi(lVK#QiL8W}SC$I!}{4J*#sKx4NJ9YDj>;@h+22OYe(*!0GzL zr>0w*x$v=XmkSF1$}mxl6GDguE@#4~lcL1~KA+4w+dPj$$LllZo_*!4-G?5&7RNIb zZ1)NXIF=_!__`eqd00+htwXLfR#O~p?&YuzvIxlk{`Zm{R}dOR(YL#iQfzAmpiNbX+lL*I6q zI>!MiF@E@mlUnCRpn4Qtye=s5bsN+-sY z>$_RT%D+5UeGGp}z9;+Y=4578!bG6dP`OB;HjS4fzTkPj+NXJhTf9Y36G zmYd8;2wE=+z9oCcv6s#4Fv==6_fKM6>w7J!TFKt4G98c`->o$YtavoOSTzX!E>#V6cb^|OOcuG>#oJMNhzQODtbArY6&!q57&E=HE{%G?63)~F-!78L=6QulHzNtrUuONGDsMly+LW)T? z?c+QGZHzT4t9iU-vBm_530YgR-1S!+1$%$CkTck?HZLfK4B+SJ2?vkvM;v4&f6PG~ zXFd7oxa&wew60T=vb#j&CX)Y&5T*z*rWokp(q9ls#6g>ux#Y{RQCi{_TwM8%E6pPK zVFXLOD$iC)`r$I^kGoj%b%o>2?)LVNd-ve0hYTX-gOSwvVpX+QDTaV1b4xEJ>Gkl= z)^_y(%prh=;$y_iY~L_i)EX@rSKZDxW7gdsv6(y%_b|J+Y|ROUe}i zt~t%w1-;o;Glzde@QOxj@(4u^MV$OGHjua3Q#l58ukY8TS(1fU&r&v=1}*%;{Ai_ z>_`i{$W_lVlVR~hvu_KP+D^|m9mm!WlX#LBZ7fL_*&6?vRaj@_@~>R3PqmB$GPOPY z9MsW}ir$a(x!@6n$Ujp}mP`Sw{?B?K+M%1p$!E|FHg!F@1(^#HnOm z{Krl%Vz4iyg6;ia89Fh*r7N-r^B0|?U}#ejo#uh@>7SIM16*lTfj9Q%OPg#d+;*IR zKl2`k!sZoNtd@IXFL&aST6^>~hhl9=1?p&0vh(N{rhqY73kBcg8X6fHJ{;|})_Zy> z{n6JX@z1k{^AS~h7!NL}04T`-Z`wE!Xgsg6BHV-%F*(3-= zr8XDajCf!b{G@-#oZ#mu9-Hs z;o`}#euN*nliXPNn&$-iv9IKBnPGs})ZbwKF>}AW~#qn6# zEls6IxtNtIqv17hFf1)3aq&9YvDtF|Zv613fH=~@uo|L~olbg8o6p|(Y*zm%)|wo^ zNv;HxoB15pip2BoHx5 zIT(jWYYox;CEP%c=f;}6zcKb#=E0(UiYHN_v!CR;k51(27Q2%)G} zPR2Gyny{fX9CqI>kuxfn-=NzX^?J+bYsfCUn!19d&eHyPcp;kChqHNiKbroLHa-r8 z^;S1vQqS$?r%u;_ZZlOy-*6ewcb=Vi0J4BpkA0YJ58xFO)4TT>Kc&e}`5uXVyGMhG z{2?iNeI-l0rf1n^biX1EN_6`enY<((-z=+6sjq^LFbP5*GbGmEm_Y}#m+{P$v>n=q zD&jp%FkCmKeb_ z-zQ5o>*s{|4H}(87)dCvm8C7viZoWRAIzpP{^_V=n`L8!!3_FIAYF$XwWK5UZVd0i zx{Ie+^0jm@&5AUoy1u-SkVr7;O}Nxb9jHF+5043!o&gr-uRVR>-G|Tk{WO?HvpM(m zcwdl1e$1)`#l((;RjYMRauojwDI0ik0k7~{}ky~nOlw$h5^1uav^`Ov_q}G`U&q(dLCcb zP%ELRub-iO^nUpYznmg0(Zk(exYYgYhRytYA5-@s)R2SB@Au!_a`s9hbkC#!G@yto zaeD;C025ti(YcCe_3_>rhIX;gUl9@RQRfdUD+`pvfIXWxUGtf1R z5J0T#Vle}lH9yjsQ^Ymw;BXn8zK$nWGWJ=FK9q!=IUqK{^BwKX)xv~S>@A_cAnDy? zG5dycqP+U8)k0)!h#d@5NTBRe!@-L@MBvTpgWh#s;C$LEk&HdK?X3IibJp2K7{WLE z)S|((9Px=|G2Pa|yVR10fL%GhN52MO0XC1LvX|G8J}7P9zyOot=8AtxC+A}GKOeqs znm)UuIOZ(yBE5NJdL7nY9*@;j@LmdT&U4dK(}c;iF>)ZhT~;N?B`cr z|5*vGj&DF8oZ7h(K^+s6a4BrGRhj(VpQHhu;NhIeSdCNa?dKo?-L(INmW@tL)0y)y z&;zoXRi0LEp2-F0b?%UUnm%c|q z!3=iy?;VetsC2SN$jf9oxR=kpzN$IJb>kj=r7+kxN4H+W>xPYlQAb0XF3%)`zYX$~lhu!idrYriDvLI@J9z0|u9ZjdY>X zl6@(vC7j%P-hgOH4QvImlV$v`7Qn<*V{+JE;;G{Y&g6k}6MGWuTC~`58og4(&ZMO~ zx;uFueYvh-^?cBZmw0r_9VXCFc_mh?F~l(8X*g+AY^MK_$Bb#h(~4eLXlb_k_%3ZE zE=hMnwGh(#&1vpZX}*V_)vU2{*`>K$ zOt34Pmytz@JwJ9lh9^8}a~n{je{m0*{U**QH03|~wc|)+Dd0wxLWoptrF`}sMgG`ZZMO#0IlE7tRG|r(&&%cgIx*!5IKuFFIXHOAkMM>K> zJZI8edfX@49qF`!P7Fb0Q9Tq3I?hW$-%MpaCiNSS8f-vDvo-mGd}+20=D00hD-{&P z+%s^$0))1A>yD1BUxKr3dt;vC7G3ZuLgLE#*#Ky`>6QGSlKG5lqBUnDkI+I|G^S_X zJuE`fV~HY=-EB6yqR~M6f*soiwB9F~An0eKIqR4SF{$7W;2rMU%EqIZ(M@aq{5n<9 z^7|eCN;5aE6d>{Y8R6~ei)xdmdy?!@WCe8NSmNRiO82cNqE|D^0cL-Qz0ZMc`ouPQ zd=7AM$oC(e;jbvFjvvAM zOf;wp{nTcD5BW5aOP$1pyRjP;dX+VcSYCWyvbP4+)VXwA+-==bOYk6SA%JZVHP(9im5ajXJ<3q}q@r`AL!+VbjyeB4b+3eGPL~=3Ad!Nl znG6R1awi^du5edCE(~#at{@j_QKkR{o{zIj6@LuiG)3YQWp;G_8vDgYHTjFJV8 zbUadu)I@@ors$LCom|r5cP|@0prIAISFl5;uP&9RfCT(g-M|k7wh>keaCaFvADLci zJi3&2X^{O;YaRm`CX`E?gb$O(a+u8v?NE6UK!ZY%7G$KEe;5ww;f1_N?BqiQi~uAF zc;~FXI)bGBj5#@}d0QQ(6e)dSSLv^xPcN!f|3a^uTAfE+ZIvC;nz+&d$zyinILAF! z_qQXXNpeh)0!W(o+DXc4*g(RwV>stLCOL{Vq8TS5=NjNRA(4Htb5`{F6kieAo~#oS z%_wBG`KLZ`V*xrm$Fjs~H&gvE(}PS7k&GlzETabIXC{qm3pjBr6SH{~@6>)Hh1KFd z2kLi?o=HzCibh)V2r@1fNVXm3erHr=a51`b7atfU#&5ag`Z`Q4j{8a1DZn}D%3=h&_low z@eEs!N*wLd;;~gd=1YF@q`PvyGpT=t6pf zboEkjWNPCAxU+#zB&Q+&2gI>Hz$`;cFoj>F@WV@noArSj=am$A3;;$zJFLYB%)rttlX&5}?{wf1-gy=Z+ zq>=1i8`D0D%$itJneF{ryfj;j1MXb^B-uEYEw_>nfzru4%`umBQe>(Sa_;hGj_@5P zWBkd;`J^-l?wsh+)dspW{DjQCyF#is3lJRf%Ti|B*<9xb0^V;SY%u$4Pk4MDkVchI ztT}JNO{YMN(;R7QQ9Iu4wWCBIR-%^PKs9PX{?NS`D+N}WHLq^6mBss;t-y={0C>SW zRp0Yrp^~Bu%th4|O@E0*D~v%_L#L(%rqgO+6owlS5ZZj$0kS2?$wg(7ZBVgz64^-! zF{PQsWsQ!-XTP_j8dy)$0SpqI1s+fY((Zg=cQ^Qve#DzxLG^3q!-j+7Os@A$y22&6 z_M@xP#w;I0V%;S&I%cMOQ5B;;u$h0HSB;y-p1?3h+u+7fGD;NoS45! zqZeusXxUt}QM4; z%B!wO8mnG$u+hsxn)&bi#%8lCOA5HLvd^zRddwNay@(z}g93n?F5ksa{{W>(g@q>6 zt`1)c3OGQjD`1wEyZ&H;5RFTf$ai5h%;x<=5UQ3!U_DdaXa+U_3D~o5CPYHrCFzs6 zAhwcqM$k*6<84>l9NzjyVjH9iR_ zz3TJpiZ}3j$S!hS5jt+2|CyE4EKq;O(?t=q_9FM7Rcr?SpL!kH@MA%1*>KLECrZ`+ zlC+Gq(uNIg_p=rNTK2G<`_taM6muv{H6sxa${~mk>dMfpo+mtFU|IfGR31HFD7P~l zMK7sUc7{D9k`e4K()CbiEhs?nWg+_Kyz<_mkG&BGGtt5X#gH$>;!9TQ(F4bzsGXuO zS^dmU+F@1pwJs}>)^ByPD@r4FOr#B8lKdnR-Wko}CczQi8HgSU#7sWXkX6-D$F;oG zMHY$BT>c6K3Rvv{Sx|1I{MOf7pd@{HUpCOW?GIcvts^O2n>Mu{#wL92m&jQJRcQqO z5<%Yq1oKEagbxnZL+QbS;>LysB(Ldn-m-E7a%zd7C5fMsy2!XgPR!K$aTL}GuHGs9 z8*Pa>h$%`VMe$j8JURJC0PJKZv0ZcjeFbw}4EYat6>SbdyoeKpRGVAVC=YYi2}2+F(Z>p@7P* zA~HE8TQ5nl(UU>hJ*zr!sKpP#KwxtJi zjX&M(z(g%ZI-cHn+6CU5 z?eLBaVPshe4&EE8j#^hAhguTT|4RBUqVA#?R8nJW0-3i$h6+hK*v*flVnN$uto}d! zrl4uSB-eJt9s<&N+zWFyUgNPc`k<-+?0O_TNlkK#U9#z#eijD1W0*&RvV7X}3YmfT( zIxpjFvsJVodgJ5V2FFOf)O2PnkEY4|wHAnJqBbqMgD*}_%A}jW7QC!)`awHVpO?FV zSHbGs@|-8nrpHbcS*Xc^*53Gd{MxDI;0NP3KehI!2bJrGvypr8yN8YdR@?wuDYQfl zqy%myYxVlGwEqsqQ{ywijq%0+9x|O9(LM^qLMD$*g11f7sOBaEZ?v@f4gY&j$lKz` ziY`G)&(&!P-}h~@IoURh2!Z4%*_)Y_1o)5@qk@fYhpEqz%u4TX*M5q-gX}5bBX?)h z9YGb1?6wuLcFU8gX<_xX3|bz4D-j2^f^mQ}UkiNO|;Zx_f!OBL9>OcRD z7t5KZ5uvZqG_Z^Hx8WbtDU)@^rsDs%#(@;94nhIMNFaq<4{lss+VW(wC6@ZdpSACc zKpwf674=RkR{zCJ&95)5%MasHmLTbuzv1Y~wZE~xMXM?e?aRxKDvJdA%9%T8^{gzV z__PX);-idB=}t^28S9=(Y2jFtAsvbDo*U9)$#jpYW*h`c%5hg&<32^{?@1s%=x`nt zD%B!n4u#@CV%hUt41_7xh^jug({JpzzINmtOiFej@gytVo5?qORQ?7cg%6VMX{J&V z-ZHD#prKvKzl!+3=JjTaO6_IU$bv3)R{33vf3c4BVWNdvJG_WF&vl6>eNmm-z=V2K z_CoB%?G?C?)@r$>;dCbc(0O@oVLI`qNQGUXu~;HddT^xSLU%rJf2a#tXMEbcN^PeH zoH2CcIa>A{%j>g*RO2e(H+aBai(Su^jn43SlWNx?ZctdsO{!fD5Y>+WpxX5EY3Hh_ z`)9lmWlY}0gD!)Ddr*~%>Ndm5k0*#D6VNnx14-$;wUs3YXW`#Wj4x-lT5bRx;8eq4sxPb3 zXhAiEdw2rNTFlDD`IyS`5ne2BWJd*kQJ(6P9bWJU0VU(Olz=E9iBqJF^e6x?D+fT~yvs{z z-JELt4~j&cx)AvR3kYq7BN_-az+aF5u`6EAoB}DUv4zYpG$#QHkuxC4lmzM&nNfbh znhP3?qkiQ%5`n&_&|6kC!qbQ_-zil1|L;Jh70b1^BM1aH zw&(bjM5Tl5>eQHXkcP7pW`Mur*Z&qJ-S#;8Lc>D?YAQ*Ynx%U{3MhW4q z^|KOY%MNpde4Bq6c)ZRi%CuX15p4*UY~)(@99gb!O4{Pi6q9DVd@ zAf%x&p~=`dd>DSEdC$XR_PhBdPh+9WikX3rF>yMYnd4g&{P$_QiB@tvB4zFjhCb#J zB1^4B9X<&@UTInbGXL`owy5?V&Vyt*kHY-nazcQ7VVrgia7ZLP2N(4;zT-WND?&q^ zX4^zUkNk>+Fm+N6r<;;nYs1->7Jyz7tE`TN!6!+nN+c9E6+epsFp>RHPIz zb-j481#Nr0fMeS>i|Mg=jfM$jB%%d>*$RtHT15s_;>1HVh?PZ|Zb%-)Ll} zxvtNxomMlyD)>0EDP@3*va9_mBsZ#R?bpA%OrTjcDaB-!zH35z(04M-rdX6oE#~?E?)+*z@w`@F76FMXbi09!EEgIuKnB$u zZvrkdwPZ2bqff#ScW>XuV-5cm}n1aAkGsE}_ zsG9))cVmrcUj);+objs3<(Kx(9o4ss9UjkliN-;G?8Gj+sTrzh=(Hu9%m7_S3gf$Au1Fz5wz0` znpBq=ip>`nnh8QddVc9y) z%t_%C)te#p%M~EOs9p<-wTWFj z9T?7fR$A`kppSUONjwkarH%7cs-+-L-vxlf){t4|9$Ac@;FD{$+gxwc?3li9wo zo$us3>RQvx-Pm&P)+(E&7Iu4w+j>hf3VOGgG3~`0Sh@o(=`1{v|88q*UumMp@d@SM z=0V%IRy9C0gcQZ)7b9I02U!@nNmNQVGDLE8J1(_MTPxeHdfyV%1J`mCX@n8ZvW0{f z-^-0sE>ZIpJc>_VzI#O%o3byyow$TM@`%M=*%;(#o}A#x8a1oHLG zOIUI_-A;IRv(~v^ipbx4m=6w`R|N|=w(Nx$KUv!O{A$l@Z*T8>{j~?Oec(Lzu@9-6 z??=ldboTnrcl_8@Lek;Gv89g z!eqIPiob#cK=twdydwh*_41TCil~55>$C-XLX_i8X=MJrCzVG9D13551)l^yJLq8l zmRC0;(mO4BD-OmTY#z8t7co8*6ZBlH^y)6(-P}97v8Z<6QW0=m{46*0ve3B!ERdn?o&OGcNKKiKv4T7(8oL`w5mkLWU9+GbLf9JsN8l8?J#0 zkhZ`LPecP?3Y&+fNFu+uKhQ(3O1K9Y?4pg+7Es3p2{llEPg4aR`I^G_!?jl|1!u!B zn<3LqN^Dn?wY*&md;GK@5Z(9s)6Yk1Uf%(Iqy*!CQe*5%e@Fq1h7FJfUk&V#!7O%U zL=hwSjQuSVh{T_2&L*;#o#!{wqHe~%u*FOp*>o!vb(?mLK$lZ7hmXuJkEDr=_C)*yW78SHM+#m-`3i9wl z+^5J0K)diDQ^sDsSXv;eywOJNs6!YSdCBf^n2G7}eVF)(BWh?~YXmJ-6tvtb0>~sA zw>xD-CS=c0fR~CF<_@#Xw(o0#acR!7NgMp*{rQ{Mb0oc=Oit1w+sIQUv#YJ&wl$W=*}3GWMggFJFcqW}<7yXDUDzur zhvO{0=y!0Hcpis}QnL;|%+6JJE-gUlxwGF1(@jptIWotcmy*1t%sF(BXDpDNew`4n z+-PCu={k7&H_5O_$o$~p@Pn1pqSy{v3Jvf(*BDt=hwE&^MJ?7Ya=#_S)ZFO(=5{o% z`>xQ^#vv&=!5t#QbKjJ0^y<7&fiQaEP#GcU1c=gp3 zRGL+%{Po}8oXP;2?>mqG2*w@C1U-)1Bf*=#ugsS?J$jjU+>p=&Mq;HI_;oGj#|%eeXejMI@cLSmuLveYp7b%%keTLg-v;{3Av zyVQXmGlj{jDMS)7J+S;m;x|wA-2(L`{DA~8)Sl7o554Dz1^OxVNFK3n-{nBps%sBWYyRVw=*FqWd84-jFR`$jNjD@{A`|H zov>}<1&u6RcG1bIIdsj%=Fe*)I|D6fDD(wAIza(8GDb`P*s`iXNVv1G^?Z6pEIF?0 zb<$dUe@&ii98b>}KVJ^d;*^6X4{vU@%Az1sUkm^;lFY?pwlA%@C05+yW;x1V?=e)z zZnVK>c9P<#E8NH~M#i@d;*03Xk4RJ1g^W0AP9i5)MMc6~iTU^dKDV2@Kc5Hf!JJxN z&+8cX*EwX*y*p}v@!4Rvn@yLsH4@caN)FMxi45xYnd_V%s+VeMXGGUq$pu^ohjew3 zK)yPQsn`s79+%Qie+d~MuYyOwJAv<&ZbyfDWk_N$-#Y$RuGn4Cx8unT_z9%%DXGMH zKEC-*@NvW6e>6<0hb;~hH!kZ=$dhyfU(9K*KhiWye}G@moZQ@YQCSu*t{|^k7p&H! zENz}`Dq70qptjZ`JHG`2~L2$`pA0smYHV;-v%pvV}Y8MwlvmUlxYC}GYI~fhm$LitCmCs7U17x4-vRTTk*ZY6;VzXV0 zdVyi$k$pzt+}bs_ULS$f>vPO%jHdrL7M(?t6XoZ89LihUi@rXCegqHwSi*2NxljK3 z)pC|8|3G^x@Sr(aWR`zZ(b&F6b)hHu{(gqH*jPwtAth=r8&56ufH0{d$J2JPT#U-t z>#Js4a@$6?@)G%b!O^#5PhCgl*5y7{t-!`ut+@UuGfxZn#7C0%Eg!~DkviX5-eLz$ zktqpJkI$LF0=U(Ft2qArQqt`VPp|Xp+*z&k*ABS-UzZWz{eM-k>cHY&URdDSi08r6 zzxx*W0>fIMfzHFsa{#1*Bgp3SzC@tI&TEsspwk<9f1{z-MJb=kc0(hRWvmg<>Y9Tr zazu$5rb6IG_?^WYK#-TuZZ3NTyKNR7Y6$f7MPPEVEVgBD2O@%K*}S{`)NC5>cyZ=* zU~hbKqdNjzC~o>_6KrAx(s2E1(&qj*8RL$EAPLWr$5GrRBKYy*BeLBN6)kRUo5)jY zEa~a_XPZbu@5LDbUv%d!8&g_@cC?XjoPy~yh0gXe79ar4gG zSTLb{o$Cfwyg5nCZH3wr1#U#B&EuU)R-f7dN zM^qTsn>qxzxY-$Ek54SU#f_kT+!E8KDG4CL1^fBEHf~vK_~FmQ*~1|%ik8WRL6L(u6<&;tvP|QMJe0(JQf4p1jB!nR}*1|JScAXX=aXHagkmdL~{jet3R^B%#p& z6u=)oxjtfeU8`-g6wJH1gM3D3j=vlo?Pu&Bs@c~PmRKr|BqcpL1*d^-6Vn*IrrY4vstexM{!Z^Oy-r^ z%Nw7Dx;B4q3p)zpS=OSJx&}NzN`8c{i~n`kOo4gn;Tx9Ydja-f3+IkAEtS3+qx#!1 z`JK;qH$F}-rDNm3^M{Nz9gWZ9UKmU`RF|iJ>E>G+JtSI-odq?69)7FC)%B*oV;bBo zxm5KBSe~yXg+@KBJbBFizIcC)%ggYke*AY*lEb{#5nlCQIx=SP9JhAe%!7r$3B=<0 zZ(B=+@7M7{;Ln@m20W#M;JOL{VqTP!J(#Hs@5d5Rf1g7rEUCT!k1le|A#>0(?1^1Y zHn^_7SpAeYDkp1+zAQh#mIjAFdFJOqllv6MACbS$TZ?la`fG~pqq~=q{`z}~KX-L)_O%BZ z931E`=!<}oZt|~EJ?mB4cVs}--7z|^6E0L#agltv*VM~|xDkKWZ1NHZNw~pwE=?Ht zS>y{y136kbS8g^m9D{qfx$*wYn&B;IX(==0cq>@txc0@eTf@tz5HY{=mTi+~?_%zX zDgl4E>j&0no822EN1xr!#n*+ksH2S_&@IO>7dOE+^DpK^42 zT9py2-*AAExWlSZs8C%l^pX0tRrJ+*kFI~9^6cheAwRI;VwTO`a58scS;RMhSBC`W z4U3bg4a}|r8iO8fDPXpTV^@&*<}|Uoj@g(3OFon!T%)d#wxNlO0{}ZN8B9HL77aQP z6JUFValxSCYVuLk0yP9=Q;HS1SOv}j8p2BecA)L=5M61}IkC(NL1Q^-hmV1E{NyEASs#=p3z2ByzO+NAVUaj~ zD_o4Inpc|e=(5_99jo_T%%sQ+g*FVTq!RgQ&TpsZ>gUnnvV?|{O89m|g(RR#yOGhr z{tK%FpQSbZmE7gty~#+YG-~%a;u&30lY}lHNu=8$MA&FwG9fP{X@4pd_f{IVxnAza zWi^Ti?2es(l@=5E8NB~5Z^s=ui0r|wIlUa}Y-4jSDv+fzJHyY%$By}u4h@N@1cN3# z3mO`rdF{iVhn=0r7BzVljtcaYStf&ls|M|6MxtqKI@q3`DoVtaGoFE?xz=ApT?`f{ z48_Ix`RhFPw1!oVz}PSKL;sOM60BpZasD9Vb)+R#D^2Ob$39ZO4Ec%Jz5jvnikCrZ zb#CI>V&`Pis6fs0)q#{~we!CQ)+~wpWFwP+&p$VkH*Vt(zDm+|%~BsNE%M;MCX0NB zh7F$8l#}DWKH3%IP3OX!7s!}pxQexuc-){$IHpzvvs3q7J?Qo=`FT80s8N>2VR%vf zY<<36@#yzm|NT#5sin-FzLArxJxK4b&Re0TCR%>Il7PEj5!49nK;EB~DIDED-p*a0 z=d{goR5(`PJ&%z5Y;yJ=9VswBx=cFi?RmRA863cSf5%q=XT+H7ZjMC>1qU3D?UDpn zd+(f{UMlVXNjt4zdPTLXW)Lx?ll^oW(0v*v$y~)phBTVshBAZ+wIC3eT!W-AG7{Tz zmb;GW3XhU%nB`@|!D>hCbwq01YC!pU@AJ8=bh6YhAWfC<2TvKoeCL{yNS0iQB-U#+ z;>L@-!-=`M zf1xiHse?8#`1mgCp%A$s-)r|QYQ`^}p>zOV?gbJ|+2Gr`1QHIzr<-JnK&SJsNDN$r z>0_^e_z~+u^~Ndn^QL`^w?xZRriu=%-3y7~D$|CI?(n=8zj%aRlpyXKj8Fix?mvCb zieDq4BCxM5{L5!o-W><#mBB|X#NOrla0?Z-v?*S?w`z_nXJdg9&sLm3yAo%2!>ka8 zVl$nA2BXYu(u=@K-5~o1@Q_-EbpcdK zIywaETM?C*7kIZ!5ltjO&N%>ku9p+W@6<$&|1<0;blRBkL&9Nyt@$Woe*({cH{atX z;50M|XBWfg7TGVztt2p2!py_T9=KetEA{nte`qwW<)s`e`mNS(UIE3C<_Wra*&9EYJ4K z8&3tNYv19RLWi$@M%Mc+WxJE!-+cJ4bDE>lEP<)Lt^4rP6ZF|{pA-K^k=-eFwXWtC zZW%|ACywv;tTHH-28*;S2&K^B70P`dj!Amvj%djZk%G(!rL@4?oMum>b`sQ(gYLm> z=GQx`8LT2E_hWI@zw}7(IGkbl@)`M5Sft(2Est|u>}3W{9W@MZIhBoq_61-c(W-w1 z`3P?K4d`@T%U0J)fcydiR)3EKo9)XD_75$L59p6o*1046HKwzT( zmFkO|U2)1p0S6oyh<{$RoWw*18H2cNhE?UwP%+Zj6vc3)FNf?30%;e#kpa0%0^i{- z8wL+E0;Jv`?YI#&Z`J2s4tc0$8y(POcG)8(&Kgz%g)X*U=D9&JF^O7g?6%770vr{SgcQ)_HUfDHTFT5@$r1S*htMsBsv z%hW%xj)4drz+7ck6 z1e_+yNMe58B>;qCqF|NqlLJu^%RvtY!L15E=8Q=yuqXhiA@pXB^#ATkImppyq)9$# zVifxHO@&o`4f1bef5}l22SNd`m&Bn;$h9){9Je^)1L`%{ziM#&Q!!$gf4k`Ih>qK7jKT-@$j|esI*^uBdtdlZ%Zl? z6K@&ymn6+675X>0FMa{t<|oQh&QK(8S&~ZlhC|LCb=k=w=fXtvwh zbqghnZiq2@Nc}Af?BucJvCG@hf7u;k0ZWhYhwGR<1~QQ&i69(hA3*80QC2;#hAVK~ zc@&5E$a&8XxljS1(SkDK8BjjsM`p$FitE)HQ5(B+12XU!&`1U|L^6U=R84D=*K_Ya z8UXw~Q3yIC3TJ=3+ro=1i9`!|BZbc{A8uqq1}`63^vpkE#5VBjo3a`VKgW<9cFMnf z9)2)khC6!3z!YSFIOIto;y+AGpv??B+60l&^0Qr9ILU&IaaR8Lv`QWMd{Bi>&HF0% z4`8Xt=3tuWh8YHMn2!cgW=_89$R{xB-zt9Nd;M7`5FZt0;2o1k0mcT{K5>1+l$>59 zDofE&&soBzp^SftY8r}KCa_0A7(;T!+hTFdJ;}78Oi(Bw+RyN5?<^!R1CixM`^IpJ+`~iJe#guF(VSe#HxW+Au@=m??K(Nbc4lURKeEsPZ_M26%5{fEV=3>_Ibq_W0$1EiYVQPAdD!On`sgH&2A8s&wciZtfcO*~3cX<8FhKzE> zXMcv-pY~Li^=eqZB7x)I^LKqXK1wEM0&_JcEt!nGUch4w;GlQSPX%(lX|u9F3javb zqooEwN;mLGfmM&la%1bpG)hxuqpR(+~WQDy)>tS!(y(5~%+0O*y zW-WMM;|5&7!(V<2M)^-D^kJLBjW24HlJfR+W}_hE?3&5^hpuA}XqvJtW&YTkK zdGx+AxYrudVyZQ$*5L8H>@V;%{o3m$TK<+g;E3qjQ6lIw4dGa~3Tsvk!~N-_v?KH+ zN9TRyx7g7~kL&L}H+X{w&W7{KlJFE-C5$eOdDllAyY3O^x~UB9b?WfBaKY;Z!A5%Q zwfm>*r+XZ5qB4K$tqS5rh+A`$HDdcngxcBGuET1Xy+O12ndEtTs_FAG97%u;I6VCs zCY59lYpyTy9X}Qu^~-giPOXfRCCoUS+OBwAsoyOACSE9YBCR5UO)ud8W9%!V;%d4s zo5mrK#)3;X!GZ+~1P?Us5+Jw)x8QCG?hu^d?(Q0b6Wl#OfS`>x&UBvVeZQF>Gi%LS z{GhMZz4x43RcF^Zdz%jA5+Nv&K^T(He!L=bsyxtjf5*;;+D{@Ngy`VpK0~j^GdfTQ z*x#;Yt=C^X2|7S&Iy@w%A3`Kid#09N0|lqKJanXvk^(La3u|kIy?3WP=c}UAg5?)| z3f*e|c#ckrj$K775ZP&^*hHZ>T@`sv70?YS&rCsr8|`0ueS*LUSQUe>qCXOS{~qS; z*ZA9gKWca*gU`4315v`We>Hn7lmFDvn33$qN?hBUI!Kyf z@~8b8l)1NAdi$rx{iIvVj#0A&^AGI9^zHA{p)Xr+#lKRw7an`{m=68 z?UxYh$9GDwjcAFo;qA@q-U)PH_;?I8Y^C)fE;@P^<~uLNoOp)77-r`iR@{H26PA4c zZl_>nV)A7}IZ(Q#(&tzAl^5)8e0yXbE5HkG@3E75hu}Y#0EB9>Y-f4y>^>k5Xs{VH z?F=7qkN%<|G&!8=Z35NGeWveAZp7(?mnOxQh^z@cJ|O4u))zHCQ$$y|d33?<>@csU zH>~eN#xXiS`M806pnX@HxO-c;OaIA5`f_{t)IUd#f>m9Ex8D`ll$wwG#ng78M9D_3 z54Ro_6Q4jxp+eYEn4#^2e9+G;X!UP*g~{&P)<4H_Kj#AW*5vzAGjK&QNSGFUrcI#> zQ(5{S$Sp%t6^stLwcbHwk*J@xCudzIleB1bPC?%%dYj-eUA~s$GgF=Q1?J6$ZqeIU z(L3740gcd;{r>CpB%X_Wx#!g6T}}=Pt((V`qm-#E(ZsJzPz8!*)-}-w&JlmhXj9`? zie@8Y(8lOw=ZE`a*~m@$Cx>#qCk5#K#@S9=?!Jw`xf#SxV;efy#lyM7#wp1@ zENT;AlUWnf@lsQCZig58CzR>X>V4U(EUP^c>m**` zR<~aQN|ds}72#WQfkgrcipNz1LDZcUw;E$Y2D3K7J2_2n@Th)Y!r7EsUXJohl4qC?Cf~?cGjKuj+OvmAvwM1?X3VfuTUy*!X>ty2mq`~WB%_EcJ z=lno2oJd>f?ET(kPwwl6#A$XFA<$+Y5hh1^wMudk5d&ECQqr{2o*AsCr3@yE+#R0I zUK+`TFMeq1u3C#Nw#O5++0V33Blja5|sG1H)1d3HYqmFSZipNdZdUHNUO_x30cf}zaU`RQarJ%F6!sx;U_8)@Dpeg{ru`y2MOIkCRJq*D8^U2-B~dyLl0ZbOQ(Uu!M+6lc9$HvS|DC}7ld zpbc((O_fsW{-Z_KXF`kQ`6E04PcB+JEfhTxF?VpV5u1j}%{U?^A-*u@61Ud+`ZxHT zAA7m!&lIH~gxvY6fq>53;Od)}qL@ns;>^AAhpP0CJk$1R+Ia^ z>~%}tqp^6|gk!qA6~Ihpf~XYkMvN|_wwPgmuGPu8_r>~aO5&BQT8-y}Mg!zq7&1Q0 zCtNRnKea_p{h}7s#8S3AmG$VbJ2CHy`}B*qYGqD@a;||LM(w_yHg`OPg@s|^{#x%^ zt6gtY@HXtPztCX(x_-Q+yY#zmC~}3Hb;2igs8)GTR&wHEx*SH|`?{_ZuRg-ueLb9vU+dlO5QG36wx(`( zaihJ@hkhvVjk zX{AZBoCMQlx}E1af^y^XgjU4LN~_xYMti!}*Y~L@JzZe)^d+RQXn@-5exOfGm@uq3 z`8LJ2pX82b6Y!$#C1_$6=Q~f-WZQZ}BiQEQgm)gRm;A+?_ilwo;o;-23~N>e-;K*M z97IrTL>*OcpKK6mn zLVx2&63z6uXK&uH!^TVz-{oSp-sRk7gq{BEXVIGMcL3fBtD2Wo_sMR%Bd)I~CIB(_ z2W|9@+e#}98cgmxU)`e3M_eZTb4HM#ZrQ|80CL%9>V+m&^GIiM+t*A=!UHBj5zn<|6;TcfnS2h*pQSQP_xjQKm0E~q=3}YM+5`?o%F{qhpZ?7HbvGjZp8_nkK+OFp&H0G%glEylk2W1rcV0$+!WED^2+_ap4I1nK*O<4zyOYUX!7HBuF5df2*BE zn!b=(U@Q_dN}bS8Wkziu1!$<4tpDNw85Y>+%0O(eMI0ATJV%<5aKj570j%)-6L%c^ zFt;<;nfLWMZ!7&nyBW0O!pmhP9v0UJ&0eIj zrdIu#3u4L|+;aF8$X)0EvVD;NKX0SMz#DXo z%oQ2oy8|bgU5R;P#QX*wF~2G3@z~3G5n%3x6##Mc{xr7Hq@!Ti$Dl_8x~2h%5@`AK zfRQ|8NyTpSQH*&&h1eGf5K+KuR1I%~>{wMspk6lQB&@VAbuT&VavAd%#Si(lcD&W_ zUx&}l_+yTS{;ui$U5?R9yJiYJoE@9#6_=9a^|iihWfxgaW&+1T`MBf!##h^_Zief0 z?uvX+yKa8yk$1M2T7@6p?2Zob1c+W_2tD{Y`xSxvq^SSsKF#jVJ>4~S zLL;l5tAwJN^B;@s$A6Y*lI~Z_blxH|6aMp{8N5^hefrysnx_cW#Unao$wf7k zK!0fL>xSD{OPUM$B=R04aSV`ZTr2EkVcmZJgvdf{YONx7PUW92dw$c z#Poh}22gX@EUeX3AN2G)=Zk~5?_*2mP`Gx&Yoy*HDuH^Z;_I)K8%2J8CM*_$-XAYA zE902S^O6$$+zx8}+>f;~3LYl=qm$bb{3&IZrm7Vi!rL11QZmlU;>Gv-`{nx68 z_n!a}9j#!D-li(6C9Zg{_1Owao{i#?5CmVs0r4T#SSwbgRXCc<;)~~I!^gpMflyJx zrh0}dTNzL`6Dp1OPNON3g4c=L9E^16akQ{NPSt2Yv#>YDPWR&eQ(+#xv#H6<6bDcl#Zu zhZ`rkT1&|?75A5dYTo3px70^t@Ol2vHT5uX4LQ&Nzs7|T9XJ34*g?;jIYj3gnULYC z9ryj*$EGTZyG$iO$#AX8 z{PT9K+TL?`@Wzq9zm6v&zP`lU}+k%TvoC`wvOk{F`0=`ArWen64*&9IB!ypznN z2lWbuXkC#zO1baGAt{c}`nilpXGo@C(Lt-zjU==n;h;6GFyl-Zgp|AMF|1a(<(U}+ zkY!qj6EV#@35|pK&KW2`hbmF`6;E7ONaZ8dV0x;80P24B0r~C!z6k zK?p>2{oH%rNlz1@czfZ~mDa>XGz=Hoz5!$>l$xc4D!ygF24r<#CT`tS7L~@pRZwWS z$Kks3?`1Q8M(3cQ{n{dK7h-zh(?l|20Nq3IEKzCd%d{7Nbg$Xqj zsB$9=^2kI7gb$tz(m@+o-$SDhGFg3q07s#5c(+T26{JWfQgHmzXZ`YfM(VZel@`N^ zw-VE~XXlou)!L%IXD8%LH>=d?4@BdDJi~>H*+tb357bw(oDvG!Max4h?~PFyR31zm zoEK2P_Pox-ku;yyJLv@7m+5bRoG>h!j7amMX7D=rQtuSS|0ToGX*DNBEjnAN+V zEx!7ch~Uv?^!UXrAuH2edte?;Al%vJcTuB?4vYuoOe3kf_a7uGH-NTIbR(N}=Pqq>o+If)ZNJQYAa#Wa1iRj#( zTnrvD!^A{N{6n)TK$1LwO@6za*rp>agaw9)!qrmCclB0iA9S~ffgE4ilWgVz&NfB5 zmEU|kmM;azM+AHeH%DDGT$s+HVa>vERU_C!A9-T8bJYe3OM^g++W%nLfw!>9QFL zFF}GNQ9K748KnY#?>K_RVWaM9YZEgY9jGJxRgB*w<0m$2pgg}+8Izr-#YD%Qga+O? z+j=`&*nB+sGl{IaPn;+9S++#_CBN_+Zccn21*hX49of`TvkJprHe%WBS~cf^yQ1Ok z+5`SpqsWUGMVv(V;hM?v8vsHH;_*9D5h8blG`gT?@*2S`PIT6?=lx;-`#w*TWB6wq zFbaSPb#h6vNfpwROR?-mIiB#Dd;3PQgm0mNfjWvHu5hSkD+J?)`P4=k7UCSFOEf5eP!6fW^ezvbXU= zFM2DJRmDH7=F~aW6K>~bv-@l@#M#r)IeVb~vS#S;ULnfAMb^|=(C5U^jfLVR53wzh z+Wgd>{CZq~E*k@iELgT+%I0Ld-UAG@vH0+5(+OqWr7pF+qJAHyE$dMTW*sRfJkO{2 zah?Es5y+jd@k+DbGv+eAHQ@}31!O?;G||Y79mk(M`D9R&GN13ONPdr?dLK6{LPz(~ zb2H0(|HTwQh=s=7cvKP&a&&yf`-VrDM@XA-C*PfET@FORw-FJ}?5&y@Z;LS_^9=XG z<#?IL$s^aY&v*zUP`|mc((*=Z@1*9@c*ylIw^puY2ygwIZEn2&(A2>SAotb1+V8iC z!41{7hj}koI}j4eRLWh&Zjmm`u@eIiC`o@7x<_p2{*U^FUlacfv z20SPy-m?O)mlzSsmy-o#y^cOh$(omxi0BUGVrX2W*0imhz{UD>0EpeOSY`_Sr0eGh ziR#-+tHu-!<@;9Sw&T4;Jf7G{olUG8DHHG`b<=$jp`M%+udSnf{P;L8HNX%!k-$G` zKk?Do+cV}p7NKq1?>vZTSf9<_9<^--McP0Eprkrv;D^2cwgEyJhZ<6y0o2MKaMbTX^09w5{Cfak-T(s0`)NOtYpmLfea7Z&yQn`+z|ds0U@3ST3O^jqYs|2YyI{5 zuctmx3=3kp;h~TWu_>_;5^?Ndo_zF);8T+n4NF$0l@l@%}R) zAB3?m6@OoqW!p%}V7T8|m0zANEt18I7KWj$m^i?_K_qmNFk^7CytA0|`snAxr`@g4 z+Yg=x!%p4;2g%cRVC#DKHW+NS;k)sh=ZW`jzBh+HUhps7#Ep%izqW-E%LG%h*!VLm z{?P42>%C$zdcGVL6KRLB6TfeqNwH8MEn8vz>*P-0s$37m$Jp+tn#L8NYl91T8nN-4!A7MWZtiSu79QKVFv(;j19hGiV;A>>PyCqn2T1}}JjgqM{Sf`*Au=;=yejbqBIH+6sXl49)e&UB-d zCpX@C7$a5Xz?>TQk12$%fbDMO1a_~!1*JIsTZKFyq}zov-heN&`uRqNUMEYIL@cz^1-#xS!cPq|*(gr5hp769;zxz;H!XIM+G zR8p_|G9BDEf4sO@^SfV^=F`>byCPBOfJ3IQ)!paDbmvvRX=ByF?;BfB7voPcMgciA zghXtN>+`<15nPe({B;NGE)P?tlwN*|mz`Zc%acL_2tf?(#+-+NtoyDQq0^C%oMC|o zDtg&h_y$Fv|o(R|r=+qHe7F!SwHSEk`=;^V!mr^2#NOXGeA!~KVU z&NI6sL77uT+e$+weWuE8L#4HQk`B`HQ5V^^fR`>qArRB5%6H9+^iimTqoprhBiSy!* zjq;}l%4sGJ=Ods9@1%(P$y;V^_Q3XRXAUK7uB-FQH*uJ*MRl5Ago2)-A3x3^clpdF$}OkoH~-w#W!C)GM(u8< z=FUQftDm;Pj57GXy^Bw~^Ri>UC7J<6Biwa-((8QDxpC9B)%Pf5{SM9Tiug5j@WpU? z)6sOumF~2P!2{7bA}zWt>+K1-U-j>$L{={BQSfW$(}hZt7;3qXg>6`UNaE82{gS#_ z-Y!$1#M9H2LY+1In1bWS?;P8|gNv}q3|WXgR`2ZB9tYR5o-PSS*4s~_y4((Y47{p| zbbQvagX4KuZiAaTj+%7mA1+t3LneF<{}6Xwv?L|%Sea8I;Zp72My)?CJUt%IuippX zW-VJA+BhkVJ22%Nk-e*{EZJynor#Zdj|vB@O1YxX;Xu<_1P?a8KwD}yY2m^T2mrgz zi^_eUef?$)p&?(#8k53KcqM!{(!@4hX{n^~#RO;sfvvQ8IV($i4qkEiRL%CHIrbir zBhj?tJ6&Pltb#>BN%qvON6nS5!lqEwe0F;%Z4VZTPTS@i>mIb|otW!mwzuPg9gMAs zy#Eub6-*d4YKstkPLWkwzZ;wuQ?o#^*I%x;+wKuxcR%Zv7N)|#P4%Od1gvX@1KveO zE6FNI0hTX=gZo7uC!6RtnIOO!qu&F=8T?ZsZ{ryFrdg5AMSc59Ev@zL&{o4Yu?HX; zbpcvq3W<`qgi_C=6>$aZN=mNGmMbatR%p)yq6L=IHF>OdEH_s%ChE+qZC|w>-5h>g zM?suC`Z2xOcShHz{iBD+AS29$jk*p>{@gqpjX*@|#UlVCe~HKys;X5(DyU!~v7&-N4WG+g4GT1s)%-xmJ<4PCv zi4BNWLQ*Tt)lh>Zj3hr(D4SLxeyv{GyA`&ybj!77cXjYNG(5Y!M43)4t5gV9Ob4_` zi|oVa8Cv?~fl_UwBg>3eB}510%Sx!#`q|hpd*F%T9TQ5C1)y4WtMLHC zYRSXRvpZ*UvphfHw7tT|ohypRGkLt^`Jfs&LMPiVKh2mdSddV8kYt*{#DE_}8wpil zjY~_t6~$l*v<&+E%51-upOKRgQ*tv*nJ-Y0M(cGD=>)eP1`;EF&24Mz8xAjOHsH;0 zOtamq_sP;TvI^KCdBoell`CiqiHa*K+!Rr&^J9D9SW!_psfSQpwHidn!6cbmQ;eB* z6`yA&p)-qe@v#@AI+LPpI}w_qee_vlV-nl72fMEL*=li^q_qOGN?yL1)+Cxki$SdZ zl_HKI-urO_v3-2Sb+9=*5*8sq73)WAr)si;v@%wXOwOJvSN-C~PXJ098{WHQi+xqy z9dV2acme%HtcA2gShOMZH7YQ^67wV|wrBb!BY-ekN-R4^?puZ%P~}e=AqIagSi;2^ zLyyLPira{Utiy1JTKuaj7B~o$%g?WAMOHd}aTGX_KNCg>0s|Q#kkMG+J8dB9et+0p zAKV9p(-~)DW{Anx1@sOpRys|TN8mCZFy%stZqa9n zMiyci&>3g23(hbQFK8w(K^OqBs?|=;&q-~y^N$4vi6Q~CG6qppWZwbAvJqvqT0s2^ zG^w7{4@=GppF!MSXh~vURnY-if%KE-sNFX_u84g6iJ*yJkw`27Vqy)p8L5$9Kr+*p zRvXTG)6YEi4JA>aGdxUzGpPH5QxAzT(s=EIkqn2N${opacuW$d{Hxe_OscYYu}X+k zb5W#{^Qboju~md15K}=y6=8sCexO)E>E3w0cg;RI9-jKsmsFe=K^%-BKA zeCc-$t>ZDH)AC|<>_kjiX7*t9aK(=utz@G%?F4=Vqij51Sw<^#GB84vkpN8F1WY_| z7h-elpWb)6kLGKBlc|xuI2Jqixe2-ZGqSrGgc?md_g2nhge8lzIb+T`5AsAob?fea ziWs6yK;ZWHoXq=*w?zim5_0*mgx`ui&F}U3b&`e&4JorhGNWl2=kW&nJ)jsL7n+dFVTQagQ)wvpk@-YHVyX1 zg`wFP!^RQJ^L2jM^x*wSajINZM19+iflS86^jFv6pX7A}-!dzSUH9K15d0#yVOn+) zfPIW6u`mjWSHlLL^M8Tizjb5%{}x>Q1M_pZ%4`8%{9m!kzYwn8)PKr+{>5|IEdQdG z|DK50lFW_3MgQG{IJQQP>~G5De|Im?MImeb`$G@q!qMFSFA^I0UnI090^Q*F*aSwSBI3(^G$tfF6ST{%})1P6p}Mf%(gi5TSWYw7dexMpd?%c~-0tf`=~|(R#Qc)}h{dP5lgawJn$s z5m4ym^Fw<(-ONm?A!2%@>;@0hm%3c9XJ)m!0;O?qsVf&ynLgGQzD>^3ZoOWjUDeS} zOM+h==`>z1Y2~}##2<8?MLn-*+aC*|x@+R?Jl<+G!(hU`8R99kKM=gWI2kmW##m7N zfZ=g+Qdemn0z8H0awKOBZWqOe(JOGd9{CtPEH%x&Oxx+#Ehq|+>W`KITdQGH6bYtM z(MUw$L`X@-q)ASk>lw7H3bhH2zw4!=Bu7JQGp=bZx$uXzw3@YlyZh_HCdA}1|9%5) zKeJ&i1Yd<@Teejj4}PiTZLM}ZczNBy-zvVPs!AVwh7(0Gw#^VC6@9q)WLT1bos#p3 z(J1ZvX_&rV9l-EYb6JyL*HHpqjWIDUrAKRJqmNB4ZwBdN?RiM3@$#5g{>=Wt3#(R- z?NXfq281|BqZ|PA`bVE?q1HG3hO-v~Oy-<t;_$vcFG#$UPdX| zjd3-{&~}f$+H`vQJBp%W%hscW+&Fa;@etFXpx8n@?YSC`RGXSrRqiy-(Ft9=R|qmU zk+nI;zRfF_U^`5(>QJM)LPRAx_h{$kL0=bKE~S>krxNJDhJwsj&)IzF9B z0%IJfOdRkXzM-h%SAe`?hLh*p_p=@FCO>sIrEz(-=mBE0y(xwuipUa?;&a zO>kpURIt3%oyL3=XqUK&e5xhRCK7-$Z@T)L;-5DVxoRwpK^j3H775~< zo=^k;RSvpcOlGxfDqPgm3Iz`H2xAJ7@Bp744UiB*>CFfI{7bw7ioGsdC}xNP%YOMH z6R9uR!a`gpIRk#PwG=e6McVbaWK&1l%uEGyuM(}mxi|Ae^Z-OvlclMYtDRr@@jPPh z&F00eix+;)Ga5u;IEhIhXi}Op!%AFKR17M|A3<5tBZ`F=3c$m|14K z9^3_!D(A4;T-%jo(|<4{p5pMu52Sx)5DOI{k*U<^;nK+dXrawD(O09|=y<%iqPrn) z8MLp_0o=fTy)5Snk!}gd9?6jusd@TpTyKwWVfW zunmQTS#ZB+866uJ(PhL#yvKyIo+nGn@-r$?Xym|@m^7f4MF+#9gXiz^a7{yq*S{8j zDAqE4SJTnI@83ChA`T}}3`p6kL#s7+r#5y7%{OK4v`UQ#p$r|R3?E8>PTG7B zWdkVIKU5l{Wnp{&NQ?ci*L8R~JpZTUmZK40)JypAzqtTunaAs$+W~Fx`|HKdhk!Gi zIlRl-Z&q6FzOZ*aCWe)Cel_o^GvB>K4}Ko4^bO~Jsk7~= z=&Et_2d&h><I$Ukqz z)ZyP^^8Tcv1S}wXhLxq&;V^O0panE;G`eW|s6@TaR!Xv8k(C46n8vMu)>)Z;nVin=#t-W4&_tzdZ1xcjH*r-@?vT`f+2k2=} zPdFc_RwwAMUhNVIpC@mjC=vp%AreAd`s$wm_n5t!2*8Y|j z%Cg+ZVyTm4BA~jqnVc{A)l^0bYXIN+{P|$$FBCCpu1ZA03F%o_)vejD;(e_TO%DY>9->2S`P4<0@LM2P!A$)4zZ4H zD+flU!3s$7d3=EnR+b%cI6TSOD>L|@1=beT+R3Y?iP#kacQ>+vq1S{JpMu3OmK#z1 z2{*p`biPI~QP;C9r;wk91O$1CgM;V->6CSi8pW^x)%hp@aG>c2>~T~bJ7aKuf@&_^ zWCOHWG~k!C5hmfwz-A7qGEVf z5U}d_PcHVGMmpP(+Ax1nj1e)`%9|!itbiW;sSlP_&)l#GArvM26zftLq)AfJgsK>F z6Lfb>kX%ABnon|>9n*oaslm|?A)RrEUjOQ39OqdlX;@*SO((1Y*}!d8%j=+U&802t ze(XtyW$bw6bS<-za zErmt`#CUPEt4Z#(sb`l-R3;x2ICvl~1xzZT`Scl8(Z9T7-gLcf_%Xj-ERPaeSzobn z_FTcvtY_hI=K}SlMVnFLRAf{VRvaSok2BIxpB>x%VdRxH*Av3k=d!@aQQl05} z_3QehhBXfM=~v?7$sy8LW4`An?$_=mHQ$mCLm#)@u0%SX1`9Sq=_=wjy*PKTYoS;}r|C+8D{;30pEJk6yyzF;P)L*5RSE zRyX61hi=SAljgx#YPZtAW_zq^SlTqkDc?R`3{6)}^>KB2q5!|U>Vlyquhskk+ve=bb=J!-l7x*F$s&@W*HTiPn zmATC1w@BSxPj22uZ#Z?>rV4_@uJIf1{rLg|s@eJI3Q!riHYc?L2sPUNhcf0MU z00EXg=87mPa&kWeEsdZ^^-$G|I+9{o=aO5#y(_1VD=U+7wkS}0uO2@d69>x3DvG2{ zVCW@vuBPNO>0%-(>aYHmH873YOHBV;i5{MI&C;RhQ<;Iph`s}v==Qv`OHzC8HWWW; zdfl%VF0>pbN`TwW$>-r1pClj&%1Jsu`<-B&DSFI2x+bHIzTDU;W!tPHJreKwY7rmp zG2=)ll0y{({CnK{u&LoJupV%_j#$resj79l%S$r#+ev=J4MHetoex#6C#m9tNNI8l z`!mrISv2caw7ChcO7J7w3i2?<&HnmH*o7 z#N!>DuX~vwreS4yb!x*0t@6pLFCw;;9(KFB;F$xFEvhH=oZzF>N8ZNO#>xV(FVz_% zQbuCoY9acaeqQi3xFF%RFhDYI^64Vg;HLXddPkkfg~;EY91yvWYt`%; zx`~QCoA~}P=|0|Q>outBlKELoUNK7Oa)y}7=Niu>$^I*LuWSP+H@DB>bt-aI*3GcF zNUgb35eJH>m|@MP&tB>lBD);A`?O}Xq}y$ZSYN^o?4FO(*qo-X?Zuv~&g)L3qDtnWl9pznKx21j|iE6RyaW!ISS!3(W7pdEH6Gdt^qTMg6Xq zLAcWkPG!OkpxLY&7luzD!=H}Uy(`Vq`{k8O=RrSkty6}$yWlm?;a7HDkA=iQ5)*xo zORvSViIc?=gNG;t4~lKu&x^Q}bHs^5=ACC^+<0%j9jny`eK!fR{u~~*dp|E>ry!B^B^-M}RJ8yIHIYR#}mV&XB8u zbQx)f&BVGY@AKGQ)Xi326qETcp@_kG3QZJ38%Wg2G^v06&1R&Ql^hTnY1^i%z3~I3 z;Mv_21j)bmrU(ZME6*>$_%z^4QoU&}1WWf&IM})4c zsNm21B%MGIFc**4SO@TmD2BVxB={K!BVa1NrWhF|E`>l&((Y7+738hNJZ~p2F>m1? z1n_T6h_)``WLiHDB5V{|Cj=u$TlcBr)qxDbx%GjRr>dvYCa+#pDsk=ru4^m=Q>6_Y z{b+7Fcli}x;y2jpkawIc_Psaq|EBdaEmRi#ab$Wds5LZ$MUz*8LQFT|RQgE;183cl(?UPMXJ+I?2`ayjC& zgW%133U}ACFsI7*^k6dBdb)AV5Tmx2LMmPL{nC?%-{5NKO(`k_XPg)D0Bz=d#Q)U~JPcaKKi$hv{s z<2R{YB?Gibawpm_MgTY!1*#I?Jav@HEDk_QhJlIJXkq{;nVK%Ep_ozxzzxX^tylY! z8FEVFs>|&y z1?T2?u^IL`z7spVS+YZX?`mn)@Y~-)ImBtMV5$#a{{8pw?+VNR1nmE8s^N)3{x^{N z=h()=|AsMt&+MP$#{ECx@U;GaqvU_~k?2hG{hvs>H5vMUu=2kbwo%ynmlGrs5utf6 zcXg9^-F3)4|LJB~v$!1iZ<94mL}x_TF`=fsToASgj4FHc?!G7eTAd)L{w8w+9fwBu z?;|5D6vR(`*!1n*9u6&*Ne_=Vy!P%my1Q@MEGw%L?58uGzC+gf-&XS3x37dS|2({n zaOyaR3U&$g@Mv8r1DdCfJ%-GAjSTwb^mSoBHM;OLzoE9h*Md1C{qqnA?RC-M$Tv$Q z4~oRW9jg;0d6>`Qz%-(Hk*eCL;m>Y{Efj*KN%L^<^+tftKGVPCe0B03gyL%$35Fn} zg+_8{TUYSlk%))R*GAHfn$Z9uIEJCmXyQ4v4}xL_Ns#^Nl{cCq!9Tss{r_fu`MH zEbE)kv(31`0E`6A&M8@Inx3Hdm}S~bF0@Hbdd~vpWGyKf75d9x6XAmbi}Hieghro8 zI?zOENj#6hGZOQ(Kn!by%o`V2<#`R>ZWY)3B! z1Y$XhV)KNBYBQN|TPgqnaglE%tqbZW`$=pgIr#k6FyZJl5UrKK@Ie5nN&Tch2^B|K z`QeBbUtyRuyB;kB0x?lX<)`0aeKV!N%J_XE|U1|%9@CtG9@bcIt z438-)$jkf3PESwE-n6W&B#zi4#tDw~V<~6_&!+eMbCXEIKj^K>Eatm~s8iRyfwnrY zvyc&DnkujOoSgl#gSND|)VS^p_`P?o{T(j;bO*lEPE)5b{#D}ne!GsVNQr{=w_`+H zC3xEHN}W|8p3=ct86DKHVgbF|cKpE9rCUKQaxH6THN!0LF|8(18$nPI7#d$=HB6CS zLa!?Wc+t}$SigJjX!FU=j4aenIwUuNmfmTW_F?+Q(dT2KdIdT@5&}3$SIpp-2-Z-9 z*u6H9Uo9Iju91UNKu$)SqDA5?Q}k{GzvyQJ1{;n;Mx`$Fhz6W#nt^L%Z04IWoaZ@Ooyvgy?yStDpLmR zp19--85ER3uYE*95HAX}vp>|7oO9R$8cS2E9rR&bovs*dCu&btk5s`B8ygR~0uKqv zy8;a54xdmm8jFpfN|C>ohpqWQv;+43sSWk)s!+>ChG=m5Xwj;86K+a z?EP6fx;{NEfT?^r=s^2%H!i`v)u%Vt;IPS4}GnK zNSnsW=upqn9YuLu%~Dfvg(`>Nms|>NNn)(U$;o#_*Bd%OiJTPL(kuZtvyUG?z2a44 zn*ZWi@G6ohLiZBrpT=@JXCX}55aM*18ZNS9yhh*|L~TIU8>a#%l{f_V+MbEASC_3#_)TpC*Zxfap}V8SvCZPskvX&450mWI zQ#<$R3UEpJ`w8oTHNiDEZV@hi_3I!7(#a&WmU`-+rO6n|=d)_)!L8b3?_=&ID%JhY z3Yszngv}pMo{;>#ni@Ku9tD`(4&@9yuME8JeV(s+Efb{`W0<4&o0Zx*=@gkP1N=kp z;4tQD5V>>>f4Vh`Nu{Ta=;=A`Hb3^o%$KewEzL6*_ARGT z0wQn8J5oe-x86+z2Mo2@cesOekIP$c$KwJRF}Zdx!Vn0g9*(m*cGC?f+#^JvMQ=5O zvO-vtzrgMBqYF?#xo;D6GuJvrTd@|WtkUdrqb-h}3%@6;0EcpN4uj5jkkQz;v{1jR z8uSC1^JD>*zsnI0ur>y~uTM9|(ko!M<~Fn=v_YFg2dlnX(<&v*zI*wE(u70PNkZYF zSB{Q5tuS$2aLU{8h!yhU!h}8ZOX=Sv=;u11sR&A5Bb@Dlt??p1O|g@A-NY|myl{z0 zYX4>a$Ai?Hc}K?IE0$S7A=C zV=wkgE4VzRnn@U)UD}IB13D2@J=tG(>L0xGcVc1FgJEvWaj%O<3}5ky8BiUF**9s( z?=bdH4HY|H4_RS#7jX$2)jf|3L?!^-%08wB-6pP!fjL#2Uj{;^16dh>LSh%QL09mg zQ+Te44;zlO2h=+Hyi9-at5~lhW&tvy>dW4DTl;9MLvwgEq+L}>zf`FbS3{kfM)c;A zUFz~h$}3QFBl7<-2d;pOEe<;~iR$j)c71Xn>*FuNq z*fQ0lGgq>bMs^Cu9>VF}nnHq}X7&PU}IJR&Vi%(A48Y z)E`I-`7`oD*8WZc3;Zf#t50fyY{J5BR!@Uy90JhmKW-6PzXfH~&(21k!=r}N*9`&+ zVb>$_xqSix)MEaXEY;9Z*+)BdW_h0wHA8N#el$zbjhW2@s&m`5by(01ST8r37)tw^ zLD5YRUqT7_vj#RGlz<&nib_CmRrG>x<>CilC=QZtx#s0YlNjwo)WFi8DdX>^b$&3X zy=~<}(fL$6yM=ANjjF!YtbT}ozPbjiw&>(Yk!$6*5&-iLT0=^Xb8l8#D(tRKww`NT zzmYwqbvK|32icdg^6*CIryd}bXFDDL=y-Pkh$yO~rpWo=uG=i{(Qx7*mf>u-%I9}Z zA@=;NCHRD~8SUeLvi;Ydyg)-VnY9aY{W@}nT3tmn(bMD|hgT{;+(oXHL_%b6k+*zI ze;^}L@C^CVRNP}5l!l)GsB5g2fLb9BGoRL(9(n)~7C@zN>VD2pk#!Wmw)r>L4u&Et z4XO-*KJaBIX0Hc!g!IJ1&A@Ku!P=)`Nz341WpZu8;PIZ_uxWXHXH+iKG1L%-)wFJz zkXl|O3K|wtR712LmI=x}dgOeb^*+-caz>}fkvQ&9bb219vCjYj3m&PP>FL?Stsi_n z_(^1_razK}E-vKXyZ=aTJ5SRRt|#wd0VVC+rmh6oV2X2pZ!PiZP^^2zV(^z5Q_PgM z2Sc8bpuMF6E3kqfe1;K%aA*7V2+-w&G%KF80{b&-XG~<3R`i&{WNd%#(*Q83y|p%v z)EFfaA*)Cia8%Hp*=BATgH$1?FdIc90;K|G|ex?~q?u{+5@r zWE>#`b_FprAr&aO(M+HuY;Af7?*KViW-pAZH8KRi! zMUdZU_ys`Eq5Ef{Nq5<-1&SL8V|jg;{g||Fnhzh;?2b1T1KZs11JtqFB@wSPP{Qc`XzMb*`!Y`&Qa=5fjZ% zS=`$?v<~d$DEZPP^y-QXoLG@$S>Nm)dvB9TF_k3og{uhIb1*w6x#+_WVr0W@SxG*D zI6pc4W|Qk;r~Qm9gH1x_?8ShZFA|hxVvIAZ`x3|+jEMyzU|9<cTcsW2c?R-~8`ha8gV=8P(u|CJdX9Dk=6sYC zqorCu)wa$JSh<~u%$(nm4SiKmG$_}$w*TP#r;zuK?OR~ZcTamyE8i}bEgYW)WjrMH zzJ{p04*l;R>@YtA080vm`a}4*IRnJeNuTRACbbd~GS0Aor;Kj`ZS_8-3v57^FlrhK zH{-3jV;zAKLQDh$@AWUuF6=4 z*bU_VC5>iyc7H!ypoc&PnSyV7LTD8mQ~F2!f-)1pj2RpyJa416}}zLnJJ zG$Xoh)4tQh8HM7xjzsY%w}$qN8ETuT=&h7gv{IjT(=>erGvfgqiFqrzH zVEvk&9yJ=6-LO|i4C!=dri^)pi#zpU8V6rQV0|A2@L4*3*hVXsZ8-La`#y-mGMTXo z$SOv2gJf6#n1u;2ChO@5KW}JIgy5P-{sFm>Vn!AU#@HOVJhNv01S#YMbX1ke=J5y! z2nY(M_ZKE>VtV}kpJ(kj_0d-q zC6d@{)A1r9zO2=|kX*{w!qTMPV$^M*`kNsqr(?v z4r;_P`oUnpx~8Yp-9tF{H9vew9d_o6pMHDHrZrhG`C2%^l`fs#%kC9HMU6@{X5bG~ zx-YR!v{5(1&am z1?~yW-5}1yF1MH#=F#-3ep$$NTkX?F`EQF$7GAJM@Ask7sE~}<+;9Y#oZG9#33W=$ zYu8InnS*_K%S_?+g4ti^(m~Uhz?}5_)nc`{8Rs8vyFL;eP*fEw_>xTvo#D^Y)Y4(G zYZ@yTCjd!7n|WZ_tr){368Ss9Ox61Aud=^d)`}g@!rv zXr}y-5Mm7cHW8zY-NRi1*%WpI;7eI#>?GB}hU?#T!fykAqz)c(S-cw;e(j;^{{v!K zGgG3UHArTI-Ef~xcj&Hiesx0Udwomi>0YbE&{M>$xYIYB4$|RNrxx`-z0URmo3-sp zJsy~ytjzNXNFMe$qB6?$7s7wzha3MC2^xAqSx~AaPa7pgC31kz> z;&RL>26WcplBw9zrk`=-S1K~E2d-dyWgMej0;)KPX>HXCsX*$$SNOs61IxTBfuLP> zGvsQ@YLG5_&|^l)UY&;1F;2&GZ^IMu#kK$V=r=x1TmT#pQ$14YDMP=3yHH%*Y;MbfZxxuJk6&o}; z^q|hmS8H-{>>w_w#K9zX${2WS#l3>w&fCF8V+jHZR!+Riz|QjW*zETMn~hO<#l^4| zSd`&bU6YZ}i1NMpqSIoo_eSTH?~&m*RGuIy`kUn9BIOfOZsM?yU-pfE31 zbtm(+t{Cx10EV)Vj>O&{-rk??ADzHPqMDj(9;Ta&=EE0*ymR+C0ZpEcW=JpzV=Wr=dK1Oc@}TMT9N#S&?>8guB@nx ztiNNw*!==CO7SRQ3_j%h=@;8)C1in212zhVh^oijhd5D^(`_Z`qMX}CD$HBWqv2E-})|LYN?8l zj>J)w=#iskztz?Nm|5eEEQ6GQz~uxEl!Wgv^5+m=OAogCoaf1QcuH4@ZLB3tX$@&Z zVX|{=JYgPLt3pqGc})P!iSEA7?~63Jnkx7EL`;MC`Mj7P6_;WU8tPT?Nb$BrlwCq( zq5GHp-A%EBFK$=m9uk~jmF{#=irmOg-4k~!i`Od;l`|Q*2G1oQ9LHAXc_osVk?r4U z;R67eY^`;#h?~3|U;&vK$wGPx^O)31w6uM|GQU};r2-uuelbaYeo=nG7Fb6N@3O$8 z+3UdlG$;8;T%@Cxonw!K8P4pGqzSEL__3cI?6~Q1KV;Oyt1iyEw-10tA1u8k>^!&p z{n%7|rgnVG>eT$hgjb_dzmpbL9Z?coHM$l8acK)ktxcHsACI$IG!*;1p`Dje(-jl- zX<+NTCngge9UY}jR@!5n3v*H3dDG5$8UMBQt!6)|s$o-n#;^lU1s;VB_eCe)TPhb}&1E8J5E7m0Dl-#)a zIOAkZrS^_mUeP{!+z^K$dVC{eglb)uu=_X8OTKR?&&Vw!-9?BxtI>#MiNHdGDViU^ zG2`ndr%HZi6?^-Z9qN-g^ZI%)$-~ zh-Q$p`psw}UxW@Y#|*aSW!GntMTQgi^z zI281&&m9b;eXLr)68KPnN1;-PXHRqdY^@V36GVo*ZQXEc(PS@xj1LOfNApUDM+(GG zytOZ=73!f6LvaiddViI`yKa*k1cET}U3e%IV%5$J9*-JE$af@DX(NJKy=Iw;P}GAt3rXEB&A!!mIOs>V`j=6>ge&v z&(EEM@eESH5LptbT!1XmPqEzxD zQ%WsXWF!-_d_uqWOCmEv4^2Z&Lz%TO6q-;a64{*B@R{(d#nG&QgPayA&&%C|I;W;d z*ax7w!A$#FF?8m*r)MU!+UcLc9aA1K=I)tzX5Ok)Wm)jtuWV>$wP9bh)l@ZA-Rk z^6i{Ra@5B@JF}NWYCrip6K$Oq`vn9LMN@|_8M`)%8x9Ml2V;OW4e3^l5`u!C%1`Ew z7Ee@}D3M7O>;;7(sqAkSp#||b7LTIhzU5$0sU{~@(&|mmj?`tIT1<3K)3EE)u3F&3 zNvr$r(7Ywv>Ec48#kdGyWJFc_K!;B>T>(wzyF#JUB1I;-qy7F6nazv%Ira)kEpT$9 zpU^Y>T!~MPL29s~j*i5GSr;lgI`^f%o11p1lUGda6-2bi$HT%uxOY|P5YGcWBzeAFXLxo8U(c%m10A>8JDf79V{ z;0#~NeT*=JL!_eKY*y)42dxznSUiOw99LdQo%mgOS$+G5DkZp*!XWjZ13n}^C1C%O zio5mHswyqu4CInL(9P|?UiYbCPcFiYoLYoe+iF%e zP0+qrkQS^YXJ__cT9ehRRIfVhuvjZ%RrDMi5OB*LRPVZZgo47{H->i-Hh^gIDyqnT zu_r-PLWJu7NO_Fcq0d_8(+yd-g{S%MVXNON%r@vTXtfE}>v_Bc`536YEDo$?J*6bHOpXa;`M%Cun3L{8XWK|D*Ni<&> zxcKK!<<2yq-J?Ku-~*UXLXatxL{?cX=Gxt90eV#KB6&+jLvw&n>l^5AVK>=BQ%+@4 z=jqtuZ!4XR2jdg!6 z_$@61l0Wss9{dAmE=nXMGMB@S^`M)yVu9xV7ML2;64$=1-_g33n~uf2cQN{{EFB!Y z+_d1|xTPSjov|}1SAL#tJ7Q{2N4vZ20SMRYn3srZIo6MHdVkpsod2>L9GwU?bxS~J zQ8N1E70Vu$fbWB&%A?V+YeyuK+xxPEp08n!c|1FF<(nc(JBS%f#Se~G5Xj8tdR`Mt zCDWBY-`~){D*e*3RufpL&BM>X?sL_s$DVqgu3WnLc42XbM&iz}F>l;sRH{+$2LVe@ z4@QLi2y#4$ZYz&ogP3YRO0{b2hr-dlWnW&sb-Szs$sk)kSG2X%i_fW>O9rDeo7KDIPrz_D#H4s=jr zCh+hAtG%39bZ){y`qV%HU}Wr#53!m) zNOZPy&$iRj@`D)i0c8i~8=}UmT65u3ZE~LzxwZ@TkdjjFA6TTGwpjmuafZ_mA;lpiV=M0> zI-NE;x_w?#&i@oT2{!VKP?Nk}gG=S~*A`C308eXjZ=wk{v~uqe#Z31%YEKC}(?R!9 zLAn*w$Bh^3WM+4sqRIW+HXMVV%lbN`s~tywvn*AE{~f3*45)LB)@t$yHTfc;sPmkb zIP|}YCMLtfG%41IEy^Bz(!3cG9{zkb<~wh{m5qBDH+A)ZXV!MnHQqrTR#$B7iarNJ zVRWx%fn~ttq@`?MPPvMS$w7=zxU!OxJV!=kcLE|RrJ`{~aBT5$uYYQ$7xh3tK?EcO zZKBcht=MX;FUoyeJ{Wj*#pJasf~*!*yJA-SM&qpcI1!7Ky2JF+RGv0{r~uGN=wzkV z)mBb!^3PP{&h&8;tR+Y9+uO|pUnqHjseIv_Q13onjIT^b>>ZkR+NygTm)iR7LnlBsL%_hS6`Vy+;hRlY`Ij> z#t`tMp`r8pJYv8CKEjscuo*Ha7uk|0EaM)mgrp=Sc`vKt9vv(%`?Vrq#{okZB`2pg z|1jSFTk!!6M;&O}9Eo65eMzepcJgw=p7Beh6W9cC4rch;(<8+AVW<`>#IUqS*@!P) z2EYImNQnd@Qberaq9RWKPfu;FyTr$*2z7J5cu&Vv4&-)yfoA|9iP0w%6U!pV`f-Y# z06O64NJ1J2h&=+nKnNK$cx$~c%6sjft!Q1V%Q;N5URIbCdDAB+Mfj~JvA>p=iB?Jc zd`vzg!w^Y9k^Q+6LHsLD_8jD3eU2*ky_96dE-heaWTx;5HazH!Tjo z*@IWdOw0HZh^6~Wrh%p~1{tgx48rYcLXIHTIo14*sZQ8pZrk8PhD;m|C zP^|qHO_H#-&VwEFTnZuM+%vb(g&?xk(FT4cLX;Afz8B$}im{FsdMvRiO(v2Zvi^yV zuBuZ4G7*D;v|t}7Znha8P?;oH!IVu>>#Er^H5Nos3qUTP?mr)(IZhelk95`Z| z9CHhkovA*|7CVXQO?dHQr*@{L#fX_XLN)s}QB0Tbtkd4EzHKxTaPSj>G;7d22j@^j zEjrlcV;BJif`D?+{r;bVZfMGx7A8g0)#>VYM1z`;0bRF;;(_9%H!J;#7y)h02G?iA z7}&S-R%{mo4r+0+S8>rfh%NG9aur@JbQkyZXV&Ymeuv!*-Wk=uzWUVpbOir-}O+ z*$!*TTj#eOr2%VWTUw&X_Ide2{(h1FO-mek@q_*}`5cL!QUy^R4GckG3nkVKz`UGH8sSxBh+X2qEA<0f6;c24& zmw!2jMsSwnM?1J+%-I0ss-4#SPY-xlyP*LaWP`Y=lNG}QB*@HCG!(btip#;TNof~3*8_+VfH#%O zgq;|lPHy0*zAGpfko$Y9D$+CZ|CzP=_tpPUWgmmCkHtpHOGQbZ4E=K5oZH-f>c#lh zlx?t)8CS-z#{?VV9592cbFjrmOM1L^;Ck@;IO6wfs-O2Qd!KZAMcQr z{`2tfa}K+NcA|e@LOjRGcv<=PUH`n5q3bgf7RP@c{y)65evB0$xyp;lU=!lq`hs9* zVz0z&yRB{et!oC_+PuNw=W2SWjSTA92a~amTw;V|Ew*Z=Rfu6_2&c5BE*a_0eR<$I zE%8W6O=EI}#d|3_kbjQJ_b~quw1AK>zh~KJ@mgPd+A8*KO0Y(k}p@_uD*)be{cB{%$M4xg$RtD8^ku4Zt zum(k<5<3}pdvS6Eb85$4Ea!#Gjus`JuIKDPhXd`mw7F&TA`~3mqI7XXq9Kv3XohT) z3kj=XQTRNzRrPin+oEqP_x8sW8ff+Oj+msYkUmuxadG3qc6iU5nT!jXSP}MoHx!4X z*sb18Je>w;#*jW1VQEPMZymvcru*-aFZTA1b`=ib@)3Kz?wYDGEy%pSmI>SX>k12e zy)Mf)%txQtXi7g6SGjU$e#8Qh_f@B!CP3_aH2~kiBU5$LUk*lm$=?8ajOD$+inT(5 zMVjvb(%KEip3UD87C(TsZX&0cdF2TljxRa(3`3?IMFdDB^vo7}+WCgP#9GdvpZoxO zj7+WLjWXN8s=TV}n_r0~<)eaJie9vF_+ojRKPGUc^P+k;=Z&9#t^$hZFu1%d%2Lmh zMIq1{%kVrP;sV&Ab+(>O%}ctYGsVA~5t`NIv@d}&WyfZI2L!*41UV!&*yMOwWKfWl zOqwyjeJu+5{yjb(3!zaIqPJzexUle>Crb!}H=4Pf6ITZ!Fl4$}l2h#Y(lYatWq_rq zNvitQi?itAuEf32-YP4`;%tgipOCN6nqn}oQF4w0UwAEw5}&CwNxq(r$>h??Mt8HN zphs0w=8#abMU@EpfW|;cV_J>K=6u4UfywmPQr6(~A5pPQidh|FcbZDy9$F(pMun!i z6i+v?LFtlaArc~I-I#vrtxHGL%?u=DLT z>_Jmg@&t;kTP&dD2}6gS=!-X6=N7S>cJejj*n%Yu*Th!ZiYUnWvQv=&%wM%L`1Fp3*8DMn5HaC7Yb?ju#1sRC|VHumF`q<2mCaWGM4#@?A`MP~u=)Xn}u>pj( zZ3b^y}NuK#tD?6n)9N_LlTJ%Pe9Vi|4i(WKZb^bJ+DUg%!jV<=@ z(7?1JJ3u>9Dlt}Si$(aqTmWAEetqPmI(>Fffv1Q^{`q^D<7}7+w?);`S$PY-)MK(c zn_swuV3%wcK=I)5ky!p2t$wS2=UCs^wdg`M7^;4myF7n(W63QfQ6iP*G%%?Ruye?kM<@Mv**Lu@f_Wy|f;GcWQ}Ejg0M}>A`Lebj3nW)<~@Ly{3aL3<~Z~Lr3oRKJA-Sle~Bee;>fMHS8Id zqH%Nn@g__Uy@qz;&jt5kKZaB@j0UiV{Kr_`^<$|ap-yAb`Wao&j=a}X#Ltk4h8T83 z4w;j7bvxFmC8yKXM&;ixfYdDEFd9yccuU)>x%mn0s~C9%UwVb+J+*ceRpXbL1(Fxl z&Sk#$LDSA*K1^uF!4a`2Wp~!It~)s>$@_~}kh+J7lcsWEQSr-5HzQrg=2w_sxdWfd zU1B;`gEq8mEo)8}*jM@V#i#rng=41!h+FXi)ARdQqCQC3z65z7h;@rs0dhqHB(Ucj z9_kpTU%(DsEXF3%ktFXLMlO6LLdqLpPSLKT$7DuvK~5FtT|CiO|Mnu0VMjrpCrRy^ zw$*kwGdIxD4@Mb0GtGl~^~%JI<@tO@BJGo^Myab_e?uwz(xi7kGgomOQkhFA{S3Km z*+koWS}HUGtxAa0&4Fzb=SO#jNX)#j?B1tO2R|Q)0F*W6Z`Z{D0ChdBX(|2s%_6+m z#L;Kb^Yw`{r!7cLCTPTZyM2|GsQCD=K2=$)VUX!QIfqrU^l+Xu;kQe3jc0rsVWEo@ zO*vV3+|WDrs&P^r-k~%x27KH=?Hp1pzPr0~=Y#&r!=B^I+E&ETAnWn%K}WCgaFPZD z|Ekodrh-<*w#%xmmbn#?M5mIiENBvcvn_SQLgue{8y5Max5rVOHdiE*(SkhO4|Z(Q z>Np>Kg74)yV*Adm$!fXUdx;gck#?s21rr!cw%W9#zL+m`#8ZQWyyd+d0lR+Ix!{q? z2JNm|m!ny(kjUxVpH|wyO7-6USx>q2LjGDuXErY8YF_(=zD};Ph~*1y>UJM-*qhKw z00x$Bg=zd?_kI5AvS3>Ah_)UxI9*7JJuI;Q`P+a&|H6Vn4fWMAZLQ3&%u6f}p^Ch( zTLMsIq+6OX6?u7TJn%CjgOQMWynYus&{y))Sz~X0^ri!#;N}D-7U{3(&Mr(~l8o#q z$~j2z=?>w?mC6Q99o-c22!{IXUYOTv8{AaCs!H=}CRc;E^lQ_^OXV(6@{7g#l@$n| zVyH@a2;mjn8a(X-l#BC0NDX3tUe`ud!zurcUlua;Ao= zZCU&(3Y!zf!983)hE9#CY^z<*FhYjh%UrxxNMPQ0!L?8GM-o-sR-+gqxJx>L$8P2$ zJ2+lChk0r%sHQpth;!w0|@cWb)1SPv$J@4j~S@X%q>Lc=ZJNmlIEW_tr9 zju7j0y*^o$swzWpzbvYfzyru%GzTsUnc%jw#%X_O%arTS@Nn>!um_%00t5@ z7@3&Kn4FGVq>AK+XRVwN#~+nd^`~m7FX20w%$FV1=$M ze$fHOQ+x9F%tF|_cHyqN8+IC%+;F};**C5wK{|d&-j|cS+sg};B4azD zm%9S9Wxo=enaRG!Jim`>Ml&@_RTRYrP@|az7N2Ordou))gM*sgC(W9V+tu)KX-9|` zDJsG#=#R`hh$@nrILzly7wM0l@_H-5 znG3memR!hkI|_TV&IXCx8L7{*$Z28nD2<+PhHW3=;djvyzhZI!NS*1gT8ceu@=U?$ z)9a4TgdP}jH&}a=Lq62n9&XW{?EAMGF}pKQrj|Q3SHHI0Is5ROzlrkEnJU%!R-Gdy zqv;E0zT{=!&!^j5Nh&oxFIut7r+~BL#nr3Ujhnf)hYl*_gA#+BGI@y_H8-2+J5QwW z_p{k9_wKN<<5aJp#gxk=J!~%VU#EY_ywrXJ^1{p-^UsJ+76f>XgIxSZ1GOA*1CBG} zS}lFHhaHUCB(wPCOx|#dO)VF9JS7T)y=MiLp1I>WQ7Au?-rh6|x~GAF?iw>5-uu?C z;p5?xVs8SiZ1*>V{HN~6osQ_dJ4>4CsBb4OT4J$ucP`fn`6)ly?f7|g02n%HoT{Xn zOXgF|Fwue3*TX@_lsD(=ngzrj?ec&~)+tPQEa~G`oU>wA^Xknad~qS6SL}=5(`hx; ztdJ=7ATi&nSLktI!_(B4LXP+9Tc(mB&2ESMoHhT#F#h;|Pf4ZJ67JKA73UT>mZ!BPG^uEZd z=&pe-=xCw)fbL<>3p=blZ@mM7j3_|_JuVJH&{|L0P6AFI=Xxb6TPpDZks=6A&&ktc zw>~4WLz~6J!HTTyoJP>E3O8@qwZ~EF%Y<|cy2l;~nE$mUU6Vs6D3f|N+megXlUl#_ z*WH&kIEKTlv9)7laFq7l>f>3AUsIOOAh%KL;l$Hj1^%+{0oY-tjCaya+P0{s=AfTb z%KOCc(X)R;=V$AKBY5>LTkG?VHd|HD)3MVc6n1rmz>w)a*qgYQ6>MI3 zN%-F)h~w+8V*}qGxS8FyIZ7{cVp2sb4`GweqNu z<}t57e%#r4x}{r%uSk`F?KAd}qcn<%nPWZNCF^`u{HCHUtLDm0Dhel*%3H3la=h-s z@c^+05_f(0=fLt!;f zmvpiGdNt{k;2j?^uhx68Urxm^81wg;edeKE-9^{&kISX?2esAH#ixZas3VlW)-#(d zr~U+Qu)_CGyvzO0a_;S}Sr7x|I{lpkn~4Xkh0ejz9)2xh)@8Mk>fHJeTX)~c+i`QV zi%6F?mBrYDlYir-IvUqH1~`qq7D-z5p5M|lc75o5Iv%a4|8#V|HJIaXp_KOFg+LSS z!}br4lgB?#&CZ=fdZqB3mDDSY**cwo&Ao!4tB5w^(1VA(+5Qj| zbRl_%P zer%))cN(BD*sP{n}~SXc2cZh0+ZI;ZC6Z~I=vaTr0%s!a|>k8_`navyq4%x>YM_tSc9 zAJx{3X0LvnXRz{K!SMY59G_Ge`@EZ~;m)ONyAEex@tohlZ-W(yJ#8$8tZsJ^Ss@QL z78l=E50-nMb%S$ukb-AkTfF6SbH@~afe2Sh^}O8O2{b@=MRb2C=y`MppCNlk&+q;tl;vvdtL|J`vn@tpXE)w_O*-~d{IPC7@`S??gPxtdu$ZYJ)}C6x3JQxsV-I^Mk}n%3&DX5 zAZogKsKJMoPGqxL<{^tQwW*pI}iXi&N z&fifXuhQhCaKDThA`hB#0&ZGapQGf!@SJ>F0HB0^D!v&*Mq=_HL}2mI&q~l|NF4s& zoCdJ^QL=L65Jew|S7p`5M<&}@hSV-|%BfPTF++Zna%7w>Pd>1D$Wv3bZohi}79giC zkR-hI%>dneJK?&xkbbz~3o>M?ktvl!h%CKa9vwP} z=TfekBs=(f2fhbv6P6fLE*$ zAnn8thWkU7Sf7}WxH53sJ|xUMwimR81&~z=YbQ|@;vpd?4o45ht#JWE!r8u*8LaWt zqOFo3Q=u}2e&?Xr7}I`Ro!R718XEpJ1g{_}ilbOh3yK+@N00z^zmom)Iq!RLR8g#s z+}12|Jqfv>>-$i3+@pGzE1<1tk%jcO@ga>AdxZypyWiBrST!K*J6I4=^To0J;-{u! zdb==P{E)VN-yO*)>z7q+0D_zoImJ5`aFdhfc6D~upPlX&z72+cctn5bP#H*h$DlZ1!xzQ1G#V0O}DDr&UoAE3TB2fsnLlqE+0sbbE{Z$yk< zL~dm@Co_Y%God}?`D3B)MFu6&0A1x+_dFbL zrU}D4rp7;iX&3I%ZX8dBxjJ<6;2tGGfhlEzJ%*Oi2tQa9MoUf#OK{Z;xn?+$Ke{Cg zrtHi>XivBhrX%^n_eeFV1SV~ZN~Xq}lWpwd}JLAY&=-QaRv80K*-pj81J`o%kh= z$52~O*g z{brt>;{*sx_0mauzSUBDjgre%cFPGXBpw>l$~v~x|qlulmn4QM2gQ?3q?wmJSeg|1C)JU%ci23eDK!F{<7_*;Ybx`wjp8K-b5A zF`SK!-XY-M>9=00!1V@;l_}?@N}G+3Kc9~Y7nx222|$QA%Jzg76ucOB87Zb`p&;hF zXfTccd&3d29e)h^f0}EA5{Sr3@({9u@+B34p5ER(xpdQp#PdK#(r>S-=h+;*h3|(sne~!qva?uJpr)1Fw@n z#I|z@yF!&YZKPT;SH^6QL@1|5M%H=~grp-81cM>W^0a6}2;M;C*K~k7t5tZ_`1@6E z5WmiuH?;=gcwgV&*ciS+TBUD1@wYp>x>f$|Rx&&;671#WUaewx9i6MwQ*-hgMf=$c z&*n>iFSVUl4#L;4Tyh$k@(P!R!|LH;ZG`;7*o6h+ulWyQM1)h6ks-PYD=l?+&?E%N zzm0Hf*pH9T^E)DuRw&G@CR*pSp9OM(SE0F0Y+NsZYcW^=5C@P*#IR{Z@l! zO>%GMdXMj}%=|7+9#@`@j*nTM<201)cjN^!W)9CFs82MKwQ(Vk8Rb8|RpH^=EMJ~` z>`_u5;(Vrm{>`>pC$LyVNXRgGm~gVM&)msrGX4b|b~x`ksp9g<#Kp>rCwZW7a{gzI zFN>aup4qBEuIF{oESjA@Ok@Zin5|TK+6qwT{n%m->fm zFA}A&`?=F~IXKkO=Ov+akce9Jt9j!b}(6pTn0<}4!bxg6e zfl#OMi4xNXIqIa`bL{V03*-mzjt~5XSuAj4oDdq{TubDr!OIIBD#(EM( zX*1@K(@^~{*4{EMiZ1*gUP3@51?dow?(SZ}o9^z0C8WDVU}+WU5|A#J?vRp@X6cqL z$)$Nl@B8;Wzt8{G|HZ=#`0O%sX6DSCYtFf@Z|oi)^GgE>ptI{%ZU(G(z~k|8+`QlQ zvqp)Q0yDj(*;C*Wi3NSb)&2~I_4Q7e-a10!cM5&SPBTo4XVcGwCvC!@O236Bv9kGm zg4Ml=Z1m#Y*yyH1U!RbT)*+Z6g9N47`9pT&I30!(BIp{{ZM(%v9hd8 zRut!>alK=bj>yM1PVHL^1yd^l=Q)DTt<9B{u>6hRJ7cR0%a^Q9PKxmq;)F514|kjo zG*qhXYnKiE8&UgJ9iIJ)oE`w1b0e<7mS=9?)VplIIYYoHzIVM$$9S)Iy}LUMPFA2L zAxVTP?d>hkq3gcn*}zm$R_f4LNyBIEqB>Kmz3;HU7a1AJ(c%bzLiD_K`y;S*0TkrH z>`8$88SQ9H*70}ZKexDv{@?06G)5X=Jw~%uQInHjw)*g-(N=>#C|El zI(7r`adAg;XQx{~1%aoQK5^Fq*66*$I+R>t0<);l0KnMe9t@LHQ-i~-I^|IkgKu{y zw6Q?L0E2qQ*!vl%+$7N6aKXatP2q&X?#lJjqx;U-vY~TR7?iW)P6Q0?CzvtuRxA-R zF`U6eeJE7cN98k)OpgL zqhL$XZ|}fje~34CauOht#ZJ_3X;R+YJTi{Moi(%me_Sj0oXl9j5W5qeUJ|UX@R}2W zU!y^WpOJ2`znA`L0E@S&vc-AHnxEfOfrj^eXmIa~8OB6X+UROsf@e8>Bm@bJNSy`{ z_9d@{EIPVwetv8aDrmTK_{2wyDuLV*^sPGf^t;$hS!HFMT$P(~RY?Gb|c5amlG1a*>2`8rPZ0C{DLV$<(6qg6|XW+ZS z68{STqge`-4in({H_VGIh$LBb1Rr0mQMI$CSoWB~@lwlK=Y#PH_%wptSv2VGM`hMR zotJat$>qn7T}}(xb@0W2vy3#~q2$Pz-tQCitb)$Xd$9f^PQueNoeINdj|IX)vHFS1qsp+uS_IcE~ zrm8p(-_+=E@As=P+<>A2>u~@WdG&kk9&!Jh+$kox{c0TmtseyKbRBQIO@kUe_mhE> zTJAt>PM5*&yQuH>mc=mwbs2bn zo?o5NjmO0OJq7nfRy5#DWH8jXgpRtxS|)c7v~^e1j5ST!2veJ?I&1^PI)b{BbWJas ziA{X=LeY=g?oJ`gZvCPSF2P&mh-FV;RCk=jxjgPI<+wQM-&J})a?YHA%!ZQXD?8Te zv4Jf zklug$k~wsm+U^)|$SNAMrb85NOH(d9bA?@O=fIHe2?OZF%4)mV5g~>5rZ_G^TU-DVt5|qgtxb zL)9sPtOv2+0?Oa!`IaHuxX(3iMZW?sF!4?1&t;u*HcW?HhxfD?zau!EXdl8_?cg! zv_QQz*^E~tpdNpOWh?46LN^%mRD}xjTWf>Tfsmwo4ds5&GRtc=Hh5}ZVKR{HJ6`Fi zDLYHu_X8fu_}&fkRm8c+ArMP%E_7?z41#vX+WV=4&6b*#GXzX7)?-G+09C8tldKMy z^^hzg;QpB>fKRM7?|xy}ATbxX?i1u#TUqG}OtKSy+RM+t;RN~+Y_6GU0WT^^4Yv54 z<2a%}vHi*FXX!;!(1)~CdpK6tug{wcl8VVtJR}n6(~z{ND4SLRTN{RF!{FpJBz$!O z7=8Aq_0>d8!cG6H!K_!1iVAuNbF-i=kMu14U@PXEZ*~lF+U*1AeS=@Vg1s&?zV6@<*tR0YV=^n8bDx#ujG*B4>ZB3k z=jY&qY_9ln=3cVUvIO@DsPlbb;hl98erv5Qr38);V(UlWlzd)8Z$k_E2It|WMMfsj zuZH?Xu%oMOn&o@RLveWV=MtZlWxj-xJ;nc6KUCUYYY|;?LK|}E{r_MA%=GjbXqC1Q_()hGy#we^34$Z-U-Qo8krdXNqji!dOoAhz zc-m93i7-8_g!n$LOrnb>Pq{XhJUY38b~D;*ar!uaB3fiEXb7~JOTm#&CDSUX9va0Y zqNQ>V&>sQ@@z(>s!8weZF;j2RZ&t1fP0Pz52S-Q6rKP@zmX(=t*Q<1h3-B&K%z4;d zp%!ipzCNvE)ipVNyz7$3rCvtCnlTOD2UZBd7rM(i16y+PkyXum5n4QxOP&XskH3?& zSZeGiw*dGr>+!=%{KoS+EgpcYqOa zjLIWRl)$!uukuQOfBW9yA;peF{QT}u`0%WDNa*;92*P=RnlJ(_J}&k$TzdE8ZAXSe z0Rz1FLw|sR$mYH`8Wpa-y)s|EuFD+q%^ezcogdA&fEu@kn6b=Ic*33|KpgEf4D zNk0ZtvEXgv2QXG-g#R^Hi-|FeBCUmga# zzAcVXRd_>#f*u60`3Ek~Dfk~OQDo7%wMm{GnvGL9&r0x3ap$1lKuNBG2B=rs+;0Vs z+irdOr9rb7gU=*yj+T;t=v61L$78Y)WA};`b#xS!)j%8_%iG(NKX!E$Q3rpy-D%e_ zi%JD0cv6T5-RZGuJ`v}1he7(`*s24!%ya>6n@cW=nc!?4SLLr9lu4 z+W#rA&DdPcLdw$7LQh_8o}r6&eiD_L3!w3M^2+c1+%z&R2TsJ-8L+g65$f$vk#XXslN0&T&$;F^@$ z{(@cMHZouqpdcJ5>yI4=eu`f()%iOY-7AiYnvIfL=xQ-Oavdi0r&3=FIaW0(7WbgV z9S(=7SHs6aSZN*yoe#R}+}>6m!{bLVOLU0Cr~5XPo6jc^_}aOAepj=sPl8`5(4k4M z5-Y+Q<-zdke99TmyO$X3pb%R3^`4L52DjSDnHiVvkP34&%Y)h3R1FmmD>~Z#P;{z* z+WN{$H$JeH`&H-1_bH3l6WJEI?}g||Pz!3en^hfs?MBI_EUX^9~lwhlNU32u;dhF=jh1iCuANQVBqH!ZNW2_)RO+_?^SDjj@(9N7ns*Ek0HXo21h1cR&7@b<)!B65Nh{y? zQ%tD@*4fGonlL@blXXXJ?UA!ZD<1a&dh$4K^+c6dpHfU+opL`^m6SBVO?)>mq<6O6 z>c%J2tytPFKgC_&*$EgPHXqIH7jyibRKU+g-NA3OzzlN-LPv}4v=%TelA{&Rxy^m& zmcvV?l&_!XYiwuoaZ{3~YTok z+W`gvH3>C|Va$Dvw7Kp& zqqhY28n~EQGXHK?532RLLH9qsu2fDjrWD;2{t9ny*`M72colQDfE=M~_j>P;y+UyD zPKIrEP+ozrr|!12r2=Q`U2mgdgU3?!$M$wvbezW%>PKz=+x6@7FsYt#7z~~IsuVCq zPP;V`nG!yj;$x3T7$+_$4o5bld9|GnUXU+%QIOt^rPL#LPHg$mrtOom6ljp5fiwgE z*_-X#`yEAm>ETVaY1+ROY`;i0G@Tin^>7e~OiP*oH2UXYvQ>r+aL+b9 zHm{wr+9Dkf1li?`DBE#L9D}bUv)dHO{2S8w(20@B;|1-Qm0an z8nrhO1sU?weH7uczhhyoJ5>*#;UCTHlzF+%DS5t>aDRf18Fbv8(3#~D*xhp|#B0m5 zn_}YkwItWv!-I<|p~|T4;PBYT5-%d3jt-c$)c`A0(z=bW#t|n31I^8^E7&=`;syF9 zfBw9nr0nnOj|>Bm?M<|s9>}wWZ+*Jh=V`dge7%R8{V>mZPpYZ(YCRMQRPT{4 zXq-l~V){c{*OOw`LmWYY9cbay=y$Q#dsvodR_k?n5IV%k`U(ee_$5EQ7u|8t(qfaP z1M({xSb2N_@>aJ#ENNuqq{uI&NQQ1%b=X=C>j62tn*zrEo6XoMq!1-Ms`&>0q3)HY(^5!ZfB!AIT>1jMu7Q0S2AR=Z$}I$W1rWp- zzunjx!@coGo8%`|e1q!fXcp!phJ*pNtEf=y=4G5XvCy7Ueq(<;2EYCG2xev~;9*9~ zPA5$edHck?@#@n}a&KKn;DL-#7^vjsMLMVzi_u;*w|$2c60HeNJE@FbL!l$(H3 zawuzk#KM-bXMB9Tn0%|J$|my@G@yfT+%XRhiNn5Ev$yIi_NV3ThA8s-Y9CqV1UpkG zuyW|XC+lm*G>%jS)UlcuD^4lQZ9o==L6%vd2>Cmpj_SM|;7ObPHL>MhIKIZ^xPJU& zt_K6F;Kh2Y8AHEo&DsOQNmUVoF}v-NS3 zLm)YYR8nI6-4f;_mR;Ps`?rkXN;XNLheeUVn2|nDxy|RD1l42PO8B+6x0g=DX<}Z1 z1gZd1TyI1Y%PJuDc6M1O(WvtnDI(^nU7Uo!453}di=Y7;*O2V8o zGFDbz%6qLSHZ!p40Qypw>*Z^hxNip zL8*WTG&VLiG2iTw=l=8ke0rcVcFdi|^4aq!y+q{xn3j2U(AY$)-O2iTZ;xdS%i)s3sSA`XCAe2k{0{m<&glFoWfU&hlsRG2g<;uiEN* z3V~f#TKarIOIy2A4)ao@mj|s3rdBNz?OhrsMr)p)TtwU|k;9yAEaX z3nl{X?U5yOngW*ybQKza`AlNq4MeYn_pC=n6v8iiS!21)@nRD;%iKNVu$8Y*TqE=> zWfdVq>y_=fERr5ftB!4(GW8;mJCHte0sHfiwH@W1C?_)k-{KM{g_*k7PYUXE9qe|f zJxPn31&Zo;5_b>mh(ICm%PsmLqB=HUaQqNSTVLKNa1?2BRHswI^6%?ZQn0V^#6x8~ z&ajpEG;_cpxXtHsq_Xn+^oOs*Jb8E(KcCGAn*xK=a7+{E!<$|LZCEF+s^|v9dv9c6 zY;1P9oh?a0c_^!?($Lu0@bp=U$E7V^DjsjTNMTp)uTzSZ93Gn$tY>LAy8jseNg7)` z*pQ&Gl66I<`HXN&=Lyz82Q7JCi+{^A1g=Arz;@Tj#ykD6q2{)LnDI4Wph7&oo|K@`YijkST(Hl?hSa;iOn=QDe{D4 zRKY3@L+ku@aDg@nIjxTCg)(ZVQV}7!#%6D#-3v|P7fYEb{WmmQn$8l84z?z*r4xH8 zmiFYPNnfzIH>I+N8B(3vpKkH6)D~wK-$^`IW%H{4Xoy8-IcW_64&zSB)rcU5{bk-A*Q2oe-IShPpnWxJRyWj6 z(j#S%D=Tx{1*>=0o@1*LX%{5h8qQd~)`=FF_hg7!(AfhN>W9U0R3ww|0GDocLXOU< zu5T(?);!Rtn~Vy5jw{?pk)bthg|Bzrz7$+pgO+AlwWho^8aJ6<=>OJJ*JaMr`)5)& zYbr)Yu=~F^m5JoP8S$HaRzxw<60SigsftK`Rxmu8{zTh%yVirVxl}ZUC}@tY*o);) zDi2VxWJKw~{F~PM^9%aqe@cXZlWZ2!|D{9!Zu?$ujH4VC{++rG{2#*&_&U>?SmzHT z&Ln@AdXo9y?eHwt{*V1$h0_1`FQ8o_zJLCfBK{uYe;+cFidN-XDOa;Y*!srz@zjGg z=*3y)i4yTcBz;y3duN(X$aXRG6h}!vK2P zg}*JMReILJyiwzZ-me5gr3j>Yv-u2flmtshLeOf@lmsJ$^h!xW{ryuUlKg9=e9lgq&Lak(9qP1**+rSL{Tbsb{5+WwjnvZ5?v7^ zr*$Y$6-`5axz(v*HlPz79U?31aKz8egbIl&&g9U-1kEl`J~F_0A6^6yNZKza{_J(=^GF0gc&}V^^?HbMi$bzxz-tVVYSWbBt5|*03DWXIf?zPC(JEuH!4qU@u;S|3U3g+I|&&%x!P()$XZtt~< zcyX~Ce0QnXhC+vOtznRFJ=nAt$>|~1m>-$86)%HCgc9tb)sl@ihO`|v(a7<=vio(M z$4;;K!+H*#@JW0{cG?$s2}(FGvd4e-u+sX-(Le#Q8fa_UpOO?C}X077urZ3@`dx z*qUK%v#mFNzkhNwKb}{nxM_q}GY-SwXIJb~4C2~Yl0e~dV<^^tTo=Jaip~|DAI15}t0-(bIGInGk4`P|tC552y(|(FYJ}X(y#j7ge}L%ZR-Q(e z9gVd@vj$oA`qH(~-7ns~^9rKzTpHlNRP8M?U{72XN8dZv3IkppuI`+XGfZjI3ODo||LgvZtH@8(58@$UG z*RViHXbL7Pb|qR^!8kn0>+6jFRTgz$q;M|9|+B_wAeF_D~M^%A< z@@~nbtJ&kx!$bSY39LQWq*`EQ^AT&iqB+R3ZupHVpXgC==}{YmG5ekwz4O`v`|p-WA=$m0G}jb z2pKtZMR50o;KOBwYVcz(Wdg-;Jv~zA%~WGv(5Cf}mqcB#?)DG=6z!#^(mqWG#EH1S z%T*hz$)inpZeoQos zd@D2>By?76u0V4(rnl?Vz)n4MyL3+n;-Z?xj^oeqd33_o{-&OZ zaahl$*TM8t?2;5;K`4#p{u1k>))|~z@{UbQ(kPy~G7|)SaU0RWB|{^jIz-MCo%7)~ z13}DXAzP2F_Y=J<%WXHa#hA!$T0&IyHXFL^RlfE6K7qreOd6l}{f_ya%80dBu9n(Z zWpb3wpa!LuC8_>-T=8}l^y&9WQXF$Vd3)&}Wtf?^WcMAkGveYRxCKHb@45I>T)W8) zYJyKL71?=dnchEeKe`)6q9uCz*HfR9RTC^kU=)9AuwA924zT5+x{Z^(>94Qf3MIH+ zx$SfkbTTMSvOtqki$3=KwNn)QR;q*>5;kK}DwApYAK*(!Fwgtl4>H-l%r5cRRKQj| z_pzf*6uWxk2aar@ijDSC1>!|qAYEe!s?>9%h+BaeTfPlg>pyF-Zk${FwcofM)F$7( zTB-d;gV_wt=aOGkcheZwe}(Z)yrCPx66Q@0r@*nr`1DfBLY{Ny;?fIISIRT$E4jD4 z&_E2r#*yOdI(stL7}%0rK3v|MRK#;;fNTSaY8;TIz)wQJa07DsC|yML*lcQd#KO8r4+UA-g{Q`I*~sAmJv8|G5YkXK8g3ruSdE17bK~(V0ker=8|4U7&gB_r z-WoOT5Nm;3WPD9a=;npDG}fX(oCI%T!C18oBx)yO>&3z=G+G9W`ks33o9Cce zE^c|>mM#MYZWs-h6pBI08LeIHQJ@g%hGshR zsR16pxW!aMj=g6;dZe(Z-hJOX`4uLT zwq;>{F*eSjdR4t={^rcV&X!U@2ayb6tgIvdl_0f`f#8{sWofnHz422lP^Xiqy~+_b z`Al&iq2^2Vu!@kGy9KnFq_GO*|TbHzT1ZFH6Q>hImcPzU1Ho9;q__WsiYT3iE zEyTHu{j;zk6SE97BOd9B$n*fX15i~A+k3-dvsh{H7Gz1AE)N!wS`OfuA+n%Xw3b-B zhCF>_h1e3`l4Kz4yyTWqdd!gNk8|rN%?U@Oe930Pu{h??8kCZutg=lR%s-U!z(; zd4@k>cYhPl#IL9pcnVTrw!~uT1@&NIed#j5jJ39~{P7$W95L%u-=+)bsXQaEPEPYF z*mbVpX3$coS}D_^;Uy;^A$YD|O+*sM4^O=eA>rlLXOPhvHY?|6aD-#5>dZ!^LCg8o zwWkcoEz9dDw6QGJjN4{t!uT0V$JMXp`2X4eRu{9wh)+s@9Ks#(W42f*HH|bRifx_$ zMxgSS{$~TwtLi?oNv|ImomhX0op@a^Lb(?~_eA)isi4l;4^X7e)G>qT%idw>RXPxX zJPn}@5B$BkUF<)vJPaoqT}hPG<=i%A>_iC<=?lk5$jQ1plQCv=!uA2rL{FQ=0O;VS zIym@NMv4Iwo74j8kVwxU7v4!hqBzX@6q1aJA8!7m6K-;G7tRF!;ppT+$<;?voea&N zOb3d$fLVzJB#m5`k-?^L%f6cBSL>;Uw1>SE7?pts6sHO49>n9$#g+|IkY_B>=kI~o)l?s4S&)4p`@@2sbueAG&=Lz-oPXO#8d~2Y*)?lXJ*{* z&BZfvCgVfN|QCRmvKX7uqH$PnO ztr=20I|1tst8XZ7%48YD2v=%WW<-g>n8~_(Z1gNEJ|Xs}xv=WU%d|@^i8&(#YEg@| zoP{NW>?htM@oJY|Zw{9iDDzL}3B^)Rm0ehH)c9Oa_|CW{r=)<)7z~w%Ur<(nq?j{D zwX&L@uq5&mq-nrXX~>cJEj)&X6nS|!%t?AI|LLH@LkHRP~N)5$3dF7Cb?!BTZGCw56^T+?(;qe1vIIi^Q%Mv{j}EyIe>ly@Sn zFhE;{RiGz_OI>@R)b6c1HBDROT2ejWU$>r8ij-Yd#qcUq)_YEq@lKREkRRWaXswl6oR<{`=!97BTb?~@~oua@qe%Y=>g{U zuJ$ay_kV7@CWrvXV)San2Y@%Wp2ftM31S(T(S6>_6!&-V1@NYQ962akZtQRRG8M$N z$XJsU1TuDalxU?S8Ujx4(j4jxSakjTBJ$XIH0_YV+H6Eb#KcO|gvrDT1r{V^0P}!`)+VpinlUuG)3F_G{X?@rFdMtYw%+s(8FE^uXwsR+y zp?a8=k^gLP(vKia&t9TLdD<-rs&<=1fzRl{k}^QRja+$TF9-UNZSay7MTNeWKa7%N zOJVvM0q};gZ-`%1X z8%XLUT4|U+ z9}{RSM6o_~@943+q2J_o%@=x>;*}HTw^$6eV*`C)Pve5fSbFg1jE;UK25iNmWFU~@ zmuc&3_*n1aYCeZjqN{g@$GF3NoC(eC^VO7sSqeB!#Q3Z8 zE$tR)WV82?32Gv~TZCdGo!c(o<}6#~O=saCsbpp}io!lCdAxpo{dhOtbJRWB8n}L8 z7m9*@IsM}T@=XsQ$-#?N>NB z;?g13A)dI7Th~dPng$7E^Vz}1*%kz|!LQ(%uh(&k4y|yQy;;E@$ zJE|*p?QVO66-=iY)}*1Fcp)o4b;lcaf{cS95(RqWmeJU<0RX;JHYjQsutNhns1^b^sE|r2EsfNokP208d@E)ylTxs+SnFO8vMI{7Hc!ElOZ7 zy)-G2wMf|c;b;174m7*3mQ%X0~4+GSPWMol(ldsokY~pVg z1mcmUX~_E^m+kj&3qqkkIxqLyI-z+?b`Wf}Vk~_ys#L+}I>8E6B9>w6Gldc(2A8Nx za-){rR9`ErU*s!Sd)^(l7scCK3iEhz+?#IVRH{K9PoGoUj)!ZBitJ?t<`ZidXiXhw zq~_zy&+eQBRqXT9vV_Cym*QR`%bc6-8nnoMHT0bOi(IC3cCuV1;pO7G8lKF#Y;Dw- zp^_=Cp4*(e-n=h7pJPn$LSW%~#SPmyxCHJmEwvydFLx$eybqV&4olKzi{C!nC7r2K zh^AJ}`u&(Iy&fjO#lk)ZPhN6Ku^rv7UU&zsrO`=V?H0H#efH{kAr)*p!!y?z`C(X! zdr>j=Q_=o&eW? zE&r;v7WsYH7d&?@*vP>9$RBA&C380{;`d`qs$v1A1!`ALSLPEj)3O$Q4*dRCzk%w% z|5WpuzdHH{Km-CZDscw5IsOAaJL7#M4MNPG5WjnAcN{7Ww;I~Dl#jPfPVp9NL|pe% zQyeMNSk!ABE1!$QCMONr1bu%6t11`1JMHPYTI-I?34XX%DEKs@Y)m0}yK&sn4p|9A zQ2Tzru+S}gijn%0z1{sL%QolQqfU>7@Zs)8(G2uroMeN>HzqZtC@h}{IydBeJnIPU4{MZ#2iHEEMNm{wR zUs*u($O^UdaqC}w=S@IdzIy0K6iPn!-2e8U&I&VN^&p&))u>!5dt{#Z^t4xV&x^Pzo#dU3em-4w4`L6k_j943EM7IEZ( z-|bi~lH%kcY`JU&D&yYBoWJYQ5R45SFQxQ8B$p5(iTkP*pWZV!D&c;frRB)>gVN8+ zR9^KH)bgo|gJV15&11oyo^S1HbG9lTHe;JwvpcZD}HY2_eiNNaFnnX|seQEKR5I>uWZ}WC(+4d0=FWAF#_sA;> zgDPCR)x@aNA#^UHS;BEC7rhbj%Uo}5qS3d7iP4Ca+mw=TF(X4fq%oQ&^33Du*u^DY4C3=~XQ=;3vjOE{o6$ww(_6o0=ehhpL?W5R0fC)3nVzXs zv>k(rCqTGNhNed437Zsizk}vo98PcTOIO!(kK%BF^w#aris9lqd`?*8kSI3p1_O!3 z)Vpv{EIlL&BNh7QqtkGStX00Soj}gBal%(hV5Q_@VNWf-j8EZPwercSdA=1;(mXjj z!3L>5Fs~kdjS~Y2pv(v*3vTm6{#*whCsgxN#(iRgM!S$2$z%{cFHes2u?`jf$q5_m zz$!vZD_h}BLNhpT_nDse!{!dKkc~2!eEGWf#Wb2lVR7vX6hX4&;gGV0W-!<)t@z$) zA#=|!q%Ac$a2yCS3sQSS=%tr3zwcqQh^yQ;v<8Cr|=pEf>x_!KB=`;Jepb}ab}DNO{wctKv{ z2Nb|B%NKt;FiWiAjpNElVrWF6(oWrX8tjX3@IDT(N?vbrN+QsM@7e&Tf)hd2?E68^ zc0#g!5fQAo2~521m#-`;#>eONPK_A(lG9$4HWe(ERdw(R3wO96>PN+He^-9&no$k- z@H3_3_jkIOx$mmW!iZjCYVw196GIyOlw@~Fao-0;PVvg5)39%JNhBFchIxt9u@VW`-d1~c@wN?8}Z zs0XZmIEfk_+8p2b>H81iBnh_dk~{e?pU+p%VF!KRPFm8iEy0s9GR8|6T$Tufwi#!k zUmpA17Zn-Jc-FQfRx2g_t}nJFJb%rup*&M;qHguQ8Am@p+kY^=^)jN!lBf-qw;MJr z;xJI8900SBG8TsUdk+t@>*p<3#^Z7*Z$8^(q!tc1Xh&Iy@Z*dd&Ac=7_|h>H<4bMS z>UJDzOj&XjfvX~-8FhO!?;hk)s#a-J-HYN6aH4LI)^vk65*}893vsFE2~gM4wJ9pR zoc5`6(npg@mj)Wa_J7icuK89z@BXF{;RSUPfhU8U4}*`omGGR~f?$D`)N4aPq8Sa{ z?_s>-;pe8KdH-e5X0hpQMU{Rv0L!JBlf0^-{z~i)_>idZ;Ik%|K3;p9jt~tVo02@H zJYIUMWRd!B^rQ(ci#L4x%&J|AF}08+66m@v?~>In#C?{SxZNzGSz?uEfGFb+UQl!4 zX&-O&kJ!B)&S^dEqi(;O&j~y(f;A!*SMIhoYhqm5yw|$W0q$Wz<-`g>T^Zt-qTR!H z!u6M;z~5`>uJ^$Go3eze3iVIBba=19(2ud-t)}%Kk6L4@N(8J}${z>qgoa7m)ni{C zF7fk>EeKDoh>k6I&MZ^*r3$VH*FbK+$XK(B`<;)ut5Q%>W+3(49?jhvKJIUt-h|uc z1f4(V4euYkIhqq*oS8ZMdHi^w8+?z5r&{hG&QGlAKUy&5(5~BXJU;|<3k*uY!>qbx zrVj_236xFGKw>k>J(k^JOa9(i=;n=U(PVF}8mqR@1+QaX|2hAYftTX{CSdD1EQb^O zaSb7eqs7bBK=g>n+m;p$tCAMhO{dn;H+W$_j@@-ob2l&7 z?H@1aup{XIA|#A5&VfAg;;Y%q3SA(P>-?Nx9{qUXG5E2qLyTMeadT9RduryMHF*Cl z`TF=SiC8WIn1&pjG@Vay2Jbd?Jsc5di`9P^z&%Gu_&j#`;~u4_8(T&A*?rDWSZ;XC zZd({NPQP2^#XTe;t%XOJ`@BWe=eAeEqUQSJm)u9YmM90VDnEwiBdAD7j~40z?Ht`I z4bJk9zsCD1z1DOvuqgOlvJn|&=hL|2o@M%|`#AH%%tf9B=Dj@@RkL9$R|MHqIMcjZ(fD`g=oM$Y4YfAAUVNgcyV=ByOXMt6sT+N3Dn%l za%g_)G+ZPQ$@?kUaJP$FmsZ4jBJQP!*ZJ}Scf*J4+u*aBQHh{eYt7*r;Yg1YX9)+3 z@T$7@<4W<)^3OL@F#p)PTv!mESK)KxEN0r~$FXch%Nku9A~t<9DaW8(=6BqeKg4fw zs6|%oUIb!a0R9P|xozw~X}*Z;!{Don4rsqcY)FVgZXIf;!ESC>HfQiY(3<1N1wUIZ-F z|88d~UI$!`hx8#;*$z(~0%(TPTEIJ@Ts&hfmfuWU447--&ujAeX~`^8LjmD=yQ6vB zcRFMgAsuHk5|eiimS|`oR8*Un3?M9ezdt<)#eI$ZuXutt1~|4~Yz23VsD@vXaewKEpQOGs5GP$ylH1L9$=Q_JGKDYfyZ#W~vG`@E+`zStK z$yrzzOSUF(A!K{+T!RDSd!Q&_)CPmMgF<|#$6V34w#evEtuvec1UHFS|5N4>PW5Fr zyt*lK@$#gXNAs7wJ#a;L6;62^H>4i^nsRwW(GK+fS^gyBXgp;*1VJZ%EaAR3xO=v7 z>xC`(Sdw2n^>{b$Epaw{B2V3nC@SI@;bil#Tv(b3JU!UCvhs6uJL+YO7k}*G9`#f+ z&sDPtIU1QtC;68|P<9%5bPbX*aNt0vyUD1l~BBQFcYE-n)HMuWz0wWA~KT{v<2CR-{qqNj#Nr=`%7FO3<5I9)pS3y3A zhpYsOHgXaryn|(dF(4EkHNg^#IK{nw9ceWAS^KRGL|nXz7Nu* z@!Icixow^9r7XsukVkWbhxH|C?@iy(G#UOEofE58jSI?(sK%qnAiU+aVB2Y2w*rMG z9cogbff07wX99dnlqGh9UZ};lNGun?lZ$jVP?K{1vXM)m#^H`8GLc3 z3W!mtnaa~j@Juy0eM5vZ#=nT(JnX&)Mu2DpZ_M0!d{=vJX!csya#J{9n$`cqtm^5{ z7*)y73a>t$%mT}IW22E{vLnfFwzrjsvPsRVVD1@psMVn?E=6Xh{%ixpXXWT{IK-y~ z*YHm)^A`F4hJi5ESvt;0N@0IbMDPr019P)l1sB5nqBFH5?K5aiyeRIDC{rKFiZ7+ z#yX)5&bx0H5JEGc4)$$av`^1czy}*-ZkI<4_~DTsFPJ$&qf^7UQ2#6rpb62#{~Hij z&-dR6|Ao~-*_Hom^iMb9Stus{r6&K`5%@ei@n4{(kudq~#VGY>6Kekd_J=0WwJ$yW zvt5t8{Qp%We;fV3JpR>HR*>uqx7p8j7Mq`p5psDoIC z@9-(k(fk{?RLC#b73TZDDjiuZUe;W=8Pm5ihkLr0(N+1w)--13N~WZMnB+WS^Lxv2 zYa_&Elphpa$+mp6=}y-l33<53IALe0Mhh-&uE*In^^WQ32V zC$jTEgk{S&%4b;5zeTfVlbegHvYins;g^p{O+ykJjq(NH==ceYX}isa7ptr9Lei(yYA zdCdh5%j^tj%Smd(mSx6MJY9)ov6&O2epicl0!9EQ{~4}eelDF)dDv&%KYd89ZeXv= zS`pHvjpse4z2o2kOpz_2Unu2;D4hPyf zY~I#J`-`kGD`H^4^R^x2_aOmLIZ-IwvsMEN>I4~-G!`Xt>oO}f&Z{^4>S~=Bj1qR% zN>-^srV+{B=rgJ&pOy-bFWZP$XtaAuD6_~UpZgwP!VhEB!NU^gWgfC!rtB)yxzQ7V zBN+ln+gQdc_>jGj8{!Vh?^K6ov~dHZ?WBHT0fSrOdw^cL}O76T(1|H}N&?Oj?Ju-8s_o!`+42t&usv6_7aKI}!^OPlGCVbHJvtJXMU9da!wZhugL z7K!kk4$HixptHTsVcQ{;jME?nT;kMLqP1ayxFX)X7x@}2BBgNisss`Ha0Ax58#LsMfAqZV)T6%iG5Pbm zdkB4VHrG<10p+26DNZGP$+w^8FqJG92T6W&?p*tl_TBtT|AmsI(ke1hwV&luVBOvN zQ7%*vph*5MDMQp*t9{x(iY0i%N_u*DVJoeWytn!CUe4KapbNa z|9bg<)Z*gG#Yb!uKG+#!p)Ujpj39PeSAmbA>dfI}WQcM@0mra0vEFpgFZwt?0f~|S zCjbur@zL46lF@56q10xNuT{;o(pm!mDr}yf*f=+_@m^~c-o#B2Do_fwTDg2|A~DUf z*|LRm!*0ou-1huwzt~>;P4O``)RXw&!sLJX-{0=(N)pi)zF=+%%oKgJwZBIMt@|Y+ zV&;WRE>lhPzJDPWi>+_bt>-vSu9*EFzx^Lv*S&rs5UsV7XWp7h7Ch}BqHoN_?9{Ti zFt5vnLcU(FRVtO}zBV=Nop|;1l`}K7ay>niC^Z3cnqn?HPeVJY9=;YDvIdk6pY zyFYvH?3m-|RS8EROYH})6`mcPnqHikok>^&rd9eb(@{b55?7+^R-O4tN@mav1R||(aYzVXdykbxKu49I-rs+JLOWP)^F`A zla-R1sVoImpG;*Da3zb}lrwd1wpyrNBZj2_0(%2JPI_ECn=b$E8xws=m!iI9#0wQ# zSPBB)zuIm>O90T@8GHZ2q_MVI3jndh)3Zy(-~9Spskny-g|a^}zZARKjdZWeox8N~ zlRtYq)t#&sYV%`DZb~DfH=s|va%%LwD;w89#Po&P-w&z@M-c-e)D2CPZA`B1A1wrM z6uduO`cJQ1=$XpZs)mUeA?DzfT=1jwOGq|X_Jfd_fh~Xg^!$k{`Mzv52rXFh6keLI zd9Ging~V*_wJtYK+{sO5!@!p7Au!iNUMvOyQxFnu`UF9Mn1Yj&g@6C8^U(={fVIH9 zw-ESVuA{$WWl02UnF;y^`@j98ldh|K28IBjb0GD#*Uq1~G~c`v1VlJ{r5x1q)`s#K zB<=uf16WGwTCF-hKI%Ab>jt|0e!^NCh5<7W*>bs*%Vp9*WqdBXkgY5g{CqWpct^2V zn4X>pf;ux3k+oK9t+ft2AdSg@bxnd;29evYgx;lzbTXNknp^7WiM6`CCzD;7Y`Pi3Yll(giYJ_ji7^00WGj_YGU?2v zCruc%Z5f%VS}9LVT<#yp7$8^iPfTPgfziMg z7=ZhF^~A)bYPC`-=Db7#fP=sff?9fET5G-L8Dg41lV@$K`)WZC1|3K%$ z!t9kRmwdn0id8Kyrz<6^9k*I3Iy#Yv`;(Is)*5C8z#!<0XYT+22^&d7K~(Ugh*c2y zQDrv9luE@^iU9ze#HH!wu6!ai;RmyM=uz0{VBaW`LdBn1EEek~>8=E+8Q2)3h#45c zsn;syNM-)=Fz}5(m)b1UP|a5J z^TjB6N^8GRADx(+UC4&DV0kuIE!Iq6QL9q6q8B~C5OPR`=|QdDn?#X=*=8{Ma) zLKE7;a&i93QW%(Wu39Vk*|`E4DwoTPiwl{|l4Y)!3z_s}esR`G0Rvb=%mjSR{s3A} zXKJkUWTsXQDr7=nMgSrPpsPLf&MxIlXgq+rA!LPsHnjDUuann)I?a6R?rg4CIT~X? zHrhWT+;H96oEx~QyxEje^?JQrE-R(lj}8%yF+mVW4C~I|xz6-_c542_jb9)?k)r3F z?cow`UYVkYdBhB?5w%u`??&UtuDex4wAOy>Pru4^{q9=P3V`^2+Z7f80Hzn3kMLTB zsa!So?)3P{ndma5UEQ_~v}E6Uf0T)x<`MNKy&u1O@%48u(z;|bMbAH1-q8q%6Kxp* zL<9h+u&_{i=UX2zgVPMyD6J~lYAs)9W>4egvK_5d830*v_Tttg$+3II^!*t=6>Fm?4+IURM6 zX>|HwOQ7Yt{*hA%SF*L~w`Nn847c9IeBGX!DKT-Cnw63Htt&-TB}I)T5pl5;0K#T& z7SO@ka@CKzd@vY*Qr$4v8@=`;z*M&W`zO+^6`Rku3$DAWxY^&sr{!;+JOwr@7C=gRD z6=PiM?~E6!LA7oyLoKw4M5?c^KNgE|)TCvKI*(XO)*1lt{d%dG4^0@gsfp;ot^wE4 z){<6=5rAQQc6r~9{>gM65rZH=Ku3X%KEn_d!1kE7%u6Aomq;ct)zL9EHtWUQuCAWG zzW&wC5^i=MQ_bJ0`5=@5z*?KlW)dn0EK~xE0HLwFw)J!*;>4tsV&YP@t`KvjdOZk{ zA*RtMMnq;d#taXSba(dzf$w>-v9U`4fQX(KQ%Y5gq@=WlNc2O*e1Xh-`P)kmGn)se`zyur_?6Yk!7 z4_TAR%=>-~Q9F)nOwil2J*s7^Pc$0@HSOrm&Te9AbrY*q%bCnvU;p-wRF@^wdcRc4 zkp|!Qp z3~Oliwn})qJLwime#LNmGojHBj|qTXH|{vGN;R*Qj^2#wbFEedfbOm?Vk}qd$d-Al z4vJxLIvgF-(V!Gm=$FHNgMGzPEmx~0dlO14CPswva@FZ@!m^>&x8c^(z_#ApQo$Iz zZQJ&Rg}GJ`d_6>r_rziemxyg({YvP@wf1ySFv(;p2*O&e;<#}gOIhOwl|s}z3$7QL z35oY~xp7zJDq$I1V=S+n8XL!ZtfifMM_f;jpP%w#PIN6qg-%k3Mf0(p`EYG#!JD&D z#M^a0$IOo7ME#N1ry&eOxzW6n+`^fZKA~>--2D(M05l8jdQVy!vH#7*Cb;eY>m{N6 zy0>oY*Xsb?Ona0bur1sT-`UjL@JO*TJXV2g|_ zSkpuEMw7JWYPV%heIY)Ka=Co(z4yNP=9|&48w9Xi*R9uU?aiv@yaUnem3}lzDXkqw z6>34);gm|KJ1R)wM)+iH#ubG_*HqZM`uLL2p1j`r(n1pto5 zs3#gRw72}jFbKm?DaB0jc(T>eJ<26(P1OBrO=6l|;<1^TI*J{vDKiF8N=I=7YYnl* z)qmAWGea1LN@>?!={gtj4Vl#s4qS}{*m|PrDPZR2ShJOkine2kYJrWOba{?$zP+;d z_ML^s28Lp;cJ!)NvbE+KVGgamdc6jXN1n>_V#Wq*ju8Qra;>$l>oP;#G#-~I1VTK28R#Zxjft82=;CZoD=~M#C z3`tM<781_dPc2JqiM3X1o&+*;^cWNx{VuufxUf~9qwIy~WNB95t%)sjd*xT?8|!G) zO0j8%UJ+!#x!u+f!30}(~TKY@vv5Eb6Y zOa#7V%it+gK+S=r*AdhMVvZ$Z&?+7VCPsPqyOl(bf;Rk+4@m|3UN*C=i2wiq07*qoM6N<$ Ef~%^*tpET3 literal 0 HcmV?d00001 From 07b493fa9d99ef50d39b226751ef4c85fc14eb24 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Wed, 14 Jan 2026 09:36:56 -0500 Subject: [PATCH 25/37] docs: Add comprehensive type system reference with Map type support (#5855) * Initial plan * docs: Add comprehensive type system documentation with Map support - Add detailed tables for all supported types (primitive, array, map) - Include complete feature view example with all types - Add Map type usage examples with nested structures - Improve documentation structure and clarity Co-authored-by: franciscojavierarceo <4163062+franciscojavierarceo@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: franciscojavierarceo <4163062+franciscojavierarceo@users.noreply.github.com> --- docs/reference/type-system.md | 142 +++++++++++++++++++++++++++++++++- 1 file changed, 139 insertions(+), 3 deletions(-) diff --git a/docs/reference/type-system.md b/docs/reference/type-system.md index 4a1e93734f3..3bda3ad16c5 100644 --- a/docs/reference/type-system.md +++ b/docs/reference/type-system.md @@ -3,13 +3,149 @@ ## Motivation Feast uses an internal type system to provide guarantees on training and serving data. -Feast currently supports eight primitive types - `INT32`, `INT64`, `FLOAT32`, `FLOAT64`, `STRING`, `BYTES`, `BOOL`, and `UNIX_TIMESTAMP` - and the corresponding array types. -Map type is also supported using a key of `STRING` type and any supported feast type as a value. +Feast supports primitive types, array types, and map types for feature values. Null types are not supported, although the `UNIX_TIMESTAMP` type is nullable. The type system is controlled by [`Value.proto`](https://github.com/feast-dev/feast/blob/master/protos/feast/types/Value.proto) in protobuf and by [`types.py`](https://github.com/feast-dev/feast/blob/master/sdk/python/feast/types.py) in Python. Type conversion logic can be found in [`type_map.py`](https://github.com/feast-dev/feast/blob/master/sdk/python/feast/type_map.py). -## Examples +## Supported Types + +Feast supports the following data types: + +### Primitive Types + +| Feast Type | Python Type | Description | +|------------|-------------|-------------| +| `Int32` | `int` | 32-bit signed integer | +| `Int64` | `int` | 64-bit signed integer | +| `Float32` | `float` | 32-bit floating point | +| `Float64` | `float` | 64-bit floating point | +| `String` | `str` | String/text value | +| `Bytes` | `bytes` | Binary data | +| `Bool` | `bool` | Boolean value | +| `UnixTimestamp` | `datetime` | Unix timestamp (nullable) | + +### Array Types + +All primitive types have corresponding array (list) types: + +| Feast Type | Python Type | Description | +|------------|-------------|-------------| +| `Array(Int32)` | `List[int]` | List of 32-bit integers | +| `Array(Int64)` | `List[int]` | List of 64-bit integers | +| `Array(Float32)` | `List[float]` | List of 32-bit floats | +| `Array(Float64)` | `List[float]` | List of 64-bit floats | +| `Array(String)` | `List[str]` | List of strings | +| `Array(Bytes)` | `List[bytes]` | List of binary data | +| `Array(Bool)` | `List[bool]` | List of booleans | +| `Array(UnixTimestamp)` | `List[datetime]` | List of timestamps | + +### Map Types + +Map types allow storing dictionary-like data structures: + +| Feast Type | Python Type | Description | +|------------|-------------|-------------| +| `Map` | `Dict[str, Any]` | Dictionary with string keys and any supported Feast type as values (including nested maps) | +| `Array(Map)` | `List[Dict[str, Any]]` | List of dictionaries | + +**Note:** Map keys must always be strings. Map values can be any supported Feast type, including primitives, arrays, or nested maps. + +## Complete Feature View Example + +Below is a complete example showing how to define a feature view with all supported types: + +```python +from datetime import timedelta +from feast import Entity, FeatureView, Field, FileSource +from feast.types import ( + Int32, Int64, Float32, Float64, String, Bytes, Bool, UnixTimestamp, + Array, Map +) + +# Define a data source +user_features_source = FileSource( + path="data/user_features.parquet", + timestamp_field="event_timestamp", +) + +# Define an entity +user = Entity( + name="user_id", + description="User identifier", +) + +# Define a feature view with all supported types +user_features = FeatureView( + name="user_features", + entities=[user], + ttl=timedelta(days=1), + schema=[ + # Primitive types + Field(name="age", dtype=Int32), + Field(name="account_balance", dtype=Int64), + Field(name="transaction_amount", dtype=Float32), + Field(name="credit_score", dtype=Float64), + Field(name="username", dtype=String), + Field(name="profile_picture", dtype=Bytes), + Field(name="is_active", dtype=Bool), + Field(name="last_login", dtype=UnixTimestamp), + + # Array types + Field(name="daily_steps", dtype=Array(Int32)), + Field(name="transaction_history", dtype=Array(Int64)), + Field(name="ratings", dtype=Array(Float32)), + Field(name="portfolio_values", dtype=Array(Float64)), + Field(name="favorite_items", dtype=Array(String)), + Field(name="document_hashes", dtype=Array(Bytes)), + Field(name="notification_settings", dtype=Array(Bool)), + Field(name="login_timestamps", dtype=Array(UnixTimestamp)), + + # Map types + Field(name="user_preferences", dtype=Map), + Field(name="metadata", dtype=Map), + Field(name="activity_log", dtype=Array(Map)), + ], + source=user_features_source, +) +``` + +### Map Type Usage Examples + +Maps can store complex nested data structures: + +```python +# Simple map +user_preferences = { + "theme": "dark", + "language": "en", + "notifications_enabled": True, + "font_size": 14 +} + +# Nested map +metadata = { + "profile": { + "bio": "Software engineer", + "location": "San Francisco" + }, + "stats": { + "followers": 1000, + "posts": 250 + } +} + +# List of maps +activity_log = [ + {"action": "login", "timestamp": "2024-01-01T10:00:00", "ip": "192.168.1.1"}, + {"action": "purchase", "timestamp": "2024-01-01T11:30:00", "amount": 99.99}, + {"action": "logout", "timestamp": "2024-01-01T12:00:00"} +] +``` + +## Type System in Practice + +The sections below explain how Feast uses its type system in different contexts. ### Feature inference From d77bf50af3322e326db44574a1cd046df79c7d40 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Wed, 14 Jan 2026 10:41:09 -0500 Subject: [PATCH 26/37] docs: Clarify that feast apply does not delete objects and document feast delete CLI (#5854) * Initial plan * Fix UI server to detect deleted feature views by checking registry file modifications Co-authored-by: franciscojavierarceo <4163062+franciscojavierarceo@users.noreply.github.com> * Address code review: improve comments and reduce test duplication Co-authored-by: franciscojavierarceo <4163062+franciscojavierarceo@users.noreply.github.com> * Add defensive null check and improve parameter naming Co-authored-by: franciscojavierarceo <4163062+franciscojavierarceo@users.noreply.github.com> * Use store.project instead of None for _get_registry_proto call Co-authored-by: franciscojavierarceo <4163062+franciscojavierarceo@users.noreply.github.com> * Revert UI server changes and add documentation about explicit deletion requirements Co-authored-by: franciscojavierarceo <4163062+franciscojavierarceo@users.noreply.github.com> * Add feast delete CLI command documentation Co-authored-by: franciscojavierarceo <4163062+franciscojavierarceo@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: franciscojavierarceo <4163062+franciscojavierarceo@users.noreply.github.com> --- docs/getting-started/components/registry.md | 58 +++++++++++++++++++++ docs/reference/feast-cli-commands.md | 39 ++++++++++++++ sdk/python/feast/feature_store.py | 4 ++ 3 files changed, 101 insertions(+) diff --git a/docs/getting-started/components/registry.md b/docs/getting-started/components/registry.md index 0c85c5ad36b..9723e6cfe63 100644 --- a/docs/getting-started/components/registry.md +++ b/docs/getting-started/components/registry.md @@ -11,6 +11,64 @@ automatically stays synced with the registry. Users will often also want multipl different environments (e.g. dev vs staging vs prod), with staging and production registries with locked down write access since they can impact real user traffic. See [Running Feast in Production](../../how-to-guides/running-feast-in-production.md#1.-automatically-deploying-changes-to-your-feature-definitions) for details on how to set this up. +## Deleting objects from the registry + +{% hint style="warning" %} +Simply removing a feature definition from your code and running `feast apply` or `FeatureStore.apply()` **does not** delete the object from the registry. You must explicitly delete objects using the dedicated delete methods or CLI commands. +{% endhint %} + +### Using the CLI + +The simplest way to delete objects is using the `feast delete` command: + +```bash +# Delete any Feast object by name +feast delete my_feature_view +feast delete my_entity +feast delete my_feature_service +``` + +See the [CLI documentation](../../reference/feast-cli-commands.md#delete) for more details. + +### Using the Python SDK + +To delete objects programmatically, use the explicit delete methods provided by the `FeatureStore` class: + +#### Deleting feature views +```python +from feast import FeatureStore + +store = FeatureStore(repo_path=".") +store.delete_feature_view("my_feature_view") +``` + +#### Deleting feature services +```python +store.delete_feature_service("my_feature_service") +``` + +#### Deleting entities, data sources, and other objects + +For entities, data sources, and other registry objects, you can use the registry methods directly: + +```python +# Delete an entity +store._registry.delete_entity("my_entity", project=store.project) + +# Delete a data source +store._registry.delete_data_source("my_data_source", project=store.project) + +# Delete a saved dataset +store._registry.delete_saved_dataset("my_saved_dataset", project=store.project) + +# Delete a validation reference +store._registry.delete_validation_reference("my_validation_reference", project=store.project) +``` + +{% hint style="info" %} +When using `feast apply` via the CLI, you can also use the `objects_to_delete` parameter with `partial=False` to delete objects as part of the apply operation. However, this is less common and typically used in automated deployment scenarios. +{% endhint %} + ## Accessing the registry from clients Users can specify the registry through a `feature_store.yaml` config file, or programmatically. We often see teams diff --git a/docs/reference/feast-cli-commands.md b/docs/reference/feast-cli-commands.md index 15157863e9c..55d3c27ac84 100644 --- a/docs/reference/feast-cli-commands.md +++ b/docs/reference/feast-cli-commands.md @@ -20,6 +20,7 @@ Options: Commands: apply Create or update a feature store deployment configuration Display Feast configuration + delete Delete a Feast object from the registry entities Access entities feature-views Access feature views init Create a new Feast repository @@ -62,6 +63,10 @@ feast apply `feast apply` \(when configured to use cloud provider like `gcp` or `aws`\) will create cloud infrastructure. This may incur costs. {% endhint %} +{% hint style="info" %} +**Important:** `feast apply` only registers or updates objects found in your Python files. It does **not** delete objects that you've removed from your code. To delete objects from the registry, you must use the `feast delete` command or explicit delete methods in the Python SDK. See the [Delete command](#delete) below and the [Registry documentation](../getting-started/components/registry.md#deleting-objects-from-the-registry) for details. +{% endhint %} + ## Configuration Display the actual configuration being used by Feast, including both user-provided configurations and default configurations applied by Feast. @@ -84,6 +89,40 @@ auth: type: no_auth ``` +## Delete + +Delete a Feast object from the registry by its name. + +```bash +feast delete +``` + +**What does feast delete do?** + +The `feast delete` command removes a Feast object (such as a feature view, entity, data source, feature service, etc.) from the registry. The command will: + +1. Search for the object by name across all object types (entities, feature views, feature services, data sources, saved datasets, validation references, etc.) +2. Delete the first matching object found +3. Remove any associated infrastructure + +**Example:** + +```bash +# Delete a feature view named "driver_hourly_stats" +feast delete driver_hourly_stats + +# Delete an entity named "driver" +feast delete driver +``` + +{% hint style="warning" %} +The delete operation is permanent and will remove the object from the registry. Make sure you want to delete the object before running this command. +{% endhint %} + +{% hint style="info" %} +If multiple objects have the same name across different types, `feast delete` will delete the first one it finds. For programmatic deletion with more control, use the Python SDK methods like `store.delete_feature_view()`, `store.delete_feature_service()`, etc. +{% endhint %} + ## Entities List all registered entities diff --git a/sdk/python/feast/feature_store.py b/sdk/python/feast/feature_store.py index fce051f950d..5118cd4fde2 100644 --- a/sdk/python/feast/feature_store.py +++ b/sdk/python/feast/feature_store.py @@ -843,6 +843,10 @@ def apply( an online store), it will commit the updated registry. All operations are idempotent, meaning they can safely be rerun. + Note: The apply method does NOT delete objects that are removed from the provided list. To delete objects + from the registry, use explicit delete methods like delete_feature_view(), delete_feature_service(), or + pass objects to the objects_to_delete parameter with partial=False. + Args: objects: A single object, or a list of objects that should be registered with the Feature Store. objects_to_delete: A list of objects to be deleted from the registry and removed from the From 5482a0efee22f2d058db26c80e5ac7933863b7e1 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Thu, 15 Jan 2026 11:22:55 -0500 Subject: [PATCH 27/37] feat: Add skip_feature_view_validation parameter to FeatureStore.apply() and plan() (#5859) * Initial plan * Add skip_validation parameter to FeatureStore.apply() and plan() Co-authored-by: franciscojavierarceo <4163062+franciscojavierarceo@users.noreply.github.com> * Update tests with better documentation and structure Co-authored-by: franciscojavierarceo <4163062+franciscojavierarceo@users.noreply.github.com> * Run make format-python to fix formatting issues Co-authored-by: franciscojavierarceo <4163062+franciscojavierarceo@users.noreply.github.com> * Simplify unit tests to avoid FeatureStore instantiation issues Co-authored-by: franciscojavierarceo <4163062+franciscojavierarceo@users.noreply.github.com> * Rename skip_validation to skip_feature_view_validation for clarity Co-authored-by: franciscojavierarceo <4163062+franciscojavierarceo@users.noreply.github.com> * Add documentation for skip_feature_view_validation parameter Co-authored-by: franciscojavierarceo <4163062+franciscojavierarceo@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: franciscojavierarceo <4163062+franciscojavierarceo@users.noreply.github.com> Co-authored-by: Francisco Javier Arceo --- docs/reference/beta-on-demand-feature-view.md | 40 +++++++++++ docs/reference/feast-cli-commands.md | 21 +++++- sdk/python/feast/cli/cli.py | 24 +++++-- sdk/python/feast/feature_store.py | 31 +++++--- sdk/python/feast/repo_operations.py | 37 ++++++++-- sdk/python/tests/unit/test_skip_validation.py | 71 +++++++++++++++++++ 6 files changed, 202 insertions(+), 22 deletions(-) create mode 100644 sdk/python/tests/unit/test_skip_validation.py diff --git a/docs/reference/beta-on-demand-feature-view.md b/docs/reference/beta-on-demand-feature-view.md index 2482bbc1c8f..efb7023d567 100644 --- a/docs/reference/beta-on-demand-feature-view.md +++ b/docs/reference/beta-on-demand-feature-view.md @@ -309,4 +309,44 @@ There are new CLI commands to manage on demand feature views: feast on-demand-feature-views list: Lists all registered on demand feature views after feast apply is run. feast on-demand-feature-views describe [NAME]: Describes the definition of an on demand feature view. +## Troubleshooting + +### Validation Issues with Complex Transformations + +When defining On Demand Feature Views with complex transformations, you may encounter validation errors during `feast apply`. Feast validates ODFVs by constructing random inputs and running the transformation function to infer the output schema. This validation can sometimes be overly strict or fail for complex transformation logic. + +If you encounter validation errors that you believe are incorrect, you can skip feature view validation: + +**Python SDK:** +```python +from feast import FeatureStore + +store = FeatureStore(repo_path=".") +store.apply([my_odfv], skip_feature_view_validation=True) +``` + +**CLI:** +```bash +feast apply --skip-feature-view-validation +``` + +{% hint style="warning" %} +Skipping validation bypasses important checks. Use this option only when the validation system is being overly strict. We encourage you to report validation issues on the [Feast GitHub repository](https://github.com/feast-dev/feast/issues) so the team can improve the validation system. +{% endhint %} + +**When to use skip_feature_view_validation:** +- Your ODFV transformation uses complex logic that fails the random input validation +- You've verified your transformation works correctly with real data +- The validation error doesn't reflect an actual issue with your transformation + +**What validation is skipped:** +- Feature view name uniqueness checks +- ODFV transformation validation via `_construct_random_input()` +- Schema inference for features + +**What is NOT skipped:** +- Data source validation (use `--skip-source-validation` to skip) +- Registry operations +- Infrastructure updates + diff --git a/docs/reference/feast-cli-commands.md b/docs/reference/feast-cli-commands.md index 55d3c27ac84..eb6fa90d280 100644 --- a/docs/reference/feast-cli-commands.md +++ b/docs/reference/feast-cli-commands.md @@ -52,13 +52,32 @@ Creates or updates a feature store deployment feast apply ``` +**Options:** +* `--skip-source-validation`: Skip validation of data sources (don't check if tables exist) +* `--skip-feature-view-validation`: Skip validation of feature views. Use with caution as this skips important checks + +```bash +# Skip only data source validation +feast apply --skip-source-validation + +# Skip only feature view validation +feast apply --skip-feature-view-validation + +# Skip both validations +feast apply --skip-source-validation --skip-feature-view-validation +``` + **What does Feast apply do?** 1. Feast will scan Python files in your feature repository and find all Feast object definitions, such as feature views, entities, and data sources. -2. Feast will validate your feature definitions (e.g. for uniqueness of features) +2. Feast will validate your feature definitions (e.g. for uniqueness of features). This validation can be skipped using the `--skip-feature-view-validation` flag if the type/validation system is being overly strict. 3. Feast will sync the metadata about Feast objects to the registry. If a registry does not exist, then it will be instantiated. The standard registry is a simple protobuf binary file that is stored on disk \(locally or in an object store\). 4. Feast CLI will create all necessary feature store infrastructure. The exact infrastructure that is deployed or configured depends on the `provider` configuration that you have set in `feature_store.yaml`. For example, setting `local` as your provider will result in a `sqlite` online store being created. +{% hint style="info" %} +The `--skip-feature-view-validation` flag is particularly useful for On-Demand Feature Views (ODFVs) with complex transformations that may fail validation. However, use it with caution and please report any validation issues to the Feast team on GitHub. +{% endhint %} + {% hint style="warning" %} `feast apply` \(when configured to use cloud provider like `gcp` or `aws`\) will create cloud infrastructure. This may incur costs. {% endhint %} diff --git a/sdk/python/feast/cli/cli.py b/sdk/python/feast/cli/cli.py index 60ea6292488..ab756d47496 100644 --- a/sdk/python/feast/cli/cli.py +++ b/sdk/python/feast/cli/cli.py @@ -237,8 +237,15 @@ def endpoint(ctx: click.Context): is_flag=True, help="Don't validate the data sources by checking for that the tables exist.", ) +@click.option( + "--skip-feature-view-validation", + is_flag=True, + help="Don't validate feature views. Use with caution as this skips important checks.", +) @click.pass_context -def plan_command(ctx: click.Context, skip_source_validation: bool): +def plan_command( + ctx: click.Context, skip_source_validation: bool, skip_feature_view_validation: bool +): """ Create or update a feature store deployment """ @@ -247,7 +254,7 @@ def plan_command(ctx: click.Context, skip_source_validation: bool): cli_check_repo(repo, fs_yaml_file) repo_config = load_repo_config(repo, fs_yaml_file) try: - plan(repo_config, repo, skip_source_validation) + plan(repo_config, repo, skip_source_validation, skip_feature_view_validation) except FeastProviderLoginError as e: print(str(e)) @@ -258,8 +265,15 @@ def plan_command(ctx: click.Context, skip_source_validation: bool): is_flag=True, help="Don't validate the data sources by checking for that the tables exist.", ) +@click.option( + "--skip-feature-view-validation", + is_flag=True, + help="Don't validate feature views. Use with caution as this skips important checks.", +) @click.pass_context -def apply_total_command(ctx: click.Context, skip_source_validation: bool): +def apply_total_command( + ctx: click.Context, skip_source_validation: bool, skip_feature_view_validation: bool +): """ Create or update a feature store deployment """ @@ -269,7 +283,9 @@ def apply_total_command(ctx: click.Context, skip_source_validation: bool): repo_config = load_repo_config(repo, fs_yaml_file) try: - apply_total(repo_config, repo, skip_source_validation) + apply_total( + repo_config, repo, skip_source_validation, skip_feature_view_validation + ) except FeastProviderLoginError as e: print(str(e)) diff --git a/sdk/python/feast/feature_store.py b/sdk/python/feast/feature_store.py index 5118cd4fde2..0eff5034683 100644 --- a/sdk/python/feast/feature_store.py +++ b/sdk/python/feast/feature_store.py @@ -723,7 +723,9 @@ def _get_feature_views_to_materialize( return feature_views_to_materialize def plan( - self, desired_repo_contents: RepoContents + self, + desired_repo_contents: RepoContents, + skip_feature_view_validation: bool = False, ) -> Tuple[RegistryDiff, InfraDiff, Infra]: """Dry-run registering objects to metadata store. @@ -733,6 +735,8 @@ def plan( Args: desired_repo_contents: The desired repo state. + skip_feature_view_validation: If True, skip validation of feature views. This can be useful when the validation + system is being overly strict. Use with caution and report any issues on GitHub. Default is False. Raises: ValueError: The 'objects' parameter could not be parsed properly. @@ -767,11 +771,12 @@ def plan( ... permissions=list())) # register entity and feature view """ # Validate and run inference on all the objects to be registered. - self._validate_all_feature_views( - desired_repo_contents.feature_views, - desired_repo_contents.on_demand_feature_views, - desired_repo_contents.stream_feature_views, - ) + if not skip_feature_view_validation: + self._validate_all_feature_views( + desired_repo_contents.feature_views, + desired_repo_contents.on_demand_feature_views, + desired_repo_contents.stream_feature_views, + ) _validate_data_sources(desired_repo_contents.data_sources) self._make_inferences( desired_repo_contents.data_sources, @@ -835,6 +840,7 @@ def apply( ], objects_to_delete: Optional[List[FeastObject]] = None, partial: bool = True, + skip_feature_view_validation: bool = False, ): """Register objects to metadata store and update related infrastructure. @@ -853,6 +859,8 @@ def apply( provider's infrastructure. This deletion will only be performed if partial is set to False. partial: If True, apply will only handle the specified objects; if False, apply will also delete all the objects in objects_to_delete, and tear down any associated cloud resources. + skip_feature_view_validation: If True, skip validation of feature views. This can be useful when the validation + system is being overly strict. Use with caution and report any issues on GitHub. Default is False. Raises: ValueError: The 'objects' parameter could not be parsed properly. @@ -954,11 +962,12 @@ def apply( entities_to_update.append(DUMMY_ENTITY) # Validate all feature views and make inferences. - self._validate_all_feature_views( - views_to_update, - odfvs_to_update, - sfvs_to_update, - ) + if not skip_feature_view_validation: + self._validate_all_feature_views( + views_to_update, + odfvs_to_update, + sfvs_to_update, + ) self._make_inferences( data_sources_to_update, entities_to_update, diff --git a/sdk/python/feast/repo_operations.py b/sdk/python/feast/repo_operations.py index 9bc11e625f5..b0809bdd399 100644 --- a/sdk/python/feast/repo_operations.py +++ b/sdk/python/feast/repo_operations.py @@ -220,7 +220,12 @@ def parse_repo(repo_root: Path) -> RepoContents: return res -def plan(repo_config: RepoConfig, repo_path: Path, skip_source_validation: bool): +def plan( + repo_config: RepoConfig, + repo_path: Path, + skip_source_validation: bool, + skip_feature_view_validation: bool = False, +): os.chdir(repo_path) repo = _get_repo_contents(repo_path, repo_config.project, repo_config) for project in repo.projects: @@ -234,7 +239,9 @@ def plan(repo_config: RepoConfig, repo_path: Path, skip_source_validation: bool) for data_source in data_sources: provider.validate_data_source(store.config, data_source) - registry_diff, infra_diff, _ = store.plan(repo) + registry_diff, infra_diff, _ = store.plan( + repo, skip_feature_view_validation=skip_feature_view_validation + ) click.echo(registry_diff.to_string()) click.echo(infra_diff.to_string()) @@ -334,6 +341,7 @@ def apply_total_with_repo_instance( registry: BaseRegistry, repo: RepoContents, skip_source_validation: bool, + skip_feature_view_validation: bool = False, ): if not skip_source_validation: provider = store._get_provider() @@ -351,13 +359,20 @@ def apply_total_with_repo_instance( ) = extract_objects_for_apply_delete(project_name, registry, repo) if store._should_use_plan(): - registry_diff, infra_diff, new_infra = store.plan(repo) + registry_diff, infra_diff, new_infra = store.plan( + repo, skip_feature_view_validation=skip_feature_view_validation + ) click.echo(registry_diff.to_string()) store._apply_diffs(registry_diff, infra_diff, new_infra) click.echo(infra_diff.to_string()) else: - store.apply(all_to_apply, objects_to_delete=all_to_delete, partial=False) + store.apply( + all_to_apply, + objects_to_delete=all_to_delete, + partial=False, + skip_feature_view_validation=skip_feature_view_validation, + ) log_infra_changes(views_to_keep, views_to_delete) @@ -396,7 +411,12 @@ def create_feature_store( return FeatureStore(repo_path=str(repo), fs_yaml_file=fs_yaml_file) -def apply_total(repo_config: RepoConfig, repo_path: Path, skip_source_validation: bool): +def apply_total( + repo_config: RepoConfig, + repo_path: Path, + skip_source_validation: bool, + skip_feature_view_validation: bool = False, +): os.chdir(repo_path) repo = _get_repo_contents(repo_path, repo_config.project, repo_config) for project in repo.projects: @@ -411,7 +431,12 @@ def apply_total(repo_config: RepoConfig, repo_path: Path, skip_source_validation # TODO: When we support multiple projects in a single repo, we should filter repo contents by project. Currently there is no way to associate Feast objects to project. print(f"Applying changes for project {project.name}") apply_total_with_repo_instance( - store, project.name, registry, repo, skip_source_validation + store, + project.name, + registry, + repo, + skip_source_validation, + skip_feature_view_validation, ) diff --git a/sdk/python/tests/unit/test_skip_validation.py b/sdk/python/tests/unit/test_skip_validation.py new file mode 100644 index 00000000000..8fb916e3776 --- /dev/null +++ b/sdk/python/tests/unit/test_skip_validation.py @@ -0,0 +1,71 @@ +""" +Tests for skip_feature_view_validation parameter in FeatureStore.apply() and FeatureStore.plan() + +This feature allows users to skip Feature View validation when the validation system +is being overly strict. This is particularly important for: +- Feature transformations that go through validation (e.g., _construct_random_input in ODFVs) +- Cases where the type/validation system is being too restrictive + +Users should be encouraged to report issues on GitHub when they need to use this flag. +""" + +import inspect + +from feast.feature_store import FeatureStore + + +def test_apply_has_skip_feature_view_validation_parameter(): + """Test that FeatureStore.apply() method has skip_feature_view_validation parameter""" + # Get the signature of the apply method + sig = inspect.signature(FeatureStore.apply) + + # Check that skip_feature_view_validation parameter exists + assert "skip_feature_view_validation" in sig.parameters + + # Check that it has a default value of False + param = sig.parameters["skip_feature_view_validation"] + assert param.default is False + + # Check that it's a boolean type hint (if type hints are present) + if param.annotation != inspect.Parameter.empty: + assert param.annotation == bool + + +def test_plan_has_skip_feature_view_validation_parameter(): + """Test that FeatureStore.plan() method has skip_feature_view_validation parameter""" + # Get the signature of the plan method + sig = inspect.signature(FeatureStore.plan) + + # Check that skip_feature_view_validation parameter exists + assert "skip_feature_view_validation" in sig.parameters + + # Check that it has a default value of False + param = sig.parameters["skip_feature_view_validation"] + assert param.default is False + + # Check that it's a boolean type hint (if type hints are present) + if param.annotation != inspect.Parameter.empty: + assert param.annotation == bool + + +def test_skip_feature_view_validation_use_case_documentation(): + """ + Documentation test: This test documents the key use case for skip_feature_view_validation. + + The skip_feature_view_validation flag is particularly important for On-Demand Feature Views (ODFVs) + that use feature transformations. During the apply() process, ODFVs call infer_features() + which internally uses _construct_random_input() to validate the transformation. + + Sometimes this validation can be overly strict or fail for complex transformations. + In such cases, users can use skip_feature_view_validation=True to bypass this check. + + Example use case from the issue: + - User has an ODFV with a complex transformation + - The _construct_random_input validation fails or is too restrictive + - User can now call: fs.apply([odfv], skip_feature_view_validation=True) + - The ODFV is registered without going through the validation + + Note: Users should be encouraged to report such cases on GitHub so the Feast team + can improve the validation system. + """ + pass # This is a documentation test From c2ea7e92ad85df0f71ec2aec588aa2bb032d7c03 Mon Sep 17 00:00:00 2001 From: soliverr Date: Fri, 16 Jan 2026 05:11:32 +0100 Subject: [PATCH 28/37] fix: Timestamp formatting and lakehouse-type connector for trino_offline_store. (#5846) Signed-off-by: Sergey Kryazhevskikh Co-authored-by: Francisco Javier Arceo --- .../contrib/trino_offline_store/connectors/upload.py | 1 + .../offline_stores/contrib/trino_offline_store/trino.py | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/sdk/python/feast/infra/offline_stores/contrib/trino_offline_store/connectors/upload.py b/sdk/python/feast/infra/offline_stores/contrib/trino_offline_store/connectors/upload.py index 020fc793713..98a2b89f07e 100644 --- a/sdk/python/feast/infra/offline_stores/contrib/trino_offline_store/connectors/upload.py +++ b/sdk/python/feast/infra/offline_stores/contrib/trino_offline_store/connectors/upload.py @@ -56,6 +56,7 @@ "oracle", "redshift", "memsql", + "lakehouse", } CREATE_SCHEMA_QUERY_TEMPLATE = """ diff --git a/sdk/python/feast/infra/offline_stores/contrib/trino_offline_store/trino.py b/sdk/python/feast/infra/offline_stores/contrib/trino_offline_store/trino.py index aa4cb2c8a60..62f94f54073 100644 --- a/sdk/python/feast/infra/offline_stores/contrib/trino_offline_store/trino.py +++ b/sdk/python/feast/infra/offline_stores/contrib/trino_offline_store/trino.py @@ -424,11 +424,16 @@ def pull_all_from_table_or_query( ) timestamp_filter = get_timestamp_filter_sql( - start_date, end_date, timestamp_field, quote_fields=False + start_date, + end_date, + timestamp_field, + quote_fields=False, + cast_style="timestamp", + date_time_separator=" ", ) query = f""" SELECT {field_string} - FROM {from_expression} + FROM ( {from_expression} ) WHERE {timestamp_filter} """ return TrinoRetrievalJob( From 8b9bb500b4df26fade82c7bcd436b36e05e5a298 Mon Sep 17 00:00:00 2001 From: Jitendra Yejare Date: Fri, 16 Jan 2026 12:38:22 +0530 Subject: [PATCH 29/37] feat: Resolve pyarrow >21 installation with ibis-framework (#5847) * feat: Update Pyarrow dependency along with ibis-framework Signed-off-by: jyejare * Remove limit of ibis-framework for all other feast main dependencies Signed-off-by: jyejare * Ibis substrait CI checks removed with import warning, pymilvus updated, setuptools warnings fixed Signed-off-by: jyejare --------- Signed-off-by: jyejare --- pyproject.toml | 16 +- .../feast/infra/offline_stores/duckdb.py | 11 +- sdk/python/feast/infra/offline_stores/ibis.py | 17 +- .../milvus_online_store/milvus.py | 9 +- .../substrait_transformation.py | 9 +- sdk/python/pytest.ini | 1 - .../requirements/py3.10-ci-requirements.txt | 1131 +++++++------ .../py3.10-minimal-requirements.txt | 961 ++++++----- ...y3.10-minimal-sdist-requirements-build.txt | 430 ++--- .../py3.10-minimal-sdist-requirements.txt | 982 ++++++------ .../requirements/py3.10-requirements.txt | 536 +++---- .../requirements/py3.11-ci-requirements.txt | 1400 ++++++++--------- .../py3.11-minimal-requirements.txt | 1106 +++++++------ ...y3.11-minimal-sdist-requirements-build.txt | 575 +++---- .../py3.11-minimal-sdist-requirements.txt | 1127 +++++++------ .../requirements/py3.11-requirements.txt | 591 ++++--- .../requirements/py3.12-ci-requirements.txt | 1400 ++++++++--------- .../py3.12-minimal-requirements.txt | 1106 +++++++------ ...y3.12-minimal-sdist-requirements-build.txt | 575 +++---- .../py3.12-minimal-sdist-requirements.txt | 1133 +++++++------ .../requirements/py3.12-requirements.txt | 591 ++++--- .../feature_repos/repo_configuration.py | 2 - .../feature_repos/universal/feature_views.py | 21 +- .../test_universal_historical_retrieval.py | 9 +- .../unit/test_substrait_transformation.py | 132 -- setup.py | 13 +- 26 files changed, 6813 insertions(+), 7071 deletions(-) delete mode 100644 sdk/python/tests/unit/test_substrait_transformation.py diff --git a/pyproject.toml b/pyproject.toml index f2620b0915d..acef967e688 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,9 +3,9 @@ name = "feast" description = "Python SDK for Feast" readme = "README.md" requires-python = ">=3.10.0" -license = {file = "LICENSE"} +license = "Apache-2.0" +license-files = ["LICENSE"] classifiers = [ - "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10" @@ -23,7 +23,7 @@ dependencies = [ "mmh3", "numpy>=2.0.0,<3", "pandas>=1.4.3,<3", - "pyarrow<=21.0.0", + "pyarrow>=21.0.0", "pydantic>=2.10.6", "pygments>=2.12.0,<3", "PyYAML>=5.4.0,<7", @@ -59,7 +59,7 @@ clickhouse = ["clickhouse-connect>=0.7.19"] couchbase = ["couchbase==4.3.2", "couchbase-columnar==1.0.0"] delta = ["deltalake<1.0.0"] docling = ["docling==2.27.0"] -duckdb = ["ibis-framework[duckdb]>=9.0.0,<=9.5.0"] +duckdb = ["ibis-framework[duckdb]>=10.0.0"] elasticsearch = ["elasticsearch>=8.13.0"] faiss = ["faiss-cpu>=1.7.0,<=1.10.0"] gcp = [ @@ -82,9 +82,7 @@ grpcio = [ hazelcast = ["hazelcast-python-client>=5.1"] hbase = ["happybase>=1.2.0,<3"] ibis = [ - "ibis-framework>=9.0.0,<=9.5.0", - "ibis-substrait>=4.0.0", - "substrait<0.25.0", # TODO: remove this once we upgrade protobuf + "ibis-framework>=10.0.0", "poetry-core<2", "poetry-dynamic-versioning", ] @@ -99,11 +97,11 @@ image = [ "scikit-learn>=1.0.0", ] milvus = [ - "pymilvus==2.4.15", + "pymilvus>2.5", "milvus-lite==2.4.12", "feast[setuptools]" ] -mssql = ["ibis-framework[mssql]>=9.0.0,<=9.5.0"] +mssql = ["ibis-framework[mssql]>=10.0.0"] mysql = ["pymysql", "types-PyMySQL"] opentelemetry = ["prometheus_client", "psutil"] spark = ["pyspark>=4.0.0"] diff --git a/sdk/python/feast/infra/offline_stores/duckdb.py b/sdk/python/feast/infra/offline_stores/duckdb.py index 7bf96129d0b..e0a69e53c56 100644 --- a/sdk/python/feast/infra/offline_stores/duckdb.py +++ b/sdk/python/feast/infra/offline_stores/duckdb.py @@ -33,11 +33,12 @@ def _read_data_source(data_source: DataSource, repo_path: str) -> Table: if isinstance(data_source.file_format, ParquetFormat): return ibis.read_parquet(data_source.path) elif isinstance(data_source.file_format, DeltaFormat): - storage_options = { - "AWS_ENDPOINT_URL": data_source.s3_endpoint_override, - } - - return ibis.read_delta(data_source.path, storage_options=storage_options) + if data_source.s3_endpoint_override: + storage_options = { + "AWS_ENDPOINT_URL": data_source.s3_endpoint_override, + } + return ibis.read_delta(data_source.path, storage_options=storage_options) + return ibis.read_delta(data_source.path) def _write_data_source( diff --git a/sdk/python/feast/infra/offline_stores/ibis.py b/sdk/python/feast/infra/offline_stores/ibis.py index 95c5afef2db..9d8891036fe 100644 --- a/sdk/python/feast/infra/offline_stores/ibis.py +++ b/sdk/python/feast/infra/offline_stores/ibis.py @@ -6,7 +6,6 @@ from typing import Any, Callable, Dict, List, Optional, Tuple, Union import ibis -import ibis.selectors as s import numpy as np import pandas as pd import pyarrow @@ -393,6 +392,10 @@ def point_in_time_join( acc_table = entity_table + # Track the columns we want to keep explicitly + entity_columns = list(entity_table.columns) + all_feature_cols: List[str] = [] + for ( feature_table, timestamp_field, @@ -432,7 +435,8 @@ def point_in_time_join( entity_table, predicates, lname="", rname="{name}_y" ) - feature_table = feature_table.drop(s.endswith("_y")) + cols_to_drop_y = [c for c in feature_table.columns if c.endswith("_y")] + feature_table = feature_table.drop(*cols_to_drop_y) feature_table = deduplicate( table=feature_table, @@ -445,6 +449,9 @@ def point_in_time_join( select_cols.extend(feature_refs) feature_table = feature_table.select(select_cols) + # Track the feature columns we're adding + all_feature_cols.extend(feature_refs) + acc_table = acc_table.left_join( feature_table, predicates=[feature_table.entity_row_id == acc_table.entity_row_id], @@ -452,9 +459,9 @@ def point_in_time_join( rname="{name}_yyyy", ) - acc_table = acc_table.drop(s.endswith("_yyyy")) - - acc_table = acc_table.drop("entity_row_id") + # Select only the columns we want: entity columns (minus entity_row_id) + all feature columns + final_cols = [c for c in entity_columns if c != "entity_row_id"] + all_feature_cols + acc_table = acc_table.select(final_cols) return acc_table diff --git a/sdk/python/feast/infra/online_stores/milvus_online_store/milvus.py b/sdk/python/feast/infra/online_stores/milvus_online_store/milvus.py index 37c88850ee7..9a2ecb935bc 100644 --- a/sdk/python/feast/infra/online_stores/milvus_online_store/milvus.py +++ b/sdk/python/feast/infra/online_stores/milvus_online_store/milvus.py @@ -222,10 +222,11 @@ def _get_or_create_collection( index_name=f"vector_index_{vector_field.name}", params={"nlist": config.online_store.nlist}, ) - self.client.create_index( - collection_name=collection_name, - index_params=index_params, - ) + if len(index_params) > 0: + self.client.create_index( + collection_name=collection_name, + index_params=index_params, + ) else: self.client.load_collection(collection_name) self._collections[collection_name] = self.client.describe_collection( diff --git a/sdk/python/feast/transformation/substrait_transformation.py b/sdk/python/feast/transformation/substrait_transformation.py index 476159cd003..9d271c95d51 100644 --- a/sdk/python/feast/transformation/substrait_transformation.py +++ b/sdk/python/feast/transformation/substrait_transformation.py @@ -175,7 +175,14 @@ def from_ibis(cls, user_function, sources): import ibis import ibis.expr.datatypes as dt - from ibis_substrait.compiler.core import SubstraitCompiler + + try: + from ibis_substrait.compiler.core import SubstraitCompiler + except ImportError: + raise ImportError( + "Failed to use substrait transformation: 'ibis-substrait' package is not installed. " + "Install it with: `pip install ibis-substrait and only if https://github.com/ibis-project/ibis-substrait/issues/1309 issue is resolved." + ) compiler = SubstraitCompiler() diff --git a/sdk/python/pytest.ini b/sdk/python/pytest.ini index d79459c0d0e..591de0dc387 100644 --- a/sdk/python/pytest.ini +++ b/sdk/python/pytest.ini @@ -17,4 +17,3 @@ filterwarnings = ignore::DeprecationWarning:httpx.*: ignore::DeprecationWarning:happybase.*: ignore::DeprecationWarning:pkg_resources.*: - ignore::FutureWarning:ibis_substrait.compiler.*: diff --git a/sdk/python/requirements/py3.10-ci-requirements.txt b/sdk/python/requirements/py3.10-ci-requirements.txt index 554c9eba60f..851c363868f 100644 --- a/sdk/python/requirements/py3.10-ci-requirements.txt +++ b/sdk/python/requirements/py3.10-ci-requirements.txt @@ -12,127 +12,127 @@ aiohappyeyeballs==2.6.1 \ --hash=sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558 \ --hash=sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8 # via aiohttp -aiohttp==3.13.2 \ - --hash=sha256:04c3971421576ed24c191f610052bcb2f059e395bc2489dd99e397f9bc466329 \ - --hash=sha256:05c4dd3c48fb5f15db31f57eb35374cb0c09afdde532e7fb70a75aede0ed30f6 \ - --hash=sha256:070599407f4954021509193404c4ac53153525a19531051661440644728ba9a7 \ - --hash=sha256:0740f31a60848d6edb296a0df827473eede90c689b8f9f2a4cdde74889eb2254 \ - --hash=sha256:088912a78b4d4f547a1f19c099d5a506df17eacec3c6f4375e2831ec1d995742 \ - --hash=sha256:0a3d54e822688b56e9f6b5816fb3de3a3a64660efac64e4c2dc435230ad23bad \ - --hash=sha256:0db1e24b852f5f664cd728db140cf11ea0e82450471232a394b3d1a540b0f906 \ - --hash=sha256:0e87dff73f46e969af38ab3f7cb75316a7c944e2e574ff7c933bc01b10def7f5 \ - --hash=sha256:1237c1375eaef0db4dcd7c2559f42e8af7b87ea7d295b118c60c36a6e61cb811 \ - --hash=sha256:16f15a4eac3bc2d76c45f7ebdd48a65d41b242eb6c31c2245463b40b34584ded \ - --hash=sha256:1f9b2c2d4b9d958b1f9ae0c984ec1dd6b6689e15c75045be8ccb4011426268ca \ - --hash=sha256:204ffff2426c25dfda401ba08da85f9c59525cdc42bda26660463dd1cbcfec6f \ - --hash=sha256:20b10bbfbff766294fe99987f7bb3b74fdd2f1a2905f2562132641ad434dcf98 \ - --hash=sha256:20db2d67985d71ca033443a1ba2001c4b5693fe09b0e29f6d9358a99d4d62a8a \ - --hash=sha256:228a1cd556b3caca590e9511a89444925da87d35219a49ab5da0c36d2d943a6a \ - --hash=sha256:2372b15a5f62ed37789a6b383ff7344fc5b9f243999b0cd9b629d8bc5f5b4155 \ - --hash=sha256:23ad365e30108c422d0b4428cf271156dd56790f6dd50d770b8e360e6c5ab2e6 \ - --hash=sha256:23fb0783bc1a33640036465019d3bba069942616a6a2353c6907d7fe1ccdaf4e \ - --hash=sha256:2475391c29230e063ef53a66669b7b691c9bfc3f1426a0f7bcdf1216bdbac38b \ - --hash=sha256:27e569eb9d9e95dbd55c0fc3ec3a9335defbf1d8bc1d20171a49f3c4c607b93e \ - --hash=sha256:29562998ec66f988d49fb83c9b01694fa927186b781463f376c5845c121e4e0b \ - --hash=sha256:2adebd4577724dcae085665f294cc57c8701ddd4d26140504db622b8d566d7aa \ - --hash=sha256:2ca6ffef405fc9c09a746cb5d019c1672cd7f402542e379afc66b370833170cf \ - --hash=sha256:2e1a9bea6244a1d05a4e57c295d69e159a5c50d8ef16aa390948ee873478d9a5 \ - --hash=sha256:364e25edaabd3d37b1db1f0cbcee8c73c9a3727bfa262b83e5e4cf3489a2a9dc \ - --hash=sha256:364f55663085d658b8462a1c3f17b2b84a5c2e1ba858e1b79bff7b2e24ad1514 \ - --hash=sha256:39d02cb6025fe1aabca329c5632f48c9532a3dabccd859e7e2f110668972331f \ - --hash=sha256:3a92cf4b9bea33e15ecbaa5c59921be0f23222608143d025c989924f7e3e0c07 \ - --hash=sha256:40176a52c186aefef6eb3cad2cdd30cd06e3afbe88fe8ab2af9c0b90f228daca \ - --hash=sha256:4356474ad6333e41ccefd39eae869ba15a6c5299c9c01dfdcfdd5c107be4363e \ - --hash=sha256:43dff14e35aba17e3d6d5ba628858fb8cb51e30f44724a2d2f0c75be492c55e9 \ - --hash=sha256:4647d02df098f6434bafd7f32ad14942f05a9caa06c7016fdcc816f343997dd0 \ - --hash=sha256:47f438b1a28e926c37632bff3c44df7d27c9b57aaf4e34b1def3c07111fdb782 \ - --hash=sha256:4dd3db9d0f4ebca1d887d76f7cdbcd1116ac0d05a9221b9dad82c64a62578c4d \ - --hash=sha256:4ebf9cfc9ba24a74cf0718f04aac2a3bbe745902cc7c5ebc55c0f3b5777ef213 \ - --hash=sha256:5276807b9de9092af38ed23ce120539ab0ac955547b38563a9ba4f5b07b95293 \ - --hash=sha256:53b07472f235eb80e826ad038c9d106c2f653584753f3ddab907c83f49eedead \ - --hash=sha256:550bf765101ae721ee1d37d8095f47b1f220650f85fe1af37a90ce75bab89d04 \ - --hash=sha256:56d36e80d2003fa3fc0207fac644216d8532e9504a785ef9a8fd013f84a42c61 \ - --hash=sha256:585542825c4bc662221fb257889e011a5aa00f1ae4d75d1d246a5225289183e3 \ - --hash=sha256:5b927cf9b935a13e33644cbed6c8c4b2d0f25b713d838743f8fe7191b33829c4 \ - --hash=sha256:5d7f02042c1f009ffb70067326ef183a047425bb2ff3bc434ead4dd4a4a66a2b \ - --hash=sha256:6315fb6977f1d0dd41a107c527fee2ed5ab0550b7d885bc15fee20ccb17891da \ - --hash=sha256:66bac29b95a00db411cd758fea0e4b9bdba6d549dfe333f9a945430f5f2cc5a6 \ - --hash=sha256:6c00dbcf5f0d88796151e264a8eab23de2997c9303dd7c0bf622e23b24d3ce22 \ - --hash=sha256:6e7352512f763f760baaed2637055c49134fd1d35b37c2dedfac35bfe5cf8725 \ - --hash=sha256:7519bdc7dfc1940d201651b52bf5e03f5503bda45ad6eacf64dda98be5b2b6be \ - --hash=sha256:78cd586d8331fb8e241c2dd6b2f4061778cc69e150514b39a9e28dd050475661 \ - --hash=sha256:7a653d872afe9f33497215745da7a943d1dc15b728a9c8da1c3ac423af35178e \ - --hash=sha256:7c3a50345635a02db61792c85bb86daffac05330f6473d524f1a4e3ef9d0046d \ - --hash=sha256:7fbdf5ad6084f1940ce88933de34b62358d0f4a0b6ec097362dcd3e5a65a4989 \ - --hash=sha256:7fd19df530c292542636c2a9a85854fab93474396a52f1695e799186bbd7f24c \ - --hash=sha256:868e195e39b24aaa930b063c08bb0c17924899c16c672a28a65afded9c46c6ec \ - --hash=sha256:8709a0f05d59a71f33fd05c17fc11fcb8c30140506e13c2f5e8ee1b8964e1b45 \ - --hash=sha256:88d6c017966a78c5265d996c19cdb79235be5e6412268d7e2ce7dee339471b7a \ - --hash=sha256:8aa7c807df234f693fed0ecd507192fc97692e61fee5702cdc11155d2e5cadc8 \ - --hash=sha256:8b2f1414f6a1e0683f212ec80e813f4abef94c739fd090b66c9adf9d2a05feac \ - --hash=sha256:93655083005d71cd6c072cdab54c886e6570ad2c4592139c3fb967bfc19e4694 \ - --hash=sha256:939ced4a7add92296b0ad38892ce62b98c619288a081170695c6babe4f50e636 \ - --hash=sha256:9434bc0d80076138ea986833156c5a48c9c7a8abb0c96039ddbb4afc93184169 \ - --hash=sha256:94f05348c4406450f9d73d38efb41d669ad6cd90c7ee194810d0eefbfa875a7a \ - --hash=sha256:960c2fc686ba27b535f9fd2b52d87ecd7e4fd1cf877f6a5cba8afb5b4a8bd204 \ - --hash=sha256:96581619c57419c3d7d78703d5b78c1e5e5fc0172d60f555bdebaced82ded19a \ - --hash=sha256:97a0895a8e840ab3520e2288db7cace3a1981300d48babeb50e7425609e2e0ab \ - --hash=sha256:98c4fb90bb82b70a4ed79ca35f656f4281885be076f3f970ce315402b53099ae \ - --hash=sha256:99c5280a329d5fa18ef30fd10c793a190d996567667908bef8a7f81f8202b948 \ - --hash=sha256:9acda8604a57bb60544e4646a4615c1866ee6c04a8edef9b8ee6fd1d8fa2ddc8 \ - --hash=sha256:9c705601e16c03466cb72011bd1af55d68fa65b045356d8f96c216e5f6db0fa5 \ - --hash=sha256:9e8f8afb552297aca127c90cb840e9a1d4bfd6a10d7d8f2d9176e1acc69bad30 \ - --hash=sha256:9eb3e33fdbe43f88c3c75fa608c25e7c47bbd80f48d012763cb67c47f39a7e16 \ - --hash=sha256:9ec49dff7e2b3c85cdeaa412e9d438f0ecd71676fde61ec57027dd392f00c693 \ - --hash=sha256:9f377d0a924e5cc94dc620bc6366fc3e889586a7f18b748901cf016c916e2084 \ - --hash=sha256:a09a6d073fb5789456545bdee2474d14395792faa0527887f2f4ec1a486a59d3 \ - --hash=sha256:a2713a95b47374169409d18103366de1050fe0ea73db358fc7a7acb2880422d4 \ - --hash=sha256:a3b6fb0c207cc661fa0bf8c66d8d9b657331ccc814f4719468af61034b478592 \ - --hash=sha256:a4b88ebe35ce54205c7074f7302bd08a4cb83256a3e0870c72d6f68a3aaf8e49 \ - --hash=sha256:a88d13e7ca367394908f8a276b89d04a3652044612b9a408a0bb22a5ed976a1a \ - --hash=sha256:ac6cde5fba8d7d8c6ac963dbb0256a9854e9fafff52fbcc58fdf819357892c3e \ - --hash=sha256:ae32f24bbfb7dbb485a24b30b1149e2f200be94777232aeadba3eecece4d0aa4 \ - --hash=sha256:b009194665bcd128e23eaddef362e745601afa4641930848af4c8559e88f18f9 \ - --hash=sha256:b1e56bab2e12b2b9ed300218c351ee2a3d8c8fdab5b1ec6193e11a817767e47b \ - --hash=sha256:b395bbca716c38bef3c764f187860e88c724b342c26275bc03e906142fc5964f \ - --hash=sha256:b59d13c443f8e049d9e94099c7e412e34610f1f49be0f230ec656a10692a5802 \ - --hash=sha256:ba2715d842ffa787be87cbfce150d5e88c87a98e0b62e0f5aa489169a393dbbb \ - --hash=sha256:bb7fb776645af5cc58ab804c58d7eba545a97e047254a52ce89c157b5af6cd0b \ - --hash=sha256:c038a8fdc8103cd51dbd986ecdce141473ffd9775a7a8057a6ed9c3653478011 \ - --hash=sha256:c20423ce14771d98353d2e25e83591fa75dfa90a3c1848f3d7c68243b4fbded3 \ - --hash=sha256:c5c94825f744694c4b8db20b71dba9a257cd2ba8e010a803042123f3a25d50d7 \ - --hash=sha256:cf00e5db968c3f67eccd2778574cf64d8b27d95b237770aa32400bd7a1ca4f6c \ - --hash=sha256:d23b5fe492b0805a50d3371e8a728a9134d8de5447dce4c885f5587294750734 \ - --hash=sha256:d7bc4b7f9c4921eba72677cd9fedd2308f4a4ca3e12fab58935295ad9ea98700 \ - --hash=sha256:d8a9b889aeabd7a4e9af0b7f4ab5ad94d42e7ff679aaec6d0db21e3b639ad58d \ - --hash=sha256:dacd50501cd017f8cccb328da0c90823511d70d24a323196826d923aad865901 \ - --hash=sha256:e036a3a645fe92309ec34b918394bb377950cbb43039a97edae6c08db64b23e2 \ - --hash=sha256:e09a0a06348a2dd73e7213353c90d709502d9786219f69b731f6caa0efeb46f5 \ - --hash=sha256:e0c8e31cfcc4592cb200160344b2fb6ae0f9e4effe06c644b5a125d4ae5ebe23 \ - --hash=sha256:e1b4951125ec10c70802f2cb09736c895861cd39fd9dcb35107b4dc8ae6220b8 \ - --hash=sha256:e2a9ea08e8c58bb17655630198833109227dea914cd20be660f52215f6de5613 \ - --hash=sha256:e3403f24bcb9c3b29113611c3c16a2a447c3953ecf86b79775e7be06f7ae7ccb \ - --hash=sha256:e574a7d61cf10351d734bcddabbe15ede0eaa8a02070d85446875dc11189a251 \ - --hash=sha256:e67446b19e014d37342f7195f592a2a948141d15a312fe0e700c2fd2f03124f6 \ - --hash=sha256:e736c93e9c274fce6419af4aac199984d866e55f8a4cec9114671d0ea9688780 \ - --hash=sha256:e7c952aefdf2460f4ae55c5e9c3e80aa72f706a6317e06020f80e96253b1accd \ - --hash=sha256:e7f8659a48995edee7229522984bd1009c1213929c769c2daa80b40fe49a180c \ - --hash=sha256:e96eb1a34396e9430c19d8338d2ec33015e4a87ef2b4449db94c22412e25ccdf \ - --hash=sha256:ec7534e63ae0f3759df3a1ed4fa6bc8f75082a924b590619c0dd2f76d7043caa \ - --hash=sha256:ed2f9c7216e53c3df02264f25d824b079cc5914f9e2deba94155190ef648ee40 \ - --hash=sha256:eeacf451c99b4525f700f078becff32c32ec327b10dcf31306a8a52d78166de7 \ - --hash=sha256:f10d9c0b0188fe85398c61147bbd2a657d616c876863bfeff43376e0e3134673 \ - --hash=sha256:f2bef8237544f4e42878c61cef4e2839fee6346dc60f5739f876a9c50be7fcdb \ - --hash=sha256:f33c8748abef4d8717bb20e8fb1b3e07c6adacb7fd6beaae971a764cf5f30d61 \ - --hash=sha256:f7c183e786e299b5d6c49fb43a769f8eb8e04a2726a2bd5887b98b5cc2d67940 \ - --hash=sha256:fa4dcb605c6f82a80c7f95713c2b11c3b8e9893b3ebd2bc9bde93165ed6107be \ - --hash=sha256:fa89cb11bc71a63b69568d5b8a25c3ca25b6d54c15f907ca1c130d72f320b76b \ - --hash=sha256:fe242cd381e0fb65758faf5ad96c2e460df6ee5b2de1072fe97e4127927e00b4 \ - --hash=sha256:fe91b87fc295973096251e2d25a811388e7d8adf3bd2b97ef6ae78bc4ac6c476 \ - --hash=sha256:fed38a5edb7945f4d1bcabe2fcd05db4f6ec7e0e82560088b754f7e08d93772d \ - --hash=sha256:ff0a7b0a82a7ab905cbda74006318d1b12e37c797eb1b0d4eb3e316cf47f658f \ - --hash=sha256:ff15c147b2ad66da1f2cbb0622313f2242d8e6e8f9b79b5206c84523a4473248 \ - --hash=sha256:ff5e771f5dcbc81c64898c597a434f7682f2259e0cd666932a913d53d1341d1a +aiohttp==3.13.3 \ + --hash=sha256:01ad2529d4b5035578f5081606a465f3b814c542882804e2e8cda61adf5c71bf \ + --hash=sha256:042e9e0bcb5fba81886c8b4fbb9a09d6b8a00245fd8d88e4d989c1f96c74164c \ + --hash=sha256:05861afbbec40650d8a07ea324367cb93e9e8cc7762e04dd4405df99fa65159c \ + --hash=sha256:084911a532763e9d3dd95adf78a78f4096cd5f58cdc18e6fdbc1b58417a45423 \ + --hash=sha256:0add0900ff220d1d5c5ebbf99ed88b0c1bbf87aa7e4262300ed1376a6b13414f \ + --hash=sha256:0db318f7a6f065d84cb1e02662c526294450b314a02bd9e2a8e67f0d8564ce40 \ + --hash=sha256:10b47b7ba335d2e9b1239fa571131a87e2d8ec96b333e68b2a305e7a98b0bae2 \ + --hash=sha256:1449ceddcdbcf2e0446957863af03ebaaa03f94c090f945411b61269e2cb5daf \ + --hash=sha256:147e422fd1223005c22b4fe080f5d93ced44460f5f9c105406b753612b587821 \ + --hash=sha256:1cb93e166e6c28716c8c6aeb5f99dfb6d5ccf482d29fe9bf9a794110e6d0ab64 \ + --hash=sha256:215a685b6fbbfcf71dfe96e3eba7a6f58f10da1dfdf4889c7dd856abe430dca7 \ + --hash=sha256:2712039939ec963c237286113c68dbad80a82a4281543f3abf766d9d73228998 \ + --hash=sha256:27234ef6d85c914f9efeb77ff616dbf4ad2380be0cda40b4db086ffc7ddd1b7d \ + --hash=sha256:28e027cf2f6b641693a09f631759b4d9ce9165099d2b5d92af9bd4e197690eea \ + --hash=sha256:2b8d8ddba8f95ba17582226f80e2de99c7a7948e66490ef8d947e272a93e9463 \ + --hash=sha256:2ba0eea45eb5cc3172dbfc497c066f19c41bac70963ea1a67d51fc92e4cf9a80 \ + --hash=sha256:2be0e9ccf23e8a94f6f0650ce06042cefc6ac703d0d7ab6c7a917289f2539ad4 \ + --hash=sha256:2e41b18a58da1e474a057b3d35248d8320029f61d70a37629535b16a0c8f3767 \ + --hash=sha256:2eb752b102b12a76ca02dff751a801f028b4ffbbc478840b473597fc91a9ed43 \ + --hash=sha256:2fc82186fadc4a8316768d61f3722c230e2c1dcab4200d52d2ebdf2482e47592 \ + --hash=sha256:2fff83cfc93f18f215896e3a190e8e5cb413ce01553901aca925176e7568963a \ + --hash=sha256:31a83ea4aead760dfcb6962efb1d861db48c34379f2ff72db9ddddd4cda9ea2e \ + --hash=sha256:34749271508078b261c4abb1767d42b8d0c0cc9449c73a4df494777dc55f0687 \ + --hash=sha256:34bac00a67a812570d4a460447e1e9e06fae622946955f939051e7cc895cfab8 \ + --hash=sha256:37239e9f9a7ea9ac5bf6b92b0260b01f8a22281996da609206a84df860bc1261 \ + --hash=sha256:37da61e244d1749798c151421602884db5270faf479cf0ef03af0ff68954c9dd \ + --hash=sha256:3b61b7169ababd7802f9568ed96142616a9118dd2be0d1866e920e77ec8fa92a \ + --hash=sha256:3d9908a48eb7416dc1f4524e69f1d32e5d90e3981e4e37eb0aa1cd18f9cfa2a4 \ + --hash=sha256:3dd4dce1c718e38081c8f35f323209d4c1df7d4db4bab1b5c88a6b4d12b74587 \ + --hash=sha256:4021b51936308aeea0367b8f006dc999ca02bc118a0cc78c303f50a2ff6afb91 \ + --hash=sha256:40c5e40ecc29ba010656c18052b877a1c28f84344825efa106705e835c28530f \ + --hash=sha256:425c126c0dc43861e22cb1c14ba4c8e45d09516d0a3ae0a3f7494b79f5f233a3 \ + --hash=sha256:44531a36aa2264a1860089ffd4dce7baf875ee5a6079d5fb42e261c704ef7344 \ + --hash=sha256:48e377758516d262bde50c2584fc6c578af272559c409eecbdd2bae1601184d6 \ + --hash=sha256:49a03727c1bba9a97d3e93c9f93ca03a57300f484b6e935463099841261195d3 \ + --hash=sha256:4ae5b5a0e1926e504c81c5b84353e7a5516d8778fbbff00429fe7b05bb25cbce \ + --hash=sha256:4e239d501f73d6db1522599e14b9b321a7e3b1de66ce33d53a765d975e9f4808 \ + --hash=sha256:56339a36b9f1fc708260c76c87e593e2afb30d26de9ae1eb445b5e051b98a7a1 \ + --hash=sha256:568f416a4072fbfae453dcf9a99194bbb8bdeab718e08ee13dfa2ba0e4bebf29 \ + --hash=sha256:5b179331a481cb5529fca8b432d8d3c7001cb217513c94cd72d668d1248688a3 \ + --hash=sha256:5b6073099fb654e0a068ae678b10feff95c5cae95bbfcbfa7af669d361a8aa6b \ + --hash=sha256:5d2d94f1f5fcbe40838ac51a6ab5704a6f9ea42e72ceda48de5e6b898521da51 \ + --hash=sha256:5dff64413671b0d3e7d5918ea490bdccb97a4ad29b3f311ed423200b2203e01c \ + --hash=sha256:5e1d8c8b8f1d91cd08d8f4a3c2b067bfca6ec043d3ff36de0f3a715feeedf926 \ + --hash=sha256:5f8ca7f2bb6ba8348a3614c7918cc4bb73268c5ac2a207576b7afea19d3d9f64 \ + --hash=sha256:642f752c3eb117b105acbd87e2c143de710987e09860d674e068c4c2c441034f \ + --hash=sha256:65d2ccb7eabee90ce0503c17716fc77226be026dcc3e65cce859a30db715025b \ + --hash=sha256:693781c45a4033d31d4187d2436f5ac701e7bbfe5df40d917736108c1cc7436e \ + --hash=sha256:694976222c711d1d00ba131904beb60534f93966562f64440d0c9d41b8cdb440 \ + --hash=sha256:697753042d57f4bf7122cab985bf15d0cef23c770864580f5af4f52023a56bd6 \ + --hash=sha256:69c56fbc1993fa17043e24a546959c0178fe2b5782405ad4559e6c13975c15e3 \ + --hash=sha256:6de499a1a44e7de70735d0b39f67c8f25eb3d91eb3103be99ca0fa882cdd987d \ + --hash=sha256:6fc0e2337d1a4c3e6acafda6a78a39d4c14caea625124817420abceed36e2415 \ + --hash=sha256:75ca857eba4e20ce9f546cd59c7007b33906a4cd48f2ff6ccf1ccfc3b646f279 \ + --hash=sha256:7a4a94eb787e606d0a09404b9c38c113d3b099d508021faa615d70a0131907ce \ + --hash=sha256:7b5e8fe4de30df199155baaf64f2fcd604f4c678ed20910db8e2c66dc4b11603 \ + --hash=sha256:7bfdc049127717581866fa4708791220970ce291c23e28ccf3922c700740fdc0 \ + --hash=sha256:7e63f210bc1b57ef699035f2b4b6d9ce096b5914414a49b0997c839b2bd2223c \ + --hash=sha256:7f9120f7093c2a32d9647abcaf21e6ad275b4fbec5b55969f978b1a97c7c86bf \ + --hash=sha256:8057c98e0c8472d8846b9c79f56766bcc57e3e8ac7bfd510482332366c56c591 \ + --hash=sha256:80dd4c21b0f6237676449c6baaa1039abae86b91636b6c91a7f8e61c87f89540 \ + --hash=sha256:81e97251d9298386c2b7dbeb490d3d1badbdc69107fb8c9299dd04eb39bddc0e \ + --hash=sha256:82611aeec80eb144416956ec85b6ca45a64d76429c1ed46ae1b5f86c6e0c9a26 \ + --hash=sha256:8542f41a62bcc58fc7f11cf7c90e0ec324ce44950003feb70640fc2a9092c32a \ + --hash=sha256:859bd3f2156e81dd01432f5849fc73e2243d4a487c4fd26609b1299534ee1845 \ + --hash=sha256:87797e645d9d8e222e04160ee32aa06bc5c163e8499f24db719e7852ec23093a \ + --hash=sha256:87b9aab6d6ed88235aa2970294f496ff1a1f9adcd724d800e9b952395a80ffd9 \ + --hash=sha256:8a60e60746623925eab7d25823329941aee7242d559baa119ca2b253c88a7bd6 \ + --hash=sha256:90455115e5da1c3c51ab619ac57f877da8fd6d73c05aacd125c5ae9819582aba \ + --hash=sha256:90751b8eed69435bac9ff4e3d2f6b3af1f57e37ecb0fbeee59c0174c9e2d41df \ + --hash=sha256:947c26539750deeaee933b000fb6517cc770bbd064bad6033f1cff4803881e43 \ + --hash=sha256:96d604498a7c782cb15a51c406acaea70d8c027ee6b90c569baa6e7b93073679 \ + --hash=sha256:988a8c5e317544fdf0d39871559e67b6341065b87fceac641108c2096d5506b7 \ + --hash=sha256:9a9dc347e5a3dc7dfdbc1f82da0ef29e388ddb2ed281bfce9dd8248a313e62b7 \ + --hash=sha256:9ae8dd55c8e6c4257eae3a20fd2c8f41edaea5992ed67156642493b8daf3cecc \ + --hash=sha256:9af5e68ee47d6534d36791bbe9b646d2a7c7deb6fc24d7943628edfbb3581f29 \ + --hash=sha256:9b174f267b5cfb9a7dba9ee6859cecd234e9a681841eb85068059bc867fb8f02 \ + --hash=sha256:9bf9f7a65e7aa20dd764151fb3d616c81088f91f8df39c3893a536e279b4b984 \ + --hash=sha256:9d4c940f02f49483b18b079d1c27ab948721852b281f8b015c058100e9421dd1 \ + --hash=sha256:9ebf57d09e131f5323464bd347135a88622d1c0976e88ce15b670e7ad57e4bd6 \ + --hash=sha256:a19884d2ee70b06d9204b2727a7b9f983d0c684c650254679e716b0b77920632 \ + --hash=sha256:a1e53262fd202e4b40b70c3aff944a8155059beedc8a89bba9dc1f9ef06a1b56 \ + --hash=sha256:a2212ad43c0833a873d0fb3c63fa1bacedd4cf6af2fee62bf4b739ceec3ab239 \ + --hash=sha256:a45530014d7a1e09f4a55f4f43097ba0fd155089372e105e4bff4ca76cb1b168 \ + --hash=sha256:a949eee43d3782f2daae4f4a2819b2cb9b0c5d3b7f7a927067cc84dafdbb9f88 \ + --hash=sha256:add1da70de90a2569c5e15249ff76a631ccacfe198375eead4aadf3b8dc849dc \ + --hash=sha256:af71fff7bac6bb7508956696dce8f6eec2bbb045eceb40343944b1ae62b5ef11 \ + --hash=sha256:b04be762396457bef43f3597c991e192ee7da460a4953d7e647ee4b1c28e7046 \ + --hash=sha256:b0d95340658b9d2f11d9697f59b3814a9d3bb4b7a7c20b131df4bcef464037c0 \ + --hash=sha256:b1a6102b4d3ebc07dad44fbf07b45bb600300f15b552ddf1851b5390202ea2e3 \ + --hash=sha256:b46020d11d23fe16551466c77823df9cc2f2c1e63cc965daf67fa5eec6ca1877 \ + --hash=sha256:b556c85915d8efaed322bf1bdae9486aa0f3f764195a0fb6ee962e5c71ef5ce1 \ + --hash=sha256:b903a4dfee7d347e2d87697d0713be59e0b87925be030c9178c5faa58ea58d5c \ + --hash=sha256:b928f30fe49574253644b1ca44b1b8adbd903aa0da4b9054a6c20fc7f4092a25 \ + --hash=sha256:b99281b0704c103d4e11e72a76f1b543d4946fea7dd10767e7e1b5f00d4e5704 \ + --hash=sha256:bae5c2ed2eae26cc382020edad80d01f36cb8e746da40b292e68fec40421dc6a \ + --hash=sha256:bb4f7475e359992b580559e008c598091c45b5088f28614e855e42d39c2f1033 \ + --hash=sha256:bbe7d4cecacb439e2e2a8a1a7b935c25b812af7a5fd26503a66dadf428e79ec1 \ + --hash=sha256:bfc1cc2fe31a6026a8a88e4ecfb98d7f6b1fec150cfd708adbfd1d2f42257c29 \ + --hash=sha256:c014c7ea7fb775dd015b2d3137378b7be0249a448a1612268b5a90c2d81de04d \ + --hash=sha256:c048058117fd649334d81b4b526e94bde3ccaddb20463a815ced6ecbb7d11160 \ + --hash=sha256:c0e2d366af265797506f0283487223146af57815b388623f0357ef7eac9b209d \ + --hash=sha256:c19b90316ad3b24c69cd78d5c9b4f3aa4497643685901185b65166293d36a00f \ + --hash=sha256:c685f2d80bb67ca8c3837823ad76196b3694b0159d232206d1e461d3d434666f \ + --hash=sha256:c6b8568a3bb5819a0ad087f16d40e5a3fb6099f39ea1d5625a3edc1e923fc538 \ + --hash=sha256:d32764c6c9aafb7fb55366a224756387cd50bfa720f32b88e0e6fa45b27dcf29 \ + --hash=sha256:d5a372fd5afd301b3a89582817fdcdb6c34124787c70dbcc616f259013e7eef7 \ + --hash=sha256:d60ac9663f44168038586cab2157e122e46bdef09e9368b37f2d82d354c23f72 \ + --hash=sha256:dca68018bf48c251ba17c72ed479f4dafe9dbd5a73707ad8d28a38d11f3d42af \ + --hash=sha256:de2c184bb1fe2cbd2cefba613e9db29a5ab559323f994b6737e370d3da0ac455 \ + --hash=sha256:e3531d63d3bdfa7e3ac5e9b27b2dd7ec9df3206a98e0b3445fa906f233264c57 \ + --hash=sha256:e50a2e1404f063427c9d027378472316201a2290959a295169bcf25992d04558 \ + --hash=sha256:e636b3c5f61da31a92bf0d91da83e58fdfa96f178ba682f11d24f31944cdd28c \ + --hash=sha256:ea37047c6b367fd4bd632bff8077449b8fa034b69e812a18e0132a00fae6e808 \ + --hash=sha256:f33ed1a2bf1997a36661874b017f5c4b760f41266341af36febaf271d179f6d7 \ + --hash=sha256:f76c1e3fe7d7c8afad7ed193f89a292e1999608170dcc9751a7462a87dfd5bc0 \ + --hash=sha256:f9444f105664c4ce47a2a7171a2418bce5b7bae45fb610f4e2c36045d85911d3 \ + --hash=sha256:fc290605db2a917f6e81b0e1e0796469871f5af381ce15c604a3c5c7e51cb730 \ + --hash=sha256:fc353029f176fd2b3ec6cfc71be166aba1936fe5d73dd1992ce289ca6647a9aa \ + --hash=sha256:fee0c6bc7db1de362252affec009707a17478a00ec69f797d23ca256e36d5940 # via # aiobotocore # fsspec @@ -160,9 +160,9 @@ annotated-types==0.7.0 \ --hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 \ --hash=sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89 # via pydantic -anyio==4.12.0 \ - --hash=sha256:73c693b567b0c55130c104d0b43a9baf3aa6a31fc6110116509f27bf75e21ec0 \ - --hash=sha256:dad2376a628f98eeca4881fc56cd06affd18f659b17a747d3ff0307ced94b1bb +anyio==4.12.1 \ + --hash=sha256:41cfcc3a4c85d3f05c932da7c26d0201ac36f72abd4435ba90d0464a3ffed703 \ + --hash=sha256:d405828884fc140aa80a3c667b8beed277f1dfedec42ba031bd6ac3db606ab6c # via # elasticsearch # httpx @@ -238,9 +238,9 @@ async-timeout==5.0.1 \ # via # aiohttp # redis -atpublic==5.1 \ - --hash=sha256:135783dbd887fbddb6ef032d104da70c124f2b44b9e2d79df07b9da5334825e3 \ - --hash=sha256:abc1f4b3dbdd841cc3539e4b5e4f3ad41d658359de704e30cb36da4d4e9d3022 +atpublic==7.0.0 \ + --hash=sha256:466ef10d0c8bbd14fd02a5fbd5a8b6af6a846373d91106d3a07c16d72d96b63e \ + --hash=sha256:6702bd9e7245eb4e8220a3e222afcef7f87412154732271ee7deee4433b72b4b # via ibis-framework attrs==25.4.0 \ --hash=sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11 \ @@ -250,9 +250,9 @@ attrs==25.4.0 \ # jsonlines # jsonschema # referencing -azure-core==1.37.0 \ - --hash=sha256:7064f2c11e4b97f340e8e8c6d923b822978be3016e46b7bc4aa4b337cfb48aee \ - --hash=sha256:b3abe2c59e7d6bb18b38c275a5029ff80f98990e7c90a5e646249a56630fcc19 +azure-core==1.38.0 \ + --hash=sha256:8194d2682245a3e4e3151a667c686464c3786fed7918b394d035bdcd61bb5993 \ + --hash=sha256:ab0c9b2cd71fecb1842d52c965c95285d3cfb38902f6766e4a471f1cd8905335 # via # azure-identity # azure-storage-blob @@ -260,9 +260,9 @@ azure-identity==1.25.1 \ --hash=sha256:87ca8328883de6036443e1c37b40e8dc8fb74898240f61071e09d2e369361456 \ --hash=sha256:e9edd720af03dff020223cd269fa3a61e8f345ea75443858273bcb44844ab651 # via feast (setup.py) -azure-storage-blob==12.27.1 \ - --hash=sha256:65d1e25a4628b7b6acd20ff7902d8da5b4fde8e46e19c8f6d213a3abc3ece272 \ - --hash=sha256:a1596cc4daf5dac9be115fcb5db67245eae894cf40e4248243754261f7b674a6 +azure-storage-blob==12.28.0 \ + --hash=sha256:00fb1db28bf6a7b7ecaa48e3b1d5c83bfadacc5a678b77826081304bd87d6461 \ + --hash=sha256:e7d98ea108258d29aa0efbfd591b2e2075fa1722a2fae8699f0b3c9de11eff41 # via feast (setup.py) babel==2.17.0 \ --hash=sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d \ @@ -276,9 +276,9 @@ beautifulsoup4==4.14.3 \ # via # docling # nbconvert -bigtree==1.0.4 \ - --hash=sha256:e4af0c5bc0d2cd72e18442965e4509f642b16a0de65db6d0ec116e30f959010c \ - --hash=sha256:f58a3238bb9b1142d893c9de4921bfd18d435427c75e0c168dd580eabf6dc7fd +bigtree==1.1.0 \ + --hash=sha256:3f1ff63d2d66d31bf19855ddda8884637edf8dd1fc1aa118cf3a750580ece48b \ + --hash=sha256:f54f99d842732c91cce39c596a3755a2e8325b1cab5bc6876f5b15bd3942081c # via feast (setup.py) bleach[css]==6.3.0 \ --hash=sha256:6f3b91b1c0a02bb9a78b5a454c92506aa0fdf197e1d5e114d2e00c6f64306d22 \ @@ -301,17 +301,13 @@ botocore==1.38.46 \ # moto # s3transfer # snowflake-connector-python -build==1.3.0 \ - --hash=sha256:698edd0ea270bde950f53aed21f3a0135672206f3911e0176261a31e0e07b397 \ - --hash=sha256:7145f0b5061ba90a1500d60bd1b13ca0a8a4cebdd0cc16ed8adf1c0e739f43b4 +build==1.4.0 \ + --hash=sha256:6a07c1b8eb6f2b311b96fcbdbce5dab5fe637ffda0fd83c9cac622e927501596 \ + --hash=sha256:f1b91b925aa322be454f8330c6fb48b465da993d1e7e7e6fa35027ec49f3c936 # via # feast (setup.py) # pip-tools # singlestoredb -cachetools==6.2.4 \ - --hash=sha256:69a7a52634fed8b8bf6e24a050fb60bff1c9bd8f6d24572b99c32d4e71e62a51 \ - --hash=sha256:82c5c05585e70b6ba2d3ae09ea60b79548872185d2f24ae1f2709d37299fd607 - # via google-auth cassandra-driver==3.29.3 \ --hash=sha256:064bf45d3ca87239e11168c0110676fc64f7fdbddb4bcba9be787b8ad5f6d734 \ --hash=sha256:0785f6e0986089e922378ae3b64b5f696440aeb595fb84c2cf3ccef220c6ae91 \ @@ -345,9 +341,9 @@ cassandra-driver==3.29.3 \ --hash=sha256:fcf45725ae1751cb934b9b827a7d9cd899bbd09eb1ad28e2160b4584de35ba77 \ --hash=sha256:ff6b82ee4533f6fd4474d833e693b44b984f58337173ee98ed76bce08721a636 # via feast (setup.py) -certifi==2025.11.12 \ - --hash=sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b \ - --hash=sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316 +certifi==2026.1.4 \ + --hash=sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c \ + --hash=sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120 # via # clickhouse-connect # docling @@ -847,9 +843,9 @@ dask[dataframe]==2025.12.0 \ --hash=sha256:4213ce9c5d51d6d89337cff69de35d902aa0bf6abdb8a25c942a4d0281f3a598 \ --hash=sha256:8d478f2aabd025e2453cf733ad64559de90cf328c20209e4574e9543707c3e1b # via feast (setup.py) -datasets==4.0.0 \ - --hash=sha256:7ef95e62025fd122882dbce6cb904c8cd3fbc829de6669a5eb939c77d50e203d \ - --hash=sha256:9657e7140a9050db13443ba21cb5de185af8af944479b00e7ff1e00a61c8dbf1 +datasets==4.4.2 \ + --hash=sha256:6f5ef3417504d9cd663c71c1b90b9a494ff4c2076a2cd6a6e40ceee6ad95befc \ + --hash=sha256:9de16e415c4ba4713eac0493f7c7dc74f3aa21599297f00cc6ddab409cb7b24b # via feast (setup.py) db-dtypes==1.5.0 \ --hash=sha256:abdbb2e4eb965800ed6f98af0c5c1cafff9063ace09114be2d26a7f046be2c8a \ @@ -910,9 +906,9 @@ deprecation==2.1.0 \ --hash=sha256:72b3bde64e5d778694b0cf68178aed03d15e15477116add3fb773e581f9518ff \ --hash=sha256:a10811591210e1fb0e768a8c25517cabeabcba6f0bf96564f8ff45189f90b14a # via python-keycloak -dill==0.3.8 \ - --hash=sha256:3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca \ - --hash=sha256:c36ca9ffb54365bdd2f8eb3eff7d2a21237f8452b57ace88b1ac615b7e815bd7 +dill==0.3.9 \ + --hash=sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a \ + --hash=sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c # via # feast (setup.py) # datasets @@ -929,9 +925,9 @@ docling==2.27.0 \ --hash=sha256:1288ed75b27e33bf94daff34faffc6d11b7d7ccc13e3df84fb24adad3991f72d \ --hash=sha256:faba35662612a2c687a3a463e501d95f645316436084af92a0442ce162429a3d # via feast (setup.py) -docling-core[chunking]==2.57.0 \ - --hash=sha256:24b71172e8bc4fbe2b4213b29f51878114f4c13f25fc0bc9920168505c76c1a3 \ - --hash=sha256:398768b4d275ad2e11703ad9446fd0315a9a5fc8d09bc45ed207302d844d6ed5 +docling-core[chunking]==2.59.0 \ + --hash=sha256:014e1075c41fdac0932f25226d6c0972cb9772d866efcf8d04ca2abe246797c1 \ + --hash=sha256:08900edbaf86a0acdd3d1fb5d47284f3826f68638245ba4a03aba1558d0067d9 # via # docling # docling-ibm-models @@ -979,59 +975,48 @@ docutils==0.19 \ --hash=sha256:33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6 \ --hash=sha256:5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc # via sphinx -duckdb==1.1.3 \ - --hash=sha256:00cca22df96aa3473fe4584f84888e2cf1c516e8c2dd837210daec44eadba586 \ - --hash=sha256:08935700e49c187fe0e9b2b86b5aad8a2ccd661069053e38bfaed3b9ff795efd \ - --hash=sha256:0897f83c09356206ce462f62157ce064961a5348e31ccb2a557a7531d814e70e \ - --hash=sha256:09c68522c30fc38fc972b8a75e9201616b96ae6da3444585f14cf0d116008c95 \ - --hash=sha256:0a55169d2d2e2e88077d91d4875104b58de45eff6a17a59c7dc41562c73df4be \ - --hash=sha256:0ba6baa0af33ded836b388b09433a69b8bec00263247f6bf0a05c65c897108d3 \ - --hash=sha256:183ac743f21c6a4d6adfd02b69013d5fd78e5e2cd2b4db023bc8a95457d4bc5d \ - --hash=sha256:1aa3abec8e8995a03ff1a904b0e66282d19919f562dd0a1de02f23169eeec461 \ - --hash=sha256:1c0226dc43e2ee4cc3a5a4672fddb2d76fd2cf2694443f395c02dd1bea0b7fce \ - --hash=sha256:1d9ab6143e73bcf17d62566e368c23f28aa544feddfd2d8eb50ef21034286f24 \ - --hash=sha256:2141c6b28162199999075d6031b5d63efeb97c1e68fb3d797279d31c65676269 \ - --hash=sha256:252d9b17d354beb9057098d4e5d5698e091a4f4a0d38157daeea5fc0ec161670 \ - --hash=sha256:25fb02629418c0d4d94a2bc1776edaa33f6f6ccaa00bd84eb96ecb97ae4b50e9 \ - --hash=sha256:2f073d15d11a328f2e6d5964a704517e818e930800b7f3fa83adea47f23720d3 \ - --hash=sha256:35c420f58abc79a68a286a20fd6265636175fadeca1ce964fc8ef159f3acc289 \ - --hash=sha256:4ebf5f60ddbd65c13e77cddb85fe4af671d31b851f125a4d002a313696af43f1 \ - --hash=sha256:4f0e2e5a6f5a53b79aee20856c027046fba1d73ada6178ed8467f53c3877d5e0 \ - --hash=sha256:51c6d79e05b4a0933672b1cacd6338f882158f45ef9903aef350c4427d9fc898 \ - --hash=sha256:51e7dbd968b393343b226ab3f3a7b5a68dee6d3fe59be9d802383bf916775cb8 \ - --hash=sha256:5ace6e4b1873afdd38bd6cc8fcf90310fb2d454f29c39a61d0c0cf1a24ad6c8d \ - --hash=sha256:5d57776539211e79b11e94f2f6d63de77885f23f14982e0fac066f2885fcf3ff \ - --hash=sha256:6411e21a2128d478efbd023f2bdff12464d146f92bc3e9c49247240448ace5a6 \ - --hash=sha256:647f17bd126170d96a38a9a6f25fca47ebb0261e5e44881e3782989033c94686 \ - --hash=sha256:68c3a46ab08836fe041d15dcbf838f74a990d551db47cb24ab1c4576fc19351c \ - --hash=sha256:77f26884c7b807c7edd07f95cf0b00e6d47f0de4a534ac1706a58f8bc70d0d31 \ - --hash=sha256:7c71169fa804c0b65e49afe423ddc2dc83e198640e3b041028da8110f7cd16f7 \ - --hash=sha256:80158f4c7c7ada46245837d5b6869a336bbaa28436fbb0537663fa324a2750cd \ - --hash=sha256:872d38b65b66e3219d2400c732585c5b4d11b13d7a36cd97908d7981526e9898 \ - --hash=sha256:8ee97ec337794c162c0638dda3b4a30a483d0587deda22d45e1909036ff0b739 \ - --hash=sha256:911d58c22645bfca4a5a049ff53a0afd1537bc18fedb13bc440b2e5af3c46148 \ - --hash=sha256:9c619e4849837c8c83666f2cd5c6c031300cd2601e9564b47aa5de458ff6e69d \ - --hash=sha256:9d0767ada9f06faa5afcf63eb7ba1befaccfbcfdac5ff86f0168c673dd1f47aa \ - --hash=sha256:9e3f5cd604e7c39527e6060f430769b72234345baaa0987f9500988b2814f5e4 \ - --hash=sha256:a1f83c7217c188b7ab42e6a0963f42070d9aed114f6200e3c923c8899c090f16 \ - --hash=sha256:a1fa0c502f257fa9caca60b8b1478ec0f3295f34bb2efdc10776fc731b8a6c5f \ - --hash=sha256:a30dd599b8090ea6eafdfb5a9f1b872d78bac318b6914ada2d35c7974d643640 \ - --hash=sha256:a433ae9e72c5f397c44abdaa3c781d94f94f4065bcbf99ecd39433058c64cb38 \ - --hash=sha256:a4748635875fc3c19a7320a6ae7410f9295557450c0ebab6d6712de12640929a \ - --hash=sha256:b74e121ab65dbec5290f33ca92301e3a4e81797966c8d9feef6efdf05fc6dafd \ - --hash=sha256:c443d3d502335e69fc1e35295fcfd1108f72cb984af54c536adfd7875e79cee5 \ - --hash=sha256:c5336939d83837af52731e02b6a78a446794078590aa71fd400eb17f083dda3e \ - --hash=sha256:cddc6c1a3b91dcc5f32493231b3ba98f51e6d3a44fe02839556db2b928087378 \ - --hash=sha256:d08308e0a46c748d9c30f1d67ee1143e9c5ea3fbcccc27a47e115b19e7e78aa9 \ - --hash=sha256:d5724fd8a49e24d730be34846b814b98ba7c304ca904fbdc98b47fa95c0b0cee \ - --hash=sha256:e4ef7ba97a65bd39d66f2a7080e6fb60e7c3e41d4c1e19245f90f53b98e3ac32 \ - --hash=sha256:e59087dbbb63705f2483544e01cccf07d5b35afa58be8931b224f3221361d537 \ - --hash=sha256:e86006958e84c5c02f08f9b96f4bc26990514eab329b1b4f71049b3727ce5989 \ - --hash=sha256:ecb1dc9062c1cc4d2d88a5e5cd8cc72af7818ab5a3c0f796ef0ffd60cfd3efb4 \ - --hash=sha256:eeacb598120040e9591f5a4edecad7080853aa8ac27e62d280f151f8c862afa3 \ - --hash=sha256:f549af9f7416573ee48db1cf8c9d27aeed245cb015f4b4f975289418c6cf7320 \ - --hash=sha256:f58db1b65593ff796c8ea6e63e2e144c944dd3d51c8d8e40dffa7f41693d35d3 \ - --hash=sha256:f9b47036945e1db32d70e414a10b1593aec641bd4c5e2056873d971cc21e978b +duckdb==1.4.3 \ + --hash=sha256:006aca6a6d6736c441b02ff5c7600b099bb8b7f4de094b8b062137efddce42df \ + --hash=sha256:130c6760f6c573f9c9fe9aba56adba0fab48811a4871b7b8fd667318b4a3e8da \ + --hash=sha256:16952ac05bd7e7b39946695452bf450db1ebbe387e1e7178e10f593f2ea7b9a8 \ + --hash=sha256:1b35491db98ccd11d151165497c084a9d29d3dc42fc80abea2715a6c861ca43d \ + --hash=sha256:1b9b445970fd18274d5ac07a0b24c032e228f967332fb5ebab3d7db27738c0e4 \ + --hash=sha256:1bb8bd5a3dd205983726185b280a211eacc9f5bc0c4d4505bec8c87ac33a8ccb \ + --hash=sha256:1e5457dda91b67258aae30fb1a0df84183a9f6cd27abac1d5536c0d876c6dfa1 \ + --hash=sha256:20c88effaa557a11267706b01419c542fe42f893dee66e5a6daa5974ea2d4a46 \ + --hash=sha256:23a3a077821bed1768a84ac9cbf6b6487ead33e28e62cb118bda5fb8f9e53dea \ + --hash=sha256:23b12854032c1a58d0452e2b212afa908d4ce64171862f3792ba9a596ba7c765 \ + --hash=sha256:274d4a31aba63115f23e7e7b401e3e3a937f3626dc9dea820a9c7d3073f450d2 \ + --hash=sha256:2b195270ff1a661f22cbd547a215baff265b7d4469a76a215c8992b5994107c3 \ + --hash=sha256:2b30245375ea94ab528c87c61fc3ab3e36331180b16af92ee3a37b810a745d24 \ + --hash=sha256:316711a9e852bcfe1ed6241a5f654983f67e909e290495f3562cccdf43be8180 \ + --hash=sha256:366bf607088053dce845c9d24c202c04d78022436cc5d8e4c9f0492de04afbe7 \ + --hash=sha256:4f868a7e6d9b37274a1aa34849ea92aa964e9bd59a5237d6c17e8540533a1e4f \ + --hash=sha256:4fef6a053a1c485292000bf0c338bba60f89d334f6a06fc76ba4085a5a322b76 \ + --hash=sha256:5634e40e1e2d972e4f75bced1fbdd9e9e90faa26445c1052b27de97ee546944a \ + --hash=sha256:6302452e57aef29aae3977063810ed7b2927967b97912947b9cca45c1c21955f \ + --hash=sha256:6db124f53a3edcb32b0a896ad3519e37477f7e67bf4811cb41ab60c1ef74e4c8 \ + --hash=sha256:702dabbc22b27dc5b73e7599c60deef3d8c59968527c36b391773efddd8f4cf1 \ + --hash=sha256:813f189039b46877b5517f1909c7b94a8fe01b4bde2640ab217537ea0fe9b59b \ + --hash=sha256:854b79375fa618f6ffa8d84fb45cbc9db887f6c4834076ea10d20bc106f1fd90 \ + --hash=sha256:8afba22c370f06b7314aa46bfed052509269e482bcfb3f7b1ea0fa17ae49ce42 \ + --hash=sha256:8d080e8d1bf2d226423ec781f539c8f6b6ef3fd42a9a58a7160de0a00877a21f \ + --hash=sha256:8d53b217698a76c4957e2c807dd9295d409146f9d3d7932f372883201ba9d25a \ + --hash=sha256:90f241f25cffe7241bf9f376754a5845c74775e00e1c5731119dc88cd71e0cb2 \ + --hash=sha256:9dc049ba7e906cb49ca2b6d4fbf7b6615ec3883193e8abb93f0bef2652e42dda \ + --hash=sha256:9e625b2b4d52bafa1fd0ebdb0990c3961dac8bb00e30d327185de95b68202131 \ + --hash=sha256:a2813f4635f4d6681cc3304020374c46aca82758c6740d7edbc237fe3aae2744 \ + --hash=sha256:a7c864df027da1ee95f0c32def67e15d02cd4a906c9c1cbae82c09c5112f526b \ + --hash=sha256:a8b0a8764e1b5dd043d168c8f749314f7a1252b5a260fa415adaa26fa3b958fd \ + --hash=sha256:aa26a7406205bc1426cee28bdfdf084f669a5686977dafa4c3ec65873989593c \ + --hash=sha256:caa2164c91f7e91befb1ffb081b3cd97a137117533aef7abe1538b03ad72e3a9 \ + --hash=sha256:d0ff08388ef8b1d1a4c95c321d6c5fa11201b241036b1ee740f9d841df3d6ba2 \ + --hash=sha256:de984cd24a6cbefdd6d4a349f7b9a46e583ca3e58ce10d8def0b20a6e5fcbe78 \ + --hash=sha256:deab351ac43b6282a3270e3d40e3d57b3b50f472d9fd8c30975d88a31be41231 \ + --hash=sha256:ef7ef15347ce97201b1b5182a5697682679b04c3374d5a01ac10ba31cf791b95 \ + --hash=sha256:efa7f1191c59e34b688fcd4e588c1b903a4e4e1f4804945902cf0b20e08a9001 \ + --hash=sha256:fbc63ffdd03835f660155b37a1b6db2005bcd46e5ad398b8cac141eb305d2a3d \ + --hash=sha256:fea43e03604c713e25a25211ada87d30cd2a044d8f27afab5deba26ac49e5268 # via ibis-framework dunamai==1.25.0 \ --hash=sha256:7f9dc687dd3256e613b6cc978d9daabfd2bb5deb8adc541fc135ee423ffa98ab \ @@ -1116,9 +1101,9 @@ fastjsonschema==2.21.2 \ --hash=sha256:1c797122d0a86c5cace2e54bf4e819c36223b552017172f32c5c024a6b77e463 \ --hash=sha256:b1eb43748041c880796cd077f1a07c3d94e93ae84bba5ed36800a33554ae05de # via nbformat -filelock==3.20.1 \ - --hash=sha256:15d9e9a67306188a44baa72f569d2bfd803076269365fdea0934385da4dc361a \ - --hash=sha256:b8360948b351b80f420878d8516519a2204b07aefcdcfd24912a5d33127f188c +filelock==3.20.3 \ + --hash=sha256:18c57ee915c7ec61cff0ecf7f0f869936c7c30191bb0cf406f1341778d0834e1 \ + --hash=sha256:4b0dda527ee31078689fc205ec4f1c1bf7d56cf88b6dc9426c4f230e46c2dce1 # via # datasets # huggingface-hub @@ -1282,9 +1267,9 @@ geomet==1.1.0 \ --hash=sha256:4372fe4e286a34acc6f2e9308284850bd8c4aa5bc12065e2abbd4995900db12f \ --hash=sha256:51e92231a0ef6aaa63ac20c443377ba78a303fd2ecd179dc3567de79f3c11605 # via cassandra-driver -google-api-core[grpc]==2.28.1 \ - --hash=sha256:2b405df02d68e68ce0fbc138559e6036559e685159d148ae5861013dc201baf8 \ - --hash=sha256:4021b0f8ceb77a6fb4de6fde4502cecab45062e66ff4f2895169e0b35bc9466c +google-api-core[grpc]==2.29.0 \ + --hash=sha256:84181be0f8e6b04006df75ddfe728f24489f0af57c96a529ff7cf45bc28797f7 \ + --hash=sha256:d30bc60980daa36e314b5d5a3e5958b0200cb44ca8fa1be2b614e932b75a3ea9 # via # feast (setup.py) # google-cloud-bigquery @@ -1294,9 +1279,9 @@ google-api-core[grpc]==2.28.1 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.45.0 \ - --hash=sha256:82344e86dc00410ef5382d99be677c6043d72e502b625aa4f4afa0bdacca0f36 \ - --hash=sha256:90d3f41b6b72ea72dd9811e765699ee491ab24139f34ebf1ca2b9cc0c38708f3 +google-auth==2.47.0 \ + --hash=sha256:833229070a9dfee1a353ae9877dcd2dec069a8281a4e72e72f77d4a70ff945da \ + --hash=sha256:c516d68336bfde7cf0da26aab674a36fedcf04b37ac4edd59c597178760c3498 # via # google-api-core # google-auth-oauthlib @@ -1315,9 +1300,9 @@ google-auth-oauthlib==1.2.2 \ # via # pandas-gbq # pydata-google-auth -google-cloud-bigquery[pandas]==3.39.0 \ - --hash=sha256:cb375e1d63dea9bd5bf735e66024338f294159d43afdf63e1d023f5fcbbf55ea \ - --hash=sha256:dc7a64921465859105461b43c42562e38e797d7a73feb72b3cfc4865b7b1c5ef +google-cloud-bigquery[pandas]==3.40.0 \ + --hash=sha256:0469bcf9e3dad3cab65b67cce98180c8c0aacf3253d47f0f8e976f299b49b5ab \ + --hash=sha256:b3ccb11caf0029f15b29569518f667553fe08f6f1459b959020c83fbbd8f2e68 # via # feast (setup.py) # pandas-gbq @@ -1746,6 +1731,7 @@ httpx[http2]==0.27.2 \ --hash=sha256:f7c2be1d2f3c3c3160d441802406b206c2b76f5947b11115e6df10c6c65e66c2 # via # feast (setup.py) + # datasets # fastapi-mcp # jupyterlab # mcp @@ -1770,19 +1756,13 @@ hyperframe==6.1.0 \ --hash=sha256:b03380493a519fce58ea5af42e4a42317bf9bd425596f7a0835ffce80f1a42e5 \ --hash=sha256:f630908a00854a7adeabd6382b43923a4c4cd4b821fcb527e6ab9e15382a3b08 # via h2 -ibis-framework[duckdb, mssql]==9.5.0 \ - --hash=sha256:145fe30d94f111cff332580c275ce77725c5ff7086eede93af0b371649d009c0 \ - --hash=sha256:1c8a29277e63ee0dfc289bc8f550164b5e3bdaec1b76b62436c37d331bb4ef84 - # via - # feast (setup.py) - # ibis-substrait -ibis-substrait==4.0.1 \ - --hash=sha256:107ca49383a3cca2fdc88f67ea2f0172620c16fa8f39c9c52305af85dd6180b4 \ - --hash=sha256:614810a173d096fbc49d87a9b419e2162a3c25d8efda1a4d57a389ce56b9041f +ibis-framework[duckdb, mssql]==11.0.0 \ + --hash=sha256:0249185eaabb800e224f448cc06ce8ba168df00b269e132d62629f462eca8842 \ + --hash=sha256:92ff82a96f4eac7f86fa9b6a315e04b5a8f9ed3d186539d88f48e628363f2e72 # via feast (setup.py) -identify==2.6.15 \ - --hash=sha256:1181ef7608e00704db228516541eb83a88a9f94433a8c80bb9b5bd54b1d81757 \ - --hash=sha256:e4f4864b96c6557ef2a1e1c951771838f4edc9df3a72ec7118b338801b11c7bf +identify==2.6.16 \ + --hash=sha256:391ee4d77741d994189522896270b787aed8670389bfd60f326d677d64a6dfb0 \ + --hash=sha256:846857203b5511bbe94d5a352a48ef2359532bc8f6727b5544077a0dcfb24980 # via pre-commit idna==3.11 \ --hash=sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea \ @@ -1824,9 +1804,9 @@ ipykernel==7.1.0 \ --hash=sha256:58a3fc88533d5930c3546dc7eac66c6d288acde4f801e2001e65edc5dc9cf0db \ --hash=sha256:763b5ec6c5b7776f6a8d7ce09b267693b4e5ce75cb50ae696aaefb3c85e1ea4c # via jupyterlab -ipython==8.37.0 \ - --hash=sha256:ca815841e1a41a1e6b73a0b08f3038af9b2252564d01fc405356d34033012216 \ - --hash=sha256:ed87326596b878932dbcb171e3e698845434d8c61b8d8cd474bf663041a9dcf2 +ipython==8.38.0 \ + --hash=sha256:750162629d800ac65bb3b543a14e7a74b0e88063eac9b92124d4b2aa3f6d8e86 \ + --hash=sha256:9cfea8c903ce0867cc2f23199ed8545eb741f3a69420bfcf3743ad1cec856d39 # via # great-expectations # ipykernel @@ -1873,9 +1853,9 @@ joblib==1.5.3 \ --hash=sha256:5fc3c5039fc5ca8c0276333a188bbd59d6b7ab37fe6632daa76bc7f9ec18e713 \ --hash=sha256:8561a3269e6801106863fd0d6d84bb737be9e7631e33aaed3fb9ce5953688da3 # via scikit-learn -json5==0.12.1 \ - --hash=sha256:b2743e77b3242f8d03c143dd975a6ec7c52e2f2afe76ed934e53503dd4ad4990 \ - --hash=sha256:d9c9b3bc34a5f54d43c35e11ef7cb87d8bdd098c6ace87117a7b7e83e705c1d5 +json5==0.13.0 \ + --hash=sha256:9a08e1dd65f6a4d4c6fa82d216cf2477349ec2346a38fd70cc11d2557499fbcc \ + --hash=sha256:b1edf8d487721c0bf64d83c28e91280781f6e21f4a797d3261c7c828d4c165bf # via jupyterlab-server jsonlines==4.0.0 \ --hash=sha256:0c6d2c09117550c089995247f605ae4cf77dd1533041d366351f6f298822ea74 \ @@ -1895,9 +1875,9 @@ jsonref==1.1.0 \ --hash=sha256:32fe8e1d85af0fdefbebce950af85590b22b60f9e95443176adbde4e1ecea552 \ --hash=sha256:590dc7773df6c21cbf948b5dac07a72a251db28b0238ceecce0a2abfa8ec30a9 # via docling-core -jsonschema[format-nongpl]==4.25.1 \ - --hash=sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63 \ - --hash=sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85 +jsonschema[format-nongpl]==4.26.0 \ + --hash=sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326 \ + --hash=sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce # via # feast (setup.py) # altair @@ -1912,9 +1892,9 @@ jsonschema-specifications==2025.9.1 \ --hash=sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe \ --hash=sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d # via jsonschema -jupyter-client==8.7.0 \ - --hash=sha256:3357212d9cbe01209e59190f67a3a7e1f387a4f4e88d1e0433ad84d7b262531d \ - --hash=sha256:3671a94fd25e62f5f2f554f5e95389c2294d89822378a5f2dd24353e1494a9e0 +jupyter-client==8.8.0 \ + --hash=sha256:d556811419a4f2d96c869af34e854e3f059b7cc2d6d01a9cd9c85c267691be3e \ + --hash=sha256:f93a5b99c5e23a507b773d3a1136bd6e16c67883ccdbd9a829b0bbdb98cd7d7a # via # ipykernel # jupyter-server @@ -1951,9 +1931,9 @@ jupyter-server-terminals==0.5.3 \ --hash=sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa \ --hash=sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269 # via jupyter-server -jupyterlab==4.5.1 \ - --hash=sha256:09da1ddfbd9eec18b5101dbb8515612aa1e47443321fb99503725a88e93d20d9 \ - --hash=sha256:31b059de96de0754ff1f2ce6279774b6aab8c34d7082e9752db58207c99bd514 +jupyterlab==4.5.2 \ + --hash=sha256:76466ebcfdb7a9bb7e2fbd6459c0e2c032ccf75be673634a84bee4b3e6b13ab6 \ + --hash=sha256:c80a6b9f6dace96a566d590c65ee2785f61e7cd4aac5b4d453dcc7d0d5e069b7 # via notebook jupyterlab-pygments==0.3.0 \ --hash=sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d \ @@ -2199,9 +2179,9 @@ markdown-it-py==4.0.0 \ --hash=sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147 \ --hash=sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3 # via rich -marko==2.2.1 \ - --hash=sha256:31e9a18b35c113e506ace5594716fa3df2872f8955908e279bc551f3eb1f0db8 \ - --hash=sha256:e29d7e071a3b0cb2f7cc4c500d55f893dc5a45d85a8298dde6cb4e4dffd794d3 +marko==2.2.2 \ + --hash=sha256:6940308e655f63733ca518c47a68ec9510279dbb916c83616e4c4b5829f052e8 \ + --hash=sha256:f064ae8c10416285ad1d96048dc11e98ef04e662d3342ae416f662b70aa7959e # via docling markupsafe==3.0.3 \ --hash=sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f \ @@ -2697,19 +2677,23 @@ multidict==6.7.0 \ # aiobotocore # aiohttp # yarl -multiprocess==0.70.16 \ - --hash=sha256:0dfd078c306e08d46d7a8d06fb120313d87aa43af60d66da43ffff40b44d2f41 \ - --hash=sha256:161af703d4652a0e1410be6abccecde4a7ddffd19341be0a7011b94aeb171ac1 \ - --hash=sha256:37b55f71c07e2d741374998c043b9520b626a8dddc8b3129222ca4f1a06ef67a \ - --hash=sha256:476887be10e2f59ff183c006af746cb6f1fd0eadcfd4ef49e605cbe2659920ee \ - --hash=sha256:a0bafd3ae1b732eac64be2e72038231c1ba97724b60b09400d68f229fcc2fbf3 \ - --hash=sha256:a71d82033454891091a226dfc319d0cfa8019a4e888ef9ca910372a446de4435 \ - --hash=sha256:af4cabb0dac72abfb1e794fa7855c325fd2b55a10a44628a3c1ad3311c04127a \ - --hash=sha256:ba8c31889abf4511c7308a8c52bb4a30b9d590e7f58523302ba00237702ca054 \ - --hash=sha256:c4a9944c67bd49f823687463660a2d6daae94c289adff97e0f9d696ba6371d02 \ - --hash=sha256:d951bed82c8f73929ac82c61f01a7b5ce8f3e5ef40f5b52553b4f547ce2b08ec \ - --hash=sha256:e7b9d0f307cd9bd50851afaac0dba2cb6c44449efff697df7c7645f7d3f2be3a \ - --hash=sha256:fc0544c531920dde3b00c29863377f87e1632601092ea2daca74e4beb40faa2e +multiprocess==0.70.17 \ + --hash=sha256:1d52f068357acd1e5bbc670b273ef8f81d57863235d9fbf9314751886e141968 \ + --hash=sha256:20c28ca19079a6c879258103a6d60b94d4ffe2d9da07dda93fb1c8bc6243f522 \ + --hash=sha256:27b8409c02b5dd89d336107c101dfbd1530a2cd4fd425fc27dcb7adb6e0b47bf \ + --hash=sha256:2818af14c52446b9617d1b0755fa70ca2f77c28b25ed97bdaa2c69a22c47b46c \ + --hash=sha256:2884701445d0177aec5bd5f6ee0df296773e4fb65b11903b94c613fb46cfb7d1 \ + --hash=sha256:2b12e081df87ab755190e227341b2c3b17ee6587e9c82fecddcbe6aa812cd7f7 \ + --hash=sha256:2ea0939b0f4760a16a548942c65c76ff5afd81fbf1083c56ae75e21faf92e426 \ + --hash=sha256:349525099a0c9ac5936f0488b5ee73199098dac3ac899d81d326d238f9fd3ccd \ + --hash=sha256:38357ca266b51a2e22841b755d9a91e4bb7b937979a54d411677111716c32744 \ + --hash=sha256:4ae2f11a3416809ebc9a48abfc8b14ecce0652a0944731a1493a3c1ba44ff57a \ + --hash=sha256:7ddb24e5bcdb64e90ec5543a1f05a39463068b6d3b804aa3f2a4e16ec28562d6 \ + --hash=sha256:a0f01cd9d079af7a8296f521dc03859d1a414d14c1e2b6e676ef789333421c95 \ + --hash=sha256:a22a6b1a482b80eab53078418bb0f7025e4f7d93cc8e1f36481477a023884861 \ + --hash=sha256:c2c82d0375baed8d8dd0d8c38eb87c5ae9c471f8e384ad203a36f095ee860f67 \ + --hash=sha256:c3feb874ba574fbccfb335980020c1ac631fbf2a3f7bee4e2042ede62558a021 \ + --hash=sha256:d729f55198a3579f6879766a6d9b72b42d4b320c0dcb7844afb774d75b573c62 # via # datasets # mpire @@ -2803,9 +2787,9 @@ nodeenv==1.10.0 \ --hash=sha256:5bb13e3eed2923615535339b3c620e76779af4cb4c6a90deccc9e36b274d3827 \ --hash=sha256:996c191ad80897d076bdfba80a41994c2b47c68e224c542b48feba42ba00f8bb # via pre-commit -notebook==7.5.1 \ - --hash=sha256:b2fb4cef4d47d08c33aecce1c6c6e84be05436fbd791f88fce8df9fbca088b75 \ - --hash=sha256:f4e2451c19910c33b88709b84537e11f6368c1cdff1aa0c43db701aea535dd44 +notebook==7.5.2 \ + --hash=sha256:17d078a98603d70d62b6b4b3fcb67e87d7a68c398a7ae9b447eb2d7d9aec9979 \ + --hash=sha256:83e82f93c199ca730313bea1bb24bc279ea96f74816d038a92d26b6b9d5f3e4a # via great-expectations notebook-shim==0.2.4 \ --hash=sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef \ @@ -2885,7 +2869,6 @@ numpy==2.2.6 \ # opencv-python-headless # pandas # pandas-gbq - # pyarrow # qdrant-client # safetensors # scikit-image @@ -3007,9 +2990,9 @@ overrides==7.7.0 \ --hash=sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a \ --hash=sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49 # via jupyter-server -packaging==24.2 \ - --hash=sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759 \ - --hash=sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f +packaging==25.0 \ + --hash=sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484 \ + --hash=sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f # via # accelerate # build @@ -3024,7 +3007,6 @@ packaging==24.2 \ # gunicorn # huggingface-hub # ibis-framework - # ibis-substrait # ipykernel # jupyter-events # jupyter-server @@ -3303,9 +3285,9 @@ pre-commit==3.3.1 \ --hash=sha256:218e9e3f7f7f3271ebc355a15598a4d3893ad9fc7b57fe446db75644543323b9 \ --hash=sha256:733f78c9a056cdd169baa6cd4272d51ecfda95346ef8a89bf93712706021b907 # via feast (setup.py) -prometheus-client==0.23.1 \ - --hash=sha256:6ae8f9081eaaaf153a2e959d2e6c4f4fb57b12ef76c8c7980202f1e57b48b2ce \ - --hash=sha256:dd1913e6e76b59cfe44e7a4b83e01afc9873c1bdfd2ed8739f1e76aeca115f99 +prometheus-client==0.24.0 \ + --hash=sha256:4ab6d4fb5a1b25ad74b58e6271857e356fff3399473e599d227ab5d0ce6637f0 \ + --hash=sha256:726b40c0d499f4904d4b5b7abe8d43e6aff090de0d468ae8f2226290b331c667 # via # feast (setup.py) # jupyter-server @@ -3478,7 +3460,6 @@ protobuf==4.25.8 \ # pymilvus # qdrant-client # ray - # substrait psutil==5.9.0 \ --hash=sha256:072664401ae6e7c1bfb878c65d7282d4b4391f1bc9a56d5e03b5a490403271b5 \ --hash=sha256:1070a9b287846a21a5d572d6dddd369517510b68710fca56b0e9e02fd24bed9a \ @@ -3613,43 +3594,57 @@ py4j==0.10.9.9 \ --hash=sha256:c7c26e4158defb37b0bb124933163641a2ff6e3a3913f7811b0ddbe07ed61533 \ --hash=sha256:f694cad19efa5bd1dee4f3e5270eb406613c974394035e5bfc4ec1aba870b879 # via pyspark -pyarrow==17.0.0 \ - --hash=sha256:0071ce35788c6f9077ff9ecba4858108eebe2ea5a3f7cf2cf55ebc1dbc6ee24a \ - --hash=sha256:02dae06ce212d8b3244dd3e7d12d9c4d3046945a5933d28026598e9dbbda1fca \ - --hash=sha256:0b72e87fe3e1db343995562f7fff8aee354b55ee83d13afba65400c178ab2597 \ - --hash=sha256:0cdb0e627c86c373205a2f94a510ac4376fdc523f8bb36beab2e7f204416163c \ - --hash=sha256:13d7a460b412f31e4c0efa1148e1d29bdf18ad1411eb6757d38f8fbdcc8645fb \ - --hash=sha256:1c8856e2ef09eb87ecf937104aacfa0708f22dfeb039c363ec99735190ffb977 \ - --hash=sha256:2e19f569567efcbbd42084e87f948778eb371d308e137a0f97afe19bb860ccb3 \ - --hash=sha256:32503827abbc5aadedfa235f5ece8c4f8f8b0a3cf01066bc8d29de7539532687 \ - --hash=sha256:392bc9feabc647338e6c89267635e111d71edad5fcffba204425a7c8d13610d7 \ - --hash=sha256:42bf93249a083aca230ba7e2786c5f673507fa97bbd9725a1e2754715151a204 \ - --hash=sha256:4beca9521ed2c0921c1023e68d097d0299b62c362639ea315572a58f3f50fd28 \ - --hash=sha256:5984f416552eea15fd9cee03da53542bf4cddaef5afecefb9aa8d1010c335087 \ - --hash=sha256:6b244dc8e08a23b3e352899a006a26ae7b4d0da7bb636872fa8f5884e70acf15 \ - --hash=sha256:757074882f844411fcca735e39aae74248a1531367a7c80799b4266390ae51cc \ - --hash=sha256:75c06d4624c0ad6674364bb46ef38c3132768139ddec1c56582dbac54f2663e2 \ - --hash=sha256:7c7916bff914ac5d4a8fe25b7a25e432ff921e72f6f2b7547d1e325c1ad9d155 \ - --hash=sha256:9b564a51fbccfab5a04a80453e5ac6c9954a9c5ef2890d1bcf63741909c3f8df \ - --hash=sha256:9b8a823cea605221e61f34859dcc03207e52e409ccf6354634143e23af7c8d22 \ - --hash=sha256:9ba11c4f16976e89146781a83833df7f82077cdab7dc6232c897789343f7891a \ - --hash=sha256:a155acc7f154b9ffcc85497509bcd0d43efb80d6f733b0dc3bb14e281f131c8b \ - --hash=sha256:a27532c38f3de9eb3e90ecab63dfda948a8ca859a66e3a47f5f42d1e403c4d03 \ - --hash=sha256:a48ddf5c3c6a6c505904545c25a4ae13646ae1f8ba703c4df4a1bfe4f4006bda \ - --hash=sha256:a5c8b238d47e48812ee577ee20c9a2779e6a5904f1708ae240f53ecbee7c9f07 \ - --hash=sha256:af5ff82a04b2171415f1410cff7ebb79861afc5dae50be73ce06d6e870615204 \ - --hash=sha256:b0c6ac301093b42d34410b187bba560b17c0330f64907bfa4f7f7f2444b0cf9b \ - --hash=sha256:d7d192305d9d8bc9082d10f361fc70a73590a4c65cf31c3e6926cd72b76bc35c \ - --hash=sha256:da1e060b3876faa11cee287839f9cc7cdc00649f475714b8680a05fd9071d545 \ - --hash=sha256:db023dc4c6cae1015de9e198d41250688383c3f9af8f565370ab2b4cb5f62655 \ - --hash=sha256:dc5c31c37409dfbc5d014047817cb4ccd8c1ea25d19576acf1a001fe07f5b420 \ - --hash=sha256:dec8d129254d0188a49f8a1fc99e0560dc1b85f60af729f47de4046015f9b0a5 \ - --hash=sha256:e3343cb1e88bc2ea605986d4b94948716edc7a8d14afd4e2c097232f729758b4 \ - --hash=sha256:edca18eaca89cd6382dfbcff3dd2d87633433043650c07375d095cd3517561d8 \ - --hash=sha256:f1e70de6cb5790a50b01d2b686d54aaf73da01266850b05e3af2a1bc89e16053 \ - --hash=sha256:f553ca691b9e94b202ff741bdd40f6ccb70cdd5fbf65c187af132f1317de6145 \ - --hash=sha256:f7ae2de664e0b158d1607699a16a488de3d008ba99b3a7aa5de1cbc13574d047 \ - --hash=sha256:fa3c246cc58cb5a4a5cb407a18f193354ea47dd0648194e6265bd24177982fe8 +pyarrow==22.0.0 \ + --hash=sha256:001ea83a58024818826a9e3f89bf9310a114f7e26dfe404a4c32686f97bd7901 \ + --hash=sha256:00626d9dc0f5ef3a75fe63fd68b9c7c8302d2b5bbc7f74ecaedba83447a24f84 \ + --hash=sha256:0c34fe18094686194f204a3b1787a27456897d8a2d62caf84b61e8dfbc0252ae \ + --hash=sha256:12fe549c9b10ac98c91cf791d2945e878875d95508e1a5d14091a7aaa66d9cf8 \ + --hash=sha256:1a812a5b727bc09c3d7ea072c4eebf657c2f7066155506ba31ebf4792f88f016 \ + --hash=sha256:252be4a05f9d9185bb8c18e83764ebcfea7185076c07a7a662253af3a8c07941 \ + --hash=sha256:334f900ff08ce0423407af97e6c26ad5d4e3b0763645559ece6fbf3747d6a8f5 \ + --hash=sha256:35ad0f0378c9359b3f297299c3309778bb03b8612f987399a0333a560b43862d \ + --hash=sha256:3d600dc583260d845c7d8a6db540339dd883081925da2bd1c5cb808f720b3cd9 \ + --hash=sha256:3e294c5eadfb93d78b0763e859a0c16d4051fc1c5231ae8956d61cb0b5666f5a \ + --hash=sha256:3e739edd001b04f654b166204fc7a9de896cf6007eaff33409ee9e50ceaff754 \ + --hash=sha256:44729980b6c50a5f2bfcc2668d36c569ce17f8b17bccaf470c4313dcbbf13c9d \ + --hash=sha256:44d2d26cda26d18f7af7db71453b7b783788322d756e81730acb98f24eb90ace \ + --hash=sha256:4c19236ae2402a8663a2c8f21f1870a03cc57f0bef7e4b6eb3238cc82944de80 \ + --hash=sha256:69763ab2445f632d90b504a815a2a033f74332997052b721002298ed6de40f2e \ + --hash=sha256:6dda1ddac033d27421c20d7a7943eec60be44e0db4e079f33cc5af3b8280ccde \ + --hash=sha256:6f9762274496c244d951c819348afbcf212714902742225f649cf02823a6a10f \ + --hash=sha256:710624ab925dc2b05a6229d47f6f0dac1c1155e6ed559be7109f684eba048a48 \ + --hash=sha256:7388ac685cab5b279a41dfe0a6ccd99e4dbf322edfb63e02fc0443bf24134e91 \ + --hash=sha256:77718810bd3066158db1e95a63c160ad7ce08c6b0710bc656055033e39cdad88 \ + --hash=sha256:7a820d8ae11facf32585507c11f04e3f38343c1e784c9b5a8b1da5c930547fe2 \ + --hash=sha256:8382ad21458075c2e66a82a29d650f963ce51c7708c7c0ff313a8c206c4fd5e8 \ + --hash=sha256:84378110dd9a6c06323b41b56e129c504d157d1a983ce8f5443761eb5256bafc \ + --hash=sha256:854794239111d2b88b40b6ef92aa478024d1e5074f364033e73e21e3f76b25e0 \ + --hash=sha256:92843c305330aa94a36e706c16209cd4df274693e777ca47112617db7d0ef3d7 \ + --hash=sha256:9bddc2cade6561f6820d4cd73f99a0243532ad506bc510a75a5a65a522b2d74d \ + --hash=sha256:a4893d31e5ef780b6edcaf63122df0f8d321088bb0dee4c8c06eccb1ca28d145 \ + --hash=sha256:a9d9ffdc2ab696f6b15b4d1f7cec6658e1d788124418cb30030afbae31c64746 \ + --hash=sha256:ac93252226cf288753d8b46280f4edf3433bf9508b6977f8dd8526b521a1bbb9 \ + --hash=sha256:b41f37cabfe2463232684de44bad753d6be08a7a072f6a83447eeaf0e4d2a215 \ + --hash=sha256:b883fe6fd85adad7932b3271c38ac289c65b7337c2c132e9569f9d3940620730 \ + --hash=sha256:b9d71701ce97c95480fecb0039ec5bb889e75f110da72005743451339262f4ce \ + --hash=sha256:ba95112d15fd4f1105fb2402c4eab9068f0554435e9b7085924bcfaac2cc306f \ + --hash=sha256:bba208d9c7decf9961998edf5c65e3ea4355d5818dd6cd0f6809bec1afb951cc \ + --hash=sha256:bd0d42297ace400d8febe55f13fdf46e86754842b860c978dfec16f081e5c653 \ + --hash=sha256:bea79263d55c24a32b0d79c00a1c58bb2ee5f0757ed95656b01c0fb310c5af3d \ + --hash=sha256:c064e28361c05d72eed8e744c9605cbd6d2bb7481a511c74071fd9b24bc65d7d \ + --hash=sha256:c3200cb41cdbc65156e5f8c908d739b0dfed57e890329413da2748d1a2cd1a4e \ + --hash=sha256:c6c791b09c57ed76a18b03f2631753a4960eefbbca80f846da8baefc6491fcfe \ + --hash=sha256:c6ec3675d98915bf1ec8b3c7986422682f7232ea76cad276f4c8abd5b7319b70 \ + --hash=sha256:ce20fe000754f477c8a9125543f1936ea5b8867c5406757c224d745ed033e691 \ + --hash=sha256:cedb9dd9358e4ea1d9bce3665ce0797f6adf97ff142c8e25b46ba9cdd508e9b6 \ + --hash=sha256:e0a15757fccb38c410947df156f9749ae4a3c89b2393741a50521f39a8cf202a \ + --hash=sha256:e6e95176209257803a8b3d0394f21604e796dadb643d2f7ca21b66c9c0b30c9a \ + --hash=sha256:e70ff90c64419709d38c8932ea9fe1cc98415c4f87ea8da81719e43f02534bc9 \ + --hash=sha256:ec1a15968a9d80da01e1d30349b2b0d7cc91e96588ee324ce1b5228175043e95 \ + --hash=sha256:ec5d40dd494882704fb876c16fa7261a69791e784ae34e6b5992e977bd2e238c \ + --hash=sha256:f633074f36dbc33d5c05b5dc75371e5660f1dbf9c8b1d95669def05e5425989c \ + --hash=sha256:f7fe3dbe871294ba70d789be16b6e7e52b418311e166e0e3cba9522f0f437fb1 \ + --hash=sha256:f963ba8c3b0199f9d6b794c90ec77545e05eadc83973897a4523c9e8d84e9340 # via # feast (setup.py) # dask @@ -3934,9 +3929,9 @@ pyjwt[crypto]==2.10.1 \ pylatexenc==2.10 \ --hash=sha256:3dd8fd84eb46dc30bee1e23eaab8d8fb5a7f507347b23e5f38ad9675c84f40d3 # via docling -pymilvus==2.4.15 \ - --hash=sha256:0601591ce0498315e19e9ac3f4fdd3051102ca87b6ddff5b33849f522288cff7 \ - --hash=sha256:b21878e5df74dca91b3f3cf0b0597fa6b6aed7bf5cde9a1b10641994faa353bf +pymilvus==2.5.18 \ + --hash=sha256:1b78badcfa8d62db7d0b29193fc0422e4676873ff1c745a9d75c2c885d7a7e32 \ + --hash=sha256:9e517076068e98dac51c018bc0dfe1f651d936154e2e2d9ad6c7b3dab1164e2d # via feast (setup.py) pymssql==2.3.2 \ --hash=sha256:06883bc9bdb297ae9132d9371b5b1a3a223c8f93dd6a87d1c112c6a688f26d53 \ @@ -4099,8 +4094,8 @@ pyproject-hooks==1.2.0 \ # via # build # pip-tools -pyspark==4.1.0 \ - --hash=sha256:09c714ada88dfac3e1213c066617c6f473c1e22fbe279855028f77e12434147d +pyspark==4.1.1 \ + --hash=sha256:77f78984aa84fbe865c717dd37b49913b4e5c97d76ef6824f932f1aefa6621ec # via feast (setup.py) pytest==7.4.4 \ --hash=sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280 \ @@ -4311,7 +4306,6 @@ pytz==2025.2 \ # via # clickhouse-connect # great-expectations - # ibis-framework # pandas # snowflake-connector-python # trino @@ -4397,7 +4391,6 @@ pyyaml==6.0.3 \ # docling-core # easyocr # huggingface-hub - # ibis-substrait # jupyter-events # kubernetes # pre-commit @@ -4714,9 +4707,9 @@ rfc3987-syntax==1.1.0 \ --hash=sha256:6c3d97604e4c5ce9f714898e05401a0445a641cfa276432b0a648c80856f6a3f \ --hash=sha256:717a62cbf33cffdd16dfa3a497d81ce48a660ea691b1ddd7be710c22f00b4a0d # via jsonschema -rich==13.9.4 \ - --hash=sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098 \ - --hash=sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90 +rich==14.2.0 \ + --hash=sha256:73ff50c7c0c1c77c8243079283f4edb376f0f6442433aecb8ce7e6d0b92d1fe4 \ + --hash=sha256:76bc51fe2e57d2b1be1f96c524b890b816e334ab4c1e45888799bfaab0021edd # via # fastapi-mcp # ibis-framework @@ -4861,26 +4854,26 @@ ruamel-yaml==0.17.17 \ --hash=sha256:9751de4cbb57d4bfbf8fc394e125ed4a2f170fbff3dc3d78abf50be85924f8be \ --hash=sha256:9af3ec5d7f8065582f3aa841305465025d0afd26c5fb54e15b964e11838fc74f # via great-expectations -ruff==0.14.10 \ - --hash=sha256:104c49fc7ab73f3f3a758039adea978869a918f31b73280db175b43a2d9b51d6 \ - --hash=sha256:1484983559f026788e3a5c07c81ef7d1e97c1c78ed03041a18f75df104c45405 \ - --hash=sha256:16a01dfb7b9e4eee556fbfd5392806b1b8550c9b4a9f6acd3dbe6812b193c70a \ - --hash=sha256:213db2b2e44be8625002dbea33bb9c60c66ea2c07c084a00d55732689d697a7f \ - --hash=sha256:466297bd73638c6bdf06485683e812db1c00c7ac96d4ddd0294a338c62fdc154 \ - --hash=sha256:4bb98fcbbc61725968893682fd4df8966a34611239c9fd07a1f6a07e7103d08e \ - --hash=sha256:59aabd2e2c4fd614d2862e7939c34a532c04f1084476d6833dddef4afab87e9f \ - --hash=sha256:5bcf45b681e9f1ee6445d317ce1fa9d6cba9a6049542d1c3d5b5958986be8830 \ - --hash=sha256:674f9be9372907f7257c51f1d4fc902cb7cf014b9980152b802794317941f08f \ - --hash=sha256:6987ebe0501ae4f4308d7d24e2d0fe3d7a98430f5adfd0f1fead050a740a3a77 \ - --hash=sha256:7165d31a925b7a294465fa81be8c12a0e9b60fb02bf177e79067c867e71f8b1f \ - --hash=sha256:7a3ce585f2ade3e1f29ec1b92df13e3da262178df8c8bdf876f48fa0e8316c49 \ - --hash=sha256:9a2e830f075d1a42cd28420d7809ace390832a490ed0966fe373ba288e77aaf4 \ - --hash=sha256:b914c40ab64865a17a9a5b67911d14df72346a634527240039eb3bd650e5979d \ - --hash=sha256:c561695675b972effb0c0a45db233f2c816ff3da8dcfbe7dfc7eed625f218935 \ - --hash=sha256:c70427132db492d25f982fffc8d6c7535cc2fd2c83fc8888f05caaa248521e60 \ - --hash=sha256:d85713d522348837ef9df8efca33ccb8bd6fcfc86a2cde3ccb4bc9d28a18003d \ - --hash=sha256:e51d046cf6dda98a4633b8a8a771451107413b0f07183b2bef03f075599e44e6 \ - --hash=sha256:f24b47993a9d8cb858429e97bdf8544c78029f09b520af615c1d261bf827001d +ruff==0.14.11 \ + --hash=sha256:0f3727189a52179393ecf92ec7057c2210203e6af2676f08d92140d3e1ee72c1 \ + --hash=sha256:337c5dd11f16ee52ae217757d9b82a26400be7efac883e9e852646f1557ed841 \ + --hash=sha256:53386375001773ae812b43205d6064dae49ff0968774e6befe16a994fc233caa \ + --hash=sha256:53fe71125fc158210d57fe4da26e622c9c294022988d08d9347ec1cf782adafe \ + --hash=sha256:590bcc0e2097ecf74e62a5c10a6b71f008ad82eb97b0a0079e85defe19fe74d9 \ + --hash=sha256:649fb6c9edd7f751db276ef42df1f3df41c38d67d199570ae2a7bd6cbc3590f0 \ + --hash=sha256:6845ca1da8ab81ab1dce755a32ad13f1db72e7fba27c486d5d90d65e04d17b8f \ + --hash=sha256:6f6eb5c1c8033680f4172ea9c8d3706c156223010b8b97b05e82c59bdc774ee6 \ + --hash=sha256:728e56879df4ca5b62a9dde2dd0eb0edda2a55160c0ea28c4025f18c03f86984 \ + --hash=sha256:82ff352ea68fb6766140381748e1f67f83c39860b6446966cff48a315c3e2491 \ + --hash=sha256:a35c9da08562f1598ded8470fcfef2afb5cf881996e6c0a502ceb61f4bc9c8a3 \ + --hash=sha256:a697737dce1ca97a0a55b5ff0434ee7205943d4874d638fe3ae66166ff46edbe \ + --hash=sha256:c61782543c1231bf71041461c1f28c64b961d457d0f238ac388e2ab173d7ecb7 \ + --hash=sha256:e36ce2fd31b54065ec6f76cb08d60159e1b32bdf08507862e32f47e6dde8bcbf \ + --hash=sha256:eb09f849bd37147a789b85995ff734a6c4a095bed5fd1608c4f56afc3634cde2 \ + --hash=sha256:f2fc34cc896f90080fca01259f96c566f74069a04b25b6205d55379d12a6855e \ + --hash=sha256:f6dc463bfa5c07a59b1ff2c3b9767373e541346ea105503b4c0369c520a66958 \ + --hash=sha256:f6ff2d95cbd335841a7217bdfd9c1d2e44eac2c584197ab1385579d55ff8830e \ + --hash=sha256:f981cea63d08456b2c070e64b79cb62f951aa1305282974d4d5216e6e0178ae6 # via feast (setup.py) s3transfer==0.13.1 \ --hash=sha256:a981aa7429be23fe6dfc13e80e4020057cbab622b08c0315288758d67cabc724 \ @@ -5029,9 +5022,9 @@ semchunk==2.2.2 \ --hash=sha256:940e89896e64eeb01de97ba60f51c8c7b96c6a3951dfcf574f25ce2146752f52 \ --hash=sha256:94ca19020c013c073abdfd06d79a7c13637b91738335f3b8cdb5655ee7cc94d2 # via docling-core -send2trash==1.8.3 \ - --hash=sha256:0c31227e0bd08961c7665474a3d1ef7193929fedda4233843689baa056be46c9 \ - --hash=sha256:b18e7a3966d99871aefeb00cfbcfdced55ce4871194810fc71f4aa484b953abf +send2trash==2.0.0 \ + --hash=sha256:1761421da3f9930bfe51ed7c45343948573383ad4c27e3acebc91be324e7770d \ + --hash=sha256:e70d5ce41dbb890882cc78bc25d137478330b39a391e756fadf82e34da4d85b8 # via jupyter-server setuptools==80.9.0 \ --hash=sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922 \ @@ -5257,74 +5250,74 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:fd93c6f5d65f254ceabe97548c709e073d6da9883343adaa51bf1a913ce93f8e \ --hash=sha256:fe187fc31a54d7fd90352f34e8c008cf3ad5d064d08fedd3de2e8df83eb4a1cf # via feast (setup.py) -sqlglot[rs]==25.20.2 \ - --hash=sha256:169fe8308dd70d7bd40117b2221b62bdc7c4e2ea8eb07394b2a6146cdedf05ab \ - --hash=sha256:cdbfd7ce3f2f39f32bd7b4c23fd9e0fd261636a6b14285b914e8def25fd0a567 +sqlglot[rs]==28.6.0 \ + --hash=sha256:8af76e825dc8456a49f8ce049d69bbfcd116655dda3e53051754789e2edf8eba \ + --hash=sha256:8c0a432a6745c6c7965bbe99a17667c5a3ca1d524a54b31997cf5422b1727f6a # via # feast (setup.py) # ibis-framework -sqlglotrs==0.2.12 \ - --hash=sha256:0338c7770a5cb5bb0ec1dcbe5206359fe9b83da0aba8dde53b9e7bd1afc89a22 \ - --hash=sha256:057a8db59a6c4bcdc42831e7ad01f41cf9e7f388ed5b139816adafbcacf2f591 \ - --hash=sha256:065835e7f2be50ba83895b64d044a39dab9d95098fff995427365e4bd8bc7bc6 \ - --hash=sha256:08e8be22da77c964be76ab4438da2c77096f5871088466ca950ee1b4712a97d4 \ - --hash=sha256:147cda8412f45af290ad190d9a98b5829a5f46a575ce768279ccebf9b7b53785 \ - --hash=sha256:155b0d59e34851b119c7ff0b2c7968c7b51667c1a1c2abefe1ac7244b3c1d78e \ - --hash=sha256:17b289ef0f25a7c034d183c588345e2b56622f7f64a85d1020633a75f8e3ac96 \ - --hash=sha256:1fc98b7649445e726a492841b8b8b39a4e5724ec2787cd1436404ebccf42519a \ - --hash=sha256:2554ead3126c83864a4b7e48e8e7e1bc23faf7160a6f28d3db967661cf529c9e \ - --hash=sha256:2824fc87fd7e41a785150ff042c7934e1fff97c6ccd59e4d96bebf6697a90762 \ - --hash=sha256:2db7e6cd41ef88c2ac647ad0258f87906de822955dec8f14e91829083047d784 \ - --hash=sha256:315f7f7bbfedf0c87d98068e62363454e986bdd05baa165b7fb448b5c6fe9f1a \ - --hash=sha256:327bfc2d71449f4dffba93d63f0565c4a1fa818143b1cfbc3f936fa8c9bcce10 \ - --hash=sha256:39a6ef72cf271db93ec6019847b7832defa9f4013c1e66851ca9c0a11c010c0c \ - --hash=sha256:4364116b7b0c72b841de6acd149a002bfc8fe360125989d4f39debd387c874d8 \ - --hash=sha256:4c07d3dba9c3ae8b56a0e45a9e47aa2a2c6ed95870c5bcc67dacaadb873843ff \ - --hash=sha256:4ceb28cf2ee3850cd745167cebe59a5fc3d506b32e9c81307938d8d272c1d670 \ - --hash=sha256:4ec38035523d54ba33de1e2b5562de4938254b61e1df48eb1db0e26ea189de28 \ - --hash=sha256:5026eada48f258ce9ad26fa41994b2ea5404bef2c3df9cb5cb2a159112a6269f \ - --hash=sha256:59499adc27a70a72170db9241404a18d4829cd3a83a076b9e112ad365c4b1452 \ - --hash=sha256:5be231acf95920bed473524dd1cac93e4cb320ed7e6ae937531b232c54cfc232 \ - --hash=sha256:67e288759d2be822db2175d0025c1f61283b019f2cc3e2577f31ad0ef3b5854d \ - --hash=sha256:6aacab6e20d92be3ca76f7358fa12346f29985e2d408660c764b7f1c75cc40ee \ - --hash=sha256:6ef3a827f2980aad17af4f8548297c93c4989d4cd3f64b9bcb7443952c542423 \ - --hash=sha256:732516bffffc70f172306ad8bc747dd9f16512cdbc09475abe6ad6f744479dee \ - --hash=sha256:76e4e1765c6be438329e234e56a6772537f6de16c4bb5ba7170e344664cccdf7 \ - --hash=sha256:7b553cdb9e8afcfea5466815e865f874f6f51aaace4fb4101670e150f7bbfe5a \ - --hash=sha256:7c79c43c5cde1f4017641032f11770ed8111c963dccc096cd15df906d4fb46a4 \ - --hash=sha256:8174aa227193d0a755f4515e6c3883be4681c9b669a65c2316f09be27b84be4d \ - --hash=sha256:8a18b3a09c32788d1ee2d0610ab35af862413c56b65f8ad8bc0131701f03103b \ - --hash=sha256:8f268aea3d2ebc05cb9148bb487f21e532f8af1b0a4aed6b7374703aadfb6a7c \ - --hash=sha256:91971032603d05428fd42a978084110afb2a4c0975e4343b075f69a23889e3da \ - --hash=sha256:9334f6c394a671a630c61339d52fb7da1a72eca057570f039b2a4035d2e39380 \ - --hash=sha256:954ccd912391ab5922adb23159ebcc0c5dccb468381e2a1ce92117cb4b0f0ed3 \ - --hash=sha256:9597865efc40e5c41af7719106c7620e1338aaa64646726652c63bae14225391 \ - --hash=sha256:97b2c74fcdd89f0d4458c0e2b5783989be99a1e0b2d627797688ab716ad9391b \ - --hash=sha256:989ccc5dc6b38da937481b6eb2dc1fc0b13676fe129697b874828e577984d7ef \ - --hash=sha256:9c4c6f6fe1c54fff614f9d0b2dd7a6bf948bda87ce51a245dcd3f447f20c8b74 \ - --hash=sha256:9d5b9a9d6259b72258f6764f88a89faa3c648438bd1b2c3a9598b725d42bf6f2 \ - --hash=sha256:a266c9047726d83c51a8ec3d5278ceb9caf131307c9c93c4ceefd99c0116e538 \ - --hash=sha256:a4a2cacb31f75e242c7b9ff4afae1d95f548df8441444114376d8007cc91b55b \ - --hash=sha256:aaf86275a3388da1ed2161645aa346bfca3ee6e1dc0e2115867db9e78f1caddd \ - --hash=sha256:ab676d2d7da28907a139ad5fc20dee0890054967bac0b18e653ac048837c9ea1 \ - --hash=sha256:acc25d651eb663332157c2e5d2736516cddf4cd0effe67a887723934de5051d1 \ - --hash=sha256:b10bf6b71961b31951bf4dff937d8d5d399ea1b3bd47fb5c5810386710fe7dfb \ - --hash=sha256:b40601e67f5abae5d09d23f92394dbd735539de469ce663b596eb42bf77d2c54 \ - --hash=sha256:b6020825e58af6e2795e6dcb69639f5500e45e1da78f1b1abd74c4d11083a249 \ - --hash=sha256:bc1807c6222e32fc9bf6f5c7e12b85c4b72f12227800d40c1693244c198b33bb \ - --hash=sha256:bd6c4e6a7670f761c8e69b45d6d302a4d37a3cddb1fdca2ad90e54b77858fe80 \ - --hash=sha256:bf3e2eab11f06f1df13c0f85b3e26fbab0b7e8a5d189e5edfed951bc85f6bd48 \ - --hash=sha256:c3d62905ce74a48714b7662ad95efe299fad62f193be4b482a327af060f98710 \ - --hash=sha256:c3e0edde0fdf598561e7404ac56fb4b12276394ee5155b5365e42434c6f287a3 \ - --hash=sha256:c64066d13bd2e5e788b845c933c765af9991faa93982e273b623019a1161fadc \ - --hash=sha256:c8bf7ae29c0fc66e9c998d7f8e6f6fc26309c6eb5a4728e1443cb628218bc307 \ - --hash=sha256:d2827c7bf7e57496f9b95658bcd2395cfb0c51adc3023cd3386988337dfaf6a5 \ - --hash=sha256:e7b2da43b2a6a85807df6c56b2627abe244aff28fdf9a4940d38d749cb4b8e3e \ - --hash=sha256:ebc162a599fac86e59f899631716752fbc7f89598e94729eadb707e54db371b2 \ - --hash=sha256:f0a2ddeab27a94447270b7a240770a31a3afed0a972d60085205baec990ad76a \ - --hash=sha256:f104a98182761d4613f920eda7ec5fc921afb3608f7db648206ce06dd10a6be5 \ - --hash=sha256:f83ad3fb4ea57218c0e65d3499e31c9bb3051bbb5dccbb11593eaf1640964b51 \ - --hash=sha256:fa1ae834fb78bd52bb76e3c8d02cb79f45717ab1f02f4ad8154bf33a5408a502 +sqlglotrs==0.11.0 \ + --hash=sha256:029d72428367739d7b1e6aca66ccb88e93ab0f48ae34b1adce413e93d353a21b \ + --hash=sha256:069b00aa30f19e65a3e40835525c4aec6d004381c75886d12ce93ca6ef045a61 \ + --hash=sha256:072cff11e8d9e09e79907bda92d5fc219e056d49b416871fe8fc2d52ff89686b \ + --hash=sha256:079c182596660ea378c0b47072655b3263379dcd0875dce831bd91276d47b8de \ + --hash=sha256:0a72b615aafbe8240037aeb37d623caeba5484133e9e1952186c23d668c30316 \ + --hash=sha256:0ebff846b23756e458e85df8cb4e80411c4949d6b1e82f7019121a5cfedc3811 \ + --hash=sha256:1cf9034b209edb3a061b6fa4e01c95ac6a2e1fab2b9ff2cde74e44a0d07aa4ba \ + --hash=sha256:1f97ef7374c6133331b30a4bb3b094a4f0bc48da207545ce5fa277b4a5e91a46 \ + --hash=sha256:270b120e9361f60b8dacaa79173eb16633b6c9f56f69ff7370e03812977e0eb0 \ + --hash=sha256:2a29be22dd052d78d20332be5fd3073be248b884ff35099a6919eeb28cab810e \ + --hash=sha256:2e8ff0dfc1c9ec36ec72a2ffcf8859b9c5d926b9401c3757c432c0dfe5f6f725 \ + --hash=sha256:305895a85158ccbf700b80c0ac143652daf4490c8fd03c82d8632f76998c2b45 \ + --hash=sha256:32beba0fd901304e22f14475eeee7e9c3069a6a78ea15efc73b96939fe166c2f \ + --hash=sha256:3482ee17eaacdfbc902aa9dfddb52b495fe6e1c2facd0b061e7f0d9a52ca278a \ + --hash=sha256:3b524e7111c766088381216f7649b4b40c0cace5e8b81472ff8a5a052c1c735d \ + --hash=sha256:3c6e7dd433167e7dcd35842f626fc943ba83201c0e53de7a26f9a074a1f1149d \ + --hash=sha256:3e491a39e41d8f27e10ecefe5bc0bd80bcb1d3e3f5b7980a4d6f9c1e3fe5250d \ + --hash=sha256:401882f82209791822cf3392de0b338688aaabe96735457908c5ab6490f1ab73 \ + --hash=sha256:41cbfbe09de3a011454c22f2e49fd51d382451429071fc57e14cc0c5086b70d3 \ + --hash=sha256:43012180cbf447e922bf3762aed32a750ca0b8884bdd2d5276642047c34fe4c9 \ + --hash=sha256:4e6aa4dfc2f85c346aa495f3f803a4ca94a4430f08e729d5b8b0bcb21c67d193 \ + --hash=sha256:5cde6652dd9f7f8b29177a578431037d2bd1b9f58ef66fe2b7817c975f6606ab \ + --hash=sha256:625ccc0420a9a68db453d9a456c820f06f1c3c116f11b171b267b9194a04270c \ + --hash=sha256:692e3ad301a415b3084ddb12a749670b943b67dc2273a1179ca6d7d85f1827f6 \ + --hash=sha256:6bb6d548841f9954367e68a77cdd2859f933abe614f902d0db8dd0eb804f9d25 \ + --hash=sha256:6d16d2348df175600604d5660f2fbe7cab748042fcdd1cfcf52c982fb5645cc9 \ + --hash=sha256:744c8e0e74ac60ebd76741df8452e77ffb33511264be879c6c7f04cc1c0c2d62 \ + --hash=sha256:7aa052e277129eb42613550f3075a1654d7986c73f5df37eeeb6c4a15c843e5f \ + --hash=sha256:7da4c0e3b72dc608cdbb2c8852914aa78ba216033b23a2667970198bb68808cc \ + --hash=sha256:8050b532636c9f4167145d14121ef7398175f73759e2beb03a852a3e3985b024 \ + --hash=sha256:842d348eb195e9e1ac947f6e46b550d541e86cdbf5b9f59091f21626c2119a41 \ + --hash=sha256:88edff10ba7a203e519b66a2b8236d0f92f750b878de629dd380d253b5421638 \ + --hash=sha256:8b34f2dfa037f2f594c6ed7dd6f03cea4b2b1847843a3b33ae4f7c9bcb7fe595 \ + --hash=sha256:8d5739d5cff23f10adbf68cc28072bfc174c45b4b6d51a5bf8f484edd22216df \ + --hash=sha256:95f1ba9dec6d49590a7a131d1e6a0b0225d7207d51b063450647f59c78e95d45 \ + --hash=sha256:9899d2579010b9338e4d98bf190ec73c408990d7277cd63500ebc7b182e1fdfa \ + --hash=sha256:99d984563a874b4d2631b092f3763623b5be5dec3c4306d87cf4d00ddc8b5830 \ + --hash=sha256:9cf14d4466ea20d91df39d5770b16e8be8b25065ef924b210eadff6a85b720c7 \ + --hash=sha256:9d8b7266867e8fdcbfc6310c4a321c1cfac4c381296487b0a62393038f779997 \ + --hash=sha256:9dd2f14496aaf091e0e0d9172c6c9c9922ca545744059702466df6b27e1d43d7 \ + --hash=sha256:a0be63fffee88322771d555207ee31717e1e20fb84ca66acea625e423e147208 \ + --hash=sha256:a4b2b83ea980bd3d26f2443caa5d272097bd594a714025aa4761f45f2e787b91 \ + --hash=sha256:a53c0d3f59b471b9cad047de938342f4881d51e751d13b06665fb81890604482 \ + --hash=sha256:a8d8402517f8a6868dcb27ad0d08766a4852fbc37be81dfd5cafe215cf86fc04 \ + --hash=sha256:a938485f789202ccb07ec308b20b03121331e16f58de9982fc4b063d1b9c6a69 \ + --hash=sha256:a9fd11690a7bb1160ad157d0c1b6d389d19cc6542854016b6745510253ba502d \ + --hash=sha256:b18bc0bf80ed2367c71bf15f0a55c57dc8a7dfdc92adfceb241dd2f20a476aa1 \ + --hash=sha256:b2c52e04d66dde0c3dab8a742f490c224ea306fccb68bc9002ccff48aba58a6d \ + --hash=sha256:baafbaf5382fca53f34b6ba2f226eb084cca5aa441204205dac74478f9d6cb11 \ + --hash=sha256:bcd01c38cded5ac31ec3947dc58cfa8dbf77d602ac972d4b040295570c945a29 \ + --hash=sha256:c018ca74c24523768b49c6d8c3bba406f687e4be96bd2556e41e0572df1f038f \ + --hash=sha256:c9990a875baacd906452a5735e08d34023660957a1456f729969fcdda0991559 \ + --hash=sha256:ca8e0da4562bf6ab8be349046f135764f6d5f443edbdcfd643f582a5937414bf \ + --hash=sha256:cef26115186dcf2ebda311a7208c5f5533f340365cbb07589288ae21ed374b69 \ + --hash=sha256:d11f2b97bc71735e21778619044d82507270fb218aa7a72dd5de6221bb621b06 \ + --hash=sha256:d64853135f5320c7db924691b7376e85b235d164f7cce3738428b6ebab68a759 \ + --hash=sha256:db81a95525a4c4116cab778decf115da90b2a40900d276b19802bb51a4deabcd \ + --hash=sha256:e8b3e9e48e4ec51050bb1e1c72ce1464e42fe12c6b250a410634c8b5379c906c \ + --hash=sha256:f3f57dc53baafdd76d6f90fa72370da5a6049835dfa6aafaffe2bb8d673704b9 \ + --hash=sha256:f4e404fdc3a68276d9ecf4714e510ef8c953275990fb84c754b8bdf1ef398e90 \ + --hash=sha256:f676afb9400c223604bd81bea6ac91686a42e01f8e7b2450230ecbc883fe02a4 # via sqlglot sqlite-vec==0.1.6 \ --hash=sha256:77491bcaa6d496f2acb5cc0d0ff0b8964434f141523c121e313f9a7d8088dee3 \ @@ -5337,9 +5330,9 @@ sqlparams==6.2.0 \ --hash=sha256:3744a2ad16f71293db6505b21fd5229b4757489a9b09f3553656a1ae97ba7ca5 \ --hash=sha256:63b32ed9051bdc52e7e8b38bc4f78aed51796cdd9135e730f4c6a7db1048dedf # via singlestoredb -sse-starlette==3.1.1 \ - --hash=sha256:bb38f71ae74cfd86b529907a9fda5632195dfa6ae120f214ea4c890c7ee9d436 \ - --hash=sha256:bffa531420c1793ab224f63648c059bcadc412bf9fdb1301ac8de1cf9a67b7fb +sse-starlette==3.1.2 \ + --hash=sha256:55eff034207a83a0eb86de9a68099bd0157838f0b8b999a1b742005c71e33618 \ + --hash=sha256:cd800dd349f4521b317b9391d3796fa97b71748a4da9b9e00aafab32dda375c8 # via mcp stack-data==0.6.3 \ --hash=sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9 \ @@ -5352,12 +5345,6 @@ starlette==0.50.0 \ # fastapi # mcp # sse-starlette -substrait==0.24.2 \ - --hash=sha256:743cc352e96b0927b2cd37cd5a8fdac0a96a68df9600bd104fc36aebd222a836 \ - --hash=sha256:d1d475833566fa9d67eed3273456883c0568486ccced92b524b31709d2817e19 - # via - # feast (setup.py) - # ibis-substrait sympy==1.14.0 \ --hash=sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517 \ --hash=sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5 @@ -5454,78 +5441,92 @@ tifffile==2025.5.10 \ --hash=sha256:018335d34283aa3fd8c263bae5c3c2b661ebc45548fde31504016fcae7bf1103 \ --hash=sha256:e37147123c0542d67bc37ba5cdd67e12ea6fbe6e86c52bee037a9eb6a064e5ad # via scikit-image -timm==1.0.22 \ - --hash=sha256:14fd74bcc17db3856b1a47d26fb305576c98579ab9d02b36714a5e6b25cde422 \ - --hash=sha256:888981753e65cbaacfc07494370138b1700a27b1f0af587f4f9b47bc024161d0 +timm==1.0.24 \ + --hash=sha256:8301ac783410c6ad72c73c49326af6d71a9e4d1558238552796e825c2464913f \ + --hash=sha256:c7b909f43fe2ef8fe62c505e270cd4f1af230dfbc37f2ee93e3608492b9d9a40 # via feast (setup.py) tinycss2==1.4.0 \ --hash=sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7 \ --hash=sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289 # via bleach -tokenizers==0.22.1 \ - --hash=sha256:19d2962dd28bc67c1f205ab180578a78eef89ac60ca7ef7cbe9635a46a56422a \ - --hash=sha256:331d6d149fa9c7d632cde4490fb8bbb12337fa3a0232e77892be656464f4b446 \ - --hash=sha256:38201f15cdb1f8a6843e6563e6e79f4abd053394992b9bbdf5213ea3469b4ae7 \ - --hash=sha256:59fdb013df17455e5f950b4b834a7b3ee2e0271e6378ccb33aa74d178b513c73 \ - --hash=sha256:607989f2ea68a46cb1dfbaf3e3aabdf3f21d8748312dbeb6263d1b3b66c5010a \ - --hash=sha256:61de6522785310a309b3407bac22d99c4db5dba349935e99e4d15ea2226af2d9 \ - --hash=sha256:65fd6e3fb11ca1e78a6a93602490f134d1fdeb13bcef99389d5102ea318ed138 \ - --hash=sha256:8d4e484f7b0827021ac5f9f71d4794aaef62b979ab7608593da22b1d2e3c4edc \ - --hash=sha256:a0f307d490295717726598ef6fa4f24af9d484809223bbc253b201c740a06390 \ - --hash=sha256:afd7594a56656ace95cdd6df4cca2e4059d294c5cfb1679c57824b605556cb2f \ - --hash=sha256:b5120eed1442765cd90b903bb6cfef781fd8fe64e34ccaecbae4c619b7b12a82 \ - --hash=sha256:ba0a64f450b9ef412c98f6bcd2a50c6df6e2443b560024a09fa6a03189726879 \ - --hash=sha256:d1cbe5454c9a15df1b3443c726063d930c16f047a3cc724b9e6e1a91140e5a21 \ - --hash=sha256:e2ef6063d7a84994129732b47e7915e8710f27f99f3a3260b8a38fc7ccd083f4 \ - --hash=sha256:e7d094ae6312d69cc2a872b54b91b309f4f6fbce871ef28eb27b52a98e4d0214 +tokenizers==0.22.2 \ + --hash=sha256:143b999bdc46d10febb15cbffb4207ddd1f410e2c755857b5a0797961bbdc113 \ + --hash=sha256:1a62ba2c5faa2dd175aaeed7b15abf18d20266189fb3406c5d0550dd34dd5f37 \ + --hash=sha256:1c774b1276f71e1ef716e5486f21e76333464f47bece56bbd554485982a9e03e \ + --hash=sha256:1e418a55456beedca4621dbab65a318981467a2b188e982a23e117f115ce5001 \ + --hash=sha256:1e50f8554d504f617d9e9d6e4c2c2884a12b388a97c5c77f0bc6cf4cd032feee \ + --hash=sha256:2249487018adec45d6e3554c71d46eb39fa8ea67156c640f7513eb26f318cec7 \ + --hash=sha256:25b85325d0815e86e0bac263506dd114578953b7b53d7de09a6485e4a160a7dd \ + --hash=sha256:29c30b83d8dcd061078b05ae0cb94d3c710555fbb44861139f9f83dcca3dc3e4 \ + --hash=sha256:319f659ee992222f04e58f84cbf407cfa66a65fe3a8de44e8ad2bc53e7d99012 \ + --hash=sha256:369cc9fc8cc10cb24143873a0d95438bb8ee257bb80c71989e3ee290e8d72c67 \ + --hash=sha256:37ae80a28c1d3265bb1f22464c856bd23c02a05bb211e56d0c5301a435be6c1a \ + --hash=sha256:38337540fbbddff8e999d59970f3c6f35a82de10053206a7562f1ea02d046fa5 \ + --hash=sha256:473b83b915e547aa366d1eee11806deaf419e17be16310ac0a14077f1e28f917 \ + --hash=sha256:544dd704ae7238755d790de45ba8da072e9af3eea688f698b137915ae959281c \ + --hash=sha256:64d94e84f6660764e64e7e0b22baa72f6cd942279fdbb21d46abd70d179f0195 \ + --hash=sha256:753d47ebd4542742ef9261d9da92cd545b2cacbb48349a1225466745bb866ec4 \ + --hash=sha256:791135ee325f2336f498590eb2f11dc5c295232f288e75c99a36c5dbce63088a \ + --hash=sha256:9ce725d22864a1e965217204946f830c37876eee3b2ba6fc6255e8e903d5fcbc \ + --hash=sha256:a6bf3f88c554a2b653af81f3204491c818ae2ac6fbc09e76ef4773351292bc92 \ + --hash=sha256:bfb88f22a209ff7b40a576d5324bf8286b519d7358663db21d6246fb17eea2d5 \ + --hash=sha256:c9ea31edff2968b44a88f97d784c2f16dc0729b8b143ed004699ebca91f05c48 \ + --hash=sha256:df6c4265b289083bf710dff49bc51ef252f9d5be33a45ee2bed151114a56207b \ + --hash=sha256:e10bf9113d209be7cd046d40fbabbaf3278ff6d18eb4da4c500443185dc1896c \ + --hash=sha256:f01a9c019878532f98927d2bacb79bbb404b43d3437455522a00a30718cdedb5 # via transformers toml==0.10.2 \ --hash=sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b \ --hash=sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f # via feast (setup.py) -tomli==2.3.0 \ - --hash=sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456 \ - --hash=sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845 \ - --hash=sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999 \ - --hash=sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0 \ - --hash=sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878 \ - --hash=sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf \ - --hash=sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3 \ - --hash=sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be \ - --hash=sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52 \ - --hash=sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b \ - --hash=sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67 \ - --hash=sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549 \ - --hash=sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba \ - --hash=sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22 \ - --hash=sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c \ - --hash=sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f \ - --hash=sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6 \ - --hash=sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba \ - --hash=sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45 \ - --hash=sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f \ - --hash=sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77 \ - --hash=sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606 \ - --hash=sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441 \ - --hash=sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0 \ - --hash=sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f \ - --hash=sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530 \ - --hash=sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05 \ - --hash=sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8 \ - --hash=sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005 \ - --hash=sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879 \ - --hash=sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae \ - --hash=sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc \ - --hash=sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b \ - --hash=sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b \ - --hash=sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e \ - --hash=sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf \ - --hash=sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac \ - --hash=sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8 \ - --hash=sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b \ - --hash=sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf \ - --hash=sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463 \ - --hash=sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876 +tomli==2.4.0 \ + --hash=sha256:0408e3de5ec77cc7f81960c362543cbbd91ef883e3138e81b729fc3eea5b9729 \ + --hash=sha256:0dc56fef0e2c1c470aeac5b6ca8cc7b640bb93e92d9803ddaf9ea03e198f5b0b \ + --hash=sha256:0e0fe8a0b8312acf3a88077a0802565cb09ee34107813bba1c7cd591fa6cfc8d \ + --hash=sha256:0f2e3955efea4d1cfbcb87bc321e00dc08d2bcb737fd1d5e398af111d86db5df \ + --hash=sha256:133e93646ec4300d651839d382d63edff11d8978be23da4cc106f5a18b7d0576 \ + --hash=sha256:1b168f2731796b045128c45982d3a4874057626da0e2ef1fdd722848b741361d \ + --hash=sha256:1c8a885b370751837c029ef9bc014f27d80840e48bac415f3412e6593bbc18c1 \ + --hash=sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a \ + --hash=sha256:1fb2945cbe303b1419e2706e711b7113da57b7db31ee378d08712d678a34e51e \ + --hash=sha256:20cedb4ee43278bc4f2fee6cb50daec836959aadaf948db5172e776dd3d993fc \ + --hash=sha256:20ffd184fb1df76a66e34bd1b36b4a4641bd2b82954befa32fe8163e79f1a702 \ + --hash=sha256:26ab906a1eb794cd4e103691daa23d95c6919cc2fa9160000ac02370cc9dd3f6 \ + --hash=sha256:2add28aacc7425117ff6364fe9e06a183bb0251b03f986df0e78e974047571fd \ + --hash=sha256:2b1e3b80e1d5e52e40e9b924ec43d81570f0e7d09d11081b797bc4692765a3d4 \ + --hash=sha256:31d556d079d72db7c584c0627ff3a24c5d3fb4f730221d3444f3efb1b2514776 \ + --hash=sha256:36b9d05b51e65b254ea6c2585b59d2c4cb91c8a3d91d0ed0f17591a29aaea54a \ + --hash=sha256:39b0b5d1b6dd03684b3fb276407ebed7090bbec989fa55838c98560c01113b66 \ + --hash=sha256:3cf226acb51d8f1c394c1b310e0e0e61fecdd7adcb78d01e294ac297dd2e7f87 \ + --hash=sha256:3d895d56bd3f82ddd6faaff993c275efc2ff38e52322ea264122d72729dca2b2 \ + --hash=sha256:413540dce94673591859c4c6f794dfeaa845e98bf35d72ed59636f869ef9f86f \ + --hash=sha256:43e685b9b2341681907759cf3a04e14d7104b3580f808cfde1dfdb60ada85475 \ + --hash=sha256:4cbcb367d44a1f0c2be408758b43e1ffb5308abe0ea222897d6bfc8e8281ef2f \ + --hash=sha256:551e321c6ba03b55676970b47cb1b73f14a0a4dce6a3e1a9458fd6d921d72e95 \ + --hash=sha256:5572e41282d5268eb09a697c89a7bee84fae66511f87533a6f88bd2f7b652da9 \ + --hash=sha256:5aa48d7c2356055feef06a43611fc401a07337d5b006be13a30f6c58f869e3c3 \ + --hash=sha256:5b5807f3999fb66776dbce568cc9a828544244a8eb84b84b9bafc080c99597b9 \ + --hash=sha256:5e3f639a7a8f10069d0e15408c0b96a2a828cfdec6fca05296ebcdcc28ca7c76 \ + --hash=sha256:685306e2cc7da35be4ee914fd34ab801a6acacb061b6a7abca922aaf9ad368da \ + --hash=sha256:75c2f8bbddf170e8effc98f5e9084a8751f8174ea6ccf4fca5398436e0320bc8 \ + --hash=sha256:7b438885858efd5be02a9a133caf5812b8776ee0c969fea02c45e8e3f296ba51 \ + --hash=sha256:7d49c66a7d5e56ac959cb6fc583aff0651094ec071ba9ad43df785abc2320d86 \ + --hash=sha256:7d6d9a4aee98fac3eab4952ad1d73aee87359452d1c086b5ceb43ed02ddb16b8 \ + --hash=sha256:84d081fbc252d1b6a982e1870660e7330fb8f90f676f6e78b052ad4e64714bf0 \ + --hash=sha256:8768715ffc41f0008abe25d808c20c3d990f42b6e2e58305d5da280ae7d1fa3b \ + --hash=sha256:920b1de295e72887bafa3ad9f7a792f811847d57ea6b1215154030cf131f16b1 \ + --hash=sha256:9a08144fa4cba33db5255f9b74f0b89888622109bd2776148f2597447f92a94e \ + --hash=sha256:a26d7ff68dfdb9f87a016ecfd1e1c2bacbe3108f4e0f8bcd2228ef9a766c787d \ + --hash=sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c \ + --hash=sha256:b5ef256a3fd497d4973c11bf142e9ed78b150d36f5773f1ca6088c230ffc5867 \ + --hash=sha256:b6c78bdf37764092d369722d9946cb65b8767bfa4110f902a1b2542d8d173c8a \ + --hash=sha256:bbb1b10aa643d973366dc2cb1ad94f99c1726a02343d43cbc011edbfac579e7c \ + --hash=sha256:c084ad935abe686bd9c898e62a02a19abfc9760b5a79bc29644463eaf2840cb0 \ + --hash=sha256:c73add4bb52a206fd0c0723432db123c0c75c280cbd67174dd9d2db228ebb1b4 \ + --hash=sha256:cae9c19ed12d4e8f3ebf46d1a75090e4c0dc16271c5bce1c833ac168f08fb614 \ + --hash=sha256:d20b797a5c1ad80c516e41bc1fb0443ddb5006e9aaa7bda2d71978346aeb9132 \ + --hash=sha256:d3d1654e11d724760cdb37a3d7691f0be9db5fbdaef59c9f532aabf87006dbaa \ + --hash=sha256:d878f2a6707cc9d53a1be1414bbb419e629c3d6e67f69230217bb663e76b5087 # via # build # coverage @@ -5536,15 +5537,15 @@ tomli==2.3.0 \ # pytest # pytest-env # singlestoredb -tomlkit==0.13.3 \ - --hash=sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1 \ - --hash=sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0 +tomlkit==0.14.0 \ + --hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 \ + --hash=sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064 # via # poetry-dynamic-versioning # snowflake-connector-python -toolz==0.12.1 \ - --hash=sha256:d22731364c07d72eea0a0ad45bafb2c2937ab6fd38a3507bf55eae8744aa7d85 \ - --hash=sha256:ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d +toolz==1.1.0 \ + --hash=sha256:15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8 \ + --hash=sha256:27a5c770d068c110d9ed9323f24f1543e83b2f300a687b7891c1a6d56b697b5b # via # altair # dask @@ -5671,9 +5672,9 @@ traitlets==5.14.3 \ # nbclient # nbconvert # nbformat -transformers==4.57.3 \ - --hash=sha256:c77d353a4851b1880191603d36acb313411d3577f6e2897814f333841f7003f4 \ - --hash=sha256:df4945029aaddd7c09eec5cad851f30662f8bd1746721b34cc031d70c65afebc +transformers==4.57.5 \ + --hash=sha256:5a1e0deb989cd0b8f141b6d8c9b7c956fc029cd288d68844f57dc0acbaf2fe39 \ + --hash=sha256:d631faea6bd32fc51962e482744afeaa70170c70e5e991cf8e355d7275631524 # via # feast (setup.py) # docling-core @@ -5726,16 +5727,6 @@ tree-sitter-c==0.24.1 \ --hash=sha256:a6a807705a3978911dc7ee26a7ad36dcfacb6adfc13c190d496660ec9bd66707 \ --hash=sha256:d46bbda06f838c2dcb91daf767813671fd366b49ad84ff37db702129267b46e1 # via docling-core -tree-sitter-java==0.23.5 \ - --hash=sha256:1ee45e790f8d31d416bc84a09dac2e2c6bc343e89b8a2e1d550513498eedfde7 \ - --hash=sha256:24acd59c4720dedad80d548fe4237e43ef2b7a4e94c8549b0ca6e4c4d7bf6e69 \ - --hash=sha256:355ce0308672d6f7013ec913dee4a0613666f4cda9044a7824240d17f38209df \ - --hash=sha256:370b204b9500b847f6d0c5ad584045831cee69e9a3e4d878535d39e4a7e4c4f1 \ - --hash=sha256:402efe136104c5603b429dc26c7e75ae14faaca54cfd319ecc41c8f2534750f4 \ - --hash=sha256:9401e7271f0b333df39fc8a8336a0caf1b891d9a2b89ddee99fae66b794fc5b7 \ - --hash=sha256:aae84449e330363b55b14a2af0585e4e0dae75eb64ea509b7e5b0e1de536846a \ - --hash=sha256:f5cd57b8f1270a7f0438878750d02ccc79421d45cca65ff284f1527e9ef02e38 - # via docling-core tree-sitter-javascript==0.25.0 \ --hash=sha256:199d09985190852e0912da2b8d26c932159be314bc04952cf917ed0e4c633e6b \ --hash=sha256:1b852d3aee8a36186dbcc32c798b11b4869f9b5041743b63b65c2ef793db7a54 \ @@ -5869,7 +5860,6 @@ typing-extensions==4.15.0 \ # python-docx # python-pptx # referencing - # rich # snowflake-connector-python # sqlalchemy # starlette @@ -5891,6 +5881,7 @@ tzdata==2025.3 \ --hash=sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7 # via # arrow + # ibis-framework # pandas tzlocal==5.3.1 \ --hash=sha256:cceffc7edecefea1f595541dbd6e990cb1ea3d19bf01b2809f362a03dd7921fd \ @@ -6204,80 +6195,72 @@ websocket-client==1.9.0 \ # via # jupyter-server # kubernetes -websockets==15.0.1 \ - --hash=sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2 \ - --hash=sha256:0a34631031a8f05657e8e90903e656959234f3a04552259458aac0b0f9ae6fd9 \ - --hash=sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5 \ - --hash=sha256:0c9e74d766f2818bb95f84c25be4dea09841ac0f734d1966f415e4edfc4ef1c3 \ - --hash=sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8 \ - --hash=sha256:0fdfe3e2a29e4db3659dbd5bbf04560cea53dd9610273917799f1cde46aa725e \ - --hash=sha256:1009ee0c7739c08a0cd59de430d6de452a55e42d6b522de7aa15e6f67db0b8e1 \ - --hash=sha256:1234d4ef35db82f5446dca8e35a7da7964d02c127b095e172e54397fb6a6c256 \ - --hash=sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85 \ - --hash=sha256:2034693ad3097d5355bfdacfffcbd3ef5694f9718ab7f29c29689a9eae841880 \ - --hash=sha256:21c1fa28a6a7e3cbdc171c694398b6df4744613ce9b36b1a498e816787e28123 \ - --hash=sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375 \ - --hash=sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065 \ - --hash=sha256:363c6f671b761efcb30608d24925a382497c12c506b51661883c3e22337265ed \ - --hash=sha256:39c1fec2c11dc8d89bba6b2bf1556af381611a173ac2b511cf7231622058af41 \ - --hash=sha256:3b1ac0d3e594bf121308112697cf4b32be538fb1444468fb0a6ae4feebc83411 \ - --hash=sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597 \ - --hash=sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f \ - --hash=sha256:3d00075aa65772e7ce9e990cab3ff1de702aa09be3940d1dc88d5abf1ab8a09c \ - --hash=sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3 \ - --hash=sha256:47819cea040f31d670cc8d324bb6435c6f133b8c7a19ec3d61634e62f8d8f9eb \ - --hash=sha256:47b099e1f4fbc95b701b6e85768e1fcdaf1630f3cbe4765fa216596f12310e2e \ - --hash=sha256:4a9fac8e469d04ce6c25bb2610dc535235bd4aa14996b4e6dbebf5e007eba5ee \ - --hash=sha256:4b826973a4a2ae47ba357e4e82fa44a463b8f168e1ca775ac64521442b19e87f \ - --hash=sha256:4c2529b320eb9e35af0fa3016c187dffb84a3ecc572bcee7c3ce302bfeba52bf \ - --hash=sha256:54479983bd5fb469c38f2f5c7e3a24f9a4e70594cd68cd1fa6b9340dadaff7cf \ - --hash=sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4 \ - --hash=sha256:5756779642579d902eed757b21b0164cd6fe338506a8083eb58af5c372e39d9a \ - --hash=sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665 \ - --hash=sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22 \ - --hash=sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675 \ - --hash=sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4 \ - --hash=sha256:5df592cd503496351d6dc14f7cdad49f268d8e618f80dce0cd5a36b93c3fc08d \ - --hash=sha256:5f4c04ead5aed67c8a1a20491d54cdfba5884507a48dd798ecaf13c74c4489f5 \ - --hash=sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65 \ - --hash=sha256:66dd88c918e3287efc22409d426c8f729688d89a0c587c88971a0faa2c2f3792 \ - --hash=sha256:678999709e68425ae2593acf2e3ebcbcf2e69885a5ee78f9eb80e6e371f1bf57 \ - --hash=sha256:67f2b6de947f8c757db2db9c71527933ad0019737ec374a8a6be9a956786aaf9 \ - --hash=sha256:693f0192126df6c2327cce3baa7c06f2a117575e32ab2308f7f8216c29d9e2e3 \ - --hash=sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151 \ - --hash=sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d \ - --hash=sha256:76d1f20b1c7a2fa82367e04982e708723ba0e7b8d43aa643d3dcd404d74f1475 \ - --hash=sha256:7f493881579c90fc262d9cdbaa05a6b54b3811c2f300766748db79f098db9940 \ - --hash=sha256:823c248b690b2fd9303ba00c4f66cd5e2d8c3ba4aa968b2779be9532a4dad431 \ - --hash=sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee \ - --hash=sha256:8dd8327c795b3e3f219760fa603dcae1dcc148172290a8ab15158cf85a953413 \ - --hash=sha256:8fdc51055e6ff4adeb88d58a11042ec9a5eae317a0a53d12c062c8a8865909e8 \ - --hash=sha256:a625e06551975f4b7ea7102bc43895b90742746797e2e14b70ed61c43a90f09b \ - --hash=sha256:abdc0c6c8c648b4805c5eacd131910d2a7f6455dfd3becab248ef108e89ab16a \ - --hash=sha256:ac017dd64572e5c3bd01939121e4d16cf30e5d7e110a119399cf3133b63ad054 \ - --hash=sha256:ac1e5c9054fe23226fb11e05a6e630837f074174c4c2f0fe442996112a6de4fb \ - --hash=sha256:ac60e3b188ec7574cb761b08d50fcedf9d77f1530352db4eef1707fe9dee7205 \ - --hash=sha256:b359ed09954d7c18bbc1680f380c7301f92c60bf924171629c5db97febb12f04 \ - --hash=sha256:b7643a03db5c95c799b89b31c036d5f27eeb4d259c798e878d6937d71832b1e4 \ - --hash=sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa \ - --hash=sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9 \ - --hash=sha256:cad21560da69f4ce7658ca2cb83138fb4cf695a2ba3e475e0559e05991aa8122 \ - --hash=sha256:d08eb4c2b7d6c41da6ca0600c077e93f5adcfd979cd777d747e9ee624556da4b \ - --hash=sha256:d50fd1ee42388dcfb2b3676132c78116490976f1300da28eb629272d5d93e905 \ - --hash=sha256:d591f8de75824cbb7acad4e05d2d710484f15f29d4a915092675ad3456f11770 \ - --hash=sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe \ - --hash=sha256:d63efaa0cd96cf0c5fe4d581521d9fa87744540d4bc999ae6e08595a1014b45b \ - --hash=sha256:d99e5546bf73dbad5bf3547174cd6cb8ba7273062a23808ffea025ecb1cf8562 \ - --hash=sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561 \ - --hash=sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215 \ - --hash=sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931 \ - --hash=sha256:f29d80eb9a9263b8d109135351caf568cc3f80b9928bccde535c235de55c22d9 \ - --hash=sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f \ - --hash=sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7 +websockets==16.0 \ + --hash=sha256:0298d07ee155e2e9fda5be8a9042200dd2e3bb0b8a38482156576f863a9d457c \ + --hash=sha256:04cdd5d2d1dacbad0a7bf36ccbcd3ccd5a30ee188f2560b7a62a30d14107b31a \ + --hash=sha256:08d7af67b64d29823fed316505a89b86705f2b7981c07848fb5e3ea3020c1abe \ + --hash=sha256:152284a83a00c59b759697b7f9e9cddf4e3c7861dd0d964b472b70f78f89e80e \ + --hash=sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec \ + --hash=sha256:19c4dc84098e523fd63711e563077d39e90ec6702aff4b5d9e344a60cb3c0cb1 \ + --hash=sha256:1c1b30e4f497b0b354057f3467f56244c603a79c0d1dafce1d16c283c25f6e64 \ + --hash=sha256:2b9f1e0d69bc60a4a87349d50c09a037a2607918746f07de04df9e43252c77a3 \ + --hash=sha256:31a52addea25187bde0797a97d6fc3d2f92b6f72a9370792d65a6e84615ac8a8 \ + --hash=sha256:32da954ffa2814258030e5a57bc73a3635463238e797c7375dc8091327434206 \ + --hash=sha256:335c23addf3d5e6a8633f9f8eda77efad001671e80b95c491dd0924587ece0b3 \ + --hash=sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156 \ + --hash=sha256:349f83cd6c9a415428ee1005cadb5c2c56f4389bc06a9af16103c3bc3dcc8b7d \ + --hash=sha256:37b31c1623c6605e4c00d466c9d633f9b812ea430c11c8a278774a1fde1acfa9 \ + --hash=sha256:417b28978cdccab24f46400586d128366313e8a96312e4b9362a4af504f3bbad \ + --hash=sha256:485c49116d0af10ac698623c513c1cc01c9446c058a4e61e3bf6c19dff7335a2 \ + --hash=sha256:4a1aba3340a8dca8db6eb5a7986157f52eb9e436b74813764241981ca4888f03 \ + --hash=sha256:50f23cdd8343b984957e4077839841146f67a3d31ab0d00e6b824e74c5b2f6e8 \ + --hash=sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230 \ + --hash=sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8 \ + --hash=sha256:5569417dc80977fc8c2d43a86f78e0a5a22fee17565d78621b6bb264a115d4ea \ + --hash=sha256:569d01a4e7fba956c5ae4fc988f0d4e187900f5497ce46339c996dbf24f17641 \ + --hash=sha256:583b7c42688636f930688d712885cf1531326ee05effd982028212ccc13e5957 \ + --hash=sha256:5a4b4cc550cb665dd8a47f868c8d04c8230f857363ad3c9caf7a0c3bf8c61ca6 \ + --hash=sha256:5f451484aeb5cafee1ccf789b1b66f535409d038c56966d6101740c1614b86c6 \ + --hash=sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5 \ + --hash=sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f \ + --hash=sha256:71c989cbf3254fbd5e84d3bff31e4da39c43f884e64f2551d14bb3c186230f00 \ + --hash=sha256:781caf5e8eee67f663126490c2f96f40906594cb86b408a703630f95550a8c3e \ + --hash=sha256:7be95cfb0a4dae143eaed2bcba8ac23f4892d8971311f1b06f3c6b78952ee70b \ + --hash=sha256:7d837379b647c0c4c2355c2499723f82f1635fd2c26510e1f587d89bc2199e72 \ + --hash=sha256:86890e837d61574c92a97496d590968b23c2ef0aeb8a9bc9421d174cd378ae39 \ + --hash=sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9 \ + --hash=sha256:8b6e209ffee39ff1b6d0fa7bfef6de950c60dfb91b8fcead17da4ee539121a79 \ + --hash=sha256:8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0 \ + --hash=sha256:8d7f0659570eefb578dacde98e24fb60af35350193e4f56e11190787bee77dac \ + --hash=sha256:8e1dab317b6e77424356e11e99a432b7cb2f3ec8c5ab4dabbcee6add48f72b35 \ + --hash=sha256:8ff32bb86522a9e5e31439a58addbb0166f0204d64066fb955265c4e214160f0 \ + --hash=sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5 \ + --hash=sha256:9b5aca38b67492ef518a8ab76851862488a478602229112c4b0d58d63a7a4d5c \ + --hash=sha256:a069d734c4a043182729edd3e9f247c3b2a4035415a9172fd0f1b71658a320a8 \ + --hash=sha256:a0b31e0b424cc6b5a04b8838bbaec1688834b2383256688cf47eb97412531da1 \ + --hash=sha256:a35539cacc3febb22b8f4d4a99cc79b104226a756aa7400adc722e83b0d03244 \ + --hash=sha256:a5e18a238a2b2249c9a9235466b90e96ae4795672598a58772dd806edc7ac6d3 \ + --hash=sha256:a653aea902e0324b52f1613332ddf50b00c06fdaf7e92624fbf8c77c78fa5767 \ + --hash=sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a \ + --hash=sha256:af80d74d4edfa3cb9ed973a0a5ba2b2a549371f8a741e0800cb07becdd20f23d \ + --hash=sha256:b14dc141ed6d2dde437cddb216004bcac6a1df0935d79656387bd41632ba0bbd \ + --hash=sha256:b784ca5de850f4ce93ec85d3269d24d4c82f22b7212023c974c401d4980ebc5e \ + --hash=sha256:bc59589ab64b0022385f429b94697348a6a234e8ce22544e3681b2e9331b5944 \ + --hash=sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82 \ + --hash=sha256:c0ee0e63f23914732c6d7e0cce24915c48f3f1512ec1d079ed01fc629dab269d \ + --hash=sha256:caab51a72c51973ca21fa8a18bd8165e1a0183f1ac7066a182ff27107b71e1a4 \ + --hash=sha256:d6297ce39ce5c2e6feb13c1a996a2ded3b6832155fcfc920265c76f24c7cceb5 \ + --hash=sha256:daa3b6ff70a9241cf6c7fc9e949d41232d9d7d26fd3522b1ad2b4d62487e9904 \ + --hash=sha256:df57afc692e517a85e65b72e165356ed1df12386ecb879ad5693be08fac65dde \ + --hash=sha256:e0334872c0a37b606418ac52f6ab9cfd17317ac26365f7f65e203e2d0d0d359f \ + --hash=sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c \ + --hash=sha256:eaded469f5e5b7294e2bdca0ab06becb6756ea86894a47806456089298813c89 \ + --hash=sha256:f4a32d1bd841d4bcbffdcb3d2ce50c09c3909fbead375ab28d0181af89fd04da \ + --hash=sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4 # via uvicorn -werkzeug==3.1.4 \ - --hash=sha256:2ad50fb9ed09cc3af22c54698351027ace879a0b60a3b5edf5730b2f7d876905 \ - --hash=sha256:cd3cd98b1b92dc3b7b3995038826c68097dcb16f9baa63abe35f20eafeb9fe5e +werkzeug==3.1.5 \ + --hash=sha256:5111e36e91086ece91f93268bb39b4a35c1e6f1feac762c9c822ded0a4e322dc \ + --hash=sha256:6a548b0e88955dd07ccb25539d7d0cc97417ee9e179677d22c7041c8f078ce67 # via moto wheel==0.45.1 \ --hash=sha256:661e1abd9198507b1409a20c02106d9670b2576e916d58f520316666abca6729 \ diff --git a/sdk/python/requirements/py3.10-minimal-requirements.txt b/sdk/python/requirements/py3.10-minimal-requirements.txt index 49c47aba783..6072abfe2b0 100644 --- a/sdk/python/requirements/py3.10-minimal-requirements.txt +++ b/sdk/python/requirements/py3.10-minimal-requirements.txt @@ -8,127 +8,127 @@ aiohappyeyeballs==2.6.1 \ --hash=sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558 \ --hash=sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8 # via aiohttp -aiohttp==3.13.2 \ - --hash=sha256:04c3971421576ed24c191f610052bcb2f059e395bc2489dd99e397f9bc466329 \ - --hash=sha256:05c4dd3c48fb5f15db31f57eb35374cb0c09afdde532e7fb70a75aede0ed30f6 \ - --hash=sha256:070599407f4954021509193404c4ac53153525a19531051661440644728ba9a7 \ - --hash=sha256:0740f31a60848d6edb296a0df827473eede90c689b8f9f2a4cdde74889eb2254 \ - --hash=sha256:088912a78b4d4f547a1f19c099d5a506df17eacec3c6f4375e2831ec1d995742 \ - --hash=sha256:0a3d54e822688b56e9f6b5816fb3de3a3a64660efac64e4c2dc435230ad23bad \ - --hash=sha256:0db1e24b852f5f664cd728db140cf11ea0e82450471232a394b3d1a540b0f906 \ - --hash=sha256:0e87dff73f46e969af38ab3f7cb75316a7c944e2e574ff7c933bc01b10def7f5 \ - --hash=sha256:1237c1375eaef0db4dcd7c2559f42e8af7b87ea7d295b118c60c36a6e61cb811 \ - --hash=sha256:16f15a4eac3bc2d76c45f7ebdd48a65d41b242eb6c31c2245463b40b34584ded \ - --hash=sha256:1f9b2c2d4b9d958b1f9ae0c984ec1dd6b6689e15c75045be8ccb4011426268ca \ - --hash=sha256:204ffff2426c25dfda401ba08da85f9c59525cdc42bda26660463dd1cbcfec6f \ - --hash=sha256:20b10bbfbff766294fe99987f7bb3b74fdd2f1a2905f2562132641ad434dcf98 \ - --hash=sha256:20db2d67985d71ca033443a1ba2001c4b5693fe09b0e29f6d9358a99d4d62a8a \ - --hash=sha256:228a1cd556b3caca590e9511a89444925da87d35219a49ab5da0c36d2d943a6a \ - --hash=sha256:2372b15a5f62ed37789a6b383ff7344fc5b9f243999b0cd9b629d8bc5f5b4155 \ - --hash=sha256:23ad365e30108c422d0b4428cf271156dd56790f6dd50d770b8e360e6c5ab2e6 \ - --hash=sha256:23fb0783bc1a33640036465019d3bba069942616a6a2353c6907d7fe1ccdaf4e \ - --hash=sha256:2475391c29230e063ef53a66669b7b691c9bfc3f1426a0f7bcdf1216bdbac38b \ - --hash=sha256:27e569eb9d9e95dbd55c0fc3ec3a9335defbf1d8bc1d20171a49f3c4c607b93e \ - --hash=sha256:29562998ec66f988d49fb83c9b01694fa927186b781463f376c5845c121e4e0b \ - --hash=sha256:2adebd4577724dcae085665f294cc57c8701ddd4d26140504db622b8d566d7aa \ - --hash=sha256:2ca6ffef405fc9c09a746cb5d019c1672cd7f402542e379afc66b370833170cf \ - --hash=sha256:2e1a9bea6244a1d05a4e57c295d69e159a5c50d8ef16aa390948ee873478d9a5 \ - --hash=sha256:364e25edaabd3d37b1db1f0cbcee8c73c9a3727bfa262b83e5e4cf3489a2a9dc \ - --hash=sha256:364f55663085d658b8462a1c3f17b2b84a5c2e1ba858e1b79bff7b2e24ad1514 \ - --hash=sha256:39d02cb6025fe1aabca329c5632f48c9532a3dabccd859e7e2f110668972331f \ - --hash=sha256:3a92cf4b9bea33e15ecbaa5c59921be0f23222608143d025c989924f7e3e0c07 \ - --hash=sha256:40176a52c186aefef6eb3cad2cdd30cd06e3afbe88fe8ab2af9c0b90f228daca \ - --hash=sha256:4356474ad6333e41ccefd39eae869ba15a6c5299c9c01dfdcfdd5c107be4363e \ - --hash=sha256:43dff14e35aba17e3d6d5ba628858fb8cb51e30f44724a2d2f0c75be492c55e9 \ - --hash=sha256:4647d02df098f6434bafd7f32ad14942f05a9caa06c7016fdcc816f343997dd0 \ - --hash=sha256:47f438b1a28e926c37632bff3c44df7d27c9b57aaf4e34b1def3c07111fdb782 \ - --hash=sha256:4dd3db9d0f4ebca1d887d76f7cdbcd1116ac0d05a9221b9dad82c64a62578c4d \ - --hash=sha256:4ebf9cfc9ba24a74cf0718f04aac2a3bbe745902cc7c5ebc55c0f3b5777ef213 \ - --hash=sha256:5276807b9de9092af38ed23ce120539ab0ac955547b38563a9ba4f5b07b95293 \ - --hash=sha256:53b07472f235eb80e826ad038c9d106c2f653584753f3ddab907c83f49eedead \ - --hash=sha256:550bf765101ae721ee1d37d8095f47b1f220650f85fe1af37a90ce75bab89d04 \ - --hash=sha256:56d36e80d2003fa3fc0207fac644216d8532e9504a785ef9a8fd013f84a42c61 \ - --hash=sha256:585542825c4bc662221fb257889e011a5aa00f1ae4d75d1d246a5225289183e3 \ - --hash=sha256:5b927cf9b935a13e33644cbed6c8c4b2d0f25b713d838743f8fe7191b33829c4 \ - --hash=sha256:5d7f02042c1f009ffb70067326ef183a047425bb2ff3bc434ead4dd4a4a66a2b \ - --hash=sha256:6315fb6977f1d0dd41a107c527fee2ed5ab0550b7d885bc15fee20ccb17891da \ - --hash=sha256:66bac29b95a00db411cd758fea0e4b9bdba6d549dfe333f9a945430f5f2cc5a6 \ - --hash=sha256:6c00dbcf5f0d88796151e264a8eab23de2997c9303dd7c0bf622e23b24d3ce22 \ - --hash=sha256:6e7352512f763f760baaed2637055c49134fd1d35b37c2dedfac35bfe5cf8725 \ - --hash=sha256:7519bdc7dfc1940d201651b52bf5e03f5503bda45ad6eacf64dda98be5b2b6be \ - --hash=sha256:78cd586d8331fb8e241c2dd6b2f4061778cc69e150514b39a9e28dd050475661 \ - --hash=sha256:7a653d872afe9f33497215745da7a943d1dc15b728a9c8da1c3ac423af35178e \ - --hash=sha256:7c3a50345635a02db61792c85bb86daffac05330f6473d524f1a4e3ef9d0046d \ - --hash=sha256:7fbdf5ad6084f1940ce88933de34b62358d0f4a0b6ec097362dcd3e5a65a4989 \ - --hash=sha256:7fd19df530c292542636c2a9a85854fab93474396a52f1695e799186bbd7f24c \ - --hash=sha256:868e195e39b24aaa930b063c08bb0c17924899c16c672a28a65afded9c46c6ec \ - --hash=sha256:8709a0f05d59a71f33fd05c17fc11fcb8c30140506e13c2f5e8ee1b8964e1b45 \ - --hash=sha256:88d6c017966a78c5265d996c19cdb79235be5e6412268d7e2ce7dee339471b7a \ - --hash=sha256:8aa7c807df234f693fed0ecd507192fc97692e61fee5702cdc11155d2e5cadc8 \ - --hash=sha256:8b2f1414f6a1e0683f212ec80e813f4abef94c739fd090b66c9adf9d2a05feac \ - --hash=sha256:93655083005d71cd6c072cdab54c886e6570ad2c4592139c3fb967bfc19e4694 \ - --hash=sha256:939ced4a7add92296b0ad38892ce62b98c619288a081170695c6babe4f50e636 \ - --hash=sha256:9434bc0d80076138ea986833156c5a48c9c7a8abb0c96039ddbb4afc93184169 \ - --hash=sha256:94f05348c4406450f9d73d38efb41d669ad6cd90c7ee194810d0eefbfa875a7a \ - --hash=sha256:960c2fc686ba27b535f9fd2b52d87ecd7e4fd1cf877f6a5cba8afb5b4a8bd204 \ - --hash=sha256:96581619c57419c3d7d78703d5b78c1e5e5fc0172d60f555bdebaced82ded19a \ - --hash=sha256:97a0895a8e840ab3520e2288db7cace3a1981300d48babeb50e7425609e2e0ab \ - --hash=sha256:98c4fb90bb82b70a4ed79ca35f656f4281885be076f3f970ce315402b53099ae \ - --hash=sha256:99c5280a329d5fa18ef30fd10c793a190d996567667908bef8a7f81f8202b948 \ - --hash=sha256:9acda8604a57bb60544e4646a4615c1866ee6c04a8edef9b8ee6fd1d8fa2ddc8 \ - --hash=sha256:9c705601e16c03466cb72011bd1af55d68fa65b045356d8f96c216e5f6db0fa5 \ - --hash=sha256:9e8f8afb552297aca127c90cb840e9a1d4bfd6a10d7d8f2d9176e1acc69bad30 \ - --hash=sha256:9eb3e33fdbe43f88c3c75fa608c25e7c47bbd80f48d012763cb67c47f39a7e16 \ - --hash=sha256:9ec49dff7e2b3c85cdeaa412e9d438f0ecd71676fde61ec57027dd392f00c693 \ - --hash=sha256:9f377d0a924e5cc94dc620bc6366fc3e889586a7f18b748901cf016c916e2084 \ - --hash=sha256:a09a6d073fb5789456545bdee2474d14395792faa0527887f2f4ec1a486a59d3 \ - --hash=sha256:a2713a95b47374169409d18103366de1050fe0ea73db358fc7a7acb2880422d4 \ - --hash=sha256:a3b6fb0c207cc661fa0bf8c66d8d9b657331ccc814f4719468af61034b478592 \ - --hash=sha256:a4b88ebe35ce54205c7074f7302bd08a4cb83256a3e0870c72d6f68a3aaf8e49 \ - --hash=sha256:a88d13e7ca367394908f8a276b89d04a3652044612b9a408a0bb22a5ed976a1a \ - --hash=sha256:ac6cde5fba8d7d8c6ac963dbb0256a9854e9fafff52fbcc58fdf819357892c3e \ - --hash=sha256:ae32f24bbfb7dbb485a24b30b1149e2f200be94777232aeadba3eecece4d0aa4 \ - --hash=sha256:b009194665bcd128e23eaddef362e745601afa4641930848af4c8559e88f18f9 \ - --hash=sha256:b1e56bab2e12b2b9ed300218c351ee2a3d8c8fdab5b1ec6193e11a817767e47b \ - --hash=sha256:b395bbca716c38bef3c764f187860e88c724b342c26275bc03e906142fc5964f \ - --hash=sha256:b59d13c443f8e049d9e94099c7e412e34610f1f49be0f230ec656a10692a5802 \ - --hash=sha256:ba2715d842ffa787be87cbfce150d5e88c87a98e0b62e0f5aa489169a393dbbb \ - --hash=sha256:bb7fb776645af5cc58ab804c58d7eba545a97e047254a52ce89c157b5af6cd0b \ - --hash=sha256:c038a8fdc8103cd51dbd986ecdce141473ffd9775a7a8057a6ed9c3653478011 \ - --hash=sha256:c20423ce14771d98353d2e25e83591fa75dfa90a3c1848f3d7c68243b4fbded3 \ - --hash=sha256:c5c94825f744694c4b8db20b71dba9a257cd2ba8e010a803042123f3a25d50d7 \ - --hash=sha256:cf00e5db968c3f67eccd2778574cf64d8b27d95b237770aa32400bd7a1ca4f6c \ - --hash=sha256:d23b5fe492b0805a50d3371e8a728a9134d8de5447dce4c885f5587294750734 \ - --hash=sha256:d7bc4b7f9c4921eba72677cd9fedd2308f4a4ca3e12fab58935295ad9ea98700 \ - --hash=sha256:d8a9b889aeabd7a4e9af0b7f4ab5ad94d42e7ff679aaec6d0db21e3b639ad58d \ - --hash=sha256:dacd50501cd017f8cccb328da0c90823511d70d24a323196826d923aad865901 \ - --hash=sha256:e036a3a645fe92309ec34b918394bb377950cbb43039a97edae6c08db64b23e2 \ - --hash=sha256:e09a0a06348a2dd73e7213353c90d709502d9786219f69b731f6caa0efeb46f5 \ - --hash=sha256:e0c8e31cfcc4592cb200160344b2fb6ae0f9e4effe06c644b5a125d4ae5ebe23 \ - --hash=sha256:e1b4951125ec10c70802f2cb09736c895861cd39fd9dcb35107b4dc8ae6220b8 \ - --hash=sha256:e2a9ea08e8c58bb17655630198833109227dea914cd20be660f52215f6de5613 \ - --hash=sha256:e3403f24bcb9c3b29113611c3c16a2a447c3953ecf86b79775e7be06f7ae7ccb \ - --hash=sha256:e574a7d61cf10351d734bcddabbe15ede0eaa8a02070d85446875dc11189a251 \ - --hash=sha256:e67446b19e014d37342f7195f592a2a948141d15a312fe0e700c2fd2f03124f6 \ - --hash=sha256:e736c93e9c274fce6419af4aac199984d866e55f8a4cec9114671d0ea9688780 \ - --hash=sha256:e7c952aefdf2460f4ae55c5e9c3e80aa72f706a6317e06020f80e96253b1accd \ - --hash=sha256:e7f8659a48995edee7229522984bd1009c1213929c769c2daa80b40fe49a180c \ - --hash=sha256:e96eb1a34396e9430c19d8338d2ec33015e4a87ef2b4449db94c22412e25ccdf \ - --hash=sha256:ec7534e63ae0f3759df3a1ed4fa6bc8f75082a924b590619c0dd2f76d7043caa \ - --hash=sha256:ed2f9c7216e53c3df02264f25d824b079cc5914f9e2deba94155190ef648ee40 \ - --hash=sha256:eeacf451c99b4525f700f078becff32c32ec327b10dcf31306a8a52d78166de7 \ - --hash=sha256:f10d9c0b0188fe85398c61147bbd2a657d616c876863bfeff43376e0e3134673 \ - --hash=sha256:f2bef8237544f4e42878c61cef4e2839fee6346dc60f5739f876a9c50be7fcdb \ - --hash=sha256:f33c8748abef4d8717bb20e8fb1b3e07c6adacb7fd6beaae971a764cf5f30d61 \ - --hash=sha256:f7c183e786e299b5d6c49fb43a769f8eb8e04a2726a2bd5887b98b5cc2d67940 \ - --hash=sha256:fa4dcb605c6f82a80c7f95713c2b11c3b8e9893b3ebd2bc9bde93165ed6107be \ - --hash=sha256:fa89cb11bc71a63b69568d5b8a25c3ca25b6d54c15f907ca1c130d72f320b76b \ - --hash=sha256:fe242cd381e0fb65758faf5ad96c2e460df6ee5b2de1072fe97e4127927e00b4 \ - --hash=sha256:fe91b87fc295973096251e2d25a811388e7d8adf3bd2b97ef6ae78bc4ac6c476 \ - --hash=sha256:fed38a5edb7945f4d1bcabe2fcd05db4f6ec7e0e82560088b754f7e08d93772d \ - --hash=sha256:ff0a7b0a82a7ab905cbda74006318d1b12e37c797eb1b0d4eb3e316cf47f658f \ - --hash=sha256:ff15c147b2ad66da1f2cbb0622313f2242d8e6e8f9b79b5206c84523a4473248 \ - --hash=sha256:ff5e771f5dcbc81c64898c597a434f7682f2259e0cd666932a913d53d1341d1a +aiohttp==3.13.3 \ + --hash=sha256:01ad2529d4b5035578f5081606a465f3b814c542882804e2e8cda61adf5c71bf \ + --hash=sha256:042e9e0bcb5fba81886c8b4fbb9a09d6b8a00245fd8d88e4d989c1f96c74164c \ + --hash=sha256:05861afbbec40650d8a07ea324367cb93e9e8cc7762e04dd4405df99fa65159c \ + --hash=sha256:084911a532763e9d3dd95adf78a78f4096cd5f58cdc18e6fdbc1b58417a45423 \ + --hash=sha256:0add0900ff220d1d5c5ebbf99ed88b0c1bbf87aa7e4262300ed1376a6b13414f \ + --hash=sha256:0db318f7a6f065d84cb1e02662c526294450b314a02bd9e2a8e67f0d8564ce40 \ + --hash=sha256:10b47b7ba335d2e9b1239fa571131a87e2d8ec96b333e68b2a305e7a98b0bae2 \ + --hash=sha256:1449ceddcdbcf2e0446957863af03ebaaa03f94c090f945411b61269e2cb5daf \ + --hash=sha256:147e422fd1223005c22b4fe080f5d93ced44460f5f9c105406b753612b587821 \ + --hash=sha256:1cb93e166e6c28716c8c6aeb5f99dfb6d5ccf482d29fe9bf9a794110e6d0ab64 \ + --hash=sha256:215a685b6fbbfcf71dfe96e3eba7a6f58f10da1dfdf4889c7dd856abe430dca7 \ + --hash=sha256:2712039939ec963c237286113c68dbad80a82a4281543f3abf766d9d73228998 \ + --hash=sha256:27234ef6d85c914f9efeb77ff616dbf4ad2380be0cda40b4db086ffc7ddd1b7d \ + --hash=sha256:28e027cf2f6b641693a09f631759b4d9ce9165099d2b5d92af9bd4e197690eea \ + --hash=sha256:2b8d8ddba8f95ba17582226f80e2de99c7a7948e66490ef8d947e272a93e9463 \ + --hash=sha256:2ba0eea45eb5cc3172dbfc497c066f19c41bac70963ea1a67d51fc92e4cf9a80 \ + --hash=sha256:2be0e9ccf23e8a94f6f0650ce06042cefc6ac703d0d7ab6c7a917289f2539ad4 \ + --hash=sha256:2e41b18a58da1e474a057b3d35248d8320029f61d70a37629535b16a0c8f3767 \ + --hash=sha256:2eb752b102b12a76ca02dff751a801f028b4ffbbc478840b473597fc91a9ed43 \ + --hash=sha256:2fc82186fadc4a8316768d61f3722c230e2c1dcab4200d52d2ebdf2482e47592 \ + --hash=sha256:2fff83cfc93f18f215896e3a190e8e5cb413ce01553901aca925176e7568963a \ + --hash=sha256:31a83ea4aead760dfcb6962efb1d861db48c34379f2ff72db9ddddd4cda9ea2e \ + --hash=sha256:34749271508078b261c4abb1767d42b8d0c0cc9449c73a4df494777dc55f0687 \ + --hash=sha256:34bac00a67a812570d4a460447e1e9e06fae622946955f939051e7cc895cfab8 \ + --hash=sha256:37239e9f9a7ea9ac5bf6b92b0260b01f8a22281996da609206a84df860bc1261 \ + --hash=sha256:37da61e244d1749798c151421602884db5270faf479cf0ef03af0ff68954c9dd \ + --hash=sha256:3b61b7169ababd7802f9568ed96142616a9118dd2be0d1866e920e77ec8fa92a \ + --hash=sha256:3d9908a48eb7416dc1f4524e69f1d32e5d90e3981e4e37eb0aa1cd18f9cfa2a4 \ + --hash=sha256:3dd4dce1c718e38081c8f35f323209d4c1df7d4db4bab1b5c88a6b4d12b74587 \ + --hash=sha256:4021b51936308aeea0367b8f006dc999ca02bc118a0cc78c303f50a2ff6afb91 \ + --hash=sha256:40c5e40ecc29ba010656c18052b877a1c28f84344825efa106705e835c28530f \ + --hash=sha256:425c126c0dc43861e22cb1c14ba4c8e45d09516d0a3ae0a3f7494b79f5f233a3 \ + --hash=sha256:44531a36aa2264a1860089ffd4dce7baf875ee5a6079d5fb42e261c704ef7344 \ + --hash=sha256:48e377758516d262bde50c2584fc6c578af272559c409eecbdd2bae1601184d6 \ + --hash=sha256:49a03727c1bba9a97d3e93c9f93ca03a57300f484b6e935463099841261195d3 \ + --hash=sha256:4ae5b5a0e1926e504c81c5b84353e7a5516d8778fbbff00429fe7b05bb25cbce \ + --hash=sha256:4e239d501f73d6db1522599e14b9b321a7e3b1de66ce33d53a765d975e9f4808 \ + --hash=sha256:56339a36b9f1fc708260c76c87e593e2afb30d26de9ae1eb445b5e051b98a7a1 \ + --hash=sha256:568f416a4072fbfae453dcf9a99194bbb8bdeab718e08ee13dfa2ba0e4bebf29 \ + --hash=sha256:5b179331a481cb5529fca8b432d8d3c7001cb217513c94cd72d668d1248688a3 \ + --hash=sha256:5b6073099fb654e0a068ae678b10feff95c5cae95bbfcbfa7af669d361a8aa6b \ + --hash=sha256:5d2d94f1f5fcbe40838ac51a6ab5704a6f9ea42e72ceda48de5e6b898521da51 \ + --hash=sha256:5dff64413671b0d3e7d5918ea490bdccb97a4ad29b3f311ed423200b2203e01c \ + --hash=sha256:5e1d8c8b8f1d91cd08d8f4a3c2b067bfca6ec043d3ff36de0f3a715feeedf926 \ + --hash=sha256:5f8ca7f2bb6ba8348a3614c7918cc4bb73268c5ac2a207576b7afea19d3d9f64 \ + --hash=sha256:642f752c3eb117b105acbd87e2c143de710987e09860d674e068c4c2c441034f \ + --hash=sha256:65d2ccb7eabee90ce0503c17716fc77226be026dcc3e65cce859a30db715025b \ + --hash=sha256:693781c45a4033d31d4187d2436f5ac701e7bbfe5df40d917736108c1cc7436e \ + --hash=sha256:694976222c711d1d00ba131904beb60534f93966562f64440d0c9d41b8cdb440 \ + --hash=sha256:697753042d57f4bf7122cab985bf15d0cef23c770864580f5af4f52023a56bd6 \ + --hash=sha256:69c56fbc1993fa17043e24a546959c0178fe2b5782405ad4559e6c13975c15e3 \ + --hash=sha256:6de499a1a44e7de70735d0b39f67c8f25eb3d91eb3103be99ca0fa882cdd987d \ + --hash=sha256:6fc0e2337d1a4c3e6acafda6a78a39d4c14caea625124817420abceed36e2415 \ + --hash=sha256:75ca857eba4e20ce9f546cd59c7007b33906a4cd48f2ff6ccf1ccfc3b646f279 \ + --hash=sha256:7a4a94eb787e606d0a09404b9c38c113d3b099d508021faa615d70a0131907ce \ + --hash=sha256:7b5e8fe4de30df199155baaf64f2fcd604f4c678ed20910db8e2c66dc4b11603 \ + --hash=sha256:7bfdc049127717581866fa4708791220970ce291c23e28ccf3922c700740fdc0 \ + --hash=sha256:7e63f210bc1b57ef699035f2b4b6d9ce096b5914414a49b0997c839b2bd2223c \ + --hash=sha256:7f9120f7093c2a32d9647abcaf21e6ad275b4fbec5b55969f978b1a97c7c86bf \ + --hash=sha256:8057c98e0c8472d8846b9c79f56766bcc57e3e8ac7bfd510482332366c56c591 \ + --hash=sha256:80dd4c21b0f6237676449c6baaa1039abae86b91636b6c91a7f8e61c87f89540 \ + --hash=sha256:81e97251d9298386c2b7dbeb490d3d1badbdc69107fb8c9299dd04eb39bddc0e \ + --hash=sha256:82611aeec80eb144416956ec85b6ca45a64d76429c1ed46ae1b5f86c6e0c9a26 \ + --hash=sha256:8542f41a62bcc58fc7f11cf7c90e0ec324ce44950003feb70640fc2a9092c32a \ + --hash=sha256:859bd3f2156e81dd01432f5849fc73e2243d4a487c4fd26609b1299534ee1845 \ + --hash=sha256:87797e645d9d8e222e04160ee32aa06bc5c163e8499f24db719e7852ec23093a \ + --hash=sha256:87b9aab6d6ed88235aa2970294f496ff1a1f9adcd724d800e9b952395a80ffd9 \ + --hash=sha256:8a60e60746623925eab7d25823329941aee7242d559baa119ca2b253c88a7bd6 \ + --hash=sha256:90455115e5da1c3c51ab619ac57f877da8fd6d73c05aacd125c5ae9819582aba \ + --hash=sha256:90751b8eed69435bac9ff4e3d2f6b3af1f57e37ecb0fbeee59c0174c9e2d41df \ + --hash=sha256:947c26539750deeaee933b000fb6517cc770bbd064bad6033f1cff4803881e43 \ + --hash=sha256:96d604498a7c782cb15a51c406acaea70d8c027ee6b90c569baa6e7b93073679 \ + --hash=sha256:988a8c5e317544fdf0d39871559e67b6341065b87fceac641108c2096d5506b7 \ + --hash=sha256:9a9dc347e5a3dc7dfdbc1f82da0ef29e388ddb2ed281bfce9dd8248a313e62b7 \ + --hash=sha256:9ae8dd55c8e6c4257eae3a20fd2c8f41edaea5992ed67156642493b8daf3cecc \ + --hash=sha256:9af5e68ee47d6534d36791bbe9b646d2a7c7deb6fc24d7943628edfbb3581f29 \ + --hash=sha256:9b174f267b5cfb9a7dba9ee6859cecd234e9a681841eb85068059bc867fb8f02 \ + --hash=sha256:9bf9f7a65e7aa20dd764151fb3d616c81088f91f8df39c3893a536e279b4b984 \ + --hash=sha256:9d4c940f02f49483b18b079d1c27ab948721852b281f8b015c058100e9421dd1 \ + --hash=sha256:9ebf57d09e131f5323464bd347135a88622d1c0976e88ce15b670e7ad57e4bd6 \ + --hash=sha256:a19884d2ee70b06d9204b2727a7b9f983d0c684c650254679e716b0b77920632 \ + --hash=sha256:a1e53262fd202e4b40b70c3aff944a8155059beedc8a89bba9dc1f9ef06a1b56 \ + --hash=sha256:a2212ad43c0833a873d0fb3c63fa1bacedd4cf6af2fee62bf4b739ceec3ab239 \ + --hash=sha256:a45530014d7a1e09f4a55f4f43097ba0fd155089372e105e4bff4ca76cb1b168 \ + --hash=sha256:a949eee43d3782f2daae4f4a2819b2cb9b0c5d3b7f7a927067cc84dafdbb9f88 \ + --hash=sha256:add1da70de90a2569c5e15249ff76a631ccacfe198375eead4aadf3b8dc849dc \ + --hash=sha256:af71fff7bac6bb7508956696dce8f6eec2bbb045eceb40343944b1ae62b5ef11 \ + --hash=sha256:b04be762396457bef43f3597c991e192ee7da460a4953d7e647ee4b1c28e7046 \ + --hash=sha256:b0d95340658b9d2f11d9697f59b3814a9d3bb4b7a7c20b131df4bcef464037c0 \ + --hash=sha256:b1a6102b4d3ebc07dad44fbf07b45bb600300f15b552ddf1851b5390202ea2e3 \ + --hash=sha256:b46020d11d23fe16551466c77823df9cc2f2c1e63cc965daf67fa5eec6ca1877 \ + --hash=sha256:b556c85915d8efaed322bf1bdae9486aa0f3f764195a0fb6ee962e5c71ef5ce1 \ + --hash=sha256:b903a4dfee7d347e2d87697d0713be59e0b87925be030c9178c5faa58ea58d5c \ + --hash=sha256:b928f30fe49574253644b1ca44b1b8adbd903aa0da4b9054a6c20fc7f4092a25 \ + --hash=sha256:b99281b0704c103d4e11e72a76f1b543d4946fea7dd10767e7e1b5f00d4e5704 \ + --hash=sha256:bae5c2ed2eae26cc382020edad80d01f36cb8e746da40b292e68fec40421dc6a \ + --hash=sha256:bb4f7475e359992b580559e008c598091c45b5088f28614e855e42d39c2f1033 \ + --hash=sha256:bbe7d4cecacb439e2e2a8a1a7b935c25b812af7a5fd26503a66dadf428e79ec1 \ + --hash=sha256:bfc1cc2fe31a6026a8a88e4ecfb98d7f6b1fec150cfd708adbfd1d2f42257c29 \ + --hash=sha256:c014c7ea7fb775dd015b2d3137378b7be0249a448a1612268b5a90c2d81de04d \ + --hash=sha256:c048058117fd649334d81b4b526e94bde3ccaddb20463a815ced6ecbb7d11160 \ + --hash=sha256:c0e2d366af265797506f0283487223146af57815b388623f0357ef7eac9b209d \ + --hash=sha256:c19b90316ad3b24c69cd78d5c9b4f3aa4497643685901185b65166293d36a00f \ + --hash=sha256:c685f2d80bb67ca8c3837823ad76196b3694b0159d232206d1e461d3d434666f \ + --hash=sha256:c6b8568a3bb5819a0ad087f16d40e5a3fb6099f39ea1d5625a3edc1e923fc538 \ + --hash=sha256:d32764c6c9aafb7fb55366a224756387cd50bfa720f32b88e0e6fa45b27dcf29 \ + --hash=sha256:d5a372fd5afd301b3a89582817fdcdb6c34124787c70dbcc616f259013e7eef7 \ + --hash=sha256:d60ac9663f44168038586cab2157e122e46bdef09e9368b37f2d82d354c23f72 \ + --hash=sha256:dca68018bf48c251ba17c72ed479f4dafe9dbd5a73707ad8d28a38d11f3d42af \ + --hash=sha256:de2c184bb1fe2cbd2cefba613e9db29a5ab559323f994b6737e370d3da0ac455 \ + --hash=sha256:e3531d63d3bdfa7e3ac5e9b27b2dd7ec9df3206a98e0b3445fa906f233264c57 \ + --hash=sha256:e50a2e1404f063427c9d027378472316201a2290959a295169bcf25992d04558 \ + --hash=sha256:e636b3c5f61da31a92bf0d91da83e58fdfa96f178ba682f11d24f31944cdd28c \ + --hash=sha256:ea37047c6b367fd4bd632bff8077449b8fa034b69e812a18e0132a00fae6e808 \ + --hash=sha256:f33ed1a2bf1997a36661874b017f5c4b760f41266341af36febaf271d179f6d7 \ + --hash=sha256:f76c1e3fe7d7c8afad7ed193f89a292e1999608170dcc9751a7462a87dfd5bc0 \ + --hash=sha256:f9444f105664c4ce47a2a7171a2418bce5b7bae45fb610f4e2c36045d85911d3 \ + --hash=sha256:fc290605db2a917f6e81b0e1e0796469871f5af381ce15c604a3c5c7e51cb730 \ + --hash=sha256:fc353029f176fd2b3ec6cfc71be166aba1936fe5d73dd1992ce289ca6647a9aa \ + --hash=sha256:fee0c6bc7db1de362252affec009707a17478a00ec69f797d23ca256e36d5940 # via aiobotocore aioitertools==0.13.0 \ --hash=sha256:0be0292b856f08dfac90e31f4739432f4cb6d7520ab9eb73e143f4f2fa5259be \ @@ -146,9 +146,9 @@ annotated-types==0.7.0 \ --hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 \ --hash=sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89 # via pydantic -anyio==4.12.0 \ - --hash=sha256:73c693b567b0c55130c104d0b43a9baf3aa6a31fc6110116509f27bf75e21ec0 \ - --hash=sha256:dad2376a628f98eeca4881fc56cd06affd18f659b17a747d3ff0307ced94b1bb +anyio==4.12.1 \ + --hash=sha256:41cfcc3a4c85d3f05c932da7c26d0201ac36f72abd4435ba90d0464a3ffed703 \ + --hash=sha256:d405828884fc140aa80a3c667b8beed277f1dfedec42ba031bd6ac3db606ab6c # via # httpx # mcp @@ -165,9 +165,9 @@ async-timeout==5.0.1 \ # via # aiohttp # redis -atpublic==5.1 \ - --hash=sha256:135783dbd887fbddb6ef032d104da70c124f2b44b9e2d79df07b9da5334825e3 \ - --hash=sha256:abc1f4b3dbdd841cc3539e4b5e4f3ad41d658359de704e30cb36da4d4e9d3022 +atpublic==7.0.0 \ + --hash=sha256:466ef10d0c8bbd14fd02a5fbd5a8b6af6a846373d91106d3a07c16d72d96b63e \ + --hash=sha256:6702bd9e7245eb4e8220a3e222afcef7f87412154732271ee7deee4433b72b4b # via ibis-framework attrs==25.4.0 \ --hash=sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11 \ @@ -176,9 +176,9 @@ attrs==25.4.0 \ # aiohttp # jsonschema # referencing -bigtree==1.0.4 \ - --hash=sha256:e4af0c5bc0d2cd72e18442965e4509f642b16a0de65db6d0ec116e30f959010c \ - --hash=sha256:f58a3238bb9b1142d893c9de4921bfd18d435427c75e0c168dd580eabf6dc7fd +bigtree==1.1.0 \ + --hash=sha256:3f1ff63d2d66d31bf19855ddda8884637edf8dd1fc1aa118cf3a750580ece48b \ + --hash=sha256:f54f99d842732c91cce39c596a3755a2e8325b1cab5bc6876f5b15bd3942081c # via feast (setup.py) boto3==1.38.27 \ --hash=sha256:94bd7fdd92d5701b362d4df100d21e28f8307a67ff56b6a8b0398119cf22f859 \ @@ -194,13 +194,9 @@ botocore==1.38.46 \ # boto3 # s3transfer # snowflake-connector-python -cachetools==6.2.4 \ - --hash=sha256:69a7a52634fed8b8bf6e24a050fb60bff1c9bd8f6d24572b99c32d4e71e62a51 \ - --hash=sha256:82c5c05585e70b6ba2d3ae09ea60b79548872185d2f24ae1f2709d37299fd607 - # via google-auth -certifi==2025.11.12 \ - --hash=sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b \ - --hash=sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316 +certifi==2026.1.4 \ + --hash=sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c \ + --hash=sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120 # via # httpcore # httpx @@ -485,59 +481,48 @@ dill==0.3.9 \ --hash=sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a \ --hash=sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c # via feast (setup.py) -duckdb==1.1.3 \ - --hash=sha256:00cca22df96aa3473fe4584f84888e2cf1c516e8c2dd837210daec44eadba586 \ - --hash=sha256:08935700e49c187fe0e9b2b86b5aad8a2ccd661069053e38bfaed3b9ff795efd \ - --hash=sha256:0897f83c09356206ce462f62157ce064961a5348e31ccb2a557a7531d814e70e \ - --hash=sha256:09c68522c30fc38fc972b8a75e9201616b96ae6da3444585f14cf0d116008c95 \ - --hash=sha256:0a55169d2d2e2e88077d91d4875104b58de45eff6a17a59c7dc41562c73df4be \ - --hash=sha256:0ba6baa0af33ded836b388b09433a69b8bec00263247f6bf0a05c65c897108d3 \ - --hash=sha256:183ac743f21c6a4d6adfd02b69013d5fd78e5e2cd2b4db023bc8a95457d4bc5d \ - --hash=sha256:1aa3abec8e8995a03ff1a904b0e66282d19919f562dd0a1de02f23169eeec461 \ - --hash=sha256:1c0226dc43e2ee4cc3a5a4672fddb2d76fd2cf2694443f395c02dd1bea0b7fce \ - --hash=sha256:1d9ab6143e73bcf17d62566e368c23f28aa544feddfd2d8eb50ef21034286f24 \ - --hash=sha256:2141c6b28162199999075d6031b5d63efeb97c1e68fb3d797279d31c65676269 \ - --hash=sha256:252d9b17d354beb9057098d4e5d5698e091a4f4a0d38157daeea5fc0ec161670 \ - --hash=sha256:25fb02629418c0d4d94a2bc1776edaa33f6f6ccaa00bd84eb96ecb97ae4b50e9 \ - --hash=sha256:2f073d15d11a328f2e6d5964a704517e818e930800b7f3fa83adea47f23720d3 \ - --hash=sha256:35c420f58abc79a68a286a20fd6265636175fadeca1ce964fc8ef159f3acc289 \ - --hash=sha256:4ebf5f60ddbd65c13e77cddb85fe4af671d31b851f125a4d002a313696af43f1 \ - --hash=sha256:4f0e2e5a6f5a53b79aee20856c027046fba1d73ada6178ed8467f53c3877d5e0 \ - --hash=sha256:51c6d79e05b4a0933672b1cacd6338f882158f45ef9903aef350c4427d9fc898 \ - --hash=sha256:51e7dbd968b393343b226ab3f3a7b5a68dee6d3fe59be9d802383bf916775cb8 \ - --hash=sha256:5ace6e4b1873afdd38bd6cc8fcf90310fb2d454f29c39a61d0c0cf1a24ad6c8d \ - --hash=sha256:5d57776539211e79b11e94f2f6d63de77885f23f14982e0fac066f2885fcf3ff \ - --hash=sha256:6411e21a2128d478efbd023f2bdff12464d146f92bc3e9c49247240448ace5a6 \ - --hash=sha256:647f17bd126170d96a38a9a6f25fca47ebb0261e5e44881e3782989033c94686 \ - --hash=sha256:68c3a46ab08836fe041d15dcbf838f74a990d551db47cb24ab1c4576fc19351c \ - --hash=sha256:77f26884c7b807c7edd07f95cf0b00e6d47f0de4a534ac1706a58f8bc70d0d31 \ - --hash=sha256:7c71169fa804c0b65e49afe423ddc2dc83e198640e3b041028da8110f7cd16f7 \ - --hash=sha256:80158f4c7c7ada46245837d5b6869a336bbaa28436fbb0537663fa324a2750cd \ - --hash=sha256:872d38b65b66e3219d2400c732585c5b4d11b13d7a36cd97908d7981526e9898 \ - --hash=sha256:8ee97ec337794c162c0638dda3b4a30a483d0587deda22d45e1909036ff0b739 \ - --hash=sha256:911d58c22645bfca4a5a049ff53a0afd1537bc18fedb13bc440b2e5af3c46148 \ - --hash=sha256:9c619e4849837c8c83666f2cd5c6c031300cd2601e9564b47aa5de458ff6e69d \ - --hash=sha256:9d0767ada9f06faa5afcf63eb7ba1befaccfbcfdac5ff86f0168c673dd1f47aa \ - --hash=sha256:9e3f5cd604e7c39527e6060f430769b72234345baaa0987f9500988b2814f5e4 \ - --hash=sha256:a1f83c7217c188b7ab42e6a0963f42070d9aed114f6200e3c923c8899c090f16 \ - --hash=sha256:a1fa0c502f257fa9caca60b8b1478ec0f3295f34bb2efdc10776fc731b8a6c5f \ - --hash=sha256:a30dd599b8090ea6eafdfb5a9f1b872d78bac318b6914ada2d35c7974d643640 \ - --hash=sha256:a433ae9e72c5f397c44abdaa3c781d94f94f4065bcbf99ecd39433058c64cb38 \ - --hash=sha256:a4748635875fc3c19a7320a6ae7410f9295557450c0ebab6d6712de12640929a \ - --hash=sha256:b74e121ab65dbec5290f33ca92301e3a4e81797966c8d9feef6efdf05fc6dafd \ - --hash=sha256:c443d3d502335e69fc1e35295fcfd1108f72cb984af54c536adfd7875e79cee5 \ - --hash=sha256:c5336939d83837af52731e02b6a78a446794078590aa71fd400eb17f083dda3e \ - --hash=sha256:cddc6c1a3b91dcc5f32493231b3ba98f51e6d3a44fe02839556db2b928087378 \ - --hash=sha256:d08308e0a46c748d9c30f1d67ee1143e9c5ea3fbcccc27a47e115b19e7e78aa9 \ - --hash=sha256:d5724fd8a49e24d730be34846b814b98ba7c304ca904fbdc98b47fa95c0b0cee \ - --hash=sha256:e4ef7ba97a65bd39d66f2a7080e6fb60e7c3e41d4c1e19245f90f53b98e3ac32 \ - --hash=sha256:e59087dbbb63705f2483544e01cccf07d5b35afa58be8931b224f3221361d537 \ - --hash=sha256:e86006958e84c5c02f08f9b96f4bc26990514eab329b1b4f71049b3727ce5989 \ - --hash=sha256:ecb1dc9062c1cc4d2d88a5e5cd8cc72af7818ab5a3c0f796ef0ffd60cfd3efb4 \ - --hash=sha256:eeacb598120040e9591f5a4edecad7080853aa8ac27e62d280f151f8c862afa3 \ - --hash=sha256:f549af9f7416573ee48db1cf8c9d27aeed245cb015f4b4f975289418c6cf7320 \ - --hash=sha256:f58db1b65593ff796c8ea6e63e2e144c944dd3d51c8d8e40dffa7f41693d35d3 \ - --hash=sha256:f9b47036945e1db32d70e414a10b1593aec641bd4c5e2056873d971cc21e978b +duckdb==1.4.3 \ + --hash=sha256:006aca6a6d6736c441b02ff5c7600b099bb8b7f4de094b8b062137efddce42df \ + --hash=sha256:130c6760f6c573f9c9fe9aba56adba0fab48811a4871b7b8fd667318b4a3e8da \ + --hash=sha256:16952ac05bd7e7b39946695452bf450db1ebbe387e1e7178e10f593f2ea7b9a8 \ + --hash=sha256:1b35491db98ccd11d151165497c084a9d29d3dc42fc80abea2715a6c861ca43d \ + --hash=sha256:1b9b445970fd18274d5ac07a0b24c032e228f967332fb5ebab3d7db27738c0e4 \ + --hash=sha256:1bb8bd5a3dd205983726185b280a211eacc9f5bc0c4d4505bec8c87ac33a8ccb \ + --hash=sha256:1e5457dda91b67258aae30fb1a0df84183a9f6cd27abac1d5536c0d876c6dfa1 \ + --hash=sha256:20c88effaa557a11267706b01419c542fe42f893dee66e5a6daa5974ea2d4a46 \ + --hash=sha256:23a3a077821bed1768a84ac9cbf6b6487ead33e28e62cb118bda5fb8f9e53dea \ + --hash=sha256:23b12854032c1a58d0452e2b212afa908d4ce64171862f3792ba9a596ba7c765 \ + --hash=sha256:274d4a31aba63115f23e7e7b401e3e3a937f3626dc9dea820a9c7d3073f450d2 \ + --hash=sha256:2b195270ff1a661f22cbd547a215baff265b7d4469a76a215c8992b5994107c3 \ + --hash=sha256:2b30245375ea94ab528c87c61fc3ab3e36331180b16af92ee3a37b810a745d24 \ + --hash=sha256:316711a9e852bcfe1ed6241a5f654983f67e909e290495f3562cccdf43be8180 \ + --hash=sha256:366bf607088053dce845c9d24c202c04d78022436cc5d8e4c9f0492de04afbe7 \ + --hash=sha256:4f868a7e6d9b37274a1aa34849ea92aa964e9bd59a5237d6c17e8540533a1e4f \ + --hash=sha256:4fef6a053a1c485292000bf0c338bba60f89d334f6a06fc76ba4085a5a322b76 \ + --hash=sha256:5634e40e1e2d972e4f75bced1fbdd9e9e90faa26445c1052b27de97ee546944a \ + --hash=sha256:6302452e57aef29aae3977063810ed7b2927967b97912947b9cca45c1c21955f \ + --hash=sha256:6db124f53a3edcb32b0a896ad3519e37477f7e67bf4811cb41ab60c1ef74e4c8 \ + --hash=sha256:702dabbc22b27dc5b73e7599c60deef3d8c59968527c36b391773efddd8f4cf1 \ + --hash=sha256:813f189039b46877b5517f1909c7b94a8fe01b4bde2640ab217537ea0fe9b59b \ + --hash=sha256:854b79375fa618f6ffa8d84fb45cbc9db887f6c4834076ea10d20bc106f1fd90 \ + --hash=sha256:8afba22c370f06b7314aa46bfed052509269e482bcfb3f7b1ea0fa17ae49ce42 \ + --hash=sha256:8d080e8d1bf2d226423ec781f539c8f6b6ef3fd42a9a58a7160de0a00877a21f \ + --hash=sha256:8d53b217698a76c4957e2c807dd9295d409146f9d3d7932f372883201ba9d25a \ + --hash=sha256:90f241f25cffe7241bf9f376754a5845c74775e00e1c5731119dc88cd71e0cb2 \ + --hash=sha256:9dc049ba7e906cb49ca2b6d4fbf7b6615ec3883193e8abb93f0bef2652e42dda \ + --hash=sha256:9e625b2b4d52bafa1fd0ebdb0990c3961dac8bb00e30d327185de95b68202131 \ + --hash=sha256:a2813f4635f4d6681cc3304020374c46aca82758c6740d7edbc237fe3aae2744 \ + --hash=sha256:a7c864df027da1ee95f0c32def67e15d02cd4a906c9c1cbae82c09c5112f526b \ + --hash=sha256:a8b0a8764e1b5dd043d168c8f749314f7a1252b5a260fa415adaa26fa3b958fd \ + --hash=sha256:aa26a7406205bc1426cee28bdfdf084f669a5686977dafa4c3ec65873989593c \ + --hash=sha256:caa2164c91f7e91befb1ffb081b3cd97a137117533aef7abe1538b03ad72e3a9 \ + --hash=sha256:d0ff08388ef8b1d1a4c95c321d6c5fa11201b241036b1ee740f9d841df3d6ba2 \ + --hash=sha256:de984cd24a6cbefdd6d4a349f7b9a46e583ca3e58ce10d8def0b20a6e5fcbe78 \ + --hash=sha256:deab351ac43b6282a3270e3d40e3d57b3b50f472d9fd8c30975d88a31be41231 \ + --hash=sha256:ef7ef15347ce97201b1b5182a5697682679b04c3374d5a01ac10ba31cf791b95 \ + --hash=sha256:efa7f1191c59e34b688fcd4e588c1b903a4e4e1f4804945902cf0b20e08a9001 \ + --hash=sha256:fbc63ffdd03835f660155b37a1b6db2005bcd46e5ad398b8cac141eb305d2a3d \ + --hash=sha256:fea43e03604c713e25a25211ada87d30cd2a044d8f27afab5deba26ac49e5268 # via ibis-framework durationpy==0.10 \ --hash=sha256:1fa6893409a6e739c9c72334fc65cca1f355dbdd93405d30f726deb5bde42fba \ @@ -557,9 +542,9 @@ fastapi-mcp==0.4.0 \ --hash=sha256:d4a3fe7966af24d44e4b412720561c95eb12bed999a4443a88221834b3b15aec \ --hash=sha256:d4ca9410996f4c7b8ea0d7b20fdf79878dc359ebf89cbf3b222e0b675a55097d # via feast (setup.py) -filelock==3.20.1 \ - --hash=sha256:15d9e9a67306188a44baa72f569d2bfd803076269365fdea0934385da4dc361a \ - --hash=sha256:b8360948b351b80f420878d8516519a2204b07aefcdcfd24912a5d33127f188c +filelock==3.20.3 \ + --hash=sha256:18c57ee915c7ec61cff0ecf7f0f869936c7c30191bb0cf406f1341778d0834e1 \ + --hash=sha256:4b0dda527ee31078689fc205ec4f1c1bf7d56cf88b6dc9426c4f230e46c2dce1 # via snowflake-connector-python frozenlist==1.8.0 \ --hash=sha256:0325024fe97f94c41c08872db482cf8ac4800d80e79222c6b0b7b162d5b13686 \ @@ -701,9 +686,9 @@ fsspec==2024.9.0 \ # via # feast (setup.py) # dask -google-api-core[grpc]==2.28.1 \ - --hash=sha256:2b405df02d68e68ce0fbc138559e6036559e685159d148ae5861013dc201baf8 \ - --hash=sha256:4021b0f8ceb77a6fb4de6fde4502cecab45062e66ff4f2895169e0b35bc9466c +google-api-core[grpc]==2.29.0 \ + --hash=sha256:84181be0f8e6b04006df75ddfe728f24489f0af57c96a529ff7cf45bc28797f7 \ + --hash=sha256:d30bc60980daa36e314b5d5a3e5958b0200cb44ca8fa1be2b614e932b75a3ea9 # via # feast (setup.py) # google-cloud-bigquery @@ -713,9 +698,9 @@ google-api-core[grpc]==2.28.1 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.45.0 \ - --hash=sha256:82344e86dc00410ef5382d99be677c6043d72e502b625aa4f4afa0bdacca0f36 \ - --hash=sha256:90d3f41b6b72ea72dd9811e765699ee491ab24139f34ebf1ca2b9cc0c38708f3 +google-auth==2.47.0 \ + --hash=sha256:833229070a9dfee1a353ae9877dcd2dec069a8281a4e72e72f77d4a70ff945da \ + --hash=sha256:c516d68336bfde7cf0da26aab674a36fedcf04b37ac4edd59c597178760c3498 # via # google-api-core # google-auth-oauthlib @@ -734,9 +719,9 @@ google-auth-oauthlib==1.2.2 \ # via # pandas-gbq # pydata-google-auth -google-cloud-bigquery[pandas]==3.39.0 \ - --hash=sha256:cb375e1d63dea9bd5bf735e66024338f294159d43afdf63e1d023f5fcbbf55ea \ - --hash=sha256:dc7a64921465859105461b43c42562e38e797d7a73feb72b3cfc4865b7b1c5ef +google-cloud-bigquery[pandas]==3.40.0 \ + --hash=sha256:0469bcf9e3dad3cab65b67cce98180c8c0aacf3253d47f0f8e976f299b49b5ab \ + --hash=sha256:b3ccb11caf0029f15b29569518f667553fe08f6f1459b959020c83fbbd8f2e68 # via # feast (setup.py) # pandas-gbq @@ -1066,9 +1051,9 @@ httpx-sse==0.4.3 \ --hash=sha256:0ac1c9fe3c0afad2e0ebb25a934a59f4c7823b60792691f779fad2c5568830fc \ --hash=sha256:9b1ed0127459a66014aec3c56bebd93da3c1bc8bb6618c8082039a44889a755d # via mcp -ibis-framework[duckdb]==9.5.0 \ - --hash=sha256:145fe30d94f111cff332580c275ce77725c5ff7086eede93af0b371649d009c0 \ - --hash=sha256:1c8a29277e63ee0dfc289bc8f550164b5e3bdaec1b76b62436c37d331bb4ef84 +ibis-framework[duckdb]==11.0.0 \ + --hash=sha256:0249185eaabb800e224f448cc06ce8ba168df00b269e132d62629f462eca8842 \ + --hash=sha256:92ff82a96f4eac7f86fa9b6a315e04b5a8f9ed3d186539d88f48e628363f2e72 # via feast (setup.py) idna==3.11 \ --hash=sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea \ @@ -1094,9 +1079,9 @@ jmespath==1.0.1 \ # aiobotocore # boto3 # botocore -jsonschema==4.25.1 \ - --hash=sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63 \ - --hash=sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85 +jsonschema==4.26.0 \ + --hash=sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326 \ + --hash=sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce # via # feast (setup.py) # mcp @@ -1108,83 +1093,83 @@ kubernetes==33.1.0 \ --hash=sha256:544de42b24b64287f7e0aa9513c93cb503f7f40eea39b20f66810011a86eabc5 \ --hash=sha256:f64d829843a54c251061a8e7a14523b521f2dc5c896cf6d65ccf348648a88993 # via feast (setup.py) -librt==0.7.5 \ - --hash=sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee \ - --hash=sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1 \ - --hash=sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4 \ - --hash=sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899 \ - --hash=sha256:0e2bf8f91093fac43e3eaebacf777f12fd539dce9ec5af3efc6d8424e96ccd49 \ - --hash=sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d \ - --hash=sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760 \ - --hash=sha256:191cbd42660446d67cf7a95ac7bfa60f49b8b3b0417c64f216284a1d86fc9335 \ - --hash=sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8 \ - --hash=sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2 \ - --hash=sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec \ - --hash=sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b \ - --hash=sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0 \ - --hash=sha256:39183abee670bc37b85f11e86c44a9cad1ed6efa48b580083e89ecee13dd9717 \ - --hash=sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325 \ - --hash=sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45 \ - --hash=sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d \ - --hash=sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233 \ - --hash=sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d \ - --hash=sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544 \ - --hash=sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802 \ - --hash=sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2 \ - --hash=sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d \ - --hash=sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f \ - --hash=sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169 \ - --hash=sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe \ - --hash=sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982 \ - --hash=sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2 \ - --hash=sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa \ - --hash=sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4 \ - --hash=sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4 \ - --hash=sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57 \ - --hash=sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26 \ - --hash=sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361 \ - --hash=sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad \ - --hash=sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e \ - --hash=sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf \ - --hash=sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f \ - --hash=sha256:8dcae24de1bc9da93aa689cb6313c70e776d7cea2fcf26b9b6160fedfe6bd9af \ - --hash=sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2 \ - --hash=sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89 \ - --hash=sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904 \ - --hash=sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6 \ - --hash=sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276 \ - --hash=sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e \ - --hash=sha256:a9eacbf983319b26b5f340a2e0cd47ac1ee4725a7f3a72fd0f15063c934b69d6 \ - --hash=sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409 \ - --hash=sha256:af69d9e159575e877c7546d1ee817b4ae089aa221dd1117e20c24ad8dc8659c7 \ - --hash=sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a \ - --hash=sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4 \ - --hash=sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775 \ - --hash=sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203 \ - --hash=sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419 \ - --hash=sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5 \ - --hash=sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023 \ - --hash=sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b \ - --hash=sha256:cdb001a1a0e4f41e613bca2c0fc147fc8a7396f53fc94201cbfd8ec7cd69ca4b \ - --hash=sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d \ - --hash=sha256:d2cc7d187e8c6e9b7bdbefa9697ce897a704ea7a7ce844f2b4e0e2aa07ae51d3 \ - --hash=sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e \ - --hash=sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a \ - --hash=sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b \ - --hash=sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db \ - --hash=sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd \ - --hash=sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa \ - --hash=sha256:df2e210400b28e50994477ebf82f055698c79797b6ee47a1669d383ca33263e1 \ - --hash=sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805 \ - --hash=sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a \ - --hash=sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25 \ - --hash=sha256:ea1b60b86595a5dc1f57b44a801a1c4d8209c0a69518391d349973a4491408e6 \ - --hash=sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b \ - --hash=sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5 \ - --hash=sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416 \ - --hash=sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc \ - --hash=sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7 \ - --hash=sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96 +librt==0.7.7 \ + --hash=sha256:067be973d90d9e319e6eb4ee2a9b9307f0ecd648b8a9002fa237289a4a07a9e7 \ + --hash=sha256:0996c83b1cb43c00e8c87835a284f9057bc647abd42b5871e5f941d30010c832 \ + --hash=sha256:0ecce0544d3db91a40f8b57ae26928c02130a997b540f908cefd4d279d6c5848 \ + --hash=sha256:10c8fb9966f84737115513fecbaf257f9553d067a7dd45a69c2c7e5339e6a8dc \ + --hash=sha256:142c2cd91794b79fd0ce113bd658993b7ede0fe93057668c2f98a45ca00b7e91 \ + --hash=sha256:14ef0f4ac3728ffd85bfc58e2f2f48fb4ef4fa871876f13a73a7381d10a9f77c \ + --hash=sha256:1908c3e5a5ef86b23391448b47759298f87f997c3bd153a770828f58c2bb4630 \ + --hash=sha256:1bcd79be209313b270b0e1a51c67ae1af28adad0e0c7e84c3ad4b5cb57aaa75b \ + --hash=sha256:23d2299ed007812cccc1ecef018db7d922733382561230de1f3954db28433977 \ + --hash=sha256:23daa1ab0512bafdd677eb1bfc9611d8ffbe2e328895671e64cb34166bc1b8c8 \ + --hash=sha256:2567cb48dc03e5b246927ab35cbb343376e24501260a9b5e30b8e255dca0d1d2 \ + --hash=sha256:264720fc288c86039c091a4ad63419a5d7cabbf1c1c9933336a957ed2483e570 \ + --hash=sha256:2987cf827011907d3dfd109f1be0d61e173d68b1270107bb0e89f2fca7f2ed6b \ + --hash=sha256:2a85a1fc4ed11ea0eb0a632459ce004a2d14afc085a50ae3463cd3dfe1ce43fc \ + --hash=sha256:3d1fe2e8df3268dd6734dba33ededae72ad5c3a859b9577bc00b715759c5aaab \ + --hash=sha256:4353ee891a1834567e0302d4bd5e60f531912179578c36f3d0430f8c5e16b456 \ + --hash=sha256:44d63ce643f34a903f09ff7ca355aae019a3730c7afd6a3c037d569beeb5d151 \ + --hash=sha256:467dbd7443bda08338fc8ad701ed38cef48194017554f4c798b0a237904b3f99 \ + --hash=sha256:4862cb2c702b1f905c0503b72d9d4daf65a7fdf5a9e84560e563471e57a56949 \ + --hash=sha256:4bf3cc46d553693382d2abf5f5bd493d71bb0f50a7c0beab18aa13a5545c8900 \ + --hash=sha256:4dcee2f921a8632636d1c37f1bbdb8841d15666d119aa61e5399c5268e7ce02e \ + --hash=sha256:50d1d1ee813d2d1a3baf2873634ba506b263032418d16287c92ec1cc9c1a00cb \ + --hash=sha256:5335890fea9f9e6c4fdf8683061b9ccdcbe47c6dc03ab8e9b68c10acf78be78d \ + --hash=sha256:558a9e5a6f3cc1e20b3168fb1dc802d0d8fa40731f6e9932dcc52bbcfbd37111 \ + --hash=sha256:5e419e0db70991b6ba037b70c1d5bbe92b20ddf82f31ad01d77a347ed9781398 \ + --hash=sha256:6066c638cdf85ff92fc6f932d2d73c93a0e03492cdfa8778e6d58c489a3d7259 \ + --hash=sha256:6ae8aec43117a645a31e5f60e9e3a0797492e747823b9bda6972d521b436b4e8 \ + --hash=sha256:6b6f8ea465524aa4c7420c7cc4ca7d46fe00981de8debc67b1cc2e9957bb5b9d \ + --hash=sha256:7b16ccaeff0ed4355dfb76fe1ea7a5d6d03b5ad27f295f77ee0557bc20a72495 \ + --hash=sha256:7d13cc340b3b82134f8038a2bfe7137093693dcad8ba5773da18f95ad6b77a8a \ + --hash=sha256:7ef28f2e7a016b29792fe0a2dd04dec75725b32a1264e390c366103f834a9c3a \ + --hash=sha256:8185c8497d45164e256376f9da5aed2bb26ff636c798c9dabe313b90e9f25b28 \ + --hash=sha256:81d957b069fed1890953c3b9c3895c7689960f233eea9a1d9607f71ce7f00b2c \ + --hash=sha256:86f86b3b785487c7760247bcdac0b11aa8bf13245a13ed05206286135877564b \ + --hash=sha256:8e92c8de62b40bfce91d5e12c6e8b15434da268979b1af1a6589463549d491e6 \ + --hash=sha256:8f2f8dcf5ab9f80fb970c6fd780b398efb2f50c1962485eb8d3ab07788595a48 \ + --hash=sha256:8f4a0b0a3c86ba9193a8e23bb18f100d647bf192390ae195d84dfa0a10fb6244 \ + --hash=sha256:8f7a74cf3a80f0c3b0ec75b0c650b2f0a894a2cec57ef75f6f72c1e82cdac61d \ + --hash=sha256:955c62571de0b181d9e9e0a0303c8bc90d47670a5eff54cf71bf5da61d1899cf \ + --hash=sha256:983de36b5a83fe9222f4f7dcd071f9b1ac6f3f17c0af0238dadfb8229588f890 \ + --hash=sha256:9b15e5d17812d4d629ff576699954f74e2cc24a02a4fc401882dd94f81daba45 \ + --hash=sha256:9b4346b1225be26def3ccc6c965751c74868f0578cbcba293c8ae9168483d811 \ + --hash=sha256:9b5fb1ecb2c35362eab2dbd354fd1efa5a8440d3e73a68be11921042a0edc0ff \ + --hash=sha256:a10b8eebdaca6e9fdbaf88b5aefc0e324b763a5f40b1266532590d5afb268a4c \ + --hash=sha256:a1f5cc41a570269d1be7a676655875e3a53de4992a9fa38efb7983e97cf73d7c \ + --hash=sha256:a3bfe73a32bd0bdb9a87d586b05a23c0a1729205d79df66dee65bb2e40d671ba \ + --hash=sha256:a487b71fbf8a9edb72a8c7a456dda0184642d99cd007bc819c0b7ab93676a8ee \ + --hash=sha256:a609849aca463074c17de9cda173c276eb8fee9e441053529e7b9e249dc8b8ee \ + --hash=sha256:a76f1d679beccccdf8c1958e732a1dfcd6e749f8821ee59d7bec009ac308c029 \ + --hash=sha256:a7ea4e1fbd253e5c68ea0fe63d08577f9d288a73f17d82f652ebc61fa48d878d \ + --hash=sha256:ab2a2a9cd7d044e1a11ca64a86ad3361d318176924bbe5152fbc69f99be20b8c \ + --hash=sha256:ad3fc2d859a709baf9dd9607bb72f599b1cfb8a39eafd41307d0c3c4766763cb \ + --hash=sha256:add4e0a000858fe9bb39ed55f31085506a5c38363e6eb4a1e5943a10c2bfc3d1 \ + --hash=sha256:aea05f701ccd2a76b34f0daf47ca5068176ff553510b614770c90d76ac88df06 \ + --hash=sha256:b8bb331aad734b059c4b450cd0a225652f16889e286b2345af5e2c3c625c3d85 \ + --hash=sha256:bdb9f3d865b2dafe7f9ad7f30ef563c80d0ddd2fdc8cc9b8e4f242f475e34d75 \ + --hash=sha256:c084841b879c4d9b9fa34e5d5263994f21aea7fd9c6add29194dbb41a6210536 \ + --hash=sha256:c48c7e150c095d5e3cea7452347ba26094be905d6099d24f9319a8b475fcd3e0 \ + --hash=sha256:c7e5070cf3ec92d98f57574da0224f8c73faf1ddd6d8afa0b8c9f6e86997bc74 \ + --hash=sha256:c87654e29a35938baead1c4559858f346f4a2a7588574a14d784f300ffba0efd \ + --hash=sha256:c8ffe3431d98cc043a14e88b21288b5ec7ee12cb01260e94385887f285ef9389 \ + --hash=sha256:c9faaebb1c6212c20afd8043cd6ed9de0a47d77f91a6b5b48f4e46ed470703fe \ + --hash=sha256:d1454899909d63cc9199a89fcc4f81bdd9004aef577d4ffc022e600c412d57f3 \ + --hash=sha256:d6b7d93657332c817b8d674ef6bf1ab7796b4f7ce05e420fd45bd258a72ac804 \ + --hash=sha256:dbc4900e95a98fc0729523be9d93a8fedebb026f32ed9ffc08acd82e3e181503 \ + --hash=sha256:e40d20ae1722d6b8ea6acf4597e789604649dcd9c295eb7361a28225bc2e9e12 \ + --hash=sha256:e4836c5645f40fbdc275e5670819bde5ab5f2e882290d304e3c6ddab1576a6d0 \ + --hash=sha256:e4ab69fa37f8090f2d971a5d2bc606c7401170dbdae083c393d6cbf439cb45b8 \ + --hash=sha256:ef7699b7a5a244b1119f85c5bbc13f152cd38240cbb2baa19b769433bae98e50 \ + --hash=sha256:f0c8fe5aeadd8a0e5b0598f8a6ee3533135ca50fd3f20f130f9d72baf5c6ac58 \ + --hash=sha256:f2cb63c49bc96847c3bb8dca350970e4dcd19936f391cfdfd057dcb37c4fa97e \ + --hash=sha256:f4d4efb218264ecf0f8516196c9e2d1a0679d9fb3bb15df1155a35220062eba8 \ + --hash=sha256:f683dcd49e2494a7535e30f779aa1ad6e3732a019d80abe1309ea91ccd3230e3 \ + --hash=sha256:f83c971eb9d2358b6a18da51dc0ae00556ac7c73104dde16e9e14c15aaf685ca \ + --hash=sha256:f8df32a99cc46eb0ee90afd9ada113ae2cafe7e8d673686cf03ec53e49635439 \ + --hash=sha256:ff1fb2dfef035549565a4124998fadcb7a3d4957131ddf004a56edeb029626b3 # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ @@ -1682,16 +1667,15 @@ numpy==2.2.6 \ # ibis-framework # pandas # pandas-gbq - # pyarrow oauthlib==3.3.1 \ --hash=sha256:0f0f8aa759826a193cf66c12ea1af1637f87b9b4622d46e866952bb022e538c9 \ --hash=sha256:88119c938d2b8fb88561af5f6ee0eec8cc8d552b7bb1f712743136eb7523b7a1 # via # kubernetes # requests-oauthlib -packaging==24.2 \ - --hash=sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759 \ - --hash=sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f +packaging==25.0 \ + --hash=sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484 \ + --hash=sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f # via # dask # db-dtypes @@ -1765,9 +1749,9 @@ pandas==2.3.3 \ # pandas-gbq # pymilvus # snowflake-connector-python -pandas-gbq==0.32.0 \ - --hash=sha256:249623d574c65e98cf19b7b7ecda97729f4f0a843eae3a0a82d9ef50adcdf4ef \ - --hash=sha256:28018ff09f2e49ab2b01a11329bd4e562fd65da406030b4a8001a3a4e80a1e34 +pandas-gbq==0.33.0 \ + --hash=sha256:499ad18a7b1917e2cc04bbd763ec37c11ecc49030348c45cebb9cbbdb7f909af \ + --hash=sha256:61357e11d73e0ae57cbff31e71fc3ed83da3d16b58b653f715b32ad760527e34 # via google-cloud-bigquery parsy==2.2 \ --hash=sha256:5e981613d9d2d8b68012d1dd0afe928967bea2e4eefdb76c2f545af0dd02a9e7 \ @@ -1777,17 +1761,17 @@ partd==1.4.2 \ --hash=sha256:978e4ac767ec4ba5b86c6eaa52e5a2a3bc748a2ca839e8cc798f1cc6ce6efb0f \ --hash=sha256:d022c33afbdc8405c226621b015e8067888173d85f7f5ecebb3cafed9a20f02c # via dask -pathspec==0.12.1 \ - --hash=sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 \ - --hash=sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712 +pathspec==1.0.3 \ + --hash=sha256:bac5cf97ae2c2876e2d25ebb15078eb04d76e4b98921ee31c6f85ade8b59444d \ + --hash=sha256:e80767021c1cc524aa3fb14bedda9c34406591343cc42797b386ce7b9354fb6c # via mypy platformdirs==4.5.1 \ --hash=sha256:61d5cdcc6065745cdd94f0f878977f8de9437be93de97c1c12f853c9c0cdcbda \ --hash=sha256:d03afa3963c806a9bed9d5125c8f4cb2fdaf74a55ab60e5d59b3fde758104d31 # via snowflake-connector-python -prometheus-client==0.23.1 \ - --hash=sha256:6ae8f9081eaaaf153a2e959d2e6c4f4fb57b12ef76c8c7980202f1e57b48b2ce \ - --hash=sha256:dd1913e6e76b59cfe44e7a4b83e01afc9873c1bdfd2ed8739f1e76aeca115f99 +prometheus-client==0.24.0 \ + --hash=sha256:4ab6d4fb5a1b25ad74b58e6271857e356fff3399473e599d227ab5d0ce6637f0 \ + --hash=sha256:726b40c0d499f4904d4b5b7abe8d43e6aff090de0d468ae8f2226290b331c667 # via feast (setup.py) propcache==0.4.1 \ --hash=sha256:0002004213ee1f36cfb3f9a42b5066100c44276b9b72b4e1504cddd3d692e86e \ @@ -1923,17 +1907,17 @@ proto-plus==1.27.0 \ # google-cloud-bigquery-storage # google-cloud-bigtable # google-cloud-datastore -protobuf==6.33.2 \ - --hash=sha256:1f8017c48c07ec5859106533b682260ba3d7c5567b1ca1f24297ce03384d1b4f \ - --hash=sha256:2981c58f582f44b6b13173e12bb8656711189c2a70250845f264b877f00b1913 \ - --hash=sha256:56dc370c91fbb8ac85bc13582c9e373569668a290aa2e66a590c2a0d35ddb9e4 \ - --hash=sha256:7109dcc38a680d033ffb8bf896727423528db9163be1b6a02d6a49606dcadbfe \ - --hash=sha256:7636aad9bb01768870266de5dc009de2d1b936771b38a793f73cbbf279c91c5c \ - --hash=sha256:87eb388bd2d0f78febd8f4c8779c79247b26a5befad525008e49a6955787ff3d \ - --hash=sha256:8cd7640aee0b7828b6d03ae518b5b4806fdfc1afe8de82f79c3454f8aef29872 \ - --hash=sha256:b5d3b5625192214066d99b2b605f5783483575656784de223f00a8d00754fc0e \ - --hash=sha256:d9b19771ca75935b3a4422957bc518b0cecb978b31d1dd12037b088f6bcc0e43 \ - --hash=sha256:fc2a0e8b05b180e5fc0dd1559fe8ebdae21a27e81ac77728fb6c42b12c7419b4 +protobuf==6.33.4 \ + --hash=sha256:0f12ddbf96912690c3582f9dffb55530ef32015ad8e678cd494312bd78314c4f \ + --hash=sha256:1fe3730068fcf2e595816a6c34fe66eeedd37d51d0400b72fabc848811fdc1bc \ + --hash=sha256:2fe67f6c014c84f655ee06f6f66213f9254b3a8b6bda6cda0ccd4232c73c06f0 \ + --hash=sha256:3df850c2f8db9934de4cf8f9152f8dc2558f49f298f37f90c517e8e5c84c30e9 \ + --hash=sha256:757c978f82e74d75cba88eddec479df9b99a42b31193313b75e492c06a51764e \ + --hash=sha256:8f11ffae31ec67fc2554c2ef891dcb561dae9a2a3ed941f9e134c2db06657dbc \ + --hash=sha256:918966612c8232fc6c24c78e1cd89784307f5814ad7506c308ee3cf86662850d \ + --hash=sha256:955478a89559fa4568f5a81dce77260eabc5c686f9e8366219ebd30debf06aa6 \ + --hash=sha256:c7c64f259c618f0bef7bee042075e390debbf9682334be2b67408ec7c1c09ee6 \ + --hash=sha256:dc2e61bca3b10470c1912d166fe0af67bfc20eb55971dcef8dfa48ce14f0ed91 # via # feast (setup.py) # google-api-core @@ -1983,43 +1967,57 @@ psycopg-pool==3.3.0 \ --hash=sha256:2e44329155c410b5e8666372db44276a8b1ebd8c90f1c3026ebba40d4bc81063 \ --hash=sha256:fa115eb2860bd88fce1717d75611f41490dec6135efb619611142b24da3f6db5 # via psycopg -pyarrow==17.0.0 \ - --hash=sha256:0071ce35788c6f9077ff9ecba4858108eebe2ea5a3f7cf2cf55ebc1dbc6ee24a \ - --hash=sha256:02dae06ce212d8b3244dd3e7d12d9c4d3046945a5933d28026598e9dbbda1fca \ - --hash=sha256:0b72e87fe3e1db343995562f7fff8aee354b55ee83d13afba65400c178ab2597 \ - --hash=sha256:0cdb0e627c86c373205a2f94a510ac4376fdc523f8bb36beab2e7f204416163c \ - --hash=sha256:13d7a460b412f31e4c0efa1148e1d29bdf18ad1411eb6757d38f8fbdcc8645fb \ - --hash=sha256:1c8856e2ef09eb87ecf937104aacfa0708f22dfeb039c363ec99735190ffb977 \ - --hash=sha256:2e19f569567efcbbd42084e87f948778eb371d308e137a0f97afe19bb860ccb3 \ - --hash=sha256:32503827abbc5aadedfa235f5ece8c4f8f8b0a3cf01066bc8d29de7539532687 \ - --hash=sha256:392bc9feabc647338e6c89267635e111d71edad5fcffba204425a7c8d13610d7 \ - --hash=sha256:42bf93249a083aca230ba7e2786c5f673507fa97bbd9725a1e2754715151a204 \ - --hash=sha256:4beca9521ed2c0921c1023e68d097d0299b62c362639ea315572a58f3f50fd28 \ - --hash=sha256:5984f416552eea15fd9cee03da53542bf4cddaef5afecefb9aa8d1010c335087 \ - --hash=sha256:6b244dc8e08a23b3e352899a006a26ae7b4d0da7bb636872fa8f5884e70acf15 \ - --hash=sha256:757074882f844411fcca735e39aae74248a1531367a7c80799b4266390ae51cc \ - --hash=sha256:75c06d4624c0ad6674364bb46ef38c3132768139ddec1c56582dbac54f2663e2 \ - --hash=sha256:7c7916bff914ac5d4a8fe25b7a25e432ff921e72f6f2b7547d1e325c1ad9d155 \ - --hash=sha256:9b564a51fbccfab5a04a80453e5ac6c9954a9c5ef2890d1bcf63741909c3f8df \ - --hash=sha256:9b8a823cea605221e61f34859dcc03207e52e409ccf6354634143e23af7c8d22 \ - --hash=sha256:9ba11c4f16976e89146781a83833df7f82077cdab7dc6232c897789343f7891a \ - --hash=sha256:a155acc7f154b9ffcc85497509bcd0d43efb80d6f733b0dc3bb14e281f131c8b \ - --hash=sha256:a27532c38f3de9eb3e90ecab63dfda948a8ca859a66e3a47f5f42d1e403c4d03 \ - --hash=sha256:a48ddf5c3c6a6c505904545c25a4ae13646ae1f8ba703c4df4a1bfe4f4006bda \ - --hash=sha256:a5c8b238d47e48812ee577ee20c9a2779e6a5904f1708ae240f53ecbee7c9f07 \ - --hash=sha256:af5ff82a04b2171415f1410cff7ebb79861afc5dae50be73ce06d6e870615204 \ - --hash=sha256:b0c6ac301093b42d34410b187bba560b17c0330f64907bfa4f7f7f2444b0cf9b \ - --hash=sha256:d7d192305d9d8bc9082d10f361fc70a73590a4c65cf31c3e6926cd72b76bc35c \ - --hash=sha256:da1e060b3876faa11cee287839f9cc7cdc00649f475714b8680a05fd9071d545 \ - --hash=sha256:db023dc4c6cae1015de9e198d41250688383c3f9af8f565370ab2b4cb5f62655 \ - --hash=sha256:dc5c31c37409dfbc5d014047817cb4ccd8c1ea25d19576acf1a001fe07f5b420 \ - --hash=sha256:dec8d129254d0188a49f8a1fc99e0560dc1b85f60af729f47de4046015f9b0a5 \ - --hash=sha256:e3343cb1e88bc2ea605986d4b94948716edc7a8d14afd4e2c097232f729758b4 \ - --hash=sha256:edca18eaca89cd6382dfbcff3dd2d87633433043650c07375d095cd3517561d8 \ - --hash=sha256:f1e70de6cb5790a50b01d2b686d54aaf73da01266850b05e3af2a1bc89e16053 \ - --hash=sha256:f553ca691b9e94b202ff741bdd40f6ccb70cdd5fbf65c187af132f1317de6145 \ - --hash=sha256:f7ae2de664e0b158d1607699a16a488de3d008ba99b3a7aa5de1cbc13574d047 \ - --hash=sha256:fa3c246cc58cb5a4a5cb407a18f193354ea47dd0648194e6265bd24177982fe8 +pyarrow==22.0.0 \ + --hash=sha256:001ea83a58024818826a9e3f89bf9310a114f7e26dfe404a4c32686f97bd7901 \ + --hash=sha256:00626d9dc0f5ef3a75fe63fd68b9c7c8302d2b5bbc7f74ecaedba83447a24f84 \ + --hash=sha256:0c34fe18094686194f204a3b1787a27456897d8a2d62caf84b61e8dfbc0252ae \ + --hash=sha256:12fe549c9b10ac98c91cf791d2945e878875d95508e1a5d14091a7aaa66d9cf8 \ + --hash=sha256:1a812a5b727bc09c3d7ea072c4eebf657c2f7066155506ba31ebf4792f88f016 \ + --hash=sha256:252be4a05f9d9185bb8c18e83764ebcfea7185076c07a7a662253af3a8c07941 \ + --hash=sha256:334f900ff08ce0423407af97e6c26ad5d4e3b0763645559ece6fbf3747d6a8f5 \ + --hash=sha256:35ad0f0378c9359b3f297299c3309778bb03b8612f987399a0333a560b43862d \ + --hash=sha256:3d600dc583260d845c7d8a6db540339dd883081925da2bd1c5cb808f720b3cd9 \ + --hash=sha256:3e294c5eadfb93d78b0763e859a0c16d4051fc1c5231ae8956d61cb0b5666f5a \ + --hash=sha256:3e739edd001b04f654b166204fc7a9de896cf6007eaff33409ee9e50ceaff754 \ + --hash=sha256:44729980b6c50a5f2bfcc2668d36c569ce17f8b17bccaf470c4313dcbbf13c9d \ + --hash=sha256:44d2d26cda26d18f7af7db71453b7b783788322d756e81730acb98f24eb90ace \ + --hash=sha256:4c19236ae2402a8663a2c8f21f1870a03cc57f0bef7e4b6eb3238cc82944de80 \ + --hash=sha256:69763ab2445f632d90b504a815a2a033f74332997052b721002298ed6de40f2e \ + --hash=sha256:6dda1ddac033d27421c20d7a7943eec60be44e0db4e079f33cc5af3b8280ccde \ + --hash=sha256:6f9762274496c244d951c819348afbcf212714902742225f649cf02823a6a10f \ + --hash=sha256:710624ab925dc2b05a6229d47f6f0dac1c1155e6ed559be7109f684eba048a48 \ + --hash=sha256:7388ac685cab5b279a41dfe0a6ccd99e4dbf322edfb63e02fc0443bf24134e91 \ + --hash=sha256:77718810bd3066158db1e95a63c160ad7ce08c6b0710bc656055033e39cdad88 \ + --hash=sha256:7a820d8ae11facf32585507c11f04e3f38343c1e784c9b5a8b1da5c930547fe2 \ + --hash=sha256:8382ad21458075c2e66a82a29d650f963ce51c7708c7c0ff313a8c206c4fd5e8 \ + --hash=sha256:84378110dd9a6c06323b41b56e129c504d157d1a983ce8f5443761eb5256bafc \ + --hash=sha256:854794239111d2b88b40b6ef92aa478024d1e5074f364033e73e21e3f76b25e0 \ + --hash=sha256:92843c305330aa94a36e706c16209cd4df274693e777ca47112617db7d0ef3d7 \ + --hash=sha256:9bddc2cade6561f6820d4cd73f99a0243532ad506bc510a75a5a65a522b2d74d \ + --hash=sha256:a4893d31e5ef780b6edcaf63122df0f8d321088bb0dee4c8c06eccb1ca28d145 \ + --hash=sha256:a9d9ffdc2ab696f6b15b4d1f7cec6658e1d788124418cb30030afbae31c64746 \ + --hash=sha256:ac93252226cf288753d8b46280f4edf3433bf9508b6977f8dd8526b521a1bbb9 \ + --hash=sha256:b41f37cabfe2463232684de44bad753d6be08a7a072f6a83447eeaf0e4d2a215 \ + --hash=sha256:b883fe6fd85adad7932b3271c38ac289c65b7337c2c132e9569f9d3940620730 \ + --hash=sha256:b9d71701ce97c95480fecb0039ec5bb889e75f110da72005743451339262f4ce \ + --hash=sha256:ba95112d15fd4f1105fb2402c4eab9068f0554435e9b7085924bcfaac2cc306f \ + --hash=sha256:bba208d9c7decf9961998edf5c65e3ea4355d5818dd6cd0f6809bec1afb951cc \ + --hash=sha256:bd0d42297ace400d8febe55f13fdf46e86754842b860c978dfec16f081e5c653 \ + --hash=sha256:bea79263d55c24a32b0d79c00a1c58bb2ee5f0757ed95656b01c0fb310c5af3d \ + --hash=sha256:c064e28361c05d72eed8e744c9605cbd6d2bb7481a511c74071fd9b24bc65d7d \ + --hash=sha256:c3200cb41cdbc65156e5f8c908d739b0dfed57e890329413da2748d1a2cd1a4e \ + --hash=sha256:c6c791b09c57ed76a18b03f2631753a4960eefbbca80f846da8baefc6491fcfe \ + --hash=sha256:c6ec3675d98915bf1ec8b3c7986422682f7232ea76cad276f4c8abd5b7319b70 \ + --hash=sha256:ce20fe000754f477c8a9125543f1936ea5b8867c5406757c224d745ed033e691 \ + --hash=sha256:cedb9dd9358e4ea1d9bce3665ce0797f6adf97ff142c8e25b46ba9cdd508e9b6 \ + --hash=sha256:e0a15757fccb38c410947df156f9749ae4a3c89b2393741a50521f39a8cf202a \ + --hash=sha256:e6e95176209257803a8b3d0394f21604e796dadb643d2f7ca21b66c9c0b30c9a \ + --hash=sha256:e70ff90c64419709d38c8932ea9fe1cc98415c4f87ea8da81719e43f02534bc9 \ + --hash=sha256:ec1a15968a9d80da01e1d30349b2b0d7cc91e96588ee324ce1b5228175043e95 \ + --hash=sha256:ec5d40dd494882704fb876c16fa7261a69791e784ae34e6b5992e977bd2e238c \ + --hash=sha256:f633074f36dbc33d5c05b5dc75371e5660f1dbf9c8b1d95669def05e5425989c \ + --hash=sha256:f7fe3dbe871294ba70d789be16b6e7e52b418311e166e0e3cba9522f0f437fb1 \ + --hash=sha256:f963ba8c3b0199f9d6b794c90ec77545e05eadc83973897a4523c9e8d84e9340 # via # feast (setup.py) # dask @@ -2201,9 +2199,9 @@ pyjwt[crypto]==2.10.1 \ # feast (setup.py) # mcp # snowflake-connector-python -pymilvus==2.4.15 \ - --hash=sha256:0601591ce0498315e19e9ac3f4fdd3051102ca87b6ddff5b33849f522288cff7 \ - --hash=sha256:b21878e5df74dca91b3f3cf0b0597fa6b6aed7bf5cde9a1b10641994faa353bf +pymilvus==2.5.18 \ + --hash=sha256:1b78badcfa8d62db7d0b29193fc0422e4676873ff1c745a9d75c2c885d7a7e32 \ + --hash=sha256:9e517076068e98dac51c018bc0dfe1f651d936154e2e2d9ad6c7b3dab1164e2d # via feast (setup.py) pymysql==1.1.2 \ --hash=sha256:4961d3e165614ae65014e361811a724e2044ad3ea3739de9903ae7c21f539f03 \ @@ -2238,7 +2236,6 @@ pytz==2025.2 \ --hash=sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3 \ --hash=sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00 # via - # ibis-framework # pandas # snowflake-connector-python pyyaml==6.0.3 \ @@ -2348,9 +2345,9 @@ requests-oauthlib==2.0.0 \ # via # google-auth-oauthlib # kubernetes -rich==13.9.4 \ - --hash=sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098 \ - --hash=sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90 +rich==14.2.0 \ + --hash=sha256:73ff50c7c0c1c77c8243079283f4edb376f0f6442433aecb8ce7e6d0b92d1fe4 \ + --hash=sha256:76bc51fe2e57d2b1be1f96c524b890b816e334ab4c1e45888799bfaab0021edd # via # fastapi-mcp # ibis-framework @@ -2586,13 +2583,13 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:fd93c6f5d65f254ceabe97548c709e073d6da9883343adaa51bf1a913ce93f8e \ --hash=sha256:fe187fc31a54d7fd90352f34e8c008cf3ad5d064d08fedd3de2e8df83eb4a1cf # via feast (setup.py) -sqlglot==25.20.2 \ - --hash=sha256:169fe8308dd70d7bd40117b2221b62bdc7c4e2ea8eb07394b2a6146cdedf05ab \ - --hash=sha256:cdbfd7ce3f2f39f32bd7b4c23fd9e0fd261636a6b14285b914e8def25fd0a567 +sqlglot==28.6.0 \ + --hash=sha256:8af76e825dc8456a49f8ce049d69bbfcd116655dda3e53051754789e2edf8eba \ + --hash=sha256:8c0a432a6745c6c7965bbe99a17667c5a3ca1d524a54b31997cf5422b1727f6a # via ibis-framework -sse-starlette==3.1.1 \ - --hash=sha256:bb38f71ae74cfd86b529907a9fda5632195dfa6ae120f214ea4c890c7ee9d436 \ - --hash=sha256:bffa531420c1793ab224f63648c059bcadc412bf9fdb1301ac8de1cf9a67b7fb +sse-starlette==3.1.2 \ + --hash=sha256:55eff034207a83a0eb86de9a68099bd0157838f0b8b999a1b742005c71e33618 \ + --hash=sha256:cd800dd349f4521b317b9391d3796fa97b71748a4da9b9e00aafab32dda375c8 # via mcp starlette==0.50.0 \ --hash=sha256:9e5391843ec9b6e472eed1365a78c8098cfceb7a74bfd4d6b1c0c0095efb3bca \ @@ -2613,59 +2610,64 @@ toml==0.10.2 \ --hash=sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b \ --hash=sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f # via feast (setup.py) -tomli==2.3.0 \ - --hash=sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456 \ - --hash=sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845 \ - --hash=sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999 \ - --hash=sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0 \ - --hash=sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878 \ - --hash=sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf \ - --hash=sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3 \ - --hash=sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be \ - --hash=sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52 \ - --hash=sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b \ - --hash=sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67 \ - --hash=sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549 \ - --hash=sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba \ - --hash=sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22 \ - --hash=sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c \ - --hash=sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f \ - --hash=sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6 \ - --hash=sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba \ - --hash=sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45 \ - --hash=sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f \ - --hash=sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77 \ - --hash=sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606 \ - --hash=sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441 \ - --hash=sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0 \ - --hash=sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f \ - --hash=sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530 \ - --hash=sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05 \ - --hash=sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8 \ - --hash=sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005 \ - --hash=sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879 \ - --hash=sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae \ - --hash=sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc \ - --hash=sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b \ - --hash=sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b \ - --hash=sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e \ - --hash=sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf \ - --hash=sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac \ - --hash=sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8 \ - --hash=sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b \ - --hash=sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf \ - --hash=sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463 \ - --hash=sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876 +tomli==2.4.0 \ + --hash=sha256:0408e3de5ec77cc7f81960c362543cbbd91ef883e3138e81b729fc3eea5b9729 \ + --hash=sha256:0dc56fef0e2c1c470aeac5b6ca8cc7b640bb93e92d9803ddaf9ea03e198f5b0b \ + --hash=sha256:0e0fe8a0b8312acf3a88077a0802565cb09ee34107813bba1c7cd591fa6cfc8d \ + --hash=sha256:0f2e3955efea4d1cfbcb87bc321e00dc08d2bcb737fd1d5e398af111d86db5df \ + --hash=sha256:133e93646ec4300d651839d382d63edff11d8978be23da4cc106f5a18b7d0576 \ + --hash=sha256:1b168f2731796b045128c45982d3a4874057626da0e2ef1fdd722848b741361d \ + --hash=sha256:1c8a885b370751837c029ef9bc014f27d80840e48bac415f3412e6593bbc18c1 \ + --hash=sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a \ + --hash=sha256:1fb2945cbe303b1419e2706e711b7113da57b7db31ee378d08712d678a34e51e \ + --hash=sha256:20cedb4ee43278bc4f2fee6cb50daec836959aadaf948db5172e776dd3d993fc \ + --hash=sha256:20ffd184fb1df76a66e34bd1b36b4a4641bd2b82954befa32fe8163e79f1a702 \ + --hash=sha256:26ab906a1eb794cd4e103691daa23d95c6919cc2fa9160000ac02370cc9dd3f6 \ + --hash=sha256:2add28aacc7425117ff6364fe9e06a183bb0251b03f986df0e78e974047571fd \ + --hash=sha256:2b1e3b80e1d5e52e40e9b924ec43d81570f0e7d09d11081b797bc4692765a3d4 \ + --hash=sha256:31d556d079d72db7c584c0627ff3a24c5d3fb4f730221d3444f3efb1b2514776 \ + --hash=sha256:36b9d05b51e65b254ea6c2585b59d2c4cb91c8a3d91d0ed0f17591a29aaea54a \ + --hash=sha256:39b0b5d1b6dd03684b3fb276407ebed7090bbec989fa55838c98560c01113b66 \ + --hash=sha256:3cf226acb51d8f1c394c1b310e0e0e61fecdd7adcb78d01e294ac297dd2e7f87 \ + --hash=sha256:3d895d56bd3f82ddd6faaff993c275efc2ff38e52322ea264122d72729dca2b2 \ + --hash=sha256:413540dce94673591859c4c6f794dfeaa845e98bf35d72ed59636f869ef9f86f \ + --hash=sha256:43e685b9b2341681907759cf3a04e14d7104b3580f808cfde1dfdb60ada85475 \ + --hash=sha256:4cbcb367d44a1f0c2be408758b43e1ffb5308abe0ea222897d6bfc8e8281ef2f \ + --hash=sha256:551e321c6ba03b55676970b47cb1b73f14a0a4dce6a3e1a9458fd6d921d72e95 \ + --hash=sha256:5572e41282d5268eb09a697c89a7bee84fae66511f87533a6f88bd2f7b652da9 \ + --hash=sha256:5aa48d7c2356055feef06a43611fc401a07337d5b006be13a30f6c58f869e3c3 \ + --hash=sha256:5b5807f3999fb66776dbce568cc9a828544244a8eb84b84b9bafc080c99597b9 \ + --hash=sha256:5e3f639a7a8f10069d0e15408c0b96a2a828cfdec6fca05296ebcdcc28ca7c76 \ + --hash=sha256:685306e2cc7da35be4ee914fd34ab801a6acacb061b6a7abca922aaf9ad368da \ + --hash=sha256:75c2f8bbddf170e8effc98f5e9084a8751f8174ea6ccf4fca5398436e0320bc8 \ + --hash=sha256:7b438885858efd5be02a9a133caf5812b8776ee0c969fea02c45e8e3f296ba51 \ + --hash=sha256:7d49c66a7d5e56ac959cb6fc583aff0651094ec071ba9ad43df785abc2320d86 \ + --hash=sha256:7d6d9a4aee98fac3eab4952ad1d73aee87359452d1c086b5ceb43ed02ddb16b8 \ + --hash=sha256:84d081fbc252d1b6a982e1870660e7330fb8f90f676f6e78b052ad4e64714bf0 \ + --hash=sha256:8768715ffc41f0008abe25d808c20c3d990f42b6e2e58305d5da280ae7d1fa3b \ + --hash=sha256:920b1de295e72887bafa3ad9f7a792f811847d57ea6b1215154030cf131f16b1 \ + --hash=sha256:9a08144fa4cba33db5255f9b74f0b89888622109bd2776148f2597447f92a94e \ + --hash=sha256:a26d7ff68dfdb9f87a016ecfd1e1c2bacbe3108f4e0f8bcd2228ef9a766c787d \ + --hash=sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c \ + --hash=sha256:b5ef256a3fd497d4973c11bf142e9ed78b150d36f5773f1ca6088c230ffc5867 \ + --hash=sha256:b6c78bdf37764092d369722d9946cb65b8767bfa4110f902a1b2542d8d173c8a \ + --hash=sha256:bbb1b10aa643d973366dc2cb1ad94f99c1726a02343d43cbc011edbfac579e7c \ + --hash=sha256:c084ad935abe686bd9c898e62a02a19abfc9760b5a79bc29644463eaf2840cb0 \ + --hash=sha256:c73add4bb52a206fd0c0723432db123c0c75c280cbd67174dd9d2db228ebb1b4 \ + --hash=sha256:cae9c19ed12d4e8f3ebf46d1a75090e4c0dc16271c5bce1c833ac168f08fb614 \ + --hash=sha256:d20b797a5c1ad80c516e41bc1fb0443ddb5006e9aaa7bda2d71978346aeb9132 \ + --hash=sha256:d3d1654e11d724760cdb37a3d7691f0be9db5fbdaef59c9f532aabf87006dbaa \ + --hash=sha256:d878f2a6707cc9d53a1be1414bbb419e629c3d6e67f69230217bb663e76b5087 # via # fastapi-mcp # mypy -tomlkit==0.13.3 \ - --hash=sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1 \ - --hash=sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0 +tomlkit==0.14.0 \ + --hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 \ + --hash=sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064 # via snowflake-connector-python -toolz==0.12.1 \ - --hash=sha256:d22731364c07d72eea0a0ad45bafb2c2937ab6fd38a3507bf55eae8744aa7d85 \ - --hash=sha256:ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d +toolz==1.1.0 \ + --hash=sha256:15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8 \ + --hash=sha256:27a5c770d068c110d9ed9323f24f1543e83b2f300a687b7891c1a6d56b697b5b # via # dask # ibis-framework @@ -2680,9 +2682,9 @@ typeguard==4.4.4 \ --hash=sha256:3a7fd2dffb705d4d0efaed4306a704c89b9dee850b688f060a8b1615a79e5f74 \ --hash=sha256:b5f562281b6bfa1f5492470464730ef001646128b180769880468bd84b68b09e # via feast (setup.py) -typer==0.21.0 \ - --hash=sha256:c79c01ca6b30af9fd48284058a7056ba0d3bf5cf10d0ff3d0c5b11b68c258ac6 \ - --hash=sha256:c87c0d2b6eee3b49c5c64649ec92425492c14488096dfbc8a0c2799b2f6f9c53 +typer==0.21.1 \ + --hash=sha256:7985e89081c636b88d172c2ee0cfe33c253160994d47bdfdc302defd7d1f1d01 \ + --hash=sha256:ea835607cd752343b6b2b7ce676893e5a0324082268b48f27aa058bdb7d2145d # via fastapi-mcp types-pymysql==1.1.0.20251220 \ --hash=sha256:ae1c3df32a777489431e2e9963880a0df48f6591e0aa2fd3a6fabd9dee6eca54 \ @@ -2707,7 +2709,6 @@ typing-extensions==4.15.0 \ # pydantic-core # pyopenssl # referencing - # rich # snowflake-connector-python # sqlalchemy # starlette @@ -2725,7 +2726,9 @@ typing-inspection==0.4.2 \ tzdata==2025.3 \ --hash=sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1 \ --hash=sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7 - # via pandas + # via + # ibis-framework + # pandas ujson==5.11.0 \ --hash=sha256:0180a480a7d099082501cad1fe85252e4d4bf926b40960fb3d9e87a3a6fbbc80 \ --hash=sha256:04c41afc195fd477a59db3a84d5b83a871bd648ef371cf8c6f43072d89144eef \ @@ -2997,76 +3000,68 @@ websocket-client==1.9.0 \ --hash=sha256:9e813624b6eb619999a97dc7958469217c3176312b3a16a4bd1bc7e08a46ec98 \ --hash=sha256:af248a825037ef591efbf6ed20cc5faa03d3b47b9e5a2230a529eeee1c1fc3ef # via kubernetes -websockets==15.0.1 \ - --hash=sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2 \ - --hash=sha256:0a34631031a8f05657e8e90903e656959234f3a04552259458aac0b0f9ae6fd9 \ - --hash=sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5 \ - --hash=sha256:0c9e74d766f2818bb95f84c25be4dea09841ac0f734d1966f415e4edfc4ef1c3 \ - --hash=sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8 \ - --hash=sha256:0fdfe3e2a29e4db3659dbd5bbf04560cea53dd9610273917799f1cde46aa725e \ - --hash=sha256:1009ee0c7739c08a0cd59de430d6de452a55e42d6b522de7aa15e6f67db0b8e1 \ - --hash=sha256:1234d4ef35db82f5446dca8e35a7da7964d02c127b095e172e54397fb6a6c256 \ - --hash=sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85 \ - --hash=sha256:2034693ad3097d5355bfdacfffcbd3ef5694f9718ab7f29c29689a9eae841880 \ - --hash=sha256:21c1fa28a6a7e3cbdc171c694398b6df4744613ce9b36b1a498e816787e28123 \ - --hash=sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375 \ - --hash=sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065 \ - --hash=sha256:363c6f671b761efcb30608d24925a382497c12c506b51661883c3e22337265ed \ - --hash=sha256:39c1fec2c11dc8d89bba6b2bf1556af381611a173ac2b511cf7231622058af41 \ - --hash=sha256:3b1ac0d3e594bf121308112697cf4b32be538fb1444468fb0a6ae4feebc83411 \ - --hash=sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597 \ - --hash=sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f \ - --hash=sha256:3d00075aa65772e7ce9e990cab3ff1de702aa09be3940d1dc88d5abf1ab8a09c \ - --hash=sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3 \ - --hash=sha256:47819cea040f31d670cc8d324bb6435c6f133b8c7a19ec3d61634e62f8d8f9eb \ - --hash=sha256:47b099e1f4fbc95b701b6e85768e1fcdaf1630f3cbe4765fa216596f12310e2e \ - --hash=sha256:4a9fac8e469d04ce6c25bb2610dc535235bd4aa14996b4e6dbebf5e007eba5ee \ - --hash=sha256:4b826973a4a2ae47ba357e4e82fa44a463b8f168e1ca775ac64521442b19e87f \ - --hash=sha256:4c2529b320eb9e35af0fa3016c187dffb84a3ecc572bcee7c3ce302bfeba52bf \ - --hash=sha256:54479983bd5fb469c38f2f5c7e3a24f9a4e70594cd68cd1fa6b9340dadaff7cf \ - --hash=sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4 \ - --hash=sha256:5756779642579d902eed757b21b0164cd6fe338506a8083eb58af5c372e39d9a \ - --hash=sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665 \ - --hash=sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22 \ - --hash=sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675 \ - --hash=sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4 \ - --hash=sha256:5df592cd503496351d6dc14f7cdad49f268d8e618f80dce0cd5a36b93c3fc08d \ - --hash=sha256:5f4c04ead5aed67c8a1a20491d54cdfba5884507a48dd798ecaf13c74c4489f5 \ - --hash=sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65 \ - --hash=sha256:66dd88c918e3287efc22409d426c8f729688d89a0c587c88971a0faa2c2f3792 \ - --hash=sha256:678999709e68425ae2593acf2e3ebcbcf2e69885a5ee78f9eb80e6e371f1bf57 \ - --hash=sha256:67f2b6de947f8c757db2db9c71527933ad0019737ec374a8a6be9a956786aaf9 \ - --hash=sha256:693f0192126df6c2327cce3baa7c06f2a117575e32ab2308f7f8216c29d9e2e3 \ - --hash=sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151 \ - --hash=sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d \ - --hash=sha256:76d1f20b1c7a2fa82367e04982e708723ba0e7b8d43aa643d3dcd404d74f1475 \ - --hash=sha256:7f493881579c90fc262d9cdbaa05a6b54b3811c2f300766748db79f098db9940 \ - --hash=sha256:823c248b690b2fd9303ba00c4f66cd5e2d8c3ba4aa968b2779be9532a4dad431 \ - --hash=sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee \ - --hash=sha256:8dd8327c795b3e3f219760fa603dcae1dcc148172290a8ab15158cf85a953413 \ - --hash=sha256:8fdc51055e6ff4adeb88d58a11042ec9a5eae317a0a53d12c062c8a8865909e8 \ - --hash=sha256:a625e06551975f4b7ea7102bc43895b90742746797e2e14b70ed61c43a90f09b \ - --hash=sha256:abdc0c6c8c648b4805c5eacd131910d2a7f6455dfd3becab248ef108e89ab16a \ - --hash=sha256:ac017dd64572e5c3bd01939121e4d16cf30e5d7e110a119399cf3133b63ad054 \ - --hash=sha256:ac1e5c9054fe23226fb11e05a6e630837f074174c4c2f0fe442996112a6de4fb \ - --hash=sha256:ac60e3b188ec7574cb761b08d50fcedf9d77f1530352db4eef1707fe9dee7205 \ - --hash=sha256:b359ed09954d7c18bbc1680f380c7301f92c60bf924171629c5db97febb12f04 \ - --hash=sha256:b7643a03db5c95c799b89b31c036d5f27eeb4d259c798e878d6937d71832b1e4 \ - --hash=sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa \ - --hash=sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9 \ - --hash=sha256:cad21560da69f4ce7658ca2cb83138fb4cf695a2ba3e475e0559e05991aa8122 \ - --hash=sha256:d08eb4c2b7d6c41da6ca0600c077e93f5adcfd979cd777d747e9ee624556da4b \ - --hash=sha256:d50fd1ee42388dcfb2b3676132c78116490976f1300da28eb629272d5d93e905 \ - --hash=sha256:d591f8de75824cbb7acad4e05d2d710484f15f29d4a915092675ad3456f11770 \ - --hash=sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe \ - --hash=sha256:d63efaa0cd96cf0c5fe4d581521d9fa87744540d4bc999ae6e08595a1014b45b \ - --hash=sha256:d99e5546bf73dbad5bf3547174cd6cb8ba7273062a23808ffea025ecb1cf8562 \ - --hash=sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561 \ - --hash=sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215 \ - --hash=sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931 \ - --hash=sha256:f29d80eb9a9263b8d109135351caf568cc3f80b9928bccde535c235de55c22d9 \ - --hash=sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f \ - --hash=sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7 +websockets==16.0 \ + --hash=sha256:0298d07ee155e2e9fda5be8a9042200dd2e3bb0b8a38482156576f863a9d457c \ + --hash=sha256:04cdd5d2d1dacbad0a7bf36ccbcd3ccd5a30ee188f2560b7a62a30d14107b31a \ + --hash=sha256:08d7af67b64d29823fed316505a89b86705f2b7981c07848fb5e3ea3020c1abe \ + --hash=sha256:152284a83a00c59b759697b7f9e9cddf4e3c7861dd0d964b472b70f78f89e80e \ + --hash=sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec \ + --hash=sha256:19c4dc84098e523fd63711e563077d39e90ec6702aff4b5d9e344a60cb3c0cb1 \ + --hash=sha256:1c1b30e4f497b0b354057f3467f56244c603a79c0d1dafce1d16c283c25f6e64 \ + --hash=sha256:2b9f1e0d69bc60a4a87349d50c09a037a2607918746f07de04df9e43252c77a3 \ + --hash=sha256:31a52addea25187bde0797a97d6fc3d2f92b6f72a9370792d65a6e84615ac8a8 \ + --hash=sha256:32da954ffa2814258030e5a57bc73a3635463238e797c7375dc8091327434206 \ + --hash=sha256:335c23addf3d5e6a8633f9f8eda77efad001671e80b95c491dd0924587ece0b3 \ + --hash=sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156 \ + --hash=sha256:349f83cd6c9a415428ee1005cadb5c2c56f4389bc06a9af16103c3bc3dcc8b7d \ + --hash=sha256:37b31c1623c6605e4c00d466c9d633f9b812ea430c11c8a278774a1fde1acfa9 \ + --hash=sha256:417b28978cdccab24f46400586d128366313e8a96312e4b9362a4af504f3bbad \ + --hash=sha256:485c49116d0af10ac698623c513c1cc01c9446c058a4e61e3bf6c19dff7335a2 \ + --hash=sha256:4a1aba3340a8dca8db6eb5a7986157f52eb9e436b74813764241981ca4888f03 \ + --hash=sha256:50f23cdd8343b984957e4077839841146f67a3d31ab0d00e6b824e74c5b2f6e8 \ + --hash=sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230 \ + --hash=sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8 \ + --hash=sha256:5569417dc80977fc8c2d43a86f78e0a5a22fee17565d78621b6bb264a115d4ea \ + --hash=sha256:569d01a4e7fba956c5ae4fc988f0d4e187900f5497ce46339c996dbf24f17641 \ + --hash=sha256:583b7c42688636f930688d712885cf1531326ee05effd982028212ccc13e5957 \ + --hash=sha256:5a4b4cc550cb665dd8a47f868c8d04c8230f857363ad3c9caf7a0c3bf8c61ca6 \ + --hash=sha256:5f451484aeb5cafee1ccf789b1b66f535409d038c56966d6101740c1614b86c6 \ + --hash=sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5 \ + --hash=sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f \ + --hash=sha256:71c989cbf3254fbd5e84d3bff31e4da39c43f884e64f2551d14bb3c186230f00 \ + --hash=sha256:781caf5e8eee67f663126490c2f96f40906594cb86b408a703630f95550a8c3e \ + --hash=sha256:7be95cfb0a4dae143eaed2bcba8ac23f4892d8971311f1b06f3c6b78952ee70b \ + --hash=sha256:7d837379b647c0c4c2355c2499723f82f1635fd2c26510e1f587d89bc2199e72 \ + --hash=sha256:86890e837d61574c92a97496d590968b23c2ef0aeb8a9bc9421d174cd378ae39 \ + --hash=sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9 \ + --hash=sha256:8b6e209ffee39ff1b6d0fa7bfef6de950c60dfb91b8fcead17da4ee539121a79 \ + --hash=sha256:8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0 \ + --hash=sha256:8d7f0659570eefb578dacde98e24fb60af35350193e4f56e11190787bee77dac \ + --hash=sha256:8e1dab317b6e77424356e11e99a432b7cb2f3ec8c5ab4dabbcee6add48f72b35 \ + --hash=sha256:8ff32bb86522a9e5e31439a58addbb0166f0204d64066fb955265c4e214160f0 \ + --hash=sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5 \ + --hash=sha256:9b5aca38b67492ef518a8ab76851862488a478602229112c4b0d58d63a7a4d5c \ + --hash=sha256:a069d734c4a043182729edd3e9f247c3b2a4035415a9172fd0f1b71658a320a8 \ + --hash=sha256:a0b31e0b424cc6b5a04b8838bbaec1688834b2383256688cf47eb97412531da1 \ + --hash=sha256:a35539cacc3febb22b8f4d4a99cc79b104226a756aa7400adc722e83b0d03244 \ + --hash=sha256:a5e18a238a2b2249c9a9235466b90e96ae4795672598a58772dd806edc7ac6d3 \ + --hash=sha256:a653aea902e0324b52f1613332ddf50b00c06fdaf7e92624fbf8c77c78fa5767 \ + --hash=sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a \ + --hash=sha256:af80d74d4edfa3cb9ed973a0a5ba2b2a549371f8a741e0800cb07becdd20f23d \ + --hash=sha256:b14dc141ed6d2dde437cddb216004bcac6a1df0935d79656387bd41632ba0bbd \ + --hash=sha256:b784ca5de850f4ce93ec85d3269d24d4c82f22b7212023c974c401d4980ebc5e \ + --hash=sha256:bc59589ab64b0022385f429b94697348a6a234e8ce22544e3681b2e9331b5944 \ + --hash=sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82 \ + --hash=sha256:c0ee0e63f23914732c6d7e0cce24915c48f3f1512ec1d079ed01fc629dab269d \ + --hash=sha256:caab51a72c51973ca21fa8a18bd8165e1a0183f1ac7066a182ff27107b71e1a4 \ + --hash=sha256:d6297ce39ce5c2e6feb13c1a996a2ded3b6832155fcfc920265c76f24c7cceb5 \ + --hash=sha256:daa3b6ff70a9241cf6c7fc9e949d41232d9d7d26fd3522b1ad2b4d62487e9904 \ + --hash=sha256:df57afc692e517a85e65b72e165356ed1df12386ecb879ad5693be08fac65dde \ + --hash=sha256:e0334872c0a37b606418ac52f6ab9cfd17317ac26365f7f65e203e2d0d0d359f \ + --hash=sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c \ + --hash=sha256:eaded469f5e5b7294e2bdca0ab06becb6756ea86894a47806456089298813c89 \ + --hash=sha256:f4a32d1bd841d4bcbffdcb3d2ce50c09c3909fbead375ab28d0181af89fd04da \ + --hash=sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4 # via uvicorn wrapt==1.17.3 \ --hash=sha256:02b551d101f31694fc785e58e0720ef7d9a10c4e62c1c9358ce6f63f23e30a56 \ diff --git a/sdk/python/requirements/py3.10-minimal-sdist-requirements-build.txt b/sdk/python/requirements/py3.10-minimal-sdist-requirements-build.txt index 8bb08a3bea9..ebca1e9d0fa 100644 --- a/sdk/python/requirements/py3.10-minimal-sdist-requirements-build.txt +++ b/sdk/python/requirements/py3.10-minimal-sdist-requirements-build.txt @@ -168,57 +168,56 @@ cython==3.0.12 \ # via # numpy # pandas - # pyarrow # pyyaml # snowflake-connector-python # sqlalchemy -cython==3.2.3 \ - --hash=sha256:0145e64485f0a9741c9314ae176282dffeb48d2ef30ae315d7224698867c317f \ - --hash=sha256:06a1317097f540d3bb6c7b81ed58a0d8b9dbfa97abf39dfd4c22ee87a6c7241e \ - --hash=sha256:0a75a04688875b275a6c875565e672325bae04327dd6ec2fc25aeb5c6cf82fce \ - --hash=sha256:1309bdce06f767e8514377f44b3a5b9e5b91e58af1348010cca10b572e1852ad \ - --hash=sha256:18b5e738c9dbb1cb488b51e35c3a1b9aa7363166cce40158fe6ccb454f6498ac \ - --hash=sha256:18edc858e6a52de47fe03ffa97ea14dadf450e20069de0a8aef531006c4bbd93 \ - --hash=sha256:1d097ad4686b58b8c03d760d08eca28f79878d404ef7452c49636170571654e0 \ - --hash=sha256:228f11be8406015d1ce84a25bf4f96167ff6fc18b834deca5716d95ae15a818c \ - --hash=sha256:22a624290c2883387b2c2cfb5224c15bff21432c6a2cf0c23ac8df3dcbd45e96 \ - --hash=sha256:25732f3981a93407826297f4423206e5e22c3cfccfc74e37bf444453bbdc076f \ - --hash=sha256:26404441f733fd1cfb0dd9c45477f501437e7d51fad05bb402bd2feb4e127aa3 \ - --hash=sha256:283262b8f902323ceb6ed3b643f275a2a963e7ab059f0714a467933383cbc56d \ - --hash=sha256:2a18f2e3bcd018416157d0a83446e29b4a31437ab79061fe5504c077e70389d0 \ - --hash=sha256:3141734fb15f8b5e9402b9240f8da8336edecae91742b41c85678c31ab68f66d \ - --hash=sha256:3829f99d611412288f44ff543e9d2b5c0c83274998b2a6680bbe5cca3539c1fd \ - --hash=sha256:4f40efa83c93060a271046930d2322ec045abb9722d25a377702cb57aa823c2b \ - --hash=sha256:51fd1a56d0fc682c05ecc44f11927dbe28dd2867c30148557b62d7d1017a13d8 \ - --hash=sha256:55c0157a5940fbf0b054508207fe0fc5cc796d0532af492c0fa35b5b41a883f7 \ - --hash=sha256:60d19376252722241a3d3ec8a695c5cae4deb053486d2e5f9a40cb569a0cf984 \ - --hash=sha256:6b01b36c9eb1b68c25bddbeef7379f7bfc37f7c9afc044e71840ffab761a2dd0 \ - --hash=sha256:6b6dd6b7aca8447b2a6779b314cc402f1e4990754507a88477e535b3c8b41ad1 \ - --hash=sha256:73afc824896ffaf22bf8122d0a7107f0120e3188a353bdcfa92317fc0d9a87ce \ - --hash=sha256:74f482da8b605c61b4df6ff716d013f20131949cb2fa59b03e63abd36ef5bac0 \ - --hash=sha256:80f20369d7aaf4e76cfef902025256918a5cc6eb0aed6d8783e4b1c563e4f6c4 \ - --hash=sha256:84330e7c8bf220a82b633678b9f99e10227c8f4c406d67c5552449ab2afedef8 \ - --hash=sha256:9a24cc653fad3adbd9cbaa638d80df3aa08a1fe27f62eb35850971c70be680df \ - --hash=sha256:9aa1a8abf3d8bb53cc19cfaa21c004afad8d4ccb17513f8aa11a788d1f525abd \ - --hash=sha256:9c5ac7201d8382c0da69e4a119c14be6acd7c286615a0383ffbd1dbfdbaa3df7 \ - --hash=sha256:b39dff92db70cbd95528f3b81d70e06bd6d3fc9c1dd91321e4d3b999ece3bceb \ - --hash=sha256:c041f7e338cca2422e0924716b04fabeda57636214324fc1941396acce99e7c7 \ - --hash=sha256:c102388cf7604ff5647164d5041fd5de2393198a87883fdb50f6c078fc2f4f8e \ - --hash=sha256:c2365a0c79ab9c0fa86d30a4a6ba7e37fc1be9537c48b79b9d63ee7e08bf2fef \ - --hash=sha256:cf210228c15b5c625824d8e31d43b6fea25f9e13c81dac632f2f7d838e0229a5 \ - --hash=sha256:d1f8700ba89c977438744f083890d87187f15709507a5489e0f6d682053b7fa0 \ - --hash=sha256:e31f52ea7e35463b21410f150006eb07b663a0b3ceea8ee8f35e0b8e02b75f50 \ - --hash=sha256:e4293f1861480b397809a6f021a6c12e15e918feae1c7add80c99d07af206578 \ - --hash=sha256:f13832412d633376ffc08d751cc18ed0d7d00a398a4065e2871db505258748a6 \ - --hash=sha256:f5bf0cebeb4147e172a114437d3fce5a507595d8fdd821be792b1bb25c691514 \ - --hash=sha256:fabe2f37acb63a5521d16193effb15acd082e35458f30f1c1f3e506271fee8a7 - # via uvloop +cython==3.2.4 \ + --hash=sha256:02cb0cc0f23b9874ad262d7d2b9560aed9c7e2df07b49b920bda6f2cc9cb505e \ + --hash=sha256:03893c88299a2c868bb741ba6513357acd104e7c42265809fd58dce1456a36fc \ + --hash=sha256:14dae483ca2838b287085ff98bc206abd7a597b7bb16939a092f8e84d9062842 \ + --hash=sha256:1a64a112a34ec719b47c01395647e54fb4cf088a511613f9a3a5196694e8e382 \ + --hash=sha256:28b1e363b024c4b8dcf52ff68125e635cb9cb4b0ba997d628f25e32543a71103 \ + --hash=sha256:28e8075087a59756f2d059273184b8b639fe0f16cf17470bd91c39921bc154e0 \ + --hash=sha256:2b1f12c0e4798293d2754e73cd6f35fa5bbdf072bdc14bc6fc442c059ef2d290 \ + --hash=sha256:31a90b4a2c47bb6d56baeb926948348ec968e932c1ae2c53239164e3e8880ccf \ + --hash=sha256:35ab0632186057406ec729374c737c37051d2eacad9d515d94e5a3b3e58a9b02 \ + --hash=sha256:36bf3f5eb56d5281aafabecbaa6ed288bc11db87547bba4e1e52943ae6961ccf \ + --hash=sha256:3b6e58f73a69230218d5381817850ce6d0da5bb7e87eb7d528c7027cbba40b06 \ + --hash=sha256:3b8e62049afef9da931d55de82d8f46c9a147313b69d5ff6af6e9121d545ce7a \ + --hash=sha256:55b6c44cd30821f0b25220ceba6fe636ede48981d2a41b9bbfe3c7902ce44ea7 \ + --hash=sha256:55eb425c0baf1c8a46aa4424bc35b709db22f3c8a1de33adb3ecb8a3d54ea42a \ + --hash=sha256:64d7f71be3dd6d6d4a4c575bb3a4674ea06d1e1e5e4cd1b9882a2bc40ed3c4c9 \ + --hash=sha256:67922c9de058a0bfb72d2e75222c52d09395614108c68a76d9800f150296ddb3 \ + --hash=sha256:6d5267f22b6451eb1e2e1b88f6f78a2c9c8733a6ddefd4520d3968d26b824581 \ + --hash=sha256:72e6c0bbd978e2678b45351395f6825b9b8466095402eae293f4f7a73e9a3e85 \ + --hash=sha256:732fc93bc33ae4b14f6afaca663b916c2fdd5dcbfad7114e17fb2434eeaea45c \ + --hash=sha256:767b143704bdd08a563153448955935844e53b852e54afdc552b43902ed1e235 \ + --hash=sha256:83266c356c13c68ffe658b4905279c993d8a5337bb0160fa90c8a3e297ea9a2e \ + --hash=sha256:84226ecd313b233da27dc2eb3601b4f222b8209c3a7216d8733b031da1dc64e6 \ + --hash=sha256:869487ea41d004f8b92171f42271fbfadb1ec03bede3158705d16cd570d6b891 \ + --hash=sha256:90f43be4eaa6afd58ce20d970bb1657a3627c44e1760630b82aa256ba74b4acb \ + --hash=sha256:983f9d2bb8a896e16fa68f2b37866ded35fa980195eefe62f764ddc5f9f5ef8e \ + --hash=sha256:b362819d155fff1482575e804e43e3a8825332d32baa15245f4642022664a3f4 \ + --hash=sha256:b84d4e3c875915545f77c88dba65ad3741afd2431e5cdee6c9a20cefe6905647 \ + --hash=sha256:ca2399dc75796b785f74fb85c938254fa10c80272004d573c455f9123eceed86 \ + --hash=sha256:ca578c9cb872c7ecffbe14815dc4590a003bc13339e90b2633540c7e1a252839 \ + --hash=sha256:d4b4fd5332ab093131fa6172e8362f16adef3eac3179fd24bbdc392531cb82fa \ + --hash=sha256:e3b5ac54e95f034bc7fb07313996d27cbf71abc17b229b186c1540942d2dc28e \ + --hash=sha256:e65e4773021f8dc8532010b4fbebe782c77f9a0817e93886e518c93bd6a44e9d \ + --hash=sha256:e71efb20048358a6b8ec604a0532961c50c067b5e63e345e2e359fff72feaee8 \ + --hash=sha256:f136f379a4a54246facd0eb6f1ee15c3837cb314ce87b677582ec014db4c6845 \ + --hash=sha256:f583cad7a7eed109f0babb5035e92d0c1260598f53add626a8568b57246b62c3 \ + --hash=sha256:f81eda419b5ada7b197bbc3c5f4494090e3884521ffd75a3876c93fbf66c9ca8 \ + --hash=sha256:f8d685a70bce39acc1d62ec3916d9b724b5ef665b0ce25ae55e1c85ee09747fc \ + --hash=sha256:fdfdd753ad7e18e5092b413e9f542e8d28b8a08203126090e1c15f7783b7fe57 \ + --hash=sha256:ff9af2134c05e3734064808db95b4dd7341a39af06e8945d05ea358e1741aaed + # via + # pyarrow + # uvloop dunamai==1.25.0 \ --hash=sha256:7f9dc687dd3256e613b6cc978d9daabfd2bb5deb8adc541fc135ee423ffa98ab \ --hash=sha256:a7f8360ea286d3dbaf0b6a1473f9253280ac93d619836ad4514facb70c0719d1 - # via - # poetry-dynamic-versioning - # uv-dynamic-versioning + # via uv-dynamic-versioning exceptiongroup==1.3.1 \ --hash=sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219 \ --hash=sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598 @@ -266,9 +265,9 @@ gitdb==4.0.12 \ --hash=sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571 \ --hash=sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf # via gitpython -gitpython==3.1.45 \ - --hash=sha256:85b0ee964ceddf211c41b9f27a49086010a190fd8132a24e21f362a4b36a791c \ - --hash=sha256:8908cb2e02fb3b93b7eb0f2827125cb699869470432cc885f019b8fd0fccff77 +gitpython==3.1.46 \ + --hash=sha256:400124c7d0ef4ea03f7310ac2fbf7151e09ff97f2a3288d64a440c584a29c37f \ + --hash=sha256:79812ed143d9d25b6d176a10bb511de0f9c67b1fa641d82097b0ab90398a2058 # via pymilvus hatch-fancy-pypi-readme==25.1.0 \ --hash=sha256:9c58ed3dff90d51f43414ce37009ad1d5b0f08ffc9fc216998a06380f01c0045 \ @@ -313,6 +312,7 @@ hatchling==1.28.0 \ # hatch-vcs # httpcore # httpx + # ibis-framework # jsonschema # jsonschema-specifications # mcp @@ -333,86 +333,84 @@ hatchling==1.28.0 \ jinja2==3.1.6 \ --hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \ --hash=sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67 - # via - # poetry-dynamic-versioning - # uv-dynamic-versioning -librt==0.7.5 \ - --hash=sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee \ - --hash=sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1 \ - --hash=sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4 \ - --hash=sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899 \ - --hash=sha256:0e2bf8f91093fac43e3eaebacf777f12fd539dce9ec5af3efc6d8424e96ccd49 \ - --hash=sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d \ - --hash=sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760 \ - --hash=sha256:191cbd42660446d67cf7a95ac7bfa60f49b8b3b0417c64f216284a1d86fc9335 \ - --hash=sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8 \ - --hash=sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2 \ - --hash=sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec \ - --hash=sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b \ - --hash=sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0 \ - --hash=sha256:39183abee670bc37b85f11e86c44a9cad1ed6efa48b580083e89ecee13dd9717 \ - --hash=sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325 \ - --hash=sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45 \ - --hash=sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d \ - --hash=sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233 \ - --hash=sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d \ - --hash=sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544 \ - --hash=sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802 \ - --hash=sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2 \ - --hash=sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d \ - --hash=sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f \ - --hash=sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169 \ - --hash=sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe \ - --hash=sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982 \ - --hash=sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2 \ - --hash=sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa \ - --hash=sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4 \ - --hash=sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4 \ - --hash=sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57 \ - --hash=sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26 \ - --hash=sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361 \ - --hash=sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad \ - --hash=sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e \ - --hash=sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf \ - --hash=sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f \ - --hash=sha256:8dcae24de1bc9da93aa689cb6313c70e776d7cea2fcf26b9b6160fedfe6bd9af \ - --hash=sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2 \ - --hash=sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89 \ - --hash=sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904 \ - --hash=sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6 \ - --hash=sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276 \ - --hash=sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e \ - --hash=sha256:a9eacbf983319b26b5f340a2e0cd47ac1ee4725a7f3a72fd0f15063c934b69d6 \ - --hash=sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409 \ - --hash=sha256:af69d9e159575e877c7546d1ee817b4ae089aa221dd1117e20c24ad8dc8659c7 \ - --hash=sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a \ - --hash=sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4 \ - --hash=sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775 \ - --hash=sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203 \ - --hash=sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419 \ - --hash=sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5 \ - --hash=sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023 \ - --hash=sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b \ - --hash=sha256:cdb001a1a0e4f41e613bca2c0fc147fc8a7396f53fc94201cbfd8ec7cd69ca4b \ - --hash=sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d \ - --hash=sha256:d2cc7d187e8c6e9b7bdbefa9697ce897a704ea7a7ce844f2b4e0e2aa07ae51d3 \ - --hash=sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e \ - --hash=sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a \ - --hash=sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b \ - --hash=sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db \ - --hash=sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd \ - --hash=sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa \ - --hash=sha256:df2e210400b28e50994477ebf82f055698c79797b6ee47a1669d383ca33263e1 \ - --hash=sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805 \ - --hash=sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a \ - --hash=sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25 \ - --hash=sha256:ea1b60b86595a5dc1f57b44a801a1c4d8209c0a69518391d349973a4491408e6 \ - --hash=sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b \ - --hash=sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5 \ - --hash=sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416 \ - --hash=sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc \ - --hash=sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7 \ - --hash=sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96 + # via uv-dynamic-versioning +librt==0.7.7 \ + --hash=sha256:067be973d90d9e319e6eb4ee2a9b9307f0ecd648b8a9002fa237289a4a07a9e7 \ + --hash=sha256:0996c83b1cb43c00e8c87835a284f9057bc647abd42b5871e5f941d30010c832 \ + --hash=sha256:0ecce0544d3db91a40f8b57ae26928c02130a997b540f908cefd4d279d6c5848 \ + --hash=sha256:10c8fb9966f84737115513fecbaf257f9553d067a7dd45a69c2c7e5339e6a8dc \ + --hash=sha256:142c2cd91794b79fd0ce113bd658993b7ede0fe93057668c2f98a45ca00b7e91 \ + --hash=sha256:14ef0f4ac3728ffd85bfc58e2f2f48fb4ef4fa871876f13a73a7381d10a9f77c \ + --hash=sha256:1908c3e5a5ef86b23391448b47759298f87f997c3bd153a770828f58c2bb4630 \ + --hash=sha256:1bcd79be209313b270b0e1a51c67ae1af28adad0e0c7e84c3ad4b5cb57aaa75b \ + --hash=sha256:23d2299ed007812cccc1ecef018db7d922733382561230de1f3954db28433977 \ + --hash=sha256:23daa1ab0512bafdd677eb1bfc9611d8ffbe2e328895671e64cb34166bc1b8c8 \ + --hash=sha256:2567cb48dc03e5b246927ab35cbb343376e24501260a9b5e30b8e255dca0d1d2 \ + --hash=sha256:264720fc288c86039c091a4ad63419a5d7cabbf1c1c9933336a957ed2483e570 \ + --hash=sha256:2987cf827011907d3dfd109f1be0d61e173d68b1270107bb0e89f2fca7f2ed6b \ + --hash=sha256:2a85a1fc4ed11ea0eb0a632459ce004a2d14afc085a50ae3463cd3dfe1ce43fc \ + --hash=sha256:3d1fe2e8df3268dd6734dba33ededae72ad5c3a859b9577bc00b715759c5aaab \ + --hash=sha256:4353ee891a1834567e0302d4bd5e60f531912179578c36f3d0430f8c5e16b456 \ + --hash=sha256:44d63ce643f34a903f09ff7ca355aae019a3730c7afd6a3c037d569beeb5d151 \ + --hash=sha256:467dbd7443bda08338fc8ad701ed38cef48194017554f4c798b0a237904b3f99 \ + --hash=sha256:4862cb2c702b1f905c0503b72d9d4daf65a7fdf5a9e84560e563471e57a56949 \ + --hash=sha256:4bf3cc46d553693382d2abf5f5bd493d71bb0f50a7c0beab18aa13a5545c8900 \ + --hash=sha256:4dcee2f921a8632636d1c37f1bbdb8841d15666d119aa61e5399c5268e7ce02e \ + --hash=sha256:50d1d1ee813d2d1a3baf2873634ba506b263032418d16287c92ec1cc9c1a00cb \ + --hash=sha256:5335890fea9f9e6c4fdf8683061b9ccdcbe47c6dc03ab8e9b68c10acf78be78d \ + --hash=sha256:558a9e5a6f3cc1e20b3168fb1dc802d0d8fa40731f6e9932dcc52bbcfbd37111 \ + --hash=sha256:5e419e0db70991b6ba037b70c1d5bbe92b20ddf82f31ad01d77a347ed9781398 \ + --hash=sha256:6066c638cdf85ff92fc6f932d2d73c93a0e03492cdfa8778e6d58c489a3d7259 \ + --hash=sha256:6ae8aec43117a645a31e5f60e9e3a0797492e747823b9bda6972d521b436b4e8 \ + --hash=sha256:6b6f8ea465524aa4c7420c7cc4ca7d46fe00981de8debc67b1cc2e9957bb5b9d \ + --hash=sha256:7b16ccaeff0ed4355dfb76fe1ea7a5d6d03b5ad27f295f77ee0557bc20a72495 \ + --hash=sha256:7d13cc340b3b82134f8038a2bfe7137093693dcad8ba5773da18f95ad6b77a8a \ + --hash=sha256:7ef28f2e7a016b29792fe0a2dd04dec75725b32a1264e390c366103f834a9c3a \ + --hash=sha256:8185c8497d45164e256376f9da5aed2bb26ff636c798c9dabe313b90e9f25b28 \ + --hash=sha256:81d957b069fed1890953c3b9c3895c7689960f233eea9a1d9607f71ce7f00b2c \ + --hash=sha256:86f86b3b785487c7760247bcdac0b11aa8bf13245a13ed05206286135877564b \ + --hash=sha256:8e92c8de62b40bfce91d5e12c6e8b15434da268979b1af1a6589463549d491e6 \ + --hash=sha256:8f2f8dcf5ab9f80fb970c6fd780b398efb2f50c1962485eb8d3ab07788595a48 \ + --hash=sha256:8f4a0b0a3c86ba9193a8e23bb18f100d647bf192390ae195d84dfa0a10fb6244 \ + --hash=sha256:8f7a74cf3a80f0c3b0ec75b0c650b2f0a894a2cec57ef75f6f72c1e82cdac61d \ + --hash=sha256:955c62571de0b181d9e9e0a0303c8bc90d47670a5eff54cf71bf5da61d1899cf \ + --hash=sha256:983de36b5a83fe9222f4f7dcd071f9b1ac6f3f17c0af0238dadfb8229588f890 \ + --hash=sha256:9b15e5d17812d4d629ff576699954f74e2cc24a02a4fc401882dd94f81daba45 \ + --hash=sha256:9b4346b1225be26def3ccc6c965751c74868f0578cbcba293c8ae9168483d811 \ + --hash=sha256:9b5fb1ecb2c35362eab2dbd354fd1efa5a8440d3e73a68be11921042a0edc0ff \ + --hash=sha256:a10b8eebdaca6e9fdbaf88b5aefc0e324b763a5f40b1266532590d5afb268a4c \ + --hash=sha256:a1f5cc41a570269d1be7a676655875e3a53de4992a9fa38efb7983e97cf73d7c \ + --hash=sha256:a3bfe73a32bd0bdb9a87d586b05a23c0a1729205d79df66dee65bb2e40d671ba \ + --hash=sha256:a487b71fbf8a9edb72a8c7a456dda0184642d99cd007bc819c0b7ab93676a8ee \ + --hash=sha256:a609849aca463074c17de9cda173c276eb8fee9e441053529e7b9e249dc8b8ee \ + --hash=sha256:a76f1d679beccccdf8c1958e732a1dfcd6e749f8821ee59d7bec009ac308c029 \ + --hash=sha256:a7ea4e1fbd253e5c68ea0fe63d08577f9d288a73f17d82f652ebc61fa48d878d \ + --hash=sha256:ab2a2a9cd7d044e1a11ca64a86ad3361d318176924bbe5152fbc69f99be20b8c \ + --hash=sha256:ad3fc2d859a709baf9dd9607bb72f599b1cfb8a39eafd41307d0c3c4766763cb \ + --hash=sha256:add4e0a000858fe9bb39ed55f31085506a5c38363e6eb4a1e5943a10c2bfc3d1 \ + --hash=sha256:aea05f701ccd2a76b34f0daf47ca5068176ff553510b614770c90d76ac88df06 \ + --hash=sha256:b8bb331aad734b059c4b450cd0a225652f16889e286b2345af5e2c3c625c3d85 \ + --hash=sha256:bdb9f3d865b2dafe7f9ad7f30ef563c80d0ddd2fdc8cc9b8e4f242f475e34d75 \ + --hash=sha256:c084841b879c4d9b9fa34e5d5263994f21aea7fd9c6add29194dbb41a6210536 \ + --hash=sha256:c48c7e150c095d5e3cea7452347ba26094be905d6099d24f9319a8b475fcd3e0 \ + --hash=sha256:c7e5070cf3ec92d98f57574da0224f8c73faf1ddd6d8afa0b8c9f6e86997bc74 \ + --hash=sha256:c87654e29a35938baead1c4559858f346f4a2a7588574a14d784f300ffba0efd \ + --hash=sha256:c8ffe3431d98cc043a14e88b21288b5ec7ee12cb01260e94385887f285ef9389 \ + --hash=sha256:c9faaebb1c6212c20afd8043cd6ed9de0a47d77f91a6b5b48f4e46ed470703fe \ + --hash=sha256:d1454899909d63cc9199a89fcc4f81bdd9004aef577d4ffc022e600c412d57f3 \ + --hash=sha256:d6b7d93657332c817b8d674ef6bf1ab7796b4f7ce05e420fd45bd258a72ac804 \ + --hash=sha256:dbc4900e95a98fc0729523be9d93a8fedebb026f32ed9ffc08acd82e3e181503 \ + --hash=sha256:e40d20ae1722d6b8ea6acf4597e789604649dcd9c295eb7361a28225bc2e9e12 \ + --hash=sha256:e4836c5645f40fbdc275e5670819bde5ab5f2e882290d304e3c6ddab1576a6d0 \ + --hash=sha256:e4ab69fa37f8090f2d971a5d2bc606c7401170dbdae083c393d6cbf439cb45b8 \ + --hash=sha256:ef7699b7a5a244b1119f85c5bbc13f152cd38240cbb2baa19b769433bae98e50 \ + --hash=sha256:f0c8fe5aeadd8a0e5b0598f8a6ee3533135ca50fd3f20f130f9d72baf5c6ac58 \ + --hash=sha256:f2cb63c49bc96847c3bb8dca350970e4dcd19936f391cfdfd057dcb37c4fa97e \ + --hash=sha256:f4d4efb218264ecf0f8516196c9e2d1a0679d9fb3bb15df1155a35220062eba8 \ + --hash=sha256:f683dcd49e2494a7535e30f779aa1ad6e3732a019d80abe1309ea91ccd3230e3 \ + --hash=sha256:f83c971eb9d2358b6a18da51dc0ae00556ac7c73104dde16e9e14c15aaf685ca \ + --hash=sha256:f8df32a99cc46eb0ee90afd9ada113ae2cafe7e8d673686cf03ec53e49635439 \ + --hash=sha256:ff1fb2dfef035549565a4124998fadcb7a3d4957131ddf004a56edeb029626b3 # via mypy markupsafe==3.0.3 \ --hash=sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f \ @@ -505,21 +503,21 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via jinja2 -maturin==1.11.0 \ - --hash=sha256:0fbe565ede0901de7743cd028ad6c13be623b1c7158641f8a50d7a4353f4a97c \ - --hash=sha256:16cb48f1f2b6b3d8c2732f77d98d8f7f0ab84765abf0c1c82df2c8ea7d8ef2ec \ - --hash=sha256:276a900d4096c246cc236aa00460adb3ab195c37172a9f1087bbde6a127f0780 \ - --hash=sha256:51cadd0373950cfae6aac6823a3d2bf56e34e4efed0abae8c7d15e337d9bb5e6 \ - --hash=sha256:83b73299f36301d943550c609e0a0dff08d21e3674c1369c10df77ce470fd97b \ - --hash=sha256:8695b79462e1f46013993d715485db289cf5a7702aa2d9941ac333564ca20d79 \ - --hash=sha256:8bf16fc56f4abcf3af7d5fb6dab3888f73e3648287c8efe77e14fa1b006a3ef4 \ - --hash=sha256:95c5d778c96ab237837cd6d38e01f0bdca52c64e0d00647a69133a8e7ae4eed4 \ - --hash=sha256:9aaaec73e120ac7add99f53d606aa6d432c8e0337af742b2ca26fb8d17181500 \ - --hash=sha256:aa2d9db1c03e9eb0640a578caf00a6fa2d9399abb7375a970b0f6d6e934b5441 \ - --hash=sha256:d13d3721931d407491d9b3fe161146aa78ab08a8fc9735302abee1d368aedb03 \ - --hash=sha256:d53bde4f939dac9340aa253c2765073de6b8595a29a294503042fcbfec8bd842 \ - --hash=sha256:dba7daeb54615532c11f8fe39bc9514b81215f6f4e91909ec227e06227c286cf \ - --hash=sha256:debf472d3ecd76a3a750b056b99dcb64c119467dc44f0e2d6e6363acb128b96a +maturin==1.11.5 \ + --hash=sha256:1c27a2eb47821edf26c75d100b3150b52dca2c1a5f074d7514af06f7a7acb9d5 \ + --hash=sha256:2079447967819b5cf615e5b5b99a406d662effdc8d6afd493dcd253c6afc3707 \ + --hash=sha256:2a4e872fb78e77748217084ffeb59de565d08a86ccefdace054520aaa7b66db4 \ + --hash=sha256:2a596eab137cb3e169b97e89a739515abfa7a8755e2e5f0fc91432ef446f74f4 \ + --hash=sha256:49f85ce6cbe478e9743ecddd6da2964afc0ded57013aa4d054256be702d23d40 \ + --hash=sha256:50f6c668c1d5d4d4dc1c3ffec7b4270dab493e5b2368f8e4213f4bcde6a50eea \ + --hash=sha256:70d3e5beffb9ef9dfae5f3c1a7eeb572091505eb8cb076e9434518df1c42a73b \ + --hash=sha256:7579cf47640fb9595a19fe83a742cbf63203f0343055c349c1cab39045a30c29 \ + --hash=sha256:8127d2cd25950bacbcdc8a2ec6daab1d4d27200f7d73964392680ad64d27f7f0 \ + --hash=sha256:9348f7f0a346108e0c96e6719be91da4470bd43c15802435e9f4157f5cca43d4 \ + --hash=sha256:c739b243d012386902f112ea63a54a94848932b70ae3565fa5e121fd1c0200e0 \ + --hash=sha256:edd1d4d35050ea2b9ef42aa01e87fe019a1e822940346b35ccb973e0aa8f6d82 \ + --hash=sha256:f1320dacddcd3aa84a4bdfc77ee6fdb60e4c3835c853d7eb79c09473628b0498 \ + --hash=sha256:ffe7418834ff3b4a6c987187b7abb85ba033f4733e089d77d84e2de87057b4e7 # via # cryptography # pydantic-core @@ -600,18 +598,18 @@ numpy==2.2.6 \ # via # pandas # pyarrow -packaging==24.2 \ - --hash=sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759 \ - --hash=sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f +packaging==25.0 \ + --hash=sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484 \ + --hash=sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f # via - # dunamai # hatchling # pyproject-metadata # scikit-build-core + # setuptools-git-versioning # setuptools-scm -pathspec==0.12.1 \ - --hash=sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 \ - --hash=sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712 +pathspec==1.0.3 \ + --hash=sha256:bac5cf97ae2c2876e2d25ebb15078eb04d76e4b98921ee31c6f85ade8b59444d \ + --hash=sha256:e80767021c1cc524aa3fb14bedda9c34406591343cc42797b386ce7b9354fb6c # via # hatchling # mypy @@ -636,8 +634,6 @@ poetry-core==1.9.1 \ --hash=sha256:7a2d49214bf58b4f17f99d6891d947a9836c9899a67a5069f52d7b67217f61b8 # via # dunamai - # ibis-framework - # ibis-substrait # pkgconfig # poetry-dynamic-versioning # rich @@ -647,10 +643,10 @@ poetry-core==2.2.1 \ --hash=sha256:97e50d8593c8729d3f49364b428583e044087ee3def1e010c6496db76bd65ac5 \ --hash=sha256:bdfce710edc10bfcf9ab35041605c480829be4ab23f5bc01202cfe5db8f125ab # via aiohappyeyeballs -poetry-dynamic-versioning==1.9.1 \ - --hash=sha256:65a0c814e6d30d4807734a3c34edf261fd7cc3b340dbd23b6a33ee41f7d0b547 \ - --hash=sha256:d6e7b9df817aa2ca4946cd695c6c89e1379d2e6c640f008a9b6170d081a9da48 - # via ibis-framework +pybind11-global==3.0.1 \ + --hash=sha256:0e8d5a68d084c50bf145ce5efdbdd00704dbe6315035d0b7a255708ddeb9faca \ + --hash=sha256:eb6ef4e8f5a60f4c0b6a9396cb7806f78d42f8d081e42a93c0bb62288f6cf403 + # via pybind11 pybind11==3.0.1 \ --hash=sha256:9c0f40056a016da59bab516efb523089139fcc6f2ba7e4930854c61efb932051 \ --hash=sha256:aa8f0aa6e0a94d3b64adfc38f560f33f15e589be2175e103c0a33c6bce55ee89 @@ -667,12 +663,18 @@ scikit-build-core==0.11.6 \ --hash=sha256:5982ccd839735be99cfd3b92a8847c6c196692f476c215da84b79d2ad12f9f1b \ --hash=sha256:ce6d8fe64e6b4c759ea0fb95d2f8a68f60d2df31c2989838633b8ec930736360 # via + # duckdb # patchelf # pybind11 + # pybind11-global semantic-version==2.10.0 \ --hash=sha256:bdabb6d336998cbb378d4b9db3a4b56a1e3235701dc05ea2690d9a997ed5041c \ --hash=sha256:de78a3b8e0feda74cabc54aab2da702113e33ac9d9eb9d2389bcf1f58b7d9177 # via setuptools-rust +setuptools-git-versioning==2.1.0 \ + --hash=sha256:09a15cbb9a00884e91a3591a4c9ec1ff93c24b1b4a40de39a44815196beb7ebf \ + --hash=sha256:6aef5b8bb1cfb953b6b343d27cbfc561d96cf2a2ee23c2e0dd3591042a059921 + # via toolz setuptools-rust==1.12.0 \ --hash=sha256:7e7db90547f224a835b45f5ad90c983340828a345554a9a660bdb2de8605dcdd \ --hash=sha256:d94a93f0c97751c17014565f07bdc324bee45d396cd1bba83d8e7af92b945f0c @@ -698,7 +700,6 @@ setuptools-scm==9.2.2 \ # pymilvus # setuptools-rust # sqlglot - # substrait # tabulate # tenacity # tqdm @@ -714,49 +715,54 @@ tomli==2.0.2 \ --hash=sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38 \ --hash=sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed # via setuptools-scm -tomli==2.3.0 \ - --hash=sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456 \ - --hash=sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845 \ - --hash=sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999 \ - --hash=sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0 \ - --hash=sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878 \ - --hash=sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf \ - --hash=sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3 \ - --hash=sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be \ - --hash=sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52 \ - --hash=sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b \ - --hash=sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67 \ - --hash=sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549 \ - --hash=sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba \ - --hash=sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22 \ - --hash=sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c \ - --hash=sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f \ - --hash=sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6 \ - --hash=sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba \ - --hash=sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45 \ - --hash=sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f \ - --hash=sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77 \ - --hash=sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606 \ - --hash=sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441 \ - --hash=sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0 \ - --hash=sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f \ - --hash=sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530 \ - --hash=sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05 \ - --hash=sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8 \ - --hash=sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005 \ - --hash=sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879 \ - --hash=sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae \ - --hash=sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc \ - --hash=sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b \ - --hash=sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b \ - --hash=sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e \ - --hash=sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf \ - --hash=sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac \ - --hash=sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8 \ - --hash=sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b \ - --hash=sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf \ - --hash=sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463 \ - --hash=sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876 +tomli==2.4.0 \ + --hash=sha256:0408e3de5ec77cc7f81960c362543cbbd91ef883e3138e81b729fc3eea5b9729 \ + --hash=sha256:0dc56fef0e2c1c470aeac5b6ca8cc7b640bb93e92d9803ddaf9ea03e198f5b0b \ + --hash=sha256:0e0fe8a0b8312acf3a88077a0802565cb09ee34107813bba1c7cd591fa6cfc8d \ + --hash=sha256:0f2e3955efea4d1cfbcb87bc321e00dc08d2bcb737fd1d5e398af111d86db5df \ + --hash=sha256:133e93646ec4300d651839d382d63edff11d8978be23da4cc106f5a18b7d0576 \ + --hash=sha256:1b168f2731796b045128c45982d3a4874057626da0e2ef1fdd722848b741361d \ + --hash=sha256:1c8a885b370751837c029ef9bc014f27d80840e48bac415f3412e6593bbc18c1 \ + --hash=sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a \ + --hash=sha256:1fb2945cbe303b1419e2706e711b7113da57b7db31ee378d08712d678a34e51e \ + --hash=sha256:20cedb4ee43278bc4f2fee6cb50daec836959aadaf948db5172e776dd3d993fc \ + --hash=sha256:20ffd184fb1df76a66e34bd1b36b4a4641bd2b82954befa32fe8163e79f1a702 \ + --hash=sha256:26ab906a1eb794cd4e103691daa23d95c6919cc2fa9160000ac02370cc9dd3f6 \ + --hash=sha256:2add28aacc7425117ff6364fe9e06a183bb0251b03f986df0e78e974047571fd \ + --hash=sha256:2b1e3b80e1d5e52e40e9b924ec43d81570f0e7d09d11081b797bc4692765a3d4 \ + --hash=sha256:31d556d079d72db7c584c0627ff3a24c5d3fb4f730221d3444f3efb1b2514776 \ + --hash=sha256:36b9d05b51e65b254ea6c2585b59d2c4cb91c8a3d91d0ed0f17591a29aaea54a \ + --hash=sha256:39b0b5d1b6dd03684b3fb276407ebed7090bbec989fa55838c98560c01113b66 \ + --hash=sha256:3cf226acb51d8f1c394c1b310e0e0e61fecdd7adcb78d01e294ac297dd2e7f87 \ + --hash=sha256:3d895d56bd3f82ddd6faaff993c275efc2ff38e52322ea264122d72729dca2b2 \ + --hash=sha256:413540dce94673591859c4c6f794dfeaa845e98bf35d72ed59636f869ef9f86f \ + --hash=sha256:43e685b9b2341681907759cf3a04e14d7104b3580f808cfde1dfdb60ada85475 \ + --hash=sha256:4cbcb367d44a1f0c2be408758b43e1ffb5308abe0ea222897d6bfc8e8281ef2f \ + --hash=sha256:551e321c6ba03b55676970b47cb1b73f14a0a4dce6a3e1a9458fd6d921d72e95 \ + --hash=sha256:5572e41282d5268eb09a697c89a7bee84fae66511f87533a6f88bd2f7b652da9 \ + --hash=sha256:5aa48d7c2356055feef06a43611fc401a07337d5b006be13a30f6c58f869e3c3 \ + --hash=sha256:5b5807f3999fb66776dbce568cc9a828544244a8eb84b84b9bafc080c99597b9 \ + --hash=sha256:5e3f639a7a8f10069d0e15408c0b96a2a828cfdec6fca05296ebcdcc28ca7c76 \ + --hash=sha256:685306e2cc7da35be4ee914fd34ab801a6acacb061b6a7abca922aaf9ad368da \ + --hash=sha256:75c2f8bbddf170e8effc98f5e9084a8751f8174ea6ccf4fca5398436e0320bc8 \ + --hash=sha256:7b438885858efd5be02a9a133caf5812b8776ee0c969fea02c45e8e3f296ba51 \ + --hash=sha256:7d49c66a7d5e56ac959cb6fc583aff0651094ec071ba9ad43df785abc2320d86 \ + --hash=sha256:7d6d9a4aee98fac3eab4952ad1d73aee87359452d1c086b5ceb43ed02ddb16b8 \ + --hash=sha256:84d081fbc252d1b6a982e1870660e7330fb8f90f676f6e78b052ad4e64714bf0 \ + --hash=sha256:8768715ffc41f0008abe25d808c20c3d990f42b6e2e58305d5da280ae7d1fa3b \ + --hash=sha256:920b1de295e72887bafa3ad9f7a792f811847d57ea6b1215154030cf131f16b1 \ + --hash=sha256:9a08144fa4cba33db5255f9b74f0b89888622109bd2776148f2597447f92a94e \ + --hash=sha256:a26d7ff68dfdb9f87a016ecfd1e1c2bacbe3108f4e0f8bcd2228ef9a766c787d \ + --hash=sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c \ + --hash=sha256:b5ef256a3fd497d4973c11bf142e9ed78b150d36f5773f1ca6088c230ffc5867 \ + --hash=sha256:b6c78bdf37764092d369722d9946cb65b8767bfa4110f902a1b2542d8d173c8a \ + --hash=sha256:bbb1b10aa643d973366dc2cb1ad94f99c1726a02343d43cbc011edbfac579e7c \ + --hash=sha256:c084ad935abe686bd9c898e62a02a19abfc9760b5a79bc29644463eaf2840cb0 \ + --hash=sha256:c73add4bb52a206fd0c0723432db123c0c75c280cbd67174dd9d2db228ebb1b4 \ + --hash=sha256:cae9c19ed12d4e8f3ebf46d1a75090e4c0dc16271c5bce1c833ac168f08fb614 \ + --hash=sha256:d20b797a5c1ad80c516e41bc1fb0443ddb5006e9aaa7bda2d71978346aeb9132 \ + --hash=sha256:d3d1654e11d724760cdb37a3d7691f0be9db5fbdaef59c9f532aabf87006dbaa \ + --hash=sha256:d878f2a6707cc9d53a1be1414bbb419e629c3d6e67f69230217bb663e76b5087 # via # fastapi-mcp # flit-scm @@ -769,18 +775,17 @@ tomli==2.3.0 \ # propcache # psycopg-c # scikit-build-core + # setuptools-git-versioning # setuptools-scm # versioneer # yarl -tomlkit==0.13.3 \ - --hash=sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1 \ - --hash=sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0 - # via - # poetry-dynamic-versioning - # uv-dynamic-versioning -trove-classifiers==2025.12.1.14 \ - --hash=sha256:a74f0400524fc83620a9be74a07074b5cbe7594fd4d97fd4c2bfde625fdc1633 \ - --hash=sha256:a8206978ede95937b9959c3aff3eb258bbf7b07dff391ddd4ea7e61f316635ab +tomlkit==0.14.0 \ + --hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 \ + --hash=sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064 + # via uv-dynamic-versioning +trove-classifiers==2026.1.12.15 \ + --hash=sha256:832a7e89ccc43b64b89f8f9d9150c069ebcd17d2dc68279bc00bb53f2a9ae112 \ + --hash=sha256:8832dfbc226fc4df986666b9cb3a018818b1498aeb79f5f66a31a918b47a98f1 # via hatchling types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ @@ -812,7 +817,6 @@ wheel==0.45.1 \ --hash=sha256:708e7481cc80179af0e556bbf0cc00b8444c7321e2700b8d8580231d13017248 # via # async-timeout - # cachetools # google-crc32c # httpx-sse # meson @@ -840,7 +844,6 @@ setuptools==80.9.0 \ # aiosignal # anyio # async-timeout - # cachetools # calver # certifi # cffi @@ -848,7 +851,6 @@ setuptools==80.9.0 \ # cryptography # dask # dill - # duckdb # frozenlist # gitpython # google-api-core @@ -860,7 +862,6 @@ setuptools==80.9.0 \ # gunicorn # httptools # httpx-sse - # ibis-substrait # importlib-metadata # librt # markupsafe @@ -894,10 +895,11 @@ setuptools==80.9.0 \ # shellingham # snowflake-connector-python # sqlalchemy + # sqlglot # sse-starlette - # substrait # tabulate # tenacity + # toolz # tqdm # trove-classifiers # typeguard diff --git a/sdk/python/requirements/py3.10-minimal-sdist-requirements.txt b/sdk/python/requirements/py3.10-minimal-sdist-requirements.txt index 159a6a266ae..2395e0b0d88 100644 --- a/sdk/python/requirements/py3.10-minimal-sdist-requirements.txt +++ b/sdk/python/requirements/py3.10-minimal-sdist-requirements.txt @@ -8,127 +8,127 @@ aiohappyeyeballs==2.6.1 \ --hash=sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558 \ --hash=sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8 # via aiohttp -aiohttp==3.13.2 \ - --hash=sha256:04c3971421576ed24c191f610052bcb2f059e395bc2489dd99e397f9bc466329 \ - --hash=sha256:05c4dd3c48fb5f15db31f57eb35374cb0c09afdde532e7fb70a75aede0ed30f6 \ - --hash=sha256:070599407f4954021509193404c4ac53153525a19531051661440644728ba9a7 \ - --hash=sha256:0740f31a60848d6edb296a0df827473eede90c689b8f9f2a4cdde74889eb2254 \ - --hash=sha256:088912a78b4d4f547a1f19c099d5a506df17eacec3c6f4375e2831ec1d995742 \ - --hash=sha256:0a3d54e822688b56e9f6b5816fb3de3a3a64660efac64e4c2dc435230ad23bad \ - --hash=sha256:0db1e24b852f5f664cd728db140cf11ea0e82450471232a394b3d1a540b0f906 \ - --hash=sha256:0e87dff73f46e969af38ab3f7cb75316a7c944e2e574ff7c933bc01b10def7f5 \ - --hash=sha256:1237c1375eaef0db4dcd7c2559f42e8af7b87ea7d295b118c60c36a6e61cb811 \ - --hash=sha256:16f15a4eac3bc2d76c45f7ebdd48a65d41b242eb6c31c2245463b40b34584ded \ - --hash=sha256:1f9b2c2d4b9d958b1f9ae0c984ec1dd6b6689e15c75045be8ccb4011426268ca \ - --hash=sha256:204ffff2426c25dfda401ba08da85f9c59525cdc42bda26660463dd1cbcfec6f \ - --hash=sha256:20b10bbfbff766294fe99987f7bb3b74fdd2f1a2905f2562132641ad434dcf98 \ - --hash=sha256:20db2d67985d71ca033443a1ba2001c4b5693fe09b0e29f6d9358a99d4d62a8a \ - --hash=sha256:228a1cd556b3caca590e9511a89444925da87d35219a49ab5da0c36d2d943a6a \ - --hash=sha256:2372b15a5f62ed37789a6b383ff7344fc5b9f243999b0cd9b629d8bc5f5b4155 \ - --hash=sha256:23ad365e30108c422d0b4428cf271156dd56790f6dd50d770b8e360e6c5ab2e6 \ - --hash=sha256:23fb0783bc1a33640036465019d3bba069942616a6a2353c6907d7fe1ccdaf4e \ - --hash=sha256:2475391c29230e063ef53a66669b7b691c9bfc3f1426a0f7bcdf1216bdbac38b \ - --hash=sha256:27e569eb9d9e95dbd55c0fc3ec3a9335defbf1d8bc1d20171a49f3c4c607b93e \ - --hash=sha256:29562998ec66f988d49fb83c9b01694fa927186b781463f376c5845c121e4e0b \ - --hash=sha256:2adebd4577724dcae085665f294cc57c8701ddd4d26140504db622b8d566d7aa \ - --hash=sha256:2ca6ffef405fc9c09a746cb5d019c1672cd7f402542e379afc66b370833170cf \ - --hash=sha256:2e1a9bea6244a1d05a4e57c295d69e159a5c50d8ef16aa390948ee873478d9a5 \ - --hash=sha256:364e25edaabd3d37b1db1f0cbcee8c73c9a3727bfa262b83e5e4cf3489a2a9dc \ - --hash=sha256:364f55663085d658b8462a1c3f17b2b84a5c2e1ba858e1b79bff7b2e24ad1514 \ - --hash=sha256:39d02cb6025fe1aabca329c5632f48c9532a3dabccd859e7e2f110668972331f \ - --hash=sha256:3a92cf4b9bea33e15ecbaa5c59921be0f23222608143d025c989924f7e3e0c07 \ - --hash=sha256:40176a52c186aefef6eb3cad2cdd30cd06e3afbe88fe8ab2af9c0b90f228daca \ - --hash=sha256:4356474ad6333e41ccefd39eae869ba15a6c5299c9c01dfdcfdd5c107be4363e \ - --hash=sha256:43dff14e35aba17e3d6d5ba628858fb8cb51e30f44724a2d2f0c75be492c55e9 \ - --hash=sha256:4647d02df098f6434bafd7f32ad14942f05a9caa06c7016fdcc816f343997dd0 \ - --hash=sha256:47f438b1a28e926c37632bff3c44df7d27c9b57aaf4e34b1def3c07111fdb782 \ - --hash=sha256:4dd3db9d0f4ebca1d887d76f7cdbcd1116ac0d05a9221b9dad82c64a62578c4d \ - --hash=sha256:4ebf9cfc9ba24a74cf0718f04aac2a3bbe745902cc7c5ebc55c0f3b5777ef213 \ - --hash=sha256:5276807b9de9092af38ed23ce120539ab0ac955547b38563a9ba4f5b07b95293 \ - --hash=sha256:53b07472f235eb80e826ad038c9d106c2f653584753f3ddab907c83f49eedead \ - --hash=sha256:550bf765101ae721ee1d37d8095f47b1f220650f85fe1af37a90ce75bab89d04 \ - --hash=sha256:56d36e80d2003fa3fc0207fac644216d8532e9504a785ef9a8fd013f84a42c61 \ - --hash=sha256:585542825c4bc662221fb257889e011a5aa00f1ae4d75d1d246a5225289183e3 \ - --hash=sha256:5b927cf9b935a13e33644cbed6c8c4b2d0f25b713d838743f8fe7191b33829c4 \ - --hash=sha256:5d7f02042c1f009ffb70067326ef183a047425bb2ff3bc434ead4dd4a4a66a2b \ - --hash=sha256:6315fb6977f1d0dd41a107c527fee2ed5ab0550b7d885bc15fee20ccb17891da \ - --hash=sha256:66bac29b95a00db411cd758fea0e4b9bdba6d549dfe333f9a945430f5f2cc5a6 \ - --hash=sha256:6c00dbcf5f0d88796151e264a8eab23de2997c9303dd7c0bf622e23b24d3ce22 \ - --hash=sha256:6e7352512f763f760baaed2637055c49134fd1d35b37c2dedfac35bfe5cf8725 \ - --hash=sha256:7519bdc7dfc1940d201651b52bf5e03f5503bda45ad6eacf64dda98be5b2b6be \ - --hash=sha256:78cd586d8331fb8e241c2dd6b2f4061778cc69e150514b39a9e28dd050475661 \ - --hash=sha256:7a653d872afe9f33497215745da7a943d1dc15b728a9c8da1c3ac423af35178e \ - --hash=sha256:7c3a50345635a02db61792c85bb86daffac05330f6473d524f1a4e3ef9d0046d \ - --hash=sha256:7fbdf5ad6084f1940ce88933de34b62358d0f4a0b6ec097362dcd3e5a65a4989 \ - --hash=sha256:7fd19df530c292542636c2a9a85854fab93474396a52f1695e799186bbd7f24c \ - --hash=sha256:868e195e39b24aaa930b063c08bb0c17924899c16c672a28a65afded9c46c6ec \ - --hash=sha256:8709a0f05d59a71f33fd05c17fc11fcb8c30140506e13c2f5e8ee1b8964e1b45 \ - --hash=sha256:88d6c017966a78c5265d996c19cdb79235be5e6412268d7e2ce7dee339471b7a \ - --hash=sha256:8aa7c807df234f693fed0ecd507192fc97692e61fee5702cdc11155d2e5cadc8 \ - --hash=sha256:8b2f1414f6a1e0683f212ec80e813f4abef94c739fd090b66c9adf9d2a05feac \ - --hash=sha256:93655083005d71cd6c072cdab54c886e6570ad2c4592139c3fb967bfc19e4694 \ - --hash=sha256:939ced4a7add92296b0ad38892ce62b98c619288a081170695c6babe4f50e636 \ - --hash=sha256:9434bc0d80076138ea986833156c5a48c9c7a8abb0c96039ddbb4afc93184169 \ - --hash=sha256:94f05348c4406450f9d73d38efb41d669ad6cd90c7ee194810d0eefbfa875a7a \ - --hash=sha256:960c2fc686ba27b535f9fd2b52d87ecd7e4fd1cf877f6a5cba8afb5b4a8bd204 \ - --hash=sha256:96581619c57419c3d7d78703d5b78c1e5e5fc0172d60f555bdebaced82ded19a \ - --hash=sha256:97a0895a8e840ab3520e2288db7cace3a1981300d48babeb50e7425609e2e0ab \ - --hash=sha256:98c4fb90bb82b70a4ed79ca35f656f4281885be076f3f970ce315402b53099ae \ - --hash=sha256:99c5280a329d5fa18ef30fd10c793a190d996567667908bef8a7f81f8202b948 \ - --hash=sha256:9acda8604a57bb60544e4646a4615c1866ee6c04a8edef9b8ee6fd1d8fa2ddc8 \ - --hash=sha256:9c705601e16c03466cb72011bd1af55d68fa65b045356d8f96c216e5f6db0fa5 \ - --hash=sha256:9e8f8afb552297aca127c90cb840e9a1d4bfd6a10d7d8f2d9176e1acc69bad30 \ - --hash=sha256:9eb3e33fdbe43f88c3c75fa608c25e7c47bbd80f48d012763cb67c47f39a7e16 \ - --hash=sha256:9ec49dff7e2b3c85cdeaa412e9d438f0ecd71676fde61ec57027dd392f00c693 \ - --hash=sha256:9f377d0a924e5cc94dc620bc6366fc3e889586a7f18b748901cf016c916e2084 \ - --hash=sha256:a09a6d073fb5789456545bdee2474d14395792faa0527887f2f4ec1a486a59d3 \ - --hash=sha256:a2713a95b47374169409d18103366de1050fe0ea73db358fc7a7acb2880422d4 \ - --hash=sha256:a3b6fb0c207cc661fa0bf8c66d8d9b657331ccc814f4719468af61034b478592 \ - --hash=sha256:a4b88ebe35ce54205c7074f7302bd08a4cb83256a3e0870c72d6f68a3aaf8e49 \ - --hash=sha256:a88d13e7ca367394908f8a276b89d04a3652044612b9a408a0bb22a5ed976a1a \ - --hash=sha256:ac6cde5fba8d7d8c6ac963dbb0256a9854e9fafff52fbcc58fdf819357892c3e \ - --hash=sha256:ae32f24bbfb7dbb485a24b30b1149e2f200be94777232aeadba3eecece4d0aa4 \ - --hash=sha256:b009194665bcd128e23eaddef362e745601afa4641930848af4c8559e88f18f9 \ - --hash=sha256:b1e56bab2e12b2b9ed300218c351ee2a3d8c8fdab5b1ec6193e11a817767e47b \ - --hash=sha256:b395bbca716c38bef3c764f187860e88c724b342c26275bc03e906142fc5964f \ - --hash=sha256:b59d13c443f8e049d9e94099c7e412e34610f1f49be0f230ec656a10692a5802 \ - --hash=sha256:ba2715d842ffa787be87cbfce150d5e88c87a98e0b62e0f5aa489169a393dbbb \ - --hash=sha256:bb7fb776645af5cc58ab804c58d7eba545a97e047254a52ce89c157b5af6cd0b \ - --hash=sha256:c038a8fdc8103cd51dbd986ecdce141473ffd9775a7a8057a6ed9c3653478011 \ - --hash=sha256:c20423ce14771d98353d2e25e83591fa75dfa90a3c1848f3d7c68243b4fbded3 \ - --hash=sha256:c5c94825f744694c4b8db20b71dba9a257cd2ba8e010a803042123f3a25d50d7 \ - --hash=sha256:cf00e5db968c3f67eccd2778574cf64d8b27d95b237770aa32400bd7a1ca4f6c \ - --hash=sha256:d23b5fe492b0805a50d3371e8a728a9134d8de5447dce4c885f5587294750734 \ - --hash=sha256:d7bc4b7f9c4921eba72677cd9fedd2308f4a4ca3e12fab58935295ad9ea98700 \ - --hash=sha256:d8a9b889aeabd7a4e9af0b7f4ab5ad94d42e7ff679aaec6d0db21e3b639ad58d \ - --hash=sha256:dacd50501cd017f8cccb328da0c90823511d70d24a323196826d923aad865901 \ - --hash=sha256:e036a3a645fe92309ec34b918394bb377950cbb43039a97edae6c08db64b23e2 \ - --hash=sha256:e09a0a06348a2dd73e7213353c90d709502d9786219f69b731f6caa0efeb46f5 \ - --hash=sha256:e0c8e31cfcc4592cb200160344b2fb6ae0f9e4effe06c644b5a125d4ae5ebe23 \ - --hash=sha256:e1b4951125ec10c70802f2cb09736c895861cd39fd9dcb35107b4dc8ae6220b8 \ - --hash=sha256:e2a9ea08e8c58bb17655630198833109227dea914cd20be660f52215f6de5613 \ - --hash=sha256:e3403f24bcb9c3b29113611c3c16a2a447c3953ecf86b79775e7be06f7ae7ccb \ - --hash=sha256:e574a7d61cf10351d734bcddabbe15ede0eaa8a02070d85446875dc11189a251 \ - --hash=sha256:e67446b19e014d37342f7195f592a2a948141d15a312fe0e700c2fd2f03124f6 \ - --hash=sha256:e736c93e9c274fce6419af4aac199984d866e55f8a4cec9114671d0ea9688780 \ - --hash=sha256:e7c952aefdf2460f4ae55c5e9c3e80aa72f706a6317e06020f80e96253b1accd \ - --hash=sha256:e7f8659a48995edee7229522984bd1009c1213929c769c2daa80b40fe49a180c \ - --hash=sha256:e96eb1a34396e9430c19d8338d2ec33015e4a87ef2b4449db94c22412e25ccdf \ - --hash=sha256:ec7534e63ae0f3759df3a1ed4fa6bc8f75082a924b590619c0dd2f76d7043caa \ - --hash=sha256:ed2f9c7216e53c3df02264f25d824b079cc5914f9e2deba94155190ef648ee40 \ - --hash=sha256:eeacf451c99b4525f700f078becff32c32ec327b10dcf31306a8a52d78166de7 \ - --hash=sha256:f10d9c0b0188fe85398c61147bbd2a657d616c876863bfeff43376e0e3134673 \ - --hash=sha256:f2bef8237544f4e42878c61cef4e2839fee6346dc60f5739f876a9c50be7fcdb \ - --hash=sha256:f33c8748abef4d8717bb20e8fb1b3e07c6adacb7fd6beaae971a764cf5f30d61 \ - --hash=sha256:f7c183e786e299b5d6c49fb43a769f8eb8e04a2726a2bd5887b98b5cc2d67940 \ - --hash=sha256:fa4dcb605c6f82a80c7f95713c2b11c3b8e9893b3ebd2bc9bde93165ed6107be \ - --hash=sha256:fa89cb11bc71a63b69568d5b8a25c3ca25b6d54c15f907ca1c130d72f320b76b \ - --hash=sha256:fe242cd381e0fb65758faf5ad96c2e460df6ee5b2de1072fe97e4127927e00b4 \ - --hash=sha256:fe91b87fc295973096251e2d25a811388e7d8adf3bd2b97ef6ae78bc4ac6c476 \ - --hash=sha256:fed38a5edb7945f4d1bcabe2fcd05db4f6ec7e0e82560088b754f7e08d93772d \ - --hash=sha256:ff0a7b0a82a7ab905cbda74006318d1b12e37c797eb1b0d4eb3e316cf47f658f \ - --hash=sha256:ff15c147b2ad66da1f2cbb0622313f2242d8e6e8f9b79b5206c84523a4473248 \ - --hash=sha256:ff5e771f5dcbc81c64898c597a434f7682f2259e0cd666932a913d53d1341d1a +aiohttp==3.13.3 \ + --hash=sha256:01ad2529d4b5035578f5081606a465f3b814c542882804e2e8cda61adf5c71bf \ + --hash=sha256:042e9e0bcb5fba81886c8b4fbb9a09d6b8a00245fd8d88e4d989c1f96c74164c \ + --hash=sha256:05861afbbec40650d8a07ea324367cb93e9e8cc7762e04dd4405df99fa65159c \ + --hash=sha256:084911a532763e9d3dd95adf78a78f4096cd5f58cdc18e6fdbc1b58417a45423 \ + --hash=sha256:0add0900ff220d1d5c5ebbf99ed88b0c1bbf87aa7e4262300ed1376a6b13414f \ + --hash=sha256:0db318f7a6f065d84cb1e02662c526294450b314a02bd9e2a8e67f0d8564ce40 \ + --hash=sha256:10b47b7ba335d2e9b1239fa571131a87e2d8ec96b333e68b2a305e7a98b0bae2 \ + --hash=sha256:1449ceddcdbcf2e0446957863af03ebaaa03f94c090f945411b61269e2cb5daf \ + --hash=sha256:147e422fd1223005c22b4fe080f5d93ced44460f5f9c105406b753612b587821 \ + --hash=sha256:1cb93e166e6c28716c8c6aeb5f99dfb6d5ccf482d29fe9bf9a794110e6d0ab64 \ + --hash=sha256:215a685b6fbbfcf71dfe96e3eba7a6f58f10da1dfdf4889c7dd856abe430dca7 \ + --hash=sha256:2712039939ec963c237286113c68dbad80a82a4281543f3abf766d9d73228998 \ + --hash=sha256:27234ef6d85c914f9efeb77ff616dbf4ad2380be0cda40b4db086ffc7ddd1b7d \ + --hash=sha256:28e027cf2f6b641693a09f631759b4d9ce9165099d2b5d92af9bd4e197690eea \ + --hash=sha256:2b8d8ddba8f95ba17582226f80e2de99c7a7948e66490ef8d947e272a93e9463 \ + --hash=sha256:2ba0eea45eb5cc3172dbfc497c066f19c41bac70963ea1a67d51fc92e4cf9a80 \ + --hash=sha256:2be0e9ccf23e8a94f6f0650ce06042cefc6ac703d0d7ab6c7a917289f2539ad4 \ + --hash=sha256:2e41b18a58da1e474a057b3d35248d8320029f61d70a37629535b16a0c8f3767 \ + --hash=sha256:2eb752b102b12a76ca02dff751a801f028b4ffbbc478840b473597fc91a9ed43 \ + --hash=sha256:2fc82186fadc4a8316768d61f3722c230e2c1dcab4200d52d2ebdf2482e47592 \ + --hash=sha256:2fff83cfc93f18f215896e3a190e8e5cb413ce01553901aca925176e7568963a \ + --hash=sha256:31a83ea4aead760dfcb6962efb1d861db48c34379f2ff72db9ddddd4cda9ea2e \ + --hash=sha256:34749271508078b261c4abb1767d42b8d0c0cc9449c73a4df494777dc55f0687 \ + --hash=sha256:34bac00a67a812570d4a460447e1e9e06fae622946955f939051e7cc895cfab8 \ + --hash=sha256:37239e9f9a7ea9ac5bf6b92b0260b01f8a22281996da609206a84df860bc1261 \ + --hash=sha256:37da61e244d1749798c151421602884db5270faf479cf0ef03af0ff68954c9dd \ + --hash=sha256:3b61b7169ababd7802f9568ed96142616a9118dd2be0d1866e920e77ec8fa92a \ + --hash=sha256:3d9908a48eb7416dc1f4524e69f1d32e5d90e3981e4e37eb0aa1cd18f9cfa2a4 \ + --hash=sha256:3dd4dce1c718e38081c8f35f323209d4c1df7d4db4bab1b5c88a6b4d12b74587 \ + --hash=sha256:4021b51936308aeea0367b8f006dc999ca02bc118a0cc78c303f50a2ff6afb91 \ + --hash=sha256:40c5e40ecc29ba010656c18052b877a1c28f84344825efa106705e835c28530f \ + --hash=sha256:425c126c0dc43861e22cb1c14ba4c8e45d09516d0a3ae0a3f7494b79f5f233a3 \ + --hash=sha256:44531a36aa2264a1860089ffd4dce7baf875ee5a6079d5fb42e261c704ef7344 \ + --hash=sha256:48e377758516d262bde50c2584fc6c578af272559c409eecbdd2bae1601184d6 \ + --hash=sha256:49a03727c1bba9a97d3e93c9f93ca03a57300f484b6e935463099841261195d3 \ + --hash=sha256:4ae5b5a0e1926e504c81c5b84353e7a5516d8778fbbff00429fe7b05bb25cbce \ + --hash=sha256:4e239d501f73d6db1522599e14b9b321a7e3b1de66ce33d53a765d975e9f4808 \ + --hash=sha256:56339a36b9f1fc708260c76c87e593e2afb30d26de9ae1eb445b5e051b98a7a1 \ + --hash=sha256:568f416a4072fbfae453dcf9a99194bbb8bdeab718e08ee13dfa2ba0e4bebf29 \ + --hash=sha256:5b179331a481cb5529fca8b432d8d3c7001cb217513c94cd72d668d1248688a3 \ + --hash=sha256:5b6073099fb654e0a068ae678b10feff95c5cae95bbfcbfa7af669d361a8aa6b \ + --hash=sha256:5d2d94f1f5fcbe40838ac51a6ab5704a6f9ea42e72ceda48de5e6b898521da51 \ + --hash=sha256:5dff64413671b0d3e7d5918ea490bdccb97a4ad29b3f311ed423200b2203e01c \ + --hash=sha256:5e1d8c8b8f1d91cd08d8f4a3c2b067bfca6ec043d3ff36de0f3a715feeedf926 \ + --hash=sha256:5f8ca7f2bb6ba8348a3614c7918cc4bb73268c5ac2a207576b7afea19d3d9f64 \ + --hash=sha256:642f752c3eb117b105acbd87e2c143de710987e09860d674e068c4c2c441034f \ + --hash=sha256:65d2ccb7eabee90ce0503c17716fc77226be026dcc3e65cce859a30db715025b \ + --hash=sha256:693781c45a4033d31d4187d2436f5ac701e7bbfe5df40d917736108c1cc7436e \ + --hash=sha256:694976222c711d1d00ba131904beb60534f93966562f64440d0c9d41b8cdb440 \ + --hash=sha256:697753042d57f4bf7122cab985bf15d0cef23c770864580f5af4f52023a56bd6 \ + --hash=sha256:69c56fbc1993fa17043e24a546959c0178fe2b5782405ad4559e6c13975c15e3 \ + --hash=sha256:6de499a1a44e7de70735d0b39f67c8f25eb3d91eb3103be99ca0fa882cdd987d \ + --hash=sha256:6fc0e2337d1a4c3e6acafda6a78a39d4c14caea625124817420abceed36e2415 \ + --hash=sha256:75ca857eba4e20ce9f546cd59c7007b33906a4cd48f2ff6ccf1ccfc3b646f279 \ + --hash=sha256:7a4a94eb787e606d0a09404b9c38c113d3b099d508021faa615d70a0131907ce \ + --hash=sha256:7b5e8fe4de30df199155baaf64f2fcd604f4c678ed20910db8e2c66dc4b11603 \ + --hash=sha256:7bfdc049127717581866fa4708791220970ce291c23e28ccf3922c700740fdc0 \ + --hash=sha256:7e63f210bc1b57ef699035f2b4b6d9ce096b5914414a49b0997c839b2bd2223c \ + --hash=sha256:7f9120f7093c2a32d9647abcaf21e6ad275b4fbec5b55969f978b1a97c7c86bf \ + --hash=sha256:8057c98e0c8472d8846b9c79f56766bcc57e3e8ac7bfd510482332366c56c591 \ + --hash=sha256:80dd4c21b0f6237676449c6baaa1039abae86b91636b6c91a7f8e61c87f89540 \ + --hash=sha256:81e97251d9298386c2b7dbeb490d3d1badbdc69107fb8c9299dd04eb39bddc0e \ + --hash=sha256:82611aeec80eb144416956ec85b6ca45a64d76429c1ed46ae1b5f86c6e0c9a26 \ + --hash=sha256:8542f41a62bcc58fc7f11cf7c90e0ec324ce44950003feb70640fc2a9092c32a \ + --hash=sha256:859bd3f2156e81dd01432f5849fc73e2243d4a487c4fd26609b1299534ee1845 \ + --hash=sha256:87797e645d9d8e222e04160ee32aa06bc5c163e8499f24db719e7852ec23093a \ + --hash=sha256:87b9aab6d6ed88235aa2970294f496ff1a1f9adcd724d800e9b952395a80ffd9 \ + --hash=sha256:8a60e60746623925eab7d25823329941aee7242d559baa119ca2b253c88a7bd6 \ + --hash=sha256:90455115e5da1c3c51ab619ac57f877da8fd6d73c05aacd125c5ae9819582aba \ + --hash=sha256:90751b8eed69435bac9ff4e3d2f6b3af1f57e37ecb0fbeee59c0174c9e2d41df \ + --hash=sha256:947c26539750deeaee933b000fb6517cc770bbd064bad6033f1cff4803881e43 \ + --hash=sha256:96d604498a7c782cb15a51c406acaea70d8c027ee6b90c569baa6e7b93073679 \ + --hash=sha256:988a8c5e317544fdf0d39871559e67b6341065b87fceac641108c2096d5506b7 \ + --hash=sha256:9a9dc347e5a3dc7dfdbc1f82da0ef29e388ddb2ed281bfce9dd8248a313e62b7 \ + --hash=sha256:9ae8dd55c8e6c4257eae3a20fd2c8f41edaea5992ed67156642493b8daf3cecc \ + --hash=sha256:9af5e68ee47d6534d36791bbe9b646d2a7c7deb6fc24d7943628edfbb3581f29 \ + --hash=sha256:9b174f267b5cfb9a7dba9ee6859cecd234e9a681841eb85068059bc867fb8f02 \ + --hash=sha256:9bf9f7a65e7aa20dd764151fb3d616c81088f91f8df39c3893a536e279b4b984 \ + --hash=sha256:9d4c940f02f49483b18b079d1c27ab948721852b281f8b015c058100e9421dd1 \ + --hash=sha256:9ebf57d09e131f5323464bd347135a88622d1c0976e88ce15b670e7ad57e4bd6 \ + --hash=sha256:a19884d2ee70b06d9204b2727a7b9f983d0c684c650254679e716b0b77920632 \ + --hash=sha256:a1e53262fd202e4b40b70c3aff944a8155059beedc8a89bba9dc1f9ef06a1b56 \ + --hash=sha256:a2212ad43c0833a873d0fb3c63fa1bacedd4cf6af2fee62bf4b739ceec3ab239 \ + --hash=sha256:a45530014d7a1e09f4a55f4f43097ba0fd155089372e105e4bff4ca76cb1b168 \ + --hash=sha256:a949eee43d3782f2daae4f4a2819b2cb9b0c5d3b7f7a927067cc84dafdbb9f88 \ + --hash=sha256:add1da70de90a2569c5e15249ff76a631ccacfe198375eead4aadf3b8dc849dc \ + --hash=sha256:af71fff7bac6bb7508956696dce8f6eec2bbb045eceb40343944b1ae62b5ef11 \ + --hash=sha256:b04be762396457bef43f3597c991e192ee7da460a4953d7e647ee4b1c28e7046 \ + --hash=sha256:b0d95340658b9d2f11d9697f59b3814a9d3bb4b7a7c20b131df4bcef464037c0 \ + --hash=sha256:b1a6102b4d3ebc07dad44fbf07b45bb600300f15b552ddf1851b5390202ea2e3 \ + --hash=sha256:b46020d11d23fe16551466c77823df9cc2f2c1e63cc965daf67fa5eec6ca1877 \ + --hash=sha256:b556c85915d8efaed322bf1bdae9486aa0f3f764195a0fb6ee962e5c71ef5ce1 \ + --hash=sha256:b903a4dfee7d347e2d87697d0713be59e0b87925be030c9178c5faa58ea58d5c \ + --hash=sha256:b928f30fe49574253644b1ca44b1b8adbd903aa0da4b9054a6c20fc7f4092a25 \ + --hash=sha256:b99281b0704c103d4e11e72a76f1b543d4946fea7dd10767e7e1b5f00d4e5704 \ + --hash=sha256:bae5c2ed2eae26cc382020edad80d01f36cb8e746da40b292e68fec40421dc6a \ + --hash=sha256:bb4f7475e359992b580559e008c598091c45b5088f28614e855e42d39c2f1033 \ + --hash=sha256:bbe7d4cecacb439e2e2a8a1a7b935c25b812af7a5fd26503a66dadf428e79ec1 \ + --hash=sha256:bfc1cc2fe31a6026a8a88e4ecfb98d7f6b1fec150cfd708adbfd1d2f42257c29 \ + --hash=sha256:c014c7ea7fb775dd015b2d3137378b7be0249a448a1612268b5a90c2d81de04d \ + --hash=sha256:c048058117fd649334d81b4b526e94bde3ccaddb20463a815ced6ecbb7d11160 \ + --hash=sha256:c0e2d366af265797506f0283487223146af57815b388623f0357ef7eac9b209d \ + --hash=sha256:c19b90316ad3b24c69cd78d5c9b4f3aa4497643685901185b65166293d36a00f \ + --hash=sha256:c685f2d80bb67ca8c3837823ad76196b3694b0159d232206d1e461d3d434666f \ + --hash=sha256:c6b8568a3bb5819a0ad087f16d40e5a3fb6099f39ea1d5625a3edc1e923fc538 \ + --hash=sha256:d32764c6c9aafb7fb55366a224756387cd50bfa720f32b88e0e6fa45b27dcf29 \ + --hash=sha256:d5a372fd5afd301b3a89582817fdcdb6c34124787c70dbcc616f259013e7eef7 \ + --hash=sha256:d60ac9663f44168038586cab2157e122e46bdef09e9368b37f2d82d354c23f72 \ + --hash=sha256:dca68018bf48c251ba17c72ed479f4dafe9dbd5a73707ad8d28a38d11f3d42af \ + --hash=sha256:de2c184bb1fe2cbd2cefba613e9db29a5ab559323f994b6737e370d3da0ac455 \ + --hash=sha256:e3531d63d3bdfa7e3ac5e9b27b2dd7ec9df3206a98e0b3445fa906f233264c57 \ + --hash=sha256:e50a2e1404f063427c9d027378472316201a2290959a295169bcf25992d04558 \ + --hash=sha256:e636b3c5f61da31a92bf0d91da83e58fdfa96f178ba682f11d24f31944cdd28c \ + --hash=sha256:ea37047c6b367fd4bd632bff8077449b8fa034b69e812a18e0132a00fae6e808 \ + --hash=sha256:f33ed1a2bf1997a36661874b017f5c4b760f41266341af36febaf271d179f6d7 \ + --hash=sha256:f76c1e3fe7d7c8afad7ed193f89a292e1999608170dcc9751a7462a87dfd5bc0 \ + --hash=sha256:f9444f105664c4ce47a2a7171a2418bce5b7bae45fb610f4e2c36045d85911d3 \ + --hash=sha256:fc290605db2a917f6e81b0e1e0796469871f5af381ce15c604a3c5c7e51cb730 \ + --hash=sha256:fc353029f176fd2b3ec6cfc71be166aba1936fe5d73dd1992ce289ca6647a9aa \ + --hash=sha256:fee0c6bc7db1de362252affec009707a17478a00ec69f797d23ca256e36d5940 # via aiobotocore aioitertools==0.13.0 \ --hash=sha256:0be0292b856f08dfac90e31f4739432f4cb6d7520ab9eb73e143f4f2fa5259be \ @@ -150,9 +150,9 @@ annotated-types==0.7.0 \ --hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 \ --hash=sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89 # via pydantic -anyio==4.12.0 \ - --hash=sha256:73c693b567b0c55130c104d0b43a9baf3aa6a31fc6110116509f27bf75e21ec0 \ - --hash=sha256:dad2376a628f98eeca4881fc56cd06affd18f659b17a747d3ff0307ced94b1bb +anyio==4.12.1 \ + --hash=sha256:41cfcc3a4c85d3f05c932da7c26d0201ac36f72abd4435ba90d0464a3ffed703 \ + --hash=sha256:d405828884fc140aa80a3c667b8beed277f1dfedec42ba031bd6ac3db606ab6c # via # httpx # mcp @@ -169,9 +169,9 @@ async-timeout==5.0.1 \ # via # aiohttp # redis -atpublic==5.1 \ - --hash=sha256:135783dbd887fbddb6ef032d104da70c124f2b44b9e2d79df07b9da5334825e3 \ - --hash=sha256:abc1f4b3dbdd841cc3539e4b5e4f3ad41d658359de704e30cb36da4d4e9d3022 +atpublic==7.0.0 \ + --hash=sha256:466ef10d0c8bbd14fd02a5fbd5a8b6af6a846373d91106d3a07c16d72d96b63e \ + --hash=sha256:6702bd9e7245eb4e8220a3e222afcef7f87412154732271ee7deee4433b72b4b # via ibis-framework attrs==25.4.0 \ --hash=sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11 \ @@ -184,9 +184,9 @@ babel==2.17.0 \ --hash=sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d \ --hash=sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2 # via sphinx -bigtree==1.0.4 \ - --hash=sha256:e4af0c5bc0d2cd72e18442965e4509f642b16a0de65db6d0ec116e30f959010c \ - --hash=sha256:f58a3238bb9b1142d893c9de4921bfd18d435427c75e0c168dd580eabf6dc7fd +bigtree==1.1.0 \ + --hash=sha256:3f1ff63d2d66d31bf19855ddda8884637edf8dd1fc1aa118cf3a750580ece48b \ + --hash=sha256:f54f99d842732c91cce39c596a3755a2e8325b1cab5bc6876f5b15bd3942081c # via feast (setup.py) boto3==1.38.27 \ --hash=sha256:94bd7fdd92d5701b362d4df100d21e28f8307a67ff56b6a8b0398119cf22f859 \ @@ -202,17 +202,13 @@ botocore==1.38.46 \ # boto3 # s3transfer # snowflake-connector-python -cachetools==6.2.4 \ - --hash=sha256:69a7a52634fed8b8bf6e24a050fb60bff1c9bd8f6d24572b99c32d4e71e62a51 \ - --hash=sha256:82c5c05585e70b6ba2d3ae09ea60b79548872185d2f24ae1f2709d37299fd607 - # via google-auth calver==2025.3.31 \ --hash=sha256:07511edf5e7fa75ae97445c8c5921240e0fe62937289a3ebe6963eddd3c691b6 \ --hash=sha256:255d1a70bba8f97dc1eee3af4240ed35980508da69257feef94c79e5c6545fc7 # via feast (setup.py) -certifi==2025.11.12 \ - --hash=sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b \ - --hash=sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316 +certifi==2026.1.4 \ + --hash=sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c \ + --hash=sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120 # via # httpcore # httpx @@ -567,59 +563,48 @@ docutils==0.21.2 \ --hash=sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f \ --hash=sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2 # via sphinx -duckdb==1.1.3 \ - --hash=sha256:00cca22df96aa3473fe4584f84888e2cf1c516e8c2dd837210daec44eadba586 \ - --hash=sha256:08935700e49c187fe0e9b2b86b5aad8a2ccd661069053e38bfaed3b9ff795efd \ - --hash=sha256:0897f83c09356206ce462f62157ce064961a5348e31ccb2a557a7531d814e70e \ - --hash=sha256:09c68522c30fc38fc972b8a75e9201616b96ae6da3444585f14cf0d116008c95 \ - --hash=sha256:0a55169d2d2e2e88077d91d4875104b58de45eff6a17a59c7dc41562c73df4be \ - --hash=sha256:0ba6baa0af33ded836b388b09433a69b8bec00263247f6bf0a05c65c897108d3 \ - --hash=sha256:183ac743f21c6a4d6adfd02b69013d5fd78e5e2cd2b4db023bc8a95457d4bc5d \ - --hash=sha256:1aa3abec8e8995a03ff1a904b0e66282d19919f562dd0a1de02f23169eeec461 \ - --hash=sha256:1c0226dc43e2ee4cc3a5a4672fddb2d76fd2cf2694443f395c02dd1bea0b7fce \ - --hash=sha256:1d9ab6143e73bcf17d62566e368c23f28aa544feddfd2d8eb50ef21034286f24 \ - --hash=sha256:2141c6b28162199999075d6031b5d63efeb97c1e68fb3d797279d31c65676269 \ - --hash=sha256:252d9b17d354beb9057098d4e5d5698e091a4f4a0d38157daeea5fc0ec161670 \ - --hash=sha256:25fb02629418c0d4d94a2bc1776edaa33f6f6ccaa00bd84eb96ecb97ae4b50e9 \ - --hash=sha256:2f073d15d11a328f2e6d5964a704517e818e930800b7f3fa83adea47f23720d3 \ - --hash=sha256:35c420f58abc79a68a286a20fd6265636175fadeca1ce964fc8ef159f3acc289 \ - --hash=sha256:4ebf5f60ddbd65c13e77cddb85fe4af671d31b851f125a4d002a313696af43f1 \ - --hash=sha256:4f0e2e5a6f5a53b79aee20856c027046fba1d73ada6178ed8467f53c3877d5e0 \ - --hash=sha256:51c6d79e05b4a0933672b1cacd6338f882158f45ef9903aef350c4427d9fc898 \ - --hash=sha256:51e7dbd968b393343b226ab3f3a7b5a68dee6d3fe59be9d802383bf916775cb8 \ - --hash=sha256:5ace6e4b1873afdd38bd6cc8fcf90310fb2d454f29c39a61d0c0cf1a24ad6c8d \ - --hash=sha256:5d57776539211e79b11e94f2f6d63de77885f23f14982e0fac066f2885fcf3ff \ - --hash=sha256:6411e21a2128d478efbd023f2bdff12464d146f92bc3e9c49247240448ace5a6 \ - --hash=sha256:647f17bd126170d96a38a9a6f25fca47ebb0261e5e44881e3782989033c94686 \ - --hash=sha256:68c3a46ab08836fe041d15dcbf838f74a990d551db47cb24ab1c4576fc19351c \ - --hash=sha256:77f26884c7b807c7edd07f95cf0b00e6d47f0de4a534ac1706a58f8bc70d0d31 \ - --hash=sha256:7c71169fa804c0b65e49afe423ddc2dc83e198640e3b041028da8110f7cd16f7 \ - --hash=sha256:80158f4c7c7ada46245837d5b6869a336bbaa28436fbb0537663fa324a2750cd \ - --hash=sha256:872d38b65b66e3219d2400c732585c5b4d11b13d7a36cd97908d7981526e9898 \ - --hash=sha256:8ee97ec337794c162c0638dda3b4a30a483d0587deda22d45e1909036ff0b739 \ - --hash=sha256:911d58c22645bfca4a5a049ff53a0afd1537bc18fedb13bc440b2e5af3c46148 \ - --hash=sha256:9c619e4849837c8c83666f2cd5c6c031300cd2601e9564b47aa5de458ff6e69d \ - --hash=sha256:9d0767ada9f06faa5afcf63eb7ba1befaccfbcfdac5ff86f0168c673dd1f47aa \ - --hash=sha256:9e3f5cd604e7c39527e6060f430769b72234345baaa0987f9500988b2814f5e4 \ - --hash=sha256:a1f83c7217c188b7ab42e6a0963f42070d9aed114f6200e3c923c8899c090f16 \ - --hash=sha256:a1fa0c502f257fa9caca60b8b1478ec0f3295f34bb2efdc10776fc731b8a6c5f \ - --hash=sha256:a30dd599b8090ea6eafdfb5a9f1b872d78bac318b6914ada2d35c7974d643640 \ - --hash=sha256:a433ae9e72c5f397c44abdaa3c781d94f94f4065bcbf99ecd39433058c64cb38 \ - --hash=sha256:a4748635875fc3c19a7320a6ae7410f9295557450c0ebab6d6712de12640929a \ - --hash=sha256:b74e121ab65dbec5290f33ca92301e3a4e81797966c8d9feef6efdf05fc6dafd \ - --hash=sha256:c443d3d502335e69fc1e35295fcfd1108f72cb984af54c536adfd7875e79cee5 \ - --hash=sha256:c5336939d83837af52731e02b6a78a446794078590aa71fd400eb17f083dda3e \ - --hash=sha256:cddc6c1a3b91dcc5f32493231b3ba98f51e6d3a44fe02839556db2b928087378 \ - --hash=sha256:d08308e0a46c748d9c30f1d67ee1143e9c5ea3fbcccc27a47e115b19e7e78aa9 \ - --hash=sha256:d5724fd8a49e24d730be34846b814b98ba7c304ca904fbdc98b47fa95c0b0cee \ - --hash=sha256:e4ef7ba97a65bd39d66f2a7080e6fb60e7c3e41d4c1e19245f90f53b98e3ac32 \ - --hash=sha256:e59087dbbb63705f2483544e01cccf07d5b35afa58be8931b224f3221361d537 \ - --hash=sha256:e86006958e84c5c02f08f9b96f4bc26990514eab329b1b4f71049b3727ce5989 \ - --hash=sha256:ecb1dc9062c1cc4d2d88a5e5cd8cc72af7818ab5a3c0f796ef0ffd60cfd3efb4 \ - --hash=sha256:eeacb598120040e9591f5a4edecad7080853aa8ac27e62d280f151f8c862afa3 \ - --hash=sha256:f549af9f7416573ee48db1cf8c9d27aeed245cb015f4b4f975289418c6cf7320 \ - --hash=sha256:f58db1b65593ff796c8ea6e63e2e144c944dd3d51c8d8e40dffa7f41693d35d3 \ - --hash=sha256:f9b47036945e1db32d70e414a10b1593aec641bd4c5e2056873d971cc21e978b +duckdb==1.4.3 \ + --hash=sha256:006aca6a6d6736c441b02ff5c7600b099bb8b7f4de094b8b062137efddce42df \ + --hash=sha256:130c6760f6c573f9c9fe9aba56adba0fab48811a4871b7b8fd667318b4a3e8da \ + --hash=sha256:16952ac05bd7e7b39946695452bf450db1ebbe387e1e7178e10f593f2ea7b9a8 \ + --hash=sha256:1b35491db98ccd11d151165497c084a9d29d3dc42fc80abea2715a6c861ca43d \ + --hash=sha256:1b9b445970fd18274d5ac07a0b24c032e228f967332fb5ebab3d7db27738c0e4 \ + --hash=sha256:1bb8bd5a3dd205983726185b280a211eacc9f5bc0c4d4505bec8c87ac33a8ccb \ + --hash=sha256:1e5457dda91b67258aae30fb1a0df84183a9f6cd27abac1d5536c0d876c6dfa1 \ + --hash=sha256:20c88effaa557a11267706b01419c542fe42f893dee66e5a6daa5974ea2d4a46 \ + --hash=sha256:23a3a077821bed1768a84ac9cbf6b6487ead33e28e62cb118bda5fb8f9e53dea \ + --hash=sha256:23b12854032c1a58d0452e2b212afa908d4ce64171862f3792ba9a596ba7c765 \ + --hash=sha256:274d4a31aba63115f23e7e7b401e3e3a937f3626dc9dea820a9c7d3073f450d2 \ + --hash=sha256:2b195270ff1a661f22cbd547a215baff265b7d4469a76a215c8992b5994107c3 \ + --hash=sha256:2b30245375ea94ab528c87c61fc3ab3e36331180b16af92ee3a37b810a745d24 \ + --hash=sha256:316711a9e852bcfe1ed6241a5f654983f67e909e290495f3562cccdf43be8180 \ + --hash=sha256:366bf607088053dce845c9d24c202c04d78022436cc5d8e4c9f0492de04afbe7 \ + --hash=sha256:4f868a7e6d9b37274a1aa34849ea92aa964e9bd59a5237d6c17e8540533a1e4f \ + --hash=sha256:4fef6a053a1c485292000bf0c338bba60f89d334f6a06fc76ba4085a5a322b76 \ + --hash=sha256:5634e40e1e2d972e4f75bced1fbdd9e9e90faa26445c1052b27de97ee546944a \ + --hash=sha256:6302452e57aef29aae3977063810ed7b2927967b97912947b9cca45c1c21955f \ + --hash=sha256:6db124f53a3edcb32b0a896ad3519e37477f7e67bf4811cb41ab60c1ef74e4c8 \ + --hash=sha256:702dabbc22b27dc5b73e7599c60deef3d8c59968527c36b391773efddd8f4cf1 \ + --hash=sha256:813f189039b46877b5517f1909c7b94a8fe01b4bde2640ab217537ea0fe9b59b \ + --hash=sha256:854b79375fa618f6ffa8d84fb45cbc9db887f6c4834076ea10d20bc106f1fd90 \ + --hash=sha256:8afba22c370f06b7314aa46bfed052509269e482bcfb3f7b1ea0fa17ae49ce42 \ + --hash=sha256:8d080e8d1bf2d226423ec781f539c8f6b6ef3fd42a9a58a7160de0a00877a21f \ + --hash=sha256:8d53b217698a76c4957e2c807dd9295d409146f9d3d7932f372883201ba9d25a \ + --hash=sha256:90f241f25cffe7241bf9f376754a5845c74775e00e1c5731119dc88cd71e0cb2 \ + --hash=sha256:9dc049ba7e906cb49ca2b6d4fbf7b6615ec3883193e8abb93f0bef2652e42dda \ + --hash=sha256:9e625b2b4d52bafa1fd0ebdb0990c3961dac8bb00e30d327185de95b68202131 \ + --hash=sha256:a2813f4635f4d6681cc3304020374c46aca82758c6740d7edbc237fe3aae2744 \ + --hash=sha256:a7c864df027da1ee95f0c32def67e15d02cd4a906c9c1cbae82c09c5112f526b \ + --hash=sha256:a8b0a8764e1b5dd043d168c8f749314f7a1252b5a260fa415adaa26fa3b958fd \ + --hash=sha256:aa26a7406205bc1426cee28bdfdf084f669a5686977dafa4c3ec65873989593c \ + --hash=sha256:caa2164c91f7e91befb1ffb081b3cd97a137117533aef7abe1538b03ad72e3a9 \ + --hash=sha256:d0ff08388ef8b1d1a4c95c321d6c5fa11201b241036b1ee740f9d841df3d6ba2 \ + --hash=sha256:de984cd24a6cbefdd6d4a349f7b9a46e583ca3e58ce10d8def0b20a6e5fcbe78 \ + --hash=sha256:deab351ac43b6282a3270e3d40e3d57b3b50f472d9fd8c30975d88a31be41231 \ + --hash=sha256:ef7ef15347ce97201b1b5182a5697682679b04c3374d5a01ac10ba31cf791b95 \ + --hash=sha256:efa7f1191c59e34b688fcd4e588c1b903a4e4e1f4804945902cf0b20e08a9001 \ + --hash=sha256:fbc63ffdd03835f660155b37a1b6db2005bcd46e5ad398b8cac141eb305d2a3d \ + --hash=sha256:fea43e03604c713e25a25211ada87d30cd2a044d8f27afab5deba26ac49e5268 # via ibis-framework dunamai==1.25.0 \ --hash=sha256:7f9dc687dd3256e613b6cc978d9daabfd2bb5deb8adc541fc135ee423ffa98ab \ @@ -645,9 +630,9 @@ fastapi-mcp==0.4.0 \ --hash=sha256:d4a3fe7966af24d44e4b412720561c95eb12bed999a4443a88221834b3b15aec \ --hash=sha256:d4ca9410996f4c7b8ea0d7b20fdf79878dc359ebf89cbf3b222e0b675a55097d # via feast (setup.py) -filelock==3.20.1 \ - --hash=sha256:15d9e9a67306188a44baa72f569d2bfd803076269365fdea0934385da4dc361a \ - --hash=sha256:b8360948b351b80f420878d8516519a2204b07aefcdcfd24912a5d33127f188c +filelock==3.20.3 \ + --hash=sha256:18c57ee915c7ec61cff0ecf7f0f869936c7c30191bb0cf406f1341778d0834e1 \ + --hash=sha256:4b0dda527ee31078689fc205ec4f1c1bf7d56cf88b6dc9426c4f230e46c2dce1 # via snowflake-connector-python flit-core==3.12.0 \ --hash=sha256:18f63100d6f94385c6ed57a72073443e1a71a4acb4339491615d0f16d6ff01b2 \ @@ -793,9 +778,9 @@ fsspec==2024.9.0 \ # via # feast (setup.py) # dask -google-api-core[grpc]==2.28.1 \ - --hash=sha256:2b405df02d68e68ce0fbc138559e6036559e685159d148ae5861013dc201baf8 \ - --hash=sha256:4021b0f8ceb77a6fb4de6fde4502cecab45062e66ff4f2895169e0b35bc9466c +google-api-core[grpc]==2.29.0 \ + --hash=sha256:84181be0f8e6b04006df75ddfe728f24489f0af57c96a529ff7cf45bc28797f7 \ + --hash=sha256:d30bc60980daa36e314b5d5a3e5958b0200cb44ca8fa1be2b614e932b75a3ea9 # via # feast (setup.py) # google-cloud-bigquery @@ -805,9 +790,9 @@ google-api-core[grpc]==2.28.1 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.45.0 \ - --hash=sha256:82344e86dc00410ef5382d99be677c6043d72e502b625aa4f4afa0bdacca0f36 \ - --hash=sha256:90d3f41b6b72ea72dd9811e765699ee491ab24139f34ebf1ca2b9cc0c38708f3 +google-auth==2.47.0 \ + --hash=sha256:833229070a9dfee1a353ae9877dcd2dec069a8281a4e72e72f77d4a70ff945da \ + --hash=sha256:c516d68336bfde7cf0da26aab674a36fedcf04b37ac4edd59c597178760c3498 # via # google-api-core # google-auth-oauthlib @@ -826,9 +811,9 @@ google-auth-oauthlib==1.2.2 \ # via # pandas-gbq # pydata-google-auth -google-cloud-bigquery[pandas]==3.39.0 \ - --hash=sha256:cb375e1d63dea9bd5bf735e66024338f294159d43afdf63e1d023f5fcbbf55ea \ - --hash=sha256:dc7a64921465859105461b43c42562e38e797d7a73feb72b3cfc4865b7b1c5ef +google-cloud-bigquery[pandas]==3.40.0 \ + --hash=sha256:0469bcf9e3dad3cab65b67cce98180c8c0aacf3253d47f0f8e976f299b49b5ab \ + --hash=sha256:b3ccb11caf0029f15b29569518f667553fe08f6f1459b959020c83fbbd8f2e68 # via # feast (setup.py) # pandas-gbq @@ -1223,15 +1208,9 @@ httpx-sse==0.4.3 \ --hash=sha256:0ac1c9fe3c0afad2e0ebb25a934a59f4c7823b60792691f779fad2c5568830fc \ --hash=sha256:9b1ed0127459a66014aec3c56bebd93da3c1bc8bb6618c8082039a44889a755d # via mcp -ibis-framework[duckdb]==9.5.0 \ - --hash=sha256:145fe30d94f111cff332580c275ce77725c5ff7086eede93af0b371649d009c0 \ - --hash=sha256:1c8a29277e63ee0dfc289bc8f550164b5e3bdaec1b76b62436c37d331bb4ef84 - # via - # feast (setup.py) - # ibis-substrait -ibis-substrait==4.0.1 \ - --hash=sha256:107ca49383a3cca2fdc88f67ea2f0172620c16fa8f39c9c52305af85dd6180b4 \ - --hash=sha256:614810a173d096fbc49d87a9b419e2162a3c25d8efda1a4d57a389ce56b9041f +ibis-framework[duckdb]==11.0.0 \ + --hash=sha256:0249185eaabb800e224f448cc06ce8ba168df00b269e132d62629f462eca8842 \ + --hash=sha256:92ff82a96f4eac7f86fa9b6a315e04b5a8f9ed3d186539d88f48e628363f2e72 # via feast (setup.py) idna==3.11 \ --hash=sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea \ @@ -1264,9 +1243,9 @@ jmespath==1.0.1 \ # aiobotocore # boto3 # botocore -jsonschema==4.25.1 \ - --hash=sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63 \ - --hash=sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85 +jsonschema==4.26.0 \ + --hash=sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326 \ + --hash=sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce # via # feast (setup.py) # mcp @@ -1278,83 +1257,83 @@ kubernetes==33.1.0 \ --hash=sha256:544de42b24b64287f7e0aa9513c93cb503f7f40eea39b20f66810011a86eabc5 \ --hash=sha256:f64d829843a54c251061a8e7a14523b521f2dc5c896cf6d65ccf348648a88993 # via feast (setup.py) -librt==0.7.5 \ - --hash=sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee \ - --hash=sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1 \ - --hash=sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4 \ - --hash=sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899 \ - --hash=sha256:0e2bf8f91093fac43e3eaebacf777f12fd539dce9ec5af3efc6d8424e96ccd49 \ - --hash=sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d \ - --hash=sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760 \ - --hash=sha256:191cbd42660446d67cf7a95ac7bfa60f49b8b3b0417c64f216284a1d86fc9335 \ - --hash=sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8 \ - --hash=sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2 \ - --hash=sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec \ - --hash=sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b \ - --hash=sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0 \ - --hash=sha256:39183abee670bc37b85f11e86c44a9cad1ed6efa48b580083e89ecee13dd9717 \ - --hash=sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325 \ - --hash=sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45 \ - --hash=sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d \ - --hash=sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233 \ - --hash=sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d \ - --hash=sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544 \ - --hash=sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802 \ - --hash=sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2 \ - --hash=sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d \ - --hash=sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f \ - --hash=sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169 \ - --hash=sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe \ - --hash=sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982 \ - --hash=sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2 \ - --hash=sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa \ - --hash=sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4 \ - --hash=sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4 \ - --hash=sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57 \ - --hash=sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26 \ - --hash=sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361 \ - --hash=sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad \ - --hash=sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e \ - --hash=sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf \ - --hash=sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f \ - --hash=sha256:8dcae24de1bc9da93aa689cb6313c70e776d7cea2fcf26b9b6160fedfe6bd9af \ - --hash=sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2 \ - --hash=sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89 \ - --hash=sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904 \ - --hash=sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6 \ - --hash=sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276 \ - --hash=sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e \ - --hash=sha256:a9eacbf983319b26b5f340a2e0cd47ac1ee4725a7f3a72fd0f15063c934b69d6 \ - --hash=sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409 \ - --hash=sha256:af69d9e159575e877c7546d1ee817b4ae089aa221dd1117e20c24ad8dc8659c7 \ - --hash=sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a \ - --hash=sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4 \ - --hash=sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775 \ - --hash=sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203 \ - --hash=sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419 \ - --hash=sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5 \ - --hash=sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023 \ - --hash=sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b \ - --hash=sha256:cdb001a1a0e4f41e613bca2c0fc147fc8a7396f53fc94201cbfd8ec7cd69ca4b \ - --hash=sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d \ - --hash=sha256:d2cc7d187e8c6e9b7bdbefa9697ce897a704ea7a7ce844f2b4e0e2aa07ae51d3 \ - --hash=sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e \ - --hash=sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a \ - --hash=sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b \ - --hash=sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db \ - --hash=sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd \ - --hash=sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa \ - --hash=sha256:df2e210400b28e50994477ebf82f055698c79797b6ee47a1669d383ca33263e1 \ - --hash=sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805 \ - --hash=sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a \ - --hash=sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25 \ - --hash=sha256:ea1b60b86595a5dc1f57b44a801a1c4d8209c0a69518391d349973a4491408e6 \ - --hash=sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b \ - --hash=sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5 \ - --hash=sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416 \ - --hash=sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc \ - --hash=sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7 \ - --hash=sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96 +librt==0.7.7 \ + --hash=sha256:067be973d90d9e319e6eb4ee2a9b9307f0ecd648b8a9002fa237289a4a07a9e7 \ + --hash=sha256:0996c83b1cb43c00e8c87835a284f9057bc647abd42b5871e5f941d30010c832 \ + --hash=sha256:0ecce0544d3db91a40f8b57ae26928c02130a997b540f908cefd4d279d6c5848 \ + --hash=sha256:10c8fb9966f84737115513fecbaf257f9553d067a7dd45a69c2c7e5339e6a8dc \ + --hash=sha256:142c2cd91794b79fd0ce113bd658993b7ede0fe93057668c2f98a45ca00b7e91 \ + --hash=sha256:14ef0f4ac3728ffd85bfc58e2f2f48fb4ef4fa871876f13a73a7381d10a9f77c \ + --hash=sha256:1908c3e5a5ef86b23391448b47759298f87f997c3bd153a770828f58c2bb4630 \ + --hash=sha256:1bcd79be209313b270b0e1a51c67ae1af28adad0e0c7e84c3ad4b5cb57aaa75b \ + --hash=sha256:23d2299ed007812cccc1ecef018db7d922733382561230de1f3954db28433977 \ + --hash=sha256:23daa1ab0512bafdd677eb1bfc9611d8ffbe2e328895671e64cb34166bc1b8c8 \ + --hash=sha256:2567cb48dc03e5b246927ab35cbb343376e24501260a9b5e30b8e255dca0d1d2 \ + --hash=sha256:264720fc288c86039c091a4ad63419a5d7cabbf1c1c9933336a957ed2483e570 \ + --hash=sha256:2987cf827011907d3dfd109f1be0d61e173d68b1270107bb0e89f2fca7f2ed6b \ + --hash=sha256:2a85a1fc4ed11ea0eb0a632459ce004a2d14afc085a50ae3463cd3dfe1ce43fc \ + --hash=sha256:3d1fe2e8df3268dd6734dba33ededae72ad5c3a859b9577bc00b715759c5aaab \ + --hash=sha256:4353ee891a1834567e0302d4bd5e60f531912179578c36f3d0430f8c5e16b456 \ + --hash=sha256:44d63ce643f34a903f09ff7ca355aae019a3730c7afd6a3c037d569beeb5d151 \ + --hash=sha256:467dbd7443bda08338fc8ad701ed38cef48194017554f4c798b0a237904b3f99 \ + --hash=sha256:4862cb2c702b1f905c0503b72d9d4daf65a7fdf5a9e84560e563471e57a56949 \ + --hash=sha256:4bf3cc46d553693382d2abf5f5bd493d71bb0f50a7c0beab18aa13a5545c8900 \ + --hash=sha256:4dcee2f921a8632636d1c37f1bbdb8841d15666d119aa61e5399c5268e7ce02e \ + --hash=sha256:50d1d1ee813d2d1a3baf2873634ba506b263032418d16287c92ec1cc9c1a00cb \ + --hash=sha256:5335890fea9f9e6c4fdf8683061b9ccdcbe47c6dc03ab8e9b68c10acf78be78d \ + --hash=sha256:558a9e5a6f3cc1e20b3168fb1dc802d0d8fa40731f6e9932dcc52bbcfbd37111 \ + --hash=sha256:5e419e0db70991b6ba037b70c1d5bbe92b20ddf82f31ad01d77a347ed9781398 \ + --hash=sha256:6066c638cdf85ff92fc6f932d2d73c93a0e03492cdfa8778e6d58c489a3d7259 \ + --hash=sha256:6ae8aec43117a645a31e5f60e9e3a0797492e747823b9bda6972d521b436b4e8 \ + --hash=sha256:6b6f8ea465524aa4c7420c7cc4ca7d46fe00981de8debc67b1cc2e9957bb5b9d \ + --hash=sha256:7b16ccaeff0ed4355dfb76fe1ea7a5d6d03b5ad27f295f77ee0557bc20a72495 \ + --hash=sha256:7d13cc340b3b82134f8038a2bfe7137093693dcad8ba5773da18f95ad6b77a8a \ + --hash=sha256:7ef28f2e7a016b29792fe0a2dd04dec75725b32a1264e390c366103f834a9c3a \ + --hash=sha256:8185c8497d45164e256376f9da5aed2bb26ff636c798c9dabe313b90e9f25b28 \ + --hash=sha256:81d957b069fed1890953c3b9c3895c7689960f233eea9a1d9607f71ce7f00b2c \ + --hash=sha256:86f86b3b785487c7760247bcdac0b11aa8bf13245a13ed05206286135877564b \ + --hash=sha256:8e92c8de62b40bfce91d5e12c6e8b15434da268979b1af1a6589463549d491e6 \ + --hash=sha256:8f2f8dcf5ab9f80fb970c6fd780b398efb2f50c1962485eb8d3ab07788595a48 \ + --hash=sha256:8f4a0b0a3c86ba9193a8e23bb18f100d647bf192390ae195d84dfa0a10fb6244 \ + --hash=sha256:8f7a74cf3a80f0c3b0ec75b0c650b2f0a894a2cec57ef75f6f72c1e82cdac61d \ + --hash=sha256:955c62571de0b181d9e9e0a0303c8bc90d47670a5eff54cf71bf5da61d1899cf \ + --hash=sha256:983de36b5a83fe9222f4f7dcd071f9b1ac6f3f17c0af0238dadfb8229588f890 \ + --hash=sha256:9b15e5d17812d4d629ff576699954f74e2cc24a02a4fc401882dd94f81daba45 \ + --hash=sha256:9b4346b1225be26def3ccc6c965751c74868f0578cbcba293c8ae9168483d811 \ + --hash=sha256:9b5fb1ecb2c35362eab2dbd354fd1efa5a8440d3e73a68be11921042a0edc0ff \ + --hash=sha256:a10b8eebdaca6e9fdbaf88b5aefc0e324b763a5f40b1266532590d5afb268a4c \ + --hash=sha256:a1f5cc41a570269d1be7a676655875e3a53de4992a9fa38efb7983e97cf73d7c \ + --hash=sha256:a3bfe73a32bd0bdb9a87d586b05a23c0a1729205d79df66dee65bb2e40d671ba \ + --hash=sha256:a487b71fbf8a9edb72a8c7a456dda0184642d99cd007bc819c0b7ab93676a8ee \ + --hash=sha256:a609849aca463074c17de9cda173c276eb8fee9e441053529e7b9e249dc8b8ee \ + --hash=sha256:a76f1d679beccccdf8c1958e732a1dfcd6e749f8821ee59d7bec009ac308c029 \ + --hash=sha256:a7ea4e1fbd253e5c68ea0fe63d08577f9d288a73f17d82f652ebc61fa48d878d \ + --hash=sha256:ab2a2a9cd7d044e1a11ca64a86ad3361d318176924bbe5152fbc69f99be20b8c \ + --hash=sha256:ad3fc2d859a709baf9dd9607bb72f599b1cfb8a39eafd41307d0c3c4766763cb \ + --hash=sha256:add4e0a000858fe9bb39ed55f31085506a5c38363e6eb4a1e5943a10c2bfc3d1 \ + --hash=sha256:aea05f701ccd2a76b34f0daf47ca5068176ff553510b614770c90d76ac88df06 \ + --hash=sha256:b8bb331aad734b059c4b450cd0a225652f16889e286b2345af5e2c3c625c3d85 \ + --hash=sha256:bdb9f3d865b2dafe7f9ad7f30ef563c80d0ddd2fdc8cc9b8e4f242f475e34d75 \ + --hash=sha256:c084841b879c4d9b9fa34e5d5263994f21aea7fd9c6add29194dbb41a6210536 \ + --hash=sha256:c48c7e150c095d5e3cea7452347ba26094be905d6099d24f9319a8b475fcd3e0 \ + --hash=sha256:c7e5070cf3ec92d98f57574da0224f8c73faf1ddd6d8afa0b8c9f6e86997bc74 \ + --hash=sha256:c87654e29a35938baead1c4559858f346f4a2a7588574a14d784f300ffba0efd \ + --hash=sha256:c8ffe3431d98cc043a14e88b21288b5ec7ee12cb01260e94385887f285ef9389 \ + --hash=sha256:c9faaebb1c6212c20afd8043cd6ed9de0a47d77f91a6b5b48f4e46ed470703fe \ + --hash=sha256:d1454899909d63cc9199a89fcc4f81bdd9004aef577d4ffc022e600c412d57f3 \ + --hash=sha256:d6b7d93657332c817b8d674ef6bf1ab7796b4f7ce05e420fd45bd258a72ac804 \ + --hash=sha256:dbc4900e95a98fc0729523be9d93a8fedebb026f32ed9ffc08acd82e3e181503 \ + --hash=sha256:e40d20ae1722d6b8ea6acf4597e789604649dcd9c295eb7361a28225bc2e9e12 \ + --hash=sha256:e4836c5645f40fbdc275e5670819bde5ab5f2e882290d304e3c6ddab1576a6d0 \ + --hash=sha256:e4ab69fa37f8090f2d971a5d2bc606c7401170dbdae083c393d6cbf439cb45b8 \ + --hash=sha256:ef7699b7a5a244b1119f85c5bbc13f152cd38240cbb2baa19b769433bae98e50 \ + --hash=sha256:f0c8fe5aeadd8a0e5b0598f8a6ee3533135ca50fd3f20f130f9d72baf5c6ac58 \ + --hash=sha256:f2cb63c49bc96847c3bb8dca350970e4dcd19936f391cfdfd057dcb37c4fa97e \ + --hash=sha256:f4d4efb218264ecf0f8516196c9e2d1a0679d9fb3bb15df1155a35220062eba8 \ + --hash=sha256:f683dcd49e2494a7535e30f779aa1ad6e3732a019d80abe1309ea91ccd3230e3 \ + --hash=sha256:f83c971eb9d2358b6a18da51dc0ae00556ac7c73104dde16e9e14c15aaf685ca \ + --hash=sha256:f8df32a99cc46eb0ee90afd9ada113ae2cafe7e8d673686cf03ec53e49635439 \ + --hash=sha256:ff1fb2dfef035549565a4124998fadcb7a3d4957131ddf004a56edeb029626b3 # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ @@ -1854,16 +1833,15 @@ numpy==2.2.6 \ # ibis-framework # pandas # pandas-gbq - # pyarrow oauthlib==3.3.1 \ --hash=sha256:0f0f8aa759826a193cf66c12ea1af1637f87b9b4622d46e866952bb022e538c9 \ --hash=sha256:88119c938d2b8fb88561af5f6ee0eec8cc8d552b7bb1f712743136eb7523b7a1 # via # kubernetes # requests-oauthlib -packaging==24.2 \ - --hash=sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759 \ - --hash=sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f +packaging==25.0 \ + --hash=sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484 \ + --hash=sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f # via # dask # db-dtypes @@ -1872,7 +1850,6 @@ packaging==24.2 \ # gunicorn # hatchling # ibis-framework - # ibis-substrait # pandas-gbq # pyproject-metadata # scikit-build-core @@ -1944,9 +1921,9 @@ pandas==2.3.3 \ # pandas-gbq # pymilvus # snowflake-connector-python -pandas-gbq==0.32.0 \ - --hash=sha256:249623d574c65e98cf19b7b7ecda97729f4f0a843eae3a0a82d9ef50adcdf4ef \ - --hash=sha256:28018ff09f2e49ab2b01a11329bd4e562fd65da406030b4a8001a3a4e80a1e34 +pandas-gbq==0.33.0 \ + --hash=sha256:499ad18a7b1917e2cc04bbd763ec37c11ecc49030348c45cebb9cbbdb7f909af \ + --hash=sha256:61357e11d73e0ae57cbff31e71fc3ed83da3d16b58b653f715b32ad760527e34 # via google-cloud-bigquery parsy==2.2 \ --hash=sha256:5e981613d9d2d8b68012d1dd0afe928967bea2e4eefdb76c2f545af0dd02a9e7 \ @@ -1967,9 +1944,9 @@ patchelf==0.17.2.4 \ --hash=sha256:d842b51f0401460f3b1f3a3a67d2c266a8f515a5adfbfa6e7b656cb3ac2ed8bc \ --hash=sha256:d9b35ebfada70c02679ad036407d9724ffe1255122ba4ac5e4be5868618a5689 # via feast (setup.py) -pathspec==0.12.1 \ - --hash=sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 \ - --hash=sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712 +pathspec==1.0.3 \ + --hash=sha256:bac5cf97ae2c2876e2d25ebb15078eb04d76e4b98921ee31c6f85ade8b59444d \ + --hash=sha256:e80767021c1cc524aa3fb14bedda9c34406591343cc42797b386ce7b9354fb6c # via # hatchling # mypy @@ -1990,9 +1967,9 @@ poetry-dynamic-versioning==1.9.1 \ --hash=sha256:65a0c814e6d30d4807734a3c34edf261fd7cc3b340dbd23b6a33ee41f7d0b547 \ --hash=sha256:d6e7b9df817aa2ca4946cd695c6c89e1379d2e6c640f008a9b6170d081a9da48 # via feast (setup.py) -prometheus-client==0.23.1 \ - --hash=sha256:6ae8f9081eaaaf153a2e959d2e6c4f4fb57b12ef76c8c7980202f1e57b48b2ce \ - --hash=sha256:dd1913e6e76b59cfe44e7a4b83e01afc9873c1bdfd2ed8739f1e76aeca115f99 +prometheus-client==0.24.0 \ + --hash=sha256:4ab6d4fb5a1b25ad74b58e6271857e356fff3399473e599d227ab5d0ce6637f0 \ + --hash=sha256:726b40c0d499f4904d4b5b7abe8d43e6aff090de0d468ae8f2226290b331c667 # via feast (setup.py) propcache==0.4.1 \ --hash=sha256:0002004213ee1f36cfb3f9a42b5066100c44276b9b72b4e1504cddd3d692e86e \ @@ -2128,17 +2105,17 @@ proto-plus==1.27.0 \ # google-cloud-bigquery-storage # google-cloud-bigtable # google-cloud-datastore -protobuf==6.33.2 \ - --hash=sha256:1f8017c48c07ec5859106533b682260ba3d7c5567b1ca1f24297ce03384d1b4f \ - --hash=sha256:2981c58f582f44b6b13173e12bb8656711189c2a70250845f264b877f00b1913 \ - --hash=sha256:56dc370c91fbb8ac85bc13582c9e373569668a290aa2e66a590c2a0d35ddb9e4 \ - --hash=sha256:7109dcc38a680d033ffb8bf896727423528db9163be1b6a02d6a49606dcadbfe \ - --hash=sha256:7636aad9bb01768870266de5dc009de2d1b936771b38a793f73cbbf279c91c5c \ - --hash=sha256:87eb388bd2d0f78febd8f4c8779c79247b26a5befad525008e49a6955787ff3d \ - --hash=sha256:8cd7640aee0b7828b6d03ae518b5b4806fdfc1afe8de82f79c3454f8aef29872 \ - --hash=sha256:b5d3b5625192214066d99b2b605f5783483575656784de223f00a8d00754fc0e \ - --hash=sha256:d9b19771ca75935b3a4422957bc518b0cecb978b31d1dd12037b088f6bcc0e43 \ - --hash=sha256:fc2a0e8b05b180e5fc0dd1559fe8ebdae21a27e81ac77728fb6c42b12c7419b4 +protobuf==6.33.4 \ + --hash=sha256:0f12ddbf96912690c3582f9dffb55530ef32015ad8e678cd494312bd78314c4f \ + --hash=sha256:1fe3730068fcf2e595816a6c34fe66eeedd37d51d0400b72fabc848811fdc1bc \ + --hash=sha256:2fe67f6c014c84f655ee06f6f66213f9254b3a8b6bda6cda0ccd4232c73c06f0 \ + --hash=sha256:3df850c2f8db9934de4cf8f9152f8dc2558f49f298f37f90c517e8e5c84c30e9 \ + --hash=sha256:757c978f82e74d75cba88eddec479df9b99a42b31193313b75e492c06a51764e \ + --hash=sha256:8f11ffae31ec67fc2554c2ef891dcb561dae9a2a3ed941f9e134c2db06657dbc \ + --hash=sha256:918966612c8232fc6c24c78e1cd89784307f5814ad7506c308ee3cf86662850d \ + --hash=sha256:955478a89559fa4568f5a81dce77260eabc5c686f9e8366219ebd30debf06aa6 \ + --hash=sha256:c7c64f259c618f0bef7bee042075e390debbf9682334be2b67408ec7c1c09ee6 \ + --hash=sha256:dc2e61bca3b10470c1912d166fe0af67bfc20eb55971dcef8dfa48ce14f0ed91 # via # feast (setup.py) # google-api-core @@ -2152,7 +2129,6 @@ protobuf==6.33.2 \ # grpcio-status # proto-plus # pymilvus - # substrait psutil==7.2.1 \ --hash=sha256:05cc68dbb8c174828624062e73078e7e35406f4ca2d0866c272c2410d8ef06d1 \ --hash=sha256:08a2f175e48a898c8eb8eace45ce01777f4785bc744c90aa2cc7f2fa5462a266 \ @@ -2189,43 +2165,57 @@ psycopg-pool==3.3.0 \ --hash=sha256:2e44329155c410b5e8666372db44276a8b1ebd8c90f1c3026ebba40d4bc81063 \ --hash=sha256:fa115eb2860bd88fce1717d75611f41490dec6135efb619611142b24da3f6db5 # via psycopg -pyarrow==17.0.0 \ - --hash=sha256:0071ce35788c6f9077ff9ecba4858108eebe2ea5a3f7cf2cf55ebc1dbc6ee24a \ - --hash=sha256:02dae06ce212d8b3244dd3e7d12d9c4d3046945a5933d28026598e9dbbda1fca \ - --hash=sha256:0b72e87fe3e1db343995562f7fff8aee354b55ee83d13afba65400c178ab2597 \ - --hash=sha256:0cdb0e627c86c373205a2f94a510ac4376fdc523f8bb36beab2e7f204416163c \ - --hash=sha256:13d7a460b412f31e4c0efa1148e1d29bdf18ad1411eb6757d38f8fbdcc8645fb \ - --hash=sha256:1c8856e2ef09eb87ecf937104aacfa0708f22dfeb039c363ec99735190ffb977 \ - --hash=sha256:2e19f569567efcbbd42084e87f948778eb371d308e137a0f97afe19bb860ccb3 \ - --hash=sha256:32503827abbc5aadedfa235f5ece8c4f8f8b0a3cf01066bc8d29de7539532687 \ - --hash=sha256:392bc9feabc647338e6c89267635e111d71edad5fcffba204425a7c8d13610d7 \ - --hash=sha256:42bf93249a083aca230ba7e2786c5f673507fa97bbd9725a1e2754715151a204 \ - --hash=sha256:4beca9521ed2c0921c1023e68d097d0299b62c362639ea315572a58f3f50fd28 \ - --hash=sha256:5984f416552eea15fd9cee03da53542bf4cddaef5afecefb9aa8d1010c335087 \ - --hash=sha256:6b244dc8e08a23b3e352899a006a26ae7b4d0da7bb636872fa8f5884e70acf15 \ - --hash=sha256:757074882f844411fcca735e39aae74248a1531367a7c80799b4266390ae51cc \ - --hash=sha256:75c06d4624c0ad6674364bb46ef38c3132768139ddec1c56582dbac54f2663e2 \ - --hash=sha256:7c7916bff914ac5d4a8fe25b7a25e432ff921e72f6f2b7547d1e325c1ad9d155 \ - --hash=sha256:9b564a51fbccfab5a04a80453e5ac6c9954a9c5ef2890d1bcf63741909c3f8df \ - --hash=sha256:9b8a823cea605221e61f34859dcc03207e52e409ccf6354634143e23af7c8d22 \ - --hash=sha256:9ba11c4f16976e89146781a83833df7f82077cdab7dc6232c897789343f7891a \ - --hash=sha256:a155acc7f154b9ffcc85497509bcd0d43efb80d6f733b0dc3bb14e281f131c8b \ - --hash=sha256:a27532c38f3de9eb3e90ecab63dfda948a8ca859a66e3a47f5f42d1e403c4d03 \ - --hash=sha256:a48ddf5c3c6a6c505904545c25a4ae13646ae1f8ba703c4df4a1bfe4f4006bda \ - --hash=sha256:a5c8b238d47e48812ee577ee20c9a2779e6a5904f1708ae240f53ecbee7c9f07 \ - --hash=sha256:af5ff82a04b2171415f1410cff7ebb79861afc5dae50be73ce06d6e870615204 \ - --hash=sha256:b0c6ac301093b42d34410b187bba560b17c0330f64907bfa4f7f7f2444b0cf9b \ - --hash=sha256:d7d192305d9d8bc9082d10f361fc70a73590a4c65cf31c3e6926cd72b76bc35c \ - --hash=sha256:da1e060b3876faa11cee287839f9cc7cdc00649f475714b8680a05fd9071d545 \ - --hash=sha256:db023dc4c6cae1015de9e198d41250688383c3f9af8f565370ab2b4cb5f62655 \ - --hash=sha256:dc5c31c37409dfbc5d014047817cb4ccd8c1ea25d19576acf1a001fe07f5b420 \ - --hash=sha256:dec8d129254d0188a49f8a1fc99e0560dc1b85f60af729f47de4046015f9b0a5 \ - --hash=sha256:e3343cb1e88bc2ea605986d4b94948716edc7a8d14afd4e2c097232f729758b4 \ - --hash=sha256:edca18eaca89cd6382dfbcff3dd2d87633433043650c07375d095cd3517561d8 \ - --hash=sha256:f1e70de6cb5790a50b01d2b686d54aaf73da01266850b05e3af2a1bc89e16053 \ - --hash=sha256:f553ca691b9e94b202ff741bdd40f6ccb70cdd5fbf65c187af132f1317de6145 \ - --hash=sha256:f7ae2de664e0b158d1607699a16a488de3d008ba99b3a7aa5de1cbc13574d047 \ - --hash=sha256:fa3c246cc58cb5a4a5cb407a18f193354ea47dd0648194e6265bd24177982fe8 +pyarrow==22.0.0 \ + --hash=sha256:001ea83a58024818826a9e3f89bf9310a114f7e26dfe404a4c32686f97bd7901 \ + --hash=sha256:00626d9dc0f5ef3a75fe63fd68b9c7c8302d2b5bbc7f74ecaedba83447a24f84 \ + --hash=sha256:0c34fe18094686194f204a3b1787a27456897d8a2d62caf84b61e8dfbc0252ae \ + --hash=sha256:12fe549c9b10ac98c91cf791d2945e878875d95508e1a5d14091a7aaa66d9cf8 \ + --hash=sha256:1a812a5b727bc09c3d7ea072c4eebf657c2f7066155506ba31ebf4792f88f016 \ + --hash=sha256:252be4a05f9d9185bb8c18e83764ebcfea7185076c07a7a662253af3a8c07941 \ + --hash=sha256:334f900ff08ce0423407af97e6c26ad5d4e3b0763645559ece6fbf3747d6a8f5 \ + --hash=sha256:35ad0f0378c9359b3f297299c3309778bb03b8612f987399a0333a560b43862d \ + --hash=sha256:3d600dc583260d845c7d8a6db540339dd883081925da2bd1c5cb808f720b3cd9 \ + --hash=sha256:3e294c5eadfb93d78b0763e859a0c16d4051fc1c5231ae8956d61cb0b5666f5a \ + --hash=sha256:3e739edd001b04f654b166204fc7a9de896cf6007eaff33409ee9e50ceaff754 \ + --hash=sha256:44729980b6c50a5f2bfcc2668d36c569ce17f8b17bccaf470c4313dcbbf13c9d \ + --hash=sha256:44d2d26cda26d18f7af7db71453b7b783788322d756e81730acb98f24eb90ace \ + --hash=sha256:4c19236ae2402a8663a2c8f21f1870a03cc57f0bef7e4b6eb3238cc82944de80 \ + --hash=sha256:69763ab2445f632d90b504a815a2a033f74332997052b721002298ed6de40f2e \ + --hash=sha256:6dda1ddac033d27421c20d7a7943eec60be44e0db4e079f33cc5af3b8280ccde \ + --hash=sha256:6f9762274496c244d951c819348afbcf212714902742225f649cf02823a6a10f \ + --hash=sha256:710624ab925dc2b05a6229d47f6f0dac1c1155e6ed559be7109f684eba048a48 \ + --hash=sha256:7388ac685cab5b279a41dfe0a6ccd99e4dbf322edfb63e02fc0443bf24134e91 \ + --hash=sha256:77718810bd3066158db1e95a63c160ad7ce08c6b0710bc656055033e39cdad88 \ + --hash=sha256:7a820d8ae11facf32585507c11f04e3f38343c1e784c9b5a8b1da5c930547fe2 \ + --hash=sha256:8382ad21458075c2e66a82a29d650f963ce51c7708c7c0ff313a8c206c4fd5e8 \ + --hash=sha256:84378110dd9a6c06323b41b56e129c504d157d1a983ce8f5443761eb5256bafc \ + --hash=sha256:854794239111d2b88b40b6ef92aa478024d1e5074f364033e73e21e3f76b25e0 \ + --hash=sha256:92843c305330aa94a36e706c16209cd4df274693e777ca47112617db7d0ef3d7 \ + --hash=sha256:9bddc2cade6561f6820d4cd73f99a0243532ad506bc510a75a5a65a522b2d74d \ + --hash=sha256:a4893d31e5ef780b6edcaf63122df0f8d321088bb0dee4c8c06eccb1ca28d145 \ + --hash=sha256:a9d9ffdc2ab696f6b15b4d1f7cec6658e1d788124418cb30030afbae31c64746 \ + --hash=sha256:ac93252226cf288753d8b46280f4edf3433bf9508b6977f8dd8526b521a1bbb9 \ + --hash=sha256:b41f37cabfe2463232684de44bad753d6be08a7a072f6a83447eeaf0e4d2a215 \ + --hash=sha256:b883fe6fd85adad7932b3271c38ac289c65b7337c2c132e9569f9d3940620730 \ + --hash=sha256:b9d71701ce97c95480fecb0039ec5bb889e75f110da72005743451339262f4ce \ + --hash=sha256:ba95112d15fd4f1105fb2402c4eab9068f0554435e9b7085924bcfaac2cc306f \ + --hash=sha256:bba208d9c7decf9961998edf5c65e3ea4355d5818dd6cd0f6809bec1afb951cc \ + --hash=sha256:bd0d42297ace400d8febe55f13fdf46e86754842b860c978dfec16f081e5c653 \ + --hash=sha256:bea79263d55c24a32b0d79c00a1c58bb2ee5f0757ed95656b01c0fb310c5af3d \ + --hash=sha256:c064e28361c05d72eed8e744c9605cbd6d2bb7481a511c74071fd9b24bc65d7d \ + --hash=sha256:c3200cb41cdbc65156e5f8c908d739b0dfed57e890329413da2748d1a2cd1a4e \ + --hash=sha256:c6c791b09c57ed76a18b03f2631753a4960eefbbca80f846da8baefc6491fcfe \ + --hash=sha256:c6ec3675d98915bf1ec8b3c7986422682f7232ea76cad276f4c8abd5b7319b70 \ + --hash=sha256:ce20fe000754f477c8a9125543f1936ea5b8867c5406757c224d745ed033e691 \ + --hash=sha256:cedb9dd9358e4ea1d9bce3665ce0797f6adf97ff142c8e25b46ba9cdd508e9b6 \ + --hash=sha256:e0a15757fccb38c410947df156f9749ae4a3c89b2393741a50521f39a8cf202a \ + --hash=sha256:e6e95176209257803a8b3d0394f21604e796dadb643d2f7ca21b66c9c0b30c9a \ + --hash=sha256:e70ff90c64419709d38c8932ea9fe1cc98415c4f87ea8da81719e43f02534bc9 \ + --hash=sha256:ec1a15968a9d80da01e1d30349b2b0d7cc91e96588ee324ce1b5228175043e95 \ + --hash=sha256:ec5d40dd494882704fb876c16fa7261a69791e784ae34e6b5992e977bd2e238c \ + --hash=sha256:f633074f36dbc33d5c05b5dc75371e5660f1dbf9c8b1d95669def05e5425989c \ + --hash=sha256:f7fe3dbe871294ba70d789be16b6e7e52b418311e166e0e3cba9522f0f437fb1 \ + --hash=sha256:f963ba8c3b0199f9d6b794c90ec77545e05eadc83973897a4523c9e8d84e9340 # via # feast (setup.py) # dask @@ -2412,9 +2402,9 @@ pyjwt[crypto]==2.10.1 \ # feast (setup.py) # mcp # snowflake-connector-python -pymilvus==2.4.15 \ - --hash=sha256:0601591ce0498315e19e9ac3f4fdd3051102ca87b6ddff5b33849f522288cff7 \ - --hash=sha256:b21878e5df74dca91b3f3cf0b0597fa6b6aed7bf5cde9a1b10641994faa353bf +pymilvus==2.5.18 \ + --hash=sha256:1b78badcfa8d62db7d0b29193fc0422e4676873ff1c745a9d75c2c885d7a7e32 \ + --hash=sha256:9e517076068e98dac51c018bc0dfe1f651d936154e2e2d9ad6c7b3dab1164e2d # via feast (setup.py) pymysql==1.1.2 \ --hash=sha256:4961d3e165614ae65014e361811a724e2044ad3ea3739de9903ae7c21f539f03 \ @@ -2453,7 +2443,6 @@ pytz==2025.2 \ --hash=sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3 \ --hash=sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00 # via - # ibis-framework # pandas # snowflake-connector-python pyyaml==6.0.3 \ @@ -2533,7 +2522,6 @@ pyyaml==6.0.3 \ # via # feast (setup.py) # dask - # ibis-substrait # kubernetes # uvicorn redis==4.6.0 \ @@ -2565,9 +2553,9 @@ requests-oauthlib==2.0.0 \ # via # google-auth-oauthlib # kubernetes -rich==13.9.4 \ - --hash=sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098 \ - --hash=sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90 +rich==14.2.0 \ + --hash=sha256:73ff50c7c0c1c77c8243079283f4edb376f0f6442433aecb8ce7e6d0b92d1fe4 \ + --hash=sha256:76bc51fe2e57d2b1be1f96c524b890b816e334ab4c1e45888799bfaab0021edd # via # fastapi-mcp # ibis-framework @@ -2844,13 +2832,13 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:fd93c6f5d65f254ceabe97548c709e073d6da9883343adaa51bf1a913ce93f8e \ --hash=sha256:fe187fc31a54d7fd90352f34e8c008cf3ad5d064d08fedd3de2e8df83eb4a1cf # via feast (setup.py) -sqlglot==25.20.2 \ - --hash=sha256:169fe8308dd70d7bd40117b2221b62bdc7c4e2ea8eb07394b2a6146cdedf05ab \ - --hash=sha256:cdbfd7ce3f2f39f32bd7b4c23fd9e0fd261636a6b14285b914e8def25fd0a567 +sqlglot==28.6.0 \ + --hash=sha256:8af76e825dc8456a49f8ce049d69bbfcd116655dda3e53051754789e2edf8eba \ + --hash=sha256:8c0a432a6745c6c7965bbe99a17667c5a3ca1d524a54b31997cf5422b1727f6a # via ibis-framework -sse-starlette==3.1.1 \ - --hash=sha256:bb38f71ae74cfd86b529907a9fda5632195dfa6ae120f214ea4c890c7ee9d436 \ - --hash=sha256:bffa531420c1793ab224f63648c059bcadc412bf9fdb1301ac8de1cf9a67b7fb +sse-starlette==3.1.2 \ + --hash=sha256:55eff034207a83a0eb86de9a68099bd0157838f0b8b999a1b742005c71e33618 \ + --hash=sha256:cd800dd349f4521b317b9391d3796fa97b71748a4da9b9e00aafab32dda375c8 # via mcp starlette==0.50.0 \ --hash=sha256:9e5391843ec9b6e472eed1365a78c8098cfceb7a74bfd4d6b1c0c0095efb3bca \ @@ -2859,12 +2847,6 @@ starlette==0.50.0 \ # fastapi # mcp # sse-starlette -substrait==0.24.2 \ - --hash=sha256:743cc352e96b0927b2cd37cd5a8fdac0a96a68df9600bd104fc36aebd222a836 \ - --hash=sha256:d1d475833566fa9d67eed3273456883c0568486ccced92b524b31709d2817e19 - # via - # feast (setup.py) - # ibis-substrait tabulate==0.9.0 \ --hash=sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c \ --hash=sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f @@ -2877,49 +2859,54 @@ toml==0.10.2 \ --hash=sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b \ --hash=sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f # via feast (setup.py) -tomli==2.3.0 \ - --hash=sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456 \ - --hash=sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845 \ - --hash=sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999 \ - --hash=sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0 \ - --hash=sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878 \ - --hash=sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf \ - --hash=sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3 \ - --hash=sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be \ - --hash=sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52 \ - --hash=sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b \ - --hash=sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67 \ - --hash=sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549 \ - --hash=sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba \ - --hash=sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22 \ - --hash=sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c \ - --hash=sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f \ - --hash=sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6 \ - --hash=sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba \ - --hash=sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45 \ - --hash=sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f \ - --hash=sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77 \ - --hash=sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606 \ - --hash=sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441 \ - --hash=sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0 \ - --hash=sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f \ - --hash=sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530 \ - --hash=sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05 \ - --hash=sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8 \ - --hash=sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005 \ - --hash=sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879 \ - --hash=sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae \ - --hash=sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc \ - --hash=sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b \ - --hash=sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b \ - --hash=sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e \ - --hash=sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf \ - --hash=sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac \ - --hash=sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8 \ - --hash=sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b \ - --hash=sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf \ - --hash=sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463 \ - --hash=sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876 +tomli==2.4.0 \ + --hash=sha256:0408e3de5ec77cc7f81960c362543cbbd91ef883e3138e81b729fc3eea5b9729 \ + --hash=sha256:0dc56fef0e2c1c470aeac5b6ca8cc7b640bb93e92d9803ddaf9ea03e198f5b0b \ + --hash=sha256:0e0fe8a0b8312acf3a88077a0802565cb09ee34107813bba1c7cd591fa6cfc8d \ + --hash=sha256:0f2e3955efea4d1cfbcb87bc321e00dc08d2bcb737fd1d5e398af111d86db5df \ + --hash=sha256:133e93646ec4300d651839d382d63edff11d8978be23da4cc106f5a18b7d0576 \ + --hash=sha256:1b168f2731796b045128c45982d3a4874057626da0e2ef1fdd722848b741361d \ + --hash=sha256:1c8a885b370751837c029ef9bc014f27d80840e48bac415f3412e6593bbc18c1 \ + --hash=sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a \ + --hash=sha256:1fb2945cbe303b1419e2706e711b7113da57b7db31ee378d08712d678a34e51e \ + --hash=sha256:20cedb4ee43278bc4f2fee6cb50daec836959aadaf948db5172e776dd3d993fc \ + --hash=sha256:20ffd184fb1df76a66e34bd1b36b4a4641bd2b82954befa32fe8163e79f1a702 \ + --hash=sha256:26ab906a1eb794cd4e103691daa23d95c6919cc2fa9160000ac02370cc9dd3f6 \ + --hash=sha256:2add28aacc7425117ff6364fe9e06a183bb0251b03f986df0e78e974047571fd \ + --hash=sha256:2b1e3b80e1d5e52e40e9b924ec43d81570f0e7d09d11081b797bc4692765a3d4 \ + --hash=sha256:31d556d079d72db7c584c0627ff3a24c5d3fb4f730221d3444f3efb1b2514776 \ + --hash=sha256:36b9d05b51e65b254ea6c2585b59d2c4cb91c8a3d91d0ed0f17591a29aaea54a \ + --hash=sha256:39b0b5d1b6dd03684b3fb276407ebed7090bbec989fa55838c98560c01113b66 \ + --hash=sha256:3cf226acb51d8f1c394c1b310e0e0e61fecdd7adcb78d01e294ac297dd2e7f87 \ + --hash=sha256:3d895d56bd3f82ddd6faaff993c275efc2ff38e52322ea264122d72729dca2b2 \ + --hash=sha256:413540dce94673591859c4c6f794dfeaa845e98bf35d72ed59636f869ef9f86f \ + --hash=sha256:43e685b9b2341681907759cf3a04e14d7104b3580f808cfde1dfdb60ada85475 \ + --hash=sha256:4cbcb367d44a1f0c2be408758b43e1ffb5308abe0ea222897d6bfc8e8281ef2f \ + --hash=sha256:551e321c6ba03b55676970b47cb1b73f14a0a4dce6a3e1a9458fd6d921d72e95 \ + --hash=sha256:5572e41282d5268eb09a697c89a7bee84fae66511f87533a6f88bd2f7b652da9 \ + --hash=sha256:5aa48d7c2356055feef06a43611fc401a07337d5b006be13a30f6c58f869e3c3 \ + --hash=sha256:5b5807f3999fb66776dbce568cc9a828544244a8eb84b84b9bafc080c99597b9 \ + --hash=sha256:5e3f639a7a8f10069d0e15408c0b96a2a828cfdec6fca05296ebcdcc28ca7c76 \ + --hash=sha256:685306e2cc7da35be4ee914fd34ab801a6acacb061b6a7abca922aaf9ad368da \ + --hash=sha256:75c2f8bbddf170e8effc98f5e9084a8751f8174ea6ccf4fca5398436e0320bc8 \ + --hash=sha256:7b438885858efd5be02a9a133caf5812b8776ee0c969fea02c45e8e3f296ba51 \ + --hash=sha256:7d49c66a7d5e56ac959cb6fc583aff0651094ec071ba9ad43df785abc2320d86 \ + --hash=sha256:7d6d9a4aee98fac3eab4952ad1d73aee87359452d1c086b5ceb43ed02ddb16b8 \ + --hash=sha256:84d081fbc252d1b6a982e1870660e7330fb8f90f676f6e78b052ad4e64714bf0 \ + --hash=sha256:8768715ffc41f0008abe25d808c20c3d990f42b6e2e58305d5da280ae7d1fa3b \ + --hash=sha256:920b1de295e72887bafa3ad9f7a792f811847d57ea6b1215154030cf131f16b1 \ + --hash=sha256:9a08144fa4cba33db5255f9b74f0b89888622109bd2776148f2597447f92a94e \ + --hash=sha256:a26d7ff68dfdb9f87a016ecfd1e1c2bacbe3108f4e0f8bcd2228ef9a766c787d \ + --hash=sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c \ + --hash=sha256:b5ef256a3fd497d4973c11bf142e9ed78b150d36f5773f1ca6088c230ffc5867 \ + --hash=sha256:b6c78bdf37764092d369722d9946cb65b8767bfa4110f902a1b2542d8d173c8a \ + --hash=sha256:bbb1b10aa643d973366dc2cb1ad94f99c1726a02343d43cbc011edbfac579e7c \ + --hash=sha256:c084ad935abe686bd9c898e62a02a19abfc9760b5a79bc29644463eaf2840cb0 \ + --hash=sha256:c73add4bb52a206fd0c0723432db123c0c75c280cbd67174dd9d2db228ebb1b4 \ + --hash=sha256:cae9c19ed12d4e8f3ebf46d1a75090e4c0dc16271c5bce1c833ac168f08fb614 \ + --hash=sha256:d20b797a5c1ad80c516e41bc1fb0443ddb5006e9aaa7bda2d71978346aeb9132 \ + --hash=sha256:d3d1654e11d724760cdb37a3d7691f0be9db5fbdaef59c9f532aabf87006dbaa \ + --hash=sha256:d878f2a6707cc9d53a1be1414bbb419e629c3d6e67f69230217bb663e76b5087 # via # fastapi-mcp # hatch-fancy-pypi-readme @@ -2929,15 +2916,15 @@ tomli==2.3.0 \ # scikit-build-core # setuptools-scm # sphinx -tomlkit==0.13.3 \ - --hash=sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1 \ - --hash=sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0 +tomlkit==0.14.0 \ + --hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 \ + --hash=sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064 # via # poetry-dynamic-versioning # snowflake-connector-python -toolz==0.12.1 \ - --hash=sha256:d22731364c07d72eea0a0ad45bafb2c2937ab6fd38a3507bf55eae8744aa7d85 \ - --hash=sha256:ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d +toolz==1.1.0 \ + --hash=sha256:15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8 \ + --hash=sha256:27a5c770d068c110d9ed9323f24f1543e83b2f300a687b7891c1a6d56b697b5b # via # dask # ibis-framework @@ -2948,17 +2935,17 @@ tqdm==4.67.1 \ # via # feast (setup.py) # milvus-lite -trove-classifiers==2025.12.1.14 \ - --hash=sha256:a74f0400524fc83620a9be74a07074b5cbe7594fd4d97fd4c2bfde625fdc1633 \ - --hash=sha256:a8206978ede95937b9959c3aff3eb258bbf7b07dff391ddd4ea7e61f316635ab +trove-classifiers==2026.1.12.15 \ + --hash=sha256:832a7e89ccc43b64b89f8f9d9150c069ebcd17d2dc68279bc00bb53f2a9ae112 \ + --hash=sha256:8832dfbc226fc4df986666b9cb3a018818b1498aeb79f5f66a31a918b47a98f1 # via hatchling typeguard==4.4.4 \ --hash=sha256:3a7fd2dffb705d4d0efaed4306a704c89b9dee850b688f060a8b1615a79e5f74 \ --hash=sha256:b5f562281b6bfa1f5492470464730ef001646128b180769880468bd84b68b09e # via feast (setup.py) -typer==0.21.0 \ - --hash=sha256:c79c01ca6b30af9fd48284058a7056ba0d3bf5cf10d0ff3d0c5b11b68c258ac6 \ - --hash=sha256:c87c0d2b6eee3b49c5c64649ec92425492c14488096dfbc8a0c2799b2f6f9c53 +typer==0.21.1 \ + --hash=sha256:7985e89081c636b88d172c2ee0cfe33c253160994d47bdfdc302defd7d1f1d01 \ + --hash=sha256:ea835607cd752343b6b2b7ce676893e5a0324082268b48f27aa058bdb7d2145d # via fastapi-mcp types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ @@ -2987,7 +2974,6 @@ typing-extensions==4.15.0 \ # pydantic-core # pyopenssl # referencing - # rich # snowflake-connector-python # sqlalchemy # starlette @@ -3005,7 +2991,9 @@ typing-inspection==0.4.2 \ tzdata==2025.3 \ --hash=sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1 \ --hash=sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7 - # via pandas + # via + # ibis-framework + # pandas ujson==5.11.0 \ --hash=sha256:0180a480a7d099082501cad1fe85252e4d4bf926b40960fb3d9e87a3a6fbbc80 \ --hash=sha256:04c41afc195fd477a59db3a84d5b83a871bd648ef371cf8c6f43072d89144eef \ @@ -3277,76 +3265,68 @@ websocket-client==1.9.0 \ --hash=sha256:9e813624b6eb619999a97dc7958469217c3176312b3a16a4bd1bc7e08a46ec98 \ --hash=sha256:af248a825037ef591efbf6ed20cc5faa03d3b47b9e5a2230a529eeee1c1fc3ef # via kubernetes -websockets==15.0.1 \ - --hash=sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2 \ - --hash=sha256:0a34631031a8f05657e8e90903e656959234f3a04552259458aac0b0f9ae6fd9 \ - --hash=sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5 \ - --hash=sha256:0c9e74d766f2818bb95f84c25be4dea09841ac0f734d1966f415e4edfc4ef1c3 \ - --hash=sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8 \ - --hash=sha256:0fdfe3e2a29e4db3659dbd5bbf04560cea53dd9610273917799f1cde46aa725e \ - --hash=sha256:1009ee0c7739c08a0cd59de430d6de452a55e42d6b522de7aa15e6f67db0b8e1 \ - --hash=sha256:1234d4ef35db82f5446dca8e35a7da7964d02c127b095e172e54397fb6a6c256 \ - --hash=sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85 \ - --hash=sha256:2034693ad3097d5355bfdacfffcbd3ef5694f9718ab7f29c29689a9eae841880 \ - --hash=sha256:21c1fa28a6a7e3cbdc171c694398b6df4744613ce9b36b1a498e816787e28123 \ - --hash=sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375 \ - --hash=sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065 \ - --hash=sha256:363c6f671b761efcb30608d24925a382497c12c506b51661883c3e22337265ed \ - --hash=sha256:39c1fec2c11dc8d89bba6b2bf1556af381611a173ac2b511cf7231622058af41 \ - --hash=sha256:3b1ac0d3e594bf121308112697cf4b32be538fb1444468fb0a6ae4feebc83411 \ - --hash=sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597 \ - --hash=sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f \ - --hash=sha256:3d00075aa65772e7ce9e990cab3ff1de702aa09be3940d1dc88d5abf1ab8a09c \ - --hash=sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3 \ - --hash=sha256:47819cea040f31d670cc8d324bb6435c6f133b8c7a19ec3d61634e62f8d8f9eb \ - --hash=sha256:47b099e1f4fbc95b701b6e85768e1fcdaf1630f3cbe4765fa216596f12310e2e \ - --hash=sha256:4a9fac8e469d04ce6c25bb2610dc535235bd4aa14996b4e6dbebf5e007eba5ee \ - --hash=sha256:4b826973a4a2ae47ba357e4e82fa44a463b8f168e1ca775ac64521442b19e87f \ - --hash=sha256:4c2529b320eb9e35af0fa3016c187dffb84a3ecc572bcee7c3ce302bfeba52bf \ - --hash=sha256:54479983bd5fb469c38f2f5c7e3a24f9a4e70594cd68cd1fa6b9340dadaff7cf \ - --hash=sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4 \ - --hash=sha256:5756779642579d902eed757b21b0164cd6fe338506a8083eb58af5c372e39d9a \ - --hash=sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665 \ - --hash=sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22 \ - --hash=sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675 \ - --hash=sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4 \ - --hash=sha256:5df592cd503496351d6dc14f7cdad49f268d8e618f80dce0cd5a36b93c3fc08d \ - --hash=sha256:5f4c04ead5aed67c8a1a20491d54cdfba5884507a48dd798ecaf13c74c4489f5 \ - --hash=sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65 \ - --hash=sha256:66dd88c918e3287efc22409d426c8f729688d89a0c587c88971a0faa2c2f3792 \ - --hash=sha256:678999709e68425ae2593acf2e3ebcbcf2e69885a5ee78f9eb80e6e371f1bf57 \ - --hash=sha256:67f2b6de947f8c757db2db9c71527933ad0019737ec374a8a6be9a956786aaf9 \ - --hash=sha256:693f0192126df6c2327cce3baa7c06f2a117575e32ab2308f7f8216c29d9e2e3 \ - --hash=sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151 \ - --hash=sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d \ - --hash=sha256:76d1f20b1c7a2fa82367e04982e708723ba0e7b8d43aa643d3dcd404d74f1475 \ - --hash=sha256:7f493881579c90fc262d9cdbaa05a6b54b3811c2f300766748db79f098db9940 \ - --hash=sha256:823c248b690b2fd9303ba00c4f66cd5e2d8c3ba4aa968b2779be9532a4dad431 \ - --hash=sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee \ - --hash=sha256:8dd8327c795b3e3f219760fa603dcae1dcc148172290a8ab15158cf85a953413 \ - --hash=sha256:8fdc51055e6ff4adeb88d58a11042ec9a5eae317a0a53d12c062c8a8865909e8 \ - --hash=sha256:a625e06551975f4b7ea7102bc43895b90742746797e2e14b70ed61c43a90f09b \ - --hash=sha256:abdc0c6c8c648b4805c5eacd131910d2a7f6455dfd3becab248ef108e89ab16a \ - --hash=sha256:ac017dd64572e5c3bd01939121e4d16cf30e5d7e110a119399cf3133b63ad054 \ - --hash=sha256:ac1e5c9054fe23226fb11e05a6e630837f074174c4c2f0fe442996112a6de4fb \ - --hash=sha256:ac60e3b188ec7574cb761b08d50fcedf9d77f1530352db4eef1707fe9dee7205 \ - --hash=sha256:b359ed09954d7c18bbc1680f380c7301f92c60bf924171629c5db97febb12f04 \ - --hash=sha256:b7643a03db5c95c799b89b31c036d5f27eeb4d259c798e878d6937d71832b1e4 \ - --hash=sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa \ - --hash=sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9 \ - --hash=sha256:cad21560da69f4ce7658ca2cb83138fb4cf695a2ba3e475e0559e05991aa8122 \ - --hash=sha256:d08eb4c2b7d6c41da6ca0600c077e93f5adcfd979cd777d747e9ee624556da4b \ - --hash=sha256:d50fd1ee42388dcfb2b3676132c78116490976f1300da28eb629272d5d93e905 \ - --hash=sha256:d591f8de75824cbb7acad4e05d2d710484f15f29d4a915092675ad3456f11770 \ - --hash=sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe \ - --hash=sha256:d63efaa0cd96cf0c5fe4d581521d9fa87744540d4bc999ae6e08595a1014b45b \ - --hash=sha256:d99e5546bf73dbad5bf3547174cd6cb8ba7273062a23808ffea025ecb1cf8562 \ - --hash=sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561 \ - --hash=sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215 \ - --hash=sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931 \ - --hash=sha256:f29d80eb9a9263b8d109135351caf568cc3f80b9928bccde535c235de55c22d9 \ - --hash=sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f \ - --hash=sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7 +websockets==16.0 \ + --hash=sha256:0298d07ee155e2e9fda5be8a9042200dd2e3bb0b8a38482156576f863a9d457c \ + --hash=sha256:04cdd5d2d1dacbad0a7bf36ccbcd3ccd5a30ee188f2560b7a62a30d14107b31a \ + --hash=sha256:08d7af67b64d29823fed316505a89b86705f2b7981c07848fb5e3ea3020c1abe \ + --hash=sha256:152284a83a00c59b759697b7f9e9cddf4e3c7861dd0d964b472b70f78f89e80e \ + --hash=sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec \ + --hash=sha256:19c4dc84098e523fd63711e563077d39e90ec6702aff4b5d9e344a60cb3c0cb1 \ + --hash=sha256:1c1b30e4f497b0b354057f3467f56244c603a79c0d1dafce1d16c283c25f6e64 \ + --hash=sha256:2b9f1e0d69bc60a4a87349d50c09a037a2607918746f07de04df9e43252c77a3 \ + --hash=sha256:31a52addea25187bde0797a97d6fc3d2f92b6f72a9370792d65a6e84615ac8a8 \ + --hash=sha256:32da954ffa2814258030e5a57bc73a3635463238e797c7375dc8091327434206 \ + --hash=sha256:335c23addf3d5e6a8633f9f8eda77efad001671e80b95c491dd0924587ece0b3 \ + --hash=sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156 \ + --hash=sha256:349f83cd6c9a415428ee1005cadb5c2c56f4389bc06a9af16103c3bc3dcc8b7d \ + --hash=sha256:37b31c1623c6605e4c00d466c9d633f9b812ea430c11c8a278774a1fde1acfa9 \ + --hash=sha256:417b28978cdccab24f46400586d128366313e8a96312e4b9362a4af504f3bbad \ + --hash=sha256:485c49116d0af10ac698623c513c1cc01c9446c058a4e61e3bf6c19dff7335a2 \ + --hash=sha256:4a1aba3340a8dca8db6eb5a7986157f52eb9e436b74813764241981ca4888f03 \ + --hash=sha256:50f23cdd8343b984957e4077839841146f67a3d31ab0d00e6b824e74c5b2f6e8 \ + --hash=sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230 \ + --hash=sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8 \ + --hash=sha256:5569417dc80977fc8c2d43a86f78e0a5a22fee17565d78621b6bb264a115d4ea \ + --hash=sha256:569d01a4e7fba956c5ae4fc988f0d4e187900f5497ce46339c996dbf24f17641 \ + --hash=sha256:583b7c42688636f930688d712885cf1531326ee05effd982028212ccc13e5957 \ + --hash=sha256:5a4b4cc550cb665dd8a47f868c8d04c8230f857363ad3c9caf7a0c3bf8c61ca6 \ + --hash=sha256:5f451484aeb5cafee1ccf789b1b66f535409d038c56966d6101740c1614b86c6 \ + --hash=sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5 \ + --hash=sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f \ + --hash=sha256:71c989cbf3254fbd5e84d3bff31e4da39c43f884e64f2551d14bb3c186230f00 \ + --hash=sha256:781caf5e8eee67f663126490c2f96f40906594cb86b408a703630f95550a8c3e \ + --hash=sha256:7be95cfb0a4dae143eaed2bcba8ac23f4892d8971311f1b06f3c6b78952ee70b \ + --hash=sha256:7d837379b647c0c4c2355c2499723f82f1635fd2c26510e1f587d89bc2199e72 \ + --hash=sha256:86890e837d61574c92a97496d590968b23c2ef0aeb8a9bc9421d174cd378ae39 \ + --hash=sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9 \ + --hash=sha256:8b6e209ffee39ff1b6d0fa7bfef6de950c60dfb91b8fcead17da4ee539121a79 \ + --hash=sha256:8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0 \ + --hash=sha256:8d7f0659570eefb578dacde98e24fb60af35350193e4f56e11190787bee77dac \ + --hash=sha256:8e1dab317b6e77424356e11e99a432b7cb2f3ec8c5ab4dabbcee6add48f72b35 \ + --hash=sha256:8ff32bb86522a9e5e31439a58addbb0166f0204d64066fb955265c4e214160f0 \ + --hash=sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5 \ + --hash=sha256:9b5aca38b67492ef518a8ab76851862488a478602229112c4b0d58d63a7a4d5c \ + --hash=sha256:a069d734c4a043182729edd3e9f247c3b2a4035415a9172fd0f1b71658a320a8 \ + --hash=sha256:a0b31e0b424cc6b5a04b8838bbaec1688834b2383256688cf47eb97412531da1 \ + --hash=sha256:a35539cacc3febb22b8f4d4a99cc79b104226a756aa7400adc722e83b0d03244 \ + --hash=sha256:a5e18a238a2b2249c9a9235466b90e96ae4795672598a58772dd806edc7ac6d3 \ + --hash=sha256:a653aea902e0324b52f1613332ddf50b00c06fdaf7e92624fbf8c77c78fa5767 \ + --hash=sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a \ + --hash=sha256:af80d74d4edfa3cb9ed973a0a5ba2b2a549371f8a741e0800cb07becdd20f23d \ + --hash=sha256:b14dc141ed6d2dde437cddb216004bcac6a1df0935d79656387bd41632ba0bbd \ + --hash=sha256:b784ca5de850f4ce93ec85d3269d24d4c82f22b7212023c974c401d4980ebc5e \ + --hash=sha256:bc59589ab64b0022385f429b94697348a6a234e8ce22544e3681b2e9331b5944 \ + --hash=sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82 \ + --hash=sha256:c0ee0e63f23914732c6d7e0cce24915c48f3f1512ec1d079ed01fc629dab269d \ + --hash=sha256:caab51a72c51973ca21fa8a18bd8165e1a0183f1ac7066a182ff27107b71e1a4 \ + --hash=sha256:d6297ce39ce5c2e6feb13c1a996a2ded3b6832155fcfc920265c76f24c7cceb5 \ + --hash=sha256:daa3b6ff70a9241cf6c7fc9e949d41232d9d7d26fd3522b1ad2b4d62487e9904 \ + --hash=sha256:df57afc692e517a85e65b72e165356ed1df12386ecb879ad5693be08fac65dde \ + --hash=sha256:e0334872c0a37b606418ac52f6ab9cfd17317ac26365f7f65e203e2d0d0d359f \ + --hash=sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c \ + --hash=sha256:eaded469f5e5b7294e2bdca0ab06becb6756ea86894a47806456089298813c89 \ + --hash=sha256:f4a32d1bd841d4bcbffdcb3d2ce50c09c3909fbead375ab28d0181af89fd04da \ + --hash=sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4 # via uvicorn wrapt==1.17.3 \ --hash=sha256:02b551d101f31694fc785e58e0720ef7d9a10c4e62c1c9358ce6f63f23e30a56 \ diff --git a/sdk/python/requirements/py3.10-requirements.txt b/sdk/python/requirements/py3.10-requirements.txt index bf89b08b92a..fd39a4f3cd9 100644 --- a/sdk/python/requirements/py3.10-requirements.txt +++ b/sdk/python/requirements/py3.10-requirements.txt @@ -8,9 +8,9 @@ annotated-types==0.7.0 \ --hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 \ --hash=sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89 # via pydantic -anyio==4.12.0 \ - --hash=sha256:73c693b567b0c55130c104d0b43a9baf3aa6a31fc6110116509f27bf75e21ec0 \ - --hash=sha256:dad2376a628f98eeca4881fc56cd06affd18f659b17a747d3ff0307ced94b1bb +anyio==4.12.1 \ + --hash=sha256:41cfcc3a4c85d3f05c932da7c26d0201ac36f72abd4435ba90d0464a3ffed703 \ + --hash=sha256:d405828884fc140aa80a3c667b8beed277f1dfedec42ba031bd6ac3db606ab6c # via # starlette # watchfiles @@ -20,13 +20,13 @@ attrs==25.4.0 \ # via # jsonschema # referencing -bigtree==1.0.4 \ - --hash=sha256:e4af0c5bc0d2cd72e18442965e4509f642b16a0de65db6d0ec116e30f959010c \ - --hash=sha256:f58a3238bb9b1142d893c9de4921bfd18d435427c75e0c168dd580eabf6dc7fd +bigtree==1.1.0 \ + --hash=sha256:3f1ff63d2d66d31bf19855ddda8884637edf8dd1fc1aa118cf3a750580ece48b \ + --hash=sha256:f54f99d842732c91cce39c596a3755a2e8325b1cab5bc6876f5b15bd3942081c # via feast (setup.py) -certifi==2025.11.12 \ - --hash=sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b \ - --hash=sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316 +certifi==2026.1.4 \ + --hash=sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c \ + --hash=sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120 # via requests charset-normalizer==3.4.4 \ --hash=sha256:027f6de494925c0ab2a55eab46ae5129951638a49a34d87f4c3eda90f696b4ad \ @@ -174,9 +174,9 @@ fastapi==0.128.0 \ --hash=sha256:1cc179e1cef10a6be60ffe429f79b829dce99d8de32d7acb7e6c8dfdf7f2645a \ --hash=sha256:aebd93f9716ee3b4f4fcfe13ffb7cf308d99c9f3ab5622d8877441072561582d # via feast (setup.py) -fsspec==2025.12.0 \ - --hash=sha256:8bf1fe301b7d8acfa6e8571e3b1c3d158f909666642431cc78a1b7b4dbc5ec5b \ - --hash=sha256:c505de011584597b1060ff778bb664c1bc022e87921b0e4f10cc9c44f9635973 +fsspec==2026.1.0 \ + --hash=sha256:cb76aa913c2285a3b49bdd5fc55b1d7c708d7208126b60f2eb8194fe1b4cbdcc \ + --hash=sha256:e987cb0496a0d81bba3a9d1cee62922fb395e7d4c3b575e57f547953334fe07b # via dask gunicorn==23.0.0 \ --hash=sha256:ec400d38950de4dfd418cff8328b2c8faed0edb0d517d3394e457c317908ca4d \ @@ -247,91 +247,91 @@ jinja2==3.1.6 \ --hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \ --hash=sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67 # via feast (setup.py) -jsonschema==4.25.1 \ - --hash=sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63 \ - --hash=sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85 +jsonschema==4.26.0 \ + --hash=sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326 \ + --hash=sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce # via feast (setup.py) jsonschema-specifications==2025.9.1 \ --hash=sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe \ --hash=sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d # via jsonschema -librt==0.7.5 \ - --hash=sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee \ - --hash=sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1 \ - --hash=sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4 \ - --hash=sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899 \ - --hash=sha256:0e2bf8f91093fac43e3eaebacf777f12fd539dce9ec5af3efc6d8424e96ccd49 \ - --hash=sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d \ - --hash=sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760 \ - --hash=sha256:191cbd42660446d67cf7a95ac7bfa60f49b8b3b0417c64f216284a1d86fc9335 \ - --hash=sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8 \ - --hash=sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2 \ - --hash=sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec \ - --hash=sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b \ - --hash=sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0 \ - --hash=sha256:39183abee670bc37b85f11e86c44a9cad1ed6efa48b580083e89ecee13dd9717 \ - --hash=sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325 \ - --hash=sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45 \ - --hash=sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d \ - --hash=sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233 \ - --hash=sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d \ - --hash=sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544 \ - --hash=sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802 \ - --hash=sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2 \ - --hash=sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d \ - --hash=sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f \ - --hash=sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169 \ - --hash=sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe \ - --hash=sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982 \ - --hash=sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2 \ - --hash=sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa \ - --hash=sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4 \ - --hash=sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4 \ - --hash=sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57 \ - --hash=sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26 \ - --hash=sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361 \ - --hash=sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad \ - --hash=sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e \ - --hash=sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf \ - --hash=sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f \ - --hash=sha256:8dcae24de1bc9da93aa689cb6313c70e776d7cea2fcf26b9b6160fedfe6bd9af \ - --hash=sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2 \ - --hash=sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89 \ - --hash=sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904 \ - --hash=sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6 \ - --hash=sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276 \ - --hash=sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e \ - --hash=sha256:a9eacbf983319b26b5f340a2e0cd47ac1ee4725a7f3a72fd0f15063c934b69d6 \ - --hash=sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409 \ - --hash=sha256:af69d9e159575e877c7546d1ee817b4ae089aa221dd1117e20c24ad8dc8659c7 \ - --hash=sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a \ - --hash=sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4 \ - --hash=sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775 \ - --hash=sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203 \ - --hash=sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419 \ - --hash=sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5 \ - --hash=sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023 \ - --hash=sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b \ - --hash=sha256:cdb001a1a0e4f41e613bca2c0fc147fc8a7396f53fc94201cbfd8ec7cd69ca4b \ - --hash=sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d \ - --hash=sha256:d2cc7d187e8c6e9b7bdbefa9697ce897a704ea7a7ce844f2b4e0e2aa07ae51d3 \ - --hash=sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e \ - --hash=sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a \ - --hash=sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b \ - --hash=sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db \ - --hash=sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd \ - --hash=sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa \ - --hash=sha256:df2e210400b28e50994477ebf82f055698c79797b6ee47a1669d383ca33263e1 \ - --hash=sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805 \ - --hash=sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a \ - --hash=sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25 \ - --hash=sha256:ea1b60b86595a5dc1f57b44a801a1c4d8209c0a69518391d349973a4491408e6 \ - --hash=sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b \ - --hash=sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5 \ - --hash=sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416 \ - --hash=sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc \ - --hash=sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7 \ - --hash=sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96 +librt==0.7.7 \ + --hash=sha256:067be973d90d9e319e6eb4ee2a9b9307f0ecd648b8a9002fa237289a4a07a9e7 \ + --hash=sha256:0996c83b1cb43c00e8c87835a284f9057bc647abd42b5871e5f941d30010c832 \ + --hash=sha256:0ecce0544d3db91a40f8b57ae26928c02130a997b540f908cefd4d279d6c5848 \ + --hash=sha256:10c8fb9966f84737115513fecbaf257f9553d067a7dd45a69c2c7e5339e6a8dc \ + --hash=sha256:142c2cd91794b79fd0ce113bd658993b7ede0fe93057668c2f98a45ca00b7e91 \ + --hash=sha256:14ef0f4ac3728ffd85bfc58e2f2f48fb4ef4fa871876f13a73a7381d10a9f77c \ + --hash=sha256:1908c3e5a5ef86b23391448b47759298f87f997c3bd153a770828f58c2bb4630 \ + --hash=sha256:1bcd79be209313b270b0e1a51c67ae1af28adad0e0c7e84c3ad4b5cb57aaa75b \ + --hash=sha256:23d2299ed007812cccc1ecef018db7d922733382561230de1f3954db28433977 \ + --hash=sha256:23daa1ab0512bafdd677eb1bfc9611d8ffbe2e328895671e64cb34166bc1b8c8 \ + --hash=sha256:2567cb48dc03e5b246927ab35cbb343376e24501260a9b5e30b8e255dca0d1d2 \ + --hash=sha256:264720fc288c86039c091a4ad63419a5d7cabbf1c1c9933336a957ed2483e570 \ + --hash=sha256:2987cf827011907d3dfd109f1be0d61e173d68b1270107bb0e89f2fca7f2ed6b \ + --hash=sha256:2a85a1fc4ed11ea0eb0a632459ce004a2d14afc085a50ae3463cd3dfe1ce43fc \ + --hash=sha256:3d1fe2e8df3268dd6734dba33ededae72ad5c3a859b9577bc00b715759c5aaab \ + --hash=sha256:4353ee891a1834567e0302d4bd5e60f531912179578c36f3d0430f8c5e16b456 \ + --hash=sha256:44d63ce643f34a903f09ff7ca355aae019a3730c7afd6a3c037d569beeb5d151 \ + --hash=sha256:467dbd7443bda08338fc8ad701ed38cef48194017554f4c798b0a237904b3f99 \ + --hash=sha256:4862cb2c702b1f905c0503b72d9d4daf65a7fdf5a9e84560e563471e57a56949 \ + --hash=sha256:4bf3cc46d553693382d2abf5f5bd493d71bb0f50a7c0beab18aa13a5545c8900 \ + --hash=sha256:4dcee2f921a8632636d1c37f1bbdb8841d15666d119aa61e5399c5268e7ce02e \ + --hash=sha256:50d1d1ee813d2d1a3baf2873634ba506b263032418d16287c92ec1cc9c1a00cb \ + --hash=sha256:5335890fea9f9e6c4fdf8683061b9ccdcbe47c6dc03ab8e9b68c10acf78be78d \ + --hash=sha256:558a9e5a6f3cc1e20b3168fb1dc802d0d8fa40731f6e9932dcc52bbcfbd37111 \ + --hash=sha256:5e419e0db70991b6ba037b70c1d5bbe92b20ddf82f31ad01d77a347ed9781398 \ + --hash=sha256:6066c638cdf85ff92fc6f932d2d73c93a0e03492cdfa8778e6d58c489a3d7259 \ + --hash=sha256:6ae8aec43117a645a31e5f60e9e3a0797492e747823b9bda6972d521b436b4e8 \ + --hash=sha256:6b6f8ea465524aa4c7420c7cc4ca7d46fe00981de8debc67b1cc2e9957bb5b9d \ + --hash=sha256:7b16ccaeff0ed4355dfb76fe1ea7a5d6d03b5ad27f295f77ee0557bc20a72495 \ + --hash=sha256:7d13cc340b3b82134f8038a2bfe7137093693dcad8ba5773da18f95ad6b77a8a \ + --hash=sha256:7ef28f2e7a016b29792fe0a2dd04dec75725b32a1264e390c366103f834a9c3a \ + --hash=sha256:8185c8497d45164e256376f9da5aed2bb26ff636c798c9dabe313b90e9f25b28 \ + --hash=sha256:81d957b069fed1890953c3b9c3895c7689960f233eea9a1d9607f71ce7f00b2c \ + --hash=sha256:86f86b3b785487c7760247bcdac0b11aa8bf13245a13ed05206286135877564b \ + --hash=sha256:8e92c8de62b40bfce91d5e12c6e8b15434da268979b1af1a6589463549d491e6 \ + --hash=sha256:8f2f8dcf5ab9f80fb970c6fd780b398efb2f50c1962485eb8d3ab07788595a48 \ + --hash=sha256:8f4a0b0a3c86ba9193a8e23bb18f100d647bf192390ae195d84dfa0a10fb6244 \ + --hash=sha256:8f7a74cf3a80f0c3b0ec75b0c650b2f0a894a2cec57ef75f6f72c1e82cdac61d \ + --hash=sha256:955c62571de0b181d9e9e0a0303c8bc90d47670a5eff54cf71bf5da61d1899cf \ + --hash=sha256:983de36b5a83fe9222f4f7dcd071f9b1ac6f3f17c0af0238dadfb8229588f890 \ + --hash=sha256:9b15e5d17812d4d629ff576699954f74e2cc24a02a4fc401882dd94f81daba45 \ + --hash=sha256:9b4346b1225be26def3ccc6c965751c74868f0578cbcba293c8ae9168483d811 \ + --hash=sha256:9b5fb1ecb2c35362eab2dbd354fd1efa5a8440d3e73a68be11921042a0edc0ff \ + --hash=sha256:a10b8eebdaca6e9fdbaf88b5aefc0e324b763a5f40b1266532590d5afb268a4c \ + --hash=sha256:a1f5cc41a570269d1be7a676655875e3a53de4992a9fa38efb7983e97cf73d7c \ + --hash=sha256:a3bfe73a32bd0bdb9a87d586b05a23c0a1729205d79df66dee65bb2e40d671ba \ + --hash=sha256:a487b71fbf8a9edb72a8c7a456dda0184642d99cd007bc819c0b7ab93676a8ee \ + --hash=sha256:a609849aca463074c17de9cda173c276eb8fee9e441053529e7b9e249dc8b8ee \ + --hash=sha256:a76f1d679beccccdf8c1958e732a1dfcd6e749f8821ee59d7bec009ac308c029 \ + --hash=sha256:a7ea4e1fbd253e5c68ea0fe63d08577f9d288a73f17d82f652ebc61fa48d878d \ + --hash=sha256:ab2a2a9cd7d044e1a11ca64a86ad3361d318176924bbe5152fbc69f99be20b8c \ + --hash=sha256:ad3fc2d859a709baf9dd9607bb72f599b1cfb8a39eafd41307d0c3c4766763cb \ + --hash=sha256:add4e0a000858fe9bb39ed55f31085506a5c38363e6eb4a1e5943a10c2bfc3d1 \ + --hash=sha256:aea05f701ccd2a76b34f0daf47ca5068176ff553510b614770c90d76ac88df06 \ + --hash=sha256:b8bb331aad734b059c4b450cd0a225652f16889e286b2345af5e2c3c625c3d85 \ + --hash=sha256:bdb9f3d865b2dafe7f9ad7f30ef563c80d0ddd2fdc8cc9b8e4f242f475e34d75 \ + --hash=sha256:c084841b879c4d9b9fa34e5d5263994f21aea7fd9c6add29194dbb41a6210536 \ + --hash=sha256:c48c7e150c095d5e3cea7452347ba26094be905d6099d24f9319a8b475fcd3e0 \ + --hash=sha256:c7e5070cf3ec92d98f57574da0224f8c73faf1ddd6d8afa0b8c9f6e86997bc74 \ + --hash=sha256:c87654e29a35938baead1c4559858f346f4a2a7588574a14d784f300ffba0efd \ + --hash=sha256:c8ffe3431d98cc043a14e88b21288b5ec7ee12cb01260e94385887f285ef9389 \ + --hash=sha256:c9faaebb1c6212c20afd8043cd6ed9de0a47d77f91a6b5b48f4e46ed470703fe \ + --hash=sha256:d1454899909d63cc9199a89fcc4f81bdd9004aef577d4ffc022e600c412d57f3 \ + --hash=sha256:d6b7d93657332c817b8d674ef6bf1ab7796b4f7ce05e420fd45bd258a72ac804 \ + --hash=sha256:dbc4900e95a98fc0729523be9d93a8fedebb026f32ed9ffc08acd82e3e181503 \ + --hash=sha256:e40d20ae1722d6b8ea6acf4597e789604649dcd9c295eb7361a28225bc2e9e12 \ + --hash=sha256:e4836c5645f40fbdc275e5670819bde5ab5f2e882290d304e3c6ddab1576a6d0 \ + --hash=sha256:e4ab69fa37f8090f2d971a5d2bc606c7401170dbdae083c393d6cbf439cb45b8 \ + --hash=sha256:ef7699b7a5a244b1119f85c5bbc13f152cd38240cbb2baa19b769433bae98e50 \ + --hash=sha256:f0c8fe5aeadd8a0e5b0598f8a6ee3533135ca50fd3f20f130f9d72baf5c6ac58 \ + --hash=sha256:f2cb63c49bc96847c3bb8dca350970e4dcd19936f391cfdfd057dcb37c4fa97e \ + --hash=sha256:f4d4efb218264ecf0f8516196c9e2d1a0679d9fb3bb15df1155a35220062eba8 \ + --hash=sha256:f683dcd49e2494a7535e30f779aa1ad6e3732a019d80abe1309ea91ccd3230e3 \ + --hash=sha256:f83c971eb9d2358b6a18da51dc0ae00556ac7c73104dde16e9e14c15aaf685ca \ + --hash=sha256:f8df32a99cc46eb0ee90afd9ada113ae2cafe7e8d673686cf03ec53e49635439 \ + --hash=sha256:ff1fb2dfef035549565a4124998fadcb7a3d4957131ddf004a56edeb029626b3 # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ @@ -724,25 +724,25 @@ partd==1.4.2 \ --hash=sha256:978e4ac767ec4ba5b86c6eaa52e5a2a3bc748a2ca839e8cc798f1cc6ce6efb0f \ --hash=sha256:d022c33afbdc8405c226621b015e8067888173d85f7f5ecebb3cafed9a20f02c # via dask -pathspec==0.12.1 \ - --hash=sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 \ - --hash=sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712 +pathspec==1.0.3 \ + --hash=sha256:bac5cf97ae2c2876e2d25ebb15078eb04d76e4b98921ee31c6f85ade8b59444d \ + --hash=sha256:e80767021c1cc524aa3fb14bedda9c34406591343cc42797b386ce7b9354fb6c # via mypy -prometheus-client==0.23.1 \ - --hash=sha256:6ae8f9081eaaaf153a2e959d2e6c4f4fb57b12ef76c8c7980202f1e57b48b2ce \ - --hash=sha256:dd1913e6e76b59cfe44e7a4b83e01afc9873c1bdfd2ed8739f1e76aeca115f99 +prometheus-client==0.24.0 \ + --hash=sha256:4ab6d4fb5a1b25ad74b58e6271857e356fff3399473e599d227ab5d0ce6637f0 \ + --hash=sha256:726b40c0d499f4904d4b5b7abe8d43e6aff090de0d468ae8f2226290b331c667 # via feast (setup.py) -protobuf==6.33.2 \ - --hash=sha256:1f8017c48c07ec5859106533b682260ba3d7c5567b1ca1f24297ce03384d1b4f \ - --hash=sha256:2981c58f582f44b6b13173e12bb8656711189c2a70250845f264b877f00b1913 \ - --hash=sha256:56dc370c91fbb8ac85bc13582c9e373569668a290aa2e66a590c2a0d35ddb9e4 \ - --hash=sha256:7109dcc38a680d033ffb8bf896727423528db9163be1b6a02d6a49606dcadbfe \ - --hash=sha256:7636aad9bb01768870266de5dc009de2d1b936771b38a793f73cbbf279c91c5c \ - --hash=sha256:87eb388bd2d0f78febd8f4c8779c79247b26a5befad525008e49a6955787ff3d \ - --hash=sha256:8cd7640aee0b7828b6d03ae518b5b4806fdfc1afe8de82f79c3454f8aef29872 \ - --hash=sha256:b5d3b5625192214066d99b2b605f5783483575656784de223f00a8d00754fc0e \ - --hash=sha256:d9b19771ca75935b3a4422957bc518b0cecb978b31d1dd12037b088f6bcc0e43 \ - --hash=sha256:fc2a0e8b05b180e5fc0dd1559fe8ebdae21a27e81ac77728fb6c42b12c7419b4 +protobuf==6.33.4 \ + --hash=sha256:0f12ddbf96912690c3582f9dffb55530ef32015ad8e678cd494312bd78314c4f \ + --hash=sha256:1fe3730068fcf2e595816a6c34fe66eeedd37d51d0400b72fabc848811fdc1bc \ + --hash=sha256:2fe67f6c014c84f655ee06f6f66213f9254b3a8b6bda6cda0ccd4232c73c06f0 \ + --hash=sha256:3df850c2f8db9934de4cf8f9152f8dc2558f49f298f37f90c517e8e5c84c30e9 \ + --hash=sha256:757c978f82e74d75cba88eddec479df9b99a42b31193313b75e492c06a51764e \ + --hash=sha256:8f11ffae31ec67fc2554c2ef891dcb561dae9a2a3ed941f9e134c2db06657dbc \ + --hash=sha256:918966612c8232fc6c24c78e1cd89784307f5814ad7506c308ee3cf86662850d \ + --hash=sha256:955478a89559fa4568f5a81dce77260eabc5c686f9e8366219ebd30debf06aa6 \ + --hash=sha256:c7c64f259c618f0bef7bee042075e390debbf9682334be2b67408ec7c1c09ee6 \ + --hash=sha256:dc2e61bca3b10470c1912d166fe0af67bfc20eb55971dcef8dfa48ce14f0ed91 # via feast (setup.py) psutil==7.2.1 \ --hash=sha256:05cc68dbb8c174828624062e73078e7e35406f4ca2d0866c272c2410d8ef06d1 \ @@ -767,50 +767,57 @@ psutil==7.2.1 \ --hash=sha256:f7583aec590485b43ca601dd9cea0dcd65bd7bb21d30ef4ddbf4ea6b5ed1bdd3 \ --hash=sha256:f78baafb38436d5a128f837fab2d92c276dfb48af01a240b861ae02b2413ada8 # via feast (setup.py) -pyarrow==21.0.0 \ - --hash=sha256:067c66ca29aaedae08218569a114e413b26e742171f526e828e1064fcdec13f4 \ - --hash=sha256:072116f65604b822a7f22945a7a6e581cfa28e3454fdcc6939d4ff6090126623 \ - --hash=sha256:0c4e75d13eb76295a49e0ea056eb18dbd87d81450bfeb8afa19a7e5a75ae2ad7 \ - --hash=sha256:186aa00bca62139f75b7de8420f745f2af12941595bbbfa7ed3870ff63e25636 \ - --hash=sha256:1e005378c4a2c6db3ada3ad4c217b381f6c886f0a80d6a316fe586b90f77efd7 \ - --hash=sha256:203003786c9fd253ebcafa44b03c06983c9c8d06c3145e37f1b76a1f317aeae1 \ - --hash=sha256:222c39e2c70113543982c6b34f3077962b44fca38c0bd9e68bb6781534425c10 \ - --hash=sha256:26bfd95f6bff443ceae63c65dc7e048670b7e98bc892210acba7e4995d3d4b51 \ - --hash=sha256:3a302f0e0963db37e0a24a70c56cf91a4faa0bca51c23812279ca2e23481fccd \ - --hash=sha256:3a81486adc665c7eb1a2bde0224cfca6ceaba344a82a971ef059678417880eb8 \ - --hash=sha256:3b4d97e297741796fead24867a8dabf86c87e4584ccc03167e4a811f50fdf74d \ - --hash=sha256:40ebfcb54a4f11bcde86bc586cbd0272bac0d516cfa539c799c2453768477569 \ - --hash=sha256:479ee41399fcddc46159a551705b89c05f11e8b8cb8e968f7fec64f62d91985e \ - --hash=sha256:5051f2dccf0e283ff56335760cbc8622cf52264d67e359d5569541ac11b6d5bc \ - --hash=sha256:555ca6935b2cbca2c0e932bedd853e9bc523098c39636de9ad4693b5b1df86d6 \ - --hash=sha256:585e7224f21124dd57836b1530ac8f2df2afc43c861d7bf3d58a4870c42ae36c \ - --hash=sha256:58c30a1729f82d201627c173d91bd431db88ea74dcaa3885855bc6203e433b82 \ - --hash=sha256:6299449adf89df38537837487a4f8d3bd91ec94354fdd2a7d30bc11c48ef6e79 \ - --hash=sha256:65f8e85f79031449ec8706b74504a316805217b35b6099155dd7e227eef0d4b6 \ - --hash=sha256:689f448066781856237eca8d1975b98cace19b8dd2ab6145bf49475478bcaa10 \ - --hash=sha256:69cbbdf0631396e9925e048cfa5bce4e8c3d3b41562bbd70c685a8eb53a91e61 \ - --hash=sha256:731c7022587006b755d0bdb27626a1a3bb004bb56b11fb30d98b6c1b4718579d \ - --hash=sha256:7be45519b830f7c24b21d630a31d48bcebfd5d4d7f9d3bdb49da9cdf6d764edb \ - --hash=sha256:898afce396b80fdda05e3086b4256f8677c671f7b1d27a6976fa011d3fd0a86e \ - --hash=sha256:8d58d8497814274d3d20214fbb24abcad2f7e351474357d552a8d53bce70c70e \ - --hash=sha256:9b0b14b49ac10654332a805aedfc0147fb3469cbf8ea951b3d040dab12372594 \ - --hash=sha256:9d9f8bcb4c3be7738add259738abdeddc363de1b80e3310e04067aa1ca596634 \ - --hash=sha256:a7a102574faa3f421141a64c10216e078df467ab9576684d5cd696952546e2da \ - --hash=sha256:a7f6524e3747e35f80744537c78e7302cd41deee8baa668d56d55f77d9c464b3 \ - --hash=sha256:b6b27cf01e243871390474a211a7922bfbe3bda21e39bc9160daf0da3fe48876 \ - --hash=sha256:b7ae0bbdc8c6674259b25bef5d2a1d6af5d39d7200c819cf99e07f7dfef1c51e \ - --hash=sha256:bd04ec08f7f8bd113c55868bd3fc442a9db67c27af098c5f814a3091e71cc61a \ - --hash=sha256:c077f48aab61738c237802836fc3844f85409a46015635198761b0d6a688f87b \ - --hash=sha256:cdc4c17afda4dab2a9c0b79148a43a7f4e1094916b3e18d8975bfd6d6d52241f \ - --hash=sha256:cf56ec8b0a5c8c9d7021d6fd754e688104f9ebebf1bf4449613c9531f5346a18 \ - --hash=sha256:d2fe8e7f3ce329a71b7ddd7498b3cfac0eeb200c2789bd840234f0dc271a8efe \ - --hash=sha256:dc56bc708f2d8ac71bd1dcb927e458c93cec10b98eb4120206a4091db7b67b99 \ - --hash=sha256:e563271e2c5ff4d4a4cbeb2c83d5cf0d4938b891518e676025f7268c6fe5fe26 \ - --hash=sha256:e72a8ec6b868e258a2cd2672d91f2860ad532d590ce94cdf7d5e7ec674ccf03d \ - --hash=sha256:e99310a4ebd4479bcd1964dff9e14af33746300cb014aa4a3781738ac63baf4a \ - --hash=sha256:f522e5709379d72fb3da7785aa489ff0bb87448a9dc5a75f45763a795a089ebd \ - --hash=sha256:fc0d2f88b81dcf3ccf9a6ae17f89183762c8a94a5bdcfa09e05cfe413acf0503 \ - --hash=sha256:fee33b0ca46f4c85443d6c450357101e47d53e6c3f008d658c27a2d020d44c79 +pyarrow==22.0.0 \ + --hash=sha256:001ea83a58024818826a9e3f89bf9310a114f7e26dfe404a4c32686f97bd7901 \ + --hash=sha256:00626d9dc0f5ef3a75fe63fd68b9c7c8302d2b5bbc7f74ecaedba83447a24f84 \ + --hash=sha256:0c34fe18094686194f204a3b1787a27456897d8a2d62caf84b61e8dfbc0252ae \ + --hash=sha256:12fe549c9b10ac98c91cf791d2945e878875d95508e1a5d14091a7aaa66d9cf8 \ + --hash=sha256:1a812a5b727bc09c3d7ea072c4eebf657c2f7066155506ba31ebf4792f88f016 \ + --hash=sha256:252be4a05f9d9185bb8c18e83764ebcfea7185076c07a7a662253af3a8c07941 \ + --hash=sha256:334f900ff08ce0423407af97e6c26ad5d4e3b0763645559ece6fbf3747d6a8f5 \ + --hash=sha256:35ad0f0378c9359b3f297299c3309778bb03b8612f987399a0333a560b43862d \ + --hash=sha256:3d600dc583260d845c7d8a6db540339dd883081925da2bd1c5cb808f720b3cd9 \ + --hash=sha256:3e294c5eadfb93d78b0763e859a0c16d4051fc1c5231ae8956d61cb0b5666f5a \ + --hash=sha256:3e739edd001b04f654b166204fc7a9de896cf6007eaff33409ee9e50ceaff754 \ + --hash=sha256:44729980b6c50a5f2bfcc2668d36c569ce17f8b17bccaf470c4313dcbbf13c9d \ + --hash=sha256:44d2d26cda26d18f7af7db71453b7b783788322d756e81730acb98f24eb90ace \ + --hash=sha256:4c19236ae2402a8663a2c8f21f1870a03cc57f0bef7e4b6eb3238cc82944de80 \ + --hash=sha256:69763ab2445f632d90b504a815a2a033f74332997052b721002298ed6de40f2e \ + --hash=sha256:6dda1ddac033d27421c20d7a7943eec60be44e0db4e079f33cc5af3b8280ccde \ + --hash=sha256:6f9762274496c244d951c819348afbcf212714902742225f649cf02823a6a10f \ + --hash=sha256:710624ab925dc2b05a6229d47f6f0dac1c1155e6ed559be7109f684eba048a48 \ + --hash=sha256:7388ac685cab5b279a41dfe0a6ccd99e4dbf322edfb63e02fc0443bf24134e91 \ + --hash=sha256:77718810bd3066158db1e95a63c160ad7ce08c6b0710bc656055033e39cdad88 \ + --hash=sha256:7a820d8ae11facf32585507c11f04e3f38343c1e784c9b5a8b1da5c930547fe2 \ + --hash=sha256:8382ad21458075c2e66a82a29d650f963ce51c7708c7c0ff313a8c206c4fd5e8 \ + --hash=sha256:84378110dd9a6c06323b41b56e129c504d157d1a983ce8f5443761eb5256bafc \ + --hash=sha256:854794239111d2b88b40b6ef92aa478024d1e5074f364033e73e21e3f76b25e0 \ + --hash=sha256:92843c305330aa94a36e706c16209cd4df274693e777ca47112617db7d0ef3d7 \ + --hash=sha256:9bddc2cade6561f6820d4cd73f99a0243532ad506bc510a75a5a65a522b2d74d \ + --hash=sha256:a4893d31e5ef780b6edcaf63122df0f8d321088bb0dee4c8c06eccb1ca28d145 \ + --hash=sha256:a9d9ffdc2ab696f6b15b4d1f7cec6658e1d788124418cb30030afbae31c64746 \ + --hash=sha256:ac93252226cf288753d8b46280f4edf3433bf9508b6977f8dd8526b521a1bbb9 \ + --hash=sha256:b41f37cabfe2463232684de44bad753d6be08a7a072f6a83447eeaf0e4d2a215 \ + --hash=sha256:b883fe6fd85adad7932b3271c38ac289c65b7337c2c132e9569f9d3940620730 \ + --hash=sha256:b9d71701ce97c95480fecb0039ec5bb889e75f110da72005743451339262f4ce \ + --hash=sha256:ba95112d15fd4f1105fb2402c4eab9068f0554435e9b7085924bcfaac2cc306f \ + --hash=sha256:bba208d9c7decf9961998edf5c65e3ea4355d5818dd6cd0f6809bec1afb951cc \ + --hash=sha256:bd0d42297ace400d8febe55f13fdf46e86754842b860c978dfec16f081e5c653 \ + --hash=sha256:bea79263d55c24a32b0d79c00a1c58bb2ee5f0757ed95656b01c0fb310c5af3d \ + --hash=sha256:c064e28361c05d72eed8e744c9605cbd6d2bb7481a511c74071fd9b24bc65d7d \ + --hash=sha256:c3200cb41cdbc65156e5f8c908d739b0dfed57e890329413da2748d1a2cd1a4e \ + --hash=sha256:c6c791b09c57ed76a18b03f2631753a4960eefbbca80f846da8baefc6491fcfe \ + --hash=sha256:c6ec3675d98915bf1ec8b3c7986422682f7232ea76cad276f4c8abd5b7319b70 \ + --hash=sha256:ce20fe000754f477c8a9125543f1936ea5b8867c5406757c224d745ed033e691 \ + --hash=sha256:cedb9dd9358e4ea1d9bce3665ce0797f6adf97ff142c8e25b46ba9cdd508e9b6 \ + --hash=sha256:e0a15757fccb38c410947df156f9749ae4a3c89b2393741a50521f39a8cf202a \ + --hash=sha256:e6e95176209257803a8b3d0394f21604e796dadb643d2f7ca21b66c9c0b30c9a \ + --hash=sha256:e70ff90c64419709d38c8932ea9fe1cc98415c4f87ea8da81719e43f02534bc9 \ + --hash=sha256:ec1a15968a9d80da01e1d30349b2b0d7cc91e96588ee324ce1b5228175043e95 \ + --hash=sha256:ec5d40dd494882704fb876c16fa7261a69791e784ae34e6b5992e977bd2e238c \ + --hash=sha256:f633074f36dbc33d5c05b5dc75371e5660f1dbf9c8b1d95669def05e5425989c \ + --hash=sha256:f7fe3dbe871294ba70d789be16b6e7e52b418311e166e0e3cba9522f0f437fb1 \ + --hash=sha256:f963ba8c3b0199f9d6b794c90ec77545e05eadc83973897a4523c9e8d84e9340 # via # feast (setup.py) # dask @@ -1244,49 +1251,54 @@ toml==0.10.2 \ --hash=sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b \ --hash=sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f # via feast (setup.py) -tomli==2.3.0 \ - --hash=sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456 \ - --hash=sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845 \ - --hash=sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999 \ - --hash=sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0 \ - --hash=sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878 \ - --hash=sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf \ - --hash=sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3 \ - --hash=sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be \ - --hash=sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52 \ - --hash=sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b \ - --hash=sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67 \ - --hash=sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549 \ - --hash=sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba \ - --hash=sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22 \ - --hash=sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c \ - --hash=sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f \ - --hash=sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6 \ - --hash=sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba \ - --hash=sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45 \ - --hash=sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f \ - --hash=sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77 \ - --hash=sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606 \ - --hash=sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441 \ - --hash=sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0 \ - --hash=sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f \ - --hash=sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530 \ - --hash=sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05 \ - --hash=sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8 \ - --hash=sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005 \ - --hash=sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879 \ - --hash=sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae \ - --hash=sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc \ - --hash=sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b \ - --hash=sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b \ - --hash=sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e \ - --hash=sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf \ - --hash=sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac \ - --hash=sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8 \ - --hash=sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b \ - --hash=sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf \ - --hash=sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463 \ - --hash=sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876 +tomli==2.4.0 \ + --hash=sha256:0408e3de5ec77cc7f81960c362543cbbd91ef883e3138e81b729fc3eea5b9729 \ + --hash=sha256:0dc56fef0e2c1c470aeac5b6ca8cc7b640bb93e92d9803ddaf9ea03e198f5b0b \ + --hash=sha256:0e0fe8a0b8312acf3a88077a0802565cb09ee34107813bba1c7cd591fa6cfc8d \ + --hash=sha256:0f2e3955efea4d1cfbcb87bc321e00dc08d2bcb737fd1d5e398af111d86db5df \ + --hash=sha256:133e93646ec4300d651839d382d63edff11d8978be23da4cc106f5a18b7d0576 \ + --hash=sha256:1b168f2731796b045128c45982d3a4874057626da0e2ef1fdd722848b741361d \ + --hash=sha256:1c8a885b370751837c029ef9bc014f27d80840e48bac415f3412e6593bbc18c1 \ + --hash=sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a \ + --hash=sha256:1fb2945cbe303b1419e2706e711b7113da57b7db31ee378d08712d678a34e51e \ + --hash=sha256:20cedb4ee43278bc4f2fee6cb50daec836959aadaf948db5172e776dd3d993fc \ + --hash=sha256:20ffd184fb1df76a66e34bd1b36b4a4641bd2b82954befa32fe8163e79f1a702 \ + --hash=sha256:26ab906a1eb794cd4e103691daa23d95c6919cc2fa9160000ac02370cc9dd3f6 \ + --hash=sha256:2add28aacc7425117ff6364fe9e06a183bb0251b03f986df0e78e974047571fd \ + --hash=sha256:2b1e3b80e1d5e52e40e9b924ec43d81570f0e7d09d11081b797bc4692765a3d4 \ + --hash=sha256:31d556d079d72db7c584c0627ff3a24c5d3fb4f730221d3444f3efb1b2514776 \ + --hash=sha256:36b9d05b51e65b254ea6c2585b59d2c4cb91c8a3d91d0ed0f17591a29aaea54a \ + --hash=sha256:39b0b5d1b6dd03684b3fb276407ebed7090bbec989fa55838c98560c01113b66 \ + --hash=sha256:3cf226acb51d8f1c394c1b310e0e0e61fecdd7adcb78d01e294ac297dd2e7f87 \ + --hash=sha256:3d895d56bd3f82ddd6faaff993c275efc2ff38e52322ea264122d72729dca2b2 \ + --hash=sha256:413540dce94673591859c4c6f794dfeaa845e98bf35d72ed59636f869ef9f86f \ + --hash=sha256:43e685b9b2341681907759cf3a04e14d7104b3580f808cfde1dfdb60ada85475 \ + --hash=sha256:4cbcb367d44a1f0c2be408758b43e1ffb5308abe0ea222897d6bfc8e8281ef2f \ + --hash=sha256:551e321c6ba03b55676970b47cb1b73f14a0a4dce6a3e1a9458fd6d921d72e95 \ + --hash=sha256:5572e41282d5268eb09a697c89a7bee84fae66511f87533a6f88bd2f7b652da9 \ + --hash=sha256:5aa48d7c2356055feef06a43611fc401a07337d5b006be13a30f6c58f869e3c3 \ + --hash=sha256:5b5807f3999fb66776dbce568cc9a828544244a8eb84b84b9bafc080c99597b9 \ + --hash=sha256:5e3f639a7a8f10069d0e15408c0b96a2a828cfdec6fca05296ebcdcc28ca7c76 \ + --hash=sha256:685306e2cc7da35be4ee914fd34ab801a6acacb061b6a7abca922aaf9ad368da \ + --hash=sha256:75c2f8bbddf170e8effc98f5e9084a8751f8174ea6ccf4fca5398436e0320bc8 \ + --hash=sha256:7b438885858efd5be02a9a133caf5812b8776ee0c969fea02c45e8e3f296ba51 \ + --hash=sha256:7d49c66a7d5e56ac959cb6fc583aff0651094ec071ba9ad43df785abc2320d86 \ + --hash=sha256:7d6d9a4aee98fac3eab4952ad1d73aee87359452d1c086b5ceb43ed02ddb16b8 \ + --hash=sha256:84d081fbc252d1b6a982e1870660e7330fb8f90f676f6e78b052ad4e64714bf0 \ + --hash=sha256:8768715ffc41f0008abe25d808c20c3d990f42b6e2e58305d5da280ae7d1fa3b \ + --hash=sha256:920b1de295e72887bafa3ad9f7a792f811847d57ea6b1215154030cf131f16b1 \ + --hash=sha256:9a08144fa4cba33db5255f9b74f0b89888622109bd2776148f2597447f92a94e \ + --hash=sha256:a26d7ff68dfdb9f87a016ecfd1e1c2bacbe3108f4e0f8bcd2228ef9a766c787d \ + --hash=sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c \ + --hash=sha256:b5ef256a3fd497d4973c11bf142e9ed78b150d36f5773f1ca6088c230ffc5867 \ + --hash=sha256:b6c78bdf37764092d369722d9946cb65b8767bfa4110f902a1b2542d8d173c8a \ + --hash=sha256:bbb1b10aa643d973366dc2cb1ad94f99c1726a02343d43cbc011edbfac579e7c \ + --hash=sha256:c084ad935abe686bd9c898e62a02a19abfc9760b5a79bc29644463eaf2840cb0 \ + --hash=sha256:c73add4bb52a206fd0c0723432db123c0c75c280cbd67174dd9d2db228ebb1b4 \ + --hash=sha256:cae9c19ed12d4e8f3ebf46d1a75090e4c0dc16271c5bce1c833ac168f08fb614 \ + --hash=sha256:d20b797a5c1ad80c516e41bc1fb0443ddb5006e9aaa7bda2d71978346aeb9132 \ + --hash=sha256:d3d1654e11d724760cdb37a3d7691f0be9db5fbdaef59c9f532aabf87006dbaa \ + --hash=sha256:d878f2a6707cc9d53a1be1414bbb419e629c3d6e67f69230217bb663e76b5087 # via mypy toolz==1.1.0 \ --hash=sha256:15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8 \ @@ -1502,76 +1514,68 @@ watchfiles==1.1.1 \ --hash=sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa \ --hash=sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf # via uvicorn -websockets==15.0.1 \ - --hash=sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2 \ - --hash=sha256:0a34631031a8f05657e8e90903e656959234f3a04552259458aac0b0f9ae6fd9 \ - --hash=sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5 \ - --hash=sha256:0c9e74d766f2818bb95f84c25be4dea09841ac0f734d1966f415e4edfc4ef1c3 \ - --hash=sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8 \ - --hash=sha256:0fdfe3e2a29e4db3659dbd5bbf04560cea53dd9610273917799f1cde46aa725e \ - --hash=sha256:1009ee0c7739c08a0cd59de430d6de452a55e42d6b522de7aa15e6f67db0b8e1 \ - --hash=sha256:1234d4ef35db82f5446dca8e35a7da7964d02c127b095e172e54397fb6a6c256 \ - --hash=sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85 \ - --hash=sha256:2034693ad3097d5355bfdacfffcbd3ef5694f9718ab7f29c29689a9eae841880 \ - --hash=sha256:21c1fa28a6a7e3cbdc171c694398b6df4744613ce9b36b1a498e816787e28123 \ - --hash=sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375 \ - --hash=sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065 \ - --hash=sha256:363c6f671b761efcb30608d24925a382497c12c506b51661883c3e22337265ed \ - --hash=sha256:39c1fec2c11dc8d89bba6b2bf1556af381611a173ac2b511cf7231622058af41 \ - --hash=sha256:3b1ac0d3e594bf121308112697cf4b32be538fb1444468fb0a6ae4feebc83411 \ - --hash=sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597 \ - --hash=sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f \ - --hash=sha256:3d00075aa65772e7ce9e990cab3ff1de702aa09be3940d1dc88d5abf1ab8a09c \ - --hash=sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3 \ - --hash=sha256:47819cea040f31d670cc8d324bb6435c6f133b8c7a19ec3d61634e62f8d8f9eb \ - --hash=sha256:47b099e1f4fbc95b701b6e85768e1fcdaf1630f3cbe4765fa216596f12310e2e \ - --hash=sha256:4a9fac8e469d04ce6c25bb2610dc535235bd4aa14996b4e6dbebf5e007eba5ee \ - --hash=sha256:4b826973a4a2ae47ba357e4e82fa44a463b8f168e1ca775ac64521442b19e87f \ - --hash=sha256:4c2529b320eb9e35af0fa3016c187dffb84a3ecc572bcee7c3ce302bfeba52bf \ - --hash=sha256:54479983bd5fb469c38f2f5c7e3a24f9a4e70594cd68cd1fa6b9340dadaff7cf \ - --hash=sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4 \ - --hash=sha256:5756779642579d902eed757b21b0164cd6fe338506a8083eb58af5c372e39d9a \ - --hash=sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665 \ - --hash=sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22 \ - --hash=sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675 \ - --hash=sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4 \ - --hash=sha256:5df592cd503496351d6dc14f7cdad49f268d8e618f80dce0cd5a36b93c3fc08d \ - --hash=sha256:5f4c04ead5aed67c8a1a20491d54cdfba5884507a48dd798ecaf13c74c4489f5 \ - --hash=sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65 \ - --hash=sha256:66dd88c918e3287efc22409d426c8f729688d89a0c587c88971a0faa2c2f3792 \ - --hash=sha256:678999709e68425ae2593acf2e3ebcbcf2e69885a5ee78f9eb80e6e371f1bf57 \ - --hash=sha256:67f2b6de947f8c757db2db9c71527933ad0019737ec374a8a6be9a956786aaf9 \ - --hash=sha256:693f0192126df6c2327cce3baa7c06f2a117575e32ab2308f7f8216c29d9e2e3 \ - --hash=sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151 \ - --hash=sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d \ - --hash=sha256:76d1f20b1c7a2fa82367e04982e708723ba0e7b8d43aa643d3dcd404d74f1475 \ - --hash=sha256:7f493881579c90fc262d9cdbaa05a6b54b3811c2f300766748db79f098db9940 \ - --hash=sha256:823c248b690b2fd9303ba00c4f66cd5e2d8c3ba4aa968b2779be9532a4dad431 \ - --hash=sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee \ - --hash=sha256:8dd8327c795b3e3f219760fa603dcae1dcc148172290a8ab15158cf85a953413 \ - --hash=sha256:8fdc51055e6ff4adeb88d58a11042ec9a5eae317a0a53d12c062c8a8865909e8 \ - --hash=sha256:a625e06551975f4b7ea7102bc43895b90742746797e2e14b70ed61c43a90f09b \ - --hash=sha256:abdc0c6c8c648b4805c5eacd131910d2a7f6455dfd3becab248ef108e89ab16a \ - --hash=sha256:ac017dd64572e5c3bd01939121e4d16cf30e5d7e110a119399cf3133b63ad054 \ - --hash=sha256:ac1e5c9054fe23226fb11e05a6e630837f074174c4c2f0fe442996112a6de4fb \ - --hash=sha256:ac60e3b188ec7574cb761b08d50fcedf9d77f1530352db4eef1707fe9dee7205 \ - --hash=sha256:b359ed09954d7c18bbc1680f380c7301f92c60bf924171629c5db97febb12f04 \ - --hash=sha256:b7643a03db5c95c799b89b31c036d5f27eeb4d259c798e878d6937d71832b1e4 \ - --hash=sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa \ - --hash=sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9 \ - --hash=sha256:cad21560da69f4ce7658ca2cb83138fb4cf695a2ba3e475e0559e05991aa8122 \ - --hash=sha256:d08eb4c2b7d6c41da6ca0600c077e93f5adcfd979cd777d747e9ee624556da4b \ - --hash=sha256:d50fd1ee42388dcfb2b3676132c78116490976f1300da28eb629272d5d93e905 \ - --hash=sha256:d591f8de75824cbb7acad4e05d2d710484f15f29d4a915092675ad3456f11770 \ - --hash=sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe \ - --hash=sha256:d63efaa0cd96cf0c5fe4d581521d9fa87744540d4bc999ae6e08595a1014b45b \ - --hash=sha256:d99e5546bf73dbad5bf3547174cd6cb8ba7273062a23808ffea025ecb1cf8562 \ - --hash=sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561 \ - --hash=sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215 \ - --hash=sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931 \ - --hash=sha256:f29d80eb9a9263b8d109135351caf568cc3f80b9928bccde535c235de55c22d9 \ - --hash=sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f \ - --hash=sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7 +websockets==16.0 \ + --hash=sha256:0298d07ee155e2e9fda5be8a9042200dd2e3bb0b8a38482156576f863a9d457c \ + --hash=sha256:04cdd5d2d1dacbad0a7bf36ccbcd3ccd5a30ee188f2560b7a62a30d14107b31a \ + --hash=sha256:08d7af67b64d29823fed316505a89b86705f2b7981c07848fb5e3ea3020c1abe \ + --hash=sha256:152284a83a00c59b759697b7f9e9cddf4e3c7861dd0d964b472b70f78f89e80e \ + --hash=sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec \ + --hash=sha256:19c4dc84098e523fd63711e563077d39e90ec6702aff4b5d9e344a60cb3c0cb1 \ + --hash=sha256:1c1b30e4f497b0b354057f3467f56244c603a79c0d1dafce1d16c283c25f6e64 \ + --hash=sha256:2b9f1e0d69bc60a4a87349d50c09a037a2607918746f07de04df9e43252c77a3 \ + --hash=sha256:31a52addea25187bde0797a97d6fc3d2f92b6f72a9370792d65a6e84615ac8a8 \ + --hash=sha256:32da954ffa2814258030e5a57bc73a3635463238e797c7375dc8091327434206 \ + --hash=sha256:335c23addf3d5e6a8633f9f8eda77efad001671e80b95c491dd0924587ece0b3 \ + --hash=sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156 \ + --hash=sha256:349f83cd6c9a415428ee1005cadb5c2c56f4389bc06a9af16103c3bc3dcc8b7d \ + --hash=sha256:37b31c1623c6605e4c00d466c9d633f9b812ea430c11c8a278774a1fde1acfa9 \ + --hash=sha256:417b28978cdccab24f46400586d128366313e8a96312e4b9362a4af504f3bbad \ + --hash=sha256:485c49116d0af10ac698623c513c1cc01c9446c058a4e61e3bf6c19dff7335a2 \ + --hash=sha256:4a1aba3340a8dca8db6eb5a7986157f52eb9e436b74813764241981ca4888f03 \ + --hash=sha256:50f23cdd8343b984957e4077839841146f67a3d31ab0d00e6b824e74c5b2f6e8 \ + --hash=sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230 \ + --hash=sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8 \ + --hash=sha256:5569417dc80977fc8c2d43a86f78e0a5a22fee17565d78621b6bb264a115d4ea \ + --hash=sha256:569d01a4e7fba956c5ae4fc988f0d4e187900f5497ce46339c996dbf24f17641 \ + --hash=sha256:583b7c42688636f930688d712885cf1531326ee05effd982028212ccc13e5957 \ + --hash=sha256:5a4b4cc550cb665dd8a47f868c8d04c8230f857363ad3c9caf7a0c3bf8c61ca6 \ + --hash=sha256:5f451484aeb5cafee1ccf789b1b66f535409d038c56966d6101740c1614b86c6 \ + --hash=sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5 \ + --hash=sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f \ + --hash=sha256:71c989cbf3254fbd5e84d3bff31e4da39c43f884e64f2551d14bb3c186230f00 \ + --hash=sha256:781caf5e8eee67f663126490c2f96f40906594cb86b408a703630f95550a8c3e \ + --hash=sha256:7be95cfb0a4dae143eaed2bcba8ac23f4892d8971311f1b06f3c6b78952ee70b \ + --hash=sha256:7d837379b647c0c4c2355c2499723f82f1635fd2c26510e1f587d89bc2199e72 \ + --hash=sha256:86890e837d61574c92a97496d590968b23c2ef0aeb8a9bc9421d174cd378ae39 \ + --hash=sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9 \ + --hash=sha256:8b6e209ffee39ff1b6d0fa7bfef6de950c60dfb91b8fcead17da4ee539121a79 \ + --hash=sha256:8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0 \ + --hash=sha256:8d7f0659570eefb578dacde98e24fb60af35350193e4f56e11190787bee77dac \ + --hash=sha256:8e1dab317b6e77424356e11e99a432b7cb2f3ec8c5ab4dabbcee6add48f72b35 \ + --hash=sha256:8ff32bb86522a9e5e31439a58addbb0166f0204d64066fb955265c4e214160f0 \ + --hash=sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5 \ + --hash=sha256:9b5aca38b67492ef518a8ab76851862488a478602229112c4b0d58d63a7a4d5c \ + --hash=sha256:a069d734c4a043182729edd3e9f247c3b2a4035415a9172fd0f1b71658a320a8 \ + --hash=sha256:a0b31e0b424cc6b5a04b8838bbaec1688834b2383256688cf47eb97412531da1 \ + --hash=sha256:a35539cacc3febb22b8f4d4a99cc79b104226a756aa7400adc722e83b0d03244 \ + --hash=sha256:a5e18a238a2b2249c9a9235466b90e96ae4795672598a58772dd806edc7ac6d3 \ + --hash=sha256:a653aea902e0324b52f1613332ddf50b00c06fdaf7e92624fbf8c77c78fa5767 \ + --hash=sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a \ + --hash=sha256:af80d74d4edfa3cb9ed973a0a5ba2b2a549371f8a741e0800cb07becdd20f23d \ + --hash=sha256:b14dc141ed6d2dde437cddb216004bcac6a1df0935d79656387bd41632ba0bbd \ + --hash=sha256:b784ca5de850f4ce93ec85d3269d24d4c82f22b7212023c974c401d4980ebc5e \ + --hash=sha256:bc59589ab64b0022385f429b94697348a6a234e8ce22544e3681b2e9331b5944 \ + --hash=sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82 \ + --hash=sha256:c0ee0e63f23914732c6d7e0cce24915c48f3f1512ec1d079ed01fc629dab269d \ + --hash=sha256:caab51a72c51973ca21fa8a18bd8165e1a0183f1ac7066a182ff27107b71e1a4 \ + --hash=sha256:d6297ce39ce5c2e6feb13c1a996a2ded3b6832155fcfc920265c76f24c7cceb5 \ + --hash=sha256:daa3b6ff70a9241cf6c7fc9e949d41232d9d7d26fd3522b1ad2b4d62487e9904 \ + --hash=sha256:df57afc692e517a85e65b72e165356ed1df12386ecb879ad5693be08fac65dde \ + --hash=sha256:e0334872c0a37b606418ac52f6ab9cfd17317ac26365f7f65e203e2d0d0d359f \ + --hash=sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c \ + --hash=sha256:eaded469f5e5b7294e2bdca0ab06becb6756ea86894a47806456089298813c89 \ + --hash=sha256:f4a32d1bd841d4bcbffdcb3d2ce50c09c3909fbead375ab28d0181af89fd04da \ + --hash=sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4 # via uvicorn zipp==3.23.0 \ --hash=sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e \ diff --git a/sdk/python/requirements/py3.11-ci-requirements.txt b/sdk/python/requirements/py3.11-ci-requirements.txt index b3bbdb5ad4d..f47ea84f804 100644 --- a/sdk/python/requirements/py3.11-ci-requirements.txt +++ b/sdk/python/requirements/py3.11-ci-requirements.txt @@ -12,127 +12,127 @@ aiohappyeyeballs==2.6.1 \ --hash=sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558 \ --hash=sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8 # via aiohttp -aiohttp==3.13.2 \ - --hash=sha256:04c3971421576ed24c191f610052bcb2f059e395bc2489dd99e397f9bc466329 \ - --hash=sha256:05c4dd3c48fb5f15db31f57eb35374cb0c09afdde532e7fb70a75aede0ed30f6 \ - --hash=sha256:070599407f4954021509193404c4ac53153525a19531051661440644728ba9a7 \ - --hash=sha256:0740f31a60848d6edb296a0df827473eede90c689b8f9f2a4cdde74889eb2254 \ - --hash=sha256:088912a78b4d4f547a1f19c099d5a506df17eacec3c6f4375e2831ec1d995742 \ - --hash=sha256:0a3d54e822688b56e9f6b5816fb3de3a3a64660efac64e4c2dc435230ad23bad \ - --hash=sha256:0db1e24b852f5f664cd728db140cf11ea0e82450471232a394b3d1a540b0f906 \ - --hash=sha256:0e87dff73f46e969af38ab3f7cb75316a7c944e2e574ff7c933bc01b10def7f5 \ - --hash=sha256:1237c1375eaef0db4dcd7c2559f42e8af7b87ea7d295b118c60c36a6e61cb811 \ - --hash=sha256:16f15a4eac3bc2d76c45f7ebdd48a65d41b242eb6c31c2245463b40b34584ded \ - --hash=sha256:1f9b2c2d4b9d958b1f9ae0c984ec1dd6b6689e15c75045be8ccb4011426268ca \ - --hash=sha256:204ffff2426c25dfda401ba08da85f9c59525cdc42bda26660463dd1cbcfec6f \ - --hash=sha256:20b10bbfbff766294fe99987f7bb3b74fdd2f1a2905f2562132641ad434dcf98 \ - --hash=sha256:20db2d67985d71ca033443a1ba2001c4b5693fe09b0e29f6d9358a99d4d62a8a \ - --hash=sha256:228a1cd556b3caca590e9511a89444925da87d35219a49ab5da0c36d2d943a6a \ - --hash=sha256:2372b15a5f62ed37789a6b383ff7344fc5b9f243999b0cd9b629d8bc5f5b4155 \ - --hash=sha256:23ad365e30108c422d0b4428cf271156dd56790f6dd50d770b8e360e6c5ab2e6 \ - --hash=sha256:23fb0783bc1a33640036465019d3bba069942616a6a2353c6907d7fe1ccdaf4e \ - --hash=sha256:2475391c29230e063ef53a66669b7b691c9bfc3f1426a0f7bcdf1216bdbac38b \ - --hash=sha256:27e569eb9d9e95dbd55c0fc3ec3a9335defbf1d8bc1d20171a49f3c4c607b93e \ - --hash=sha256:29562998ec66f988d49fb83c9b01694fa927186b781463f376c5845c121e4e0b \ - --hash=sha256:2adebd4577724dcae085665f294cc57c8701ddd4d26140504db622b8d566d7aa \ - --hash=sha256:2ca6ffef405fc9c09a746cb5d019c1672cd7f402542e379afc66b370833170cf \ - --hash=sha256:2e1a9bea6244a1d05a4e57c295d69e159a5c50d8ef16aa390948ee873478d9a5 \ - --hash=sha256:364e25edaabd3d37b1db1f0cbcee8c73c9a3727bfa262b83e5e4cf3489a2a9dc \ - --hash=sha256:364f55663085d658b8462a1c3f17b2b84a5c2e1ba858e1b79bff7b2e24ad1514 \ - --hash=sha256:39d02cb6025fe1aabca329c5632f48c9532a3dabccd859e7e2f110668972331f \ - --hash=sha256:3a92cf4b9bea33e15ecbaa5c59921be0f23222608143d025c989924f7e3e0c07 \ - --hash=sha256:40176a52c186aefef6eb3cad2cdd30cd06e3afbe88fe8ab2af9c0b90f228daca \ - --hash=sha256:4356474ad6333e41ccefd39eae869ba15a6c5299c9c01dfdcfdd5c107be4363e \ - --hash=sha256:43dff14e35aba17e3d6d5ba628858fb8cb51e30f44724a2d2f0c75be492c55e9 \ - --hash=sha256:4647d02df098f6434bafd7f32ad14942f05a9caa06c7016fdcc816f343997dd0 \ - --hash=sha256:47f438b1a28e926c37632bff3c44df7d27c9b57aaf4e34b1def3c07111fdb782 \ - --hash=sha256:4dd3db9d0f4ebca1d887d76f7cdbcd1116ac0d05a9221b9dad82c64a62578c4d \ - --hash=sha256:4ebf9cfc9ba24a74cf0718f04aac2a3bbe745902cc7c5ebc55c0f3b5777ef213 \ - --hash=sha256:5276807b9de9092af38ed23ce120539ab0ac955547b38563a9ba4f5b07b95293 \ - --hash=sha256:53b07472f235eb80e826ad038c9d106c2f653584753f3ddab907c83f49eedead \ - --hash=sha256:550bf765101ae721ee1d37d8095f47b1f220650f85fe1af37a90ce75bab89d04 \ - --hash=sha256:56d36e80d2003fa3fc0207fac644216d8532e9504a785ef9a8fd013f84a42c61 \ - --hash=sha256:585542825c4bc662221fb257889e011a5aa00f1ae4d75d1d246a5225289183e3 \ - --hash=sha256:5b927cf9b935a13e33644cbed6c8c4b2d0f25b713d838743f8fe7191b33829c4 \ - --hash=sha256:5d7f02042c1f009ffb70067326ef183a047425bb2ff3bc434ead4dd4a4a66a2b \ - --hash=sha256:6315fb6977f1d0dd41a107c527fee2ed5ab0550b7d885bc15fee20ccb17891da \ - --hash=sha256:66bac29b95a00db411cd758fea0e4b9bdba6d549dfe333f9a945430f5f2cc5a6 \ - --hash=sha256:6c00dbcf5f0d88796151e264a8eab23de2997c9303dd7c0bf622e23b24d3ce22 \ - --hash=sha256:6e7352512f763f760baaed2637055c49134fd1d35b37c2dedfac35bfe5cf8725 \ - --hash=sha256:7519bdc7dfc1940d201651b52bf5e03f5503bda45ad6eacf64dda98be5b2b6be \ - --hash=sha256:78cd586d8331fb8e241c2dd6b2f4061778cc69e150514b39a9e28dd050475661 \ - --hash=sha256:7a653d872afe9f33497215745da7a943d1dc15b728a9c8da1c3ac423af35178e \ - --hash=sha256:7c3a50345635a02db61792c85bb86daffac05330f6473d524f1a4e3ef9d0046d \ - --hash=sha256:7fbdf5ad6084f1940ce88933de34b62358d0f4a0b6ec097362dcd3e5a65a4989 \ - --hash=sha256:7fd19df530c292542636c2a9a85854fab93474396a52f1695e799186bbd7f24c \ - --hash=sha256:868e195e39b24aaa930b063c08bb0c17924899c16c672a28a65afded9c46c6ec \ - --hash=sha256:8709a0f05d59a71f33fd05c17fc11fcb8c30140506e13c2f5e8ee1b8964e1b45 \ - --hash=sha256:88d6c017966a78c5265d996c19cdb79235be5e6412268d7e2ce7dee339471b7a \ - --hash=sha256:8aa7c807df234f693fed0ecd507192fc97692e61fee5702cdc11155d2e5cadc8 \ - --hash=sha256:8b2f1414f6a1e0683f212ec80e813f4abef94c739fd090b66c9adf9d2a05feac \ - --hash=sha256:93655083005d71cd6c072cdab54c886e6570ad2c4592139c3fb967bfc19e4694 \ - --hash=sha256:939ced4a7add92296b0ad38892ce62b98c619288a081170695c6babe4f50e636 \ - --hash=sha256:9434bc0d80076138ea986833156c5a48c9c7a8abb0c96039ddbb4afc93184169 \ - --hash=sha256:94f05348c4406450f9d73d38efb41d669ad6cd90c7ee194810d0eefbfa875a7a \ - --hash=sha256:960c2fc686ba27b535f9fd2b52d87ecd7e4fd1cf877f6a5cba8afb5b4a8bd204 \ - --hash=sha256:96581619c57419c3d7d78703d5b78c1e5e5fc0172d60f555bdebaced82ded19a \ - --hash=sha256:97a0895a8e840ab3520e2288db7cace3a1981300d48babeb50e7425609e2e0ab \ - --hash=sha256:98c4fb90bb82b70a4ed79ca35f656f4281885be076f3f970ce315402b53099ae \ - --hash=sha256:99c5280a329d5fa18ef30fd10c793a190d996567667908bef8a7f81f8202b948 \ - --hash=sha256:9acda8604a57bb60544e4646a4615c1866ee6c04a8edef9b8ee6fd1d8fa2ddc8 \ - --hash=sha256:9c705601e16c03466cb72011bd1af55d68fa65b045356d8f96c216e5f6db0fa5 \ - --hash=sha256:9e8f8afb552297aca127c90cb840e9a1d4bfd6a10d7d8f2d9176e1acc69bad30 \ - --hash=sha256:9eb3e33fdbe43f88c3c75fa608c25e7c47bbd80f48d012763cb67c47f39a7e16 \ - --hash=sha256:9ec49dff7e2b3c85cdeaa412e9d438f0ecd71676fde61ec57027dd392f00c693 \ - --hash=sha256:9f377d0a924e5cc94dc620bc6366fc3e889586a7f18b748901cf016c916e2084 \ - --hash=sha256:a09a6d073fb5789456545bdee2474d14395792faa0527887f2f4ec1a486a59d3 \ - --hash=sha256:a2713a95b47374169409d18103366de1050fe0ea73db358fc7a7acb2880422d4 \ - --hash=sha256:a3b6fb0c207cc661fa0bf8c66d8d9b657331ccc814f4719468af61034b478592 \ - --hash=sha256:a4b88ebe35ce54205c7074f7302bd08a4cb83256a3e0870c72d6f68a3aaf8e49 \ - --hash=sha256:a88d13e7ca367394908f8a276b89d04a3652044612b9a408a0bb22a5ed976a1a \ - --hash=sha256:ac6cde5fba8d7d8c6ac963dbb0256a9854e9fafff52fbcc58fdf819357892c3e \ - --hash=sha256:ae32f24bbfb7dbb485a24b30b1149e2f200be94777232aeadba3eecece4d0aa4 \ - --hash=sha256:b009194665bcd128e23eaddef362e745601afa4641930848af4c8559e88f18f9 \ - --hash=sha256:b1e56bab2e12b2b9ed300218c351ee2a3d8c8fdab5b1ec6193e11a817767e47b \ - --hash=sha256:b395bbca716c38bef3c764f187860e88c724b342c26275bc03e906142fc5964f \ - --hash=sha256:b59d13c443f8e049d9e94099c7e412e34610f1f49be0f230ec656a10692a5802 \ - --hash=sha256:ba2715d842ffa787be87cbfce150d5e88c87a98e0b62e0f5aa489169a393dbbb \ - --hash=sha256:bb7fb776645af5cc58ab804c58d7eba545a97e047254a52ce89c157b5af6cd0b \ - --hash=sha256:c038a8fdc8103cd51dbd986ecdce141473ffd9775a7a8057a6ed9c3653478011 \ - --hash=sha256:c20423ce14771d98353d2e25e83591fa75dfa90a3c1848f3d7c68243b4fbded3 \ - --hash=sha256:c5c94825f744694c4b8db20b71dba9a257cd2ba8e010a803042123f3a25d50d7 \ - --hash=sha256:cf00e5db968c3f67eccd2778574cf64d8b27d95b237770aa32400bd7a1ca4f6c \ - --hash=sha256:d23b5fe492b0805a50d3371e8a728a9134d8de5447dce4c885f5587294750734 \ - --hash=sha256:d7bc4b7f9c4921eba72677cd9fedd2308f4a4ca3e12fab58935295ad9ea98700 \ - --hash=sha256:d8a9b889aeabd7a4e9af0b7f4ab5ad94d42e7ff679aaec6d0db21e3b639ad58d \ - --hash=sha256:dacd50501cd017f8cccb328da0c90823511d70d24a323196826d923aad865901 \ - --hash=sha256:e036a3a645fe92309ec34b918394bb377950cbb43039a97edae6c08db64b23e2 \ - --hash=sha256:e09a0a06348a2dd73e7213353c90d709502d9786219f69b731f6caa0efeb46f5 \ - --hash=sha256:e0c8e31cfcc4592cb200160344b2fb6ae0f9e4effe06c644b5a125d4ae5ebe23 \ - --hash=sha256:e1b4951125ec10c70802f2cb09736c895861cd39fd9dcb35107b4dc8ae6220b8 \ - --hash=sha256:e2a9ea08e8c58bb17655630198833109227dea914cd20be660f52215f6de5613 \ - --hash=sha256:e3403f24bcb9c3b29113611c3c16a2a447c3953ecf86b79775e7be06f7ae7ccb \ - --hash=sha256:e574a7d61cf10351d734bcddabbe15ede0eaa8a02070d85446875dc11189a251 \ - --hash=sha256:e67446b19e014d37342f7195f592a2a948141d15a312fe0e700c2fd2f03124f6 \ - --hash=sha256:e736c93e9c274fce6419af4aac199984d866e55f8a4cec9114671d0ea9688780 \ - --hash=sha256:e7c952aefdf2460f4ae55c5e9c3e80aa72f706a6317e06020f80e96253b1accd \ - --hash=sha256:e7f8659a48995edee7229522984bd1009c1213929c769c2daa80b40fe49a180c \ - --hash=sha256:e96eb1a34396e9430c19d8338d2ec33015e4a87ef2b4449db94c22412e25ccdf \ - --hash=sha256:ec7534e63ae0f3759df3a1ed4fa6bc8f75082a924b590619c0dd2f76d7043caa \ - --hash=sha256:ed2f9c7216e53c3df02264f25d824b079cc5914f9e2deba94155190ef648ee40 \ - --hash=sha256:eeacf451c99b4525f700f078becff32c32ec327b10dcf31306a8a52d78166de7 \ - --hash=sha256:f10d9c0b0188fe85398c61147bbd2a657d616c876863bfeff43376e0e3134673 \ - --hash=sha256:f2bef8237544f4e42878c61cef4e2839fee6346dc60f5739f876a9c50be7fcdb \ - --hash=sha256:f33c8748abef4d8717bb20e8fb1b3e07c6adacb7fd6beaae971a764cf5f30d61 \ - --hash=sha256:f7c183e786e299b5d6c49fb43a769f8eb8e04a2726a2bd5887b98b5cc2d67940 \ - --hash=sha256:fa4dcb605c6f82a80c7f95713c2b11c3b8e9893b3ebd2bc9bde93165ed6107be \ - --hash=sha256:fa89cb11bc71a63b69568d5b8a25c3ca25b6d54c15f907ca1c130d72f320b76b \ - --hash=sha256:fe242cd381e0fb65758faf5ad96c2e460df6ee5b2de1072fe97e4127927e00b4 \ - --hash=sha256:fe91b87fc295973096251e2d25a811388e7d8adf3bd2b97ef6ae78bc4ac6c476 \ - --hash=sha256:fed38a5edb7945f4d1bcabe2fcd05db4f6ec7e0e82560088b754f7e08d93772d \ - --hash=sha256:ff0a7b0a82a7ab905cbda74006318d1b12e37c797eb1b0d4eb3e316cf47f658f \ - --hash=sha256:ff15c147b2ad66da1f2cbb0622313f2242d8e6e8f9b79b5206c84523a4473248 \ - --hash=sha256:ff5e771f5dcbc81c64898c597a434f7682f2259e0cd666932a913d53d1341d1a +aiohttp==3.13.3 \ + --hash=sha256:01ad2529d4b5035578f5081606a465f3b814c542882804e2e8cda61adf5c71bf \ + --hash=sha256:042e9e0bcb5fba81886c8b4fbb9a09d6b8a00245fd8d88e4d989c1f96c74164c \ + --hash=sha256:05861afbbec40650d8a07ea324367cb93e9e8cc7762e04dd4405df99fa65159c \ + --hash=sha256:084911a532763e9d3dd95adf78a78f4096cd5f58cdc18e6fdbc1b58417a45423 \ + --hash=sha256:0add0900ff220d1d5c5ebbf99ed88b0c1bbf87aa7e4262300ed1376a6b13414f \ + --hash=sha256:0db318f7a6f065d84cb1e02662c526294450b314a02bd9e2a8e67f0d8564ce40 \ + --hash=sha256:10b47b7ba335d2e9b1239fa571131a87e2d8ec96b333e68b2a305e7a98b0bae2 \ + --hash=sha256:1449ceddcdbcf2e0446957863af03ebaaa03f94c090f945411b61269e2cb5daf \ + --hash=sha256:147e422fd1223005c22b4fe080f5d93ced44460f5f9c105406b753612b587821 \ + --hash=sha256:1cb93e166e6c28716c8c6aeb5f99dfb6d5ccf482d29fe9bf9a794110e6d0ab64 \ + --hash=sha256:215a685b6fbbfcf71dfe96e3eba7a6f58f10da1dfdf4889c7dd856abe430dca7 \ + --hash=sha256:2712039939ec963c237286113c68dbad80a82a4281543f3abf766d9d73228998 \ + --hash=sha256:27234ef6d85c914f9efeb77ff616dbf4ad2380be0cda40b4db086ffc7ddd1b7d \ + --hash=sha256:28e027cf2f6b641693a09f631759b4d9ce9165099d2b5d92af9bd4e197690eea \ + --hash=sha256:2b8d8ddba8f95ba17582226f80e2de99c7a7948e66490ef8d947e272a93e9463 \ + --hash=sha256:2ba0eea45eb5cc3172dbfc497c066f19c41bac70963ea1a67d51fc92e4cf9a80 \ + --hash=sha256:2be0e9ccf23e8a94f6f0650ce06042cefc6ac703d0d7ab6c7a917289f2539ad4 \ + --hash=sha256:2e41b18a58da1e474a057b3d35248d8320029f61d70a37629535b16a0c8f3767 \ + --hash=sha256:2eb752b102b12a76ca02dff751a801f028b4ffbbc478840b473597fc91a9ed43 \ + --hash=sha256:2fc82186fadc4a8316768d61f3722c230e2c1dcab4200d52d2ebdf2482e47592 \ + --hash=sha256:2fff83cfc93f18f215896e3a190e8e5cb413ce01553901aca925176e7568963a \ + --hash=sha256:31a83ea4aead760dfcb6962efb1d861db48c34379f2ff72db9ddddd4cda9ea2e \ + --hash=sha256:34749271508078b261c4abb1767d42b8d0c0cc9449c73a4df494777dc55f0687 \ + --hash=sha256:34bac00a67a812570d4a460447e1e9e06fae622946955f939051e7cc895cfab8 \ + --hash=sha256:37239e9f9a7ea9ac5bf6b92b0260b01f8a22281996da609206a84df860bc1261 \ + --hash=sha256:37da61e244d1749798c151421602884db5270faf479cf0ef03af0ff68954c9dd \ + --hash=sha256:3b61b7169ababd7802f9568ed96142616a9118dd2be0d1866e920e77ec8fa92a \ + --hash=sha256:3d9908a48eb7416dc1f4524e69f1d32e5d90e3981e4e37eb0aa1cd18f9cfa2a4 \ + --hash=sha256:3dd4dce1c718e38081c8f35f323209d4c1df7d4db4bab1b5c88a6b4d12b74587 \ + --hash=sha256:4021b51936308aeea0367b8f006dc999ca02bc118a0cc78c303f50a2ff6afb91 \ + --hash=sha256:40c5e40ecc29ba010656c18052b877a1c28f84344825efa106705e835c28530f \ + --hash=sha256:425c126c0dc43861e22cb1c14ba4c8e45d09516d0a3ae0a3f7494b79f5f233a3 \ + --hash=sha256:44531a36aa2264a1860089ffd4dce7baf875ee5a6079d5fb42e261c704ef7344 \ + --hash=sha256:48e377758516d262bde50c2584fc6c578af272559c409eecbdd2bae1601184d6 \ + --hash=sha256:49a03727c1bba9a97d3e93c9f93ca03a57300f484b6e935463099841261195d3 \ + --hash=sha256:4ae5b5a0e1926e504c81c5b84353e7a5516d8778fbbff00429fe7b05bb25cbce \ + --hash=sha256:4e239d501f73d6db1522599e14b9b321a7e3b1de66ce33d53a765d975e9f4808 \ + --hash=sha256:56339a36b9f1fc708260c76c87e593e2afb30d26de9ae1eb445b5e051b98a7a1 \ + --hash=sha256:568f416a4072fbfae453dcf9a99194bbb8bdeab718e08ee13dfa2ba0e4bebf29 \ + --hash=sha256:5b179331a481cb5529fca8b432d8d3c7001cb217513c94cd72d668d1248688a3 \ + --hash=sha256:5b6073099fb654e0a068ae678b10feff95c5cae95bbfcbfa7af669d361a8aa6b \ + --hash=sha256:5d2d94f1f5fcbe40838ac51a6ab5704a6f9ea42e72ceda48de5e6b898521da51 \ + --hash=sha256:5dff64413671b0d3e7d5918ea490bdccb97a4ad29b3f311ed423200b2203e01c \ + --hash=sha256:5e1d8c8b8f1d91cd08d8f4a3c2b067bfca6ec043d3ff36de0f3a715feeedf926 \ + --hash=sha256:5f8ca7f2bb6ba8348a3614c7918cc4bb73268c5ac2a207576b7afea19d3d9f64 \ + --hash=sha256:642f752c3eb117b105acbd87e2c143de710987e09860d674e068c4c2c441034f \ + --hash=sha256:65d2ccb7eabee90ce0503c17716fc77226be026dcc3e65cce859a30db715025b \ + --hash=sha256:693781c45a4033d31d4187d2436f5ac701e7bbfe5df40d917736108c1cc7436e \ + --hash=sha256:694976222c711d1d00ba131904beb60534f93966562f64440d0c9d41b8cdb440 \ + --hash=sha256:697753042d57f4bf7122cab985bf15d0cef23c770864580f5af4f52023a56bd6 \ + --hash=sha256:69c56fbc1993fa17043e24a546959c0178fe2b5782405ad4559e6c13975c15e3 \ + --hash=sha256:6de499a1a44e7de70735d0b39f67c8f25eb3d91eb3103be99ca0fa882cdd987d \ + --hash=sha256:6fc0e2337d1a4c3e6acafda6a78a39d4c14caea625124817420abceed36e2415 \ + --hash=sha256:75ca857eba4e20ce9f546cd59c7007b33906a4cd48f2ff6ccf1ccfc3b646f279 \ + --hash=sha256:7a4a94eb787e606d0a09404b9c38c113d3b099d508021faa615d70a0131907ce \ + --hash=sha256:7b5e8fe4de30df199155baaf64f2fcd604f4c678ed20910db8e2c66dc4b11603 \ + --hash=sha256:7bfdc049127717581866fa4708791220970ce291c23e28ccf3922c700740fdc0 \ + --hash=sha256:7e63f210bc1b57ef699035f2b4b6d9ce096b5914414a49b0997c839b2bd2223c \ + --hash=sha256:7f9120f7093c2a32d9647abcaf21e6ad275b4fbec5b55969f978b1a97c7c86bf \ + --hash=sha256:8057c98e0c8472d8846b9c79f56766bcc57e3e8ac7bfd510482332366c56c591 \ + --hash=sha256:80dd4c21b0f6237676449c6baaa1039abae86b91636b6c91a7f8e61c87f89540 \ + --hash=sha256:81e97251d9298386c2b7dbeb490d3d1badbdc69107fb8c9299dd04eb39bddc0e \ + --hash=sha256:82611aeec80eb144416956ec85b6ca45a64d76429c1ed46ae1b5f86c6e0c9a26 \ + --hash=sha256:8542f41a62bcc58fc7f11cf7c90e0ec324ce44950003feb70640fc2a9092c32a \ + --hash=sha256:859bd3f2156e81dd01432f5849fc73e2243d4a487c4fd26609b1299534ee1845 \ + --hash=sha256:87797e645d9d8e222e04160ee32aa06bc5c163e8499f24db719e7852ec23093a \ + --hash=sha256:87b9aab6d6ed88235aa2970294f496ff1a1f9adcd724d800e9b952395a80ffd9 \ + --hash=sha256:8a60e60746623925eab7d25823329941aee7242d559baa119ca2b253c88a7bd6 \ + --hash=sha256:90455115e5da1c3c51ab619ac57f877da8fd6d73c05aacd125c5ae9819582aba \ + --hash=sha256:90751b8eed69435bac9ff4e3d2f6b3af1f57e37ecb0fbeee59c0174c9e2d41df \ + --hash=sha256:947c26539750deeaee933b000fb6517cc770bbd064bad6033f1cff4803881e43 \ + --hash=sha256:96d604498a7c782cb15a51c406acaea70d8c027ee6b90c569baa6e7b93073679 \ + --hash=sha256:988a8c5e317544fdf0d39871559e67b6341065b87fceac641108c2096d5506b7 \ + --hash=sha256:9a9dc347e5a3dc7dfdbc1f82da0ef29e388ddb2ed281bfce9dd8248a313e62b7 \ + --hash=sha256:9ae8dd55c8e6c4257eae3a20fd2c8f41edaea5992ed67156642493b8daf3cecc \ + --hash=sha256:9af5e68ee47d6534d36791bbe9b646d2a7c7deb6fc24d7943628edfbb3581f29 \ + --hash=sha256:9b174f267b5cfb9a7dba9ee6859cecd234e9a681841eb85068059bc867fb8f02 \ + --hash=sha256:9bf9f7a65e7aa20dd764151fb3d616c81088f91f8df39c3893a536e279b4b984 \ + --hash=sha256:9d4c940f02f49483b18b079d1c27ab948721852b281f8b015c058100e9421dd1 \ + --hash=sha256:9ebf57d09e131f5323464bd347135a88622d1c0976e88ce15b670e7ad57e4bd6 \ + --hash=sha256:a19884d2ee70b06d9204b2727a7b9f983d0c684c650254679e716b0b77920632 \ + --hash=sha256:a1e53262fd202e4b40b70c3aff944a8155059beedc8a89bba9dc1f9ef06a1b56 \ + --hash=sha256:a2212ad43c0833a873d0fb3c63fa1bacedd4cf6af2fee62bf4b739ceec3ab239 \ + --hash=sha256:a45530014d7a1e09f4a55f4f43097ba0fd155089372e105e4bff4ca76cb1b168 \ + --hash=sha256:a949eee43d3782f2daae4f4a2819b2cb9b0c5d3b7f7a927067cc84dafdbb9f88 \ + --hash=sha256:add1da70de90a2569c5e15249ff76a631ccacfe198375eead4aadf3b8dc849dc \ + --hash=sha256:af71fff7bac6bb7508956696dce8f6eec2bbb045eceb40343944b1ae62b5ef11 \ + --hash=sha256:b04be762396457bef43f3597c991e192ee7da460a4953d7e647ee4b1c28e7046 \ + --hash=sha256:b0d95340658b9d2f11d9697f59b3814a9d3bb4b7a7c20b131df4bcef464037c0 \ + --hash=sha256:b1a6102b4d3ebc07dad44fbf07b45bb600300f15b552ddf1851b5390202ea2e3 \ + --hash=sha256:b46020d11d23fe16551466c77823df9cc2f2c1e63cc965daf67fa5eec6ca1877 \ + --hash=sha256:b556c85915d8efaed322bf1bdae9486aa0f3f764195a0fb6ee962e5c71ef5ce1 \ + --hash=sha256:b903a4dfee7d347e2d87697d0713be59e0b87925be030c9178c5faa58ea58d5c \ + --hash=sha256:b928f30fe49574253644b1ca44b1b8adbd903aa0da4b9054a6c20fc7f4092a25 \ + --hash=sha256:b99281b0704c103d4e11e72a76f1b543d4946fea7dd10767e7e1b5f00d4e5704 \ + --hash=sha256:bae5c2ed2eae26cc382020edad80d01f36cb8e746da40b292e68fec40421dc6a \ + --hash=sha256:bb4f7475e359992b580559e008c598091c45b5088f28614e855e42d39c2f1033 \ + --hash=sha256:bbe7d4cecacb439e2e2a8a1a7b935c25b812af7a5fd26503a66dadf428e79ec1 \ + --hash=sha256:bfc1cc2fe31a6026a8a88e4ecfb98d7f6b1fec150cfd708adbfd1d2f42257c29 \ + --hash=sha256:c014c7ea7fb775dd015b2d3137378b7be0249a448a1612268b5a90c2d81de04d \ + --hash=sha256:c048058117fd649334d81b4b526e94bde3ccaddb20463a815ced6ecbb7d11160 \ + --hash=sha256:c0e2d366af265797506f0283487223146af57815b388623f0357ef7eac9b209d \ + --hash=sha256:c19b90316ad3b24c69cd78d5c9b4f3aa4497643685901185b65166293d36a00f \ + --hash=sha256:c685f2d80bb67ca8c3837823ad76196b3694b0159d232206d1e461d3d434666f \ + --hash=sha256:c6b8568a3bb5819a0ad087f16d40e5a3fb6099f39ea1d5625a3edc1e923fc538 \ + --hash=sha256:d32764c6c9aafb7fb55366a224756387cd50bfa720f32b88e0e6fa45b27dcf29 \ + --hash=sha256:d5a372fd5afd301b3a89582817fdcdb6c34124787c70dbcc616f259013e7eef7 \ + --hash=sha256:d60ac9663f44168038586cab2157e122e46bdef09e9368b37f2d82d354c23f72 \ + --hash=sha256:dca68018bf48c251ba17c72ed479f4dafe9dbd5a73707ad8d28a38d11f3d42af \ + --hash=sha256:de2c184bb1fe2cbd2cefba613e9db29a5ab559323f994b6737e370d3da0ac455 \ + --hash=sha256:e3531d63d3bdfa7e3ac5e9b27b2dd7ec9df3206a98e0b3445fa906f233264c57 \ + --hash=sha256:e50a2e1404f063427c9d027378472316201a2290959a295169bcf25992d04558 \ + --hash=sha256:e636b3c5f61da31a92bf0d91da83e58fdfa96f178ba682f11d24f31944cdd28c \ + --hash=sha256:ea37047c6b367fd4bd632bff8077449b8fa034b69e812a18e0132a00fae6e808 \ + --hash=sha256:f33ed1a2bf1997a36661874b017f5c4b760f41266341af36febaf271d179f6d7 \ + --hash=sha256:f76c1e3fe7d7c8afad7ed193f89a292e1999608170dcc9751a7462a87dfd5bc0 \ + --hash=sha256:f9444f105664c4ce47a2a7171a2418bce5b7bae45fb610f4e2c36045d85911d3 \ + --hash=sha256:fc290605db2a917f6e81b0e1e0796469871f5af381ce15c604a3c5c7e51cb730 \ + --hash=sha256:fc353029f176fd2b3ec6cfc71be166aba1936fe5d73dd1992ce289ca6647a9aa \ + --hash=sha256:fee0c6bc7db1de362252affec009707a17478a00ec69f797d23ca256e36d5940 # via # aiobotocore # aiohttp-cors @@ -166,9 +166,9 @@ annotated-types==0.7.0 \ --hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 \ --hash=sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89 # via pydantic -anyio==4.12.0 \ - --hash=sha256:73c693b567b0c55130c104d0b43a9baf3aa6a31fc6110116509f27bf75e21ec0 \ - --hash=sha256:dad2376a628f98eeca4881fc56cd06affd18f659b17a747d3ff0307ced94b1bb +anyio==4.12.1 \ + --hash=sha256:41cfcc3a4c85d3f05c932da7c26d0201ac36f72abd4435ba90d0464a3ffed703 \ + --hash=sha256:d405828884fc140aa80a3c667b8beed277f1dfedec42ba031bd6ac3db606ab6c # via # elasticsearch # httpx @@ -242,9 +242,9 @@ async-timeout==5.0.1 \ --hash=sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c \ --hash=sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3 # via redis -atpublic==5.1 \ - --hash=sha256:135783dbd887fbddb6ef032d104da70c124f2b44b9e2d79df07b9da5334825e3 \ - --hash=sha256:abc1f4b3dbdd841cc3539e4b5e4f3ad41d658359de704e30cb36da4d4e9d3022 +atpublic==7.0.0 \ + --hash=sha256:466ef10d0c8bbd14fd02a5fbd5a8b6af6a846373d91106d3a07c16d72d96b63e \ + --hash=sha256:6702bd9e7245eb4e8220a3e222afcef7f87412154732271ee7deee4433b72b4b # via ibis-framework attrs==25.4.0 \ --hash=sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11 \ @@ -254,9 +254,9 @@ attrs==25.4.0 \ # jsonlines # jsonschema # referencing -azure-core==1.37.0 \ - --hash=sha256:7064f2c11e4b97f340e8e8c6d923b822978be3016e46b7bc4aa4b337cfb48aee \ - --hash=sha256:b3abe2c59e7d6bb18b38c275a5029ff80f98990e7c90a5e646249a56630fcc19 +azure-core==1.38.0 \ + --hash=sha256:8194d2682245a3e4e3151a667c686464c3786fed7918b394d035bdcd61bb5993 \ + --hash=sha256:ab0c9b2cd71fecb1842d52c965c95285d3cfb38902f6766e4a471f1cd8905335 # via # azure-identity # azure-storage-blob @@ -264,9 +264,9 @@ azure-identity==1.25.1 \ --hash=sha256:87ca8328883de6036443e1c37b40e8dc8fb74898240f61071e09d2e369361456 \ --hash=sha256:e9edd720af03dff020223cd269fa3a61e8f345ea75443858273bcb44844ab651 # via feast (setup.py) -azure-storage-blob==12.27.1 \ - --hash=sha256:65d1e25a4628b7b6acd20ff7902d8da5b4fde8e46e19c8f6d213a3abc3ece272 \ - --hash=sha256:a1596cc4daf5dac9be115fcb5db67245eae894cf40e4248243754261f7b674a6 +azure-storage-blob==12.28.0 \ + --hash=sha256:00fb1db28bf6a7b7ecaa48e3b1d5c83bfadacc5a678b77826081304bd87d6461 \ + --hash=sha256:e7d98ea108258d29aa0efbfd591b2e2075fa1722a2fae8699f0b3c9de11eff41 # via feast (setup.py) babel==2.17.0 \ --hash=sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d \ @@ -345,9 +345,9 @@ beautifulsoup4==4.14.3 \ # via # docling # nbconvert -bigtree==1.0.4 \ - --hash=sha256:e4af0c5bc0d2cd72e18442965e4509f642b16a0de65db6d0ec116e30f959010c \ - --hash=sha256:f58a3238bb9b1142d893c9de4921bfd18d435427c75e0c168dd580eabf6dc7fd +bigtree==1.1.0 \ + --hash=sha256:3f1ff63d2d66d31bf19855ddda8884637edf8dd1fc1aa118cf3a750580ece48b \ + --hash=sha256:f54f99d842732c91cce39c596a3755a2e8325b1cab5bc6876f5b15bd3942081c # via feast (setup.py) bleach[css]==6.3.0 \ --hash=sha256:6f3b91b1c0a02bb9a78b5a454c92506aa0fdf197e1d5e114d2e00c6f64306d22 \ @@ -370,17 +370,13 @@ botocore==1.38.46 \ # moto # s3transfer # snowflake-connector-python -build==1.3.0 \ - --hash=sha256:698edd0ea270bde950f53aed21f3a0135672206f3911e0176261a31e0e07b397 \ - --hash=sha256:7145f0b5061ba90a1500d60bd1b13ca0a8a4cebdd0cc16ed8adf1c0e739f43b4 +build==1.4.0 \ + --hash=sha256:6a07c1b8eb6f2b311b96fcbdbce5dab5fe637ffda0fd83c9cac622e927501596 \ + --hash=sha256:f1b91b925aa322be454f8330c6fb48b465da993d1e7e7e6fa35027ec49f3c936 # via # feast (setup.py) # pip-tools # singlestoredb -cachetools==6.2.4 \ - --hash=sha256:69a7a52634fed8b8bf6e24a050fb60bff1c9bd8f6d24572b99c32d4e71e62a51 \ - --hash=sha256:82c5c05585e70b6ba2d3ae09ea60b79548872185d2f24ae1f2709d37299fd607 - # via google-auth cassandra-driver==3.29.3 \ --hash=sha256:064bf45d3ca87239e11168c0110676fc64f7fdbddb4bcba9be787b8ad5f6d734 \ --hash=sha256:0785f6e0986089e922378ae3b64b5f696440aeb595fb84c2cf3ccef220c6ae91 \ @@ -414,9 +410,9 @@ cassandra-driver==3.29.3 \ --hash=sha256:fcf45725ae1751cb934b9b827a7d9cd899bbd09eb1ad28e2160b4584de35ba77 \ --hash=sha256:ff6b82ee4533f6fd4474d833e693b44b984f58337173ee98ed76bce08721a636 # via feast (setup.py) -certifi==2025.11.12 \ - --hash=sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b \ - --hash=sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316 +certifi==2026.1.4 \ + --hash=sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c \ + --hash=sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120 # via # clickhouse-connect # docling @@ -700,9 +696,9 @@ cloudpickle==3.1.2 \ --hash=sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414 \ --hash=sha256:9acb47f6afd73f60dc1df93bb801b472f05ff42fa6c84167d25cb206be1fbf4a # via dask -codeflare-sdk==0.33.0 \ - --hash=sha256:3cd834410053e745ad1afa1edba7577a9ea909690c00b6e724d63f64b83f9ca2 \ - --hash=sha256:a8d0a838b4ec197e91a547b8011425c1b1af8768f8cf2346365adfa24622ed48 +codeflare-sdk==0.33.1 \ + --hash=sha256:6622a73edde5042455ae7d76279a5279c55db4950533ea7f12aac2fc51d49bb8 \ + --hash=sha256:ad41ec5260217fd030904fb4b9fe62e26c3f51ac7999a5d607eb4b1359edd5e5 # via feast (setup.py) colorama==0.4.6 \ --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ @@ -927,9 +923,9 @@ dask[dataframe]==2025.12.0 \ --hash=sha256:4213ce9c5d51d6d89337cff69de35d902aa0bf6abdb8a25c942a4d0281f3a598 \ --hash=sha256:8d478f2aabd025e2453cf733ad64559de90cf328c20209e4574e9543707c3e1b # via feast (setup.py) -datasets==4.0.0 \ - --hash=sha256:7ef95e62025fd122882dbce6cb904c8cd3fbc829de6669a5eb939c77d50e203d \ - --hash=sha256:9657e7140a9050db13443ba21cb5de185af8af944479b00e7ff1e00a61c8dbf1 +datasets==4.4.2 \ + --hash=sha256:6f5ef3417504d9cd663c71c1b90b9a494ff4c2076a2cd6a6e40ceee6ad95befc \ + --hash=sha256:9de16e415c4ba4713eac0493f7c7dc74f3aa21599297f00cc6ddab409cb7b24b # via feast (setup.py) db-dtypes==1.5.0 \ --hash=sha256:abdbb2e4eb965800ed6f98af0c5c1cafff9063ace09114be2d26a7f046be2c8a \ @@ -990,9 +986,9 @@ deprecation==2.1.0 \ --hash=sha256:72b3bde64e5d778694b0cf68178aed03d15e15477116add3fb773e581f9518ff \ --hash=sha256:a10811591210e1fb0e768a8c25517cabeabcba6f0bf96564f8ff45189f90b14a # via python-keycloak -dill==0.3.8 \ - --hash=sha256:3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca \ - --hash=sha256:c36ca9ffb54365bdd2f8eb3eff7d2a21237f8452b57ace88b1ac615b7e815bd7 +dill==0.3.9 \ + --hash=sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a \ + --hash=sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c # via # feast (setup.py) # datasets @@ -1009,9 +1005,9 @@ docling==2.27.0 \ --hash=sha256:1288ed75b27e33bf94daff34faffc6d11b7d7ccc13e3df84fb24adad3991f72d \ --hash=sha256:faba35662612a2c687a3a463e501d95f645316436084af92a0442ce162429a3d # via feast (setup.py) -docling-core[chunking]==2.57.0 \ - --hash=sha256:24b71172e8bc4fbe2b4213b29f51878114f4c13f25fc0bc9920168505c76c1a3 \ - --hash=sha256:398768b4d275ad2e11703ad9446fd0315a9a5fc8d09bc45ed207302d844d6ed5 +docling-core[chunking]==2.59.0 \ + --hash=sha256:014e1075c41fdac0932f25226d6c0972cb9772d866efcf8d04ca2abe246797c1 \ + --hash=sha256:08900edbaf86a0acdd3d1fb5d47284f3826f68638245ba4a03aba1558d0067d9 # via # docling # docling-ibm-models @@ -1059,59 +1055,48 @@ docutils==0.19 \ --hash=sha256:33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6 \ --hash=sha256:5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc # via sphinx -duckdb==1.1.3 \ - --hash=sha256:00cca22df96aa3473fe4584f84888e2cf1c516e8c2dd837210daec44eadba586 \ - --hash=sha256:08935700e49c187fe0e9b2b86b5aad8a2ccd661069053e38bfaed3b9ff795efd \ - --hash=sha256:0897f83c09356206ce462f62157ce064961a5348e31ccb2a557a7531d814e70e \ - --hash=sha256:09c68522c30fc38fc972b8a75e9201616b96ae6da3444585f14cf0d116008c95 \ - --hash=sha256:0a55169d2d2e2e88077d91d4875104b58de45eff6a17a59c7dc41562c73df4be \ - --hash=sha256:0ba6baa0af33ded836b388b09433a69b8bec00263247f6bf0a05c65c897108d3 \ - --hash=sha256:183ac743f21c6a4d6adfd02b69013d5fd78e5e2cd2b4db023bc8a95457d4bc5d \ - --hash=sha256:1aa3abec8e8995a03ff1a904b0e66282d19919f562dd0a1de02f23169eeec461 \ - --hash=sha256:1c0226dc43e2ee4cc3a5a4672fddb2d76fd2cf2694443f395c02dd1bea0b7fce \ - --hash=sha256:1d9ab6143e73bcf17d62566e368c23f28aa544feddfd2d8eb50ef21034286f24 \ - --hash=sha256:2141c6b28162199999075d6031b5d63efeb97c1e68fb3d797279d31c65676269 \ - --hash=sha256:252d9b17d354beb9057098d4e5d5698e091a4f4a0d38157daeea5fc0ec161670 \ - --hash=sha256:25fb02629418c0d4d94a2bc1776edaa33f6f6ccaa00bd84eb96ecb97ae4b50e9 \ - --hash=sha256:2f073d15d11a328f2e6d5964a704517e818e930800b7f3fa83adea47f23720d3 \ - --hash=sha256:35c420f58abc79a68a286a20fd6265636175fadeca1ce964fc8ef159f3acc289 \ - --hash=sha256:4ebf5f60ddbd65c13e77cddb85fe4af671d31b851f125a4d002a313696af43f1 \ - --hash=sha256:4f0e2e5a6f5a53b79aee20856c027046fba1d73ada6178ed8467f53c3877d5e0 \ - --hash=sha256:51c6d79e05b4a0933672b1cacd6338f882158f45ef9903aef350c4427d9fc898 \ - --hash=sha256:51e7dbd968b393343b226ab3f3a7b5a68dee6d3fe59be9d802383bf916775cb8 \ - --hash=sha256:5ace6e4b1873afdd38bd6cc8fcf90310fb2d454f29c39a61d0c0cf1a24ad6c8d \ - --hash=sha256:5d57776539211e79b11e94f2f6d63de77885f23f14982e0fac066f2885fcf3ff \ - --hash=sha256:6411e21a2128d478efbd023f2bdff12464d146f92bc3e9c49247240448ace5a6 \ - --hash=sha256:647f17bd126170d96a38a9a6f25fca47ebb0261e5e44881e3782989033c94686 \ - --hash=sha256:68c3a46ab08836fe041d15dcbf838f74a990d551db47cb24ab1c4576fc19351c \ - --hash=sha256:77f26884c7b807c7edd07f95cf0b00e6d47f0de4a534ac1706a58f8bc70d0d31 \ - --hash=sha256:7c71169fa804c0b65e49afe423ddc2dc83e198640e3b041028da8110f7cd16f7 \ - --hash=sha256:80158f4c7c7ada46245837d5b6869a336bbaa28436fbb0537663fa324a2750cd \ - --hash=sha256:872d38b65b66e3219d2400c732585c5b4d11b13d7a36cd97908d7981526e9898 \ - --hash=sha256:8ee97ec337794c162c0638dda3b4a30a483d0587deda22d45e1909036ff0b739 \ - --hash=sha256:911d58c22645bfca4a5a049ff53a0afd1537bc18fedb13bc440b2e5af3c46148 \ - --hash=sha256:9c619e4849837c8c83666f2cd5c6c031300cd2601e9564b47aa5de458ff6e69d \ - --hash=sha256:9d0767ada9f06faa5afcf63eb7ba1befaccfbcfdac5ff86f0168c673dd1f47aa \ - --hash=sha256:9e3f5cd604e7c39527e6060f430769b72234345baaa0987f9500988b2814f5e4 \ - --hash=sha256:a1f83c7217c188b7ab42e6a0963f42070d9aed114f6200e3c923c8899c090f16 \ - --hash=sha256:a1fa0c502f257fa9caca60b8b1478ec0f3295f34bb2efdc10776fc731b8a6c5f \ - --hash=sha256:a30dd599b8090ea6eafdfb5a9f1b872d78bac318b6914ada2d35c7974d643640 \ - --hash=sha256:a433ae9e72c5f397c44abdaa3c781d94f94f4065bcbf99ecd39433058c64cb38 \ - --hash=sha256:a4748635875fc3c19a7320a6ae7410f9295557450c0ebab6d6712de12640929a \ - --hash=sha256:b74e121ab65dbec5290f33ca92301e3a4e81797966c8d9feef6efdf05fc6dafd \ - --hash=sha256:c443d3d502335e69fc1e35295fcfd1108f72cb984af54c536adfd7875e79cee5 \ - --hash=sha256:c5336939d83837af52731e02b6a78a446794078590aa71fd400eb17f083dda3e \ - --hash=sha256:cddc6c1a3b91dcc5f32493231b3ba98f51e6d3a44fe02839556db2b928087378 \ - --hash=sha256:d08308e0a46c748d9c30f1d67ee1143e9c5ea3fbcccc27a47e115b19e7e78aa9 \ - --hash=sha256:d5724fd8a49e24d730be34846b814b98ba7c304ca904fbdc98b47fa95c0b0cee \ - --hash=sha256:e4ef7ba97a65bd39d66f2a7080e6fb60e7c3e41d4c1e19245f90f53b98e3ac32 \ - --hash=sha256:e59087dbbb63705f2483544e01cccf07d5b35afa58be8931b224f3221361d537 \ - --hash=sha256:e86006958e84c5c02f08f9b96f4bc26990514eab329b1b4f71049b3727ce5989 \ - --hash=sha256:ecb1dc9062c1cc4d2d88a5e5cd8cc72af7818ab5a3c0f796ef0ffd60cfd3efb4 \ - --hash=sha256:eeacb598120040e9591f5a4edecad7080853aa8ac27e62d280f151f8c862afa3 \ - --hash=sha256:f549af9f7416573ee48db1cf8c9d27aeed245cb015f4b4f975289418c6cf7320 \ - --hash=sha256:f58db1b65593ff796c8ea6e63e2e144c944dd3d51c8d8e40dffa7f41693d35d3 \ - --hash=sha256:f9b47036945e1db32d70e414a10b1593aec641bd4c5e2056873d971cc21e978b +duckdb==1.4.3 \ + --hash=sha256:006aca6a6d6736c441b02ff5c7600b099bb8b7f4de094b8b062137efddce42df \ + --hash=sha256:130c6760f6c573f9c9fe9aba56adba0fab48811a4871b7b8fd667318b4a3e8da \ + --hash=sha256:16952ac05bd7e7b39946695452bf450db1ebbe387e1e7178e10f593f2ea7b9a8 \ + --hash=sha256:1b35491db98ccd11d151165497c084a9d29d3dc42fc80abea2715a6c861ca43d \ + --hash=sha256:1b9b445970fd18274d5ac07a0b24c032e228f967332fb5ebab3d7db27738c0e4 \ + --hash=sha256:1bb8bd5a3dd205983726185b280a211eacc9f5bc0c4d4505bec8c87ac33a8ccb \ + --hash=sha256:1e5457dda91b67258aae30fb1a0df84183a9f6cd27abac1d5536c0d876c6dfa1 \ + --hash=sha256:20c88effaa557a11267706b01419c542fe42f893dee66e5a6daa5974ea2d4a46 \ + --hash=sha256:23a3a077821bed1768a84ac9cbf6b6487ead33e28e62cb118bda5fb8f9e53dea \ + --hash=sha256:23b12854032c1a58d0452e2b212afa908d4ce64171862f3792ba9a596ba7c765 \ + --hash=sha256:274d4a31aba63115f23e7e7b401e3e3a937f3626dc9dea820a9c7d3073f450d2 \ + --hash=sha256:2b195270ff1a661f22cbd547a215baff265b7d4469a76a215c8992b5994107c3 \ + --hash=sha256:2b30245375ea94ab528c87c61fc3ab3e36331180b16af92ee3a37b810a745d24 \ + --hash=sha256:316711a9e852bcfe1ed6241a5f654983f67e909e290495f3562cccdf43be8180 \ + --hash=sha256:366bf607088053dce845c9d24c202c04d78022436cc5d8e4c9f0492de04afbe7 \ + --hash=sha256:4f868a7e6d9b37274a1aa34849ea92aa964e9bd59a5237d6c17e8540533a1e4f \ + --hash=sha256:4fef6a053a1c485292000bf0c338bba60f89d334f6a06fc76ba4085a5a322b76 \ + --hash=sha256:5634e40e1e2d972e4f75bced1fbdd9e9e90faa26445c1052b27de97ee546944a \ + --hash=sha256:6302452e57aef29aae3977063810ed7b2927967b97912947b9cca45c1c21955f \ + --hash=sha256:6db124f53a3edcb32b0a896ad3519e37477f7e67bf4811cb41ab60c1ef74e4c8 \ + --hash=sha256:702dabbc22b27dc5b73e7599c60deef3d8c59968527c36b391773efddd8f4cf1 \ + --hash=sha256:813f189039b46877b5517f1909c7b94a8fe01b4bde2640ab217537ea0fe9b59b \ + --hash=sha256:854b79375fa618f6ffa8d84fb45cbc9db887f6c4834076ea10d20bc106f1fd90 \ + --hash=sha256:8afba22c370f06b7314aa46bfed052509269e482bcfb3f7b1ea0fa17ae49ce42 \ + --hash=sha256:8d080e8d1bf2d226423ec781f539c8f6b6ef3fd42a9a58a7160de0a00877a21f \ + --hash=sha256:8d53b217698a76c4957e2c807dd9295d409146f9d3d7932f372883201ba9d25a \ + --hash=sha256:90f241f25cffe7241bf9f376754a5845c74775e00e1c5731119dc88cd71e0cb2 \ + --hash=sha256:9dc049ba7e906cb49ca2b6d4fbf7b6615ec3883193e8abb93f0bef2652e42dda \ + --hash=sha256:9e625b2b4d52bafa1fd0ebdb0990c3961dac8bb00e30d327185de95b68202131 \ + --hash=sha256:a2813f4635f4d6681cc3304020374c46aca82758c6740d7edbc237fe3aae2744 \ + --hash=sha256:a7c864df027da1ee95f0c32def67e15d02cd4a906c9c1cbae82c09c5112f526b \ + --hash=sha256:a8b0a8764e1b5dd043d168c8f749314f7a1252b5a260fa415adaa26fa3b958fd \ + --hash=sha256:aa26a7406205bc1426cee28bdfdf084f669a5686977dafa4c3ec65873989593c \ + --hash=sha256:caa2164c91f7e91befb1ffb081b3cd97a137117533aef7abe1538b03ad72e3a9 \ + --hash=sha256:d0ff08388ef8b1d1a4c95c321d6c5fa11201b241036b1ee740f9d841df3d6ba2 \ + --hash=sha256:de984cd24a6cbefdd6d4a349f7b9a46e583ca3e58ce10d8def0b20a6e5fcbe78 \ + --hash=sha256:deab351ac43b6282a3270e3d40e3d57b3b50f472d9fd8c30975d88a31be41231 \ + --hash=sha256:ef7ef15347ce97201b1b5182a5697682679b04c3374d5a01ac10ba31cf791b95 \ + --hash=sha256:efa7f1191c59e34b688fcd4e588c1b903a4e4e1f4804945902cf0b20e08a9001 \ + --hash=sha256:fbc63ffdd03835f660155b37a1b6db2005bcd46e5ad398b8cac141eb305d2a3d \ + --hash=sha256:fea43e03604c713e25a25211ada87d30cd2a044d8f27afab5deba26ac49e5268 # via ibis-framework dunamai==1.25.0 \ --hash=sha256:7f9dc687dd3256e613b6cc978d9daabfd2bb5deb8adc541fc135ee423ffa98ab \ @@ -1191,9 +1176,9 @@ fastjsonschema==2.21.2 \ --hash=sha256:1c797122d0a86c5cace2e54bf4e819c36223b552017172f32c5c024a6b77e463 \ --hash=sha256:b1eb43748041c880796cd077f1a07c3d94e93ae84bba5ed36800a33554ae05de # via nbformat -filelock==3.20.1 \ - --hash=sha256:15d9e9a67306188a44baa72f569d2bfd803076269365fdea0934385da4dc361a \ - --hash=sha256:b8360948b351b80f420878d8516519a2204b07aefcdcfd24912a5d33127f188c +filelock==3.20.3 \ + --hash=sha256:18c57ee915c7ec61cff0ecf7f0f869936c7c30191bb0cf406f1341778d0834e1 \ + --hash=sha256:4b0dda527ee31078689fc205ec4f1c1bf7d56cf88b6dc9426c4f230e46c2dce1 # via # datasets # huggingface-hub @@ -1358,9 +1343,9 @@ geomet==1.1.0 \ --hash=sha256:4372fe4e286a34acc6f2e9308284850bd8c4aa5bc12065e2abbd4995900db12f \ --hash=sha256:51e92231a0ef6aaa63ac20c443377ba78a303fd2ecd179dc3567de79f3c11605 # via cassandra-driver -google-api-core[grpc]==2.28.1 \ - --hash=sha256:2b405df02d68e68ce0fbc138559e6036559e685159d148ae5861013dc201baf8 \ - --hash=sha256:4021b0f8ceb77a6fb4de6fde4502cecab45062e66ff4f2895169e0b35bc9466c +google-api-core[grpc]==2.29.0 \ + --hash=sha256:84181be0f8e6b04006df75ddfe728f24489f0af57c96a529ff7cf45bc28797f7 \ + --hash=sha256:d30bc60980daa36e314b5d5a3e5958b0200cb44ca8fa1be2b614e932b75a3ea9 # via # feast (setup.py) # google-cloud-bigquery @@ -1371,9 +1356,9 @@ google-api-core[grpc]==2.28.1 \ # google-cloud-storage # opencensus # pandas-gbq -google-auth==2.45.0 \ - --hash=sha256:82344e86dc00410ef5382d99be677c6043d72e502b625aa4f4afa0bdacca0f36 \ - --hash=sha256:90d3f41b6b72ea72dd9811e765699ee491ab24139f34ebf1ca2b9cc0c38708f3 +google-auth==2.47.0 \ + --hash=sha256:833229070a9dfee1a353ae9877dcd2dec069a8281a4e72e72f77d4a70ff945da \ + --hash=sha256:c516d68336bfde7cf0da26aab674a36fedcf04b37ac4edd59c597178760c3498 # via # google-api-core # google-auth-oauthlib @@ -1392,9 +1377,9 @@ google-auth-oauthlib==1.2.2 \ # via # pandas-gbq # pydata-google-auth -google-cloud-bigquery[pandas]==3.39.0 \ - --hash=sha256:cb375e1d63dea9bd5bf735e66024338f294159d43afdf63e1d023f5fcbbf55ea \ - --hash=sha256:dc7a64921465859105461b43c42562e38e797d7a73feb72b3cfc4865b7b1c5ef +google-cloud-bigquery[pandas]==3.40.0 \ + --hash=sha256:0469bcf9e3dad3cab65b67cce98180c8c0aacf3253d47f0f8e976f299b49b5ab \ + --hash=sha256:b3ccb11caf0029f15b29569518f667553fe08f6f1459b959020c83fbbd8f2e68 # via # feast (setup.py) # pandas-gbq @@ -1824,6 +1809,7 @@ httpx[http2]==0.27.2 \ --hash=sha256:f7c2be1d2f3c3c3160d441802406b206c2b76f5947b11115e6df10c6c65e66c2 # via # feast (setup.py) + # datasets # fastapi-mcp # jupyterlab # mcp @@ -1848,19 +1834,13 @@ hyperframe==6.1.0 \ --hash=sha256:b03380493a519fce58ea5af42e4a42317bf9bd425596f7a0835ffce80f1a42e5 \ --hash=sha256:f630908a00854a7adeabd6382b43923a4c4cd4b821fcb527e6ab9e15382a3b08 # via h2 -ibis-framework[duckdb, mssql]==9.5.0 \ - --hash=sha256:145fe30d94f111cff332580c275ce77725c5ff7086eede93af0b371649d009c0 \ - --hash=sha256:1c8a29277e63ee0dfc289bc8f550164b5e3bdaec1b76b62436c37d331bb4ef84 - # via - # feast (setup.py) - # ibis-substrait -ibis-substrait==4.0.1 \ - --hash=sha256:107ca49383a3cca2fdc88f67ea2f0172620c16fa8f39c9c52305af85dd6180b4 \ - --hash=sha256:614810a173d096fbc49d87a9b419e2162a3c25d8efda1a4d57a389ce56b9041f +ibis-framework[duckdb, mssql]==11.0.0 \ + --hash=sha256:0249185eaabb800e224f448cc06ce8ba168df00b269e132d62629f462eca8842 \ + --hash=sha256:92ff82a96f4eac7f86fa9b6a315e04b5a8f9ed3d186539d88f48e628363f2e72 # via feast (setup.py) -identify==2.6.15 \ - --hash=sha256:1181ef7608e00704db228516541eb83a88a9f94433a8c80bb9b5bd54b1d81757 \ - --hash=sha256:e4f4864b96c6557ef2a1e1c951771838f4edc9df3a72ec7118b338801b11c7bf +identify==2.6.16 \ + --hash=sha256:391ee4d77741d994189522896270b787aed8670389bfd60f326d677d64a6dfb0 \ + --hash=sha256:846857203b5511bbe94d5a352a48ef2359532bc8f6727b5544077a0dcfb24980 # via pre-commit idna==3.11 \ --hash=sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea \ @@ -1906,9 +1886,9 @@ ipykernel==7.1.0 \ --hash=sha256:58a3fc88533d5930c3546dc7eac66c6d288acde4f801e2001e65edc5dc9cf0db \ --hash=sha256:763b5ec6c5b7776f6a8d7ce09b267693b4e5ce75cb50ae696aaefb3c85e1ea4c # via jupyterlab -ipython==9.8.0 \ - --hash=sha256:8e4ce129a627eb9dd221c41b1d2cdaed4ef7c9da8c17c63f6f578fe231141f83 \ - --hash=sha256:ebe6d1d58d7d988fbf23ff8ff6d8e1622cfdb194daf4b7b73b792c4ec3b85385 +ipython==9.9.0 \ + --hash=sha256:48fbed1b2de5e2c7177eefa144aba7fcb82dac514f09b57e2ac9da34ddb54220 \ + --hash=sha256:b457fe9165df2b84e8ec909a97abcf2ed88f565970efba16b1f7229c283d252b # via # great-expectations # ipykernel @@ -1961,9 +1941,9 @@ joblib==1.5.3 \ --hash=sha256:5fc3c5039fc5ca8c0276333a188bbd59d6b7ab37fe6632daa76bc7f9ec18e713 \ --hash=sha256:8561a3269e6801106863fd0d6d84bb737be9e7631e33aaed3fb9ce5953688da3 # via scikit-learn -json5==0.12.1 \ - --hash=sha256:b2743e77b3242f8d03c143dd975a6ec7c52e2f2afe76ed934e53503dd4ad4990 \ - --hash=sha256:d9c9b3bc34a5f54d43c35e11ef7cb87d8bdd098c6ace87117a7b7e83e705c1d5 +json5==0.13.0 \ + --hash=sha256:9a08e1dd65f6a4d4c6fa82d216cf2477349ec2346a38fd70cc11d2557499fbcc \ + --hash=sha256:b1edf8d487721c0bf64d83c28e91280781f6e21f4a797d3261c7c828d4c165bf # via jupyterlab-server jsonlines==4.0.0 \ --hash=sha256:0c6d2c09117550c089995247f605ae4cf77dd1533041d366351f6f298822ea74 \ @@ -1983,9 +1963,9 @@ jsonref==1.1.0 \ --hash=sha256:32fe8e1d85af0fdefbebce950af85590b22b60f9e95443176adbde4e1ecea552 \ --hash=sha256:590dc7773df6c21cbf948b5dac07a72a251db28b0238ceecce0a2abfa8ec30a9 # via docling-core -jsonschema[format-nongpl]==4.25.1 \ - --hash=sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63 \ - --hash=sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85 +jsonschema[format-nongpl]==4.26.0 \ + --hash=sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326 \ + --hash=sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce # via # feast (setup.py) # altair @@ -2000,9 +1980,9 @@ jsonschema-specifications==2025.9.1 \ --hash=sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe \ --hash=sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d # via jsonschema -jupyter-client==8.7.0 \ - --hash=sha256:3357212d9cbe01209e59190f67a3a7e1f387a4f4e88d1e0433ad84d7b262531d \ - --hash=sha256:3671a94fd25e62f5f2f554f5e95389c2294d89822378a5f2dd24353e1494a9e0 +jupyter-client==8.8.0 \ + --hash=sha256:d556811419a4f2d96c869af34e854e3f059b7cc2d6d01a9cd9c85c267691be3e \ + --hash=sha256:f93a5b99c5e23a507b773d3a1136bd6e16c67883ccdbd9a829b0bbdb98cd7d7a # via # ipykernel # jupyter-server @@ -2039,9 +2019,9 @@ jupyter-server-terminals==0.5.3 \ --hash=sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa \ --hash=sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269 # via jupyter-server -jupyterlab==4.5.1 \ - --hash=sha256:09da1ddfbd9eec18b5101dbb8515612aa1e47443321fb99503725a88e93d20d9 \ - --hash=sha256:31b059de96de0754ff1f2ce6279774b6aab8c34d7082e9752db58207c99bd514 +jupyterlab==4.5.2 \ + --hash=sha256:76466ebcfdb7a9bb7e2fbd6459c0e2c032ccf75be673634a84bee4b3e6b13ab6 \ + --hash=sha256:c80a6b9f6dace96a566d590c65ee2785f61e7cd4aac5b4d453dcc7d0d5e069b7 # via notebook jupyterlab-pygments==0.3.0 \ --hash=sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d \ @@ -2289,9 +2269,9 @@ markdown-it-py==4.0.0 \ --hash=sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147 \ --hash=sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3 # via rich -marko==2.2.1 \ - --hash=sha256:31e9a18b35c113e506ace5594716fa3df2872f8955908e279bc551f3eb1f0db8 \ - --hash=sha256:e29d7e071a3b0cb2f7cc4c500d55f893dc5a45d85a8298dde6cb4e4dffd794d3 +marko==2.2.2 \ + --hash=sha256:6940308e655f63733ca518c47a68ec9510279dbb916c83616e4c4b5829f052e8 \ + --hash=sha256:f064ae8c10416285ad1d96048dc11e98ef04e662d3342ae416f662b70aa7959e # via docling markupsafe==3.0.3 \ --hash=sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f \ @@ -2787,19 +2767,23 @@ multidict==6.7.0 \ # aiobotocore # aiohttp # yarl -multiprocess==0.70.16 \ - --hash=sha256:0dfd078c306e08d46d7a8d06fb120313d87aa43af60d66da43ffff40b44d2f41 \ - --hash=sha256:161af703d4652a0e1410be6abccecde4a7ddffd19341be0a7011b94aeb171ac1 \ - --hash=sha256:37b55f71c07e2d741374998c043b9520b626a8dddc8b3129222ca4f1a06ef67a \ - --hash=sha256:476887be10e2f59ff183c006af746cb6f1fd0eadcfd4ef49e605cbe2659920ee \ - --hash=sha256:a0bafd3ae1b732eac64be2e72038231c1ba97724b60b09400d68f229fcc2fbf3 \ - --hash=sha256:a71d82033454891091a226dfc319d0cfa8019a4e888ef9ca910372a446de4435 \ - --hash=sha256:af4cabb0dac72abfb1e794fa7855c325fd2b55a10a44628a3c1ad3311c04127a \ - --hash=sha256:ba8c31889abf4511c7308a8c52bb4a30b9d590e7f58523302ba00237702ca054 \ - --hash=sha256:c4a9944c67bd49f823687463660a2d6daae94c289adff97e0f9d696ba6371d02 \ - --hash=sha256:d951bed82c8f73929ac82c61f01a7b5ce8f3e5ef40f5b52553b4f547ce2b08ec \ - --hash=sha256:e7b9d0f307cd9bd50851afaac0dba2cb6c44449efff697df7c7645f7d3f2be3a \ - --hash=sha256:fc0544c531920dde3b00c29863377f87e1632601092ea2daca74e4beb40faa2e +multiprocess==0.70.17 \ + --hash=sha256:1d52f068357acd1e5bbc670b273ef8f81d57863235d9fbf9314751886e141968 \ + --hash=sha256:20c28ca19079a6c879258103a6d60b94d4ffe2d9da07dda93fb1c8bc6243f522 \ + --hash=sha256:27b8409c02b5dd89d336107c101dfbd1530a2cd4fd425fc27dcb7adb6e0b47bf \ + --hash=sha256:2818af14c52446b9617d1b0755fa70ca2f77c28b25ed97bdaa2c69a22c47b46c \ + --hash=sha256:2884701445d0177aec5bd5f6ee0df296773e4fb65b11903b94c613fb46cfb7d1 \ + --hash=sha256:2b12e081df87ab755190e227341b2c3b17ee6587e9c82fecddcbe6aa812cd7f7 \ + --hash=sha256:2ea0939b0f4760a16a548942c65c76ff5afd81fbf1083c56ae75e21faf92e426 \ + --hash=sha256:349525099a0c9ac5936f0488b5ee73199098dac3ac899d81d326d238f9fd3ccd \ + --hash=sha256:38357ca266b51a2e22841b755d9a91e4bb7b937979a54d411677111716c32744 \ + --hash=sha256:4ae2f11a3416809ebc9a48abfc8b14ecce0652a0944731a1493a3c1ba44ff57a \ + --hash=sha256:7ddb24e5bcdb64e90ec5543a1f05a39463068b6d3b804aa3f2a4e16ec28562d6 \ + --hash=sha256:a0f01cd9d079af7a8296f521dc03859d1a414d14c1e2b6e676ef789333421c95 \ + --hash=sha256:a22a6b1a482b80eab53078418bb0f7025e4f7d93cc8e1f36481477a023884861 \ + --hash=sha256:c2c82d0375baed8d8dd0d8c38eb87c5ae9c471f8e384ad203a36f095ee860f67 \ + --hash=sha256:c3feb874ba574fbccfb335980020c1ac631fbf2a3f7bee4e2042ede62558a021 \ + --hash=sha256:d729f55198a3579f6879766a6d9b72b42d4b320c0dcb7844afb774d75b573c62 # via # datasets # mpire @@ -2893,9 +2877,9 @@ nodeenv==1.10.0 \ --hash=sha256:5bb13e3eed2923615535339b3c620e76779af4cb4c6a90deccc9e36b274d3827 \ --hash=sha256:996c191ad80897d076bdfba80a41994c2b47c68e224c542b48feba42ba00f8bb # via pre-commit -notebook==7.5.1 \ - --hash=sha256:b2fb4cef4d47d08c33aecce1c6c6e84be05436fbd791f88fce8df9fbca088b75 \ - --hash=sha256:f4e2451c19910c33b88709b84537e11f6368c1cdff1aa0c43db701aea535dd44 +notebook==7.5.2 \ + --hash=sha256:17d078a98603d70d62b6b4b3fcb67e87d7a68c398a7ae9b447eb2d7d9aec9979 \ + --hash=sha256:83e82f93c199ca730313bea1bb24bc279ea96f74816d038a92d26b6b9d5f3e4a # via great-expectations notebook-shim==0.2.4 \ --hash=sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef \ @@ -2903,79 +2887,79 @@ notebook-shim==0.2.4 \ # via # jupyterlab # notebook -numpy==2.4.0 \ - --hash=sha256:009bd0ea12d3c784b6639a8457537016ce5172109e585338e11334f6a7bb88ee \ - --hash=sha256:02a2038eb27f9443a8b266a66911e926566b5a6ffd1a689b588f7f35b81e7dc3 \ - --hash=sha256:0804a8e4ab070d1d35496e65ffd3cf8114c136a2b81f61dfab0de4b218aacfd5 \ - --hash=sha256:0feafc9e03128074689183031181fac0897ff169692d8492066e949041096548 \ - --hash=sha256:1889b3a3f47a7b5bee16bc25a2145bd7cb91897f815ce3499db64c7458b6d91d \ - --hash=sha256:1d8f9fde5f6dc1b6fc34df8162f3b3079365468703fee7f31d4e0cc8c63baed9 \ - --hash=sha256:1ee32359fb7543b7b7bd0b2f46294db27e29e7bbdf70541e81b190836cd83ded \ - --hash=sha256:20c115517513831860c573996e395707aa9fb691eb179200125c250e895fcd93 \ - --hash=sha256:21555da4ec4a0c942520ead42c3b0dc9477441e085c42b0fbdd6a084869a6f6b \ - --hash=sha256:23a3e9d1a6f360267e8fbb38ba5db355a6a7e9be71d7fce7ab3125e88bb646c8 \ - --hash=sha256:2a8b6bb8369abefb8bd1801b054ad50e02b3275c8614dc6e5b0373c305291037 \ - --hash=sha256:2e284ca13d5a8367e43734148622caf0b261b275673823593e3e3634a6490f83 \ - --hash=sha256:2f585f52b2baf07ff3356158d9268ea095e221371f1074fadea2f42544d58b4d \ - --hash=sha256:316b2f2584682318539f0bcaca5a496ce9ca78c88066579ebd11fd06f8e4741e \ - --hash=sha256:32ed06d0fe9cae27d8fb5f400c63ccee72370599c75e683a6358dd3a4fb50aaf \ - --hash=sha256:355354388cba60f2132df297e2d53053d4063f79077b67b481d21276d61fc4df \ - --hash=sha256:35ddc8f4914466e6fc954c76527aa91aa763682a4f6d73249ef20b418fe6effb \ - --hash=sha256:36667db4d6c1cea79c8930ab72fadfb4060feb4bfe724141cd4bd064d2e5f8ce \ - --hash=sha256:36cbfb13c152b1c7c184ddac43765db8ad672567e7bafff2cc755a09917ed2e6 \ - --hash=sha256:39699233bc72dd482da1415dcb06076e32f60eddc796a796c5fb6c5efce94667 \ - --hash=sha256:39b19251dec4de8ff8496cd0806cbe27bf0684f765abb1f4809554de93785f2d \ - --hash=sha256:3d857f55e7fdf7c38ab96c4558c95b97d1c685be6b05c249f5fdafcbd6f9899e \ - --hash=sha256:3de19cfecd1465d0dcf8a5b5ea8b3155b42ed0b639dba4b71e323d74f2a3be5e \ - --hash=sha256:3f3096405acc48887458bbf9f6814d43785ac7ba2a57ea6442b581dedbc60ce6 \ - --hash=sha256:40483b2f2d3ba7aad426443767ff5632ec3156ef09742b96913787d13c336471 \ - --hash=sha256:413aa561266a4be2d06cd2b9665e89d9f54c543f418773076a76adcf2af08bc7 \ - --hash=sha256:44aba2f0cafd287871a495fb3163408b0bd25bbce135c6f621534a07f4f7875c \ - --hash=sha256:49ff32b09f5aa0cd30a20c2b39db3e669c845589f2b7fc910365210887e39344 \ - --hash=sha256:4d1cfce39e511069b11e67cd0bd78ceff31443b7c9e5c04db73c7a19f572967c \ - --hash=sha256:57c540ed8fb1f05cb997c6761cd56db72395b0d6985e90571ff660452ade4f98 \ - --hash=sha256:5f48cb3e88fbc294dc90e215d86fbaf1c852c63dbdb6c3a3e63f45c4b57f7344 \ - --hash=sha256:5fe44e277225fd3dff6882d86d3d447205d43532c3627313d17e754fb3905a0e \ - --hash=sha256:60e8c196cd82cbbd4f130b5290007e13e6de3eca79f0d4d38014769d96a7c475 \ - --hash=sha256:65167da969cd1ec3a1df31cb221ca3a19a8aaa25370ecb17d428415e93c1935e \ - --hash=sha256:680060061adb2d74ce352628cb798cfdec399068aa7f07ba9fb818b2b3305f98 \ - --hash=sha256:6bbaebf0d11567fa8926215ae731e1d58e6ec28a8a25235b8a47405d301332db \ - --hash=sha256:6c05483c3136ac4c91b4e81903cb53a8707d316f488124d0398499a4f8e8ef51 \ - --hash=sha256:6dc8b7e2f4eb184b37655195f421836cfae6f58197b67e3ffc501f1333d993fa \ - --hash=sha256:6e504f7b16118198f138ef31ba24d985b124c2c469fe8467007cf30fd992f934 \ - --hash=sha256:74623f2ab5cc3f7c886add4f735d1031a1d2be4a4ae63c0546cfd74e7a31ddf6 \ - --hash=sha256:77f0d13fa87036d7553bf81f0e1fe3ce68d14c9976c9851744e4d3e91127e95f \ - --hash=sha256:85eef4cb5625c47ee6425c58a3502555e10f45ee973da878ac8248ad58c136f3 \ - --hash=sha256:882567b7ae57c1b1a0250208cc21a7976d8cbcc49d5a322e607e6f09c9e0bd53 \ - --hash=sha256:8b986403023c8f3bf8f487c2e6186afda156174d31c175f747d8934dfddf3479 \ - --hash=sha256:8cfa5f29a695cb7438965e6c3e8d06e0416060cf0d709c1b1c1653a939bf5c2a \ - --hash=sha256:8eafe7c36c8430b7794edeab3087dec7bf31d634d92f2af9949434b9d1964cba \ - --hash=sha256:9198f447e1dc5647d07c9a6bbe2063cc0132728cc7175b39dbc796da5b54920d \ - --hash=sha256:92190db305a6f48734d3982f2c60fa30d6b5ee9bff10f2887b930d7b40119f4c \ - --hash=sha256:927ccf5cd17c48f801f4ed43a7e5673a2724bd2171460be3e3894e6e332ef83a \ - --hash=sha256:98e81648e0b36e325ab67e46b5400a7a6d4a22b8a7c8e8bbfe20e7db7906bf95 \ - --hash=sha256:9a818668b674047fd88c4cddada7ab8f1c298812783e8328e956b78dc4807f9f \ - --hash=sha256:a152d86a3ae00ba5f47b3acf3b827509fd0b6cb7d3259665e63dafbad22a75ea \ - --hash=sha256:a2718c1de8504121714234b6f8241d0019450353276c88b9453c9c3d92e101db \ - --hash=sha256:a39fb973a726e63223287adc6dafe444ce75af952d711e400f3bf2b36ef55a7b \ - --hash=sha256:a899699294f28f7be8992853c0c60741f16ff199205e2e6cdca155762cbaa59d \ - --hash=sha256:a8fdfed3deaf1928fb7667d96e0567cdf58c2b370ea2ee7e586aa383ec2cb346 \ - --hash=sha256:aabb081ca0ec5d39591fc33018cd4b3f96e1a2dd6756282029986d00a785fba4 \ - --hash=sha256:b1f5b45829ac1848893f0ddf5cb326110604d6df96cdc255b0bf9edd154104d4 \ - --hash=sha256:b48e35f4ab6f6a7597c46e301126ceba4c44cd3280e3750f85db48b082624fa4 \ - --hash=sha256:b54c83f1c0c0f1d748dca0af516062b8829d53d1f0c402be24b4257a9c48ada6 \ - --hash=sha256:ba0cb30acd3ef11c94dc27fbfba68940652492bc107075e7ffe23057f9425681 \ - --hash=sha256:bb50ce5fb202a26fd5404620e7ef820ad1ab3558b444cb0b55beb7ef66cd2d63 \ - --hash=sha256:c95eb6db2884917d86cde0b4d4cf31adf485c8ec36bf8696dd66fa70de96f36b \ - --hash=sha256:d0ffd9e2e4441c96a9c91ec1783285d80bf835b677853fc2770a89d50c1e48ac \ - --hash=sha256:d57b5046c120561ba8fa8e4030fbb8b822f3063910fa901ffadf16e2b7128ad6 \ - --hash=sha256:d9e6a7664ddd9746e20b7325351fe1a8408d0a2bf9c63b5e898290ddc8f09544 \ - --hash=sha256:dc578891de1db95b2a35001b695451767b580bb45753717498213c5ff3c41d63 \ - --hash=sha256:e0434aa22c821f44eeb4c650b81c7fbdd8c0122c6c4b5a576a76d5a35625ecd9 \ - --hash=sha256:e06a922a469cae9a57100864caf4f8a97a1026513793969f8ba5b63137a35d25 \ - --hash=sha256:e493962256a38f58283de033d8af176c5c91c084ea30f15834f7545451c42059 \ - --hash=sha256:ecb0019d44f4cdb50b676c5d0cb4b1eae8e15d1ed3d3e6639f986fc92b2ec52c \ - --hash=sha256:f935c4493eda9069851058fa0d9e39dbf6286be690066509305e52912714dbb2 +numpy==2.4.1 \ + --hash=sha256:0093e85df2960d7e4049664b26afc58b03236e967fb942354deef3208857a04c \ + --hash=sha256:09aa8a87e45b55a1c2c205d42e2808849ece5c484b2aab11fecabec3841cafba \ + --hash=sha256:0cce2a669e3c8ba02ee563c7835f92c153cf02edff1ae05e1823f1dde21b16a5 \ + --hash=sha256:0e6e8f9d9ecf95399982019c01223dc130542960a12edfa8edd1122dfa66a8a8 \ + --hash=sha256:0f118ce6b972080ba0758c6087c3617b5ba243d806268623dc34216d69099ba0 \ + --hash=sha256:178de8f87948163d98a4c9ab5bee4ce6519ca918926ec8df195af582de28544d \ + --hash=sha256:18e14c4d09d55eef39a6ab5b08406e84bc6869c1e34eef45564804f90b7e0574 \ + --hash=sha256:2023ef86243690c2791fd6353e5b4848eedaa88ca8a2d129f462049f6d484696 \ + --hash=sha256:20d4649c773f66cc2fc36f663e091f57c3b7655f936a4c681b4250855d1da8f5 \ + --hash=sha256:2302dc0224c1cbc49bb94f7064f3f923a971bfae45c33870dcbff63a2a550505 \ + --hash=sha256:26f0bcd9c79a00e339565b303badc74d3ea2bd6d52191eeca5f95936cad107d0 \ + --hash=sha256:297c72b1b98100c2e8f873d5d35fb551fce7040ade83d67dd51d38c8d42a2162 \ + --hash=sha256:2f44de05659b67d20499cbc96d49f2650769afcb398b79b324bb6e297bfe3844 \ + --hash=sha256:2ffd257026eb1b34352e749d7cc1678b5eeec3e329ad8c9965a797e08ccba205 \ + --hash=sha256:382ad67d99ef49024f11d1ce5dcb5ad8432446e4246a4b014418ba3a1175a1f4 \ + --hash=sha256:3869ea1ee1a1edc16c29bbe3a2f2a4e515cc3a44d43903ad41e0cacdbaf733dc \ + --hash=sha256:3d1a100e48cb266090a031397863ff8a30050ceefd798f686ff92c67a486753d \ + --hash=sha256:423797bdab2eeefbe608d7c1ec7b2b4fd3c58d51460f1ee26c7500a1d9c9ee93 \ + --hash=sha256:42d7dd5fa36d16d52a84f821eb96031836fd405ee6955dd732f2023724d0aa01 \ + --hash=sha256:49e792ec351315e16da54b543db06ca8a86985ab682602d90c60ef4ff4db2a9c \ + --hash=sha256:4e53170557d37ae404bf8d542ca5b7c629d6efa1117dac6a83e394142ea0a43f \ + --hash=sha256:4f1b68ff47680c2925f8063402a693ede215f0257f02596b1318ecdfb1d79e33 \ + --hash=sha256:4f9c360ecef085e5841c539a9a12b883dff005fbd7ce46722f5e9cef52634d82 \ + --hash=sha256:529050522e983e00a6c1c6b67411083630de8b57f65e853d7b03d9281b8694d2 \ + --hash=sha256:52b5f61bdb323b566b528899cc7db2ba5d1015bda7ea811a8bcf3c89c331fa42 \ + --hash=sha256:538bf4ec353709c765ff75ae616c34d3c3dca1a68312727e8f2676ea644f8509 \ + --hash=sha256:5adf01965456a664fc727ed69cc71848f28d063217c63e1a0e200a118d5eec9a \ + --hash=sha256:5b55aa56165b17aaf15520beb9cbd33c9039810e0d9643dd4379e44294c7303e \ + --hash=sha256:5d558123217a83b2d1ba316b986e9248a1ed1971ad495963d555ccd75dcb1556 \ + --hash=sha256:5de60946f14ebe15e713a6f22850c2372fa72f4ff9a432ab44aa90edcadaa65a \ + --hash=sha256:62fea415f83ad8fdb6c20840578e5fbaf5ddd65e0ec6c3c47eda0f69da172510 \ + --hash=sha256:6436cffb4f2bf26c974344439439c95e152c9a527013f26b3577be6c2ca64295 \ + --hash=sha256:6461de5113088b399d655d45c3897fa188766415d0f568f175ab071c8873bd73 \ + --hash=sha256:69e7419c9012c4aaf695109564e3387f1259f001b4326dfa55907b098af082d3 \ + --hash=sha256:71abbea030f2cfc3092a0ff9f8c8fdefdc5e0bf7d9d9c99663538bb0ecdac0b9 \ + --hash=sha256:7211b95ca365519d3596a1d8688a95874cc94219d417504d9ecb2df99fa7bfa8 \ + --hash=sha256:727c6c3275ddefa0dc078524a85e064c057b4f4e71ca5ca29a19163c607be745 \ + --hash=sha256:79e9e06c4c2379db47f3f6fc7a8652e7498251789bf8ff5bd43bf478ef314ca2 \ + --hash=sha256:7ad270f438cbdd402c364980317fb6b117d9ec5e226fff5b4148dd9aa9fc6e02 \ + --hash=sha256:7d5d7999df434a038d75a748275cd6c0094b0ecdb0837342b332a82defc4dc4d \ + --hash=sha256:8097529164c0f3e32bb89412a0905d9100bf434d9692d9fc275e18dcf53c9344 \ + --hash=sha256:82c55962006156aeef1629b953fd359064aa47e4d82cfc8e67f0918f7da3344f \ + --hash=sha256:8361ea4220d763e54cff2fbe7d8c93526b744f7cd9ddab47afeff7e14e8503be \ + --hash=sha256:899d2c18024984814ac7e83f8f49d8e8180e2fbe1b2e252f2e7f1d06bea92425 \ + --hash=sha256:8ad35f20be147a204e28b6a0575fbf3540c5e5f802634d4258d55b1ff5facce1 \ + --hash=sha256:8f085da926c0d491ffff3096f91078cc97ea67e7e6b65e490bc8dcda65663be2 \ + --hash=sha256:9171a42fcad32dcf3fa86f0a4faa5e9f8facefdb276f54b8b390d90447cff4e2 \ + --hash=sha256:92a0e65272fd60bfa0d9278e0484c2f52fe03b97aedc02b357f33fe752c52ffb \ + --hash=sha256:941c2a93313d030f219f3a71fd3d91a728b82979a5e8034eb2e60d394a2b83f9 \ + --hash=sha256:98b35775e03ab7f868908b524fc0a84d38932d8daf7b7e1c3c3a1b6c7a2c9f15 \ + --hash=sha256:a1ceafc5042451a858231588a104093474c6a5c57dcc724841f5c888d237d690 \ + --hash=sha256:a73044b752f5d34d4232f25f18160a1cc418ea4507f5f11e299d8ac36875f8a0 \ + --hash=sha256:a7870e8c5fc11aef57d6fea4b4085e537a3a60ad2cdd14322ed531fdca68d261 \ + --hash=sha256:a92f227dbcdc9e4c3e193add1a189a9909947d4f8504c576f4a732fd0b54240a \ + --hash=sha256:ac08c63cb7779b85e9d5318e6c3518b424bc1f364ac4cb2c6136f12e5ff2dccc \ + --hash=sha256:b6bcf39112e956594b3331316d90c90c90fb961e39696bda97b89462f5f3943f \ + --hash=sha256:c0faba4a331195bfa96f93dd9dfaa10b2c7aa8cda3a02b7fd635e588fe821bf5 \ + --hash=sha256:ce9ce141a505053b3c7bce3216071f3bf5c182b8b28930f14cd24d43932cd2df \ + --hash=sha256:cf6470d91d34bf669f61d515499859fa7a4c2f7c36434afb70e82df7217933f9 \ + --hash=sha256:d3703409aac693fa82c0aee023a1ae06a6e9d065dba10f5e8e80f642f1e9d0a2 \ + --hash=sha256:d3e3087f53e2b4428766b54932644d148613c5a595150533ae7f00dab2f319a8 \ + --hash=sha256:d3f8f0df9f4b8be57b3bf74a1d087fec68f927a2fab68231fdb442bf2c12e426 \ + --hash=sha256:d797454e37570cfd61143b73b8debd623c3c0952959adb817dd310a483d58a1b \ + --hash=sha256:e1a27bb1b2dee45a2a53f5ca6ff2d1a7f135287883a1689e930d44d1ff296c87 \ + --hash=sha256:e3bd2cb07841166420d2fa7146c96ce00cb3410664cbc1a6be028e456c4ee220 \ + --hash=sha256:e7b6b5e28bbd47b7532698e5db2fe1db693d84b58c254e4389d99a27bb9b8f6b \ + --hash=sha256:e867df947d427cdd7a60e3e271729090b0f0df80f5f10ab7dd436f40811699c3 \ + --hash=sha256:ea66d2b41ca4a1630aae5507ee0a71647d3124d1741980138aa8f28f44dac36e \ + --hash=sha256:edee228f76ee2dab4579fad6f51f6a305de09d444280109e0f75df247ff21501 \ + --hash=sha256:f0a90aba7d521e6954670550e561a4cb925713bd944445dbe9e729b71f6cabee \ + --hash=sha256:f93bc6892fe7b0663e5ffa83b61aab510aacffd58c16e012bb9352d489d90cb7 \ + --hash=sha256:fb1461c99de4d040666ca0444057b06541e5642f800b71c56e6ea92d6a853a0c # via # feast (setup.py) # accelerate @@ -2992,7 +2976,6 @@ numpy==2.4.0 \ # opencv-python-headless # pandas # pandas-gbq - # pyarrow # qdrant-client # ray # safetensors @@ -3152,9 +3135,9 @@ overrides==7.7.0 \ --hash=sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a \ --hash=sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49 # via jupyter-server -packaging==24.2 \ - --hash=sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759 \ - --hash=sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f +packaging==25.0 \ + --hash=sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484 \ + --hash=sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f # via # accelerate # build @@ -3169,7 +3152,6 @@ packaging==24.2 \ # gunicorn # huggingface-hub # ibis-framework - # ibis-substrait # ipykernel # jupyter-events # jupyter-server @@ -3453,9 +3435,9 @@ pre-commit==3.3.1 \ --hash=sha256:218e9e3f7f7f3271ebc355a15598a4d3893ad9fc7b57fe446db75644543323b9 \ --hash=sha256:733f78c9a056cdd169baa6cd4272d51ecfda95346ef8a89bf93712706021b907 # via feast (setup.py) -prometheus-client==0.23.1 \ - --hash=sha256:6ae8f9081eaaaf153a2e959d2e6c4f4fb57b12ef76c8c7980202f1e57b48b2ce \ - --hash=sha256:dd1913e6e76b59cfe44e7a4b83e01afc9873c1bdfd2ed8739f1e76aeca115f99 +prometheus-client==0.24.0 \ + --hash=sha256:4ab6d4fb5a1b25ad74b58e6271857e356fff3399473e599d227ab5d0ce6637f0 \ + --hash=sha256:726b40c0d499f4904d4b5b7abe8d43e6aff090de0d468ae8f2226290b331c667 # via # feast (setup.py) # jupyter-server @@ -3631,7 +3613,6 @@ protobuf==4.25.8 \ # pymilvus # qdrant-client # ray - # substrait psutil==5.9.0 \ --hash=sha256:072664401ae6e7c1bfb878c65d7282d4b4391f1bc9a56d5e03b5a490403271b5 \ --hash=sha256:1070a9b287846a21a5d572d6dddd369517510b68710fca56b0e9e02fd24bed9a \ @@ -3776,43 +3757,57 @@ py4j==0.10.9.9 \ --hash=sha256:c7c26e4158defb37b0bb124933163641a2ff6e3a3913f7811b0ddbe07ed61533 \ --hash=sha256:f694cad19efa5bd1dee4f3e5270eb406613c974394035e5bfc4ec1aba870b879 # via pyspark -pyarrow==17.0.0 \ - --hash=sha256:0071ce35788c6f9077ff9ecba4858108eebe2ea5a3f7cf2cf55ebc1dbc6ee24a \ - --hash=sha256:02dae06ce212d8b3244dd3e7d12d9c4d3046945a5933d28026598e9dbbda1fca \ - --hash=sha256:0b72e87fe3e1db343995562f7fff8aee354b55ee83d13afba65400c178ab2597 \ - --hash=sha256:0cdb0e627c86c373205a2f94a510ac4376fdc523f8bb36beab2e7f204416163c \ - --hash=sha256:13d7a460b412f31e4c0efa1148e1d29bdf18ad1411eb6757d38f8fbdcc8645fb \ - --hash=sha256:1c8856e2ef09eb87ecf937104aacfa0708f22dfeb039c363ec99735190ffb977 \ - --hash=sha256:2e19f569567efcbbd42084e87f948778eb371d308e137a0f97afe19bb860ccb3 \ - --hash=sha256:32503827abbc5aadedfa235f5ece8c4f8f8b0a3cf01066bc8d29de7539532687 \ - --hash=sha256:392bc9feabc647338e6c89267635e111d71edad5fcffba204425a7c8d13610d7 \ - --hash=sha256:42bf93249a083aca230ba7e2786c5f673507fa97bbd9725a1e2754715151a204 \ - --hash=sha256:4beca9521ed2c0921c1023e68d097d0299b62c362639ea315572a58f3f50fd28 \ - --hash=sha256:5984f416552eea15fd9cee03da53542bf4cddaef5afecefb9aa8d1010c335087 \ - --hash=sha256:6b244dc8e08a23b3e352899a006a26ae7b4d0da7bb636872fa8f5884e70acf15 \ - --hash=sha256:757074882f844411fcca735e39aae74248a1531367a7c80799b4266390ae51cc \ - --hash=sha256:75c06d4624c0ad6674364bb46ef38c3132768139ddec1c56582dbac54f2663e2 \ - --hash=sha256:7c7916bff914ac5d4a8fe25b7a25e432ff921e72f6f2b7547d1e325c1ad9d155 \ - --hash=sha256:9b564a51fbccfab5a04a80453e5ac6c9954a9c5ef2890d1bcf63741909c3f8df \ - --hash=sha256:9b8a823cea605221e61f34859dcc03207e52e409ccf6354634143e23af7c8d22 \ - --hash=sha256:9ba11c4f16976e89146781a83833df7f82077cdab7dc6232c897789343f7891a \ - --hash=sha256:a155acc7f154b9ffcc85497509bcd0d43efb80d6f733b0dc3bb14e281f131c8b \ - --hash=sha256:a27532c38f3de9eb3e90ecab63dfda948a8ca859a66e3a47f5f42d1e403c4d03 \ - --hash=sha256:a48ddf5c3c6a6c505904545c25a4ae13646ae1f8ba703c4df4a1bfe4f4006bda \ - --hash=sha256:a5c8b238d47e48812ee577ee20c9a2779e6a5904f1708ae240f53ecbee7c9f07 \ - --hash=sha256:af5ff82a04b2171415f1410cff7ebb79861afc5dae50be73ce06d6e870615204 \ - --hash=sha256:b0c6ac301093b42d34410b187bba560b17c0330f64907bfa4f7f7f2444b0cf9b \ - --hash=sha256:d7d192305d9d8bc9082d10f361fc70a73590a4c65cf31c3e6926cd72b76bc35c \ - --hash=sha256:da1e060b3876faa11cee287839f9cc7cdc00649f475714b8680a05fd9071d545 \ - --hash=sha256:db023dc4c6cae1015de9e198d41250688383c3f9af8f565370ab2b4cb5f62655 \ - --hash=sha256:dc5c31c37409dfbc5d014047817cb4ccd8c1ea25d19576acf1a001fe07f5b420 \ - --hash=sha256:dec8d129254d0188a49f8a1fc99e0560dc1b85f60af729f47de4046015f9b0a5 \ - --hash=sha256:e3343cb1e88bc2ea605986d4b94948716edc7a8d14afd4e2c097232f729758b4 \ - --hash=sha256:edca18eaca89cd6382dfbcff3dd2d87633433043650c07375d095cd3517561d8 \ - --hash=sha256:f1e70de6cb5790a50b01d2b686d54aaf73da01266850b05e3af2a1bc89e16053 \ - --hash=sha256:f553ca691b9e94b202ff741bdd40f6ccb70cdd5fbf65c187af132f1317de6145 \ - --hash=sha256:f7ae2de664e0b158d1607699a16a488de3d008ba99b3a7aa5de1cbc13574d047 \ - --hash=sha256:fa3c246cc58cb5a4a5cb407a18f193354ea47dd0648194e6265bd24177982fe8 +pyarrow==22.0.0 \ + --hash=sha256:001ea83a58024818826a9e3f89bf9310a114f7e26dfe404a4c32686f97bd7901 \ + --hash=sha256:00626d9dc0f5ef3a75fe63fd68b9c7c8302d2b5bbc7f74ecaedba83447a24f84 \ + --hash=sha256:0c34fe18094686194f204a3b1787a27456897d8a2d62caf84b61e8dfbc0252ae \ + --hash=sha256:12fe549c9b10ac98c91cf791d2945e878875d95508e1a5d14091a7aaa66d9cf8 \ + --hash=sha256:1a812a5b727bc09c3d7ea072c4eebf657c2f7066155506ba31ebf4792f88f016 \ + --hash=sha256:252be4a05f9d9185bb8c18e83764ebcfea7185076c07a7a662253af3a8c07941 \ + --hash=sha256:334f900ff08ce0423407af97e6c26ad5d4e3b0763645559ece6fbf3747d6a8f5 \ + --hash=sha256:35ad0f0378c9359b3f297299c3309778bb03b8612f987399a0333a560b43862d \ + --hash=sha256:3d600dc583260d845c7d8a6db540339dd883081925da2bd1c5cb808f720b3cd9 \ + --hash=sha256:3e294c5eadfb93d78b0763e859a0c16d4051fc1c5231ae8956d61cb0b5666f5a \ + --hash=sha256:3e739edd001b04f654b166204fc7a9de896cf6007eaff33409ee9e50ceaff754 \ + --hash=sha256:44729980b6c50a5f2bfcc2668d36c569ce17f8b17bccaf470c4313dcbbf13c9d \ + --hash=sha256:44d2d26cda26d18f7af7db71453b7b783788322d756e81730acb98f24eb90ace \ + --hash=sha256:4c19236ae2402a8663a2c8f21f1870a03cc57f0bef7e4b6eb3238cc82944de80 \ + --hash=sha256:69763ab2445f632d90b504a815a2a033f74332997052b721002298ed6de40f2e \ + --hash=sha256:6dda1ddac033d27421c20d7a7943eec60be44e0db4e079f33cc5af3b8280ccde \ + --hash=sha256:6f9762274496c244d951c819348afbcf212714902742225f649cf02823a6a10f \ + --hash=sha256:710624ab925dc2b05a6229d47f6f0dac1c1155e6ed559be7109f684eba048a48 \ + --hash=sha256:7388ac685cab5b279a41dfe0a6ccd99e4dbf322edfb63e02fc0443bf24134e91 \ + --hash=sha256:77718810bd3066158db1e95a63c160ad7ce08c6b0710bc656055033e39cdad88 \ + --hash=sha256:7a820d8ae11facf32585507c11f04e3f38343c1e784c9b5a8b1da5c930547fe2 \ + --hash=sha256:8382ad21458075c2e66a82a29d650f963ce51c7708c7c0ff313a8c206c4fd5e8 \ + --hash=sha256:84378110dd9a6c06323b41b56e129c504d157d1a983ce8f5443761eb5256bafc \ + --hash=sha256:854794239111d2b88b40b6ef92aa478024d1e5074f364033e73e21e3f76b25e0 \ + --hash=sha256:92843c305330aa94a36e706c16209cd4df274693e777ca47112617db7d0ef3d7 \ + --hash=sha256:9bddc2cade6561f6820d4cd73f99a0243532ad506bc510a75a5a65a522b2d74d \ + --hash=sha256:a4893d31e5ef780b6edcaf63122df0f8d321088bb0dee4c8c06eccb1ca28d145 \ + --hash=sha256:a9d9ffdc2ab696f6b15b4d1f7cec6658e1d788124418cb30030afbae31c64746 \ + --hash=sha256:ac93252226cf288753d8b46280f4edf3433bf9508b6977f8dd8526b521a1bbb9 \ + --hash=sha256:b41f37cabfe2463232684de44bad753d6be08a7a072f6a83447eeaf0e4d2a215 \ + --hash=sha256:b883fe6fd85adad7932b3271c38ac289c65b7337c2c132e9569f9d3940620730 \ + --hash=sha256:b9d71701ce97c95480fecb0039ec5bb889e75f110da72005743451339262f4ce \ + --hash=sha256:ba95112d15fd4f1105fb2402c4eab9068f0554435e9b7085924bcfaac2cc306f \ + --hash=sha256:bba208d9c7decf9961998edf5c65e3ea4355d5818dd6cd0f6809bec1afb951cc \ + --hash=sha256:bd0d42297ace400d8febe55f13fdf46e86754842b860c978dfec16f081e5c653 \ + --hash=sha256:bea79263d55c24a32b0d79c00a1c58bb2ee5f0757ed95656b01c0fb310c5af3d \ + --hash=sha256:c064e28361c05d72eed8e744c9605cbd6d2bb7481a511c74071fd9b24bc65d7d \ + --hash=sha256:c3200cb41cdbc65156e5f8c908d739b0dfed57e890329413da2748d1a2cd1a4e \ + --hash=sha256:c6c791b09c57ed76a18b03f2631753a4960eefbbca80f846da8baefc6491fcfe \ + --hash=sha256:c6ec3675d98915bf1ec8b3c7986422682f7232ea76cad276f4c8abd5b7319b70 \ + --hash=sha256:ce20fe000754f477c8a9125543f1936ea5b8867c5406757c224d745ed033e691 \ + --hash=sha256:cedb9dd9358e4ea1d9bce3665ce0797f6adf97ff142c8e25b46ba9cdd508e9b6 \ + --hash=sha256:e0a15757fccb38c410947df156f9749ae4a3c89b2393741a50521f39a8cf202a \ + --hash=sha256:e6e95176209257803a8b3d0394f21604e796dadb643d2f7ca21b66c9c0b30c9a \ + --hash=sha256:e70ff90c64419709d38c8932ea9fe1cc98415c4f87ea8da81719e43f02534bc9 \ + --hash=sha256:ec1a15968a9d80da01e1d30349b2b0d7cc91e96588ee324ce1b5228175043e95 \ + --hash=sha256:ec5d40dd494882704fb876c16fa7261a69791e784ae34e6b5992e977bd2e238c \ + --hash=sha256:f633074f36dbc33d5c05b5dc75371e5660f1dbf9c8b1d95669def05e5425989c \ + --hash=sha256:f7fe3dbe871294ba70d789be16b6e7e52b418311e166e0e3cba9522f0f437fb1 \ + --hash=sha256:f963ba8c3b0199f9d6b794c90ec77545e05eadc83973897a4523c9e8d84e9340 # via # feast (setup.py) # dask @@ -4101,9 +4096,9 @@ pyjwt[crypto]==2.10.1 \ pylatexenc==2.10 \ --hash=sha256:3dd8fd84eb46dc30bee1e23eaab8d8fb5a7f507347b23e5f38ad9675c84f40d3 # via docling -pymilvus==2.4.15 \ - --hash=sha256:0601591ce0498315e19e9ac3f4fdd3051102ca87b6ddff5b33849f522288cff7 \ - --hash=sha256:b21878e5df74dca91b3f3cf0b0597fa6b6aed7bf5cde9a1b10641994faa353bf +pymilvus==2.5.18 \ + --hash=sha256:1b78badcfa8d62db7d0b29193fc0422e4676873ff1c745a9d75c2c885d7a7e32 \ + --hash=sha256:9e517076068e98dac51c018bc0dfe1f651d936154e2e2d9ad6c7b3dab1164e2d # via feast (setup.py) pymssql==2.3.2 \ --hash=sha256:06883bc9bdb297ae9132d9371b5b1a3a223c8f93dd6a87d1c112c6a688f26d53 \ @@ -4295,8 +4290,8 @@ pyproject-hooks==1.2.0 \ # via # build # pip-tools -pyspark==4.1.0 \ - --hash=sha256:09c714ada88dfac3e1213c066617c6f473c1e22fbe279855028f77e12434147d +pyspark==4.1.1 \ + --hash=sha256:77f78984aa84fbe865c717dd37b49913b4e5c97d76ef6824f932f1aefa6621ec # via feast (setup.py) pytest==7.4.4 \ --hash=sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280 \ @@ -4507,7 +4502,6 @@ pytz==2025.2 \ # via # clickhouse-connect # great-expectations - # ibis-framework # pandas # snowflake-connector-python # trino @@ -4593,7 +4587,6 @@ pyyaml==6.0.3 \ # docling-core # easyocr # huggingface-hub - # ibis-substrait # jupyter-events # kubernetes # openshift-client @@ -5059,26 +5052,26 @@ ruamel-yaml==0.17.17 \ --hash=sha256:9751de4cbb57d4bfbf8fc394e125ed4a2f170fbff3dc3d78abf50be85924f8be \ --hash=sha256:9af3ec5d7f8065582f3aa841305465025d0afd26c5fb54e15b964e11838fc74f # via great-expectations -ruff==0.14.10 \ - --hash=sha256:104c49fc7ab73f3f3a758039adea978869a918f31b73280db175b43a2d9b51d6 \ - --hash=sha256:1484983559f026788e3a5c07c81ef7d1e97c1c78ed03041a18f75df104c45405 \ - --hash=sha256:16a01dfb7b9e4eee556fbfd5392806b1b8550c9b4a9f6acd3dbe6812b193c70a \ - --hash=sha256:213db2b2e44be8625002dbea33bb9c60c66ea2c07c084a00d55732689d697a7f \ - --hash=sha256:466297bd73638c6bdf06485683e812db1c00c7ac96d4ddd0294a338c62fdc154 \ - --hash=sha256:4bb98fcbbc61725968893682fd4df8966a34611239c9fd07a1f6a07e7103d08e \ - --hash=sha256:59aabd2e2c4fd614d2862e7939c34a532c04f1084476d6833dddef4afab87e9f \ - --hash=sha256:5bcf45b681e9f1ee6445d317ce1fa9d6cba9a6049542d1c3d5b5958986be8830 \ - --hash=sha256:674f9be9372907f7257c51f1d4fc902cb7cf014b9980152b802794317941f08f \ - --hash=sha256:6987ebe0501ae4f4308d7d24e2d0fe3d7a98430f5adfd0f1fead050a740a3a77 \ - --hash=sha256:7165d31a925b7a294465fa81be8c12a0e9b60fb02bf177e79067c867e71f8b1f \ - --hash=sha256:7a3ce585f2ade3e1f29ec1b92df13e3da262178df8c8bdf876f48fa0e8316c49 \ - --hash=sha256:9a2e830f075d1a42cd28420d7809ace390832a490ed0966fe373ba288e77aaf4 \ - --hash=sha256:b914c40ab64865a17a9a5b67911d14df72346a634527240039eb3bd650e5979d \ - --hash=sha256:c561695675b972effb0c0a45db233f2c816ff3da8dcfbe7dfc7eed625f218935 \ - --hash=sha256:c70427132db492d25f982fffc8d6c7535cc2fd2c83fc8888f05caaa248521e60 \ - --hash=sha256:d85713d522348837ef9df8efca33ccb8bd6fcfc86a2cde3ccb4bc9d28a18003d \ - --hash=sha256:e51d046cf6dda98a4633b8a8a771451107413b0f07183b2bef03f075599e44e6 \ - --hash=sha256:f24b47993a9d8cb858429e97bdf8544c78029f09b520af615c1d261bf827001d +ruff==0.14.11 \ + --hash=sha256:0f3727189a52179393ecf92ec7057c2210203e6af2676f08d92140d3e1ee72c1 \ + --hash=sha256:337c5dd11f16ee52ae217757d9b82a26400be7efac883e9e852646f1557ed841 \ + --hash=sha256:53386375001773ae812b43205d6064dae49ff0968774e6befe16a994fc233caa \ + --hash=sha256:53fe71125fc158210d57fe4da26e622c9c294022988d08d9347ec1cf782adafe \ + --hash=sha256:590bcc0e2097ecf74e62a5c10a6b71f008ad82eb97b0a0079e85defe19fe74d9 \ + --hash=sha256:649fb6c9edd7f751db276ef42df1f3df41c38d67d199570ae2a7bd6cbc3590f0 \ + --hash=sha256:6845ca1da8ab81ab1dce755a32ad13f1db72e7fba27c486d5d90d65e04d17b8f \ + --hash=sha256:6f6eb5c1c8033680f4172ea9c8d3706c156223010b8b97b05e82c59bdc774ee6 \ + --hash=sha256:728e56879df4ca5b62a9dde2dd0eb0edda2a55160c0ea28c4025f18c03f86984 \ + --hash=sha256:82ff352ea68fb6766140381748e1f67f83c39860b6446966cff48a315c3e2491 \ + --hash=sha256:a35c9da08562f1598ded8470fcfef2afb5cf881996e6c0a502ceb61f4bc9c8a3 \ + --hash=sha256:a697737dce1ca97a0a55b5ff0434ee7205943d4874d638fe3ae66166ff46edbe \ + --hash=sha256:c61782543c1231bf71041461c1f28c64b961d457d0f238ac388e2ab173d7ecb7 \ + --hash=sha256:e36ce2fd31b54065ec6f76cb08d60159e1b32bdf08507862e32f47e6dde8bcbf \ + --hash=sha256:eb09f849bd37147a789b85995ff734a6c4a095bed5fd1608c4f56afc3634cde2 \ + --hash=sha256:f2fc34cc896f90080fca01259f96c566f74069a04b25b6205d55379d12a6855e \ + --hash=sha256:f6dc463bfa5c07a59b1ff2c3b9767373e541346ea105503b4c0369c520a66958 \ + --hash=sha256:f6ff2d95cbd335841a7217bdfd9c1d2e44eac2c584197ab1385579d55ff8830e \ + --hash=sha256:f981cea63d08456b2c070e64b79cb62f951aa1305282974d4d5216e6e0178ae6 # via feast (setup.py) s3transfer==0.13.1 \ --hash=sha256:a981aa7429be23fe6dfc13e80e4020057cbab622b08c0315288758d67cabc724 \ @@ -5203,68 +5196,68 @@ scikit-learn==1.8.0 \ --hash=sha256:fb65db5d7531bccf3a4f6bec3462223bea71384e2cda41da0f10b7c292b9e7c4 \ --hash=sha256:fe1c011a640a9f0791146011dfd3c7d9669785f9fed2b2a5f9e207536cf5c2fd # via feast (setup.py) -scipy==1.16.3 \ - --hash=sha256:0151a0749efeaaab78711c78422d413c583b8cdd2011a3c1d6c794938ee9fdb2 \ - --hash=sha256:01e87659402762f43bd2fee13370553a17ada367d42e7487800bf2916535aecb \ - --hash=sha256:03192a35e661470197556de24e7cb1330d84b35b94ead65c46ad6f16f6b28f2a \ - --hash=sha256:0553371015692a898e1aa858fed67a3576c34edefa6b7ebdb4e9dde49ce5c203 \ - --hash=sha256:062246acacbe9f8210de8e751b16fc37458213f124bef161a5a02c7a39284304 \ - --hash=sha256:0c3b4dd3d9b08dbce0f3440032c52e9e2ab9f96ade2d3943313dfe51a7056959 \ - --hash=sha256:0c623a54f7b79dd88ef56da19bc2873afec9673a48f3b85b18e4d402bdd29a5a \ - --hash=sha256:16b8bc35a4cc24db80a0ec836a9286d0e31b2503cb2fd7ff7fb0e0374a97081d \ - --hash=sha256:1fb2472e72e24d1530debe6ae078db70fb1605350c88a3d14bc401d6306dbffe \ - --hash=sha256:21d9d6b197227a12dcbf9633320a4e34c6b0e51c57268df255a0942983bac562 \ - --hash=sha256:2a207a6ce9c24f1951241f4693ede2d393f59c07abc159b2cb2be980820e01fb \ - --hash=sha256:2b71d93c8a9936046866acebc915e2af2e292b883ed6e2cbe5c34beb094b82d9 \ - --hash=sha256:2d1ae2cf0c350e7705168ff2429962a89ad90c2d49d1dd300686d8b2a5af22fc \ - --hash=sha256:3a4c460301fb2cffb7f88528f30b3127742cff583603aa7dc964a52c463b385d \ - --hash=sha256:3d4a07a8e785d80289dfe66b7c27d8634a773020742ec7187b85ccc4b0e7b686 \ - --hash=sha256:40be6cf99e68b6c4321e9f8782e7d5ff8265af28ef2cd56e9c9b2638fa08ad97 \ - --hash=sha256:4aff59800a3b7f786b70bfd6ab551001cb553244988d7d6b8299cb1ea653b353 \ - --hash=sha256:50a3dbf286dbc7d84f176f9a1574c705f277cb6565069f88f60db9eafdbe3ee2 \ - --hash=sha256:532fb5ad6a87e9e9cd9c959b106b73145a03f04c7d57ea3e6f6bb60b86ab0876 \ - --hash=sha256:53c3844d527213631e886621df5695d35e4f6a75f620dca412bcd292f6b87d78 \ - --hash=sha256:56edc65510d1331dae01ef9b658d428e33ed48b4f77b1d51caf479a0253f96dc \ - --hash=sha256:57d01cb6f85e34f0946b33caa66e892aae072b64b034183f3d87c4025802a119 \ - --hash=sha256:5803c5fadd29de0cf27fa08ccbfe7a9e5d741bf63e4ab1085437266f12460ff9 \ - --hash=sha256:6020470b9d00245926f2d5bb93b119ca0340f0d564eb6fbaad843eaebf9d690f \ - --hash=sha256:63d3cdacb8a824a295191a723ee5e4ea7768ca5ca5f2838532d9f2e2b3ce2135 \ - --hash=sha256:663b8d66a8748051c3ee9c96465fb417509315b99c71550fda2591d7dd634234 \ - --hash=sha256:72d1717fd3b5e6ec747327ce9bda32d5463f472c9dce9f54499e81fbd50245a1 \ - --hash=sha256:7dc1360c06535ea6116a2220f760ae572db9f661aba2d88074fe30ec2aa1ff88 \ - --hash=sha256:7f68154688c515cdb541a31ef8eb66d8cd1050605be9dcd74199cbd22ac739bc \ - --hash=sha256:81fc5827606858cf71446a5e98715ba0e11f0dbc83d71c7409d05486592a45d6 \ - --hash=sha256:875555ce62743e1d54f06cdf22c1e0bc47b91130ac40fe5d783b6dfa114beeb6 \ - --hash=sha256:8b3c820ddb80029fe9f43d61b81d8b488d3ef8ca010d15122b152db77dc94c22 \ - --hash=sha256:8be1ca9170fcb6223cc7c27f4305d680ded114a1567c0bd2bfcbf947d1b17511 \ - --hash=sha256:8d09d72dc92742988b0e7750bddb8060b0c7079606c0d24a8cc8e9c9c11f9079 \ - --hash=sha256:9452781bd879b14b6f055b26643703551320aa8d79ae064a71df55c00286a184 \ - --hash=sha256:96491a6a54e995f00a28a3c3badfff58fd093bf26cd5fb34a2188c8c756a3a2c \ - --hash=sha256:9b9c9c07b6d56a35777a1b4cc8966118fb16cfd8daf6743867d17d36cfad2d40 \ - --hash=sha256:a8a26c78ef223d3e30920ef759e25625a0ecdd0d60e5a8818b7513c3e5384cf2 \ - --hash=sha256:aadd23f98f9cb069b3bd64ddc900c4d277778242e961751f77a8cb5c4b946fb0 \ - --hash=sha256:b7180967113560cca57418a7bc719e30366b47959dd845a93206fbed693c867e \ - --hash=sha256:b7c5f1bda1354d6a19bc6af73a649f8285ca63ac6b52e64e658a5a11d4d69800 \ - --hash=sha256:b81c27fc41954319a943d43b20e07c40bdcd3ff7cf013f4fb86286faefe546c4 \ - --hash=sha256:bb61878c18a470021fb515a843dc7a76961a8daceaaaa8bad1332f1bf4b54657 \ - --hash=sha256:bea0a62734d20d67608660f69dcda23e7f90fb4ca20974ab80b6ed40df87a005 \ - --hash=sha256:c5192722cffe15f9329a3948c4b1db789fbb1f05c97899187dcf009b283aea70 \ - --hash=sha256:c97176013d404c7346bf57874eaac5187d969293bf40497140b0a2b2b7482e07 \ - --hash=sha256:cd13e354df9938598af2be05822c323e97132d5e6306b83a3b4ee6724c6e522e \ - --hash=sha256:d2ec56337675e61b312179a1ad124f5f570c00f920cc75e1000025451b88241c \ - --hash=sha256:d3837938ae715fc0fe3c39c0202de3a8853aff22ca66781ddc2ade7554b7e2cc \ - --hash=sha256:d9f48cafc7ce94cf9b15c6bffdc443a81a27bf7075cf2dcd5c8b40f85d10c4e7 \ - --hash=sha256:da7763f55885045036fabcebd80144b757d3db06ab0861415d1c3b7c69042146 \ - --hash=sha256:deb3841c925eeddb6afc1e4e4a45e418d19ec7b87c5df177695224078e8ec733 \ - --hash=sha256:e1d27cbcb4602680a49d787d90664fa4974063ac9d4134813332a8c53dbe667c \ - --hash=sha256:e5d42a9472e7579e473879a1990327830493a7047506d58d73fc429b84c1d49d \ - --hash=sha256:e7efa2681ea410b10dde31a52b18b0154d66f2485328830e45fdf183af5aefc6 \ - --hash=sha256:eab43fae33a0c39006a88096cd7b4f4ef545ea0447d250d5ac18202d40b6611d \ - --hash=sha256:f2622206f5559784fa5c4b53a950c3c7c1cf3e84ca1b9c4b6c03f062f289ca26 \ - --hash=sha256:f379b54b77a597aa7ee5e697df0d66903e41b9c85a6dd7946159e356319158e8 \ - --hash=sha256:f667a4542cc8917af1db06366d3f78a5c8e83badd56409f94d1eac8d8d9133fa \ - --hash=sha256:fb4b29f4cf8cc5a8d628bc8d8e26d12d7278cd1f219f22698a378c3d67db5e4b \ - --hash=sha256:ffa6eea95283b2b8079b821dc11f50a17d0571c92b43e2b5b12764dc5f9b285d +scipy==1.17.0 \ + --hash=sha256:00fb5f8ec8398ad90215008d8b6009c9db9fa924fd4c7d6be307c6f945f9cd73 \ + --hash=sha256:031121914e295d9791319a1875444d55079885bbae5bdc9c5e0f2ee5f09d34ff \ + --hash=sha256:0937a0b0d8d593a198cededd4c439a0ea216a3f36653901ea1f3e4be949056f8 \ + --hash=sha256:0cf46c8013fec9d3694dc572f0b54100c28405d55d3e2cb15e2895b25057996e \ + --hash=sha256:0d5018a57c24cb1dd828bcf51d7b10e65986d549f52ef5adb6b4d1ded3e32a57 \ + --hash=sha256:130d12926ae34399d157de777472bf82e9061c60cc081372b3118edacafe1d00 \ + --hash=sha256:13c4096ac6bc31d706018f06a49abe0485f96499deb82066b94d19b02f664209 \ + --hash=sha256:13e861634a2c480bd237deb69333ac79ea1941b94568d4b0efa5db5e263d4fd1 \ + --hash=sha256:1f9586a58039d7229ce77b52f8472c972448cded5736eaf102d5658bbac4c269 \ + --hash=sha256:1ff269abf702f6c7e67a4b7aad981d42871a11b9dd83c58d2d2ea624efbd1088 \ + --hash=sha256:255c0da161bd7b32a6c898e7891509e8a9289f0b1c6c7d96142ee0d2b114c2ea \ + --hash=sha256:2591060c8e648d8b96439e111ac41fd8342fdeff1876be2e19dea3fe8930454e \ + --hash=sha256:272a9f16d6bb4667e8b50d25d71eddcc2158a214df1b566319298de0939d2ab7 \ + --hash=sha256:2abd71643797bd8a106dff97894ff7869eeeb0af0f7a5ce02e4227c6a2e9d6fd \ + --hash=sha256:2b531f57e09c946f56ad0b4a3b2abee778789097871fc541e267d2eca081cff1 \ + --hash=sha256:30509da9dbec1c2ed8f168b8d8aa853bc6723fede1dbc23c7d43a56f5ab72a67 \ + --hash=sha256:33af70d040e8af9d5e7a38b5ed3b772adddd281e3062ff23fec49e49681c38cf \ + --hash=sha256:357ca001c6e37601066092e7c89cca2f1ce74e2a520ca78d063a6d2201101df2 \ + --hash=sha256:3625c631a7acd7cfd929e4e31d2582cf00f42fcf06011f59281271746d77e061 \ + --hash=sha256:363ad4ae2853d88ebcde3ae6ec46ccca903ea9835ee8ba543f12f575e7b07e4e \ + --hash=sha256:40052543f7bbe921df4408f46003d6f01c6af109b9e2c8a66dd1cf6cf57f7d5d \ + --hash=sha256:423ca1f6584fc03936972b5f7c06961670dbba9f234e71676a7c7ccf938a0d61 \ + --hash=sha256:474da16199f6af66601a01546144922ce402cb17362e07d82f5a6cf8f963e449 \ + --hash=sha256:4e00562e519c09da34c31685f6acc3aa384d4d50604db0f245c14e1b4488bfa2 \ + --hash=sha256:5194c445d0a1c7a6c1a4a4681b6b7c71baad98ff66d96b949097e7513c9d6742 \ + --hash=sha256:5fb10d17e649e1446410895639f3385fd2bf4c3c7dfc9bea937bddcbc3d7b9ba \ + --hash=sha256:65ec32f3d32dfc48c72df4291345dae4f048749bc8d5203ee0a3f347f96c5ce6 \ + --hash=sha256:6680f2dfd4f6182e7d6db161344537da644d1cf85cf293f015c60a17ecf08752 \ + --hash=sha256:6e886000eb4919eae3a44f035e63f0fd8b651234117e8f6f29bad1cd26e7bc45 \ + --hash=sha256:7204fddcbec2fe6598f1c5fdf027e9f259106d05202a959a9f1aecf036adc9f6 \ + --hash=sha256:819fc26862b4b3c73a60d486dbb919202f3d6d98c87cf20c223511429f2d1a97 \ + --hash=sha256:8547e7c57f932e7354a2319fab613981cde910631979f74c9b542bb167a8b9db \ + --hash=sha256:85b0ac3ad17fa3be50abd7e69d583d98792d7edc08367e01445a1e2076005379 \ + --hash=sha256:87b411e42b425b84777718cc41516b8a7e0795abfa8e8e1d573bf0ef014f0812 \ + --hash=sha256:88c22af9e5d5a4f9e027e26772cc7b5922fab8bcc839edb3ae33de404feebd9e \ + --hash=sha256:9244608d27eafe02b20558523ba57f15c689357c85bdcfe920b1828750aa26eb \ + --hash=sha256:979c3a0ff8e5ba254d45d59ebd38cde48fce4f10b5125c680c7a4bfe177aab07 \ + --hash=sha256:9eeb9b5f5997f75507814ed9d298ab23f62cf79f5a3ef90031b1ee2506abdb5b \ + --hash=sha256:9fad7d3578c877d606b1150135c2639e9de9cecd3705caa37b66862977cc3e72 \ + --hash=sha256:a38c3337e00be6fd8a95b4ed66b5d988bac4ec888fd922c2ea9fe5fb1603dd67 \ + --hash=sha256:aabf057c632798832f071a8dde013c2e26284043934f53b00489f1773b33527e \ + --hash=sha256:c17514d11b78be8f7e6331b983a65a7f5ca1fd037b95e27b280921fe5606286a \ + --hash=sha256:c5e8647f60679790c2f5c76be17e2e9247dc6b98ad0d3b065861e082c56e078d \ + --hash=sha256:cacbaddd91fcffde703934897c5cd2c7cb0371fac195d383f4e1f1c5d3f3bd04 \ + --hash=sha256:d7425fcafbc09a03731e1bc05581f5fad988e48c6a861f441b7ab729a49a55ea \ + --hash=sha256:dac97a27520d66c12a34fd90a4fe65f43766c18c0d6e1c0a80f114d2260080e4 \ + --hash=sha256:dbf133ced83889583156566d2bdf7a07ff89228fe0c0cb727f777de92092ec6b \ + --hash=sha256:e8c0b331c2c1f531eb51f1b4fc9ba709521a712cce58f1aa627bc007421a5306 \ + --hash=sha256:eb2651271135154aa24f6481cbae5cc8af1f0dd46e6533fb7b56aa9727b6a232 \ + --hash=sha256:ebb7446a39b3ae0fe8f416a9a3fdc6fba3f11c634f680f16a239c5187bc487c0 \ + --hash=sha256:ec0827aa4d36cb79ff1b81de898e948a51ac0b9b1c43e4a372c0508c38c0f9a3 \ + --hash=sha256:edce1a1cf66298cccdc48a1bdf8fb10a3bf58e8b58d6c3883dd1530e103f87c0 \ + --hash=sha256:eec3842ec9ac9de5917899b277428886042a93db0b227ebbe3a333b64ec7643d \ + --hash=sha256:ef28d815f4d2686503e5f4f00edc387ae58dfd7a2f42e348bb53359538f01558 \ + --hash=sha256:f2a4942b0f5f7c23c7cd641a0ca1955e2ae83dedcff537e3a0259096635e186b \ + --hash=sha256:f3cd947f20fe17013d401b64e857c6b2da83cae567adbb75b9dcba865abc66d8 \ + --hash=sha256:f603d8a5518c7426414d1d8f82e253e454471de682ce5e39c29adb0df1efb86b \ + --hash=sha256:f7df7941d71314e60a481e02d5ebcb3f0185b8d799c70d03d8258f6c80f3d467 \ + --hash=sha256:f9eb55bb97d00f8b7ab95cb64f873eb0bf54d9446264d9f3609130381233483f \ + --hash=sha256:fc02c37a5639ee67d8fb646ffded6d793c06c5622d36b35cfa8fe5ececb8f042 \ + --hash=sha256:fe508b5690e9eaaa9467fc047f833af58f1152ae51a0d0aed67aa5801f4dd7d6 # via # docling # easyocr @@ -5275,9 +5268,9 @@ semchunk==2.2.2 \ --hash=sha256:940e89896e64eeb01de97ba60f51c8c7b96c6a3951dfcf574f25ce2146752f52 \ --hash=sha256:94ca19020c013c073abdfd06d79a7c13637b91738335f3b8cdb5655ee7cc94d2 # via docling-core -send2trash==1.8.3 \ - --hash=sha256:0c31227e0bd08961c7665474a3d1ef7193929fedda4233843689baa056be46c9 \ - --hash=sha256:b18e7a3966d99871aefeb00cfbcfdced55ce4871194810fc71f4aa484b953abf +send2trash==2.0.0 \ + --hash=sha256:1761421da3f9930bfe51ed7c45343948573383ad4c27e3acebc91be324e7770d \ + --hash=sha256:e70d5ce41dbb890882cc78bc25d137478330b39a391e756fadf82e34da4d85b8 # via jupyter-server setuptools==80.9.0 \ --hash=sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922 \ @@ -5509,74 +5502,74 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:fd93c6f5d65f254ceabe97548c709e073d6da9883343adaa51bf1a913ce93f8e \ --hash=sha256:fe187fc31a54d7fd90352f34e8c008cf3ad5d064d08fedd3de2e8df83eb4a1cf # via feast (setup.py) -sqlglot[rs]==25.20.2 \ - --hash=sha256:169fe8308dd70d7bd40117b2221b62bdc7c4e2ea8eb07394b2a6146cdedf05ab \ - --hash=sha256:cdbfd7ce3f2f39f32bd7b4c23fd9e0fd261636a6b14285b914e8def25fd0a567 +sqlglot[rs]==28.6.0 \ + --hash=sha256:8af76e825dc8456a49f8ce049d69bbfcd116655dda3e53051754789e2edf8eba \ + --hash=sha256:8c0a432a6745c6c7965bbe99a17667c5a3ca1d524a54b31997cf5422b1727f6a # via # feast (setup.py) # ibis-framework -sqlglotrs==0.2.12 \ - --hash=sha256:0338c7770a5cb5bb0ec1dcbe5206359fe9b83da0aba8dde53b9e7bd1afc89a22 \ - --hash=sha256:057a8db59a6c4bcdc42831e7ad01f41cf9e7f388ed5b139816adafbcacf2f591 \ - --hash=sha256:065835e7f2be50ba83895b64d044a39dab9d95098fff995427365e4bd8bc7bc6 \ - --hash=sha256:08e8be22da77c964be76ab4438da2c77096f5871088466ca950ee1b4712a97d4 \ - --hash=sha256:147cda8412f45af290ad190d9a98b5829a5f46a575ce768279ccebf9b7b53785 \ - --hash=sha256:155b0d59e34851b119c7ff0b2c7968c7b51667c1a1c2abefe1ac7244b3c1d78e \ - --hash=sha256:17b289ef0f25a7c034d183c588345e2b56622f7f64a85d1020633a75f8e3ac96 \ - --hash=sha256:1fc98b7649445e726a492841b8b8b39a4e5724ec2787cd1436404ebccf42519a \ - --hash=sha256:2554ead3126c83864a4b7e48e8e7e1bc23faf7160a6f28d3db967661cf529c9e \ - --hash=sha256:2824fc87fd7e41a785150ff042c7934e1fff97c6ccd59e4d96bebf6697a90762 \ - --hash=sha256:2db7e6cd41ef88c2ac647ad0258f87906de822955dec8f14e91829083047d784 \ - --hash=sha256:315f7f7bbfedf0c87d98068e62363454e986bdd05baa165b7fb448b5c6fe9f1a \ - --hash=sha256:327bfc2d71449f4dffba93d63f0565c4a1fa818143b1cfbc3f936fa8c9bcce10 \ - --hash=sha256:39a6ef72cf271db93ec6019847b7832defa9f4013c1e66851ca9c0a11c010c0c \ - --hash=sha256:4364116b7b0c72b841de6acd149a002bfc8fe360125989d4f39debd387c874d8 \ - --hash=sha256:4c07d3dba9c3ae8b56a0e45a9e47aa2a2c6ed95870c5bcc67dacaadb873843ff \ - --hash=sha256:4ceb28cf2ee3850cd745167cebe59a5fc3d506b32e9c81307938d8d272c1d670 \ - --hash=sha256:4ec38035523d54ba33de1e2b5562de4938254b61e1df48eb1db0e26ea189de28 \ - --hash=sha256:5026eada48f258ce9ad26fa41994b2ea5404bef2c3df9cb5cb2a159112a6269f \ - --hash=sha256:59499adc27a70a72170db9241404a18d4829cd3a83a076b9e112ad365c4b1452 \ - --hash=sha256:5be231acf95920bed473524dd1cac93e4cb320ed7e6ae937531b232c54cfc232 \ - --hash=sha256:67e288759d2be822db2175d0025c1f61283b019f2cc3e2577f31ad0ef3b5854d \ - --hash=sha256:6aacab6e20d92be3ca76f7358fa12346f29985e2d408660c764b7f1c75cc40ee \ - --hash=sha256:6ef3a827f2980aad17af4f8548297c93c4989d4cd3f64b9bcb7443952c542423 \ - --hash=sha256:732516bffffc70f172306ad8bc747dd9f16512cdbc09475abe6ad6f744479dee \ - --hash=sha256:76e4e1765c6be438329e234e56a6772537f6de16c4bb5ba7170e344664cccdf7 \ - --hash=sha256:7b553cdb9e8afcfea5466815e865f874f6f51aaace4fb4101670e150f7bbfe5a \ - --hash=sha256:7c79c43c5cde1f4017641032f11770ed8111c963dccc096cd15df906d4fb46a4 \ - --hash=sha256:8174aa227193d0a755f4515e6c3883be4681c9b669a65c2316f09be27b84be4d \ - --hash=sha256:8a18b3a09c32788d1ee2d0610ab35af862413c56b65f8ad8bc0131701f03103b \ - --hash=sha256:8f268aea3d2ebc05cb9148bb487f21e532f8af1b0a4aed6b7374703aadfb6a7c \ - --hash=sha256:91971032603d05428fd42a978084110afb2a4c0975e4343b075f69a23889e3da \ - --hash=sha256:9334f6c394a671a630c61339d52fb7da1a72eca057570f039b2a4035d2e39380 \ - --hash=sha256:954ccd912391ab5922adb23159ebcc0c5dccb468381e2a1ce92117cb4b0f0ed3 \ - --hash=sha256:9597865efc40e5c41af7719106c7620e1338aaa64646726652c63bae14225391 \ - --hash=sha256:97b2c74fcdd89f0d4458c0e2b5783989be99a1e0b2d627797688ab716ad9391b \ - --hash=sha256:989ccc5dc6b38da937481b6eb2dc1fc0b13676fe129697b874828e577984d7ef \ - --hash=sha256:9c4c6f6fe1c54fff614f9d0b2dd7a6bf948bda87ce51a245dcd3f447f20c8b74 \ - --hash=sha256:9d5b9a9d6259b72258f6764f88a89faa3c648438bd1b2c3a9598b725d42bf6f2 \ - --hash=sha256:a266c9047726d83c51a8ec3d5278ceb9caf131307c9c93c4ceefd99c0116e538 \ - --hash=sha256:a4a2cacb31f75e242c7b9ff4afae1d95f548df8441444114376d8007cc91b55b \ - --hash=sha256:aaf86275a3388da1ed2161645aa346bfca3ee6e1dc0e2115867db9e78f1caddd \ - --hash=sha256:ab676d2d7da28907a139ad5fc20dee0890054967bac0b18e653ac048837c9ea1 \ - --hash=sha256:acc25d651eb663332157c2e5d2736516cddf4cd0effe67a887723934de5051d1 \ - --hash=sha256:b10bf6b71961b31951bf4dff937d8d5d399ea1b3bd47fb5c5810386710fe7dfb \ - --hash=sha256:b40601e67f5abae5d09d23f92394dbd735539de469ce663b596eb42bf77d2c54 \ - --hash=sha256:b6020825e58af6e2795e6dcb69639f5500e45e1da78f1b1abd74c4d11083a249 \ - --hash=sha256:bc1807c6222e32fc9bf6f5c7e12b85c4b72f12227800d40c1693244c198b33bb \ - --hash=sha256:bd6c4e6a7670f761c8e69b45d6d302a4d37a3cddb1fdca2ad90e54b77858fe80 \ - --hash=sha256:bf3e2eab11f06f1df13c0f85b3e26fbab0b7e8a5d189e5edfed951bc85f6bd48 \ - --hash=sha256:c3d62905ce74a48714b7662ad95efe299fad62f193be4b482a327af060f98710 \ - --hash=sha256:c3e0edde0fdf598561e7404ac56fb4b12276394ee5155b5365e42434c6f287a3 \ - --hash=sha256:c64066d13bd2e5e788b845c933c765af9991faa93982e273b623019a1161fadc \ - --hash=sha256:c8bf7ae29c0fc66e9c998d7f8e6f6fc26309c6eb5a4728e1443cb628218bc307 \ - --hash=sha256:d2827c7bf7e57496f9b95658bcd2395cfb0c51adc3023cd3386988337dfaf6a5 \ - --hash=sha256:e7b2da43b2a6a85807df6c56b2627abe244aff28fdf9a4940d38d749cb4b8e3e \ - --hash=sha256:ebc162a599fac86e59f899631716752fbc7f89598e94729eadb707e54db371b2 \ - --hash=sha256:f0a2ddeab27a94447270b7a240770a31a3afed0a972d60085205baec990ad76a \ - --hash=sha256:f104a98182761d4613f920eda7ec5fc921afb3608f7db648206ce06dd10a6be5 \ - --hash=sha256:f83ad3fb4ea57218c0e65d3499e31c9bb3051bbb5dccbb11593eaf1640964b51 \ - --hash=sha256:fa1ae834fb78bd52bb76e3c8d02cb79f45717ab1f02f4ad8154bf33a5408a502 +sqlglotrs==0.11.0 \ + --hash=sha256:029d72428367739d7b1e6aca66ccb88e93ab0f48ae34b1adce413e93d353a21b \ + --hash=sha256:069b00aa30f19e65a3e40835525c4aec6d004381c75886d12ce93ca6ef045a61 \ + --hash=sha256:072cff11e8d9e09e79907bda92d5fc219e056d49b416871fe8fc2d52ff89686b \ + --hash=sha256:079c182596660ea378c0b47072655b3263379dcd0875dce831bd91276d47b8de \ + --hash=sha256:0a72b615aafbe8240037aeb37d623caeba5484133e9e1952186c23d668c30316 \ + --hash=sha256:0ebff846b23756e458e85df8cb4e80411c4949d6b1e82f7019121a5cfedc3811 \ + --hash=sha256:1cf9034b209edb3a061b6fa4e01c95ac6a2e1fab2b9ff2cde74e44a0d07aa4ba \ + --hash=sha256:1f97ef7374c6133331b30a4bb3b094a4f0bc48da207545ce5fa277b4a5e91a46 \ + --hash=sha256:270b120e9361f60b8dacaa79173eb16633b6c9f56f69ff7370e03812977e0eb0 \ + --hash=sha256:2a29be22dd052d78d20332be5fd3073be248b884ff35099a6919eeb28cab810e \ + --hash=sha256:2e8ff0dfc1c9ec36ec72a2ffcf8859b9c5d926b9401c3757c432c0dfe5f6f725 \ + --hash=sha256:305895a85158ccbf700b80c0ac143652daf4490c8fd03c82d8632f76998c2b45 \ + --hash=sha256:32beba0fd901304e22f14475eeee7e9c3069a6a78ea15efc73b96939fe166c2f \ + --hash=sha256:3482ee17eaacdfbc902aa9dfddb52b495fe6e1c2facd0b061e7f0d9a52ca278a \ + --hash=sha256:3b524e7111c766088381216f7649b4b40c0cace5e8b81472ff8a5a052c1c735d \ + --hash=sha256:3c6e7dd433167e7dcd35842f626fc943ba83201c0e53de7a26f9a074a1f1149d \ + --hash=sha256:3e491a39e41d8f27e10ecefe5bc0bd80bcb1d3e3f5b7980a4d6f9c1e3fe5250d \ + --hash=sha256:401882f82209791822cf3392de0b338688aaabe96735457908c5ab6490f1ab73 \ + --hash=sha256:41cbfbe09de3a011454c22f2e49fd51d382451429071fc57e14cc0c5086b70d3 \ + --hash=sha256:43012180cbf447e922bf3762aed32a750ca0b8884bdd2d5276642047c34fe4c9 \ + --hash=sha256:4e6aa4dfc2f85c346aa495f3f803a4ca94a4430f08e729d5b8b0bcb21c67d193 \ + --hash=sha256:5cde6652dd9f7f8b29177a578431037d2bd1b9f58ef66fe2b7817c975f6606ab \ + --hash=sha256:625ccc0420a9a68db453d9a456c820f06f1c3c116f11b171b267b9194a04270c \ + --hash=sha256:692e3ad301a415b3084ddb12a749670b943b67dc2273a1179ca6d7d85f1827f6 \ + --hash=sha256:6bb6d548841f9954367e68a77cdd2859f933abe614f902d0db8dd0eb804f9d25 \ + --hash=sha256:6d16d2348df175600604d5660f2fbe7cab748042fcdd1cfcf52c982fb5645cc9 \ + --hash=sha256:744c8e0e74ac60ebd76741df8452e77ffb33511264be879c6c7f04cc1c0c2d62 \ + --hash=sha256:7aa052e277129eb42613550f3075a1654d7986c73f5df37eeeb6c4a15c843e5f \ + --hash=sha256:7da4c0e3b72dc608cdbb2c8852914aa78ba216033b23a2667970198bb68808cc \ + --hash=sha256:8050b532636c9f4167145d14121ef7398175f73759e2beb03a852a3e3985b024 \ + --hash=sha256:842d348eb195e9e1ac947f6e46b550d541e86cdbf5b9f59091f21626c2119a41 \ + --hash=sha256:88edff10ba7a203e519b66a2b8236d0f92f750b878de629dd380d253b5421638 \ + --hash=sha256:8b34f2dfa037f2f594c6ed7dd6f03cea4b2b1847843a3b33ae4f7c9bcb7fe595 \ + --hash=sha256:8d5739d5cff23f10adbf68cc28072bfc174c45b4b6d51a5bf8f484edd22216df \ + --hash=sha256:95f1ba9dec6d49590a7a131d1e6a0b0225d7207d51b063450647f59c78e95d45 \ + --hash=sha256:9899d2579010b9338e4d98bf190ec73c408990d7277cd63500ebc7b182e1fdfa \ + --hash=sha256:99d984563a874b4d2631b092f3763623b5be5dec3c4306d87cf4d00ddc8b5830 \ + --hash=sha256:9cf14d4466ea20d91df39d5770b16e8be8b25065ef924b210eadff6a85b720c7 \ + --hash=sha256:9d8b7266867e8fdcbfc6310c4a321c1cfac4c381296487b0a62393038f779997 \ + --hash=sha256:9dd2f14496aaf091e0e0d9172c6c9c9922ca545744059702466df6b27e1d43d7 \ + --hash=sha256:a0be63fffee88322771d555207ee31717e1e20fb84ca66acea625e423e147208 \ + --hash=sha256:a4b2b83ea980bd3d26f2443caa5d272097bd594a714025aa4761f45f2e787b91 \ + --hash=sha256:a53c0d3f59b471b9cad047de938342f4881d51e751d13b06665fb81890604482 \ + --hash=sha256:a8d8402517f8a6868dcb27ad0d08766a4852fbc37be81dfd5cafe215cf86fc04 \ + --hash=sha256:a938485f789202ccb07ec308b20b03121331e16f58de9982fc4b063d1b9c6a69 \ + --hash=sha256:a9fd11690a7bb1160ad157d0c1b6d389d19cc6542854016b6745510253ba502d \ + --hash=sha256:b18bc0bf80ed2367c71bf15f0a55c57dc8a7dfdc92adfceb241dd2f20a476aa1 \ + --hash=sha256:b2c52e04d66dde0c3dab8a742f490c224ea306fccb68bc9002ccff48aba58a6d \ + --hash=sha256:baafbaf5382fca53f34b6ba2f226eb084cca5aa441204205dac74478f9d6cb11 \ + --hash=sha256:bcd01c38cded5ac31ec3947dc58cfa8dbf77d602ac972d4b040295570c945a29 \ + --hash=sha256:c018ca74c24523768b49c6d8c3bba406f687e4be96bd2556e41e0572df1f038f \ + --hash=sha256:c9990a875baacd906452a5735e08d34023660957a1456f729969fcdda0991559 \ + --hash=sha256:ca8e0da4562bf6ab8be349046f135764f6d5f443edbdcfd643f582a5937414bf \ + --hash=sha256:cef26115186dcf2ebda311a7208c5f5533f340365cbb07589288ae21ed374b69 \ + --hash=sha256:d11f2b97bc71735e21778619044d82507270fb218aa7a72dd5de6221bb621b06 \ + --hash=sha256:d64853135f5320c7db924691b7376e85b235d164f7cce3738428b6ebab68a759 \ + --hash=sha256:db81a95525a4c4116cab778decf115da90b2a40900d276b19802bb51a4deabcd \ + --hash=sha256:e8b3e9e48e4ec51050bb1e1c72ce1464e42fe12c6b250a410634c8b5379c906c \ + --hash=sha256:f3f57dc53baafdd76d6f90fa72370da5a6049835dfa6aafaffe2bb8d673704b9 \ + --hash=sha256:f4e404fdc3a68276d9ecf4714e510ef8c953275990fb84c754b8bdf1ef398e90 \ + --hash=sha256:f676afb9400c223604bd81bea6ac91686a42e01f8e7b2450230ecbc883fe02a4 # via sqlglot sqlite-vec==0.1.6 \ --hash=sha256:77491bcaa6d496f2acb5cc0d0ff0b8964434f141523c121e313f9a7d8088dee3 \ @@ -5589,9 +5582,9 @@ sqlparams==6.2.0 \ --hash=sha256:3744a2ad16f71293db6505b21fd5229b4757489a9b09f3553656a1ae97ba7ca5 \ --hash=sha256:63b32ed9051bdc52e7e8b38bc4f78aed51796cdd9135e730f4c6a7db1048dedf # via singlestoredb -sse-starlette==3.1.1 \ - --hash=sha256:bb38f71ae74cfd86b529907a9fda5632195dfa6ae120f214ea4c890c7ee9d436 \ - --hash=sha256:bffa531420c1793ab224f63648c059bcadc412bf9fdb1301ac8de1cf9a67b7fb +sse-starlette==3.1.2 \ + --hash=sha256:55eff034207a83a0eb86de9a68099bd0157838f0b8b999a1b742005c71e33618 \ + --hash=sha256:cd800dd349f4521b317b9391d3796fa97b71748a4da9b9e00aafab32dda375c8 # via mcp stack-data==0.6.3 \ --hash=sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9 \ @@ -5604,12 +5597,6 @@ starlette==0.50.0 \ # fastapi # mcp # sse-starlette -substrait==0.24.2 \ - --hash=sha256:743cc352e96b0927b2cd37cd5a8fdac0a96a68df9600bd104fc36aebd222a836 \ - --hash=sha256:d1d475833566fa9d67eed3273456883c0568486ccced92b524b31709d2817e19 - # via - # feast (setup.py) - # ibis-substrait sympy==1.14.0 \ --hash=sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517 \ --hash=sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5 @@ -5706,90 +5693,104 @@ tifffile==2025.12.20 \ --hash=sha256:bc0345a20675149353cfcb3f1c48d0a3654231ee26bd46beebaab4d2168feeb6 \ --hash=sha256:cb8a4fee327d15b3e3eeac80bbdd8a53b323c80473330bcfb99418ee4c1c827f # via scikit-image -timm==1.0.22 \ - --hash=sha256:14fd74bcc17db3856b1a47d26fb305576c98579ab9d02b36714a5e6b25cde422 \ - --hash=sha256:888981753e65cbaacfc07494370138b1700a27b1f0af587f4f9b47bc024161d0 +timm==1.0.24 \ + --hash=sha256:8301ac783410c6ad72c73c49326af6d71a9e4d1558238552796e825c2464913f \ + --hash=sha256:c7b909f43fe2ef8fe62c505e270cd4f1af230dfbc37f2ee93e3608492b9d9a40 # via feast (setup.py) tinycss2==1.4.0 \ --hash=sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7 \ --hash=sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289 # via bleach -tokenizers==0.22.1 \ - --hash=sha256:19d2962dd28bc67c1f205ab180578a78eef89ac60ca7ef7cbe9635a46a56422a \ - --hash=sha256:331d6d149fa9c7d632cde4490fb8bbb12337fa3a0232e77892be656464f4b446 \ - --hash=sha256:38201f15cdb1f8a6843e6563e6e79f4abd053394992b9bbdf5213ea3469b4ae7 \ - --hash=sha256:59fdb013df17455e5f950b4b834a7b3ee2e0271e6378ccb33aa74d178b513c73 \ - --hash=sha256:607989f2ea68a46cb1dfbaf3e3aabdf3f21d8748312dbeb6263d1b3b66c5010a \ - --hash=sha256:61de6522785310a309b3407bac22d99c4db5dba349935e99e4d15ea2226af2d9 \ - --hash=sha256:65fd6e3fb11ca1e78a6a93602490f134d1fdeb13bcef99389d5102ea318ed138 \ - --hash=sha256:8d4e484f7b0827021ac5f9f71d4794aaef62b979ab7608593da22b1d2e3c4edc \ - --hash=sha256:a0f307d490295717726598ef6fa4f24af9d484809223bbc253b201c740a06390 \ - --hash=sha256:afd7594a56656ace95cdd6df4cca2e4059d294c5cfb1679c57824b605556cb2f \ - --hash=sha256:b5120eed1442765cd90b903bb6cfef781fd8fe64e34ccaecbae4c619b7b12a82 \ - --hash=sha256:ba0a64f450b9ef412c98f6bcd2a50c6df6e2443b560024a09fa6a03189726879 \ - --hash=sha256:d1cbe5454c9a15df1b3443c726063d930c16f047a3cc724b9e6e1a91140e5a21 \ - --hash=sha256:e2ef6063d7a84994129732b47e7915e8710f27f99f3a3260b8a38fc7ccd083f4 \ - --hash=sha256:e7d094ae6312d69cc2a872b54b91b309f4f6fbce871ef28eb27b52a98e4d0214 +tokenizers==0.22.2 \ + --hash=sha256:143b999bdc46d10febb15cbffb4207ddd1f410e2c755857b5a0797961bbdc113 \ + --hash=sha256:1a62ba2c5faa2dd175aaeed7b15abf18d20266189fb3406c5d0550dd34dd5f37 \ + --hash=sha256:1c774b1276f71e1ef716e5486f21e76333464f47bece56bbd554485982a9e03e \ + --hash=sha256:1e418a55456beedca4621dbab65a318981467a2b188e982a23e117f115ce5001 \ + --hash=sha256:1e50f8554d504f617d9e9d6e4c2c2884a12b388a97c5c77f0bc6cf4cd032feee \ + --hash=sha256:2249487018adec45d6e3554c71d46eb39fa8ea67156c640f7513eb26f318cec7 \ + --hash=sha256:25b85325d0815e86e0bac263506dd114578953b7b53d7de09a6485e4a160a7dd \ + --hash=sha256:29c30b83d8dcd061078b05ae0cb94d3c710555fbb44861139f9f83dcca3dc3e4 \ + --hash=sha256:319f659ee992222f04e58f84cbf407cfa66a65fe3a8de44e8ad2bc53e7d99012 \ + --hash=sha256:369cc9fc8cc10cb24143873a0d95438bb8ee257bb80c71989e3ee290e8d72c67 \ + --hash=sha256:37ae80a28c1d3265bb1f22464c856bd23c02a05bb211e56d0c5301a435be6c1a \ + --hash=sha256:38337540fbbddff8e999d59970f3c6f35a82de10053206a7562f1ea02d046fa5 \ + --hash=sha256:473b83b915e547aa366d1eee11806deaf419e17be16310ac0a14077f1e28f917 \ + --hash=sha256:544dd704ae7238755d790de45ba8da072e9af3eea688f698b137915ae959281c \ + --hash=sha256:64d94e84f6660764e64e7e0b22baa72f6cd942279fdbb21d46abd70d179f0195 \ + --hash=sha256:753d47ebd4542742ef9261d9da92cd545b2cacbb48349a1225466745bb866ec4 \ + --hash=sha256:791135ee325f2336f498590eb2f11dc5c295232f288e75c99a36c5dbce63088a \ + --hash=sha256:9ce725d22864a1e965217204946f830c37876eee3b2ba6fc6255e8e903d5fcbc \ + --hash=sha256:a6bf3f88c554a2b653af81f3204491c818ae2ac6fbc09e76ef4773351292bc92 \ + --hash=sha256:bfb88f22a209ff7b40a576d5324bf8286b519d7358663db21d6246fb17eea2d5 \ + --hash=sha256:c9ea31edff2968b44a88f97d784c2f16dc0729b8b143ed004699ebca91f05c48 \ + --hash=sha256:df6c4265b289083bf710dff49bc51ef252f9d5be33a45ee2bed151114a56207b \ + --hash=sha256:e10bf9113d209be7cd046d40fbabbaf3278ff6d18eb4da4c500443185dc1896c \ + --hash=sha256:f01a9c019878532f98927d2bacb79bbb404b43d3437455522a00a30718cdedb5 # via transformers toml==0.10.2 \ --hash=sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b \ --hash=sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f # via feast (setup.py) -tomli==2.3.0 \ - --hash=sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456 \ - --hash=sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845 \ - --hash=sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999 \ - --hash=sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0 \ - --hash=sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878 \ - --hash=sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf \ - --hash=sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3 \ - --hash=sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be \ - --hash=sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52 \ - --hash=sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b \ - --hash=sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67 \ - --hash=sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549 \ - --hash=sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba \ - --hash=sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22 \ - --hash=sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c \ - --hash=sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f \ - --hash=sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6 \ - --hash=sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba \ - --hash=sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45 \ - --hash=sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f \ - --hash=sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77 \ - --hash=sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606 \ - --hash=sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441 \ - --hash=sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0 \ - --hash=sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f \ - --hash=sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530 \ - --hash=sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05 \ - --hash=sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8 \ - --hash=sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005 \ - --hash=sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879 \ - --hash=sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae \ - --hash=sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc \ - --hash=sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b \ - --hash=sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b \ - --hash=sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e \ - --hash=sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf \ - --hash=sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac \ - --hash=sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8 \ - --hash=sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b \ - --hash=sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf \ - --hash=sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463 \ - --hash=sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876 +tomli==2.4.0 \ + --hash=sha256:0408e3de5ec77cc7f81960c362543cbbd91ef883e3138e81b729fc3eea5b9729 \ + --hash=sha256:0dc56fef0e2c1c470aeac5b6ca8cc7b640bb93e92d9803ddaf9ea03e198f5b0b \ + --hash=sha256:0e0fe8a0b8312acf3a88077a0802565cb09ee34107813bba1c7cd591fa6cfc8d \ + --hash=sha256:0f2e3955efea4d1cfbcb87bc321e00dc08d2bcb737fd1d5e398af111d86db5df \ + --hash=sha256:133e93646ec4300d651839d382d63edff11d8978be23da4cc106f5a18b7d0576 \ + --hash=sha256:1b168f2731796b045128c45982d3a4874057626da0e2ef1fdd722848b741361d \ + --hash=sha256:1c8a885b370751837c029ef9bc014f27d80840e48bac415f3412e6593bbc18c1 \ + --hash=sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a \ + --hash=sha256:1fb2945cbe303b1419e2706e711b7113da57b7db31ee378d08712d678a34e51e \ + --hash=sha256:20cedb4ee43278bc4f2fee6cb50daec836959aadaf948db5172e776dd3d993fc \ + --hash=sha256:20ffd184fb1df76a66e34bd1b36b4a4641bd2b82954befa32fe8163e79f1a702 \ + --hash=sha256:26ab906a1eb794cd4e103691daa23d95c6919cc2fa9160000ac02370cc9dd3f6 \ + --hash=sha256:2add28aacc7425117ff6364fe9e06a183bb0251b03f986df0e78e974047571fd \ + --hash=sha256:2b1e3b80e1d5e52e40e9b924ec43d81570f0e7d09d11081b797bc4692765a3d4 \ + --hash=sha256:31d556d079d72db7c584c0627ff3a24c5d3fb4f730221d3444f3efb1b2514776 \ + --hash=sha256:36b9d05b51e65b254ea6c2585b59d2c4cb91c8a3d91d0ed0f17591a29aaea54a \ + --hash=sha256:39b0b5d1b6dd03684b3fb276407ebed7090bbec989fa55838c98560c01113b66 \ + --hash=sha256:3cf226acb51d8f1c394c1b310e0e0e61fecdd7adcb78d01e294ac297dd2e7f87 \ + --hash=sha256:3d895d56bd3f82ddd6faaff993c275efc2ff38e52322ea264122d72729dca2b2 \ + --hash=sha256:413540dce94673591859c4c6f794dfeaa845e98bf35d72ed59636f869ef9f86f \ + --hash=sha256:43e685b9b2341681907759cf3a04e14d7104b3580f808cfde1dfdb60ada85475 \ + --hash=sha256:4cbcb367d44a1f0c2be408758b43e1ffb5308abe0ea222897d6bfc8e8281ef2f \ + --hash=sha256:551e321c6ba03b55676970b47cb1b73f14a0a4dce6a3e1a9458fd6d921d72e95 \ + --hash=sha256:5572e41282d5268eb09a697c89a7bee84fae66511f87533a6f88bd2f7b652da9 \ + --hash=sha256:5aa48d7c2356055feef06a43611fc401a07337d5b006be13a30f6c58f869e3c3 \ + --hash=sha256:5b5807f3999fb66776dbce568cc9a828544244a8eb84b84b9bafc080c99597b9 \ + --hash=sha256:5e3f639a7a8f10069d0e15408c0b96a2a828cfdec6fca05296ebcdcc28ca7c76 \ + --hash=sha256:685306e2cc7da35be4ee914fd34ab801a6acacb061b6a7abca922aaf9ad368da \ + --hash=sha256:75c2f8bbddf170e8effc98f5e9084a8751f8174ea6ccf4fca5398436e0320bc8 \ + --hash=sha256:7b438885858efd5be02a9a133caf5812b8776ee0c969fea02c45e8e3f296ba51 \ + --hash=sha256:7d49c66a7d5e56ac959cb6fc583aff0651094ec071ba9ad43df785abc2320d86 \ + --hash=sha256:7d6d9a4aee98fac3eab4952ad1d73aee87359452d1c086b5ceb43ed02ddb16b8 \ + --hash=sha256:84d081fbc252d1b6a982e1870660e7330fb8f90f676f6e78b052ad4e64714bf0 \ + --hash=sha256:8768715ffc41f0008abe25d808c20c3d990f42b6e2e58305d5da280ae7d1fa3b \ + --hash=sha256:920b1de295e72887bafa3ad9f7a792f811847d57ea6b1215154030cf131f16b1 \ + --hash=sha256:9a08144fa4cba33db5255f9b74f0b89888622109bd2776148f2597447f92a94e \ + --hash=sha256:a26d7ff68dfdb9f87a016ecfd1e1c2bacbe3108f4e0f8bcd2228ef9a766c787d \ + --hash=sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c \ + --hash=sha256:b5ef256a3fd497d4973c11bf142e9ed78b150d36f5773f1ca6088c230ffc5867 \ + --hash=sha256:b6c78bdf37764092d369722d9946cb65b8767bfa4110f902a1b2542d8d173c8a \ + --hash=sha256:bbb1b10aa643d973366dc2cb1ad94f99c1726a02343d43cbc011edbfac579e7c \ + --hash=sha256:c084ad935abe686bd9c898e62a02a19abfc9760b5a79bc29644463eaf2840cb0 \ + --hash=sha256:c73add4bb52a206fd0c0723432db123c0c75c280cbd67174dd9d2db228ebb1b4 \ + --hash=sha256:cae9c19ed12d4e8f3ebf46d1a75090e4c0dc16271c5bce1c833ac168f08fb614 \ + --hash=sha256:d20b797a5c1ad80c516e41bc1fb0443ddb5006e9aaa7bda2d71978346aeb9132 \ + --hash=sha256:d3d1654e11d724760cdb37a3d7691f0be9db5fbdaef59c9f532aabf87006dbaa \ + --hash=sha256:d878f2a6707cc9d53a1be1414bbb419e629c3d6e67f69230217bb663e76b5087 # via # coverage # fastapi-mcp -tomlkit==0.13.3 \ - --hash=sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1 \ - --hash=sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0 +tomlkit==0.14.0 \ + --hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 \ + --hash=sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064 # via # poetry-dynamic-versioning # snowflake-connector-python -toolz==0.12.1 \ - --hash=sha256:d22731364c07d72eea0a0ad45bafb2c2937ab6fd38a3507bf55eae8744aa7d85 \ - --hash=sha256:ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d +toolz==1.1.0 \ + --hash=sha256:15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8 \ + --hash=sha256:27a5c770d068c110d9ed9323f24f1543e83b2f300a687b7891c1a6d56b697b5b # via # altair # dask @@ -5916,9 +5917,9 @@ traitlets==5.14.3 \ # nbclient # nbconvert # nbformat -transformers==4.57.3 \ - --hash=sha256:c77d353a4851b1880191603d36acb313411d3577f6e2897814f333841f7003f4 \ - --hash=sha256:df4945029aaddd7c09eec5cad851f30662f8bd1746721b34cc031d70c65afebc +transformers==4.57.5 \ + --hash=sha256:5a1e0deb989cd0b8f141b6d8c9b7c956fc029cd288d68844f57dc0acbaf2fe39 \ + --hash=sha256:d631faea6bd32fc51962e482744afeaa70170c70e5e991cf8e355d7275631524 # via # feast (setup.py) # docling-core @@ -5971,16 +5972,6 @@ tree-sitter-c==0.24.1 \ --hash=sha256:a6a807705a3978911dc7ee26a7ad36dcfacb6adfc13c190d496660ec9bd66707 \ --hash=sha256:d46bbda06f838c2dcb91daf767813671fd366b49ad84ff37db702129267b46e1 # via docling-core -tree-sitter-java==0.23.5 \ - --hash=sha256:1ee45e790f8d31d416bc84a09dac2e2c6bc343e89b8a2e1d550513498eedfde7 \ - --hash=sha256:24acd59c4720dedad80d548fe4237e43ef2b7a4e94c8549b0ca6e4c4d7bf6e69 \ - --hash=sha256:355ce0308672d6f7013ec913dee4a0613666f4cda9044a7824240d17f38209df \ - --hash=sha256:370b204b9500b847f6d0c5ad584045831cee69e9a3e4d878535d39e4a7e4c4f1 \ - --hash=sha256:402efe136104c5603b429dc26c7e75ae14faaca54cfd319ecc41c8f2534750f4 \ - --hash=sha256:9401e7271f0b333df39fc8a8336a0caf1b891d9a2b89ddee99fae66b794fc5b7 \ - --hash=sha256:aae84449e330363b55b14a2af0585e4e0dae75eb64ea509b7e5b0e1de536846a \ - --hash=sha256:f5cd57b8f1270a7f0438878750d02ccc79421d45cca65ff284f1527e9ef02e38 - # via docling-core tree-sitter-javascript==0.25.0 \ --hash=sha256:199d09985190852e0912da2b8d26c932159be314bc04952cf917ed0e4c633e6b \ --hash=sha256:1b852d3aee8a36186dbcc32c798b11b4869f9b5041743b63b65c2ef793db7a54 \ @@ -6132,6 +6123,7 @@ tzdata==2025.3 \ --hash=sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7 # via # arrow + # ibis-framework # pandas tzlocal==5.3.1 \ --hash=sha256:cceffc7edecefea1f595541dbd6e990cb1ea3d19bf01b2809f362a03dd7921fd \ @@ -6446,80 +6438,72 @@ websocket-client==1.9.0 \ # via # jupyter-server # kubernetes -websockets==15.0.1 \ - --hash=sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2 \ - --hash=sha256:0a34631031a8f05657e8e90903e656959234f3a04552259458aac0b0f9ae6fd9 \ - --hash=sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5 \ - --hash=sha256:0c9e74d766f2818bb95f84c25be4dea09841ac0f734d1966f415e4edfc4ef1c3 \ - --hash=sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8 \ - --hash=sha256:0fdfe3e2a29e4db3659dbd5bbf04560cea53dd9610273917799f1cde46aa725e \ - --hash=sha256:1009ee0c7739c08a0cd59de430d6de452a55e42d6b522de7aa15e6f67db0b8e1 \ - --hash=sha256:1234d4ef35db82f5446dca8e35a7da7964d02c127b095e172e54397fb6a6c256 \ - --hash=sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85 \ - --hash=sha256:2034693ad3097d5355bfdacfffcbd3ef5694f9718ab7f29c29689a9eae841880 \ - --hash=sha256:21c1fa28a6a7e3cbdc171c694398b6df4744613ce9b36b1a498e816787e28123 \ - --hash=sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375 \ - --hash=sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065 \ - --hash=sha256:363c6f671b761efcb30608d24925a382497c12c506b51661883c3e22337265ed \ - --hash=sha256:39c1fec2c11dc8d89bba6b2bf1556af381611a173ac2b511cf7231622058af41 \ - --hash=sha256:3b1ac0d3e594bf121308112697cf4b32be538fb1444468fb0a6ae4feebc83411 \ - --hash=sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597 \ - --hash=sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f \ - --hash=sha256:3d00075aa65772e7ce9e990cab3ff1de702aa09be3940d1dc88d5abf1ab8a09c \ - --hash=sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3 \ - --hash=sha256:47819cea040f31d670cc8d324bb6435c6f133b8c7a19ec3d61634e62f8d8f9eb \ - --hash=sha256:47b099e1f4fbc95b701b6e85768e1fcdaf1630f3cbe4765fa216596f12310e2e \ - --hash=sha256:4a9fac8e469d04ce6c25bb2610dc535235bd4aa14996b4e6dbebf5e007eba5ee \ - --hash=sha256:4b826973a4a2ae47ba357e4e82fa44a463b8f168e1ca775ac64521442b19e87f \ - --hash=sha256:4c2529b320eb9e35af0fa3016c187dffb84a3ecc572bcee7c3ce302bfeba52bf \ - --hash=sha256:54479983bd5fb469c38f2f5c7e3a24f9a4e70594cd68cd1fa6b9340dadaff7cf \ - --hash=sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4 \ - --hash=sha256:5756779642579d902eed757b21b0164cd6fe338506a8083eb58af5c372e39d9a \ - --hash=sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665 \ - --hash=sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22 \ - --hash=sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675 \ - --hash=sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4 \ - --hash=sha256:5df592cd503496351d6dc14f7cdad49f268d8e618f80dce0cd5a36b93c3fc08d \ - --hash=sha256:5f4c04ead5aed67c8a1a20491d54cdfba5884507a48dd798ecaf13c74c4489f5 \ - --hash=sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65 \ - --hash=sha256:66dd88c918e3287efc22409d426c8f729688d89a0c587c88971a0faa2c2f3792 \ - --hash=sha256:678999709e68425ae2593acf2e3ebcbcf2e69885a5ee78f9eb80e6e371f1bf57 \ - --hash=sha256:67f2b6de947f8c757db2db9c71527933ad0019737ec374a8a6be9a956786aaf9 \ - --hash=sha256:693f0192126df6c2327cce3baa7c06f2a117575e32ab2308f7f8216c29d9e2e3 \ - --hash=sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151 \ - --hash=sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d \ - --hash=sha256:76d1f20b1c7a2fa82367e04982e708723ba0e7b8d43aa643d3dcd404d74f1475 \ - --hash=sha256:7f493881579c90fc262d9cdbaa05a6b54b3811c2f300766748db79f098db9940 \ - --hash=sha256:823c248b690b2fd9303ba00c4f66cd5e2d8c3ba4aa968b2779be9532a4dad431 \ - --hash=sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee \ - --hash=sha256:8dd8327c795b3e3f219760fa603dcae1dcc148172290a8ab15158cf85a953413 \ - --hash=sha256:8fdc51055e6ff4adeb88d58a11042ec9a5eae317a0a53d12c062c8a8865909e8 \ - --hash=sha256:a625e06551975f4b7ea7102bc43895b90742746797e2e14b70ed61c43a90f09b \ - --hash=sha256:abdc0c6c8c648b4805c5eacd131910d2a7f6455dfd3becab248ef108e89ab16a \ - --hash=sha256:ac017dd64572e5c3bd01939121e4d16cf30e5d7e110a119399cf3133b63ad054 \ - --hash=sha256:ac1e5c9054fe23226fb11e05a6e630837f074174c4c2f0fe442996112a6de4fb \ - --hash=sha256:ac60e3b188ec7574cb761b08d50fcedf9d77f1530352db4eef1707fe9dee7205 \ - --hash=sha256:b359ed09954d7c18bbc1680f380c7301f92c60bf924171629c5db97febb12f04 \ - --hash=sha256:b7643a03db5c95c799b89b31c036d5f27eeb4d259c798e878d6937d71832b1e4 \ - --hash=sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa \ - --hash=sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9 \ - --hash=sha256:cad21560da69f4ce7658ca2cb83138fb4cf695a2ba3e475e0559e05991aa8122 \ - --hash=sha256:d08eb4c2b7d6c41da6ca0600c077e93f5adcfd979cd777d747e9ee624556da4b \ - --hash=sha256:d50fd1ee42388dcfb2b3676132c78116490976f1300da28eb629272d5d93e905 \ - --hash=sha256:d591f8de75824cbb7acad4e05d2d710484f15f29d4a915092675ad3456f11770 \ - --hash=sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe \ - --hash=sha256:d63efaa0cd96cf0c5fe4d581521d9fa87744540d4bc999ae6e08595a1014b45b \ - --hash=sha256:d99e5546bf73dbad5bf3547174cd6cb8ba7273062a23808ffea025ecb1cf8562 \ - --hash=sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561 \ - --hash=sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215 \ - --hash=sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931 \ - --hash=sha256:f29d80eb9a9263b8d109135351caf568cc3f80b9928bccde535c235de55c22d9 \ - --hash=sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f \ - --hash=sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7 +websockets==16.0 \ + --hash=sha256:0298d07ee155e2e9fda5be8a9042200dd2e3bb0b8a38482156576f863a9d457c \ + --hash=sha256:04cdd5d2d1dacbad0a7bf36ccbcd3ccd5a30ee188f2560b7a62a30d14107b31a \ + --hash=sha256:08d7af67b64d29823fed316505a89b86705f2b7981c07848fb5e3ea3020c1abe \ + --hash=sha256:152284a83a00c59b759697b7f9e9cddf4e3c7861dd0d964b472b70f78f89e80e \ + --hash=sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec \ + --hash=sha256:19c4dc84098e523fd63711e563077d39e90ec6702aff4b5d9e344a60cb3c0cb1 \ + --hash=sha256:1c1b30e4f497b0b354057f3467f56244c603a79c0d1dafce1d16c283c25f6e64 \ + --hash=sha256:2b9f1e0d69bc60a4a87349d50c09a037a2607918746f07de04df9e43252c77a3 \ + --hash=sha256:31a52addea25187bde0797a97d6fc3d2f92b6f72a9370792d65a6e84615ac8a8 \ + --hash=sha256:32da954ffa2814258030e5a57bc73a3635463238e797c7375dc8091327434206 \ + --hash=sha256:335c23addf3d5e6a8633f9f8eda77efad001671e80b95c491dd0924587ece0b3 \ + --hash=sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156 \ + --hash=sha256:349f83cd6c9a415428ee1005cadb5c2c56f4389bc06a9af16103c3bc3dcc8b7d \ + --hash=sha256:37b31c1623c6605e4c00d466c9d633f9b812ea430c11c8a278774a1fde1acfa9 \ + --hash=sha256:417b28978cdccab24f46400586d128366313e8a96312e4b9362a4af504f3bbad \ + --hash=sha256:485c49116d0af10ac698623c513c1cc01c9446c058a4e61e3bf6c19dff7335a2 \ + --hash=sha256:4a1aba3340a8dca8db6eb5a7986157f52eb9e436b74813764241981ca4888f03 \ + --hash=sha256:50f23cdd8343b984957e4077839841146f67a3d31ab0d00e6b824e74c5b2f6e8 \ + --hash=sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230 \ + --hash=sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8 \ + --hash=sha256:5569417dc80977fc8c2d43a86f78e0a5a22fee17565d78621b6bb264a115d4ea \ + --hash=sha256:569d01a4e7fba956c5ae4fc988f0d4e187900f5497ce46339c996dbf24f17641 \ + --hash=sha256:583b7c42688636f930688d712885cf1531326ee05effd982028212ccc13e5957 \ + --hash=sha256:5a4b4cc550cb665dd8a47f868c8d04c8230f857363ad3c9caf7a0c3bf8c61ca6 \ + --hash=sha256:5f451484aeb5cafee1ccf789b1b66f535409d038c56966d6101740c1614b86c6 \ + --hash=sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5 \ + --hash=sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f \ + --hash=sha256:71c989cbf3254fbd5e84d3bff31e4da39c43f884e64f2551d14bb3c186230f00 \ + --hash=sha256:781caf5e8eee67f663126490c2f96f40906594cb86b408a703630f95550a8c3e \ + --hash=sha256:7be95cfb0a4dae143eaed2bcba8ac23f4892d8971311f1b06f3c6b78952ee70b \ + --hash=sha256:7d837379b647c0c4c2355c2499723f82f1635fd2c26510e1f587d89bc2199e72 \ + --hash=sha256:86890e837d61574c92a97496d590968b23c2ef0aeb8a9bc9421d174cd378ae39 \ + --hash=sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9 \ + --hash=sha256:8b6e209ffee39ff1b6d0fa7bfef6de950c60dfb91b8fcead17da4ee539121a79 \ + --hash=sha256:8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0 \ + --hash=sha256:8d7f0659570eefb578dacde98e24fb60af35350193e4f56e11190787bee77dac \ + --hash=sha256:8e1dab317b6e77424356e11e99a432b7cb2f3ec8c5ab4dabbcee6add48f72b35 \ + --hash=sha256:8ff32bb86522a9e5e31439a58addbb0166f0204d64066fb955265c4e214160f0 \ + --hash=sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5 \ + --hash=sha256:9b5aca38b67492ef518a8ab76851862488a478602229112c4b0d58d63a7a4d5c \ + --hash=sha256:a069d734c4a043182729edd3e9f247c3b2a4035415a9172fd0f1b71658a320a8 \ + --hash=sha256:a0b31e0b424cc6b5a04b8838bbaec1688834b2383256688cf47eb97412531da1 \ + --hash=sha256:a35539cacc3febb22b8f4d4a99cc79b104226a756aa7400adc722e83b0d03244 \ + --hash=sha256:a5e18a238a2b2249c9a9235466b90e96ae4795672598a58772dd806edc7ac6d3 \ + --hash=sha256:a653aea902e0324b52f1613332ddf50b00c06fdaf7e92624fbf8c77c78fa5767 \ + --hash=sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a \ + --hash=sha256:af80d74d4edfa3cb9ed973a0a5ba2b2a549371f8a741e0800cb07becdd20f23d \ + --hash=sha256:b14dc141ed6d2dde437cddb216004bcac6a1df0935d79656387bd41632ba0bbd \ + --hash=sha256:b784ca5de850f4ce93ec85d3269d24d4c82f22b7212023c974c401d4980ebc5e \ + --hash=sha256:bc59589ab64b0022385f429b94697348a6a234e8ce22544e3681b2e9331b5944 \ + --hash=sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82 \ + --hash=sha256:c0ee0e63f23914732c6d7e0cce24915c48f3f1512ec1d079ed01fc629dab269d \ + --hash=sha256:caab51a72c51973ca21fa8a18bd8165e1a0183f1ac7066a182ff27107b71e1a4 \ + --hash=sha256:d6297ce39ce5c2e6feb13c1a996a2ded3b6832155fcfc920265c76f24c7cceb5 \ + --hash=sha256:daa3b6ff70a9241cf6c7fc9e949d41232d9d7d26fd3522b1ad2b4d62487e9904 \ + --hash=sha256:df57afc692e517a85e65b72e165356ed1df12386ecb879ad5693be08fac65dde \ + --hash=sha256:e0334872c0a37b606418ac52f6ab9cfd17317ac26365f7f65e203e2d0d0d359f \ + --hash=sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c \ + --hash=sha256:eaded469f5e5b7294e2bdca0ab06becb6756ea86894a47806456089298813c89 \ + --hash=sha256:f4a32d1bd841d4bcbffdcb3d2ce50c09c3909fbead375ab28d0181af89fd04da \ + --hash=sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4 # via uvicorn -werkzeug==3.1.4 \ - --hash=sha256:2ad50fb9ed09cc3af22c54698351027ace879a0b60a3b5edf5730b2f7d876905 \ - --hash=sha256:cd3cd98b1b92dc3b7b3995038826c68097dcb16f9baa63abe35f20eafeb9fe5e +werkzeug==3.1.5 \ + --hash=sha256:5111e36e91086ece91f93268bb39b4a35c1e6f1feac762c9c822ded0a4e322dc \ + --hash=sha256:6a548b0e88955dd07ccb25539d7d0cc97417ee9e179677d22c7041c8f078ce67 # via moto wheel==0.45.1 \ --hash=sha256:661e1abd9198507b1409a20c02106d9670b2576e916d58f520316666abca6729 \ diff --git a/sdk/python/requirements/py3.11-minimal-requirements.txt b/sdk/python/requirements/py3.11-minimal-requirements.txt index 04ac9943f7b..e2dcbe974fc 100644 --- a/sdk/python/requirements/py3.11-minimal-requirements.txt +++ b/sdk/python/requirements/py3.11-minimal-requirements.txt @@ -8,127 +8,127 @@ aiohappyeyeballs==2.6.1 \ --hash=sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558 \ --hash=sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8 # via aiohttp -aiohttp==3.13.2 \ - --hash=sha256:04c3971421576ed24c191f610052bcb2f059e395bc2489dd99e397f9bc466329 \ - --hash=sha256:05c4dd3c48fb5f15db31f57eb35374cb0c09afdde532e7fb70a75aede0ed30f6 \ - --hash=sha256:070599407f4954021509193404c4ac53153525a19531051661440644728ba9a7 \ - --hash=sha256:0740f31a60848d6edb296a0df827473eede90c689b8f9f2a4cdde74889eb2254 \ - --hash=sha256:088912a78b4d4f547a1f19c099d5a506df17eacec3c6f4375e2831ec1d995742 \ - --hash=sha256:0a3d54e822688b56e9f6b5816fb3de3a3a64660efac64e4c2dc435230ad23bad \ - --hash=sha256:0db1e24b852f5f664cd728db140cf11ea0e82450471232a394b3d1a540b0f906 \ - --hash=sha256:0e87dff73f46e969af38ab3f7cb75316a7c944e2e574ff7c933bc01b10def7f5 \ - --hash=sha256:1237c1375eaef0db4dcd7c2559f42e8af7b87ea7d295b118c60c36a6e61cb811 \ - --hash=sha256:16f15a4eac3bc2d76c45f7ebdd48a65d41b242eb6c31c2245463b40b34584ded \ - --hash=sha256:1f9b2c2d4b9d958b1f9ae0c984ec1dd6b6689e15c75045be8ccb4011426268ca \ - --hash=sha256:204ffff2426c25dfda401ba08da85f9c59525cdc42bda26660463dd1cbcfec6f \ - --hash=sha256:20b10bbfbff766294fe99987f7bb3b74fdd2f1a2905f2562132641ad434dcf98 \ - --hash=sha256:20db2d67985d71ca033443a1ba2001c4b5693fe09b0e29f6d9358a99d4d62a8a \ - --hash=sha256:228a1cd556b3caca590e9511a89444925da87d35219a49ab5da0c36d2d943a6a \ - --hash=sha256:2372b15a5f62ed37789a6b383ff7344fc5b9f243999b0cd9b629d8bc5f5b4155 \ - --hash=sha256:23ad365e30108c422d0b4428cf271156dd56790f6dd50d770b8e360e6c5ab2e6 \ - --hash=sha256:23fb0783bc1a33640036465019d3bba069942616a6a2353c6907d7fe1ccdaf4e \ - --hash=sha256:2475391c29230e063ef53a66669b7b691c9bfc3f1426a0f7bcdf1216bdbac38b \ - --hash=sha256:27e569eb9d9e95dbd55c0fc3ec3a9335defbf1d8bc1d20171a49f3c4c607b93e \ - --hash=sha256:29562998ec66f988d49fb83c9b01694fa927186b781463f376c5845c121e4e0b \ - --hash=sha256:2adebd4577724dcae085665f294cc57c8701ddd4d26140504db622b8d566d7aa \ - --hash=sha256:2ca6ffef405fc9c09a746cb5d019c1672cd7f402542e379afc66b370833170cf \ - --hash=sha256:2e1a9bea6244a1d05a4e57c295d69e159a5c50d8ef16aa390948ee873478d9a5 \ - --hash=sha256:364e25edaabd3d37b1db1f0cbcee8c73c9a3727bfa262b83e5e4cf3489a2a9dc \ - --hash=sha256:364f55663085d658b8462a1c3f17b2b84a5c2e1ba858e1b79bff7b2e24ad1514 \ - --hash=sha256:39d02cb6025fe1aabca329c5632f48c9532a3dabccd859e7e2f110668972331f \ - --hash=sha256:3a92cf4b9bea33e15ecbaa5c59921be0f23222608143d025c989924f7e3e0c07 \ - --hash=sha256:40176a52c186aefef6eb3cad2cdd30cd06e3afbe88fe8ab2af9c0b90f228daca \ - --hash=sha256:4356474ad6333e41ccefd39eae869ba15a6c5299c9c01dfdcfdd5c107be4363e \ - --hash=sha256:43dff14e35aba17e3d6d5ba628858fb8cb51e30f44724a2d2f0c75be492c55e9 \ - --hash=sha256:4647d02df098f6434bafd7f32ad14942f05a9caa06c7016fdcc816f343997dd0 \ - --hash=sha256:47f438b1a28e926c37632bff3c44df7d27c9b57aaf4e34b1def3c07111fdb782 \ - --hash=sha256:4dd3db9d0f4ebca1d887d76f7cdbcd1116ac0d05a9221b9dad82c64a62578c4d \ - --hash=sha256:4ebf9cfc9ba24a74cf0718f04aac2a3bbe745902cc7c5ebc55c0f3b5777ef213 \ - --hash=sha256:5276807b9de9092af38ed23ce120539ab0ac955547b38563a9ba4f5b07b95293 \ - --hash=sha256:53b07472f235eb80e826ad038c9d106c2f653584753f3ddab907c83f49eedead \ - --hash=sha256:550bf765101ae721ee1d37d8095f47b1f220650f85fe1af37a90ce75bab89d04 \ - --hash=sha256:56d36e80d2003fa3fc0207fac644216d8532e9504a785ef9a8fd013f84a42c61 \ - --hash=sha256:585542825c4bc662221fb257889e011a5aa00f1ae4d75d1d246a5225289183e3 \ - --hash=sha256:5b927cf9b935a13e33644cbed6c8c4b2d0f25b713d838743f8fe7191b33829c4 \ - --hash=sha256:5d7f02042c1f009ffb70067326ef183a047425bb2ff3bc434ead4dd4a4a66a2b \ - --hash=sha256:6315fb6977f1d0dd41a107c527fee2ed5ab0550b7d885bc15fee20ccb17891da \ - --hash=sha256:66bac29b95a00db411cd758fea0e4b9bdba6d549dfe333f9a945430f5f2cc5a6 \ - --hash=sha256:6c00dbcf5f0d88796151e264a8eab23de2997c9303dd7c0bf622e23b24d3ce22 \ - --hash=sha256:6e7352512f763f760baaed2637055c49134fd1d35b37c2dedfac35bfe5cf8725 \ - --hash=sha256:7519bdc7dfc1940d201651b52bf5e03f5503bda45ad6eacf64dda98be5b2b6be \ - --hash=sha256:78cd586d8331fb8e241c2dd6b2f4061778cc69e150514b39a9e28dd050475661 \ - --hash=sha256:7a653d872afe9f33497215745da7a943d1dc15b728a9c8da1c3ac423af35178e \ - --hash=sha256:7c3a50345635a02db61792c85bb86daffac05330f6473d524f1a4e3ef9d0046d \ - --hash=sha256:7fbdf5ad6084f1940ce88933de34b62358d0f4a0b6ec097362dcd3e5a65a4989 \ - --hash=sha256:7fd19df530c292542636c2a9a85854fab93474396a52f1695e799186bbd7f24c \ - --hash=sha256:868e195e39b24aaa930b063c08bb0c17924899c16c672a28a65afded9c46c6ec \ - --hash=sha256:8709a0f05d59a71f33fd05c17fc11fcb8c30140506e13c2f5e8ee1b8964e1b45 \ - --hash=sha256:88d6c017966a78c5265d996c19cdb79235be5e6412268d7e2ce7dee339471b7a \ - --hash=sha256:8aa7c807df234f693fed0ecd507192fc97692e61fee5702cdc11155d2e5cadc8 \ - --hash=sha256:8b2f1414f6a1e0683f212ec80e813f4abef94c739fd090b66c9adf9d2a05feac \ - --hash=sha256:93655083005d71cd6c072cdab54c886e6570ad2c4592139c3fb967bfc19e4694 \ - --hash=sha256:939ced4a7add92296b0ad38892ce62b98c619288a081170695c6babe4f50e636 \ - --hash=sha256:9434bc0d80076138ea986833156c5a48c9c7a8abb0c96039ddbb4afc93184169 \ - --hash=sha256:94f05348c4406450f9d73d38efb41d669ad6cd90c7ee194810d0eefbfa875a7a \ - --hash=sha256:960c2fc686ba27b535f9fd2b52d87ecd7e4fd1cf877f6a5cba8afb5b4a8bd204 \ - --hash=sha256:96581619c57419c3d7d78703d5b78c1e5e5fc0172d60f555bdebaced82ded19a \ - --hash=sha256:97a0895a8e840ab3520e2288db7cace3a1981300d48babeb50e7425609e2e0ab \ - --hash=sha256:98c4fb90bb82b70a4ed79ca35f656f4281885be076f3f970ce315402b53099ae \ - --hash=sha256:99c5280a329d5fa18ef30fd10c793a190d996567667908bef8a7f81f8202b948 \ - --hash=sha256:9acda8604a57bb60544e4646a4615c1866ee6c04a8edef9b8ee6fd1d8fa2ddc8 \ - --hash=sha256:9c705601e16c03466cb72011bd1af55d68fa65b045356d8f96c216e5f6db0fa5 \ - --hash=sha256:9e8f8afb552297aca127c90cb840e9a1d4bfd6a10d7d8f2d9176e1acc69bad30 \ - --hash=sha256:9eb3e33fdbe43f88c3c75fa608c25e7c47bbd80f48d012763cb67c47f39a7e16 \ - --hash=sha256:9ec49dff7e2b3c85cdeaa412e9d438f0ecd71676fde61ec57027dd392f00c693 \ - --hash=sha256:9f377d0a924e5cc94dc620bc6366fc3e889586a7f18b748901cf016c916e2084 \ - --hash=sha256:a09a6d073fb5789456545bdee2474d14395792faa0527887f2f4ec1a486a59d3 \ - --hash=sha256:a2713a95b47374169409d18103366de1050fe0ea73db358fc7a7acb2880422d4 \ - --hash=sha256:a3b6fb0c207cc661fa0bf8c66d8d9b657331ccc814f4719468af61034b478592 \ - --hash=sha256:a4b88ebe35ce54205c7074f7302bd08a4cb83256a3e0870c72d6f68a3aaf8e49 \ - --hash=sha256:a88d13e7ca367394908f8a276b89d04a3652044612b9a408a0bb22a5ed976a1a \ - --hash=sha256:ac6cde5fba8d7d8c6ac963dbb0256a9854e9fafff52fbcc58fdf819357892c3e \ - --hash=sha256:ae32f24bbfb7dbb485a24b30b1149e2f200be94777232aeadba3eecece4d0aa4 \ - --hash=sha256:b009194665bcd128e23eaddef362e745601afa4641930848af4c8559e88f18f9 \ - --hash=sha256:b1e56bab2e12b2b9ed300218c351ee2a3d8c8fdab5b1ec6193e11a817767e47b \ - --hash=sha256:b395bbca716c38bef3c764f187860e88c724b342c26275bc03e906142fc5964f \ - --hash=sha256:b59d13c443f8e049d9e94099c7e412e34610f1f49be0f230ec656a10692a5802 \ - --hash=sha256:ba2715d842ffa787be87cbfce150d5e88c87a98e0b62e0f5aa489169a393dbbb \ - --hash=sha256:bb7fb776645af5cc58ab804c58d7eba545a97e047254a52ce89c157b5af6cd0b \ - --hash=sha256:c038a8fdc8103cd51dbd986ecdce141473ffd9775a7a8057a6ed9c3653478011 \ - --hash=sha256:c20423ce14771d98353d2e25e83591fa75dfa90a3c1848f3d7c68243b4fbded3 \ - --hash=sha256:c5c94825f744694c4b8db20b71dba9a257cd2ba8e010a803042123f3a25d50d7 \ - --hash=sha256:cf00e5db968c3f67eccd2778574cf64d8b27d95b237770aa32400bd7a1ca4f6c \ - --hash=sha256:d23b5fe492b0805a50d3371e8a728a9134d8de5447dce4c885f5587294750734 \ - --hash=sha256:d7bc4b7f9c4921eba72677cd9fedd2308f4a4ca3e12fab58935295ad9ea98700 \ - --hash=sha256:d8a9b889aeabd7a4e9af0b7f4ab5ad94d42e7ff679aaec6d0db21e3b639ad58d \ - --hash=sha256:dacd50501cd017f8cccb328da0c90823511d70d24a323196826d923aad865901 \ - --hash=sha256:e036a3a645fe92309ec34b918394bb377950cbb43039a97edae6c08db64b23e2 \ - --hash=sha256:e09a0a06348a2dd73e7213353c90d709502d9786219f69b731f6caa0efeb46f5 \ - --hash=sha256:e0c8e31cfcc4592cb200160344b2fb6ae0f9e4effe06c644b5a125d4ae5ebe23 \ - --hash=sha256:e1b4951125ec10c70802f2cb09736c895861cd39fd9dcb35107b4dc8ae6220b8 \ - --hash=sha256:e2a9ea08e8c58bb17655630198833109227dea914cd20be660f52215f6de5613 \ - --hash=sha256:e3403f24bcb9c3b29113611c3c16a2a447c3953ecf86b79775e7be06f7ae7ccb \ - --hash=sha256:e574a7d61cf10351d734bcddabbe15ede0eaa8a02070d85446875dc11189a251 \ - --hash=sha256:e67446b19e014d37342f7195f592a2a948141d15a312fe0e700c2fd2f03124f6 \ - --hash=sha256:e736c93e9c274fce6419af4aac199984d866e55f8a4cec9114671d0ea9688780 \ - --hash=sha256:e7c952aefdf2460f4ae55c5e9c3e80aa72f706a6317e06020f80e96253b1accd \ - --hash=sha256:e7f8659a48995edee7229522984bd1009c1213929c769c2daa80b40fe49a180c \ - --hash=sha256:e96eb1a34396e9430c19d8338d2ec33015e4a87ef2b4449db94c22412e25ccdf \ - --hash=sha256:ec7534e63ae0f3759df3a1ed4fa6bc8f75082a924b590619c0dd2f76d7043caa \ - --hash=sha256:ed2f9c7216e53c3df02264f25d824b079cc5914f9e2deba94155190ef648ee40 \ - --hash=sha256:eeacf451c99b4525f700f078becff32c32ec327b10dcf31306a8a52d78166de7 \ - --hash=sha256:f10d9c0b0188fe85398c61147bbd2a657d616c876863bfeff43376e0e3134673 \ - --hash=sha256:f2bef8237544f4e42878c61cef4e2839fee6346dc60f5739f876a9c50be7fcdb \ - --hash=sha256:f33c8748abef4d8717bb20e8fb1b3e07c6adacb7fd6beaae971a764cf5f30d61 \ - --hash=sha256:f7c183e786e299b5d6c49fb43a769f8eb8e04a2726a2bd5887b98b5cc2d67940 \ - --hash=sha256:fa4dcb605c6f82a80c7f95713c2b11c3b8e9893b3ebd2bc9bde93165ed6107be \ - --hash=sha256:fa89cb11bc71a63b69568d5b8a25c3ca25b6d54c15f907ca1c130d72f320b76b \ - --hash=sha256:fe242cd381e0fb65758faf5ad96c2e460df6ee5b2de1072fe97e4127927e00b4 \ - --hash=sha256:fe91b87fc295973096251e2d25a811388e7d8adf3bd2b97ef6ae78bc4ac6c476 \ - --hash=sha256:fed38a5edb7945f4d1bcabe2fcd05db4f6ec7e0e82560088b754f7e08d93772d \ - --hash=sha256:ff0a7b0a82a7ab905cbda74006318d1b12e37c797eb1b0d4eb3e316cf47f658f \ - --hash=sha256:ff15c147b2ad66da1f2cbb0622313f2242d8e6e8f9b79b5206c84523a4473248 \ - --hash=sha256:ff5e771f5dcbc81c64898c597a434f7682f2259e0cd666932a913d53d1341d1a +aiohttp==3.13.3 \ + --hash=sha256:01ad2529d4b5035578f5081606a465f3b814c542882804e2e8cda61adf5c71bf \ + --hash=sha256:042e9e0bcb5fba81886c8b4fbb9a09d6b8a00245fd8d88e4d989c1f96c74164c \ + --hash=sha256:05861afbbec40650d8a07ea324367cb93e9e8cc7762e04dd4405df99fa65159c \ + --hash=sha256:084911a532763e9d3dd95adf78a78f4096cd5f58cdc18e6fdbc1b58417a45423 \ + --hash=sha256:0add0900ff220d1d5c5ebbf99ed88b0c1bbf87aa7e4262300ed1376a6b13414f \ + --hash=sha256:0db318f7a6f065d84cb1e02662c526294450b314a02bd9e2a8e67f0d8564ce40 \ + --hash=sha256:10b47b7ba335d2e9b1239fa571131a87e2d8ec96b333e68b2a305e7a98b0bae2 \ + --hash=sha256:1449ceddcdbcf2e0446957863af03ebaaa03f94c090f945411b61269e2cb5daf \ + --hash=sha256:147e422fd1223005c22b4fe080f5d93ced44460f5f9c105406b753612b587821 \ + --hash=sha256:1cb93e166e6c28716c8c6aeb5f99dfb6d5ccf482d29fe9bf9a794110e6d0ab64 \ + --hash=sha256:215a685b6fbbfcf71dfe96e3eba7a6f58f10da1dfdf4889c7dd856abe430dca7 \ + --hash=sha256:2712039939ec963c237286113c68dbad80a82a4281543f3abf766d9d73228998 \ + --hash=sha256:27234ef6d85c914f9efeb77ff616dbf4ad2380be0cda40b4db086ffc7ddd1b7d \ + --hash=sha256:28e027cf2f6b641693a09f631759b4d9ce9165099d2b5d92af9bd4e197690eea \ + --hash=sha256:2b8d8ddba8f95ba17582226f80e2de99c7a7948e66490ef8d947e272a93e9463 \ + --hash=sha256:2ba0eea45eb5cc3172dbfc497c066f19c41bac70963ea1a67d51fc92e4cf9a80 \ + --hash=sha256:2be0e9ccf23e8a94f6f0650ce06042cefc6ac703d0d7ab6c7a917289f2539ad4 \ + --hash=sha256:2e41b18a58da1e474a057b3d35248d8320029f61d70a37629535b16a0c8f3767 \ + --hash=sha256:2eb752b102b12a76ca02dff751a801f028b4ffbbc478840b473597fc91a9ed43 \ + --hash=sha256:2fc82186fadc4a8316768d61f3722c230e2c1dcab4200d52d2ebdf2482e47592 \ + --hash=sha256:2fff83cfc93f18f215896e3a190e8e5cb413ce01553901aca925176e7568963a \ + --hash=sha256:31a83ea4aead760dfcb6962efb1d861db48c34379f2ff72db9ddddd4cda9ea2e \ + --hash=sha256:34749271508078b261c4abb1767d42b8d0c0cc9449c73a4df494777dc55f0687 \ + --hash=sha256:34bac00a67a812570d4a460447e1e9e06fae622946955f939051e7cc895cfab8 \ + --hash=sha256:37239e9f9a7ea9ac5bf6b92b0260b01f8a22281996da609206a84df860bc1261 \ + --hash=sha256:37da61e244d1749798c151421602884db5270faf479cf0ef03af0ff68954c9dd \ + --hash=sha256:3b61b7169ababd7802f9568ed96142616a9118dd2be0d1866e920e77ec8fa92a \ + --hash=sha256:3d9908a48eb7416dc1f4524e69f1d32e5d90e3981e4e37eb0aa1cd18f9cfa2a4 \ + --hash=sha256:3dd4dce1c718e38081c8f35f323209d4c1df7d4db4bab1b5c88a6b4d12b74587 \ + --hash=sha256:4021b51936308aeea0367b8f006dc999ca02bc118a0cc78c303f50a2ff6afb91 \ + --hash=sha256:40c5e40ecc29ba010656c18052b877a1c28f84344825efa106705e835c28530f \ + --hash=sha256:425c126c0dc43861e22cb1c14ba4c8e45d09516d0a3ae0a3f7494b79f5f233a3 \ + --hash=sha256:44531a36aa2264a1860089ffd4dce7baf875ee5a6079d5fb42e261c704ef7344 \ + --hash=sha256:48e377758516d262bde50c2584fc6c578af272559c409eecbdd2bae1601184d6 \ + --hash=sha256:49a03727c1bba9a97d3e93c9f93ca03a57300f484b6e935463099841261195d3 \ + --hash=sha256:4ae5b5a0e1926e504c81c5b84353e7a5516d8778fbbff00429fe7b05bb25cbce \ + --hash=sha256:4e239d501f73d6db1522599e14b9b321a7e3b1de66ce33d53a765d975e9f4808 \ + --hash=sha256:56339a36b9f1fc708260c76c87e593e2afb30d26de9ae1eb445b5e051b98a7a1 \ + --hash=sha256:568f416a4072fbfae453dcf9a99194bbb8bdeab718e08ee13dfa2ba0e4bebf29 \ + --hash=sha256:5b179331a481cb5529fca8b432d8d3c7001cb217513c94cd72d668d1248688a3 \ + --hash=sha256:5b6073099fb654e0a068ae678b10feff95c5cae95bbfcbfa7af669d361a8aa6b \ + --hash=sha256:5d2d94f1f5fcbe40838ac51a6ab5704a6f9ea42e72ceda48de5e6b898521da51 \ + --hash=sha256:5dff64413671b0d3e7d5918ea490bdccb97a4ad29b3f311ed423200b2203e01c \ + --hash=sha256:5e1d8c8b8f1d91cd08d8f4a3c2b067bfca6ec043d3ff36de0f3a715feeedf926 \ + --hash=sha256:5f8ca7f2bb6ba8348a3614c7918cc4bb73268c5ac2a207576b7afea19d3d9f64 \ + --hash=sha256:642f752c3eb117b105acbd87e2c143de710987e09860d674e068c4c2c441034f \ + --hash=sha256:65d2ccb7eabee90ce0503c17716fc77226be026dcc3e65cce859a30db715025b \ + --hash=sha256:693781c45a4033d31d4187d2436f5ac701e7bbfe5df40d917736108c1cc7436e \ + --hash=sha256:694976222c711d1d00ba131904beb60534f93966562f64440d0c9d41b8cdb440 \ + --hash=sha256:697753042d57f4bf7122cab985bf15d0cef23c770864580f5af4f52023a56bd6 \ + --hash=sha256:69c56fbc1993fa17043e24a546959c0178fe2b5782405ad4559e6c13975c15e3 \ + --hash=sha256:6de499a1a44e7de70735d0b39f67c8f25eb3d91eb3103be99ca0fa882cdd987d \ + --hash=sha256:6fc0e2337d1a4c3e6acafda6a78a39d4c14caea625124817420abceed36e2415 \ + --hash=sha256:75ca857eba4e20ce9f546cd59c7007b33906a4cd48f2ff6ccf1ccfc3b646f279 \ + --hash=sha256:7a4a94eb787e606d0a09404b9c38c113d3b099d508021faa615d70a0131907ce \ + --hash=sha256:7b5e8fe4de30df199155baaf64f2fcd604f4c678ed20910db8e2c66dc4b11603 \ + --hash=sha256:7bfdc049127717581866fa4708791220970ce291c23e28ccf3922c700740fdc0 \ + --hash=sha256:7e63f210bc1b57ef699035f2b4b6d9ce096b5914414a49b0997c839b2bd2223c \ + --hash=sha256:7f9120f7093c2a32d9647abcaf21e6ad275b4fbec5b55969f978b1a97c7c86bf \ + --hash=sha256:8057c98e0c8472d8846b9c79f56766bcc57e3e8ac7bfd510482332366c56c591 \ + --hash=sha256:80dd4c21b0f6237676449c6baaa1039abae86b91636b6c91a7f8e61c87f89540 \ + --hash=sha256:81e97251d9298386c2b7dbeb490d3d1badbdc69107fb8c9299dd04eb39bddc0e \ + --hash=sha256:82611aeec80eb144416956ec85b6ca45a64d76429c1ed46ae1b5f86c6e0c9a26 \ + --hash=sha256:8542f41a62bcc58fc7f11cf7c90e0ec324ce44950003feb70640fc2a9092c32a \ + --hash=sha256:859bd3f2156e81dd01432f5849fc73e2243d4a487c4fd26609b1299534ee1845 \ + --hash=sha256:87797e645d9d8e222e04160ee32aa06bc5c163e8499f24db719e7852ec23093a \ + --hash=sha256:87b9aab6d6ed88235aa2970294f496ff1a1f9adcd724d800e9b952395a80ffd9 \ + --hash=sha256:8a60e60746623925eab7d25823329941aee7242d559baa119ca2b253c88a7bd6 \ + --hash=sha256:90455115e5da1c3c51ab619ac57f877da8fd6d73c05aacd125c5ae9819582aba \ + --hash=sha256:90751b8eed69435bac9ff4e3d2f6b3af1f57e37ecb0fbeee59c0174c9e2d41df \ + --hash=sha256:947c26539750deeaee933b000fb6517cc770bbd064bad6033f1cff4803881e43 \ + --hash=sha256:96d604498a7c782cb15a51c406acaea70d8c027ee6b90c569baa6e7b93073679 \ + --hash=sha256:988a8c5e317544fdf0d39871559e67b6341065b87fceac641108c2096d5506b7 \ + --hash=sha256:9a9dc347e5a3dc7dfdbc1f82da0ef29e388ddb2ed281bfce9dd8248a313e62b7 \ + --hash=sha256:9ae8dd55c8e6c4257eae3a20fd2c8f41edaea5992ed67156642493b8daf3cecc \ + --hash=sha256:9af5e68ee47d6534d36791bbe9b646d2a7c7deb6fc24d7943628edfbb3581f29 \ + --hash=sha256:9b174f267b5cfb9a7dba9ee6859cecd234e9a681841eb85068059bc867fb8f02 \ + --hash=sha256:9bf9f7a65e7aa20dd764151fb3d616c81088f91f8df39c3893a536e279b4b984 \ + --hash=sha256:9d4c940f02f49483b18b079d1c27ab948721852b281f8b015c058100e9421dd1 \ + --hash=sha256:9ebf57d09e131f5323464bd347135a88622d1c0976e88ce15b670e7ad57e4bd6 \ + --hash=sha256:a19884d2ee70b06d9204b2727a7b9f983d0c684c650254679e716b0b77920632 \ + --hash=sha256:a1e53262fd202e4b40b70c3aff944a8155059beedc8a89bba9dc1f9ef06a1b56 \ + --hash=sha256:a2212ad43c0833a873d0fb3c63fa1bacedd4cf6af2fee62bf4b739ceec3ab239 \ + --hash=sha256:a45530014d7a1e09f4a55f4f43097ba0fd155089372e105e4bff4ca76cb1b168 \ + --hash=sha256:a949eee43d3782f2daae4f4a2819b2cb9b0c5d3b7f7a927067cc84dafdbb9f88 \ + --hash=sha256:add1da70de90a2569c5e15249ff76a631ccacfe198375eead4aadf3b8dc849dc \ + --hash=sha256:af71fff7bac6bb7508956696dce8f6eec2bbb045eceb40343944b1ae62b5ef11 \ + --hash=sha256:b04be762396457bef43f3597c991e192ee7da460a4953d7e647ee4b1c28e7046 \ + --hash=sha256:b0d95340658b9d2f11d9697f59b3814a9d3bb4b7a7c20b131df4bcef464037c0 \ + --hash=sha256:b1a6102b4d3ebc07dad44fbf07b45bb600300f15b552ddf1851b5390202ea2e3 \ + --hash=sha256:b46020d11d23fe16551466c77823df9cc2f2c1e63cc965daf67fa5eec6ca1877 \ + --hash=sha256:b556c85915d8efaed322bf1bdae9486aa0f3f764195a0fb6ee962e5c71ef5ce1 \ + --hash=sha256:b903a4dfee7d347e2d87697d0713be59e0b87925be030c9178c5faa58ea58d5c \ + --hash=sha256:b928f30fe49574253644b1ca44b1b8adbd903aa0da4b9054a6c20fc7f4092a25 \ + --hash=sha256:b99281b0704c103d4e11e72a76f1b543d4946fea7dd10767e7e1b5f00d4e5704 \ + --hash=sha256:bae5c2ed2eae26cc382020edad80d01f36cb8e746da40b292e68fec40421dc6a \ + --hash=sha256:bb4f7475e359992b580559e008c598091c45b5088f28614e855e42d39c2f1033 \ + --hash=sha256:bbe7d4cecacb439e2e2a8a1a7b935c25b812af7a5fd26503a66dadf428e79ec1 \ + --hash=sha256:bfc1cc2fe31a6026a8a88e4ecfb98d7f6b1fec150cfd708adbfd1d2f42257c29 \ + --hash=sha256:c014c7ea7fb775dd015b2d3137378b7be0249a448a1612268b5a90c2d81de04d \ + --hash=sha256:c048058117fd649334d81b4b526e94bde3ccaddb20463a815ced6ecbb7d11160 \ + --hash=sha256:c0e2d366af265797506f0283487223146af57815b388623f0357ef7eac9b209d \ + --hash=sha256:c19b90316ad3b24c69cd78d5c9b4f3aa4497643685901185b65166293d36a00f \ + --hash=sha256:c685f2d80bb67ca8c3837823ad76196b3694b0159d232206d1e461d3d434666f \ + --hash=sha256:c6b8568a3bb5819a0ad087f16d40e5a3fb6099f39ea1d5625a3edc1e923fc538 \ + --hash=sha256:d32764c6c9aafb7fb55366a224756387cd50bfa720f32b88e0e6fa45b27dcf29 \ + --hash=sha256:d5a372fd5afd301b3a89582817fdcdb6c34124787c70dbcc616f259013e7eef7 \ + --hash=sha256:d60ac9663f44168038586cab2157e122e46bdef09e9368b37f2d82d354c23f72 \ + --hash=sha256:dca68018bf48c251ba17c72ed479f4dafe9dbd5a73707ad8d28a38d11f3d42af \ + --hash=sha256:de2c184bb1fe2cbd2cefba613e9db29a5ab559323f994b6737e370d3da0ac455 \ + --hash=sha256:e3531d63d3bdfa7e3ac5e9b27b2dd7ec9df3206a98e0b3445fa906f233264c57 \ + --hash=sha256:e50a2e1404f063427c9d027378472316201a2290959a295169bcf25992d04558 \ + --hash=sha256:e636b3c5f61da31a92bf0d91da83e58fdfa96f178ba682f11d24f31944cdd28c \ + --hash=sha256:ea37047c6b367fd4bd632bff8077449b8fa034b69e812a18e0132a00fae6e808 \ + --hash=sha256:f33ed1a2bf1997a36661874b017f5c4b760f41266341af36febaf271d179f6d7 \ + --hash=sha256:f76c1e3fe7d7c8afad7ed193f89a292e1999608170dcc9751a7462a87dfd5bc0 \ + --hash=sha256:f9444f105664c4ce47a2a7171a2418bce5b7bae45fb610f4e2c36045d85911d3 \ + --hash=sha256:fc290605db2a917f6e81b0e1e0796469871f5af381ce15c604a3c5c7e51cb730 \ + --hash=sha256:fc353029f176fd2b3ec6cfc71be166aba1936fe5d73dd1992ce289ca6647a9aa \ + --hash=sha256:fee0c6bc7db1de362252affec009707a17478a00ec69f797d23ca256e36d5940 # via aiobotocore aioitertools==0.13.0 \ --hash=sha256:0be0292b856f08dfac90e31f4739432f4cb6d7520ab9eb73e143f4f2fa5259be \ @@ -146,9 +146,9 @@ annotated-types==0.7.0 \ --hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 \ --hash=sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89 # via pydantic -anyio==4.12.0 \ - --hash=sha256:73c693b567b0c55130c104d0b43a9baf3aa6a31fc6110116509f27bf75e21ec0 \ - --hash=sha256:dad2376a628f98eeca4881fc56cd06affd18f659b17a747d3ff0307ced94b1bb +anyio==4.12.1 \ + --hash=sha256:41cfcc3a4c85d3f05c932da7c26d0201ac36f72abd4435ba90d0464a3ffed703 \ + --hash=sha256:d405828884fc140aa80a3c667b8beed277f1dfedec42ba031bd6ac3db606ab6c # via # httpx # mcp @@ -163,9 +163,9 @@ async-timeout==5.0.1 \ --hash=sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c \ --hash=sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3 # via redis -atpublic==5.1 \ - --hash=sha256:135783dbd887fbddb6ef032d104da70c124f2b44b9e2d79df07b9da5334825e3 \ - --hash=sha256:abc1f4b3dbdd841cc3539e4b5e4f3ad41d658359de704e30cb36da4d4e9d3022 +atpublic==7.0.0 \ + --hash=sha256:466ef10d0c8bbd14fd02a5fbd5a8b6af6a846373d91106d3a07c16d72d96b63e \ + --hash=sha256:6702bd9e7245eb4e8220a3e222afcef7f87412154732271ee7deee4433b72b4b # via ibis-framework attrs==25.4.0 \ --hash=sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11 \ @@ -174,9 +174,9 @@ attrs==25.4.0 \ # aiohttp # jsonschema # referencing -bigtree==1.0.4 \ - --hash=sha256:e4af0c5bc0d2cd72e18442965e4509f642b16a0de65db6d0ec116e30f959010c \ - --hash=sha256:f58a3238bb9b1142d893c9de4921bfd18d435427c75e0c168dd580eabf6dc7fd +bigtree==1.1.0 \ + --hash=sha256:3f1ff63d2d66d31bf19855ddda8884637edf8dd1fc1aa118cf3a750580ece48b \ + --hash=sha256:f54f99d842732c91cce39c596a3755a2e8325b1cab5bc6876f5b15bd3942081c # via feast (setup.py) boto3==1.38.27 \ --hash=sha256:94bd7fdd92d5701b362d4df100d21e28f8307a67ff56b6a8b0398119cf22f859 \ @@ -192,13 +192,9 @@ botocore==1.38.46 \ # boto3 # s3transfer # snowflake-connector-python -cachetools==6.2.4 \ - --hash=sha256:69a7a52634fed8b8bf6e24a050fb60bff1c9bd8f6d24572b99c32d4e71e62a51 \ - --hash=sha256:82c5c05585e70b6ba2d3ae09ea60b79548872185d2f24ae1f2709d37299fd607 - # via google-auth -certifi==2025.11.12 \ - --hash=sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b \ - --hash=sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316 +certifi==2026.1.4 \ + --hash=sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c \ + --hash=sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120 # via # httpcore # httpx @@ -483,59 +479,48 @@ dill==0.3.9 \ --hash=sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a \ --hash=sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c # via feast (setup.py) -duckdb==1.1.3 \ - --hash=sha256:00cca22df96aa3473fe4584f84888e2cf1c516e8c2dd837210daec44eadba586 \ - --hash=sha256:08935700e49c187fe0e9b2b86b5aad8a2ccd661069053e38bfaed3b9ff795efd \ - --hash=sha256:0897f83c09356206ce462f62157ce064961a5348e31ccb2a557a7531d814e70e \ - --hash=sha256:09c68522c30fc38fc972b8a75e9201616b96ae6da3444585f14cf0d116008c95 \ - --hash=sha256:0a55169d2d2e2e88077d91d4875104b58de45eff6a17a59c7dc41562c73df4be \ - --hash=sha256:0ba6baa0af33ded836b388b09433a69b8bec00263247f6bf0a05c65c897108d3 \ - --hash=sha256:183ac743f21c6a4d6adfd02b69013d5fd78e5e2cd2b4db023bc8a95457d4bc5d \ - --hash=sha256:1aa3abec8e8995a03ff1a904b0e66282d19919f562dd0a1de02f23169eeec461 \ - --hash=sha256:1c0226dc43e2ee4cc3a5a4672fddb2d76fd2cf2694443f395c02dd1bea0b7fce \ - --hash=sha256:1d9ab6143e73bcf17d62566e368c23f28aa544feddfd2d8eb50ef21034286f24 \ - --hash=sha256:2141c6b28162199999075d6031b5d63efeb97c1e68fb3d797279d31c65676269 \ - --hash=sha256:252d9b17d354beb9057098d4e5d5698e091a4f4a0d38157daeea5fc0ec161670 \ - --hash=sha256:25fb02629418c0d4d94a2bc1776edaa33f6f6ccaa00bd84eb96ecb97ae4b50e9 \ - --hash=sha256:2f073d15d11a328f2e6d5964a704517e818e930800b7f3fa83adea47f23720d3 \ - --hash=sha256:35c420f58abc79a68a286a20fd6265636175fadeca1ce964fc8ef159f3acc289 \ - --hash=sha256:4ebf5f60ddbd65c13e77cddb85fe4af671d31b851f125a4d002a313696af43f1 \ - --hash=sha256:4f0e2e5a6f5a53b79aee20856c027046fba1d73ada6178ed8467f53c3877d5e0 \ - --hash=sha256:51c6d79e05b4a0933672b1cacd6338f882158f45ef9903aef350c4427d9fc898 \ - --hash=sha256:51e7dbd968b393343b226ab3f3a7b5a68dee6d3fe59be9d802383bf916775cb8 \ - --hash=sha256:5ace6e4b1873afdd38bd6cc8fcf90310fb2d454f29c39a61d0c0cf1a24ad6c8d \ - --hash=sha256:5d57776539211e79b11e94f2f6d63de77885f23f14982e0fac066f2885fcf3ff \ - --hash=sha256:6411e21a2128d478efbd023f2bdff12464d146f92bc3e9c49247240448ace5a6 \ - --hash=sha256:647f17bd126170d96a38a9a6f25fca47ebb0261e5e44881e3782989033c94686 \ - --hash=sha256:68c3a46ab08836fe041d15dcbf838f74a990d551db47cb24ab1c4576fc19351c \ - --hash=sha256:77f26884c7b807c7edd07f95cf0b00e6d47f0de4a534ac1706a58f8bc70d0d31 \ - --hash=sha256:7c71169fa804c0b65e49afe423ddc2dc83e198640e3b041028da8110f7cd16f7 \ - --hash=sha256:80158f4c7c7ada46245837d5b6869a336bbaa28436fbb0537663fa324a2750cd \ - --hash=sha256:872d38b65b66e3219d2400c732585c5b4d11b13d7a36cd97908d7981526e9898 \ - --hash=sha256:8ee97ec337794c162c0638dda3b4a30a483d0587deda22d45e1909036ff0b739 \ - --hash=sha256:911d58c22645bfca4a5a049ff53a0afd1537bc18fedb13bc440b2e5af3c46148 \ - --hash=sha256:9c619e4849837c8c83666f2cd5c6c031300cd2601e9564b47aa5de458ff6e69d \ - --hash=sha256:9d0767ada9f06faa5afcf63eb7ba1befaccfbcfdac5ff86f0168c673dd1f47aa \ - --hash=sha256:9e3f5cd604e7c39527e6060f430769b72234345baaa0987f9500988b2814f5e4 \ - --hash=sha256:a1f83c7217c188b7ab42e6a0963f42070d9aed114f6200e3c923c8899c090f16 \ - --hash=sha256:a1fa0c502f257fa9caca60b8b1478ec0f3295f34bb2efdc10776fc731b8a6c5f \ - --hash=sha256:a30dd599b8090ea6eafdfb5a9f1b872d78bac318b6914ada2d35c7974d643640 \ - --hash=sha256:a433ae9e72c5f397c44abdaa3c781d94f94f4065bcbf99ecd39433058c64cb38 \ - --hash=sha256:a4748635875fc3c19a7320a6ae7410f9295557450c0ebab6d6712de12640929a \ - --hash=sha256:b74e121ab65dbec5290f33ca92301e3a4e81797966c8d9feef6efdf05fc6dafd \ - --hash=sha256:c443d3d502335e69fc1e35295fcfd1108f72cb984af54c536adfd7875e79cee5 \ - --hash=sha256:c5336939d83837af52731e02b6a78a446794078590aa71fd400eb17f083dda3e \ - --hash=sha256:cddc6c1a3b91dcc5f32493231b3ba98f51e6d3a44fe02839556db2b928087378 \ - --hash=sha256:d08308e0a46c748d9c30f1d67ee1143e9c5ea3fbcccc27a47e115b19e7e78aa9 \ - --hash=sha256:d5724fd8a49e24d730be34846b814b98ba7c304ca904fbdc98b47fa95c0b0cee \ - --hash=sha256:e4ef7ba97a65bd39d66f2a7080e6fb60e7c3e41d4c1e19245f90f53b98e3ac32 \ - --hash=sha256:e59087dbbb63705f2483544e01cccf07d5b35afa58be8931b224f3221361d537 \ - --hash=sha256:e86006958e84c5c02f08f9b96f4bc26990514eab329b1b4f71049b3727ce5989 \ - --hash=sha256:ecb1dc9062c1cc4d2d88a5e5cd8cc72af7818ab5a3c0f796ef0ffd60cfd3efb4 \ - --hash=sha256:eeacb598120040e9591f5a4edecad7080853aa8ac27e62d280f151f8c862afa3 \ - --hash=sha256:f549af9f7416573ee48db1cf8c9d27aeed245cb015f4b4f975289418c6cf7320 \ - --hash=sha256:f58db1b65593ff796c8ea6e63e2e144c944dd3d51c8d8e40dffa7f41693d35d3 \ - --hash=sha256:f9b47036945e1db32d70e414a10b1593aec641bd4c5e2056873d971cc21e978b +duckdb==1.4.3 \ + --hash=sha256:006aca6a6d6736c441b02ff5c7600b099bb8b7f4de094b8b062137efddce42df \ + --hash=sha256:130c6760f6c573f9c9fe9aba56adba0fab48811a4871b7b8fd667318b4a3e8da \ + --hash=sha256:16952ac05bd7e7b39946695452bf450db1ebbe387e1e7178e10f593f2ea7b9a8 \ + --hash=sha256:1b35491db98ccd11d151165497c084a9d29d3dc42fc80abea2715a6c861ca43d \ + --hash=sha256:1b9b445970fd18274d5ac07a0b24c032e228f967332fb5ebab3d7db27738c0e4 \ + --hash=sha256:1bb8bd5a3dd205983726185b280a211eacc9f5bc0c4d4505bec8c87ac33a8ccb \ + --hash=sha256:1e5457dda91b67258aae30fb1a0df84183a9f6cd27abac1d5536c0d876c6dfa1 \ + --hash=sha256:20c88effaa557a11267706b01419c542fe42f893dee66e5a6daa5974ea2d4a46 \ + --hash=sha256:23a3a077821bed1768a84ac9cbf6b6487ead33e28e62cb118bda5fb8f9e53dea \ + --hash=sha256:23b12854032c1a58d0452e2b212afa908d4ce64171862f3792ba9a596ba7c765 \ + --hash=sha256:274d4a31aba63115f23e7e7b401e3e3a937f3626dc9dea820a9c7d3073f450d2 \ + --hash=sha256:2b195270ff1a661f22cbd547a215baff265b7d4469a76a215c8992b5994107c3 \ + --hash=sha256:2b30245375ea94ab528c87c61fc3ab3e36331180b16af92ee3a37b810a745d24 \ + --hash=sha256:316711a9e852bcfe1ed6241a5f654983f67e909e290495f3562cccdf43be8180 \ + --hash=sha256:366bf607088053dce845c9d24c202c04d78022436cc5d8e4c9f0492de04afbe7 \ + --hash=sha256:4f868a7e6d9b37274a1aa34849ea92aa964e9bd59a5237d6c17e8540533a1e4f \ + --hash=sha256:4fef6a053a1c485292000bf0c338bba60f89d334f6a06fc76ba4085a5a322b76 \ + --hash=sha256:5634e40e1e2d972e4f75bced1fbdd9e9e90faa26445c1052b27de97ee546944a \ + --hash=sha256:6302452e57aef29aae3977063810ed7b2927967b97912947b9cca45c1c21955f \ + --hash=sha256:6db124f53a3edcb32b0a896ad3519e37477f7e67bf4811cb41ab60c1ef74e4c8 \ + --hash=sha256:702dabbc22b27dc5b73e7599c60deef3d8c59968527c36b391773efddd8f4cf1 \ + --hash=sha256:813f189039b46877b5517f1909c7b94a8fe01b4bde2640ab217537ea0fe9b59b \ + --hash=sha256:854b79375fa618f6ffa8d84fb45cbc9db887f6c4834076ea10d20bc106f1fd90 \ + --hash=sha256:8afba22c370f06b7314aa46bfed052509269e482bcfb3f7b1ea0fa17ae49ce42 \ + --hash=sha256:8d080e8d1bf2d226423ec781f539c8f6b6ef3fd42a9a58a7160de0a00877a21f \ + --hash=sha256:8d53b217698a76c4957e2c807dd9295d409146f9d3d7932f372883201ba9d25a \ + --hash=sha256:90f241f25cffe7241bf9f376754a5845c74775e00e1c5731119dc88cd71e0cb2 \ + --hash=sha256:9dc049ba7e906cb49ca2b6d4fbf7b6615ec3883193e8abb93f0bef2652e42dda \ + --hash=sha256:9e625b2b4d52bafa1fd0ebdb0990c3961dac8bb00e30d327185de95b68202131 \ + --hash=sha256:a2813f4635f4d6681cc3304020374c46aca82758c6740d7edbc237fe3aae2744 \ + --hash=sha256:a7c864df027da1ee95f0c32def67e15d02cd4a906c9c1cbae82c09c5112f526b \ + --hash=sha256:a8b0a8764e1b5dd043d168c8f749314f7a1252b5a260fa415adaa26fa3b958fd \ + --hash=sha256:aa26a7406205bc1426cee28bdfdf084f669a5686977dafa4c3ec65873989593c \ + --hash=sha256:caa2164c91f7e91befb1ffb081b3cd97a137117533aef7abe1538b03ad72e3a9 \ + --hash=sha256:d0ff08388ef8b1d1a4c95c321d6c5fa11201b241036b1ee740f9d841df3d6ba2 \ + --hash=sha256:de984cd24a6cbefdd6d4a349f7b9a46e583ca3e58ce10d8def0b20a6e5fcbe78 \ + --hash=sha256:deab351ac43b6282a3270e3d40e3d57b3b50f472d9fd8c30975d88a31be41231 \ + --hash=sha256:ef7ef15347ce97201b1b5182a5697682679b04c3374d5a01ac10ba31cf791b95 \ + --hash=sha256:efa7f1191c59e34b688fcd4e588c1b903a4e4e1f4804945902cf0b20e08a9001 \ + --hash=sha256:fbc63ffdd03835f660155b37a1b6db2005bcd46e5ad398b8cac141eb305d2a3d \ + --hash=sha256:fea43e03604c713e25a25211ada87d30cd2a044d8f27afab5deba26ac49e5268 # via ibis-framework durationpy==0.10 \ --hash=sha256:1fa6893409a6e739c9c72334fc65cca1f355dbdd93405d30f726deb5bde42fba \ @@ -551,9 +536,9 @@ fastapi-mcp==0.4.0 \ --hash=sha256:d4a3fe7966af24d44e4b412720561c95eb12bed999a4443a88221834b3b15aec \ --hash=sha256:d4ca9410996f4c7b8ea0d7b20fdf79878dc359ebf89cbf3b222e0b675a55097d # via feast (setup.py) -filelock==3.20.1 \ - --hash=sha256:15d9e9a67306188a44baa72f569d2bfd803076269365fdea0934385da4dc361a \ - --hash=sha256:b8360948b351b80f420878d8516519a2204b07aefcdcfd24912a5d33127f188c +filelock==3.20.3 \ + --hash=sha256:18c57ee915c7ec61cff0ecf7f0f869936c7c30191bb0cf406f1341778d0834e1 \ + --hash=sha256:4b0dda527ee31078689fc205ec4f1c1bf7d56cf88b6dc9426c4f230e46c2dce1 # via snowflake-connector-python frozenlist==1.8.0 \ --hash=sha256:0325024fe97f94c41c08872db482cf8ac4800d80e79222c6b0b7b162d5b13686 \ @@ -695,9 +680,9 @@ fsspec==2024.9.0 \ # via # feast (setup.py) # dask -google-api-core[grpc]==2.28.1 \ - --hash=sha256:2b405df02d68e68ce0fbc138559e6036559e685159d148ae5861013dc201baf8 \ - --hash=sha256:4021b0f8ceb77a6fb4de6fde4502cecab45062e66ff4f2895169e0b35bc9466c +google-api-core[grpc]==2.29.0 \ + --hash=sha256:84181be0f8e6b04006df75ddfe728f24489f0af57c96a529ff7cf45bc28797f7 \ + --hash=sha256:d30bc60980daa36e314b5d5a3e5958b0200cb44ca8fa1be2b614e932b75a3ea9 # via # feast (setup.py) # google-cloud-bigquery @@ -707,9 +692,9 @@ google-api-core[grpc]==2.28.1 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.45.0 \ - --hash=sha256:82344e86dc00410ef5382d99be677c6043d72e502b625aa4f4afa0bdacca0f36 \ - --hash=sha256:90d3f41b6b72ea72dd9811e765699ee491ab24139f34ebf1ca2b9cc0c38708f3 +google-auth==2.47.0 \ + --hash=sha256:833229070a9dfee1a353ae9877dcd2dec069a8281a4e72e72f77d4a70ff945da \ + --hash=sha256:c516d68336bfde7cf0da26aab674a36fedcf04b37ac4edd59c597178760c3498 # via # google-api-core # google-auth-oauthlib @@ -728,9 +713,9 @@ google-auth-oauthlib==1.2.2 \ # via # pandas-gbq # pydata-google-auth -google-cloud-bigquery[pandas]==3.39.0 \ - --hash=sha256:cb375e1d63dea9bd5bf735e66024338f294159d43afdf63e1d023f5fcbbf55ea \ - --hash=sha256:dc7a64921465859105461b43c42562e38e797d7a73feb72b3cfc4865b7b1c5ef +google-cloud-bigquery[pandas]==3.40.0 \ + --hash=sha256:0469bcf9e3dad3cab65b67cce98180c8c0aacf3253d47f0f8e976f299b49b5ab \ + --hash=sha256:b3ccb11caf0029f15b29569518f667553fe08f6f1459b959020c83fbbd8f2e68 # via # feast (setup.py) # pandas-gbq @@ -1060,9 +1045,9 @@ httpx-sse==0.4.3 \ --hash=sha256:0ac1c9fe3c0afad2e0ebb25a934a59f4c7823b60792691f779fad2c5568830fc \ --hash=sha256:9b1ed0127459a66014aec3c56bebd93da3c1bc8bb6618c8082039a44889a755d # via mcp -ibis-framework[duckdb]==9.5.0 \ - --hash=sha256:145fe30d94f111cff332580c275ce77725c5ff7086eede93af0b371649d009c0 \ - --hash=sha256:1c8a29277e63ee0dfc289bc8f550164b5e3bdaec1b76b62436c37d331bb4ef84 +ibis-framework[duckdb]==11.0.0 \ + --hash=sha256:0249185eaabb800e224f448cc06ce8ba168df00b269e132d62629f462eca8842 \ + --hash=sha256:92ff82a96f4eac7f86fa9b6a315e04b5a8f9ed3d186539d88f48e628363f2e72 # via feast (setup.py) idna==3.11 \ --hash=sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea \ @@ -1088,9 +1073,9 @@ jmespath==1.0.1 \ # aiobotocore # boto3 # botocore -jsonschema==4.25.1 \ - --hash=sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63 \ - --hash=sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85 +jsonschema==4.26.0 \ + --hash=sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326 \ + --hash=sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce # via # feast (setup.py) # mcp @@ -1102,83 +1087,83 @@ kubernetes==33.1.0 \ --hash=sha256:544de42b24b64287f7e0aa9513c93cb503f7f40eea39b20f66810011a86eabc5 \ --hash=sha256:f64d829843a54c251061a8e7a14523b521f2dc5c896cf6d65ccf348648a88993 # via feast (setup.py) -librt==0.7.5 \ - --hash=sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee \ - --hash=sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1 \ - --hash=sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4 \ - --hash=sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899 \ - --hash=sha256:0e2bf8f91093fac43e3eaebacf777f12fd539dce9ec5af3efc6d8424e96ccd49 \ - --hash=sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d \ - --hash=sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760 \ - --hash=sha256:191cbd42660446d67cf7a95ac7bfa60f49b8b3b0417c64f216284a1d86fc9335 \ - --hash=sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8 \ - --hash=sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2 \ - --hash=sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec \ - --hash=sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b \ - --hash=sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0 \ - --hash=sha256:39183abee670bc37b85f11e86c44a9cad1ed6efa48b580083e89ecee13dd9717 \ - --hash=sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325 \ - --hash=sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45 \ - --hash=sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d \ - --hash=sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233 \ - --hash=sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d \ - --hash=sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544 \ - --hash=sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802 \ - --hash=sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2 \ - --hash=sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d \ - --hash=sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f \ - --hash=sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169 \ - --hash=sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe \ - --hash=sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982 \ - --hash=sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2 \ - --hash=sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa \ - --hash=sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4 \ - --hash=sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4 \ - --hash=sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57 \ - --hash=sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26 \ - --hash=sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361 \ - --hash=sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad \ - --hash=sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e \ - --hash=sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf \ - --hash=sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f \ - --hash=sha256:8dcae24de1bc9da93aa689cb6313c70e776d7cea2fcf26b9b6160fedfe6bd9af \ - --hash=sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2 \ - --hash=sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89 \ - --hash=sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904 \ - --hash=sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6 \ - --hash=sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276 \ - --hash=sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e \ - --hash=sha256:a9eacbf983319b26b5f340a2e0cd47ac1ee4725a7f3a72fd0f15063c934b69d6 \ - --hash=sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409 \ - --hash=sha256:af69d9e159575e877c7546d1ee817b4ae089aa221dd1117e20c24ad8dc8659c7 \ - --hash=sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a \ - --hash=sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4 \ - --hash=sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775 \ - --hash=sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203 \ - --hash=sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419 \ - --hash=sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5 \ - --hash=sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023 \ - --hash=sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b \ - --hash=sha256:cdb001a1a0e4f41e613bca2c0fc147fc8a7396f53fc94201cbfd8ec7cd69ca4b \ - --hash=sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d \ - --hash=sha256:d2cc7d187e8c6e9b7bdbefa9697ce897a704ea7a7ce844f2b4e0e2aa07ae51d3 \ - --hash=sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e \ - --hash=sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a \ - --hash=sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b \ - --hash=sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db \ - --hash=sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd \ - --hash=sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa \ - --hash=sha256:df2e210400b28e50994477ebf82f055698c79797b6ee47a1669d383ca33263e1 \ - --hash=sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805 \ - --hash=sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a \ - --hash=sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25 \ - --hash=sha256:ea1b60b86595a5dc1f57b44a801a1c4d8209c0a69518391d349973a4491408e6 \ - --hash=sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b \ - --hash=sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5 \ - --hash=sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416 \ - --hash=sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc \ - --hash=sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7 \ - --hash=sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96 +librt==0.7.7 \ + --hash=sha256:067be973d90d9e319e6eb4ee2a9b9307f0ecd648b8a9002fa237289a4a07a9e7 \ + --hash=sha256:0996c83b1cb43c00e8c87835a284f9057bc647abd42b5871e5f941d30010c832 \ + --hash=sha256:0ecce0544d3db91a40f8b57ae26928c02130a997b540f908cefd4d279d6c5848 \ + --hash=sha256:10c8fb9966f84737115513fecbaf257f9553d067a7dd45a69c2c7e5339e6a8dc \ + --hash=sha256:142c2cd91794b79fd0ce113bd658993b7ede0fe93057668c2f98a45ca00b7e91 \ + --hash=sha256:14ef0f4ac3728ffd85bfc58e2f2f48fb4ef4fa871876f13a73a7381d10a9f77c \ + --hash=sha256:1908c3e5a5ef86b23391448b47759298f87f997c3bd153a770828f58c2bb4630 \ + --hash=sha256:1bcd79be209313b270b0e1a51c67ae1af28adad0e0c7e84c3ad4b5cb57aaa75b \ + --hash=sha256:23d2299ed007812cccc1ecef018db7d922733382561230de1f3954db28433977 \ + --hash=sha256:23daa1ab0512bafdd677eb1bfc9611d8ffbe2e328895671e64cb34166bc1b8c8 \ + --hash=sha256:2567cb48dc03e5b246927ab35cbb343376e24501260a9b5e30b8e255dca0d1d2 \ + --hash=sha256:264720fc288c86039c091a4ad63419a5d7cabbf1c1c9933336a957ed2483e570 \ + --hash=sha256:2987cf827011907d3dfd109f1be0d61e173d68b1270107bb0e89f2fca7f2ed6b \ + --hash=sha256:2a85a1fc4ed11ea0eb0a632459ce004a2d14afc085a50ae3463cd3dfe1ce43fc \ + --hash=sha256:3d1fe2e8df3268dd6734dba33ededae72ad5c3a859b9577bc00b715759c5aaab \ + --hash=sha256:4353ee891a1834567e0302d4bd5e60f531912179578c36f3d0430f8c5e16b456 \ + --hash=sha256:44d63ce643f34a903f09ff7ca355aae019a3730c7afd6a3c037d569beeb5d151 \ + --hash=sha256:467dbd7443bda08338fc8ad701ed38cef48194017554f4c798b0a237904b3f99 \ + --hash=sha256:4862cb2c702b1f905c0503b72d9d4daf65a7fdf5a9e84560e563471e57a56949 \ + --hash=sha256:4bf3cc46d553693382d2abf5f5bd493d71bb0f50a7c0beab18aa13a5545c8900 \ + --hash=sha256:4dcee2f921a8632636d1c37f1bbdb8841d15666d119aa61e5399c5268e7ce02e \ + --hash=sha256:50d1d1ee813d2d1a3baf2873634ba506b263032418d16287c92ec1cc9c1a00cb \ + --hash=sha256:5335890fea9f9e6c4fdf8683061b9ccdcbe47c6dc03ab8e9b68c10acf78be78d \ + --hash=sha256:558a9e5a6f3cc1e20b3168fb1dc802d0d8fa40731f6e9932dcc52bbcfbd37111 \ + --hash=sha256:5e419e0db70991b6ba037b70c1d5bbe92b20ddf82f31ad01d77a347ed9781398 \ + --hash=sha256:6066c638cdf85ff92fc6f932d2d73c93a0e03492cdfa8778e6d58c489a3d7259 \ + --hash=sha256:6ae8aec43117a645a31e5f60e9e3a0797492e747823b9bda6972d521b436b4e8 \ + --hash=sha256:6b6f8ea465524aa4c7420c7cc4ca7d46fe00981de8debc67b1cc2e9957bb5b9d \ + --hash=sha256:7b16ccaeff0ed4355dfb76fe1ea7a5d6d03b5ad27f295f77ee0557bc20a72495 \ + --hash=sha256:7d13cc340b3b82134f8038a2bfe7137093693dcad8ba5773da18f95ad6b77a8a \ + --hash=sha256:7ef28f2e7a016b29792fe0a2dd04dec75725b32a1264e390c366103f834a9c3a \ + --hash=sha256:8185c8497d45164e256376f9da5aed2bb26ff636c798c9dabe313b90e9f25b28 \ + --hash=sha256:81d957b069fed1890953c3b9c3895c7689960f233eea9a1d9607f71ce7f00b2c \ + --hash=sha256:86f86b3b785487c7760247bcdac0b11aa8bf13245a13ed05206286135877564b \ + --hash=sha256:8e92c8de62b40bfce91d5e12c6e8b15434da268979b1af1a6589463549d491e6 \ + --hash=sha256:8f2f8dcf5ab9f80fb970c6fd780b398efb2f50c1962485eb8d3ab07788595a48 \ + --hash=sha256:8f4a0b0a3c86ba9193a8e23bb18f100d647bf192390ae195d84dfa0a10fb6244 \ + --hash=sha256:8f7a74cf3a80f0c3b0ec75b0c650b2f0a894a2cec57ef75f6f72c1e82cdac61d \ + --hash=sha256:955c62571de0b181d9e9e0a0303c8bc90d47670a5eff54cf71bf5da61d1899cf \ + --hash=sha256:983de36b5a83fe9222f4f7dcd071f9b1ac6f3f17c0af0238dadfb8229588f890 \ + --hash=sha256:9b15e5d17812d4d629ff576699954f74e2cc24a02a4fc401882dd94f81daba45 \ + --hash=sha256:9b4346b1225be26def3ccc6c965751c74868f0578cbcba293c8ae9168483d811 \ + --hash=sha256:9b5fb1ecb2c35362eab2dbd354fd1efa5a8440d3e73a68be11921042a0edc0ff \ + --hash=sha256:a10b8eebdaca6e9fdbaf88b5aefc0e324b763a5f40b1266532590d5afb268a4c \ + --hash=sha256:a1f5cc41a570269d1be7a676655875e3a53de4992a9fa38efb7983e97cf73d7c \ + --hash=sha256:a3bfe73a32bd0bdb9a87d586b05a23c0a1729205d79df66dee65bb2e40d671ba \ + --hash=sha256:a487b71fbf8a9edb72a8c7a456dda0184642d99cd007bc819c0b7ab93676a8ee \ + --hash=sha256:a609849aca463074c17de9cda173c276eb8fee9e441053529e7b9e249dc8b8ee \ + --hash=sha256:a76f1d679beccccdf8c1958e732a1dfcd6e749f8821ee59d7bec009ac308c029 \ + --hash=sha256:a7ea4e1fbd253e5c68ea0fe63d08577f9d288a73f17d82f652ebc61fa48d878d \ + --hash=sha256:ab2a2a9cd7d044e1a11ca64a86ad3361d318176924bbe5152fbc69f99be20b8c \ + --hash=sha256:ad3fc2d859a709baf9dd9607bb72f599b1cfb8a39eafd41307d0c3c4766763cb \ + --hash=sha256:add4e0a000858fe9bb39ed55f31085506a5c38363e6eb4a1e5943a10c2bfc3d1 \ + --hash=sha256:aea05f701ccd2a76b34f0daf47ca5068176ff553510b614770c90d76ac88df06 \ + --hash=sha256:b8bb331aad734b059c4b450cd0a225652f16889e286b2345af5e2c3c625c3d85 \ + --hash=sha256:bdb9f3d865b2dafe7f9ad7f30ef563c80d0ddd2fdc8cc9b8e4f242f475e34d75 \ + --hash=sha256:c084841b879c4d9b9fa34e5d5263994f21aea7fd9c6add29194dbb41a6210536 \ + --hash=sha256:c48c7e150c095d5e3cea7452347ba26094be905d6099d24f9319a8b475fcd3e0 \ + --hash=sha256:c7e5070cf3ec92d98f57574da0224f8c73faf1ddd6d8afa0b8c9f6e86997bc74 \ + --hash=sha256:c87654e29a35938baead1c4559858f346f4a2a7588574a14d784f300ffba0efd \ + --hash=sha256:c8ffe3431d98cc043a14e88b21288b5ec7ee12cb01260e94385887f285ef9389 \ + --hash=sha256:c9faaebb1c6212c20afd8043cd6ed9de0a47d77f91a6b5b48f4e46ed470703fe \ + --hash=sha256:d1454899909d63cc9199a89fcc4f81bdd9004aef577d4ffc022e600c412d57f3 \ + --hash=sha256:d6b7d93657332c817b8d674ef6bf1ab7796b4f7ce05e420fd45bd258a72ac804 \ + --hash=sha256:dbc4900e95a98fc0729523be9d93a8fedebb026f32ed9ffc08acd82e3e181503 \ + --hash=sha256:e40d20ae1722d6b8ea6acf4597e789604649dcd9c295eb7361a28225bc2e9e12 \ + --hash=sha256:e4836c5645f40fbdc275e5670819bde5ab5f2e882290d304e3c6ddab1576a6d0 \ + --hash=sha256:e4ab69fa37f8090f2d971a5d2bc606c7401170dbdae083c393d6cbf439cb45b8 \ + --hash=sha256:ef7699b7a5a244b1119f85c5bbc13f152cd38240cbb2baa19b769433bae98e50 \ + --hash=sha256:f0c8fe5aeadd8a0e5b0598f8a6ee3533135ca50fd3f20f130f9d72baf5c6ac58 \ + --hash=sha256:f2cb63c49bc96847c3bb8dca350970e4dcd19936f391cfdfd057dcb37c4fa97e \ + --hash=sha256:f4d4efb218264ecf0f8516196c9e2d1a0679d9fb3bb15df1155a35220062eba8 \ + --hash=sha256:f683dcd49e2494a7535e30f779aa1ad6e3732a019d80abe1309ea91ccd3230e3 \ + --hash=sha256:f83c971eb9d2358b6a18da51dc0ae00556ac7c73104dde16e9e14c15aaf685ca \ + --hash=sha256:f8df32a99cc46eb0ee90afd9ada113ae2cafe7e8d673686cf03ec53e49635439 \ + --hash=sha256:ff1fb2dfef035549565a4124998fadcb7a3d4957131ddf004a56edeb029626b3 # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ @@ -1613,79 +1598,79 @@ mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 # via mypy -numpy==2.4.0 \ - --hash=sha256:009bd0ea12d3c784b6639a8457537016ce5172109e585338e11334f6a7bb88ee \ - --hash=sha256:02a2038eb27f9443a8b266a66911e926566b5a6ffd1a689b588f7f35b81e7dc3 \ - --hash=sha256:0804a8e4ab070d1d35496e65ffd3cf8114c136a2b81f61dfab0de4b218aacfd5 \ - --hash=sha256:0feafc9e03128074689183031181fac0897ff169692d8492066e949041096548 \ - --hash=sha256:1889b3a3f47a7b5bee16bc25a2145bd7cb91897f815ce3499db64c7458b6d91d \ - --hash=sha256:1d8f9fde5f6dc1b6fc34df8162f3b3079365468703fee7f31d4e0cc8c63baed9 \ - --hash=sha256:1ee32359fb7543b7b7bd0b2f46294db27e29e7bbdf70541e81b190836cd83ded \ - --hash=sha256:20c115517513831860c573996e395707aa9fb691eb179200125c250e895fcd93 \ - --hash=sha256:21555da4ec4a0c942520ead42c3b0dc9477441e085c42b0fbdd6a084869a6f6b \ - --hash=sha256:23a3e9d1a6f360267e8fbb38ba5db355a6a7e9be71d7fce7ab3125e88bb646c8 \ - --hash=sha256:2a8b6bb8369abefb8bd1801b054ad50e02b3275c8614dc6e5b0373c305291037 \ - --hash=sha256:2e284ca13d5a8367e43734148622caf0b261b275673823593e3e3634a6490f83 \ - --hash=sha256:2f585f52b2baf07ff3356158d9268ea095e221371f1074fadea2f42544d58b4d \ - --hash=sha256:316b2f2584682318539f0bcaca5a496ce9ca78c88066579ebd11fd06f8e4741e \ - --hash=sha256:32ed06d0fe9cae27d8fb5f400c63ccee72370599c75e683a6358dd3a4fb50aaf \ - --hash=sha256:355354388cba60f2132df297e2d53053d4063f79077b67b481d21276d61fc4df \ - --hash=sha256:35ddc8f4914466e6fc954c76527aa91aa763682a4f6d73249ef20b418fe6effb \ - --hash=sha256:36667db4d6c1cea79c8930ab72fadfb4060feb4bfe724141cd4bd064d2e5f8ce \ - --hash=sha256:36cbfb13c152b1c7c184ddac43765db8ad672567e7bafff2cc755a09917ed2e6 \ - --hash=sha256:39699233bc72dd482da1415dcb06076e32f60eddc796a796c5fb6c5efce94667 \ - --hash=sha256:39b19251dec4de8ff8496cd0806cbe27bf0684f765abb1f4809554de93785f2d \ - --hash=sha256:3d857f55e7fdf7c38ab96c4558c95b97d1c685be6b05c249f5fdafcbd6f9899e \ - --hash=sha256:3de19cfecd1465d0dcf8a5b5ea8b3155b42ed0b639dba4b71e323d74f2a3be5e \ - --hash=sha256:3f3096405acc48887458bbf9f6814d43785ac7ba2a57ea6442b581dedbc60ce6 \ - --hash=sha256:40483b2f2d3ba7aad426443767ff5632ec3156ef09742b96913787d13c336471 \ - --hash=sha256:413aa561266a4be2d06cd2b9665e89d9f54c543f418773076a76adcf2af08bc7 \ - --hash=sha256:44aba2f0cafd287871a495fb3163408b0bd25bbce135c6f621534a07f4f7875c \ - --hash=sha256:49ff32b09f5aa0cd30a20c2b39db3e669c845589f2b7fc910365210887e39344 \ - --hash=sha256:4d1cfce39e511069b11e67cd0bd78ceff31443b7c9e5c04db73c7a19f572967c \ - --hash=sha256:57c540ed8fb1f05cb997c6761cd56db72395b0d6985e90571ff660452ade4f98 \ - --hash=sha256:5f48cb3e88fbc294dc90e215d86fbaf1c852c63dbdb6c3a3e63f45c4b57f7344 \ - --hash=sha256:5fe44e277225fd3dff6882d86d3d447205d43532c3627313d17e754fb3905a0e \ - --hash=sha256:60e8c196cd82cbbd4f130b5290007e13e6de3eca79f0d4d38014769d96a7c475 \ - --hash=sha256:65167da969cd1ec3a1df31cb221ca3a19a8aaa25370ecb17d428415e93c1935e \ - --hash=sha256:680060061adb2d74ce352628cb798cfdec399068aa7f07ba9fb818b2b3305f98 \ - --hash=sha256:6bbaebf0d11567fa8926215ae731e1d58e6ec28a8a25235b8a47405d301332db \ - --hash=sha256:6c05483c3136ac4c91b4e81903cb53a8707d316f488124d0398499a4f8e8ef51 \ - --hash=sha256:6dc8b7e2f4eb184b37655195f421836cfae6f58197b67e3ffc501f1333d993fa \ - --hash=sha256:6e504f7b16118198f138ef31ba24d985b124c2c469fe8467007cf30fd992f934 \ - --hash=sha256:74623f2ab5cc3f7c886add4f735d1031a1d2be4a4ae63c0546cfd74e7a31ddf6 \ - --hash=sha256:77f0d13fa87036d7553bf81f0e1fe3ce68d14c9976c9851744e4d3e91127e95f \ - --hash=sha256:85eef4cb5625c47ee6425c58a3502555e10f45ee973da878ac8248ad58c136f3 \ - --hash=sha256:882567b7ae57c1b1a0250208cc21a7976d8cbcc49d5a322e607e6f09c9e0bd53 \ - --hash=sha256:8b986403023c8f3bf8f487c2e6186afda156174d31c175f747d8934dfddf3479 \ - --hash=sha256:8cfa5f29a695cb7438965e6c3e8d06e0416060cf0d709c1b1c1653a939bf5c2a \ - --hash=sha256:8eafe7c36c8430b7794edeab3087dec7bf31d634d92f2af9949434b9d1964cba \ - --hash=sha256:9198f447e1dc5647d07c9a6bbe2063cc0132728cc7175b39dbc796da5b54920d \ - --hash=sha256:92190db305a6f48734d3982f2c60fa30d6b5ee9bff10f2887b930d7b40119f4c \ - --hash=sha256:927ccf5cd17c48f801f4ed43a7e5673a2724bd2171460be3e3894e6e332ef83a \ - --hash=sha256:98e81648e0b36e325ab67e46b5400a7a6d4a22b8a7c8e8bbfe20e7db7906bf95 \ - --hash=sha256:9a818668b674047fd88c4cddada7ab8f1c298812783e8328e956b78dc4807f9f \ - --hash=sha256:a152d86a3ae00ba5f47b3acf3b827509fd0b6cb7d3259665e63dafbad22a75ea \ - --hash=sha256:a2718c1de8504121714234b6f8241d0019450353276c88b9453c9c3d92e101db \ - --hash=sha256:a39fb973a726e63223287adc6dafe444ce75af952d711e400f3bf2b36ef55a7b \ - --hash=sha256:a899699294f28f7be8992853c0c60741f16ff199205e2e6cdca155762cbaa59d \ - --hash=sha256:a8fdfed3deaf1928fb7667d96e0567cdf58c2b370ea2ee7e586aa383ec2cb346 \ - --hash=sha256:aabb081ca0ec5d39591fc33018cd4b3f96e1a2dd6756282029986d00a785fba4 \ - --hash=sha256:b1f5b45829ac1848893f0ddf5cb326110604d6df96cdc255b0bf9edd154104d4 \ - --hash=sha256:b48e35f4ab6f6a7597c46e301126ceba4c44cd3280e3750f85db48b082624fa4 \ - --hash=sha256:b54c83f1c0c0f1d748dca0af516062b8829d53d1f0c402be24b4257a9c48ada6 \ - --hash=sha256:ba0cb30acd3ef11c94dc27fbfba68940652492bc107075e7ffe23057f9425681 \ - --hash=sha256:bb50ce5fb202a26fd5404620e7ef820ad1ab3558b444cb0b55beb7ef66cd2d63 \ - --hash=sha256:c95eb6db2884917d86cde0b4d4cf31adf485c8ec36bf8696dd66fa70de96f36b \ - --hash=sha256:d0ffd9e2e4441c96a9c91ec1783285d80bf835b677853fc2770a89d50c1e48ac \ - --hash=sha256:d57b5046c120561ba8fa8e4030fbb8b822f3063910fa901ffadf16e2b7128ad6 \ - --hash=sha256:d9e6a7664ddd9746e20b7325351fe1a8408d0a2bf9c63b5e898290ddc8f09544 \ - --hash=sha256:dc578891de1db95b2a35001b695451767b580bb45753717498213c5ff3c41d63 \ - --hash=sha256:e0434aa22c821f44eeb4c650b81c7fbdd8c0122c6c4b5a576a76d5a35625ecd9 \ - --hash=sha256:e06a922a469cae9a57100864caf4f8a97a1026513793969f8ba5b63137a35d25 \ - --hash=sha256:e493962256a38f58283de033d8af176c5c91c084ea30f15834f7545451c42059 \ - --hash=sha256:ecb0019d44f4cdb50b676c5d0cb4b1eae8e15d1ed3d3e6639f986fc92b2ec52c \ - --hash=sha256:f935c4493eda9069851058fa0d9e39dbf6286be690066509305e52912714dbb2 +numpy==2.4.1 \ + --hash=sha256:0093e85df2960d7e4049664b26afc58b03236e967fb942354deef3208857a04c \ + --hash=sha256:09aa8a87e45b55a1c2c205d42e2808849ece5c484b2aab11fecabec3841cafba \ + --hash=sha256:0cce2a669e3c8ba02ee563c7835f92c153cf02edff1ae05e1823f1dde21b16a5 \ + --hash=sha256:0e6e8f9d9ecf95399982019c01223dc130542960a12edfa8edd1122dfa66a8a8 \ + --hash=sha256:0f118ce6b972080ba0758c6087c3617b5ba243d806268623dc34216d69099ba0 \ + --hash=sha256:178de8f87948163d98a4c9ab5bee4ce6519ca918926ec8df195af582de28544d \ + --hash=sha256:18e14c4d09d55eef39a6ab5b08406e84bc6869c1e34eef45564804f90b7e0574 \ + --hash=sha256:2023ef86243690c2791fd6353e5b4848eedaa88ca8a2d129f462049f6d484696 \ + --hash=sha256:20d4649c773f66cc2fc36f663e091f57c3b7655f936a4c681b4250855d1da8f5 \ + --hash=sha256:2302dc0224c1cbc49bb94f7064f3f923a971bfae45c33870dcbff63a2a550505 \ + --hash=sha256:26f0bcd9c79a00e339565b303badc74d3ea2bd6d52191eeca5f95936cad107d0 \ + --hash=sha256:297c72b1b98100c2e8f873d5d35fb551fce7040ade83d67dd51d38c8d42a2162 \ + --hash=sha256:2f44de05659b67d20499cbc96d49f2650769afcb398b79b324bb6e297bfe3844 \ + --hash=sha256:2ffd257026eb1b34352e749d7cc1678b5eeec3e329ad8c9965a797e08ccba205 \ + --hash=sha256:382ad67d99ef49024f11d1ce5dcb5ad8432446e4246a4b014418ba3a1175a1f4 \ + --hash=sha256:3869ea1ee1a1edc16c29bbe3a2f2a4e515cc3a44d43903ad41e0cacdbaf733dc \ + --hash=sha256:3d1a100e48cb266090a031397863ff8a30050ceefd798f686ff92c67a486753d \ + --hash=sha256:423797bdab2eeefbe608d7c1ec7b2b4fd3c58d51460f1ee26c7500a1d9c9ee93 \ + --hash=sha256:42d7dd5fa36d16d52a84f821eb96031836fd405ee6955dd732f2023724d0aa01 \ + --hash=sha256:49e792ec351315e16da54b543db06ca8a86985ab682602d90c60ef4ff4db2a9c \ + --hash=sha256:4e53170557d37ae404bf8d542ca5b7c629d6efa1117dac6a83e394142ea0a43f \ + --hash=sha256:4f1b68ff47680c2925f8063402a693ede215f0257f02596b1318ecdfb1d79e33 \ + --hash=sha256:4f9c360ecef085e5841c539a9a12b883dff005fbd7ce46722f5e9cef52634d82 \ + --hash=sha256:529050522e983e00a6c1c6b67411083630de8b57f65e853d7b03d9281b8694d2 \ + --hash=sha256:52b5f61bdb323b566b528899cc7db2ba5d1015bda7ea811a8bcf3c89c331fa42 \ + --hash=sha256:538bf4ec353709c765ff75ae616c34d3c3dca1a68312727e8f2676ea644f8509 \ + --hash=sha256:5adf01965456a664fc727ed69cc71848f28d063217c63e1a0e200a118d5eec9a \ + --hash=sha256:5b55aa56165b17aaf15520beb9cbd33c9039810e0d9643dd4379e44294c7303e \ + --hash=sha256:5d558123217a83b2d1ba316b986e9248a1ed1971ad495963d555ccd75dcb1556 \ + --hash=sha256:5de60946f14ebe15e713a6f22850c2372fa72f4ff9a432ab44aa90edcadaa65a \ + --hash=sha256:62fea415f83ad8fdb6c20840578e5fbaf5ddd65e0ec6c3c47eda0f69da172510 \ + --hash=sha256:6436cffb4f2bf26c974344439439c95e152c9a527013f26b3577be6c2ca64295 \ + --hash=sha256:6461de5113088b399d655d45c3897fa188766415d0f568f175ab071c8873bd73 \ + --hash=sha256:69e7419c9012c4aaf695109564e3387f1259f001b4326dfa55907b098af082d3 \ + --hash=sha256:71abbea030f2cfc3092a0ff9f8c8fdefdc5e0bf7d9d9c99663538bb0ecdac0b9 \ + --hash=sha256:7211b95ca365519d3596a1d8688a95874cc94219d417504d9ecb2df99fa7bfa8 \ + --hash=sha256:727c6c3275ddefa0dc078524a85e064c057b4f4e71ca5ca29a19163c607be745 \ + --hash=sha256:79e9e06c4c2379db47f3f6fc7a8652e7498251789bf8ff5bd43bf478ef314ca2 \ + --hash=sha256:7ad270f438cbdd402c364980317fb6b117d9ec5e226fff5b4148dd9aa9fc6e02 \ + --hash=sha256:7d5d7999df434a038d75a748275cd6c0094b0ecdb0837342b332a82defc4dc4d \ + --hash=sha256:8097529164c0f3e32bb89412a0905d9100bf434d9692d9fc275e18dcf53c9344 \ + --hash=sha256:82c55962006156aeef1629b953fd359064aa47e4d82cfc8e67f0918f7da3344f \ + --hash=sha256:8361ea4220d763e54cff2fbe7d8c93526b744f7cd9ddab47afeff7e14e8503be \ + --hash=sha256:899d2c18024984814ac7e83f8f49d8e8180e2fbe1b2e252f2e7f1d06bea92425 \ + --hash=sha256:8ad35f20be147a204e28b6a0575fbf3540c5e5f802634d4258d55b1ff5facce1 \ + --hash=sha256:8f085da926c0d491ffff3096f91078cc97ea67e7e6b65e490bc8dcda65663be2 \ + --hash=sha256:9171a42fcad32dcf3fa86f0a4faa5e9f8facefdb276f54b8b390d90447cff4e2 \ + --hash=sha256:92a0e65272fd60bfa0d9278e0484c2f52fe03b97aedc02b357f33fe752c52ffb \ + --hash=sha256:941c2a93313d030f219f3a71fd3d91a728b82979a5e8034eb2e60d394a2b83f9 \ + --hash=sha256:98b35775e03ab7f868908b524fc0a84d38932d8daf7b7e1c3c3a1b6c7a2c9f15 \ + --hash=sha256:a1ceafc5042451a858231588a104093474c6a5c57dcc724841f5c888d237d690 \ + --hash=sha256:a73044b752f5d34d4232f25f18160a1cc418ea4507f5f11e299d8ac36875f8a0 \ + --hash=sha256:a7870e8c5fc11aef57d6fea4b4085e537a3a60ad2cdd14322ed531fdca68d261 \ + --hash=sha256:a92f227dbcdc9e4c3e193add1a189a9909947d4f8504c576f4a732fd0b54240a \ + --hash=sha256:ac08c63cb7779b85e9d5318e6c3518b424bc1f364ac4cb2c6136f12e5ff2dccc \ + --hash=sha256:b6bcf39112e956594b3331316d90c90c90fb961e39696bda97b89462f5f3943f \ + --hash=sha256:c0faba4a331195bfa96f93dd9dfaa10b2c7aa8cda3a02b7fd635e588fe821bf5 \ + --hash=sha256:ce9ce141a505053b3c7bce3216071f3bf5c182b8b28930f14cd24d43932cd2df \ + --hash=sha256:cf6470d91d34bf669f61d515499859fa7a4c2f7c36434afb70e82df7217933f9 \ + --hash=sha256:d3703409aac693fa82c0aee023a1ae06a6e9d065dba10f5e8e80f642f1e9d0a2 \ + --hash=sha256:d3e3087f53e2b4428766b54932644d148613c5a595150533ae7f00dab2f319a8 \ + --hash=sha256:d3f8f0df9f4b8be57b3bf74a1d087fec68f927a2fab68231fdb442bf2c12e426 \ + --hash=sha256:d797454e37570cfd61143b73b8debd623c3c0952959adb817dd310a483d58a1b \ + --hash=sha256:e1a27bb1b2dee45a2a53f5ca6ff2d1a7f135287883a1689e930d44d1ff296c87 \ + --hash=sha256:e3bd2cb07841166420d2fa7146c96ce00cb3410664cbc1a6be028e456c4ee220 \ + --hash=sha256:e7b6b5e28bbd47b7532698e5db2fe1db693d84b58c254e4389d99a27bb9b8f6b \ + --hash=sha256:e867df947d427cdd7a60e3e271729090b0f0df80f5f10ab7dd436f40811699c3 \ + --hash=sha256:ea66d2b41ca4a1630aae5507ee0a71647d3124d1741980138aa8f28f44dac36e \ + --hash=sha256:edee228f76ee2dab4579fad6f51f6a305de09d444280109e0f75df247ff21501 \ + --hash=sha256:f0a90aba7d521e6954670550e561a4cb925713bd944445dbe9e729b71f6cabee \ + --hash=sha256:f93bc6892fe7b0663e5ffa83b61aab510aacffd58c16e012bb9352d489d90cb7 \ + --hash=sha256:fb1461c99de4d040666ca0444057b06541e5642f800b71c56e6ea92d6a853a0c # via # feast (setup.py) # dask @@ -1693,16 +1678,15 @@ numpy==2.4.0 \ # ibis-framework # pandas # pandas-gbq - # pyarrow oauthlib==3.3.1 \ --hash=sha256:0f0f8aa759826a193cf66c12ea1af1637f87b9b4622d46e866952bb022e538c9 \ --hash=sha256:88119c938d2b8fb88561af5f6ee0eec8cc8d552b7bb1f712743136eb7523b7a1 # via # kubernetes # requests-oauthlib -packaging==24.2 \ - --hash=sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759 \ - --hash=sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f +packaging==25.0 \ + --hash=sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484 \ + --hash=sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f # via # dask # db-dtypes @@ -1776,9 +1760,9 @@ pandas==2.3.3 \ # pandas-gbq # pymilvus # snowflake-connector-python -pandas-gbq==0.32.0 \ - --hash=sha256:249623d574c65e98cf19b7b7ecda97729f4f0a843eae3a0a82d9ef50adcdf4ef \ - --hash=sha256:28018ff09f2e49ab2b01a11329bd4e562fd65da406030b4a8001a3a4e80a1e34 +pandas-gbq==0.33.0 \ + --hash=sha256:499ad18a7b1917e2cc04bbd763ec37c11ecc49030348c45cebb9cbbdb7f909af \ + --hash=sha256:61357e11d73e0ae57cbff31e71fc3ed83da3d16b58b653f715b32ad760527e34 # via google-cloud-bigquery parsy==2.2 \ --hash=sha256:5e981613d9d2d8b68012d1dd0afe928967bea2e4eefdb76c2f545af0dd02a9e7 \ @@ -1788,17 +1772,17 @@ partd==1.4.2 \ --hash=sha256:978e4ac767ec4ba5b86c6eaa52e5a2a3bc748a2ca839e8cc798f1cc6ce6efb0f \ --hash=sha256:d022c33afbdc8405c226621b015e8067888173d85f7f5ecebb3cafed9a20f02c # via dask -pathspec==0.12.1 \ - --hash=sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 \ - --hash=sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712 +pathspec==1.0.3 \ + --hash=sha256:bac5cf97ae2c2876e2d25ebb15078eb04d76e4b98921ee31c6f85ade8b59444d \ + --hash=sha256:e80767021c1cc524aa3fb14bedda9c34406591343cc42797b386ce7b9354fb6c # via mypy platformdirs==4.5.1 \ --hash=sha256:61d5cdcc6065745cdd94f0f878977f8de9437be93de97c1c12f853c9c0cdcbda \ --hash=sha256:d03afa3963c806a9bed9d5125c8f4cb2fdaf74a55ab60e5d59b3fde758104d31 # via snowflake-connector-python -prometheus-client==0.23.1 \ - --hash=sha256:6ae8f9081eaaaf153a2e959d2e6c4f4fb57b12ef76c8c7980202f1e57b48b2ce \ - --hash=sha256:dd1913e6e76b59cfe44e7a4b83e01afc9873c1bdfd2ed8739f1e76aeca115f99 +prometheus-client==0.24.0 \ + --hash=sha256:4ab6d4fb5a1b25ad74b58e6271857e356fff3399473e599d227ab5d0ce6637f0 \ + --hash=sha256:726b40c0d499f4904d4b5b7abe8d43e6aff090de0d468ae8f2226290b331c667 # via feast (setup.py) propcache==0.4.1 \ --hash=sha256:0002004213ee1f36cfb3f9a42b5066100c44276b9b72b4e1504cddd3d692e86e \ @@ -1934,17 +1918,17 @@ proto-plus==1.27.0 \ # google-cloud-bigquery-storage # google-cloud-bigtable # google-cloud-datastore -protobuf==6.33.2 \ - --hash=sha256:1f8017c48c07ec5859106533b682260ba3d7c5567b1ca1f24297ce03384d1b4f \ - --hash=sha256:2981c58f582f44b6b13173e12bb8656711189c2a70250845f264b877f00b1913 \ - --hash=sha256:56dc370c91fbb8ac85bc13582c9e373569668a290aa2e66a590c2a0d35ddb9e4 \ - --hash=sha256:7109dcc38a680d033ffb8bf896727423528db9163be1b6a02d6a49606dcadbfe \ - --hash=sha256:7636aad9bb01768870266de5dc009de2d1b936771b38a793f73cbbf279c91c5c \ - --hash=sha256:87eb388bd2d0f78febd8f4c8779c79247b26a5befad525008e49a6955787ff3d \ - --hash=sha256:8cd7640aee0b7828b6d03ae518b5b4806fdfc1afe8de82f79c3454f8aef29872 \ - --hash=sha256:b5d3b5625192214066d99b2b605f5783483575656784de223f00a8d00754fc0e \ - --hash=sha256:d9b19771ca75935b3a4422957bc518b0cecb978b31d1dd12037b088f6bcc0e43 \ - --hash=sha256:fc2a0e8b05b180e5fc0dd1559fe8ebdae21a27e81ac77728fb6c42b12c7419b4 +protobuf==6.33.4 \ + --hash=sha256:0f12ddbf96912690c3582f9dffb55530ef32015ad8e678cd494312bd78314c4f \ + --hash=sha256:1fe3730068fcf2e595816a6c34fe66eeedd37d51d0400b72fabc848811fdc1bc \ + --hash=sha256:2fe67f6c014c84f655ee06f6f66213f9254b3a8b6bda6cda0ccd4232c73c06f0 \ + --hash=sha256:3df850c2f8db9934de4cf8f9152f8dc2558f49f298f37f90c517e8e5c84c30e9 \ + --hash=sha256:757c978f82e74d75cba88eddec479df9b99a42b31193313b75e492c06a51764e \ + --hash=sha256:8f11ffae31ec67fc2554c2ef891dcb561dae9a2a3ed941f9e134c2db06657dbc \ + --hash=sha256:918966612c8232fc6c24c78e1cd89784307f5814ad7506c308ee3cf86662850d \ + --hash=sha256:955478a89559fa4568f5a81dce77260eabc5c686f9e8366219ebd30debf06aa6 \ + --hash=sha256:c7c64f259c618f0bef7bee042075e390debbf9682334be2b67408ec7c1c09ee6 \ + --hash=sha256:dc2e61bca3b10470c1912d166fe0af67bfc20eb55971dcef8dfa48ce14f0ed91 # via # feast (setup.py) # google-api-core @@ -1994,43 +1978,57 @@ psycopg-pool==3.3.0 \ --hash=sha256:2e44329155c410b5e8666372db44276a8b1ebd8c90f1c3026ebba40d4bc81063 \ --hash=sha256:fa115eb2860bd88fce1717d75611f41490dec6135efb619611142b24da3f6db5 # via psycopg -pyarrow==17.0.0 \ - --hash=sha256:0071ce35788c6f9077ff9ecba4858108eebe2ea5a3f7cf2cf55ebc1dbc6ee24a \ - --hash=sha256:02dae06ce212d8b3244dd3e7d12d9c4d3046945a5933d28026598e9dbbda1fca \ - --hash=sha256:0b72e87fe3e1db343995562f7fff8aee354b55ee83d13afba65400c178ab2597 \ - --hash=sha256:0cdb0e627c86c373205a2f94a510ac4376fdc523f8bb36beab2e7f204416163c \ - --hash=sha256:13d7a460b412f31e4c0efa1148e1d29bdf18ad1411eb6757d38f8fbdcc8645fb \ - --hash=sha256:1c8856e2ef09eb87ecf937104aacfa0708f22dfeb039c363ec99735190ffb977 \ - --hash=sha256:2e19f569567efcbbd42084e87f948778eb371d308e137a0f97afe19bb860ccb3 \ - --hash=sha256:32503827abbc5aadedfa235f5ece8c4f8f8b0a3cf01066bc8d29de7539532687 \ - --hash=sha256:392bc9feabc647338e6c89267635e111d71edad5fcffba204425a7c8d13610d7 \ - --hash=sha256:42bf93249a083aca230ba7e2786c5f673507fa97bbd9725a1e2754715151a204 \ - --hash=sha256:4beca9521ed2c0921c1023e68d097d0299b62c362639ea315572a58f3f50fd28 \ - --hash=sha256:5984f416552eea15fd9cee03da53542bf4cddaef5afecefb9aa8d1010c335087 \ - --hash=sha256:6b244dc8e08a23b3e352899a006a26ae7b4d0da7bb636872fa8f5884e70acf15 \ - --hash=sha256:757074882f844411fcca735e39aae74248a1531367a7c80799b4266390ae51cc \ - --hash=sha256:75c06d4624c0ad6674364bb46ef38c3132768139ddec1c56582dbac54f2663e2 \ - --hash=sha256:7c7916bff914ac5d4a8fe25b7a25e432ff921e72f6f2b7547d1e325c1ad9d155 \ - --hash=sha256:9b564a51fbccfab5a04a80453e5ac6c9954a9c5ef2890d1bcf63741909c3f8df \ - --hash=sha256:9b8a823cea605221e61f34859dcc03207e52e409ccf6354634143e23af7c8d22 \ - --hash=sha256:9ba11c4f16976e89146781a83833df7f82077cdab7dc6232c897789343f7891a \ - --hash=sha256:a155acc7f154b9ffcc85497509bcd0d43efb80d6f733b0dc3bb14e281f131c8b \ - --hash=sha256:a27532c38f3de9eb3e90ecab63dfda948a8ca859a66e3a47f5f42d1e403c4d03 \ - --hash=sha256:a48ddf5c3c6a6c505904545c25a4ae13646ae1f8ba703c4df4a1bfe4f4006bda \ - --hash=sha256:a5c8b238d47e48812ee577ee20c9a2779e6a5904f1708ae240f53ecbee7c9f07 \ - --hash=sha256:af5ff82a04b2171415f1410cff7ebb79861afc5dae50be73ce06d6e870615204 \ - --hash=sha256:b0c6ac301093b42d34410b187bba560b17c0330f64907bfa4f7f7f2444b0cf9b \ - --hash=sha256:d7d192305d9d8bc9082d10f361fc70a73590a4c65cf31c3e6926cd72b76bc35c \ - --hash=sha256:da1e060b3876faa11cee287839f9cc7cdc00649f475714b8680a05fd9071d545 \ - --hash=sha256:db023dc4c6cae1015de9e198d41250688383c3f9af8f565370ab2b4cb5f62655 \ - --hash=sha256:dc5c31c37409dfbc5d014047817cb4ccd8c1ea25d19576acf1a001fe07f5b420 \ - --hash=sha256:dec8d129254d0188a49f8a1fc99e0560dc1b85f60af729f47de4046015f9b0a5 \ - --hash=sha256:e3343cb1e88bc2ea605986d4b94948716edc7a8d14afd4e2c097232f729758b4 \ - --hash=sha256:edca18eaca89cd6382dfbcff3dd2d87633433043650c07375d095cd3517561d8 \ - --hash=sha256:f1e70de6cb5790a50b01d2b686d54aaf73da01266850b05e3af2a1bc89e16053 \ - --hash=sha256:f553ca691b9e94b202ff741bdd40f6ccb70cdd5fbf65c187af132f1317de6145 \ - --hash=sha256:f7ae2de664e0b158d1607699a16a488de3d008ba99b3a7aa5de1cbc13574d047 \ - --hash=sha256:fa3c246cc58cb5a4a5cb407a18f193354ea47dd0648194e6265bd24177982fe8 +pyarrow==22.0.0 \ + --hash=sha256:001ea83a58024818826a9e3f89bf9310a114f7e26dfe404a4c32686f97bd7901 \ + --hash=sha256:00626d9dc0f5ef3a75fe63fd68b9c7c8302d2b5bbc7f74ecaedba83447a24f84 \ + --hash=sha256:0c34fe18094686194f204a3b1787a27456897d8a2d62caf84b61e8dfbc0252ae \ + --hash=sha256:12fe549c9b10ac98c91cf791d2945e878875d95508e1a5d14091a7aaa66d9cf8 \ + --hash=sha256:1a812a5b727bc09c3d7ea072c4eebf657c2f7066155506ba31ebf4792f88f016 \ + --hash=sha256:252be4a05f9d9185bb8c18e83764ebcfea7185076c07a7a662253af3a8c07941 \ + --hash=sha256:334f900ff08ce0423407af97e6c26ad5d4e3b0763645559ece6fbf3747d6a8f5 \ + --hash=sha256:35ad0f0378c9359b3f297299c3309778bb03b8612f987399a0333a560b43862d \ + --hash=sha256:3d600dc583260d845c7d8a6db540339dd883081925da2bd1c5cb808f720b3cd9 \ + --hash=sha256:3e294c5eadfb93d78b0763e859a0c16d4051fc1c5231ae8956d61cb0b5666f5a \ + --hash=sha256:3e739edd001b04f654b166204fc7a9de896cf6007eaff33409ee9e50ceaff754 \ + --hash=sha256:44729980b6c50a5f2bfcc2668d36c569ce17f8b17bccaf470c4313dcbbf13c9d \ + --hash=sha256:44d2d26cda26d18f7af7db71453b7b783788322d756e81730acb98f24eb90ace \ + --hash=sha256:4c19236ae2402a8663a2c8f21f1870a03cc57f0bef7e4b6eb3238cc82944de80 \ + --hash=sha256:69763ab2445f632d90b504a815a2a033f74332997052b721002298ed6de40f2e \ + --hash=sha256:6dda1ddac033d27421c20d7a7943eec60be44e0db4e079f33cc5af3b8280ccde \ + --hash=sha256:6f9762274496c244d951c819348afbcf212714902742225f649cf02823a6a10f \ + --hash=sha256:710624ab925dc2b05a6229d47f6f0dac1c1155e6ed559be7109f684eba048a48 \ + --hash=sha256:7388ac685cab5b279a41dfe0a6ccd99e4dbf322edfb63e02fc0443bf24134e91 \ + --hash=sha256:77718810bd3066158db1e95a63c160ad7ce08c6b0710bc656055033e39cdad88 \ + --hash=sha256:7a820d8ae11facf32585507c11f04e3f38343c1e784c9b5a8b1da5c930547fe2 \ + --hash=sha256:8382ad21458075c2e66a82a29d650f963ce51c7708c7c0ff313a8c206c4fd5e8 \ + --hash=sha256:84378110dd9a6c06323b41b56e129c504d157d1a983ce8f5443761eb5256bafc \ + --hash=sha256:854794239111d2b88b40b6ef92aa478024d1e5074f364033e73e21e3f76b25e0 \ + --hash=sha256:92843c305330aa94a36e706c16209cd4df274693e777ca47112617db7d0ef3d7 \ + --hash=sha256:9bddc2cade6561f6820d4cd73f99a0243532ad506bc510a75a5a65a522b2d74d \ + --hash=sha256:a4893d31e5ef780b6edcaf63122df0f8d321088bb0dee4c8c06eccb1ca28d145 \ + --hash=sha256:a9d9ffdc2ab696f6b15b4d1f7cec6658e1d788124418cb30030afbae31c64746 \ + --hash=sha256:ac93252226cf288753d8b46280f4edf3433bf9508b6977f8dd8526b521a1bbb9 \ + --hash=sha256:b41f37cabfe2463232684de44bad753d6be08a7a072f6a83447eeaf0e4d2a215 \ + --hash=sha256:b883fe6fd85adad7932b3271c38ac289c65b7337c2c132e9569f9d3940620730 \ + --hash=sha256:b9d71701ce97c95480fecb0039ec5bb889e75f110da72005743451339262f4ce \ + --hash=sha256:ba95112d15fd4f1105fb2402c4eab9068f0554435e9b7085924bcfaac2cc306f \ + --hash=sha256:bba208d9c7decf9961998edf5c65e3ea4355d5818dd6cd0f6809bec1afb951cc \ + --hash=sha256:bd0d42297ace400d8febe55f13fdf46e86754842b860c978dfec16f081e5c653 \ + --hash=sha256:bea79263d55c24a32b0d79c00a1c58bb2ee5f0757ed95656b01c0fb310c5af3d \ + --hash=sha256:c064e28361c05d72eed8e744c9605cbd6d2bb7481a511c74071fd9b24bc65d7d \ + --hash=sha256:c3200cb41cdbc65156e5f8c908d739b0dfed57e890329413da2748d1a2cd1a4e \ + --hash=sha256:c6c791b09c57ed76a18b03f2631753a4960eefbbca80f846da8baefc6491fcfe \ + --hash=sha256:c6ec3675d98915bf1ec8b3c7986422682f7232ea76cad276f4c8abd5b7319b70 \ + --hash=sha256:ce20fe000754f477c8a9125543f1936ea5b8867c5406757c224d745ed033e691 \ + --hash=sha256:cedb9dd9358e4ea1d9bce3665ce0797f6adf97ff142c8e25b46ba9cdd508e9b6 \ + --hash=sha256:e0a15757fccb38c410947df156f9749ae4a3c89b2393741a50521f39a8cf202a \ + --hash=sha256:e6e95176209257803a8b3d0394f21604e796dadb643d2f7ca21b66c9c0b30c9a \ + --hash=sha256:e70ff90c64419709d38c8932ea9fe1cc98415c4f87ea8da81719e43f02534bc9 \ + --hash=sha256:ec1a15968a9d80da01e1d30349b2b0d7cc91e96588ee324ce1b5228175043e95 \ + --hash=sha256:ec5d40dd494882704fb876c16fa7261a69791e784ae34e6b5992e977bd2e238c \ + --hash=sha256:f633074f36dbc33d5c05b5dc75371e5660f1dbf9c8b1d95669def05e5425989c \ + --hash=sha256:f7fe3dbe871294ba70d789be16b6e7e52b418311e166e0e3cba9522f0f437fb1 \ + --hash=sha256:f963ba8c3b0199f9d6b794c90ec77545e05eadc83973897a4523c9e8d84e9340 # via # feast (setup.py) # dask @@ -2212,9 +2210,9 @@ pyjwt[crypto]==2.10.1 \ # feast (setup.py) # mcp # snowflake-connector-python -pymilvus==2.4.15 \ - --hash=sha256:0601591ce0498315e19e9ac3f4fdd3051102ca87b6ddff5b33849f522288cff7 \ - --hash=sha256:b21878e5df74dca91b3f3cf0b0597fa6b6aed7bf5cde9a1b10641994faa353bf +pymilvus==2.5.18 \ + --hash=sha256:1b78badcfa8d62db7d0b29193fc0422e4676873ff1c745a9d75c2c885d7a7e32 \ + --hash=sha256:9e517076068e98dac51c018bc0dfe1f651d936154e2e2d9ad6c7b3dab1164e2d # via feast (setup.py) pymysql==1.1.2 \ --hash=sha256:4961d3e165614ae65014e361811a724e2044ad3ea3739de9903ae7c21f539f03 \ @@ -2249,7 +2247,6 @@ pytz==2025.2 \ --hash=sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3 \ --hash=sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00 # via - # ibis-framework # pandas # snowflake-connector-python pyyaml==6.0.3 \ @@ -2359,9 +2356,9 @@ requests-oauthlib==2.0.0 \ # via # google-auth-oauthlib # kubernetes -rich==13.9.4 \ - --hash=sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098 \ - --hash=sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90 +rich==14.2.0 \ + --hash=sha256:73ff50c7c0c1c77c8243079283f4edb376f0f6442433aecb8ce7e6d0b92d1fe4 \ + --hash=sha256:76bc51fe2e57d2b1be1f96c524b890b816e334ab4c1e45888799bfaab0021edd # via # fastapi-mcp # ibis-framework @@ -2597,13 +2594,13 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:fd93c6f5d65f254ceabe97548c709e073d6da9883343adaa51bf1a913ce93f8e \ --hash=sha256:fe187fc31a54d7fd90352f34e8c008cf3ad5d064d08fedd3de2e8df83eb4a1cf # via feast (setup.py) -sqlglot==25.20.2 \ - --hash=sha256:169fe8308dd70d7bd40117b2221b62bdc7c4e2ea8eb07394b2a6146cdedf05ab \ - --hash=sha256:cdbfd7ce3f2f39f32bd7b4c23fd9e0fd261636a6b14285b914e8def25fd0a567 +sqlglot==28.6.0 \ + --hash=sha256:8af76e825dc8456a49f8ce049d69bbfcd116655dda3e53051754789e2edf8eba \ + --hash=sha256:8c0a432a6745c6c7965bbe99a17667c5a3ca1d524a54b31997cf5422b1727f6a # via ibis-framework -sse-starlette==3.1.1 \ - --hash=sha256:bb38f71ae74cfd86b529907a9fda5632195dfa6ae120f214ea4c890c7ee9d436 \ - --hash=sha256:bffa531420c1793ab224f63648c059bcadc412bf9fdb1301ac8de1cf9a67b7fb +sse-starlette==3.1.2 \ + --hash=sha256:55eff034207a83a0eb86de9a68099bd0157838f0b8b999a1b742005c71e33618 \ + --hash=sha256:cd800dd349f4521b317b9391d3796fa97b71748a4da9b9e00aafab32dda375c8 # via mcp starlette==0.50.0 \ --hash=sha256:9e5391843ec9b6e472eed1365a78c8098cfceb7a74bfd4d6b1c0c0095efb3bca \ @@ -2624,57 +2621,62 @@ toml==0.10.2 \ --hash=sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b \ --hash=sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f # via feast (setup.py) -tomli==2.3.0 \ - --hash=sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456 \ - --hash=sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845 \ - --hash=sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999 \ - --hash=sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0 \ - --hash=sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878 \ - --hash=sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf \ - --hash=sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3 \ - --hash=sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be \ - --hash=sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52 \ - --hash=sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b \ - --hash=sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67 \ - --hash=sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549 \ - --hash=sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba \ - --hash=sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22 \ - --hash=sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c \ - --hash=sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f \ - --hash=sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6 \ - --hash=sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba \ - --hash=sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45 \ - --hash=sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f \ - --hash=sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77 \ - --hash=sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606 \ - --hash=sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441 \ - --hash=sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0 \ - --hash=sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f \ - --hash=sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530 \ - --hash=sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05 \ - --hash=sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8 \ - --hash=sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005 \ - --hash=sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879 \ - --hash=sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae \ - --hash=sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc \ - --hash=sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b \ - --hash=sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b \ - --hash=sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e \ - --hash=sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf \ - --hash=sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac \ - --hash=sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8 \ - --hash=sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b \ - --hash=sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf \ - --hash=sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463 \ - --hash=sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876 +tomli==2.4.0 \ + --hash=sha256:0408e3de5ec77cc7f81960c362543cbbd91ef883e3138e81b729fc3eea5b9729 \ + --hash=sha256:0dc56fef0e2c1c470aeac5b6ca8cc7b640bb93e92d9803ddaf9ea03e198f5b0b \ + --hash=sha256:0e0fe8a0b8312acf3a88077a0802565cb09ee34107813bba1c7cd591fa6cfc8d \ + --hash=sha256:0f2e3955efea4d1cfbcb87bc321e00dc08d2bcb737fd1d5e398af111d86db5df \ + --hash=sha256:133e93646ec4300d651839d382d63edff11d8978be23da4cc106f5a18b7d0576 \ + --hash=sha256:1b168f2731796b045128c45982d3a4874057626da0e2ef1fdd722848b741361d \ + --hash=sha256:1c8a885b370751837c029ef9bc014f27d80840e48bac415f3412e6593bbc18c1 \ + --hash=sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a \ + --hash=sha256:1fb2945cbe303b1419e2706e711b7113da57b7db31ee378d08712d678a34e51e \ + --hash=sha256:20cedb4ee43278bc4f2fee6cb50daec836959aadaf948db5172e776dd3d993fc \ + --hash=sha256:20ffd184fb1df76a66e34bd1b36b4a4641bd2b82954befa32fe8163e79f1a702 \ + --hash=sha256:26ab906a1eb794cd4e103691daa23d95c6919cc2fa9160000ac02370cc9dd3f6 \ + --hash=sha256:2add28aacc7425117ff6364fe9e06a183bb0251b03f986df0e78e974047571fd \ + --hash=sha256:2b1e3b80e1d5e52e40e9b924ec43d81570f0e7d09d11081b797bc4692765a3d4 \ + --hash=sha256:31d556d079d72db7c584c0627ff3a24c5d3fb4f730221d3444f3efb1b2514776 \ + --hash=sha256:36b9d05b51e65b254ea6c2585b59d2c4cb91c8a3d91d0ed0f17591a29aaea54a \ + --hash=sha256:39b0b5d1b6dd03684b3fb276407ebed7090bbec989fa55838c98560c01113b66 \ + --hash=sha256:3cf226acb51d8f1c394c1b310e0e0e61fecdd7adcb78d01e294ac297dd2e7f87 \ + --hash=sha256:3d895d56bd3f82ddd6faaff993c275efc2ff38e52322ea264122d72729dca2b2 \ + --hash=sha256:413540dce94673591859c4c6f794dfeaa845e98bf35d72ed59636f869ef9f86f \ + --hash=sha256:43e685b9b2341681907759cf3a04e14d7104b3580f808cfde1dfdb60ada85475 \ + --hash=sha256:4cbcb367d44a1f0c2be408758b43e1ffb5308abe0ea222897d6bfc8e8281ef2f \ + --hash=sha256:551e321c6ba03b55676970b47cb1b73f14a0a4dce6a3e1a9458fd6d921d72e95 \ + --hash=sha256:5572e41282d5268eb09a697c89a7bee84fae66511f87533a6f88bd2f7b652da9 \ + --hash=sha256:5aa48d7c2356055feef06a43611fc401a07337d5b006be13a30f6c58f869e3c3 \ + --hash=sha256:5b5807f3999fb66776dbce568cc9a828544244a8eb84b84b9bafc080c99597b9 \ + --hash=sha256:5e3f639a7a8f10069d0e15408c0b96a2a828cfdec6fca05296ebcdcc28ca7c76 \ + --hash=sha256:685306e2cc7da35be4ee914fd34ab801a6acacb061b6a7abca922aaf9ad368da \ + --hash=sha256:75c2f8bbddf170e8effc98f5e9084a8751f8174ea6ccf4fca5398436e0320bc8 \ + --hash=sha256:7b438885858efd5be02a9a133caf5812b8776ee0c969fea02c45e8e3f296ba51 \ + --hash=sha256:7d49c66a7d5e56ac959cb6fc583aff0651094ec071ba9ad43df785abc2320d86 \ + --hash=sha256:7d6d9a4aee98fac3eab4952ad1d73aee87359452d1c086b5ceb43ed02ddb16b8 \ + --hash=sha256:84d081fbc252d1b6a982e1870660e7330fb8f90f676f6e78b052ad4e64714bf0 \ + --hash=sha256:8768715ffc41f0008abe25d808c20c3d990f42b6e2e58305d5da280ae7d1fa3b \ + --hash=sha256:920b1de295e72887bafa3ad9f7a792f811847d57ea6b1215154030cf131f16b1 \ + --hash=sha256:9a08144fa4cba33db5255f9b74f0b89888622109bd2776148f2597447f92a94e \ + --hash=sha256:a26d7ff68dfdb9f87a016ecfd1e1c2bacbe3108f4e0f8bcd2228ef9a766c787d \ + --hash=sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c \ + --hash=sha256:b5ef256a3fd497d4973c11bf142e9ed78b150d36f5773f1ca6088c230ffc5867 \ + --hash=sha256:b6c78bdf37764092d369722d9946cb65b8767bfa4110f902a1b2542d8d173c8a \ + --hash=sha256:bbb1b10aa643d973366dc2cb1ad94f99c1726a02343d43cbc011edbfac579e7c \ + --hash=sha256:c084ad935abe686bd9c898e62a02a19abfc9760b5a79bc29644463eaf2840cb0 \ + --hash=sha256:c73add4bb52a206fd0c0723432db123c0c75c280cbd67174dd9d2db228ebb1b4 \ + --hash=sha256:cae9c19ed12d4e8f3ebf46d1a75090e4c0dc16271c5bce1c833ac168f08fb614 \ + --hash=sha256:d20b797a5c1ad80c516e41bc1fb0443ddb5006e9aaa7bda2d71978346aeb9132 \ + --hash=sha256:d3d1654e11d724760cdb37a3d7691f0be9db5fbdaef59c9f532aabf87006dbaa \ + --hash=sha256:d878f2a6707cc9d53a1be1414bbb419e629c3d6e67f69230217bb663e76b5087 # via fastapi-mcp -tomlkit==0.13.3 \ - --hash=sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1 \ - --hash=sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0 +tomlkit==0.14.0 \ + --hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 \ + --hash=sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064 # via snowflake-connector-python -toolz==0.12.1 \ - --hash=sha256:d22731364c07d72eea0a0ad45bafb2c2937ab6fd38a3507bf55eae8744aa7d85 \ - --hash=sha256:ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d +toolz==1.1.0 \ + --hash=sha256:15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8 \ + --hash=sha256:27a5c770d068c110d9ed9323f24f1543e83b2f300a687b7891c1a6d56b697b5b # via # dask # ibis-framework @@ -2689,9 +2691,9 @@ typeguard==4.4.4 \ --hash=sha256:3a7fd2dffb705d4d0efaed4306a704c89b9dee850b688f060a8b1615a79e5f74 \ --hash=sha256:b5f562281b6bfa1f5492470464730ef001646128b180769880468bd84b68b09e # via feast (setup.py) -typer==0.21.0 \ - --hash=sha256:c79c01ca6b30af9fd48284058a7056ba0d3bf5cf10d0ff3d0c5b11b68c258ac6 \ - --hash=sha256:c87c0d2b6eee3b49c5c64649ec92425492c14488096dfbc8a0c2799b2f6f9c53 +typer==0.21.1 \ + --hash=sha256:7985e89081c636b88d172c2ee0cfe33c253160994d47bdfdc302defd7d1f1d01 \ + --hash=sha256:ea835607cd752343b6b2b7ce676893e5a0324082268b48f27aa058bdb7d2145d # via fastapi-mcp types-pymysql==1.1.0.20251220 \ --hash=sha256:ae1c3df32a777489431e2e9963880a0df48f6591e0aa2fd3a6fabd9dee6eca54 \ @@ -2729,7 +2731,9 @@ typing-inspection==0.4.2 \ tzdata==2025.3 \ --hash=sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1 \ --hash=sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7 - # via pandas + # via + # ibis-framework + # pandas ujson==5.11.0 \ --hash=sha256:0180a480a7d099082501cad1fe85252e4d4bf926b40960fb3d9e87a3a6fbbc80 \ --hash=sha256:04c41afc195fd477a59db3a84d5b83a871bd648ef371cf8c6f43072d89144eef \ @@ -3001,76 +3005,68 @@ websocket-client==1.9.0 \ --hash=sha256:9e813624b6eb619999a97dc7958469217c3176312b3a16a4bd1bc7e08a46ec98 \ --hash=sha256:af248a825037ef591efbf6ed20cc5faa03d3b47b9e5a2230a529eeee1c1fc3ef # via kubernetes -websockets==15.0.1 \ - --hash=sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2 \ - --hash=sha256:0a34631031a8f05657e8e90903e656959234f3a04552259458aac0b0f9ae6fd9 \ - --hash=sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5 \ - --hash=sha256:0c9e74d766f2818bb95f84c25be4dea09841ac0f734d1966f415e4edfc4ef1c3 \ - --hash=sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8 \ - --hash=sha256:0fdfe3e2a29e4db3659dbd5bbf04560cea53dd9610273917799f1cde46aa725e \ - --hash=sha256:1009ee0c7739c08a0cd59de430d6de452a55e42d6b522de7aa15e6f67db0b8e1 \ - --hash=sha256:1234d4ef35db82f5446dca8e35a7da7964d02c127b095e172e54397fb6a6c256 \ - --hash=sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85 \ - --hash=sha256:2034693ad3097d5355bfdacfffcbd3ef5694f9718ab7f29c29689a9eae841880 \ - --hash=sha256:21c1fa28a6a7e3cbdc171c694398b6df4744613ce9b36b1a498e816787e28123 \ - --hash=sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375 \ - --hash=sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065 \ - --hash=sha256:363c6f671b761efcb30608d24925a382497c12c506b51661883c3e22337265ed \ - --hash=sha256:39c1fec2c11dc8d89bba6b2bf1556af381611a173ac2b511cf7231622058af41 \ - --hash=sha256:3b1ac0d3e594bf121308112697cf4b32be538fb1444468fb0a6ae4feebc83411 \ - --hash=sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597 \ - --hash=sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f \ - --hash=sha256:3d00075aa65772e7ce9e990cab3ff1de702aa09be3940d1dc88d5abf1ab8a09c \ - --hash=sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3 \ - --hash=sha256:47819cea040f31d670cc8d324bb6435c6f133b8c7a19ec3d61634e62f8d8f9eb \ - --hash=sha256:47b099e1f4fbc95b701b6e85768e1fcdaf1630f3cbe4765fa216596f12310e2e \ - --hash=sha256:4a9fac8e469d04ce6c25bb2610dc535235bd4aa14996b4e6dbebf5e007eba5ee \ - --hash=sha256:4b826973a4a2ae47ba357e4e82fa44a463b8f168e1ca775ac64521442b19e87f \ - --hash=sha256:4c2529b320eb9e35af0fa3016c187dffb84a3ecc572bcee7c3ce302bfeba52bf \ - --hash=sha256:54479983bd5fb469c38f2f5c7e3a24f9a4e70594cd68cd1fa6b9340dadaff7cf \ - --hash=sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4 \ - --hash=sha256:5756779642579d902eed757b21b0164cd6fe338506a8083eb58af5c372e39d9a \ - --hash=sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665 \ - --hash=sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22 \ - --hash=sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675 \ - --hash=sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4 \ - --hash=sha256:5df592cd503496351d6dc14f7cdad49f268d8e618f80dce0cd5a36b93c3fc08d \ - --hash=sha256:5f4c04ead5aed67c8a1a20491d54cdfba5884507a48dd798ecaf13c74c4489f5 \ - --hash=sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65 \ - --hash=sha256:66dd88c918e3287efc22409d426c8f729688d89a0c587c88971a0faa2c2f3792 \ - --hash=sha256:678999709e68425ae2593acf2e3ebcbcf2e69885a5ee78f9eb80e6e371f1bf57 \ - --hash=sha256:67f2b6de947f8c757db2db9c71527933ad0019737ec374a8a6be9a956786aaf9 \ - --hash=sha256:693f0192126df6c2327cce3baa7c06f2a117575e32ab2308f7f8216c29d9e2e3 \ - --hash=sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151 \ - --hash=sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d \ - --hash=sha256:76d1f20b1c7a2fa82367e04982e708723ba0e7b8d43aa643d3dcd404d74f1475 \ - --hash=sha256:7f493881579c90fc262d9cdbaa05a6b54b3811c2f300766748db79f098db9940 \ - --hash=sha256:823c248b690b2fd9303ba00c4f66cd5e2d8c3ba4aa968b2779be9532a4dad431 \ - --hash=sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee \ - --hash=sha256:8dd8327c795b3e3f219760fa603dcae1dcc148172290a8ab15158cf85a953413 \ - --hash=sha256:8fdc51055e6ff4adeb88d58a11042ec9a5eae317a0a53d12c062c8a8865909e8 \ - --hash=sha256:a625e06551975f4b7ea7102bc43895b90742746797e2e14b70ed61c43a90f09b \ - --hash=sha256:abdc0c6c8c648b4805c5eacd131910d2a7f6455dfd3becab248ef108e89ab16a \ - --hash=sha256:ac017dd64572e5c3bd01939121e4d16cf30e5d7e110a119399cf3133b63ad054 \ - --hash=sha256:ac1e5c9054fe23226fb11e05a6e630837f074174c4c2f0fe442996112a6de4fb \ - --hash=sha256:ac60e3b188ec7574cb761b08d50fcedf9d77f1530352db4eef1707fe9dee7205 \ - --hash=sha256:b359ed09954d7c18bbc1680f380c7301f92c60bf924171629c5db97febb12f04 \ - --hash=sha256:b7643a03db5c95c799b89b31c036d5f27eeb4d259c798e878d6937d71832b1e4 \ - --hash=sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa \ - --hash=sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9 \ - --hash=sha256:cad21560da69f4ce7658ca2cb83138fb4cf695a2ba3e475e0559e05991aa8122 \ - --hash=sha256:d08eb4c2b7d6c41da6ca0600c077e93f5adcfd979cd777d747e9ee624556da4b \ - --hash=sha256:d50fd1ee42388dcfb2b3676132c78116490976f1300da28eb629272d5d93e905 \ - --hash=sha256:d591f8de75824cbb7acad4e05d2d710484f15f29d4a915092675ad3456f11770 \ - --hash=sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe \ - --hash=sha256:d63efaa0cd96cf0c5fe4d581521d9fa87744540d4bc999ae6e08595a1014b45b \ - --hash=sha256:d99e5546bf73dbad5bf3547174cd6cb8ba7273062a23808ffea025ecb1cf8562 \ - --hash=sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561 \ - --hash=sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215 \ - --hash=sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931 \ - --hash=sha256:f29d80eb9a9263b8d109135351caf568cc3f80b9928bccde535c235de55c22d9 \ - --hash=sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f \ - --hash=sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7 +websockets==16.0 \ + --hash=sha256:0298d07ee155e2e9fda5be8a9042200dd2e3bb0b8a38482156576f863a9d457c \ + --hash=sha256:04cdd5d2d1dacbad0a7bf36ccbcd3ccd5a30ee188f2560b7a62a30d14107b31a \ + --hash=sha256:08d7af67b64d29823fed316505a89b86705f2b7981c07848fb5e3ea3020c1abe \ + --hash=sha256:152284a83a00c59b759697b7f9e9cddf4e3c7861dd0d964b472b70f78f89e80e \ + --hash=sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec \ + --hash=sha256:19c4dc84098e523fd63711e563077d39e90ec6702aff4b5d9e344a60cb3c0cb1 \ + --hash=sha256:1c1b30e4f497b0b354057f3467f56244c603a79c0d1dafce1d16c283c25f6e64 \ + --hash=sha256:2b9f1e0d69bc60a4a87349d50c09a037a2607918746f07de04df9e43252c77a3 \ + --hash=sha256:31a52addea25187bde0797a97d6fc3d2f92b6f72a9370792d65a6e84615ac8a8 \ + --hash=sha256:32da954ffa2814258030e5a57bc73a3635463238e797c7375dc8091327434206 \ + --hash=sha256:335c23addf3d5e6a8633f9f8eda77efad001671e80b95c491dd0924587ece0b3 \ + --hash=sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156 \ + --hash=sha256:349f83cd6c9a415428ee1005cadb5c2c56f4389bc06a9af16103c3bc3dcc8b7d \ + --hash=sha256:37b31c1623c6605e4c00d466c9d633f9b812ea430c11c8a278774a1fde1acfa9 \ + --hash=sha256:417b28978cdccab24f46400586d128366313e8a96312e4b9362a4af504f3bbad \ + --hash=sha256:485c49116d0af10ac698623c513c1cc01c9446c058a4e61e3bf6c19dff7335a2 \ + --hash=sha256:4a1aba3340a8dca8db6eb5a7986157f52eb9e436b74813764241981ca4888f03 \ + --hash=sha256:50f23cdd8343b984957e4077839841146f67a3d31ab0d00e6b824e74c5b2f6e8 \ + --hash=sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230 \ + --hash=sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8 \ + --hash=sha256:5569417dc80977fc8c2d43a86f78e0a5a22fee17565d78621b6bb264a115d4ea \ + --hash=sha256:569d01a4e7fba956c5ae4fc988f0d4e187900f5497ce46339c996dbf24f17641 \ + --hash=sha256:583b7c42688636f930688d712885cf1531326ee05effd982028212ccc13e5957 \ + --hash=sha256:5a4b4cc550cb665dd8a47f868c8d04c8230f857363ad3c9caf7a0c3bf8c61ca6 \ + --hash=sha256:5f451484aeb5cafee1ccf789b1b66f535409d038c56966d6101740c1614b86c6 \ + --hash=sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5 \ + --hash=sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f \ + --hash=sha256:71c989cbf3254fbd5e84d3bff31e4da39c43f884e64f2551d14bb3c186230f00 \ + --hash=sha256:781caf5e8eee67f663126490c2f96f40906594cb86b408a703630f95550a8c3e \ + --hash=sha256:7be95cfb0a4dae143eaed2bcba8ac23f4892d8971311f1b06f3c6b78952ee70b \ + --hash=sha256:7d837379b647c0c4c2355c2499723f82f1635fd2c26510e1f587d89bc2199e72 \ + --hash=sha256:86890e837d61574c92a97496d590968b23c2ef0aeb8a9bc9421d174cd378ae39 \ + --hash=sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9 \ + --hash=sha256:8b6e209ffee39ff1b6d0fa7bfef6de950c60dfb91b8fcead17da4ee539121a79 \ + --hash=sha256:8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0 \ + --hash=sha256:8d7f0659570eefb578dacde98e24fb60af35350193e4f56e11190787bee77dac \ + --hash=sha256:8e1dab317b6e77424356e11e99a432b7cb2f3ec8c5ab4dabbcee6add48f72b35 \ + --hash=sha256:8ff32bb86522a9e5e31439a58addbb0166f0204d64066fb955265c4e214160f0 \ + --hash=sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5 \ + --hash=sha256:9b5aca38b67492ef518a8ab76851862488a478602229112c4b0d58d63a7a4d5c \ + --hash=sha256:a069d734c4a043182729edd3e9f247c3b2a4035415a9172fd0f1b71658a320a8 \ + --hash=sha256:a0b31e0b424cc6b5a04b8838bbaec1688834b2383256688cf47eb97412531da1 \ + --hash=sha256:a35539cacc3febb22b8f4d4a99cc79b104226a756aa7400adc722e83b0d03244 \ + --hash=sha256:a5e18a238a2b2249c9a9235466b90e96ae4795672598a58772dd806edc7ac6d3 \ + --hash=sha256:a653aea902e0324b52f1613332ddf50b00c06fdaf7e92624fbf8c77c78fa5767 \ + --hash=sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a \ + --hash=sha256:af80d74d4edfa3cb9ed973a0a5ba2b2a549371f8a741e0800cb07becdd20f23d \ + --hash=sha256:b14dc141ed6d2dde437cddb216004bcac6a1df0935d79656387bd41632ba0bbd \ + --hash=sha256:b784ca5de850f4ce93ec85d3269d24d4c82f22b7212023c974c401d4980ebc5e \ + --hash=sha256:bc59589ab64b0022385f429b94697348a6a234e8ce22544e3681b2e9331b5944 \ + --hash=sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82 \ + --hash=sha256:c0ee0e63f23914732c6d7e0cce24915c48f3f1512ec1d079ed01fc629dab269d \ + --hash=sha256:caab51a72c51973ca21fa8a18bd8165e1a0183f1ac7066a182ff27107b71e1a4 \ + --hash=sha256:d6297ce39ce5c2e6feb13c1a996a2ded3b6832155fcfc920265c76f24c7cceb5 \ + --hash=sha256:daa3b6ff70a9241cf6c7fc9e949d41232d9d7d26fd3522b1ad2b4d62487e9904 \ + --hash=sha256:df57afc692e517a85e65b72e165356ed1df12386ecb879ad5693be08fac65dde \ + --hash=sha256:e0334872c0a37b606418ac52f6ab9cfd17317ac26365f7f65e203e2d0d0d359f \ + --hash=sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c \ + --hash=sha256:eaded469f5e5b7294e2bdca0ab06becb6756ea86894a47806456089298813c89 \ + --hash=sha256:f4a32d1bd841d4bcbffdcb3d2ce50c09c3909fbead375ab28d0181af89fd04da \ + --hash=sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4 # via uvicorn wrapt==1.17.3 \ --hash=sha256:02b551d101f31694fc785e58e0720ef7d9a10c4e62c1c9358ce6f63f23e30a56 \ diff --git a/sdk/python/requirements/py3.11-minimal-sdist-requirements-build.txt b/sdk/python/requirements/py3.11-minimal-sdist-requirements-build.txt index beaafd3e5fd..cdbde3da099 100644 --- a/sdk/python/requirements/py3.11-minimal-sdist-requirements-build.txt +++ b/sdk/python/requirements/py3.11-minimal-sdist-requirements-build.txt @@ -168,57 +168,56 @@ cython==3.0.12 \ # via # numpy # pandas - # pyarrow # pyyaml # snowflake-connector-python # sqlalchemy -cython==3.2.3 \ - --hash=sha256:0145e64485f0a9741c9314ae176282dffeb48d2ef30ae315d7224698867c317f \ - --hash=sha256:06a1317097f540d3bb6c7b81ed58a0d8b9dbfa97abf39dfd4c22ee87a6c7241e \ - --hash=sha256:0a75a04688875b275a6c875565e672325bae04327dd6ec2fc25aeb5c6cf82fce \ - --hash=sha256:1309bdce06f767e8514377f44b3a5b9e5b91e58af1348010cca10b572e1852ad \ - --hash=sha256:18b5e738c9dbb1cb488b51e35c3a1b9aa7363166cce40158fe6ccb454f6498ac \ - --hash=sha256:18edc858e6a52de47fe03ffa97ea14dadf450e20069de0a8aef531006c4bbd93 \ - --hash=sha256:1d097ad4686b58b8c03d760d08eca28f79878d404ef7452c49636170571654e0 \ - --hash=sha256:228f11be8406015d1ce84a25bf4f96167ff6fc18b834deca5716d95ae15a818c \ - --hash=sha256:22a624290c2883387b2c2cfb5224c15bff21432c6a2cf0c23ac8df3dcbd45e96 \ - --hash=sha256:25732f3981a93407826297f4423206e5e22c3cfccfc74e37bf444453bbdc076f \ - --hash=sha256:26404441f733fd1cfb0dd9c45477f501437e7d51fad05bb402bd2feb4e127aa3 \ - --hash=sha256:283262b8f902323ceb6ed3b643f275a2a963e7ab059f0714a467933383cbc56d \ - --hash=sha256:2a18f2e3bcd018416157d0a83446e29b4a31437ab79061fe5504c077e70389d0 \ - --hash=sha256:3141734fb15f8b5e9402b9240f8da8336edecae91742b41c85678c31ab68f66d \ - --hash=sha256:3829f99d611412288f44ff543e9d2b5c0c83274998b2a6680bbe5cca3539c1fd \ - --hash=sha256:4f40efa83c93060a271046930d2322ec045abb9722d25a377702cb57aa823c2b \ - --hash=sha256:51fd1a56d0fc682c05ecc44f11927dbe28dd2867c30148557b62d7d1017a13d8 \ - --hash=sha256:55c0157a5940fbf0b054508207fe0fc5cc796d0532af492c0fa35b5b41a883f7 \ - --hash=sha256:60d19376252722241a3d3ec8a695c5cae4deb053486d2e5f9a40cb569a0cf984 \ - --hash=sha256:6b01b36c9eb1b68c25bddbeef7379f7bfc37f7c9afc044e71840ffab761a2dd0 \ - --hash=sha256:6b6dd6b7aca8447b2a6779b314cc402f1e4990754507a88477e535b3c8b41ad1 \ - --hash=sha256:73afc824896ffaf22bf8122d0a7107f0120e3188a353bdcfa92317fc0d9a87ce \ - --hash=sha256:74f482da8b605c61b4df6ff716d013f20131949cb2fa59b03e63abd36ef5bac0 \ - --hash=sha256:80f20369d7aaf4e76cfef902025256918a5cc6eb0aed6d8783e4b1c563e4f6c4 \ - --hash=sha256:84330e7c8bf220a82b633678b9f99e10227c8f4c406d67c5552449ab2afedef8 \ - --hash=sha256:9a24cc653fad3adbd9cbaa638d80df3aa08a1fe27f62eb35850971c70be680df \ - --hash=sha256:9aa1a8abf3d8bb53cc19cfaa21c004afad8d4ccb17513f8aa11a788d1f525abd \ - --hash=sha256:9c5ac7201d8382c0da69e4a119c14be6acd7c286615a0383ffbd1dbfdbaa3df7 \ - --hash=sha256:b39dff92db70cbd95528f3b81d70e06bd6d3fc9c1dd91321e4d3b999ece3bceb \ - --hash=sha256:c041f7e338cca2422e0924716b04fabeda57636214324fc1941396acce99e7c7 \ - --hash=sha256:c102388cf7604ff5647164d5041fd5de2393198a87883fdb50f6c078fc2f4f8e \ - --hash=sha256:c2365a0c79ab9c0fa86d30a4a6ba7e37fc1be9537c48b79b9d63ee7e08bf2fef \ - --hash=sha256:cf210228c15b5c625824d8e31d43b6fea25f9e13c81dac632f2f7d838e0229a5 \ - --hash=sha256:d1f8700ba89c977438744f083890d87187f15709507a5489e0f6d682053b7fa0 \ - --hash=sha256:e31f52ea7e35463b21410f150006eb07b663a0b3ceea8ee8f35e0b8e02b75f50 \ - --hash=sha256:e4293f1861480b397809a6f021a6c12e15e918feae1c7add80c99d07af206578 \ - --hash=sha256:f13832412d633376ffc08d751cc18ed0d7d00a398a4065e2871db505258748a6 \ - --hash=sha256:f5bf0cebeb4147e172a114437d3fce5a507595d8fdd821be792b1bb25c691514 \ - --hash=sha256:fabe2f37acb63a5521d16193effb15acd082e35458f30f1c1f3e506271fee8a7 - # via uvloop +cython==3.2.4 \ + --hash=sha256:02cb0cc0f23b9874ad262d7d2b9560aed9c7e2df07b49b920bda6f2cc9cb505e \ + --hash=sha256:03893c88299a2c868bb741ba6513357acd104e7c42265809fd58dce1456a36fc \ + --hash=sha256:14dae483ca2838b287085ff98bc206abd7a597b7bb16939a092f8e84d9062842 \ + --hash=sha256:1a64a112a34ec719b47c01395647e54fb4cf088a511613f9a3a5196694e8e382 \ + --hash=sha256:28b1e363b024c4b8dcf52ff68125e635cb9cb4b0ba997d628f25e32543a71103 \ + --hash=sha256:28e8075087a59756f2d059273184b8b639fe0f16cf17470bd91c39921bc154e0 \ + --hash=sha256:2b1f12c0e4798293d2754e73cd6f35fa5bbdf072bdc14bc6fc442c059ef2d290 \ + --hash=sha256:31a90b4a2c47bb6d56baeb926948348ec968e932c1ae2c53239164e3e8880ccf \ + --hash=sha256:35ab0632186057406ec729374c737c37051d2eacad9d515d94e5a3b3e58a9b02 \ + --hash=sha256:36bf3f5eb56d5281aafabecbaa6ed288bc11db87547bba4e1e52943ae6961ccf \ + --hash=sha256:3b6e58f73a69230218d5381817850ce6d0da5bb7e87eb7d528c7027cbba40b06 \ + --hash=sha256:3b8e62049afef9da931d55de82d8f46c9a147313b69d5ff6af6e9121d545ce7a \ + --hash=sha256:55b6c44cd30821f0b25220ceba6fe636ede48981d2a41b9bbfe3c7902ce44ea7 \ + --hash=sha256:55eb425c0baf1c8a46aa4424bc35b709db22f3c8a1de33adb3ecb8a3d54ea42a \ + --hash=sha256:64d7f71be3dd6d6d4a4c575bb3a4674ea06d1e1e5e4cd1b9882a2bc40ed3c4c9 \ + --hash=sha256:67922c9de058a0bfb72d2e75222c52d09395614108c68a76d9800f150296ddb3 \ + --hash=sha256:6d5267f22b6451eb1e2e1b88f6f78a2c9c8733a6ddefd4520d3968d26b824581 \ + --hash=sha256:72e6c0bbd978e2678b45351395f6825b9b8466095402eae293f4f7a73e9a3e85 \ + --hash=sha256:732fc93bc33ae4b14f6afaca663b916c2fdd5dcbfad7114e17fb2434eeaea45c \ + --hash=sha256:767b143704bdd08a563153448955935844e53b852e54afdc552b43902ed1e235 \ + --hash=sha256:83266c356c13c68ffe658b4905279c993d8a5337bb0160fa90c8a3e297ea9a2e \ + --hash=sha256:84226ecd313b233da27dc2eb3601b4f222b8209c3a7216d8733b031da1dc64e6 \ + --hash=sha256:869487ea41d004f8b92171f42271fbfadb1ec03bede3158705d16cd570d6b891 \ + --hash=sha256:90f43be4eaa6afd58ce20d970bb1657a3627c44e1760630b82aa256ba74b4acb \ + --hash=sha256:983f9d2bb8a896e16fa68f2b37866ded35fa980195eefe62f764ddc5f9f5ef8e \ + --hash=sha256:b362819d155fff1482575e804e43e3a8825332d32baa15245f4642022664a3f4 \ + --hash=sha256:b84d4e3c875915545f77c88dba65ad3741afd2431e5cdee6c9a20cefe6905647 \ + --hash=sha256:ca2399dc75796b785f74fb85c938254fa10c80272004d573c455f9123eceed86 \ + --hash=sha256:ca578c9cb872c7ecffbe14815dc4590a003bc13339e90b2633540c7e1a252839 \ + --hash=sha256:d4b4fd5332ab093131fa6172e8362f16adef3eac3179fd24bbdc392531cb82fa \ + --hash=sha256:e3b5ac54e95f034bc7fb07313996d27cbf71abc17b229b186c1540942d2dc28e \ + --hash=sha256:e65e4773021f8dc8532010b4fbebe782c77f9a0817e93886e518c93bd6a44e9d \ + --hash=sha256:e71efb20048358a6b8ec604a0532961c50c067b5e63e345e2e359fff72feaee8 \ + --hash=sha256:f136f379a4a54246facd0eb6f1ee15c3837cb314ce87b677582ec014db4c6845 \ + --hash=sha256:f583cad7a7eed109f0babb5035e92d0c1260598f53add626a8568b57246b62c3 \ + --hash=sha256:f81eda419b5ada7b197bbc3c5f4494090e3884521ffd75a3876c93fbf66c9ca8 \ + --hash=sha256:f8d685a70bce39acc1d62ec3916d9b724b5ef665b0ce25ae55e1c85ee09747fc \ + --hash=sha256:fdfdd753ad7e18e5092b413e9f542e8d28b8a08203126090e1c15f7783b7fe57 \ + --hash=sha256:ff9af2134c05e3734064808db95b4dd7341a39af06e8945d05ea358e1741aaed + # via + # pyarrow + # uvloop dunamai==1.25.0 \ --hash=sha256:7f9dc687dd3256e613b6cc978d9daabfd2bb5deb8adc541fc135ee423ffa98ab \ --hash=sha256:a7f8360ea286d3dbaf0b6a1473f9253280ac93d619836ad4514facb70c0719d1 - # via - # poetry-dynamic-versioning - # uv-dynamic-versioning + # via uv-dynamic-versioning expandvars==1.1.2 \ --hash=sha256:6c5822b7b756a99a356b915dd1267f52ab8a4efaa135963bd7f4bd5d368f71d7 \ --hash=sha256:d1652fe4e61914f5b88ada93aaedb396446f55ae4621de45c8cb9f66e5712526 @@ -258,9 +257,9 @@ gitdb==4.0.12 \ --hash=sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571 \ --hash=sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf # via gitpython -gitpython==3.1.45 \ - --hash=sha256:85b0ee964ceddf211c41b9f27a49086010a190fd8132a24e21f362a4b36a791c \ - --hash=sha256:8908cb2e02fb3b93b7eb0f2827125cb699869470432cc885f019b8fd0fccff77 +gitpython==3.1.46 \ + --hash=sha256:400124c7d0ef4ea03f7310ac2fbf7151e09ff97f2a3288d64a440c584a29c37f \ + --hash=sha256:79812ed143d9d25b6d176a10bb511de0f9c67b1fa641d82097b0ab90398a2058 # via pymilvus hatch-fancy-pypi-readme==25.1.0 \ --hash=sha256:9c58ed3dff90d51f43414ce37009ad1d5b0f08ffc9fc216998a06380f01c0045 \ @@ -305,6 +304,7 @@ hatchling==1.28.0 \ # hatch-vcs # httpcore # httpx + # ibis-framework # jsonschema # jsonschema-specifications # mcp @@ -325,86 +325,84 @@ hatchling==1.28.0 \ jinja2==3.1.6 \ --hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \ --hash=sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67 - # via - # poetry-dynamic-versioning - # uv-dynamic-versioning -librt==0.7.5 \ - --hash=sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee \ - --hash=sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1 \ - --hash=sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4 \ - --hash=sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899 \ - --hash=sha256:0e2bf8f91093fac43e3eaebacf777f12fd539dce9ec5af3efc6d8424e96ccd49 \ - --hash=sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d \ - --hash=sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760 \ - --hash=sha256:191cbd42660446d67cf7a95ac7bfa60f49b8b3b0417c64f216284a1d86fc9335 \ - --hash=sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8 \ - --hash=sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2 \ - --hash=sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec \ - --hash=sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b \ - --hash=sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0 \ - --hash=sha256:39183abee670bc37b85f11e86c44a9cad1ed6efa48b580083e89ecee13dd9717 \ - --hash=sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325 \ - --hash=sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45 \ - --hash=sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d \ - --hash=sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233 \ - --hash=sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d \ - --hash=sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544 \ - --hash=sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802 \ - --hash=sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2 \ - --hash=sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d \ - --hash=sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f \ - --hash=sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169 \ - --hash=sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe \ - --hash=sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982 \ - --hash=sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2 \ - --hash=sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa \ - --hash=sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4 \ - --hash=sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4 \ - --hash=sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57 \ - --hash=sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26 \ - --hash=sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361 \ - --hash=sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad \ - --hash=sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e \ - --hash=sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf \ - --hash=sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f \ - --hash=sha256:8dcae24de1bc9da93aa689cb6313c70e776d7cea2fcf26b9b6160fedfe6bd9af \ - --hash=sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2 \ - --hash=sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89 \ - --hash=sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904 \ - --hash=sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6 \ - --hash=sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276 \ - --hash=sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e \ - --hash=sha256:a9eacbf983319b26b5f340a2e0cd47ac1ee4725a7f3a72fd0f15063c934b69d6 \ - --hash=sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409 \ - --hash=sha256:af69d9e159575e877c7546d1ee817b4ae089aa221dd1117e20c24ad8dc8659c7 \ - --hash=sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a \ - --hash=sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4 \ - --hash=sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775 \ - --hash=sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203 \ - --hash=sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419 \ - --hash=sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5 \ - --hash=sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023 \ - --hash=sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b \ - --hash=sha256:cdb001a1a0e4f41e613bca2c0fc147fc8a7396f53fc94201cbfd8ec7cd69ca4b \ - --hash=sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d \ - --hash=sha256:d2cc7d187e8c6e9b7bdbefa9697ce897a704ea7a7ce844f2b4e0e2aa07ae51d3 \ - --hash=sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e \ - --hash=sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a \ - --hash=sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b \ - --hash=sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db \ - --hash=sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd \ - --hash=sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa \ - --hash=sha256:df2e210400b28e50994477ebf82f055698c79797b6ee47a1669d383ca33263e1 \ - --hash=sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805 \ - --hash=sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a \ - --hash=sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25 \ - --hash=sha256:ea1b60b86595a5dc1f57b44a801a1c4d8209c0a69518391d349973a4491408e6 \ - --hash=sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b \ - --hash=sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5 \ - --hash=sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416 \ - --hash=sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc \ - --hash=sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7 \ - --hash=sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96 + # via uv-dynamic-versioning +librt==0.7.7 \ + --hash=sha256:067be973d90d9e319e6eb4ee2a9b9307f0ecd648b8a9002fa237289a4a07a9e7 \ + --hash=sha256:0996c83b1cb43c00e8c87835a284f9057bc647abd42b5871e5f941d30010c832 \ + --hash=sha256:0ecce0544d3db91a40f8b57ae26928c02130a997b540f908cefd4d279d6c5848 \ + --hash=sha256:10c8fb9966f84737115513fecbaf257f9553d067a7dd45a69c2c7e5339e6a8dc \ + --hash=sha256:142c2cd91794b79fd0ce113bd658993b7ede0fe93057668c2f98a45ca00b7e91 \ + --hash=sha256:14ef0f4ac3728ffd85bfc58e2f2f48fb4ef4fa871876f13a73a7381d10a9f77c \ + --hash=sha256:1908c3e5a5ef86b23391448b47759298f87f997c3bd153a770828f58c2bb4630 \ + --hash=sha256:1bcd79be209313b270b0e1a51c67ae1af28adad0e0c7e84c3ad4b5cb57aaa75b \ + --hash=sha256:23d2299ed007812cccc1ecef018db7d922733382561230de1f3954db28433977 \ + --hash=sha256:23daa1ab0512bafdd677eb1bfc9611d8ffbe2e328895671e64cb34166bc1b8c8 \ + --hash=sha256:2567cb48dc03e5b246927ab35cbb343376e24501260a9b5e30b8e255dca0d1d2 \ + --hash=sha256:264720fc288c86039c091a4ad63419a5d7cabbf1c1c9933336a957ed2483e570 \ + --hash=sha256:2987cf827011907d3dfd109f1be0d61e173d68b1270107bb0e89f2fca7f2ed6b \ + --hash=sha256:2a85a1fc4ed11ea0eb0a632459ce004a2d14afc085a50ae3463cd3dfe1ce43fc \ + --hash=sha256:3d1fe2e8df3268dd6734dba33ededae72ad5c3a859b9577bc00b715759c5aaab \ + --hash=sha256:4353ee891a1834567e0302d4bd5e60f531912179578c36f3d0430f8c5e16b456 \ + --hash=sha256:44d63ce643f34a903f09ff7ca355aae019a3730c7afd6a3c037d569beeb5d151 \ + --hash=sha256:467dbd7443bda08338fc8ad701ed38cef48194017554f4c798b0a237904b3f99 \ + --hash=sha256:4862cb2c702b1f905c0503b72d9d4daf65a7fdf5a9e84560e563471e57a56949 \ + --hash=sha256:4bf3cc46d553693382d2abf5f5bd493d71bb0f50a7c0beab18aa13a5545c8900 \ + --hash=sha256:4dcee2f921a8632636d1c37f1bbdb8841d15666d119aa61e5399c5268e7ce02e \ + --hash=sha256:50d1d1ee813d2d1a3baf2873634ba506b263032418d16287c92ec1cc9c1a00cb \ + --hash=sha256:5335890fea9f9e6c4fdf8683061b9ccdcbe47c6dc03ab8e9b68c10acf78be78d \ + --hash=sha256:558a9e5a6f3cc1e20b3168fb1dc802d0d8fa40731f6e9932dcc52bbcfbd37111 \ + --hash=sha256:5e419e0db70991b6ba037b70c1d5bbe92b20ddf82f31ad01d77a347ed9781398 \ + --hash=sha256:6066c638cdf85ff92fc6f932d2d73c93a0e03492cdfa8778e6d58c489a3d7259 \ + --hash=sha256:6ae8aec43117a645a31e5f60e9e3a0797492e747823b9bda6972d521b436b4e8 \ + --hash=sha256:6b6f8ea465524aa4c7420c7cc4ca7d46fe00981de8debc67b1cc2e9957bb5b9d \ + --hash=sha256:7b16ccaeff0ed4355dfb76fe1ea7a5d6d03b5ad27f295f77ee0557bc20a72495 \ + --hash=sha256:7d13cc340b3b82134f8038a2bfe7137093693dcad8ba5773da18f95ad6b77a8a \ + --hash=sha256:7ef28f2e7a016b29792fe0a2dd04dec75725b32a1264e390c366103f834a9c3a \ + --hash=sha256:8185c8497d45164e256376f9da5aed2bb26ff636c798c9dabe313b90e9f25b28 \ + --hash=sha256:81d957b069fed1890953c3b9c3895c7689960f233eea9a1d9607f71ce7f00b2c \ + --hash=sha256:86f86b3b785487c7760247bcdac0b11aa8bf13245a13ed05206286135877564b \ + --hash=sha256:8e92c8de62b40bfce91d5e12c6e8b15434da268979b1af1a6589463549d491e6 \ + --hash=sha256:8f2f8dcf5ab9f80fb970c6fd780b398efb2f50c1962485eb8d3ab07788595a48 \ + --hash=sha256:8f4a0b0a3c86ba9193a8e23bb18f100d647bf192390ae195d84dfa0a10fb6244 \ + --hash=sha256:8f7a74cf3a80f0c3b0ec75b0c650b2f0a894a2cec57ef75f6f72c1e82cdac61d \ + --hash=sha256:955c62571de0b181d9e9e0a0303c8bc90d47670a5eff54cf71bf5da61d1899cf \ + --hash=sha256:983de36b5a83fe9222f4f7dcd071f9b1ac6f3f17c0af0238dadfb8229588f890 \ + --hash=sha256:9b15e5d17812d4d629ff576699954f74e2cc24a02a4fc401882dd94f81daba45 \ + --hash=sha256:9b4346b1225be26def3ccc6c965751c74868f0578cbcba293c8ae9168483d811 \ + --hash=sha256:9b5fb1ecb2c35362eab2dbd354fd1efa5a8440d3e73a68be11921042a0edc0ff \ + --hash=sha256:a10b8eebdaca6e9fdbaf88b5aefc0e324b763a5f40b1266532590d5afb268a4c \ + --hash=sha256:a1f5cc41a570269d1be7a676655875e3a53de4992a9fa38efb7983e97cf73d7c \ + --hash=sha256:a3bfe73a32bd0bdb9a87d586b05a23c0a1729205d79df66dee65bb2e40d671ba \ + --hash=sha256:a487b71fbf8a9edb72a8c7a456dda0184642d99cd007bc819c0b7ab93676a8ee \ + --hash=sha256:a609849aca463074c17de9cda173c276eb8fee9e441053529e7b9e249dc8b8ee \ + --hash=sha256:a76f1d679beccccdf8c1958e732a1dfcd6e749f8821ee59d7bec009ac308c029 \ + --hash=sha256:a7ea4e1fbd253e5c68ea0fe63d08577f9d288a73f17d82f652ebc61fa48d878d \ + --hash=sha256:ab2a2a9cd7d044e1a11ca64a86ad3361d318176924bbe5152fbc69f99be20b8c \ + --hash=sha256:ad3fc2d859a709baf9dd9607bb72f599b1cfb8a39eafd41307d0c3c4766763cb \ + --hash=sha256:add4e0a000858fe9bb39ed55f31085506a5c38363e6eb4a1e5943a10c2bfc3d1 \ + --hash=sha256:aea05f701ccd2a76b34f0daf47ca5068176ff553510b614770c90d76ac88df06 \ + --hash=sha256:b8bb331aad734b059c4b450cd0a225652f16889e286b2345af5e2c3c625c3d85 \ + --hash=sha256:bdb9f3d865b2dafe7f9ad7f30ef563c80d0ddd2fdc8cc9b8e4f242f475e34d75 \ + --hash=sha256:c084841b879c4d9b9fa34e5d5263994f21aea7fd9c6add29194dbb41a6210536 \ + --hash=sha256:c48c7e150c095d5e3cea7452347ba26094be905d6099d24f9319a8b475fcd3e0 \ + --hash=sha256:c7e5070cf3ec92d98f57574da0224f8c73faf1ddd6d8afa0b8c9f6e86997bc74 \ + --hash=sha256:c87654e29a35938baead1c4559858f346f4a2a7588574a14d784f300ffba0efd \ + --hash=sha256:c8ffe3431d98cc043a14e88b21288b5ec7ee12cb01260e94385887f285ef9389 \ + --hash=sha256:c9faaebb1c6212c20afd8043cd6ed9de0a47d77f91a6b5b48f4e46ed470703fe \ + --hash=sha256:d1454899909d63cc9199a89fcc4f81bdd9004aef577d4ffc022e600c412d57f3 \ + --hash=sha256:d6b7d93657332c817b8d674ef6bf1ab7796b4f7ce05e420fd45bd258a72ac804 \ + --hash=sha256:dbc4900e95a98fc0729523be9d93a8fedebb026f32ed9ffc08acd82e3e181503 \ + --hash=sha256:e40d20ae1722d6b8ea6acf4597e789604649dcd9c295eb7361a28225bc2e9e12 \ + --hash=sha256:e4836c5645f40fbdc275e5670819bde5ab5f2e882290d304e3c6ddab1576a6d0 \ + --hash=sha256:e4ab69fa37f8090f2d971a5d2bc606c7401170dbdae083c393d6cbf439cb45b8 \ + --hash=sha256:ef7699b7a5a244b1119f85c5bbc13f152cd38240cbb2baa19b769433bae98e50 \ + --hash=sha256:f0c8fe5aeadd8a0e5b0598f8a6ee3533135ca50fd3f20f130f9d72baf5c6ac58 \ + --hash=sha256:f2cb63c49bc96847c3bb8dca350970e4dcd19936f391cfdfd057dcb37c4fa97e \ + --hash=sha256:f4d4efb218264ecf0f8516196c9e2d1a0679d9fb3bb15df1155a35220062eba8 \ + --hash=sha256:f683dcd49e2494a7535e30f779aa1ad6e3732a019d80abe1309ea91ccd3230e3 \ + --hash=sha256:f83c971eb9d2358b6a18da51dc0ae00556ac7c73104dde16e9e14c15aaf685ca \ + --hash=sha256:f8df32a99cc46eb0ee90afd9ada113ae2cafe7e8d673686cf03ec53e49635439 \ + --hash=sha256:ff1fb2dfef035549565a4124998fadcb7a3d4957131ddf004a56edeb029626b3 # via mypy markupsafe==3.0.3 \ --hash=sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f \ @@ -497,21 +495,21 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via jinja2 -maturin==1.11.0 \ - --hash=sha256:0fbe565ede0901de7743cd028ad6c13be623b1c7158641f8a50d7a4353f4a97c \ - --hash=sha256:16cb48f1f2b6b3d8c2732f77d98d8f7f0ab84765abf0c1c82df2c8ea7d8ef2ec \ - --hash=sha256:276a900d4096c246cc236aa00460adb3ab195c37172a9f1087bbde6a127f0780 \ - --hash=sha256:51cadd0373950cfae6aac6823a3d2bf56e34e4efed0abae8c7d15e337d9bb5e6 \ - --hash=sha256:83b73299f36301d943550c609e0a0dff08d21e3674c1369c10df77ce470fd97b \ - --hash=sha256:8695b79462e1f46013993d715485db289cf5a7702aa2d9941ac333564ca20d79 \ - --hash=sha256:8bf16fc56f4abcf3af7d5fb6dab3888f73e3648287c8efe77e14fa1b006a3ef4 \ - --hash=sha256:95c5d778c96ab237837cd6d38e01f0bdca52c64e0d00647a69133a8e7ae4eed4 \ - --hash=sha256:9aaaec73e120ac7add99f53d606aa6d432c8e0337af742b2ca26fb8d17181500 \ - --hash=sha256:aa2d9db1c03e9eb0640a578caf00a6fa2d9399abb7375a970b0f6d6e934b5441 \ - --hash=sha256:d13d3721931d407491d9b3fe161146aa78ab08a8fc9735302abee1d368aedb03 \ - --hash=sha256:d53bde4f939dac9340aa253c2765073de6b8595a29a294503042fcbfec8bd842 \ - --hash=sha256:dba7daeb54615532c11f8fe39bc9514b81215f6f4e91909ec227e06227c286cf \ - --hash=sha256:debf472d3ecd76a3a750b056b99dcb64c119467dc44f0e2d6e6363acb128b96a +maturin==1.11.5 \ + --hash=sha256:1c27a2eb47821edf26c75d100b3150b52dca2c1a5f074d7514af06f7a7acb9d5 \ + --hash=sha256:2079447967819b5cf615e5b5b99a406d662effdc8d6afd493dcd253c6afc3707 \ + --hash=sha256:2a4e872fb78e77748217084ffeb59de565d08a86ccefdace054520aaa7b66db4 \ + --hash=sha256:2a596eab137cb3e169b97e89a739515abfa7a8755e2e5f0fc91432ef446f74f4 \ + --hash=sha256:49f85ce6cbe478e9743ecddd6da2964afc0ded57013aa4d054256be702d23d40 \ + --hash=sha256:50f6c668c1d5d4d4dc1c3ffec7b4270dab493e5b2368f8e4213f4bcde6a50eea \ + --hash=sha256:70d3e5beffb9ef9dfae5f3c1a7eeb572091505eb8cb076e9434518df1c42a73b \ + --hash=sha256:7579cf47640fb9595a19fe83a742cbf63203f0343055c349c1cab39045a30c29 \ + --hash=sha256:8127d2cd25950bacbcdc8a2ec6daab1d4d27200f7d73964392680ad64d27f7f0 \ + --hash=sha256:9348f7f0a346108e0c96e6719be91da4470bd43c15802435e9f4157f5cca43d4 \ + --hash=sha256:c739b243d012386902f112ea63a54a94848932b70ae3565fa5e121fd1c0200e0 \ + --hash=sha256:edd1d4d35050ea2b9ef42aa01e87fe019a1e822940346b35ccb973e0aa8f6d82 \ + --hash=sha256:f1320dacddcd3aa84a4bdfc77ee6fdb60e4c3835c853d7eb79c09473628b0498 \ + --hash=sha256:ffe7418834ff3b4a6c987187b7abb85ba033f4733e089d77d84e2de87057b4e7 # via # cryptography # pydantic-core @@ -535,95 +533,95 @@ mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 # via mypy -numpy==2.4.0 \ - --hash=sha256:009bd0ea12d3c784b6639a8457537016ce5172109e585338e11334f6a7bb88ee \ - --hash=sha256:02a2038eb27f9443a8b266a66911e926566b5a6ffd1a689b588f7f35b81e7dc3 \ - --hash=sha256:0804a8e4ab070d1d35496e65ffd3cf8114c136a2b81f61dfab0de4b218aacfd5 \ - --hash=sha256:0feafc9e03128074689183031181fac0897ff169692d8492066e949041096548 \ - --hash=sha256:1889b3a3f47a7b5bee16bc25a2145bd7cb91897f815ce3499db64c7458b6d91d \ - --hash=sha256:1d8f9fde5f6dc1b6fc34df8162f3b3079365468703fee7f31d4e0cc8c63baed9 \ - --hash=sha256:1ee32359fb7543b7b7bd0b2f46294db27e29e7bbdf70541e81b190836cd83ded \ - --hash=sha256:20c115517513831860c573996e395707aa9fb691eb179200125c250e895fcd93 \ - --hash=sha256:21555da4ec4a0c942520ead42c3b0dc9477441e085c42b0fbdd6a084869a6f6b \ - --hash=sha256:23a3e9d1a6f360267e8fbb38ba5db355a6a7e9be71d7fce7ab3125e88bb646c8 \ - --hash=sha256:2a8b6bb8369abefb8bd1801b054ad50e02b3275c8614dc6e5b0373c305291037 \ - --hash=sha256:2e284ca13d5a8367e43734148622caf0b261b275673823593e3e3634a6490f83 \ - --hash=sha256:2f585f52b2baf07ff3356158d9268ea095e221371f1074fadea2f42544d58b4d \ - --hash=sha256:316b2f2584682318539f0bcaca5a496ce9ca78c88066579ebd11fd06f8e4741e \ - --hash=sha256:32ed06d0fe9cae27d8fb5f400c63ccee72370599c75e683a6358dd3a4fb50aaf \ - --hash=sha256:355354388cba60f2132df297e2d53053d4063f79077b67b481d21276d61fc4df \ - --hash=sha256:35ddc8f4914466e6fc954c76527aa91aa763682a4f6d73249ef20b418fe6effb \ - --hash=sha256:36667db4d6c1cea79c8930ab72fadfb4060feb4bfe724141cd4bd064d2e5f8ce \ - --hash=sha256:36cbfb13c152b1c7c184ddac43765db8ad672567e7bafff2cc755a09917ed2e6 \ - --hash=sha256:39699233bc72dd482da1415dcb06076e32f60eddc796a796c5fb6c5efce94667 \ - --hash=sha256:39b19251dec4de8ff8496cd0806cbe27bf0684f765abb1f4809554de93785f2d \ - --hash=sha256:3d857f55e7fdf7c38ab96c4558c95b97d1c685be6b05c249f5fdafcbd6f9899e \ - --hash=sha256:3de19cfecd1465d0dcf8a5b5ea8b3155b42ed0b639dba4b71e323d74f2a3be5e \ - --hash=sha256:3f3096405acc48887458bbf9f6814d43785ac7ba2a57ea6442b581dedbc60ce6 \ - --hash=sha256:40483b2f2d3ba7aad426443767ff5632ec3156ef09742b96913787d13c336471 \ - --hash=sha256:413aa561266a4be2d06cd2b9665e89d9f54c543f418773076a76adcf2af08bc7 \ - --hash=sha256:44aba2f0cafd287871a495fb3163408b0bd25bbce135c6f621534a07f4f7875c \ - --hash=sha256:49ff32b09f5aa0cd30a20c2b39db3e669c845589f2b7fc910365210887e39344 \ - --hash=sha256:4d1cfce39e511069b11e67cd0bd78ceff31443b7c9e5c04db73c7a19f572967c \ - --hash=sha256:57c540ed8fb1f05cb997c6761cd56db72395b0d6985e90571ff660452ade4f98 \ - --hash=sha256:5f48cb3e88fbc294dc90e215d86fbaf1c852c63dbdb6c3a3e63f45c4b57f7344 \ - --hash=sha256:5fe44e277225fd3dff6882d86d3d447205d43532c3627313d17e754fb3905a0e \ - --hash=sha256:60e8c196cd82cbbd4f130b5290007e13e6de3eca79f0d4d38014769d96a7c475 \ - --hash=sha256:65167da969cd1ec3a1df31cb221ca3a19a8aaa25370ecb17d428415e93c1935e \ - --hash=sha256:680060061adb2d74ce352628cb798cfdec399068aa7f07ba9fb818b2b3305f98 \ - --hash=sha256:6bbaebf0d11567fa8926215ae731e1d58e6ec28a8a25235b8a47405d301332db \ - --hash=sha256:6c05483c3136ac4c91b4e81903cb53a8707d316f488124d0398499a4f8e8ef51 \ - --hash=sha256:6dc8b7e2f4eb184b37655195f421836cfae6f58197b67e3ffc501f1333d993fa \ - --hash=sha256:6e504f7b16118198f138ef31ba24d985b124c2c469fe8467007cf30fd992f934 \ - --hash=sha256:74623f2ab5cc3f7c886add4f735d1031a1d2be4a4ae63c0546cfd74e7a31ddf6 \ - --hash=sha256:77f0d13fa87036d7553bf81f0e1fe3ce68d14c9976c9851744e4d3e91127e95f \ - --hash=sha256:85eef4cb5625c47ee6425c58a3502555e10f45ee973da878ac8248ad58c136f3 \ - --hash=sha256:882567b7ae57c1b1a0250208cc21a7976d8cbcc49d5a322e607e6f09c9e0bd53 \ - --hash=sha256:8b986403023c8f3bf8f487c2e6186afda156174d31c175f747d8934dfddf3479 \ - --hash=sha256:8cfa5f29a695cb7438965e6c3e8d06e0416060cf0d709c1b1c1653a939bf5c2a \ - --hash=sha256:8eafe7c36c8430b7794edeab3087dec7bf31d634d92f2af9949434b9d1964cba \ - --hash=sha256:9198f447e1dc5647d07c9a6bbe2063cc0132728cc7175b39dbc796da5b54920d \ - --hash=sha256:92190db305a6f48734d3982f2c60fa30d6b5ee9bff10f2887b930d7b40119f4c \ - --hash=sha256:927ccf5cd17c48f801f4ed43a7e5673a2724bd2171460be3e3894e6e332ef83a \ - --hash=sha256:98e81648e0b36e325ab67e46b5400a7a6d4a22b8a7c8e8bbfe20e7db7906bf95 \ - --hash=sha256:9a818668b674047fd88c4cddada7ab8f1c298812783e8328e956b78dc4807f9f \ - --hash=sha256:a152d86a3ae00ba5f47b3acf3b827509fd0b6cb7d3259665e63dafbad22a75ea \ - --hash=sha256:a2718c1de8504121714234b6f8241d0019450353276c88b9453c9c3d92e101db \ - --hash=sha256:a39fb973a726e63223287adc6dafe444ce75af952d711e400f3bf2b36ef55a7b \ - --hash=sha256:a899699294f28f7be8992853c0c60741f16ff199205e2e6cdca155762cbaa59d \ - --hash=sha256:a8fdfed3deaf1928fb7667d96e0567cdf58c2b370ea2ee7e586aa383ec2cb346 \ - --hash=sha256:aabb081ca0ec5d39591fc33018cd4b3f96e1a2dd6756282029986d00a785fba4 \ - --hash=sha256:b1f5b45829ac1848893f0ddf5cb326110604d6df96cdc255b0bf9edd154104d4 \ - --hash=sha256:b48e35f4ab6f6a7597c46e301126ceba4c44cd3280e3750f85db48b082624fa4 \ - --hash=sha256:b54c83f1c0c0f1d748dca0af516062b8829d53d1f0c402be24b4257a9c48ada6 \ - --hash=sha256:ba0cb30acd3ef11c94dc27fbfba68940652492bc107075e7ffe23057f9425681 \ - --hash=sha256:bb50ce5fb202a26fd5404620e7ef820ad1ab3558b444cb0b55beb7ef66cd2d63 \ - --hash=sha256:c95eb6db2884917d86cde0b4d4cf31adf485c8ec36bf8696dd66fa70de96f36b \ - --hash=sha256:d0ffd9e2e4441c96a9c91ec1783285d80bf835b677853fc2770a89d50c1e48ac \ - --hash=sha256:d57b5046c120561ba8fa8e4030fbb8b822f3063910fa901ffadf16e2b7128ad6 \ - --hash=sha256:d9e6a7664ddd9746e20b7325351fe1a8408d0a2bf9c63b5e898290ddc8f09544 \ - --hash=sha256:dc578891de1db95b2a35001b695451767b580bb45753717498213c5ff3c41d63 \ - --hash=sha256:e0434aa22c821f44eeb4c650b81c7fbdd8c0122c6c4b5a576a76d5a35625ecd9 \ - --hash=sha256:e06a922a469cae9a57100864caf4f8a97a1026513793969f8ba5b63137a35d25 \ - --hash=sha256:e493962256a38f58283de033d8af176c5c91c084ea30f15834f7545451c42059 \ - --hash=sha256:ecb0019d44f4cdb50b676c5d0cb4b1eae8e15d1ed3d3e6639f986fc92b2ec52c \ - --hash=sha256:f935c4493eda9069851058fa0d9e39dbf6286be690066509305e52912714dbb2 +numpy==2.4.1 \ + --hash=sha256:0093e85df2960d7e4049664b26afc58b03236e967fb942354deef3208857a04c \ + --hash=sha256:09aa8a87e45b55a1c2c205d42e2808849ece5c484b2aab11fecabec3841cafba \ + --hash=sha256:0cce2a669e3c8ba02ee563c7835f92c153cf02edff1ae05e1823f1dde21b16a5 \ + --hash=sha256:0e6e8f9d9ecf95399982019c01223dc130542960a12edfa8edd1122dfa66a8a8 \ + --hash=sha256:0f118ce6b972080ba0758c6087c3617b5ba243d806268623dc34216d69099ba0 \ + --hash=sha256:178de8f87948163d98a4c9ab5bee4ce6519ca918926ec8df195af582de28544d \ + --hash=sha256:18e14c4d09d55eef39a6ab5b08406e84bc6869c1e34eef45564804f90b7e0574 \ + --hash=sha256:2023ef86243690c2791fd6353e5b4848eedaa88ca8a2d129f462049f6d484696 \ + --hash=sha256:20d4649c773f66cc2fc36f663e091f57c3b7655f936a4c681b4250855d1da8f5 \ + --hash=sha256:2302dc0224c1cbc49bb94f7064f3f923a971bfae45c33870dcbff63a2a550505 \ + --hash=sha256:26f0bcd9c79a00e339565b303badc74d3ea2bd6d52191eeca5f95936cad107d0 \ + --hash=sha256:297c72b1b98100c2e8f873d5d35fb551fce7040ade83d67dd51d38c8d42a2162 \ + --hash=sha256:2f44de05659b67d20499cbc96d49f2650769afcb398b79b324bb6e297bfe3844 \ + --hash=sha256:2ffd257026eb1b34352e749d7cc1678b5eeec3e329ad8c9965a797e08ccba205 \ + --hash=sha256:382ad67d99ef49024f11d1ce5dcb5ad8432446e4246a4b014418ba3a1175a1f4 \ + --hash=sha256:3869ea1ee1a1edc16c29bbe3a2f2a4e515cc3a44d43903ad41e0cacdbaf733dc \ + --hash=sha256:3d1a100e48cb266090a031397863ff8a30050ceefd798f686ff92c67a486753d \ + --hash=sha256:423797bdab2eeefbe608d7c1ec7b2b4fd3c58d51460f1ee26c7500a1d9c9ee93 \ + --hash=sha256:42d7dd5fa36d16d52a84f821eb96031836fd405ee6955dd732f2023724d0aa01 \ + --hash=sha256:49e792ec351315e16da54b543db06ca8a86985ab682602d90c60ef4ff4db2a9c \ + --hash=sha256:4e53170557d37ae404bf8d542ca5b7c629d6efa1117dac6a83e394142ea0a43f \ + --hash=sha256:4f1b68ff47680c2925f8063402a693ede215f0257f02596b1318ecdfb1d79e33 \ + --hash=sha256:4f9c360ecef085e5841c539a9a12b883dff005fbd7ce46722f5e9cef52634d82 \ + --hash=sha256:529050522e983e00a6c1c6b67411083630de8b57f65e853d7b03d9281b8694d2 \ + --hash=sha256:52b5f61bdb323b566b528899cc7db2ba5d1015bda7ea811a8bcf3c89c331fa42 \ + --hash=sha256:538bf4ec353709c765ff75ae616c34d3c3dca1a68312727e8f2676ea644f8509 \ + --hash=sha256:5adf01965456a664fc727ed69cc71848f28d063217c63e1a0e200a118d5eec9a \ + --hash=sha256:5b55aa56165b17aaf15520beb9cbd33c9039810e0d9643dd4379e44294c7303e \ + --hash=sha256:5d558123217a83b2d1ba316b986e9248a1ed1971ad495963d555ccd75dcb1556 \ + --hash=sha256:5de60946f14ebe15e713a6f22850c2372fa72f4ff9a432ab44aa90edcadaa65a \ + --hash=sha256:62fea415f83ad8fdb6c20840578e5fbaf5ddd65e0ec6c3c47eda0f69da172510 \ + --hash=sha256:6436cffb4f2bf26c974344439439c95e152c9a527013f26b3577be6c2ca64295 \ + --hash=sha256:6461de5113088b399d655d45c3897fa188766415d0f568f175ab071c8873bd73 \ + --hash=sha256:69e7419c9012c4aaf695109564e3387f1259f001b4326dfa55907b098af082d3 \ + --hash=sha256:71abbea030f2cfc3092a0ff9f8c8fdefdc5e0bf7d9d9c99663538bb0ecdac0b9 \ + --hash=sha256:7211b95ca365519d3596a1d8688a95874cc94219d417504d9ecb2df99fa7bfa8 \ + --hash=sha256:727c6c3275ddefa0dc078524a85e064c057b4f4e71ca5ca29a19163c607be745 \ + --hash=sha256:79e9e06c4c2379db47f3f6fc7a8652e7498251789bf8ff5bd43bf478ef314ca2 \ + --hash=sha256:7ad270f438cbdd402c364980317fb6b117d9ec5e226fff5b4148dd9aa9fc6e02 \ + --hash=sha256:7d5d7999df434a038d75a748275cd6c0094b0ecdb0837342b332a82defc4dc4d \ + --hash=sha256:8097529164c0f3e32bb89412a0905d9100bf434d9692d9fc275e18dcf53c9344 \ + --hash=sha256:82c55962006156aeef1629b953fd359064aa47e4d82cfc8e67f0918f7da3344f \ + --hash=sha256:8361ea4220d763e54cff2fbe7d8c93526b744f7cd9ddab47afeff7e14e8503be \ + --hash=sha256:899d2c18024984814ac7e83f8f49d8e8180e2fbe1b2e252f2e7f1d06bea92425 \ + --hash=sha256:8ad35f20be147a204e28b6a0575fbf3540c5e5f802634d4258d55b1ff5facce1 \ + --hash=sha256:8f085da926c0d491ffff3096f91078cc97ea67e7e6b65e490bc8dcda65663be2 \ + --hash=sha256:9171a42fcad32dcf3fa86f0a4faa5e9f8facefdb276f54b8b390d90447cff4e2 \ + --hash=sha256:92a0e65272fd60bfa0d9278e0484c2f52fe03b97aedc02b357f33fe752c52ffb \ + --hash=sha256:941c2a93313d030f219f3a71fd3d91a728b82979a5e8034eb2e60d394a2b83f9 \ + --hash=sha256:98b35775e03ab7f868908b524fc0a84d38932d8daf7b7e1c3c3a1b6c7a2c9f15 \ + --hash=sha256:a1ceafc5042451a858231588a104093474c6a5c57dcc724841f5c888d237d690 \ + --hash=sha256:a73044b752f5d34d4232f25f18160a1cc418ea4507f5f11e299d8ac36875f8a0 \ + --hash=sha256:a7870e8c5fc11aef57d6fea4b4085e537a3a60ad2cdd14322ed531fdca68d261 \ + --hash=sha256:a92f227dbcdc9e4c3e193add1a189a9909947d4f8504c576f4a732fd0b54240a \ + --hash=sha256:ac08c63cb7779b85e9d5318e6c3518b424bc1f364ac4cb2c6136f12e5ff2dccc \ + --hash=sha256:b6bcf39112e956594b3331316d90c90c90fb961e39696bda97b89462f5f3943f \ + --hash=sha256:c0faba4a331195bfa96f93dd9dfaa10b2c7aa8cda3a02b7fd635e588fe821bf5 \ + --hash=sha256:ce9ce141a505053b3c7bce3216071f3bf5c182b8b28930f14cd24d43932cd2df \ + --hash=sha256:cf6470d91d34bf669f61d515499859fa7a4c2f7c36434afb70e82df7217933f9 \ + --hash=sha256:d3703409aac693fa82c0aee023a1ae06a6e9d065dba10f5e8e80f642f1e9d0a2 \ + --hash=sha256:d3e3087f53e2b4428766b54932644d148613c5a595150533ae7f00dab2f319a8 \ + --hash=sha256:d3f8f0df9f4b8be57b3bf74a1d087fec68f927a2fab68231fdb442bf2c12e426 \ + --hash=sha256:d797454e37570cfd61143b73b8debd623c3c0952959adb817dd310a483d58a1b \ + --hash=sha256:e1a27bb1b2dee45a2a53f5ca6ff2d1a7f135287883a1689e930d44d1ff296c87 \ + --hash=sha256:e3bd2cb07841166420d2fa7146c96ce00cb3410664cbc1a6be028e456c4ee220 \ + --hash=sha256:e7b6b5e28bbd47b7532698e5db2fe1db693d84b58c254e4389d99a27bb9b8f6b \ + --hash=sha256:e867df947d427cdd7a60e3e271729090b0f0df80f5f10ab7dd436f40811699c3 \ + --hash=sha256:ea66d2b41ca4a1630aae5507ee0a71647d3124d1741980138aa8f28f44dac36e \ + --hash=sha256:edee228f76ee2dab4579fad6f51f6a305de09d444280109e0f75df247ff21501 \ + --hash=sha256:f0a90aba7d521e6954670550e561a4cb925713bd944445dbe9e729b71f6cabee \ + --hash=sha256:f93bc6892fe7b0663e5ffa83b61aab510aacffd58c16e012bb9352d489d90cb7 \ + --hash=sha256:fb1461c99de4d040666ca0444057b06541e5642f800b71c56e6ea92d6a853a0c # via # pandas # pyarrow -packaging==24.2 \ - --hash=sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759 \ - --hash=sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f +packaging==25.0 \ + --hash=sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484 \ + --hash=sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f # via - # dunamai # hatchling # meson-python # pyproject-metadata # scikit-build-core + # setuptools-git-versioning # setuptools-scm -pathspec==0.12.1 \ - --hash=sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 \ - --hash=sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712 +pathspec==1.0.3 \ + --hash=sha256:bac5cf97ae2c2876e2d25ebb15078eb04d76e4b98921ee31c6f85ade8b59444d \ + --hash=sha256:e80767021c1cc524aa3fb14bedda9c34406591343cc42797b386ce7b9354fb6c # via # hatchling # mypy @@ -648,8 +646,6 @@ poetry-core==1.9.1 \ --hash=sha256:7a2d49214bf58b4f17f99d6891d947a9836c9899a67a5069f52d7b67217f61b8 # via # dunamai - # ibis-framework - # ibis-substrait # pkgconfig # poetry-dynamic-versioning # rich @@ -659,10 +655,10 @@ poetry-core==2.2.1 \ --hash=sha256:97e50d8593c8729d3f49364b428583e044087ee3def1e010c6496db76bd65ac5 \ --hash=sha256:bdfce710edc10bfcf9ab35041605c480829be4ab23f5bc01202cfe5db8f125ab # via aiohappyeyeballs -poetry-dynamic-versioning==1.9.1 \ - --hash=sha256:65a0c814e6d30d4807734a3c34edf261fd7cc3b340dbd23b6a33ee41f7d0b547 \ - --hash=sha256:d6e7b9df817aa2ca4946cd695c6c89e1379d2e6c640f008a9b6170d081a9da48 - # via ibis-framework +pybind11-global==3.0.1 \ + --hash=sha256:0e8d5a68d084c50bf145ce5efdbdd00704dbe6315035d0b7a255708ddeb9faca \ + --hash=sha256:eb6ef4e8f5a60f4c0b6a9396cb7806f78d42f8d081e42a93c0bb62288f6cf403 + # via pybind11 pybind11==3.0.1 \ --hash=sha256:9c0f40056a016da59bab516efb523089139fcc6f2ba7e4930854c61efb932051 \ --hash=sha256:aa8f0aa6e0a94d3b64adfc38f560f33f15e589be2175e103c0a33c6bce55ee89 @@ -679,12 +675,18 @@ scikit-build-core==0.11.6 \ --hash=sha256:5982ccd839735be99cfd3b92a8847c6c196692f476c215da84b79d2ad12f9f1b \ --hash=sha256:ce6d8fe64e6b4c759ea0fb95d2f8a68f60d2df31c2989838633b8ec930736360 # via + # duckdb # patchelf # pybind11 + # pybind11-global semantic-version==2.10.0 \ --hash=sha256:bdabb6d336998cbb378d4b9db3a4b56a1e3235701dc05ea2690d9a997ed5041c \ --hash=sha256:de78a3b8e0feda74cabc54aab2da702113e33ac9d9eb9d2389bcf1f58b7d9177 # via setuptools-rust +setuptools-git-versioning==2.1.0 \ + --hash=sha256:09a15cbb9a00884e91a3591a4c9ec1ff93c24b1b4a40de39a44815196beb7ebf \ + --hash=sha256:6aef5b8bb1cfb953b6b343d27cbfc561d96cf2a2ee23c2e0dd3591042a059921 + # via toolz setuptools-rust==1.12.0 \ --hash=sha256:7e7db90547f224a835b45f5ad90c983340828a345554a9a660bdb2de8605dcdd \ --hash=sha256:d94a93f0c97751c17014565f07bdc324bee45d396cd1bba83d8e7af92b945f0c @@ -709,7 +711,6 @@ setuptools-scm==9.2.2 \ # pymilvus # setuptools-rust # sqlglot - # substrait # tabulate # tenacity # tqdm @@ -721,59 +722,62 @@ smmap==5.0.2 \ --hash=sha256:26ea65a03958fa0c8a1c7e8c7a58fdc77221b8910f6be2131affade476898ad5 \ --hash=sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e # via gitdb -tomli==2.3.0 \ - --hash=sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456 \ - --hash=sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845 \ - --hash=sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999 \ - --hash=sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0 \ - --hash=sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878 \ - --hash=sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf \ - --hash=sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3 \ - --hash=sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be \ - --hash=sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52 \ - --hash=sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b \ - --hash=sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67 \ - --hash=sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549 \ - --hash=sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba \ - --hash=sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22 \ - --hash=sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c \ - --hash=sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f \ - --hash=sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6 \ - --hash=sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba \ - --hash=sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45 \ - --hash=sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f \ - --hash=sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77 \ - --hash=sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606 \ - --hash=sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441 \ - --hash=sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0 \ - --hash=sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f \ - --hash=sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530 \ - --hash=sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05 \ - --hash=sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8 \ - --hash=sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005 \ - --hash=sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879 \ - --hash=sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae \ - --hash=sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc \ - --hash=sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b \ - --hash=sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b \ - --hash=sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e \ - --hash=sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf \ - --hash=sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac \ - --hash=sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8 \ - --hash=sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b \ - --hash=sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf \ - --hash=sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463 \ - --hash=sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876 +tomli==2.4.0 \ + --hash=sha256:0408e3de5ec77cc7f81960c362543cbbd91ef883e3138e81b729fc3eea5b9729 \ + --hash=sha256:0dc56fef0e2c1c470aeac5b6ca8cc7b640bb93e92d9803ddaf9ea03e198f5b0b \ + --hash=sha256:0e0fe8a0b8312acf3a88077a0802565cb09ee34107813bba1c7cd591fa6cfc8d \ + --hash=sha256:0f2e3955efea4d1cfbcb87bc321e00dc08d2bcb737fd1d5e398af111d86db5df \ + --hash=sha256:133e93646ec4300d651839d382d63edff11d8978be23da4cc106f5a18b7d0576 \ + --hash=sha256:1b168f2731796b045128c45982d3a4874057626da0e2ef1fdd722848b741361d \ + --hash=sha256:1c8a885b370751837c029ef9bc014f27d80840e48bac415f3412e6593bbc18c1 \ + --hash=sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a \ + --hash=sha256:1fb2945cbe303b1419e2706e711b7113da57b7db31ee378d08712d678a34e51e \ + --hash=sha256:20cedb4ee43278bc4f2fee6cb50daec836959aadaf948db5172e776dd3d993fc \ + --hash=sha256:20ffd184fb1df76a66e34bd1b36b4a4641bd2b82954befa32fe8163e79f1a702 \ + --hash=sha256:26ab906a1eb794cd4e103691daa23d95c6919cc2fa9160000ac02370cc9dd3f6 \ + --hash=sha256:2add28aacc7425117ff6364fe9e06a183bb0251b03f986df0e78e974047571fd \ + --hash=sha256:2b1e3b80e1d5e52e40e9b924ec43d81570f0e7d09d11081b797bc4692765a3d4 \ + --hash=sha256:31d556d079d72db7c584c0627ff3a24c5d3fb4f730221d3444f3efb1b2514776 \ + --hash=sha256:36b9d05b51e65b254ea6c2585b59d2c4cb91c8a3d91d0ed0f17591a29aaea54a \ + --hash=sha256:39b0b5d1b6dd03684b3fb276407ebed7090bbec989fa55838c98560c01113b66 \ + --hash=sha256:3cf226acb51d8f1c394c1b310e0e0e61fecdd7adcb78d01e294ac297dd2e7f87 \ + --hash=sha256:3d895d56bd3f82ddd6faaff993c275efc2ff38e52322ea264122d72729dca2b2 \ + --hash=sha256:413540dce94673591859c4c6f794dfeaa845e98bf35d72ed59636f869ef9f86f \ + --hash=sha256:43e685b9b2341681907759cf3a04e14d7104b3580f808cfde1dfdb60ada85475 \ + --hash=sha256:4cbcb367d44a1f0c2be408758b43e1ffb5308abe0ea222897d6bfc8e8281ef2f \ + --hash=sha256:551e321c6ba03b55676970b47cb1b73f14a0a4dce6a3e1a9458fd6d921d72e95 \ + --hash=sha256:5572e41282d5268eb09a697c89a7bee84fae66511f87533a6f88bd2f7b652da9 \ + --hash=sha256:5aa48d7c2356055feef06a43611fc401a07337d5b006be13a30f6c58f869e3c3 \ + --hash=sha256:5b5807f3999fb66776dbce568cc9a828544244a8eb84b84b9bafc080c99597b9 \ + --hash=sha256:5e3f639a7a8f10069d0e15408c0b96a2a828cfdec6fca05296ebcdcc28ca7c76 \ + --hash=sha256:685306e2cc7da35be4ee914fd34ab801a6acacb061b6a7abca922aaf9ad368da \ + --hash=sha256:75c2f8bbddf170e8effc98f5e9084a8751f8174ea6ccf4fca5398436e0320bc8 \ + --hash=sha256:7b438885858efd5be02a9a133caf5812b8776ee0c969fea02c45e8e3f296ba51 \ + --hash=sha256:7d49c66a7d5e56ac959cb6fc583aff0651094ec071ba9ad43df785abc2320d86 \ + --hash=sha256:7d6d9a4aee98fac3eab4952ad1d73aee87359452d1c086b5ceb43ed02ddb16b8 \ + --hash=sha256:84d081fbc252d1b6a982e1870660e7330fb8f90f676f6e78b052ad4e64714bf0 \ + --hash=sha256:8768715ffc41f0008abe25d808c20c3d990f42b6e2e58305d5da280ae7d1fa3b \ + --hash=sha256:920b1de295e72887bafa3ad9f7a792f811847d57ea6b1215154030cf131f16b1 \ + --hash=sha256:9a08144fa4cba33db5255f9b74f0b89888622109bd2776148f2597447f92a94e \ + --hash=sha256:a26d7ff68dfdb9f87a016ecfd1e1c2bacbe3108f4e0f8bcd2228ef9a766c787d \ + --hash=sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c \ + --hash=sha256:b5ef256a3fd497d4973c11bf142e9ed78b150d36f5773f1ca6088c230ffc5867 \ + --hash=sha256:b6c78bdf37764092d369722d9946cb65b8767bfa4110f902a1b2542d8d173c8a \ + --hash=sha256:bbb1b10aa643d973366dc2cb1ad94f99c1726a02343d43cbc011edbfac579e7c \ + --hash=sha256:c084ad935abe686bd9c898e62a02a19abfc9760b5a79bc29644463eaf2840cb0 \ + --hash=sha256:c73add4bb52a206fd0c0723432db123c0c75c280cbd67174dd9d2db228ebb1b4 \ + --hash=sha256:cae9c19ed12d4e8f3ebf46d1a75090e4c0dc16271c5bce1c833ac168f08fb614 \ + --hash=sha256:d20b797a5c1ad80c516e41bc1fb0443ddb5006e9aaa7bda2d71978346aeb9132 \ + --hash=sha256:d3d1654e11d724760cdb37a3d7691f0be9db5fbdaef59c9f532aabf87006dbaa \ + --hash=sha256:d878f2a6707cc9d53a1be1414bbb419e629c3d6e67f69230217bb663e76b5087 # via fastapi-mcp -tomlkit==0.13.3 \ - --hash=sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1 \ - --hash=sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0 - # via - # poetry-dynamic-versioning - # uv-dynamic-versioning -trove-classifiers==2025.12.1.14 \ - --hash=sha256:a74f0400524fc83620a9be74a07074b5cbe7594fd4d97fd4c2bfde625fdc1633 \ - --hash=sha256:a8206978ede95937b9959c3aff3eb258bbf7b07dff391ddd4ea7e61f316635ab +tomlkit==0.14.0 \ + --hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 \ + --hash=sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064 + # via uv-dynamic-versioning +trove-classifiers==2026.1.12.15 \ + --hash=sha256:832a7e89ccc43b64b89f8f9d9150c069ebcd17d2dc68279bc00bb53f2a9ae112 \ + --hash=sha256:8832dfbc226fc4df986666b9cb3a018818b1498aeb79f5f66a31a918b47a98f1 # via hatchling types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ @@ -804,7 +808,6 @@ wheel==0.45.1 \ --hash=sha256:708e7481cc80179af0e556bbf0cc00b8444c7321e2700b8d8580231d13017248 # via # async-timeout - # cachetools # google-crc32c # httpx-sse # meson @@ -832,7 +835,6 @@ setuptools==80.9.0 \ # aiosignal # anyio # async-timeout - # cachetools # calver # certifi # cffi @@ -840,7 +842,6 @@ setuptools==80.9.0 \ # cryptography # dask # dill - # duckdb # frozenlist # gitpython # google-api-core @@ -852,7 +853,6 @@ setuptools==80.9.0 \ # gunicorn # httptools # httpx-sse - # ibis-substrait # importlib-metadata # librt # markupsafe @@ -886,10 +886,11 @@ setuptools==80.9.0 \ # shellingham # snowflake-connector-python # sqlalchemy + # sqlglot # sse-starlette - # substrait # tabulate # tenacity + # toolz # tqdm # trove-classifiers # typeguard diff --git a/sdk/python/requirements/py3.11-minimal-sdist-requirements.txt b/sdk/python/requirements/py3.11-minimal-sdist-requirements.txt index 56fa579fe39..e5f1b4aee98 100644 --- a/sdk/python/requirements/py3.11-minimal-sdist-requirements.txt +++ b/sdk/python/requirements/py3.11-minimal-sdist-requirements.txt @@ -8,127 +8,127 @@ aiohappyeyeballs==2.6.1 \ --hash=sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558 \ --hash=sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8 # via aiohttp -aiohttp==3.13.2 \ - --hash=sha256:04c3971421576ed24c191f610052bcb2f059e395bc2489dd99e397f9bc466329 \ - --hash=sha256:05c4dd3c48fb5f15db31f57eb35374cb0c09afdde532e7fb70a75aede0ed30f6 \ - --hash=sha256:070599407f4954021509193404c4ac53153525a19531051661440644728ba9a7 \ - --hash=sha256:0740f31a60848d6edb296a0df827473eede90c689b8f9f2a4cdde74889eb2254 \ - --hash=sha256:088912a78b4d4f547a1f19c099d5a506df17eacec3c6f4375e2831ec1d995742 \ - --hash=sha256:0a3d54e822688b56e9f6b5816fb3de3a3a64660efac64e4c2dc435230ad23bad \ - --hash=sha256:0db1e24b852f5f664cd728db140cf11ea0e82450471232a394b3d1a540b0f906 \ - --hash=sha256:0e87dff73f46e969af38ab3f7cb75316a7c944e2e574ff7c933bc01b10def7f5 \ - --hash=sha256:1237c1375eaef0db4dcd7c2559f42e8af7b87ea7d295b118c60c36a6e61cb811 \ - --hash=sha256:16f15a4eac3bc2d76c45f7ebdd48a65d41b242eb6c31c2245463b40b34584ded \ - --hash=sha256:1f9b2c2d4b9d958b1f9ae0c984ec1dd6b6689e15c75045be8ccb4011426268ca \ - --hash=sha256:204ffff2426c25dfda401ba08da85f9c59525cdc42bda26660463dd1cbcfec6f \ - --hash=sha256:20b10bbfbff766294fe99987f7bb3b74fdd2f1a2905f2562132641ad434dcf98 \ - --hash=sha256:20db2d67985d71ca033443a1ba2001c4b5693fe09b0e29f6d9358a99d4d62a8a \ - --hash=sha256:228a1cd556b3caca590e9511a89444925da87d35219a49ab5da0c36d2d943a6a \ - --hash=sha256:2372b15a5f62ed37789a6b383ff7344fc5b9f243999b0cd9b629d8bc5f5b4155 \ - --hash=sha256:23ad365e30108c422d0b4428cf271156dd56790f6dd50d770b8e360e6c5ab2e6 \ - --hash=sha256:23fb0783bc1a33640036465019d3bba069942616a6a2353c6907d7fe1ccdaf4e \ - --hash=sha256:2475391c29230e063ef53a66669b7b691c9bfc3f1426a0f7bcdf1216bdbac38b \ - --hash=sha256:27e569eb9d9e95dbd55c0fc3ec3a9335defbf1d8bc1d20171a49f3c4c607b93e \ - --hash=sha256:29562998ec66f988d49fb83c9b01694fa927186b781463f376c5845c121e4e0b \ - --hash=sha256:2adebd4577724dcae085665f294cc57c8701ddd4d26140504db622b8d566d7aa \ - --hash=sha256:2ca6ffef405fc9c09a746cb5d019c1672cd7f402542e379afc66b370833170cf \ - --hash=sha256:2e1a9bea6244a1d05a4e57c295d69e159a5c50d8ef16aa390948ee873478d9a5 \ - --hash=sha256:364e25edaabd3d37b1db1f0cbcee8c73c9a3727bfa262b83e5e4cf3489a2a9dc \ - --hash=sha256:364f55663085d658b8462a1c3f17b2b84a5c2e1ba858e1b79bff7b2e24ad1514 \ - --hash=sha256:39d02cb6025fe1aabca329c5632f48c9532a3dabccd859e7e2f110668972331f \ - --hash=sha256:3a92cf4b9bea33e15ecbaa5c59921be0f23222608143d025c989924f7e3e0c07 \ - --hash=sha256:40176a52c186aefef6eb3cad2cdd30cd06e3afbe88fe8ab2af9c0b90f228daca \ - --hash=sha256:4356474ad6333e41ccefd39eae869ba15a6c5299c9c01dfdcfdd5c107be4363e \ - --hash=sha256:43dff14e35aba17e3d6d5ba628858fb8cb51e30f44724a2d2f0c75be492c55e9 \ - --hash=sha256:4647d02df098f6434bafd7f32ad14942f05a9caa06c7016fdcc816f343997dd0 \ - --hash=sha256:47f438b1a28e926c37632bff3c44df7d27c9b57aaf4e34b1def3c07111fdb782 \ - --hash=sha256:4dd3db9d0f4ebca1d887d76f7cdbcd1116ac0d05a9221b9dad82c64a62578c4d \ - --hash=sha256:4ebf9cfc9ba24a74cf0718f04aac2a3bbe745902cc7c5ebc55c0f3b5777ef213 \ - --hash=sha256:5276807b9de9092af38ed23ce120539ab0ac955547b38563a9ba4f5b07b95293 \ - --hash=sha256:53b07472f235eb80e826ad038c9d106c2f653584753f3ddab907c83f49eedead \ - --hash=sha256:550bf765101ae721ee1d37d8095f47b1f220650f85fe1af37a90ce75bab89d04 \ - --hash=sha256:56d36e80d2003fa3fc0207fac644216d8532e9504a785ef9a8fd013f84a42c61 \ - --hash=sha256:585542825c4bc662221fb257889e011a5aa00f1ae4d75d1d246a5225289183e3 \ - --hash=sha256:5b927cf9b935a13e33644cbed6c8c4b2d0f25b713d838743f8fe7191b33829c4 \ - --hash=sha256:5d7f02042c1f009ffb70067326ef183a047425bb2ff3bc434ead4dd4a4a66a2b \ - --hash=sha256:6315fb6977f1d0dd41a107c527fee2ed5ab0550b7d885bc15fee20ccb17891da \ - --hash=sha256:66bac29b95a00db411cd758fea0e4b9bdba6d549dfe333f9a945430f5f2cc5a6 \ - --hash=sha256:6c00dbcf5f0d88796151e264a8eab23de2997c9303dd7c0bf622e23b24d3ce22 \ - --hash=sha256:6e7352512f763f760baaed2637055c49134fd1d35b37c2dedfac35bfe5cf8725 \ - --hash=sha256:7519bdc7dfc1940d201651b52bf5e03f5503bda45ad6eacf64dda98be5b2b6be \ - --hash=sha256:78cd586d8331fb8e241c2dd6b2f4061778cc69e150514b39a9e28dd050475661 \ - --hash=sha256:7a653d872afe9f33497215745da7a943d1dc15b728a9c8da1c3ac423af35178e \ - --hash=sha256:7c3a50345635a02db61792c85bb86daffac05330f6473d524f1a4e3ef9d0046d \ - --hash=sha256:7fbdf5ad6084f1940ce88933de34b62358d0f4a0b6ec097362dcd3e5a65a4989 \ - --hash=sha256:7fd19df530c292542636c2a9a85854fab93474396a52f1695e799186bbd7f24c \ - --hash=sha256:868e195e39b24aaa930b063c08bb0c17924899c16c672a28a65afded9c46c6ec \ - --hash=sha256:8709a0f05d59a71f33fd05c17fc11fcb8c30140506e13c2f5e8ee1b8964e1b45 \ - --hash=sha256:88d6c017966a78c5265d996c19cdb79235be5e6412268d7e2ce7dee339471b7a \ - --hash=sha256:8aa7c807df234f693fed0ecd507192fc97692e61fee5702cdc11155d2e5cadc8 \ - --hash=sha256:8b2f1414f6a1e0683f212ec80e813f4abef94c739fd090b66c9adf9d2a05feac \ - --hash=sha256:93655083005d71cd6c072cdab54c886e6570ad2c4592139c3fb967bfc19e4694 \ - --hash=sha256:939ced4a7add92296b0ad38892ce62b98c619288a081170695c6babe4f50e636 \ - --hash=sha256:9434bc0d80076138ea986833156c5a48c9c7a8abb0c96039ddbb4afc93184169 \ - --hash=sha256:94f05348c4406450f9d73d38efb41d669ad6cd90c7ee194810d0eefbfa875a7a \ - --hash=sha256:960c2fc686ba27b535f9fd2b52d87ecd7e4fd1cf877f6a5cba8afb5b4a8bd204 \ - --hash=sha256:96581619c57419c3d7d78703d5b78c1e5e5fc0172d60f555bdebaced82ded19a \ - --hash=sha256:97a0895a8e840ab3520e2288db7cace3a1981300d48babeb50e7425609e2e0ab \ - --hash=sha256:98c4fb90bb82b70a4ed79ca35f656f4281885be076f3f970ce315402b53099ae \ - --hash=sha256:99c5280a329d5fa18ef30fd10c793a190d996567667908bef8a7f81f8202b948 \ - --hash=sha256:9acda8604a57bb60544e4646a4615c1866ee6c04a8edef9b8ee6fd1d8fa2ddc8 \ - --hash=sha256:9c705601e16c03466cb72011bd1af55d68fa65b045356d8f96c216e5f6db0fa5 \ - --hash=sha256:9e8f8afb552297aca127c90cb840e9a1d4bfd6a10d7d8f2d9176e1acc69bad30 \ - --hash=sha256:9eb3e33fdbe43f88c3c75fa608c25e7c47bbd80f48d012763cb67c47f39a7e16 \ - --hash=sha256:9ec49dff7e2b3c85cdeaa412e9d438f0ecd71676fde61ec57027dd392f00c693 \ - --hash=sha256:9f377d0a924e5cc94dc620bc6366fc3e889586a7f18b748901cf016c916e2084 \ - --hash=sha256:a09a6d073fb5789456545bdee2474d14395792faa0527887f2f4ec1a486a59d3 \ - --hash=sha256:a2713a95b47374169409d18103366de1050fe0ea73db358fc7a7acb2880422d4 \ - --hash=sha256:a3b6fb0c207cc661fa0bf8c66d8d9b657331ccc814f4719468af61034b478592 \ - --hash=sha256:a4b88ebe35ce54205c7074f7302bd08a4cb83256a3e0870c72d6f68a3aaf8e49 \ - --hash=sha256:a88d13e7ca367394908f8a276b89d04a3652044612b9a408a0bb22a5ed976a1a \ - --hash=sha256:ac6cde5fba8d7d8c6ac963dbb0256a9854e9fafff52fbcc58fdf819357892c3e \ - --hash=sha256:ae32f24bbfb7dbb485a24b30b1149e2f200be94777232aeadba3eecece4d0aa4 \ - --hash=sha256:b009194665bcd128e23eaddef362e745601afa4641930848af4c8559e88f18f9 \ - --hash=sha256:b1e56bab2e12b2b9ed300218c351ee2a3d8c8fdab5b1ec6193e11a817767e47b \ - --hash=sha256:b395bbca716c38bef3c764f187860e88c724b342c26275bc03e906142fc5964f \ - --hash=sha256:b59d13c443f8e049d9e94099c7e412e34610f1f49be0f230ec656a10692a5802 \ - --hash=sha256:ba2715d842ffa787be87cbfce150d5e88c87a98e0b62e0f5aa489169a393dbbb \ - --hash=sha256:bb7fb776645af5cc58ab804c58d7eba545a97e047254a52ce89c157b5af6cd0b \ - --hash=sha256:c038a8fdc8103cd51dbd986ecdce141473ffd9775a7a8057a6ed9c3653478011 \ - --hash=sha256:c20423ce14771d98353d2e25e83591fa75dfa90a3c1848f3d7c68243b4fbded3 \ - --hash=sha256:c5c94825f744694c4b8db20b71dba9a257cd2ba8e010a803042123f3a25d50d7 \ - --hash=sha256:cf00e5db968c3f67eccd2778574cf64d8b27d95b237770aa32400bd7a1ca4f6c \ - --hash=sha256:d23b5fe492b0805a50d3371e8a728a9134d8de5447dce4c885f5587294750734 \ - --hash=sha256:d7bc4b7f9c4921eba72677cd9fedd2308f4a4ca3e12fab58935295ad9ea98700 \ - --hash=sha256:d8a9b889aeabd7a4e9af0b7f4ab5ad94d42e7ff679aaec6d0db21e3b639ad58d \ - --hash=sha256:dacd50501cd017f8cccb328da0c90823511d70d24a323196826d923aad865901 \ - --hash=sha256:e036a3a645fe92309ec34b918394bb377950cbb43039a97edae6c08db64b23e2 \ - --hash=sha256:e09a0a06348a2dd73e7213353c90d709502d9786219f69b731f6caa0efeb46f5 \ - --hash=sha256:e0c8e31cfcc4592cb200160344b2fb6ae0f9e4effe06c644b5a125d4ae5ebe23 \ - --hash=sha256:e1b4951125ec10c70802f2cb09736c895861cd39fd9dcb35107b4dc8ae6220b8 \ - --hash=sha256:e2a9ea08e8c58bb17655630198833109227dea914cd20be660f52215f6de5613 \ - --hash=sha256:e3403f24bcb9c3b29113611c3c16a2a447c3953ecf86b79775e7be06f7ae7ccb \ - --hash=sha256:e574a7d61cf10351d734bcddabbe15ede0eaa8a02070d85446875dc11189a251 \ - --hash=sha256:e67446b19e014d37342f7195f592a2a948141d15a312fe0e700c2fd2f03124f6 \ - --hash=sha256:e736c93e9c274fce6419af4aac199984d866e55f8a4cec9114671d0ea9688780 \ - --hash=sha256:e7c952aefdf2460f4ae55c5e9c3e80aa72f706a6317e06020f80e96253b1accd \ - --hash=sha256:e7f8659a48995edee7229522984bd1009c1213929c769c2daa80b40fe49a180c \ - --hash=sha256:e96eb1a34396e9430c19d8338d2ec33015e4a87ef2b4449db94c22412e25ccdf \ - --hash=sha256:ec7534e63ae0f3759df3a1ed4fa6bc8f75082a924b590619c0dd2f76d7043caa \ - --hash=sha256:ed2f9c7216e53c3df02264f25d824b079cc5914f9e2deba94155190ef648ee40 \ - --hash=sha256:eeacf451c99b4525f700f078becff32c32ec327b10dcf31306a8a52d78166de7 \ - --hash=sha256:f10d9c0b0188fe85398c61147bbd2a657d616c876863bfeff43376e0e3134673 \ - --hash=sha256:f2bef8237544f4e42878c61cef4e2839fee6346dc60f5739f876a9c50be7fcdb \ - --hash=sha256:f33c8748abef4d8717bb20e8fb1b3e07c6adacb7fd6beaae971a764cf5f30d61 \ - --hash=sha256:f7c183e786e299b5d6c49fb43a769f8eb8e04a2726a2bd5887b98b5cc2d67940 \ - --hash=sha256:fa4dcb605c6f82a80c7f95713c2b11c3b8e9893b3ebd2bc9bde93165ed6107be \ - --hash=sha256:fa89cb11bc71a63b69568d5b8a25c3ca25b6d54c15f907ca1c130d72f320b76b \ - --hash=sha256:fe242cd381e0fb65758faf5ad96c2e460df6ee5b2de1072fe97e4127927e00b4 \ - --hash=sha256:fe91b87fc295973096251e2d25a811388e7d8adf3bd2b97ef6ae78bc4ac6c476 \ - --hash=sha256:fed38a5edb7945f4d1bcabe2fcd05db4f6ec7e0e82560088b754f7e08d93772d \ - --hash=sha256:ff0a7b0a82a7ab905cbda74006318d1b12e37c797eb1b0d4eb3e316cf47f658f \ - --hash=sha256:ff15c147b2ad66da1f2cbb0622313f2242d8e6e8f9b79b5206c84523a4473248 \ - --hash=sha256:ff5e771f5dcbc81c64898c597a434f7682f2259e0cd666932a913d53d1341d1a +aiohttp==3.13.3 \ + --hash=sha256:01ad2529d4b5035578f5081606a465f3b814c542882804e2e8cda61adf5c71bf \ + --hash=sha256:042e9e0bcb5fba81886c8b4fbb9a09d6b8a00245fd8d88e4d989c1f96c74164c \ + --hash=sha256:05861afbbec40650d8a07ea324367cb93e9e8cc7762e04dd4405df99fa65159c \ + --hash=sha256:084911a532763e9d3dd95adf78a78f4096cd5f58cdc18e6fdbc1b58417a45423 \ + --hash=sha256:0add0900ff220d1d5c5ebbf99ed88b0c1bbf87aa7e4262300ed1376a6b13414f \ + --hash=sha256:0db318f7a6f065d84cb1e02662c526294450b314a02bd9e2a8e67f0d8564ce40 \ + --hash=sha256:10b47b7ba335d2e9b1239fa571131a87e2d8ec96b333e68b2a305e7a98b0bae2 \ + --hash=sha256:1449ceddcdbcf2e0446957863af03ebaaa03f94c090f945411b61269e2cb5daf \ + --hash=sha256:147e422fd1223005c22b4fe080f5d93ced44460f5f9c105406b753612b587821 \ + --hash=sha256:1cb93e166e6c28716c8c6aeb5f99dfb6d5ccf482d29fe9bf9a794110e6d0ab64 \ + --hash=sha256:215a685b6fbbfcf71dfe96e3eba7a6f58f10da1dfdf4889c7dd856abe430dca7 \ + --hash=sha256:2712039939ec963c237286113c68dbad80a82a4281543f3abf766d9d73228998 \ + --hash=sha256:27234ef6d85c914f9efeb77ff616dbf4ad2380be0cda40b4db086ffc7ddd1b7d \ + --hash=sha256:28e027cf2f6b641693a09f631759b4d9ce9165099d2b5d92af9bd4e197690eea \ + --hash=sha256:2b8d8ddba8f95ba17582226f80e2de99c7a7948e66490ef8d947e272a93e9463 \ + --hash=sha256:2ba0eea45eb5cc3172dbfc497c066f19c41bac70963ea1a67d51fc92e4cf9a80 \ + --hash=sha256:2be0e9ccf23e8a94f6f0650ce06042cefc6ac703d0d7ab6c7a917289f2539ad4 \ + --hash=sha256:2e41b18a58da1e474a057b3d35248d8320029f61d70a37629535b16a0c8f3767 \ + --hash=sha256:2eb752b102b12a76ca02dff751a801f028b4ffbbc478840b473597fc91a9ed43 \ + --hash=sha256:2fc82186fadc4a8316768d61f3722c230e2c1dcab4200d52d2ebdf2482e47592 \ + --hash=sha256:2fff83cfc93f18f215896e3a190e8e5cb413ce01553901aca925176e7568963a \ + --hash=sha256:31a83ea4aead760dfcb6962efb1d861db48c34379f2ff72db9ddddd4cda9ea2e \ + --hash=sha256:34749271508078b261c4abb1767d42b8d0c0cc9449c73a4df494777dc55f0687 \ + --hash=sha256:34bac00a67a812570d4a460447e1e9e06fae622946955f939051e7cc895cfab8 \ + --hash=sha256:37239e9f9a7ea9ac5bf6b92b0260b01f8a22281996da609206a84df860bc1261 \ + --hash=sha256:37da61e244d1749798c151421602884db5270faf479cf0ef03af0ff68954c9dd \ + --hash=sha256:3b61b7169ababd7802f9568ed96142616a9118dd2be0d1866e920e77ec8fa92a \ + --hash=sha256:3d9908a48eb7416dc1f4524e69f1d32e5d90e3981e4e37eb0aa1cd18f9cfa2a4 \ + --hash=sha256:3dd4dce1c718e38081c8f35f323209d4c1df7d4db4bab1b5c88a6b4d12b74587 \ + --hash=sha256:4021b51936308aeea0367b8f006dc999ca02bc118a0cc78c303f50a2ff6afb91 \ + --hash=sha256:40c5e40ecc29ba010656c18052b877a1c28f84344825efa106705e835c28530f \ + --hash=sha256:425c126c0dc43861e22cb1c14ba4c8e45d09516d0a3ae0a3f7494b79f5f233a3 \ + --hash=sha256:44531a36aa2264a1860089ffd4dce7baf875ee5a6079d5fb42e261c704ef7344 \ + --hash=sha256:48e377758516d262bde50c2584fc6c578af272559c409eecbdd2bae1601184d6 \ + --hash=sha256:49a03727c1bba9a97d3e93c9f93ca03a57300f484b6e935463099841261195d3 \ + --hash=sha256:4ae5b5a0e1926e504c81c5b84353e7a5516d8778fbbff00429fe7b05bb25cbce \ + --hash=sha256:4e239d501f73d6db1522599e14b9b321a7e3b1de66ce33d53a765d975e9f4808 \ + --hash=sha256:56339a36b9f1fc708260c76c87e593e2afb30d26de9ae1eb445b5e051b98a7a1 \ + --hash=sha256:568f416a4072fbfae453dcf9a99194bbb8bdeab718e08ee13dfa2ba0e4bebf29 \ + --hash=sha256:5b179331a481cb5529fca8b432d8d3c7001cb217513c94cd72d668d1248688a3 \ + --hash=sha256:5b6073099fb654e0a068ae678b10feff95c5cae95bbfcbfa7af669d361a8aa6b \ + --hash=sha256:5d2d94f1f5fcbe40838ac51a6ab5704a6f9ea42e72ceda48de5e6b898521da51 \ + --hash=sha256:5dff64413671b0d3e7d5918ea490bdccb97a4ad29b3f311ed423200b2203e01c \ + --hash=sha256:5e1d8c8b8f1d91cd08d8f4a3c2b067bfca6ec043d3ff36de0f3a715feeedf926 \ + --hash=sha256:5f8ca7f2bb6ba8348a3614c7918cc4bb73268c5ac2a207576b7afea19d3d9f64 \ + --hash=sha256:642f752c3eb117b105acbd87e2c143de710987e09860d674e068c4c2c441034f \ + --hash=sha256:65d2ccb7eabee90ce0503c17716fc77226be026dcc3e65cce859a30db715025b \ + --hash=sha256:693781c45a4033d31d4187d2436f5ac701e7bbfe5df40d917736108c1cc7436e \ + --hash=sha256:694976222c711d1d00ba131904beb60534f93966562f64440d0c9d41b8cdb440 \ + --hash=sha256:697753042d57f4bf7122cab985bf15d0cef23c770864580f5af4f52023a56bd6 \ + --hash=sha256:69c56fbc1993fa17043e24a546959c0178fe2b5782405ad4559e6c13975c15e3 \ + --hash=sha256:6de499a1a44e7de70735d0b39f67c8f25eb3d91eb3103be99ca0fa882cdd987d \ + --hash=sha256:6fc0e2337d1a4c3e6acafda6a78a39d4c14caea625124817420abceed36e2415 \ + --hash=sha256:75ca857eba4e20ce9f546cd59c7007b33906a4cd48f2ff6ccf1ccfc3b646f279 \ + --hash=sha256:7a4a94eb787e606d0a09404b9c38c113d3b099d508021faa615d70a0131907ce \ + --hash=sha256:7b5e8fe4de30df199155baaf64f2fcd604f4c678ed20910db8e2c66dc4b11603 \ + --hash=sha256:7bfdc049127717581866fa4708791220970ce291c23e28ccf3922c700740fdc0 \ + --hash=sha256:7e63f210bc1b57ef699035f2b4b6d9ce096b5914414a49b0997c839b2bd2223c \ + --hash=sha256:7f9120f7093c2a32d9647abcaf21e6ad275b4fbec5b55969f978b1a97c7c86bf \ + --hash=sha256:8057c98e0c8472d8846b9c79f56766bcc57e3e8ac7bfd510482332366c56c591 \ + --hash=sha256:80dd4c21b0f6237676449c6baaa1039abae86b91636b6c91a7f8e61c87f89540 \ + --hash=sha256:81e97251d9298386c2b7dbeb490d3d1badbdc69107fb8c9299dd04eb39bddc0e \ + --hash=sha256:82611aeec80eb144416956ec85b6ca45a64d76429c1ed46ae1b5f86c6e0c9a26 \ + --hash=sha256:8542f41a62bcc58fc7f11cf7c90e0ec324ce44950003feb70640fc2a9092c32a \ + --hash=sha256:859bd3f2156e81dd01432f5849fc73e2243d4a487c4fd26609b1299534ee1845 \ + --hash=sha256:87797e645d9d8e222e04160ee32aa06bc5c163e8499f24db719e7852ec23093a \ + --hash=sha256:87b9aab6d6ed88235aa2970294f496ff1a1f9adcd724d800e9b952395a80ffd9 \ + --hash=sha256:8a60e60746623925eab7d25823329941aee7242d559baa119ca2b253c88a7bd6 \ + --hash=sha256:90455115e5da1c3c51ab619ac57f877da8fd6d73c05aacd125c5ae9819582aba \ + --hash=sha256:90751b8eed69435bac9ff4e3d2f6b3af1f57e37ecb0fbeee59c0174c9e2d41df \ + --hash=sha256:947c26539750deeaee933b000fb6517cc770bbd064bad6033f1cff4803881e43 \ + --hash=sha256:96d604498a7c782cb15a51c406acaea70d8c027ee6b90c569baa6e7b93073679 \ + --hash=sha256:988a8c5e317544fdf0d39871559e67b6341065b87fceac641108c2096d5506b7 \ + --hash=sha256:9a9dc347e5a3dc7dfdbc1f82da0ef29e388ddb2ed281bfce9dd8248a313e62b7 \ + --hash=sha256:9ae8dd55c8e6c4257eae3a20fd2c8f41edaea5992ed67156642493b8daf3cecc \ + --hash=sha256:9af5e68ee47d6534d36791bbe9b646d2a7c7deb6fc24d7943628edfbb3581f29 \ + --hash=sha256:9b174f267b5cfb9a7dba9ee6859cecd234e9a681841eb85068059bc867fb8f02 \ + --hash=sha256:9bf9f7a65e7aa20dd764151fb3d616c81088f91f8df39c3893a536e279b4b984 \ + --hash=sha256:9d4c940f02f49483b18b079d1c27ab948721852b281f8b015c058100e9421dd1 \ + --hash=sha256:9ebf57d09e131f5323464bd347135a88622d1c0976e88ce15b670e7ad57e4bd6 \ + --hash=sha256:a19884d2ee70b06d9204b2727a7b9f983d0c684c650254679e716b0b77920632 \ + --hash=sha256:a1e53262fd202e4b40b70c3aff944a8155059beedc8a89bba9dc1f9ef06a1b56 \ + --hash=sha256:a2212ad43c0833a873d0fb3c63fa1bacedd4cf6af2fee62bf4b739ceec3ab239 \ + --hash=sha256:a45530014d7a1e09f4a55f4f43097ba0fd155089372e105e4bff4ca76cb1b168 \ + --hash=sha256:a949eee43d3782f2daae4f4a2819b2cb9b0c5d3b7f7a927067cc84dafdbb9f88 \ + --hash=sha256:add1da70de90a2569c5e15249ff76a631ccacfe198375eead4aadf3b8dc849dc \ + --hash=sha256:af71fff7bac6bb7508956696dce8f6eec2bbb045eceb40343944b1ae62b5ef11 \ + --hash=sha256:b04be762396457bef43f3597c991e192ee7da460a4953d7e647ee4b1c28e7046 \ + --hash=sha256:b0d95340658b9d2f11d9697f59b3814a9d3bb4b7a7c20b131df4bcef464037c0 \ + --hash=sha256:b1a6102b4d3ebc07dad44fbf07b45bb600300f15b552ddf1851b5390202ea2e3 \ + --hash=sha256:b46020d11d23fe16551466c77823df9cc2f2c1e63cc965daf67fa5eec6ca1877 \ + --hash=sha256:b556c85915d8efaed322bf1bdae9486aa0f3f764195a0fb6ee962e5c71ef5ce1 \ + --hash=sha256:b903a4dfee7d347e2d87697d0713be59e0b87925be030c9178c5faa58ea58d5c \ + --hash=sha256:b928f30fe49574253644b1ca44b1b8adbd903aa0da4b9054a6c20fc7f4092a25 \ + --hash=sha256:b99281b0704c103d4e11e72a76f1b543d4946fea7dd10767e7e1b5f00d4e5704 \ + --hash=sha256:bae5c2ed2eae26cc382020edad80d01f36cb8e746da40b292e68fec40421dc6a \ + --hash=sha256:bb4f7475e359992b580559e008c598091c45b5088f28614e855e42d39c2f1033 \ + --hash=sha256:bbe7d4cecacb439e2e2a8a1a7b935c25b812af7a5fd26503a66dadf428e79ec1 \ + --hash=sha256:bfc1cc2fe31a6026a8a88e4ecfb98d7f6b1fec150cfd708adbfd1d2f42257c29 \ + --hash=sha256:c014c7ea7fb775dd015b2d3137378b7be0249a448a1612268b5a90c2d81de04d \ + --hash=sha256:c048058117fd649334d81b4b526e94bde3ccaddb20463a815ced6ecbb7d11160 \ + --hash=sha256:c0e2d366af265797506f0283487223146af57815b388623f0357ef7eac9b209d \ + --hash=sha256:c19b90316ad3b24c69cd78d5c9b4f3aa4497643685901185b65166293d36a00f \ + --hash=sha256:c685f2d80bb67ca8c3837823ad76196b3694b0159d232206d1e461d3d434666f \ + --hash=sha256:c6b8568a3bb5819a0ad087f16d40e5a3fb6099f39ea1d5625a3edc1e923fc538 \ + --hash=sha256:d32764c6c9aafb7fb55366a224756387cd50bfa720f32b88e0e6fa45b27dcf29 \ + --hash=sha256:d5a372fd5afd301b3a89582817fdcdb6c34124787c70dbcc616f259013e7eef7 \ + --hash=sha256:d60ac9663f44168038586cab2157e122e46bdef09e9368b37f2d82d354c23f72 \ + --hash=sha256:dca68018bf48c251ba17c72ed479f4dafe9dbd5a73707ad8d28a38d11f3d42af \ + --hash=sha256:de2c184bb1fe2cbd2cefba613e9db29a5ab559323f994b6737e370d3da0ac455 \ + --hash=sha256:e3531d63d3bdfa7e3ac5e9b27b2dd7ec9df3206a98e0b3445fa906f233264c57 \ + --hash=sha256:e50a2e1404f063427c9d027378472316201a2290959a295169bcf25992d04558 \ + --hash=sha256:e636b3c5f61da31a92bf0d91da83e58fdfa96f178ba682f11d24f31944cdd28c \ + --hash=sha256:ea37047c6b367fd4bd632bff8077449b8fa034b69e812a18e0132a00fae6e808 \ + --hash=sha256:f33ed1a2bf1997a36661874b017f5c4b760f41266341af36febaf271d179f6d7 \ + --hash=sha256:f76c1e3fe7d7c8afad7ed193f89a292e1999608170dcc9751a7462a87dfd5bc0 \ + --hash=sha256:f9444f105664c4ce47a2a7171a2418bce5b7bae45fb610f4e2c36045d85911d3 \ + --hash=sha256:fc290605db2a917f6e81b0e1e0796469871f5af381ce15c604a3c5c7e51cb730 \ + --hash=sha256:fc353029f176fd2b3ec6cfc71be166aba1936fe5d73dd1992ce289ca6647a9aa \ + --hash=sha256:fee0c6bc7db1de362252affec009707a17478a00ec69f797d23ca256e36d5940 # via aiobotocore aioitertools==0.13.0 \ --hash=sha256:0be0292b856f08dfac90e31f4739432f4cb6d7520ab9eb73e143f4f2fa5259be \ @@ -150,9 +150,9 @@ annotated-types==0.7.0 \ --hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 \ --hash=sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89 # via pydantic -anyio==4.12.0 \ - --hash=sha256:73c693b567b0c55130c104d0b43a9baf3aa6a31fc6110116509f27bf75e21ec0 \ - --hash=sha256:dad2376a628f98eeca4881fc56cd06affd18f659b17a747d3ff0307ced94b1bb +anyio==4.12.1 \ + --hash=sha256:41cfcc3a4c85d3f05c932da7c26d0201ac36f72abd4435ba90d0464a3ffed703 \ + --hash=sha256:d405828884fc140aa80a3c667b8beed277f1dfedec42ba031bd6ac3db606ab6c # via # httpx # mcp @@ -167,9 +167,9 @@ async-timeout==5.0.1 \ --hash=sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c \ --hash=sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3 # via redis -atpublic==5.1 \ - --hash=sha256:135783dbd887fbddb6ef032d104da70c124f2b44b9e2d79df07b9da5334825e3 \ - --hash=sha256:abc1f4b3dbdd841cc3539e4b5e4f3ad41d658359de704e30cb36da4d4e9d3022 +atpublic==7.0.0 \ + --hash=sha256:466ef10d0c8bbd14fd02a5fbd5a8b6af6a846373d91106d3a07c16d72d96b63e \ + --hash=sha256:6702bd9e7245eb4e8220a3e222afcef7f87412154732271ee7deee4433b72b4b # via ibis-framework attrs==25.4.0 \ --hash=sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11 \ @@ -182,9 +182,9 @@ babel==2.17.0 \ --hash=sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d \ --hash=sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2 # via sphinx -bigtree==1.0.4 \ - --hash=sha256:e4af0c5bc0d2cd72e18442965e4509f642b16a0de65db6d0ec116e30f959010c \ - --hash=sha256:f58a3238bb9b1142d893c9de4921bfd18d435427c75e0c168dd580eabf6dc7fd +bigtree==1.1.0 \ + --hash=sha256:3f1ff63d2d66d31bf19855ddda8884637edf8dd1fc1aa118cf3a750580ece48b \ + --hash=sha256:f54f99d842732c91cce39c596a3755a2e8325b1cab5bc6876f5b15bd3942081c # via feast (setup.py) boto3==1.38.27 \ --hash=sha256:94bd7fdd92d5701b362d4df100d21e28f8307a67ff56b6a8b0398119cf22f859 \ @@ -200,17 +200,13 @@ botocore==1.38.46 \ # boto3 # s3transfer # snowflake-connector-python -cachetools==6.2.4 \ - --hash=sha256:69a7a52634fed8b8bf6e24a050fb60bff1c9bd8f6d24572b99c32d4e71e62a51 \ - --hash=sha256:82c5c05585e70b6ba2d3ae09ea60b79548872185d2f24ae1f2709d37299fd607 - # via google-auth calver==2025.3.31 \ --hash=sha256:07511edf5e7fa75ae97445c8c5921240e0fe62937289a3ebe6963eddd3c691b6 \ --hash=sha256:255d1a70bba8f97dc1eee3af4240ed35980508da69257feef94c79e5c6545fc7 # via feast (setup.py) -certifi==2025.11.12 \ - --hash=sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b \ - --hash=sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316 +certifi==2026.1.4 \ + --hash=sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c \ + --hash=sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120 # via # httpcore # httpx @@ -565,59 +561,48 @@ docutils==0.22.4 \ --hash=sha256:4db53b1fde9abecbb74d91230d32ab626d94f6badfc575d6db9194a49df29968 \ --hash=sha256:d0013f540772d1420576855455d050a2180186c91c15779301ac2ccb3eeb68de # via sphinx -duckdb==1.1.3 \ - --hash=sha256:00cca22df96aa3473fe4584f84888e2cf1c516e8c2dd837210daec44eadba586 \ - --hash=sha256:08935700e49c187fe0e9b2b86b5aad8a2ccd661069053e38bfaed3b9ff795efd \ - --hash=sha256:0897f83c09356206ce462f62157ce064961a5348e31ccb2a557a7531d814e70e \ - --hash=sha256:09c68522c30fc38fc972b8a75e9201616b96ae6da3444585f14cf0d116008c95 \ - --hash=sha256:0a55169d2d2e2e88077d91d4875104b58de45eff6a17a59c7dc41562c73df4be \ - --hash=sha256:0ba6baa0af33ded836b388b09433a69b8bec00263247f6bf0a05c65c897108d3 \ - --hash=sha256:183ac743f21c6a4d6adfd02b69013d5fd78e5e2cd2b4db023bc8a95457d4bc5d \ - --hash=sha256:1aa3abec8e8995a03ff1a904b0e66282d19919f562dd0a1de02f23169eeec461 \ - --hash=sha256:1c0226dc43e2ee4cc3a5a4672fddb2d76fd2cf2694443f395c02dd1bea0b7fce \ - --hash=sha256:1d9ab6143e73bcf17d62566e368c23f28aa544feddfd2d8eb50ef21034286f24 \ - --hash=sha256:2141c6b28162199999075d6031b5d63efeb97c1e68fb3d797279d31c65676269 \ - --hash=sha256:252d9b17d354beb9057098d4e5d5698e091a4f4a0d38157daeea5fc0ec161670 \ - --hash=sha256:25fb02629418c0d4d94a2bc1776edaa33f6f6ccaa00bd84eb96ecb97ae4b50e9 \ - --hash=sha256:2f073d15d11a328f2e6d5964a704517e818e930800b7f3fa83adea47f23720d3 \ - --hash=sha256:35c420f58abc79a68a286a20fd6265636175fadeca1ce964fc8ef159f3acc289 \ - --hash=sha256:4ebf5f60ddbd65c13e77cddb85fe4af671d31b851f125a4d002a313696af43f1 \ - --hash=sha256:4f0e2e5a6f5a53b79aee20856c027046fba1d73ada6178ed8467f53c3877d5e0 \ - --hash=sha256:51c6d79e05b4a0933672b1cacd6338f882158f45ef9903aef350c4427d9fc898 \ - --hash=sha256:51e7dbd968b393343b226ab3f3a7b5a68dee6d3fe59be9d802383bf916775cb8 \ - --hash=sha256:5ace6e4b1873afdd38bd6cc8fcf90310fb2d454f29c39a61d0c0cf1a24ad6c8d \ - --hash=sha256:5d57776539211e79b11e94f2f6d63de77885f23f14982e0fac066f2885fcf3ff \ - --hash=sha256:6411e21a2128d478efbd023f2bdff12464d146f92bc3e9c49247240448ace5a6 \ - --hash=sha256:647f17bd126170d96a38a9a6f25fca47ebb0261e5e44881e3782989033c94686 \ - --hash=sha256:68c3a46ab08836fe041d15dcbf838f74a990d551db47cb24ab1c4576fc19351c \ - --hash=sha256:77f26884c7b807c7edd07f95cf0b00e6d47f0de4a534ac1706a58f8bc70d0d31 \ - --hash=sha256:7c71169fa804c0b65e49afe423ddc2dc83e198640e3b041028da8110f7cd16f7 \ - --hash=sha256:80158f4c7c7ada46245837d5b6869a336bbaa28436fbb0537663fa324a2750cd \ - --hash=sha256:872d38b65b66e3219d2400c732585c5b4d11b13d7a36cd97908d7981526e9898 \ - --hash=sha256:8ee97ec337794c162c0638dda3b4a30a483d0587deda22d45e1909036ff0b739 \ - --hash=sha256:911d58c22645bfca4a5a049ff53a0afd1537bc18fedb13bc440b2e5af3c46148 \ - --hash=sha256:9c619e4849837c8c83666f2cd5c6c031300cd2601e9564b47aa5de458ff6e69d \ - --hash=sha256:9d0767ada9f06faa5afcf63eb7ba1befaccfbcfdac5ff86f0168c673dd1f47aa \ - --hash=sha256:9e3f5cd604e7c39527e6060f430769b72234345baaa0987f9500988b2814f5e4 \ - --hash=sha256:a1f83c7217c188b7ab42e6a0963f42070d9aed114f6200e3c923c8899c090f16 \ - --hash=sha256:a1fa0c502f257fa9caca60b8b1478ec0f3295f34bb2efdc10776fc731b8a6c5f \ - --hash=sha256:a30dd599b8090ea6eafdfb5a9f1b872d78bac318b6914ada2d35c7974d643640 \ - --hash=sha256:a433ae9e72c5f397c44abdaa3c781d94f94f4065bcbf99ecd39433058c64cb38 \ - --hash=sha256:a4748635875fc3c19a7320a6ae7410f9295557450c0ebab6d6712de12640929a \ - --hash=sha256:b74e121ab65dbec5290f33ca92301e3a4e81797966c8d9feef6efdf05fc6dafd \ - --hash=sha256:c443d3d502335e69fc1e35295fcfd1108f72cb984af54c536adfd7875e79cee5 \ - --hash=sha256:c5336939d83837af52731e02b6a78a446794078590aa71fd400eb17f083dda3e \ - --hash=sha256:cddc6c1a3b91dcc5f32493231b3ba98f51e6d3a44fe02839556db2b928087378 \ - --hash=sha256:d08308e0a46c748d9c30f1d67ee1143e9c5ea3fbcccc27a47e115b19e7e78aa9 \ - --hash=sha256:d5724fd8a49e24d730be34846b814b98ba7c304ca904fbdc98b47fa95c0b0cee \ - --hash=sha256:e4ef7ba97a65bd39d66f2a7080e6fb60e7c3e41d4c1e19245f90f53b98e3ac32 \ - --hash=sha256:e59087dbbb63705f2483544e01cccf07d5b35afa58be8931b224f3221361d537 \ - --hash=sha256:e86006958e84c5c02f08f9b96f4bc26990514eab329b1b4f71049b3727ce5989 \ - --hash=sha256:ecb1dc9062c1cc4d2d88a5e5cd8cc72af7818ab5a3c0f796ef0ffd60cfd3efb4 \ - --hash=sha256:eeacb598120040e9591f5a4edecad7080853aa8ac27e62d280f151f8c862afa3 \ - --hash=sha256:f549af9f7416573ee48db1cf8c9d27aeed245cb015f4b4f975289418c6cf7320 \ - --hash=sha256:f58db1b65593ff796c8ea6e63e2e144c944dd3d51c8d8e40dffa7f41693d35d3 \ - --hash=sha256:f9b47036945e1db32d70e414a10b1593aec641bd4c5e2056873d971cc21e978b +duckdb==1.4.3 \ + --hash=sha256:006aca6a6d6736c441b02ff5c7600b099bb8b7f4de094b8b062137efddce42df \ + --hash=sha256:130c6760f6c573f9c9fe9aba56adba0fab48811a4871b7b8fd667318b4a3e8da \ + --hash=sha256:16952ac05bd7e7b39946695452bf450db1ebbe387e1e7178e10f593f2ea7b9a8 \ + --hash=sha256:1b35491db98ccd11d151165497c084a9d29d3dc42fc80abea2715a6c861ca43d \ + --hash=sha256:1b9b445970fd18274d5ac07a0b24c032e228f967332fb5ebab3d7db27738c0e4 \ + --hash=sha256:1bb8bd5a3dd205983726185b280a211eacc9f5bc0c4d4505bec8c87ac33a8ccb \ + --hash=sha256:1e5457dda91b67258aae30fb1a0df84183a9f6cd27abac1d5536c0d876c6dfa1 \ + --hash=sha256:20c88effaa557a11267706b01419c542fe42f893dee66e5a6daa5974ea2d4a46 \ + --hash=sha256:23a3a077821bed1768a84ac9cbf6b6487ead33e28e62cb118bda5fb8f9e53dea \ + --hash=sha256:23b12854032c1a58d0452e2b212afa908d4ce64171862f3792ba9a596ba7c765 \ + --hash=sha256:274d4a31aba63115f23e7e7b401e3e3a937f3626dc9dea820a9c7d3073f450d2 \ + --hash=sha256:2b195270ff1a661f22cbd547a215baff265b7d4469a76a215c8992b5994107c3 \ + --hash=sha256:2b30245375ea94ab528c87c61fc3ab3e36331180b16af92ee3a37b810a745d24 \ + --hash=sha256:316711a9e852bcfe1ed6241a5f654983f67e909e290495f3562cccdf43be8180 \ + --hash=sha256:366bf607088053dce845c9d24c202c04d78022436cc5d8e4c9f0492de04afbe7 \ + --hash=sha256:4f868a7e6d9b37274a1aa34849ea92aa964e9bd59a5237d6c17e8540533a1e4f \ + --hash=sha256:4fef6a053a1c485292000bf0c338bba60f89d334f6a06fc76ba4085a5a322b76 \ + --hash=sha256:5634e40e1e2d972e4f75bced1fbdd9e9e90faa26445c1052b27de97ee546944a \ + --hash=sha256:6302452e57aef29aae3977063810ed7b2927967b97912947b9cca45c1c21955f \ + --hash=sha256:6db124f53a3edcb32b0a896ad3519e37477f7e67bf4811cb41ab60c1ef74e4c8 \ + --hash=sha256:702dabbc22b27dc5b73e7599c60deef3d8c59968527c36b391773efddd8f4cf1 \ + --hash=sha256:813f189039b46877b5517f1909c7b94a8fe01b4bde2640ab217537ea0fe9b59b \ + --hash=sha256:854b79375fa618f6ffa8d84fb45cbc9db887f6c4834076ea10d20bc106f1fd90 \ + --hash=sha256:8afba22c370f06b7314aa46bfed052509269e482bcfb3f7b1ea0fa17ae49ce42 \ + --hash=sha256:8d080e8d1bf2d226423ec781f539c8f6b6ef3fd42a9a58a7160de0a00877a21f \ + --hash=sha256:8d53b217698a76c4957e2c807dd9295d409146f9d3d7932f372883201ba9d25a \ + --hash=sha256:90f241f25cffe7241bf9f376754a5845c74775e00e1c5731119dc88cd71e0cb2 \ + --hash=sha256:9dc049ba7e906cb49ca2b6d4fbf7b6615ec3883193e8abb93f0bef2652e42dda \ + --hash=sha256:9e625b2b4d52bafa1fd0ebdb0990c3961dac8bb00e30d327185de95b68202131 \ + --hash=sha256:a2813f4635f4d6681cc3304020374c46aca82758c6740d7edbc237fe3aae2744 \ + --hash=sha256:a7c864df027da1ee95f0c32def67e15d02cd4a906c9c1cbae82c09c5112f526b \ + --hash=sha256:a8b0a8764e1b5dd043d168c8f749314f7a1252b5a260fa415adaa26fa3b958fd \ + --hash=sha256:aa26a7406205bc1426cee28bdfdf084f669a5686977dafa4c3ec65873989593c \ + --hash=sha256:caa2164c91f7e91befb1ffb081b3cd97a137117533aef7abe1538b03ad72e3a9 \ + --hash=sha256:d0ff08388ef8b1d1a4c95c321d6c5fa11201b241036b1ee740f9d841df3d6ba2 \ + --hash=sha256:de984cd24a6cbefdd6d4a349f7b9a46e583ca3e58ce10d8def0b20a6e5fcbe78 \ + --hash=sha256:deab351ac43b6282a3270e3d40e3d57b3b50f472d9fd8c30975d88a31be41231 \ + --hash=sha256:ef7ef15347ce97201b1b5182a5697682679b04c3374d5a01ac10ba31cf791b95 \ + --hash=sha256:efa7f1191c59e34b688fcd4e588c1b903a4e4e1f4804945902cf0b20e08a9001 \ + --hash=sha256:fbc63ffdd03835f660155b37a1b6db2005bcd46e5ad398b8cac141eb305d2a3d \ + --hash=sha256:fea43e03604c713e25a25211ada87d30cd2a044d8f27afab5deba26ac49e5268 # via ibis-framework dunamai==1.25.0 \ --hash=sha256:7f9dc687dd3256e613b6cc978d9daabfd2bb5deb8adc541fc135ee423ffa98ab \ @@ -637,9 +622,9 @@ fastapi-mcp==0.4.0 \ --hash=sha256:d4a3fe7966af24d44e4b412720561c95eb12bed999a4443a88221834b3b15aec \ --hash=sha256:d4ca9410996f4c7b8ea0d7b20fdf79878dc359ebf89cbf3b222e0b675a55097d # via feast (setup.py) -filelock==3.20.1 \ - --hash=sha256:15d9e9a67306188a44baa72f569d2bfd803076269365fdea0934385da4dc361a \ - --hash=sha256:b8360948b351b80f420878d8516519a2204b07aefcdcfd24912a5d33127f188c +filelock==3.20.3 \ + --hash=sha256:18c57ee915c7ec61cff0ecf7f0f869936c7c30191bb0cf406f1341778d0834e1 \ + --hash=sha256:4b0dda527ee31078689fc205ec4f1c1bf7d56cf88b6dc9426c4f230e46c2dce1 # via snowflake-connector-python flit-core==3.12.0 \ --hash=sha256:18f63100d6f94385c6ed57a72073443e1a71a4acb4339491615d0f16d6ff01b2 \ @@ -785,9 +770,9 @@ fsspec==2024.9.0 \ # via # feast (setup.py) # dask -google-api-core[grpc]==2.28.1 \ - --hash=sha256:2b405df02d68e68ce0fbc138559e6036559e685159d148ae5861013dc201baf8 \ - --hash=sha256:4021b0f8ceb77a6fb4de6fde4502cecab45062e66ff4f2895169e0b35bc9466c +google-api-core[grpc]==2.29.0 \ + --hash=sha256:84181be0f8e6b04006df75ddfe728f24489f0af57c96a529ff7cf45bc28797f7 \ + --hash=sha256:d30bc60980daa36e314b5d5a3e5958b0200cb44ca8fa1be2b614e932b75a3ea9 # via # feast (setup.py) # google-cloud-bigquery @@ -797,9 +782,9 @@ google-api-core[grpc]==2.28.1 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.45.0 \ - --hash=sha256:82344e86dc00410ef5382d99be677c6043d72e502b625aa4f4afa0bdacca0f36 \ - --hash=sha256:90d3f41b6b72ea72dd9811e765699ee491ab24139f34ebf1ca2b9cc0c38708f3 +google-auth==2.47.0 \ + --hash=sha256:833229070a9dfee1a353ae9877dcd2dec069a8281a4e72e72f77d4a70ff945da \ + --hash=sha256:c516d68336bfde7cf0da26aab674a36fedcf04b37ac4edd59c597178760c3498 # via # google-api-core # google-auth-oauthlib @@ -818,9 +803,9 @@ google-auth-oauthlib==1.2.2 \ # via # pandas-gbq # pydata-google-auth -google-cloud-bigquery[pandas]==3.39.0 \ - --hash=sha256:cb375e1d63dea9bd5bf735e66024338f294159d43afdf63e1d023f5fcbbf55ea \ - --hash=sha256:dc7a64921465859105461b43c42562e38e797d7a73feb72b3cfc4865b7b1c5ef +google-cloud-bigquery[pandas]==3.40.0 \ + --hash=sha256:0469bcf9e3dad3cab65b67cce98180c8c0aacf3253d47f0f8e976f299b49b5ab \ + --hash=sha256:b3ccb11caf0029f15b29569518f667553fe08f6f1459b959020c83fbbd8f2e68 # via # feast (setup.py) # pandas-gbq @@ -1215,15 +1200,9 @@ httpx-sse==0.4.3 \ --hash=sha256:0ac1c9fe3c0afad2e0ebb25a934a59f4c7823b60792691f779fad2c5568830fc \ --hash=sha256:9b1ed0127459a66014aec3c56bebd93da3c1bc8bb6618c8082039a44889a755d # via mcp -ibis-framework[duckdb]==9.5.0 \ - --hash=sha256:145fe30d94f111cff332580c275ce77725c5ff7086eede93af0b371649d009c0 \ - --hash=sha256:1c8a29277e63ee0dfc289bc8f550164b5e3bdaec1b76b62436c37d331bb4ef84 - # via - # feast (setup.py) - # ibis-substrait -ibis-substrait==4.0.1 \ - --hash=sha256:107ca49383a3cca2fdc88f67ea2f0172620c16fa8f39c9c52305af85dd6180b4 \ - --hash=sha256:614810a173d096fbc49d87a9b419e2162a3c25d8efda1a4d57a389ce56b9041f +ibis-framework[duckdb]==11.0.0 \ + --hash=sha256:0249185eaabb800e224f448cc06ce8ba168df00b269e132d62629f462eca8842 \ + --hash=sha256:92ff82a96f4eac7f86fa9b6a315e04b5a8f9ed3d186539d88f48e628363f2e72 # via feast (setup.py) idna==3.11 \ --hash=sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea \ @@ -1256,9 +1235,9 @@ jmespath==1.0.1 \ # aiobotocore # boto3 # botocore -jsonschema==4.25.1 \ - --hash=sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63 \ - --hash=sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85 +jsonschema==4.26.0 \ + --hash=sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326 \ + --hash=sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce # via # feast (setup.py) # mcp @@ -1270,83 +1249,83 @@ kubernetes==33.1.0 \ --hash=sha256:544de42b24b64287f7e0aa9513c93cb503f7f40eea39b20f66810011a86eabc5 \ --hash=sha256:f64d829843a54c251061a8e7a14523b521f2dc5c896cf6d65ccf348648a88993 # via feast (setup.py) -librt==0.7.5 \ - --hash=sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee \ - --hash=sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1 \ - --hash=sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4 \ - --hash=sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899 \ - --hash=sha256:0e2bf8f91093fac43e3eaebacf777f12fd539dce9ec5af3efc6d8424e96ccd49 \ - --hash=sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d \ - --hash=sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760 \ - --hash=sha256:191cbd42660446d67cf7a95ac7bfa60f49b8b3b0417c64f216284a1d86fc9335 \ - --hash=sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8 \ - --hash=sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2 \ - --hash=sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec \ - --hash=sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b \ - --hash=sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0 \ - --hash=sha256:39183abee670bc37b85f11e86c44a9cad1ed6efa48b580083e89ecee13dd9717 \ - --hash=sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325 \ - --hash=sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45 \ - --hash=sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d \ - --hash=sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233 \ - --hash=sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d \ - --hash=sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544 \ - --hash=sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802 \ - --hash=sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2 \ - --hash=sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d \ - --hash=sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f \ - --hash=sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169 \ - --hash=sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe \ - --hash=sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982 \ - --hash=sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2 \ - --hash=sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa \ - --hash=sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4 \ - --hash=sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4 \ - --hash=sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57 \ - --hash=sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26 \ - --hash=sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361 \ - --hash=sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad \ - --hash=sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e \ - --hash=sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf \ - --hash=sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f \ - --hash=sha256:8dcae24de1bc9da93aa689cb6313c70e776d7cea2fcf26b9b6160fedfe6bd9af \ - --hash=sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2 \ - --hash=sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89 \ - --hash=sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904 \ - --hash=sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6 \ - --hash=sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276 \ - --hash=sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e \ - --hash=sha256:a9eacbf983319b26b5f340a2e0cd47ac1ee4725a7f3a72fd0f15063c934b69d6 \ - --hash=sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409 \ - --hash=sha256:af69d9e159575e877c7546d1ee817b4ae089aa221dd1117e20c24ad8dc8659c7 \ - --hash=sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a \ - --hash=sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4 \ - --hash=sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775 \ - --hash=sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203 \ - --hash=sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419 \ - --hash=sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5 \ - --hash=sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023 \ - --hash=sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b \ - --hash=sha256:cdb001a1a0e4f41e613bca2c0fc147fc8a7396f53fc94201cbfd8ec7cd69ca4b \ - --hash=sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d \ - --hash=sha256:d2cc7d187e8c6e9b7bdbefa9697ce897a704ea7a7ce844f2b4e0e2aa07ae51d3 \ - --hash=sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e \ - --hash=sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a \ - --hash=sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b \ - --hash=sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db \ - --hash=sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd \ - --hash=sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa \ - --hash=sha256:df2e210400b28e50994477ebf82f055698c79797b6ee47a1669d383ca33263e1 \ - --hash=sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805 \ - --hash=sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a \ - --hash=sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25 \ - --hash=sha256:ea1b60b86595a5dc1f57b44a801a1c4d8209c0a69518391d349973a4491408e6 \ - --hash=sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b \ - --hash=sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5 \ - --hash=sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416 \ - --hash=sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc \ - --hash=sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7 \ - --hash=sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96 +librt==0.7.7 \ + --hash=sha256:067be973d90d9e319e6eb4ee2a9b9307f0ecd648b8a9002fa237289a4a07a9e7 \ + --hash=sha256:0996c83b1cb43c00e8c87835a284f9057bc647abd42b5871e5f941d30010c832 \ + --hash=sha256:0ecce0544d3db91a40f8b57ae26928c02130a997b540f908cefd4d279d6c5848 \ + --hash=sha256:10c8fb9966f84737115513fecbaf257f9553d067a7dd45a69c2c7e5339e6a8dc \ + --hash=sha256:142c2cd91794b79fd0ce113bd658993b7ede0fe93057668c2f98a45ca00b7e91 \ + --hash=sha256:14ef0f4ac3728ffd85bfc58e2f2f48fb4ef4fa871876f13a73a7381d10a9f77c \ + --hash=sha256:1908c3e5a5ef86b23391448b47759298f87f997c3bd153a770828f58c2bb4630 \ + --hash=sha256:1bcd79be209313b270b0e1a51c67ae1af28adad0e0c7e84c3ad4b5cb57aaa75b \ + --hash=sha256:23d2299ed007812cccc1ecef018db7d922733382561230de1f3954db28433977 \ + --hash=sha256:23daa1ab0512bafdd677eb1bfc9611d8ffbe2e328895671e64cb34166bc1b8c8 \ + --hash=sha256:2567cb48dc03e5b246927ab35cbb343376e24501260a9b5e30b8e255dca0d1d2 \ + --hash=sha256:264720fc288c86039c091a4ad63419a5d7cabbf1c1c9933336a957ed2483e570 \ + --hash=sha256:2987cf827011907d3dfd109f1be0d61e173d68b1270107bb0e89f2fca7f2ed6b \ + --hash=sha256:2a85a1fc4ed11ea0eb0a632459ce004a2d14afc085a50ae3463cd3dfe1ce43fc \ + --hash=sha256:3d1fe2e8df3268dd6734dba33ededae72ad5c3a859b9577bc00b715759c5aaab \ + --hash=sha256:4353ee891a1834567e0302d4bd5e60f531912179578c36f3d0430f8c5e16b456 \ + --hash=sha256:44d63ce643f34a903f09ff7ca355aae019a3730c7afd6a3c037d569beeb5d151 \ + --hash=sha256:467dbd7443bda08338fc8ad701ed38cef48194017554f4c798b0a237904b3f99 \ + --hash=sha256:4862cb2c702b1f905c0503b72d9d4daf65a7fdf5a9e84560e563471e57a56949 \ + --hash=sha256:4bf3cc46d553693382d2abf5f5bd493d71bb0f50a7c0beab18aa13a5545c8900 \ + --hash=sha256:4dcee2f921a8632636d1c37f1bbdb8841d15666d119aa61e5399c5268e7ce02e \ + --hash=sha256:50d1d1ee813d2d1a3baf2873634ba506b263032418d16287c92ec1cc9c1a00cb \ + --hash=sha256:5335890fea9f9e6c4fdf8683061b9ccdcbe47c6dc03ab8e9b68c10acf78be78d \ + --hash=sha256:558a9e5a6f3cc1e20b3168fb1dc802d0d8fa40731f6e9932dcc52bbcfbd37111 \ + --hash=sha256:5e419e0db70991b6ba037b70c1d5bbe92b20ddf82f31ad01d77a347ed9781398 \ + --hash=sha256:6066c638cdf85ff92fc6f932d2d73c93a0e03492cdfa8778e6d58c489a3d7259 \ + --hash=sha256:6ae8aec43117a645a31e5f60e9e3a0797492e747823b9bda6972d521b436b4e8 \ + --hash=sha256:6b6f8ea465524aa4c7420c7cc4ca7d46fe00981de8debc67b1cc2e9957bb5b9d \ + --hash=sha256:7b16ccaeff0ed4355dfb76fe1ea7a5d6d03b5ad27f295f77ee0557bc20a72495 \ + --hash=sha256:7d13cc340b3b82134f8038a2bfe7137093693dcad8ba5773da18f95ad6b77a8a \ + --hash=sha256:7ef28f2e7a016b29792fe0a2dd04dec75725b32a1264e390c366103f834a9c3a \ + --hash=sha256:8185c8497d45164e256376f9da5aed2bb26ff636c798c9dabe313b90e9f25b28 \ + --hash=sha256:81d957b069fed1890953c3b9c3895c7689960f233eea9a1d9607f71ce7f00b2c \ + --hash=sha256:86f86b3b785487c7760247bcdac0b11aa8bf13245a13ed05206286135877564b \ + --hash=sha256:8e92c8de62b40bfce91d5e12c6e8b15434da268979b1af1a6589463549d491e6 \ + --hash=sha256:8f2f8dcf5ab9f80fb970c6fd780b398efb2f50c1962485eb8d3ab07788595a48 \ + --hash=sha256:8f4a0b0a3c86ba9193a8e23bb18f100d647bf192390ae195d84dfa0a10fb6244 \ + --hash=sha256:8f7a74cf3a80f0c3b0ec75b0c650b2f0a894a2cec57ef75f6f72c1e82cdac61d \ + --hash=sha256:955c62571de0b181d9e9e0a0303c8bc90d47670a5eff54cf71bf5da61d1899cf \ + --hash=sha256:983de36b5a83fe9222f4f7dcd071f9b1ac6f3f17c0af0238dadfb8229588f890 \ + --hash=sha256:9b15e5d17812d4d629ff576699954f74e2cc24a02a4fc401882dd94f81daba45 \ + --hash=sha256:9b4346b1225be26def3ccc6c965751c74868f0578cbcba293c8ae9168483d811 \ + --hash=sha256:9b5fb1ecb2c35362eab2dbd354fd1efa5a8440d3e73a68be11921042a0edc0ff \ + --hash=sha256:a10b8eebdaca6e9fdbaf88b5aefc0e324b763a5f40b1266532590d5afb268a4c \ + --hash=sha256:a1f5cc41a570269d1be7a676655875e3a53de4992a9fa38efb7983e97cf73d7c \ + --hash=sha256:a3bfe73a32bd0bdb9a87d586b05a23c0a1729205d79df66dee65bb2e40d671ba \ + --hash=sha256:a487b71fbf8a9edb72a8c7a456dda0184642d99cd007bc819c0b7ab93676a8ee \ + --hash=sha256:a609849aca463074c17de9cda173c276eb8fee9e441053529e7b9e249dc8b8ee \ + --hash=sha256:a76f1d679beccccdf8c1958e732a1dfcd6e749f8821ee59d7bec009ac308c029 \ + --hash=sha256:a7ea4e1fbd253e5c68ea0fe63d08577f9d288a73f17d82f652ebc61fa48d878d \ + --hash=sha256:ab2a2a9cd7d044e1a11ca64a86ad3361d318176924bbe5152fbc69f99be20b8c \ + --hash=sha256:ad3fc2d859a709baf9dd9607bb72f599b1cfb8a39eafd41307d0c3c4766763cb \ + --hash=sha256:add4e0a000858fe9bb39ed55f31085506a5c38363e6eb4a1e5943a10c2bfc3d1 \ + --hash=sha256:aea05f701ccd2a76b34f0daf47ca5068176ff553510b614770c90d76ac88df06 \ + --hash=sha256:b8bb331aad734b059c4b450cd0a225652f16889e286b2345af5e2c3c625c3d85 \ + --hash=sha256:bdb9f3d865b2dafe7f9ad7f30ef563c80d0ddd2fdc8cc9b8e4f242f475e34d75 \ + --hash=sha256:c084841b879c4d9b9fa34e5d5263994f21aea7fd9c6add29194dbb41a6210536 \ + --hash=sha256:c48c7e150c095d5e3cea7452347ba26094be905d6099d24f9319a8b475fcd3e0 \ + --hash=sha256:c7e5070cf3ec92d98f57574da0224f8c73faf1ddd6d8afa0b8c9f6e86997bc74 \ + --hash=sha256:c87654e29a35938baead1c4559858f346f4a2a7588574a14d784f300ffba0efd \ + --hash=sha256:c8ffe3431d98cc043a14e88b21288b5ec7ee12cb01260e94385887f285ef9389 \ + --hash=sha256:c9faaebb1c6212c20afd8043cd6ed9de0a47d77f91a6b5b48f4e46ed470703fe \ + --hash=sha256:d1454899909d63cc9199a89fcc4f81bdd9004aef577d4ffc022e600c412d57f3 \ + --hash=sha256:d6b7d93657332c817b8d674ef6bf1ab7796b4f7ce05e420fd45bd258a72ac804 \ + --hash=sha256:dbc4900e95a98fc0729523be9d93a8fedebb026f32ed9ffc08acd82e3e181503 \ + --hash=sha256:e40d20ae1722d6b8ea6acf4597e789604649dcd9c295eb7361a28225bc2e9e12 \ + --hash=sha256:e4836c5645f40fbdc275e5670819bde5ab5f2e882290d304e3c6ddab1576a6d0 \ + --hash=sha256:e4ab69fa37f8090f2d971a5d2bc606c7401170dbdae083c393d6cbf439cb45b8 \ + --hash=sha256:ef7699b7a5a244b1119f85c5bbc13f152cd38240cbb2baa19b769433bae98e50 \ + --hash=sha256:f0c8fe5aeadd8a0e5b0598f8a6ee3533135ca50fd3f20f130f9d72baf5c6ac58 \ + --hash=sha256:f2cb63c49bc96847c3bb8dca350970e4dcd19936f391cfdfd057dcb37c4fa97e \ + --hash=sha256:f4d4efb218264ecf0f8516196c9e2d1a0679d9fb3bb15df1155a35220062eba8 \ + --hash=sha256:f683dcd49e2494a7535e30f779aa1ad6e3732a019d80abe1309ea91ccd3230e3 \ + --hash=sha256:f83c971eb9d2358b6a18da51dc0ae00556ac7c73104dde16e9e14c15aaf685ca \ + --hash=sha256:f8df32a99cc46eb0ee90afd9ada113ae2cafe7e8d673686cf03ec53e49635439 \ + --hash=sha256:ff1fb2dfef035549565a4124998fadcb7a3d4957131ddf004a56edeb029626b3 # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ @@ -1783,79 +1762,79 @@ mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 # via mypy -numpy==2.4.0 \ - --hash=sha256:009bd0ea12d3c784b6639a8457537016ce5172109e585338e11334f6a7bb88ee \ - --hash=sha256:02a2038eb27f9443a8b266a66911e926566b5a6ffd1a689b588f7f35b81e7dc3 \ - --hash=sha256:0804a8e4ab070d1d35496e65ffd3cf8114c136a2b81f61dfab0de4b218aacfd5 \ - --hash=sha256:0feafc9e03128074689183031181fac0897ff169692d8492066e949041096548 \ - --hash=sha256:1889b3a3f47a7b5bee16bc25a2145bd7cb91897f815ce3499db64c7458b6d91d \ - --hash=sha256:1d8f9fde5f6dc1b6fc34df8162f3b3079365468703fee7f31d4e0cc8c63baed9 \ - --hash=sha256:1ee32359fb7543b7b7bd0b2f46294db27e29e7bbdf70541e81b190836cd83ded \ - --hash=sha256:20c115517513831860c573996e395707aa9fb691eb179200125c250e895fcd93 \ - --hash=sha256:21555da4ec4a0c942520ead42c3b0dc9477441e085c42b0fbdd6a084869a6f6b \ - --hash=sha256:23a3e9d1a6f360267e8fbb38ba5db355a6a7e9be71d7fce7ab3125e88bb646c8 \ - --hash=sha256:2a8b6bb8369abefb8bd1801b054ad50e02b3275c8614dc6e5b0373c305291037 \ - --hash=sha256:2e284ca13d5a8367e43734148622caf0b261b275673823593e3e3634a6490f83 \ - --hash=sha256:2f585f52b2baf07ff3356158d9268ea095e221371f1074fadea2f42544d58b4d \ - --hash=sha256:316b2f2584682318539f0bcaca5a496ce9ca78c88066579ebd11fd06f8e4741e \ - --hash=sha256:32ed06d0fe9cae27d8fb5f400c63ccee72370599c75e683a6358dd3a4fb50aaf \ - --hash=sha256:355354388cba60f2132df297e2d53053d4063f79077b67b481d21276d61fc4df \ - --hash=sha256:35ddc8f4914466e6fc954c76527aa91aa763682a4f6d73249ef20b418fe6effb \ - --hash=sha256:36667db4d6c1cea79c8930ab72fadfb4060feb4bfe724141cd4bd064d2e5f8ce \ - --hash=sha256:36cbfb13c152b1c7c184ddac43765db8ad672567e7bafff2cc755a09917ed2e6 \ - --hash=sha256:39699233bc72dd482da1415dcb06076e32f60eddc796a796c5fb6c5efce94667 \ - --hash=sha256:39b19251dec4de8ff8496cd0806cbe27bf0684f765abb1f4809554de93785f2d \ - --hash=sha256:3d857f55e7fdf7c38ab96c4558c95b97d1c685be6b05c249f5fdafcbd6f9899e \ - --hash=sha256:3de19cfecd1465d0dcf8a5b5ea8b3155b42ed0b639dba4b71e323d74f2a3be5e \ - --hash=sha256:3f3096405acc48887458bbf9f6814d43785ac7ba2a57ea6442b581dedbc60ce6 \ - --hash=sha256:40483b2f2d3ba7aad426443767ff5632ec3156ef09742b96913787d13c336471 \ - --hash=sha256:413aa561266a4be2d06cd2b9665e89d9f54c543f418773076a76adcf2af08bc7 \ - --hash=sha256:44aba2f0cafd287871a495fb3163408b0bd25bbce135c6f621534a07f4f7875c \ - --hash=sha256:49ff32b09f5aa0cd30a20c2b39db3e669c845589f2b7fc910365210887e39344 \ - --hash=sha256:4d1cfce39e511069b11e67cd0bd78ceff31443b7c9e5c04db73c7a19f572967c \ - --hash=sha256:57c540ed8fb1f05cb997c6761cd56db72395b0d6985e90571ff660452ade4f98 \ - --hash=sha256:5f48cb3e88fbc294dc90e215d86fbaf1c852c63dbdb6c3a3e63f45c4b57f7344 \ - --hash=sha256:5fe44e277225fd3dff6882d86d3d447205d43532c3627313d17e754fb3905a0e \ - --hash=sha256:60e8c196cd82cbbd4f130b5290007e13e6de3eca79f0d4d38014769d96a7c475 \ - --hash=sha256:65167da969cd1ec3a1df31cb221ca3a19a8aaa25370ecb17d428415e93c1935e \ - --hash=sha256:680060061adb2d74ce352628cb798cfdec399068aa7f07ba9fb818b2b3305f98 \ - --hash=sha256:6bbaebf0d11567fa8926215ae731e1d58e6ec28a8a25235b8a47405d301332db \ - --hash=sha256:6c05483c3136ac4c91b4e81903cb53a8707d316f488124d0398499a4f8e8ef51 \ - --hash=sha256:6dc8b7e2f4eb184b37655195f421836cfae6f58197b67e3ffc501f1333d993fa \ - --hash=sha256:6e504f7b16118198f138ef31ba24d985b124c2c469fe8467007cf30fd992f934 \ - --hash=sha256:74623f2ab5cc3f7c886add4f735d1031a1d2be4a4ae63c0546cfd74e7a31ddf6 \ - --hash=sha256:77f0d13fa87036d7553bf81f0e1fe3ce68d14c9976c9851744e4d3e91127e95f \ - --hash=sha256:85eef4cb5625c47ee6425c58a3502555e10f45ee973da878ac8248ad58c136f3 \ - --hash=sha256:882567b7ae57c1b1a0250208cc21a7976d8cbcc49d5a322e607e6f09c9e0bd53 \ - --hash=sha256:8b986403023c8f3bf8f487c2e6186afda156174d31c175f747d8934dfddf3479 \ - --hash=sha256:8cfa5f29a695cb7438965e6c3e8d06e0416060cf0d709c1b1c1653a939bf5c2a \ - --hash=sha256:8eafe7c36c8430b7794edeab3087dec7bf31d634d92f2af9949434b9d1964cba \ - --hash=sha256:9198f447e1dc5647d07c9a6bbe2063cc0132728cc7175b39dbc796da5b54920d \ - --hash=sha256:92190db305a6f48734d3982f2c60fa30d6b5ee9bff10f2887b930d7b40119f4c \ - --hash=sha256:927ccf5cd17c48f801f4ed43a7e5673a2724bd2171460be3e3894e6e332ef83a \ - --hash=sha256:98e81648e0b36e325ab67e46b5400a7a6d4a22b8a7c8e8bbfe20e7db7906bf95 \ - --hash=sha256:9a818668b674047fd88c4cddada7ab8f1c298812783e8328e956b78dc4807f9f \ - --hash=sha256:a152d86a3ae00ba5f47b3acf3b827509fd0b6cb7d3259665e63dafbad22a75ea \ - --hash=sha256:a2718c1de8504121714234b6f8241d0019450353276c88b9453c9c3d92e101db \ - --hash=sha256:a39fb973a726e63223287adc6dafe444ce75af952d711e400f3bf2b36ef55a7b \ - --hash=sha256:a899699294f28f7be8992853c0c60741f16ff199205e2e6cdca155762cbaa59d \ - --hash=sha256:a8fdfed3deaf1928fb7667d96e0567cdf58c2b370ea2ee7e586aa383ec2cb346 \ - --hash=sha256:aabb081ca0ec5d39591fc33018cd4b3f96e1a2dd6756282029986d00a785fba4 \ - --hash=sha256:b1f5b45829ac1848893f0ddf5cb326110604d6df96cdc255b0bf9edd154104d4 \ - --hash=sha256:b48e35f4ab6f6a7597c46e301126ceba4c44cd3280e3750f85db48b082624fa4 \ - --hash=sha256:b54c83f1c0c0f1d748dca0af516062b8829d53d1f0c402be24b4257a9c48ada6 \ - --hash=sha256:ba0cb30acd3ef11c94dc27fbfba68940652492bc107075e7ffe23057f9425681 \ - --hash=sha256:bb50ce5fb202a26fd5404620e7ef820ad1ab3558b444cb0b55beb7ef66cd2d63 \ - --hash=sha256:c95eb6db2884917d86cde0b4d4cf31adf485c8ec36bf8696dd66fa70de96f36b \ - --hash=sha256:d0ffd9e2e4441c96a9c91ec1783285d80bf835b677853fc2770a89d50c1e48ac \ - --hash=sha256:d57b5046c120561ba8fa8e4030fbb8b822f3063910fa901ffadf16e2b7128ad6 \ - --hash=sha256:d9e6a7664ddd9746e20b7325351fe1a8408d0a2bf9c63b5e898290ddc8f09544 \ - --hash=sha256:dc578891de1db95b2a35001b695451767b580bb45753717498213c5ff3c41d63 \ - --hash=sha256:e0434aa22c821f44eeb4c650b81c7fbdd8c0122c6c4b5a576a76d5a35625ecd9 \ - --hash=sha256:e06a922a469cae9a57100864caf4f8a97a1026513793969f8ba5b63137a35d25 \ - --hash=sha256:e493962256a38f58283de033d8af176c5c91c084ea30f15834f7545451c42059 \ - --hash=sha256:ecb0019d44f4cdb50b676c5d0cb4b1eae8e15d1ed3d3e6639f986fc92b2ec52c \ - --hash=sha256:f935c4493eda9069851058fa0d9e39dbf6286be690066509305e52912714dbb2 +numpy==2.4.1 \ + --hash=sha256:0093e85df2960d7e4049664b26afc58b03236e967fb942354deef3208857a04c \ + --hash=sha256:09aa8a87e45b55a1c2c205d42e2808849ece5c484b2aab11fecabec3841cafba \ + --hash=sha256:0cce2a669e3c8ba02ee563c7835f92c153cf02edff1ae05e1823f1dde21b16a5 \ + --hash=sha256:0e6e8f9d9ecf95399982019c01223dc130542960a12edfa8edd1122dfa66a8a8 \ + --hash=sha256:0f118ce6b972080ba0758c6087c3617b5ba243d806268623dc34216d69099ba0 \ + --hash=sha256:178de8f87948163d98a4c9ab5bee4ce6519ca918926ec8df195af582de28544d \ + --hash=sha256:18e14c4d09d55eef39a6ab5b08406e84bc6869c1e34eef45564804f90b7e0574 \ + --hash=sha256:2023ef86243690c2791fd6353e5b4848eedaa88ca8a2d129f462049f6d484696 \ + --hash=sha256:20d4649c773f66cc2fc36f663e091f57c3b7655f936a4c681b4250855d1da8f5 \ + --hash=sha256:2302dc0224c1cbc49bb94f7064f3f923a971bfae45c33870dcbff63a2a550505 \ + --hash=sha256:26f0bcd9c79a00e339565b303badc74d3ea2bd6d52191eeca5f95936cad107d0 \ + --hash=sha256:297c72b1b98100c2e8f873d5d35fb551fce7040ade83d67dd51d38c8d42a2162 \ + --hash=sha256:2f44de05659b67d20499cbc96d49f2650769afcb398b79b324bb6e297bfe3844 \ + --hash=sha256:2ffd257026eb1b34352e749d7cc1678b5eeec3e329ad8c9965a797e08ccba205 \ + --hash=sha256:382ad67d99ef49024f11d1ce5dcb5ad8432446e4246a4b014418ba3a1175a1f4 \ + --hash=sha256:3869ea1ee1a1edc16c29bbe3a2f2a4e515cc3a44d43903ad41e0cacdbaf733dc \ + --hash=sha256:3d1a100e48cb266090a031397863ff8a30050ceefd798f686ff92c67a486753d \ + --hash=sha256:423797bdab2eeefbe608d7c1ec7b2b4fd3c58d51460f1ee26c7500a1d9c9ee93 \ + --hash=sha256:42d7dd5fa36d16d52a84f821eb96031836fd405ee6955dd732f2023724d0aa01 \ + --hash=sha256:49e792ec351315e16da54b543db06ca8a86985ab682602d90c60ef4ff4db2a9c \ + --hash=sha256:4e53170557d37ae404bf8d542ca5b7c629d6efa1117dac6a83e394142ea0a43f \ + --hash=sha256:4f1b68ff47680c2925f8063402a693ede215f0257f02596b1318ecdfb1d79e33 \ + --hash=sha256:4f9c360ecef085e5841c539a9a12b883dff005fbd7ce46722f5e9cef52634d82 \ + --hash=sha256:529050522e983e00a6c1c6b67411083630de8b57f65e853d7b03d9281b8694d2 \ + --hash=sha256:52b5f61bdb323b566b528899cc7db2ba5d1015bda7ea811a8bcf3c89c331fa42 \ + --hash=sha256:538bf4ec353709c765ff75ae616c34d3c3dca1a68312727e8f2676ea644f8509 \ + --hash=sha256:5adf01965456a664fc727ed69cc71848f28d063217c63e1a0e200a118d5eec9a \ + --hash=sha256:5b55aa56165b17aaf15520beb9cbd33c9039810e0d9643dd4379e44294c7303e \ + --hash=sha256:5d558123217a83b2d1ba316b986e9248a1ed1971ad495963d555ccd75dcb1556 \ + --hash=sha256:5de60946f14ebe15e713a6f22850c2372fa72f4ff9a432ab44aa90edcadaa65a \ + --hash=sha256:62fea415f83ad8fdb6c20840578e5fbaf5ddd65e0ec6c3c47eda0f69da172510 \ + --hash=sha256:6436cffb4f2bf26c974344439439c95e152c9a527013f26b3577be6c2ca64295 \ + --hash=sha256:6461de5113088b399d655d45c3897fa188766415d0f568f175ab071c8873bd73 \ + --hash=sha256:69e7419c9012c4aaf695109564e3387f1259f001b4326dfa55907b098af082d3 \ + --hash=sha256:71abbea030f2cfc3092a0ff9f8c8fdefdc5e0bf7d9d9c99663538bb0ecdac0b9 \ + --hash=sha256:7211b95ca365519d3596a1d8688a95874cc94219d417504d9ecb2df99fa7bfa8 \ + --hash=sha256:727c6c3275ddefa0dc078524a85e064c057b4f4e71ca5ca29a19163c607be745 \ + --hash=sha256:79e9e06c4c2379db47f3f6fc7a8652e7498251789bf8ff5bd43bf478ef314ca2 \ + --hash=sha256:7ad270f438cbdd402c364980317fb6b117d9ec5e226fff5b4148dd9aa9fc6e02 \ + --hash=sha256:7d5d7999df434a038d75a748275cd6c0094b0ecdb0837342b332a82defc4dc4d \ + --hash=sha256:8097529164c0f3e32bb89412a0905d9100bf434d9692d9fc275e18dcf53c9344 \ + --hash=sha256:82c55962006156aeef1629b953fd359064aa47e4d82cfc8e67f0918f7da3344f \ + --hash=sha256:8361ea4220d763e54cff2fbe7d8c93526b744f7cd9ddab47afeff7e14e8503be \ + --hash=sha256:899d2c18024984814ac7e83f8f49d8e8180e2fbe1b2e252f2e7f1d06bea92425 \ + --hash=sha256:8ad35f20be147a204e28b6a0575fbf3540c5e5f802634d4258d55b1ff5facce1 \ + --hash=sha256:8f085da926c0d491ffff3096f91078cc97ea67e7e6b65e490bc8dcda65663be2 \ + --hash=sha256:9171a42fcad32dcf3fa86f0a4faa5e9f8facefdb276f54b8b390d90447cff4e2 \ + --hash=sha256:92a0e65272fd60bfa0d9278e0484c2f52fe03b97aedc02b357f33fe752c52ffb \ + --hash=sha256:941c2a93313d030f219f3a71fd3d91a728b82979a5e8034eb2e60d394a2b83f9 \ + --hash=sha256:98b35775e03ab7f868908b524fc0a84d38932d8daf7b7e1c3c3a1b6c7a2c9f15 \ + --hash=sha256:a1ceafc5042451a858231588a104093474c6a5c57dcc724841f5c888d237d690 \ + --hash=sha256:a73044b752f5d34d4232f25f18160a1cc418ea4507f5f11e299d8ac36875f8a0 \ + --hash=sha256:a7870e8c5fc11aef57d6fea4b4085e537a3a60ad2cdd14322ed531fdca68d261 \ + --hash=sha256:a92f227dbcdc9e4c3e193add1a189a9909947d4f8504c576f4a732fd0b54240a \ + --hash=sha256:ac08c63cb7779b85e9d5318e6c3518b424bc1f364ac4cb2c6136f12e5ff2dccc \ + --hash=sha256:b6bcf39112e956594b3331316d90c90c90fb961e39696bda97b89462f5f3943f \ + --hash=sha256:c0faba4a331195bfa96f93dd9dfaa10b2c7aa8cda3a02b7fd635e588fe821bf5 \ + --hash=sha256:ce9ce141a505053b3c7bce3216071f3bf5c182b8b28930f14cd24d43932cd2df \ + --hash=sha256:cf6470d91d34bf669f61d515499859fa7a4c2f7c36434afb70e82df7217933f9 \ + --hash=sha256:d3703409aac693fa82c0aee023a1ae06a6e9d065dba10f5e8e80f642f1e9d0a2 \ + --hash=sha256:d3e3087f53e2b4428766b54932644d148613c5a595150533ae7f00dab2f319a8 \ + --hash=sha256:d3f8f0df9f4b8be57b3bf74a1d087fec68f927a2fab68231fdb442bf2c12e426 \ + --hash=sha256:d797454e37570cfd61143b73b8debd623c3c0952959adb817dd310a483d58a1b \ + --hash=sha256:e1a27bb1b2dee45a2a53f5ca6ff2d1a7f135287883a1689e930d44d1ff296c87 \ + --hash=sha256:e3bd2cb07841166420d2fa7146c96ce00cb3410664cbc1a6be028e456c4ee220 \ + --hash=sha256:e7b6b5e28bbd47b7532698e5db2fe1db693d84b58c254e4389d99a27bb9b8f6b \ + --hash=sha256:e867df947d427cdd7a60e3e271729090b0f0df80f5f10ab7dd436f40811699c3 \ + --hash=sha256:ea66d2b41ca4a1630aae5507ee0a71647d3124d1741980138aa8f28f44dac36e \ + --hash=sha256:edee228f76ee2dab4579fad6f51f6a305de09d444280109e0f75df247ff21501 \ + --hash=sha256:f0a90aba7d521e6954670550e561a4cb925713bd944445dbe9e729b71f6cabee \ + --hash=sha256:f93bc6892fe7b0663e5ffa83b61aab510aacffd58c16e012bb9352d489d90cb7 \ + --hash=sha256:fb1461c99de4d040666ca0444057b06541e5642f800b71c56e6ea92d6a853a0c # via # feast (setup.py) # dask @@ -1863,16 +1842,15 @@ numpy==2.4.0 \ # ibis-framework # pandas # pandas-gbq - # pyarrow oauthlib==3.3.1 \ --hash=sha256:0f0f8aa759826a193cf66c12ea1af1637f87b9b4622d46e866952bb022e538c9 \ --hash=sha256:88119c938d2b8fb88561af5f6ee0eec8cc8d552b7bb1f712743136eb7523b7a1 # via # kubernetes # requests-oauthlib -packaging==24.2 \ - --hash=sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759 \ - --hash=sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f +packaging==25.0 \ + --hash=sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484 \ + --hash=sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f # via # dask # db-dtypes @@ -1881,7 +1859,6 @@ packaging==24.2 \ # gunicorn # hatchling # ibis-framework - # ibis-substrait # pandas-gbq # pyproject-metadata # scikit-build-core @@ -1953,9 +1930,9 @@ pandas==2.3.3 \ # pandas-gbq # pymilvus # snowflake-connector-python -pandas-gbq==0.32.0 \ - --hash=sha256:249623d574c65e98cf19b7b7ecda97729f4f0a843eae3a0a82d9ef50adcdf4ef \ - --hash=sha256:28018ff09f2e49ab2b01a11329bd4e562fd65da406030b4a8001a3a4e80a1e34 +pandas-gbq==0.33.0 \ + --hash=sha256:499ad18a7b1917e2cc04bbd763ec37c11ecc49030348c45cebb9cbbdb7f909af \ + --hash=sha256:61357e11d73e0ae57cbff31e71fc3ed83da3d16b58b653f715b32ad760527e34 # via google-cloud-bigquery parsy==2.2 \ --hash=sha256:5e981613d9d2d8b68012d1dd0afe928967bea2e4eefdb76c2f545af0dd02a9e7 \ @@ -1976,9 +1953,9 @@ patchelf==0.17.2.4 \ --hash=sha256:d842b51f0401460f3b1f3a3a67d2c266a8f515a5adfbfa6e7b656cb3ac2ed8bc \ --hash=sha256:d9b35ebfada70c02679ad036407d9724ffe1255122ba4ac5e4be5868618a5689 # via feast (setup.py) -pathspec==0.12.1 \ - --hash=sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 \ - --hash=sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712 +pathspec==1.0.3 \ + --hash=sha256:bac5cf97ae2c2876e2d25ebb15078eb04d76e4b98921ee31c6f85ade8b59444d \ + --hash=sha256:e80767021c1cc524aa3fb14bedda9c34406591343cc42797b386ce7b9354fb6c # via # hatchling # mypy @@ -1999,9 +1976,9 @@ poetry-dynamic-versioning==1.9.1 \ --hash=sha256:65a0c814e6d30d4807734a3c34edf261fd7cc3b340dbd23b6a33ee41f7d0b547 \ --hash=sha256:d6e7b9df817aa2ca4946cd695c6c89e1379d2e6c640f008a9b6170d081a9da48 # via feast (setup.py) -prometheus-client==0.23.1 \ - --hash=sha256:6ae8f9081eaaaf153a2e959d2e6c4f4fb57b12ef76c8c7980202f1e57b48b2ce \ - --hash=sha256:dd1913e6e76b59cfe44e7a4b83e01afc9873c1bdfd2ed8739f1e76aeca115f99 +prometheus-client==0.24.0 \ + --hash=sha256:4ab6d4fb5a1b25ad74b58e6271857e356fff3399473e599d227ab5d0ce6637f0 \ + --hash=sha256:726b40c0d499f4904d4b5b7abe8d43e6aff090de0d468ae8f2226290b331c667 # via feast (setup.py) propcache==0.4.1 \ --hash=sha256:0002004213ee1f36cfb3f9a42b5066100c44276b9b72b4e1504cddd3d692e86e \ @@ -2137,17 +2114,17 @@ proto-plus==1.27.0 \ # google-cloud-bigquery-storage # google-cloud-bigtable # google-cloud-datastore -protobuf==6.33.2 \ - --hash=sha256:1f8017c48c07ec5859106533b682260ba3d7c5567b1ca1f24297ce03384d1b4f \ - --hash=sha256:2981c58f582f44b6b13173e12bb8656711189c2a70250845f264b877f00b1913 \ - --hash=sha256:56dc370c91fbb8ac85bc13582c9e373569668a290aa2e66a590c2a0d35ddb9e4 \ - --hash=sha256:7109dcc38a680d033ffb8bf896727423528db9163be1b6a02d6a49606dcadbfe \ - --hash=sha256:7636aad9bb01768870266de5dc009de2d1b936771b38a793f73cbbf279c91c5c \ - --hash=sha256:87eb388bd2d0f78febd8f4c8779c79247b26a5befad525008e49a6955787ff3d \ - --hash=sha256:8cd7640aee0b7828b6d03ae518b5b4806fdfc1afe8de82f79c3454f8aef29872 \ - --hash=sha256:b5d3b5625192214066d99b2b605f5783483575656784de223f00a8d00754fc0e \ - --hash=sha256:d9b19771ca75935b3a4422957bc518b0cecb978b31d1dd12037b088f6bcc0e43 \ - --hash=sha256:fc2a0e8b05b180e5fc0dd1559fe8ebdae21a27e81ac77728fb6c42b12c7419b4 +protobuf==6.33.4 \ + --hash=sha256:0f12ddbf96912690c3582f9dffb55530ef32015ad8e678cd494312bd78314c4f \ + --hash=sha256:1fe3730068fcf2e595816a6c34fe66eeedd37d51d0400b72fabc848811fdc1bc \ + --hash=sha256:2fe67f6c014c84f655ee06f6f66213f9254b3a8b6bda6cda0ccd4232c73c06f0 \ + --hash=sha256:3df850c2f8db9934de4cf8f9152f8dc2558f49f298f37f90c517e8e5c84c30e9 \ + --hash=sha256:757c978f82e74d75cba88eddec479df9b99a42b31193313b75e492c06a51764e \ + --hash=sha256:8f11ffae31ec67fc2554c2ef891dcb561dae9a2a3ed941f9e134c2db06657dbc \ + --hash=sha256:918966612c8232fc6c24c78e1cd89784307f5814ad7506c308ee3cf86662850d \ + --hash=sha256:955478a89559fa4568f5a81dce77260eabc5c686f9e8366219ebd30debf06aa6 \ + --hash=sha256:c7c64f259c618f0bef7bee042075e390debbf9682334be2b67408ec7c1c09ee6 \ + --hash=sha256:dc2e61bca3b10470c1912d166fe0af67bfc20eb55971dcef8dfa48ce14f0ed91 # via # feast (setup.py) # google-api-core @@ -2161,7 +2138,6 @@ protobuf==6.33.2 \ # grpcio-status # proto-plus # pymilvus - # substrait psutil==7.2.1 \ --hash=sha256:05cc68dbb8c174828624062e73078e7e35406f4ca2d0866c272c2410d8ef06d1 \ --hash=sha256:08a2f175e48a898c8eb8eace45ce01777f4785bc744c90aa2cc7f2fa5462a266 \ @@ -2198,43 +2174,57 @@ psycopg-pool==3.3.0 \ --hash=sha256:2e44329155c410b5e8666372db44276a8b1ebd8c90f1c3026ebba40d4bc81063 \ --hash=sha256:fa115eb2860bd88fce1717d75611f41490dec6135efb619611142b24da3f6db5 # via psycopg -pyarrow==17.0.0 \ - --hash=sha256:0071ce35788c6f9077ff9ecba4858108eebe2ea5a3f7cf2cf55ebc1dbc6ee24a \ - --hash=sha256:02dae06ce212d8b3244dd3e7d12d9c4d3046945a5933d28026598e9dbbda1fca \ - --hash=sha256:0b72e87fe3e1db343995562f7fff8aee354b55ee83d13afba65400c178ab2597 \ - --hash=sha256:0cdb0e627c86c373205a2f94a510ac4376fdc523f8bb36beab2e7f204416163c \ - --hash=sha256:13d7a460b412f31e4c0efa1148e1d29bdf18ad1411eb6757d38f8fbdcc8645fb \ - --hash=sha256:1c8856e2ef09eb87ecf937104aacfa0708f22dfeb039c363ec99735190ffb977 \ - --hash=sha256:2e19f569567efcbbd42084e87f948778eb371d308e137a0f97afe19bb860ccb3 \ - --hash=sha256:32503827abbc5aadedfa235f5ece8c4f8f8b0a3cf01066bc8d29de7539532687 \ - --hash=sha256:392bc9feabc647338e6c89267635e111d71edad5fcffba204425a7c8d13610d7 \ - --hash=sha256:42bf93249a083aca230ba7e2786c5f673507fa97bbd9725a1e2754715151a204 \ - --hash=sha256:4beca9521ed2c0921c1023e68d097d0299b62c362639ea315572a58f3f50fd28 \ - --hash=sha256:5984f416552eea15fd9cee03da53542bf4cddaef5afecefb9aa8d1010c335087 \ - --hash=sha256:6b244dc8e08a23b3e352899a006a26ae7b4d0da7bb636872fa8f5884e70acf15 \ - --hash=sha256:757074882f844411fcca735e39aae74248a1531367a7c80799b4266390ae51cc \ - --hash=sha256:75c06d4624c0ad6674364bb46ef38c3132768139ddec1c56582dbac54f2663e2 \ - --hash=sha256:7c7916bff914ac5d4a8fe25b7a25e432ff921e72f6f2b7547d1e325c1ad9d155 \ - --hash=sha256:9b564a51fbccfab5a04a80453e5ac6c9954a9c5ef2890d1bcf63741909c3f8df \ - --hash=sha256:9b8a823cea605221e61f34859dcc03207e52e409ccf6354634143e23af7c8d22 \ - --hash=sha256:9ba11c4f16976e89146781a83833df7f82077cdab7dc6232c897789343f7891a \ - --hash=sha256:a155acc7f154b9ffcc85497509bcd0d43efb80d6f733b0dc3bb14e281f131c8b \ - --hash=sha256:a27532c38f3de9eb3e90ecab63dfda948a8ca859a66e3a47f5f42d1e403c4d03 \ - --hash=sha256:a48ddf5c3c6a6c505904545c25a4ae13646ae1f8ba703c4df4a1bfe4f4006bda \ - --hash=sha256:a5c8b238d47e48812ee577ee20c9a2779e6a5904f1708ae240f53ecbee7c9f07 \ - --hash=sha256:af5ff82a04b2171415f1410cff7ebb79861afc5dae50be73ce06d6e870615204 \ - --hash=sha256:b0c6ac301093b42d34410b187bba560b17c0330f64907bfa4f7f7f2444b0cf9b \ - --hash=sha256:d7d192305d9d8bc9082d10f361fc70a73590a4c65cf31c3e6926cd72b76bc35c \ - --hash=sha256:da1e060b3876faa11cee287839f9cc7cdc00649f475714b8680a05fd9071d545 \ - --hash=sha256:db023dc4c6cae1015de9e198d41250688383c3f9af8f565370ab2b4cb5f62655 \ - --hash=sha256:dc5c31c37409dfbc5d014047817cb4ccd8c1ea25d19576acf1a001fe07f5b420 \ - --hash=sha256:dec8d129254d0188a49f8a1fc99e0560dc1b85f60af729f47de4046015f9b0a5 \ - --hash=sha256:e3343cb1e88bc2ea605986d4b94948716edc7a8d14afd4e2c097232f729758b4 \ - --hash=sha256:edca18eaca89cd6382dfbcff3dd2d87633433043650c07375d095cd3517561d8 \ - --hash=sha256:f1e70de6cb5790a50b01d2b686d54aaf73da01266850b05e3af2a1bc89e16053 \ - --hash=sha256:f553ca691b9e94b202ff741bdd40f6ccb70cdd5fbf65c187af132f1317de6145 \ - --hash=sha256:f7ae2de664e0b158d1607699a16a488de3d008ba99b3a7aa5de1cbc13574d047 \ - --hash=sha256:fa3c246cc58cb5a4a5cb407a18f193354ea47dd0648194e6265bd24177982fe8 +pyarrow==22.0.0 \ + --hash=sha256:001ea83a58024818826a9e3f89bf9310a114f7e26dfe404a4c32686f97bd7901 \ + --hash=sha256:00626d9dc0f5ef3a75fe63fd68b9c7c8302d2b5bbc7f74ecaedba83447a24f84 \ + --hash=sha256:0c34fe18094686194f204a3b1787a27456897d8a2d62caf84b61e8dfbc0252ae \ + --hash=sha256:12fe549c9b10ac98c91cf791d2945e878875d95508e1a5d14091a7aaa66d9cf8 \ + --hash=sha256:1a812a5b727bc09c3d7ea072c4eebf657c2f7066155506ba31ebf4792f88f016 \ + --hash=sha256:252be4a05f9d9185bb8c18e83764ebcfea7185076c07a7a662253af3a8c07941 \ + --hash=sha256:334f900ff08ce0423407af97e6c26ad5d4e3b0763645559ece6fbf3747d6a8f5 \ + --hash=sha256:35ad0f0378c9359b3f297299c3309778bb03b8612f987399a0333a560b43862d \ + --hash=sha256:3d600dc583260d845c7d8a6db540339dd883081925da2bd1c5cb808f720b3cd9 \ + --hash=sha256:3e294c5eadfb93d78b0763e859a0c16d4051fc1c5231ae8956d61cb0b5666f5a \ + --hash=sha256:3e739edd001b04f654b166204fc7a9de896cf6007eaff33409ee9e50ceaff754 \ + --hash=sha256:44729980b6c50a5f2bfcc2668d36c569ce17f8b17bccaf470c4313dcbbf13c9d \ + --hash=sha256:44d2d26cda26d18f7af7db71453b7b783788322d756e81730acb98f24eb90ace \ + --hash=sha256:4c19236ae2402a8663a2c8f21f1870a03cc57f0bef7e4b6eb3238cc82944de80 \ + --hash=sha256:69763ab2445f632d90b504a815a2a033f74332997052b721002298ed6de40f2e \ + --hash=sha256:6dda1ddac033d27421c20d7a7943eec60be44e0db4e079f33cc5af3b8280ccde \ + --hash=sha256:6f9762274496c244d951c819348afbcf212714902742225f649cf02823a6a10f \ + --hash=sha256:710624ab925dc2b05a6229d47f6f0dac1c1155e6ed559be7109f684eba048a48 \ + --hash=sha256:7388ac685cab5b279a41dfe0a6ccd99e4dbf322edfb63e02fc0443bf24134e91 \ + --hash=sha256:77718810bd3066158db1e95a63c160ad7ce08c6b0710bc656055033e39cdad88 \ + --hash=sha256:7a820d8ae11facf32585507c11f04e3f38343c1e784c9b5a8b1da5c930547fe2 \ + --hash=sha256:8382ad21458075c2e66a82a29d650f963ce51c7708c7c0ff313a8c206c4fd5e8 \ + --hash=sha256:84378110dd9a6c06323b41b56e129c504d157d1a983ce8f5443761eb5256bafc \ + --hash=sha256:854794239111d2b88b40b6ef92aa478024d1e5074f364033e73e21e3f76b25e0 \ + --hash=sha256:92843c305330aa94a36e706c16209cd4df274693e777ca47112617db7d0ef3d7 \ + --hash=sha256:9bddc2cade6561f6820d4cd73f99a0243532ad506bc510a75a5a65a522b2d74d \ + --hash=sha256:a4893d31e5ef780b6edcaf63122df0f8d321088bb0dee4c8c06eccb1ca28d145 \ + --hash=sha256:a9d9ffdc2ab696f6b15b4d1f7cec6658e1d788124418cb30030afbae31c64746 \ + --hash=sha256:ac93252226cf288753d8b46280f4edf3433bf9508b6977f8dd8526b521a1bbb9 \ + --hash=sha256:b41f37cabfe2463232684de44bad753d6be08a7a072f6a83447eeaf0e4d2a215 \ + --hash=sha256:b883fe6fd85adad7932b3271c38ac289c65b7337c2c132e9569f9d3940620730 \ + --hash=sha256:b9d71701ce97c95480fecb0039ec5bb889e75f110da72005743451339262f4ce \ + --hash=sha256:ba95112d15fd4f1105fb2402c4eab9068f0554435e9b7085924bcfaac2cc306f \ + --hash=sha256:bba208d9c7decf9961998edf5c65e3ea4355d5818dd6cd0f6809bec1afb951cc \ + --hash=sha256:bd0d42297ace400d8febe55f13fdf46e86754842b860c978dfec16f081e5c653 \ + --hash=sha256:bea79263d55c24a32b0d79c00a1c58bb2ee5f0757ed95656b01c0fb310c5af3d \ + --hash=sha256:c064e28361c05d72eed8e744c9605cbd6d2bb7481a511c74071fd9b24bc65d7d \ + --hash=sha256:c3200cb41cdbc65156e5f8c908d739b0dfed57e890329413da2748d1a2cd1a4e \ + --hash=sha256:c6c791b09c57ed76a18b03f2631753a4960eefbbca80f846da8baefc6491fcfe \ + --hash=sha256:c6ec3675d98915bf1ec8b3c7986422682f7232ea76cad276f4c8abd5b7319b70 \ + --hash=sha256:ce20fe000754f477c8a9125543f1936ea5b8867c5406757c224d745ed033e691 \ + --hash=sha256:cedb9dd9358e4ea1d9bce3665ce0797f6adf97ff142c8e25b46ba9cdd508e9b6 \ + --hash=sha256:e0a15757fccb38c410947df156f9749ae4a3c89b2393741a50521f39a8cf202a \ + --hash=sha256:e6e95176209257803a8b3d0394f21604e796dadb643d2f7ca21b66c9c0b30c9a \ + --hash=sha256:e70ff90c64419709d38c8932ea9fe1cc98415c4f87ea8da81719e43f02534bc9 \ + --hash=sha256:ec1a15968a9d80da01e1d30349b2b0d7cc91e96588ee324ce1b5228175043e95 \ + --hash=sha256:ec5d40dd494882704fb876c16fa7261a69791e784ae34e6b5992e977bd2e238c \ + --hash=sha256:f633074f36dbc33d5c05b5dc75371e5660f1dbf9c8b1d95669def05e5425989c \ + --hash=sha256:f7fe3dbe871294ba70d789be16b6e7e52b418311e166e0e3cba9522f0f437fb1 \ + --hash=sha256:f963ba8c3b0199f9d6b794c90ec77545e05eadc83973897a4523c9e8d84e9340 # via # feast (setup.py) # dask @@ -2421,9 +2411,9 @@ pyjwt[crypto]==2.10.1 \ # feast (setup.py) # mcp # snowflake-connector-python -pymilvus==2.4.15 \ - --hash=sha256:0601591ce0498315e19e9ac3f4fdd3051102ca87b6ddff5b33849f522288cff7 \ - --hash=sha256:b21878e5df74dca91b3f3cf0b0597fa6b6aed7bf5cde9a1b10641994faa353bf +pymilvus==2.5.18 \ + --hash=sha256:1b78badcfa8d62db7d0b29193fc0422e4676873ff1c745a9d75c2c885d7a7e32 \ + --hash=sha256:9e517076068e98dac51c018bc0dfe1f651d936154e2e2d9ad6c7b3dab1164e2d # via feast (setup.py) pymysql==1.1.2 \ --hash=sha256:4961d3e165614ae65014e361811a724e2044ad3ea3739de9903ae7c21f539f03 \ @@ -2462,7 +2452,6 @@ pytz==2025.2 \ --hash=sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3 \ --hash=sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00 # via - # ibis-framework # pandas # snowflake-connector-python pyyaml==6.0.3 \ @@ -2542,7 +2531,6 @@ pyyaml==6.0.3 \ # via # feast (setup.py) # dask - # ibis-substrait # kubernetes # uvicorn redis==4.6.0 \ @@ -2574,9 +2562,9 @@ requests-oauthlib==2.0.0 \ # via # google-auth-oauthlib # kubernetes -rich==13.9.4 \ - --hash=sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098 \ - --hash=sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90 +rich==14.2.0 \ + --hash=sha256:73ff50c7c0c1c77c8243079283f4edb376f0f6442433aecb8ce7e6d0b92d1fe4 \ + --hash=sha256:76bc51fe2e57d2b1be1f96c524b890b816e334ab4c1e45888799bfaab0021edd # via # fastapi-mcp # ibis-framework @@ -2857,13 +2845,13 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:fd93c6f5d65f254ceabe97548c709e073d6da9883343adaa51bf1a913ce93f8e \ --hash=sha256:fe187fc31a54d7fd90352f34e8c008cf3ad5d064d08fedd3de2e8df83eb4a1cf # via feast (setup.py) -sqlglot==25.20.2 \ - --hash=sha256:169fe8308dd70d7bd40117b2221b62bdc7c4e2ea8eb07394b2a6146cdedf05ab \ - --hash=sha256:cdbfd7ce3f2f39f32bd7b4c23fd9e0fd261636a6b14285b914e8def25fd0a567 +sqlglot==28.6.0 \ + --hash=sha256:8af76e825dc8456a49f8ce049d69bbfcd116655dda3e53051754789e2edf8eba \ + --hash=sha256:8c0a432a6745c6c7965bbe99a17667c5a3ca1d524a54b31997cf5422b1727f6a # via ibis-framework -sse-starlette==3.1.1 \ - --hash=sha256:bb38f71ae74cfd86b529907a9fda5632195dfa6ae120f214ea4c890c7ee9d436 \ - --hash=sha256:bffa531420c1793ab224f63648c059bcadc412bf9fdb1301ac8de1cf9a67b7fb +sse-starlette==3.1.2 \ + --hash=sha256:55eff034207a83a0eb86de9a68099bd0157838f0b8b999a1b742005c71e33618 \ + --hash=sha256:cd800dd349f4521b317b9391d3796fa97b71748a4da9b9e00aafab32dda375c8 # via mcp starlette==0.50.0 \ --hash=sha256:9e5391843ec9b6e472eed1365a78c8098cfceb7a74bfd4d6b1c0c0095efb3bca \ @@ -2872,12 +2860,6 @@ starlette==0.50.0 \ # fastapi # mcp # sse-starlette -substrait==0.24.2 \ - --hash=sha256:743cc352e96b0927b2cd37cd5a8fdac0a96a68df9600bd104fc36aebd222a836 \ - --hash=sha256:d1d475833566fa9d67eed3273456883c0568486ccced92b524b31709d2817e19 - # via - # feast (setup.py) - # ibis-substrait tabulate==0.9.0 \ --hash=sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c \ --hash=sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f @@ -2890,59 +2872,64 @@ toml==0.10.2 \ --hash=sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b \ --hash=sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f # via feast (setup.py) -tomli==2.3.0 \ - --hash=sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456 \ - --hash=sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845 \ - --hash=sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999 \ - --hash=sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0 \ - --hash=sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878 \ - --hash=sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf \ - --hash=sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3 \ - --hash=sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be \ - --hash=sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52 \ - --hash=sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b \ - --hash=sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67 \ - --hash=sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549 \ - --hash=sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba \ - --hash=sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22 \ - --hash=sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c \ - --hash=sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f \ - --hash=sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6 \ - --hash=sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba \ - --hash=sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45 \ - --hash=sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f \ - --hash=sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77 \ - --hash=sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606 \ - --hash=sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441 \ - --hash=sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0 \ - --hash=sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f \ - --hash=sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530 \ - --hash=sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05 \ - --hash=sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8 \ - --hash=sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005 \ - --hash=sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879 \ - --hash=sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae \ - --hash=sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc \ - --hash=sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b \ - --hash=sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b \ - --hash=sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e \ - --hash=sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf \ - --hash=sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac \ - --hash=sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8 \ - --hash=sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b \ - --hash=sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf \ - --hash=sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463 \ - --hash=sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876 +tomli==2.4.0 \ + --hash=sha256:0408e3de5ec77cc7f81960c362543cbbd91ef883e3138e81b729fc3eea5b9729 \ + --hash=sha256:0dc56fef0e2c1c470aeac5b6ca8cc7b640bb93e92d9803ddaf9ea03e198f5b0b \ + --hash=sha256:0e0fe8a0b8312acf3a88077a0802565cb09ee34107813bba1c7cd591fa6cfc8d \ + --hash=sha256:0f2e3955efea4d1cfbcb87bc321e00dc08d2bcb737fd1d5e398af111d86db5df \ + --hash=sha256:133e93646ec4300d651839d382d63edff11d8978be23da4cc106f5a18b7d0576 \ + --hash=sha256:1b168f2731796b045128c45982d3a4874057626da0e2ef1fdd722848b741361d \ + --hash=sha256:1c8a885b370751837c029ef9bc014f27d80840e48bac415f3412e6593bbc18c1 \ + --hash=sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a \ + --hash=sha256:1fb2945cbe303b1419e2706e711b7113da57b7db31ee378d08712d678a34e51e \ + --hash=sha256:20cedb4ee43278bc4f2fee6cb50daec836959aadaf948db5172e776dd3d993fc \ + --hash=sha256:20ffd184fb1df76a66e34bd1b36b4a4641bd2b82954befa32fe8163e79f1a702 \ + --hash=sha256:26ab906a1eb794cd4e103691daa23d95c6919cc2fa9160000ac02370cc9dd3f6 \ + --hash=sha256:2add28aacc7425117ff6364fe9e06a183bb0251b03f986df0e78e974047571fd \ + --hash=sha256:2b1e3b80e1d5e52e40e9b924ec43d81570f0e7d09d11081b797bc4692765a3d4 \ + --hash=sha256:31d556d079d72db7c584c0627ff3a24c5d3fb4f730221d3444f3efb1b2514776 \ + --hash=sha256:36b9d05b51e65b254ea6c2585b59d2c4cb91c8a3d91d0ed0f17591a29aaea54a \ + --hash=sha256:39b0b5d1b6dd03684b3fb276407ebed7090bbec989fa55838c98560c01113b66 \ + --hash=sha256:3cf226acb51d8f1c394c1b310e0e0e61fecdd7adcb78d01e294ac297dd2e7f87 \ + --hash=sha256:3d895d56bd3f82ddd6faaff993c275efc2ff38e52322ea264122d72729dca2b2 \ + --hash=sha256:413540dce94673591859c4c6f794dfeaa845e98bf35d72ed59636f869ef9f86f \ + --hash=sha256:43e685b9b2341681907759cf3a04e14d7104b3580f808cfde1dfdb60ada85475 \ + --hash=sha256:4cbcb367d44a1f0c2be408758b43e1ffb5308abe0ea222897d6bfc8e8281ef2f \ + --hash=sha256:551e321c6ba03b55676970b47cb1b73f14a0a4dce6a3e1a9458fd6d921d72e95 \ + --hash=sha256:5572e41282d5268eb09a697c89a7bee84fae66511f87533a6f88bd2f7b652da9 \ + --hash=sha256:5aa48d7c2356055feef06a43611fc401a07337d5b006be13a30f6c58f869e3c3 \ + --hash=sha256:5b5807f3999fb66776dbce568cc9a828544244a8eb84b84b9bafc080c99597b9 \ + --hash=sha256:5e3f639a7a8f10069d0e15408c0b96a2a828cfdec6fca05296ebcdcc28ca7c76 \ + --hash=sha256:685306e2cc7da35be4ee914fd34ab801a6acacb061b6a7abca922aaf9ad368da \ + --hash=sha256:75c2f8bbddf170e8effc98f5e9084a8751f8174ea6ccf4fca5398436e0320bc8 \ + --hash=sha256:7b438885858efd5be02a9a133caf5812b8776ee0c969fea02c45e8e3f296ba51 \ + --hash=sha256:7d49c66a7d5e56ac959cb6fc583aff0651094ec071ba9ad43df785abc2320d86 \ + --hash=sha256:7d6d9a4aee98fac3eab4952ad1d73aee87359452d1c086b5ceb43ed02ddb16b8 \ + --hash=sha256:84d081fbc252d1b6a982e1870660e7330fb8f90f676f6e78b052ad4e64714bf0 \ + --hash=sha256:8768715ffc41f0008abe25d808c20c3d990f42b6e2e58305d5da280ae7d1fa3b \ + --hash=sha256:920b1de295e72887bafa3ad9f7a792f811847d57ea6b1215154030cf131f16b1 \ + --hash=sha256:9a08144fa4cba33db5255f9b74f0b89888622109bd2776148f2597447f92a94e \ + --hash=sha256:a26d7ff68dfdb9f87a016ecfd1e1c2bacbe3108f4e0f8bcd2228ef9a766c787d \ + --hash=sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c \ + --hash=sha256:b5ef256a3fd497d4973c11bf142e9ed78b150d36f5773f1ca6088c230ffc5867 \ + --hash=sha256:b6c78bdf37764092d369722d9946cb65b8767bfa4110f902a1b2542d8d173c8a \ + --hash=sha256:bbb1b10aa643d973366dc2cb1ad94f99c1726a02343d43cbc011edbfac579e7c \ + --hash=sha256:c084ad935abe686bd9c898e62a02a19abfc9760b5a79bc29644463eaf2840cb0 \ + --hash=sha256:c73add4bb52a206fd0c0723432db123c0c75c280cbd67174dd9d2db228ebb1b4 \ + --hash=sha256:cae9c19ed12d4e8f3ebf46d1a75090e4c0dc16271c5bce1c833ac168f08fb614 \ + --hash=sha256:d20b797a5c1ad80c516e41bc1fb0443ddb5006e9aaa7bda2d71978346aeb9132 \ + --hash=sha256:d3d1654e11d724760cdb37a3d7691f0be9db5fbdaef59c9f532aabf87006dbaa \ + --hash=sha256:d878f2a6707cc9d53a1be1414bbb419e629c3d6e67f69230217bb663e76b5087 # via fastapi-mcp -tomlkit==0.13.3 \ - --hash=sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1 \ - --hash=sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0 +tomlkit==0.14.0 \ + --hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 \ + --hash=sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064 # via # poetry-dynamic-versioning # snowflake-connector-python -toolz==0.12.1 \ - --hash=sha256:d22731364c07d72eea0a0ad45bafb2c2937ab6fd38a3507bf55eae8744aa7d85 \ - --hash=sha256:ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d +toolz==1.1.0 \ + --hash=sha256:15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8 \ + --hash=sha256:27a5c770d068c110d9ed9323f24f1543e83b2f300a687b7891c1a6d56b697b5b # via # dask # ibis-framework @@ -2953,17 +2940,17 @@ tqdm==4.67.1 \ # via # feast (setup.py) # milvus-lite -trove-classifiers==2025.12.1.14 \ - --hash=sha256:a74f0400524fc83620a9be74a07074b5cbe7594fd4d97fd4c2bfde625fdc1633 \ - --hash=sha256:a8206978ede95937b9959c3aff3eb258bbf7b07dff391ddd4ea7e61f316635ab +trove-classifiers==2026.1.12.15 \ + --hash=sha256:832a7e89ccc43b64b89f8f9d9150c069ebcd17d2dc68279bc00bb53f2a9ae112 \ + --hash=sha256:8832dfbc226fc4df986666b9cb3a018818b1498aeb79f5f66a31a918b47a98f1 # via hatchling typeguard==4.4.4 \ --hash=sha256:3a7fd2dffb705d4d0efaed4306a704c89b9dee850b688f060a8b1615a79e5f74 \ --hash=sha256:b5f562281b6bfa1f5492470464730ef001646128b180769880468bd84b68b09e # via feast (setup.py) -typer==0.21.0 \ - --hash=sha256:c79c01ca6b30af9fd48284058a7056ba0d3bf5cf10d0ff3d0c5b11b68c258ac6 \ - --hash=sha256:c87c0d2b6eee3b49c5c64649ec92425492c14488096dfbc8a0c2799b2f6f9c53 +typer==0.21.1 \ + --hash=sha256:7985e89081c636b88d172c2ee0cfe33c253160994d47bdfdc302defd7d1f1d01 \ + --hash=sha256:ea835607cd752343b6b2b7ce676893e5a0324082268b48f27aa058bdb7d2145d # via fastapi-mcp types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ @@ -3005,7 +2992,9 @@ typing-inspection==0.4.2 \ tzdata==2025.3 \ --hash=sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1 \ --hash=sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7 - # via pandas + # via + # ibis-framework + # pandas ujson==5.11.0 \ --hash=sha256:0180a480a7d099082501cad1fe85252e4d4bf926b40960fb3d9e87a3a6fbbc80 \ --hash=sha256:04c41afc195fd477a59db3a84d5b83a871bd648ef371cf8c6f43072d89144eef \ @@ -3277,76 +3266,68 @@ websocket-client==1.9.0 \ --hash=sha256:9e813624b6eb619999a97dc7958469217c3176312b3a16a4bd1bc7e08a46ec98 \ --hash=sha256:af248a825037ef591efbf6ed20cc5faa03d3b47b9e5a2230a529eeee1c1fc3ef # via kubernetes -websockets==15.0.1 \ - --hash=sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2 \ - --hash=sha256:0a34631031a8f05657e8e90903e656959234f3a04552259458aac0b0f9ae6fd9 \ - --hash=sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5 \ - --hash=sha256:0c9e74d766f2818bb95f84c25be4dea09841ac0f734d1966f415e4edfc4ef1c3 \ - --hash=sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8 \ - --hash=sha256:0fdfe3e2a29e4db3659dbd5bbf04560cea53dd9610273917799f1cde46aa725e \ - --hash=sha256:1009ee0c7739c08a0cd59de430d6de452a55e42d6b522de7aa15e6f67db0b8e1 \ - --hash=sha256:1234d4ef35db82f5446dca8e35a7da7964d02c127b095e172e54397fb6a6c256 \ - --hash=sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85 \ - --hash=sha256:2034693ad3097d5355bfdacfffcbd3ef5694f9718ab7f29c29689a9eae841880 \ - --hash=sha256:21c1fa28a6a7e3cbdc171c694398b6df4744613ce9b36b1a498e816787e28123 \ - --hash=sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375 \ - --hash=sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065 \ - --hash=sha256:363c6f671b761efcb30608d24925a382497c12c506b51661883c3e22337265ed \ - --hash=sha256:39c1fec2c11dc8d89bba6b2bf1556af381611a173ac2b511cf7231622058af41 \ - --hash=sha256:3b1ac0d3e594bf121308112697cf4b32be538fb1444468fb0a6ae4feebc83411 \ - --hash=sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597 \ - --hash=sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f \ - --hash=sha256:3d00075aa65772e7ce9e990cab3ff1de702aa09be3940d1dc88d5abf1ab8a09c \ - --hash=sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3 \ - --hash=sha256:47819cea040f31d670cc8d324bb6435c6f133b8c7a19ec3d61634e62f8d8f9eb \ - --hash=sha256:47b099e1f4fbc95b701b6e85768e1fcdaf1630f3cbe4765fa216596f12310e2e \ - --hash=sha256:4a9fac8e469d04ce6c25bb2610dc535235bd4aa14996b4e6dbebf5e007eba5ee \ - --hash=sha256:4b826973a4a2ae47ba357e4e82fa44a463b8f168e1ca775ac64521442b19e87f \ - --hash=sha256:4c2529b320eb9e35af0fa3016c187dffb84a3ecc572bcee7c3ce302bfeba52bf \ - --hash=sha256:54479983bd5fb469c38f2f5c7e3a24f9a4e70594cd68cd1fa6b9340dadaff7cf \ - --hash=sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4 \ - --hash=sha256:5756779642579d902eed757b21b0164cd6fe338506a8083eb58af5c372e39d9a \ - --hash=sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665 \ - --hash=sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22 \ - --hash=sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675 \ - --hash=sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4 \ - --hash=sha256:5df592cd503496351d6dc14f7cdad49f268d8e618f80dce0cd5a36b93c3fc08d \ - --hash=sha256:5f4c04ead5aed67c8a1a20491d54cdfba5884507a48dd798ecaf13c74c4489f5 \ - --hash=sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65 \ - --hash=sha256:66dd88c918e3287efc22409d426c8f729688d89a0c587c88971a0faa2c2f3792 \ - --hash=sha256:678999709e68425ae2593acf2e3ebcbcf2e69885a5ee78f9eb80e6e371f1bf57 \ - --hash=sha256:67f2b6de947f8c757db2db9c71527933ad0019737ec374a8a6be9a956786aaf9 \ - --hash=sha256:693f0192126df6c2327cce3baa7c06f2a117575e32ab2308f7f8216c29d9e2e3 \ - --hash=sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151 \ - --hash=sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d \ - --hash=sha256:76d1f20b1c7a2fa82367e04982e708723ba0e7b8d43aa643d3dcd404d74f1475 \ - --hash=sha256:7f493881579c90fc262d9cdbaa05a6b54b3811c2f300766748db79f098db9940 \ - --hash=sha256:823c248b690b2fd9303ba00c4f66cd5e2d8c3ba4aa968b2779be9532a4dad431 \ - --hash=sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee \ - --hash=sha256:8dd8327c795b3e3f219760fa603dcae1dcc148172290a8ab15158cf85a953413 \ - --hash=sha256:8fdc51055e6ff4adeb88d58a11042ec9a5eae317a0a53d12c062c8a8865909e8 \ - --hash=sha256:a625e06551975f4b7ea7102bc43895b90742746797e2e14b70ed61c43a90f09b \ - --hash=sha256:abdc0c6c8c648b4805c5eacd131910d2a7f6455dfd3becab248ef108e89ab16a \ - --hash=sha256:ac017dd64572e5c3bd01939121e4d16cf30e5d7e110a119399cf3133b63ad054 \ - --hash=sha256:ac1e5c9054fe23226fb11e05a6e630837f074174c4c2f0fe442996112a6de4fb \ - --hash=sha256:ac60e3b188ec7574cb761b08d50fcedf9d77f1530352db4eef1707fe9dee7205 \ - --hash=sha256:b359ed09954d7c18bbc1680f380c7301f92c60bf924171629c5db97febb12f04 \ - --hash=sha256:b7643a03db5c95c799b89b31c036d5f27eeb4d259c798e878d6937d71832b1e4 \ - --hash=sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa \ - --hash=sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9 \ - --hash=sha256:cad21560da69f4ce7658ca2cb83138fb4cf695a2ba3e475e0559e05991aa8122 \ - --hash=sha256:d08eb4c2b7d6c41da6ca0600c077e93f5adcfd979cd777d747e9ee624556da4b \ - --hash=sha256:d50fd1ee42388dcfb2b3676132c78116490976f1300da28eb629272d5d93e905 \ - --hash=sha256:d591f8de75824cbb7acad4e05d2d710484f15f29d4a915092675ad3456f11770 \ - --hash=sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe \ - --hash=sha256:d63efaa0cd96cf0c5fe4d581521d9fa87744540d4bc999ae6e08595a1014b45b \ - --hash=sha256:d99e5546bf73dbad5bf3547174cd6cb8ba7273062a23808ffea025ecb1cf8562 \ - --hash=sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561 \ - --hash=sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215 \ - --hash=sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931 \ - --hash=sha256:f29d80eb9a9263b8d109135351caf568cc3f80b9928bccde535c235de55c22d9 \ - --hash=sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f \ - --hash=sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7 +websockets==16.0 \ + --hash=sha256:0298d07ee155e2e9fda5be8a9042200dd2e3bb0b8a38482156576f863a9d457c \ + --hash=sha256:04cdd5d2d1dacbad0a7bf36ccbcd3ccd5a30ee188f2560b7a62a30d14107b31a \ + --hash=sha256:08d7af67b64d29823fed316505a89b86705f2b7981c07848fb5e3ea3020c1abe \ + --hash=sha256:152284a83a00c59b759697b7f9e9cddf4e3c7861dd0d964b472b70f78f89e80e \ + --hash=sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec \ + --hash=sha256:19c4dc84098e523fd63711e563077d39e90ec6702aff4b5d9e344a60cb3c0cb1 \ + --hash=sha256:1c1b30e4f497b0b354057f3467f56244c603a79c0d1dafce1d16c283c25f6e64 \ + --hash=sha256:2b9f1e0d69bc60a4a87349d50c09a037a2607918746f07de04df9e43252c77a3 \ + --hash=sha256:31a52addea25187bde0797a97d6fc3d2f92b6f72a9370792d65a6e84615ac8a8 \ + --hash=sha256:32da954ffa2814258030e5a57bc73a3635463238e797c7375dc8091327434206 \ + --hash=sha256:335c23addf3d5e6a8633f9f8eda77efad001671e80b95c491dd0924587ece0b3 \ + --hash=sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156 \ + --hash=sha256:349f83cd6c9a415428ee1005cadb5c2c56f4389bc06a9af16103c3bc3dcc8b7d \ + --hash=sha256:37b31c1623c6605e4c00d466c9d633f9b812ea430c11c8a278774a1fde1acfa9 \ + --hash=sha256:417b28978cdccab24f46400586d128366313e8a96312e4b9362a4af504f3bbad \ + --hash=sha256:485c49116d0af10ac698623c513c1cc01c9446c058a4e61e3bf6c19dff7335a2 \ + --hash=sha256:4a1aba3340a8dca8db6eb5a7986157f52eb9e436b74813764241981ca4888f03 \ + --hash=sha256:50f23cdd8343b984957e4077839841146f67a3d31ab0d00e6b824e74c5b2f6e8 \ + --hash=sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230 \ + --hash=sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8 \ + --hash=sha256:5569417dc80977fc8c2d43a86f78e0a5a22fee17565d78621b6bb264a115d4ea \ + --hash=sha256:569d01a4e7fba956c5ae4fc988f0d4e187900f5497ce46339c996dbf24f17641 \ + --hash=sha256:583b7c42688636f930688d712885cf1531326ee05effd982028212ccc13e5957 \ + --hash=sha256:5a4b4cc550cb665dd8a47f868c8d04c8230f857363ad3c9caf7a0c3bf8c61ca6 \ + --hash=sha256:5f451484aeb5cafee1ccf789b1b66f535409d038c56966d6101740c1614b86c6 \ + --hash=sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5 \ + --hash=sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f \ + --hash=sha256:71c989cbf3254fbd5e84d3bff31e4da39c43f884e64f2551d14bb3c186230f00 \ + --hash=sha256:781caf5e8eee67f663126490c2f96f40906594cb86b408a703630f95550a8c3e \ + --hash=sha256:7be95cfb0a4dae143eaed2bcba8ac23f4892d8971311f1b06f3c6b78952ee70b \ + --hash=sha256:7d837379b647c0c4c2355c2499723f82f1635fd2c26510e1f587d89bc2199e72 \ + --hash=sha256:86890e837d61574c92a97496d590968b23c2ef0aeb8a9bc9421d174cd378ae39 \ + --hash=sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9 \ + --hash=sha256:8b6e209ffee39ff1b6d0fa7bfef6de950c60dfb91b8fcead17da4ee539121a79 \ + --hash=sha256:8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0 \ + --hash=sha256:8d7f0659570eefb578dacde98e24fb60af35350193e4f56e11190787bee77dac \ + --hash=sha256:8e1dab317b6e77424356e11e99a432b7cb2f3ec8c5ab4dabbcee6add48f72b35 \ + --hash=sha256:8ff32bb86522a9e5e31439a58addbb0166f0204d64066fb955265c4e214160f0 \ + --hash=sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5 \ + --hash=sha256:9b5aca38b67492ef518a8ab76851862488a478602229112c4b0d58d63a7a4d5c \ + --hash=sha256:a069d734c4a043182729edd3e9f247c3b2a4035415a9172fd0f1b71658a320a8 \ + --hash=sha256:a0b31e0b424cc6b5a04b8838bbaec1688834b2383256688cf47eb97412531da1 \ + --hash=sha256:a35539cacc3febb22b8f4d4a99cc79b104226a756aa7400adc722e83b0d03244 \ + --hash=sha256:a5e18a238a2b2249c9a9235466b90e96ae4795672598a58772dd806edc7ac6d3 \ + --hash=sha256:a653aea902e0324b52f1613332ddf50b00c06fdaf7e92624fbf8c77c78fa5767 \ + --hash=sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a \ + --hash=sha256:af80d74d4edfa3cb9ed973a0a5ba2b2a549371f8a741e0800cb07becdd20f23d \ + --hash=sha256:b14dc141ed6d2dde437cddb216004bcac6a1df0935d79656387bd41632ba0bbd \ + --hash=sha256:b784ca5de850f4ce93ec85d3269d24d4c82f22b7212023c974c401d4980ebc5e \ + --hash=sha256:bc59589ab64b0022385f429b94697348a6a234e8ce22544e3681b2e9331b5944 \ + --hash=sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82 \ + --hash=sha256:c0ee0e63f23914732c6d7e0cce24915c48f3f1512ec1d079ed01fc629dab269d \ + --hash=sha256:caab51a72c51973ca21fa8a18bd8165e1a0183f1ac7066a182ff27107b71e1a4 \ + --hash=sha256:d6297ce39ce5c2e6feb13c1a996a2ded3b6832155fcfc920265c76f24c7cceb5 \ + --hash=sha256:daa3b6ff70a9241cf6c7fc9e949d41232d9d7d26fd3522b1ad2b4d62487e9904 \ + --hash=sha256:df57afc692e517a85e65b72e165356ed1df12386ecb879ad5693be08fac65dde \ + --hash=sha256:e0334872c0a37b606418ac52f6ab9cfd17317ac26365f7f65e203e2d0d0d359f \ + --hash=sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c \ + --hash=sha256:eaded469f5e5b7294e2bdca0ab06becb6756ea86894a47806456089298813c89 \ + --hash=sha256:f4a32d1bd841d4bcbffdcb3d2ce50c09c3909fbead375ab28d0181af89fd04da \ + --hash=sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4 # via uvicorn wrapt==1.17.3 \ --hash=sha256:02b551d101f31694fc785e58e0720ef7d9a10c4e62c1c9358ce6f63f23e30a56 \ diff --git a/sdk/python/requirements/py3.11-requirements.txt b/sdk/python/requirements/py3.11-requirements.txt index fcae25c341f..aa65f7c34e6 100644 --- a/sdk/python/requirements/py3.11-requirements.txt +++ b/sdk/python/requirements/py3.11-requirements.txt @@ -8,9 +8,9 @@ annotated-types==0.7.0 \ --hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 \ --hash=sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89 # via pydantic -anyio==4.12.0 \ - --hash=sha256:73c693b567b0c55130c104d0b43a9baf3aa6a31fc6110116509f27bf75e21ec0 \ - --hash=sha256:dad2376a628f98eeca4881fc56cd06affd18f659b17a747d3ff0307ced94b1bb +anyio==4.12.1 \ + --hash=sha256:41cfcc3a4c85d3f05c932da7c26d0201ac36f72abd4435ba90d0464a3ffed703 \ + --hash=sha256:d405828884fc140aa80a3c667b8beed277f1dfedec42ba031bd6ac3db606ab6c # via # starlette # watchfiles @@ -20,13 +20,13 @@ attrs==25.4.0 \ # via # jsonschema # referencing -bigtree==1.0.4 \ - --hash=sha256:e4af0c5bc0d2cd72e18442965e4509f642b16a0de65db6d0ec116e30f959010c \ - --hash=sha256:f58a3238bb9b1142d893c9de4921bfd18d435427c75e0c168dd580eabf6dc7fd +bigtree==1.1.0 \ + --hash=sha256:3f1ff63d2d66d31bf19855ddda8884637edf8dd1fc1aa118cf3a750580ece48b \ + --hash=sha256:f54f99d842732c91cce39c596a3755a2e8325b1cab5bc6876f5b15bd3942081c # via feast (setup.py) -certifi==2025.11.12 \ - --hash=sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b \ - --hash=sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316 +certifi==2026.1.4 \ + --hash=sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c \ + --hash=sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120 # via requests charset-normalizer==3.4.4 \ --hash=sha256:027f6de494925c0ab2a55eab46ae5129951638a49a34d87f4c3eda90f696b4ad \ @@ -170,9 +170,9 @@ fastapi==0.128.0 \ --hash=sha256:1cc179e1cef10a6be60ffe429f79b829dce99d8de32d7acb7e6c8dfdf7f2645a \ --hash=sha256:aebd93f9716ee3b4f4fcfe13ffb7cf308d99c9f3ab5622d8877441072561582d # via feast (setup.py) -fsspec==2025.12.0 \ - --hash=sha256:8bf1fe301b7d8acfa6e8571e3b1c3d158f909666642431cc78a1b7b4dbc5ec5b \ - --hash=sha256:c505de011584597b1060ff778bb664c1bc022e87921b0e4f10cc9c44f9635973 +fsspec==2026.1.0 \ + --hash=sha256:cb76aa913c2285a3b49bdd5fc55b1d7c708d7208126b60f2eb8194fe1b4cbdcc \ + --hash=sha256:e987cb0496a0d81bba3a9d1cee62922fb395e7d4c3b575e57f547953334fe07b # via dask gunicorn==23.0.0 \ --hash=sha256:ec400d38950de4dfd418cff8328b2c8faed0edb0d517d3394e457c317908ca4d \ @@ -243,91 +243,91 @@ jinja2==3.1.6 \ --hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \ --hash=sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67 # via feast (setup.py) -jsonschema==4.25.1 \ - --hash=sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63 \ - --hash=sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85 +jsonschema==4.26.0 \ + --hash=sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326 \ + --hash=sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce # via feast (setup.py) jsonschema-specifications==2025.9.1 \ --hash=sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe \ --hash=sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d # via jsonschema -librt==0.7.5 \ - --hash=sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee \ - --hash=sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1 \ - --hash=sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4 \ - --hash=sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899 \ - --hash=sha256:0e2bf8f91093fac43e3eaebacf777f12fd539dce9ec5af3efc6d8424e96ccd49 \ - --hash=sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d \ - --hash=sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760 \ - --hash=sha256:191cbd42660446d67cf7a95ac7bfa60f49b8b3b0417c64f216284a1d86fc9335 \ - --hash=sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8 \ - --hash=sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2 \ - --hash=sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec \ - --hash=sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b \ - --hash=sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0 \ - --hash=sha256:39183abee670bc37b85f11e86c44a9cad1ed6efa48b580083e89ecee13dd9717 \ - --hash=sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325 \ - --hash=sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45 \ - --hash=sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d \ - --hash=sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233 \ - --hash=sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d \ - --hash=sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544 \ - --hash=sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802 \ - --hash=sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2 \ - --hash=sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d \ - --hash=sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f \ - --hash=sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169 \ - --hash=sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe \ - --hash=sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982 \ - --hash=sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2 \ - --hash=sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa \ - --hash=sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4 \ - --hash=sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4 \ - --hash=sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57 \ - --hash=sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26 \ - --hash=sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361 \ - --hash=sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad \ - --hash=sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e \ - --hash=sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf \ - --hash=sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f \ - --hash=sha256:8dcae24de1bc9da93aa689cb6313c70e776d7cea2fcf26b9b6160fedfe6bd9af \ - --hash=sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2 \ - --hash=sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89 \ - --hash=sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904 \ - --hash=sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6 \ - --hash=sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276 \ - --hash=sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e \ - --hash=sha256:a9eacbf983319b26b5f340a2e0cd47ac1ee4725a7f3a72fd0f15063c934b69d6 \ - --hash=sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409 \ - --hash=sha256:af69d9e159575e877c7546d1ee817b4ae089aa221dd1117e20c24ad8dc8659c7 \ - --hash=sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a \ - --hash=sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4 \ - --hash=sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775 \ - --hash=sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203 \ - --hash=sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419 \ - --hash=sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5 \ - --hash=sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023 \ - --hash=sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b \ - --hash=sha256:cdb001a1a0e4f41e613bca2c0fc147fc8a7396f53fc94201cbfd8ec7cd69ca4b \ - --hash=sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d \ - --hash=sha256:d2cc7d187e8c6e9b7bdbefa9697ce897a704ea7a7ce844f2b4e0e2aa07ae51d3 \ - --hash=sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e \ - --hash=sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a \ - --hash=sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b \ - --hash=sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db \ - --hash=sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd \ - --hash=sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa \ - --hash=sha256:df2e210400b28e50994477ebf82f055698c79797b6ee47a1669d383ca33263e1 \ - --hash=sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805 \ - --hash=sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a \ - --hash=sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25 \ - --hash=sha256:ea1b60b86595a5dc1f57b44a801a1c4d8209c0a69518391d349973a4491408e6 \ - --hash=sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b \ - --hash=sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5 \ - --hash=sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416 \ - --hash=sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc \ - --hash=sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7 \ - --hash=sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96 +librt==0.7.7 \ + --hash=sha256:067be973d90d9e319e6eb4ee2a9b9307f0ecd648b8a9002fa237289a4a07a9e7 \ + --hash=sha256:0996c83b1cb43c00e8c87835a284f9057bc647abd42b5871e5f941d30010c832 \ + --hash=sha256:0ecce0544d3db91a40f8b57ae26928c02130a997b540f908cefd4d279d6c5848 \ + --hash=sha256:10c8fb9966f84737115513fecbaf257f9553d067a7dd45a69c2c7e5339e6a8dc \ + --hash=sha256:142c2cd91794b79fd0ce113bd658993b7ede0fe93057668c2f98a45ca00b7e91 \ + --hash=sha256:14ef0f4ac3728ffd85bfc58e2f2f48fb4ef4fa871876f13a73a7381d10a9f77c \ + --hash=sha256:1908c3e5a5ef86b23391448b47759298f87f997c3bd153a770828f58c2bb4630 \ + --hash=sha256:1bcd79be209313b270b0e1a51c67ae1af28adad0e0c7e84c3ad4b5cb57aaa75b \ + --hash=sha256:23d2299ed007812cccc1ecef018db7d922733382561230de1f3954db28433977 \ + --hash=sha256:23daa1ab0512bafdd677eb1bfc9611d8ffbe2e328895671e64cb34166bc1b8c8 \ + --hash=sha256:2567cb48dc03e5b246927ab35cbb343376e24501260a9b5e30b8e255dca0d1d2 \ + --hash=sha256:264720fc288c86039c091a4ad63419a5d7cabbf1c1c9933336a957ed2483e570 \ + --hash=sha256:2987cf827011907d3dfd109f1be0d61e173d68b1270107bb0e89f2fca7f2ed6b \ + --hash=sha256:2a85a1fc4ed11ea0eb0a632459ce004a2d14afc085a50ae3463cd3dfe1ce43fc \ + --hash=sha256:3d1fe2e8df3268dd6734dba33ededae72ad5c3a859b9577bc00b715759c5aaab \ + --hash=sha256:4353ee891a1834567e0302d4bd5e60f531912179578c36f3d0430f8c5e16b456 \ + --hash=sha256:44d63ce643f34a903f09ff7ca355aae019a3730c7afd6a3c037d569beeb5d151 \ + --hash=sha256:467dbd7443bda08338fc8ad701ed38cef48194017554f4c798b0a237904b3f99 \ + --hash=sha256:4862cb2c702b1f905c0503b72d9d4daf65a7fdf5a9e84560e563471e57a56949 \ + --hash=sha256:4bf3cc46d553693382d2abf5f5bd493d71bb0f50a7c0beab18aa13a5545c8900 \ + --hash=sha256:4dcee2f921a8632636d1c37f1bbdb8841d15666d119aa61e5399c5268e7ce02e \ + --hash=sha256:50d1d1ee813d2d1a3baf2873634ba506b263032418d16287c92ec1cc9c1a00cb \ + --hash=sha256:5335890fea9f9e6c4fdf8683061b9ccdcbe47c6dc03ab8e9b68c10acf78be78d \ + --hash=sha256:558a9e5a6f3cc1e20b3168fb1dc802d0d8fa40731f6e9932dcc52bbcfbd37111 \ + --hash=sha256:5e419e0db70991b6ba037b70c1d5bbe92b20ddf82f31ad01d77a347ed9781398 \ + --hash=sha256:6066c638cdf85ff92fc6f932d2d73c93a0e03492cdfa8778e6d58c489a3d7259 \ + --hash=sha256:6ae8aec43117a645a31e5f60e9e3a0797492e747823b9bda6972d521b436b4e8 \ + --hash=sha256:6b6f8ea465524aa4c7420c7cc4ca7d46fe00981de8debc67b1cc2e9957bb5b9d \ + --hash=sha256:7b16ccaeff0ed4355dfb76fe1ea7a5d6d03b5ad27f295f77ee0557bc20a72495 \ + --hash=sha256:7d13cc340b3b82134f8038a2bfe7137093693dcad8ba5773da18f95ad6b77a8a \ + --hash=sha256:7ef28f2e7a016b29792fe0a2dd04dec75725b32a1264e390c366103f834a9c3a \ + --hash=sha256:8185c8497d45164e256376f9da5aed2bb26ff636c798c9dabe313b90e9f25b28 \ + --hash=sha256:81d957b069fed1890953c3b9c3895c7689960f233eea9a1d9607f71ce7f00b2c \ + --hash=sha256:86f86b3b785487c7760247bcdac0b11aa8bf13245a13ed05206286135877564b \ + --hash=sha256:8e92c8de62b40bfce91d5e12c6e8b15434da268979b1af1a6589463549d491e6 \ + --hash=sha256:8f2f8dcf5ab9f80fb970c6fd780b398efb2f50c1962485eb8d3ab07788595a48 \ + --hash=sha256:8f4a0b0a3c86ba9193a8e23bb18f100d647bf192390ae195d84dfa0a10fb6244 \ + --hash=sha256:8f7a74cf3a80f0c3b0ec75b0c650b2f0a894a2cec57ef75f6f72c1e82cdac61d \ + --hash=sha256:955c62571de0b181d9e9e0a0303c8bc90d47670a5eff54cf71bf5da61d1899cf \ + --hash=sha256:983de36b5a83fe9222f4f7dcd071f9b1ac6f3f17c0af0238dadfb8229588f890 \ + --hash=sha256:9b15e5d17812d4d629ff576699954f74e2cc24a02a4fc401882dd94f81daba45 \ + --hash=sha256:9b4346b1225be26def3ccc6c965751c74868f0578cbcba293c8ae9168483d811 \ + --hash=sha256:9b5fb1ecb2c35362eab2dbd354fd1efa5a8440d3e73a68be11921042a0edc0ff \ + --hash=sha256:a10b8eebdaca6e9fdbaf88b5aefc0e324b763a5f40b1266532590d5afb268a4c \ + --hash=sha256:a1f5cc41a570269d1be7a676655875e3a53de4992a9fa38efb7983e97cf73d7c \ + --hash=sha256:a3bfe73a32bd0bdb9a87d586b05a23c0a1729205d79df66dee65bb2e40d671ba \ + --hash=sha256:a487b71fbf8a9edb72a8c7a456dda0184642d99cd007bc819c0b7ab93676a8ee \ + --hash=sha256:a609849aca463074c17de9cda173c276eb8fee9e441053529e7b9e249dc8b8ee \ + --hash=sha256:a76f1d679beccccdf8c1958e732a1dfcd6e749f8821ee59d7bec009ac308c029 \ + --hash=sha256:a7ea4e1fbd253e5c68ea0fe63d08577f9d288a73f17d82f652ebc61fa48d878d \ + --hash=sha256:ab2a2a9cd7d044e1a11ca64a86ad3361d318176924bbe5152fbc69f99be20b8c \ + --hash=sha256:ad3fc2d859a709baf9dd9607bb72f599b1cfb8a39eafd41307d0c3c4766763cb \ + --hash=sha256:add4e0a000858fe9bb39ed55f31085506a5c38363e6eb4a1e5943a10c2bfc3d1 \ + --hash=sha256:aea05f701ccd2a76b34f0daf47ca5068176ff553510b614770c90d76ac88df06 \ + --hash=sha256:b8bb331aad734b059c4b450cd0a225652f16889e286b2345af5e2c3c625c3d85 \ + --hash=sha256:bdb9f3d865b2dafe7f9ad7f30ef563c80d0ddd2fdc8cc9b8e4f242f475e34d75 \ + --hash=sha256:c084841b879c4d9b9fa34e5d5263994f21aea7fd9c6add29194dbb41a6210536 \ + --hash=sha256:c48c7e150c095d5e3cea7452347ba26094be905d6099d24f9319a8b475fcd3e0 \ + --hash=sha256:c7e5070cf3ec92d98f57574da0224f8c73faf1ddd6d8afa0b8c9f6e86997bc74 \ + --hash=sha256:c87654e29a35938baead1c4559858f346f4a2a7588574a14d784f300ffba0efd \ + --hash=sha256:c8ffe3431d98cc043a14e88b21288b5ec7ee12cb01260e94385887f285ef9389 \ + --hash=sha256:c9faaebb1c6212c20afd8043cd6ed9de0a47d77f91a6b5b48f4e46ed470703fe \ + --hash=sha256:d1454899909d63cc9199a89fcc4f81bdd9004aef577d4ffc022e600c412d57f3 \ + --hash=sha256:d6b7d93657332c817b8d674ef6bf1ab7796b4f7ce05e420fd45bd258a72ac804 \ + --hash=sha256:dbc4900e95a98fc0729523be9d93a8fedebb026f32ed9ffc08acd82e3e181503 \ + --hash=sha256:e40d20ae1722d6b8ea6acf4597e789604649dcd9c295eb7361a28225bc2e9e12 \ + --hash=sha256:e4836c5645f40fbdc275e5670819bde5ab5f2e882290d304e3c6ddab1576a6d0 \ + --hash=sha256:e4ab69fa37f8090f2d971a5d2bc606c7401170dbdae083c393d6cbf439cb45b8 \ + --hash=sha256:ef7699b7a5a244b1119f85c5bbc13f152cd38240cbb2baa19b769433bae98e50 \ + --hash=sha256:f0c8fe5aeadd8a0e5b0598f8a6ee3533135ca50fd3f20f130f9d72baf5c6ac58 \ + --hash=sha256:f2cb63c49bc96847c3bb8dca350970e4dcd19936f391cfdfd057dcb37c4fa97e \ + --hash=sha256:f4d4efb218264ecf0f8516196c9e2d1a0679d9fb3bb15df1155a35220062eba8 \ + --hash=sha256:f683dcd49e2494a7535e30f779aa1ad6e3732a019d80abe1309ea91ccd3230e3 \ + --hash=sha256:f83c971eb9d2358b6a18da51dc0ae00556ac7c73104dde16e9e14c15aaf685ca \ + --hash=sha256:f8df32a99cc46eb0ee90afd9ada113ae2cafe7e8d673686cf03ec53e49635439 \ + --hash=sha256:ff1fb2dfef035549565a4124998fadcb7a3d4957131ddf004a56edeb029626b3 # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ @@ -591,79 +591,79 @@ mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 # via mypy -numpy==2.4.0 \ - --hash=sha256:009bd0ea12d3c784b6639a8457537016ce5172109e585338e11334f6a7bb88ee \ - --hash=sha256:02a2038eb27f9443a8b266a66911e926566b5a6ffd1a689b588f7f35b81e7dc3 \ - --hash=sha256:0804a8e4ab070d1d35496e65ffd3cf8114c136a2b81f61dfab0de4b218aacfd5 \ - --hash=sha256:0feafc9e03128074689183031181fac0897ff169692d8492066e949041096548 \ - --hash=sha256:1889b3a3f47a7b5bee16bc25a2145bd7cb91897f815ce3499db64c7458b6d91d \ - --hash=sha256:1d8f9fde5f6dc1b6fc34df8162f3b3079365468703fee7f31d4e0cc8c63baed9 \ - --hash=sha256:1ee32359fb7543b7b7bd0b2f46294db27e29e7bbdf70541e81b190836cd83ded \ - --hash=sha256:20c115517513831860c573996e395707aa9fb691eb179200125c250e895fcd93 \ - --hash=sha256:21555da4ec4a0c942520ead42c3b0dc9477441e085c42b0fbdd6a084869a6f6b \ - --hash=sha256:23a3e9d1a6f360267e8fbb38ba5db355a6a7e9be71d7fce7ab3125e88bb646c8 \ - --hash=sha256:2a8b6bb8369abefb8bd1801b054ad50e02b3275c8614dc6e5b0373c305291037 \ - --hash=sha256:2e284ca13d5a8367e43734148622caf0b261b275673823593e3e3634a6490f83 \ - --hash=sha256:2f585f52b2baf07ff3356158d9268ea095e221371f1074fadea2f42544d58b4d \ - --hash=sha256:316b2f2584682318539f0bcaca5a496ce9ca78c88066579ebd11fd06f8e4741e \ - --hash=sha256:32ed06d0fe9cae27d8fb5f400c63ccee72370599c75e683a6358dd3a4fb50aaf \ - --hash=sha256:355354388cba60f2132df297e2d53053d4063f79077b67b481d21276d61fc4df \ - --hash=sha256:35ddc8f4914466e6fc954c76527aa91aa763682a4f6d73249ef20b418fe6effb \ - --hash=sha256:36667db4d6c1cea79c8930ab72fadfb4060feb4bfe724141cd4bd064d2e5f8ce \ - --hash=sha256:36cbfb13c152b1c7c184ddac43765db8ad672567e7bafff2cc755a09917ed2e6 \ - --hash=sha256:39699233bc72dd482da1415dcb06076e32f60eddc796a796c5fb6c5efce94667 \ - --hash=sha256:39b19251dec4de8ff8496cd0806cbe27bf0684f765abb1f4809554de93785f2d \ - --hash=sha256:3d857f55e7fdf7c38ab96c4558c95b97d1c685be6b05c249f5fdafcbd6f9899e \ - --hash=sha256:3de19cfecd1465d0dcf8a5b5ea8b3155b42ed0b639dba4b71e323d74f2a3be5e \ - --hash=sha256:3f3096405acc48887458bbf9f6814d43785ac7ba2a57ea6442b581dedbc60ce6 \ - --hash=sha256:40483b2f2d3ba7aad426443767ff5632ec3156ef09742b96913787d13c336471 \ - --hash=sha256:413aa561266a4be2d06cd2b9665e89d9f54c543f418773076a76adcf2af08bc7 \ - --hash=sha256:44aba2f0cafd287871a495fb3163408b0bd25bbce135c6f621534a07f4f7875c \ - --hash=sha256:49ff32b09f5aa0cd30a20c2b39db3e669c845589f2b7fc910365210887e39344 \ - --hash=sha256:4d1cfce39e511069b11e67cd0bd78ceff31443b7c9e5c04db73c7a19f572967c \ - --hash=sha256:57c540ed8fb1f05cb997c6761cd56db72395b0d6985e90571ff660452ade4f98 \ - --hash=sha256:5f48cb3e88fbc294dc90e215d86fbaf1c852c63dbdb6c3a3e63f45c4b57f7344 \ - --hash=sha256:5fe44e277225fd3dff6882d86d3d447205d43532c3627313d17e754fb3905a0e \ - --hash=sha256:60e8c196cd82cbbd4f130b5290007e13e6de3eca79f0d4d38014769d96a7c475 \ - --hash=sha256:65167da969cd1ec3a1df31cb221ca3a19a8aaa25370ecb17d428415e93c1935e \ - --hash=sha256:680060061adb2d74ce352628cb798cfdec399068aa7f07ba9fb818b2b3305f98 \ - --hash=sha256:6bbaebf0d11567fa8926215ae731e1d58e6ec28a8a25235b8a47405d301332db \ - --hash=sha256:6c05483c3136ac4c91b4e81903cb53a8707d316f488124d0398499a4f8e8ef51 \ - --hash=sha256:6dc8b7e2f4eb184b37655195f421836cfae6f58197b67e3ffc501f1333d993fa \ - --hash=sha256:6e504f7b16118198f138ef31ba24d985b124c2c469fe8467007cf30fd992f934 \ - --hash=sha256:74623f2ab5cc3f7c886add4f735d1031a1d2be4a4ae63c0546cfd74e7a31ddf6 \ - --hash=sha256:77f0d13fa87036d7553bf81f0e1fe3ce68d14c9976c9851744e4d3e91127e95f \ - --hash=sha256:85eef4cb5625c47ee6425c58a3502555e10f45ee973da878ac8248ad58c136f3 \ - --hash=sha256:882567b7ae57c1b1a0250208cc21a7976d8cbcc49d5a322e607e6f09c9e0bd53 \ - --hash=sha256:8b986403023c8f3bf8f487c2e6186afda156174d31c175f747d8934dfddf3479 \ - --hash=sha256:8cfa5f29a695cb7438965e6c3e8d06e0416060cf0d709c1b1c1653a939bf5c2a \ - --hash=sha256:8eafe7c36c8430b7794edeab3087dec7bf31d634d92f2af9949434b9d1964cba \ - --hash=sha256:9198f447e1dc5647d07c9a6bbe2063cc0132728cc7175b39dbc796da5b54920d \ - --hash=sha256:92190db305a6f48734d3982f2c60fa30d6b5ee9bff10f2887b930d7b40119f4c \ - --hash=sha256:927ccf5cd17c48f801f4ed43a7e5673a2724bd2171460be3e3894e6e332ef83a \ - --hash=sha256:98e81648e0b36e325ab67e46b5400a7a6d4a22b8a7c8e8bbfe20e7db7906bf95 \ - --hash=sha256:9a818668b674047fd88c4cddada7ab8f1c298812783e8328e956b78dc4807f9f \ - --hash=sha256:a152d86a3ae00ba5f47b3acf3b827509fd0b6cb7d3259665e63dafbad22a75ea \ - --hash=sha256:a2718c1de8504121714234b6f8241d0019450353276c88b9453c9c3d92e101db \ - --hash=sha256:a39fb973a726e63223287adc6dafe444ce75af952d711e400f3bf2b36ef55a7b \ - --hash=sha256:a899699294f28f7be8992853c0c60741f16ff199205e2e6cdca155762cbaa59d \ - --hash=sha256:a8fdfed3deaf1928fb7667d96e0567cdf58c2b370ea2ee7e586aa383ec2cb346 \ - --hash=sha256:aabb081ca0ec5d39591fc33018cd4b3f96e1a2dd6756282029986d00a785fba4 \ - --hash=sha256:b1f5b45829ac1848893f0ddf5cb326110604d6df96cdc255b0bf9edd154104d4 \ - --hash=sha256:b48e35f4ab6f6a7597c46e301126ceba4c44cd3280e3750f85db48b082624fa4 \ - --hash=sha256:b54c83f1c0c0f1d748dca0af516062b8829d53d1f0c402be24b4257a9c48ada6 \ - --hash=sha256:ba0cb30acd3ef11c94dc27fbfba68940652492bc107075e7ffe23057f9425681 \ - --hash=sha256:bb50ce5fb202a26fd5404620e7ef820ad1ab3558b444cb0b55beb7ef66cd2d63 \ - --hash=sha256:c95eb6db2884917d86cde0b4d4cf31adf485c8ec36bf8696dd66fa70de96f36b \ - --hash=sha256:d0ffd9e2e4441c96a9c91ec1783285d80bf835b677853fc2770a89d50c1e48ac \ - --hash=sha256:d57b5046c120561ba8fa8e4030fbb8b822f3063910fa901ffadf16e2b7128ad6 \ - --hash=sha256:d9e6a7664ddd9746e20b7325351fe1a8408d0a2bf9c63b5e898290ddc8f09544 \ - --hash=sha256:dc578891de1db95b2a35001b695451767b580bb45753717498213c5ff3c41d63 \ - --hash=sha256:e0434aa22c821f44eeb4c650b81c7fbdd8c0122c6c4b5a576a76d5a35625ecd9 \ - --hash=sha256:e06a922a469cae9a57100864caf4f8a97a1026513793969f8ba5b63137a35d25 \ - --hash=sha256:e493962256a38f58283de033d8af176c5c91c084ea30f15834f7545451c42059 \ - --hash=sha256:ecb0019d44f4cdb50b676c5d0cb4b1eae8e15d1ed3d3e6639f986fc92b2ec52c \ - --hash=sha256:f935c4493eda9069851058fa0d9e39dbf6286be690066509305e52912714dbb2 +numpy==2.4.1 \ + --hash=sha256:0093e85df2960d7e4049664b26afc58b03236e967fb942354deef3208857a04c \ + --hash=sha256:09aa8a87e45b55a1c2c205d42e2808849ece5c484b2aab11fecabec3841cafba \ + --hash=sha256:0cce2a669e3c8ba02ee563c7835f92c153cf02edff1ae05e1823f1dde21b16a5 \ + --hash=sha256:0e6e8f9d9ecf95399982019c01223dc130542960a12edfa8edd1122dfa66a8a8 \ + --hash=sha256:0f118ce6b972080ba0758c6087c3617b5ba243d806268623dc34216d69099ba0 \ + --hash=sha256:178de8f87948163d98a4c9ab5bee4ce6519ca918926ec8df195af582de28544d \ + --hash=sha256:18e14c4d09d55eef39a6ab5b08406e84bc6869c1e34eef45564804f90b7e0574 \ + --hash=sha256:2023ef86243690c2791fd6353e5b4848eedaa88ca8a2d129f462049f6d484696 \ + --hash=sha256:20d4649c773f66cc2fc36f663e091f57c3b7655f936a4c681b4250855d1da8f5 \ + --hash=sha256:2302dc0224c1cbc49bb94f7064f3f923a971bfae45c33870dcbff63a2a550505 \ + --hash=sha256:26f0bcd9c79a00e339565b303badc74d3ea2bd6d52191eeca5f95936cad107d0 \ + --hash=sha256:297c72b1b98100c2e8f873d5d35fb551fce7040ade83d67dd51d38c8d42a2162 \ + --hash=sha256:2f44de05659b67d20499cbc96d49f2650769afcb398b79b324bb6e297bfe3844 \ + --hash=sha256:2ffd257026eb1b34352e749d7cc1678b5eeec3e329ad8c9965a797e08ccba205 \ + --hash=sha256:382ad67d99ef49024f11d1ce5dcb5ad8432446e4246a4b014418ba3a1175a1f4 \ + --hash=sha256:3869ea1ee1a1edc16c29bbe3a2f2a4e515cc3a44d43903ad41e0cacdbaf733dc \ + --hash=sha256:3d1a100e48cb266090a031397863ff8a30050ceefd798f686ff92c67a486753d \ + --hash=sha256:423797bdab2eeefbe608d7c1ec7b2b4fd3c58d51460f1ee26c7500a1d9c9ee93 \ + --hash=sha256:42d7dd5fa36d16d52a84f821eb96031836fd405ee6955dd732f2023724d0aa01 \ + --hash=sha256:49e792ec351315e16da54b543db06ca8a86985ab682602d90c60ef4ff4db2a9c \ + --hash=sha256:4e53170557d37ae404bf8d542ca5b7c629d6efa1117dac6a83e394142ea0a43f \ + --hash=sha256:4f1b68ff47680c2925f8063402a693ede215f0257f02596b1318ecdfb1d79e33 \ + --hash=sha256:4f9c360ecef085e5841c539a9a12b883dff005fbd7ce46722f5e9cef52634d82 \ + --hash=sha256:529050522e983e00a6c1c6b67411083630de8b57f65e853d7b03d9281b8694d2 \ + --hash=sha256:52b5f61bdb323b566b528899cc7db2ba5d1015bda7ea811a8bcf3c89c331fa42 \ + --hash=sha256:538bf4ec353709c765ff75ae616c34d3c3dca1a68312727e8f2676ea644f8509 \ + --hash=sha256:5adf01965456a664fc727ed69cc71848f28d063217c63e1a0e200a118d5eec9a \ + --hash=sha256:5b55aa56165b17aaf15520beb9cbd33c9039810e0d9643dd4379e44294c7303e \ + --hash=sha256:5d558123217a83b2d1ba316b986e9248a1ed1971ad495963d555ccd75dcb1556 \ + --hash=sha256:5de60946f14ebe15e713a6f22850c2372fa72f4ff9a432ab44aa90edcadaa65a \ + --hash=sha256:62fea415f83ad8fdb6c20840578e5fbaf5ddd65e0ec6c3c47eda0f69da172510 \ + --hash=sha256:6436cffb4f2bf26c974344439439c95e152c9a527013f26b3577be6c2ca64295 \ + --hash=sha256:6461de5113088b399d655d45c3897fa188766415d0f568f175ab071c8873bd73 \ + --hash=sha256:69e7419c9012c4aaf695109564e3387f1259f001b4326dfa55907b098af082d3 \ + --hash=sha256:71abbea030f2cfc3092a0ff9f8c8fdefdc5e0bf7d9d9c99663538bb0ecdac0b9 \ + --hash=sha256:7211b95ca365519d3596a1d8688a95874cc94219d417504d9ecb2df99fa7bfa8 \ + --hash=sha256:727c6c3275ddefa0dc078524a85e064c057b4f4e71ca5ca29a19163c607be745 \ + --hash=sha256:79e9e06c4c2379db47f3f6fc7a8652e7498251789bf8ff5bd43bf478ef314ca2 \ + --hash=sha256:7ad270f438cbdd402c364980317fb6b117d9ec5e226fff5b4148dd9aa9fc6e02 \ + --hash=sha256:7d5d7999df434a038d75a748275cd6c0094b0ecdb0837342b332a82defc4dc4d \ + --hash=sha256:8097529164c0f3e32bb89412a0905d9100bf434d9692d9fc275e18dcf53c9344 \ + --hash=sha256:82c55962006156aeef1629b953fd359064aa47e4d82cfc8e67f0918f7da3344f \ + --hash=sha256:8361ea4220d763e54cff2fbe7d8c93526b744f7cd9ddab47afeff7e14e8503be \ + --hash=sha256:899d2c18024984814ac7e83f8f49d8e8180e2fbe1b2e252f2e7f1d06bea92425 \ + --hash=sha256:8ad35f20be147a204e28b6a0575fbf3540c5e5f802634d4258d55b1ff5facce1 \ + --hash=sha256:8f085da926c0d491ffff3096f91078cc97ea67e7e6b65e490bc8dcda65663be2 \ + --hash=sha256:9171a42fcad32dcf3fa86f0a4faa5e9f8facefdb276f54b8b390d90447cff4e2 \ + --hash=sha256:92a0e65272fd60bfa0d9278e0484c2f52fe03b97aedc02b357f33fe752c52ffb \ + --hash=sha256:941c2a93313d030f219f3a71fd3d91a728b82979a5e8034eb2e60d394a2b83f9 \ + --hash=sha256:98b35775e03ab7f868908b524fc0a84d38932d8daf7b7e1c3c3a1b6c7a2c9f15 \ + --hash=sha256:a1ceafc5042451a858231588a104093474c6a5c57dcc724841f5c888d237d690 \ + --hash=sha256:a73044b752f5d34d4232f25f18160a1cc418ea4507f5f11e299d8ac36875f8a0 \ + --hash=sha256:a7870e8c5fc11aef57d6fea4b4085e537a3a60ad2cdd14322ed531fdca68d261 \ + --hash=sha256:a92f227dbcdc9e4c3e193add1a189a9909947d4f8504c576f4a732fd0b54240a \ + --hash=sha256:ac08c63cb7779b85e9d5318e6c3518b424bc1f364ac4cb2c6136f12e5ff2dccc \ + --hash=sha256:b6bcf39112e956594b3331316d90c90c90fb961e39696bda97b89462f5f3943f \ + --hash=sha256:c0faba4a331195bfa96f93dd9dfaa10b2c7aa8cda3a02b7fd635e588fe821bf5 \ + --hash=sha256:ce9ce141a505053b3c7bce3216071f3bf5c182b8b28930f14cd24d43932cd2df \ + --hash=sha256:cf6470d91d34bf669f61d515499859fa7a4c2f7c36434afb70e82df7217933f9 \ + --hash=sha256:d3703409aac693fa82c0aee023a1ae06a6e9d065dba10f5e8e80f642f1e9d0a2 \ + --hash=sha256:d3e3087f53e2b4428766b54932644d148613c5a595150533ae7f00dab2f319a8 \ + --hash=sha256:d3f8f0df9f4b8be57b3bf74a1d087fec68f927a2fab68231fdb442bf2c12e426 \ + --hash=sha256:d797454e37570cfd61143b73b8debd623c3c0952959adb817dd310a483d58a1b \ + --hash=sha256:e1a27bb1b2dee45a2a53f5ca6ff2d1a7f135287883a1689e930d44d1ff296c87 \ + --hash=sha256:e3bd2cb07841166420d2fa7146c96ce00cb3410664cbc1a6be028e456c4ee220 \ + --hash=sha256:e7b6b5e28bbd47b7532698e5db2fe1db693d84b58c254e4389d99a27bb9b8f6b \ + --hash=sha256:e867df947d427cdd7a60e3e271729090b0f0df80f5f10ab7dd436f40811699c3 \ + --hash=sha256:ea66d2b41ca4a1630aae5507ee0a71647d3124d1741980138aa8f28f44dac36e \ + --hash=sha256:edee228f76ee2dab4579fad6f51f6a305de09d444280109e0f75df247ff21501 \ + --hash=sha256:f0a90aba7d521e6954670550e561a4cb925713bd944445dbe9e729b71f6cabee \ + --hash=sha256:f93bc6892fe7b0663e5ffa83b61aab510aacffd58c16e012bb9352d489d90cb7 \ + --hash=sha256:fb1461c99de4d040666ca0444057b06541e5642f800b71c56e6ea92d6a853a0c # via # feast (setup.py) # dask @@ -737,25 +737,25 @@ partd==1.4.2 \ --hash=sha256:978e4ac767ec4ba5b86c6eaa52e5a2a3bc748a2ca839e8cc798f1cc6ce6efb0f \ --hash=sha256:d022c33afbdc8405c226621b015e8067888173d85f7f5ecebb3cafed9a20f02c # via dask -pathspec==0.12.1 \ - --hash=sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 \ - --hash=sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712 +pathspec==1.0.3 \ + --hash=sha256:bac5cf97ae2c2876e2d25ebb15078eb04d76e4b98921ee31c6f85ade8b59444d \ + --hash=sha256:e80767021c1cc524aa3fb14bedda9c34406591343cc42797b386ce7b9354fb6c # via mypy -prometheus-client==0.23.1 \ - --hash=sha256:6ae8f9081eaaaf153a2e959d2e6c4f4fb57b12ef76c8c7980202f1e57b48b2ce \ - --hash=sha256:dd1913e6e76b59cfe44e7a4b83e01afc9873c1bdfd2ed8739f1e76aeca115f99 +prometheus-client==0.24.0 \ + --hash=sha256:4ab6d4fb5a1b25ad74b58e6271857e356fff3399473e599d227ab5d0ce6637f0 \ + --hash=sha256:726b40c0d499f4904d4b5b7abe8d43e6aff090de0d468ae8f2226290b331c667 # via feast (setup.py) -protobuf==6.33.2 \ - --hash=sha256:1f8017c48c07ec5859106533b682260ba3d7c5567b1ca1f24297ce03384d1b4f \ - --hash=sha256:2981c58f582f44b6b13173e12bb8656711189c2a70250845f264b877f00b1913 \ - --hash=sha256:56dc370c91fbb8ac85bc13582c9e373569668a290aa2e66a590c2a0d35ddb9e4 \ - --hash=sha256:7109dcc38a680d033ffb8bf896727423528db9163be1b6a02d6a49606dcadbfe \ - --hash=sha256:7636aad9bb01768870266de5dc009de2d1b936771b38a793f73cbbf279c91c5c \ - --hash=sha256:87eb388bd2d0f78febd8f4c8779c79247b26a5befad525008e49a6955787ff3d \ - --hash=sha256:8cd7640aee0b7828b6d03ae518b5b4806fdfc1afe8de82f79c3454f8aef29872 \ - --hash=sha256:b5d3b5625192214066d99b2b605f5783483575656784de223f00a8d00754fc0e \ - --hash=sha256:d9b19771ca75935b3a4422957bc518b0cecb978b31d1dd12037b088f6bcc0e43 \ - --hash=sha256:fc2a0e8b05b180e5fc0dd1559fe8ebdae21a27e81ac77728fb6c42b12c7419b4 +protobuf==6.33.4 \ + --hash=sha256:0f12ddbf96912690c3582f9dffb55530ef32015ad8e678cd494312bd78314c4f \ + --hash=sha256:1fe3730068fcf2e595816a6c34fe66eeedd37d51d0400b72fabc848811fdc1bc \ + --hash=sha256:2fe67f6c014c84f655ee06f6f66213f9254b3a8b6bda6cda0ccd4232c73c06f0 \ + --hash=sha256:3df850c2f8db9934de4cf8f9152f8dc2558f49f298f37f90c517e8e5c84c30e9 \ + --hash=sha256:757c978f82e74d75cba88eddec479df9b99a42b31193313b75e492c06a51764e \ + --hash=sha256:8f11ffae31ec67fc2554c2ef891dcb561dae9a2a3ed941f9e134c2db06657dbc \ + --hash=sha256:918966612c8232fc6c24c78e1cd89784307f5814ad7506c308ee3cf86662850d \ + --hash=sha256:955478a89559fa4568f5a81dce77260eabc5c686f9e8366219ebd30debf06aa6 \ + --hash=sha256:c7c64f259c618f0bef7bee042075e390debbf9682334be2b67408ec7c1c09ee6 \ + --hash=sha256:dc2e61bca3b10470c1912d166fe0af67bfc20eb55971dcef8dfa48ce14f0ed91 # via feast (setup.py) psutil==7.2.1 \ --hash=sha256:05cc68dbb8c174828624062e73078e7e35406f4ca2d0866c272c2410d8ef06d1 \ @@ -780,50 +780,57 @@ psutil==7.2.1 \ --hash=sha256:f7583aec590485b43ca601dd9cea0dcd65bd7bb21d30ef4ddbf4ea6b5ed1bdd3 \ --hash=sha256:f78baafb38436d5a128f837fab2d92c276dfb48af01a240b861ae02b2413ada8 # via feast (setup.py) -pyarrow==21.0.0 \ - --hash=sha256:067c66ca29aaedae08218569a114e413b26e742171f526e828e1064fcdec13f4 \ - --hash=sha256:072116f65604b822a7f22945a7a6e581cfa28e3454fdcc6939d4ff6090126623 \ - --hash=sha256:0c4e75d13eb76295a49e0ea056eb18dbd87d81450bfeb8afa19a7e5a75ae2ad7 \ - --hash=sha256:186aa00bca62139f75b7de8420f745f2af12941595bbbfa7ed3870ff63e25636 \ - --hash=sha256:1e005378c4a2c6db3ada3ad4c217b381f6c886f0a80d6a316fe586b90f77efd7 \ - --hash=sha256:203003786c9fd253ebcafa44b03c06983c9c8d06c3145e37f1b76a1f317aeae1 \ - --hash=sha256:222c39e2c70113543982c6b34f3077962b44fca38c0bd9e68bb6781534425c10 \ - --hash=sha256:26bfd95f6bff443ceae63c65dc7e048670b7e98bc892210acba7e4995d3d4b51 \ - --hash=sha256:3a302f0e0963db37e0a24a70c56cf91a4faa0bca51c23812279ca2e23481fccd \ - --hash=sha256:3a81486adc665c7eb1a2bde0224cfca6ceaba344a82a971ef059678417880eb8 \ - --hash=sha256:3b4d97e297741796fead24867a8dabf86c87e4584ccc03167e4a811f50fdf74d \ - --hash=sha256:40ebfcb54a4f11bcde86bc586cbd0272bac0d516cfa539c799c2453768477569 \ - --hash=sha256:479ee41399fcddc46159a551705b89c05f11e8b8cb8e968f7fec64f62d91985e \ - --hash=sha256:5051f2dccf0e283ff56335760cbc8622cf52264d67e359d5569541ac11b6d5bc \ - --hash=sha256:555ca6935b2cbca2c0e932bedd853e9bc523098c39636de9ad4693b5b1df86d6 \ - --hash=sha256:585e7224f21124dd57836b1530ac8f2df2afc43c861d7bf3d58a4870c42ae36c \ - --hash=sha256:58c30a1729f82d201627c173d91bd431db88ea74dcaa3885855bc6203e433b82 \ - --hash=sha256:6299449adf89df38537837487a4f8d3bd91ec94354fdd2a7d30bc11c48ef6e79 \ - --hash=sha256:65f8e85f79031449ec8706b74504a316805217b35b6099155dd7e227eef0d4b6 \ - --hash=sha256:689f448066781856237eca8d1975b98cace19b8dd2ab6145bf49475478bcaa10 \ - --hash=sha256:69cbbdf0631396e9925e048cfa5bce4e8c3d3b41562bbd70c685a8eb53a91e61 \ - --hash=sha256:731c7022587006b755d0bdb27626a1a3bb004bb56b11fb30d98b6c1b4718579d \ - --hash=sha256:7be45519b830f7c24b21d630a31d48bcebfd5d4d7f9d3bdb49da9cdf6d764edb \ - --hash=sha256:898afce396b80fdda05e3086b4256f8677c671f7b1d27a6976fa011d3fd0a86e \ - --hash=sha256:8d58d8497814274d3d20214fbb24abcad2f7e351474357d552a8d53bce70c70e \ - --hash=sha256:9b0b14b49ac10654332a805aedfc0147fb3469cbf8ea951b3d040dab12372594 \ - --hash=sha256:9d9f8bcb4c3be7738add259738abdeddc363de1b80e3310e04067aa1ca596634 \ - --hash=sha256:a7a102574faa3f421141a64c10216e078df467ab9576684d5cd696952546e2da \ - --hash=sha256:a7f6524e3747e35f80744537c78e7302cd41deee8baa668d56d55f77d9c464b3 \ - --hash=sha256:b6b27cf01e243871390474a211a7922bfbe3bda21e39bc9160daf0da3fe48876 \ - --hash=sha256:b7ae0bbdc8c6674259b25bef5d2a1d6af5d39d7200c819cf99e07f7dfef1c51e \ - --hash=sha256:bd04ec08f7f8bd113c55868bd3fc442a9db67c27af098c5f814a3091e71cc61a \ - --hash=sha256:c077f48aab61738c237802836fc3844f85409a46015635198761b0d6a688f87b \ - --hash=sha256:cdc4c17afda4dab2a9c0b79148a43a7f4e1094916b3e18d8975bfd6d6d52241f \ - --hash=sha256:cf56ec8b0a5c8c9d7021d6fd754e688104f9ebebf1bf4449613c9531f5346a18 \ - --hash=sha256:d2fe8e7f3ce329a71b7ddd7498b3cfac0eeb200c2789bd840234f0dc271a8efe \ - --hash=sha256:dc56bc708f2d8ac71bd1dcb927e458c93cec10b98eb4120206a4091db7b67b99 \ - --hash=sha256:e563271e2c5ff4d4a4cbeb2c83d5cf0d4938b891518e676025f7268c6fe5fe26 \ - --hash=sha256:e72a8ec6b868e258a2cd2672d91f2860ad532d590ce94cdf7d5e7ec674ccf03d \ - --hash=sha256:e99310a4ebd4479bcd1964dff9e14af33746300cb014aa4a3781738ac63baf4a \ - --hash=sha256:f522e5709379d72fb3da7785aa489ff0bb87448a9dc5a75f45763a795a089ebd \ - --hash=sha256:fc0d2f88b81dcf3ccf9a6ae17f89183762c8a94a5bdcfa09e05cfe413acf0503 \ - --hash=sha256:fee33b0ca46f4c85443d6c450357101e47d53e6c3f008d658c27a2d020d44c79 +pyarrow==22.0.0 \ + --hash=sha256:001ea83a58024818826a9e3f89bf9310a114f7e26dfe404a4c32686f97bd7901 \ + --hash=sha256:00626d9dc0f5ef3a75fe63fd68b9c7c8302d2b5bbc7f74ecaedba83447a24f84 \ + --hash=sha256:0c34fe18094686194f204a3b1787a27456897d8a2d62caf84b61e8dfbc0252ae \ + --hash=sha256:12fe549c9b10ac98c91cf791d2945e878875d95508e1a5d14091a7aaa66d9cf8 \ + --hash=sha256:1a812a5b727bc09c3d7ea072c4eebf657c2f7066155506ba31ebf4792f88f016 \ + --hash=sha256:252be4a05f9d9185bb8c18e83764ebcfea7185076c07a7a662253af3a8c07941 \ + --hash=sha256:334f900ff08ce0423407af97e6c26ad5d4e3b0763645559ece6fbf3747d6a8f5 \ + --hash=sha256:35ad0f0378c9359b3f297299c3309778bb03b8612f987399a0333a560b43862d \ + --hash=sha256:3d600dc583260d845c7d8a6db540339dd883081925da2bd1c5cb808f720b3cd9 \ + --hash=sha256:3e294c5eadfb93d78b0763e859a0c16d4051fc1c5231ae8956d61cb0b5666f5a \ + --hash=sha256:3e739edd001b04f654b166204fc7a9de896cf6007eaff33409ee9e50ceaff754 \ + --hash=sha256:44729980b6c50a5f2bfcc2668d36c569ce17f8b17bccaf470c4313dcbbf13c9d \ + --hash=sha256:44d2d26cda26d18f7af7db71453b7b783788322d756e81730acb98f24eb90ace \ + --hash=sha256:4c19236ae2402a8663a2c8f21f1870a03cc57f0bef7e4b6eb3238cc82944de80 \ + --hash=sha256:69763ab2445f632d90b504a815a2a033f74332997052b721002298ed6de40f2e \ + --hash=sha256:6dda1ddac033d27421c20d7a7943eec60be44e0db4e079f33cc5af3b8280ccde \ + --hash=sha256:6f9762274496c244d951c819348afbcf212714902742225f649cf02823a6a10f \ + --hash=sha256:710624ab925dc2b05a6229d47f6f0dac1c1155e6ed559be7109f684eba048a48 \ + --hash=sha256:7388ac685cab5b279a41dfe0a6ccd99e4dbf322edfb63e02fc0443bf24134e91 \ + --hash=sha256:77718810bd3066158db1e95a63c160ad7ce08c6b0710bc656055033e39cdad88 \ + --hash=sha256:7a820d8ae11facf32585507c11f04e3f38343c1e784c9b5a8b1da5c930547fe2 \ + --hash=sha256:8382ad21458075c2e66a82a29d650f963ce51c7708c7c0ff313a8c206c4fd5e8 \ + --hash=sha256:84378110dd9a6c06323b41b56e129c504d157d1a983ce8f5443761eb5256bafc \ + --hash=sha256:854794239111d2b88b40b6ef92aa478024d1e5074f364033e73e21e3f76b25e0 \ + --hash=sha256:92843c305330aa94a36e706c16209cd4df274693e777ca47112617db7d0ef3d7 \ + --hash=sha256:9bddc2cade6561f6820d4cd73f99a0243532ad506bc510a75a5a65a522b2d74d \ + --hash=sha256:a4893d31e5ef780b6edcaf63122df0f8d321088bb0dee4c8c06eccb1ca28d145 \ + --hash=sha256:a9d9ffdc2ab696f6b15b4d1f7cec6658e1d788124418cb30030afbae31c64746 \ + --hash=sha256:ac93252226cf288753d8b46280f4edf3433bf9508b6977f8dd8526b521a1bbb9 \ + --hash=sha256:b41f37cabfe2463232684de44bad753d6be08a7a072f6a83447eeaf0e4d2a215 \ + --hash=sha256:b883fe6fd85adad7932b3271c38ac289c65b7337c2c132e9569f9d3940620730 \ + --hash=sha256:b9d71701ce97c95480fecb0039ec5bb889e75f110da72005743451339262f4ce \ + --hash=sha256:ba95112d15fd4f1105fb2402c4eab9068f0554435e9b7085924bcfaac2cc306f \ + --hash=sha256:bba208d9c7decf9961998edf5c65e3ea4355d5818dd6cd0f6809bec1afb951cc \ + --hash=sha256:bd0d42297ace400d8febe55f13fdf46e86754842b860c978dfec16f081e5c653 \ + --hash=sha256:bea79263d55c24a32b0d79c00a1c58bb2ee5f0757ed95656b01c0fb310c5af3d \ + --hash=sha256:c064e28361c05d72eed8e744c9605cbd6d2bb7481a511c74071fd9b24bc65d7d \ + --hash=sha256:c3200cb41cdbc65156e5f8c908d739b0dfed57e890329413da2748d1a2cd1a4e \ + --hash=sha256:c6c791b09c57ed76a18b03f2631753a4960eefbbca80f846da8baefc6491fcfe \ + --hash=sha256:c6ec3675d98915bf1ec8b3c7986422682f7232ea76cad276f4c8abd5b7319b70 \ + --hash=sha256:ce20fe000754f477c8a9125543f1936ea5b8867c5406757c224d745ed033e691 \ + --hash=sha256:cedb9dd9358e4ea1d9bce3665ce0797f6adf97ff142c8e25b46ba9cdd508e9b6 \ + --hash=sha256:e0a15757fccb38c410947df156f9749ae4a3c89b2393741a50521f39a8cf202a \ + --hash=sha256:e6e95176209257803a8b3d0394f21604e796dadb643d2f7ca21b66c9c0b30c9a \ + --hash=sha256:e70ff90c64419709d38c8932ea9fe1cc98415c4f87ea8da81719e43f02534bc9 \ + --hash=sha256:ec1a15968a9d80da01e1d30349b2b0d7cc91e96588ee324ce1b5228175043e95 \ + --hash=sha256:ec5d40dd494882704fb876c16fa7261a69791e784ae34e6b5992e977bd2e238c \ + --hash=sha256:f633074f36dbc33d5c05b5dc75371e5660f1dbf9c8b1d95669def05e5425989c \ + --hash=sha256:f7fe3dbe871294ba70d789be16b6e7e52b418311e166e0e3cba9522f0f437fb1 \ + --hash=sha256:f963ba8c3b0199f9d6b794c90ec77545e05eadc83973897a4523c9e8d84e9340 # via # feast (setup.py) # dask @@ -1469,76 +1476,68 @@ watchfiles==1.1.1 \ --hash=sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa \ --hash=sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf # via uvicorn -websockets==15.0.1 \ - --hash=sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2 \ - --hash=sha256:0a34631031a8f05657e8e90903e656959234f3a04552259458aac0b0f9ae6fd9 \ - --hash=sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5 \ - --hash=sha256:0c9e74d766f2818bb95f84c25be4dea09841ac0f734d1966f415e4edfc4ef1c3 \ - --hash=sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8 \ - --hash=sha256:0fdfe3e2a29e4db3659dbd5bbf04560cea53dd9610273917799f1cde46aa725e \ - --hash=sha256:1009ee0c7739c08a0cd59de430d6de452a55e42d6b522de7aa15e6f67db0b8e1 \ - --hash=sha256:1234d4ef35db82f5446dca8e35a7da7964d02c127b095e172e54397fb6a6c256 \ - --hash=sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85 \ - --hash=sha256:2034693ad3097d5355bfdacfffcbd3ef5694f9718ab7f29c29689a9eae841880 \ - --hash=sha256:21c1fa28a6a7e3cbdc171c694398b6df4744613ce9b36b1a498e816787e28123 \ - --hash=sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375 \ - --hash=sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065 \ - --hash=sha256:363c6f671b761efcb30608d24925a382497c12c506b51661883c3e22337265ed \ - --hash=sha256:39c1fec2c11dc8d89bba6b2bf1556af381611a173ac2b511cf7231622058af41 \ - --hash=sha256:3b1ac0d3e594bf121308112697cf4b32be538fb1444468fb0a6ae4feebc83411 \ - --hash=sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597 \ - --hash=sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f \ - --hash=sha256:3d00075aa65772e7ce9e990cab3ff1de702aa09be3940d1dc88d5abf1ab8a09c \ - --hash=sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3 \ - --hash=sha256:47819cea040f31d670cc8d324bb6435c6f133b8c7a19ec3d61634e62f8d8f9eb \ - --hash=sha256:47b099e1f4fbc95b701b6e85768e1fcdaf1630f3cbe4765fa216596f12310e2e \ - --hash=sha256:4a9fac8e469d04ce6c25bb2610dc535235bd4aa14996b4e6dbebf5e007eba5ee \ - --hash=sha256:4b826973a4a2ae47ba357e4e82fa44a463b8f168e1ca775ac64521442b19e87f \ - --hash=sha256:4c2529b320eb9e35af0fa3016c187dffb84a3ecc572bcee7c3ce302bfeba52bf \ - --hash=sha256:54479983bd5fb469c38f2f5c7e3a24f9a4e70594cd68cd1fa6b9340dadaff7cf \ - --hash=sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4 \ - --hash=sha256:5756779642579d902eed757b21b0164cd6fe338506a8083eb58af5c372e39d9a \ - --hash=sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665 \ - --hash=sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22 \ - --hash=sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675 \ - --hash=sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4 \ - --hash=sha256:5df592cd503496351d6dc14f7cdad49f268d8e618f80dce0cd5a36b93c3fc08d \ - --hash=sha256:5f4c04ead5aed67c8a1a20491d54cdfba5884507a48dd798ecaf13c74c4489f5 \ - --hash=sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65 \ - --hash=sha256:66dd88c918e3287efc22409d426c8f729688d89a0c587c88971a0faa2c2f3792 \ - --hash=sha256:678999709e68425ae2593acf2e3ebcbcf2e69885a5ee78f9eb80e6e371f1bf57 \ - --hash=sha256:67f2b6de947f8c757db2db9c71527933ad0019737ec374a8a6be9a956786aaf9 \ - --hash=sha256:693f0192126df6c2327cce3baa7c06f2a117575e32ab2308f7f8216c29d9e2e3 \ - --hash=sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151 \ - --hash=sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d \ - --hash=sha256:76d1f20b1c7a2fa82367e04982e708723ba0e7b8d43aa643d3dcd404d74f1475 \ - --hash=sha256:7f493881579c90fc262d9cdbaa05a6b54b3811c2f300766748db79f098db9940 \ - --hash=sha256:823c248b690b2fd9303ba00c4f66cd5e2d8c3ba4aa968b2779be9532a4dad431 \ - --hash=sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee \ - --hash=sha256:8dd8327c795b3e3f219760fa603dcae1dcc148172290a8ab15158cf85a953413 \ - --hash=sha256:8fdc51055e6ff4adeb88d58a11042ec9a5eae317a0a53d12c062c8a8865909e8 \ - --hash=sha256:a625e06551975f4b7ea7102bc43895b90742746797e2e14b70ed61c43a90f09b \ - --hash=sha256:abdc0c6c8c648b4805c5eacd131910d2a7f6455dfd3becab248ef108e89ab16a \ - --hash=sha256:ac017dd64572e5c3bd01939121e4d16cf30e5d7e110a119399cf3133b63ad054 \ - --hash=sha256:ac1e5c9054fe23226fb11e05a6e630837f074174c4c2f0fe442996112a6de4fb \ - --hash=sha256:ac60e3b188ec7574cb761b08d50fcedf9d77f1530352db4eef1707fe9dee7205 \ - --hash=sha256:b359ed09954d7c18bbc1680f380c7301f92c60bf924171629c5db97febb12f04 \ - --hash=sha256:b7643a03db5c95c799b89b31c036d5f27eeb4d259c798e878d6937d71832b1e4 \ - --hash=sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa \ - --hash=sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9 \ - --hash=sha256:cad21560da69f4ce7658ca2cb83138fb4cf695a2ba3e475e0559e05991aa8122 \ - --hash=sha256:d08eb4c2b7d6c41da6ca0600c077e93f5adcfd979cd777d747e9ee624556da4b \ - --hash=sha256:d50fd1ee42388dcfb2b3676132c78116490976f1300da28eb629272d5d93e905 \ - --hash=sha256:d591f8de75824cbb7acad4e05d2d710484f15f29d4a915092675ad3456f11770 \ - --hash=sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe \ - --hash=sha256:d63efaa0cd96cf0c5fe4d581521d9fa87744540d4bc999ae6e08595a1014b45b \ - --hash=sha256:d99e5546bf73dbad5bf3547174cd6cb8ba7273062a23808ffea025ecb1cf8562 \ - --hash=sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561 \ - --hash=sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215 \ - --hash=sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931 \ - --hash=sha256:f29d80eb9a9263b8d109135351caf568cc3f80b9928bccde535c235de55c22d9 \ - --hash=sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f \ - --hash=sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7 +websockets==16.0 \ + --hash=sha256:0298d07ee155e2e9fda5be8a9042200dd2e3bb0b8a38482156576f863a9d457c \ + --hash=sha256:04cdd5d2d1dacbad0a7bf36ccbcd3ccd5a30ee188f2560b7a62a30d14107b31a \ + --hash=sha256:08d7af67b64d29823fed316505a89b86705f2b7981c07848fb5e3ea3020c1abe \ + --hash=sha256:152284a83a00c59b759697b7f9e9cddf4e3c7861dd0d964b472b70f78f89e80e \ + --hash=sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec \ + --hash=sha256:19c4dc84098e523fd63711e563077d39e90ec6702aff4b5d9e344a60cb3c0cb1 \ + --hash=sha256:1c1b30e4f497b0b354057f3467f56244c603a79c0d1dafce1d16c283c25f6e64 \ + --hash=sha256:2b9f1e0d69bc60a4a87349d50c09a037a2607918746f07de04df9e43252c77a3 \ + --hash=sha256:31a52addea25187bde0797a97d6fc3d2f92b6f72a9370792d65a6e84615ac8a8 \ + --hash=sha256:32da954ffa2814258030e5a57bc73a3635463238e797c7375dc8091327434206 \ + --hash=sha256:335c23addf3d5e6a8633f9f8eda77efad001671e80b95c491dd0924587ece0b3 \ + --hash=sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156 \ + --hash=sha256:349f83cd6c9a415428ee1005cadb5c2c56f4389bc06a9af16103c3bc3dcc8b7d \ + --hash=sha256:37b31c1623c6605e4c00d466c9d633f9b812ea430c11c8a278774a1fde1acfa9 \ + --hash=sha256:417b28978cdccab24f46400586d128366313e8a96312e4b9362a4af504f3bbad \ + --hash=sha256:485c49116d0af10ac698623c513c1cc01c9446c058a4e61e3bf6c19dff7335a2 \ + --hash=sha256:4a1aba3340a8dca8db6eb5a7986157f52eb9e436b74813764241981ca4888f03 \ + --hash=sha256:50f23cdd8343b984957e4077839841146f67a3d31ab0d00e6b824e74c5b2f6e8 \ + --hash=sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230 \ + --hash=sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8 \ + --hash=sha256:5569417dc80977fc8c2d43a86f78e0a5a22fee17565d78621b6bb264a115d4ea \ + --hash=sha256:569d01a4e7fba956c5ae4fc988f0d4e187900f5497ce46339c996dbf24f17641 \ + --hash=sha256:583b7c42688636f930688d712885cf1531326ee05effd982028212ccc13e5957 \ + --hash=sha256:5a4b4cc550cb665dd8a47f868c8d04c8230f857363ad3c9caf7a0c3bf8c61ca6 \ + --hash=sha256:5f451484aeb5cafee1ccf789b1b66f535409d038c56966d6101740c1614b86c6 \ + --hash=sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5 \ + --hash=sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f \ + --hash=sha256:71c989cbf3254fbd5e84d3bff31e4da39c43f884e64f2551d14bb3c186230f00 \ + --hash=sha256:781caf5e8eee67f663126490c2f96f40906594cb86b408a703630f95550a8c3e \ + --hash=sha256:7be95cfb0a4dae143eaed2bcba8ac23f4892d8971311f1b06f3c6b78952ee70b \ + --hash=sha256:7d837379b647c0c4c2355c2499723f82f1635fd2c26510e1f587d89bc2199e72 \ + --hash=sha256:86890e837d61574c92a97496d590968b23c2ef0aeb8a9bc9421d174cd378ae39 \ + --hash=sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9 \ + --hash=sha256:8b6e209ffee39ff1b6d0fa7bfef6de950c60dfb91b8fcead17da4ee539121a79 \ + --hash=sha256:8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0 \ + --hash=sha256:8d7f0659570eefb578dacde98e24fb60af35350193e4f56e11190787bee77dac \ + --hash=sha256:8e1dab317b6e77424356e11e99a432b7cb2f3ec8c5ab4dabbcee6add48f72b35 \ + --hash=sha256:8ff32bb86522a9e5e31439a58addbb0166f0204d64066fb955265c4e214160f0 \ + --hash=sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5 \ + --hash=sha256:9b5aca38b67492ef518a8ab76851862488a478602229112c4b0d58d63a7a4d5c \ + --hash=sha256:a069d734c4a043182729edd3e9f247c3b2a4035415a9172fd0f1b71658a320a8 \ + --hash=sha256:a0b31e0b424cc6b5a04b8838bbaec1688834b2383256688cf47eb97412531da1 \ + --hash=sha256:a35539cacc3febb22b8f4d4a99cc79b104226a756aa7400adc722e83b0d03244 \ + --hash=sha256:a5e18a238a2b2249c9a9235466b90e96ae4795672598a58772dd806edc7ac6d3 \ + --hash=sha256:a653aea902e0324b52f1613332ddf50b00c06fdaf7e92624fbf8c77c78fa5767 \ + --hash=sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a \ + --hash=sha256:af80d74d4edfa3cb9ed973a0a5ba2b2a549371f8a741e0800cb07becdd20f23d \ + --hash=sha256:b14dc141ed6d2dde437cddb216004bcac6a1df0935d79656387bd41632ba0bbd \ + --hash=sha256:b784ca5de850f4ce93ec85d3269d24d4c82f22b7212023c974c401d4980ebc5e \ + --hash=sha256:bc59589ab64b0022385f429b94697348a6a234e8ce22544e3681b2e9331b5944 \ + --hash=sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82 \ + --hash=sha256:c0ee0e63f23914732c6d7e0cce24915c48f3f1512ec1d079ed01fc629dab269d \ + --hash=sha256:caab51a72c51973ca21fa8a18bd8165e1a0183f1ac7066a182ff27107b71e1a4 \ + --hash=sha256:d6297ce39ce5c2e6feb13c1a996a2ded3b6832155fcfc920265c76f24c7cceb5 \ + --hash=sha256:daa3b6ff70a9241cf6c7fc9e949d41232d9d7d26fd3522b1ad2b4d62487e9904 \ + --hash=sha256:df57afc692e517a85e65b72e165356ed1df12386ecb879ad5693be08fac65dde \ + --hash=sha256:e0334872c0a37b606418ac52f6ab9cfd17317ac26365f7f65e203e2d0d0d359f \ + --hash=sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c \ + --hash=sha256:eaded469f5e5b7294e2bdca0ab06becb6756ea86894a47806456089298813c89 \ + --hash=sha256:f4a32d1bd841d4bcbffdcb3d2ce50c09c3909fbead375ab28d0181af89fd04da \ + --hash=sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4 # via uvicorn zipp==3.23.0 \ --hash=sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e \ diff --git a/sdk/python/requirements/py3.12-ci-requirements.txt b/sdk/python/requirements/py3.12-ci-requirements.txt index 48c1fc21371..3434f34a2ef 100644 --- a/sdk/python/requirements/py3.12-ci-requirements.txt +++ b/sdk/python/requirements/py3.12-ci-requirements.txt @@ -12,127 +12,127 @@ aiohappyeyeballs==2.6.1 \ --hash=sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558 \ --hash=sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8 # via aiohttp -aiohttp==3.13.2 \ - --hash=sha256:04c3971421576ed24c191f610052bcb2f059e395bc2489dd99e397f9bc466329 \ - --hash=sha256:05c4dd3c48fb5f15db31f57eb35374cb0c09afdde532e7fb70a75aede0ed30f6 \ - --hash=sha256:070599407f4954021509193404c4ac53153525a19531051661440644728ba9a7 \ - --hash=sha256:0740f31a60848d6edb296a0df827473eede90c689b8f9f2a4cdde74889eb2254 \ - --hash=sha256:088912a78b4d4f547a1f19c099d5a506df17eacec3c6f4375e2831ec1d995742 \ - --hash=sha256:0a3d54e822688b56e9f6b5816fb3de3a3a64660efac64e4c2dc435230ad23bad \ - --hash=sha256:0db1e24b852f5f664cd728db140cf11ea0e82450471232a394b3d1a540b0f906 \ - --hash=sha256:0e87dff73f46e969af38ab3f7cb75316a7c944e2e574ff7c933bc01b10def7f5 \ - --hash=sha256:1237c1375eaef0db4dcd7c2559f42e8af7b87ea7d295b118c60c36a6e61cb811 \ - --hash=sha256:16f15a4eac3bc2d76c45f7ebdd48a65d41b242eb6c31c2245463b40b34584ded \ - --hash=sha256:1f9b2c2d4b9d958b1f9ae0c984ec1dd6b6689e15c75045be8ccb4011426268ca \ - --hash=sha256:204ffff2426c25dfda401ba08da85f9c59525cdc42bda26660463dd1cbcfec6f \ - --hash=sha256:20b10bbfbff766294fe99987f7bb3b74fdd2f1a2905f2562132641ad434dcf98 \ - --hash=sha256:20db2d67985d71ca033443a1ba2001c4b5693fe09b0e29f6d9358a99d4d62a8a \ - --hash=sha256:228a1cd556b3caca590e9511a89444925da87d35219a49ab5da0c36d2d943a6a \ - --hash=sha256:2372b15a5f62ed37789a6b383ff7344fc5b9f243999b0cd9b629d8bc5f5b4155 \ - --hash=sha256:23ad365e30108c422d0b4428cf271156dd56790f6dd50d770b8e360e6c5ab2e6 \ - --hash=sha256:23fb0783bc1a33640036465019d3bba069942616a6a2353c6907d7fe1ccdaf4e \ - --hash=sha256:2475391c29230e063ef53a66669b7b691c9bfc3f1426a0f7bcdf1216bdbac38b \ - --hash=sha256:27e569eb9d9e95dbd55c0fc3ec3a9335defbf1d8bc1d20171a49f3c4c607b93e \ - --hash=sha256:29562998ec66f988d49fb83c9b01694fa927186b781463f376c5845c121e4e0b \ - --hash=sha256:2adebd4577724dcae085665f294cc57c8701ddd4d26140504db622b8d566d7aa \ - --hash=sha256:2ca6ffef405fc9c09a746cb5d019c1672cd7f402542e379afc66b370833170cf \ - --hash=sha256:2e1a9bea6244a1d05a4e57c295d69e159a5c50d8ef16aa390948ee873478d9a5 \ - --hash=sha256:364e25edaabd3d37b1db1f0cbcee8c73c9a3727bfa262b83e5e4cf3489a2a9dc \ - --hash=sha256:364f55663085d658b8462a1c3f17b2b84a5c2e1ba858e1b79bff7b2e24ad1514 \ - --hash=sha256:39d02cb6025fe1aabca329c5632f48c9532a3dabccd859e7e2f110668972331f \ - --hash=sha256:3a92cf4b9bea33e15ecbaa5c59921be0f23222608143d025c989924f7e3e0c07 \ - --hash=sha256:40176a52c186aefef6eb3cad2cdd30cd06e3afbe88fe8ab2af9c0b90f228daca \ - --hash=sha256:4356474ad6333e41ccefd39eae869ba15a6c5299c9c01dfdcfdd5c107be4363e \ - --hash=sha256:43dff14e35aba17e3d6d5ba628858fb8cb51e30f44724a2d2f0c75be492c55e9 \ - --hash=sha256:4647d02df098f6434bafd7f32ad14942f05a9caa06c7016fdcc816f343997dd0 \ - --hash=sha256:47f438b1a28e926c37632bff3c44df7d27c9b57aaf4e34b1def3c07111fdb782 \ - --hash=sha256:4dd3db9d0f4ebca1d887d76f7cdbcd1116ac0d05a9221b9dad82c64a62578c4d \ - --hash=sha256:4ebf9cfc9ba24a74cf0718f04aac2a3bbe745902cc7c5ebc55c0f3b5777ef213 \ - --hash=sha256:5276807b9de9092af38ed23ce120539ab0ac955547b38563a9ba4f5b07b95293 \ - --hash=sha256:53b07472f235eb80e826ad038c9d106c2f653584753f3ddab907c83f49eedead \ - --hash=sha256:550bf765101ae721ee1d37d8095f47b1f220650f85fe1af37a90ce75bab89d04 \ - --hash=sha256:56d36e80d2003fa3fc0207fac644216d8532e9504a785ef9a8fd013f84a42c61 \ - --hash=sha256:585542825c4bc662221fb257889e011a5aa00f1ae4d75d1d246a5225289183e3 \ - --hash=sha256:5b927cf9b935a13e33644cbed6c8c4b2d0f25b713d838743f8fe7191b33829c4 \ - --hash=sha256:5d7f02042c1f009ffb70067326ef183a047425bb2ff3bc434ead4dd4a4a66a2b \ - --hash=sha256:6315fb6977f1d0dd41a107c527fee2ed5ab0550b7d885bc15fee20ccb17891da \ - --hash=sha256:66bac29b95a00db411cd758fea0e4b9bdba6d549dfe333f9a945430f5f2cc5a6 \ - --hash=sha256:6c00dbcf5f0d88796151e264a8eab23de2997c9303dd7c0bf622e23b24d3ce22 \ - --hash=sha256:6e7352512f763f760baaed2637055c49134fd1d35b37c2dedfac35bfe5cf8725 \ - --hash=sha256:7519bdc7dfc1940d201651b52bf5e03f5503bda45ad6eacf64dda98be5b2b6be \ - --hash=sha256:78cd586d8331fb8e241c2dd6b2f4061778cc69e150514b39a9e28dd050475661 \ - --hash=sha256:7a653d872afe9f33497215745da7a943d1dc15b728a9c8da1c3ac423af35178e \ - --hash=sha256:7c3a50345635a02db61792c85bb86daffac05330f6473d524f1a4e3ef9d0046d \ - --hash=sha256:7fbdf5ad6084f1940ce88933de34b62358d0f4a0b6ec097362dcd3e5a65a4989 \ - --hash=sha256:7fd19df530c292542636c2a9a85854fab93474396a52f1695e799186bbd7f24c \ - --hash=sha256:868e195e39b24aaa930b063c08bb0c17924899c16c672a28a65afded9c46c6ec \ - --hash=sha256:8709a0f05d59a71f33fd05c17fc11fcb8c30140506e13c2f5e8ee1b8964e1b45 \ - --hash=sha256:88d6c017966a78c5265d996c19cdb79235be5e6412268d7e2ce7dee339471b7a \ - --hash=sha256:8aa7c807df234f693fed0ecd507192fc97692e61fee5702cdc11155d2e5cadc8 \ - --hash=sha256:8b2f1414f6a1e0683f212ec80e813f4abef94c739fd090b66c9adf9d2a05feac \ - --hash=sha256:93655083005d71cd6c072cdab54c886e6570ad2c4592139c3fb967bfc19e4694 \ - --hash=sha256:939ced4a7add92296b0ad38892ce62b98c619288a081170695c6babe4f50e636 \ - --hash=sha256:9434bc0d80076138ea986833156c5a48c9c7a8abb0c96039ddbb4afc93184169 \ - --hash=sha256:94f05348c4406450f9d73d38efb41d669ad6cd90c7ee194810d0eefbfa875a7a \ - --hash=sha256:960c2fc686ba27b535f9fd2b52d87ecd7e4fd1cf877f6a5cba8afb5b4a8bd204 \ - --hash=sha256:96581619c57419c3d7d78703d5b78c1e5e5fc0172d60f555bdebaced82ded19a \ - --hash=sha256:97a0895a8e840ab3520e2288db7cace3a1981300d48babeb50e7425609e2e0ab \ - --hash=sha256:98c4fb90bb82b70a4ed79ca35f656f4281885be076f3f970ce315402b53099ae \ - --hash=sha256:99c5280a329d5fa18ef30fd10c793a190d996567667908bef8a7f81f8202b948 \ - --hash=sha256:9acda8604a57bb60544e4646a4615c1866ee6c04a8edef9b8ee6fd1d8fa2ddc8 \ - --hash=sha256:9c705601e16c03466cb72011bd1af55d68fa65b045356d8f96c216e5f6db0fa5 \ - --hash=sha256:9e8f8afb552297aca127c90cb840e9a1d4bfd6a10d7d8f2d9176e1acc69bad30 \ - --hash=sha256:9eb3e33fdbe43f88c3c75fa608c25e7c47bbd80f48d012763cb67c47f39a7e16 \ - --hash=sha256:9ec49dff7e2b3c85cdeaa412e9d438f0ecd71676fde61ec57027dd392f00c693 \ - --hash=sha256:9f377d0a924e5cc94dc620bc6366fc3e889586a7f18b748901cf016c916e2084 \ - --hash=sha256:a09a6d073fb5789456545bdee2474d14395792faa0527887f2f4ec1a486a59d3 \ - --hash=sha256:a2713a95b47374169409d18103366de1050fe0ea73db358fc7a7acb2880422d4 \ - --hash=sha256:a3b6fb0c207cc661fa0bf8c66d8d9b657331ccc814f4719468af61034b478592 \ - --hash=sha256:a4b88ebe35ce54205c7074f7302bd08a4cb83256a3e0870c72d6f68a3aaf8e49 \ - --hash=sha256:a88d13e7ca367394908f8a276b89d04a3652044612b9a408a0bb22a5ed976a1a \ - --hash=sha256:ac6cde5fba8d7d8c6ac963dbb0256a9854e9fafff52fbcc58fdf819357892c3e \ - --hash=sha256:ae32f24bbfb7dbb485a24b30b1149e2f200be94777232aeadba3eecece4d0aa4 \ - --hash=sha256:b009194665bcd128e23eaddef362e745601afa4641930848af4c8559e88f18f9 \ - --hash=sha256:b1e56bab2e12b2b9ed300218c351ee2a3d8c8fdab5b1ec6193e11a817767e47b \ - --hash=sha256:b395bbca716c38bef3c764f187860e88c724b342c26275bc03e906142fc5964f \ - --hash=sha256:b59d13c443f8e049d9e94099c7e412e34610f1f49be0f230ec656a10692a5802 \ - --hash=sha256:ba2715d842ffa787be87cbfce150d5e88c87a98e0b62e0f5aa489169a393dbbb \ - --hash=sha256:bb7fb776645af5cc58ab804c58d7eba545a97e047254a52ce89c157b5af6cd0b \ - --hash=sha256:c038a8fdc8103cd51dbd986ecdce141473ffd9775a7a8057a6ed9c3653478011 \ - --hash=sha256:c20423ce14771d98353d2e25e83591fa75dfa90a3c1848f3d7c68243b4fbded3 \ - --hash=sha256:c5c94825f744694c4b8db20b71dba9a257cd2ba8e010a803042123f3a25d50d7 \ - --hash=sha256:cf00e5db968c3f67eccd2778574cf64d8b27d95b237770aa32400bd7a1ca4f6c \ - --hash=sha256:d23b5fe492b0805a50d3371e8a728a9134d8de5447dce4c885f5587294750734 \ - --hash=sha256:d7bc4b7f9c4921eba72677cd9fedd2308f4a4ca3e12fab58935295ad9ea98700 \ - --hash=sha256:d8a9b889aeabd7a4e9af0b7f4ab5ad94d42e7ff679aaec6d0db21e3b639ad58d \ - --hash=sha256:dacd50501cd017f8cccb328da0c90823511d70d24a323196826d923aad865901 \ - --hash=sha256:e036a3a645fe92309ec34b918394bb377950cbb43039a97edae6c08db64b23e2 \ - --hash=sha256:e09a0a06348a2dd73e7213353c90d709502d9786219f69b731f6caa0efeb46f5 \ - --hash=sha256:e0c8e31cfcc4592cb200160344b2fb6ae0f9e4effe06c644b5a125d4ae5ebe23 \ - --hash=sha256:e1b4951125ec10c70802f2cb09736c895861cd39fd9dcb35107b4dc8ae6220b8 \ - --hash=sha256:e2a9ea08e8c58bb17655630198833109227dea914cd20be660f52215f6de5613 \ - --hash=sha256:e3403f24bcb9c3b29113611c3c16a2a447c3953ecf86b79775e7be06f7ae7ccb \ - --hash=sha256:e574a7d61cf10351d734bcddabbe15ede0eaa8a02070d85446875dc11189a251 \ - --hash=sha256:e67446b19e014d37342f7195f592a2a948141d15a312fe0e700c2fd2f03124f6 \ - --hash=sha256:e736c93e9c274fce6419af4aac199984d866e55f8a4cec9114671d0ea9688780 \ - --hash=sha256:e7c952aefdf2460f4ae55c5e9c3e80aa72f706a6317e06020f80e96253b1accd \ - --hash=sha256:e7f8659a48995edee7229522984bd1009c1213929c769c2daa80b40fe49a180c \ - --hash=sha256:e96eb1a34396e9430c19d8338d2ec33015e4a87ef2b4449db94c22412e25ccdf \ - --hash=sha256:ec7534e63ae0f3759df3a1ed4fa6bc8f75082a924b590619c0dd2f76d7043caa \ - --hash=sha256:ed2f9c7216e53c3df02264f25d824b079cc5914f9e2deba94155190ef648ee40 \ - --hash=sha256:eeacf451c99b4525f700f078becff32c32ec327b10dcf31306a8a52d78166de7 \ - --hash=sha256:f10d9c0b0188fe85398c61147bbd2a657d616c876863bfeff43376e0e3134673 \ - --hash=sha256:f2bef8237544f4e42878c61cef4e2839fee6346dc60f5739f876a9c50be7fcdb \ - --hash=sha256:f33c8748abef4d8717bb20e8fb1b3e07c6adacb7fd6beaae971a764cf5f30d61 \ - --hash=sha256:f7c183e786e299b5d6c49fb43a769f8eb8e04a2726a2bd5887b98b5cc2d67940 \ - --hash=sha256:fa4dcb605c6f82a80c7f95713c2b11c3b8e9893b3ebd2bc9bde93165ed6107be \ - --hash=sha256:fa89cb11bc71a63b69568d5b8a25c3ca25b6d54c15f907ca1c130d72f320b76b \ - --hash=sha256:fe242cd381e0fb65758faf5ad96c2e460df6ee5b2de1072fe97e4127927e00b4 \ - --hash=sha256:fe91b87fc295973096251e2d25a811388e7d8adf3bd2b97ef6ae78bc4ac6c476 \ - --hash=sha256:fed38a5edb7945f4d1bcabe2fcd05db4f6ec7e0e82560088b754f7e08d93772d \ - --hash=sha256:ff0a7b0a82a7ab905cbda74006318d1b12e37c797eb1b0d4eb3e316cf47f658f \ - --hash=sha256:ff15c147b2ad66da1f2cbb0622313f2242d8e6e8f9b79b5206c84523a4473248 \ - --hash=sha256:ff5e771f5dcbc81c64898c597a434f7682f2259e0cd666932a913d53d1341d1a +aiohttp==3.13.3 \ + --hash=sha256:01ad2529d4b5035578f5081606a465f3b814c542882804e2e8cda61adf5c71bf \ + --hash=sha256:042e9e0bcb5fba81886c8b4fbb9a09d6b8a00245fd8d88e4d989c1f96c74164c \ + --hash=sha256:05861afbbec40650d8a07ea324367cb93e9e8cc7762e04dd4405df99fa65159c \ + --hash=sha256:084911a532763e9d3dd95adf78a78f4096cd5f58cdc18e6fdbc1b58417a45423 \ + --hash=sha256:0add0900ff220d1d5c5ebbf99ed88b0c1bbf87aa7e4262300ed1376a6b13414f \ + --hash=sha256:0db318f7a6f065d84cb1e02662c526294450b314a02bd9e2a8e67f0d8564ce40 \ + --hash=sha256:10b47b7ba335d2e9b1239fa571131a87e2d8ec96b333e68b2a305e7a98b0bae2 \ + --hash=sha256:1449ceddcdbcf2e0446957863af03ebaaa03f94c090f945411b61269e2cb5daf \ + --hash=sha256:147e422fd1223005c22b4fe080f5d93ced44460f5f9c105406b753612b587821 \ + --hash=sha256:1cb93e166e6c28716c8c6aeb5f99dfb6d5ccf482d29fe9bf9a794110e6d0ab64 \ + --hash=sha256:215a685b6fbbfcf71dfe96e3eba7a6f58f10da1dfdf4889c7dd856abe430dca7 \ + --hash=sha256:2712039939ec963c237286113c68dbad80a82a4281543f3abf766d9d73228998 \ + --hash=sha256:27234ef6d85c914f9efeb77ff616dbf4ad2380be0cda40b4db086ffc7ddd1b7d \ + --hash=sha256:28e027cf2f6b641693a09f631759b4d9ce9165099d2b5d92af9bd4e197690eea \ + --hash=sha256:2b8d8ddba8f95ba17582226f80e2de99c7a7948e66490ef8d947e272a93e9463 \ + --hash=sha256:2ba0eea45eb5cc3172dbfc497c066f19c41bac70963ea1a67d51fc92e4cf9a80 \ + --hash=sha256:2be0e9ccf23e8a94f6f0650ce06042cefc6ac703d0d7ab6c7a917289f2539ad4 \ + --hash=sha256:2e41b18a58da1e474a057b3d35248d8320029f61d70a37629535b16a0c8f3767 \ + --hash=sha256:2eb752b102b12a76ca02dff751a801f028b4ffbbc478840b473597fc91a9ed43 \ + --hash=sha256:2fc82186fadc4a8316768d61f3722c230e2c1dcab4200d52d2ebdf2482e47592 \ + --hash=sha256:2fff83cfc93f18f215896e3a190e8e5cb413ce01553901aca925176e7568963a \ + --hash=sha256:31a83ea4aead760dfcb6962efb1d861db48c34379f2ff72db9ddddd4cda9ea2e \ + --hash=sha256:34749271508078b261c4abb1767d42b8d0c0cc9449c73a4df494777dc55f0687 \ + --hash=sha256:34bac00a67a812570d4a460447e1e9e06fae622946955f939051e7cc895cfab8 \ + --hash=sha256:37239e9f9a7ea9ac5bf6b92b0260b01f8a22281996da609206a84df860bc1261 \ + --hash=sha256:37da61e244d1749798c151421602884db5270faf479cf0ef03af0ff68954c9dd \ + --hash=sha256:3b61b7169ababd7802f9568ed96142616a9118dd2be0d1866e920e77ec8fa92a \ + --hash=sha256:3d9908a48eb7416dc1f4524e69f1d32e5d90e3981e4e37eb0aa1cd18f9cfa2a4 \ + --hash=sha256:3dd4dce1c718e38081c8f35f323209d4c1df7d4db4bab1b5c88a6b4d12b74587 \ + --hash=sha256:4021b51936308aeea0367b8f006dc999ca02bc118a0cc78c303f50a2ff6afb91 \ + --hash=sha256:40c5e40ecc29ba010656c18052b877a1c28f84344825efa106705e835c28530f \ + --hash=sha256:425c126c0dc43861e22cb1c14ba4c8e45d09516d0a3ae0a3f7494b79f5f233a3 \ + --hash=sha256:44531a36aa2264a1860089ffd4dce7baf875ee5a6079d5fb42e261c704ef7344 \ + --hash=sha256:48e377758516d262bde50c2584fc6c578af272559c409eecbdd2bae1601184d6 \ + --hash=sha256:49a03727c1bba9a97d3e93c9f93ca03a57300f484b6e935463099841261195d3 \ + --hash=sha256:4ae5b5a0e1926e504c81c5b84353e7a5516d8778fbbff00429fe7b05bb25cbce \ + --hash=sha256:4e239d501f73d6db1522599e14b9b321a7e3b1de66ce33d53a765d975e9f4808 \ + --hash=sha256:56339a36b9f1fc708260c76c87e593e2afb30d26de9ae1eb445b5e051b98a7a1 \ + --hash=sha256:568f416a4072fbfae453dcf9a99194bbb8bdeab718e08ee13dfa2ba0e4bebf29 \ + --hash=sha256:5b179331a481cb5529fca8b432d8d3c7001cb217513c94cd72d668d1248688a3 \ + --hash=sha256:5b6073099fb654e0a068ae678b10feff95c5cae95bbfcbfa7af669d361a8aa6b \ + --hash=sha256:5d2d94f1f5fcbe40838ac51a6ab5704a6f9ea42e72ceda48de5e6b898521da51 \ + --hash=sha256:5dff64413671b0d3e7d5918ea490bdccb97a4ad29b3f311ed423200b2203e01c \ + --hash=sha256:5e1d8c8b8f1d91cd08d8f4a3c2b067bfca6ec043d3ff36de0f3a715feeedf926 \ + --hash=sha256:5f8ca7f2bb6ba8348a3614c7918cc4bb73268c5ac2a207576b7afea19d3d9f64 \ + --hash=sha256:642f752c3eb117b105acbd87e2c143de710987e09860d674e068c4c2c441034f \ + --hash=sha256:65d2ccb7eabee90ce0503c17716fc77226be026dcc3e65cce859a30db715025b \ + --hash=sha256:693781c45a4033d31d4187d2436f5ac701e7bbfe5df40d917736108c1cc7436e \ + --hash=sha256:694976222c711d1d00ba131904beb60534f93966562f64440d0c9d41b8cdb440 \ + --hash=sha256:697753042d57f4bf7122cab985bf15d0cef23c770864580f5af4f52023a56bd6 \ + --hash=sha256:69c56fbc1993fa17043e24a546959c0178fe2b5782405ad4559e6c13975c15e3 \ + --hash=sha256:6de499a1a44e7de70735d0b39f67c8f25eb3d91eb3103be99ca0fa882cdd987d \ + --hash=sha256:6fc0e2337d1a4c3e6acafda6a78a39d4c14caea625124817420abceed36e2415 \ + --hash=sha256:75ca857eba4e20ce9f546cd59c7007b33906a4cd48f2ff6ccf1ccfc3b646f279 \ + --hash=sha256:7a4a94eb787e606d0a09404b9c38c113d3b099d508021faa615d70a0131907ce \ + --hash=sha256:7b5e8fe4de30df199155baaf64f2fcd604f4c678ed20910db8e2c66dc4b11603 \ + --hash=sha256:7bfdc049127717581866fa4708791220970ce291c23e28ccf3922c700740fdc0 \ + --hash=sha256:7e63f210bc1b57ef699035f2b4b6d9ce096b5914414a49b0997c839b2bd2223c \ + --hash=sha256:7f9120f7093c2a32d9647abcaf21e6ad275b4fbec5b55969f978b1a97c7c86bf \ + --hash=sha256:8057c98e0c8472d8846b9c79f56766bcc57e3e8ac7bfd510482332366c56c591 \ + --hash=sha256:80dd4c21b0f6237676449c6baaa1039abae86b91636b6c91a7f8e61c87f89540 \ + --hash=sha256:81e97251d9298386c2b7dbeb490d3d1badbdc69107fb8c9299dd04eb39bddc0e \ + --hash=sha256:82611aeec80eb144416956ec85b6ca45a64d76429c1ed46ae1b5f86c6e0c9a26 \ + --hash=sha256:8542f41a62bcc58fc7f11cf7c90e0ec324ce44950003feb70640fc2a9092c32a \ + --hash=sha256:859bd3f2156e81dd01432f5849fc73e2243d4a487c4fd26609b1299534ee1845 \ + --hash=sha256:87797e645d9d8e222e04160ee32aa06bc5c163e8499f24db719e7852ec23093a \ + --hash=sha256:87b9aab6d6ed88235aa2970294f496ff1a1f9adcd724d800e9b952395a80ffd9 \ + --hash=sha256:8a60e60746623925eab7d25823329941aee7242d559baa119ca2b253c88a7bd6 \ + --hash=sha256:90455115e5da1c3c51ab619ac57f877da8fd6d73c05aacd125c5ae9819582aba \ + --hash=sha256:90751b8eed69435bac9ff4e3d2f6b3af1f57e37ecb0fbeee59c0174c9e2d41df \ + --hash=sha256:947c26539750deeaee933b000fb6517cc770bbd064bad6033f1cff4803881e43 \ + --hash=sha256:96d604498a7c782cb15a51c406acaea70d8c027ee6b90c569baa6e7b93073679 \ + --hash=sha256:988a8c5e317544fdf0d39871559e67b6341065b87fceac641108c2096d5506b7 \ + --hash=sha256:9a9dc347e5a3dc7dfdbc1f82da0ef29e388ddb2ed281bfce9dd8248a313e62b7 \ + --hash=sha256:9ae8dd55c8e6c4257eae3a20fd2c8f41edaea5992ed67156642493b8daf3cecc \ + --hash=sha256:9af5e68ee47d6534d36791bbe9b646d2a7c7deb6fc24d7943628edfbb3581f29 \ + --hash=sha256:9b174f267b5cfb9a7dba9ee6859cecd234e9a681841eb85068059bc867fb8f02 \ + --hash=sha256:9bf9f7a65e7aa20dd764151fb3d616c81088f91f8df39c3893a536e279b4b984 \ + --hash=sha256:9d4c940f02f49483b18b079d1c27ab948721852b281f8b015c058100e9421dd1 \ + --hash=sha256:9ebf57d09e131f5323464bd347135a88622d1c0976e88ce15b670e7ad57e4bd6 \ + --hash=sha256:a19884d2ee70b06d9204b2727a7b9f983d0c684c650254679e716b0b77920632 \ + --hash=sha256:a1e53262fd202e4b40b70c3aff944a8155059beedc8a89bba9dc1f9ef06a1b56 \ + --hash=sha256:a2212ad43c0833a873d0fb3c63fa1bacedd4cf6af2fee62bf4b739ceec3ab239 \ + --hash=sha256:a45530014d7a1e09f4a55f4f43097ba0fd155089372e105e4bff4ca76cb1b168 \ + --hash=sha256:a949eee43d3782f2daae4f4a2819b2cb9b0c5d3b7f7a927067cc84dafdbb9f88 \ + --hash=sha256:add1da70de90a2569c5e15249ff76a631ccacfe198375eead4aadf3b8dc849dc \ + --hash=sha256:af71fff7bac6bb7508956696dce8f6eec2bbb045eceb40343944b1ae62b5ef11 \ + --hash=sha256:b04be762396457bef43f3597c991e192ee7da460a4953d7e647ee4b1c28e7046 \ + --hash=sha256:b0d95340658b9d2f11d9697f59b3814a9d3bb4b7a7c20b131df4bcef464037c0 \ + --hash=sha256:b1a6102b4d3ebc07dad44fbf07b45bb600300f15b552ddf1851b5390202ea2e3 \ + --hash=sha256:b46020d11d23fe16551466c77823df9cc2f2c1e63cc965daf67fa5eec6ca1877 \ + --hash=sha256:b556c85915d8efaed322bf1bdae9486aa0f3f764195a0fb6ee962e5c71ef5ce1 \ + --hash=sha256:b903a4dfee7d347e2d87697d0713be59e0b87925be030c9178c5faa58ea58d5c \ + --hash=sha256:b928f30fe49574253644b1ca44b1b8adbd903aa0da4b9054a6c20fc7f4092a25 \ + --hash=sha256:b99281b0704c103d4e11e72a76f1b543d4946fea7dd10767e7e1b5f00d4e5704 \ + --hash=sha256:bae5c2ed2eae26cc382020edad80d01f36cb8e746da40b292e68fec40421dc6a \ + --hash=sha256:bb4f7475e359992b580559e008c598091c45b5088f28614e855e42d39c2f1033 \ + --hash=sha256:bbe7d4cecacb439e2e2a8a1a7b935c25b812af7a5fd26503a66dadf428e79ec1 \ + --hash=sha256:bfc1cc2fe31a6026a8a88e4ecfb98d7f6b1fec150cfd708adbfd1d2f42257c29 \ + --hash=sha256:c014c7ea7fb775dd015b2d3137378b7be0249a448a1612268b5a90c2d81de04d \ + --hash=sha256:c048058117fd649334d81b4b526e94bde3ccaddb20463a815ced6ecbb7d11160 \ + --hash=sha256:c0e2d366af265797506f0283487223146af57815b388623f0357ef7eac9b209d \ + --hash=sha256:c19b90316ad3b24c69cd78d5c9b4f3aa4497643685901185b65166293d36a00f \ + --hash=sha256:c685f2d80bb67ca8c3837823ad76196b3694b0159d232206d1e461d3d434666f \ + --hash=sha256:c6b8568a3bb5819a0ad087f16d40e5a3fb6099f39ea1d5625a3edc1e923fc538 \ + --hash=sha256:d32764c6c9aafb7fb55366a224756387cd50bfa720f32b88e0e6fa45b27dcf29 \ + --hash=sha256:d5a372fd5afd301b3a89582817fdcdb6c34124787c70dbcc616f259013e7eef7 \ + --hash=sha256:d60ac9663f44168038586cab2157e122e46bdef09e9368b37f2d82d354c23f72 \ + --hash=sha256:dca68018bf48c251ba17c72ed479f4dafe9dbd5a73707ad8d28a38d11f3d42af \ + --hash=sha256:de2c184bb1fe2cbd2cefba613e9db29a5ab559323f994b6737e370d3da0ac455 \ + --hash=sha256:e3531d63d3bdfa7e3ac5e9b27b2dd7ec9df3206a98e0b3445fa906f233264c57 \ + --hash=sha256:e50a2e1404f063427c9d027378472316201a2290959a295169bcf25992d04558 \ + --hash=sha256:e636b3c5f61da31a92bf0d91da83e58fdfa96f178ba682f11d24f31944cdd28c \ + --hash=sha256:ea37047c6b367fd4bd632bff8077449b8fa034b69e812a18e0132a00fae6e808 \ + --hash=sha256:f33ed1a2bf1997a36661874b017f5c4b760f41266341af36febaf271d179f6d7 \ + --hash=sha256:f76c1e3fe7d7c8afad7ed193f89a292e1999608170dcc9751a7462a87dfd5bc0 \ + --hash=sha256:f9444f105664c4ce47a2a7171a2418bce5b7bae45fb610f4e2c36045d85911d3 \ + --hash=sha256:fc290605db2a917f6e81b0e1e0796469871f5af381ce15c604a3c5c7e51cb730 \ + --hash=sha256:fc353029f176fd2b3ec6cfc71be166aba1936fe5d73dd1992ce289ca6647a9aa \ + --hash=sha256:fee0c6bc7db1de362252affec009707a17478a00ec69f797d23ca256e36d5940 # via # aiobotocore # aiohttp-cors @@ -166,9 +166,9 @@ annotated-types==0.7.0 \ --hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 \ --hash=sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89 # via pydantic -anyio==4.12.0 \ - --hash=sha256:73c693b567b0c55130c104d0b43a9baf3aa6a31fc6110116509f27bf75e21ec0 \ - --hash=sha256:dad2376a628f98eeca4881fc56cd06affd18f659b17a747d3ff0307ced94b1bb +anyio==4.12.1 \ + --hash=sha256:41cfcc3a4c85d3f05c932da7c26d0201ac36f72abd4435ba90d0464a3ffed703 \ + --hash=sha256:d405828884fc140aa80a3c667b8beed277f1dfedec42ba031bd6ac3db606ab6c # via # elasticsearch # httpx @@ -238,9 +238,9 @@ async-property==0.2.2 \ --hash=sha256:17d9bd6ca67e27915a75d92549df64b5c7174e9dc806b30a3934dc4ff0506380 \ --hash=sha256:8924d792b5843994537f8ed411165700b27b2bd966cefc4daeefc1253442a9d7 # via python-keycloak -atpublic==5.1 \ - --hash=sha256:135783dbd887fbddb6ef032d104da70c124f2b44b9e2d79df07b9da5334825e3 \ - --hash=sha256:abc1f4b3dbdd841cc3539e4b5e4f3ad41d658359de704e30cb36da4d4e9d3022 +atpublic==7.0.0 \ + --hash=sha256:466ef10d0c8bbd14fd02a5fbd5a8b6af6a846373d91106d3a07c16d72d96b63e \ + --hash=sha256:6702bd9e7245eb4e8220a3e222afcef7f87412154732271ee7deee4433b72b4b # via ibis-framework attrs==25.4.0 \ --hash=sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11 \ @@ -250,9 +250,9 @@ attrs==25.4.0 \ # jsonlines # jsonschema # referencing -azure-core==1.37.0 \ - --hash=sha256:7064f2c11e4b97f340e8e8c6d923b822978be3016e46b7bc4aa4b337cfb48aee \ - --hash=sha256:b3abe2c59e7d6bb18b38c275a5029ff80f98990e7c90a5e646249a56630fcc19 +azure-core==1.38.0 \ + --hash=sha256:8194d2682245a3e4e3151a667c686464c3786fed7918b394d035bdcd61bb5993 \ + --hash=sha256:ab0c9b2cd71fecb1842d52c965c95285d3cfb38902f6766e4a471f1cd8905335 # via # azure-identity # azure-storage-blob @@ -260,9 +260,9 @@ azure-identity==1.25.1 \ --hash=sha256:87ca8328883de6036443e1c37b40e8dc8fb74898240f61071e09d2e369361456 \ --hash=sha256:e9edd720af03dff020223cd269fa3a61e8f345ea75443858273bcb44844ab651 # via feast (setup.py) -azure-storage-blob==12.27.1 \ - --hash=sha256:65d1e25a4628b7b6acd20ff7902d8da5b4fde8e46e19c8f6d213a3abc3ece272 \ - --hash=sha256:a1596cc4daf5dac9be115fcb5db67245eae894cf40e4248243754261f7b674a6 +azure-storage-blob==12.28.0 \ + --hash=sha256:00fb1db28bf6a7b7ecaa48e3b1d5c83bfadacc5a678b77826081304bd87d6461 \ + --hash=sha256:e7d98ea108258d29aa0efbfd591b2e2075fa1722a2fae8699f0b3c9de11eff41 # via feast (setup.py) babel==2.17.0 \ --hash=sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d \ @@ -341,9 +341,9 @@ beautifulsoup4==4.14.3 \ # via # docling # nbconvert -bigtree==1.0.4 \ - --hash=sha256:e4af0c5bc0d2cd72e18442965e4509f642b16a0de65db6d0ec116e30f959010c \ - --hash=sha256:f58a3238bb9b1142d893c9de4921bfd18d435427c75e0c168dd580eabf6dc7fd +bigtree==1.1.0 \ + --hash=sha256:3f1ff63d2d66d31bf19855ddda8884637edf8dd1fc1aa118cf3a750580ece48b \ + --hash=sha256:f54f99d842732c91cce39c596a3755a2e8325b1cab5bc6876f5b15bd3942081c # via feast (setup.py) bleach[css]==6.3.0 \ --hash=sha256:6f3b91b1c0a02bb9a78b5a454c92506aa0fdf197e1d5e114d2e00c6f64306d22 \ @@ -366,17 +366,13 @@ botocore==1.38.46 \ # moto # s3transfer # snowflake-connector-python -build==1.3.0 \ - --hash=sha256:698edd0ea270bde950f53aed21f3a0135672206f3911e0176261a31e0e07b397 \ - --hash=sha256:7145f0b5061ba90a1500d60bd1b13ca0a8a4cebdd0cc16ed8adf1c0e739f43b4 +build==1.4.0 \ + --hash=sha256:6a07c1b8eb6f2b311b96fcbdbce5dab5fe637ffda0fd83c9cac622e927501596 \ + --hash=sha256:f1b91b925aa322be454f8330c6fb48b465da993d1e7e7e6fa35027ec49f3c936 # via # feast (setup.py) # pip-tools # singlestoredb -cachetools==6.2.4 \ - --hash=sha256:69a7a52634fed8b8bf6e24a050fb60bff1c9bd8f6d24572b99c32d4e71e62a51 \ - --hash=sha256:82c5c05585e70b6ba2d3ae09ea60b79548872185d2f24ae1f2709d37299fd607 - # via google-auth cassandra-driver==3.29.3 \ --hash=sha256:064bf45d3ca87239e11168c0110676fc64f7fdbddb4bcba9be787b8ad5f6d734 \ --hash=sha256:0785f6e0986089e922378ae3b64b5f696440aeb595fb84c2cf3ccef220c6ae91 \ @@ -410,9 +406,9 @@ cassandra-driver==3.29.3 \ --hash=sha256:fcf45725ae1751cb934b9b827a7d9cd899bbd09eb1ad28e2160b4584de35ba77 \ --hash=sha256:ff6b82ee4533f6fd4474d833e693b44b984f58337173ee98ed76bce08721a636 # via feast (setup.py) -certifi==2025.11.12 \ - --hash=sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b \ - --hash=sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316 +certifi==2026.1.4 \ + --hash=sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c \ + --hash=sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120 # via # clickhouse-connect # docling @@ -696,9 +692,9 @@ cloudpickle==3.1.2 \ --hash=sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414 \ --hash=sha256:9acb47f6afd73f60dc1df93bb801b472f05ff42fa6c84167d25cb206be1fbf4a # via dask -codeflare-sdk==0.33.0 \ - --hash=sha256:3cd834410053e745ad1afa1edba7577a9ea909690c00b6e724d63f64b83f9ca2 \ - --hash=sha256:a8d0a838b4ec197e91a547b8011425c1b1af8768f8cf2346365adfa24622ed48 +codeflare-sdk==0.33.1 \ + --hash=sha256:6622a73edde5042455ae7d76279a5279c55db4950533ea7f12aac2fc51d49bb8 \ + --hash=sha256:ad41ec5260217fd030904fb4b9fe62e26c3f51ac7999a5d607eb4b1359edd5e5 # via feast (setup.py) colorama==0.4.6 \ --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ @@ -923,9 +919,9 @@ dask[dataframe]==2025.12.0 \ --hash=sha256:4213ce9c5d51d6d89337cff69de35d902aa0bf6abdb8a25c942a4d0281f3a598 \ --hash=sha256:8d478f2aabd025e2453cf733ad64559de90cf328c20209e4574e9543707c3e1b # via feast (setup.py) -datasets==4.0.0 \ - --hash=sha256:7ef95e62025fd122882dbce6cb904c8cd3fbc829de6669a5eb939c77d50e203d \ - --hash=sha256:9657e7140a9050db13443ba21cb5de185af8af944479b00e7ff1e00a61c8dbf1 +datasets==4.4.2 \ + --hash=sha256:6f5ef3417504d9cd663c71c1b90b9a494ff4c2076a2cd6a6e40ceee6ad95befc \ + --hash=sha256:9de16e415c4ba4713eac0493f7c7dc74f3aa21599297f00cc6ddab409cb7b24b # via feast (setup.py) db-dtypes==1.5.0 \ --hash=sha256:abdbb2e4eb965800ed6f98af0c5c1cafff9063ace09114be2d26a7f046be2c8a \ @@ -986,9 +982,9 @@ deprecation==2.1.0 \ --hash=sha256:72b3bde64e5d778694b0cf68178aed03d15e15477116add3fb773e581f9518ff \ --hash=sha256:a10811591210e1fb0e768a8c25517cabeabcba6f0bf96564f8ff45189f90b14a # via python-keycloak -dill==0.3.8 \ - --hash=sha256:3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca \ - --hash=sha256:c36ca9ffb54365bdd2f8eb3eff7d2a21237f8452b57ace88b1ac615b7e815bd7 +dill==0.3.9 \ + --hash=sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a \ + --hash=sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c # via # feast (setup.py) # datasets @@ -1005,9 +1001,9 @@ docling==2.27.0 \ --hash=sha256:1288ed75b27e33bf94daff34faffc6d11b7d7ccc13e3df84fb24adad3991f72d \ --hash=sha256:faba35662612a2c687a3a463e501d95f645316436084af92a0442ce162429a3d # via feast (setup.py) -docling-core[chunking]==2.57.0 \ - --hash=sha256:24b71172e8bc4fbe2b4213b29f51878114f4c13f25fc0bc9920168505c76c1a3 \ - --hash=sha256:398768b4d275ad2e11703ad9446fd0315a9a5fc8d09bc45ed207302d844d6ed5 +docling-core[chunking]==2.59.0 \ + --hash=sha256:014e1075c41fdac0932f25226d6c0972cb9772d866efcf8d04ca2abe246797c1 \ + --hash=sha256:08900edbaf86a0acdd3d1fb5d47284f3826f68638245ba4a03aba1558d0067d9 # via # docling # docling-ibm-models @@ -1055,59 +1051,48 @@ docutils==0.19 \ --hash=sha256:33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6 \ --hash=sha256:5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc # via sphinx -duckdb==1.1.3 \ - --hash=sha256:00cca22df96aa3473fe4584f84888e2cf1c516e8c2dd837210daec44eadba586 \ - --hash=sha256:08935700e49c187fe0e9b2b86b5aad8a2ccd661069053e38bfaed3b9ff795efd \ - --hash=sha256:0897f83c09356206ce462f62157ce064961a5348e31ccb2a557a7531d814e70e \ - --hash=sha256:09c68522c30fc38fc972b8a75e9201616b96ae6da3444585f14cf0d116008c95 \ - --hash=sha256:0a55169d2d2e2e88077d91d4875104b58de45eff6a17a59c7dc41562c73df4be \ - --hash=sha256:0ba6baa0af33ded836b388b09433a69b8bec00263247f6bf0a05c65c897108d3 \ - --hash=sha256:183ac743f21c6a4d6adfd02b69013d5fd78e5e2cd2b4db023bc8a95457d4bc5d \ - --hash=sha256:1aa3abec8e8995a03ff1a904b0e66282d19919f562dd0a1de02f23169eeec461 \ - --hash=sha256:1c0226dc43e2ee4cc3a5a4672fddb2d76fd2cf2694443f395c02dd1bea0b7fce \ - --hash=sha256:1d9ab6143e73bcf17d62566e368c23f28aa544feddfd2d8eb50ef21034286f24 \ - --hash=sha256:2141c6b28162199999075d6031b5d63efeb97c1e68fb3d797279d31c65676269 \ - --hash=sha256:252d9b17d354beb9057098d4e5d5698e091a4f4a0d38157daeea5fc0ec161670 \ - --hash=sha256:25fb02629418c0d4d94a2bc1776edaa33f6f6ccaa00bd84eb96ecb97ae4b50e9 \ - --hash=sha256:2f073d15d11a328f2e6d5964a704517e818e930800b7f3fa83adea47f23720d3 \ - --hash=sha256:35c420f58abc79a68a286a20fd6265636175fadeca1ce964fc8ef159f3acc289 \ - --hash=sha256:4ebf5f60ddbd65c13e77cddb85fe4af671d31b851f125a4d002a313696af43f1 \ - --hash=sha256:4f0e2e5a6f5a53b79aee20856c027046fba1d73ada6178ed8467f53c3877d5e0 \ - --hash=sha256:51c6d79e05b4a0933672b1cacd6338f882158f45ef9903aef350c4427d9fc898 \ - --hash=sha256:51e7dbd968b393343b226ab3f3a7b5a68dee6d3fe59be9d802383bf916775cb8 \ - --hash=sha256:5ace6e4b1873afdd38bd6cc8fcf90310fb2d454f29c39a61d0c0cf1a24ad6c8d \ - --hash=sha256:5d57776539211e79b11e94f2f6d63de77885f23f14982e0fac066f2885fcf3ff \ - --hash=sha256:6411e21a2128d478efbd023f2bdff12464d146f92bc3e9c49247240448ace5a6 \ - --hash=sha256:647f17bd126170d96a38a9a6f25fca47ebb0261e5e44881e3782989033c94686 \ - --hash=sha256:68c3a46ab08836fe041d15dcbf838f74a990d551db47cb24ab1c4576fc19351c \ - --hash=sha256:77f26884c7b807c7edd07f95cf0b00e6d47f0de4a534ac1706a58f8bc70d0d31 \ - --hash=sha256:7c71169fa804c0b65e49afe423ddc2dc83e198640e3b041028da8110f7cd16f7 \ - --hash=sha256:80158f4c7c7ada46245837d5b6869a336bbaa28436fbb0537663fa324a2750cd \ - --hash=sha256:872d38b65b66e3219d2400c732585c5b4d11b13d7a36cd97908d7981526e9898 \ - --hash=sha256:8ee97ec337794c162c0638dda3b4a30a483d0587deda22d45e1909036ff0b739 \ - --hash=sha256:911d58c22645bfca4a5a049ff53a0afd1537bc18fedb13bc440b2e5af3c46148 \ - --hash=sha256:9c619e4849837c8c83666f2cd5c6c031300cd2601e9564b47aa5de458ff6e69d \ - --hash=sha256:9d0767ada9f06faa5afcf63eb7ba1befaccfbcfdac5ff86f0168c673dd1f47aa \ - --hash=sha256:9e3f5cd604e7c39527e6060f430769b72234345baaa0987f9500988b2814f5e4 \ - --hash=sha256:a1f83c7217c188b7ab42e6a0963f42070d9aed114f6200e3c923c8899c090f16 \ - --hash=sha256:a1fa0c502f257fa9caca60b8b1478ec0f3295f34bb2efdc10776fc731b8a6c5f \ - --hash=sha256:a30dd599b8090ea6eafdfb5a9f1b872d78bac318b6914ada2d35c7974d643640 \ - --hash=sha256:a433ae9e72c5f397c44abdaa3c781d94f94f4065bcbf99ecd39433058c64cb38 \ - --hash=sha256:a4748635875fc3c19a7320a6ae7410f9295557450c0ebab6d6712de12640929a \ - --hash=sha256:b74e121ab65dbec5290f33ca92301e3a4e81797966c8d9feef6efdf05fc6dafd \ - --hash=sha256:c443d3d502335e69fc1e35295fcfd1108f72cb984af54c536adfd7875e79cee5 \ - --hash=sha256:c5336939d83837af52731e02b6a78a446794078590aa71fd400eb17f083dda3e \ - --hash=sha256:cddc6c1a3b91dcc5f32493231b3ba98f51e6d3a44fe02839556db2b928087378 \ - --hash=sha256:d08308e0a46c748d9c30f1d67ee1143e9c5ea3fbcccc27a47e115b19e7e78aa9 \ - --hash=sha256:d5724fd8a49e24d730be34846b814b98ba7c304ca904fbdc98b47fa95c0b0cee \ - --hash=sha256:e4ef7ba97a65bd39d66f2a7080e6fb60e7c3e41d4c1e19245f90f53b98e3ac32 \ - --hash=sha256:e59087dbbb63705f2483544e01cccf07d5b35afa58be8931b224f3221361d537 \ - --hash=sha256:e86006958e84c5c02f08f9b96f4bc26990514eab329b1b4f71049b3727ce5989 \ - --hash=sha256:ecb1dc9062c1cc4d2d88a5e5cd8cc72af7818ab5a3c0f796ef0ffd60cfd3efb4 \ - --hash=sha256:eeacb598120040e9591f5a4edecad7080853aa8ac27e62d280f151f8c862afa3 \ - --hash=sha256:f549af9f7416573ee48db1cf8c9d27aeed245cb015f4b4f975289418c6cf7320 \ - --hash=sha256:f58db1b65593ff796c8ea6e63e2e144c944dd3d51c8d8e40dffa7f41693d35d3 \ - --hash=sha256:f9b47036945e1db32d70e414a10b1593aec641bd4c5e2056873d971cc21e978b +duckdb==1.4.3 \ + --hash=sha256:006aca6a6d6736c441b02ff5c7600b099bb8b7f4de094b8b062137efddce42df \ + --hash=sha256:130c6760f6c573f9c9fe9aba56adba0fab48811a4871b7b8fd667318b4a3e8da \ + --hash=sha256:16952ac05bd7e7b39946695452bf450db1ebbe387e1e7178e10f593f2ea7b9a8 \ + --hash=sha256:1b35491db98ccd11d151165497c084a9d29d3dc42fc80abea2715a6c861ca43d \ + --hash=sha256:1b9b445970fd18274d5ac07a0b24c032e228f967332fb5ebab3d7db27738c0e4 \ + --hash=sha256:1bb8bd5a3dd205983726185b280a211eacc9f5bc0c4d4505bec8c87ac33a8ccb \ + --hash=sha256:1e5457dda91b67258aae30fb1a0df84183a9f6cd27abac1d5536c0d876c6dfa1 \ + --hash=sha256:20c88effaa557a11267706b01419c542fe42f893dee66e5a6daa5974ea2d4a46 \ + --hash=sha256:23a3a077821bed1768a84ac9cbf6b6487ead33e28e62cb118bda5fb8f9e53dea \ + --hash=sha256:23b12854032c1a58d0452e2b212afa908d4ce64171862f3792ba9a596ba7c765 \ + --hash=sha256:274d4a31aba63115f23e7e7b401e3e3a937f3626dc9dea820a9c7d3073f450d2 \ + --hash=sha256:2b195270ff1a661f22cbd547a215baff265b7d4469a76a215c8992b5994107c3 \ + --hash=sha256:2b30245375ea94ab528c87c61fc3ab3e36331180b16af92ee3a37b810a745d24 \ + --hash=sha256:316711a9e852bcfe1ed6241a5f654983f67e909e290495f3562cccdf43be8180 \ + --hash=sha256:366bf607088053dce845c9d24c202c04d78022436cc5d8e4c9f0492de04afbe7 \ + --hash=sha256:4f868a7e6d9b37274a1aa34849ea92aa964e9bd59a5237d6c17e8540533a1e4f \ + --hash=sha256:4fef6a053a1c485292000bf0c338bba60f89d334f6a06fc76ba4085a5a322b76 \ + --hash=sha256:5634e40e1e2d972e4f75bced1fbdd9e9e90faa26445c1052b27de97ee546944a \ + --hash=sha256:6302452e57aef29aae3977063810ed7b2927967b97912947b9cca45c1c21955f \ + --hash=sha256:6db124f53a3edcb32b0a896ad3519e37477f7e67bf4811cb41ab60c1ef74e4c8 \ + --hash=sha256:702dabbc22b27dc5b73e7599c60deef3d8c59968527c36b391773efddd8f4cf1 \ + --hash=sha256:813f189039b46877b5517f1909c7b94a8fe01b4bde2640ab217537ea0fe9b59b \ + --hash=sha256:854b79375fa618f6ffa8d84fb45cbc9db887f6c4834076ea10d20bc106f1fd90 \ + --hash=sha256:8afba22c370f06b7314aa46bfed052509269e482bcfb3f7b1ea0fa17ae49ce42 \ + --hash=sha256:8d080e8d1bf2d226423ec781f539c8f6b6ef3fd42a9a58a7160de0a00877a21f \ + --hash=sha256:8d53b217698a76c4957e2c807dd9295d409146f9d3d7932f372883201ba9d25a \ + --hash=sha256:90f241f25cffe7241bf9f376754a5845c74775e00e1c5731119dc88cd71e0cb2 \ + --hash=sha256:9dc049ba7e906cb49ca2b6d4fbf7b6615ec3883193e8abb93f0bef2652e42dda \ + --hash=sha256:9e625b2b4d52bafa1fd0ebdb0990c3961dac8bb00e30d327185de95b68202131 \ + --hash=sha256:a2813f4635f4d6681cc3304020374c46aca82758c6740d7edbc237fe3aae2744 \ + --hash=sha256:a7c864df027da1ee95f0c32def67e15d02cd4a906c9c1cbae82c09c5112f526b \ + --hash=sha256:a8b0a8764e1b5dd043d168c8f749314f7a1252b5a260fa415adaa26fa3b958fd \ + --hash=sha256:aa26a7406205bc1426cee28bdfdf084f669a5686977dafa4c3ec65873989593c \ + --hash=sha256:caa2164c91f7e91befb1ffb081b3cd97a137117533aef7abe1538b03ad72e3a9 \ + --hash=sha256:d0ff08388ef8b1d1a4c95c321d6c5fa11201b241036b1ee740f9d841df3d6ba2 \ + --hash=sha256:de984cd24a6cbefdd6d4a349f7b9a46e583ca3e58ce10d8def0b20a6e5fcbe78 \ + --hash=sha256:deab351ac43b6282a3270e3d40e3d57b3b50f472d9fd8c30975d88a31be41231 \ + --hash=sha256:ef7ef15347ce97201b1b5182a5697682679b04c3374d5a01ac10ba31cf791b95 \ + --hash=sha256:efa7f1191c59e34b688fcd4e588c1b903a4e4e1f4804945902cf0b20e08a9001 \ + --hash=sha256:fbc63ffdd03835f660155b37a1b6db2005bcd46e5ad398b8cac141eb305d2a3d \ + --hash=sha256:fea43e03604c713e25a25211ada87d30cd2a044d8f27afab5deba26ac49e5268 # via ibis-framework dunamai==1.25.0 \ --hash=sha256:7f9dc687dd3256e613b6cc978d9daabfd2bb5deb8adc541fc135ee423ffa98ab \ @@ -1187,9 +1172,9 @@ fastjsonschema==2.21.2 \ --hash=sha256:1c797122d0a86c5cace2e54bf4e819c36223b552017172f32c5c024a6b77e463 \ --hash=sha256:b1eb43748041c880796cd077f1a07c3d94e93ae84bba5ed36800a33554ae05de # via nbformat -filelock==3.20.1 \ - --hash=sha256:15d9e9a67306188a44baa72f569d2bfd803076269365fdea0934385da4dc361a \ - --hash=sha256:b8360948b351b80f420878d8516519a2204b07aefcdcfd24912a5d33127f188c +filelock==3.20.3 \ + --hash=sha256:18c57ee915c7ec61cff0ecf7f0f869936c7c30191bb0cf406f1341778d0834e1 \ + --hash=sha256:4b0dda527ee31078689fc205ec4f1c1bf7d56cf88b6dc9426c4f230e46c2dce1 # via # datasets # huggingface-hub @@ -1354,9 +1339,9 @@ geomet==1.1.0 \ --hash=sha256:4372fe4e286a34acc6f2e9308284850bd8c4aa5bc12065e2abbd4995900db12f \ --hash=sha256:51e92231a0ef6aaa63ac20c443377ba78a303fd2ecd179dc3567de79f3c11605 # via cassandra-driver -google-api-core[grpc]==2.28.1 \ - --hash=sha256:2b405df02d68e68ce0fbc138559e6036559e685159d148ae5861013dc201baf8 \ - --hash=sha256:4021b0f8ceb77a6fb4de6fde4502cecab45062e66ff4f2895169e0b35bc9466c +google-api-core[grpc]==2.29.0 \ + --hash=sha256:84181be0f8e6b04006df75ddfe728f24489f0af57c96a529ff7cf45bc28797f7 \ + --hash=sha256:d30bc60980daa36e314b5d5a3e5958b0200cb44ca8fa1be2b614e932b75a3ea9 # via # feast (setup.py) # google-cloud-bigquery @@ -1367,9 +1352,9 @@ google-api-core[grpc]==2.28.1 \ # google-cloud-storage # opencensus # pandas-gbq -google-auth==2.45.0 \ - --hash=sha256:82344e86dc00410ef5382d99be677c6043d72e502b625aa4f4afa0bdacca0f36 \ - --hash=sha256:90d3f41b6b72ea72dd9811e765699ee491ab24139f34ebf1ca2b9cc0c38708f3 +google-auth==2.47.0 \ + --hash=sha256:833229070a9dfee1a353ae9877dcd2dec069a8281a4e72e72f77d4a70ff945da \ + --hash=sha256:c516d68336bfde7cf0da26aab674a36fedcf04b37ac4edd59c597178760c3498 # via # google-api-core # google-auth-oauthlib @@ -1388,9 +1373,9 @@ google-auth-oauthlib==1.2.2 \ # via # pandas-gbq # pydata-google-auth -google-cloud-bigquery[pandas]==3.39.0 \ - --hash=sha256:cb375e1d63dea9bd5bf735e66024338f294159d43afdf63e1d023f5fcbbf55ea \ - --hash=sha256:dc7a64921465859105461b43c42562e38e797d7a73feb72b3cfc4865b7b1c5ef +google-cloud-bigquery[pandas]==3.40.0 \ + --hash=sha256:0469bcf9e3dad3cab65b67cce98180c8c0aacf3253d47f0f8e976f299b49b5ab \ + --hash=sha256:b3ccb11caf0029f15b29569518f667553fe08f6f1459b959020c83fbbd8f2e68 # via # feast (setup.py) # pandas-gbq @@ -1820,6 +1805,7 @@ httpx[http2]==0.27.2 \ --hash=sha256:f7c2be1d2f3c3c3160d441802406b206c2b76f5947b11115e6df10c6c65e66c2 # via # feast (setup.py) + # datasets # fastapi-mcp # jupyterlab # mcp @@ -1844,19 +1830,13 @@ hyperframe==6.1.0 \ --hash=sha256:b03380493a519fce58ea5af42e4a42317bf9bd425596f7a0835ffce80f1a42e5 \ --hash=sha256:f630908a00854a7adeabd6382b43923a4c4cd4b821fcb527e6ab9e15382a3b08 # via h2 -ibis-framework[duckdb, mssql]==9.5.0 \ - --hash=sha256:145fe30d94f111cff332580c275ce77725c5ff7086eede93af0b371649d009c0 \ - --hash=sha256:1c8a29277e63ee0dfc289bc8f550164b5e3bdaec1b76b62436c37d331bb4ef84 - # via - # feast (setup.py) - # ibis-substrait -ibis-substrait==4.0.1 \ - --hash=sha256:107ca49383a3cca2fdc88f67ea2f0172620c16fa8f39c9c52305af85dd6180b4 \ - --hash=sha256:614810a173d096fbc49d87a9b419e2162a3c25d8efda1a4d57a389ce56b9041f +ibis-framework[duckdb, mssql]==11.0.0 \ + --hash=sha256:0249185eaabb800e224f448cc06ce8ba168df00b269e132d62629f462eca8842 \ + --hash=sha256:92ff82a96f4eac7f86fa9b6a315e04b5a8f9ed3d186539d88f48e628363f2e72 # via feast (setup.py) -identify==2.6.15 \ - --hash=sha256:1181ef7608e00704db228516541eb83a88a9f94433a8c80bb9b5bd54b1d81757 \ - --hash=sha256:e4f4864b96c6557ef2a1e1c951771838f4edc9df3a72ec7118b338801b11c7bf +identify==2.6.16 \ + --hash=sha256:391ee4d77741d994189522896270b787aed8670389bfd60f326d677d64a6dfb0 \ + --hash=sha256:846857203b5511bbe94d5a352a48ef2359532bc8f6727b5544077a0dcfb24980 # via pre-commit idna==3.11 \ --hash=sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea \ @@ -1900,9 +1880,9 @@ ipykernel==7.1.0 \ --hash=sha256:58a3fc88533d5930c3546dc7eac66c6d288acde4f801e2001e65edc5dc9cf0db \ --hash=sha256:763b5ec6c5b7776f6a8d7ce09b267693b4e5ce75cb50ae696aaefb3c85e1ea4c # via jupyterlab -ipython==9.8.0 \ - --hash=sha256:8e4ce129a627eb9dd221c41b1d2cdaed4ef7c9da8c17c63f6f578fe231141f83 \ - --hash=sha256:ebe6d1d58d7d988fbf23ff8ff6d8e1622cfdb194daf4b7b73b792c4ec3b85385 +ipython==9.9.0 \ + --hash=sha256:48fbed1b2de5e2c7177eefa144aba7fcb82dac514f09b57e2ac9da34ddb54220 \ + --hash=sha256:b457fe9165df2b84e8ec909a97abcf2ed88f565970efba16b1f7229c283d252b # via # great-expectations # ipykernel @@ -1955,9 +1935,9 @@ joblib==1.5.3 \ --hash=sha256:5fc3c5039fc5ca8c0276333a188bbd59d6b7ab37fe6632daa76bc7f9ec18e713 \ --hash=sha256:8561a3269e6801106863fd0d6d84bb737be9e7631e33aaed3fb9ce5953688da3 # via scikit-learn -json5==0.12.1 \ - --hash=sha256:b2743e77b3242f8d03c143dd975a6ec7c52e2f2afe76ed934e53503dd4ad4990 \ - --hash=sha256:d9c9b3bc34a5f54d43c35e11ef7cb87d8bdd098c6ace87117a7b7e83e705c1d5 +json5==0.13.0 \ + --hash=sha256:9a08e1dd65f6a4d4c6fa82d216cf2477349ec2346a38fd70cc11d2557499fbcc \ + --hash=sha256:b1edf8d487721c0bf64d83c28e91280781f6e21f4a797d3261c7c828d4c165bf # via jupyterlab-server jsonlines==4.0.0 \ --hash=sha256:0c6d2c09117550c089995247f605ae4cf77dd1533041d366351f6f298822ea74 \ @@ -1977,9 +1957,9 @@ jsonref==1.1.0 \ --hash=sha256:32fe8e1d85af0fdefbebce950af85590b22b60f9e95443176adbde4e1ecea552 \ --hash=sha256:590dc7773df6c21cbf948b5dac07a72a251db28b0238ceecce0a2abfa8ec30a9 # via docling-core -jsonschema[format-nongpl]==4.25.1 \ - --hash=sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63 \ - --hash=sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85 +jsonschema[format-nongpl]==4.26.0 \ + --hash=sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326 \ + --hash=sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce # via # feast (setup.py) # altair @@ -1994,9 +1974,9 @@ jsonschema-specifications==2025.9.1 \ --hash=sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe \ --hash=sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d # via jsonschema -jupyter-client==8.7.0 \ - --hash=sha256:3357212d9cbe01209e59190f67a3a7e1f387a4f4e88d1e0433ad84d7b262531d \ - --hash=sha256:3671a94fd25e62f5f2f554f5e95389c2294d89822378a5f2dd24353e1494a9e0 +jupyter-client==8.8.0 \ + --hash=sha256:d556811419a4f2d96c869af34e854e3f059b7cc2d6d01a9cd9c85c267691be3e \ + --hash=sha256:f93a5b99c5e23a507b773d3a1136bd6e16c67883ccdbd9a829b0bbdb98cd7d7a # via # ipykernel # jupyter-server @@ -2033,9 +2013,9 @@ jupyter-server-terminals==0.5.3 \ --hash=sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa \ --hash=sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269 # via jupyter-server -jupyterlab==4.5.1 \ - --hash=sha256:09da1ddfbd9eec18b5101dbb8515612aa1e47443321fb99503725a88e93d20d9 \ - --hash=sha256:31b059de96de0754ff1f2ce6279774b6aab8c34d7082e9752db58207c99bd514 +jupyterlab==4.5.2 \ + --hash=sha256:76466ebcfdb7a9bb7e2fbd6459c0e2c032ccf75be673634a84bee4b3e6b13ab6 \ + --hash=sha256:c80a6b9f6dace96a566d590c65ee2785f61e7cd4aac5b4d453dcc7d0d5e069b7 # via notebook jupyterlab-pygments==0.3.0 \ --hash=sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d \ @@ -2283,9 +2263,9 @@ markdown-it-py==4.0.0 \ --hash=sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147 \ --hash=sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3 # via rich -marko==2.2.1 \ - --hash=sha256:31e9a18b35c113e506ace5594716fa3df2872f8955908e279bc551f3eb1f0db8 \ - --hash=sha256:e29d7e071a3b0cb2f7cc4c500d55f893dc5a45d85a8298dde6cb4e4dffd794d3 +marko==2.2.2 \ + --hash=sha256:6940308e655f63733ca518c47a68ec9510279dbb916c83616e4c4b5829f052e8 \ + --hash=sha256:f064ae8c10416285ad1d96048dc11e98ef04e662d3342ae416f662b70aa7959e # via docling markupsafe==3.0.3 \ --hash=sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f \ @@ -2781,19 +2761,23 @@ multidict==6.7.0 \ # aiobotocore # aiohttp # yarl -multiprocess==0.70.16 \ - --hash=sha256:0dfd078c306e08d46d7a8d06fb120313d87aa43af60d66da43ffff40b44d2f41 \ - --hash=sha256:161af703d4652a0e1410be6abccecde4a7ddffd19341be0a7011b94aeb171ac1 \ - --hash=sha256:37b55f71c07e2d741374998c043b9520b626a8dddc8b3129222ca4f1a06ef67a \ - --hash=sha256:476887be10e2f59ff183c006af746cb6f1fd0eadcfd4ef49e605cbe2659920ee \ - --hash=sha256:a0bafd3ae1b732eac64be2e72038231c1ba97724b60b09400d68f229fcc2fbf3 \ - --hash=sha256:a71d82033454891091a226dfc319d0cfa8019a4e888ef9ca910372a446de4435 \ - --hash=sha256:af4cabb0dac72abfb1e794fa7855c325fd2b55a10a44628a3c1ad3311c04127a \ - --hash=sha256:ba8c31889abf4511c7308a8c52bb4a30b9d590e7f58523302ba00237702ca054 \ - --hash=sha256:c4a9944c67bd49f823687463660a2d6daae94c289adff97e0f9d696ba6371d02 \ - --hash=sha256:d951bed82c8f73929ac82c61f01a7b5ce8f3e5ef40f5b52553b4f547ce2b08ec \ - --hash=sha256:e7b9d0f307cd9bd50851afaac0dba2cb6c44449efff697df7c7645f7d3f2be3a \ - --hash=sha256:fc0544c531920dde3b00c29863377f87e1632601092ea2daca74e4beb40faa2e +multiprocess==0.70.17 \ + --hash=sha256:1d52f068357acd1e5bbc670b273ef8f81d57863235d9fbf9314751886e141968 \ + --hash=sha256:20c28ca19079a6c879258103a6d60b94d4ffe2d9da07dda93fb1c8bc6243f522 \ + --hash=sha256:27b8409c02b5dd89d336107c101dfbd1530a2cd4fd425fc27dcb7adb6e0b47bf \ + --hash=sha256:2818af14c52446b9617d1b0755fa70ca2f77c28b25ed97bdaa2c69a22c47b46c \ + --hash=sha256:2884701445d0177aec5bd5f6ee0df296773e4fb65b11903b94c613fb46cfb7d1 \ + --hash=sha256:2b12e081df87ab755190e227341b2c3b17ee6587e9c82fecddcbe6aa812cd7f7 \ + --hash=sha256:2ea0939b0f4760a16a548942c65c76ff5afd81fbf1083c56ae75e21faf92e426 \ + --hash=sha256:349525099a0c9ac5936f0488b5ee73199098dac3ac899d81d326d238f9fd3ccd \ + --hash=sha256:38357ca266b51a2e22841b755d9a91e4bb7b937979a54d411677111716c32744 \ + --hash=sha256:4ae2f11a3416809ebc9a48abfc8b14ecce0652a0944731a1493a3c1ba44ff57a \ + --hash=sha256:7ddb24e5bcdb64e90ec5543a1f05a39463068b6d3b804aa3f2a4e16ec28562d6 \ + --hash=sha256:a0f01cd9d079af7a8296f521dc03859d1a414d14c1e2b6e676ef789333421c95 \ + --hash=sha256:a22a6b1a482b80eab53078418bb0f7025e4f7d93cc8e1f36481477a023884861 \ + --hash=sha256:c2c82d0375baed8d8dd0d8c38eb87c5ae9c471f8e384ad203a36f095ee860f67 \ + --hash=sha256:c3feb874ba574fbccfb335980020c1ac631fbf2a3f7bee4e2042ede62558a021 \ + --hash=sha256:d729f55198a3579f6879766a6d9b72b42d4b320c0dcb7844afb774d75b573c62 # via # datasets # mpire @@ -2887,9 +2871,9 @@ nodeenv==1.10.0 \ --hash=sha256:5bb13e3eed2923615535339b3c620e76779af4cb4c6a90deccc9e36b274d3827 \ --hash=sha256:996c191ad80897d076bdfba80a41994c2b47c68e224c542b48feba42ba00f8bb # via pre-commit -notebook==7.5.1 \ - --hash=sha256:b2fb4cef4d47d08c33aecce1c6c6e84be05436fbd791f88fce8df9fbca088b75 \ - --hash=sha256:f4e2451c19910c33b88709b84537e11f6368c1cdff1aa0c43db701aea535dd44 +notebook==7.5.2 \ + --hash=sha256:17d078a98603d70d62b6b4b3fcb67e87d7a68c398a7ae9b447eb2d7d9aec9979 \ + --hash=sha256:83e82f93c199ca730313bea1bb24bc279ea96f74816d038a92d26b6b9d5f3e4a # via great-expectations notebook-shim==0.2.4 \ --hash=sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef \ @@ -2897,79 +2881,79 @@ notebook-shim==0.2.4 \ # via # jupyterlab # notebook -numpy==2.4.0 \ - --hash=sha256:009bd0ea12d3c784b6639a8457537016ce5172109e585338e11334f6a7bb88ee \ - --hash=sha256:02a2038eb27f9443a8b266a66911e926566b5a6ffd1a689b588f7f35b81e7dc3 \ - --hash=sha256:0804a8e4ab070d1d35496e65ffd3cf8114c136a2b81f61dfab0de4b218aacfd5 \ - --hash=sha256:0feafc9e03128074689183031181fac0897ff169692d8492066e949041096548 \ - --hash=sha256:1889b3a3f47a7b5bee16bc25a2145bd7cb91897f815ce3499db64c7458b6d91d \ - --hash=sha256:1d8f9fde5f6dc1b6fc34df8162f3b3079365468703fee7f31d4e0cc8c63baed9 \ - --hash=sha256:1ee32359fb7543b7b7bd0b2f46294db27e29e7bbdf70541e81b190836cd83ded \ - --hash=sha256:20c115517513831860c573996e395707aa9fb691eb179200125c250e895fcd93 \ - --hash=sha256:21555da4ec4a0c942520ead42c3b0dc9477441e085c42b0fbdd6a084869a6f6b \ - --hash=sha256:23a3e9d1a6f360267e8fbb38ba5db355a6a7e9be71d7fce7ab3125e88bb646c8 \ - --hash=sha256:2a8b6bb8369abefb8bd1801b054ad50e02b3275c8614dc6e5b0373c305291037 \ - --hash=sha256:2e284ca13d5a8367e43734148622caf0b261b275673823593e3e3634a6490f83 \ - --hash=sha256:2f585f52b2baf07ff3356158d9268ea095e221371f1074fadea2f42544d58b4d \ - --hash=sha256:316b2f2584682318539f0bcaca5a496ce9ca78c88066579ebd11fd06f8e4741e \ - --hash=sha256:32ed06d0fe9cae27d8fb5f400c63ccee72370599c75e683a6358dd3a4fb50aaf \ - --hash=sha256:355354388cba60f2132df297e2d53053d4063f79077b67b481d21276d61fc4df \ - --hash=sha256:35ddc8f4914466e6fc954c76527aa91aa763682a4f6d73249ef20b418fe6effb \ - --hash=sha256:36667db4d6c1cea79c8930ab72fadfb4060feb4bfe724141cd4bd064d2e5f8ce \ - --hash=sha256:36cbfb13c152b1c7c184ddac43765db8ad672567e7bafff2cc755a09917ed2e6 \ - --hash=sha256:39699233bc72dd482da1415dcb06076e32f60eddc796a796c5fb6c5efce94667 \ - --hash=sha256:39b19251dec4de8ff8496cd0806cbe27bf0684f765abb1f4809554de93785f2d \ - --hash=sha256:3d857f55e7fdf7c38ab96c4558c95b97d1c685be6b05c249f5fdafcbd6f9899e \ - --hash=sha256:3de19cfecd1465d0dcf8a5b5ea8b3155b42ed0b639dba4b71e323d74f2a3be5e \ - --hash=sha256:3f3096405acc48887458bbf9f6814d43785ac7ba2a57ea6442b581dedbc60ce6 \ - --hash=sha256:40483b2f2d3ba7aad426443767ff5632ec3156ef09742b96913787d13c336471 \ - --hash=sha256:413aa561266a4be2d06cd2b9665e89d9f54c543f418773076a76adcf2af08bc7 \ - --hash=sha256:44aba2f0cafd287871a495fb3163408b0bd25bbce135c6f621534a07f4f7875c \ - --hash=sha256:49ff32b09f5aa0cd30a20c2b39db3e669c845589f2b7fc910365210887e39344 \ - --hash=sha256:4d1cfce39e511069b11e67cd0bd78ceff31443b7c9e5c04db73c7a19f572967c \ - --hash=sha256:57c540ed8fb1f05cb997c6761cd56db72395b0d6985e90571ff660452ade4f98 \ - --hash=sha256:5f48cb3e88fbc294dc90e215d86fbaf1c852c63dbdb6c3a3e63f45c4b57f7344 \ - --hash=sha256:5fe44e277225fd3dff6882d86d3d447205d43532c3627313d17e754fb3905a0e \ - --hash=sha256:60e8c196cd82cbbd4f130b5290007e13e6de3eca79f0d4d38014769d96a7c475 \ - --hash=sha256:65167da969cd1ec3a1df31cb221ca3a19a8aaa25370ecb17d428415e93c1935e \ - --hash=sha256:680060061adb2d74ce352628cb798cfdec399068aa7f07ba9fb818b2b3305f98 \ - --hash=sha256:6bbaebf0d11567fa8926215ae731e1d58e6ec28a8a25235b8a47405d301332db \ - --hash=sha256:6c05483c3136ac4c91b4e81903cb53a8707d316f488124d0398499a4f8e8ef51 \ - --hash=sha256:6dc8b7e2f4eb184b37655195f421836cfae6f58197b67e3ffc501f1333d993fa \ - --hash=sha256:6e504f7b16118198f138ef31ba24d985b124c2c469fe8467007cf30fd992f934 \ - --hash=sha256:74623f2ab5cc3f7c886add4f735d1031a1d2be4a4ae63c0546cfd74e7a31ddf6 \ - --hash=sha256:77f0d13fa87036d7553bf81f0e1fe3ce68d14c9976c9851744e4d3e91127e95f \ - --hash=sha256:85eef4cb5625c47ee6425c58a3502555e10f45ee973da878ac8248ad58c136f3 \ - --hash=sha256:882567b7ae57c1b1a0250208cc21a7976d8cbcc49d5a322e607e6f09c9e0bd53 \ - --hash=sha256:8b986403023c8f3bf8f487c2e6186afda156174d31c175f747d8934dfddf3479 \ - --hash=sha256:8cfa5f29a695cb7438965e6c3e8d06e0416060cf0d709c1b1c1653a939bf5c2a \ - --hash=sha256:8eafe7c36c8430b7794edeab3087dec7bf31d634d92f2af9949434b9d1964cba \ - --hash=sha256:9198f447e1dc5647d07c9a6bbe2063cc0132728cc7175b39dbc796da5b54920d \ - --hash=sha256:92190db305a6f48734d3982f2c60fa30d6b5ee9bff10f2887b930d7b40119f4c \ - --hash=sha256:927ccf5cd17c48f801f4ed43a7e5673a2724bd2171460be3e3894e6e332ef83a \ - --hash=sha256:98e81648e0b36e325ab67e46b5400a7a6d4a22b8a7c8e8bbfe20e7db7906bf95 \ - --hash=sha256:9a818668b674047fd88c4cddada7ab8f1c298812783e8328e956b78dc4807f9f \ - --hash=sha256:a152d86a3ae00ba5f47b3acf3b827509fd0b6cb7d3259665e63dafbad22a75ea \ - --hash=sha256:a2718c1de8504121714234b6f8241d0019450353276c88b9453c9c3d92e101db \ - --hash=sha256:a39fb973a726e63223287adc6dafe444ce75af952d711e400f3bf2b36ef55a7b \ - --hash=sha256:a899699294f28f7be8992853c0c60741f16ff199205e2e6cdca155762cbaa59d \ - --hash=sha256:a8fdfed3deaf1928fb7667d96e0567cdf58c2b370ea2ee7e586aa383ec2cb346 \ - --hash=sha256:aabb081ca0ec5d39591fc33018cd4b3f96e1a2dd6756282029986d00a785fba4 \ - --hash=sha256:b1f5b45829ac1848893f0ddf5cb326110604d6df96cdc255b0bf9edd154104d4 \ - --hash=sha256:b48e35f4ab6f6a7597c46e301126ceba4c44cd3280e3750f85db48b082624fa4 \ - --hash=sha256:b54c83f1c0c0f1d748dca0af516062b8829d53d1f0c402be24b4257a9c48ada6 \ - --hash=sha256:ba0cb30acd3ef11c94dc27fbfba68940652492bc107075e7ffe23057f9425681 \ - --hash=sha256:bb50ce5fb202a26fd5404620e7ef820ad1ab3558b444cb0b55beb7ef66cd2d63 \ - --hash=sha256:c95eb6db2884917d86cde0b4d4cf31adf485c8ec36bf8696dd66fa70de96f36b \ - --hash=sha256:d0ffd9e2e4441c96a9c91ec1783285d80bf835b677853fc2770a89d50c1e48ac \ - --hash=sha256:d57b5046c120561ba8fa8e4030fbb8b822f3063910fa901ffadf16e2b7128ad6 \ - --hash=sha256:d9e6a7664ddd9746e20b7325351fe1a8408d0a2bf9c63b5e898290ddc8f09544 \ - --hash=sha256:dc578891de1db95b2a35001b695451767b580bb45753717498213c5ff3c41d63 \ - --hash=sha256:e0434aa22c821f44eeb4c650b81c7fbdd8c0122c6c4b5a576a76d5a35625ecd9 \ - --hash=sha256:e06a922a469cae9a57100864caf4f8a97a1026513793969f8ba5b63137a35d25 \ - --hash=sha256:e493962256a38f58283de033d8af176c5c91c084ea30f15834f7545451c42059 \ - --hash=sha256:ecb0019d44f4cdb50b676c5d0cb4b1eae8e15d1ed3d3e6639f986fc92b2ec52c \ - --hash=sha256:f935c4493eda9069851058fa0d9e39dbf6286be690066509305e52912714dbb2 +numpy==2.4.1 \ + --hash=sha256:0093e85df2960d7e4049664b26afc58b03236e967fb942354deef3208857a04c \ + --hash=sha256:09aa8a87e45b55a1c2c205d42e2808849ece5c484b2aab11fecabec3841cafba \ + --hash=sha256:0cce2a669e3c8ba02ee563c7835f92c153cf02edff1ae05e1823f1dde21b16a5 \ + --hash=sha256:0e6e8f9d9ecf95399982019c01223dc130542960a12edfa8edd1122dfa66a8a8 \ + --hash=sha256:0f118ce6b972080ba0758c6087c3617b5ba243d806268623dc34216d69099ba0 \ + --hash=sha256:178de8f87948163d98a4c9ab5bee4ce6519ca918926ec8df195af582de28544d \ + --hash=sha256:18e14c4d09d55eef39a6ab5b08406e84bc6869c1e34eef45564804f90b7e0574 \ + --hash=sha256:2023ef86243690c2791fd6353e5b4848eedaa88ca8a2d129f462049f6d484696 \ + --hash=sha256:20d4649c773f66cc2fc36f663e091f57c3b7655f936a4c681b4250855d1da8f5 \ + --hash=sha256:2302dc0224c1cbc49bb94f7064f3f923a971bfae45c33870dcbff63a2a550505 \ + --hash=sha256:26f0bcd9c79a00e339565b303badc74d3ea2bd6d52191eeca5f95936cad107d0 \ + --hash=sha256:297c72b1b98100c2e8f873d5d35fb551fce7040ade83d67dd51d38c8d42a2162 \ + --hash=sha256:2f44de05659b67d20499cbc96d49f2650769afcb398b79b324bb6e297bfe3844 \ + --hash=sha256:2ffd257026eb1b34352e749d7cc1678b5eeec3e329ad8c9965a797e08ccba205 \ + --hash=sha256:382ad67d99ef49024f11d1ce5dcb5ad8432446e4246a4b014418ba3a1175a1f4 \ + --hash=sha256:3869ea1ee1a1edc16c29bbe3a2f2a4e515cc3a44d43903ad41e0cacdbaf733dc \ + --hash=sha256:3d1a100e48cb266090a031397863ff8a30050ceefd798f686ff92c67a486753d \ + --hash=sha256:423797bdab2eeefbe608d7c1ec7b2b4fd3c58d51460f1ee26c7500a1d9c9ee93 \ + --hash=sha256:42d7dd5fa36d16d52a84f821eb96031836fd405ee6955dd732f2023724d0aa01 \ + --hash=sha256:49e792ec351315e16da54b543db06ca8a86985ab682602d90c60ef4ff4db2a9c \ + --hash=sha256:4e53170557d37ae404bf8d542ca5b7c629d6efa1117dac6a83e394142ea0a43f \ + --hash=sha256:4f1b68ff47680c2925f8063402a693ede215f0257f02596b1318ecdfb1d79e33 \ + --hash=sha256:4f9c360ecef085e5841c539a9a12b883dff005fbd7ce46722f5e9cef52634d82 \ + --hash=sha256:529050522e983e00a6c1c6b67411083630de8b57f65e853d7b03d9281b8694d2 \ + --hash=sha256:52b5f61bdb323b566b528899cc7db2ba5d1015bda7ea811a8bcf3c89c331fa42 \ + --hash=sha256:538bf4ec353709c765ff75ae616c34d3c3dca1a68312727e8f2676ea644f8509 \ + --hash=sha256:5adf01965456a664fc727ed69cc71848f28d063217c63e1a0e200a118d5eec9a \ + --hash=sha256:5b55aa56165b17aaf15520beb9cbd33c9039810e0d9643dd4379e44294c7303e \ + --hash=sha256:5d558123217a83b2d1ba316b986e9248a1ed1971ad495963d555ccd75dcb1556 \ + --hash=sha256:5de60946f14ebe15e713a6f22850c2372fa72f4ff9a432ab44aa90edcadaa65a \ + --hash=sha256:62fea415f83ad8fdb6c20840578e5fbaf5ddd65e0ec6c3c47eda0f69da172510 \ + --hash=sha256:6436cffb4f2bf26c974344439439c95e152c9a527013f26b3577be6c2ca64295 \ + --hash=sha256:6461de5113088b399d655d45c3897fa188766415d0f568f175ab071c8873bd73 \ + --hash=sha256:69e7419c9012c4aaf695109564e3387f1259f001b4326dfa55907b098af082d3 \ + --hash=sha256:71abbea030f2cfc3092a0ff9f8c8fdefdc5e0bf7d9d9c99663538bb0ecdac0b9 \ + --hash=sha256:7211b95ca365519d3596a1d8688a95874cc94219d417504d9ecb2df99fa7bfa8 \ + --hash=sha256:727c6c3275ddefa0dc078524a85e064c057b4f4e71ca5ca29a19163c607be745 \ + --hash=sha256:79e9e06c4c2379db47f3f6fc7a8652e7498251789bf8ff5bd43bf478ef314ca2 \ + --hash=sha256:7ad270f438cbdd402c364980317fb6b117d9ec5e226fff5b4148dd9aa9fc6e02 \ + --hash=sha256:7d5d7999df434a038d75a748275cd6c0094b0ecdb0837342b332a82defc4dc4d \ + --hash=sha256:8097529164c0f3e32bb89412a0905d9100bf434d9692d9fc275e18dcf53c9344 \ + --hash=sha256:82c55962006156aeef1629b953fd359064aa47e4d82cfc8e67f0918f7da3344f \ + --hash=sha256:8361ea4220d763e54cff2fbe7d8c93526b744f7cd9ddab47afeff7e14e8503be \ + --hash=sha256:899d2c18024984814ac7e83f8f49d8e8180e2fbe1b2e252f2e7f1d06bea92425 \ + --hash=sha256:8ad35f20be147a204e28b6a0575fbf3540c5e5f802634d4258d55b1ff5facce1 \ + --hash=sha256:8f085da926c0d491ffff3096f91078cc97ea67e7e6b65e490bc8dcda65663be2 \ + --hash=sha256:9171a42fcad32dcf3fa86f0a4faa5e9f8facefdb276f54b8b390d90447cff4e2 \ + --hash=sha256:92a0e65272fd60bfa0d9278e0484c2f52fe03b97aedc02b357f33fe752c52ffb \ + --hash=sha256:941c2a93313d030f219f3a71fd3d91a728b82979a5e8034eb2e60d394a2b83f9 \ + --hash=sha256:98b35775e03ab7f868908b524fc0a84d38932d8daf7b7e1c3c3a1b6c7a2c9f15 \ + --hash=sha256:a1ceafc5042451a858231588a104093474c6a5c57dcc724841f5c888d237d690 \ + --hash=sha256:a73044b752f5d34d4232f25f18160a1cc418ea4507f5f11e299d8ac36875f8a0 \ + --hash=sha256:a7870e8c5fc11aef57d6fea4b4085e537a3a60ad2cdd14322ed531fdca68d261 \ + --hash=sha256:a92f227dbcdc9e4c3e193add1a189a9909947d4f8504c576f4a732fd0b54240a \ + --hash=sha256:ac08c63cb7779b85e9d5318e6c3518b424bc1f364ac4cb2c6136f12e5ff2dccc \ + --hash=sha256:b6bcf39112e956594b3331316d90c90c90fb961e39696bda97b89462f5f3943f \ + --hash=sha256:c0faba4a331195bfa96f93dd9dfaa10b2c7aa8cda3a02b7fd635e588fe821bf5 \ + --hash=sha256:ce9ce141a505053b3c7bce3216071f3bf5c182b8b28930f14cd24d43932cd2df \ + --hash=sha256:cf6470d91d34bf669f61d515499859fa7a4c2f7c36434afb70e82df7217933f9 \ + --hash=sha256:d3703409aac693fa82c0aee023a1ae06a6e9d065dba10f5e8e80f642f1e9d0a2 \ + --hash=sha256:d3e3087f53e2b4428766b54932644d148613c5a595150533ae7f00dab2f319a8 \ + --hash=sha256:d3f8f0df9f4b8be57b3bf74a1d087fec68f927a2fab68231fdb442bf2c12e426 \ + --hash=sha256:d797454e37570cfd61143b73b8debd623c3c0952959adb817dd310a483d58a1b \ + --hash=sha256:e1a27bb1b2dee45a2a53f5ca6ff2d1a7f135287883a1689e930d44d1ff296c87 \ + --hash=sha256:e3bd2cb07841166420d2fa7146c96ce00cb3410664cbc1a6be028e456c4ee220 \ + --hash=sha256:e7b6b5e28bbd47b7532698e5db2fe1db693d84b58c254e4389d99a27bb9b8f6b \ + --hash=sha256:e867df947d427cdd7a60e3e271729090b0f0df80f5f10ab7dd436f40811699c3 \ + --hash=sha256:ea66d2b41ca4a1630aae5507ee0a71647d3124d1741980138aa8f28f44dac36e \ + --hash=sha256:edee228f76ee2dab4579fad6f51f6a305de09d444280109e0f75df247ff21501 \ + --hash=sha256:f0a90aba7d521e6954670550e561a4cb925713bd944445dbe9e729b71f6cabee \ + --hash=sha256:f93bc6892fe7b0663e5ffa83b61aab510aacffd58c16e012bb9352d489d90cb7 \ + --hash=sha256:fb1461c99de4d040666ca0444057b06541e5642f800b71c56e6ea92d6a853a0c # via # feast (setup.py) # accelerate @@ -2986,7 +2970,6 @@ numpy==2.4.0 \ # opencv-python-headless # pandas # pandas-gbq - # pyarrow # qdrant-client # ray # safetensors @@ -3142,9 +3125,9 @@ orjson==3.11.5 \ --hash=sha256:ff770589960a86eae279f5d8aa536196ebda8273a2a07db2a54e82b93bc86626 \ --hash=sha256:ff7877d376add4e16b274e35a3f58b7f37b362abf4aa31863dadacdd20e3a583 # via trino -packaging==24.2 \ - --hash=sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759 \ - --hash=sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f +packaging==25.0 \ + --hash=sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484 \ + --hash=sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f # via # accelerate # build @@ -3159,7 +3142,6 @@ packaging==24.2 \ # gunicorn # huggingface-hub # ibis-framework - # ibis-substrait # ipykernel # jupyter-events # jupyter-server @@ -3443,9 +3425,9 @@ pre-commit==3.3.1 \ --hash=sha256:218e9e3f7f7f3271ebc355a15598a4d3893ad9fc7b57fe446db75644543323b9 \ --hash=sha256:733f78c9a056cdd169baa6cd4272d51ecfda95346ef8a89bf93712706021b907 # via feast (setup.py) -prometheus-client==0.23.1 \ - --hash=sha256:6ae8f9081eaaaf153a2e959d2e6c4f4fb57b12ef76c8c7980202f1e57b48b2ce \ - --hash=sha256:dd1913e6e76b59cfe44e7a4b83e01afc9873c1bdfd2ed8739f1e76aeca115f99 +prometheus-client==0.24.0 \ + --hash=sha256:4ab6d4fb5a1b25ad74b58e6271857e356fff3399473e599d227ab5d0ce6637f0 \ + --hash=sha256:726b40c0d499f4904d4b5b7abe8d43e6aff090de0d468ae8f2226290b331c667 # via # feast (setup.py) # jupyter-server @@ -3621,7 +3603,6 @@ protobuf==4.25.8 \ # pymilvus # qdrant-client # ray - # substrait psutil==5.9.0 \ --hash=sha256:072664401ae6e7c1bfb878c65d7282d4b4391f1bc9a56d5e03b5a490403271b5 \ --hash=sha256:1070a9b287846a21a5d572d6dddd369517510b68710fca56b0e9e02fd24bed9a \ @@ -3766,43 +3747,57 @@ py4j==0.10.9.9 \ --hash=sha256:c7c26e4158defb37b0bb124933163641a2ff6e3a3913f7811b0ddbe07ed61533 \ --hash=sha256:f694cad19efa5bd1dee4f3e5270eb406613c974394035e5bfc4ec1aba870b879 # via pyspark -pyarrow==17.0.0 \ - --hash=sha256:0071ce35788c6f9077ff9ecba4858108eebe2ea5a3f7cf2cf55ebc1dbc6ee24a \ - --hash=sha256:02dae06ce212d8b3244dd3e7d12d9c4d3046945a5933d28026598e9dbbda1fca \ - --hash=sha256:0b72e87fe3e1db343995562f7fff8aee354b55ee83d13afba65400c178ab2597 \ - --hash=sha256:0cdb0e627c86c373205a2f94a510ac4376fdc523f8bb36beab2e7f204416163c \ - --hash=sha256:13d7a460b412f31e4c0efa1148e1d29bdf18ad1411eb6757d38f8fbdcc8645fb \ - --hash=sha256:1c8856e2ef09eb87ecf937104aacfa0708f22dfeb039c363ec99735190ffb977 \ - --hash=sha256:2e19f569567efcbbd42084e87f948778eb371d308e137a0f97afe19bb860ccb3 \ - --hash=sha256:32503827abbc5aadedfa235f5ece8c4f8f8b0a3cf01066bc8d29de7539532687 \ - --hash=sha256:392bc9feabc647338e6c89267635e111d71edad5fcffba204425a7c8d13610d7 \ - --hash=sha256:42bf93249a083aca230ba7e2786c5f673507fa97bbd9725a1e2754715151a204 \ - --hash=sha256:4beca9521ed2c0921c1023e68d097d0299b62c362639ea315572a58f3f50fd28 \ - --hash=sha256:5984f416552eea15fd9cee03da53542bf4cddaef5afecefb9aa8d1010c335087 \ - --hash=sha256:6b244dc8e08a23b3e352899a006a26ae7b4d0da7bb636872fa8f5884e70acf15 \ - --hash=sha256:757074882f844411fcca735e39aae74248a1531367a7c80799b4266390ae51cc \ - --hash=sha256:75c06d4624c0ad6674364bb46ef38c3132768139ddec1c56582dbac54f2663e2 \ - --hash=sha256:7c7916bff914ac5d4a8fe25b7a25e432ff921e72f6f2b7547d1e325c1ad9d155 \ - --hash=sha256:9b564a51fbccfab5a04a80453e5ac6c9954a9c5ef2890d1bcf63741909c3f8df \ - --hash=sha256:9b8a823cea605221e61f34859dcc03207e52e409ccf6354634143e23af7c8d22 \ - --hash=sha256:9ba11c4f16976e89146781a83833df7f82077cdab7dc6232c897789343f7891a \ - --hash=sha256:a155acc7f154b9ffcc85497509bcd0d43efb80d6f733b0dc3bb14e281f131c8b \ - --hash=sha256:a27532c38f3de9eb3e90ecab63dfda948a8ca859a66e3a47f5f42d1e403c4d03 \ - --hash=sha256:a48ddf5c3c6a6c505904545c25a4ae13646ae1f8ba703c4df4a1bfe4f4006bda \ - --hash=sha256:a5c8b238d47e48812ee577ee20c9a2779e6a5904f1708ae240f53ecbee7c9f07 \ - --hash=sha256:af5ff82a04b2171415f1410cff7ebb79861afc5dae50be73ce06d6e870615204 \ - --hash=sha256:b0c6ac301093b42d34410b187bba560b17c0330f64907bfa4f7f7f2444b0cf9b \ - --hash=sha256:d7d192305d9d8bc9082d10f361fc70a73590a4c65cf31c3e6926cd72b76bc35c \ - --hash=sha256:da1e060b3876faa11cee287839f9cc7cdc00649f475714b8680a05fd9071d545 \ - --hash=sha256:db023dc4c6cae1015de9e198d41250688383c3f9af8f565370ab2b4cb5f62655 \ - --hash=sha256:dc5c31c37409dfbc5d014047817cb4ccd8c1ea25d19576acf1a001fe07f5b420 \ - --hash=sha256:dec8d129254d0188a49f8a1fc99e0560dc1b85f60af729f47de4046015f9b0a5 \ - --hash=sha256:e3343cb1e88bc2ea605986d4b94948716edc7a8d14afd4e2c097232f729758b4 \ - --hash=sha256:edca18eaca89cd6382dfbcff3dd2d87633433043650c07375d095cd3517561d8 \ - --hash=sha256:f1e70de6cb5790a50b01d2b686d54aaf73da01266850b05e3af2a1bc89e16053 \ - --hash=sha256:f553ca691b9e94b202ff741bdd40f6ccb70cdd5fbf65c187af132f1317de6145 \ - --hash=sha256:f7ae2de664e0b158d1607699a16a488de3d008ba99b3a7aa5de1cbc13574d047 \ - --hash=sha256:fa3c246cc58cb5a4a5cb407a18f193354ea47dd0648194e6265bd24177982fe8 +pyarrow==22.0.0 \ + --hash=sha256:001ea83a58024818826a9e3f89bf9310a114f7e26dfe404a4c32686f97bd7901 \ + --hash=sha256:00626d9dc0f5ef3a75fe63fd68b9c7c8302d2b5bbc7f74ecaedba83447a24f84 \ + --hash=sha256:0c34fe18094686194f204a3b1787a27456897d8a2d62caf84b61e8dfbc0252ae \ + --hash=sha256:12fe549c9b10ac98c91cf791d2945e878875d95508e1a5d14091a7aaa66d9cf8 \ + --hash=sha256:1a812a5b727bc09c3d7ea072c4eebf657c2f7066155506ba31ebf4792f88f016 \ + --hash=sha256:252be4a05f9d9185bb8c18e83764ebcfea7185076c07a7a662253af3a8c07941 \ + --hash=sha256:334f900ff08ce0423407af97e6c26ad5d4e3b0763645559ece6fbf3747d6a8f5 \ + --hash=sha256:35ad0f0378c9359b3f297299c3309778bb03b8612f987399a0333a560b43862d \ + --hash=sha256:3d600dc583260d845c7d8a6db540339dd883081925da2bd1c5cb808f720b3cd9 \ + --hash=sha256:3e294c5eadfb93d78b0763e859a0c16d4051fc1c5231ae8956d61cb0b5666f5a \ + --hash=sha256:3e739edd001b04f654b166204fc7a9de896cf6007eaff33409ee9e50ceaff754 \ + --hash=sha256:44729980b6c50a5f2bfcc2668d36c569ce17f8b17bccaf470c4313dcbbf13c9d \ + --hash=sha256:44d2d26cda26d18f7af7db71453b7b783788322d756e81730acb98f24eb90ace \ + --hash=sha256:4c19236ae2402a8663a2c8f21f1870a03cc57f0bef7e4b6eb3238cc82944de80 \ + --hash=sha256:69763ab2445f632d90b504a815a2a033f74332997052b721002298ed6de40f2e \ + --hash=sha256:6dda1ddac033d27421c20d7a7943eec60be44e0db4e079f33cc5af3b8280ccde \ + --hash=sha256:6f9762274496c244d951c819348afbcf212714902742225f649cf02823a6a10f \ + --hash=sha256:710624ab925dc2b05a6229d47f6f0dac1c1155e6ed559be7109f684eba048a48 \ + --hash=sha256:7388ac685cab5b279a41dfe0a6ccd99e4dbf322edfb63e02fc0443bf24134e91 \ + --hash=sha256:77718810bd3066158db1e95a63c160ad7ce08c6b0710bc656055033e39cdad88 \ + --hash=sha256:7a820d8ae11facf32585507c11f04e3f38343c1e784c9b5a8b1da5c930547fe2 \ + --hash=sha256:8382ad21458075c2e66a82a29d650f963ce51c7708c7c0ff313a8c206c4fd5e8 \ + --hash=sha256:84378110dd9a6c06323b41b56e129c504d157d1a983ce8f5443761eb5256bafc \ + --hash=sha256:854794239111d2b88b40b6ef92aa478024d1e5074f364033e73e21e3f76b25e0 \ + --hash=sha256:92843c305330aa94a36e706c16209cd4df274693e777ca47112617db7d0ef3d7 \ + --hash=sha256:9bddc2cade6561f6820d4cd73f99a0243532ad506bc510a75a5a65a522b2d74d \ + --hash=sha256:a4893d31e5ef780b6edcaf63122df0f8d321088bb0dee4c8c06eccb1ca28d145 \ + --hash=sha256:a9d9ffdc2ab696f6b15b4d1f7cec6658e1d788124418cb30030afbae31c64746 \ + --hash=sha256:ac93252226cf288753d8b46280f4edf3433bf9508b6977f8dd8526b521a1bbb9 \ + --hash=sha256:b41f37cabfe2463232684de44bad753d6be08a7a072f6a83447eeaf0e4d2a215 \ + --hash=sha256:b883fe6fd85adad7932b3271c38ac289c65b7337c2c132e9569f9d3940620730 \ + --hash=sha256:b9d71701ce97c95480fecb0039ec5bb889e75f110da72005743451339262f4ce \ + --hash=sha256:ba95112d15fd4f1105fb2402c4eab9068f0554435e9b7085924bcfaac2cc306f \ + --hash=sha256:bba208d9c7decf9961998edf5c65e3ea4355d5818dd6cd0f6809bec1afb951cc \ + --hash=sha256:bd0d42297ace400d8febe55f13fdf46e86754842b860c978dfec16f081e5c653 \ + --hash=sha256:bea79263d55c24a32b0d79c00a1c58bb2ee5f0757ed95656b01c0fb310c5af3d \ + --hash=sha256:c064e28361c05d72eed8e744c9605cbd6d2bb7481a511c74071fd9b24bc65d7d \ + --hash=sha256:c3200cb41cdbc65156e5f8c908d739b0dfed57e890329413da2748d1a2cd1a4e \ + --hash=sha256:c6c791b09c57ed76a18b03f2631753a4960eefbbca80f846da8baefc6491fcfe \ + --hash=sha256:c6ec3675d98915bf1ec8b3c7986422682f7232ea76cad276f4c8abd5b7319b70 \ + --hash=sha256:ce20fe000754f477c8a9125543f1936ea5b8867c5406757c224d745ed033e691 \ + --hash=sha256:cedb9dd9358e4ea1d9bce3665ce0797f6adf97ff142c8e25b46ba9cdd508e9b6 \ + --hash=sha256:e0a15757fccb38c410947df156f9749ae4a3c89b2393741a50521f39a8cf202a \ + --hash=sha256:e6e95176209257803a8b3d0394f21604e796dadb643d2f7ca21b66c9c0b30c9a \ + --hash=sha256:e70ff90c64419709d38c8932ea9fe1cc98415c4f87ea8da81719e43f02534bc9 \ + --hash=sha256:ec1a15968a9d80da01e1d30349b2b0d7cc91e96588ee324ce1b5228175043e95 \ + --hash=sha256:ec5d40dd494882704fb876c16fa7261a69791e784ae34e6b5992e977bd2e238c \ + --hash=sha256:f633074f36dbc33d5c05b5dc75371e5660f1dbf9c8b1d95669def05e5425989c \ + --hash=sha256:f7fe3dbe871294ba70d789be16b6e7e52b418311e166e0e3cba9522f0f437fb1 \ + --hash=sha256:f963ba8c3b0199f9d6b794c90ec77545e05eadc83973897a4523c9e8d84e9340 # via # feast (setup.py) # dask @@ -4091,9 +4086,9 @@ pyjwt[crypto]==2.10.1 \ pylatexenc==2.10 \ --hash=sha256:3dd8fd84eb46dc30bee1e23eaab8d8fb5a7f507347b23e5f38ad9675c84f40d3 # via docling -pymilvus==2.4.15 \ - --hash=sha256:0601591ce0498315e19e9ac3f4fdd3051102ca87b6ddff5b33849f522288cff7 \ - --hash=sha256:b21878e5df74dca91b3f3cf0b0597fa6b6aed7bf5cde9a1b10641994faa353bf +pymilvus==2.5.18 \ + --hash=sha256:1b78badcfa8d62db7d0b29193fc0422e4676873ff1c745a9d75c2c885d7a7e32 \ + --hash=sha256:9e517076068e98dac51c018bc0dfe1f651d936154e2e2d9ad6c7b3dab1164e2d # via feast (setup.py) pymssql==2.3.2 \ --hash=sha256:06883bc9bdb297ae9132d9371b5b1a3a223c8f93dd6a87d1c112c6a688f26d53 \ @@ -4285,8 +4280,8 @@ pyproject-hooks==1.2.0 \ # via # build # pip-tools -pyspark==4.1.0 \ - --hash=sha256:09c714ada88dfac3e1213c066617c6f473c1e22fbe279855028f77e12434147d +pyspark==4.1.1 \ + --hash=sha256:77f78984aa84fbe865c717dd37b49913b4e5c97d76ef6824f932f1aefa6621ec # via feast (setup.py) pytest==7.4.4 \ --hash=sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280 \ @@ -4497,7 +4492,6 @@ pytz==2025.2 \ # via # clickhouse-connect # great-expectations - # ibis-framework # pandas # snowflake-connector-python # trino @@ -4583,7 +4577,6 @@ pyyaml==6.0.3 \ # docling-core # easyocr # huggingface-hub - # ibis-substrait # jupyter-events # kubernetes # openshift-client @@ -5049,26 +5042,26 @@ ruamel-yaml==0.17.17 \ --hash=sha256:9751de4cbb57d4bfbf8fc394e125ed4a2f170fbff3dc3d78abf50be85924f8be \ --hash=sha256:9af3ec5d7f8065582f3aa841305465025d0afd26c5fb54e15b964e11838fc74f # via great-expectations -ruff==0.14.10 \ - --hash=sha256:104c49fc7ab73f3f3a758039adea978869a918f31b73280db175b43a2d9b51d6 \ - --hash=sha256:1484983559f026788e3a5c07c81ef7d1e97c1c78ed03041a18f75df104c45405 \ - --hash=sha256:16a01dfb7b9e4eee556fbfd5392806b1b8550c9b4a9f6acd3dbe6812b193c70a \ - --hash=sha256:213db2b2e44be8625002dbea33bb9c60c66ea2c07c084a00d55732689d697a7f \ - --hash=sha256:466297bd73638c6bdf06485683e812db1c00c7ac96d4ddd0294a338c62fdc154 \ - --hash=sha256:4bb98fcbbc61725968893682fd4df8966a34611239c9fd07a1f6a07e7103d08e \ - --hash=sha256:59aabd2e2c4fd614d2862e7939c34a532c04f1084476d6833dddef4afab87e9f \ - --hash=sha256:5bcf45b681e9f1ee6445d317ce1fa9d6cba9a6049542d1c3d5b5958986be8830 \ - --hash=sha256:674f9be9372907f7257c51f1d4fc902cb7cf014b9980152b802794317941f08f \ - --hash=sha256:6987ebe0501ae4f4308d7d24e2d0fe3d7a98430f5adfd0f1fead050a740a3a77 \ - --hash=sha256:7165d31a925b7a294465fa81be8c12a0e9b60fb02bf177e79067c867e71f8b1f \ - --hash=sha256:7a3ce585f2ade3e1f29ec1b92df13e3da262178df8c8bdf876f48fa0e8316c49 \ - --hash=sha256:9a2e830f075d1a42cd28420d7809ace390832a490ed0966fe373ba288e77aaf4 \ - --hash=sha256:b914c40ab64865a17a9a5b67911d14df72346a634527240039eb3bd650e5979d \ - --hash=sha256:c561695675b972effb0c0a45db233f2c816ff3da8dcfbe7dfc7eed625f218935 \ - --hash=sha256:c70427132db492d25f982fffc8d6c7535cc2fd2c83fc8888f05caaa248521e60 \ - --hash=sha256:d85713d522348837ef9df8efca33ccb8bd6fcfc86a2cde3ccb4bc9d28a18003d \ - --hash=sha256:e51d046cf6dda98a4633b8a8a771451107413b0f07183b2bef03f075599e44e6 \ - --hash=sha256:f24b47993a9d8cb858429e97bdf8544c78029f09b520af615c1d261bf827001d +ruff==0.14.11 \ + --hash=sha256:0f3727189a52179393ecf92ec7057c2210203e6af2676f08d92140d3e1ee72c1 \ + --hash=sha256:337c5dd11f16ee52ae217757d9b82a26400be7efac883e9e852646f1557ed841 \ + --hash=sha256:53386375001773ae812b43205d6064dae49ff0968774e6befe16a994fc233caa \ + --hash=sha256:53fe71125fc158210d57fe4da26e622c9c294022988d08d9347ec1cf782adafe \ + --hash=sha256:590bcc0e2097ecf74e62a5c10a6b71f008ad82eb97b0a0079e85defe19fe74d9 \ + --hash=sha256:649fb6c9edd7f751db276ef42df1f3df41c38d67d199570ae2a7bd6cbc3590f0 \ + --hash=sha256:6845ca1da8ab81ab1dce755a32ad13f1db72e7fba27c486d5d90d65e04d17b8f \ + --hash=sha256:6f6eb5c1c8033680f4172ea9c8d3706c156223010b8b97b05e82c59bdc774ee6 \ + --hash=sha256:728e56879df4ca5b62a9dde2dd0eb0edda2a55160c0ea28c4025f18c03f86984 \ + --hash=sha256:82ff352ea68fb6766140381748e1f67f83c39860b6446966cff48a315c3e2491 \ + --hash=sha256:a35c9da08562f1598ded8470fcfef2afb5cf881996e6c0a502ceb61f4bc9c8a3 \ + --hash=sha256:a697737dce1ca97a0a55b5ff0434ee7205943d4874d638fe3ae66166ff46edbe \ + --hash=sha256:c61782543c1231bf71041461c1f28c64b961d457d0f238ac388e2ab173d7ecb7 \ + --hash=sha256:e36ce2fd31b54065ec6f76cb08d60159e1b32bdf08507862e32f47e6dde8bcbf \ + --hash=sha256:eb09f849bd37147a789b85995ff734a6c4a095bed5fd1608c4f56afc3634cde2 \ + --hash=sha256:f2fc34cc896f90080fca01259f96c566f74069a04b25b6205d55379d12a6855e \ + --hash=sha256:f6dc463bfa5c07a59b1ff2c3b9767373e541346ea105503b4c0369c520a66958 \ + --hash=sha256:f6ff2d95cbd335841a7217bdfd9c1d2e44eac2c584197ab1385579d55ff8830e \ + --hash=sha256:f981cea63d08456b2c070e64b79cb62f951aa1305282974d4d5216e6e0178ae6 # via feast (setup.py) s3transfer==0.13.1 \ --hash=sha256:a981aa7429be23fe6dfc13e80e4020057cbab622b08c0315288758d67cabc724 \ @@ -5193,68 +5186,68 @@ scikit-learn==1.8.0 \ --hash=sha256:fb65db5d7531bccf3a4f6bec3462223bea71384e2cda41da0f10b7c292b9e7c4 \ --hash=sha256:fe1c011a640a9f0791146011dfd3c7d9669785f9fed2b2a5f9e207536cf5c2fd # via feast (setup.py) -scipy==1.16.3 \ - --hash=sha256:0151a0749efeaaab78711c78422d413c583b8cdd2011a3c1d6c794938ee9fdb2 \ - --hash=sha256:01e87659402762f43bd2fee13370553a17ada367d42e7487800bf2916535aecb \ - --hash=sha256:03192a35e661470197556de24e7cb1330d84b35b94ead65c46ad6f16f6b28f2a \ - --hash=sha256:0553371015692a898e1aa858fed67a3576c34edefa6b7ebdb4e9dde49ce5c203 \ - --hash=sha256:062246acacbe9f8210de8e751b16fc37458213f124bef161a5a02c7a39284304 \ - --hash=sha256:0c3b4dd3d9b08dbce0f3440032c52e9e2ab9f96ade2d3943313dfe51a7056959 \ - --hash=sha256:0c623a54f7b79dd88ef56da19bc2873afec9673a48f3b85b18e4d402bdd29a5a \ - --hash=sha256:16b8bc35a4cc24db80a0ec836a9286d0e31b2503cb2fd7ff7fb0e0374a97081d \ - --hash=sha256:1fb2472e72e24d1530debe6ae078db70fb1605350c88a3d14bc401d6306dbffe \ - --hash=sha256:21d9d6b197227a12dcbf9633320a4e34c6b0e51c57268df255a0942983bac562 \ - --hash=sha256:2a207a6ce9c24f1951241f4693ede2d393f59c07abc159b2cb2be980820e01fb \ - --hash=sha256:2b71d93c8a9936046866acebc915e2af2e292b883ed6e2cbe5c34beb094b82d9 \ - --hash=sha256:2d1ae2cf0c350e7705168ff2429962a89ad90c2d49d1dd300686d8b2a5af22fc \ - --hash=sha256:3a4c460301fb2cffb7f88528f30b3127742cff583603aa7dc964a52c463b385d \ - --hash=sha256:3d4a07a8e785d80289dfe66b7c27d8634a773020742ec7187b85ccc4b0e7b686 \ - --hash=sha256:40be6cf99e68b6c4321e9f8782e7d5ff8265af28ef2cd56e9c9b2638fa08ad97 \ - --hash=sha256:4aff59800a3b7f786b70bfd6ab551001cb553244988d7d6b8299cb1ea653b353 \ - --hash=sha256:50a3dbf286dbc7d84f176f9a1574c705f277cb6565069f88f60db9eafdbe3ee2 \ - --hash=sha256:532fb5ad6a87e9e9cd9c959b106b73145a03f04c7d57ea3e6f6bb60b86ab0876 \ - --hash=sha256:53c3844d527213631e886621df5695d35e4f6a75f620dca412bcd292f6b87d78 \ - --hash=sha256:56edc65510d1331dae01ef9b658d428e33ed48b4f77b1d51caf479a0253f96dc \ - --hash=sha256:57d01cb6f85e34f0946b33caa66e892aae072b64b034183f3d87c4025802a119 \ - --hash=sha256:5803c5fadd29de0cf27fa08ccbfe7a9e5d741bf63e4ab1085437266f12460ff9 \ - --hash=sha256:6020470b9d00245926f2d5bb93b119ca0340f0d564eb6fbaad843eaebf9d690f \ - --hash=sha256:63d3cdacb8a824a295191a723ee5e4ea7768ca5ca5f2838532d9f2e2b3ce2135 \ - --hash=sha256:663b8d66a8748051c3ee9c96465fb417509315b99c71550fda2591d7dd634234 \ - --hash=sha256:72d1717fd3b5e6ec747327ce9bda32d5463f472c9dce9f54499e81fbd50245a1 \ - --hash=sha256:7dc1360c06535ea6116a2220f760ae572db9f661aba2d88074fe30ec2aa1ff88 \ - --hash=sha256:7f68154688c515cdb541a31ef8eb66d8cd1050605be9dcd74199cbd22ac739bc \ - --hash=sha256:81fc5827606858cf71446a5e98715ba0e11f0dbc83d71c7409d05486592a45d6 \ - --hash=sha256:875555ce62743e1d54f06cdf22c1e0bc47b91130ac40fe5d783b6dfa114beeb6 \ - --hash=sha256:8b3c820ddb80029fe9f43d61b81d8b488d3ef8ca010d15122b152db77dc94c22 \ - --hash=sha256:8be1ca9170fcb6223cc7c27f4305d680ded114a1567c0bd2bfcbf947d1b17511 \ - --hash=sha256:8d09d72dc92742988b0e7750bddb8060b0c7079606c0d24a8cc8e9c9c11f9079 \ - --hash=sha256:9452781bd879b14b6f055b26643703551320aa8d79ae064a71df55c00286a184 \ - --hash=sha256:96491a6a54e995f00a28a3c3badfff58fd093bf26cd5fb34a2188c8c756a3a2c \ - --hash=sha256:9b9c9c07b6d56a35777a1b4cc8966118fb16cfd8daf6743867d17d36cfad2d40 \ - --hash=sha256:a8a26c78ef223d3e30920ef759e25625a0ecdd0d60e5a8818b7513c3e5384cf2 \ - --hash=sha256:aadd23f98f9cb069b3bd64ddc900c4d277778242e961751f77a8cb5c4b946fb0 \ - --hash=sha256:b7180967113560cca57418a7bc719e30366b47959dd845a93206fbed693c867e \ - --hash=sha256:b7c5f1bda1354d6a19bc6af73a649f8285ca63ac6b52e64e658a5a11d4d69800 \ - --hash=sha256:b81c27fc41954319a943d43b20e07c40bdcd3ff7cf013f4fb86286faefe546c4 \ - --hash=sha256:bb61878c18a470021fb515a843dc7a76961a8daceaaaa8bad1332f1bf4b54657 \ - --hash=sha256:bea0a62734d20d67608660f69dcda23e7f90fb4ca20974ab80b6ed40df87a005 \ - --hash=sha256:c5192722cffe15f9329a3948c4b1db789fbb1f05c97899187dcf009b283aea70 \ - --hash=sha256:c97176013d404c7346bf57874eaac5187d969293bf40497140b0a2b2b7482e07 \ - --hash=sha256:cd13e354df9938598af2be05822c323e97132d5e6306b83a3b4ee6724c6e522e \ - --hash=sha256:d2ec56337675e61b312179a1ad124f5f570c00f920cc75e1000025451b88241c \ - --hash=sha256:d3837938ae715fc0fe3c39c0202de3a8853aff22ca66781ddc2ade7554b7e2cc \ - --hash=sha256:d9f48cafc7ce94cf9b15c6bffdc443a81a27bf7075cf2dcd5c8b40f85d10c4e7 \ - --hash=sha256:da7763f55885045036fabcebd80144b757d3db06ab0861415d1c3b7c69042146 \ - --hash=sha256:deb3841c925eeddb6afc1e4e4a45e418d19ec7b87c5df177695224078e8ec733 \ - --hash=sha256:e1d27cbcb4602680a49d787d90664fa4974063ac9d4134813332a8c53dbe667c \ - --hash=sha256:e5d42a9472e7579e473879a1990327830493a7047506d58d73fc429b84c1d49d \ - --hash=sha256:e7efa2681ea410b10dde31a52b18b0154d66f2485328830e45fdf183af5aefc6 \ - --hash=sha256:eab43fae33a0c39006a88096cd7b4f4ef545ea0447d250d5ac18202d40b6611d \ - --hash=sha256:f2622206f5559784fa5c4b53a950c3c7c1cf3e84ca1b9c4b6c03f062f289ca26 \ - --hash=sha256:f379b54b77a597aa7ee5e697df0d66903e41b9c85a6dd7946159e356319158e8 \ - --hash=sha256:f667a4542cc8917af1db06366d3f78a5c8e83badd56409f94d1eac8d8d9133fa \ - --hash=sha256:fb4b29f4cf8cc5a8d628bc8d8e26d12d7278cd1f219f22698a378c3d67db5e4b \ - --hash=sha256:ffa6eea95283b2b8079b821dc11f50a17d0571c92b43e2b5b12764dc5f9b285d +scipy==1.17.0 \ + --hash=sha256:00fb5f8ec8398ad90215008d8b6009c9db9fa924fd4c7d6be307c6f945f9cd73 \ + --hash=sha256:031121914e295d9791319a1875444d55079885bbae5bdc9c5e0f2ee5f09d34ff \ + --hash=sha256:0937a0b0d8d593a198cededd4c439a0ea216a3f36653901ea1f3e4be949056f8 \ + --hash=sha256:0cf46c8013fec9d3694dc572f0b54100c28405d55d3e2cb15e2895b25057996e \ + --hash=sha256:0d5018a57c24cb1dd828bcf51d7b10e65986d549f52ef5adb6b4d1ded3e32a57 \ + --hash=sha256:130d12926ae34399d157de777472bf82e9061c60cc081372b3118edacafe1d00 \ + --hash=sha256:13c4096ac6bc31d706018f06a49abe0485f96499deb82066b94d19b02f664209 \ + --hash=sha256:13e861634a2c480bd237deb69333ac79ea1941b94568d4b0efa5db5e263d4fd1 \ + --hash=sha256:1f9586a58039d7229ce77b52f8472c972448cded5736eaf102d5658bbac4c269 \ + --hash=sha256:1ff269abf702f6c7e67a4b7aad981d42871a11b9dd83c58d2d2ea624efbd1088 \ + --hash=sha256:255c0da161bd7b32a6c898e7891509e8a9289f0b1c6c7d96142ee0d2b114c2ea \ + --hash=sha256:2591060c8e648d8b96439e111ac41fd8342fdeff1876be2e19dea3fe8930454e \ + --hash=sha256:272a9f16d6bb4667e8b50d25d71eddcc2158a214df1b566319298de0939d2ab7 \ + --hash=sha256:2abd71643797bd8a106dff97894ff7869eeeb0af0f7a5ce02e4227c6a2e9d6fd \ + --hash=sha256:2b531f57e09c946f56ad0b4a3b2abee778789097871fc541e267d2eca081cff1 \ + --hash=sha256:30509da9dbec1c2ed8f168b8d8aa853bc6723fede1dbc23c7d43a56f5ab72a67 \ + --hash=sha256:33af70d040e8af9d5e7a38b5ed3b772adddd281e3062ff23fec49e49681c38cf \ + --hash=sha256:357ca001c6e37601066092e7c89cca2f1ce74e2a520ca78d063a6d2201101df2 \ + --hash=sha256:3625c631a7acd7cfd929e4e31d2582cf00f42fcf06011f59281271746d77e061 \ + --hash=sha256:363ad4ae2853d88ebcde3ae6ec46ccca903ea9835ee8ba543f12f575e7b07e4e \ + --hash=sha256:40052543f7bbe921df4408f46003d6f01c6af109b9e2c8a66dd1cf6cf57f7d5d \ + --hash=sha256:423ca1f6584fc03936972b5f7c06961670dbba9f234e71676a7c7ccf938a0d61 \ + --hash=sha256:474da16199f6af66601a01546144922ce402cb17362e07d82f5a6cf8f963e449 \ + --hash=sha256:4e00562e519c09da34c31685f6acc3aa384d4d50604db0f245c14e1b4488bfa2 \ + --hash=sha256:5194c445d0a1c7a6c1a4a4681b6b7c71baad98ff66d96b949097e7513c9d6742 \ + --hash=sha256:5fb10d17e649e1446410895639f3385fd2bf4c3c7dfc9bea937bddcbc3d7b9ba \ + --hash=sha256:65ec32f3d32dfc48c72df4291345dae4f048749bc8d5203ee0a3f347f96c5ce6 \ + --hash=sha256:6680f2dfd4f6182e7d6db161344537da644d1cf85cf293f015c60a17ecf08752 \ + --hash=sha256:6e886000eb4919eae3a44f035e63f0fd8b651234117e8f6f29bad1cd26e7bc45 \ + --hash=sha256:7204fddcbec2fe6598f1c5fdf027e9f259106d05202a959a9f1aecf036adc9f6 \ + --hash=sha256:819fc26862b4b3c73a60d486dbb919202f3d6d98c87cf20c223511429f2d1a97 \ + --hash=sha256:8547e7c57f932e7354a2319fab613981cde910631979f74c9b542bb167a8b9db \ + --hash=sha256:85b0ac3ad17fa3be50abd7e69d583d98792d7edc08367e01445a1e2076005379 \ + --hash=sha256:87b411e42b425b84777718cc41516b8a7e0795abfa8e8e1d573bf0ef014f0812 \ + --hash=sha256:88c22af9e5d5a4f9e027e26772cc7b5922fab8bcc839edb3ae33de404feebd9e \ + --hash=sha256:9244608d27eafe02b20558523ba57f15c689357c85bdcfe920b1828750aa26eb \ + --hash=sha256:979c3a0ff8e5ba254d45d59ebd38cde48fce4f10b5125c680c7a4bfe177aab07 \ + --hash=sha256:9eeb9b5f5997f75507814ed9d298ab23f62cf79f5a3ef90031b1ee2506abdb5b \ + --hash=sha256:9fad7d3578c877d606b1150135c2639e9de9cecd3705caa37b66862977cc3e72 \ + --hash=sha256:a38c3337e00be6fd8a95b4ed66b5d988bac4ec888fd922c2ea9fe5fb1603dd67 \ + --hash=sha256:aabf057c632798832f071a8dde013c2e26284043934f53b00489f1773b33527e \ + --hash=sha256:c17514d11b78be8f7e6331b983a65a7f5ca1fd037b95e27b280921fe5606286a \ + --hash=sha256:c5e8647f60679790c2f5c76be17e2e9247dc6b98ad0d3b065861e082c56e078d \ + --hash=sha256:cacbaddd91fcffde703934897c5cd2c7cb0371fac195d383f4e1f1c5d3f3bd04 \ + --hash=sha256:d7425fcafbc09a03731e1bc05581f5fad988e48c6a861f441b7ab729a49a55ea \ + --hash=sha256:dac97a27520d66c12a34fd90a4fe65f43766c18c0d6e1c0a80f114d2260080e4 \ + --hash=sha256:dbf133ced83889583156566d2bdf7a07ff89228fe0c0cb727f777de92092ec6b \ + --hash=sha256:e8c0b331c2c1f531eb51f1b4fc9ba709521a712cce58f1aa627bc007421a5306 \ + --hash=sha256:eb2651271135154aa24f6481cbae5cc8af1f0dd46e6533fb7b56aa9727b6a232 \ + --hash=sha256:ebb7446a39b3ae0fe8f416a9a3fdc6fba3f11c634f680f16a239c5187bc487c0 \ + --hash=sha256:ec0827aa4d36cb79ff1b81de898e948a51ac0b9b1c43e4a372c0508c38c0f9a3 \ + --hash=sha256:edce1a1cf66298cccdc48a1bdf8fb10a3bf58e8b58d6c3883dd1530e103f87c0 \ + --hash=sha256:eec3842ec9ac9de5917899b277428886042a93db0b227ebbe3a333b64ec7643d \ + --hash=sha256:ef28d815f4d2686503e5f4f00edc387ae58dfd7a2f42e348bb53359538f01558 \ + --hash=sha256:f2a4942b0f5f7c23c7cd641a0ca1955e2ae83dedcff537e3a0259096635e186b \ + --hash=sha256:f3cd947f20fe17013d401b64e857c6b2da83cae567adbb75b9dcba865abc66d8 \ + --hash=sha256:f603d8a5518c7426414d1d8f82e253e454471de682ce5e39c29adb0df1efb86b \ + --hash=sha256:f7df7941d71314e60a481e02d5ebcb3f0185b8d799c70d03d8258f6c80f3d467 \ + --hash=sha256:f9eb55bb97d00f8b7ab95cb64f873eb0bf54d9446264d9f3609130381233483f \ + --hash=sha256:fc02c37a5639ee67d8fb646ffded6d793c06c5622d36b35cfa8fe5ececb8f042 \ + --hash=sha256:fe508b5690e9eaaa9467fc047f833af58f1152ae51a0d0aed67aa5801f4dd7d6 # via # docling # easyocr @@ -5265,9 +5258,9 @@ semchunk==2.2.2 \ --hash=sha256:940e89896e64eeb01de97ba60f51c8c7b96c6a3951dfcf574f25ce2146752f52 \ --hash=sha256:94ca19020c013c073abdfd06d79a7c13637b91738335f3b8cdb5655ee7cc94d2 # via docling-core -send2trash==1.8.3 \ - --hash=sha256:0c31227e0bd08961c7665474a3d1ef7193929fedda4233843689baa056be46c9 \ - --hash=sha256:b18e7a3966d99871aefeb00cfbcfdced55ce4871194810fc71f4aa484b953abf +send2trash==2.0.0 \ + --hash=sha256:1761421da3f9930bfe51ed7c45343948573383ad4c27e3acebc91be324e7770d \ + --hash=sha256:e70d5ce41dbb890882cc78bc25d137478330b39a391e756fadf82e34da4d85b8 # via jupyter-server setuptools==80.9.0 \ --hash=sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922 \ @@ -5500,74 +5493,74 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:fd93c6f5d65f254ceabe97548c709e073d6da9883343adaa51bf1a913ce93f8e \ --hash=sha256:fe187fc31a54d7fd90352f34e8c008cf3ad5d064d08fedd3de2e8df83eb4a1cf # via feast (setup.py) -sqlglot[rs]==25.20.2 \ - --hash=sha256:169fe8308dd70d7bd40117b2221b62bdc7c4e2ea8eb07394b2a6146cdedf05ab \ - --hash=sha256:cdbfd7ce3f2f39f32bd7b4c23fd9e0fd261636a6b14285b914e8def25fd0a567 +sqlglot[rs]==28.6.0 \ + --hash=sha256:8af76e825dc8456a49f8ce049d69bbfcd116655dda3e53051754789e2edf8eba \ + --hash=sha256:8c0a432a6745c6c7965bbe99a17667c5a3ca1d524a54b31997cf5422b1727f6a # via # feast (setup.py) # ibis-framework -sqlglotrs==0.2.12 \ - --hash=sha256:0338c7770a5cb5bb0ec1dcbe5206359fe9b83da0aba8dde53b9e7bd1afc89a22 \ - --hash=sha256:057a8db59a6c4bcdc42831e7ad01f41cf9e7f388ed5b139816adafbcacf2f591 \ - --hash=sha256:065835e7f2be50ba83895b64d044a39dab9d95098fff995427365e4bd8bc7bc6 \ - --hash=sha256:08e8be22da77c964be76ab4438da2c77096f5871088466ca950ee1b4712a97d4 \ - --hash=sha256:147cda8412f45af290ad190d9a98b5829a5f46a575ce768279ccebf9b7b53785 \ - --hash=sha256:155b0d59e34851b119c7ff0b2c7968c7b51667c1a1c2abefe1ac7244b3c1d78e \ - --hash=sha256:17b289ef0f25a7c034d183c588345e2b56622f7f64a85d1020633a75f8e3ac96 \ - --hash=sha256:1fc98b7649445e726a492841b8b8b39a4e5724ec2787cd1436404ebccf42519a \ - --hash=sha256:2554ead3126c83864a4b7e48e8e7e1bc23faf7160a6f28d3db967661cf529c9e \ - --hash=sha256:2824fc87fd7e41a785150ff042c7934e1fff97c6ccd59e4d96bebf6697a90762 \ - --hash=sha256:2db7e6cd41ef88c2ac647ad0258f87906de822955dec8f14e91829083047d784 \ - --hash=sha256:315f7f7bbfedf0c87d98068e62363454e986bdd05baa165b7fb448b5c6fe9f1a \ - --hash=sha256:327bfc2d71449f4dffba93d63f0565c4a1fa818143b1cfbc3f936fa8c9bcce10 \ - --hash=sha256:39a6ef72cf271db93ec6019847b7832defa9f4013c1e66851ca9c0a11c010c0c \ - --hash=sha256:4364116b7b0c72b841de6acd149a002bfc8fe360125989d4f39debd387c874d8 \ - --hash=sha256:4c07d3dba9c3ae8b56a0e45a9e47aa2a2c6ed95870c5bcc67dacaadb873843ff \ - --hash=sha256:4ceb28cf2ee3850cd745167cebe59a5fc3d506b32e9c81307938d8d272c1d670 \ - --hash=sha256:4ec38035523d54ba33de1e2b5562de4938254b61e1df48eb1db0e26ea189de28 \ - --hash=sha256:5026eada48f258ce9ad26fa41994b2ea5404bef2c3df9cb5cb2a159112a6269f \ - --hash=sha256:59499adc27a70a72170db9241404a18d4829cd3a83a076b9e112ad365c4b1452 \ - --hash=sha256:5be231acf95920bed473524dd1cac93e4cb320ed7e6ae937531b232c54cfc232 \ - --hash=sha256:67e288759d2be822db2175d0025c1f61283b019f2cc3e2577f31ad0ef3b5854d \ - --hash=sha256:6aacab6e20d92be3ca76f7358fa12346f29985e2d408660c764b7f1c75cc40ee \ - --hash=sha256:6ef3a827f2980aad17af4f8548297c93c4989d4cd3f64b9bcb7443952c542423 \ - --hash=sha256:732516bffffc70f172306ad8bc747dd9f16512cdbc09475abe6ad6f744479dee \ - --hash=sha256:76e4e1765c6be438329e234e56a6772537f6de16c4bb5ba7170e344664cccdf7 \ - --hash=sha256:7b553cdb9e8afcfea5466815e865f874f6f51aaace4fb4101670e150f7bbfe5a \ - --hash=sha256:7c79c43c5cde1f4017641032f11770ed8111c963dccc096cd15df906d4fb46a4 \ - --hash=sha256:8174aa227193d0a755f4515e6c3883be4681c9b669a65c2316f09be27b84be4d \ - --hash=sha256:8a18b3a09c32788d1ee2d0610ab35af862413c56b65f8ad8bc0131701f03103b \ - --hash=sha256:8f268aea3d2ebc05cb9148bb487f21e532f8af1b0a4aed6b7374703aadfb6a7c \ - --hash=sha256:91971032603d05428fd42a978084110afb2a4c0975e4343b075f69a23889e3da \ - --hash=sha256:9334f6c394a671a630c61339d52fb7da1a72eca057570f039b2a4035d2e39380 \ - --hash=sha256:954ccd912391ab5922adb23159ebcc0c5dccb468381e2a1ce92117cb4b0f0ed3 \ - --hash=sha256:9597865efc40e5c41af7719106c7620e1338aaa64646726652c63bae14225391 \ - --hash=sha256:97b2c74fcdd89f0d4458c0e2b5783989be99a1e0b2d627797688ab716ad9391b \ - --hash=sha256:989ccc5dc6b38da937481b6eb2dc1fc0b13676fe129697b874828e577984d7ef \ - --hash=sha256:9c4c6f6fe1c54fff614f9d0b2dd7a6bf948bda87ce51a245dcd3f447f20c8b74 \ - --hash=sha256:9d5b9a9d6259b72258f6764f88a89faa3c648438bd1b2c3a9598b725d42bf6f2 \ - --hash=sha256:a266c9047726d83c51a8ec3d5278ceb9caf131307c9c93c4ceefd99c0116e538 \ - --hash=sha256:a4a2cacb31f75e242c7b9ff4afae1d95f548df8441444114376d8007cc91b55b \ - --hash=sha256:aaf86275a3388da1ed2161645aa346bfca3ee6e1dc0e2115867db9e78f1caddd \ - --hash=sha256:ab676d2d7da28907a139ad5fc20dee0890054967bac0b18e653ac048837c9ea1 \ - --hash=sha256:acc25d651eb663332157c2e5d2736516cddf4cd0effe67a887723934de5051d1 \ - --hash=sha256:b10bf6b71961b31951bf4dff937d8d5d399ea1b3bd47fb5c5810386710fe7dfb \ - --hash=sha256:b40601e67f5abae5d09d23f92394dbd735539de469ce663b596eb42bf77d2c54 \ - --hash=sha256:b6020825e58af6e2795e6dcb69639f5500e45e1da78f1b1abd74c4d11083a249 \ - --hash=sha256:bc1807c6222e32fc9bf6f5c7e12b85c4b72f12227800d40c1693244c198b33bb \ - --hash=sha256:bd6c4e6a7670f761c8e69b45d6d302a4d37a3cddb1fdca2ad90e54b77858fe80 \ - --hash=sha256:bf3e2eab11f06f1df13c0f85b3e26fbab0b7e8a5d189e5edfed951bc85f6bd48 \ - --hash=sha256:c3d62905ce74a48714b7662ad95efe299fad62f193be4b482a327af060f98710 \ - --hash=sha256:c3e0edde0fdf598561e7404ac56fb4b12276394ee5155b5365e42434c6f287a3 \ - --hash=sha256:c64066d13bd2e5e788b845c933c765af9991faa93982e273b623019a1161fadc \ - --hash=sha256:c8bf7ae29c0fc66e9c998d7f8e6f6fc26309c6eb5a4728e1443cb628218bc307 \ - --hash=sha256:d2827c7bf7e57496f9b95658bcd2395cfb0c51adc3023cd3386988337dfaf6a5 \ - --hash=sha256:e7b2da43b2a6a85807df6c56b2627abe244aff28fdf9a4940d38d749cb4b8e3e \ - --hash=sha256:ebc162a599fac86e59f899631716752fbc7f89598e94729eadb707e54db371b2 \ - --hash=sha256:f0a2ddeab27a94447270b7a240770a31a3afed0a972d60085205baec990ad76a \ - --hash=sha256:f104a98182761d4613f920eda7ec5fc921afb3608f7db648206ce06dd10a6be5 \ - --hash=sha256:f83ad3fb4ea57218c0e65d3499e31c9bb3051bbb5dccbb11593eaf1640964b51 \ - --hash=sha256:fa1ae834fb78bd52bb76e3c8d02cb79f45717ab1f02f4ad8154bf33a5408a502 +sqlglotrs==0.11.0 \ + --hash=sha256:029d72428367739d7b1e6aca66ccb88e93ab0f48ae34b1adce413e93d353a21b \ + --hash=sha256:069b00aa30f19e65a3e40835525c4aec6d004381c75886d12ce93ca6ef045a61 \ + --hash=sha256:072cff11e8d9e09e79907bda92d5fc219e056d49b416871fe8fc2d52ff89686b \ + --hash=sha256:079c182596660ea378c0b47072655b3263379dcd0875dce831bd91276d47b8de \ + --hash=sha256:0a72b615aafbe8240037aeb37d623caeba5484133e9e1952186c23d668c30316 \ + --hash=sha256:0ebff846b23756e458e85df8cb4e80411c4949d6b1e82f7019121a5cfedc3811 \ + --hash=sha256:1cf9034b209edb3a061b6fa4e01c95ac6a2e1fab2b9ff2cde74e44a0d07aa4ba \ + --hash=sha256:1f97ef7374c6133331b30a4bb3b094a4f0bc48da207545ce5fa277b4a5e91a46 \ + --hash=sha256:270b120e9361f60b8dacaa79173eb16633b6c9f56f69ff7370e03812977e0eb0 \ + --hash=sha256:2a29be22dd052d78d20332be5fd3073be248b884ff35099a6919eeb28cab810e \ + --hash=sha256:2e8ff0dfc1c9ec36ec72a2ffcf8859b9c5d926b9401c3757c432c0dfe5f6f725 \ + --hash=sha256:305895a85158ccbf700b80c0ac143652daf4490c8fd03c82d8632f76998c2b45 \ + --hash=sha256:32beba0fd901304e22f14475eeee7e9c3069a6a78ea15efc73b96939fe166c2f \ + --hash=sha256:3482ee17eaacdfbc902aa9dfddb52b495fe6e1c2facd0b061e7f0d9a52ca278a \ + --hash=sha256:3b524e7111c766088381216f7649b4b40c0cace5e8b81472ff8a5a052c1c735d \ + --hash=sha256:3c6e7dd433167e7dcd35842f626fc943ba83201c0e53de7a26f9a074a1f1149d \ + --hash=sha256:3e491a39e41d8f27e10ecefe5bc0bd80bcb1d3e3f5b7980a4d6f9c1e3fe5250d \ + --hash=sha256:401882f82209791822cf3392de0b338688aaabe96735457908c5ab6490f1ab73 \ + --hash=sha256:41cbfbe09de3a011454c22f2e49fd51d382451429071fc57e14cc0c5086b70d3 \ + --hash=sha256:43012180cbf447e922bf3762aed32a750ca0b8884bdd2d5276642047c34fe4c9 \ + --hash=sha256:4e6aa4dfc2f85c346aa495f3f803a4ca94a4430f08e729d5b8b0bcb21c67d193 \ + --hash=sha256:5cde6652dd9f7f8b29177a578431037d2bd1b9f58ef66fe2b7817c975f6606ab \ + --hash=sha256:625ccc0420a9a68db453d9a456c820f06f1c3c116f11b171b267b9194a04270c \ + --hash=sha256:692e3ad301a415b3084ddb12a749670b943b67dc2273a1179ca6d7d85f1827f6 \ + --hash=sha256:6bb6d548841f9954367e68a77cdd2859f933abe614f902d0db8dd0eb804f9d25 \ + --hash=sha256:6d16d2348df175600604d5660f2fbe7cab748042fcdd1cfcf52c982fb5645cc9 \ + --hash=sha256:744c8e0e74ac60ebd76741df8452e77ffb33511264be879c6c7f04cc1c0c2d62 \ + --hash=sha256:7aa052e277129eb42613550f3075a1654d7986c73f5df37eeeb6c4a15c843e5f \ + --hash=sha256:7da4c0e3b72dc608cdbb2c8852914aa78ba216033b23a2667970198bb68808cc \ + --hash=sha256:8050b532636c9f4167145d14121ef7398175f73759e2beb03a852a3e3985b024 \ + --hash=sha256:842d348eb195e9e1ac947f6e46b550d541e86cdbf5b9f59091f21626c2119a41 \ + --hash=sha256:88edff10ba7a203e519b66a2b8236d0f92f750b878de629dd380d253b5421638 \ + --hash=sha256:8b34f2dfa037f2f594c6ed7dd6f03cea4b2b1847843a3b33ae4f7c9bcb7fe595 \ + --hash=sha256:8d5739d5cff23f10adbf68cc28072bfc174c45b4b6d51a5bf8f484edd22216df \ + --hash=sha256:95f1ba9dec6d49590a7a131d1e6a0b0225d7207d51b063450647f59c78e95d45 \ + --hash=sha256:9899d2579010b9338e4d98bf190ec73c408990d7277cd63500ebc7b182e1fdfa \ + --hash=sha256:99d984563a874b4d2631b092f3763623b5be5dec3c4306d87cf4d00ddc8b5830 \ + --hash=sha256:9cf14d4466ea20d91df39d5770b16e8be8b25065ef924b210eadff6a85b720c7 \ + --hash=sha256:9d8b7266867e8fdcbfc6310c4a321c1cfac4c381296487b0a62393038f779997 \ + --hash=sha256:9dd2f14496aaf091e0e0d9172c6c9c9922ca545744059702466df6b27e1d43d7 \ + --hash=sha256:a0be63fffee88322771d555207ee31717e1e20fb84ca66acea625e423e147208 \ + --hash=sha256:a4b2b83ea980bd3d26f2443caa5d272097bd594a714025aa4761f45f2e787b91 \ + --hash=sha256:a53c0d3f59b471b9cad047de938342f4881d51e751d13b06665fb81890604482 \ + --hash=sha256:a8d8402517f8a6868dcb27ad0d08766a4852fbc37be81dfd5cafe215cf86fc04 \ + --hash=sha256:a938485f789202ccb07ec308b20b03121331e16f58de9982fc4b063d1b9c6a69 \ + --hash=sha256:a9fd11690a7bb1160ad157d0c1b6d389d19cc6542854016b6745510253ba502d \ + --hash=sha256:b18bc0bf80ed2367c71bf15f0a55c57dc8a7dfdc92adfceb241dd2f20a476aa1 \ + --hash=sha256:b2c52e04d66dde0c3dab8a742f490c224ea306fccb68bc9002ccff48aba58a6d \ + --hash=sha256:baafbaf5382fca53f34b6ba2f226eb084cca5aa441204205dac74478f9d6cb11 \ + --hash=sha256:bcd01c38cded5ac31ec3947dc58cfa8dbf77d602ac972d4b040295570c945a29 \ + --hash=sha256:c018ca74c24523768b49c6d8c3bba406f687e4be96bd2556e41e0572df1f038f \ + --hash=sha256:c9990a875baacd906452a5735e08d34023660957a1456f729969fcdda0991559 \ + --hash=sha256:ca8e0da4562bf6ab8be349046f135764f6d5f443edbdcfd643f582a5937414bf \ + --hash=sha256:cef26115186dcf2ebda311a7208c5f5533f340365cbb07589288ae21ed374b69 \ + --hash=sha256:d11f2b97bc71735e21778619044d82507270fb218aa7a72dd5de6221bb621b06 \ + --hash=sha256:d64853135f5320c7db924691b7376e85b235d164f7cce3738428b6ebab68a759 \ + --hash=sha256:db81a95525a4c4116cab778decf115da90b2a40900d276b19802bb51a4deabcd \ + --hash=sha256:e8b3e9e48e4ec51050bb1e1c72ce1464e42fe12c6b250a410634c8b5379c906c \ + --hash=sha256:f3f57dc53baafdd76d6f90fa72370da5a6049835dfa6aafaffe2bb8d673704b9 \ + --hash=sha256:f4e404fdc3a68276d9ecf4714e510ef8c953275990fb84c754b8bdf1ef398e90 \ + --hash=sha256:f676afb9400c223604bd81bea6ac91686a42e01f8e7b2450230ecbc883fe02a4 # via sqlglot sqlite-vec==0.1.6 \ --hash=sha256:77491bcaa6d496f2acb5cc0d0ff0b8964434f141523c121e313f9a7d8088dee3 \ @@ -5580,9 +5573,9 @@ sqlparams==6.2.0 \ --hash=sha256:3744a2ad16f71293db6505b21fd5229b4757489a9b09f3553656a1ae97ba7ca5 \ --hash=sha256:63b32ed9051bdc52e7e8b38bc4f78aed51796cdd9135e730f4c6a7db1048dedf # via singlestoredb -sse-starlette==3.1.1 \ - --hash=sha256:bb38f71ae74cfd86b529907a9fda5632195dfa6ae120f214ea4c890c7ee9d436 \ - --hash=sha256:bffa531420c1793ab224f63648c059bcadc412bf9fdb1301ac8de1cf9a67b7fb +sse-starlette==3.1.2 \ + --hash=sha256:55eff034207a83a0eb86de9a68099bd0157838f0b8b999a1b742005c71e33618 \ + --hash=sha256:cd800dd349f4521b317b9391d3796fa97b71748a4da9b9e00aafab32dda375c8 # via mcp stack-data==0.6.3 \ --hash=sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9 \ @@ -5595,12 +5588,6 @@ starlette==0.50.0 \ # fastapi # mcp # sse-starlette -substrait==0.24.2 \ - --hash=sha256:743cc352e96b0927b2cd37cd5a8fdac0a96a68df9600bd104fc36aebd222a836 \ - --hash=sha256:d1d475833566fa9d67eed3273456883c0568486ccced92b524b31709d2817e19 - # via - # feast (setup.py) - # ibis-substrait sympy==1.14.0 \ --hash=sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517 \ --hash=sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5 @@ -5697,88 +5684,102 @@ tifffile==2025.12.20 \ --hash=sha256:bc0345a20675149353cfcb3f1c48d0a3654231ee26bd46beebaab4d2168feeb6 \ --hash=sha256:cb8a4fee327d15b3e3eeac80bbdd8a53b323c80473330bcfb99418ee4c1c827f # via scikit-image -timm==1.0.22 \ - --hash=sha256:14fd74bcc17db3856b1a47d26fb305576c98579ab9d02b36714a5e6b25cde422 \ - --hash=sha256:888981753e65cbaacfc07494370138b1700a27b1f0af587f4f9b47bc024161d0 +timm==1.0.24 \ + --hash=sha256:8301ac783410c6ad72c73c49326af6d71a9e4d1558238552796e825c2464913f \ + --hash=sha256:c7b909f43fe2ef8fe62c505e270cd4f1af230dfbc37f2ee93e3608492b9d9a40 # via feast (setup.py) tinycss2==1.4.0 \ --hash=sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7 \ --hash=sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289 # via bleach -tokenizers==0.22.1 \ - --hash=sha256:19d2962dd28bc67c1f205ab180578a78eef89ac60ca7ef7cbe9635a46a56422a \ - --hash=sha256:331d6d149fa9c7d632cde4490fb8bbb12337fa3a0232e77892be656464f4b446 \ - --hash=sha256:38201f15cdb1f8a6843e6563e6e79f4abd053394992b9bbdf5213ea3469b4ae7 \ - --hash=sha256:59fdb013df17455e5f950b4b834a7b3ee2e0271e6378ccb33aa74d178b513c73 \ - --hash=sha256:607989f2ea68a46cb1dfbaf3e3aabdf3f21d8748312dbeb6263d1b3b66c5010a \ - --hash=sha256:61de6522785310a309b3407bac22d99c4db5dba349935e99e4d15ea2226af2d9 \ - --hash=sha256:65fd6e3fb11ca1e78a6a93602490f134d1fdeb13bcef99389d5102ea318ed138 \ - --hash=sha256:8d4e484f7b0827021ac5f9f71d4794aaef62b979ab7608593da22b1d2e3c4edc \ - --hash=sha256:a0f307d490295717726598ef6fa4f24af9d484809223bbc253b201c740a06390 \ - --hash=sha256:afd7594a56656ace95cdd6df4cca2e4059d294c5cfb1679c57824b605556cb2f \ - --hash=sha256:b5120eed1442765cd90b903bb6cfef781fd8fe64e34ccaecbae4c619b7b12a82 \ - --hash=sha256:ba0a64f450b9ef412c98f6bcd2a50c6df6e2443b560024a09fa6a03189726879 \ - --hash=sha256:d1cbe5454c9a15df1b3443c726063d930c16f047a3cc724b9e6e1a91140e5a21 \ - --hash=sha256:e2ef6063d7a84994129732b47e7915e8710f27f99f3a3260b8a38fc7ccd083f4 \ - --hash=sha256:e7d094ae6312d69cc2a872b54b91b309f4f6fbce871ef28eb27b52a98e4d0214 +tokenizers==0.22.2 \ + --hash=sha256:143b999bdc46d10febb15cbffb4207ddd1f410e2c755857b5a0797961bbdc113 \ + --hash=sha256:1a62ba2c5faa2dd175aaeed7b15abf18d20266189fb3406c5d0550dd34dd5f37 \ + --hash=sha256:1c774b1276f71e1ef716e5486f21e76333464f47bece56bbd554485982a9e03e \ + --hash=sha256:1e418a55456beedca4621dbab65a318981467a2b188e982a23e117f115ce5001 \ + --hash=sha256:1e50f8554d504f617d9e9d6e4c2c2884a12b388a97c5c77f0bc6cf4cd032feee \ + --hash=sha256:2249487018adec45d6e3554c71d46eb39fa8ea67156c640f7513eb26f318cec7 \ + --hash=sha256:25b85325d0815e86e0bac263506dd114578953b7b53d7de09a6485e4a160a7dd \ + --hash=sha256:29c30b83d8dcd061078b05ae0cb94d3c710555fbb44861139f9f83dcca3dc3e4 \ + --hash=sha256:319f659ee992222f04e58f84cbf407cfa66a65fe3a8de44e8ad2bc53e7d99012 \ + --hash=sha256:369cc9fc8cc10cb24143873a0d95438bb8ee257bb80c71989e3ee290e8d72c67 \ + --hash=sha256:37ae80a28c1d3265bb1f22464c856bd23c02a05bb211e56d0c5301a435be6c1a \ + --hash=sha256:38337540fbbddff8e999d59970f3c6f35a82de10053206a7562f1ea02d046fa5 \ + --hash=sha256:473b83b915e547aa366d1eee11806deaf419e17be16310ac0a14077f1e28f917 \ + --hash=sha256:544dd704ae7238755d790de45ba8da072e9af3eea688f698b137915ae959281c \ + --hash=sha256:64d94e84f6660764e64e7e0b22baa72f6cd942279fdbb21d46abd70d179f0195 \ + --hash=sha256:753d47ebd4542742ef9261d9da92cd545b2cacbb48349a1225466745bb866ec4 \ + --hash=sha256:791135ee325f2336f498590eb2f11dc5c295232f288e75c99a36c5dbce63088a \ + --hash=sha256:9ce725d22864a1e965217204946f830c37876eee3b2ba6fc6255e8e903d5fcbc \ + --hash=sha256:a6bf3f88c554a2b653af81f3204491c818ae2ac6fbc09e76ef4773351292bc92 \ + --hash=sha256:bfb88f22a209ff7b40a576d5324bf8286b519d7358663db21d6246fb17eea2d5 \ + --hash=sha256:c9ea31edff2968b44a88f97d784c2f16dc0729b8b143ed004699ebca91f05c48 \ + --hash=sha256:df6c4265b289083bf710dff49bc51ef252f9d5be33a45ee2bed151114a56207b \ + --hash=sha256:e10bf9113d209be7cd046d40fbabbaf3278ff6d18eb4da4c500443185dc1896c \ + --hash=sha256:f01a9c019878532f98927d2bacb79bbb404b43d3437455522a00a30718cdedb5 # via transformers toml==0.10.2 \ --hash=sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b \ --hash=sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f # via feast (setup.py) -tomli==2.3.0 \ - --hash=sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456 \ - --hash=sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845 \ - --hash=sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999 \ - --hash=sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0 \ - --hash=sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878 \ - --hash=sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf \ - --hash=sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3 \ - --hash=sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be \ - --hash=sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52 \ - --hash=sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b \ - --hash=sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67 \ - --hash=sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549 \ - --hash=sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba \ - --hash=sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22 \ - --hash=sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c \ - --hash=sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f \ - --hash=sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6 \ - --hash=sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba \ - --hash=sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45 \ - --hash=sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f \ - --hash=sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77 \ - --hash=sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606 \ - --hash=sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441 \ - --hash=sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0 \ - --hash=sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f \ - --hash=sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530 \ - --hash=sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05 \ - --hash=sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8 \ - --hash=sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005 \ - --hash=sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879 \ - --hash=sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae \ - --hash=sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc \ - --hash=sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b \ - --hash=sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b \ - --hash=sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e \ - --hash=sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf \ - --hash=sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac \ - --hash=sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8 \ - --hash=sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b \ - --hash=sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf \ - --hash=sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463 \ - --hash=sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876 +tomli==2.4.0 \ + --hash=sha256:0408e3de5ec77cc7f81960c362543cbbd91ef883e3138e81b729fc3eea5b9729 \ + --hash=sha256:0dc56fef0e2c1c470aeac5b6ca8cc7b640bb93e92d9803ddaf9ea03e198f5b0b \ + --hash=sha256:0e0fe8a0b8312acf3a88077a0802565cb09ee34107813bba1c7cd591fa6cfc8d \ + --hash=sha256:0f2e3955efea4d1cfbcb87bc321e00dc08d2bcb737fd1d5e398af111d86db5df \ + --hash=sha256:133e93646ec4300d651839d382d63edff11d8978be23da4cc106f5a18b7d0576 \ + --hash=sha256:1b168f2731796b045128c45982d3a4874057626da0e2ef1fdd722848b741361d \ + --hash=sha256:1c8a885b370751837c029ef9bc014f27d80840e48bac415f3412e6593bbc18c1 \ + --hash=sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a \ + --hash=sha256:1fb2945cbe303b1419e2706e711b7113da57b7db31ee378d08712d678a34e51e \ + --hash=sha256:20cedb4ee43278bc4f2fee6cb50daec836959aadaf948db5172e776dd3d993fc \ + --hash=sha256:20ffd184fb1df76a66e34bd1b36b4a4641bd2b82954befa32fe8163e79f1a702 \ + --hash=sha256:26ab906a1eb794cd4e103691daa23d95c6919cc2fa9160000ac02370cc9dd3f6 \ + --hash=sha256:2add28aacc7425117ff6364fe9e06a183bb0251b03f986df0e78e974047571fd \ + --hash=sha256:2b1e3b80e1d5e52e40e9b924ec43d81570f0e7d09d11081b797bc4692765a3d4 \ + --hash=sha256:31d556d079d72db7c584c0627ff3a24c5d3fb4f730221d3444f3efb1b2514776 \ + --hash=sha256:36b9d05b51e65b254ea6c2585b59d2c4cb91c8a3d91d0ed0f17591a29aaea54a \ + --hash=sha256:39b0b5d1b6dd03684b3fb276407ebed7090bbec989fa55838c98560c01113b66 \ + --hash=sha256:3cf226acb51d8f1c394c1b310e0e0e61fecdd7adcb78d01e294ac297dd2e7f87 \ + --hash=sha256:3d895d56bd3f82ddd6faaff993c275efc2ff38e52322ea264122d72729dca2b2 \ + --hash=sha256:413540dce94673591859c4c6f794dfeaa845e98bf35d72ed59636f869ef9f86f \ + --hash=sha256:43e685b9b2341681907759cf3a04e14d7104b3580f808cfde1dfdb60ada85475 \ + --hash=sha256:4cbcb367d44a1f0c2be408758b43e1ffb5308abe0ea222897d6bfc8e8281ef2f \ + --hash=sha256:551e321c6ba03b55676970b47cb1b73f14a0a4dce6a3e1a9458fd6d921d72e95 \ + --hash=sha256:5572e41282d5268eb09a697c89a7bee84fae66511f87533a6f88bd2f7b652da9 \ + --hash=sha256:5aa48d7c2356055feef06a43611fc401a07337d5b006be13a30f6c58f869e3c3 \ + --hash=sha256:5b5807f3999fb66776dbce568cc9a828544244a8eb84b84b9bafc080c99597b9 \ + --hash=sha256:5e3f639a7a8f10069d0e15408c0b96a2a828cfdec6fca05296ebcdcc28ca7c76 \ + --hash=sha256:685306e2cc7da35be4ee914fd34ab801a6acacb061b6a7abca922aaf9ad368da \ + --hash=sha256:75c2f8bbddf170e8effc98f5e9084a8751f8174ea6ccf4fca5398436e0320bc8 \ + --hash=sha256:7b438885858efd5be02a9a133caf5812b8776ee0c969fea02c45e8e3f296ba51 \ + --hash=sha256:7d49c66a7d5e56ac959cb6fc583aff0651094ec071ba9ad43df785abc2320d86 \ + --hash=sha256:7d6d9a4aee98fac3eab4952ad1d73aee87359452d1c086b5ceb43ed02ddb16b8 \ + --hash=sha256:84d081fbc252d1b6a982e1870660e7330fb8f90f676f6e78b052ad4e64714bf0 \ + --hash=sha256:8768715ffc41f0008abe25d808c20c3d990f42b6e2e58305d5da280ae7d1fa3b \ + --hash=sha256:920b1de295e72887bafa3ad9f7a792f811847d57ea6b1215154030cf131f16b1 \ + --hash=sha256:9a08144fa4cba33db5255f9b74f0b89888622109bd2776148f2597447f92a94e \ + --hash=sha256:a26d7ff68dfdb9f87a016ecfd1e1c2bacbe3108f4e0f8bcd2228ef9a766c787d \ + --hash=sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c \ + --hash=sha256:b5ef256a3fd497d4973c11bf142e9ed78b150d36f5773f1ca6088c230ffc5867 \ + --hash=sha256:b6c78bdf37764092d369722d9946cb65b8767bfa4110f902a1b2542d8d173c8a \ + --hash=sha256:bbb1b10aa643d973366dc2cb1ad94f99c1726a02343d43cbc011edbfac579e7c \ + --hash=sha256:c084ad935abe686bd9c898e62a02a19abfc9760b5a79bc29644463eaf2840cb0 \ + --hash=sha256:c73add4bb52a206fd0c0723432db123c0c75c280cbd67174dd9d2db228ebb1b4 \ + --hash=sha256:cae9c19ed12d4e8f3ebf46d1a75090e4c0dc16271c5bce1c833ac168f08fb614 \ + --hash=sha256:d20b797a5c1ad80c516e41bc1fb0443ddb5006e9aaa7bda2d71978346aeb9132 \ + --hash=sha256:d3d1654e11d724760cdb37a3d7691f0be9db5fbdaef59c9f532aabf87006dbaa \ + --hash=sha256:d878f2a6707cc9d53a1be1414bbb419e629c3d6e67f69230217bb663e76b5087 # via fastapi-mcp -tomlkit==0.13.3 \ - --hash=sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1 \ - --hash=sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0 +tomlkit==0.14.0 \ + --hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 \ + --hash=sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064 # via # poetry-dynamic-versioning # snowflake-connector-python -toolz==0.12.1 \ - --hash=sha256:d22731364c07d72eea0a0ad45bafb2c2937ab6fd38a3507bf55eae8744aa7d85 \ - --hash=sha256:ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d +toolz==1.1.0 \ + --hash=sha256:15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8 \ + --hash=sha256:27a5c770d068c110d9ed9323f24f1543e83b2f300a687b7891c1a6d56b697b5b # via # altair # dask @@ -5905,9 +5906,9 @@ traitlets==5.14.3 \ # nbclient # nbconvert # nbformat -transformers==4.57.3 \ - --hash=sha256:c77d353a4851b1880191603d36acb313411d3577f6e2897814f333841f7003f4 \ - --hash=sha256:df4945029aaddd7c09eec5cad851f30662f8bd1746721b34cc031d70c65afebc +transformers==4.57.5 \ + --hash=sha256:5a1e0deb989cd0b8f141b6d8c9b7c956fc029cd288d68844f57dc0acbaf2fe39 \ + --hash=sha256:d631faea6bd32fc51962e482744afeaa70170c70e5e991cf8e355d7275631524 # via # feast (setup.py) # docling-core @@ -5960,16 +5961,6 @@ tree-sitter-c==0.24.1 \ --hash=sha256:a6a807705a3978911dc7ee26a7ad36dcfacb6adfc13c190d496660ec9bd66707 \ --hash=sha256:d46bbda06f838c2dcb91daf767813671fd366b49ad84ff37db702129267b46e1 # via docling-core -tree-sitter-java==0.23.5 \ - --hash=sha256:1ee45e790f8d31d416bc84a09dac2e2c6bc343e89b8a2e1d550513498eedfde7 \ - --hash=sha256:24acd59c4720dedad80d548fe4237e43ef2b7a4e94c8549b0ca6e4c4d7bf6e69 \ - --hash=sha256:355ce0308672d6f7013ec913dee4a0613666f4cda9044a7824240d17f38209df \ - --hash=sha256:370b204b9500b847f6d0c5ad584045831cee69e9a3e4d878535d39e4a7e4c4f1 \ - --hash=sha256:402efe136104c5603b429dc26c7e75ae14faaca54cfd319ecc41c8f2534750f4 \ - --hash=sha256:9401e7271f0b333df39fc8a8336a0caf1b891d9a2b89ddee99fae66b794fc5b7 \ - --hash=sha256:aae84449e330363b55b14a2af0585e4e0dae75eb64ea509b7e5b0e1de536846a \ - --hash=sha256:f5cd57b8f1270a7f0438878750d02ccc79421d45cca65ff284f1527e9ef02e38 - # via docling-core tree-sitter-javascript==0.25.0 \ --hash=sha256:199d09985190852e0912da2b8d26c932159be314bc04952cf917ed0e4c633e6b \ --hash=sha256:1b852d3aee8a36186dbcc32c798b11b4869f9b5041743b63b65c2ef793db7a54 \ @@ -6120,6 +6111,7 @@ tzdata==2025.3 \ --hash=sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7 # via # arrow + # ibis-framework # pandas tzlocal==5.3.1 \ --hash=sha256:cceffc7edecefea1f595541dbd6e990cb1ea3d19bf01b2809f362a03dd7921fd \ @@ -6434,80 +6426,72 @@ websocket-client==1.9.0 \ # via # jupyter-server # kubernetes -websockets==15.0.1 \ - --hash=sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2 \ - --hash=sha256:0a34631031a8f05657e8e90903e656959234f3a04552259458aac0b0f9ae6fd9 \ - --hash=sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5 \ - --hash=sha256:0c9e74d766f2818bb95f84c25be4dea09841ac0f734d1966f415e4edfc4ef1c3 \ - --hash=sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8 \ - --hash=sha256:0fdfe3e2a29e4db3659dbd5bbf04560cea53dd9610273917799f1cde46aa725e \ - --hash=sha256:1009ee0c7739c08a0cd59de430d6de452a55e42d6b522de7aa15e6f67db0b8e1 \ - --hash=sha256:1234d4ef35db82f5446dca8e35a7da7964d02c127b095e172e54397fb6a6c256 \ - --hash=sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85 \ - --hash=sha256:2034693ad3097d5355bfdacfffcbd3ef5694f9718ab7f29c29689a9eae841880 \ - --hash=sha256:21c1fa28a6a7e3cbdc171c694398b6df4744613ce9b36b1a498e816787e28123 \ - --hash=sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375 \ - --hash=sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065 \ - --hash=sha256:363c6f671b761efcb30608d24925a382497c12c506b51661883c3e22337265ed \ - --hash=sha256:39c1fec2c11dc8d89bba6b2bf1556af381611a173ac2b511cf7231622058af41 \ - --hash=sha256:3b1ac0d3e594bf121308112697cf4b32be538fb1444468fb0a6ae4feebc83411 \ - --hash=sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597 \ - --hash=sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f \ - --hash=sha256:3d00075aa65772e7ce9e990cab3ff1de702aa09be3940d1dc88d5abf1ab8a09c \ - --hash=sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3 \ - --hash=sha256:47819cea040f31d670cc8d324bb6435c6f133b8c7a19ec3d61634e62f8d8f9eb \ - --hash=sha256:47b099e1f4fbc95b701b6e85768e1fcdaf1630f3cbe4765fa216596f12310e2e \ - --hash=sha256:4a9fac8e469d04ce6c25bb2610dc535235bd4aa14996b4e6dbebf5e007eba5ee \ - --hash=sha256:4b826973a4a2ae47ba357e4e82fa44a463b8f168e1ca775ac64521442b19e87f \ - --hash=sha256:4c2529b320eb9e35af0fa3016c187dffb84a3ecc572bcee7c3ce302bfeba52bf \ - --hash=sha256:54479983bd5fb469c38f2f5c7e3a24f9a4e70594cd68cd1fa6b9340dadaff7cf \ - --hash=sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4 \ - --hash=sha256:5756779642579d902eed757b21b0164cd6fe338506a8083eb58af5c372e39d9a \ - --hash=sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665 \ - --hash=sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22 \ - --hash=sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675 \ - --hash=sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4 \ - --hash=sha256:5df592cd503496351d6dc14f7cdad49f268d8e618f80dce0cd5a36b93c3fc08d \ - --hash=sha256:5f4c04ead5aed67c8a1a20491d54cdfba5884507a48dd798ecaf13c74c4489f5 \ - --hash=sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65 \ - --hash=sha256:66dd88c918e3287efc22409d426c8f729688d89a0c587c88971a0faa2c2f3792 \ - --hash=sha256:678999709e68425ae2593acf2e3ebcbcf2e69885a5ee78f9eb80e6e371f1bf57 \ - --hash=sha256:67f2b6de947f8c757db2db9c71527933ad0019737ec374a8a6be9a956786aaf9 \ - --hash=sha256:693f0192126df6c2327cce3baa7c06f2a117575e32ab2308f7f8216c29d9e2e3 \ - --hash=sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151 \ - --hash=sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d \ - --hash=sha256:76d1f20b1c7a2fa82367e04982e708723ba0e7b8d43aa643d3dcd404d74f1475 \ - --hash=sha256:7f493881579c90fc262d9cdbaa05a6b54b3811c2f300766748db79f098db9940 \ - --hash=sha256:823c248b690b2fd9303ba00c4f66cd5e2d8c3ba4aa968b2779be9532a4dad431 \ - --hash=sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee \ - --hash=sha256:8dd8327c795b3e3f219760fa603dcae1dcc148172290a8ab15158cf85a953413 \ - --hash=sha256:8fdc51055e6ff4adeb88d58a11042ec9a5eae317a0a53d12c062c8a8865909e8 \ - --hash=sha256:a625e06551975f4b7ea7102bc43895b90742746797e2e14b70ed61c43a90f09b \ - --hash=sha256:abdc0c6c8c648b4805c5eacd131910d2a7f6455dfd3becab248ef108e89ab16a \ - --hash=sha256:ac017dd64572e5c3bd01939121e4d16cf30e5d7e110a119399cf3133b63ad054 \ - --hash=sha256:ac1e5c9054fe23226fb11e05a6e630837f074174c4c2f0fe442996112a6de4fb \ - --hash=sha256:ac60e3b188ec7574cb761b08d50fcedf9d77f1530352db4eef1707fe9dee7205 \ - --hash=sha256:b359ed09954d7c18bbc1680f380c7301f92c60bf924171629c5db97febb12f04 \ - --hash=sha256:b7643a03db5c95c799b89b31c036d5f27eeb4d259c798e878d6937d71832b1e4 \ - --hash=sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa \ - --hash=sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9 \ - --hash=sha256:cad21560da69f4ce7658ca2cb83138fb4cf695a2ba3e475e0559e05991aa8122 \ - --hash=sha256:d08eb4c2b7d6c41da6ca0600c077e93f5adcfd979cd777d747e9ee624556da4b \ - --hash=sha256:d50fd1ee42388dcfb2b3676132c78116490976f1300da28eb629272d5d93e905 \ - --hash=sha256:d591f8de75824cbb7acad4e05d2d710484f15f29d4a915092675ad3456f11770 \ - --hash=sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe \ - --hash=sha256:d63efaa0cd96cf0c5fe4d581521d9fa87744540d4bc999ae6e08595a1014b45b \ - --hash=sha256:d99e5546bf73dbad5bf3547174cd6cb8ba7273062a23808ffea025ecb1cf8562 \ - --hash=sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561 \ - --hash=sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215 \ - --hash=sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931 \ - --hash=sha256:f29d80eb9a9263b8d109135351caf568cc3f80b9928bccde535c235de55c22d9 \ - --hash=sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f \ - --hash=sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7 +websockets==16.0 \ + --hash=sha256:0298d07ee155e2e9fda5be8a9042200dd2e3bb0b8a38482156576f863a9d457c \ + --hash=sha256:04cdd5d2d1dacbad0a7bf36ccbcd3ccd5a30ee188f2560b7a62a30d14107b31a \ + --hash=sha256:08d7af67b64d29823fed316505a89b86705f2b7981c07848fb5e3ea3020c1abe \ + --hash=sha256:152284a83a00c59b759697b7f9e9cddf4e3c7861dd0d964b472b70f78f89e80e \ + --hash=sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec \ + --hash=sha256:19c4dc84098e523fd63711e563077d39e90ec6702aff4b5d9e344a60cb3c0cb1 \ + --hash=sha256:1c1b30e4f497b0b354057f3467f56244c603a79c0d1dafce1d16c283c25f6e64 \ + --hash=sha256:2b9f1e0d69bc60a4a87349d50c09a037a2607918746f07de04df9e43252c77a3 \ + --hash=sha256:31a52addea25187bde0797a97d6fc3d2f92b6f72a9370792d65a6e84615ac8a8 \ + --hash=sha256:32da954ffa2814258030e5a57bc73a3635463238e797c7375dc8091327434206 \ + --hash=sha256:335c23addf3d5e6a8633f9f8eda77efad001671e80b95c491dd0924587ece0b3 \ + --hash=sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156 \ + --hash=sha256:349f83cd6c9a415428ee1005cadb5c2c56f4389bc06a9af16103c3bc3dcc8b7d \ + --hash=sha256:37b31c1623c6605e4c00d466c9d633f9b812ea430c11c8a278774a1fde1acfa9 \ + --hash=sha256:417b28978cdccab24f46400586d128366313e8a96312e4b9362a4af504f3bbad \ + --hash=sha256:485c49116d0af10ac698623c513c1cc01c9446c058a4e61e3bf6c19dff7335a2 \ + --hash=sha256:4a1aba3340a8dca8db6eb5a7986157f52eb9e436b74813764241981ca4888f03 \ + --hash=sha256:50f23cdd8343b984957e4077839841146f67a3d31ab0d00e6b824e74c5b2f6e8 \ + --hash=sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230 \ + --hash=sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8 \ + --hash=sha256:5569417dc80977fc8c2d43a86f78e0a5a22fee17565d78621b6bb264a115d4ea \ + --hash=sha256:569d01a4e7fba956c5ae4fc988f0d4e187900f5497ce46339c996dbf24f17641 \ + --hash=sha256:583b7c42688636f930688d712885cf1531326ee05effd982028212ccc13e5957 \ + --hash=sha256:5a4b4cc550cb665dd8a47f868c8d04c8230f857363ad3c9caf7a0c3bf8c61ca6 \ + --hash=sha256:5f451484aeb5cafee1ccf789b1b66f535409d038c56966d6101740c1614b86c6 \ + --hash=sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5 \ + --hash=sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f \ + --hash=sha256:71c989cbf3254fbd5e84d3bff31e4da39c43f884e64f2551d14bb3c186230f00 \ + --hash=sha256:781caf5e8eee67f663126490c2f96f40906594cb86b408a703630f95550a8c3e \ + --hash=sha256:7be95cfb0a4dae143eaed2bcba8ac23f4892d8971311f1b06f3c6b78952ee70b \ + --hash=sha256:7d837379b647c0c4c2355c2499723f82f1635fd2c26510e1f587d89bc2199e72 \ + --hash=sha256:86890e837d61574c92a97496d590968b23c2ef0aeb8a9bc9421d174cd378ae39 \ + --hash=sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9 \ + --hash=sha256:8b6e209ffee39ff1b6d0fa7bfef6de950c60dfb91b8fcead17da4ee539121a79 \ + --hash=sha256:8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0 \ + --hash=sha256:8d7f0659570eefb578dacde98e24fb60af35350193e4f56e11190787bee77dac \ + --hash=sha256:8e1dab317b6e77424356e11e99a432b7cb2f3ec8c5ab4dabbcee6add48f72b35 \ + --hash=sha256:8ff32bb86522a9e5e31439a58addbb0166f0204d64066fb955265c4e214160f0 \ + --hash=sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5 \ + --hash=sha256:9b5aca38b67492ef518a8ab76851862488a478602229112c4b0d58d63a7a4d5c \ + --hash=sha256:a069d734c4a043182729edd3e9f247c3b2a4035415a9172fd0f1b71658a320a8 \ + --hash=sha256:a0b31e0b424cc6b5a04b8838bbaec1688834b2383256688cf47eb97412531da1 \ + --hash=sha256:a35539cacc3febb22b8f4d4a99cc79b104226a756aa7400adc722e83b0d03244 \ + --hash=sha256:a5e18a238a2b2249c9a9235466b90e96ae4795672598a58772dd806edc7ac6d3 \ + --hash=sha256:a653aea902e0324b52f1613332ddf50b00c06fdaf7e92624fbf8c77c78fa5767 \ + --hash=sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a \ + --hash=sha256:af80d74d4edfa3cb9ed973a0a5ba2b2a549371f8a741e0800cb07becdd20f23d \ + --hash=sha256:b14dc141ed6d2dde437cddb216004bcac6a1df0935d79656387bd41632ba0bbd \ + --hash=sha256:b784ca5de850f4ce93ec85d3269d24d4c82f22b7212023c974c401d4980ebc5e \ + --hash=sha256:bc59589ab64b0022385f429b94697348a6a234e8ce22544e3681b2e9331b5944 \ + --hash=sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82 \ + --hash=sha256:c0ee0e63f23914732c6d7e0cce24915c48f3f1512ec1d079ed01fc629dab269d \ + --hash=sha256:caab51a72c51973ca21fa8a18bd8165e1a0183f1ac7066a182ff27107b71e1a4 \ + --hash=sha256:d6297ce39ce5c2e6feb13c1a996a2ded3b6832155fcfc920265c76f24c7cceb5 \ + --hash=sha256:daa3b6ff70a9241cf6c7fc9e949d41232d9d7d26fd3522b1ad2b4d62487e9904 \ + --hash=sha256:df57afc692e517a85e65b72e165356ed1df12386ecb879ad5693be08fac65dde \ + --hash=sha256:e0334872c0a37b606418ac52f6ab9cfd17317ac26365f7f65e203e2d0d0d359f \ + --hash=sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c \ + --hash=sha256:eaded469f5e5b7294e2bdca0ab06becb6756ea86894a47806456089298813c89 \ + --hash=sha256:f4a32d1bd841d4bcbffdcb3d2ce50c09c3909fbead375ab28d0181af89fd04da \ + --hash=sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4 # via uvicorn -werkzeug==3.1.4 \ - --hash=sha256:2ad50fb9ed09cc3af22c54698351027ace879a0b60a3b5edf5730b2f7d876905 \ - --hash=sha256:cd3cd98b1b92dc3b7b3995038826c68097dcb16f9baa63abe35f20eafeb9fe5e +werkzeug==3.1.5 \ + --hash=sha256:5111e36e91086ece91f93268bb39b4a35c1e6f1feac762c9c822ded0a4e322dc \ + --hash=sha256:6a548b0e88955dd07ccb25539d7d0cc97417ee9e179677d22c7041c8f078ce67 # via moto wheel==0.45.1 \ --hash=sha256:661e1abd9198507b1409a20c02106d9670b2576e916d58f520316666abca6729 \ diff --git a/sdk/python/requirements/py3.12-minimal-requirements.txt b/sdk/python/requirements/py3.12-minimal-requirements.txt index 707d8cdddad..1d375575dc1 100644 --- a/sdk/python/requirements/py3.12-minimal-requirements.txt +++ b/sdk/python/requirements/py3.12-minimal-requirements.txt @@ -8,127 +8,127 @@ aiohappyeyeballs==2.6.1 \ --hash=sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558 \ --hash=sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8 # via aiohttp -aiohttp==3.13.2 \ - --hash=sha256:04c3971421576ed24c191f610052bcb2f059e395bc2489dd99e397f9bc466329 \ - --hash=sha256:05c4dd3c48fb5f15db31f57eb35374cb0c09afdde532e7fb70a75aede0ed30f6 \ - --hash=sha256:070599407f4954021509193404c4ac53153525a19531051661440644728ba9a7 \ - --hash=sha256:0740f31a60848d6edb296a0df827473eede90c689b8f9f2a4cdde74889eb2254 \ - --hash=sha256:088912a78b4d4f547a1f19c099d5a506df17eacec3c6f4375e2831ec1d995742 \ - --hash=sha256:0a3d54e822688b56e9f6b5816fb3de3a3a64660efac64e4c2dc435230ad23bad \ - --hash=sha256:0db1e24b852f5f664cd728db140cf11ea0e82450471232a394b3d1a540b0f906 \ - --hash=sha256:0e87dff73f46e969af38ab3f7cb75316a7c944e2e574ff7c933bc01b10def7f5 \ - --hash=sha256:1237c1375eaef0db4dcd7c2559f42e8af7b87ea7d295b118c60c36a6e61cb811 \ - --hash=sha256:16f15a4eac3bc2d76c45f7ebdd48a65d41b242eb6c31c2245463b40b34584ded \ - --hash=sha256:1f9b2c2d4b9d958b1f9ae0c984ec1dd6b6689e15c75045be8ccb4011426268ca \ - --hash=sha256:204ffff2426c25dfda401ba08da85f9c59525cdc42bda26660463dd1cbcfec6f \ - --hash=sha256:20b10bbfbff766294fe99987f7bb3b74fdd2f1a2905f2562132641ad434dcf98 \ - --hash=sha256:20db2d67985d71ca033443a1ba2001c4b5693fe09b0e29f6d9358a99d4d62a8a \ - --hash=sha256:228a1cd556b3caca590e9511a89444925da87d35219a49ab5da0c36d2d943a6a \ - --hash=sha256:2372b15a5f62ed37789a6b383ff7344fc5b9f243999b0cd9b629d8bc5f5b4155 \ - --hash=sha256:23ad365e30108c422d0b4428cf271156dd56790f6dd50d770b8e360e6c5ab2e6 \ - --hash=sha256:23fb0783bc1a33640036465019d3bba069942616a6a2353c6907d7fe1ccdaf4e \ - --hash=sha256:2475391c29230e063ef53a66669b7b691c9bfc3f1426a0f7bcdf1216bdbac38b \ - --hash=sha256:27e569eb9d9e95dbd55c0fc3ec3a9335defbf1d8bc1d20171a49f3c4c607b93e \ - --hash=sha256:29562998ec66f988d49fb83c9b01694fa927186b781463f376c5845c121e4e0b \ - --hash=sha256:2adebd4577724dcae085665f294cc57c8701ddd4d26140504db622b8d566d7aa \ - --hash=sha256:2ca6ffef405fc9c09a746cb5d019c1672cd7f402542e379afc66b370833170cf \ - --hash=sha256:2e1a9bea6244a1d05a4e57c295d69e159a5c50d8ef16aa390948ee873478d9a5 \ - --hash=sha256:364e25edaabd3d37b1db1f0cbcee8c73c9a3727bfa262b83e5e4cf3489a2a9dc \ - --hash=sha256:364f55663085d658b8462a1c3f17b2b84a5c2e1ba858e1b79bff7b2e24ad1514 \ - --hash=sha256:39d02cb6025fe1aabca329c5632f48c9532a3dabccd859e7e2f110668972331f \ - --hash=sha256:3a92cf4b9bea33e15ecbaa5c59921be0f23222608143d025c989924f7e3e0c07 \ - --hash=sha256:40176a52c186aefef6eb3cad2cdd30cd06e3afbe88fe8ab2af9c0b90f228daca \ - --hash=sha256:4356474ad6333e41ccefd39eae869ba15a6c5299c9c01dfdcfdd5c107be4363e \ - --hash=sha256:43dff14e35aba17e3d6d5ba628858fb8cb51e30f44724a2d2f0c75be492c55e9 \ - --hash=sha256:4647d02df098f6434bafd7f32ad14942f05a9caa06c7016fdcc816f343997dd0 \ - --hash=sha256:47f438b1a28e926c37632bff3c44df7d27c9b57aaf4e34b1def3c07111fdb782 \ - --hash=sha256:4dd3db9d0f4ebca1d887d76f7cdbcd1116ac0d05a9221b9dad82c64a62578c4d \ - --hash=sha256:4ebf9cfc9ba24a74cf0718f04aac2a3bbe745902cc7c5ebc55c0f3b5777ef213 \ - --hash=sha256:5276807b9de9092af38ed23ce120539ab0ac955547b38563a9ba4f5b07b95293 \ - --hash=sha256:53b07472f235eb80e826ad038c9d106c2f653584753f3ddab907c83f49eedead \ - --hash=sha256:550bf765101ae721ee1d37d8095f47b1f220650f85fe1af37a90ce75bab89d04 \ - --hash=sha256:56d36e80d2003fa3fc0207fac644216d8532e9504a785ef9a8fd013f84a42c61 \ - --hash=sha256:585542825c4bc662221fb257889e011a5aa00f1ae4d75d1d246a5225289183e3 \ - --hash=sha256:5b927cf9b935a13e33644cbed6c8c4b2d0f25b713d838743f8fe7191b33829c4 \ - --hash=sha256:5d7f02042c1f009ffb70067326ef183a047425bb2ff3bc434ead4dd4a4a66a2b \ - --hash=sha256:6315fb6977f1d0dd41a107c527fee2ed5ab0550b7d885bc15fee20ccb17891da \ - --hash=sha256:66bac29b95a00db411cd758fea0e4b9bdba6d549dfe333f9a945430f5f2cc5a6 \ - --hash=sha256:6c00dbcf5f0d88796151e264a8eab23de2997c9303dd7c0bf622e23b24d3ce22 \ - --hash=sha256:6e7352512f763f760baaed2637055c49134fd1d35b37c2dedfac35bfe5cf8725 \ - --hash=sha256:7519bdc7dfc1940d201651b52bf5e03f5503bda45ad6eacf64dda98be5b2b6be \ - --hash=sha256:78cd586d8331fb8e241c2dd6b2f4061778cc69e150514b39a9e28dd050475661 \ - --hash=sha256:7a653d872afe9f33497215745da7a943d1dc15b728a9c8da1c3ac423af35178e \ - --hash=sha256:7c3a50345635a02db61792c85bb86daffac05330f6473d524f1a4e3ef9d0046d \ - --hash=sha256:7fbdf5ad6084f1940ce88933de34b62358d0f4a0b6ec097362dcd3e5a65a4989 \ - --hash=sha256:7fd19df530c292542636c2a9a85854fab93474396a52f1695e799186bbd7f24c \ - --hash=sha256:868e195e39b24aaa930b063c08bb0c17924899c16c672a28a65afded9c46c6ec \ - --hash=sha256:8709a0f05d59a71f33fd05c17fc11fcb8c30140506e13c2f5e8ee1b8964e1b45 \ - --hash=sha256:88d6c017966a78c5265d996c19cdb79235be5e6412268d7e2ce7dee339471b7a \ - --hash=sha256:8aa7c807df234f693fed0ecd507192fc97692e61fee5702cdc11155d2e5cadc8 \ - --hash=sha256:8b2f1414f6a1e0683f212ec80e813f4abef94c739fd090b66c9adf9d2a05feac \ - --hash=sha256:93655083005d71cd6c072cdab54c886e6570ad2c4592139c3fb967bfc19e4694 \ - --hash=sha256:939ced4a7add92296b0ad38892ce62b98c619288a081170695c6babe4f50e636 \ - --hash=sha256:9434bc0d80076138ea986833156c5a48c9c7a8abb0c96039ddbb4afc93184169 \ - --hash=sha256:94f05348c4406450f9d73d38efb41d669ad6cd90c7ee194810d0eefbfa875a7a \ - --hash=sha256:960c2fc686ba27b535f9fd2b52d87ecd7e4fd1cf877f6a5cba8afb5b4a8bd204 \ - --hash=sha256:96581619c57419c3d7d78703d5b78c1e5e5fc0172d60f555bdebaced82ded19a \ - --hash=sha256:97a0895a8e840ab3520e2288db7cace3a1981300d48babeb50e7425609e2e0ab \ - --hash=sha256:98c4fb90bb82b70a4ed79ca35f656f4281885be076f3f970ce315402b53099ae \ - --hash=sha256:99c5280a329d5fa18ef30fd10c793a190d996567667908bef8a7f81f8202b948 \ - --hash=sha256:9acda8604a57bb60544e4646a4615c1866ee6c04a8edef9b8ee6fd1d8fa2ddc8 \ - --hash=sha256:9c705601e16c03466cb72011bd1af55d68fa65b045356d8f96c216e5f6db0fa5 \ - --hash=sha256:9e8f8afb552297aca127c90cb840e9a1d4bfd6a10d7d8f2d9176e1acc69bad30 \ - --hash=sha256:9eb3e33fdbe43f88c3c75fa608c25e7c47bbd80f48d012763cb67c47f39a7e16 \ - --hash=sha256:9ec49dff7e2b3c85cdeaa412e9d438f0ecd71676fde61ec57027dd392f00c693 \ - --hash=sha256:9f377d0a924e5cc94dc620bc6366fc3e889586a7f18b748901cf016c916e2084 \ - --hash=sha256:a09a6d073fb5789456545bdee2474d14395792faa0527887f2f4ec1a486a59d3 \ - --hash=sha256:a2713a95b47374169409d18103366de1050fe0ea73db358fc7a7acb2880422d4 \ - --hash=sha256:a3b6fb0c207cc661fa0bf8c66d8d9b657331ccc814f4719468af61034b478592 \ - --hash=sha256:a4b88ebe35ce54205c7074f7302bd08a4cb83256a3e0870c72d6f68a3aaf8e49 \ - --hash=sha256:a88d13e7ca367394908f8a276b89d04a3652044612b9a408a0bb22a5ed976a1a \ - --hash=sha256:ac6cde5fba8d7d8c6ac963dbb0256a9854e9fafff52fbcc58fdf819357892c3e \ - --hash=sha256:ae32f24bbfb7dbb485a24b30b1149e2f200be94777232aeadba3eecece4d0aa4 \ - --hash=sha256:b009194665bcd128e23eaddef362e745601afa4641930848af4c8559e88f18f9 \ - --hash=sha256:b1e56bab2e12b2b9ed300218c351ee2a3d8c8fdab5b1ec6193e11a817767e47b \ - --hash=sha256:b395bbca716c38bef3c764f187860e88c724b342c26275bc03e906142fc5964f \ - --hash=sha256:b59d13c443f8e049d9e94099c7e412e34610f1f49be0f230ec656a10692a5802 \ - --hash=sha256:ba2715d842ffa787be87cbfce150d5e88c87a98e0b62e0f5aa489169a393dbbb \ - --hash=sha256:bb7fb776645af5cc58ab804c58d7eba545a97e047254a52ce89c157b5af6cd0b \ - --hash=sha256:c038a8fdc8103cd51dbd986ecdce141473ffd9775a7a8057a6ed9c3653478011 \ - --hash=sha256:c20423ce14771d98353d2e25e83591fa75dfa90a3c1848f3d7c68243b4fbded3 \ - --hash=sha256:c5c94825f744694c4b8db20b71dba9a257cd2ba8e010a803042123f3a25d50d7 \ - --hash=sha256:cf00e5db968c3f67eccd2778574cf64d8b27d95b237770aa32400bd7a1ca4f6c \ - --hash=sha256:d23b5fe492b0805a50d3371e8a728a9134d8de5447dce4c885f5587294750734 \ - --hash=sha256:d7bc4b7f9c4921eba72677cd9fedd2308f4a4ca3e12fab58935295ad9ea98700 \ - --hash=sha256:d8a9b889aeabd7a4e9af0b7f4ab5ad94d42e7ff679aaec6d0db21e3b639ad58d \ - --hash=sha256:dacd50501cd017f8cccb328da0c90823511d70d24a323196826d923aad865901 \ - --hash=sha256:e036a3a645fe92309ec34b918394bb377950cbb43039a97edae6c08db64b23e2 \ - --hash=sha256:e09a0a06348a2dd73e7213353c90d709502d9786219f69b731f6caa0efeb46f5 \ - --hash=sha256:e0c8e31cfcc4592cb200160344b2fb6ae0f9e4effe06c644b5a125d4ae5ebe23 \ - --hash=sha256:e1b4951125ec10c70802f2cb09736c895861cd39fd9dcb35107b4dc8ae6220b8 \ - --hash=sha256:e2a9ea08e8c58bb17655630198833109227dea914cd20be660f52215f6de5613 \ - --hash=sha256:e3403f24bcb9c3b29113611c3c16a2a447c3953ecf86b79775e7be06f7ae7ccb \ - --hash=sha256:e574a7d61cf10351d734bcddabbe15ede0eaa8a02070d85446875dc11189a251 \ - --hash=sha256:e67446b19e014d37342f7195f592a2a948141d15a312fe0e700c2fd2f03124f6 \ - --hash=sha256:e736c93e9c274fce6419af4aac199984d866e55f8a4cec9114671d0ea9688780 \ - --hash=sha256:e7c952aefdf2460f4ae55c5e9c3e80aa72f706a6317e06020f80e96253b1accd \ - --hash=sha256:e7f8659a48995edee7229522984bd1009c1213929c769c2daa80b40fe49a180c \ - --hash=sha256:e96eb1a34396e9430c19d8338d2ec33015e4a87ef2b4449db94c22412e25ccdf \ - --hash=sha256:ec7534e63ae0f3759df3a1ed4fa6bc8f75082a924b590619c0dd2f76d7043caa \ - --hash=sha256:ed2f9c7216e53c3df02264f25d824b079cc5914f9e2deba94155190ef648ee40 \ - --hash=sha256:eeacf451c99b4525f700f078becff32c32ec327b10dcf31306a8a52d78166de7 \ - --hash=sha256:f10d9c0b0188fe85398c61147bbd2a657d616c876863bfeff43376e0e3134673 \ - --hash=sha256:f2bef8237544f4e42878c61cef4e2839fee6346dc60f5739f876a9c50be7fcdb \ - --hash=sha256:f33c8748abef4d8717bb20e8fb1b3e07c6adacb7fd6beaae971a764cf5f30d61 \ - --hash=sha256:f7c183e786e299b5d6c49fb43a769f8eb8e04a2726a2bd5887b98b5cc2d67940 \ - --hash=sha256:fa4dcb605c6f82a80c7f95713c2b11c3b8e9893b3ebd2bc9bde93165ed6107be \ - --hash=sha256:fa89cb11bc71a63b69568d5b8a25c3ca25b6d54c15f907ca1c130d72f320b76b \ - --hash=sha256:fe242cd381e0fb65758faf5ad96c2e460df6ee5b2de1072fe97e4127927e00b4 \ - --hash=sha256:fe91b87fc295973096251e2d25a811388e7d8adf3bd2b97ef6ae78bc4ac6c476 \ - --hash=sha256:fed38a5edb7945f4d1bcabe2fcd05db4f6ec7e0e82560088b754f7e08d93772d \ - --hash=sha256:ff0a7b0a82a7ab905cbda74006318d1b12e37c797eb1b0d4eb3e316cf47f658f \ - --hash=sha256:ff15c147b2ad66da1f2cbb0622313f2242d8e6e8f9b79b5206c84523a4473248 \ - --hash=sha256:ff5e771f5dcbc81c64898c597a434f7682f2259e0cd666932a913d53d1341d1a +aiohttp==3.13.3 \ + --hash=sha256:01ad2529d4b5035578f5081606a465f3b814c542882804e2e8cda61adf5c71bf \ + --hash=sha256:042e9e0bcb5fba81886c8b4fbb9a09d6b8a00245fd8d88e4d989c1f96c74164c \ + --hash=sha256:05861afbbec40650d8a07ea324367cb93e9e8cc7762e04dd4405df99fa65159c \ + --hash=sha256:084911a532763e9d3dd95adf78a78f4096cd5f58cdc18e6fdbc1b58417a45423 \ + --hash=sha256:0add0900ff220d1d5c5ebbf99ed88b0c1bbf87aa7e4262300ed1376a6b13414f \ + --hash=sha256:0db318f7a6f065d84cb1e02662c526294450b314a02bd9e2a8e67f0d8564ce40 \ + --hash=sha256:10b47b7ba335d2e9b1239fa571131a87e2d8ec96b333e68b2a305e7a98b0bae2 \ + --hash=sha256:1449ceddcdbcf2e0446957863af03ebaaa03f94c090f945411b61269e2cb5daf \ + --hash=sha256:147e422fd1223005c22b4fe080f5d93ced44460f5f9c105406b753612b587821 \ + --hash=sha256:1cb93e166e6c28716c8c6aeb5f99dfb6d5ccf482d29fe9bf9a794110e6d0ab64 \ + --hash=sha256:215a685b6fbbfcf71dfe96e3eba7a6f58f10da1dfdf4889c7dd856abe430dca7 \ + --hash=sha256:2712039939ec963c237286113c68dbad80a82a4281543f3abf766d9d73228998 \ + --hash=sha256:27234ef6d85c914f9efeb77ff616dbf4ad2380be0cda40b4db086ffc7ddd1b7d \ + --hash=sha256:28e027cf2f6b641693a09f631759b4d9ce9165099d2b5d92af9bd4e197690eea \ + --hash=sha256:2b8d8ddba8f95ba17582226f80e2de99c7a7948e66490ef8d947e272a93e9463 \ + --hash=sha256:2ba0eea45eb5cc3172dbfc497c066f19c41bac70963ea1a67d51fc92e4cf9a80 \ + --hash=sha256:2be0e9ccf23e8a94f6f0650ce06042cefc6ac703d0d7ab6c7a917289f2539ad4 \ + --hash=sha256:2e41b18a58da1e474a057b3d35248d8320029f61d70a37629535b16a0c8f3767 \ + --hash=sha256:2eb752b102b12a76ca02dff751a801f028b4ffbbc478840b473597fc91a9ed43 \ + --hash=sha256:2fc82186fadc4a8316768d61f3722c230e2c1dcab4200d52d2ebdf2482e47592 \ + --hash=sha256:2fff83cfc93f18f215896e3a190e8e5cb413ce01553901aca925176e7568963a \ + --hash=sha256:31a83ea4aead760dfcb6962efb1d861db48c34379f2ff72db9ddddd4cda9ea2e \ + --hash=sha256:34749271508078b261c4abb1767d42b8d0c0cc9449c73a4df494777dc55f0687 \ + --hash=sha256:34bac00a67a812570d4a460447e1e9e06fae622946955f939051e7cc895cfab8 \ + --hash=sha256:37239e9f9a7ea9ac5bf6b92b0260b01f8a22281996da609206a84df860bc1261 \ + --hash=sha256:37da61e244d1749798c151421602884db5270faf479cf0ef03af0ff68954c9dd \ + --hash=sha256:3b61b7169ababd7802f9568ed96142616a9118dd2be0d1866e920e77ec8fa92a \ + --hash=sha256:3d9908a48eb7416dc1f4524e69f1d32e5d90e3981e4e37eb0aa1cd18f9cfa2a4 \ + --hash=sha256:3dd4dce1c718e38081c8f35f323209d4c1df7d4db4bab1b5c88a6b4d12b74587 \ + --hash=sha256:4021b51936308aeea0367b8f006dc999ca02bc118a0cc78c303f50a2ff6afb91 \ + --hash=sha256:40c5e40ecc29ba010656c18052b877a1c28f84344825efa106705e835c28530f \ + --hash=sha256:425c126c0dc43861e22cb1c14ba4c8e45d09516d0a3ae0a3f7494b79f5f233a3 \ + --hash=sha256:44531a36aa2264a1860089ffd4dce7baf875ee5a6079d5fb42e261c704ef7344 \ + --hash=sha256:48e377758516d262bde50c2584fc6c578af272559c409eecbdd2bae1601184d6 \ + --hash=sha256:49a03727c1bba9a97d3e93c9f93ca03a57300f484b6e935463099841261195d3 \ + --hash=sha256:4ae5b5a0e1926e504c81c5b84353e7a5516d8778fbbff00429fe7b05bb25cbce \ + --hash=sha256:4e239d501f73d6db1522599e14b9b321a7e3b1de66ce33d53a765d975e9f4808 \ + --hash=sha256:56339a36b9f1fc708260c76c87e593e2afb30d26de9ae1eb445b5e051b98a7a1 \ + --hash=sha256:568f416a4072fbfae453dcf9a99194bbb8bdeab718e08ee13dfa2ba0e4bebf29 \ + --hash=sha256:5b179331a481cb5529fca8b432d8d3c7001cb217513c94cd72d668d1248688a3 \ + --hash=sha256:5b6073099fb654e0a068ae678b10feff95c5cae95bbfcbfa7af669d361a8aa6b \ + --hash=sha256:5d2d94f1f5fcbe40838ac51a6ab5704a6f9ea42e72ceda48de5e6b898521da51 \ + --hash=sha256:5dff64413671b0d3e7d5918ea490bdccb97a4ad29b3f311ed423200b2203e01c \ + --hash=sha256:5e1d8c8b8f1d91cd08d8f4a3c2b067bfca6ec043d3ff36de0f3a715feeedf926 \ + --hash=sha256:5f8ca7f2bb6ba8348a3614c7918cc4bb73268c5ac2a207576b7afea19d3d9f64 \ + --hash=sha256:642f752c3eb117b105acbd87e2c143de710987e09860d674e068c4c2c441034f \ + --hash=sha256:65d2ccb7eabee90ce0503c17716fc77226be026dcc3e65cce859a30db715025b \ + --hash=sha256:693781c45a4033d31d4187d2436f5ac701e7bbfe5df40d917736108c1cc7436e \ + --hash=sha256:694976222c711d1d00ba131904beb60534f93966562f64440d0c9d41b8cdb440 \ + --hash=sha256:697753042d57f4bf7122cab985bf15d0cef23c770864580f5af4f52023a56bd6 \ + --hash=sha256:69c56fbc1993fa17043e24a546959c0178fe2b5782405ad4559e6c13975c15e3 \ + --hash=sha256:6de499a1a44e7de70735d0b39f67c8f25eb3d91eb3103be99ca0fa882cdd987d \ + --hash=sha256:6fc0e2337d1a4c3e6acafda6a78a39d4c14caea625124817420abceed36e2415 \ + --hash=sha256:75ca857eba4e20ce9f546cd59c7007b33906a4cd48f2ff6ccf1ccfc3b646f279 \ + --hash=sha256:7a4a94eb787e606d0a09404b9c38c113d3b099d508021faa615d70a0131907ce \ + --hash=sha256:7b5e8fe4de30df199155baaf64f2fcd604f4c678ed20910db8e2c66dc4b11603 \ + --hash=sha256:7bfdc049127717581866fa4708791220970ce291c23e28ccf3922c700740fdc0 \ + --hash=sha256:7e63f210bc1b57ef699035f2b4b6d9ce096b5914414a49b0997c839b2bd2223c \ + --hash=sha256:7f9120f7093c2a32d9647abcaf21e6ad275b4fbec5b55969f978b1a97c7c86bf \ + --hash=sha256:8057c98e0c8472d8846b9c79f56766bcc57e3e8ac7bfd510482332366c56c591 \ + --hash=sha256:80dd4c21b0f6237676449c6baaa1039abae86b91636b6c91a7f8e61c87f89540 \ + --hash=sha256:81e97251d9298386c2b7dbeb490d3d1badbdc69107fb8c9299dd04eb39bddc0e \ + --hash=sha256:82611aeec80eb144416956ec85b6ca45a64d76429c1ed46ae1b5f86c6e0c9a26 \ + --hash=sha256:8542f41a62bcc58fc7f11cf7c90e0ec324ce44950003feb70640fc2a9092c32a \ + --hash=sha256:859bd3f2156e81dd01432f5849fc73e2243d4a487c4fd26609b1299534ee1845 \ + --hash=sha256:87797e645d9d8e222e04160ee32aa06bc5c163e8499f24db719e7852ec23093a \ + --hash=sha256:87b9aab6d6ed88235aa2970294f496ff1a1f9adcd724d800e9b952395a80ffd9 \ + --hash=sha256:8a60e60746623925eab7d25823329941aee7242d559baa119ca2b253c88a7bd6 \ + --hash=sha256:90455115e5da1c3c51ab619ac57f877da8fd6d73c05aacd125c5ae9819582aba \ + --hash=sha256:90751b8eed69435bac9ff4e3d2f6b3af1f57e37ecb0fbeee59c0174c9e2d41df \ + --hash=sha256:947c26539750deeaee933b000fb6517cc770bbd064bad6033f1cff4803881e43 \ + --hash=sha256:96d604498a7c782cb15a51c406acaea70d8c027ee6b90c569baa6e7b93073679 \ + --hash=sha256:988a8c5e317544fdf0d39871559e67b6341065b87fceac641108c2096d5506b7 \ + --hash=sha256:9a9dc347e5a3dc7dfdbc1f82da0ef29e388ddb2ed281bfce9dd8248a313e62b7 \ + --hash=sha256:9ae8dd55c8e6c4257eae3a20fd2c8f41edaea5992ed67156642493b8daf3cecc \ + --hash=sha256:9af5e68ee47d6534d36791bbe9b646d2a7c7deb6fc24d7943628edfbb3581f29 \ + --hash=sha256:9b174f267b5cfb9a7dba9ee6859cecd234e9a681841eb85068059bc867fb8f02 \ + --hash=sha256:9bf9f7a65e7aa20dd764151fb3d616c81088f91f8df39c3893a536e279b4b984 \ + --hash=sha256:9d4c940f02f49483b18b079d1c27ab948721852b281f8b015c058100e9421dd1 \ + --hash=sha256:9ebf57d09e131f5323464bd347135a88622d1c0976e88ce15b670e7ad57e4bd6 \ + --hash=sha256:a19884d2ee70b06d9204b2727a7b9f983d0c684c650254679e716b0b77920632 \ + --hash=sha256:a1e53262fd202e4b40b70c3aff944a8155059beedc8a89bba9dc1f9ef06a1b56 \ + --hash=sha256:a2212ad43c0833a873d0fb3c63fa1bacedd4cf6af2fee62bf4b739ceec3ab239 \ + --hash=sha256:a45530014d7a1e09f4a55f4f43097ba0fd155089372e105e4bff4ca76cb1b168 \ + --hash=sha256:a949eee43d3782f2daae4f4a2819b2cb9b0c5d3b7f7a927067cc84dafdbb9f88 \ + --hash=sha256:add1da70de90a2569c5e15249ff76a631ccacfe198375eead4aadf3b8dc849dc \ + --hash=sha256:af71fff7bac6bb7508956696dce8f6eec2bbb045eceb40343944b1ae62b5ef11 \ + --hash=sha256:b04be762396457bef43f3597c991e192ee7da460a4953d7e647ee4b1c28e7046 \ + --hash=sha256:b0d95340658b9d2f11d9697f59b3814a9d3bb4b7a7c20b131df4bcef464037c0 \ + --hash=sha256:b1a6102b4d3ebc07dad44fbf07b45bb600300f15b552ddf1851b5390202ea2e3 \ + --hash=sha256:b46020d11d23fe16551466c77823df9cc2f2c1e63cc965daf67fa5eec6ca1877 \ + --hash=sha256:b556c85915d8efaed322bf1bdae9486aa0f3f764195a0fb6ee962e5c71ef5ce1 \ + --hash=sha256:b903a4dfee7d347e2d87697d0713be59e0b87925be030c9178c5faa58ea58d5c \ + --hash=sha256:b928f30fe49574253644b1ca44b1b8adbd903aa0da4b9054a6c20fc7f4092a25 \ + --hash=sha256:b99281b0704c103d4e11e72a76f1b543d4946fea7dd10767e7e1b5f00d4e5704 \ + --hash=sha256:bae5c2ed2eae26cc382020edad80d01f36cb8e746da40b292e68fec40421dc6a \ + --hash=sha256:bb4f7475e359992b580559e008c598091c45b5088f28614e855e42d39c2f1033 \ + --hash=sha256:bbe7d4cecacb439e2e2a8a1a7b935c25b812af7a5fd26503a66dadf428e79ec1 \ + --hash=sha256:bfc1cc2fe31a6026a8a88e4ecfb98d7f6b1fec150cfd708adbfd1d2f42257c29 \ + --hash=sha256:c014c7ea7fb775dd015b2d3137378b7be0249a448a1612268b5a90c2d81de04d \ + --hash=sha256:c048058117fd649334d81b4b526e94bde3ccaddb20463a815ced6ecbb7d11160 \ + --hash=sha256:c0e2d366af265797506f0283487223146af57815b388623f0357ef7eac9b209d \ + --hash=sha256:c19b90316ad3b24c69cd78d5c9b4f3aa4497643685901185b65166293d36a00f \ + --hash=sha256:c685f2d80bb67ca8c3837823ad76196b3694b0159d232206d1e461d3d434666f \ + --hash=sha256:c6b8568a3bb5819a0ad087f16d40e5a3fb6099f39ea1d5625a3edc1e923fc538 \ + --hash=sha256:d32764c6c9aafb7fb55366a224756387cd50bfa720f32b88e0e6fa45b27dcf29 \ + --hash=sha256:d5a372fd5afd301b3a89582817fdcdb6c34124787c70dbcc616f259013e7eef7 \ + --hash=sha256:d60ac9663f44168038586cab2157e122e46bdef09e9368b37f2d82d354c23f72 \ + --hash=sha256:dca68018bf48c251ba17c72ed479f4dafe9dbd5a73707ad8d28a38d11f3d42af \ + --hash=sha256:de2c184bb1fe2cbd2cefba613e9db29a5ab559323f994b6737e370d3da0ac455 \ + --hash=sha256:e3531d63d3bdfa7e3ac5e9b27b2dd7ec9df3206a98e0b3445fa906f233264c57 \ + --hash=sha256:e50a2e1404f063427c9d027378472316201a2290959a295169bcf25992d04558 \ + --hash=sha256:e636b3c5f61da31a92bf0d91da83e58fdfa96f178ba682f11d24f31944cdd28c \ + --hash=sha256:ea37047c6b367fd4bd632bff8077449b8fa034b69e812a18e0132a00fae6e808 \ + --hash=sha256:f33ed1a2bf1997a36661874b017f5c4b760f41266341af36febaf271d179f6d7 \ + --hash=sha256:f76c1e3fe7d7c8afad7ed193f89a292e1999608170dcc9751a7462a87dfd5bc0 \ + --hash=sha256:f9444f105664c4ce47a2a7171a2418bce5b7bae45fb610f4e2c36045d85911d3 \ + --hash=sha256:fc290605db2a917f6e81b0e1e0796469871f5af381ce15c604a3c5c7e51cb730 \ + --hash=sha256:fc353029f176fd2b3ec6cfc71be166aba1936fe5d73dd1992ce289ca6647a9aa \ + --hash=sha256:fee0c6bc7db1de362252affec009707a17478a00ec69f797d23ca256e36d5940 # via aiobotocore aioitertools==0.13.0 \ --hash=sha256:0be0292b856f08dfac90e31f4739432f4cb6d7520ab9eb73e143f4f2fa5259be \ @@ -146,9 +146,9 @@ annotated-types==0.7.0 \ --hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 \ --hash=sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89 # via pydantic -anyio==4.12.0 \ - --hash=sha256:73c693b567b0c55130c104d0b43a9baf3aa6a31fc6110116509f27bf75e21ec0 \ - --hash=sha256:dad2376a628f98eeca4881fc56cd06affd18f659b17a747d3ff0307ced94b1bb +anyio==4.12.1 \ + --hash=sha256:41cfcc3a4c85d3f05c932da7c26d0201ac36f72abd4435ba90d0464a3ffed703 \ + --hash=sha256:d405828884fc140aa80a3c667b8beed277f1dfedec42ba031bd6ac3db606ab6c # via # httpx # mcp @@ -159,9 +159,9 @@ asn1crypto==1.5.1 \ --hash=sha256:13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c \ --hash=sha256:db4e40728b728508912cbb3d44f19ce188f218e9eba635821bb4b68564f8fd67 # via snowflake-connector-python -atpublic==5.1 \ - --hash=sha256:135783dbd887fbddb6ef032d104da70c124f2b44b9e2d79df07b9da5334825e3 \ - --hash=sha256:abc1f4b3dbdd841cc3539e4b5e4f3ad41d658359de704e30cb36da4d4e9d3022 +atpublic==7.0.0 \ + --hash=sha256:466ef10d0c8bbd14fd02a5fbd5a8b6af6a846373d91106d3a07c16d72d96b63e \ + --hash=sha256:6702bd9e7245eb4e8220a3e222afcef7f87412154732271ee7deee4433b72b4b # via ibis-framework attrs==25.4.0 \ --hash=sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11 \ @@ -170,9 +170,9 @@ attrs==25.4.0 \ # aiohttp # jsonschema # referencing -bigtree==1.0.4 \ - --hash=sha256:e4af0c5bc0d2cd72e18442965e4509f642b16a0de65db6d0ec116e30f959010c \ - --hash=sha256:f58a3238bb9b1142d893c9de4921bfd18d435427c75e0c168dd580eabf6dc7fd +bigtree==1.1.0 \ + --hash=sha256:3f1ff63d2d66d31bf19855ddda8884637edf8dd1fc1aa118cf3a750580ece48b \ + --hash=sha256:f54f99d842732c91cce39c596a3755a2e8325b1cab5bc6876f5b15bd3942081c # via feast (setup.py) boto3==1.38.27 \ --hash=sha256:94bd7fdd92d5701b362d4df100d21e28f8307a67ff56b6a8b0398119cf22f859 \ @@ -188,13 +188,9 @@ botocore==1.38.46 \ # boto3 # s3transfer # snowflake-connector-python -cachetools==6.2.4 \ - --hash=sha256:69a7a52634fed8b8bf6e24a050fb60bff1c9bd8f6d24572b99c32d4e71e62a51 \ - --hash=sha256:82c5c05585e70b6ba2d3ae09ea60b79548872185d2f24ae1f2709d37299fd607 - # via google-auth -certifi==2025.11.12 \ - --hash=sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b \ - --hash=sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316 +certifi==2026.1.4 \ + --hash=sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c \ + --hash=sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120 # via # httpcore # httpx @@ -479,59 +475,48 @@ dill==0.3.9 \ --hash=sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a \ --hash=sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c # via feast (setup.py) -duckdb==1.1.3 \ - --hash=sha256:00cca22df96aa3473fe4584f84888e2cf1c516e8c2dd837210daec44eadba586 \ - --hash=sha256:08935700e49c187fe0e9b2b86b5aad8a2ccd661069053e38bfaed3b9ff795efd \ - --hash=sha256:0897f83c09356206ce462f62157ce064961a5348e31ccb2a557a7531d814e70e \ - --hash=sha256:09c68522c30fc38fc972b8a75e9201616b96ae6da3444585f14cf0d116008c95 \ - --hash=sha256:0a55169d2d2e2e88077d91d4875104b58de45eff6a17a59c7dc41562c73df4be \ - --hash=sha256:0ba6baa0af33ded836b388b09433a69b8bec00263247f6bf0a05c65c897108d3 \ - --hash=sha256:183ac743f21c6a4d6adfd02b69013d5fd78e5e2cd2b4db023bc8a95457d4bc5d \ - --hash=sha256:1aa3abec8e8995a03ff1a904b0e66282d19919f562dd0a1de02f23169eeec461 \ - --hash=sha256:1c0226dc43e2ee4cc3a5a4672fddb2d76fd2cf2694443f395c02dd1bea0b7fce \ - --hash=sha256:1d9ab6143e73bcf17d62566e368c23f28aa544feddfd2d8eb50ef21034286f24 \ - --hash=sha256:2141c6b28162199999075d6031b5d63efeb97c1e68fb3d797279d31c65676269 \ - --hash=sha256:252d9b17d354beb9057098d4e5d5698e091a4f4a0d38157daeea5fc0ec161670 \ - --hash=sha256:25fb02629418c0d4d94a2bc1776edaa33f6f6ccaa00bd84eb96ecb97ae4b50e9 \ - --hash=sha256:2f073d15d11a328f2e6d5964a704517e818e930800b7f3fa83adea47f23720d3 \ - --hash=sha256:35c420f58abc79a68a286a20fd6265636175fadeca1ce964fc8ef159f3acc289 \ - --hash=sha256:4ebf5f60ddbd65c13e77cddb85fe4af671d31b851f125a4d002a313696af43f1 \ - --hash=sha256:4f0e2e5a6f5a53b79aee20856c027046fba1d73ada6178ed8467f53c3877d5e0 \ - --hash=sha256:51c6d79e05b4a0933672b1cacd6338f882158f45ef9903aef350c4427d9fc898 \ - --hash=sha256:51e7dbd968b393343b226ab3f3a7b5a68dee6d3fe59be9d802383bf916775cb8 \ - --hash=sha256:5ace6e4b1873afdd38bd6cc8fcf90310fb2d454f29c39a61d0c0cf1a24ad6c8d \ - --hash=sha256:5d57776539211e79b11e94f2f6d63de77885f23f14982e0fac066f2885fcf3ff \ - --hash=sha256:6411e21a2128d478efbd023f2bdff12464d146f92bc3e9c49247240448ace5a6 \ - --hash=sha256:647f17bd126170d96a38a9a6f25fca47ebb0261e5e44881e3782989033c94686 \ - --hash=sha256:68c3a46ab08836fe041d15dcbf838f74a990d551db47cb24ab1c4576fc19351c \ - --hash=sha256:77f26884c7b807c7edd07f95cf0b00e6d47f0de4a534ac1706a58f8bc70d0d31 \ - --hash=sha256:7c71169fa804c0b65e49afe423ddc2dc83e198640e3b041028da8110f7cd16f7 \ - --hash=sha256:80158f4c7c7ada46245837d5b6869a336bbaa28436fbb0537663fa324a2750cd \ - --hash=sha256:872d38b65b66e3219d2400c732585c5b4d11b13d7a36cd97908d7981526e9898 \ - --hash=sha256:8ee97ec337794c162c0638dda3b4a30a483d0587deda22d45e1909036ff0b739 \ - --hash=sha256:911d58c22645bfca4a5a049ff53a0afd1537bc18fedb13bc440b2e5af3c46148 \ - --hash=sha256:9c619e4849837c8c83666f2cd5c6c031300cd2601e9564b47aa5de458ff6e69d \ - --hash=sha256:9d0767ada9f06faa5afcf63eb7ba1befaccfbcfdac5ff86f0168c673dd1f47aa \ - --hash=sha256:9e3f5cd604e7c39527e6060f430769b72234345baaa0987f9500988b2814f5e4 \ - --hash=sha256:a1f83c7217c188b7ab42e6a0963f42070d9aed114f6200e3c923c8899c090f16 \ - --hash=sha256:a1fa0c502f257fa9caca60b8b1478ec0f3295f34bb2efdc10776fc731b8a6c5f \ - --hash=sha256:a30dd599b8090ea6eafdfb5a9f1b872d78bac318b6914ada2d35c7974d643640 \ - --hash=sha256:a433ae9e72c5f397c44abdaa3c781d94f94f4065bcbf99ecd39433058c64cb38 \ - --hash=sha256:a4748635875fc3c19a7320a6ae7410f9295557450c0ebab6d6712de12640929a \ - --hash=sha256:b74e121ab65dbec5290f33ca92301e3a4e81797966c8d9feef6efdf05fc6dafd \ - --hash=sha256:c443d3d502335e69fc1e35295fcfd1108f72cb984af54c536adfd7875e79cee5 \ - --hash=sha256:c5336939d83837af52731e02b6a78a446794078590aa71fd400eb17f083dda3e \ - --hash=sha256:cddc6c1a3b91dcc5f32493231b3ba98f51e6d3a44fe02839556db2b928087378 \ - --hash=sha256:d08308e0a46c748d9c30f1d67ee1143e9c5ea3fbcccc27a47e115b19e7e78aa9 \ - --hash=sha256:d5724fd8a49e24d730be34846b814b98ba7c304ca904fbdc98b47fa95c0b0cee \ - --hash=sha256:e4ef7ba97a65bd39d66f2a7080e6fb60e7c3e41d4c1e19245f90f53b98e3ac32 \ - --hash=sha256:e59087dbbb63705f2483544e01cccf07d5b35afa58be8931b224f3221361d537 \ - --hash=sha256:e86006958e84c5c02f08f9b96f4bc26990514eab329b1b4f71049b3727ce5989 \ - --hash=sha256:ecb1dc9062c1cc4d2d88a5e5cd8cc72af7818ab5a3c0f796ef0ffd60cfd3efb4 \ - --hash=sha256:eeacb598120040e9591f5a4edecad7080853aa8ac27e62d280f151f8c862afa3 \ - --hash=sha256:f549af9f7416573ee48db1cf8c9d27aeed245cb015f4b4f975289418c6cf7320 \ - --hash=sha256:f58db1b65593ff796c8ea6e63e2e144c944dd3d51c8d8e40dffa7f41693d35d3 \ - --hash=sha256:f9b47036945e1db32d70e414a10b1593aec641bd4c5e2056873d971cc21e978b +duckdb==1.4.3 \ + --hash=sha256:006aca6a6d6736c441b02ff5c7600b099bb8b7f4de094b8b062137efddce42df \ + --hash=sha256:130c6760f6c573f9c9fe9aba56adba0fab48811a4871b7b8fd667318b4a3e8da \ + --hash=sha256:16952ac05bd7e7b39946695452bf450db1ebbe387e1e7178e10f593f2ea7b9a8 \ + --hash=sha256:1b35491db98ccd11d151165497c084a9d29d3dc42fc80abea2715a6c861ca43d \ + --hash=sha256:1b9b445970fd18274d5ac07a0b24c032e228f967332fb5ebab3d7db27738c0e4 \ + --hash=sha256:1bb8bd5a3dd205983726185b280a211eacc9f5bc0c4d4505bec8c87ac33a8ccb \ + --hash=sha256:1e5457dda91b67258aae30fb1a0df84183a9f6cd27abac1d5536c0d876c6dfa1 \ + --hash=sha256:20c88effaa557a11267706b01419c542fe42f893dee66e5a6daa5974ea2d4a46 \ + --hash=sha256:23a3a077821bed1768a84ac9cbf6b6487ead33e28e62cb118bda5fb8f9e53dea \ + --hash=sha256:23b12854032c1a58d0452e2b212afa908d4ce64171862f3792ba9a596ba7c765 \ + --hash=sha256:274d4a31aba63115f23e7e7b401e3e3a937f3626dc9dea820a9c7d3073f450d2 \ + --hash=sha256:2b195270ff1a661f22cbd547a215baff265b7d4469a76a215c8992b5994107c3 \ + --hash=sha256:2b30245375ea94ab528c87c61fc3ab3e36331180b16af92ee3a37b810a745d24 \ + --hash=sha256:316711a9e852bcfe1ed6241a5f654983f67e909e290495f3562cccdf43be8180 \ + --hash=sha256:366bf607088053dce845c9d24c202c04d78022436cc5d8e4c9f0492de04afbe7 \ + --hash=sha256:4f868a7e6d9b37274a1aa34849ea92aa964e9bd59a5237d6c17e8540533a1e4f \ + --hash=sha256:4fef6a053a1c485292000bf0c338bba60f89d334f6a06fc76ba4085a5a322b76 \ + --hash=sha256:5634e40e1e2d972e4f75bced1fbdd9e9e90faa26445c1052b27de97ee546944a \ + --hash=sha256:6302452e57aef29aae3977063810ed7b2927967b97912947b9cca45c1c21955f \ + --hash=sha256:6db124f53a3edcb32b0a896ad3519e37477f7e67bf4811cb41ab60c1ef74e4c8 \ + --hash=sha256:702dabbc22b27dc5b73e7599c60deef3d8c59968527c36b391773efddd8f4cf1 \ + --hash=sha256:813f189039b46877b5517f1909c7b94a8fe01b4bde2640ab217537ea0fe9b59b \ + --hash=sha256:854b79375fa618f6ffa8d84fb45cbc9db887f6c4834076ea10d20bc106f1fd90 \ + --hash=sha256:8afba22c370f06b7314aa46bfed052509269e482bcfb3f7b1ea0fa17ae49ce42 \ + --hash=sha256:8d080e8d1bf2d226423ec781f539c8f6b6ef3fd42a9a58a7160de0a00877a21f \ + --hash=sha256:8d53b217698a76c4957e2c807dd9295d409146f9d3d7932f372883201ba9d25a \ + --hash=sha256:90f241f25cffe7241bf9f376754a5845c74775e00e1c5731119dc88cd71e0cb2 \ + --hash=sha256:9dc049ba7e906cb49ca2b6d4fbf7b6615ec3883193e8abb93f0bef2652e42dda \ + --hash=sha256:9e625b2b4d52bafa1fd0ebdb0990c3961dac8bb00e30d327185de95b68202131 \ + --hash=sha256:a2813f4635f4d6681cc3304020374c46aca82758c6740d7edbc237fe3aae2744 \ + --hash=sha256:a7c864df027da1ee95f0c32def67e15d02cd4a906c9c1cbae82c09c5112f526b \ + --hash=sha256:a8b0a8764e1b5dd043d168c8f749314f7a1252b5a260fa415adaa26fa3b958fd \ + --hash=sha256:aa26a7406205bc1426cee28bdfdf084f669a5686977dafa4c3ec65873989593c \ + --hash=sha256:caa2164c91f7e91befb1ffb081b3cd97a137117533aef7abe1538b03ad72e3a9 \ + --hash=sha256:d0ff08388ef8b1d1a4c95c321d6c5fa11201b241036b1ee740f9d841df3d6ba2 \ + --hash=sha256:de984cd24a6cbefdd6d4a349f7b9a46e583ca3e58ce10d8def0b20a6e5fcbe78 \ + --hash=sha256:deab351ac43b6282a3270e3d40e3d57b3b50f472d9fd8c30975d88a31be41231 \ + --hash=sha256:ef7ef15347ce97201b1b5182a5697682679b04c3374d5a01ac10ba31cf791b95 \ + --hash=sha256:efa7f1191c59e34b688fcd4e588c1b903a4e4e1f4804945902cf0b20e08a9001 \ + --hash=sha256:fbc63ffdd03835f660155b37a1b6db2005bcd46e5ad398b8cac141eb305d2a3d \ + --hash=sha256:fea43e03604c713e25a25211ada87d30cd2a044d8f27afab5deba26ac49e5268 # via ibis-framework durationpy==0.10 \ --hash=sha256:1fa6893409a6e739c9c72334fc65cca1f355dbdd93405d30f726deb5bde42fba \ @@ -547,9 +532,9 @@ fastapi-mcp==0.4.0 \ --hash=sha256:d4a3fe7966af24d44e4b412720561c95eb12bed999a4443a88221834b3b15aec \ --hash=sha256:d4ca9410996f4c7b8ea0d7b20fdf79878dc359ebf89cbf3b222e0b675a55097d # via feast (setup.py) -filelock==3.20.1 \ - --hash=sha256:15d9e9a67306188a44baa72f569d2bfd803076269365fdea0934385da4dc361a \ - --hash=sha256:b8360948b351b80f420878d8516519a2204b07aefcdcfd24912a5d33127f188c +filelock==3.20.3 \ + --hash=sha256:18c57ee915c7ec61cff0ecf7f0f869936c7c30191bb0cf406f1341778d0834e1 \ + --hash=sha256:4b0dda527ee31078689fc205ec4f1c1bf7d56cf88b6dc9426c4f230e46c2dce1 # via snowflake-connector-python frozenlist==1.8.0 \ --hash=sha256:0325024fe97f94c41c08872db482cf8ac4800d80e79222c6b0b7b162d5b13686 \ @@ -691,9 +676,9 @@ fsspec==2024.9.0 \ # via # feast (setup.py) # dask -google-api-core[grpc]==2.28.1 \ - --hash=sha256:2b405df02d68e68ce0fbc138559e6036559e685159d148ae5861013dc201baf8 \ - --hash=sha256:4021b0f8ceb77a6fb4de6fde4502cecab45062e66ff4f2895169e0b35bc9466c +google-api-core[grpc]==2.29.0 \ + --hash=sha256:84181be0f8e6b04006df75ddfe728f24489f0af57c96a529ff7cf45bc28797f7 \ + --hash=sha256:d30bc60980daa36e314b5d5a3e5958b0200cb44ca8fa1be2b614e932b75a3ea9 # via # feast (setup.py) # google-cloud-bigquery @@ -703,9 +688,9 @@ google-api-core[grpc]==2.28.1 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.45.0 \ - --hash=sha256:82344e86dc00410ef5382d99be677c6043d72e502b625aa4f4afa0bdacca0f36 \ - --hash=sha256:90d3f41b6b72ea72dd9811e765699ee491ab24139f34ebf1ca2b9cc0c38708f3 +google-auth==2.47.0 \ + --hash=sha256:833229070a9dfee1a353ae9877dcd2dec069a8281a4e72e72f77d4a70ff945da \ + --hash=sha256:c516d68336bfde7cf0da26aab674a36fedcf04b37ac4edd59c597178760c3498 # via # google-api-core # google-auth-oauthlib @@ -724,9 +709,9 @@ google-auth-oauthlib==1.2.2 \ # via # pandas-gbq # pydata-google-auth -google-cloud-bigquery[pandas]==3.39.0 \ - --hash=sha256:cb375e1d63dea9bd5bf735e66024338f294159d43afdf63e1d023f5fcbbf55ea \ - --hash=sha256:dc7a64921465859105461b43c42562e38e797d7a73feb72b3cfc4865b7b1c5ef +google-cloud-bigquery[pandas]==3.40.0 \ + --hash=sha256:0469bcf9e3dad3cab65b67cce98180c8c0aacf3253d47f0f8e976f299b49b5ab \ + --hash=sha256:b3ccb11caf0029f15b29569518f667553fe08f6f1459b959020c83fbbd8f2e68 # via # feast (setup.py) # pandas-gbq @@ -1056,9 +1041,9 @@ httpx-sse==0.4.3 \ --hash=sha256:0ac1c9fe3c0afad2e0ebb25a934a59f4c7823b60792691f779fad2c5568830fc \ --hash=sha256:9b1ed0127459a66014aec3c56bebd93da3c1bc8bb6618c8082039a44889a755d # via mcp -ibis-framework[duckdb]==9.5.0 \ - --hash=sha256:145fe30d94f111cff332580c275ce77725c5ff7086eede93af0b371649d009c0 \ - --hash=sha256:1c8a29277e63ee0dfc289bc8f550164b5e3bdaec1b76b62436c37d331bb4ef84 +ibis-framework[duckdb]==11.0.0 \ + --hash=sha256:0249185eaabb800e224f448cc06ce8ba168df00b269e132d62629f462eca8842 \ + --hash=sha256:92ff82a96f4eac7f86fa9b6a315e04b5a8f9ed3d186539d88f48e628363f2e72 # via feast (setup.py) idna==3.11 \ --hash=sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea \ @@ -1080,9 +1065,9 @@ jmespath==1.0.1 \ # aiobotocore # boto3 # botocore -jsonschema==4.25.1 \ - --hash=sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63 \ - --hash=sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85 +jsonschema==4.26.0 \ + --hash=sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326 \ + --hash=sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce # via # feast (setup.py) # mcp @@ -1094,83 +1079,83 @@ kubernetes==33.1.0 \ --hash=sha256:544de42b24b64287f7e0aa9513c93cb503f7f40eea39b20f66810011a86eabc5 \ --hash=sha256:f64d829843a54c251061a8e7a14523b521f2dc5c896cf6d65ccf348648a88993 # via feast (setup.py) -librt==0.7.5 \ - --hash=sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee \ - --hash=sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1 \ - --hash=sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4 \ - --hash=sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899 \ - --hash=sha256:0e2bf8f91093fac43e3eaebacf777f12fd539dce9ec5af3efc6d8424e96ccd49 \ - --hash=sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d \ - --hash=sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760 \ - --hash=sha256:191cbd42660446d67cf7a95ac7bfa60f49b8b3b0417c64f216284a1d86fc9335 \ - --hash=sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8 \ - --hash=sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2 \ - --hash=sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec \ - --hash=sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b \ - --hash=sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0 \ - --hash=sha256:39183abee670bc37b85f11e86c44a9cad1ed6efa48b580083e89ecee13dd9717 \ - --hash=sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325 \ - --hash=sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45 \ - --hash=sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d \ - --hash=sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233 \ - --hash=sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d \ - --hash=sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544 \ - --hash=sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802 \ - --hash=sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2 \ - --hash=sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d \ - --hash=sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f \ - --hash=sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169 \ - --hash=sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe \ - --hash=sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982 \ - --hash=sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2 \ - --hash=sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa \ - --hash=sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4 \ - --hash=sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4 \ - --hash=sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57 \ - --hash=sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26 \ - --hash=sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361 \ - --hash=sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad \ - --hash=sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e \ - --hash=sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf \ - --hash=sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f \ - --hash=sha256:8dcae24de1bc9da93aa689cb6313c70e776d7cea2fcf26b9b6160fedfe6bd9af \ - --hash=sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2 \ - --hash=sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89 \ - --hash=sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904 \ - --hash=sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6 \ - --hash=sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276 \ - --hash=sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e \ - --hash=sha256:a9eacbf983319b26b5f340a2e0cd47ac1ee4725a7f3a72fd0f15063c934b69d6 \ - --hash=sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409 \ - --hash=sha256:af69d9e159575e877c7546d1ee817b4ae089aa221dd1117e20c24ad8dc8659c7 \ - --hash=sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a \ - --hash=sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4 \ - --hash=sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775 \ - --hash=sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203 \ - --hash=sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419 \ - --hash=sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5 \ - --hash=sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023 \ - --hash=sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b \ - --hash=sha256:cdb001a1a0e4f41e613bca2c0fc147fc8a7396f53fc94201cbfd8ec7cd69ca4b \ - --hash=sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d \ - --hash=sha256:d2cc7d187e8c6e9b7bdbefa9697ce897a704ea7a7ce844f2b4e0e2aa07ae51d3 \ - --hash=sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e \ - --hash=sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a \ - --hash=sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b \ - --hash=sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db \ - --hash=sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd \ - --hash=sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa \ - --hash=sha256:df2e210400b28e50994477ebf82f055698c79797b6ee47a1669d383ca33263e1 \ - --hash=sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805 \ - --hash=sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a \ - --hash=sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25 \ - --hash=sha256:ea1b60b86595a5dc1f57b44a801a1c4d8209c0a69518391d349973a4491408e6 \ - --hash=sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b \ - --hash=sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5 \ - --hash=sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416 \ - --hash=sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc \ - --hash=sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7 \ - --hash=sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96 +librt==0.7.7 \ + --hash=sha256:067be973d90d9e319e6eb4ee2a9b9307f0ecd648b8a9002fa237289a4a07a9e7 \ + --hash=sha256:0996c83b1cb43c00e8c87835a284f9057bc647abd42b5871e5f941d30010c832 \ + --hash=sha256:0ecce0544d3db91a40f8b57ae26928c02130a997b540f908cefd4d279d6c5848 \ + --hash=sha256:10c8fb9966f84737115513fecbaf257f9553d067a7dd45a69c2c7e5339e6a8dc \ + --hash=sha256:142c2cd91794b79fd0ce113bd658993b7ede0fe93057668c2f98a45ca00b7e91 \ + --hash=sha256:14ef0f4ac3728ffd85bfc58e2f2f48fb4ef4fa871876f13a73a7381d10a9f77c \ + --hash=sha256:1908c3e5a5ef86b23391448b47759298f87f997c3bd153a770828f58c2bb4630 \ + --hash=sha256:1bcd79be209313b270b0e1a51c67ae1af28adad0e0c7e84c3ad4b5cb57aaa75b \ + --hash=sha256:23d2299ed007812cccc1ecef018db7d922733382561230de1f3954db28433977 \ + --hash=sha256:23daa1ab0512bafdd677eb1bfc9611d8ffbe2e328895671e64cb34166bc1b8c8 \ + --hash=sha256:2567cb48dc03e5b246927ab35cbb343376e24501260a9b5e30b8e255dca0d1d2 \ + --hash=sha256:264720fc288c86039c091a4ad63419a5d7cabbf1c1c9933336a957ed2483e570 \ + --hash=sha256:2987cf827011907d3dfd109f1be0d61e173d68b1270107bb0e89f2fca7f2ed6b \ + --hash=sha256:2a85a1fc4ed11ea0eb0a632459ce004a2d14afc085a50ae3463cd3dfe1ce43fc \ + --hash=sha256:3d1fe2e8df3268dd6734dba33ededae72ad5c3a859b9577bc00b715759c5aaab \ + --hash=sha256:4353ee891a1834567e0302d4bd5e60f531912179578c36f3d0430f8c5e16b456 \ + --hash=sha256:44d63ce643f34a903f09ff7ca355aae019a3730c7afd6a3c037d569beeb5d151 \ + --hash=sha256:467dbd7443bda08338fc8ad701ed38cef48194017554f4c798b0a237904b3f99 \ + --hash=sha256:4862cb2c702b1f905c0503b72d9d4daf65a7fdf5a9e84560e563471e57a56949 \ + --hash=sha256:4bf3cc46d553693382d2abf5f5bd493d71bb0f50a7c0beab18aa13a5545c8900 \ + --hash=sha256:4dcee2f921a8632636d1c37f1bbdb8841d15666d119aa61e5399c5268e7ce02e \ + --hash=sha256:50d1d1ee813d2d1a3baf2873634ba506b263032418d16287c92ec1cc9c1a00cb \ + --hash=sha256:5335890fea9f9e6c4fdf8683061b9ccdcbe47c6dc03ab8e9b68c10acf78be78d \ + --hash=sha256:558a9e5a6f3cc1e20b3168fb1dc802d0d8fa40731f6e9932dcc52bbcfbd37111 \ + --hash=sha256:5e419e0db70991b6ba037b70c1d5bbe92b20ddf82f31ad01d77a347ed9781398 \ + --hash=sha256:6066c638cdf85ff92fc6f932d2d73c93a0e03492cdfa8778e6d58c489a3d7259 \ + --hash=sha256:6ae8aec43117a645a31e5f60e9e3a0797492e747823b9bda6972d521b436b4e8 \ + --hash=sha256:6b6f8ea465524aa4c7420c7cc4ca7d46fe00981de8debc67b1cc2e9957bb5b9d \ + --hash=sha256:7b16ccaeff0ed4355dfb76fe1ea7a5d6d03b5ad27f295f77ee0557bc20a72495 \ + --hash=sha256:7d13cc340b3b82134f8038a2bfe7137093693dcad8ba5773da18f95ad6b77a8a \ + --hash=sha256:7ef28f2e7a016b29792fe0a2dd04dec75725b32a1264e390c366103f834a9c3a \ + --hash=sha256:8185c8497d45164e256376f9da5aed2bb26ff636c798c9dabe313b90e9f25b28 \ + --hash=sha256:81d957b069fed1890953c3b9c3895c7689960f233eea9a1d9607f71ce7f00b2c \ + --hash=sha256:86f86b3b785487c7760247bcdac0b11aa8bf13245a13ed05206286135877564b \ + --hash=sha256:8e92c8de62b40bfce91d5e12c6e8b15434da268979b1af1a6589463549d491e6 \ + --hash=sha256:8f2f8dcf5ab9f80fb970c6fd780b398efb2f50c1962485eb8d3ab07788595a48 \ + --hash=sha256:8f4a0b0a3c86ba9193a8e23bb18f100d647bf192390ae195d84dfa0a10fb6244 \ + --hash=sha256:8f7a74cf3a80f0c3b0ec75b0c650b2f0a894a2cec57ef75f6f72c1e82cdac61d \ + --hash=sha256:955c62571de0b181d9e9e0a0303c8bc90d47670a5eff54cf71bf5da61d1899cf \ + --hash=sha256:983de36b5a83fe9222f4f7dcd071f9b1ac6f3f17c0af0238dadfb8229588f890 \ + --hash=sha256:9b15e5d17812d4d629ff576699954f74e2cc24a02a4fc401882dd94f81daba45 \ + --hash=sha256:9b4346b1225be26def3ccc6c965751c74868f0578cbcba293c8ae9168483d811 \ + --hash=sha256:9b5fb1ecb2c35362eab2dbd354fd1efa5a8440d3e73a68be11921042a0edc0ff \ + --hash=sha256:a10b8eebdaca6e9fdbaf88b5aefc0e324b763a5f40b1266532590d5afb268a4c \ + --hash=sha256:a1f5cc41a570269d1be7a676655875e3a53de4992a9fa38efb7983e97cf73d7c \ + --hash=sha256:a3bfe73a32bd0bdb9a87d586b05a23c0a1729205d79df66dee65bb2e40d671ba \ + --hash=sha256:a487b71fbf8a9edb72a8c7a456dda0184642d99cd007bc819c0b7ab93676a8ee \ + --hash=sha256:a609849aca463074c17de9cda173c276eb8fee9e441053529e7b9e249dc8b8ee \ + --hash=sha256:a76f1d679beccccdf8c1958e732a1dfcd6e749f8821ee59d7bec009ac308c029 \ + --hash=sha256:a7ea4e1fbd253e5c68ea0fe63d08577f9d288a73f17d82f652ebc61fa48d878d \ + --hash=sha256:ab2a2a9cd7d044e1a11ca64a86ad3361d318176924bbe5152fbc69f99be20b8c \ + --hash=sha256:ad3fc2d859a709baf9dd9607bb72f599b1cfb8a39eafd41307d0c3c4766763cb \ + --hash=sha256:add4e0a000858fe9bb39ed55f31085506a5c38363e6eb4a1e5943a10c2bfc3d1 \ + --hash=sha256:aea05f701ccd2a76b34f0daf47ca5068176ff553510b614770c90d76ac88df06 \ + --hash=sha256:b8bb331aad734b059c4b450cd0a225652f16889e286b2345af5e2c3c625c3d85 \ + --hash=sha256:bdb9f3d865b2dafe7f9ad7f30ef563c80d0ddd2fdc8cc9b8e4f242f475e34d75 \ + --hash=sha256:c084841b879c4d9b9fa34e5d5263994f21aea7fd9c6add29194dbb41a6210536 \ + --hash=sha256:c48c7e150c095d5e3cea7452347ba26094be905d6099d24f9319a8b475fcd3e0 \ + --hash=sha256:c7e5070cf3ec92d98f57574da0224f8c73faf1ddd6d8afa0b8c9f6e86997bc74 \ + --hash=sha256:c87654e29a35938baead1c4559858f346f4a2a7588574a14d784f300ffba0efd \ + --hash=sha256:c8ffe3431d98cc043a14e88b21288b5ec7ee12cb01260e94385887f285ef9389 \ + --hash=sha256:c9faaebb1c6212c20afd8043cd6ed9de0a47d77f91a6b5b48f4e46ed470703fe \ + --hash=sha256:d1454899909d63cc9199a89fcc4f81bdd9004aef577d4ffc022e600c412d57f3 \ + --hash=sha256:d6b7d93657332c817b8d674ef6bf1ab7796b4f7ce05e420fd45bd258a72ac804 \ + --hash=sha256:dbc4900e95a98fc0729523be9d93a8fedebb026f32ed9ffc08acd82e3e181503 \ + --hash=sha256:e40d20ae1722d6b8ea6acf4597e789604649dcd9c295eb7361a28225bc2e9e12 \ + --hash=sha256:e4836c5645f40fbdc275e5670819bde5ab5f2e882290d304e3c6ddab1576a6d0 \ + --hash=sha256:e4ab69fa37f8090f2d971a5d2bc606c7401170dbdae083c393d6cbf439cb45b8 \ + --hash=sha256:ef7699b7a5a244b1119f85c5bbc13f152cd38240cbb2baa19b769433bae98e50 \ + --hash=sha256:f0c8fe5aeadd8a0e5b0598f8a6ee3533135ca50fd3f20f130f9d72baf5c6ac58 \ + --hash=sha256:f2cb63c49bc96847c3bb8dca350970e4dcd19936f391cfdfd057dcb37c4fa97e \ + --hash=sha256:f4d4efb218264ecf0f8516196c9e2d1a0679d9fb3bb15df1155a35220062eba8 \ + --hash=sha256:f683dcd49e2494a7535e30f779aa1ad6e3732a019d80abe1309ea91ccd3230e3 \ + --hash=sha256:f83c971eb9d2358b6a18da51dc0ae00556ac7c73104dde16e9e14c15aaf685ca \ + --hash=sha256:f8df32a99cc46eb0ee90afd9ada113ae2cafe7e8d673686cf03ec53e49635439 \ + --hash=sha256:ff1fb2dfef035549565a4124998fadcb7a3d4957131ddf004a56edeb029626b3 # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ @@ -1605,79 +1590,79 @@ mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 # via mypy -numpy==2.4.0 \ - --hash=sha256:009bd0ea12d3c784b6639a8457537016ce5172109e585338e11334f6a7bb88ee \ - --hash=sha256:02a2038eb27f9443a8b266a66911e926566b5a6ffd1a689b588f7f35b81e7dc3 \ - --hash=sha256:0804a8e4ab070d1d35496e65ffd3cf8114c136a2b81f61dfab0de4b218aacfd5 \ - --hash=sha256:0feafc9e03128074689183031181fac0897ff169692d8492066e949041096548 \ - --hash=sha256:1889b3a3f47a7b5bee16bc25a2145bd7cb91897f815ce3499db64c7458b6d91d \ - --hash=sha256:1d8f9fde5f6dc1b6fc34df8162f3b3079365468703fee7f31d4e0cc8c63baed9 \ - --hash=sha256:1ee32359fb7543b7b7bd0b2f46294db27e29e7bbdf70541e81b190836cd83ded \ - --hash=sha256:20c115517513831860c573996e395707aa9fb691eb179200125c250e895fcd93 \ - --hash=sha256:21555da4ec4a0c942520ead42c3b0dc9477441e085c42b0fbdd6a084869a6f6b \ - --hash=sha256:23a3e9d1a6f360267e8fbb38ba5db355a6a7e9be71d7fce7ab3125e88bb646c8 \ - --hash=sha256:2a8b6bb8369abefb8bd1801b054ad50e02b3275c8614dc6e5b0373c305291037 \ - --hash=sha256:2e284ca13d5a8367e43734148622caf0b261b275673823593e3e3634a6490f83 \ - --hash=sha256:2f585f52b2baf07ff3356158d9268ea095e221371f1074fadea2f42544d58b4d \ - --hash=sha256:316b2f2584682318539f0bcaca5a496ce9ca78c88066579ebd11fd06f8e4741e \ - --hash=sha256:32ed06d0fe9cae27d8fb5f400c63ccee72370599c75e683a6358dd3a4fb50aaf \ - --hash=sha256:355354388cba60f2132df297e2d53053d4063f79077b67b481d21276d61fc4df \ - --hash=sha256:35ddc8f4914466e6fc954c76527aa91aa763682a4f6d73249ef20b418fe6effb \ - --hash=sha256:36667db4d6c1cea79c8930ab72fadfb4060feb4bfe724141cd4bd064d2e5f8ce \ - --hash=sha256:36cbfb13c152b1c7c184ddac43765db8ad672567e7bafff2cc755a09917ed2e6 \ - --hash=sha256:39699233bc72dd482da1415dcb06076e32f60eddc796a796c5fb6c5efce94667 \ - --hash=sha256:39b19251dec4de8ff8496cd0806cbe27bf0684f765abb1f4809554de93785f2d \ - --hash=sha256:3d857f55e7fdf7c38ab96c4558c95b97d1c685be6b05c249f5fdafcbd6f9899e \ - --hash=sha256:3de19cfecd1465d0dcf8a5b5ea8b3155b42ed0b639dba4b71e323d74f2a3be5e \ - --hash=sha256:3f3096405acc48887458bbf9f6814d43785ac7ba2a57ea6442b581dedbc60ce6 \ - --hash=sha256:40483b2f2d3ba7aad426443767ff5632ec3156ef09742b96913787d13c336471 \ - --hash=sha256:413aa561266a4be2d06cd2b9665e89d9f54c543f418773076a76adcf2af08bc7 \ - --hash=sha256:44aba2f0cafd287871a495fb3163408b0bd25bbce135c6f621534a07f4f7875c \ - --hash=sha256:49ff32b09f5aa0cd30a20c2b39db3e669c845589f2b7fc910365210887e39344 \ - --hash=sha256:4d1cfce39e511069b11e67cd0bd78ceff31443b7c9e5c04db73c7a19f572967c \ - --hash=sha256:57c540ed8fb1f05cb997c6761cd56db72395b0d6985e90571ff660452ade4f98 \ - --hash=sha256:5f48cb3e88fbc294dc90e215d86fbaf1c852c63dbdb6c3a3e63f45c4b57f7344 \ - --hash=sha256:5fe44e277225fd3dff6882d86d3d447205d43532c3627313d17e754fb3905a0e \ - --hash=sha256:60e8c196cd82cbbd4f130b5290007e13e6de3eca79f0d4d38014769d96a7c475 \ - --hash=sha256:65167da969cd1ec3a1df31cb221ca3a19a8aaa25370ecb17d428415e93c1935e \ - --hash=sha256:680060061adb2d74ce352628cb798cfdec399068aa7f07ba9fb818b2b3305f98 \ - --hash=sha256:6bbaebf0d11567fa8926215ae731e1d58e6ec28a8a25235b8a47405d301332db \ - --hash=sha256:6c05483c3136ac4c91b4e81903cb53a8707d316f488124d0398499a4f8e8ef51 \ - --hash=sha256:6dc8b7e2f4eb184b37655195f421836cfae6f58197b67e3ffc501f1333d993fa \ - --hash=sha256:6e504f7b16118198f138ef31ba24d985b124c2c469fe8467007cf30fd992f934 \ - --hash=sha256:74623f2ab5cc3f7c886add4f735d1031a1d2be4a4ae63c0546cfd74e7a31ddf6 \ - --hash=sha256:77f0d13fa87036d7553bf81f0e1fe3ce68d14c9976c9851744e4d3e91127e95f \ - --hash=sha256:85eef4cb5625c47ee6425c58a3502555e10f45ee973da878ac8248ad58c136f3 \ - --hash=sha256:882567b7ae57c1b1a0250208cc21a7976d8cbcc49d5a322e607e6f09c9e0bd53 \ - --hash=sha256:8b986403023c8f3bf8f487c2e6186afda156174d31c175f747d8934dfddf3479 \ - --hash=sha256:8cfa5f29a695cb7438965e6c3e8d06e0416060cf0d709c1b1c1653a939bf5c2a \ - --hash=sha256:8eafe7c36c8430b7794edeab3087dec7bf31d634d92f2af9949434b9d1964cba \ - --hash=sha256:9198f447e1dc5647d07c9a6bbe2063cc0132728cc7175b39dbc796da5b54920d \ - --hash=sha256:92190db305a6f48734d3982f2c60fa30d6b5ee9bff10f2887b930d7b40119f4c \ - --hash=sha256:927ccf5cd17c48f801f4ed43a7e5673a2724bd2171460be3e3894e6e332ef83a \ - --hash=sha256:98e81648e0b36e325ab67e46b5400a7a6d4a22b8a7c8e8bbfe20e7db7906bf95 \ - --hash=sha256:9a818668b674047fd88c4cddada7ab8f1c298812783e8328e956b78dc4807f9f \ - --hash=sha256:a152d86a3ae00ba5f47b3acf3b827509fd0b6cb7d3259665e63dafbad22a75ea \ - --hash=sha256:a2718c1de8504121714234b6f8241d0019450353276c88b9453c9c3d92e101db \ - --hash=sha256:a39fb973a726e63223287adc6dafe444ce75af952d711e400f3bf2b36ef55a7b \ - --hash=sha256:a899699294f28f7be8992853c0c60741f16ff199205e2e6cdca155762cbaa59d \ - --hash=sha256:a8fdfed3deaf1928fb7667d96e0567cdf58c2b370ea2ee7e586aa383ec2cb346 \ - --hash=sha256:aabb081ca0ec5d39591fc33018cd4b3f96e1a2dd6756282029986d00a785fba4 \ - --hash=sha256:b1f5b45829ac1848893f0ddf5cb326110604d6df96cdc255b0bf9edd154104d4 \ - --hash=sha256:b48e35f4ab6f6a7597c46e301126ceba4c44cd3280e3750f85db48b082624fa4 \ - --hash=sha256:b54c83f1c0c0f1d748dca0af516062b8829d53d1f0c402be24b4257a9c48ada6 \ - --hash=sha256:ba0cb30acd3ef11c94dc27fbfba68940652492bc107075e7ffe23057f9425681 \ - --hash=sha256:bb50ce5fb202a26fd5404620e7ef820ad1ab3558b444cb0b55beb7ef66cd2d63 \ - --hash=sha256:c95eb6db2884917d86cde0b4d4cf31adf485c8ec36bf8696dd66fa70de96f36b \ - --hash=sha256:d0ffd9e2e4441c96a9c91ec1783285d80bf835b677853fc2770a89d50c1e48ac \ - --hash=sha256:d57b5046c120561ba8fa8e4030fbb8b822f3063910fa901ffadf16e2b7128ad6 \ - --hash=sha256:d9e6a7664ddd9746e20b7325351fe1a8408d0a2bf9c63b5e898290ddc8f09544 \ - --hash=sha256:dc578891de1db95b2a35001b695451767b580bb45753717498213c5ff3c41d63 \ - --hash=sha256:e0434aa22c821f44eeb4c650b81c7fbdd8c0122c6c4b5a576a76d5a35625ecd9 \ - --hash=sha256:e06a922a469cae9a57100864caf4f8a97a1026513793969f8ba5b63137a35d25 \ - --hash=sha256:e493962256a38f58283de033d8af176c5c91c084ea30f15834f7545451c42059 \ - --hash=sha256:ecb0019d44f4cdb50b676c5d0cb4b1eae8e15d1ed3d3e6639f986fc92b2ec52c \ - --hash=sha256:f935c4493eda9069851058fa0d9e39dbf6286be690066509305e52912714dbb2 +numpy==2.4.1 \ + --hash=sha256:0093e85df2960d7e4049664b26afc58b03236e967fb942354deef3208857a04c \ + --hash=sha256:09aa8a87e45b55a1c2c205d42e2808849ece5c484b2aab11fecabec3841cafba \ + --hash=sha256:0cce2a669e3c8ba02ee563c7835f92c153cf02edff1ae05e1823f1dde21b16a5 \ + --hash=sha256:0e6e8f9d9ecf95399982019c01223dc130542960a12edfa8edd1122dfa66a8a8 \ + --hash=sha256:0f118ce6b972080ba0758c6087c3617b5ba243d806268623dc34216d69099ba0 \ + --hash=sha256:178de8f87948163d98a4c9ab5bee4ce6519ca918926ec8df195af582de28544d \ + --hash=sha256:18e14c4d09d55eef39a6ab5b08406e84bc6869c1e34eef45564804f90b7e0574 \ + --hash=sha256:2023ef86243690c2791fd6353e5b4848eedaa88ca8a2d129f462049f6d484696 \ + --hash=sha256:20d4649c773f66cc2fc36f663e091f57c3b7655f936a4c681b4250855d1da8f5 \ + --hash=sha256:2302dc0224c1cbc49bb94f7064f3f923a971bfae45c33870dcbff63a2a550505 \ + --hash=sha256:26f0bcd9c79a00e339565b303badc74d3ea2bd6d52191eeca5f95936cad107d0 \ + --hash=sha256:297c72b1b98100c2e8f873d5d35fb551fce7040ade83d67dd51d38c8d42a2162 \ + --hash=sha256:2f44de05659b67d20499cbc96d49f2650769afcb398b79b324bb6e297bfe3844 \ + --hash=sha256:2ffd257026eb1b34352e749d7cc1678b5eeec3e329ad8c9965a797e08ccba205 \ + --hash=sha256:382ad67d99ef49024f11d1ce5dcb5ad8432446e4246a4b014418ba3a1175a1f4 \ + --hash=sha256:3869ea1ee1a1edc16c29bbe3a2f2a4e515cc3a44d43903ad41e0cacdbaf733dc \ + --hash=sha256:3d1a100e48cb266090a031397863ff8a30050ceefd798f686ff92c67a486753d \ + --hash=sha256:423797bdab2eeefbe608d7c1ec7b2b4fd3c58d51460f1ee26c7500a1d9c9ee93 \ + --hash=sha256:42d7dd5fa36d16d52a84f821eb96031836fd405ee6955dd732f2023724d0aa01 \ + --hash=sha256:49e792ec351315e16da54b543db06ca8a86985ab682602d90c60ef4ff4db2a9c \ + --hash=sha256:4e53170557d37ae404bf8d542ca5b7c629d6efa1117dac6a83e394142ea0a43f \ + --hash=sha256:4f1b68ff47680c2925f8063402a693ede215f0257f02596b1318ecdfb1d79e33 \ + --hash=sha256:4f9c360ecef085e5841c539a9a12b883dff005fbd7ce46722f5e9cef52634d82 \ + --hash=sha256:529050522e983e00a6c1c6b67411083630de8b57f65e853d7b03d9281b8694d2 \ + --hash=sha256:52b5f61bdb323b566b528899cc7db2ba5d1015bda7ea811a8bcf3c89c331fa42 \ + --hash=sha256:538bf4ec353709c765ff75ae616c34d3c3dca1a68312727e8f2676ea644f8509 \ + --hash=sha256:5adf01965456a664fc727ed69cc71848f28d063217c63e1a0e200a118d5eec9a \ + --hash=sha256:5b55aa56165b17aaf15520beb9cbd33c9039810e0d9643dd4379e44294c7303e \ + --hash=sha256:5d558123217a83b2d1ba316b986e9248a1ed1971ad495963d555ccd75dcb1556 \ + --hash=sha256:5de60946f14ebe15e713a6f22850c2372fa72f4ff9a432ab44aa90edcadaa65a \ + --hash=sha256:62fea415f83ad8fdb6c20840578e5fbaf5ddd65e0ec6c3c47eda0f69da172510 \ + --hash=sha256:6436cffb4f2bf26c974344439439c95e152c9a527013f26b3577be6c2ca64295 \ + --hash=sha256:6461de5113088b399d655d45c3897fa188766415d0f568f175ab071c8873bd73 \ + --hash=sha256:69e7419c9012c4aaf695109564e3387f1259f001b4326dfa55907b098af082d3 \ + --hash=sha256:71abbea030f2cfc3092a0ff9f8c8fdefdc5e0bf7d9d9c99663538bb0ecdac0b9 \ + --hash=sha256:7211b95ca365519d3596a1d8688a95874cc94219d417504d9ecb2df99fa7bfa8 \ + --hash=sha256:727c6c3275ddefa0dc078524a85e064c057b4f4e71ca5ca29a19163c607be745 \ + --hash=sha256:79e9e06c4c2379db47f3f6fc7a8652e7498251789bf8ff5bd43bf478ef314ca2 \ + --hash=sha256:7ad270f438cbdd402c364980317fb6b117d9ec5e226fff5b4148dd9aa9fc6e02 \ + --hash=sha256:7d5d7999df434a038d75a748275cd6c0094b0ecdb0837342b332a82defc4dc4d \ + --hash=sha256:8097529164c0f3e32bb89412a0905d9100bf434d9692d9fc275e18dcf53c9344 \ + --hash=sha256:82c55962006156aeef1629b953fd359064aa47e4d82cfc8e67f0918f7da3344f \ + --hash=sha256:8361ea4220d763e54cff2fbe7d8c93526b744f7cd9ddab47afeff7e14e8503be \ + --hash=sha256:899d2c18024984814ac7e83f8f49d8e8180e2fbe1b2e252f2e7f1d06bea92425 \ + --hash=sha256:8ad35f20be147a204e28b6a0575fbf3540c5e5f802634d4258d55b1ff5facce1 \ + --hash=sha256:8f085da926c0d491ffff3096f91078cc97ea67e7e6b65e490bc8dcda65663be2 \ + --hash=sha256:9171a42fcad32dcf3fa86f0a4faa5e9f8facefdb276f54b8b390d90447cff4e2 \ + --hash=sha256:92a0e65272fd60bfa0d9278e0484c2f52fe03b97aedc02b357f33fe752c52ffb \ + --hash=sha256:941c2a93313d030f219f3a71fd3d91a728b82979a5e8034eb2e60d394a2b83f9 \ + --hash=sha256:98b35775e03ab7f868908b524fc0a84d38932d8daf7b7e1c3c3a1b6c7a2c9f15 \ + --hash=sha256:a1ceafc5042451a858231588a104093474c6a5c57dcc724841f5c888d237d690 \ + --hash=sha256:a73044b752f5d34d4232f25f18160a1cc418ea4507f5f11e299d8ac36875f8a0 \ + --hash=sha256:a7870e8c5fc11aef57d6fea4b4085e537a3a60ad2cdd14322ed531fdca68d261 \ + --hash=sha256:a92f227dbcdc9e4c3e193add1a189a9909947d4f8504c576f4a732fd0b54240a \ + --hash=sha256:ac08c63cb7779b85e9d5318e6c3518b424bc1f364ac4cb2c6136f12e5ff2dccc \ + --hash=sha256:b6bcf39112e956594b3331316d90c90c90fb961e39696bda97b89462f5f3943f \ + --hash=sha256:c0faba4a331195bfa96f93dd9dfaa10b2c7aa8cda3a02b7fd635e588fe821bf5 \ + --hash=sha256:ce9ce141a505053b3c7bce3216071f3bf5c182b8b28930f14cd24d43932cd2df \ + --hash=sha256:cf6470d91d34bf669f61d515499859fa7a4c2f7c36434afb70e82df7217933f9 \ + --hash=sha256:d3703409aac693fa82c0aee023a1ae06a6e9d065dba10f5e8e80f642f1e9d0a2 \ + --hash=sha256:d3e3087f53e2b4428766b54932644d148613c5a595150533ae7f00dab2f319a8 \ + --hash=sha256:d3f8f0df9f4b8be57b3bf74a1d087fec68f927a2fab68231fdb442bf2c12e426 \ + --hash=sha256:d797454e37570cfd61143b73b8debd623c3c0952959adb817dd310a483d58a1b \ + --hash=sha256:e1a27bb1b2dee45a2a53f5ca6ff2d1a7f135287883a1689e930d44d1ff296c87 \ + --hash=sha256:e3bd2cb07841166420d2fa7146c96ce00cb3410664cbc1a6be028e456c4ee220 \ + --hash=sha256:e7b6b5e28bbd47b7532698e5db2fe1db693d84b58c254e4389d99a27bb9b8f6b \ + --hash=sha256:e867df947d427cdd7a60e3e271729090b0f0df80f5f10ab7dd436f40811699c3 \ + --hash=sha256:ea66d2b41ca4a1630aae5507ee0a71647d3124d1741980138aa8f28f44dac36e \ + --hash=sha256:edee228f76ee2dab4579fad6f51f6a305de09d444280109e0f75df247ff21501 \ + --hash=sha256:f0a90aba7d521e6954670550e561a4cb925713bd944445dbe9e729b71f6cabee \ + --hash=sha256:f93bc6892fe7b0663e5ffa83b61aab510aacffd58c16e012bb9352d489d90cb7 \ + --hash=sha256:fb1461c99de4d040666ca0444057b06541e5642f800b71c56e6ea92d6a853a0c # via # feast (setup.py) # dask @@ -1685,16 +1670,15 @@ numpy==2.4.0 \ # ibis-framework # pandas # pandas-gbq - # pyarrow oauthlib==3.3.1 \ --hash=sha256:0f0f8aa759826a193cf66c12ea1af1637f87b9b4622d46e866952bb022e538c9 \ --hash=sha256:88119c938d2b8fb88561af5f6ee0eec8cc8d552b7bb1f712743136eb7523b7a1 # via # kubernetes # requests-oauthlib -packaging==24.2 \ - --hash=sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759 \ - --hash=sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f +packaging==25.0 \ + --hash=sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484 \ + --hash=sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f # via # dask # db-dtypes @@ -1768,9 +1752,9 @@ pandas==2.3.3 \ # pandas-gbq # pymilvus # snowflake-connector-python -pandas-gbq==0.32.0 \ - --hash=sha256:249623d574c65e98cf19b7b7ecda97729f4f0a843eae3a0a82d9ef50adcdf4ef \ - --hash=sha256:28018ff09f2e49ab2b01a11329bd4e562fd65da406030b4a8001a3a4e80a1e34 +pandas-gbq==0.33.0 \ + --hash=sha256:499ad18a7b1917e2cc04bbd763ec37c11ecc49030348c45cebb9cbbdb7f909af \ + --hash=sha256:61357e11d73e0ae57cbff31e71fc3ed83da3d16b58b653f715b32ad760527e34 # via google-cloud-bigquery parsy==2.2 \ --hash=sha256:5e981613d9d2d8b68012d1dd0afe928967bea2e4eefdb76c2f545af0dd02a9e7 \ @@ -1780,17 +1764,17 @@ partd==1.4.2 \ --hash=sha256:978e4ac767ec4ba5b86c6eaa52e5a2a3bc748a2ca839e8cc798f1cc6ce6efb0f \ --hash=sha256:d022c33afbdc8405c226621b015e8067888173d85f7f5ecebb3cafed9a20f02c # via dask -pathspec==0.12.1 \ - --hash=sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 \ - --hash=sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712 +pathspec==1.0.3 \ + --hash=sha256:bac5cf97ae2c2876e2d25ebb15078eb04d76e4b98921ee31c6f85ade8b59444d \ + --hash=sha256:e80767021c1cc524aa3fb14bedda9c34406591343cc42797b386ce7b9354fb6c # via mypy platformdirs==4.5.1 \ --hash=sha256:61d5cdcc6065745cdd94f0f878977f8de9437be93de97c1c12f853c9c0cdcbda \ --hash=sha256:d03afa3963c806a9bed9d5125c8f4cb2fdaf74a55ab60e5d59b3fde758104d31 # via snowflake-connector-python -prometheus-client==0.23.1 \ - --hash=sha256:6ae8f9081eaaaf153a2e959d2e6c4f4fb57b12ef76c8c7980202f1e57b48b2ce \ - --hash=sha256:dd1913e6e76b59cfe44e7a4b83e01afc9873c1bdfd2ed8739f1e76aeca115f99 +prometheus-client==0.24.0 \ + --hash=sha256:4ab6d4fb5a1b25ad74b58e6271857e356fff3399473e599d227ab5d0ce6637f0 \ + --hash=sha256:726b40c0d499f4904d4b5b7abe8d43e6aff090de0d468ae8f2226290b331c667 # via feast (setup.py) propcache==0.4.1 \ --hash=sha256:0002004213ee1f36cfb3f9a42b5066100c44276b9b72b4e1504cddd3d692e86e \ @@ -1926,17 +1910,17 @@ proto-plus==1.27.0 \ # google-cloud-bigquery-storage # google-cloud-bigtable # google-cloud-datastore -protobuf==6.33.2 \ - --hash=sha256:1f8017c48c07ec5859106533b682260ba3d7c5567b1ca1f24297ce03384d1b4f \ - --hash=sha256:2981c58f582f44b6b13173e12bb8656711189c2a70250845f264b877f00b1913 \ - --hash=sha256:56dc370c91fbb8ac85bc13582c9e373569668a290aa2e66a590c2a0d35ddb9e4 \ - --hash=sha256:7109dcc38a680d033ffb8bf896727423528db9163be1b6a02d6a49606dcadbfe \ - --hash=sha256:7636aad9bb01768870266de5dc009de2d1b936771b38a793f73cbbf279c91c5c \ - --hash=sha256:87eb388bd2d0f78febd8f4c8779c79247b26a5befad525008e49a6955787ff3d \ - --hash=sha256:8cd7640aee0b7828b6d03ae518b5b4806fdfc1afe8de82f79c3454f8aef29872 \ - --hash=sha256:b5d3b5625192214066d99b2b605f5783483575656784de223f00a8d00754fc0e \ - --hash=sha256:d9b19771ca75935b3a4422957bc518b0cecb978b31d1dd12037b088f6bcc0e43 \ - --hash=sha256:fc2a0e8b05b180e5fc0dd1559fe8ebdae21a27e81ac77728fb6c42b12c7419b4 +protobuf==6.33.4 \ + --hash=sha256:0f12ddbf96912690c3582f9dffb55530ef32015ad8e678cd494312bd78314c4f \ + --hash=sha256:1fe3730068fcf2e595816a6c34fe66eeedd37d51d0400b72fabc848811fdc1bc \ + --hash=sha256:2fe67f6c014c84f655ee06f6f66213f9254b3a8b6bda6cda0ccd4232c73c06f0 \ + --hash=sha256:3df850c2f8db9934de4cf8f9152f8dc2558f49f298f37f90c517e8e5c84c30e9 \ + --hash=sha256:757c978f82e74d75cba88eddec479df9b99a42b31193313b75e492c06a51764e \ + --hash=sha256:8f11ffae31ec67fc2554c2ef891dcb561dae9a2a3ed941f9e134c2db06657dbc \ + --hash=sha256:918966612c8232fc6c24c78e1cd89784307f5814ad7506c308ee3cf86662850d \ + --hash=sha256:955478a89559fa4568f5a81dce77260eabc5c686f9e8366219ebd30debf06aa6 \ + --hash=sha256:c7c64f259c618f0bef7bee042075e390debbf9682334be2b67408ec7c1c09ee6 \ + --hash=sha256:dc2e61bca3b10470c1912d166fe0af67bfc20eb55971dcef8dfa48ce14f0ed91 # via # feast (setup.py) # google-api-core @@ -1986,43 +1970,57 @@ psycopg-pool==3.3.0 \ --hash=sha256:2e44329155c410b5e8666372db44276a8b1ebd8c90f1c3026ebba40d4bc81063 \ --hash=sha256:fa115eb2860bd88fce1717d75611f41490dec6135efb619611142b24da3f6db5 # via psycopg -pyarrow==17.0.0 \ - --hash=sha256:0071ce35788c6f9077ff9ecba4858108eebe2ea5a3f7cf2cf55ebc1dbc6ee24a \ - --hash=sha256:02dae06ce212d8b3244dd3e7d12d9c4d3046945a5933d28026598e9dbbda1fca \ - --hash=sha256:0b72e87fe3e1db343995562f7fff8aee354b55ee83d13afba65400c178ab2597 \ - --hash=sha256:0cdb0e627c86c373205a2f94a510ac4376fdc523f8bb36beab2e7f204416163c \ - --hash=sha256:13d7a460b412f31e4c0efa1148e1d29bdf18ad1411eb6757d38f8fbdcc8645fb \ - --hash=sha256:1c8856e2ef09eb87ecf937104aacfa0708f22dfeb039c363ec99735190ffb977 \ - --hash=sha256:2e19f569567efcbbd42084e87f948778eb371d308e137a0f97afe19bb860ccb3 \ - --hash=sha256:32503827abbc5aadedfa235f5ece8c4f8f8b0a3cf01066bc8d29de7539532687 \ - --hash=sha256:392bc9feabc647338e6c89267635e111d71edad5fcffba204425a7c8d13610d7 \ - --hash=sha256:42bf93249a083aca230ba7e2786c5f673507fa97bbd9725a1e2754715151a204 \ - --hash=sha256:4beca9521ed2c0921c1023e68d097d0299b62c362639ea315572a58f3f50fd28 \ - --hash=sha256:5984f416552eea15fd9cee03da53542bf4cddaef5afecefb9aa8d1010c335087 \ - --hash=sha256:6b244dc8e08a23b3e352899a006a26ae7b4d0da7bb636872fa8f5884e70acf15 \ - --hash=sha256:757074882f844411fcca735e39aae74248a1531367a7c80799b4266390ae51cc \ - --hash=sha256:75c06d4624c0ad6674364bb46ef38c3132768139ddec1c56582dbac54f2663e2 \ - --hash=sha256:7c7916bff914ac5d4a8fe25b7a25e432ff921e72f6f2b7547d1e325c1ad9d155 \ - --hash=sha256:9b564a51fbccfab5a04a80453e5ac6c9954a9c5ef2890d1bcf63741909c3f8df \ - --hash=sha256:9b8a823cea605221e61f34859dcc03207e52e409ccf6354634143e23af7c8d22 \ - --hash=sha256:9ba11c4f16976e89146781a83833df7f82077cdab7dc6232c897789343f7891a \ - --hash=sha256:a155acc7f154b9ffcc85497509bcd0d43efb80d6f733b0dc3bb14e281f131c8b \ - --hash=sha256:a27532c38f3de9eb3e90ecab63dfda948a8ca859a66e3a47f5f42d1e403c4d03 \ - --hash=sha256:a48ddf5c3c6a6c505904545c25a4ae13646ae1f8ba703c4df4a1bfe4f4006bda \ - --hash=sha256:a5c8b238d47e48812ee577ee20c9a2779e6a5904f1708ae240f53ecbee7c9f07 \ - --hash=sha256:af5ff82a04b2171415f1410cff7ebb79861afc5dae50be73ce06d6e870615204 \ - --hash=sha256:b0c6ac301093b42d34410b187bba560b17c0330f64907bfa4f7f7f2444b0cf9b \ - --hash=sha256:d7d192305d9d8bc9082d10f361fc70a73590a4c65cf31c3e6926cd72b76bc35c \ - --hash=sha256:da1e060b3876faa11cee287839f9cc7cdc00649f475714b8680a05fd9071d545 \ - --hash=sha256:db023dc4c6cae1015de9e198d41250688383c3f9af8f565370ab2b4cb5f62655 \ - --hash=sha256:dc5c31c37409dfbc5d014047817cb4ccd8c1ea25d19576acf1a001fe07f5b420 \ - --hash=sha256:dec8d129254d0188a49f8a1fc99e0560dc1b85f60af729f47de4046015f9b0a5 \ - --hash=sha256:e3343cb1e88bc2ea605986d4b94948716edc7a8d14afd4e2c097232f729758b4 \ - --hash=sha256:edca18eaca89cd6382dfbcff3dd2d87633433043650c07375d095cd3517561d8 \ - --hash=sha256:f1e70de6cb5790a50b01d2b686d54aaf73da01266850b05e3af2a1bc89e16053 \ - --hash=sha256:f553ca691b9e94b202ff741bdd40f6ccb70cdd5fbf65c187af132f1317de6145 \ - --hash=sha256:f7ae2de664e0b158d1607699a16a488de3d008ba99b3a7aa5de1cbc13574d047 \ - --hash=sha256:fa3c246cc58cb5a4a5cb407a18f193354ea47dd0648194e6265bd24177982fe8 +pyarrow==22.0.0 \ + --hash=sha256:001ea83a58024818826a9e3f89bf9310a114f7e26dfe404a4c32686f97bd7901 \ + --hash=sha256:00626d9dc0f5ef3a75fe63fd68b9c7c8302d2b5bbc7f74ecaedba83447a24f84 \ + --hash=sha256:0c34fe18094686194f204a3b1787a27456897d8a2d62caf84b61e8dfbc0252ae \ + --hash=sha256:12fe549c9b10ac98c91cf791d2945e878875d95508e1a5d14091a7aaa66d9cf8 \ + --hash=sha256:1a812a5b727bc09c3d7ea072c4eebf657c2f7066155506ba31ebf4792f88f016 \ + --hash=sha256:252be4a05f9d9185bb8c18e83764ebcfea7185076c07a7a662253af3a8c07941 \ + --hash=sha256:334f900ff08ce0423407af97e6c26ad5d4e3b0763645559ece6fbf3747d6a8f5 \ + --hash=sha256:35ad0f0378c9359b3f297299c3309778bb03b8612f987399a0333a560b43862d \ + --hash=sha256:3d600dc583260d845c7d8a6db540339dd883081925da2bd1c5cb808f720b3cd9 \ + --hash=sha256:3e294c5eadfb93d78b0763e859a0c16d4051fc1c5231ae8956d61cb0b5666f5a \ + --hash=sha256:3e739edd001b04f654b166204fc7a9de896cf6007eaff33409ee9e50ceaff754 \ + --hash=sha256:44729980b6c50a5f2bfcc2668d36c569ce17f8b17bccaf470c4313dcbbf13c9d \ + --hash=sha256:44d2d26cda26d18f7af7db71453b7b783788322d756e81730acb98f24eb90ace \ + --hash=sha256:4c19236ae2402a8663a2c8f21f1870a03cc57f0bef7e4b6eb3238cc82944de80 \ + --hash=sha256:69763ab2445f632d90b504a815a2a033f74332997052b721002298ed6de40f2e \ + --hash=sha256:6dda1ddac033d27421c20d7a7943eec60be44e0db4e079f33cc5af3b8280ccde \ + --hash=sha256:6f9762274496c244d951c819348afbcf212714902742225f649cf02823a6a10f \ + --hash=sha256:710624ab925dc2b05a6229d47f6f0dac1c1155e6ed559be7109f684eba048a48 \ + --hash=sha256:7388ac685cab5b279a41dfe0a6ccd99e4dbf322edfb63e02fc0443bf24134e91 \ + --hash=sha256:77718810bd3066158db1e95a63c160ad7ce08c6b0710bc656055033e39cdad88 \ + --hash=sha256:7a820d8ae11facf32585507c11f04e3f38343c1e784c9b5a8b1da5c930547fe2 \ + --hash=sha256:8382ad21458075c2e66a82a29d650f963ce51c7708c7c0ff313a8c206c4fd5e8 \ + --hash=sha256:84378110dd9a6c06323b41b56e129c504d157d1a983ce8f5443761eb5256bafc \ + --hash=sha256:854794239111d2b88b40b6ef92aa478024d1e5074f364033e73e21e3f76b25e0 \ + --hash=sha256:92843c305330aa94a36e706c16209cd4df274693e777ca47112617db7d0ef3d7 \ + --hash=sha256:9bddc2cade6561f6820d4cd73f99a0243532ad506bc510a75a5a65a522b2d74d \ + --hash=sha256:a4893d31e5ef780b6edcaf63122df0f8d321088bb0dee4c8c06eccb1ca28d145 \ + --hash=sha256:a9d9ffdc2ab696f6b15b4d1f7cec6658e1d788124418cb30030afbae31c64746 \ + --hash=sha256:ac93252226cf288753d8b46280f4edf3433bf9508b6977f8dd8526b521a1bbb9 \ + --hash=sha256:b41f37cabfe2463232684de44bad753d6be08a7a072f6a83447eeaf0e4d2a215 \ + --hash=sha256:b883fe6fd85adad7932b3271c38ac289c65b7337c2c132e9569f9d3940620730 \ + --hash=sha256:b9d71701ce97c95480fecb0039ec5bb889e75f110da72005743451339262f4ce \ + --hash=sha256:ba95112d15fd4f1105fb2402c4eab9068f0554435e9b7085924bcfaac2cc306f \ + --hash=sha256:bba208d9c7decf9961998edf5c65e3ea4355d5818dd6cd0f6809bec1afb951cc \ + --hash=sha256:bd0d42297ace400d8febe55f13fdf46e86754842b860c978dfec16f081e5c653 \ + --hash=sha256:bea79263d55c24a32b0d79c00a1c58bb2ee5f0757ed95656b01c0fb310c5af3d \ + --hash=sha256:c064e28361c05d72eed8e744c9605cbd6d2bb7481a511c74071fd9b24bc65d7d \ + --hash=sha256:c3200cb41cdbc65156e5f8c908d739b0dfed57e890329413da2748d1a2cd1a4e \ + --hash=sha256:c6c791b09c57ed76a18b03f2631753a4960eefbbca80f846da8baefc6491fcfe \ + --hash=sha256:c6ec3675d98915bf1ec8b3c7986422682f7232ea76cad276f4c8abd5b7319b70 \ + --hash=sha256:ce20fe000754f477c8a9125543f1936ea5b8867c5406757c224d745ed033e691 \ + --hash=sha256:cedb9dd9358e4ea1d9bce3665ce0797f6adf97ff142c8e25b46ba9cdd508e9b6 \ + --hash=sha256:e0a15757fccb38c410947df156f9749ae4a3c89b2393741a50521f39a8cf202a \ + --hash=sha256:e6e95176209257803a8b3d0394f21604e796dadb643d2f7ca21b66c9c0b30c9a \ + --hash=sha256:e70ff90c64419709d38c8932ea9fe1cc98415c4f87ea8da81719e43f02534bc9 \ + --hash=sha256:ec1a15968a9d80da01e1d30349b2b0d7cc91e96588ee324ce1b5228175043e95 \ + --hash=sha256:ec5d40dd494882704fb876c16fa7261a69791e784ae34e6b5992e977bd2e238c \ + --hash=sha256:f633074f36dbc33d5c05b5dc75371e5660f1dbf9c8b1d95669def05e5425989c \ + --hash=sha256:f7fe3dbe871294ba70d789be16b6e7e52b418311e166e0e3cba9522f0f437fb1 \ + --hash=sha256:f963ba8c3b0199f9d6b794c90ec77545e05eadc83973897a4523c9e8d84e9340 # via # feast (setup.py) # dask @@ -2204,9 +2202,9 @@ pyjwt[crypto]==2.10.1 \ # feast (setup.py) # mcp # snowflake-connector-python -pymilvus==2.4.15 \ - --hash=sha256:0601591ce0498315e19e9ac3f4fdd3051102ca87b6ddff5b33849f522288cff7 \ - --hash=sha256:b21878e5df74dca91b3f3cf0b0597fa6b6aed7bf5cde9a1b10641994faa353bf +pymilvus==2.5.18 \ + --hash=sha256:1b78badcfa8d62db7d0b29193fc0422e4676873ff1c745a9d75c2c885d7a7e32 \ + --hash=sha256:9e517076068e98dac51c018bc0dfe1f651d936154e2e2d9ad6c7b3dab1164e2d # via feast (setup.py) pymysql==1.1.2 \ --hash=sha256:4961d3e165614ae65014e361811a724e2044ad3ea3739de9903ae7c21f539f03 \ @@ -2241,7 +2239,6 @@ pytz==2025.2 \ --hash=sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3 \ --hash=sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00 # via - # ibis-framework # pandas # snowflake-connector-python pyyaml==6.0.3 \ @@ -2351,9 +2348,9 @@ requests-oauthlib==2.0.0 \ # via # google-auth-oauthlib # kubernetes -rich==13.9.4 \ - --hash=sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098 \ - --hash=sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90 +rich==14.2.0 \ + --hash=sha256:73ff50c7c0c1c77c8243079283f4edb376f0f6442433aecb8ce7e6d0b92d1fe4 \ + --hash=sha256:76bc51fe2e57d2b1be1f96c524b890b816e334ab4c1e45888799bfaab0021edd # via # fastapi-mcp # ibis-framework @@ -2589,13 +2586,13 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:fd93c6f5d65f254ceabe97548c709e073d6da9883343adaa51bf1a913ce93f8e \ --hash=sha256:fe187fc31a54d7fd90352f34e8c008cf3ad5d064d08fedd3de2e8df83eb4a1cf # via feast (setup.py) -sqlglot==25.20.2 \ - --hash=sha256:169fe8308dd70d7bd40117b2221b62bdc7c4e2ea8eb07394b2a6146cdedf05ab \ - --hash=sha256:cdbfd7ce3f2f39f32bd7b4c23fd9e0fd261636a6b14285b914e8def25fd0a567 +sqlglot==28.6.0 \ + --hash=sha256:8af76e825dc8456a49f8ce049d69bbfcd116655dda3e53051754789e2edf8eba \ + --hash=sha256:8c0a432a6745c6c7965bbe99a17667c5a3ca1d524a54b31997cf5422b1727f6a # via ibis-framework -sse-starlette==3.1.1 \ - --hash=sha256:bb38f71ae74cfd86b529907a9fda5632195dfa6ae120f214ea4c890c7ee9d436 \ - --hash=sha256:bffa531420c1793ab224f63648c059bcadc412bf9fdb1301ac8de1cf9a67b7fb +sse-starlette==3.1.2 \ + --hash=sha256:55eff034207a83a0eb86de9a68099bd0157838f0b8b999a1b742005c71e33618 \ + --hash=sha256:cd800dd349f4521b317b9391d3796fa97b71748a4da9b9e00aafab32dda375c8 # via mcp starlette==0.50.0 \ --hash=sha256:9e5391843ec9b6e472eed1365a78c8098cfceb7a74bfd4d6b1c0c0095efb3bca \ @@ -2616,57 +2613,62 @@ toml==0.10.2 \ --hash=sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b \ --hash=sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f # via feast (setup.py) -tomli==2.3.0 \ - --hash=sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456 \ - --hash=sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845 \ - --hash=sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999 \ - --hash=sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0 \ - --hash=sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878 \ - --hash=sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf \ - --hash=sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3 \ - --hash=sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be \ - --hash=sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52 \ - --hash=sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b \ - --hash=sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67 \ - --hash=sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549 \ - --hash=sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba \ - --hash=sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22 \ - --hash=sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c \ - --hash=sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f \ - --hash=sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6 \ - --hash=sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba \ - --hash=sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45 \ - --hash=sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f \ - --hash=sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77 \ - --hash=sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606 \ - --hash=sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441 \ - --hash=sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0 \ - --hash=sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f \ - --hash=sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530 \ - --hash=sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05 \ - --hash=sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8 \ - --hash=sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005 \ - --hash=sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879 \ - --hash=sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae \ - --hash=sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc \ - --hash=sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b \ - --hash=sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b \ - --hash=sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e \ - --hash=sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf \ - --hash=sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac \ - --hash=sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8 \ - --hash=sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b \ - --hash=sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf \ - --hash=sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463 \ - --hash=sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876 +tomli==2.4.0 \ + --hash=sha256:0408e3de5ec77cc7f81960c362543cbbd91ef883e3138e81b729fc3eea5b9729 \ + --hash=sha256:0dc56fef0e2c1c470aeac5b6ca8cc7b640bb93e92d9803ddaf9ea03e198f5b0b \ + --hash=sha256:0e0fe8a0b8312acf3a88077a0802565cb09ee34107813bba1c7cd591fa6cfc8d \ + --hash=sha256:0f2e3955efea4d1cfbcb87bc321e00dc08d2bcb737fd1d5e398af111d86db5df \ + --hash=sha256:133e93646ec4300d651839d382d63edff11d8978be23da4cc106f5a18b7d0576 \ + --hash=sha256:1b168f2731796b045128c45982d3a4874057626da0e2ef1fdd722848b741361d \ + --hash=sha256:1c8a885b370751837c029ef9bc014f27d80840e48bac415f3412e6593bbc18c1 \ + --hash=sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a \ + --hash=sha256:1fb2945cbe303b1419e2706e711b7113da57b7db31ee378d08712d678a34e51e \ + --hash=sha256:20cedb4ee43278bc4f2fee6cb50daec836959aadaf948db5172e776dd3d993fc \ + --hash=sha256:20ffd184fb1df76a66e34bd1b36b4a4641bd2b82954befa32fe8163e79f1a702 \ + --hash=sha256:26ab906a1eb794cd4e103691daa23d95c6919cc2fa9160000ac02370cc9dd3f6 \ + --hash=sha256:2add28aacc7425117ff6364fe9e06a183bb0251b03f986df0e78e974047571fd \ + --hash=sha256:2b1e3b80e1d5e52e40e9b924ec43d81570f0e7d09d11081b797bc4692765a3d4 \ + --hash=sha256:31d556d079d72db7c584c0627ff3a24c5d3fb4f730221d3444f3efb1b2514776 \ + --hash=sha256:36b9d05b51e65b254ea6c2585b59d2c4cb91c8a3d91d0ed0f17591a29aaea54a \ + --hash=sha256:39b0b5d1b6dd03684b3fb276407ebed7090bbec989fa55838c98560c01113b66 \ + --hash=sha256:3cf226acb51d8f1c394c1b310e0e0e61fecdd7adcb78d01e294ac297dd2e7f87 \ + --hash=sha256:3d895d56bd3f82ddd6faaff993c275efc2ff38e52322ea264122d72729dca2b2 \ + --hash=sha256:413540dce94673591859c4c6f794dfeaa845e98bf35d72ed59636f869ef9f86f \ + --hash=sha256:43e685b9b2341681907759cf3a04e14d7104b3580f808cfde1dfdb60ada85475 \ + --hash=sha256:4cbcb367d44a1f0c2be408758b43e1ffb5308abe0ea222897d6bfc8e8281ef2f \ + --hash=sha256:551e321c6ba03b55676970b47cb1b73f14a0a4dce6a3e1a9458fd6d921d72e95 \ + --hash=sha256:5572e41282d5268eb09a697c89a7bee84fae66511f87533a6f88bd2f7b652da9 \ + --hash=sha256:5aa48d7c2356055feef06a43611fc401a07337d5b006be13a30f6c58f869e3c3 \ + --hash=sha256:5b5807f3999fb66776dbce568cc9a828544244a8eb84b84b9bafc080c99597b9 \ + --hash=sha256:5e3f639a7a8f10069d0e15408c0b96a2a828cfdec6fca05296ebcdcc28ca7c76 \ + --hash=sha256:685306e2cc7da35be4ee914fd34ab801a6acacb061b6a7abca922aaf9ad368da \ + --hash=sha256:75c2f8bbddf170e8effc98f5e9084a8751f8174ea6ccf4fca5398436e0320bc8 \ + --hash=sha256:7b438885858efd5be02a9a133caf5812b8776ee0c969fea02c45e8e3f296ba51 \ + --hash=sha256:7d49c66a7d5e56ac959cb6fc583aff0651094ec071ba9ad43df785abc2320d86 \ + --hash=sha256:7d6d9a4aee98fac3eab4952ad1d73aee87359452d1c086b5ceb43ed02ddb16b8 \ + --hash=sha256:84d081fbc252d1b6a982e1870660e7330fb8f90f676f6e78b052ad4e64714bf0 \ + --hash=sha256:8768715ffc41f0008abe25d808c20c3d990f42b6e2e58305d5da280ae7d1fa3b \ + --hash=sha256:920b1de295e72887bafa3ad9f7a792f811847d57ea6b1215154030cf131f16b1 \ + --hash=sha256:9a08144fa4cba33db5255f9b74f0b89888622109bd2776148f2597447f92a94e \ + --hash=sha256:a26d7ff68dfdb9f87a016ecfd1e1c2bacbe3108f4e0f8bcd2228ef9a766c787d \ + --hash=sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c \ + --hash=sha256:b5ef256a3fd497d4973c11bf142e9ed78b150d36f5773f1ca6088c230ffc5867 \ + --hash=sha256:b6c78bdf37764092d369722d9946cb65b8767bfa4110f902a1b2542d8d173c8a \ + --hash=sha256:bbb1b10aa643d973366dc2cb1ad94f99c1726a02343d43cbc011edbfac579e7c \ + --hash=sha256:c084ad935abe686bd9c898e62a02a19abfc9760b5a79bc29644463eaf2840cb0 \ + --hash=sha256:c73add4bb52a206fd0c0723432db123c0c75c280cbd67174dd9d2db228ebb1b4 \ + --hash=sha256:cae9c19ed12d4e8f3ebf46d1a75090e4c0dc16271c5bce1c833ac168f08fb614 \ + --hash=sha256:d20b797a5c1ad80c516e41bc1fb0443ddb5006e9aaa7bda2d71978346aeb9132 \ + --hash=sha256:d3d1654e11d724760cdb37a3d7691f0be9db5fbdaef59c9f532aabf87006dbaa \ + --hash=sha256:d878f2a6707cc9d53a1be1414bbb419e629c3d6e67f69230217bb663e76b5087 # via fastapi-mcp -tomlkit==0.13.3 \ - --hash=sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1 \ - --hash=sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0 +tomlkit==0.14.0 \ + --hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 \ + --hash=sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064 # via snowflake-connector-python -toolz==0.12.1 \ - --hash=sha256:d22731364c07d72eea0a0ad45bafb2c2937ab6fd38a3507bf55eae8744aa7d85 \ - --hash=sha256:ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d +toolz==1.1.0 \ + --hash=sha256:15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8 \ + --hash=sha256:27a5c770d068c110d9ed9323f24f1543e83b2f300a687b7891c1a6d56b697b5b # via # dask # ibis-framework @@ -2681,9 +2683,9 @@ typeguard==4.4.4 \ --hash=sha256:3a7fd2dffb705d4d0efaed4306a704c89b9dee850b688f060a8b1615a79e5f74 \ --hash=sha256:b5f562281b6bfa1f5492470464730ef001646128b180769880468bd84b68b09e # via feast (setup.py) -typer==0.21.0 \ - --hash=sha256:c79c01ca6b30af9fd48284058a7056ba0d3bf5cf10d0ff3d0c5b11b68c258ac6 \ - --hash=sha256:c87c0d2b6eee3b49c5c64649ec92425492c14488096dfbc8a0c2799b2f6f9c53 +typer==0.21.1 \ + --hash=sha256:7985e89081c636b88d172c2ee0cfe33c253160994d47bdfdc302defd7d1f1d01 \ + --hash=sha256:ea835607cd752343b6b2b7ce676893e5a0324082268b48f27aa058bdb7d2145d # via fastapi-mcp types-pymysql==1.1.0.20251220 \ --hash=sha256:ae1c3df32a777489431e2e9963880a0df48f6591e0aa2fd3a6fabd9dee6eca54 \ @@ -2721,7 +2723,9 @@ typing-inspection==0.4.2 \ tzdata==2025.3 \ --hash=sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1 \ --hash=sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7 - # via pandas + # via + # ibis-framework + # pandas ujson==5.11.0 \ --hash=sha256:0180a480a7d099082501cad1fe85252e4d4bf926b40960fb3d9e87a3a6fbbc80 \ --hash=sha256:04c41afc195fd477a59db3a84d5b83a871bd648ef371cf8c6f43072d89144eef \ @@ -2993,76 +2997,68 @@ websocket-client==1.9.0 \ --hash=sha256:9e813624b6eb619999a97dc7958469217c3176312b3a16a4bd1bc7e08a46ec98 \ --hash=sha256:af248a825037ef591efbf6ed20cc5faa03d3b47b9e5a2230a529eeee1c1fc3ef # via kubernetes -websockets==15.0.1 \ - --hash=sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2 \ - --hash=sha256:0a34631031a8f05657e8e90903e656959234f3a04552259458aac0b0f9ae6fd9 \ - --hash=sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5 \ - --hash=sha256:0c9e74d766f2818bb95f84c25be4dea09841ac0f734d1966f415e4edfc4ef1c3 \ - --hash=sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8 \ - --hash=sha256:0fdfe3e2a29e4db3659dbd5bbf04560cea53dd9610273917799f1cde46aa725e \ - --hash=sha256:1009ee0c7739c08a0cd59de430d6de452a55e42d6b522de7aa15e6f67db0b8e1 \ - --hash=sha256:1234d4ef35db82f5446dca8e35a7da7964d02c127b095e172e54397fb6a6c256 \ - --hash=sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85 \ - --hash=sha256:2034693ad3097d5355bfdacfffcbd3ef5694f9718ab7f29c29689a9eae841880 \ - --hash=sha256:21c1fa28a6a7e3cbdc171c694398b6df4744613ce9b36b1a498e816787e28123 \ - --hash=sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375 \ - --hash=sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065 \ - --hash=sha256:363c6f671b761efcb30608d24925a382497c12c506b51661883c3e22337265ed \ - --hash=sha256:39c1fec2c11dc8d89bba6b2bf1556af381611a173ac2b511cf7231622058af41 \ - --hash=sha256:3b1ac0d3e594bf121308112697cf4b32be538fb1444468fb0a6ae4feebc83411 \ - --hash=sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597 \ - --hash=sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f \ - --hash=sha256:3d00075aa65772e7ce9e990cab3ff1de702aa09be3940d1dc88d5abf1ab8a09c \ - --hash=sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3 \ - --hash=sha256:47819cea040f31d670cc8d324bb6435c6f133b8c7a19ec3d61634e62f8d8f9eb \ - --hash=sha256:47b099e1f4fbc95b701b6e85768e1fcdaf1630f3cbe4765fa216596f12310e2e \ - --hash=sha256:4a9fac8e469d04ce6c25bb2610dc535235bd4aa14996b4e6dbebf5e007eba5ee \ - --hash=sha256:4b826973a4a2ae47ba357e4e82fa44a463b8f168e1ca775ac64521442b19e87f \ - --hash=sha256:4c2529b320eb9e35af0fa3016c187dffb84a3ecc572bcee7c3ce302bfeba52bf \ - --hash=sha256:54479983bd5fb469c38f2f5c7e3a24f9a4e70594cd68cd1fa6b9340dadaff7cf \ - --hash=sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4 \ - --hash=sha256:5756779642579d902eed757b21b0164cd6fe338506a8083eb58af5c372e39d9a \ - --hash=sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665 \ - --hash=sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22 \ - --hash=sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675 \ - --hash=sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4 \ - --hash=sha256:5df592cd503496351d6dc14f7cdad49f268d8e618f80dce0cd5a36b93c3fc08d \ - --hash=sha256:5f4c04ead5aed67c8a1a20491d54cdfba5884507a48dd798ecaf13c74c4489f5 \ - --hash=sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65 \ - --hash=sha256:66dd88c918e3287efc22409d426c8f729688d89a0c587c88971a0faa2c2f3792 \ - --hash=sha256:678999709e68425ae2593acf2e3ebcbcf2e69885a5ee78f9eb80e6e371f1bf57 \ - --hash=sha256:67f2b6de947f8c757db2db9c71527933ad0019737ec374a8a6be9a956786aaf9 \ - --hash=sha256:693f0192126df6c2327cce3baa7c06f2a117575e32ab2308f7f8216c29d9e2e3 \ - --hash=sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151 \ - --hash=sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d \ - --hash=sha256:76d1f20b1c7a2fa82367e04982e708723ba0e7b8d43aa643d3dcd404d74f1475 \ - --hash=sha256:7f493881579c90fc262d9cdbaa05a6b54b3811c2f300766748db79f098db9940 \ - --hash=sha256:823c248b690b2fd9303ba00c4f66cd5e2d8c3ba4aa968b2779be9532a4dad431 \ - --hash=sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee \ - --hash=sha256:8dd8327c795b3e3f219760fa603dcae1dcc148172290a8ab15158cf85a953413 \ - --hash=sha256:8fdc51055e6ff4adeb88d58a11042ec9a5eae317a0a53d12c062c8a8865909e8 \ - --hash=sha256:a625e06551975f4b7ea7102bc43895b90742746797e2e14b70ed61c43a90f09b \ - --hash=sha256:abdc0c6c8c648b4805c5eacd131910d2a7f6455dfd3becab248ef108e89ab16a \ - --hash=sha256:ac017dd64572e5c3bd01939121e4d16cf30e5d7e110a119399cf3133b63ad054 \ - --hash=sha256:ac1e5c9054fe23226fb11e05a6e630837f074174c4c2f0fe442996112a6de4fb \ - --hash=sha256:ac60e3b188ec7574cb761b08d50fcedf9d77f1530352db4eef1707fe9dee7205 \ - --hash=sha256:b359ed09954d7c18bbc1680f380c7301f92c60bf924171629c5db97febb12f04 \ - --hash=sha256:b7643a03db5c95c799b89b31c036d5f27eeb4d259c798e878d6937d71832b1e4 \ - --hash=sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa \ - --hash=sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9 \ - --hash=sha256:cad21560da69f4ce7658ca2cb83138fb4cf695a2ba3e475e0559e05991aa8122 \ - --hash=sha256:d08eb4c2b7d6c41da6ca0600c077e93f5adcfd979cd777d747e9ee624556da4b \ - --hash=sha256:d50fd1ee42388dcfb2b3676132c78116490976f1300da28eb629272d5d93e905 \ - --hash=sha256:d591f8de75824cbb7acad4e05d2d710484f15f29d4a915092675ad3456f11770 \ - --hash=sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe \ - --hash=sha256:d63efaa0cd96cf0c5fe4d581521d9fa87744540d4bc999ae6e08595a1014b45b \ - --hash=sha256:d99e5546bf73dbad5bf3547174cd6cb8ba7273062a23808ffea025ecb1cf8562 \ - --hash=sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561 \ - --hash=sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215 \ - --hash=sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931 \ - --hash=sha256:f29d80eb9a9263b8d109135351caf568cc3f80b9928bccde535c235de55c22d9 \ - --hash=sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f \ - --hash=sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7 +websockets==16.0 \ + --hash=sha256:0298d07ee155e2e9fda5be8a9042200dd2e3bb0b8a38482156576f863a9d457c \ + --hash=sha256:04cdd5d2d1dacbad0a7bf36ccbcd3ccd5a30ee188f2560b7a62a30d14107b31a \ + --hash=sha256:08d7af67b64d29823fed316505a89b86705f2b7981c07848fb5e3ea3020c1abe \ + --hash=sha256:152284a83a00c59b759697b7f9e9cddf4e3c7861dd0d964b472b70f78f89e80e \ + --hash=sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec \ + --hash=sha256:19c4dc84098e523fd63711e563077d39e90ec6702aff4b5d9e344a60cb3c0cb1 \ + --hash=sha256:1c1b30e4f497b0b354057f3467f56244c603a79c0d1dafce1d16c283c25f6e64 \ + --hash=sha256:2b9f1e0d69bc60a4a87349d50c09a037a2607918746f07de04df9e43252c77a3 \ + --hash=sha256:31a52addea25187bde0797a97d6fc3d2f92b6f72a9370792d65a6e84615ac8a8 \ + --hash=sha256:32da954ffa2814258030e5a57bc73a3635463238e797c7375dc8091327434206 \ + --hash=sha256:335c23addf3d5e6a8633f9f8eda77efad001671e80b95c491dd0924587ece0b3 \ + --hash=sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156 \ + --hash=sha256:349f83cd6c9a415428ee1005cadb5c2c56f4389bc06a9af16103c3bc3dcc8b7d \ + --hash=sha256:37b31c1623c6605e4c00d466c9d633f9b812ea430c11c8a278774a1fde1acfa9 \ + --hash=sha256:417b28978cdccab24f46400586d128366313e8a96312e4b9362a4af504f3bbad \ + --hash=sha256:485c49116d0af10ac698623c513c1cc01c9446c058a4e61e3bf6c19dff7335a2 \ + --hash=sha256:4a1aba3340a8dca8db6eb5a7986157f52eb9e436b74813764241981ca4888f03 \ + --hash=sha256:50f23cdd8343b984957e4077839841146f67a3d31ab0d00e6b824e74c5b2f6e8 \ + --hash=sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230 \ + --hash=sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8 \ + --hash=sha256:5569417dc80977fc8c2d43a86f78e0a5a22fee17565d78621b6bb264a115d4ea \ + --hash=sha256:569d01a4e7fba956c5ae4fc988f0d4e187900f5497ce46339c996dbf24f17641 \ + --hash=sha256:583b7c42688636f930688d712885cf1531326ee05effd982028212ccc13e5957 \ + --hash=sha256:5a4b4cc550cb665dd8a47f868c8d04c8230f857363ad3c9caf7a0c3bf8c61ca6 \ + --hash=sha256:5f451484aeb5cafee1ccf789b1b66f535409d038c56966d6101740c1614b86c6 \ + --hash=sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5 \ + --hash=sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f \ + --hash=sha256:71c989cbf3254fbd5e84d3bff31e4da39c43f884e64f2551d14bb3c186230f00 \ + --hash=sha256:781caf5e8eee67f663126490c2f96f40906594cb86b408a703630f95550a8c3e \ + --hash=sha256:7be95cfb0a4dae143eaed2bcba8ac23f4892d8971311f1b06f3c6b78952ee70b \ + --hash=sha256:7d837379b647c0c4c2355c2499723f82f1635fd2c26510e1f587d89bc2199e72 \ + --hash=sha256:86890e837d61574c92a97496d590968b23c2ef0aeb8a9bc9421d174cd378ae39 \ + --hash=sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9 \ + --hash=sha256:8b6e209ffee39ff1b6d0fa7bfef6de950c60dfb91b8fcead17da4ee539121a79 \ + --hash=sha256:8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0 \ + --hash=sha256:8d7f0659570eefb578dacde98e24fb60af35350193e4f56e11190787bee77dac \ + --hash=sha256:8e1dab317b6e77424356e11e99a432b7cb2f3ec8c5ab4dabbcee6add48f72b35 \ + --hash=sha256:8ff32bb86522a9e5e31439a58addbb0166f0204d64066fb955265c4e214160f0 \ + --hash=sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5 \ + --hash=sha256:9b5aca38b67492ef518a8ab76851862488a478602229112c4b0d58d63a7a4d5c \ + --hash=sha256:a069d734c4a043182729edd3e9f247c3b2a4035415a9172fd0f1b71658a320a8 \ + --hash=sha256:a0b31e0b424cc6b5a04b8838bbaec1688834b2383256688cf47eb97412531da1 \ + --hash=sha256:a35539cacc3febb22b8f4d4a99cc79b104226a756aa7400adc722e83b0d03244 \ + --hash=sha256:a5e18a238a2b2249c9a9235466b90e96ae4795672598a58772dd806edc7ac6d3 \ + --hash=sha256:a653aea902e0324b52f1613332ddf50b00c06fdaf7e92624fbf8c77c78fa5767 \ + --hash=sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a \ + --hash=sha256:af80d74d4edfa3cb9ed973a0a5ba2b2a549371f8a741e0800cb07becdd20f23d \ + --hash=sha256:b14dc141ed6d2dde437cddb216004bcac6a1df0935d79656387bd41632ba0bbd \ + --hash=sha256:b784ca5de850f4ce93ec85d3269d24d4c82f22b7212023c974c401d4980ebc5e \ + --hash=sha256:bc59589ab64b0022385f429b94697348a6a234e8ce22544e3681b2e9331b5944 \ + --hash=sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82 \ + --hash=sha256:c0ee0e63f23914732c6d7e0cce24915c48f3f1512ec1d079ed01fc629dab269d \ + --hash=sha256:caab51a72c51973ca21fa8a18bd8165e1a0183f1ac7066a182ff27107b71e1a4 \ + --hash=sha256:d6297ce39ce5c2e6feb13c1a996a2ded3b6832155fcfc920265c76f24c7cceb5 \ + --hash=sha256:daa3b6ff70a9241cf6c7fc9e949d41232d9d7d26fd3522b1ad2b4d62487e9904 \ + --hash=sha256:df57afc692e517a85e65b72e165356ed1df12386ecb879ad5693be08fac65dde \ + --hash=sha256:e0334872c0a37b606418ac52f6ab9cfd17317ac26365f7f65e203e2d0d0d359f \ + --hash=sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c \ + --hash=sha256:eaded469f5e5b7294e2bdca0ab06becb6756ea86894a47806456089298813c89 \ + --hash=sha256:f4a32d1bd841d4bcbffdcb3d2ce50c09c3909fbead375ab28d0181af89fd04da \ + --hash=sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4 # via uvicorn wrapt==1.17.3 \ --hash=sha256:02b551d101f31694fc785e58e0720ef7d9a10c4e62c1c9358ce6f63f23e30a56 \ diff --git a/sdk/python/requirements/py3.12-minimal-sdist-requirements-build.txt b/sdk/python/requirements/py3.12-minimal-sdist-requirements-build.txt index 20d5e108fcc..f1631779e02 100644 --- a/sdk/python/requirements/py3.12-minimal-sdist-requirements-build.txt +++ b/sdk/python/requirements/py3.12-minimal-sdist-requirements-build.txt @@ -162,57 +162,56 @@ cython==3.0.12 \ # via # numpy # pandas - # pyarrow # pyyaml # snowflake-connector-python # sqlalchemy -cython==3.2.3 \ - --hash=sha256:0145e64485f0a9741c9314ae176282dffeb48d2ef30ae315d7224698867c317f \ - --hash=sha256:06a1317097f540d3bb6c7b81ed58a0d8b9dbfa97abf39dfd4c22ee87a6c7241e \ - --hash=sha256:0a75a04688875b275a6c875565e672325bae04327dd6ec2fc25aeb5c6cf82fce \ - --hash=sha256:1309bdce06f767e8514377f44b3a5b9e5b91e58af1348010cca10b572e1852ad \ - --hash=sha256:18b5e738c9dbb1cb488b51e35c3a1b9aa7363166cce40158fe6ccb454f6498ac \ - --hash=sha256:18edc858e6a52de47fe03ffa97ea14dadf450e20069de0a8aef531006c4bbd93 \ - --hash=sha256:1d097ad4686b58b8c03d760d08eca28f79878d404ef7452c49636170571654e0 \ - --hash=sha256:228f11be8406015d1ce84a25bf4f96167ff6fc18b834deca5716d95ae15a818c \ - --hash=sha256:22a624290c2883387b2c2cfb5224c15bff21432c6a2cf0c23ac8df3dcbd45e96 \ - --hash=sha256:25732f3981a93407826297f4423206e5e22c3cfccfc74e37bf444453bbdc076f \ - --hash=sha256:26404441f733fd1cfb0dd9c45477f501437e7d51fad05bb402bd2feb4e127aa3 \ - --hash=sha256:283262b8f902323ceb6ed3b643f275a2a963e7ab059f0714a467933383cbc56d \ - --hash=sha256:2a18f2e3bcd018416157d0a83446e29b4a31437ab79061fe5504c077e70389d0 \ - --hash=sha256:3141734fb15f8b5e9402b9240f8da8336edecae91742b41c85678c31ab68f66d \ - --hash=sha256:3829f99d611412288f44ff543e9d2b5c0c83274998b2a6680bbe5cca3539c1fd \ - --hash=sha256:4f40efa83c93060a271046930d2322ec045abb9722d25a377702cb57aa823c2b \ - --hash=sha256:51fd1a56d0fc682c05ecc44f11927dbe28dd2867c30148557b62d7d1017a13d8 \ - --hash=sha256:55c0157a5940fbf0b054508207fe0fc5cc796d0532af492c0fa35b5b41a883f7 \ - --hash=sha256:60d19376252722241a3d3ec8a695c5cae4deb053486d2e5f9a40cb569a0cf984 \ - --hash=sha256:6b01b36c9eb1b68c25bddbeef7379f7bfc37f7c9afc044e71840ffab761a2dd0 \ - --hash=sha256:6b6dd6b7aca8447b2a6779b314cc402f1e4990754507a88477e535b3c8b41ad1 \ - --hash=sha256:73afc824896ffaf22bf8122d0a7107f0120e3188a353bdcfa92317fc0d9a87ce \ - --hash=sha256:74f482da8b605c61b4df6ff716d013f20131949cb2fa59b03e63abd36ef5bac0 \ - --hash=sha256:80f20369d7aaf4e76cfef902025256918a5cc6eb0aed6d8783e4b1c563e4f6c4 \ - --hash=sha256:84330e7c8bf220a82b633678b9f99e10227c8f4c406d67c5552449ab2afedef8 \ - --hash=sha256:9a24cc653fad3adbd9cbaa638d80df3aa08a1fe27f62eb35850971c70be680df \ - --hash=sha256:9aa1a8abf3d8bb53cc19cfaa21c004afad8d4ccb17513f8aa11a788d1f525abd \ - --hash=sha256:9c5ac7201d8382c0da69e4a119c14be6acd7c286615a0383ffbd1dbfdbaa3df7 \ - --hash=sha256:b39dff92db70cbd95528f3b81d70e06bd6d3fc9c1dd91321e4d3b999ece3bceb \ - --hash=sha256:c041f7e338cca2422e0924716b04fabeda57636214324fc1941396acce99e7c7 \ - --hash=sha256:c102388cf7604ff5647164d5041fd5de2393198a87883fdb50f6c078fc2f4f8e \ - --hash=sha256:c2365a0c79ab9c0fa86d30a4a6ba7e37fc1be9537c48b79b9d63ee7e08bf2fef \ - --hash=sha256:cf210228c15b5c625824d8e31d43b6fea25f9e13c81dac632f2f7d838e0229a5 \ - --hash=sha256:d1f8700ba89c977438744f083890d87187f15709507a5489e0f6d682053b7fa0 \ - --hash=sha256:e31f52ea7e35463b21410f150006eb07b663a0b3ceea8ee8f35e0b8e02b75f50 \ - --hash=sha256:e4293f1861480b397809a6f021a6c12e15e918feae1c7add80c99d07af206578 \ - --hash=sha256:f13832412d633376ffc08d751cc18ed0d7d00a398a4065e2871db505258748a6 \ - --hash=sha256:f5bf0cebeb4147e172a114437d3fce5a507595d8fdd821be792b1bb25c691514 \ - --hash=sha256:fabe2f37acb63a5521d16193effb15acd082e35458f30f1c1f3e506271fee8a7 - # via uvloop +cython==3.2.4 \ + --hash=sha256:02cb0cc0f23b9874ad262d7d2b9560aed9c7e2df07b49b920bda6f2cc9cb505e \ + --hash=sha256:03893c88299a2c868bb741ba6513357acd104e7c42265809fd58dce1456a36fc \ + --hash=sha256:14dae483ca2838b287085ff98bc206abd7a597b7bb16939a092f8e84d9062842 \ + --hash=sha256:1a64a112a34ec719b47c01395647e54fb4cf088a511613f9a3a5196694e8e382 \ + --hash=sha256:28b1e363b024c4b8dcf52ff68125e635cb9cb4b0ba997d628f25e32543a71103 \ + --hash=sha256:28e8075087a59756f2d059273184b8b639fe0f16cf17470bd91c39921bc154e0 \ + --hash=sha256:2b1f12c0e4798293d2754e73cd6f35fa5bbdf072bdc14bc6fc442c059ef2d290 \ + --hash=sha256:31a90b4a2c47bb6d56baeb926948348ec968e932c1ae2c53239164e3e8880ccf \ + --hash=sha256:35ab0632186057406ec729374c737c37051d2eacad9d515d94e5a3b3e58a9b02 \ + --hash=sha256:36bf3f5eb56d5281aafabecbaa6ed288bc11db87547bba4e1e52943ae6961ccf \ + --hash=sha256:3b6e58f73a69230218d5381817850ce6d0da5bb7e87eb7d528c7027cbba40b06 \ + --hash=sha256:3b8e62049afef9da931d55de82d8f46c9a147313b69d5ff6af6e9121d545ce7a \ + --hash=sha256:55b6c44cd30821f0b25220ceba6fe636ede48981d2a41b9bbfe3c7902ce44ea7 \ + --hash=sha256:55eb425c0baf1c8a46aa4424bc35b709db22f3c8a1de33adb3ecb8a3d54ea42a \ + --hash=sha256:64d7f71be3dd6d6d4a4c575bb3a4674ea06d1e1e5e4cd1b9882a2bc40ed3c4c9 \ + --hash=sha256:67922c9de058a0bfb72d2e75222c52d09395614108c68a76d9800f150296ddb3 \ + --hash=sha256:6d5267f22b6451eb1e2e1b88f6f78a2c9c8733a6ddefd4520d3968d26b824581 \ + --hash=sha256:72e6c0bbd978e2678b45351395f6825b9b8466095402eae293f4f7a73e9a3e85 \ + --hash=sha256:732fc93bc33ae4b14f6afaca663b916c2fdd5dcbfad7114e17fb2434eeaea45c \ + --hash=sha256:767b143704bdd08a563153448955935844e53b852e54afdc552b43902ed1e235 \ + --hash=sha256:83266c356c13c68ffe658b4905279c993d8a5337bb0160fa90c8a3e297ea9a2e \ + --hash=sha256:84226ecd313b233da27dc2eb3601b4f222b8209c3a7216d8733b031da1dc64e6 \ + --hash=sha256:869487ea41d004f8b92171f42271fbfadb1ec03bede3158705d16cd570d6b891 \ + --hash=sha256:90f43be4eaa6afd58ce20d970bb1657a3627c44e1760630b82aa256ba74b4acb \ + --hash=sha256:983f9d2bb8a896e16fa68f2b37866ded35fa980195eefe62f764ddc5f9f5ef8e \ + --hash=sha256:b362819d155fff1482575e804e43e3a8825332d32baa15245f4642022664a3f4 \ + --hash=sha256:b84d4e3c875915545f77c88dba65ad3741afd2431e5cdee6c9a20cefe6905647 \ + --hash=sha256:ca2399dc75796b785f74fb85c938254fa10c80272004d573c455f9123eceed86 \ + --hash=sha256:ca578c9cb872c7ecffbe14815dc4590a003bc13339e90b2633540c7e1a252839 \ + --hash=sha256:d4b4fd5332ab093131fa6172e8362f16adef3eac3179fd24bbdc392531cb82fa \ + --hash=sha256:e3b5ac54e95f034bc7fb07313996d27cbf71abc17b229b186c1540942d2dc28e \ + --hash=sha256:e65e4773021f8dc8532010b4fbebe782c77f9a0817e93886e518c93bd6a44e9d \ + --hash=sha256:e71efb20048358a6b8ec604a0532961c50c067b5e63e345e2e359fff72feaee8 \ + --hash=sha256:f136f379a4a54246facd0eb6f1ee15c3837cb314ce87b677582ec014db4c6845 \ + --hash=sha256:f583cad7a7eed109f0babb5035e92d0c1260598f53add626a8568b57246b62c3 \ + --hash=sha256:f81eda419b5ada7b197bbc3c5f4494090e3884521ffd75a3876c93fbf66c9ca8 \ + --hash=sha256:f8d685a70bce39acc1d62ec3916d9b724b5ef665b0ce25ae55e1c85ee09747fc \ + --hash=sha256:fdfdd753ad7e18e5092b413e9f542e8d28b8a08203126090e1c15f7783b7fe57 \ + --hash=sha256:ff9af2134c05e3734064808db95b4dd7341a39af06e8945d05ea358e1741aaed + # via + # pyarrow + # uvloop dunamai==1.25.0 \ --hash=sha256:7f9dc687dd3256e613b6cc978d9daabfd2bb5deb8adc541fc135ee423ffa98ab \ --hash=sha256:a7f8360ea286d3dbaf0b6a1473f9253280ac93d619836ad4514facb70c0719d1 - # via - # poetry-dynamic-versioning - # uv-dynamic-versioning + # via uv-dynamic-versioning expandvars==1.1.2 \ --hash=sha256:6c5822b7b756a99a356b915dd1267f52ab8a4efaa135963bd7f4bd5d368f71d7 \ --hash=sha256:d1652fe4e61914f5b88ada93aaedb396446f55ae4621de45c8cb9f66e5712526 @@ -251,9 +250,9 @@ gitdb==4.0.12 \ --hash=sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571 \ --hash=sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf # via gitpython -gitpython==3.1.45 \ - --hash=sha256:85b0ee964ceddf211c41b9f27a49086010a190fd8132a24e21f362a4b36a791c \ - --hash=sha256:8908cb2e02fb3b93b7eb0f2827125cb699869470432cc885f019b8fd0fccff77 +gitpython==3.1.46 \ + --hash=sha256:400124c7d0ef4ea03f7310ac2fbf7151e09ff97f2a3288d64a440c584a29c37f \ + --hash=sha256:79812ed143d9d25b6d176a10bb511de0f9c67b1fa641d82097b0ab90398a2058 # via pymilvus hatch-fancy-pypi-readme==25.1.0 \ --hash=sha256:9c58ed3dff90d51f43414ce37009ad1d5b0f08ffc9fc216998a06380f01c0045 \ @@ -298,6 +297,7 @@ hatchling==1.28.0 \ # hatch-vcs # httpcore # httpx + # ibis-framework # jsonschema # jsonschema-specifications # mcp @@ -318,86 +318,84 @@ hatchling==1.28.0 \ jinja2==3.1.6 \ --hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \ --hash=sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67 - # via - # poetry-dynamic-versioning - # uv-dynamic-versioning -librt==0.7.5 \ - --hash=sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee \ - --hash=sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1 \ - --hash=sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4 \ - --hash=sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899 \ - --hash=sha256:0e2bf8f91093fac43e3eaebacf777f12fd539dce9ec5af3efc6d8424e96ccd49 \ - --hash=sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d \ - --hash=sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760 \ - --hash=sha256:191cbd42660446d67cf7a95ac7bfa60f49b8b3b0417c64f216284a1d86fc9335 \ - --hash=sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8 \ - --hash=sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2 \ - --hash=sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec \ - --hash=sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b \ - --hash=sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0 \ - --hash=sha256:39183abee670bc37b85f11e86c44a9cad1ed6efa48b580083e89ecee13dd9717 \ - --hash=sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325 \ - --hash=sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45 \ - --hash=sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d \ - --hash=sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233 \ - --hash=sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d \ - --hash=sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544 \ - --hash=sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802 \ - --hash=sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2 \ - --hash=sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d \ - --hash=sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f \ - --hash=sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169 \ - --hash=sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe \ - --hash=sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982 \ - --hash=sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2 \ - --hash=sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa \ - --hash=sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4 \ - --hash=sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4 \ - --hash=sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57 \ - --hash=sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26 \ - --hash=sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361 \ - --hash=sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad \ - --hash=sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e \ - --hash=sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf \ - --hash=sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f \ - --hash=sha256:8dcae24de1bc9da93aa689cb6313c70e776d7cea2fcf26b9b6160fedfe6bd9af \ - --hash=sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2 \ - --hash=sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89 \ - --hash=sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904 \ - --hash=sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6 \ - --hash=sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276 \ - --hash=sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e \ - --hash=sha256:a9eacbf983319b26b5f340a2e0cd47ac1ee4725a7f3a72fd0f15063c934b69d6 \ - --hash=sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409 \ - --hash=sha256:af69d9e159575e877c7546d1ee817b4ae089aa221dd1117e20c24ad8dc8659c7 \ - --hash=sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a \ - --hash=sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4 \ - --hash=sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775 \ - --hash=sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203 \ - --hash=sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419 \ - --hash=sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5 \ - --hash=sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023 \ - --hash=sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b \ - --hash=sha256:cdb001a1a0e4f41e613bca2c0fc147fc8a7396f53fc94201cbfd8ec7cd69ca4b \ - --hash=sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d \ - --hash=sha256:d2cc7d187e8c6e9b7bdbefa9697ce897a704ea7a7ce844f2b4e0e2aa07ae51d3 \ - --hash=sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e \ - --hash=sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a \ - --hash=sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b \ - --hash=sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db \ - --hash=sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd \ - --hash=sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa \ - --hash=sha256:df2e210400b28e50994477ebf82f055698c79797b6ee47a1669d383ca33263e1 \ - --hash=sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805 \ - --hash=sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a \ - --hash=sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25 \ - --hash=sha256:ea1b60b86595a5dc1f57b44a801a1c4d8209c0a69518391d349973a4491408e6 \ - --hash=sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b \ - --hash=sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5 \ - --hash=sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416 \ - --hash=sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc \ - --hash=sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7 \ - --hash=sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96 + # via uv-dynamic-versioning +librt==0.7.7 \ + --hash=sha256:067be973d90d9e319e6eb4ee2a9b9307f0ecd648b8a9002fa237289a4a07a9e7 \ + --hash=sha256:0996c83b1cb43c00e8c87835a284f9057bc647abd42b5871e5f941d30010c832 \ + --hash=sha256:0ecce0544d3db91a40f8b57ae26928c02130a997b540f908cefd4d279d6c5848 \ + --hash=sha256:10c8fb9966f84737115513fecbaf257f9553d067a7dd45a69c2c7e5339e6a8dc \ + --hash=sha256:142c2cd91794b79fd0ce113bd658993b7ede0fe93057668c2f98a45ca00b7e91 \ + --hash=sha256:14ef0f4ac3728ffd85bfc58e2f2f48fb4ef4fa871876f13a73a7381d10a9f77c \ + --hash=sha256:1908c3e5a5ef86b23391448b47759298f87f997c3bd153a770828f58c2bb4630 \ + --hash=sha256:1bcd79be209313b270b0e1a51c67ae1af28adad0e0c7e84c3ad4b5cb57aaa75b \ + --hash=sha256:23d2299ed007812cccc1ecef018db7d922733382561230de1f3954db28433977 \ + --hash=sha256:23daa1ab0512bafdd677eb1bfc9611d8ffbe2e328895671e64cb34166bc1b8c8 \ + --hash=sha256:2567cb48dc03e5b246927ab35cbb343376e24501260a9b5e30b8e255dca0d1d2 \ + --hash=sha256:264720fc288c86039c091a4ad63419a5d7cabbf1c1c9933336a957ed2483e570 \ + --hash=sha256:2987cf827011907d3dfd109f1be0d61e173d68b1270107bb0e89f2fca7f2ed6b \ + --hash=sha256:2a85a1fc4ed11ea0eb0a632459ce004a2d14afc085a50ae3463cd3dfe1ce43fc \ + --hash=sha256:3d1fe2e8df3268dd6734dba33ededae72ad5c3a859b9577bc00b715759c5aaab \ + --hash=sha256:4353ee891a1834567e0302d4bd5e60f531912179578c36f3d0430f8c5e16b456 \ + --hash=sha256:44d63ce643f34a903f09ff7ca355aae019a3730c7afd6a3c037d569beeb5d151 \ + --hash=sha256:467dbd7443bda08338fc8ad701ed38cef48194017554f4c798b0a237904b3f99 \ + --hash=sha256:4862cb2c702b1f905c0503b72d9d4daf65a7fdf5a9e84560e563471e57a56949 \ + --hash=sha256:4bf3cc46d553693382d2abf5f5bd493d71bb0f50a7c0beab18aa13a5545c8900 \ + --hash=sha256:4dcee2f921a8632636d1c37f1bbdb8841d15666d119aa61e5399c5268e7ce02e \ + --hash=sha256:50d1d1ee813d2d1a3baf2873634ba506b263032418d16287c92ec1cc9c1a00cb \ + --hash=sha256:5335890fea9f9e6c4fdf8683061b9ccdcbe47c6dc03ab8e9b68c10acf78be78d \ + --hash=sha256:558a9e5a6f3cc1e20b3168fb1dc802d0d8fa40731f6e9932dcc52bbcfbd37111 \ + --hash=sha256:5e419e0db70991b6ba037b70c1d5bbe92b20ddf82f31ad01d77a347ed9781398 \ + --hash=sha256:6066c638cdf85ff92fc6f932d2d73c93a0e03492cdfa8778e6d58c489a3d7259 \ + --hash=sha256:6ae8aec43117a645a31e5f60e9e3a0797492e747823b9bda6972d521b436b4e8 \ + --hash=sha256:6b6f8ea465524aa4c7420c7cc4ca7d46fe00981de8debc67b1cc2e9957bb5b9d \ + --hash=sha256:7b16ccaeff0ed4355dfb76fe1ea7a5d6d03b5ad27f295f77ee0557bc20a72495 \ + --hash=sha256:7d13cc340b3b82134f8038a2bfe7137093693dcad8ba5773da18f95ad6b77a8a \ + --hash=sha256:7ef28f2e7a016b29792fe0a2dd04dec75725b32a1264e390c366103f834a9c3a \ + --hash=sha256:8185c8497d45164e256376f9da5aed2bb26ff636c798c9dabe313b90e9f25b28 \ + --hash=sha256:81d957b069fed1890953c3b9c3895c7689960f233eea9a1d9607f71ce7f00b2c \ + --hash=sha256:86f86b3b785487c7760247bcdac0b11aa8bf13245a13ed05206286135877564b \ + --hash=sha256:8e92c8de62b40bfce91d5e12c6e8b15434da268979b1af1a6589463549d491e6 \ + --hash=sha256:8f2f8dcf5ab9f80fb970c6fd780b398efb2f50c1962485eb8d3ab07788595a48 \ + --hash=sha256:8f4a0b0a3c86ba9193a8e23bb18f100d647bf192390ae195d84dfa0a10fb6244 \ + --hash=sha256:8f7a74cf3a80f0c3b0ec75b0c650b2f0a894a2cec57ef75f6f72c1e82cdac61d \ + --hash=sha256:955c62571de0b181d9e9e0a0303c8bc90d47670a5eff54cf71bf5da61d1899cf \ + --hash=sha256:983de36b5a83fe9222f4f7dcd071f9b1ac6f3f17c0af0238dadfb8229588f890 \ + --hash=sha256:9b15e5d17812d4d629ff576699954f74e2cc24a02a4fc401882dd94f81daba45 \ + --hash=sha256:9b4346b1225be26def3ccc6c965751c74868f0578cbcba293c8ae9168483d811 \ + --hash=sha256:9b5fb1ecb2c35362eab2dbd354fd1efa5a8440d3e73a68be11921042a0edc0ff \ + --hash=sha256:a10b8eebdaca6e9fdbaf88b5aefc0e324b763a5f40b1266532590d5afb268a4c \ + --hash=sha256:a1f5cc41a570269d1be7a676655875e3a53de4992a9fa38efb7983e97cf73d7c \ + --hash=sha256:a3bfe73a32bd0bdb9a87d586b05a23c0a1729205d79df66dee65bb2e40d671ba \ + --hash=sha256:a487b71fbf8a9edb72a8c7a456dda0184642d99cd007bc819c0b7ab93676a8ee \ + --hash=sha256:a609849aca463074c17de9cda173c276eb8fee9e441053529e7b9e249dc8b8ee \ + --hash=sha256:a76f1d679beccccdf8c1958e732a1dfcd6e749f8821ee59d7bec009ac308c029 \ + --hash=sha256:a7ea4e1fbd253e5c68ea0fe63d08577f9d288a73f17d82f652ebc61fa48d878d \ + --hash=sha256:ab2a2a9cd7d044e1a11ca64a86ad3361d318176924bbe5152fbc69f99be20b8c \ + --hash=sha256:ad3fc2d859a709baf9dd9607bb72f599b1cfb8a39eafd41307d0c3c4766763cb \ + --hash=sha256:add4e0a000858fe9bb39ed55f31085506a5c38363e6eb4a1e5943a10c2bfc3d1 \ + --hash=sha256:aea05f701ccd2a76b34f0daf47ca5068176ff553510b614770c90d76ac88df06 \ + --hash=sha256:b8bb331aad734b059c4b450cd0a225652f16889e286b2345af5e2c3c625c3d85 \ + --hash=sha256:bdb9f3d865b2dafe7f9ad7f30ef563c80d0ddd2fdc8cc9b8e4f242f475e34d75 \ + --hash=sha256:c084841b879c4d9b9fa34e5d5263994f21aea7fd9c6add29194dbb41a6210536 \ + --hash=sha256:c48c7e150c095d5e3cea7452347ba26094be905d6099d24f9319a8b475fcd3e0 \ + --hash=sha256:c7e5070cf3ec92d98f57574da0224f8c73faf1ddd6d8afa0b8c9f6e86997bc74 \ + --hash=sha256:c87654e29a35938baead1c4559858f346f4a2a7588574a14d784f300ffba0efd \ + --hash=sha256:c8ffe3431d98cc043a14e88b21288b5ec7ee12cb01260e94385887f285ef9389 \ + --hash=sha256:c9faaebb1c6212c20afd8043cd6ed9de0a47d77f91a6b5b48f4e46ed470703fe \ + --hash=sha256:d1454899909d63cc9199a89fcc4f81bdd9004aef577d4ffc022e600c412d57f3 \ + --hash=sha256:d6b7d93657332c817b8d674ef6bf1ab7796b4f7ce05e420fd45bd258a72ac804 \ + --hash=sha256:dbc4900e95a98fc0729523be9d93a8fedebb026f32ed9ffc08acd82e3e181503 \ + --hash=sha256:e40d20ae1722d6b8ea6acf4597e789604649dcd9c295eb7361a28225bc2e9e12 \ + --hash=sha256:e4836c5645f40fbdc275e5670819bde5ab5f2e882290d304e3c6ddab1576a6d0 \ + --hash=sha256:e4ab69fa37f8090f2d971a5d2bc606c7401170dbdae083c393d6cbf439cb45b8 \ + --hash=sha256:ef7699b7a5a244b1119f85c5bbc13f152cd38240cbb2baa19b769433bae98e50 \ + --hash=sha256:f0c8fe5aeadd8a0e5b0598f8a6ee3533135ca50fd3f20f130f9d72baf5c6ac58 \ + --hash=sha256:f2cb63c49bc96847c3bb8dca350970e4dcd19936f391cfdfd057dcb37c4fa97e \ + --hash=sha256:f4d4efb218264ecf0f8516196c9e2d1a0679d9fb3bb15df1155a35220062eba8 \ + --hash=sha256:f683dcd49e2494a7535e30f779aa1ad6e3732a019d80abe1309ea91ccd3230e3 \ + --hash=sha256:f83c971eb9d2358b6a18da51dc0ae00556ac7c73104dde16e9e14c15aaf685ca \ + --hash=sha256:f8df32a99cc46eb0ee90afd9ada113ae2cafe7e8d673686cf03ec53e49635439 \ + --hash=sha256:ff1fb2dfef035549565a4124998fadcb7a3d4957131ddf004a56edeb029626b3 # via mypy markupsafe==3.0.3 \ --hash=sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f \ @@ -490,21 +488,21 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via jinja2 -maturin==1.11.0 \ - --hash=sha256:0fbe565ede0901de7743cd028ad6c13be623b1c7158641f8a50d7a4353f4a97c \ - --hash=sha256:16cb48f1f2b6b3d8c2732f77d98d8f7f0ab84765abf0c1c82df2c8ea7d8ef2ec \ - --hash=sha256:276a900d4096c246cc236aa00460adb3ab195c37172a9f1087bbde6a127f0780 \ - --hash=sha256:51cadd0373950cfae6aac6823a3d2bf56e34e4efed0abae8c7d15e337d9bb5e6 \ - --hash=sha256:83b73299f36301d943550c609e0a0dff08d21e3674c1369c10df77ce470fd97b \ - --hash=sha256:8695b79462e1f46013993d715485db289cf5a7702aa2d9941ac333564ca20d79 \ - --hash=sha256:8bf16fc56f4abcf3af7d5fb6dab3888f73e3648287c8efe77e14fa1b006a3ef4 \ - --hash=sha256:95c5d778c96ab237837cd6d38e01f0bdca52c64e0d00647a69133a8e7ae4eed4 \ - --hash=sha256:9aaaec73e120ac7add99f53d606aa6d432c8e0337af742b2ca26fb8d17181500 \ - --hash=sha256:aa2d9db1c03e9eb0640a578caf00a6fa2d9399abb7375a970b0f6d6e934b5441 \ - --hash=sha256:d13d3721931d407491d9b3fe161146aa78ab08a8fc9735302abee1d368aedb03 \ - --hash=sha256:d53bde4f939dac9340aa253c2765073de6b8595a29a294503042fcbfec8bd842 \ - --hash=sha256:dba7daeb54615532c11f8fe39bc9514b81215f6f4e91909ec227e06227c286cf \ - --hash=sha256:debf472d3ecd76a3a750b056b99dcb64c119467dc44f0e2d6e6363acb128b96a +maturin==1.11.5 \ + --hash=sha256:1c27a2eb47821edf26c75d100b3150b52dca2c1a5f074d7514af06f7a7acb9d5 \ + --hash=sha256:2079447967819b5cf615e5b5b99a406d662effdc8d6afd493dcd253c6afc3707 \ + --hash=sha256:2a4e872fb78e77748217084ffeb59de565d08a86ccefdace054520aaa7b66db4 \ + --hash=sha256:2a596eab137cb3e169b97e89a739515abfa7a8755e2e5f0fc91432ef446f74f4 \ + --hash=sha256:49f85ce6cbe478e9743ecddd6da2964afc0ded57013aa4d054256be702d23d40 \ + --hash=sha256:50f6c668c1d5d4d4dc1c3ffec7b4270dab493e5b2368f8e4213f4bcde6a50eea \ + --hash=sha256:70d3e5beffb9ef9dfae5f3c1a7eeb572091505eb8cb076e9434518df1c42a73b \ + --hash=sha256:7579cf47640fb9595a19fe83a742cbf63203f0343055c349c1cab39045a30c29 \ + --hash=sha256:8127d2cd25950bacbcdc8a2ec6daab1d4d27200f7d73964392680ad64d27f7f0 \ + --hash=sha256:9348f7f0a346108e0c96e6719be91da4470bd43c15802435e9f4157f5cca43d4 \ + --hash=sha256:c739b243d012386902f112ea63a54a94848932b70ae3565fa5e121fd1c0200e0 \ + --hash=sha256:edd1d4d35050ea2b9ef42aa01e87fe019a1e822940346b35ccb973e0aa8f6d82 \ + --hash=sha256:f1320dacddcd3aa84a4bdfc77ee6fdb60e4c3835c853d7eb79c09473628b0498 \ + --hash=sha256:ffe7418834ff3b4a6c987187b7abb85ba033f4733e089d77d84e2de87057b4e7 # via # cryptography # pydantic-core @@ -528,95 +526,95 @@ mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 # via mypy -numpy==2.4.0 \ - --hash=sha256:009bd0ea12d3c784b6639a8457537016ce5172109e585338e11334f6a7bb88ee \ - --hash=sha256:02a2038eb27f9443a8b266a66911e926566b5a6ffd1a689b588f7f35b81e7dc3 \ - --hash=sha256:0804a8e4ab070d1d35496e65ffd3cf8114c136a2b81f61dfab0de4b218aacfd5 \ - --hash=sha256:0feafc9e03128074689183031181fac0897ff169692d8492066e949041096548 \ - --hash=sha256:1889b3a3f47a7b5bee16bc25a2145bd7cb91897f815ce3499db64c7458b6d91d \ - --hash=sha256:1d8f9fde5f6dc1b6fc34df8162f3b3079365468703fee7f31d4e0cc8c63baed9 \ - --hash=sha256:1ee32359fb7543b7b7bd0b2f46294db27e29e7bbdf70541e81b190836cd83ded \ - --hash=sha256:20c115517513831860c573996e395707aa9fb691eb179200125c250e895fcd93 \ - --hash=sha256:21555da4ec4a0c942520ead42c3b0dc9477441e085c42b0fbdd6a084869a6f6b \ - --hash=sha256:23a3e9d1a6f360267e8fbb38ba5db355a6a7e9be71d7fce7ab3125e88bb646c8 \ - --hash=sha256:2a8b6bb8369abefb8bd1801b054ad50e02b3275c8614dc6e5b0373c305291037 \ - --hash=sha256:2e284ca13d5a8367e43734148622caf0b261b275673823593e3e3634a6490f83 \ - --hash=sha256:2f585f52b2baf07ff3356158d9268ea095e221371f1074fadea2f42544d58b4d \ - --hash=sha256:316b2f2584682318539f0bcaca5a496ce9ca78c88066579ebd11fd06f8e4741e \ - --hash=sha256:32ed06d0fe9cae27d8fb5f400c63ccee72370599c75e683a6358dd3a4fb50aaf \ - --hash=sha256:355354388cba60f2132df297e2d53053d4063f79077b67b481d21276d61fc4df \ - --hash=sha256:35ddc8f4914466e6fc954c76527aa91aa763682a4f6d73249ef20b418fe6effb \ - --hash=sha256:36667db4d6c1cea79c8930ab72fadfb4060feb4bfe724141cd4bd064d2e5f8ce \ - --hash=sha256:36cbfb13c152b1c7c184ddac43765db8ad672567e7bafff2cc755a09917ed2e6 \ - --hash=sha256:39699233bc72dd482da1415dcb06076e32f60eddc796a796c5fb6c5efce94667 \ - --hash=sha256:39b19251dec4de8ff8496cd0806cbe27bf0684f765abb1f4809554de93785f2d \ - --hash=sha256:3d857f55e7fdf7c38ab96c4558c95b97d1c685be6b05c249f5fdafcbd6f9899e \ - --hash=sha256:3de19cfecd1465d0dcf8a5b5ea8b3155b42ed0b639dba4b71e323d74f2a3be5e \ - --hash=sha256:3f3096405acc48887458bbf9f6814d43785ac7ba2a57ea6442b581dedbc60ce6 \ - --hash=sha256:40483b2f2d3ba7aad426443767ff5632ec3156ef09742b96913787d13c336471 \ - --hash=sha256:413aa561266a4be2d06cd2b9665e89d9f54c543f418773076a76adcf2af08bc7 \ - --hash=sha256:44aba2f0cafd287871a495fb3163408b0bd25bbce135c6f621534a07f4f7875c \ - --hash=sha256:49ff32b09f5aa0cd30a20c2b39db3e669c845589f2b7fc910365210887e39344 \ - --hash=sha256:4d1cfce39e511069b11e67cd0bd78ceff31443b7c9e5c04db73c7a19f572967c \ - --hash=sha256:57c540ed8fb1f05cb997c6761cd56db72395b0d6985e90571ff660452ade4f98 \ - --hash=sha256:5f48cb3e88fbc294dc90e215d86fbaf1c852c63dbdb6c3a3e63f45c4b57f7344 \ - --hash=sha256:5fe44e277225fd3dff6882d86d3d447205d43532c3627313d17e754fb3905a0e \ - --hash=sha256:60e8c196cd82cbbd4f130b5290007e13e6de3eca79f0d4d38014769d96a7c475 \ - --hash=sha256:65167da969cd1ec3a1df31cb221ca3a19a8aaa25370ecb17d428415e93c1935e \ - --hash=sha256:680060061adb2d74ce352628cb798cfdec399068aa7f07ba9fb818b2b3305f98 \ - --hash=sha256:6bbaebf0d11567fa8926215ae731e1d58e6ec28a8a25235b8a47405d301332db \ - --hash=sha256:6c05483c3136ac4c91b4e81903cb53a8707d316f488124d0398499a4f8e8ef51 \ - --hash=sha256:6dc8b7e2f4eb184b37655195f421836cfae6f58197b67e3ffc501f1333d993fa \ - --hash=sha256:6e504f7b16118198f138ef31ba24d985b124c2c469fe8467007cf30fd992f934 \ - --hash=sha256:74623f2ab5cc3f7c886add4f735d1031a1d2be4a4ae63c0546cfd74e7a31ddf6 \ - --hash=sha256:77f0d13fa87036d7553bf81f0e1fe3ce68d14c9976c9851744e4d3e91127e95f \ - --hash=sha256:85eef4cb5625c47ee6425c58a3502555e10f45ee973da878ac8248ad58c136f3 \ - --hash=sha256:882567b7ae57c1b1a0250208cc21a7976d8cbcc49d5a322e607e6f09c9e0bd53 \ - --hash=sha256:8b986403023c8f3bf8f487c2e6186afda156174d31c175f747d8934dfddf3479 \ - --hash=sha256:8cfa5f29a695cb7438965e6c3e8d06e0416060cf0d709c1b1c1653a939bf5c2a \ - --hash=sha256:8eafe7c36c8430b7794edeab3087dec7bf31d634d92f2af9949434b9d1964cba \ - --hash=sha256:9198f447e1dc5647d07c9a6bbe2063cc0132728cc7175b39dbc796da5b54920d \ - --hash=sha256:92190db305a6f48734d3982f2c60fa30d6b5ee9bff10f2887b930d7b40119f4c \ - --hash=sha256:927ccf5cd17c48f801f4ed43a7e5673a2724bd2171460be3e3894e6e332ef83a \ - --hash=sha256:98e81648e0b36e325ab67e46b5400a7a6d4a22b8a7c8e8bbfe20e7db7906bf95 \ - --hash=sha256:9a818668b674047fd88c4cddada7ab8f1c298812783e8328e956b78dc4807f9f \ - --hash=sha256:a152d86a3ae00ba5f47b3acf3b827509fd0b6cb7d3259665e63dafbad22a75ea \ - --hash=sha256:a2718c1de8504121714234b6f8241d0019450353276c88b9453c9c3d92e101db \ - --hash=sha256:a39fb973a726e63223287adc6dafe444ce75af952d711e400f3bf2b36ef55a7b \ - --hash=sha256:a899699294f28f7be8992853c0c60741f16ff199205e2e6cdca155762cbaa59d \ - --hash=sha256:a8fdfed3deaf1928fb7667d96e0567cdf58c2b370ea2ee7e586aa383ec2cb346 \ - --hash=sha256:aabb081ca0ec5d39591fc33018cd4b3f96e1a2dd6756282029986d00a785fba4 \ - --hash=sha256:b1f5b45829ac1848893f0ddf5cb326110604d6df96cdc255b0bf9edd154104d4 \ - --hash=sha256:b48e35f4ab6f6a7597c46e301126ceba4c44cd3280e3750f85db48b082624fa4 \ - --hash=sha256:b54c83f1c0c0f1d748dca0af516062b8829d53d1f0c402be24b4257a9c48ada6 \ - --hash=sha256:ba0cb30acd3ef11c94dc27fbfba68940652492bc107075e7ffe23057f9425681 \ - --hash=sha256:bb50ce5fb202a26fd5404620e7ef820ad1ab3558b444cb0b55beb7ef66cd2d63 \ - --hash=sha256:c95eb6db2884917d86cde0b4d4cf31adf485c8ec36bf8696dd66fa70de96f36b \ - --hash=sha256:d0ffd9e2e4441c96a9c91ec1783285d80bf835b677853fc2770a89d50c1e48ac \ - --hash=sha256:d57b5046c120561ba8fa8e4030fbb8b822f3063910fa901ffadf16e2b7128ad6 \ - --hash=sha256:d9e6a7664ddd9746e20b7325351fe1a8408d0a2bf9c63b5e898290ddc8f09544 \ - --hash=sha256:dc578891de1db95b2a35001b695451767b580bb45753717498213c5ff3c41d63 \ - --hash=sha256:e0434aa22c821f44eeb4c650b81c7fbdd8c0122c6c4b5a576a76d5a35625ecd9 \ - --hash=sha256:e06a922a469cae9a57100864caf4f8a97a1026513793969f8ba5b63137a35d25 \ - --hash=sha256:e493962256a38f58283de033d8af176c5c91c084ea30f15834f7545451c42059 \ - --hash=sha256:ecb0019d44f4cdb50b676c5d0cb4b1eae8e15d1ed3d3e6639f986fc92b2ec52c \ - --hash=sha256:f935c4493eda9069851058fa0d9e39dbf6286be690066509305e52912714dbb2 +numpy==2.4.1 \ + --hash=sha256:0093e85df2960d7e4049664b26afc58b03236e967fb942354deef3208857a04c \ + --hash=sha256:09aa8a87e45b55a1c2c205d42e2808849ece5c484b2aab11fecabec3841cafba \ + --hash=sha256:0cce2a669e3c8ba02ee563c7835f92c153cf02edff1ae05e1823f1dde21b16a5 \ + --hash=sha256:0e6e8f9d9ecf95399982019c01223dc130542960a12edfa8edd1122dfa66a8a8 \ + --hash=sha256:0f118ce6b972080ba0758c6087c3617b5ba243d806268623dc34216d69099ba0 \ + --hash=sha256:178de8f87948163d98a4c9ab5bee4ce6519ca918926ec8df195af582de28544d \ + --hash=sha256:18e14c4d09d55eef39a6ab5b08406e84bc6869c1e34eef45564804f90b7e0574 \ + --hash=sha256:2023ef86243690c2791fd6353e5b4848eedaa88ca8a2d129f462049f6d484696 \ + --hash=sha256:20d4649c773f66cc2fc36f663e091f57c3b7655f936a4c681b4250855d1da8f5 \ + --hash=sha256:2302dc0224c1cbc49bb94f7064f3f923a971bfae45c33870dcbff63a2a550505 \ + --hash=sha256:26f0bcd9c79a00e339565b303badc74d3ea2bd6d52191eeca5f95936cad107d0 \ + --hash=sha256:297c72b1b98100c2e8f873d5d35fb551fce7040ade83d67dd51d38c8d42a2162 \ + --hash=sha256:2f44de05659b67d20499cbc96d49f2650769afcb398b79b324bb6e297bfe3844 \ + --hash=sha256:2ffd257026eb1b34352e749d7cc1678b5eeec3e329ad8c9965a797e08ccba205 \ + --hash=sha256:382ad67d99ef49024f11d1ce5dcb5ad8432446e4246a4b014418ba3a1175a1f4 \ + --hash=sha256:3869ea1ee1a1edc16c29bbe3a2f2a4e515cc3a44d43903ad41e0cacdbaf733dc \ + --hash=sha256:3d1a100e48cb266090a031397863ff8a30050ceefd798f686ff92c67a486753d \ + --hash=sha256:423797bdab2eeefbe608d7c1ec7b2b4fd3c58d51460f1ee26c7500a1d9c9ee93 \ + --hash=sha256:42d7dd5fa36d16d52a84f821eb96031836fd405ee6955dd732f2023724d0aa01 \ + --hash=sha256:49e792ec351315e16da54b543db06ca8a86985ab682602d90c60ef4ff4db2a9c \ + --hash=sha256:4e53170557d37ae404bf8d542ca5b7c629d6efa1117dac6a83e394142ea0a43f \ + --hash=sha256:4f1b68ff47680c2925f8063402a693ede215f0257f02596b1318ecdfb1d79e33 \ + --hash=sha256:4f9c360ecef085e5841c539a9a12b883dff005fbd7ce46722f5e9cef52634d82 \ + --hash=sha256:529050522e983e00a6c1c6b67411083630de8b57f65e853d7b03d9281b8694d2 \ + --hash=sha256:52b5f61bdb323b566b528899cc7db2ba5d1015bda7ea811a8bcf3c89c331fa42 \ + --hash=sha256:538bf4ec353709c765ff75ae616c34d3c3dca1a68312727e8f2676ea644f8509 \ + --hash=sha256:5adf01965456a664fc727ed69cc71848f28d063217c63e1a0e200a118d5eec9a \ + --hash=sha256:5b55aa56165b17aaf15520beb9cbd33c9039810e0d9643dd4379e44294c7303e \ + --hash=sha256:5d558123217a83b2d1ba316b986e9248a1ed1971ad495963d555ccd75dcb1556 \ + --hash=sha256:5de60946f14ebe15e713a6f22850c2372fa72f4ff9a432ab44aa90edcadaa65a \ + --hash=sha256:62fea415f83ad8fdb6c20840578e5fbaf5ddd65e0ec6c3c47eda0f69da172510 \ + --hash=sha256:6436cffb4f2bf26c974344439439c95e152c9a527013f26b3577be6c2ca64295 \ + --hash=sha256:6461de5113088b399d655d45c3897fa188766415d0f568f175ab071c8873bd73 \ + --hash=sha256:69e7419c9012c4aaf695109564e3387f1259f001b4326dfa55907b098af082d3 \ + --hash=sha256:71abbea030f2cfc3092a0ff9f8c8fdefdc5e0bf7d9d9c99663538bb0ecdac0b9 \ + --hash=sha256:7211b95ca365519d3596a1d8688a95874cc94219d417504d9ecb2df99fa7bfa8 \ + --hash=sha256:727c6c3275ddefa0dc078524a85e064c057b4f4e71ca5ca29a19163c607be745 \ + --hash=sha256:79e9e06c4c2379db47f3f6fc7a8652e7498251789bf8ff5bd43bf478ef314ca2 \ + --hash=sha256:7ad270f438cbdd402c364980317fb6b117d9ec5e226fff5b4148dd9aa9fc6e02 \ + --hash=sha256:7d5d7999df434a038d75a748275cd6c0094b0ecdb0837342b332a82defc4dc4d \ + --hash=sha256:8097529164c0f3e32bb89412a0905d9100bf434d9692d9fc275e18dcf53c9344 \ + --hash=sha256:82c55962006156aeef1629b953fd359064aa47e4d82cfc8e67f0918f7da3344f \ + --hash=sha256:8361ea4220d763e54cff2fbe7d8c93526b744f7cd9ddab47afeff7e14e8503be \ + --hash=sha256:899d2c18024984814ac7e83f8f49d8e8180e2fbe1b2e252f2e7f1d06bea92425 \ + --hash=sha256:8ad35f20be147a204e28b6a0575fbf3540c5e5f802634d4258d55b1ff5facce1 \ + --hash=sha256:8f085da926c0d491ffff3096f91078cc97ea67e7e6b65e490bc8dcda65663be2 \ + --hash=sha256:9171a42fcad32dcf3fa86f0a4faa5e9f8facefdb276f54b8b390d90447cff4e2 \ + --hash=sha256:92a0e65272fd60bfa0d9278e0484c2f52fe03b97aedc02b357f33fe752c52ffb \ + --hash=sha256:941c2a93313d030f219f3a71fd3d91a728b82979a5e8034eb2e60d394a2b83f9 \ + --hash=sha256:98b35775e03ab7f868908b524fc0a84d38932d8daf7b7e1c3c3a1b6c7a2c9f15 \ + --hash=sha256:a1ceafc5042451a858231588a104093474c6a5c57dcc724841f5c888d237d690 \ + --hash=sha256:a73044b752f5d34d4232f25f18160a1cc418ea4507f5f11e299d8ac36875f8a0 \ + --hash=sha256:a7870e8c5fc11aef57d6fea4b4085e537a3a60ad2cdd14322ed531fdca68d261 \ + --hash=sha256:a92f227dbcdc9e4c3e193add1a189a9909947d4f8504c576f4a732fd0b54240a \ + --hash=sha256:ac08c63cb7779b85e9d5318e6c3518b424bc1f364ac4cb2c6136f12e5ff2dccc \ + --hash=sha256:b6bcf39112e956594b3331316d90c90c90fb961e39696bda97b89462f5f3943f \ + --hash=sha256:c0faba4a331195bfa96f93dd9dfaa10b2c7aa8cda3a02b7fd635e588fe821bf5 \ + --hash=sha256:ce9ce141a505053b3c7bce3216071f3bf5c182b8b28930f14cd24d43932cd2df \ + --hash=sha256:cf6470d91d34bf669f61d515499859fa7a4c2f7c36434afb70e82df7217933f9 \ + --hash=sha256:d3703409aac693fa82c0aee023a1ae06a6e9d065dba10f5e8e80f642f1e9d0a2 \ + --hash=sha256:d3e3087f53e2b4428766b54932644d148613c5a595150533ae7f00dab2f319a8 \ + --hash=sha256:d3f8f0df9f4b8be57b3bf74a1d087fec68f927a2fab68231fdb442bf2c12e426 \ + --hash=sha256:d797454e37570cfd61143b73b8debd623c3c0952959adb817dd310a483d58a1b \ + --hash=sha256:e1a27bb1b2dee45a2a53f5ca6ff2d1a7f135287883a1689e930d44d1ff296c87 \ + --hash=sha256:e3bd2cb07841166420d2fa7146c96ce00cb3410664cbc1a6be028e456c4ee220 \ + --hash=sha256:e7b6b5e28bbd47b7532698e5db2fe1db693d84b58c254e4389d99a27bb9b8f6b \ + --hash=sha256:e867df947d427cdd7a60e3e271729090b0f0df80f5f10ab7dd436f40811699c3 \ + --hash=sha256:ea66d2b41ca4a1630aae5507ee0a71647d3124d1741980138aa8f28f44dac36e \ + --hash=sha256:edee228f76ee2dab4579fad6f51f6a305de09d444280109e0f75df247ff21501 \ + --hash=sha256:f0a90aba7d521e6954670550e561a4cb925713bd944445dbe9e729b71f6cabee \ + --hash=sha256:f93bc6892fe7b0663e5ffa83b61aab510aacffd58c16e012bb9352d489d90cb7 \ + --hash=sha256:fb1461c99de4d040666ca0444057b06541e5642f800b71c56e6ea92d6a853a0c # via # pandas # pyarrow -packaging==24.2 \ - --hash=sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759 \ - --hash=sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f +packaging==25.0 \ + --hash=sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484 \ + --hash=sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f # via - # dunamai # hatchling # meson-python # pyproject-metadata # scikit-build-core + # setuptools-git-versioning # setuptools-scm -pathspec==0.12.1 \ - --hash=sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 \ - --hash=sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712 +pathspec==1.0.3 \ + --hash=sha256:bac5cf97ae2c2876e2d25ebb15078eb04d76e4b98921ee31c6f85ade8b59444d \ + --hash=sha256:e80767021c1cc524aa3fb14bedda9c34406591343cc42797b386ce7b9354fb6c # via # hatchling # mypy @@ -641,8 +639,6 @@ poetry-core==1.9.1 \ --hash=sha256:7a2d49214bf58b4f17f99d6891d947a9836c9899a67a5069f52d7b67217f61b8 # via # dunamai - # ibis-framework - # ibis-substrait # pkgconfig # poetry-dynamic-versioning # rich @@ -652,10 +648,10 @@ poetry-core==2.2.1 \ --hash=sha256:97e50d8593c8729d3f49364b428583e044087ee3def1e010c6496db76bd65ac5 \ --hash=sha256:bdfce710edc10bfcf9ab35041605c480829be4ab23f5bc01202cfe5db8f125ab # via aiohappyeyeballs -poetry-dynamic-versioning==1.9.1 \ - --hash=sha256:65a0c814e6d30d4807734a3c34edf261fd7cc3b340dbd23b6a33ee41f7d0b547 \ - --hash=sha256:d6e7b9df817aa2ca4946cd695c6c89e1379d2e6c640f008a9b6170d081a9da48 - # via ibis-framework +pybind11-global==3.0.1 \ + --hash=sha256:0e8d5a68d084c50bf145ce5efdbdd00704dbe6315035d0b7a255708ddeb9faca \ + --hash=sha256:eb6ef4e8f5a60f4c0b6a9396cb7806f78d42f8d081e42a93c0bb62288f6cf403 + # via pybind11 pybind11==3.0.1 \ --hash=sha256:9c0f40056a016da59bab516efb523089139fcc6f2ba7e4930854c61efb932051 \ --hash=sha256:aa8f0aa6e0a94d3b64adfc38f560f33f15e589be2175e103c0a33c6bce55ee89 @@ -672,12 +668,18 @@ scikit-build-core==0.11.6 \ --hash=sha256:5982ccd839735be99cfd3b92a8847c6c196692f476c215da84b79d2ad12f9f1b \ --hash=sha256:ce6d8fe64e6b4c759ea0fb95d2f8a68f60d2df31c2989838633b8ec930736360 # via + # duckdb # patchelf # pybind11 + # pybind11-global semantic-version==2.10.0 \ --hash=sha256:bdabb6d336998cbb378d4b9db3a4b56a1e3235701dc05ea2690d9a997ed5041c \ --hash=sha256:de78a3b8e0feda74cabc54aab2da702113e33ac9d9eb9d2389bcf1f58b7d9177 # via setuptools-rust +setuptools-git-versioning==2.1.0 \ + --hash=sha256:09a15cbb9a00884e91a3591a4c9ec1ff93c24b1b4a40de39a44815196beb7ebf \ + --hash=sha256:6aef5b8bb1cfb953b6b343d27cbfc561d96cf2a2ee23c2e0dd3591042a059921 + # via toolz setuptools-rust==1.12.0 \ --hash=sha256:7e7db90547f224a835b45f5ad90c983340828a345554a9a660bdb2de8605dcdd \ --hash=sha256:d94a93f0c97751c17014565f07bdc324bee45d396cd1bba83d8e7af92b945f0c @@ -701,7 +703,6 @@ setuptools-scm==9.2.2 \ # pymilvus # setuptools-rust # sqlglot - # substrait # tabulate # tenacity # tqdm @@ -712,59 +713,62 @@ smmap==5.0.2 \ --hash=sha256:26ea65a03958fa0c8a1c7e8c7a58fdc77221b8910f6be2131affade476898ad5 \ --hash=sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e # via gitdb -tomli==2.3.0 \ - --hash=sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456 \ - --hash=sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845 \ - --hash=sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999 \ - --hash=sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0 \ - --hash=sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878 \ - --hash=sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf \ - --hash=sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3 \ - --hash=sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be \ - --hash=sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52 \ - --hash=sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b \ - --hash=sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67 \ - --hash=sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549 \ - --hash=sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba \ - --hash=sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22 \ - --hash=sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c \ - --hash=sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f \ - --hash=sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6 \ - --hash=sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba \ - --hash=sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45 \ - --hash=sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f \ - --hash=sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77 \ - --hash=sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606 \ - --hash=sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441 \ - --hash=sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0 \ - --hash=sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f \ - --hash=sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530 \ - --hash=sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05 \ - --hash=sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8 \ - --hash=sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005 \ - --hash=sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879 \ - --hash=sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae \ - --hash=sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc \ - --hash=sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b \ - --hash=sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b \ - --hash=sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e \ - --hash=sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf \ - --hash=sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac \ - --hash=sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8 \ - --hash=sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b \ - --hash=sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf \ - --hash=sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463 \ - --hash=sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876 +tomli==2.4.0 \ + --hash=sha256:0408e3de5ec77cc7f81960c362543cbbd91ef883e3138e81b729fc3eea5b9729 \ + --hash=sha256:0dc56fef0e2c1c470aeac5b6ca8cc7b640bb93e92d9803ddaf9ea03e198f5b0b \ + --hash=sha256:0e0fe8a0b8312acf3a88077a0802565cb09ee34107813bba1c7cd591fa6cfc8d \ + --hash=sha256:0f2e3955efea4d1cfbcb87bc321e00dc08d2bcb737fd1d5e398af111d86db5df \ + --hash=sha256:133e93646ec4300d651839d382d63edff11d8978be23da4cc106f5a18b7d0576 \ + --hash=sha256:1b168f2731796b045128c45982d3a4874057626da0e2ef1fdd722848b741361d \ + --hash=sha256:1c8a885b370751837c029ef9bc014f27d80840e48bac415f3412e6593bbc18c1 \ + --hash=sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a \ + --hash=sha256:1fb2945cbe303b1419e2706e711b7113da57b7db31ee378d08712d678a34e51e \ + --hash=sha256:20cedb4ee43278bc4f2fee6cb50daec836959aadaf948db5172e776dd3d993fc \ + --hash=sha256:20ffd184fb1df76a66e34bd1b36b4a4641bd2b82954befa32fe8163e79f1a702 \ + --hash=sha256:26ab906a1eb794cd4e103691daa23d95c6919cc2fa9160000ac02370cc9dd3f6 \ + --hash=sha256:2add28aacc7425117ff6364fe9e06a183bb0251b03f986df0e78e974047571fd \ + --hash=sha256:2b1e3b80e1d5e52e40e9b924ec43d81570f0e7d09d11081b797bc4692765a3d4 \ + --hash=sha256:31d556d079d72db7c584c0627ff3a24c5d3fb4f730221d3444f3efb1b2514776 \ + --hash=sha256:36b9d05b51e65b254ea6c2585b59d2c4cb91c8a3d91d0ed0f17591a29aaea54a \ + --hash=sha256:39b0b5d1b6dd03684b3fb276407ebed7090bbec989fa55838c98560c01113b66 \ + --hash=sha256:3cf226acb51d8f1c394c1b310e0e0e61fecdd7adcb78d01e294ac297dd2e7f87 \ + --hash=sha256:3d895d56bd3f82ddd6faaff993c275efc2ff38e52322ea264122d72729dca2b2 \ + --hash=sha256:413540dce94673591859c4c6f794dfeaa845e98bf35d72ed59636f869ef9f86f \ + --hash=sha256:43e685b9b2341681907759cf3a04e14d7104b3580f808cfde1dfdb60ada85475 \ + --hash=sha256:4cbcb367d44a1f0c2be408758b43e1ffb5308abe0ea222897d6bfc8e8281ef2f \ + --hash=sha256:551e321c6ba03b55676970b47cb1b73f14a0a4dce6a3e1a9458fd6d921d72e95 \ + --hash=sha256:5572e41282d5268eb09a697c89a7bee84fae66511f87533a6f88bd2f7b652da9 \ + --hash=sha256:5aa48d7c2356055feef06a43611fc401a07337d5b006be13a30f6c58f869e3c3 \ + --hash=sha256:5b5807f3999fb66776dbce568cc9a828544244a8eb84b84b9bafc080c99597b9 \ + --hash=sha256:5e3f639a7a8f10069d0e15408c0b96a2a828cfdec6fca05296ebcdcc28ca7c76 \ + --hash=sha256:685306e2cc7da35be4ee914fd34ab801a6acacb061b6a7abca922aaf9ad368da \ + --hash=sha256:75c2f8bbddf170e8effc98f5e9084a8751f8174ea6ccf4fca5398436e0320bc8 \ + --hash=sha256:7b438885858efd5be02a9a133caf5812b8776ee0c969fea02c45e8e3f296ba51 \ + --hash=sha256:7d49c66a7d5e56ac959cb6fc583aff0651094ec071ba9ad43df785abc2320d86 \ + --hash=sha256:7d6d9a4aee98fac3eab4952ad1d73aee87359452d1c086b5ceb43ed02ddb16b8 \ + --hash=sha256:84d081fbc252d1b6a982e1870660e7330fb8f90f676f6e78b052ad4e64714bf0 \ + --hash=sha256:8768715ffc41f0008abe25d808c20c3d990f42b6e2e58305d5da280ae7d1fa3b \ + --hash=sha256:920b1de295e72887bafa3ad9f7a792f811847d57ea6b1215154030cf131f16b1 \ + --hash=sha256:9a08144fa4cba33db5255f9b74f0b89888622109bd2776148f2597447f92a94e \ + --hash=sha256:a26d7ff68dfdb9f87a016ecfd1e1c2bacbe3108f4e0f8bcd2228ef9a766c787d \ + --hash=sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c \ + --hash=sha256:b5ef256a3fd497d4973c11bf142e9ed78b150d36f5773f1ca6088c230ffc5867 \ + --hash=sha256:b6c78bdf37764092d369722d9946cb65b8767bfa4110f902a1b2542d8d173c8a \ + --hash=sha256:bbb1b10aa643d973366dc2cb1ad94f99c1726a02343d43cbc011edbfac579e7c \ + --hash=sha256:c084ad935abe686bd9c898e62a02a19abfc9760b5a79bc29644463eaf2840cb0 \ + --hash=sha256:c73add4bb52a206fd0c0723432db123c0c75c280cbd67174dd9d2db228ebb1b4 \ + --hash=sha256:cae9c19ed12d4e8f3ebf46d1a75090e4c0dc16271c5bce1c833ac168f08fb614 \ + --hash=sha256:d20b797a5c1ad80c516e41bc1fb0443ddb5006e9aaa7bda2d71978346aeb9132 \ + --hash=sha256:d3d1654e11d724760cdb37a3d7691f0be9db5fbdaef59c9f532aabf87006dbaa \ + --hash=sha256:d878f2a6707cc9d53a1be1414bbb419e629c3d6e67f69230217bb663e76b5087 # via fastapi-mcp -tomlkit==0.13.3 \ - --hash=sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1 \ - --hash=sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0 - # via - # poetry-dynamic-versioning - # uv-dynamic-versioning -trove-classifiers==2025.12.1.14 \ - --hash=sha256:a74f0400524fc83620a9be74a07074b5cbe7594fd4d97fd4c2bfde625fdc1633 \ - --hash=sha256:a8206978ede95937b9959c3aff3eb258bbf7b07dff391ddd4ea7e61f316635ab +tomlkit==0.14.0 \ + --hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 \ + --hash=sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064 + # via uv-dynamic-versioning +trove-classifiers==2026.1.12.15 \ + --hash=sha256:832a7e89ccc43b64b89f8f9d9150c069ebcd17d2dc68279bc00bb53f2a9ae112 \ + --hash=sha256:8832dfbc226fc4df986666b9cb3a018818b1498aeb79f5f66a31a918b47a98f1 # via hatchling types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ @@ -794,7 +798,6 @@ wheel==0.45.1 \ --hash=sha256:661e1abd9198507b1409a20c02106d9670b2576e916d58f520316666abca6729 \ --hash=sha256:708e7481cc80179af0e556bbf0cc00b8444c7321e2700b8d8580231d13017248 # via - # cachetools # google-crc32c # httpx-sse # meson @@ -821,7 +824,6 @@ setuptools==80.9.0 \ # aiohttp # aiosignal # anyio - # cachetools # calver # certifi # cffi @@ -829,7 +831,6 @@ setuptools==80.9.0 \ # cryptography # dask # dill - # duckdb # frozenlist # gitpython # google-api-core @@ -841,7 +842,6 @@ setuptools==80.9.0 \ # gunicorn # httptools # httpx-sse - # ibis-substrait # librt # markupsafe # maturin @@ -874,10 +874,11 @@ setuptools==80.9.0 \ # shellingham # snowflake-connector-python # sqlalchemy + # sqlglot # sse-starlette - # substrait # tabulate # tenacity + # toolz # tqdm # trove-classifiers # typeguard diff --git a/sdk/python/requirements/py3.12-minimal-sdist-requirements.txt b/sdk/python/requirements/py3.12-minimal-sdist-requirements.txt index b787047fe86..ec8d425ffb4 100644 --- a/sdk/python/requirements/py3.12-minimal-sdist-requirements.txt +++ b/sdk/python/requirements/py3.12-minimal-sdist-requirements.txt @@ -8,127 +8,127 @@ aiohappyeyeballs==2.6.1 \ --hash=sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558 \ --hash=sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8 # via aiohttp -aiohttp==3.13.2 \ - --hash=sha256:04c3971421576ed24c191f610052bcb2f059e395bc2489dd99e397f9bc466329 \ - --hash=sha256:05c4dd3c48fb5f15db31f57eb35374cb0c09afdde532e7fb70a75aede0ed30f6 \ - --hash=sha256:070599407f4954021509193404c4ac53153525a19531051661440644728ba9a7 \ - --hash=sha256:0740f31a60848d6edb296a0df827473eede90c689b8f9f2a4cdde74889eb2254 \ - --hash=sha256:088912a78b4d4f547a1f19c099d5a506df17eacec3c6f4375e2831ec1d995742 \ - --hash=sha256:0a3d54e822688b56e9f6b5816fb3de3a3a64660efac64e4c2dc435230ad23bad \ - --hash=sha256:0db1e24b852f5f664cd728db140cf11ea0e82450471232a394b3d1a540b0f906 \ - --hash=sha256:0e87dff73f46e969af38ab3f7cb75316a7c944e2e574ff7c933bc01b10def7f5 \ - --hash=sha256:1237c1375eaef0db4dcd7c2559f42e8af7b87ea7d295b118c60c36a6e61cb811 \ - --hash=sha256:16f15a4eac3bc2d76c45f7ebdd48a65d41b242eb6c31c2245463b40b34584ded \ - --hash=sha256:1f9b2c2d4b9d958b1f9ae0c984ec1dd6b6689e15c75045be8ccb4011426268ca \ - --hash=sha256:204ffff2426c25dfda401ba08da85f9c59525cdc42bda26660463dd1cbcfec6f \ - --hash=sha256:20b10bbfbff766294fe99987f7bb3b74fdd2f1a2905f2562132641ad434dcf98 \ - --hash=sha256:20db2d67985d71ca033443a1ba2001c4b5693fe09b0e29f6d9358a99d4d62a8a \ - --hash=sha256:228a1cd556b3caca590e9511a89444925da87d35219a49ab5da0c36d2d943a6a \ - --hash=sha256:2372b15a5f62ed37789a6b383ff7344fc5b9f243999b0cd9b629d8bc5f5b4155 \ - --hash=sha256:23ad365e30108c422d0b4428cf271156dd56790f6dd50d770b8e360e6c5ab2e6 \ - --hash=sha256:23fb0783bc1a33640036465019d3bba069942616a6a2353c6907d7fe1ccdaf4e \ - --hash=sha256:2475391c29230e063ef53a66669b7b691c9bfc3f1426a0f7bcdf1216bdbac38b \ - --hash=sha256:27e569eb9d9e95dbd55c0fc3ec3a9335defbf1d8bc1d20171a49f3c4c607b93e \ - --hash=sha256:29562998ec66f988d49fb83c9b01694fa927186b781463f376c5845c121e4e0b \ - --hash=sha256:2adebd4577724dcae085665f294cc57c8701ddd4d26140504db622b8d566d7aa \ - --hash=sha256:2ca6ffef405fc9c09a746cb5d019c1672cd7f402542e379afc66b370833170cf \ - --hash=sha256:2e1a9bea6244a1d05a4e57c295d69e159a5c50d8ef16aa390948ee873478d9a5 \ - --hash=sha256:364e25edaabd3d37b1db1f0cbcee8c73c9a3727bfa262b83e5e4cf3489a2a9dc \ - --hash=sha256:364f55663085d658b8462a1c3f17b2b84a5c2e1ba858e1b79bff7b2e24ad1514 \ - --hash=sha256:39d02cb6025fe1aabca329c5632f48c9532a3dabccd859e7e2f110668972331f \ - --hash=sha256:3a92cf4b9bea33e15ecbaa5c59921be0f23222608143d025c989924f7e3e0c07 \ - --hash=sha256:40176a52c186aefef6eb3cad2cdd30cd06e3afbe88fe8ab2af9c0b90f228daca \ - --hash=sha256:4356474ad6333e41ccefd39eae869ba15a6c5299c9c01dfdcfdd5c107be4363e \ - --hash=sha256:43dff14e35aba17e3d6d5ba628858fb8cb51e30f44724a2d2f0c75be492c55e9 \ - --hash=sha256:4647d02df098f6434bafd7f32ad14942f05a9caa06c7016fdcc816f343997dd0 \ - --hash=sha256:47f438b1a28e926c37632bff3c44df7d27c9b57aaf4e34b1def3c07111fdb782 \ - --hash=sha256:4dd3db9d0f4ebca1d887d76f7cdbcd1116ac0d05a9221b9dad82c64a62578c4d \ - --hash=sha256:4ebf9cfc9ba24a74cf0718f04aac2a3bbe745902cc7c5ebc55c0f3b5777ef213 \ - --hash=sha256:5276807b9de9092af38ed23ce120539ab0ac955547b38563a9ba4f5b07b95293 \ - --hash=sha256:53b07472f235eb80e826ad038c9d106c2f653584753f3ddab907c83f49eedead \ - --hash=sha256:550bf765101ae721ee1d37d8095f47b1f220650f85fe1af37a90ce75bab89d04 \ - --hash=sha256:56d36e80d2003fa3fc0207fac644216d8532e9504a785ef9a8fd013f84a42c61 \ - --hash=sha256:585542825c4bc662221fb257889e011a5aa00f1ae4d75d1d246a5225289183e3 \ - --hash=sha256:5b927cf9b935a13e33644cbed6c8c4b2d0f25b713d838743f8fe7191b33829c4 \ - --hash=sha256:5d7f02042c1f009ffb70067326ef183a047425bb2ff3bc434ead4dd4a4a66a2b \ - --hash=sha256:6315fb6977f1d0dd41a107c527fee2ed5ab0550b7d885bc15fee20ccb17891da \ - --hash=sha256:66bac29b95a00db411cd758fea0e4b9bdba6d549dfe333f9a945430f5f2cc5a6 \ - --hash=sha256:6c00dbcf5f0d88796151e264a8eab23de2997c9303dd7c0bf622e23b24d3ce22 \ - --hash=sha256:6e7352512f763f760baaed2637055c49134fd1d35b37c2dedfac35bfe5cf8725 \ - --hash=sha256:7519bdc7dfc1940d201651b52bf5e03f5503bda45ad6eacf64dda98be5b2b6be \ - --hash=sha256:78cd586d8331fb8e241c2dd6b2f4061778cc69e150514b39a9e28dd050475661 \ - --hash=sha256:7a653d872afe9f33497215745da7a943d1dc15b728a9c8da1c3ac423af35178e \ - --hash=sha256:7c3a50345635a02db61792c85bb86daffac05330f6473d524f1a4e3ef9d0046d \ - --hash=sha256:7fbdf5ad6084f1940ce88933de34b62358d0f4a0b6ec097362dcd3e5a65a4989 \ - --hash=sha256:7fd19df530c292542636c2a9a85854fab93474396a52f1695e799186bbd7f24c \ - --hash=sha256:868e195e39b24aaa930b063c08bb0c17924899c16c672a28a65afded9c46c6ec \ - --hash=sha256:8709a0f05d59a71f33fd05c17fc11fcb8c30140506e13c2f5e8ee1b8964e1b45 \ - --hash=sha256:88d6c017966a78c5265d996c19cdb79235be5e6412268d7e2ce7dee339471b7a \ - --hash=sha256:8aa7c807df234f693fed0ecd507192fc97692e61fee5702cdc11155d2e5cadc8 \ - --hash=sha256:8b2f1414f6a1e0683f212ec80e813f4abef94c739fd090b66c9adf9d2a05feac \ - --hash=sha256:93655083005d71cd6c072cdab54c886e6570ad2c4592139c3fb967bfc19e4694 \ - --hash=sha256:939ced4a7add92296b0ad38892ce62b98c619288a081170695c6babe4f50e636 \ - --hash=sha256:9434bc0d80076138ea986833156c5a48c9c7a8abb0c96039ddbb4afc93184169 \ - --hash=sha256:94f05348c4406450f9d73d38efb41d669ad6cd90c7ee194810d0eefbfa875a7a \ - --hash=sha256:960c2fc686ba27b535f9fd2b52d87ecd7e4fd1cf877f6a5cba8afb5b4a8bd204 \ - --hash=sha256:96581619c57419c3d7d78703d5b78c1e5e5fc0172d60f555bdebaced82ded19a \ - --hash=sha256:97a0895a8e840ab3520e2288db7cace3a1981300d48babeb50e7425609e2e0ab \ - --hash=sha256:98c4fb90bb82b70a4ed79ca35f656f4281885be076f3f970ce315402b53099ae \ - --hash=sha256:99c5280a329d5fa18ef30fd10c793a190d996567667908bef8a7f81f8202b948 \ - --hash=sha256:9acda8604a57bb60544e4646a4615c1866ee6c04a8edef9b8ee6fd1d8fa2ddc8 \ - --hash=sha256:9c705601e16c03466cb72011bd1af55d68fa65b045356d8f96c216e5f6db0fa5 \ - --hash=sha256:9e8f8afb552297aca127c90cb840e9a1d4bfd6a10d7d8f2d9176e1acc69bad30 \ - --hash=sha256:9eb3e33fdbe43f88c3c75fa608c25e7c47bbd80f48d012763cb67c47f39a7e16 \ - --hash=sha256:9ec49dff7e2b3c85cdeaa412e9d438f0ecd71676fde61ec57027dd392f00c693 \ - --hash=sha256:9f377d0a924e5cc94dc620bc6366fc3e889586a7f18b748901cf016c916e2084 \ - --hash=sha256:a09a6d073fb5789456545bdee2474d14395792faa0527887f2f4ec1a486a59d3 \ - --hash=sha256:a2713a95b47374169409d18103366de1050fe0ea73db358fc7a7acb2880422d4 \ - --hash=sha256:a3b6fb0c207cc661fa0bf8c66d8d9b657331ccc814f4719468af61034b478592 \ - --hash=sha256:a4b88ebe35ce54205c7074f7302bd08a4cb83256a3e0870c72d6f68a3aaf8e49 \ - --hash=sha256:a88d13e7ca367394908f8a276b89d04a3652044612b9a408a0bb22a5ed976a1a \ - --hash=sha256:ac6cde5fba8d7d8c6ac963dbb0256a9854e9fafff52fbcc58fdf819357892c3e \ - --hash=sha256:ae32f24bbfb7dbb485a24b30b1149e2f200be94777232aeadba3eecece4d0aa4 \ - --hash=sha256:b009194665bcd128e23eaddef362e745601afa4641930848af4c8559e88f18f9 \ - --hash=sha256:b1e56bab2e12b2b9ed300218c351ee2a3d8c8fdab5b1ec6193e11a817767e47b \ - --hash=sha256:b395bbca716c38bef3c764f187860e88c724b342c26275bc03e906142fc5964f \ - --hash=sha256:b59d13c443f8e049d9e94099c7e412e34610f1f49be0f230ec656a10692a5802 \ - --hash=sha256:ba2715d842ffa787be87cbfce150d5e88c87a98e0b62e0f5aa489169a393dbbb \ - --hash=sha256:bb7fb776645af5cc58ab804c58d7eba545a97e047254a52ce89c157b5af6cd0b \ - --hash=sha256:c038a8fdc8103cd51dbd986ecdce141473ffd9775a7a8057a6ed9c3653478011 \ - --hash=sha256:c20423ce14771d98353d2e25e83591fa75dfa90a3c1848f3d7c68243b4fbded3 \ - --hash=sha256:c5c94825f744694c4b8db20b71dba9a257cd2ba8e010a803042123f3a25d50d7 \ - --hash=sha256:cf00e5db968c3f67eccd2778574cf64d8b27d95b237770aa32400bd7a1ca4f6c \ - --hash=sha256:d23b5fe492b0805a50d3371e8a728a9134d8de5447dce4c885f5587294750734 \ - --hash=sha256:d7bc4b7f9c4921eba72677cd9fedd2308f4a4ca3e12fab58935295ad9ea98700 \ - --hash=sha256:d8a9b889aeabd7a4e9af0b7f4ab5ad94d42e7ff679aaec6d0db21e3b639ad58d \ - --hash=sha256:dacd50501cd017f8cccb328da0c90823511d70d24a323196826d923aad865901 \ - --hash=sha256:e036a3a645fe92309ec34b918394bb377950cbb43039a97edae6c08db64b23e2 \ - --hash=sha256:e09a0a06348a2dd73e7213353c90d709502d9786219f69b731f6caa0efeb46f5 \ - --hash=sha256:e0c8e31cfcc4592cb200160344b2fb6ae0f9e4effe06c644b5a125d4ae5ebe23 \ - --hash=sha256:e1b4951125ec10c70802f2cb09736c895861cd39fd9dcb35107b4dc8ae6220b8 \ - --hash=sha256:e2a9ea08e8c58bb17655630198833109227dea914cd20be660f52215f6de5613 \ - --hash=sha256:e3403f24bcb9c3b29113611c3c16a2a447c3953ecf86b79775e7be06f7ae7ccb \ - --hash=sha256:e574a7d61cf10351d734bcddabbe15ede0eaa8a02070d85446875dc11189a251 \ - --hash=sha256:e67446b19e014d37342f7195f592a2a948141d15a312fe0e700c2fd2f03124f6 \ - --hash=sha256:e736c93e9c274fce6419af4aac199984d866e55f8a4cec9114671d0ea9688780 \ - --hash=sha256:e7c952aefdf2460f4ae55c5e9c3e80aa72f706a6317e06020f80e96253b1accd \ - --hash=sha256:e7f8659a48995edee7229522984bd1009c1213929c769c2daa80b40fe49a180c \ - --hash=sha256:e96eb1a34396e9430c19d8338d2ec33015e4a87ef2b4449db94c22412e25ccdf \ - --hash=sha256:ec7534e63ae0f3759df3a1ed4fa6bc8f75082a924b590619c0dd2f76d7043caa \ - --hash=sha256:ed2f9c7216e53c3df02264f25d824b079cc5914f9e2deba94155190ef648ee40 \ - --hash=sha256:eeacf451c99b4525f700f078becff32c32ec327b10dcf31306a8a52d78166de7 \ - --hash=sha256:f10d9c0b0188fe85398c61147bbd2a657d616c876863bfeff43376e0e3134673 \ - --hash=sha256:f2bef8237544f4e42878c61cef4e2839fee6346dc60f5739f876a9c50be7fcdb \ - --hash=sha256:f33c8748abef4d8717bb20e8fb1b3e07c6adacb7fd6beaae971a764cf5f30d61 \ - --hash=sha256:f7c183e786e299b5d6c49fb43a769f8eb8e04a2726a2bd5887b98b5cc2d67940 \ - --hash=sha256:fa4dcb605c6f82a80c7f95713c2b11c3b8e9893b3ebd2bc9bde93165ed6107be \ - --hash=sha256:fa89cb11bc71a63b69568d5b8a25c3ca25b6d54c15f907ca1c130d72f320b76b \ - --hash=sha256:fe242cd381e0fb65758faf5ad96c2e460df6ee5b2de1072fe97e4127927e00b4 \ - --hash=sha256:fe91b87fc295973096251e2d25a811388e7d8adf3bd2b97ef6ae78bc4ac6c476 \ - --hash=sha256:fed38a5edb7945f4d1bcabe2fcd05db4f6ec7e0e82560088b754f7e08d93772d \ - --hash=sha256:ff0a7b0a82a7ab905cbda74006318d1b12e37c797eb1b0d4eb3e316cf47f658f \ - --hash=sha256:ff15c147b2ad66da1f2cbb0622313f2242d8e6e8f9b79b5206c84523a4473248 \ - --hash=sha256:ff5e771f5dcbc81c64898c597a434f7682f2259e0cd666932a913d53d1341d1a +aiohttp==3.13.3 \ + --hash=sha256:01ad2529d4b5035578f5081606a465f3b814c542882804e2e8cda61adf5c71bf \ + --hash=sha256:042e9e0bcb5fba81886c8b4fbb9a09d6b8a00245fd8d88e4d989c1f96c74164c \ + --hash=sha256:05861afbbec40650d8a07ea324367cb93e9e8cc7762e04dd4405df99fa65159c \ + --hash=sha256:084911a532763e9d3dd95adf78a78f4096cd5f58cdc18e6fdbc1b58417a45423 \ + --hash=sha256:0add0900ff220d1d5c5ebbf99ed88b0c1bbf87aa7e4262300ed1376a6b13414f \ + --hash=sha256:0db318f7a6f065d84cb1e02662c526294450b314a02bd9e2a8e67f0d8564ce40 \ + --hash=sha256:10b47b7ba335d2e9b1239fa571131a87e2d8ec96b333e68b2a305e7a98b0bae2 \ + --hash=sha256:1449ceddcdbcf2e0446957863af03ebaaa03f94c090f945411b61269e2cb5daf \ + --hash=sha256:147e422fd1223005c22b4fe080f5d93ced44460f5f9c105406b753612b587821 \ + --hash=sha256:1cb93e166e6c28716c8c6aeb5f99dfb6d5ccf482d29fe9bf9a794110e6d0ab64 \ + --hash=sha256:215a685b6fbbfcf71dfe96e3eba7a6f58f10da1dfdf4889c7dd856abe430dca7 \ + --hash=sha256:2712039939ec963c237286113c68dbad80a82a4281543f3abf766d9d73228998 \ + --hash=sha256:27234ef6d85c914f9efeb77ff616dbf4ad2380be0cda40b4db086ffc7ddd1b7d \ + --hash=sha256:28e027cf2f6b641693a09f631759b4d9ce9165099d2b5d92af9bd4e197690eea \ + --hash=sha256:2b8d8ddba8f95ba17582226f80e2de99c7a7948e66490ef8d947e272a93e9463 \ + --hash=sha256:2ba0eea45eb5cc3172dbfc497c066f19c41bac70963ea1a67d51fc92e4cf9a80 \ + --hash=sha256:2be0e9ccf23e8a94f6f0650ce06042cefc6ac703d0d7ab6c7a917289f2539ad4 \ + --hash=sha256:2e41b18a58da1e474a057b3d35248d8320029f61d70a37629535b16a0c8f3767 \ + --hash=sha256:2eb752b102b12a76ca02dff751a801f028b4ffbbc478840b473597fc91a9ed43 \ + --hash=sha256:2fc82186fadc4a8316768d61f3722c230e2c1dcab4200d52d2ebdf2482e47592 \ + --hash=sha256:2fff83cfc93f18f215896e3a190e8e5cb413ce01553901aca925176e7568963a \ + --hash=sha256:31a83ea4aead760dfcb6962efb1d861db48c34379f2ff72db9ddddd4cda9ea2e \ + --hash=sha256:34749271508078b261c4abb1767d42b8d0c0cc9449c73a4df494777dc55f0687 \ + --hash=sha256:34bac00a67a812570d4a460447e1e9e06fae622946955f939051e7cc895cfab8 \ + --hash=sha256:37239e9f9a7ea9ac5bf6b92b0260b01f8a22281996da609206a84df860bc1261 \ + --hash=sha256:37da61e244d1749798c151421602884db5270faf479cf0ef03af0ff68954c9dd \ + --hash=sha256:3b61b7169ababd7802f9568ed96142616a9118dd2be0d1866e920e77ec8fa92a \ + --hash=sha256:3d9908a48eb7416dc1f4524e69f1d32e5d90e3981e4e37eb0aa1cd18f9cfa2a4 \ + --hash=sha256:3dd4dce1c718e38081c8f35f323209d4c1df7d4db4bab1b5c88a6b4d12b74587 \ + --hash=sha256:4021b51936308aeea0367b8f006dc999ca02bc118a0cc78c303f50a2ff6afb91 \ + --hash=sha256:40c5e40ecc29ba010656c18052b877a1c28f84344825efa106705e835c28530f \ + --hash=sha256:425c126c0dc43861e22cb1c14ba4c8e45d09516d0a3ae0a3f7494b79f5f233a3 \ + --hash=sha256:44531a36aa2264a1860089ffd4dce7baf875ee5a6079d5fb42e261c704ef7344 \ + --hash=sha256:48e377758516d262bde50c2584fc6c578af272559c409eecbdd2bae1601184d6 \ + --hash=sha256:49a03727c1bba9a97d3e93c9f93ca03a57300f484b6e935463099841261195d3 \ + --hash=sha256:4ae5b5a0e1926e504c81c5b84353e7a5516d8778fbbff00429fe7b05bb25cbce \ + --hash=sha256:4e239d501f73d6db1522599e14b9b321a7e3b1de66ce33d53a765d975e9f4808 \ + --hash=sha256:56339a36b9f1fc708260c76c87e593e2afb30d26de9ae1eb445b5e051b98a7a1 \ + --hash=sha256:568f416a4072fbfae453dcf9a99194bbb8bdeab718e08ee13dfa2ba0e4bebf29 \ + --hash=sha256:5b179331a481cb5529fca8b432d8d3c7001cb217513c94cd72d668d1248688a3 \ + --hash=sha256:5b6073099fb654e0a068ae678b10feff95c5cae95bbfcbfa7af669d361a8aa6b \ + --hash=sha256:5d2d94f1f5fcbe40838ac51a6ab5704a6f9ea42e72ceda48de5e6b898521da51 \ + --hash=sha256:5dff64413671b0d3e7d5918ea490bdccb97a4ad29b3f311ed423200b2203e01c \ + --hash=sha256:5e1d8c8b8f1d91cd08d8f4a3c2b067bfca6ec043d3ff36de0f3a715feeedf926 \ + --hash=sha256:5f8ca7f2bb6ba8348a3614c7918cc4bb73268c5ac2a207576b7afea19d3d9f64 \ + --hash=sha256:642f752c3eb117b105acbd87e2c143de710987e09860d674e068c4c2c441034f \ + --hash=sha256:65d2ccb7eabee90ce0503c17716fc77226be026dcc3e65cce859a30db715025b \ + --hash=sha256:693781c45a4033d31d4187d2436f5ac701e7bbfe5df40d917736108c1cc7436e \ + --hash=sha256:694976222c711d1d00ba131904beb60534f93966562f64440d0c9d41b8cdb440 \ + --hash=sha256:697753042d57f4bf7122cab985bf15d0cef23c770864580f5af4f52023a56bd6 \ + --hash=sha256:69c56fbc1993fa17043e24a546959c0178fe2b5782405ad4559e6c13975c15e3 \ + --hash=sha256:6de499a1a44e7de70735d0b39f67c8f25eb3d91eb3103be99ca0fa882cdd987d \ + --hash=sha256:6fc0e2337d1a4c3e6acafda6a78a39d4c14caea625124817420abceed36e2415 \ + --hash=sha256:75ca857eba4e20ce9f546cd59c7007b33906a4cd48f2ff6ccf1ccfc3b646f279 \ + --hash=sha256:7a4a94eb787e606d0a09404b9c38c113d3b099d508021faa615d70a0131907ce \ + --hash=sha256:7b5e8fe4de30df199155baaf64f2fcd604f4c678ed20910db8e2c66dc4b11603 \ + --hash=sha256:7bfdc049127717581866fa4708791220970ce291c23e28ccf3922c700740fdc0 \ + --hash=sha256:7e63f210bc1b57ef699035f2b4b6d9ce096b5914414a49b0997c839b2bd2223c \ + --hash=sha256:7f9120f7093c2a32d9647abcaf21e6ad275b4fbec5b55969f978b1a97c7c86bf \ + --hash=sha256:8057c98e0c8472d8846b9c79f56766bcc57e3e8ac7bfd510482332366c56c591 \ + --hash=sha256:80dd4c21b0f6237676449c6baaa1039abae86b91636b6c91a7f8e61c87f89540 \ + --hash=sha256:81e97251d9298386c2b7dbeb490d3d1badbdc69107fb8c9299dd04eb39bddc0e \ + --hash=sha256:82611aeec80eb144416956ec85b6ca45a64d76429c1ed46ae1b5f86c6e0c9a26 \ + --hash=sha256:8542f41a62bcc58fc7f11cf7c90e0ec324ce44950003feb70640fc2a9092c32a \ + --hash=sha256:859bd3f2156e81dd01432f5849fc73e2243d4a487c4fd26609b1299534ee1845 \ + --hash=sha256:87797e645d9d8e222e04160ee32aa06bc5c163e8499f24db719e7852ec23093a \ + --hash=sha256:87b9aab6d6ed88235aa2970294f496ff1a1f9adcd724d800e9b952395a80ffd9 \ + --hash=sha256:8a60e60746623925eab7d25823329941aee7242d559baa119ca2b253c88a7bd6 \ + --hash=sha256:90455115e5da1c3c51ab619ac57f877da8fd6d73c05aacd125c5ae9819582aba \ + --hash=sha256:90751b8eed69435bac9ff4e3d2f6b3af1f57e37ecb0fbeee59c0174c9e2d41df \ + --hash=sha256:947c26539750deeaee933b000fb6517cc770bbd064bad6033f1cff4803881e43 \ + --hash=sha256:96d604498a7c782cb15a51c406acaea70d8c027ee6b90c569baa6e7b93073679 \ + --hash=sha256:988a8c5e317544fdf0d39871559e67b6341065b87fceac641108c2096d5506b7 \ + --hash=sha256:9a9dc347e5a3dc7dfdbc1f82da0ef29e388ddb2ed281bfce9dd8248a313e62b7 \ + --hash=sha256:9ae8dd55c8e6c4257eae3a20fd2c8f41edaea5992ed67156642493b8daf3cecc \ + --hash=sha256:9af5e68ee47d6534d36791bbe9b646d2a7c7deb6fc24d7943628edfbb3581f29 \ + --hash=sha256:9b174f267b5cfb9a7dba9ee6859cecd234e9a681841eb85068059bc867fb8f02 \ + --hash=sha256:9bf9f7a65e7aa20dd764151fb3d616c81088f91f8df39c3893a536e279b4b984 \ + --hash=sha256:9d4c940f02f49483b18b079d1c27ab948721852b281f8b015c058100e9421dd1 \ + --hash=sha256:9ebf57d09e131f5323464bd347135a88622d1c0976e88ce15b670e7ad57e4bd6 \ + --hash=sha256:a19884d2ee70b06d9204b2727a7b9f983d0c684c650254679e716b0b77920632 \ + --hash=sha256:a1e53262fd202e4b40b70c3aff944a8155059beedc8a89bba9dc1f9ef06a1b56 \ + --hash=sha256:a2212ad43c0833a873d0fb3c63fa1bacedd4cf6af2fee62bf4b739ceec3ab239 \ + --hash=sha256:a45530014d7a1e09f4a55f4f43097ba0fd155089372e105e4bff4ca76cb1b168 \ + --hash=sha256:a949eee43d3782f2daae4f4a2819b2cb9b0c5d3b7f7a927067cc84dafdbb9f88 \ + --hash=sha256:add1da70de90a2569c5e15249ff76a631ccacfe198375eead4aadf3b8dc849dc \ + --hash=sha256:af71fff7bac6bb7508956696dce8f6eec2bbb045eceb40343944b1ae62b5ef11 \ + --hash=sha256:b04be762396457bef43f3597c991e192ee7da460a4953d7e647ee4b1c28e7046 \ + --hash=sha256:b0d95340658b9d2f11d9697f59b3814a9d3bb4b7a7c20b131df4bcef464037c0 \ + --hash=sha256:b1a6102b4d3ebc07dad44fbf07b45bb600300f15b552ddf1851b5390202ea2e3 \ + --hash=sha256:b46020d11d23fe16551466c77823df9cc2f2c1e63cc965daf67fa5eec6ca1877 \ + --hash=sha256:b556c85915d8efaed322bf1bdae9486aa0f3f764195a0fb6ee962e5c71ef5ce1 \ + --hash=sha256:b903a4dfee7d347e2d87697d0713be59e0b87925be030c9178c5faa58ea58d5c \ + --hash=sha256:b928f30fe49574253644b1ca44b1b8adbd903aa0da4b9054a6c20fc7f4092a25 \ + --hash=sha256:b99281b0704c103d4e11e72a76f1b543d4946fea7dd10767e7e1b5f00d4e5704 \ + --hash=sha256:bae5c2ed2eae26cc382020edad80d01f36cb8e746da40b292e68fec40421dc6a \ + --hash=sha256:bb4f7475e359992b580559e008c598091c45b5088f28614e855e42d39c2f1033 \ + --hash=sha256:bbe7d4cecacb439e2e2a8a1a7b935c25b812af7a5fd26503a66dadf428e79ec1 \ + --hash=sha256:bfc1cc2fe31a6026a8a88e4ecfb98d7f6b1fec150cfd708adbfd1d2f42257c29 \ + --hash=sha256:c014c7ea7fb775dd015b2d3137378b7be0249a448a1612268b5a90c2d81de04d \ + --hash=sha256:c048058117fd649334d81b4b526e94bde3ccaddb20463a815ced6ecbb7d11160 \ + --hash=sha256:c0e2d366af265797506f0283487223146af57815b388623f0357ef7eac9b209d \ + --hash=sha256:c19b90316ad3b24c69cd78d5c9b4f3aa4497643685901185b65166293d36a00f \ + --hash=sha256:c685f2d80bb67ca8c3837823ad76196b3694b0159d232206d1e461d3d434666f \ + --hash=sha256:c6b8568a3bb5819a0ad087f16d40e5a3fb6099f39ea1d5625a3edc1e923fc538 \ + --hash=sha256:d32764c6c9aafb7fb55366a224756387cd50bfa720f32b88e0e6fa45b27dcf29 \ + --hash=sha256:d5a372fd5afd301b3a89582817fdcdb6c34124787c70dbcc616f259013e7eef7 \ + --hash=sha256:d60ac9663f44168038586cab2157e122e46bdef09e9368b37f2d82d354c23f72 \ + --hash=sha256:dca68018bf48c251ba17c72ed479f4dafe9dbd5a73707ad8d28a38d11f3d42af \ + --hash=sha256:de2c184bb1fe2cbd2cefba613e9db29a5ab559323f994b6737e370d3da0ac455 \ + --hash=sha256:e3531d63d3bdfa7e3ac5e9b27b2dd7ec9df3206a98e0b3445fa906f233264c57 \ + --hash=sha256:e50a2e1404f063427c9d027378472316201a2290959a295169bcf25992d04558 \ + --hash=sha256:e636b3c5f61da31a92bf0d91da83e58fdfa96f178ba682f11d24f31944cdd28c \ + --hash=sha256:ea37047c6b367fd4bd632bff8077449b8fa034b69e812a18e0132a00fae6e808 \ + --hash=sha256:f33ed1a2bf1997a36661874b017f5c4b760f41266341af36febaf271d179f6d7 \ + --hash=sha256:f76c1e3fe7d7c8afad7ed193f89a292e1999608170dcc9751a7462a87dfd5bc0 \ + --hash=sha256:f9444f105664c4ce47a2a7171a2418bce5b7bae45fb610f4e2c36045d85911d3 \ + --hash=sha256:fc290605db2a917f6e81b0e1e0796469871f5af381ce15c604a3c5c7e51cb730 \ + --hash=sha256:fc353029f176fd2b3ec6cfc71be166aba1936fe5d73dd1992ce289ca6647a9aa \ + --hash=sha256:fee0c6bc7db1de362252affec009707a17478a00ec69f797d23ca256e36d5940 # via aiobotocore aioitertools==0.13.0 \ --hash=sha256:0be0292b856f08dfac90e31f4739432f4cb6d7520ab9eb73e143f4f2fa5259be \ @@ -150,9 +150,9 @@ annotated-types==0.7.0 \ --hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 \ --hash=sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89 # via pydantic -anyio==4.12.0 \ - --hash=sha256:73c693b567b0c55130c104d0b43a9baf3aa6a31fc6110116509f27bf75e21ec0 \ - --hash=sha256:dad2376a628f98eeca4881fc56cd06affd18f659b17a747d3ff0307ced94b1bb +anyio==4.12.1 \ + --hash=sha256:41cfcc3a4c85d3f05c932da7c26d0201ac36f72abd4435ba90d0464a3ffed703 \ + --hash=sha256:d405828884fc140aa80a3c667b8beed277f1dfedec42ba031bd6ac3db606ab6c # via # httpx # mcp @@ -163,9 +163,9 @@ asn1crypto==1.5.1 \ --hash=sha256:13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c \ --hash=sha256:db4e40728b728508912cbb3d44f19ce188f218e9eba635821bb4b68564f8fd67 # via snowflake-connector-python -atpublic==5.1 \ - --hash=sha256:135783dbd887fbddb6ef032d104da70c124f2b44b9e2d79df07b9da5334825e3 \ - --hash=sha256:abc1f4b3dbdd841cc3539e4b5e4f3ad41d658359de704e30cb36da4d4e9d3022 +atpublic==7.0.0 \ + --hash=sha256:466ef10d0c8bbd14fd02a5fbd5a8b6af6a846373d91106d3a07c16d72d96b63e \ + --hash=sha256:6702bd9e7245eb4e8220a3e222afcef7f87412154732271ee7deee4433b72b4b # via ibis-framework attrs==25.4.0 \ --hash=sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11 \ @@ -178,9 +178,9 @@ babel==2.17.0 \ --hash=sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d \ --hash=sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2 # via sphinx -bigtree==1.0.4 \ - --hash=sha256:e4af0c5bc0d2cd72e18442965e4509f642b16a0de65db6d0ec116e30f959010c \ - --hash=sha256:f58a3238bb9b1142d893c9de4921bfd18d435427c75e0c168dd580eabf6dc7fd +bigtree==1.1.0 \ + --hash=sha256:3f1ff63d2d66d31bf19855ddda8884637edf8dd1fc1aa118cf3a750580ece48b \ + --hash=sha256:f54f99d842732c91cce39c596a3755a2e8325b1cab5bc6876f5b15bd3942081c # via feast (setup.py) boto3==1.38.27 \ --hash=sha256:94bd7fdd92d5701b362d4df100d21e28f8307a67ff56b6a8b0398119cf22f859 \ @@ -196,17 +196,13 @@ botocore==1.38.46 \ # boto3 # s3transfer # snowflake-connector-python -cachetools==6.2.4 \ - --hash=sha256:69a7a52634fed8b8bf6e24a050fb60bff1c9bd8f6d24572b99c32d4e71e62a51 \ - --hash=sha256:82c5c05585e70b6ba2d3ae09ea60b79548872185d2f24ae1f2709d37299fd607 - # via google-auth calver==2025.3.31 \ --hash=sha256:07511edf5e7fa75ae97445c8c5921240e0fe62937289a3ebe6963eddd3c691b6 \ --hash=sha256:255d1a70bba8f97dc1eee3af4240ed35980508da69257feef94c79e5c6545fc7 # via feast (setup.py) -certifi==2025.11.12 \ - --hash=sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b \ - --hash=sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316 +certifi==2026.1.4 \ + --hash=sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c \ + --hash=sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120 # via # httpcore # httpx @@ -561,59 +557,48 @@ docutils==0.22.4 \ --hash=sha256:4db53b1fde9abecbb74d91230d32ab626d94f6badfc575d6db9194a49df29968 \ --hash=sha256:d0013f540772d1420576855455d050a2180186c91c15779301ac2ccb3eeb68de # via sphinx -duckdb==1.1.3 \ - --hash=sha256:00cca22df96aa3473fe4584f84888e2cf1c516e8c2dd837210daec44eadba586 \ - --hash=sha256:08935700e49c187fe0e9b2b86b5aad8a2ccd661069053e38bfaed3b9ff795efd \ - --hash=sha256:0897f83c09356206ce462f62157ce064961a5348e31ccb2a557a7531d814e70e \ - --hash=sha256:09c68522c30fc38fc972b8a75e9201616b96ae6da3444585f14cf0d116008c95 \ - --hash=sha256:0a55169d2d2e2e88077d91d4875104b58de45eff6a17a59c7dc41562c73df4be \ - --hash=sha256:0ba6baa0af33ded836b388b09433a69b8bec00263247f6bf0a05c65c897108d3 \ - --hash=sha256:183ac743f21c6a4d6adfd02b69013d5fd78e5e2cd2b4db023bc8a95457d4bc5d \ - --hash=sha256:1aa3abec8e8995a03ff1a904b0e66282d19919f562dd0a1de02f23169eeec461 \ - --hash=sha256:1c0226dc43e2ee4cc3a5a4672fddb2d76fd2cf2694443f395c02dd1bea0b7fce \ - --hash=sha256:1d9ab6143e73bcf17d62566e368c23f28aa544feddfd2d8eb50ef21034286f24 \ - --hash=sha256:2141c6b28162199999075d6031b5d63efeb97c1e68fb3d797279d31c65676269 \ - --hash=sha256:252d9b17d354beb9057098d4e5d5698e091a4f4a0d38157daeea5fc0ec161670 \ - --hash=sha256:25fb02629418c0d4d94a2bc1776edaa33f6f6ccaa00bd84eb96ecb97ae4b50e9 \ - --hash=sha256:2f073d15d11a328f2e6d5964a704517e818e930800b7f3fa83adea47f23720d3 \ - --hash=sha256:35c420f58abc79a68a286a20fd6265636175fadeca1ce964fc8ef159f3acc289 \ - --hash=sha256:4ebf5f60ddbd65c13e77cddb85fe4af671d31b851f125a4d002a313696af43f1 \ - --hash=sha256:4f0e2e5a6f5a53b79aee20856c027046fba1d73ada6178ed8467f53c3877d5e0 \ - --hash=sha256:51c6d79e05b4a0933672b1cacd6338f882158f45ef9903aef350c4427d9fc898 \ - --hash=sha256:51e7dbd968b393343b226ab3f3a7b5a68dee6d3fe59be9d802383bf916775cb8 \ - --hash=sha256:5ace6e4b1873afdd38bd6cc8fcf90310fb2d454f29c39a61d0c0cf1a24ad6c8d \ - --hash=sha256:5d57776539211e79b11e94f2f6d63de77885f23f14982e0fac066f2885fcf3ff \ - --hash=sha256:6411e21a2128d478efbd023f2bdff12464d146f92bc3e9c49247240448ace5a6 \ - --hash=sha256:647f17bd126170d96a38a9a6f25fca47ebb0261e5e44881e3782989033c94686 \ - --hash=sha256:68c3a46ab08836fe041d15dcbf838f74a990d551db47cb24ab1c4576fc19351c \ - --hash=sha256:77f26884c7b807c7edd07f95cf0b00e6d47f0de4a534ac1706a58f8bc70d0d31 \ - --hash=sha256:7c71169fa804c0b65e49afe423ddc2dc83e198640e3b041028da8110f7cd16f7 \ - --hash=sha256:80158f4c7c7ada46245837d5b6869a336bbaa28436fbb0537663fa324a2750cd \ - --hash=sha256:872d38b65b66e3219d2400c732585c5b4d11b13d7a36cd97908d7981526e9898 \ - --hash=sha256:8ee97ec337794c162c0638dda3b4a30a483d0587deda22d45e1909036ff0b739 \ - --hash=sha256:911d58c22645bfca4a5a049ff53a0afd1537bc18fedb13bc440b2e5af3c46148 \ - --hash=sha256:9c619e4849837c8c83666f2cd5c6c031300cd2601e9564b47aa5de458ff6e69d \ - --hash=sha256:9d0767ada9f06faa5afcf63eb7ba1befaccfbcfdac5ff86f0168c673dd1f47aa \ - --hash=sha256:9e3f5cd604e7c39527e6060f430769b72234345baaa0987f9500988b2814f5e4 \ - --hash=sha256:a1f83c7217c188b7ab42e6a0963f42070d9aed114f6200e3c923c8899c090f16 \ - --hash=sha256:a1fa0c502f257fa9caca60b8b1478ec0f3295f34bb2efdc10776fc731b8a6c5f \ - --hash=sha256:a30dd599b8090ea6eafdfb5a9f1b872d78bac318b6914ada2d35c7974d643640 \ - --hash=sha256:a433ae9e72c5f397c44abdaa3c781d94f94f4065bcbf99ecd39433058c64cb38 \ - --hash=sha256:a4748635875fc3c19a7320a6ae7410f9295557450c0ebab6d6712de12640929a \ - --hash=sha256:b74e121ab65dbec5290f33ca92301e3a4e81797966c8d9feef6efdf05fc6dafd \ - --hash=sha256:c443d3d502335e69fc1e35295fcfd1108f72cb984af54c536adfd7875e79cee5 \ - --hash=sha256:c5336939d83837af52731e02b6a78a446794078590aa71fd400eb17f083dda3e \ - --hash=sha256:cddc6c1a3b91dcc5f32493231b3ba98f51e6d3a44fe02839556db2b928087378 \ - --hash=sha256:d08308e0a46c748d9c30f1d67ee1143e9c5ea3fbcccc27a47e115b19e7e78aa9 \ - --hash=sha256:d5724fd8a49e24d730be34846b814b98ba7c304ca904fbdc98b47fa95c0b0cee \ - --hash=sha256:e4ef7ba97a65bd39d66f2a7080e6fb60e7c3e41d4c1e19245f90f53b98e3ac32 \ - --hash=sha256:e59087dbbb63705f2483544e01cccf07d5b35afa58be8931b224f3221361d537 \ - --hash=sha256:e86006958e84c5c02f08f9b96f4bc26990514eab329b1b4f71049b3727ce5989 \ - --hash=sha256:ecb1dc9062c1cc4d2d88a5e5cd8cc72af7818ab5a3c0f796ef0ffd60cfd3efb4 \ - --hash=sha256:eeacb598120040e9591f5a4edecad7080853aa8ac27e62d280f151f8c862afa3 \ - --hash=sha256:f549af9f7416573ee48db1cf8c9d27aeed245cb015f4b4f975289418c6cf7320 \ - --hash=sha256:f58db1b65593ff796c8ea6e63e2e144c944dd3d51c8d8e40dffa7f41693d35d3 \ - --hash=sha256:f9b47036945e1db32d70e414a10b1593aec641bd4c5e2056873d971cc21e978b +duckdb==1.4.3 \ + --hash=sha256:006aca6a6d6736c441b02ff5c7600b099bb8b7f4de094b8b062137efddce42df \ + --hash=sha256:130c6760f6c573f9c9fe9aba56adba0fab48811a4871b7b8fd667318b4a3e8da \ + --hash=sha256:16952ac05bd7e7b39946695452bf450db1ebbe387e1e7178e10f593f2ea7b9a8 \ + --hash=sha256:1b35491db98ccd11d151165497c084a9d29d3dc42fc80abea2715a6c861ca43d \ + --hash=sha256:1b9b445970fd18274d5ac07a0b24c032e228f967332fb5ebab3d7db27738c0e4 \ + --hash=sha256:1bb8bd5a3dd205983726185b280a211eacc9f5bc0c4d4505bec8c87ac33a8ccb \ + --hash=sha256:1e5457dda91b67258aae30fb1a0df84183a9f6cd27abac1d5536c0d876c6dfa1 \ + --hash=sha256:20c88effaa557a11267706b01419c542fe42f893dee66e5a6daa5974ea2d4a46 \ + --hash=sha256:23a3a077821bed1768a84ac9cbf6b6487ead33e28e62cb118bda5fb8f9e53dea \ + --hash=sha256:23b12854032c1a58d0452e2b212afa908d4ce64171862f3792ba9a596ba7c765 \ + --hash=sha256:274d4a31aba63115f23e7e7b401e3e3a937f3626dc9dea820a9c7d3073f450d2 \ + --hash=sha256:2b195270ff1a661f22cbd547a215baff265b7d4469a76a215c8992b5994107c3 \ + --hash=sha256:2b30245375ea94ab528c87c61fc3ab3e36331180b16af92ee3a37b810a745d24 \ + --hash=sha256:316711a9e852bcfe1ed6241a5f654983f67e909e290495f3562cccdf43be8180 \ + --hash=sha256:366bf607088053dce845c9d24c202c04d78022436cc5d8e4c9f0492de04afbe7 \ + --hash=sha256:4f868a7e6d9b37274a1aa34849ea92aa964e9bd59a5237d6c17e8540533a1e4f \ + --hash=sha256:4fef6a053a1c485292000bf0c338bba60f89d334f6a06fc76ba4085a5a322b76 \ + --hash=sha256:5634e40e1e2d972e4f75bced1fbdd9e9e90faa26445c1052b27de97ee546944a \ + --hash=sha256:6302452e57aef29aae3977063810ed7b2927967b97912947b9cca45c1c21955f \ + --hash=sha256:6db124f53a3edcb32b0a896ad3519e37477f7e67bf4811cb41ab60c1ef74e4c8 \ + --hash=sha256:702dabbc22b27dc5b73e7599c60deef3d8c59968527c36b391773efddd8f4cf1 \ + --hash=sha256:813f189039b46877b5517f1909c7b94a8fe01b4bde2640ab217537ea0fe9b59b \ + --hash=sha256:854b79375fa618f6ffa8d84fb45cbc9db887f6c4834076ea10d20bc106f1fd90 \ + --hash=sha256:8afba22c370f06b7314aa46bfed052509269e482bcfb3f7b1ea0fa17ae49ce42 \ + --hash=sha256:8d080e8d1bf2d226423ec781f539c8f6b6ef3fd42a9a58a7160de0a00877a21f \ + --hash=sha256:8d53b217698a76c4957e2c807dd9295d409146f9d3d7932f372883201ba9d25a \ + --hash=sha256:90f241f25cffe7241bf9f376754a5845c74775e00e1c5731119dc88cd71e0cb2 \ + --hash=sha256:9dc049ba7e906cb49ca2b6d4fbf7b6615ec3883193e8abb93f0bef2652e42dda \ + --hash=sha256:9e625b2b4d52bafa1fd0ebdb0990c3961dac8bb00e30d327185de95b68202131 \ + --hash=sha256:a2813f4635f4d6681cc3304020374c46aca82758c6740d7edbc237fe3aae2744 \ + --hash=sha256:a7c864df027da1ee95f0c32def67e15d02cd4a906c9c1cbae82c09c5112f526b \ + --hash=sha256:a8b0a8764e1b5dd043d168c8f749314f7a1252b5a260fa415adaa26fa3b958fd \ + --hash=sha256:aa26a7406205bc1426cee28bdfdf084f669a5686977dafa4c3ec65873989593c \ + --hash=sha256:caa2164c91f7e91befb1ffb081b3cd97a137117533aef7abe1538b03ad72e3a9 \ + --hash=sha256:d0ff08388ef8b1d1a4c95c321d6c5fa11201b241036b1ee740f9d841df3d6ba2 \ + --hash=sha256:de984cd24a6cbefdd6d4a349f7b9a46e583ca3e58ce10d8def0b20a6e5fcbe78 \ + --hash=sha256:deab351ac43b6282a3270e3d40e3d57b3b50f472d9fd8c30975d88a31be41231 \ + --hash=sha256:ef7ef15347ce97201b1b5182a5697682679b04c3374d5a01ac10ba31cf791b95 \ + --hash=sha256:efa7f1191c59e34b688fcd4e588c1b903a4e4e1f4804945902cf0b20e08a9001 \ + --hash=sha256:fbc63ffdd03835f660155b37a1b6db2005bcd46e5ad398b8cac141eb305d2a3d \ + --hash=sha256:fea43e03604c713e25a25211ada87d30cd2a044d8f27afab5deba26ac49e5268 # via ibis-framework dunamai==1.25.0 \ --hash=sha256:7f9dc687dd3256e613b6cc978d9daabfd2bb5deb8adc541fc135ee423ffa98ab \ @@ -633,9 +618,9 @@ fastapi-mcp==0.4.0 \ --hash=sha256:d4a3fe7966af24d44e4b412720561c95eb12bed999a4443a88221834b3b15aec \ --hash=sha256:d4ca9410996f4c7b8ea0d7b20fdf79878dc359ebf89cbf3b222e0b675a55097d # via feast (setup.py) -filelock==3.20.1 \ - --hash=sha256:15d9e9a67306188a44baa72f569d2bfd803076269365fdea0934385da4dc361a \ - --hash=sha256:b8360948b351b80f420878d8516519a2204b07aefcdcfd24912a5d33127f188c +filelock==3.20.3 \ + --hash=sha256:18c57ee915c7ec61cff0ecf7f0f869936c7c30191bb0cf406f1341778d0834e1 \ + --hash=sha256:4b0dda527ee31078689fc205ec4f1c1bf7d56cf88b6dc9426c4f230e46c2dce1 # via snowflake-connector-python flit-core==3.12.0 \ --hash=sha256:18f63100d6f94385c6ed57a72073443e1a71a4acb4339491615d0f16d6ff01b2 \ @@ -781,9 +766,9 @@ fsspec==2024.9.0 \ # via # feast (setup.py) # dask -google-api-core[grpc]==2.28.1 \ - --hash=sha256:2b405df02d68e68ce0fbc138559e6036559e685159d148ae5861013dc201baf8 \ - --hash=sha256:4021b0f8ceb77a6fb4de6fde4502cecab45062e66ff4f2895169e0b35bc9466c +google-api-core[grpc]==2.29.0 \ + --hash=sha256:84181be0f8e6b04006df75ddfe728f24489f0af57c96a529ff7cf45bc28797f7 \ + --hash=sha256:d30bc60980daa36e314b5d5a3e5958b0200cb44ca8fa1be2b614e932b75a3ea9 # via # feast (setup.py) # google-cloud-bigquery @@ -793,9 +778,9 @@ google-api-core[grpc]==2.28.1 \ # google-cloud-datastore # google-cloud-storage # pandas-gbq -google-auth==2.45.0 \ - --hash=sha256:82344e86dc00410ef5382d99be677c6043d72e502b625aa4f4afa0bdacca0f36 \ - --hash=sha256:90d3f41b6b72ea72dd9811e765699ee491ab24139f34ebf1ca2b9cc0c38708f3 +google-auth==2.47.0 \ + --hash=sha256:833229070a9dfee1a353ae9877dcd2dec069a8281a4e72e72f77d4a70ff945da \ + --hash=sha256:c516d68336bfde7cf0da26aab674a36fedcf04b37ac4edd59c597178760c3498 # via # google-api-core # google-auth-oauthlib @@ -814,9 +799,9 @@ google-auth-oauthlib==1.2.2 \ # via # pandas-gbq # pydata-google-auth -google-cloud-bigquery[pandas]==3.39.0 \ - --hash=sha256:cb375e1d63dea9bd5bf735e66024338f294159d43afdf63e1d023f5fcbbf55ea \ - --hash=sha256:dc7a64921465859105461b43c42562e38e797d7a73feb72b3cfc4865b7b1c5ef +google-cloud-bigquery[pandas]==3.40.0 \ + --hash=sha256:0469bcf9e3dad3cab65b67cce98180c8c0aacf3253d47f0f8e976f299b49b5ab \ + --hash=sha256:b3ccb11caf0029f15b29569518f667553fe08f6f1459b959020c83fbbd8f2e68 # via # feast (setup.py) # pandas-gbq @@ -1211,15 +1196,9 @@ httpx-sse==0.4.3 \ --hash=sha256:0ac1c9fe3c0afad2e0ebb25a934a59f4c7823b60792691f779fad2c5568830fc \ --hash=sha256:9b1ed0127459a66014aec3c56bebd93da3c1bc8bb6618c8082039a44889a755d # via mcp -ibis-framework[duckdb]==9.5.0 \ - --hash=sha256:145fe30d94f111cff332580c275ce77725c5ff7086eede93af0b371649d009c0 \ - --hash=sha256:1c8a29277e63ee0dfc289bc8f550164b5e3bdaec1b76b62436c37d331bb4ef84 - # via - # feast (setup.py) - # ibis-substrait -ibis-substrait==4.0.1 \ - --hash=sha256:107ca49383a3cca2fdc88f67ea2f0172620c16fa8f39c9c52305af85dd6180b4 \ - --hash=sha256:614810a173d096fbc49d87a9b419e2162a3c25d8efda1a4d57a389ce56b9041f +ibis-framework[duckdb]==11.0.0 \ + --hash=sha256:0249185eaabb800e224f448cc06ce8ba168df00b269e132d62629f462eca8842 \ + --hash=sha256:92ff82a96f4eac7f86fa9b6a315e04b5a8f9ed3d186539d88f48e628363f2e72 # via feast (setup.py) idna==3.11 \ --hash=sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea \ @@ -1248,9 +1227,9 @@ jmespath==1.0.1 \ # aiobotocore # boto3 # botocore -jsonschema==4.25.1 \ - --hash=sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63 \ - --hash=sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85 +jsonschema==4.26.0 \ + --hash=sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326 \ + --hash=sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce # via # feast (setup.py) # mcp @@ -1262,83 +1241,83 @@ kubernetes==33.1.0 \ --hash=sha256:544de42b24b64287f7e0aa9513c93cb503f7f40eea39b20f66810011a86eabc5 \ --hash=sha256:f64d829843a54c251061a8e7a14523b521f2dc5c896cf6d65ccf348648a88993 # via feast (setup.py) -librt==0.7.5 \ - --hash=sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee \ - --hash=sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1 \ - --hash=sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4 \ - --hash=sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899 \ - --hash=sha256:0e2bf8f91093fac43e3eaebacf777f12fd539dce9ec5af3efc6d8424e96ccd49 \ - --hash=sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d \ - --hash=sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760 \ - --hash=sha256:191cbd42660446d67cf7a95ac7bfa60f49b8b3b0417c64f216284a1d86fc9335 \ - --hash=sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8 \ - --hash=sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2 \ - --hash=sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec \ - --hash=sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b \ - --hash=sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0 \ - --hash=sha256:39183abee670bc37b85f11e86c44a9cad1ed6efa48b580083e89ecee13dd9717 \ - --hash=sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325 \ - --hash=sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45 \ - --hash=sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d \ - --hash=sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233 \ - --hash=sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d \ - --hash=sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544 \ - --hash=sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802 \ - --hash=sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2 \ - --hash=sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d \ - --hash=sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f \ - --hash=sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169 \ - --hash=sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe \ - --hash=sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982 \ - --hash=sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2 \ - --hash=sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa \ - --hash=sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4 \ - --hash=sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4 \ - --hash=sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57 \ - --hash=sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26 \ - --hash=sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361 \ - --hash=sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad \ - --hash=sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e \ - --hash=sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf \ - --hash=sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f \ - --hash=sha256:8dcae24de1bc9da93aa689cb6313c70e776d7cea2fcf26b9b6160fedfe6bd9af \ - --hash=sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2 \ - --hash=sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89 \ - --hash=sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904 \ - --hash=sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6 \ - --hash=sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276 \ - --hash=sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e \ - --hash=sha256:a9eacbf983319b26b5f340a2e0cd47ac1ee4725a7f3a72fd0f15063c934b69d6 \ - --hash=sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409 \ - --hash=sha256:af69d9e159575e877c7546d1ee817b4ae089aa221dd1117e20c24ad8dc8659c7 \ - --hash=sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a \ - --hash=sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4 \ - --hash=sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775 \ - --hash=sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203 \ - --hash=sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419 \ - --hash=sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5 \ - --hash=sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023 \ - --hash=sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b \ - --hash=sha256:cdb001a1a0e4f41e613bca2c0fc147fc8a7396f53fc94201cbfd8ec7cd69ca4b \ - --hash=sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d \ - --hash=sha256:d2cc7d187e8c6e9b7bdbefa9697ce897a704ea7a7ce844f2b4e0e2aa07ae51d3 \ - --hash=sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e \ - --hash=sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a \ - --hash=sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b \ - --hash=sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db \ - --hash=sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd \ - --hash=sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa \ - --hash=sha256:df2e210400b28e50994477ebf82f055698c79797b6ee47a1669d383ca33263e1 \ - --hash=sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805 \ - --hash=sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a \ - --hash=sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25 \ - --hash=sha256:ea1b60b86595a5dc1f57b44a801a1c4d8209c0a69518391d349973a4491408e6 \ - --hash=sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b \ - --hash=sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5 \ - --hash=sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416 \ - --hash=sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc \ - --hash=sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7 \ - --hash=sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96 +librt==0.7.7 \ + --hash=sha256:067be973d90d9e319e6eb4ee2a9b9307f0ecd648b8a9002fa237289a4a07a9e7 \ + --hash=sha256:0996c83b1cb43c00e8c87835a284f9057bc647abd42b5871e5f941d30010c832 \ + --hash=sha256:0ecce0544d3db91a40f8b57ae26928c02130a997b540f908cefd4d279d6c5848 \ + --hash=sha256:10c8fb9966f84737115513fecbaf257f9553d067a7dd45a69c2c7e5339e6a8dc \ + --hash=sha256:142c2cd91794b79fd0ce113bd658993b7ede0fe93057668c2f98a45ca00b7e91 \ + --hash=sha256:14ef0f4ac3728ffd85bfc58e2f2f48fb4ef4fa871876f13a73a7381d10a9f77c \ + --hash=sha256:1908c3e5a5ef86b23391448b47759298f87f997c3bd153a770828f58c2bb4630 \ + --hash=sha256:1bcd79be209313b270b0e1a51c67ae1af28adad0e0c7e84c3ad4b5cb57aaa75b \ + --hash=sha256:23d2299ed007812cccc1ecef018db7d922733382561230de1f3954db28433977 \ + --hash=sha256:23daa1ab0512bafdd677eb1bfc9611d8ffbe2e328895671e64cb34166bc1b8c8 \ + --hash=sha256:2567cb48dc03e5b246927ab35cbb343376e24501260a9b5e30b8e255dca0d1d2 \ + --hash=sha256:264720fc288c86039c091a4ad63419a5d7cabbf1c1c9933336a957ed2483e570 \ + --hash=sha256:2987cf827011907d3dfd109f1be0d61e173d68b1270107bb0e89f2fca7f2ed6b \ + --hash=sha256:2a85a1fc4ed11ea0eb0a632459ce004a2d14afc085a50ae3463cd3dfe1ce43fc \ + --hash=sha256:3d1fe2e8df3268dd6734dba33ededae72ad5c3a859b9577bc00b715759c5aaab \ + --hash=sha256:4353ee891a1834567e0302d4bd5e60f531912179578c36f3d0430f8c5e16b456 \ + --hash=sha256:44d63ce643f34a903f09ff7ca355aae019a3730c7afd6a3c037d569beeb5d151 \ + --hash=sha256:467dbd7443bda08338fc8ad701ed38cef48194017554f4c798b0a237904b3f99 \ + --hash=sha256:4862cb2c702b1f905c0503b72d9d4daf65a7fdf5a9e84560e563471e57a56949 \ + --hash=sha256:4bf3cc46d553693382d2abf5f5bd493d71bb0f50a7c0beab18aa13a5545c8900 \ + --hash=sha256:4dcee2f921a8632636d1c37f1bbdb8841d15666d119aa61e5399c5268e7ce02e \ + --hash=sha256:50d1d1ee813d2d1a3baf2873634ba506b263032418d16287c92ec1cc9c1a00cb \ + --hash=sha256:5335890fea9f9e6c4fdf8683061b9ccdcbe47c6dc03ab8e9b68c10acf78be78d \ + --hash=sha256:558a9e5a6f3cc1e20b3168fb1dc802d0d8fa40731f6e9932dcc52bbcfbd37111 \ + --hash=sha256:5e419e0db70991b6ba037b70c1d5bbe92b20ddf82f31ad01d77a347ed9781398 \ + --hash=sha256:6066c638cdf85ff92fc6f932d2d73c93a0e03492cdfa8778e6d58c489a3d7259 \ + --hash=sha256:6ae8aec43117a645a31e5f60e9e3a0797492e747823b9bda6972d521b436b4e8 \ + --hash=sha256:6b6f8ea465524aa4c7420c7cc4ca7d46fe00981de8debc67b1cc2e9957bb5b9d \ + --hash=sha256:7b16ccaeff0ed4355dfb76fe1ea7a5d6d03b5ad27f295f77ee0557bc20a72495 \ + --hash=sha256:7d13cc340b3b82134f8038a2bfe7137093693dcad8ba5773da18f95ad6b77a8a \ + --hash=sha256:7ef28f2e7a016b29792fe0a2dd04dec75725b32a1264e390c366103f834a9c3a \ + --hash=sha256:8185c8497d45164e256376f9da5aed2bb26ff636c798c9dabe313b90e9f25b28 \ + --hash=sha256:81d957b069fed1890953c3b9c3895c7689960f233eea9a1d9607f71ce7f00b2c \ + --hash=sha256:86f86b3b785487c7760247bcdac0b11aa8bf13245a13ed05206286135877564b \ + --hash=sha256:8e92c8de62b40bfce91d5e12c6e8b15434da268979b1af1a6589463549d491e6 \ + --hash=sha256:8f2f8dcf5ab9f80fb970c6fd780b398efb2f50c1962485eb8d3ab07788595a48 \ + --hash=sha256:8f4a0b0a3c86ba9193a8e23bb18f100d647bf192390ae195d84dfa0a10fb6244 \ + --hash=sha256:8f7a74cf3a80f0c3b0ec75b0c650b2f0a894a2cec57ef75f6f72c1e82cdac61d \ + --hash=sha256:955c62571de0b181d9e9e0a0303c8bc90d47670a5eff54cf71bf5da61d1899cf \ + --hash=sha256:983de36b5a83fe9222f4f7dcd071f9b1ac6f3f17c0af0238dadfb8229588f890 \ + --hash=sha256:9b15e5d17812d4d629ff576699954f74e2cc24a02a4fc401882dd94f81daba45 \ + --hash=sha256:9b4346b1225be26def3ccc6c965751c74868f0578cbcba293c8ae9168483d811 \ + --hash=sha256:9b5fb1ecb2c35362eab2dbd354fd1efa5a8440d3e73a68be11921042a0edc0ff \ + --hash=sha256:a10b8eebdaca6e9fdbaf88b5aefc0e324b763a5f40b1266532590d5afb268a4c \ + --hash=sha256:a1f5cc41a570269d1be7a676655875e3a53de4992a9fa38efb7983e97cf73d7c \ + --hash=sha256:a3bfe73a32bd0bdb9a87d586b05a23c0a1729205d79df66dee65bb2e40d671ba \ + --hash=sha256:a487b71fbf8a9edb72a8c7a456dda0184642d99cd007bc819c0b7ab93676a8ee \ + --hash=sha256:a609849aca463074c17de9cda173c276eb8fee9e441053529e7b9e249dc8b8ee \ + --hash=sha256:a76f1d679beccccdf8c1958e732a1dfcd6e749f8821ee59d7bec009ac308c029 \ + --hash=sha256:a7ea4e1fbd253e5c68ea0fe63d08577f9d288a73f17d82f652ebc61fa48d878d \ + --hash=sha256:ab2a2a9cd7d044e1a11ca64a86ad3361d318176924bbe5152fbc69f99be20b8c \ + --hash=sha256:ad3fc2d859a709baf9dd9607bb72f599b1cfb8a39eafd41307d0c3c4766763cb \ + --hash=sha256:add4e0a000858fe9bb39ed55f31085506a5c38363e6eb4a1e5943a10c2bfc3d1 \ + --hash=sha256:aea05f701ccd2a76b34f0daf47ca5068176ff553510b614770c90d76ac88df06 \ + --hash=sha256:b8bb331aad734b059c4b450cd0a225652f16889e286b2345af5e2c3c625c3d85 \ + --hash=sha256:bdb9f3d865b2dafe7f9ad7f30ef563c80d0ddd2fdc8cc9b8e4f242f475e34d75 \ + --hash=sha256:c084841b879c4d9b9fa34e5d5263994f21aea7fd9c6add29194dbb41a6210536 \ + --hash=sha256:c48c7e150c095d5e3cea7452347ba26094be905d6099d24f9319a8b475fcd3e0 \ + --hash=sha256:c7e5070cf3ec92d98f57574da0224f8c73faf1ddd6d8afa0b8c9f6e86997bc74 \ + --hash=sha256:c87654e29a35938baead1c4559858f346f4a2a7588574a14d784f300ffba0efd \ + --hash=sha256:c8ffe3431d98cc043a14e88b21288b5ec7ee12cb01260e94385887f285ef9389 \ + --hash=sha256:c9faaebb1c6212c20afd8043cd6ed9de0a47d77f91a6b5b48f4e46ed470703fe \ + --hash=sha256:d1454899909d63cc9199a89fcc4f81bdd9004aef577d4ffc022e600c412d57f3 \ + --hash=sha256:d6b7d93657332c817b8d674ef6bf1ab7796b4f7ce05e420fd45bd258a72ac804 \ + --hash=sha256:dbc4900e95a98fc0729523be9d93a8fedebb026f32ed9ffc08acd82e3e181503 \ + --hash=sha256:e40d20ae1722d6b8ea6acf4597e789604649dcd9c295eb7361a28225bc2e9e12 \ + --hash=sha256:e4836c5645f40fbdc275e5670819bde5ab5f2e882290d304e3c6ddab1576a6d0 \ + --hash=sha256:e4ab69fa37f8090f2d971a5d2bc606c7401170dbdae083c393d6cbf439cb45b8 \ + --hash=sha256:ef7699b7a5a244b1119f85c5bbc13f152cd38240cbb2baa19b769433bae98e50 \ + --hash=sha256:f0c8fe5aeadd8a0e5b0598f8a6ee3533135ca50fd3f20f130f9d72baf5c6ac58 \ + --hash=sha256:f2cb63c49bc96847c3bb8dca350970e4dcd19936f391cfdfd057dcb37c4fa97e \ + --hash=sha256:f4d4efb218264ecf0f8516196c9e2d1a0679d9fb3bb15df1155a35220062eba8 \ + --hash=sha256:f683dcd49e2494a7535e30f779aa1ad6e3732a019d80abe1309ea91ccd3230e3 \ + --hash=sha256:f83c971eb9d2358b6a18da51dc0ae00556ac7c73104dde16e9e14c15aaf685ca \ + --hash=sha256:f8df32a99cc46eb0ee90afd9ada113ae2cafe7e8d673686cf03ec53e49635439 \ + --hash=sha256:ff1fb2dfef035549565a4124998fadcb7a3d4957131ddf004a56edeb029626b3 # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ @@ -1775,79 +1754,79 @@ mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 # via mypy -numpy==2.4.0 \ - --hash=sha256:009bd0ea12d3c784b6639a8457537016ce5172109e585338e11334f6a7bb88ee \ - --hash=sha256:02a2038eb27f9443a8b266a66911e926566b5a6ffd1a689b588f7f35b81e7dc3 \ - --hash=sha256:0804a8e4ab070d1d35496e65ffd3cf8114c136a2b81f61dfab0de4b218aacfd5 \ - --hash=sha256:0feafc9e03128074689183031181fac0897ff169692d8492066e949041096548 \ - --hash=sha256:1889b3a3f47a7b5bee16bc25a2145bd7cb91897f815ce3499db64c7458b6d91d \ - --hash=sha256:1d8f9fde5f6dc1b6fc34df8162f3b3079365468703fee7f31d4e0cc8c63baed9 \ - --hash=sha256:1ee32359fb7543b7b7bd0b2f46294db27e29e7bbdf70541e81b190836cd83ded \ - --hash=sha256:20c115517513831860c573996e395707aa9fb691eb179200125c250e895fcd93 \ - --hash=sha256:21555da4ec4a0c942520ead42c3b0dc9477441e085c42b0fbdd6a084869a6f6b \ - --hash=sha256:23a3e9d1a6f360267e8fbb38ba5db355a6a7e9be71d7fce7ab3125e88bb646c8 \ - --hash=sha256:2a8b6bb8369abefb8bd1801b054ad50e02b3275c8614dc6e5b0373c305291037 \ - --hash=sha256:2e284ca13d5a8367e43734148622caf0b261b275673823593e3e3634a6490f83 \ - --hash=sha256:2f585f52b2baf07ff3356158d9268ea095e221371f1074fadea2f42544d58b4d \ - --hash=sha256:316b2f2584682318539f0bcaca5a496ce9ca78c88066579ebd11fd06f8e4741e \ - --hash=sha256:32ed06d0fe9cae27d8fb5f400c63ccee72370599c75e683a6358dd3a4fb50aaf \ - --hash=sha256:355354388cba60f2132df297e2d53053d4063f79077b67b481d21276d61fc4df \ - --hash=sha256:35ddc8f4914466e6fc954c76527aa91aa763682a4f6d73249ef20b418fe6effb \ - --hash=sha256:36667db4d6c1cea79c8930ab72fadfb4060feb4bfe724141cd4bd064d2e5f8ce \ - --hash=sha256:36cbfb13c152b1c7c184ddac43765db8ad672567e7bafff2cc755a09917ed2e6 \ - --hash=sha256:39699233bc72dd482da1415dcb06076e32f60eddc796a796c5fb6c5efce94667 \ - --hash=sha256:39b19251dec4de8ff8496cd0806cbe27bf0684f765abb1f4809554de93785f2d \ - --hash=sha256:3d857f55e7fdf7c38ab96c4558c95b97d1c685be6b05c249f5fdafcbd6f9899e \ - --hash=sha256:3de19cfecd1465d0dcf8a5b5ea8b3155b42ed0b639dba4b71e323d74f2a3be5e \ - --hash=sha256:3f3096405acc48887458bbf9f6814d43785ac7ba2a57ea6442b581dedbc60ce6 \ - --hash=sha256:40483b2f2d3ba7aad426443767ff5632ec3156ef09742b96913787d13c336471 \ - --hash=sha256:413aa561266a4be2d06cd2b9665e89d9f54c543f418773076a76adcf2af08bc7 \ - --hash=sha256:44aba2f0cafd287871a495fb3163408b0bd25bbce135c6f621534a07f4f7875c \ - --hash=sha256:49ff32b09f5aa0cd30a20c2b39db3e669c845589f2b7fc910365210887e39344 \ - --hash=sha256:4d1cfce39e511069b11e67cd0bd78ceff31443b7c9e5c04db73c7a19f572967c \ - --hash=sha256:57c540ed8fb1f05cb997c6761cd56db72395b0d6985e90571ff660452ade4f98 \ - --hash=sha256:5f48cb3e88fbc294dc90e215d86fbaf1c852c63dbdb6c3a3e63f45c4b57f7344 \ - --hash=sha256:5fe44e277225fd3dff6882d86d3d447205d43532c3627313d17e754fb3905a0e \ - --hash=sha256:60e8c196cd82cbbd4f130b5290007e13e6de3eca79f0d4d38014769d96a7c475 \ - --hash=sha256:65167da969cd1ec3a1df31cb221ca3a19a8aaa25370ecb17d428415e93c1935e \ - --hash=sha256:680060061adb2d74ce352628cb798cfdec399068aa7f07ba9fb818b2b3305f98 \ - --hash=sha256:6bbaebf0d11567fa8926215ae731e1d58e6ec28a8a25235b8a47405d301332db \ - --hash=sha256:6c05483c3136ac4c91b4e81903cb53a8707d316f488124d0398499a4f8e8ef51 \ - --hash=sha256:6dc8b7e2f4eb184b37655195f421836cfae6f58197b67e3ffc501f1333d993fa \ - --hash=sha256:6e504f7b16118198f138ef31ba24d985b124c2c469fe8467007cf30fd992f934 \ - --hash=sha256:74623f2ab5cc3f7c886add4f735d1031a1d2be4a4ae63c0546cfd74e7a31ddf6 \ - --hash=sha256:77f0d13fa87036d7553bf81f0e1fe3ce68d14c9976c9851744e4d3e91127e95f \ - --hash=sha256:85eef4cb5625c47ee6425c58a3502555e10f45ee973da878ac8248ad58c136f3 \ - --hash=sha256:882567b7ae57c1b1a0250208cc21a7976d8cbcc49d5a322e607e6f09c9e0bd53 \ - --hash=sha256:8b986403023c8f3bf8f487c2e6186afda156174d31c175f747d8934dfddf3479 \ - --hash=sha256:8cfa5f29a695cb7438965e6c3e8d06e0416060cf0d709c1b1c1653a939bf5c2a \ - --hash=sha256:8eafe7c36c8430b7794edeab3087dec7bf31d634d92f2af9949434b9d1964cba \ - --hash=sha256:9198f447e1dc5647d07c9a6bbe2063cc0132728cc7175b39dbc796da5b54920d \ - --hash=sha256:92190db305a6f48734d3982f2c60fa30d6b5ee9bff10f2887b930d7b40119f4c \ - --hash=sha256:927ccf5cd17c48f801f4ed43a7e5673a2724bd2171460be3e3894e6e332ef83a \ - --hash=sha256:98e81648e0b36e325ab67e46b5400a7a6d4a22b8a7c8e8bbfe20e7db7906bf95 \ - --hash=sha256:9a818668b674047fd88c4cddada7ab8f1c298812783e8328e956b78dc4807f9f \ - --hash=sha256:a152d86a3ae00ba5f47b3acf3b827509fd0b6cb7d3259665e63dafbad22a75ea \ - --hash=sha256:a2718c1de8504121714234b6f8241d0019450353276c88b9453c9c3d92e101db \ - --hash=sha256:a39fb973a726e63223287adc6dafe444ce75af952d711e400f3bf2b36ef55a7b \ - --hash=sha256:a899699294f28f7be8992853c0c60741f16ff199205e2e6cdca155762cbaa59d \ - --hash=sha256:a8fdfed3deaf1928fb7667d96e0567cdf58c2b370ea2ee7e586aa383ec2cb346 \ - --hash=sha256:aabb081ca0ec5d39591fc33018cd4b3f96e1a2dd6756282029986d00a785fba4 \ - --hash=sha256:b1f5b45829ac1848893f0ddf5cb326110604d6df96cdc255b0bf9edd154104d4 \ - --hash=sha256:b48e35f4ab6f6a7597c46e301126ceba4c44cd3280e3750f85db48b082624fa4 \ - --hash=sha256:b54c83f1c0c0f1d748dca0af516062b8829d53d1f0c402be24b4257a9c48ada6 \ - --hash=sha256:ba0cb30acd3ef11c94dc27fbfba68940652492bc107075e7ffe23057f9425681 \ - --hash=sha256:bb50ce5fb202a26fd5404620e7ef820ad1ab3558b444cb0b55beb7ef66cd2d63 \ - --hash=sha256:c95eb6db2884917d86cde0b4d4cf31adf485c8ec36bf8696dd66fa70de96f36b \ - --hash=sha256:d0ffd9e2e4441c96a9c91ec1783285d80bf835b677853fc2770a89d50c1e48ac \ - --hash=sha256:d57b5046c120561ba8fa8e4030fbb8b822f3063910fa901ffadf16e2b7128ad6 \ - --hash=sha256:d9e6a7664ddd9746e20b7325351fe1a8408d0a2bf9c63b5e898290ddc8f09544 \ - --hash=sha256:dc578891de1db95b2a35001b695451767b580bb45753717498213c5ff3c41d63 \ - --hash=sha256:e0434aa22c821f44eeb4c650b81c7fbdd8c0122c6c4b5a576a76d5a35625ecd9 \ - --hash=sha256:e06a922a469cae9a57100864caf4f8a97a1026513793969f8ba5b63137a35d25 \ - --hash=sha256:e493962256a38f58283de033d8af176c5c91c084ea30f15834f7545451c42059 \ - --hash=sha256:ecb0019d44f4cdb50b676c5d0cb4b1eae8e15d1ed3d3e6639f986fc92b2ec52c \ - --hash=sha256:f935c4493eda9069851058fa0d9e39dbf6286be690066509305e52912714dbb2 +numpy==2.4.1 \ + --hash=sha256:0093e85df2960d7e4049664b26afc58b03236e967fb942354deef3208857a04c \ + --hash=sha256:09aa8a87e45b55a1c2c205d42e2808849ece5c484b2aab11fecabec3841cafba \ + --hash=sha256:0cce2a669e3c8ba02ee563c7835f92c153cf02edff1ae05e1823f1dde21b16a5 \ + --hash=sha256:0e6e8f9d9ecf95399982019c01223dc130542960a12edfa8edd1122dfa66a8a8 \ + --hash=sha256:0f118ce6b972080ba0758c6087c3617b5ba243d806268623dc34216d69099ba0 \ + --hash=sha256:178de8f87948163d98a4c9ab5bee4ce6519ca918926ec8df195af582de28544d \ + --hash=sha256:18e14c4d09d55eef39a6ab5b08406e84bc6869c1e34eef45564804f90b7e0574 \ + --hash=sha256:2023ef86243690c2791fd6353e5b4848eedaa88ca8a2d129f462049f6d484696 \ + --hash=sha256:20d4649c773f66cc2fc36f663e091f57c3b7655f936a4c681b4250855d1da8f5 \ + --hash=sha256:2302dc0224c1cbc49bb94f7064f3f923a971bfae45c33870dcbff63a2a550505 \ + --hash=sha256:26f0bcd9c79a00e339565b303badc74d3ea2bd6d52191eeca5f95936cad107d0 \ + --hash=sha256:297c72b1b98100c2e8f873d5d35fb551fce7040ade83d67dd51d38c8d42a2162 \ + --hash=sha256:2f44de05659b67d20499cbc96d49f2650769afcb398b79b324bb6e297bfe3844 \ + --hash=sha256:2ffd257026eb1b34352e749d7cc1678b5eeec3e329ad8c9965a797e08ccba205 \ + --hash=sha256:382ad67d99ef49024f11d1ce5dcb5ad8432446e4246a4b014418ba3a1175a1f4 \ + --hash=sha256:3869ea1ee1a1edc16c29bbe3a2f2a4e515cc3a44d43903ad41e0cacdbaf733dc \ + --hash=sha256:3d1a100e48cb266090a031397863ff8a30050ceefd798f686ff92c67a486753d \ + --hash=sha256:423797bdab2eeefbe608d7c1ec7b2b4fd3c58d51460f1ee26c7500a1d9c9ee93 \ + --hash=sha256:42d7dd5fa36d16d52a84f821eb96031836fd405ee6955dd732f2023724d0aa01 \ + --hash=sha256:49e792ec351315e16da54b543db06ca8a86985ab682602d90c60ef4ff4db2a9c \ + --hash=sha256:4e53170557d37ae404bf8d542ca5b7c629d6efa1117dac6a83e394142ea0a43f \ + --hash=sha256:4f1b68ff47680c2925f8063402a693ede215f0257f02596b1318ecdfb1d79e33 \ + --hash=sha256:4f9c360ecef085e5841c539a9a12b883dff005fbd7ce46722f5e9cef52634d82 \ + --hash=sha256:529050522e983e00a6c1c6b67411083630de8b57f65e853d7b03d9281b8694d2 \ + --hash=sha256:52b5f61bdb323b566b528899cc7db2ba5d1015bda7ea811a8bcf3c89c331fa42 \ + --hash=sha256:538bf4ec353709c765ff75ae616c34d3c3dca1a68312727e8f2676ea644f8509 \ + --hash=sha256:5adf01965456a664fc727ed69cc71848f28d063217c63e1a0e200a118d5eec9a \ + --hash=sha256:5b55aa56165b17aaf15520beb9cbd33c9039810e0d9643dd4379e44294c7303e \ + --hash=sha256:5d558123217a83b2d1ba316b986e9248a1ed1971ad495963d555ccd75dcb1556 \ + --hash=sha256:5de60946f14ebe15e713a6f22850c2372fa72f4ff9a432ab44aa90edcadaa65a \ + --hash=sha256:62fea415f83ad8fdb6c20840578e5fbaf5ddd65e0ec6c3c47eda0f69da172510 \ + --hash=sha256:6436cffb4f2bf26c974344439439c95e152c9a527013f26b3577be6c2ca64295 \ + --hash=sha256:6461de5113088b399d655d45c3897fa188766415d0f568f175ab071c8873bd73 \ + --hash=sha256:69e7419c9012c4aaf695109564e3387f1259f001b4326dfa55907b098af082d3 \ + --hash=sha256:71abbea030f2cfc3092a0ff9f8c8fdefdc5e0bf7d9d9c99663538bb0ecdac0b9 \ + --hash=sha256:7211b95ca365519d3596a1d8688a95874cc94219d417504d9ecb2df99fa7bfa8 \ + --hash=sha256:727c6c3275ddefa0dc078524a85e064c057b4f4e71ca5ca29a19163c607be745 \ + --hash=sha256:79e9e06c4c2379db47f3f6fc7a8652e7498251789bf8ff5bd43bf478ef314ca2 \ + --hash=sha256:7ad270f438cbdd402c364980317fb6b117d9ec5e226fff5b4148dd9aa9fc6e02 \ + --hash=sha256:7d5d7999df434a038d75a748275cd6c0094b0ecdb0837342b332a82defc4dc4d \ + --hash=sha256:8097529164c0f3e32bb89412a0905d9100bf434d9692d9fc275e18dcf53c9344 \ + --hash=sha256:82c55962006156aeef1629b953fd359064aa47e4d82cfc8e67f0918f7da3344f \ + --hash=sha256:8361ea4220d763e54cff2fbe7d8c93526b744f7cd9ddab47afeff7e14e8503be \ + --hash=sha256:899d2c18024984814ac7e83f8f49d8e8180e2fbe1b2e252f2e7f1d06bea92425 \ + --hash=sha256:8ad35f20be147a204e28b6a0575fbf3540c5e5f802634d4258d55b1ff5facce1 \ + --hash=sha256:8f085da926c0d491ffff3096f91078cc97ea67e7e6b65e490bc8dcda65663be2 \ + --hash=sha256:9171a42fcad32dcf3fa86f0a4faa5e9f8facefdb276f54b8b390d90447cff4e2 \ + --hash=sha256:92a0e65272fd60bfa0d9278e0484c2f52fe03b97aedc02b357f33fe752c52ffb \ + --hash=sha256:941c2a93313d030f219f3a71fd3d91a728b82979a5e8034eb2e60d394a2b83f9 \ + --hash=sha256:98b35775e03ab7f868908b524fc0a84d38932d8daf7b7e1c3c3a1b6c7a2c9f15 \ + --hash=sha256:a1ceafc5042451a858231588a104093474c6a5c57dcc724841f5c888d237d690 \ + --hash=sha256:a73044b752f5d34d4232f25f18160a1cc418ea4507f5f11e299d8ac36875f8a0 \ + --hash=sha256:a7870e8c5fc11aef57d6fea4b4085e537a3a60ad2cdd14322ed531fdca68d261 \ + --hash=sha256:a92f227dbcdc9e4c3e193add1a189a9909947d4f8504c576f4a732fd0b54240a \ + --hash=sha256:ac08c63cb7779b85e9d5318e6c3518b424bc1f364ac4cb2c6136f12e5ff2dccc \ + --hash=sha256:b6bcf39112e956594b3331316d90c90c90fb961e39696bda97b89462f5f3943f \ + --hash=sha256:c0faba4a331195bfa96f93dd9dfaa10b2c7aa8cda3a02b7fd635e588fe821bf5 \ + --hash=sha256:ce9ce141a505053b3c7bce3216071f3bf5c182b8b28930f14cd24d43932cd2df \ + --hash=sha256:cf6470d91d34bf669f61d515499859fa7a4c2f7c36434afb70e82df7217933f9 \ + --hash=sha256:d3703409aac693fa82c0aee023a1ae06a6e9d065dba10f5e8e80f642f1e9d0a2 \ + --hash=sha256:d3e3087f53e2b4428766b54932644d148613c5a595150533ae7f00dab2f319a8 \ + --hash=sha256:d3f8f0df9f4b8be57b3bf74a1d087fec68f927a2fab68231fdb442bf2c12e426 \ + --hash=sha256:d797454e37570cfd61143b73b8debd623c3c0952959adb817dd310a483d58a1b \ + --hash=sha256:e1a27bb1b2dee45a2a53f5ca6ff2d1a7f135287883a1689e930d44d1ff296c87 \ + --hash=sha256:e3bd2cb07841166420d2fa7146c96ce00cb3410664cbc1a6be028e456c4ee220 \ + --hash=sha256:e7b6b5e28bbd47b7532698e5db2fe1db693d84b58c254e4389d99a27bb9b8f6b \ + --hash=sha256:e867df947d427cdd7a60e3e271729090b0f0df80f5f10ab7dd436f40811699c3 \ + --hash=sha256:ea66d2b41ca4a1630aae5507ee0a71647d3124d1741980138aa8f28f44dac36e \ + --hash=sha256:edee228f76ee2dab4579fad6f51f6a305de09d444280109e0f75df247ff21501 \ + --hash=sha256:f0a90aba7d521e6954670550e561a4cb925713bd944445dbe9e729b71f6cabee \ + --hash=sha256:f93bc6892fe7b0663e5ffa83b61aab510aacffd58c16e012bb9352d489d90cb7 \ + --hash=sha256:fb1461c99de4d040666ca0444057b06541e5642f800b71c56e6ea92d6a853a0c # via # feast (setup.py) # dask @@ -1855,16 +1834,15 @@ numpy==2.4.0 \ # ibis-framework # pandas # pandas-gbq - # pyarrow oauthlib==3.3.1 \ --hash=sha256:0f0f8aa759826a193cf66c12ea1af1637f87b9b4622d46e866952bb022e538c9 \ --hash=sha256:88119c938d2b8fb88561af5f6ee0eec8cc8d552b7bb1f712743136eb7523b7a1 # via # kubernetes # requests-oauthlib -packaging==24.2 \ - --hash=sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759 \ - --hash=sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f +packaging==25.0 \ + --hash=sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484 \ + --hash=sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f # via # dask # db-dtypes @@ -1873,7 +1851,6 @@ packaging==24.2 \ # gunicorn # hatchling # ibis-framework - # ibis-substrait # pandas-gbq # pyproject-metadata # scikit-build-core @@ -1945,9 +1922,9 @@ pandas==2.3.3 \ # pandas-gbq # pymilvus # snowflake-connector-python -pandas-gbq==0.32.0 \ - --hash=sha256:249623d574c65e98cf19b7b7ecda97729f4f0a843eae3a0a82d9ef50adcdf4ef \ - --hash=sha256:28018ff09f2e49ab2b01a11329bd4e562fd65da406030b4a8001a3a4e80a1e34 +pandas-gbq==0.33.0 \ + --hash=sha256:499ad18a7b1917e2cc04bbd763ec37c11ecc49030348c45cebb9cbbdb7f909af \ + --hash=sha256:61357e11d73e0ae57cbff31e71fc3ed83da3d16b58b653f715b32ad760527e34 # via google-cloud-bigquery parsy==2.2 \ --hash=sha256:5e981613d9d2d8b68012d1dd0afe928967bea2e4eefdb76c2f545af0dd02a9e7 \ @@ -1968,9 +1945,9 @@ patchelf==0.17.2.4 \ --hash=sha256:d842b51f0401460f3b1f3a3a67d2c266a8f515a5adfbfa6e7b656cb3ac2ed8bc \ --hash=sha256:d9b35ebfada70c02679ad036407d9724ffe1255122ba4ac5e4be5868618a5689 # via feast (setup.py) -pathspec==0.12.1 \ - --hash=sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 \ - --hash=sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712 +pathspec==1.0.3 \ + --hash=sha256:bac5cf97ae2c2876e2d25ebb15078eb04d76e4b98921ee31c6f85ade8b59444d \ + --hash=sha256:e80767021c1cc524aa3fb14bedda9c34406591343cc42797b386ce7b9354fb6c # via # hatchling # mypy @@ -1991,9 +1968,9 @@ poetry-dynamic-versioning==1.9.1 \ --hash=sha256:65a0c814e6d30d4807734a3c34edf261fd7cc3b340dbd23b6a33ee41f7d0b547 \ --hash=sha256:d6e7b9df817aa2ca4946cd695c6c89e1379d2e6c640f008a9b6170d081a9da48 # via feast (setup.py) -prometheus-client==0.23.1 \ - --hash=sha256:6ae8f9081eaaaf153a2e959d2e6c4f4fb57b12ef76c8c7980202f1e57b48b2ce \ - --hash=sha256:dd1913e6e76b59cfe44e7a4b83e01afc9873c1bdfd2ed8739f1e76aeca115f99 +prometheus-client==0.24.0 \ + --hash=sha256:4ab6d4fb5a1b25ad74b58e6271857e356fff3399473e599d227ab5d0ce6637f0 \ + --hash=sha256:726b40c0d499f4904d4b5b7abe8d43e6aff090de0d468ae8f2226290b331c667 # via feast (setup.py) propcache==0.4.1 \ --hash=sha256:0002004213ee1f36cfb3f9a42b5066100c44276b9b72b4e1504cddd3d692e86e \ @@ -2129,17 +2106,17 @@ proto-plus==1.27.0 \ # google-cloud-bigquery-storage # google-cloud-bigtable # google-cloud-datastore -protobuf==6.33.2 \ - --hash=sha256:1f8017c48c07ec5859106533b682260ba3d7c5567b1ca1f24297ce03384d1b4f \ - --hash=sha256:2981c58f582f44b6b13173e12bb8656711189c2a70250845f264b877f00b1913 \ - --hash=sha256:56dc370c91fbb8ac85bc13582c9e373569668a290aa2e66a590c2a0d35ddb9e4 \ - --hash=sha256:7109dcc38a680d033ffb8bf896727423528db9163be1b6a02d6a49606dcadbfe \ - --hash=sha256:7636aad9bb01768870266de5dc009de2d1b936771b38a793f73cbbf279c91c5c \ - --hash=sha256:87eb388bd2d0f78febd8f4c8779c79247b26a5befad525008e49a6955787ff3d \ - --hash=sha256:8cd7640aee0b7828b6d03ae518b5b4806fdfc1afe8de82f79c3454f8aef29872 \ - --hash=sha256:b5d3b5625192214066d99b2b605f5783483575656784de223f00a8d00754fc0e \ - --hash=sha256:d9b19771ca75935b3a4422957bc518b0cecb978b31d1dd12037b088f6bcc0e43 \ - --hash=sha256:fc2a0e8b05b180e5fc0dd1559fe8ebdae21a27e81ac77728fb6c42b12c7419b4 +protobuf==6.33.4 \ + --hash=sha256:0f12ddbf96912690c3582f9dffb55530ef32015ad8e678cd494312bd78314c4f \ + --hash=sha256:1fe3730068fcf2e595816a6c34fe66eeedd37d51d0400b72fabc848811fdc1bc \ + --hash=sha256:2fe67f6c014c84f655ee06f6f66213f9254b3a8b6bda6cda0ccd4232c73c06f0 \ + --hash=sha256:3df850c2f8db9934de4cf8f9152f8dc2558f49f298f37f90c517e8e5c84c30e9 \ + --hash=sha256:757c978f82e74d75cba88eddec479df9b99a42b31193313b75e492c06a51764e \ + --hash=sha256:8f11ffae31ec67fc2554c2ef891dcb561dae9a2a3ed941f9e134c2db06657dbc \ + --hash=sha256:918966612c8232fc6c24c78e1cd89784307f5814ad7506c308ee3cf86662850d \ + --hash=sha256:955478a89559fa4568f5a81dce77260eabc5c686f9e8366219ebd30debf06aa6 \ + --hash=sha256:c7c64f259c618f0bef7bee042075e390debbf9682334be2b67408ec7c1c09ee6 \ + --hash=sha256:dc2e61bca3b10470c1912d166fe0af67bfc20eb55971dcef8dfa48ce14f0ed91 # via # feast (setup.py) # google-api-core @@ -2153,7 +2130,6 @@ protobuf==6.33.2 \ # grpcio-status # proto-plus # pymilvus - # substrait psutil==7.2.1 \ --hash=sha256:05cc68dbb8c174828624062e73078e7e35406f4ca2d0866c272c2410d8ef06d1 \ --hash=sha256:08a2f175e48a898c8eb8eace45ce01777f4785bc744c90aa2cc7f2fa5462a266 \ @@ -2190,43 +2166,57 @@ psycopg-pool==3.3.0 \ --hash=sha256:2e44329155c410b5e8666372db44276a8b1ebd8c90f1c3026ebba40d4bc81063 \ --hash=sha256:fa115eb2860bd88fce1717d75611f41490dec6135efb619611142b24da3f6db5 # via psycopg -pyarrow==17.0.0 \ - --hash=sha256:0071ce35788c6f9077ff9ecba4858108eebe2ea5a3f7cf2cf55ebc1dbc6ee24a \ - --hash=sha256:02dae06ce212d8b3244dd3e7d12d9c4d3046945a5933d28026598e9dbbda1fca \ - --hash=sha256:0b72e87fe3e1db343995562f7fff8aee354b55ee83d13afba65400c178ab2597 \ - --hash=sha256:0cdb0e627c86c373205a2f94a510ac4376fdc523f8bb36beab2e7f204416163c \ - --hash=sha256:13d7a460b412f31e4c0efa1148e1d29bdf18ad1411eb6757d38f8fbdcc8645fb \ - --hash=sha256:1c8856e2ef09eb87ecf937104aacfa0708f22dfeb039c363ec99735190ffb977 \ - --hash=sha256:2e19f569567efcbbd42084e87f948778eb371d308e137a0f97afe19bb860ccb3 \ - --hash=sha256:32503827abbc5aadedfa235f5ece8c4f8f8b0a3cf01066bc8d29de7539532687 \ - --hash=sha256:392bc9feabc647338e6c89267635e111d71edad5fcffba204425a7c8d13610d7 \ - --hash=sha256:42bf93249a083aca230ba7e2786c5f673507fa97bbd9725a1e2754715151a204 \ - --hash=sha256:4beca9521ed2c0921c1023e68d097d0299b62c362639ea315572a58f3f50fd28 \ - --hash=sha256:5984f416552eea15fd9cee03da53542bf4cddaef5afecefb9aa8d1010c335087 \ - --hash=sha256:6b244dc8e08a23b3e352899a006a26ae7b4d0da7bb636872fa8f5884e70acf15 \ - --hash=sha256:757074882f844411fcca735e39aae74248a1531367a7c80799b4266390ae51cc \ - --hash=sha256:75c06d4624c0ad6674364bb46ef38c3132768139ddec1c56582dbac54f2663e2 \ - --hash=sha256:7c7916bff914ac5d4a8fe25b7a25e432ff921e72f6f2b7547d1e325c1ad9d155 \ - --hash=sha256:9b564a51fbccfab5a04a80453e5ac6c9954a9c5ef2890d1bcf63741909c3f8df \ - --hash=sha256:9b8a823cea605221e61f34859dcc03207e52e409ccf6354634143e23af7c8d22 \ - --hash=sha256:9ba11c4f16976e89146781a83833df7f82077cdab7dc6232c897789343f7891a \ - --hash=sha256:a155acc7f154b9ffcc85497509bcd0d43efb80d6f733b0dc3bb14e281f131c8b \ - --hash=sha256:a27532c38f3de9eb3e90ecab63dfda948a8ca859a66e3a47f5f42d1e403c4d03 \ - --hash=sha256:a48ddf5c3c6a6c505904545c25a4ae13646ae1f8ba703c4df4a1bfe4f4006bda \ - --hash=sha256:a5c8b238d47e48812ee577ee20c9a2779e6a5904f1708ae240f53ecbee7c9f07 \ - --hash=sha256:af5ff82a04b2171415f1410cff7ebb79861afc5dae50be73ce06d6e870615204 \ - --hash=sha256:b0c6ac301093b42d34410b187bba560b17c0330f64907bfa4f7f7f2444b0cf9b \ - --hash=sha256:d7d192305d9d8bc9082d10f361fc70a73590a4c65cf31c3e6926cd72b76bc35c \ - --hash=sha256:da1e060b3876faa11cee287839f9cc7cdc00649f475714b8680a05fd9071d545 \ - --hash=sha256:db023dc4c6cae1015de9e198d41250688383c3f9af8f565370ab2b4cb5f62655 \ - --hash=sha256:dc5c31c37409dfbc5d014047817cb4ccd8c1ea25d19576acf1a001fe07f5b420 \ - --hash=sha256:dec8d129254d0188a49f8a1fc99e0560dc1b85f60af729f47de4046015f9b0a5 \ - --hash=sha256:e3343cb1e88bc2ea605986d4b94948716edc7a8d14afd4e2c097232f729758b4 \ - --hash=sha256:edca18eaca89cd6382dfbcff3dd2d87633433043650c07375d095cd3517561d8 \ - --hash=sha256:f1e70de6cb5790a50b01d2b686d54aaf73da01266850b05e3af2a1bc89e16053 \ - --hash=sha256:f553ca691b9e94b202ff741bdd40f6ccb70cdd5fbf65c187af132f1317de6145 \ - --hash=sha256:f7ae2de664e0b158d1607699a16a488de3d008ba99b3a7aa5de1cbc13574d047 \ - --hash=sha256:fa3c246cc58cb5a4a5cb407a18f193354ea47dd0648194e6265bd24177982fe8 +pyarrow==22.0.0 \ + --hash=sha256:001ea83a58024818826a9e3f89bf9310a114f7e26dfe404a4c32686f97bd7901 \ + --hash=sha256:00626d9dc0f5ef3a75fe63fd68b9c7c8302d2b5bbc7f74ecaedba83447a24f84 \ + --hash=sha256:0c34fe18094686194f204a3b1787a27456897d8a2d62caf84b61e8dfbc0252ae \ + --hash=sha256:12fe549c9b10ac98c91cf791d2945e878875d95508e1a5d14091a7aaa66d9cf8 \ + --hash=sha256:1a812a5b727bc09c3d7ea072c4eebf657c2f7066155506ba31ebf4792f88f016 \ + --hash=sha256:252be4a05f9d9185bb8c18e83764ebcfea7185076c07a7a662253af3a8c07941 \ + --hash=sha256:334f900ff08ce0423407af97e6c26ad5d4e3b0763645559ece6fbf3747d6a8f5 \ + --hash=sha256:35ad0f0378c9359b3f297299c3309778bb03b8612f987399a0333a560b43862d \ + --hash=sha256:3d600dc583260d845c7d8a6db540339dd883081925da2bd1c5cb808f720b3cd9 \ + --hash=sha256:3e294c5eadfb93d78b0763e859a0c16d4051fc1c5231ae8956d61cb0b5666f5a \ + --hash=sha256:3e739edd001b04f654b166204fc7a9de896cf6007eaff33409ee9e50ceaff754 \ + --hash=sha256:44729980b6c50a5f2bfcc2668d36c569ce17f8b17bccaf470c4313dcbbf13c9d \ + --hash=sha256:44d2d26cda26d18f7af7db71453b7b783788322d756e81730acb98f24eb90ace \ + --hash=sha256:4c19236ae2402a8663a2c8f21f1870a03cc57f0bef7e4b6eb3238cc82944de80 \ + --hash=sha256:69763ab2445f632d90b504a815a2a033f74332997052b721002298ed6de40f2e \ + --hash=sha256:6dda1ddac033d27421c20d7a7943eec60be44e0db4e079f33cc5af3b8280ccde \ + --hash=sha256:6f9762274496c244d951c819348afbcf212714902742225f649cf02823a6a10f \ + --hash=sha256:710624ab925dc2b05a6229d47f6f0dac1c1155e6ed559be7109f684eba048a48 \ + --hash=sha256:7388ac685cab5b279a41dfe0a6ccd99e4dbf322edfb63e02fc0443bf24134e91 \ + --hash=sha256:77718810bd3066158db1e95a63c160ad7ce08c6b0710bc656055033e39cdad88 \ + --hash=sha256:7a820d8ae11facf32585507c11f04e3f38343c1e784c9b5a8b1da5c930547fe2 \ + --hash=sha256:8382ad21458075c2e66a82a29d650f963ce51c7708c7c0ff313a8c206c4fd5e8 \ + --hash=sha256:84378110dd9a6c06323b41b56e129c504d157d1a983ce8f5443761eb5256bafc \ + --hash=sha256:854794239111d2b88b40b6ef92aa478024d1e5074f364033e73e21e3f76b25e0 \ + --hash=sha256:92843c305330aa94a36e706c16209cd4df274693e777ca47112617db7d0ef3d7 \ + --hash=sha256:9bddc2cade6561f6820d4cd73f99a0243532ad506bc510a75a5a65a522b2d74d \ + --hash=sha256:a4893d31e5ef780b6edcaf63122df0f8d321088bb0dee4c8c06eccb1ca28d145 \ + --hash=sha256:a9d9ffdc2ab696f6b15b4d1f7cec6658e1d788124418cb30030afbae31c64746 \ + --hash=sha256:ac93252226cf288753d8b46280f4edf3433bf9508b6977f8dd8526b521a1bbb9 \ + --hash=sha256:b41f37cabfe2463232684de44bad753d6be08a7a072f6a83447eeaf0e4d2a215 \ + --hash=sha256:b883fe6fd85adad7932b3271c38ac289c65b7337c2c132e9569f9d3940620730 \ + --hash=sha256:b9d71701ce97c95480fecb0039ec5bb889e75f110da72005743451339262f4ce \ + --hash=sha256:ba95112d15fd4f1105fb2402c4eab9068f0554435e9b7085924bcfaac2cc306f \ + --hash=sha256:bba208d9c7decf9961998edf5c65e3ea4355d5818dd6cd0f6809bec1afb951cc \ + --hash=sha256:bd0d42297ace400d8febe55f13fdf46e86754842b860c978dfec16f081e5c653 \ + --hash=sha256:bea79263d55c24a32b0d79c00a1c58bb2ee5f0757ed95656b01c0fb310c5af3d \ + --hash=sha256:c064e28361c05d72eed8e744c9605cbd6d2bb7481a511c74071fd9b24bc65d7d \ + --hash=sha256:c3200cb41cdbc65156e5f8c908d739b0dfed57e890329413da2748d1a2cd1a4e \ + --hash=sha256:c6c791b09c57ed76a18b03f2631753a4960eefbbca80f846da8baefc6491fcfe \ + --hash=sha256:c6ec3675d98915bf1ec8b3c7986422682f7232ea76cad276f4c8abd5b7319b70 \ + --hash=sha256:ce20fe000754f477c8a9125543f1936ea5b8867c5406757c224d745ed033e691 \ + --hash=sha256:cedb9dd9358e4ea1d9bce3665ce0797f6adf97ff142c8e25b46ba9cdd508e9b6 \ + --hash=sha256:e0a15757fccb38c410947df156f9749ae4a3c89b2393741a50521f39a8cf202a \ + --hash=sha256:e6e95176209257803a8b3d0394f21604e796dadb643d2f7ca21b66c9c0b30c9a \ + --hash=sha256:e70ff90c64419709d38c8932ea9fe1cc98415c4f87ea8da81719e43f02534bc9 \ + --hash=sha256:ec1a15968a9d80da01e1d30349b2b0d7cc91e96588ee324ce1b5228175043e95 \ + --hash=sha256:ec5d40dd494882704fb876c16fa7261a69791e784ae34e6b5992e977bd2e238c \ + --hash=sha256:f633074f36dbc33d5c05b5dc75371e5660f1dbf9c8b1d95669def05e5425989c \ + --hash=sha256:f7fe3dbe871294ba70d789be16b6e7e52b418311e166e0e3cba9522f0f437fb1 \ + --hash=sha256:f963ba8c3b0199f9d6b794c90ec77545e05eadc83973897a4523c9e8d84e9340 # via # feast (setup.py) # dask @@ -2413,9 +2403,9 @@ pyjwt[crypto]==2.10.1 \ # feast (setup.py) # mcp # snowflake-connector-python -pymilvus==2.4.15 \ - --hash=sha256:0601591ce0498315e19e9ac3f4fdd3051102ca87b6ddff5b33849f522288cff7 \ - --hash=sha256:b21878e5df74dca91b3f3cf0b0597fa6b6aed7bf5cde9a1b10641994faa353bf +pymilvus==2.5.18 \ + --hash=sha256:1b78badcfa8d62db7d0b29193fc0422e4676873ff1c745a9d75c2c885d7a7e32 \ + --hash=sha256:9e517076068e98dac51c018bc0dfe1f651d936154e2e2d9ad6c7b3dab1164e2d # via feast (setup.py) pymysql==1.1.2 \ --hash=sha256:4961d3e165614ae65014e361811a724e2044ad3ea3739de9903ae7c21f539f03 \ @@ -2454,7 +2444,6 @@ pytz==2025.2 \ --hash=sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3 \ --hash=sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00 # via - # ibis-framework # pandas # snowflake-connector-python pyyaml==6.0.3 \ @@ -2534,7 +2523,6 @@ pyyaml==6.0.3 \ # via # feast (setup.py) # dask - # ibis-substrait # kubernetes # uvicorn redis==4.6.0 \ @@ -2566,9 +2554,9 @@ requests-oauthlib==2.0.0 \ # via # google-auth-oauthlib # kubernetes -rich==13.9.4 \ - --hash=sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098 \ - --hash=sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90 +rich==14.2.0 \ + --hash=sha256:73ff50c7c0c1c77c8243079283f4edb376f0f6442433aecb8ce7e6d0b92d1fe4 \ + --hash=sha256:76bc51fe2e57d2b1be1f96c524b890b816e334ab4c1e45888799bfaab0021edd # via # fastapi-mcp # ibis-framework @@ -2767,9 +2755,9 @@ sortedcontainers==2.4.0 \ --hash=sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88 \ --hash=sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0 # via snowflake-connector-python -sphinx==9.0.4 \ - --hash=sha256:594ef59d042972abbc581d8baa577404abe4e6c3b04ef61bd7fc2acbd51f3fa3 \ - --hash=sha256:5bebc595a5e943ea248b99c13814c1c5e10b3ece718976824ffa7959ff95fffb +sphinx==9.1.0 \ + --hash=sha256:7741722357dd75f8190766926071fed3bdc211c74dd2d7d4df5404da95930ddb \ + --hash=sha256:c84fdd4e782504495fe4f2c0b3413d6c2bf388589bb352d439b2a3bb99991978 # via feast (setup.py) sphinxcontrib-applehelp==2.0.0 \ --hash=sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1 \ @@ -2849,13 +2837,13 @@ sqlalchemy[mypy]==2.0.45 \ --hash=sha256:fd93c6f5d65f254ceabe97548c709e073d6da9883343adaa51bf1a913ce93f8e \ --hash=sha256:fe187fc31a54d7fd90352f34e8c008cf3ad5d064d08fedd3de2e8df83eb4a1cf # via feast (setup.py) -sqlglot==25.20.2 \ - --hash=sha256:169fe8308dd70d7bd40117b2221b62bdc7c4e2ea8eb07394b2a6146cdedf05ab \ - --hash=sha256:cdbfd7ce3f2f39f32bd7b4c23fd9e0fd261636a6b14285b914e8def25fd0a567 +sqlglot==28.6.0 \ + --hash=sha256:8af76e825dc8456a49f8ce049d69bbfcd116655dda3e53051754789e2edf8eba \ + --hash=sha256:8c0a432a6745c6c7965bbe99a17667c5a3ca1d524a54b31997cf5422b1727f6a # via ibis-framework -sse-starlette==3.1.1 \ - --hash=sha256:bb38f71ae74cfd86b529907a9fda5632195dfa6ae120f214ea4c890c7ee9d436 \ - --hash=sha256:bffa531420c1793ab224f63648c059bcadc412bf9fdb1301ac8de1cf9a67b7fb +sse-starlette==3.1.2 \ + --hash=sha256:55eff034207a83a0eb86de9a68099bd0157838f0b8b999a1b742005c71e33618 \ + --hash=sha256:cd800dd349f4521b317b9391d3796fa97b71748a4da9b9e00aafab32dda375c8 # via mcp starlette==0.50.0 \ --hash=sha256:9e5391843ec9b6e472eed1365a78c8098cfceb7a74bfd4d6b1c0c0095efb3bca \ @@ -2864,12 +2852,6 @@ starlette==0.50.0 \ # fastapi # mcp # sse-starlette -substrait==0.24.2 \ - --hash=sha256:743cc352e96b0927b2cd37cd5a8fdac0a96a68df9600bd104fc36aebd222a836 \ - --hash=sha256:d1d475833566fa9d67eed3273456883c0568486ccced92b524b31709d2817e19 - # via - # feast (setup.py) - # ibis-substrait tabulate==0.9.0 \ --hash=sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c \ --hash=sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f @@ -2882,59 +2864,64 @@ toml==0.10.2 \ --hash=sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b \ --hash=sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f # via feast (setup.py) -tomli==2.3.0 \ - --hash=sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456 \ - --hash=sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845 \ - --hash=sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999 \ - --hash=sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0 \ - --hash=sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878 \ - --hash=sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf \ - --hash=sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3 \ - --hash=sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be \ - --hash=sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52 \ - --hash=sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b \ - --hash=sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67 \ - --hash=sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549 \ - --hash=sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba \ - --hash=sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22 \ - --hash=sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c \ - --hash=sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f \ - --hash=sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6 \ - --hash=sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba \ - --hash=sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45 \ - --hash=sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f \ - --hash=sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77 \ - --hash=sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606 \ - --hash=sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441 \ - --hash=sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0 \ - --hash=sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f \ - --hash=sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530 \ - --hash=sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05 \ - --hash=sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8 \ - --hash=sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005 \ - --hash=sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879 \ - --hash=sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae \ - --hash=sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc \ - --hash=sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b \ - --hash=sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b \ - --hash=sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e \ - --hash=sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf \ - --hash=sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac \ - --hash=sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8 \ - --hash=sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b \ - --hash=sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf \ - --hash=sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463 \ - --hash=sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876 +tomli==2.4.0 \ + --hash=sha256:0408e3de5ec77cc7f81960c362543cbbd91ef883e3138e81b729fc3eea5b9729 \ + --hash=sha256:0dc56fef0e2c1c470aeac5b6ca8cc7b640bb93e92d9803ddaf9ea03e198f5b0b \ + --hash=sha256:0e0fe8a0b8312acf3a88077a0802565cb09ee34107813bba1c7cd591fa6cfc8d \ + --hash=sha256:0f2e3955efea4d1cfbcb87bc321e00dc08d2bcb737fd1d5e398af111d86db5df \ + --hash=sha256:133e93646ec4300d651839d382d63edff11d8978be23da4cc106f5a18b7d0576 \ + --hash=sha256:1b168f2731796b045128c45982d3a4874057626da0e2ef1fdd722848b741361d \ + --hash=sha256:1c8a885b370751837c029ef9bc014f27d80840e48bac415f3412e6593bbc18c1 \ + --hash=sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a \ + --hash=sha256:1fb2945cbe303b1419e2706e711b7113da57b7db31ee378d08712d678a34e51e \ + --hash=sha256:20cedb4ee43278bc4f2fee6cb50daec836959aadaf948db5172e776dd3d993fc \ + --hash=sha256:20ffd184fb1df76a66e34bd1b36b4a4641bd2b82954befa32fe8163e79f1a702 \ + --hash=sha256:26ab906a1eb794cd4e103691daa23d95c6919cc2fa9160000ac02370cc9dd3f6 \ + --hash=sha256:2add28aacc7425117ff6364fe9e06a183bb0251b03f986df0e78e974047571fd \ + --hash=sha256:2b1e3b80e1d5e52e40e9b924ec43d81570f0e7d09d11081b797bc4692765a3d4 \ + --hash=sha256:31d556d079d72db7c584c0627ff3a24c5d3fb4f730221d3444f3efb1b2514776 \ + --hash=sha256:36b9d05b51e65b254ea6c2585b59d2c4cb91c8a3d91d0ed0f17591a29aaea54a \ + --hash=sha256:39b0b5d1b6dd03684b3fb276407ebed7090bbec989fa55838c98560c01113b66 \ + --hash=sha256:3cf226acb51d8f1c394c1b310e0e0e61fecdd7adcb78d01e294ac297dd2e7f87 \ + --hash=sha256:3d895d56bd3f82ddd6faaff993c275efc2ff38e52322ea264122d72729dca2b2 \ + --hash=sha256:413540dce94673591859c4c6f794dfeaa845e98bf35d72ed59636f869ef9f86f \ + --hash=sha256:43e685b9b2341681907759cf3a04e14d7104b3580f808cfde1dfdb60ada85475 \ + --hash=sha256:4cbcb367d44a1f0c2be408758b43e1ffb5308abe0ea222897d6bfc8e8281ef2f \ + --hash=sha256:551e321c6ba03b55676970b47cb1b73f14a0a4dce6a3e1a9458fd6d921d72e95 \ + --hash=sha256:5572e41282d5268eb09a697c89a7bee84fae66511f87533a6f88bd2f7b652da9 \ + --hash=sha256:5aa48d7c2356055feef06a43611fc401a07337d5b006be13a30f6c58f869e3c3 \ + --hash=sha256:5b5807f3999fb66776dbce568cc9a828544244a8eb84b84b9bafc080c99597b9 \ + --hash=sha256:5e3f639a7a8f10069d0e15408c0b96a2a828cfdec6fca05296ebcdcc28ca7c76 \ + --hash=sha256:685306e2cc7da35be4ee914fd34ab801a6acacb061b6a7abca922aaf9ad368da \ + --hash=sha256:75c2f8bbddf170e8effc98f5e9084a8751f8174ea6ccf4fca5398436e0320bc8 \ + --hash=sha256:7b438885858efd5be02a9a133caf5812b8776ee0c969fea02c45e8e3f296ba51 \ + --hash=sha256:7d49c66a7d5e56ac959cb6fc583aff0651094ec071ba9ad43df785abc2320d86 \ + --hash=sha256:7d6d9a4aee98fac3eab4952ad1d73aee87359452d1c086b5ceb43ed02ddb16b8 \ + --hash=sha256:84d081fbc252d1b6a982e1870660e7330fb8f90f676f6e78b052ad4e64714bf0 \ + --hash=sha256:8768715ffc41f0008abe25d808c20c3d990f42b6e2e58305d5da280ae7d1fa3b \ + --hash=sha256:920b1de295e72887bafa3ad9f7a792f811847d57ea6b1215154030cf131f16b1 \ + --hash=sha256:9a08144fa4cba33db5255f9b74f0b89888622109bd2776148f2597447f92a94e \ + --hash=sha256:a26d7ff68dfdb9f87a016ecfd1e1c2bacbe3108f4e0f8bcd2228ef9a766c787d \ + --hash=sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c \ + --hash=sha256:b5ef256a3fd497d4973c11bf142e9ed78b150d36f5773f1ca6088c230ffc5867 \ + --hash=sha256:b6c78bdf37764092d369722d9946cb65b8767bfa4110f902a1b2542d8d173c8a \ + --hash=sha256:bbb1b10aa643d973366dc2cb1ad94f99c1726a02343d43cbc011edbfac579e7c \ + --hash=sha256:c084ad935abe686bd9c898e62a02a19abfc9760b5a79bc29644463eaf2840cb0 \ + --hash=sha256:c73add4bb52a206fd0c0723432db123c0c75c280cbd67174dd9d2db228ebb1b4 \ + --hash=sha256:cae9c19ed12d4e8f3ebf46d1a75090e4c0dc16271c5bce1c833ac168f08fb614 \ + --hash=sha256:d20b797a5c1ad80c516e41bc1fb0443ddb5006e9aaa7bda2d71978346aeb9132 \ + --hash=sha256:d3d1654e11d724760cdb37a3d7691f0be9db5fbdaef59c9f532aabf87006dbaa \ + --hash=sha256:d878f2a6707cc9d53a1be1414bbb419e629c3d6e67f69230217bb663e76b5087 # via fastapi-mcp -tomlkit==0.13.3 \ - --hash=sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1 \ - --hash=sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0 +tomlkit==0.14.0 \ + --hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 \ + --hash=sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064 # via # poetry-dynamic-versioning # snowflake-connector-python -toolz==0.12.1 \ - --hash=sha256:d22731364c07d72eea0a0ad45bafb2c2937ab6fd38a3507bf55eae8744aa7d85 \ - --hash=sha256:ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d +toolz==1.1.0 \ + --hash=sha256:15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8 \ + --hash=sha256:27a5c770d068c110d9ed9323f24f1543e83b2f300a687b7891c1a6d56b697b5b # via # dask # ibis-framework @@ -2945,17 +2932,17 @@ tqdm==4.67.1 \ # via # feast (setup.py) # milvus-lite -trove-classifiers==2025.12.1.14 \ - --hash=sha256:a74f0400524fc83620a9be74a07074b5cbe7594fd4d97fd4c2bfde625fdc1633 \ - --hash=sha256:a8206978ede95937b9959c3aff3eb258bbf7b07dff391ddd4ea7e61f316635ab +trove-classifiers==2026.1.12.15 \ + --hash=sha256:832a7e89ccc43b64b89f8f9d9150c069ebcd17d2dc68279bc00bb53f2a9ae112 \ + --hash=sha256:8832dfbc226fc4df986666b9cb3a018818b1498aeb79f5f66a31a918b47a98f1 # via hatchling typeguard==4.4.4 \ --hash=sha256:3a7fd2dffb705d4d0efaed4306a704c89b9dee850b688f060a8b1615a79e5f74 \ --hash=sha256:b5f562281b6bfa1f5492470464730ef001646128b180769880468bd84b68b09e # via feast (setup.py) -typer==0.21.0 \ - --hash=sha256:c79c01ca6b30af9fd48284058a7056ba0d3bf5cf10d0ff3d0c5b11b68c258ac6 \ - --hash=sha256:c87c0d2b6eee3b49c5c64649ec92425492c14488096dfbc8a0c2799b2f6f9c53 +typer==0.21.1 \ + --hash=sha256:7985e89081c636b88d172c2ee0cfe33c253160994d47bdfdc302defd7d1f1d01 \ + --hash=sha256:ea835607cd752343b6b2b7ce676893e5a0324082268b48f27aa058bdb7d2145d # via fastapi-mcp types-psutil==7.0.0.20250218 \ --hash=sha256:1447a30c282aafefcf8941ece854e1100eee7b0296a9d9be9977292f0269b121 \ @@ -2997,7 +2984,9 @@ typing-inspection==0.4.2 \ tzdata==2025.3 \ --hash=sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1 \ --hash=sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7 - # via pandas + # via + # ibis-framework + # pandas ujson==5.11.0 \ --hash=sha256:0180a480a7d099082501cad1fe85252e4d4bf926b40960fb3d9e87a3a6fbbc80 \ --hash=sha256:04c41afc195fd477a59db3a84d5b83a871bd648ef371cf8c6f43072d89144eef \ @@ -3269,76 +3258,68 @@ websocket-client==1.9.0 \ --hash=sha256:9e813624b6eb619999a97dc7958469217c3176312b3a16a4bd1bc7e08a46ec98 \ --hash=sha256:af248a825037ef591efbf6ed20cc5faa03d3b47b9e5a2230a529eeee1c1fc3ef # via kubernetes -websockets==15.0.1 \ - --hash=sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2 \ - --hash=sha256:0a34631031a8f05657e8e90903e656959234f3a04552259458aac0b0f9ae6fd9 \ - --hash=sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5 \ - --hash=sha256:0c9e74d766f2818bb95f84c25be4dea09841ac0f734d1966f415e4edfc4ef1c3 \ - --hash=sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8 \ - --hash=sha256:0fdfe3e2a29e4db3659dbd5bbf04560cea53dd9610273917799f1cde46aa725e \ - --hash=sha256:1009ee0c7739c08a0cd59de430d6de452a55e42d6b522de7aa15e6f67db0b8e1 \ - --hash=sha256:1234d4ef35db82f5446dca8e35a7da7964d02c127b095e172e54397fb6a6c256 \ - --hash=sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85 \ - --hash=sha256:2034693ad3097d5355bfdacfffcbd3ef5694f9718ab7f29c29689a9eae841880 \ - --hash=sha256:21c1fa28a6a7e3cbdc171c694398b6df4744613ce9b36b1a498e816787e28123 \ - --hash=sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375 \ - --hash=sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065 \ - --hash=sha256:363c6f671b761efcb30608d24925a382497c12c506b51661883c3e22337265ed \ - --hash=sha256:39c1fec2c11dc8d89bba6b2bf1556af381611a173ac2b511cf7231622058af41 \ - --hash=sha256:3b1ac0d3e594bf121308112697cf4b32be538fb1444468fb0a6ae4feebc83411 \ - --hash=sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597 \ - --hash=sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f \ - --hash=sha256:3d00075aa65772e7ce9e990cab3ff1de702aa09be3940d1dc88d5abf1ab8a09c \ - --hash=sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3 \ - --hash=sha256:47819cea040f31d670cc8d324bb6435c6f133b8c7a19ec3d61634e62f8d8f9eb \ - --hash=sha256:47b099e1f4fbc95b701b6e85768e1fcdaf1630f3cbe4765fa216596f12310e2e \ - --hash=sha256:4a9fac8e469d04ce6c25bb2610dc535235bd4aa14996b4e6dbebf5e007eba5ee \ - --hash=sha256:4b826973a4a2ae47ba357e4e82fa44a463b8f168e1ca775ac64521442b19e87f \ - --hash=sha256:4c2529b320eb9e35af0fa3016c187dffb84a3ecc572bcee7c3ce302bfeba52bf \ - --hash=sha256:54479983bd5fb469c38f2f5c7e3a24f9a4e70594cd68cd1fa6b9340dadaff7cf \ - --hash=sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4 \ - --hash=sha256:5756779642579d902eed757b21b0164cd6fe338506a8083eb58af5c372e39d9a \ - --hash=sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665 \ - --hash=sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22 \ - --hash=sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675 \ - --hash=sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4 \ - --hash=sha256:5df592cd503496351d6dc14f7cdad49f268d8e618f80dce0cd5a36b93c3fc08d \ - --hash=sha256:5f4c04ead5aed67c8a1a20491d54cdfba5884507a48dd798ecaf13c74c4489f5 \ - --hash=sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65 \ - --hash=sha256:66dd88c918e3287efc22409d426c8f729688d89a0c587c88971a0faa2c2f3792 \ - --hash=sha256:678999709e68425ae2593acf2e3ebcbcf2e69885a5ee78f9eb80e6e371f1bf57 \ - --hash=sha256:67f2b6de947f8c757db2db9c71527933ad0019737ec374a8a6be9a956786aaf9 \ - --hash=sha256:693f0192126df6c2327cce3baa7c06f2a117575e32ab2308f7f8216c29d9e2e3 \ - --hash=sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151 \ - --hash=sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d \ - --hash=sha256:76d1f20b1c7a2fa82367e04982e708723ba0e7b8d43aa643d3dcd404d74f1475 \ - --hash=sha256:7f493881579c90fc262d9cdbaa05a6b54b3811c2f300766748db79f098db9940 \ - --hash=sha256:823c248b690b2fd9303ba00c4f66cd5e2d8c3ba4aa968b2779be9532a4dad431 \ - --hash=sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee \ - --hash=sha256:8dd8327c795b3e3f219760fa603dcae1dcc148172290a8ab15158cf85a953413 \ - --hash=sha256:8fdc51055e6ff4adeb88d58a11042ec9a5eae317a0a53d12c062c8a8865909e8 \ - --hash=sha256:a625e06551975f4b7ea7102bc43895b90742746797e2e14b70ed61c43a90f09b \ - --hash=sha256:abdc0c6c8c648b4805c5eacd131910d2a7f6455dfd3becab248ef108e89ab16a \ - --hash=sha256:ac017dd64572e5c3bd01939121e4d16cf30e5d7e110a119399cf3133b63ad054 \ - --hash=sha256:ac1e5c9054fe23226fb11e05a6e630837f074174c4c2f0fe442996112a6de4fb \ - --hash=sha256:ac60e3b188ec7574cb761b08d50fcedf9d77f1530352db4eef1707fe9dee7205 \ - --hash=sha256:b359ed09954d7c18bbc1680f380c7301f92c60bf924171629c5db97febb12f04 \ - --hash=sha256:b7643a03db5c95c799b89b31c036d5f27eeb4d259c798e878d6937d71832b1e4 \ - --hash=sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa \ - --hash=sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9 \ - --hash=sha256:cad21560da69f4ce7658ca2cb83138fb4cf695a2ba3e475e0559e05991aa8122 \ - --hash=sha256:d08eb4c2b7d6c41da6ca0600c077e93f5adcfd979cd777d747e9ee624556da4b \ - --hash=sha256:d50fd1ee42388dcfb2b3676132c78116490976f1300da28eb629272d5d93e905 \ - --hash=sha256:d591f8de75824cbb7acad4e05d2d710484f15f29d4a915092675ad3456f11770 \ - --hash=sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe \ - --hash=sha256:d63efaa0cd96cf0c5fe4d581521d9fa87744540d4bc999ae6e08595a1014b45b \ - --hash=sha256:d99e5546bf73dbad5bf3547174cd6cb8ba7273062a23808ffea025ecb1cf8562 \ - --hash=sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561 \ - --hash=sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215 \ - --hash=sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931 \ - --hash=sha256:f29d80eb9a9263b8d109135351caf568cc3f80b9928bccde535c235de55c22d9 \ - --hash=sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f \ - --hash=sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7 +websockets==16.0 \ + --hash=sha256:0298d07ee155e2e9fda5be8a9042200dd2e3bb0b8a38482156576f863a9d457c \ + --hash=sha256:04cdd5d2d1dacbad0a7bf36ccbcd3ccd5a30ee188f2560b7a62a30d14107b31a \ + --hash=sha256:08d7af67b64d29823fed316505a89b86705f2b7981c07848fb5e3ea3020c1abe \ + --hash=sha256:152284a83a00c59b759697b7f9e9cddf4e3c7861dd0d964b472b70f78f89e80e \ + --hash=sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec \ + --hash=sha256:19c4dc84098e523fd63711e563077d39e90ec6702aff4b5d9e344a60cb3c0cb1 \ + --hash=sha256:1c1b30e4f497b0b354057f3467f56244c603a79c0d1dafce1d16c283c25f6e64 \ + --hash=sha256:2b9f1e0d69bc60a4a87349d50c09a037a2607918746f07de04df9e43252c77a3 \ + --hash=sha256:31a52addea25187bde0797a97d6fc3d2f92b6f72a9370792d65a6e84615ac8a8 \ + --hash=sha256:32da954ffa2814258030e5a57bc73a3635463238e797c7375dc8091327434206 \ + --hash=sha256:335c23addf3d5e6a8633f9f8eda77efad001671e80b95c491dd0924587ece0b3 \ + --hash=sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156 \ + --hash=sha256:349f83cd6c9a415428ee1005cadb5c2c56f4389bc06a9af16103c3bc3dcc8b7d \ + --hash=sha256:37b31c1623c6605e4c00d466c9d633f9b812ea430c11c8a278774a1fde1acfa9 \ + --hash=sha256:417b28978cdccab24f46400586d128366313e8a96312e4b9362a4af504f3bbad \ + --hash=sha256:485c49116d0af10ac698623c513c1cc01c9446c058a4e61e3bf6c19dff7335a2 \ + --hash=sha256:4a1aba3340a8dca8db6eb5a7986157f52eb9e436b74813764241981ca4888f03 \ + --hash=sha256:50f23cdd8343b984957e4077839841146f67a3d31ab0d00e6b824e74c5b2f6e8 \ + --hash=sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230 \ + --hash=sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8 \ + --hash=sha256:5569417dc80977fc8c2d43a86f78e0a5a22fee17565d78621b6bb264a115d4ea \ + --hash=sha256:569d01a4e7fba956c5ae4fc988f0d4e187900f5497ce46339c996dbf24f17641 \ + --hash=sha256:583b7c42688636f930688d712885cf1531326ee05effd982028212ccc13e5957 \ + --hash=sha256:5a4b4cc550cb665dd8a47f868c8d04c8230f857363ad3c9caf7a0c3bf8c61ca6 \ + --hash=sha256:5f451484aeb5cafee1ccf789b1b66f535409d038c56966d6101740c1614b86c6 \ + --hash=sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5 \ + --hash=sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f \ + --hash=sha256:71c989cbf3254fbd5e84d3bff31e4da39c43f884e64f2551d14bb3c186230f00 \ + --hash=sha256:781caf5e8eee67f663126490c2f96f40906594cb86b408a703630f95550a8c3e \ + --hash=sha256:7be95cfb0a4dae143eaed2bcba8ac23f4892d8971311f1b06f3c6b78952ee70b \ + --hash=sha256:7d837379b647c0c4c2355c2499723f82f1635fd2c26510e1f587d89bc2199e72 \ + --hash=sha256:86890e837d61574c92a97496d590968b23c2ef0aeb8a9bc9421d174cd378ae39 \ + --hash=sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9 \ + --hash=sha256:8b6e209ffee39ff1b6d0fa7bfef6de950c60dfb91b8fcead17da4ee539121a79 \ + --hash=sha256:8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0 \ + --hash=sha256:8d7f0659570eefb578dacde98e24fb60af35350193e4f56e11190787bee77dac \ + --hash=sha256:8e1dab317b6e77424356e11e99a432b7cb2f3ec8c5ab4dabbcee6add48f72b35 \ + --hash=sha256:8ff32bb86522a9e5e31439a58addbb0166f0204d64066fb955265c4e214160f0 \ + --hash=sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5 \ + --hash=sha256:9b5aca38b67492ef518a8ab76851862488a478602229112c4b0d58d63a7a4d5c \ + --hash=sha256:a069d734c4a043182729edd3e9f247c3b2a4035415a9172fd0f1b71658a320a8 \ + --hash=sha256:a0b31e0b424cc6b5a04b8838bbaec1688834b2383256688cf47eb97412531da1 \ + --hash=sha256:a35539cacc3febb22b8f4d4a99cc79b104226a756aa7400adc722e83b0d03244 \ + --hash=sha256:a5e18a238a2b2249c9a9235466b90e96ae4795672598a58772dd806edc7ac6d3 \ + --hash=sha256:a653aea902e0324b52f1613332ddf50b00c06fdaf7e92624fbf8c77c78fa5767 \ + --hash=sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a \ + --hash=sha256:af80d74d4edfa3cb9ed973a0a5ba2b2a549371f8a741e0800cb07becdd20f23d \ + --hash=sha256:b14dc141ed6d2dde437cddb216004bcac6a1df0935d79656387bd41632ba0bbd \ + --hash=sha256:b784ca5de850f4ce93ec85d3269d24d4c82f22b7212023c974c401d4980ebc5e \ + --hash=sha256:bc59589ab64b0022385f429b94697348a6a234e8ce22544e3681b2e9331b5944 \ + --hash=sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82 \ + --hash=sha256:c0ee0e63f23914732c6d7e0cce24915c48f3f1512ec1d079ed01fc629dab269d \ + --hash=sha256:caab51a72c51973ca21fa8a18bd8165e1a0183f1ac7066a182ff27107b71e1a4 \ + --hash=sha256:d6297ce39ce5c2e6feb13c1a996a2ded3b6832155fcfc920265c76f24c7cceb5 \ + --hash=sha256:daa3b6ff70a9241cf6c7fc9e949d41232d9d7d26fd3522b1ad2b4d62487e9904 \ + --hash=sha256:df57afc692e517a85e65b72e165356ed1df12386ecb879ad5693be08fac65dde \ + --hash=sha256:e0334872c0a37b606418ac52f6ab9cfd17317ac26365f7f65e203e2d0d0d359f \ + --hash=sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c \ + --hash=sha256:eaded469f5e5b7294e2bdca0ab06becb6756ea86894a47806456089298813c89 \ + --hash=sha256:f4a32d1bd841d4bcbffdcb3d2ce50c09c3909fbead375ab28d0181af89fd04da \ + --hash=sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4 # via uvicorn wrapt==1.17.3 \ --hash=sha256:02b551d101f31694fc785e58e0720ef7d9a10c4e62c1c9358ce6f63f23e30a56 \ diff --git a/sdk/python/requirements/py3.12-requirements.txt b/sdk/python/requirements/py3.12-requirements.txt index cefe5dbf8c7..2c24ff8af1e 100644 --- a/sdk/python/requirements/py3.12-requirements.txt +++ b/sdk/python/requirements/py3.12-requirements.txt @@ -8,9 +8,9 @@ annotated-types==0.7.0 \ --hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 \ --hash=sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89 # via pydantic -anyio==4.12.0 \ - --hash=sha256:73c693b567b0c55130c104d0b43a9baf3aa6a31fc6110116509f27bf75e21ec0 \ - --hash=sha256:dad2376a628f98eeca4881fc56cd06affd18f659b17a747d3ff0307ced94b1bb +anyio==4.12.1 \ + --hash=sha256:41cfcc3a4c85d3f05c932da7c26d0201ac36f72abd4435ba90d0464a3ffed703 \ + --hash=sha256:d405828884fc140aa80a3c667b8beed277f1dfedec42ba031bd6ac3db606ab6c # via # starlette # watchfiles @@ -20,13 +20,13 @@ attrs==25.4.0 \ # via # jsonschema # referencing -bigtree==1.0.4 \ - --hash=sha256:e4af0c5bc0d2cd72e18442965e4509f642b16a0de65db6d0ec116e30f959010c \ - --hash=sha256:f58a3238bb9b1142d893c9de4921bfd18d435427c75e0c168dd580eabf6dc7fd +bigtree==1.1.0 \ + --hash=sha256:3f1ff63d2d66d31bf19855ddda8884637edf8dd1fc1aa118cf3a750580ece48b \ + --hash=sha256:f54f99d842732c91cce39c596a3755a2e8325b1cab5bc6876f5b15bd3942081c # via feast (setup.py) -certifi==2025.11.12 \ - --hash=sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b \ - --hash=sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316 +certifi==2026.1.4 \ + --hash=sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c \ + --hash=sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120 # via requests charset-normalizer==3.4.4 \ --hash=sha256:027f6de494925c0ab2a55eab46ae5129951638a49a34d87f4c3eda90f696b4ad \ @@ -170,9 +170,9 @@ fastapi==0.128.0 \ --hash=sha256:1cc179e1cef10a6be60ffe429f79b829dce99d8de32d7acb7e6c8dfdf7f2645a \ --hash=sha256:aebd93f9716ee3b4f4fcfe13ffb7cf308d99c9f3ab5622d8877441072561582d # via feast (setup.py) -fsspec==2025.12.0 \ - --hash=sha256:8bf1fe301b7d8acfa6e8571e3b1c3d158f909666642431cc78a1b7b4dbc5ec5b \ - --hash=sha256:c505de011584597b1060ff778bb664c1bc022e87921b0e4f10cc9c44f9635973 +fsspec==2026.1.0 \ + --hash=sha256:cb76aa913c2285a3b49bdd5fc55b1d7c708d7208126b60f2eb8194fe1b4cbdcc \ + --hash=sha256:e987cb0496a0d81bba3a9d1cee62922fb395e7d4c3b575e57f547953334fe07b # via dask gunicorn==23.0.0 \ --hash=sha256:ec400d38950de4dfd418cff8328b2c8faed0edb0d517d3394e457c317908ca4d \ @@ -239,91 +239,91 @@ jinja2==3.1.6 \ --hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \ --hash=sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67 # via feast (setup.py) -jsonschema==4.25.1 \ - --hash=sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63 \ - --hash=sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85 +jsonschema==4.26.0 \ + --hash=sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326 \ + --hash=sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce # via feast (setup.py) jsonschema-specifications==2025.9.1 \ --hash=sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe \ --hash=sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d # via jsonschema -librt==0.7.5 \ - --hash=sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee \ - --hash=sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1 \ - --hash=sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4 \ - --hash=sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899 \ - --hash=sha256:0e2bf8f91093fac43e3eaebacf777f12fd539dce9ec5af3efc6d8424e96ccd49 \ - --hash=sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d \ - --hash=sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760 \ - --hash=sha256:191cbd42660446d67cf7a95ac7bfa60f49b8b3b0417c64f216284a1d86fc9335 \ - --hash=sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8 \ - --hash=sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2 \ - --hash=sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec \ - --hash=sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b \ - --hash=sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0 \ - --hash=sha256:39183abee670bc37b85f11e86c44a9cad1ed6efa48b580083e89ecee13dd9717 \ - --hash=sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325 \ - --hash=sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45 \ - --hash=sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d \ - --hash=sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233 \ - --hash=sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d \ - --hash=sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544 \ - --hash=sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802 \ - --hash=sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2 \ - --hash=sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d \ - --hash=sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f \ - --hash=sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169 \ - --hash=sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe \ - --hash=sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982 \ - --hash=sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2 \ - --hash=sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa \ - --hash=sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4 \ - --hash=sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4 \ - --hash=sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57 \ - --hash=sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26 \ - --hash=sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361 \ - --hash=sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad \ - --hash=sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e \ - --hash=sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf \ - --hash=sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f \ - --hash=sha256:8dcae24de1bc9da93aa689cb6313c70e776d7cea2fcf26b9b6160fedfe6bd9af \ - --hash=sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2 \ - --hash=sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89 \ - --hash=sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904 \ - --hash=sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6 \ - --hash=sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276 \ - --hash=sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e \ - --hash=sha256:a9eacbf983319b26b5f340a2e0cd47ac1ee4725a7f3a72fd0f15063c934b69d6 \ - --hash=sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409 \ - --hash=sha256:af69d9e159575e877c7546d1ee817b4ae089aa221dd1117e20c24ad8dc8659c7 \ - --hash=sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a \ - --hash=sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4 \ - --hash=sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775 \ - --hash=sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203 \ - --hash=sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419 \ - --hash=sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5 \ - --hash=sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023 \ - --hash=sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b \ - --hash=sha256:cdb001a1a0e4f41e613bca2c0fc147fc8a7396f53fc94201cbfd8ec7cd69ca4b \ - --hash=sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d \ - --hash=sha256:d2cc7d187e8c6e9b7bdbefa9697ce897a704ea7a7ce844f2b4e0e2aa07ae51d3 \ - --hash=sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e \ - --hash=sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a \ - --hash=sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b \ - --hash=sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db \ - --hash=sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd \ - --hash=sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa \ - --hash=sha256:df2e210400b28e50994477ebf82f055698c79797b6ee47a1669d383ca33263e1 \ - --hash=sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805 \ - --hash=sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a \ - --hash=sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25 \ - --hash=sha256:ea1b60b86595a5dc1f57b44a801a1c4d8209c0a69518391d349973a4491408e6 \ - --hash=sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b \ - --hash=sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5 \ - --hash=sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416 \ - --hash=sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc \ - --hash=sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7 \ - --hash=sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96 +librt==0.7.7 \ + --hash=sha256:067be973d90d9e319e6eb4ee2a9b9307f0ecd648b8a9002fa237289a4a07a9e7 \ + --hash=sha256:0996c83b1cb43c00e8c87835a284f9057bc647abd42b5871e5f941d30010c832 \ + --hash=sha256:0ecce0544d3db91a40f8b57ae26928c02130a997b540f908cefd4d279d6c5848 \ + --hash=sha256:10c8fb9966f84737115513fecbaf257f9553d067a7dd45a69c2c7e5339e6a8dc \ + --hash=sha256:142c2cd91794b79fd0ce113bd658993b7ede0fe93057668c2f98a45ca00b7e91 \ + --hash=sha256:14ef0f4ac3728ffd85bfc58e2f2f48fb4ef4fa871876f13a73a7381d10a9f77c \ + --hash=sha256:1908c3e5a5ef86b23391448b47759298f87f997c3bd153a770828f58c2bb4630 \ + --hash=sha256:1bcd79be209313b270b0e1a51c67ae1af28adad0e0c7e84c3ad4b5cb57aaa75b \ + --hash=sha256:23d2299ed007812cccc1ecef018db7d922733382561230de1f3954db28433977 \ + --hash=sha256:23daa1ab0512bafdd677eb1bfc9611d8ffbe2e328895671e64cb34166bc1b8c8 \ + --hash=sha256:2567cb48dc03e5b246927ab35cbb343376e24501260a9b5e30b8e255dca0d1d2 \ + --hash=sha256:264720fc288c86039c091a4ad63419a5d7cabbf1c1c9933336a957ed2483e570 \ + --hash=sha256:2987cf827011907d3dfd109f1be0d61e173d68b1270107bb0e89f2fca7f2ed6b \ + --hash=sha256:2a85a1fc4ed11ea0eb0a632459ce004a2d14afc085a50ae3463cd3dfe1ce43fc \ + --hash=sha256:3d1fe2e8df3268dd6734dba33ededae72ad5c3a859b9577bc00b715759c5aaab \ + --hash=sha256:4353ee891a1834567e0302d4bd5e60f531912179578c36f3d0430f8c5e16b456 \ + --hash=sha256:44d63ce643f34a903f09ff7ca355aae019a3730c7afd6a3c037d569beeb5d151 \ + --hash=sha256:467dbd7443bda08338fc8ad701ed38cef48194017554f4c798b0a237904b3f99 \ + --hash=sha256:4862cb2c702b1f905c0503b72d9d4daf65a7fdf5a9e84560e563471e57a56949 \ + --hash=sha256:4bf3cc46d553693382d2abf5f5bd493d71bb0f50a7c0beab18aa13a5545c8900 \ + --hash=sha256:4dcee2f921a8632636d1c37f1bbdb8841d15666d119aa61e5399c5268e7ce02e \ + --hash=sha256:50d1d1ee813d2d1a3baf2873634ba506b263032418d16287c92ec1cc9c1a00cb \ + --hash=sha256:5335890fea9f9e6c4fdf8683061b9ccdcbe47c6dc03ab8e9b68c10acf78be78d \ + --hash=sha256:558a9e5a6f3cc1e20b3168fb1dc802d0d8fa40731f6e9932dcc52bbcfbd37111 \ + --hash=sha256:5e419e0db70991b6ba037b70c1d5bbe92b20ddf82f31ad01d77a347ed9781398 \ + --hash=sha256:6066c638cdf85ff92fc6f932d2d73c93a0e03492cdfa8778e6d58c489a3d7259 \ + --hash=sha256:6ae8aec43117a645a31e5f60e9e3a0797492e747823b9bda6972d521b436b4e8 \ + --hash=sha256:6b6f8ea465524aa4c7420c7cc4ca7d46fe00981de8debc67b1cc2e9957bb5b9d \ + --hash=sha256:7b16ccaeff0ed4355dfb76fe1ea7a5d6d03b5ad27f295f77ee0557bc20a72495 \ + --hash=sha256:7d13cc340b3b82134f8038a2bfe7137093693dcad8ba5773da18f95ad6b77a8a \ + --hash=sha256:7ef28f2e7a016b29792fe0a2dd04dec75725b32a1264e390c366103f834a9c3a \ + --hash=sha256:8185c8497d45164e256376f9da5aed2bb26ff636c798c9dabe313b90e9f25b28 \ + --hash=sha256:81d957b069fed1890953c3b9c3895c7689960f233eea9a1d9607f71ce7f00b2c \ + --hash=sha256:86f86b3b785487c7760247bcdac0b11aa8bf13245a13ed05206286135877564b \ + --hash=sha256:8e92c8de62b40bfce91d5e12c6e8b15434da268979b1af1a6589463549d491e6 \ + --hash=sha256:8f2f8dcf5ab9f80fb970c6fd780b398efb2f50c1962485eb8d3ab07788595a48 \ + --hash=sha256:8f4a0b0a3c86ba9193a8e23bb18f100d647bf192390ae195d84dfa0a10fb6244 \ + --hash=sha256:8f7a74cf3a80f0c3b0ec75b0c650b2f0a894a2cec57ef75f6f72c1e82cdac61d \ + --hash=sha256:955c62571de0b181d9e9e0a0303c8bc90d47670a5eff54cf71bf5da61d1899cf \ + --hash=sha256:983de36b5a83fe9222f4f7dcd071f9b1ac6f3f17c0af0238dadfb8229588f890 \ + --hash=sha256:9b15e5d17812d4d629ff576699954f74e2cc24a02a4fc401882dd94f81daba45 \ + --hash=sha256:9b4346b1225be26def3ccc6c965751c74868f0578cbcba293c8ae9168483d811 \ + --hash=sha256:9b5fb1ecb2c35362eab2dbd354fd1efa5a8440d3e73a68be11921042a0edc0ff \ + --hash=sha256:a10b8eebdaca6e9fdbaf88b5aefc0e324b763a5f40b1266532590d5afb268a4c \ + --hash=sha256:a1f5cc41a570269d1be7a676655875e3a53de4992a9fa38efb7983e97cf73d7c \ + --hash=sha256:a3bfe73a32bd0bdb9a87d586b05a23c0a1729205d79df66dee65bb2e40d671ba \ + --hash=sha256:a487b71fbf8a9edb72a8c7a456dda0184642d99cd007bc819c0b7ab93676a8ee \ + --hash=sha256:a609849aca463074c17de9cda173c276eb8fee9e441053529e7b9e249dc8b8ee \ + --hash=sha256:a76f1d679beccccdf8c1958e732a1dfcd6e749f8821ee59d7bec009ac308c029 \ + --hash=sha256:a7ea4e1fbd253e5c68ea0fe63d08577f9d288a73f17d82f652ebc61fa48d878d \ + --hash=sha256:ab2a2a9cd7d044e1a11ca64a86ad3361d318176924bbe5152fbc69f99be20b8c \ + --hash=sha256:ad3fc2d859a709baf9dd9607bb72f599b1cfb8a39eafd41307d0c3c4766763cb \ + --hash=sha256:add4e0a000858fe9bb39ed55f31085506a5c38363e6eb4a1e5943a10c2bfc3d1 \ + --hash=sha256:aea05f701ccd2a76b34f0daf47ca5068176ff553510b614770c90d76ac88df06 \ + --hash=sha256:b8bb331aad734b059c4b450cd0a225652f16889e286b2345af5e2c3c625c3d85 \ + --hash=sha256:bdb9f3d865b2dafe7f9ad7f30ef563c80d0ddd2fdc8cc9b8e4f242f475e34d75 \ + --hash=sha256:c084841b879c4d9b9fa34e5d5263994f21aea7fd9c6add29194dbb41a6210536 \ + --hash=sha256:c48c7e150c095d5e3cea7452347ba26094be905d6099d24f9319a8b475fcd3e0 \ + --hash=sha256:c7e5070cf3ec92d98f57574da0224f8c73faf1ddd6d8afa0b8c9f6e86997bc74 \ + --hash=sha256:c87654e29a35938baead1c4559858f346f4a2a7588574a14d784f300ffba0efd \ + --hash=sha256:c8ffe3431d98cc043a14e88b21288b5ec7ee12cb01260e94385887f285ef9389 \ + --hash=sha256:c9faaebb1c6212c20afd8043cd6ed9de0a47d77f91a6b5b48f4e46ed470703fe \ + --hash=sha256:d1454899909d63cc9199a89fcc4f81bdd9004aef577d4ffc022e600c412d57f3 \ + --hash=sha256:d6b7d93657332c817b8d674ef6bf1ab7796b4f7ce05e420fd45bd258a72ac804 \ + --hash=sha256:dbc4900e95a98fc0729523be9d93a8fedebb026f32ed9ffc08acd82e3e181503 \ + --hash=sha256:e40d20ae1722d6b8ea6acf4597e789604649dcd9c295eb7361a28225bc2e9e12 \ + --hash=sha256:e4836c5645f40fbdc275e5670819bde5ab5f2e882290d304e3c6ddab1576a6d0 \ + --hash=sha256:e4ab69fa37f8090f2d971a5d2bc606c7401170dbdae083c393d6cbf439cb45b8 \ + --hash=sha256:ef7699b7a5a244b1119f85c5bbc13f152cd38240cbb2baa19b769433bae98e50 \ + --hash=sha256:f0c8fe5aeadd8a0e5b0598f8a6ee3533135ca50fd3f20f130f9d72baf5c6ac58 \ + --hash=sha256:f2cb63c49bc96847c3bb8dca350970e4dcd19936f391cfdfd057dcb37c4fa97e \ + --hash=sha256:f4d4efb218264ecf0f8516196c9e2d1a0679d9fb3bb15df1155a35220062eba8 \ + --hash=sha256:f683dcd49e2494a7535e30f779aa1ad6e3732a019d80abe1309ea91ccd3230e3 \ + --hash=sha256:f83c971eb9d2358b6a18da51dc0ae00556ac7c73104dde16e9e14c15aaf685ca \ + --hash=sha256:f8df32a99cc46eb0ee90afd9ada113ae2cafe7e8d673686cf03ec53e49635439 \ + --hash=sha256:ff1fb2dfef035549565a4124998fadcb7a3d4957131ddf004a56edeb029626b3 # via mypy locket==1.0.0 \ --hash=sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632 \ @@ -587,79 +587,79 @@ mypy-extensions==1.1.0 \ --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 # via mypy -numpy==2.4.0 \ - --hash=sha256:009bd0ea12d3c784b6639a8457537016ce5172109e585338e11334f6a7bb88ee \ - --hash=sha256:02a2038eb27f9443a8b266a66911e926566b5a6ffd1a689b588f7f35b81e7dc3 \ - --hash=sha256:0804a8e4ab070d1d35496e65ffd3cf8114c136a2b81f61dfab0de4b218aacfd5 \ - --hash=sha256:0feafc9e03128074689183031181fac0897ff169692d8492066e949041096548 \ - --hash=sha256:1889b3a3f47a7b5bee16bc25a2145bd7cb91897f815ce3499db64c7458b6d91d \ - --hash=sha256:1d8f9fde5f6dc1b6fc34df8162f3b3079365468703fee7f31d4e0cc8c63baed9 \ - --hash=sha256:1ee32359fb7543b7b7bd0b2f46294db27e29e7bbdf70541e81b190836cd83ded \ - --hash=sha256:20c115517513831860c573996e395707aa9fb691eb179200125c250e895fcd93 \ - --hash=sha256:21555da4ec4a0c942520ead42c3b0dc9477441e085c42b0fbdd6a084869a6f6b \ - --hash=sha256:23a3e9d1a6f360267e8fbb38ba5db355a6a7e9be71d7fce7ab3125e88bb646c8 \ - --hash=sha256:2a8b6bb8369abefb8bd1801b054ad50e02b3275c8614dc6e5b0373c305291037 \ - --hash=sha256:2e284ca13d5a8367e43734148622caf0b261b275673823593e3e3634a6490f83 \ - --hash=sha256:2f585f52b2baf07ff3356158d9268ea095e221371f1074fadea2f42544d58b4d \ - --hash=sha256:316b2f2584682318539f0bcaca5a496ce9ca78c88066579ebd11fd06f8e4741e \ - --hash=sha256:32ed06d0fe9cae27d8fb5f400c63ccee72370599c75e683a6358dd3a4fb50aaf \ - --hash=sha256:355354388cba60f2132df297e2d53053d4063f79077b67b481d21276d61fc4df \ - --hash=sha256:35ddc8f4914466e6fc954c76527aa91aa763682a4f6d73249ef20b418fe6effb \ - --hash=sha256:36667db4d6c1cea79c8930ab72fadfb4060feb4bfe724141cd4bd064d2e5f8ce \ - --hash=sha256:36cbfb13c152b1c7c184ddac43765db8ad672567e7bafff2cc755a09917ed2e6 \ - --hash=sha256:39699233bc72dd482da1415dcb06076e32f60eddc796a796c5fb6c5efce94667 \ - --hash=sha256:39b19251dec4de8ff8496cd0806cbe27bf0684f765abb1f4809554de93785f2d \ - --hash=sha256:3d857f55e7fdf7c38ab96c4558c95b97d1c685be6b05c249f5fdafcbd6f9899e \ - --hash=sha256:3de19cfecd1465d0dcf8a5b5ea8b3155b42ed0b639dba4b71e323d74f2a3be5e \ - --hash=sha256:3f3096405acc48887458bbf9f6814d43785ac7ba2a57ea6442b581dedbc60ce6 \ - --hash=sha256:40483b2f2d3ba7aad426443767ff5632ec3156ef09742b96913787d13c336471 \ - --hash=sha256:413aa561266a4be2d06cd2b9665e89d9f54c543f418773076a76adcf2af08bc7 \ - --hash=sha256:44aba2f0cafd287871a495fb3163408b0bd25bbce135c6f621534a07f4f7875c \ - --hash=sha256:49ff32b09f5aa0cd30a20c2b39db3e669c845589f2b7fc910365210887e39344 \ - --hash=sha256:4d1cfce39e511069b11e67cd0bd78ceff31443b7c9e5c04db73c7a19f572967c \ - --hash=sha256:57c540ed8fb1f05cb997c6761cd56db72395b0d6985e90571ff660452ade4f98 \ - --hash=sha256:5f48cb3e88fbc294dc90e215d86fbaf1c852c63dbdb6c3a3e63f45c4b57f7344 \ - --hash=sha256:5fe44e277225fd3dff6882d86d3d447205d43532c3627313d17e754fb3905a0e \ - --hash=sha256:60e8c196cd82cbbd4f130b5290007e13e6de3eca79f0d4d38014769d96a7c475 \ - --hash=sha256:65167da969cd1ec3a1df31cb221ca3a19a8aaa25370ecb17d428415e93c1935e \ - --hash=sha256:680060061adb2d74ce352628cb798cfdec399068aa7f07ba9fb818b2b3305f98 \ - --hash=sha256:6bbaebf0d11567fa8926215ae731e1d58e6ec28a8a25235b8a47405d301332db \ - --hash=sha256:6c05483c3136ac4c91b4e81903cb53a8707d316f488124d0398499a4f8e8ef51 \ - --hash=sha256:6dc8b7e2f4eb184b37655195f421836cfae6f58197b67e3ffc501f1333d993fa \ - --hash=sha256:6e504f7b16118198f138ef31ba24d985b124c2c469fe8467007cf30fd992f934 \ - --hash=sha256:74623f2ab5cc3f7c886add4f735d1031a1d2be4a4ae63c0546cfd74e7a31ddf6 \ - --hash=sha256:77f0d13fa87036d7553bf81f0e1fe3ce68d14c9976c9851744e4d3e91127e95f \ - --hash=sha256:85eef4cb5625c47ee6425c58a3502555e10f45ee973da878ac8248ad58c136f3 \ - --hash=sha256:882567b7ae57c1b1a0250208cc21a7976d8cbcc49d5a322e607e6f09c9e0bd53 \ - --hash=sha256:8b986403023c8f3bf8f487c2e6186afda156174d31c175f747d8934dfddf3479 \ - --hash=sha256:8cfa5f29a695cb7438965e6c3e8d06e0416060cf0d709c1b1c1653a939bf5c2a \ - --hash=sha256:8eafe7c36c8430b7794edeab3087dec7bf31d634d92f2af9949434b9d1964cba \ - --hash=sha256:9198f447e1dc5647d07c9a6bbe2063cc0132728cc7175b39dbc796da5b54920d \ - --hash=sha256:92190db305a6f48734d3982f2c60fa30d6b5ee9bff10f2887b930d7b40119f4c \ - --hash=sha256:927ccf5cd17c48f801f4ed43a7e5673a2724bd2171460be3e3894e6e332ef83a \ - --hash=sha256:98e81648e0b36e325ab67e46b5400a7a6d4a22b8a7c8e8bbfe20e7db7906bf95 \ - --hash=sha256:9a818668b674047fd88c4cddada7ab8f1c298812783e8328e956b78dc4807f9f \ - --hash=sha256:a152d86a3ae00ba5f47b3acf3b827509fd0b6cb7d3259665e63dafbad22a75ea \ - --hash=sha256:a2718c1de8504121714234b6f8241d0019450353276c88b9453c9c3d92e101db \ - --hash=sha256:a39fb973a726e63223287adc6dafe444ce75af952d711e400f3bf2b36ef55a7b \ - --hash=sha256:a899699294f28f7be8992853c0c60741f16ff199205e2e6cdca155762cbaa59d \ - --hash=sha256:a8fdfed3deaf1928fb7667d96e0567cdf58c2b370ea2ee7e586aa383ec2cb346 \ - --hash=sha256:aabb081ca0ec5d39591fc33018cd4b3f96e1a2dd6756282029986d00a785fba4 \ - --hash=sha256:b1f5b45829ac1848893f0ddf5cb326110604d6df96cdc255b0bf9edd154104d4 \ - --hash=sha256:b48e35f4ab6f6a7597c46e301126ceba4c44cd3280e3750f85db48b082624fa4 \ - --hash=sha256:b54c83f1c0c0f1d748dca0af516062b8829d53d1f0c402be24b4257a9c48ada6 \ - --hash=sha256:ba0cb30acd3ef11c94dc27fbfba68940652492bc107075e7ffe23057f9425681 \ - --hash=sha256:bb50ce5fb202a26fd5404620e7ef820ad1ab3558b444cb0b55beb7ef66cd2d63 \ - --hash=sha256:c95eb6db2884917d86cde0b4d4cf31adf485c8ec36bf8696dd66fa70de96f36b \ - --hash=sha256:d0ffd9e2e4441c96a9c91ec1783285d80bf835b677853fc2770a89d50c1e48ac \ - --hash=sha256:d57b5046c120561ba8fa8e4030fbb8b822f3063910fa901ffadf16e2b7128ad6 \ - --hash=sha256:d9e6a7664ddd9746e20b7325351fe1a8408d0a2bf9c63b5e898290ddc8f09544 \ - --hash=sha256:dc578891de1db95b2a35001b695451767b580bb45753717498213c5ff3c41d63 \ - --hash=sha256:e0434aa22c821f44eeb4c650b81c7fbdd8c0122c6c4b5a576a76d5a35625ecd9 \ - --hash=sha256:e06a922a469cae9a57100864caf4f8a97a1026513793969f8ba5b63137a35d25 \ - --hash=sha256:e493962256a38f58283de033d8af176c5c91c084ea30f15834f7545451c42059 \ - --hash=sha256:ecb0019d44f4cdb50b676c5d0cb4b1eae8e15d1ed3d3e6639f986fc92b2ec52c \ - --hash=sha256:f935c4493eda9069851058fa0d9e39dbf6286be690066509305e52912714dbb2 +numpy==2.4.1 \ + --hash=sha256:0093e85df2960d7e4049664b26afc58b03236e967fb942354deef3208857a04c \ + --hash=sha256:09aa8a87e45b55a1c2c205d42e2808849ece5c484b2aab11fecabec3841cafba \ + --hash=sha256:0cce2a669e3c8ba02ee563c7835f92c153cf02edff1ae05e1823f1dde21b16a5 \ + --hash=sha256:0e6e8f9d9ecf95399982019c01223dc130542960a12edfa8edd1122dfa66a8a8 \ + --hash=sha256:0f118ce6b972080ba0758c6087c3617b5ba243d806268623dc34216d69099ba0 \ + --hash=sha256:178de8f87948163d98a4c9ab5bee4ce6519ca918926ec8df195af582de28544d \ + --hash=sha256:18e14c4d09d55eef39a6ab5b08406e84bc6869c1e34eef45564804f90b7e0574 \ + --hash=sha256:2023ef86243690c2791fd6353e5b4848eedaa88ca8a2d129f462049f6d484696 \ + --hash=sha256:20d4649c773f66cc2fc36f663e091f57c3b7655f936a4c681b4250855d1da8f5 \ + --hash=sha256:2302dc0224c1cbc49bb94f7064f3f923a971bfae45c33870dcbff63a2a550505 \ + --hash=sha256:26f0bcd9c79a00e339565b303badc74d3ea2bd6d52191eeca5f95936cad107d0 \ + --hash=sha256:297c72b1b98100c2e8f873d5d35fb551fce7040ade83d67dd51d38c8d42a2162 \ + --hash=sha256:2f44de05659b67d20499cbc96d49f2650769afcb398b79b324bb6e297bfe3844 \ + --hash=sha256:2ffd257026eb1b34352e749d7cc1678b5eeec3e329ad8c9965a797e08ccba205 \ + --hash=sha256:382ad67d99ef49024f11d1ce5dcb5ad8432446e4246a4b014418ba3a1175a1f4 \ + --hash=sha256:3869ea1ee1a1edc16c29bbe3a2f2a4e515cc3a44d43903ad41e0cacdbaf733dc \ + --hash=sha256:3d1a100e48cb266090a031397863ff8a30050ceefd798f686ff92c67a486753d \ + --hash=sha256:423797bdab2eeefbe608d7c1ec7b2b4fd3c58d51460f1ee26c7500a1d9c9ee93 \ + --hash=sha256:42d7dd5fa36d16d52a84f821eb96031836fd405ee6955dd732f2023724d0aa01 \ + --hash=sha256:49e792ec351315e16da54b543db06ca8a86985ab682602d90c60ef4ff4db2a9c \ + --hash=sha256:4e53170557d37ae404bf8d542ca5b7c629d6efa1117dac6a83e394142ea0a43f \ + --hash=sha256:4f1b68ff47680c2925f8063402a693ede215f0257f02596b1318ecdfb1d79e33 \ + --hash=sha256:4f9c360ecef085e5841c539a9a12b883dff005fbd7ce46722f5e9cef52634d82 \ + --hash=sha256:529050522e983e00a6c1c6b67411083630de8b57f65e853d7b03d9281b8694d2 \ + --hash=sha256:52b5f61bdb323b566b528899cc7db2ba5d1015bda7ea811a8bcf3c89c331fa42 \ + --hash=sha256:538bf4ec353709c765ff75ae616c34d3c3dca1a68312727e8f2676ea644f8509 \ + --hash=sha256:5adf01965456a664fc727ed69cc71848f28d063217c63e1a0e200a118d5eec9a \ + --hash=sha256:5b55aa56165b17aaf15520beb9cbd33c9039810e0d9643dd4379e44294c7303e \ + --hash=sha256:5d558123217a83b2d1ba316b986e9248a1ed1971ad495963d555ccd75dcb1556 \ + --hash=sha256:5de60946f14ebe15e713a6f22850c2372fa72f4ff9a432ab44aa90edcadaa65a \ + --hash=sha256:62fea415f83ad8fdb6c20840578e5fbaf5ddd65e0ec6c3c47eda0f69da172510 \ + --hash=sha256:6436cffb4f2bf26c974344439439c95e152c9a527013f26b3577be6c2ca64295 \ + --hash=sha256:6461de5113088b399d655d45c3897fa188766415d0f568f175ab071c8873bd73 \ + --hash=sha256:69e7419c9012c4aaf695109564e3387f1259f001b4326dfa55907b098af082d3 \ + --hash=sha256:71abbea030f2cfc3092a0ff9f8c8fdefdc5e0bf7d9d9c99663538bb0ecdac0b9 \ + --hash=sha256:7211b95ca365519d3596a1d8688a95874cc94219d417504d9ecb2df99fa7bfa8 \ + --hash=sha256:727c6c3275ddefa0dc078524a85e064c057b4f4e71ca5ca29a19163c607be745 \ + --hash=sha256:79e9e06c4c2379db47f3f6fc7a8652e7498251789bf8ff5bd43bf478ef314ca2 \ + --hash=sha256:7ad270f438cbdd402c364980317fb6b117d9ec5e226fff5b4148dd9aa9fc6e02 \ + --hash=sha256:7d5d7999df434a038d75a748275cd6c0094b0ecdb0837342b332a82defc4dc4d \ + --hash=sha256:8097529164c0f3e32bb89412a0905d9100bf434d9692d9fc275e18dcf53c9344 \ + --hash=sha256:82c55962006156aeef1629b953fd359064aa47e4d82cfc8e67f0918f7da3344f \ + --hash=sha256:8361ea4220d763e54cff2fbe7d8c93526b744f7cd9ddab47afeff7e14e8503be \ + --hash=sha256:899d2c18024984814ac7e83f8f49d8e8180e2fbe1b2e252f2e7f1d06bea92425 \ + --hash=sha256:8ad35f20be147a204e28b6a0575fbf3540c5e5f802634d4258d55b1ff5facce1 \ + --hash=sha256:8f085da926c0d491ffff3096f91078cc97ea67e7e6b65e490bc8dcda65663be2 \ + --hash=sha256:9171a42fcad32dcf3fa86f0a4faa5e9f8facefdb276f54b8b390d90447cff4e2 \ + --hash=sha256:92a0e65272fd60bfa0d9278e0484c2f52fe03b97aedc02b357f33fe752c52ffb \ + --hash=sha256:941c2a93313d030f219f3a71fd3d91a728b82979a5e8034eb2e60d394a2b83f9 \ + --hash=sha256:98b35775e03ab7f868908b524fc0a84d38932d8daf7b7e1c3c3a1b6c7a2c9f15 \ + --hash=sha256:a1ceafc5042451a858231588a104093474c6a5c57dcc724841f5c888d237d690 \ + --hash=sha256:a73044b752f5d34d4232f25f18160a1cc418ea4507f5f11e299d8ac36875f8a0 \ + --hash=sha256:a7870e8c5fc11aef57d6fea4b4085e537a3a60ad2cdd14322ed531fdca68d261 \ + --hash=sha256:a92f227dbcdc9e4c3e193add1a189a9909947d4f8504c576f4a732fd0b54240a \ + --hash=sha256:ac08c63cb7779b85e9d5318e6c3518b424bc1f364ac4cb2c6136f12e5ff2dccc \ + --hash=sha256:b6bcf39112e956594b3331316d90c90c90fb961e39696bda97b89462f5f3943f \ + --hash=sha256:c0faba4a331195bfa96f93dd9dfaa10b2c7aa8cda3a02b7fd635e588fe821bf5 \ + --hash=sha256:ce9ce141a505053b3c7bce3216071f3bf5c182b8b28930f14cd24d43932cd2df \ + --hash=sha256:cf6470d91d34bf669f61d515499859fa7a4c2f7c36434afb70e82df7217933f9 \ + --hash=sha256:d3703409aac693fa82c0aee023a1ae06a6e9d065dba10f5e8e80f642f1e9d0a2 \ + --hash=sha256:d3e3087f53e2b4428766b54932644d148613c5a595150533ae7f00dab2f319a8 \ + --hash=sha256:d3f8f0df9f4b8be57b3bf74a1d087fec68f927a2fab68231fdb442bf2c12e426 \ + --hash=sha256:d797454e37570cfd61143b73b8debd623c3c0952959adb817dd310a483d58a1b \ + --hash=sha256:e1a27bb1b2dee45a2a53f5ca6ff2d1a7f135287883a1689e930d44d1ff296c87 \ + --hash=sha256:e3bd2cb07841166420d2fa7146c96ce00cb3410664cbc1a6be028e456c4ee220 \ + --hash=sha256:e7b6b5e28bbd47b7532698e5db2fe1db693d84b58c254e4389d99a27bb9b8f6b \ + --hash=sha256:e867df947d427cdd7a60e3e271729090b0f0df80f5f10ab7dd436f40811699c3 \ + --hash=sha256:ea66d2b41ca4a1630aae5507ee0a71647d3124d1741980138aa8f28f44dac36e \ + --hash=sha256:edee228f76ee2dab4579fad6f51f6a305de09d444280109e0f75df247ff21501 \ + --hash=sha256:f0a90aba7d521e6954670550e561a4cb925713bd944445dbe9e729b71f6cabee \ + --hash=sha256:f93bc6892fe7b0663e5ffa83b61aab510aacffd58c16e012bb9352d489d90cb7 \ + --hash=sha256:fb1461c99de4d040666ca0444057b06541e5642f800b71c56e6ea92d6a853a0c # via # feast (setup.py) # dask @@ -733,25 +733,25 @@ partd==1.4.2 \ --hash=sha256:978e4ac767ec4ba5b86c6eaa52e5a2a3bc748a2ca839e8cc798f1cc6ce6efb0f \ --hash=sha256:d022c33afbdc8405c226621b015e8067888173d85f7f5ecebb3cafed9a20f02c # via dask -pathspec==0.12.1 \ - --hash=sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 \ - --hash=sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712 +pathspec==1.0.3 \ + --hash=sha256:bac5cf97ae2c2876e2d25ebb15078eb04d76e4b98921ee31c6f85ade8b59444d \ + --hash=sha256:e80767021c1cc524aa3fb14bedda9c34406591343cc42797b386ce7b9354fb6c # via mypy -prometheus-client==0.23.1 \ - --hash=sha256:6ae8f9081eaaaf153a2e959d2e6c4f4fb57b12ef76c8c7980202f1e57b48b2ce \ - --hash=sha256:dd1913e6e76b59cfe44e7a4b83e01afc9873c1bdfd2ed8739f1e76aeca115f99 +prometheus-client==0.24.0 \ + --hash=sha256:4ab6d4fb5a1b25ad74b58e6271857e356fff3399473e599d227ab5d0ce6637f0 \ + --hash=sha256:726b40c0d499f4904d4b5b7abe8d43e6aff090de0d468ae8f2226290b331c667 # via feast (setup.py) -protobuf==6.33.2 \ - --hash=sha256:1f8017c48c07ec5859106533b682260ba3d7c5567b1ca1f24297ce03384d1b4f \ - --hash=sha256:2981c58f582f44b6b13173e12bb8656711189c2a70250845f264b877f00b1913 \ - --hash=sha256:56dc370c91fbb8ac85bc13582c9e373569668a290aa2e66a590c2a0d35ddb9e4 \ - --hash=sha256:7109dcc38a680d033ffb8bf896727423528db9163be1b6a02d6a49606dcadbfe \ - --hash=sha256:7636aad9bb01768870266de5dc009de2d1b936771b38a793f73cbbf279c91c5c \ - --hash=sha256:87eb388bd2d0f78febd8f4c8779c79247b26a5befad525008e49a6955787ff3d \ - --hash=sha256:8cd7640aee0b7828b6d03ae518b5b4806fdfc1afe8de82f79c3454f8aef29872 \ - --hash=sha256:b5d3b5625192214066d99b2b605f5783483575656784de223f00a8d00754fc0e \ - --hash=sha256:d9b19771ca75935b3a4422957bc518b0cecb978b31d1dd12037b088f6bcc0e43 \ - --hash=sha256:fc2a0e8b05b180e5fc0dd1559fe8ebdae21a27e81ac77728fb6c42b12c7419b4 +protobuf==6.33.4 \ + --hash=sha256:0f12ddbf96912690c3582f9dffb55530ef32015ad8e678cd494312bd78314c4f \ + --hash=sha256:1fe3730068fcf2e595816a6c34fe66eeedd37d51d0400b72fabc848811fdc1bc \ + --hash=sha256:2fe67f6c014c84f655ee06f6f66213f9254b3a8b6bda6cda0ccd4232c73c06f0 \ + --hash=sha256:3df850c2f8db9934de4cf8f9152f8dc2558f49f298f37f90c517e8e5c84c30e9 \ + --hash=sha256:757c978f82e74d75cba88eddec479df9b99a42b31193313b75e492c06a51764e \ + --hash=sha256:8f11ffae31ec67fc2554c2ef891dcb561dae9a2a3ed941f9e134c2db06657dbc \ + --hash=sha256:918966612c8232fc6c24c78e1cd89784307f5814ad7506c308ee3cf86662850d \ + --hash=sha256:955478a89559fa4568f5a81dce77260eabc5c686f9e8366219ebd30debf06aa6 \ + --hash=sha256:c7c64f259c618f0bef7bee042075e390debbf9682334be2b67408ec7c1c09ee6 \ + --hash=sha256:dc2e61bca3b10470c1912d166fe0af67bfc20eb55971dcef8dfa48ce14f0ed91 # via feast (setup.py) psutil==7.2.1 \ --hash=sha256:05cc68dbb8c174828624062e73078e7e35406f4ca2d0866c272c2410d8ef06d1 \ @@ -776,50 +776,57 @@ psutil==7.2.1 \ --hash=sha256:f7583aec590485b43ca601dd9cea0dcd65bd7bb21d30ef4ddbf4ea6b5ed1bdd3 \ --hash=sha256:f78baafb38436d5a128f837fab2d92c276dfb48af01a240b861ae02b2413ada8 # via feast (setup.py) -pyarrow==21.0.0 \ - --hash=sha256:067c66ca29aaedae08218569a114e413b26e742171f526e828e1064fcdec13f4 \ - --hash=sha256:072116f65604b822a7f22945a7a6e581cfa28e3454fdcc6939d4ff6090126623 \ - --hash=sha256:0c4e75d13eb76295a49e0ea056eb18dbd87d81450bfeb8afa19a7e5a75ae2ad7 \ - --hash=sha256:186aa00bca62139f75b7de8420f745f2af12941595bbbfa7ed3870ff63e25636 \ - --hash=sha256:1e005378c4a2c6db3ada3ad4c217b381f6c886f0a80d6a316fe586b90f77efd7 \ - --hash=sha256:203003786c9fd253ebcafa44b03c06983c9c8d06c3145e37f1b76a1f317aeae1 \ - --hash=sha256:222c39e2c70113543982c6b34f3077962b44fca38c0bd9e68bb6781534425c10 \ - --hash=sha256:26bfd95f6bff443ceae63c65dc7e048670b7e98bc892210acba7e4995d3d4b51 \ - --hash=sha256:3a302f0e0963db37e0a24a70c56cf91a4faa0bca51c23812279ca2e23481fccd \ - --hash=sha256:3a81486adc665c7eb1a2bde0224cfca6ceaba344a82a971ef059678417880eb8 \ - --hash=sha256:3b4d97e297741796fead24867a8dabf86c87e4584ccc03167e4a811f50fdf74d \ - --hash=sha256:40ebfcb54a4f11bcde86bc586cbd0272bac0d516cfa539c799c2453768477569 \ - --hash=sha256:479ee41399fcddc46159a551705b89c05f11e8b8cb8e968f7fec64f62d91985e \ - --hash=sha256:5051f2dccf0e283ff56335760cbc8622cf52264d67e359d5569541ac11b6d5bc \ - --hash=sha256:555ca6935b2cbca2c0e932bedd853e9bc523098c39636de9ad4693b5b1df86d6 \ - --hash=sha256:585e7224f21124dd57836b1530ac8f2df2afc43c861d7bf3d58a4870c42ae36c \ - --hash=sha256:58c30a1729f82d201627c173d91bd431db88ea74dcaa3885855bc6203e433b82 \ - --hash=sha256:6299449adf89df38537837487a4f8d3bd91ec94354fdd2a7d30bc11c48ef6e79 \ - --hash=sha256:65f8e85f79031449ec8706b74504a316805217b35b6099155dd7e227eef0d4b6 \ - --hash=sha256:689f448066781856237eca8d1975b98cace19b8dd2ab6145bf49475478bcaa10 \ - --hash=sha256:69cbbdf0631396e9925e048cfa5bce4e8c3d3b41562bbd70c685a8eb53a91e61 \ - --hash=sha256:731c7022587006b755d0bdb27626a1a3bb004bb56b11fb30d98b6c1b4718579d \ - --hash=sha256:7be45519b830f7c24b21d630a31d48bcebfd5d4d7f9d3bdb49da9cdf6d764edb \ - --hash=sha256:898afce396b80fdda05e3086b4256f8677c671f7b1d27a6976fa011d3fd0a86e \ - --hash=sha256:8d58d8497814274d3d20214fbb24abcad2f7e351474357d552a8d53bce70c70e \ - --hash=sha256:9b0b14b49ac10654332a805aedfc0147fb3469cbf8ea951b3d040dab12372594 \ - --hash=sha256:9d9f8bcb4c3be7738add259738abdeddc363de1b80e3310e04067aa1ca596634 \ - --hash=sha256:a7a102574faa3f421141a64c10216e078df467ab9576684d5cd696952546e2da \ - --hash=sha256:a7f6524e3747e35f80744537c78e7302cd41deee8baa668d56d55f77d9c464b3 \ - --hash=sha256:b6b27cf01e243871390474a211a7922bfbe3bda21e39bc9160daf0da3fe48876 \ - --hash=sha256:b7ae0bbdc8c6674259b25bef5d2a1d6af5d39d7200c819cf99e07f7dfef1c51e \ - --hash=sha256:bd04ec08f7f8bd113c55868bd3fc442a9db67c27af098c5f814a3091e71cc61a \ - --hash=sha256:c077f48aab61738c237802836fc3844f85409a46015635198761b0d6a688f87b \ - --hash=sha256:cdc4c17afda4dab2a9c0b79148a43a7f4e1094916b3e18d8975bfd6d6d52241f \ - --hash=sha256:cf56ec8b0a5c8c9d7021d6fd754e688104f9ebebf1bf4449613c9531f5346a18 \ - --hash=sha256:d2fe8e7f3ce329a71b7ddd7498b3cfac0eeb200c2789bd840234f0dc271a8efe \ - --hash=sha256:dc56bc708f2d8ac71bd1dcb927e458c93cec10b98eb4120206a4091db7b67b99 \ - --hash=sha256:e563271e2c5ff4d4a4cbeb2c83d5cf0d4938b891518e676025f7268c6fe5fe26 \ - --hash=sha256:e72a8ec6b868e258a2cd2672d91f2860ad532d590ce94cdf7d5e7ec674ccf03d \ - --hash=sha256:e99310a4ebd4479bcd1964dff9e14af33746300cb014aa4a3781738ac63baf4a \ - --hash=sha256:f522e5709379d72fb3da7785aa489ff0bb87448a9dc5a75f45763a795a089ebd \ - --hash=sha256:fc0d2f88b81dcf3ccf9a6ae17f89183762c8a94a5bdcfa09e05cfe413acf0503 \ - --hash=sha256:fee33b0ca46f4c85443d6c450357101e47d53e6c3f008d658c27a2d020d44c79 +pyarrow==22.0.0 \ + --hash=sha256:001ea83a58024818826a9e3f89bf9310a114f7e26dfe404a4c32686f97bd7901 \ + --hash=sha256:00626d9dc0f5ef3a75fe63fd68b9c7c8302d2b5bbc7f74ecaedba83447a24f84 \ + --hash=sha256:0c34fe18094686194f204a3b1787a27456897d8a2d62caf84b61e8dfbc0252ae \ + --hash=sha256:12fe549c9b10ac98c91cf791d2945e878875d95508e1a5d14091a7aaa66d9cf8 \ + --hash=sha256:1a812a5b727bc09c3d7ea072c4eebf657c2f7066155506ba31ebf4792f88f016 \ + --hash=sha256:252be4a05f9d9185bb8c18e83764ebcfea7185076c07a7a662253af3a8c07941 \ + --hash=sha256:334f900ff08ce0423407af97e6c26ad5d4e3b0763645559ece6fbf3747d6a8f5 \ + --hash=sha256:35ad0f0378c9359b3f297299c3309778bb03b8612f987399a0333a560b43862d \ + --hash=sha256:3d600dc583260d845c7d8a6db540339dd883081925da2bd1c5cb808f720b3cd9 \ + --hash=sha256:3e294c5eadfb93d78b0763e859a0c16d4051fc1c5231ae8956d61cb0b5666f5a \ + --hash=sha256:3e739edd001b04f654b166204fc7a9de896cf6007eaff33409ee9e50ceaff754 \ + --hash=sha256:44729980b6c50a5f2bfcc2668d36c569ce17f8b17bccaf470c4313dcbbf13c9d \ + --hash=sha256:44d2d26cda26d18f7af7db71453b7b783788322d756e81730acb98f24eb90ace \ + --hash=sha256:4c19236ae2402a8663a2c8f21f1870a03cc57f0bef7e4b6eb3238cc82944de80 \ + --hash=sha256:69763ab2445f632d90b504a815a2a033f74332997052b721002298ed6de40f2e \ + --hash=sha256:6dda1ddac033d27421c20d7a7943eec60be44e0db4e079f33cc5af3b8280ccde \ + --hash=sha256:6f9762274496c244d951c819348afbcf212714902742225f649cf02823a6a10f \ + --hash=sha256:710624ab925dc2b05a6229d47f6f0dac1c1155e6ed559be7109f684eba048a48 \ + --hash=sha256:7388ac685cab5b279a41dfe0a6ccd99e4dbf322edfb63e02fc0443bf24134e91 \ + --hash=sha256:77718810bd3066158db1e95a63c160ad7ce08c6b0710bc656055033e39cdad88 \ + --hash=sha256:7a820d8ae11facf32585507c11f04e3f38343c1e784c9b5a8b1da5c930547fe2 \ + --hash=sha256:8382ad21458075c2e66a82a29d650f963ce51c7708c7c0ff313a8c206c4fd5e8 \ + --hash=sha256:84378110dd9a6c06323b41b56e129c504d157d1a983ce8f5443761eb5256bafc \ + --hash=sha256:854794239111d2b88b40b6ef92aa478024d1e5074f364033e73e21e3f76b25e0 \ + --hash=sha256:92843c305330aa94a36e706c16209cd4df274693e777ca47112617db7d0ef3d7 \ + --hash=sha256:9bddc2cade6561f6820d4cd73f99a0243532ad506bc510a75a5a65a522b2d74d \ + --hash=sha256:a4893d31e5ef780b6edcaf63122df0f8d321088bb0dee4c8c06eccb1ca28d145 \ + --hash=sha256:a9d9ffdc2ab696f6b15b4d1f7cec6658e1d788124418cb30030afbae31c64746 \ + --hash=sha256:ac93252226cf288753d8b46280f4edf3433bf9508b6977f8dd8526b521a1bbb9 \ + --hash=sha256:b41f37cabfe2463232684de44bad753d6be08a7a072f6a83447eeaf0e4d2a215 \ + --hash=sha256:b883fe6fd85adad7932b3271c38ac289c65b7337c2c132e9569f9d3940620730 \ + --hash=sha256:b9d71701ce97c95480fecb0039ec5bb889e75f110da72005743451339262f4ce \ + --hash=sha256:ba95112d15fd4f1105fb2402c4eab9068f0554435e9b7085924bcfaac2cc306f \ + --hash=sha256:bba208d9c7decf9961998edf5c65e3ea4355d5818dd6cd0f6809bec1afb951cc \ + --hash=sha256:bd0d42297ace400d8febe55f13fdf46e86754842b860c978dfec16f081e5c653 \ + --hash=sha256:bea79263d55c24a32b0d79c00a1c58bb2ee5f0757ed95656b01c0fb310c5af3d \ + --hash=sha256:c064e28361c05d72eed8e744c9605cbd6d2bb7481a511c74071fd9b24bc65d7d \ + --hash=sha256:c3200cb41cdbc65156e5f8c908d739b0dfed57e890329413da2748d1a2cd1a4e \ + --hash=sha256:c6c791b09c57ed76a18b03f2631753a4960eefbbca80f846da8baefc6491fcfe \ + --hash=sha256:c6ec3675d98915bf1ec8b3c7986422682f7232ea76cad276f4c8abd5b7319b70 \ + --hash=sha256:ce20fe000754f477c8a9125543f1936ea5b8867c5406757c224d745ed033e691 \ + --hash=sha256:cedb9dd9358e4ea1d9bce3665ce0797f6adf97ff142c8e25b46ba9cdd508e9b6 \ + --hash=sha256:e0a15757fccb38c410947df156f9749ae4a3c89b2393741a50521f39a8cf202a \ + --hash=sha256:e6e95176209257803a8b3d0394f21604e796dadb643d2f7ca21b66c9c0b30c9a \ + --hash=sha256:e70ff90c64419709d38c8932ea9fe1cc98415c4f87ea8da81719e43f02534bc9 \ + --hash=sha256:ec1a15968a9d80da01e1d30349b2b0d7cc91e96588ee324ce1b5228175043e95 \ + --hash=sha256:ec5d40dd494882704fb876c16fa7261a69791e784ae34e6b5992e977bd2e238c \ + --hash=sha256:f633074f36dbc33d5c05b5dc75371e5660f1dbf9c8b1d95669def05e5425989c \ + --hash=sha256:f7fe3dbe871294ba70d789be16b6e7e52b418311e166e0e3cba9522f0f437fb1 \ + --hash=sha256:f963ba8c3b0199f9d6b794c90ec77545e05eadc83973897a4523c9e8d84e9340 # via # feast (setup.py) # dask @@ -1465,74 +1472,66 @@ watchfiles==1.1.1 \ --hash=sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa \ --hash=sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf # via uvicorn -websockets==15.0.1 \ - --hash=sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2 \ - --hash=sha256:0a34631031a8f05657e8e90903e656959234f3a04552259458aac0b0f9ae6fd9 \ - --hash=sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5 \ - --hash=sha256:0c9e74d766f2818bb95f84c25be4dea09841ac0f734d1966f415e4edfc4ef1c3 \ - --hash=sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8 \ - --hash=sha256:0fdfe3e2a29e4db3659dbd5bbf04560cea53dd9610273917799f1cde46aa725e \ - --hash=sha256:1009ee0c7739c08a0cd59de430d6de452a55e42d6b522de7aa15e6f67db0b8e1 \ - --hash=sha256:1234d4ef35db82f5446dca8e35a7da7964d02c127b095e172e54397fb6a6c256 \ - --hash=sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85 \ - --hash=sha256:2034693ad3097d5355bfdacfffcbd3ef5694f9718ab7f29c29689a9eae841880 \ - --hash=sha256:21c1fa28a6a7e3cbdc171c694398b6df4744613ce9b36b1a498e816787e28123 \ - --hash=sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375 \ - --hash=sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065 \ - --hash=sha256:363c6f671b761efcb30608d24925a382497c12c506b51661883c3e22337265ed \ - --hash=sha256:39c1fec2c11dc8d89bba6b2bf1556af381611a173ac2b511cf7231622058af41 \ - --hash=sha256:3b1ac0d3e594bf121308112697cf4b32be538fb1444468fb0a6ae4feebc83411 \ - --hash=sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597 \ - --hash=sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f \ - --hash=sha256:3d00075aa65772e7ce9e990cab3ff1de702aa09be3940d1dc88d5abf1ab8a09c \ - --hash=sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3 \ - --hash=sha256:47819cea040f31d670cc8d324bb6435c6f133b8c7a19ec3d61634e62f8d8f9eb \ - --hash=sha256:47b099e1f4fbc95b701b6e85768e1fcdaf1630f3cbe4765fa216596f12310e2e \ - --hash=sha256:4a9fac8e469d04ce6c25bb2610dc535235bd4aa14996b4e6dbebf5e007eba5ee \ - --hash=sha256:4b826973a4a2ae47ba357e4e82fa44a463b8f168e1ca775ac64521442b19e87f \ - --hash=sha256:4c2529b320eb9e35af0fa3016c187dffb84a3ecc572bcee7c3ce302bfeba52bf \ - --hash=sha256:54479983bd5fb469c38f2f5c7e3a24f9a4e70594cd68cd1fa6b9340dadaff7cf \ - --hash=sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4 \ - --hash=sha256:5756779642579d902eed757b21b0164cd6fe338506a8083eb58af5c372e39d9a \ - --hash=sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665 \ - --hash=sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22 \ - --hash=sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675 \ - --hash=sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4 \ - --hash=sha256:5df592cd503496351d6dc14f7cdad49f268d8e618f80dce0cd5a36b93c3fc08d \ - --hash=sha256:5f4c04ead5aed67c8a1a20491d54cdfba5884507a48dd798ecaf13c74c4489f5 \ - --hash=sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65 \ - --hash=sha256:66dd88c918e3287efc22409d426c8f729688d89a0c587c88971a0faa2c2f3792 \ - --hash=sha256:678999709e68425ae2593acf2e3ebcbcf2e69885a5ee78f9eb80e6e371f1bf57 \ - --hash=sha256:67f2b6de947f8c757db2db9c71527933ad0019737ec374a8a6be9a956786aaf9 \ - --hash=sha256:693f0192126df6c2327cce3baa7c06f2a117575e32ab2308f7f8216c29d9e2e3 \ - --hash=sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151 \ - --hash=sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d \ - --hash=sha256:76d1f20b1c7a2fa82367e04982e708723ba0e7b8d43aa643d3dcd404d74f1475 \ - --hash=sha256:7f493881579c90fc262d9cdbaa05a6b54b3811c2f300766748db79f098db9940 \ - --hash=sha256:823c248b690b2fd9303ba00c4f66cd5e2d8c3ba4aa968b2779be9532a4dad431 \ - --hash=sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee \ - --hash=sha256:8dd8327c795b3e3f219760fa603dcae1dcc148172290a8ab15158cf85a953413 \ - --hash=sha256:8fdc51055e6ff4adeb88d58a11042ec9a5eae317a0a53d12c062c8a8865909e8 \ - --hash=sha256:a625e06551975f4b7ea7102bc43895b90742746797e2e14b70ed61c43a90f09b \ - --hash=sha256:abdc0c6c8c648b4805c5eacd131910d2a7f6455dfd3becab248ef108e89ab16a \ - --hash=sha256:ac017dd64572e5c3bd01939121e4d16cf30e5d7e110a119399cf3133b63ad054 \ - --hash=sha256:ac1e5c9054fe23226fb11e05a6e630837f074174c4c2f0fe442996112a6de4fb \ - --hash=sha256:ac60e3b188ec7574cb761b08d50fcedf9d77f1530352db4eef1707fe9dee7205 \ - --hash=sha256:b359ed09954d7c18bbc1680f380c7301f92c60bf924171629c5db97febb12f04 \ - --hash=sha256:b7643a03db5c95c799b89b31c036d5f27eeb4d259c798e878d6937d71832b1e4 \ - --hash=sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa \ - --hash=sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9 \ - --hash=sha256:cad21560da69f4ce7658ca2cb83138fb4cf695a2ba3e475e0559e05991aa8122 \ - --hash=sha256:d08eb4c2b7d6c41da6ca0600c077e93f5adcfd979cd777d747e9ee624556da4b \ - --hash=sha256:d50fd1ee42388dcfb2b3676132c78116490976f1300da28eb629272d5d93e905 \ - --hash=sha256:d591f8de75824cbb7acad4e05d2d710484f15f29d4a915092675ad3456f11770 \ - --hash=sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe \ - --hash=sha256:d63efaa0cd96cf0c5fe4d581521d9fa87744540d4bc999ae6e08595a1014b45b \ - --hash=sha256:d99e5546bf73dbad5bf3547174cd6cb8ba7273062a23808ffea025ecb1cf8562 \ - --hash=sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561 \ - --hash=sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215 \ - --hash=sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931 \ - --hash=sha256:f29d80eb9a9263b8d109135351caf568cc3f80b9928bccde535c235de55c22d9 \ - --hash=sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f \ - --hash=sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7 +websockets==16.0 \ + --hash=sha256:0298d07ee155e2e9fda5be8a9042200dd2e3bb0b8a38482156576f863a9d457c \ + --hash=sha256:04cdd5d2d1dacbad0a7bf36ccbcd3ccd5a30ee188f2560b7a62a30d14107b31a \ + --hash=sha256:08d7af67b64d29823fed316505a89b86705f2b7981c07848fb5e3ea3020c1abe \ + --hash=sha256:152284a83a00c59b759697b7f9e9cddf4e3c7861dd0d964b472b70f78f89e80e \ + --hash=sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec \ + --hash=sha256:19c4dc84098e523fd63711e563077d39e90ec6702aff4b5d9e344a60cb3c0cb1 \ + --hash=sha256:1c1b30e4f497b0b354057f3467f56244c603a79c0d1dafce1d16c283c25f6e64 \ + --hash=sha256:2b9f1e0d69bc60a4a87349d50c09a037a2607918746f07de04df9e43252c77a3 \ + --hash=sha256:31a52addea25187bde0797a97d6fc3d2f92b6f72a9370792d65a6e84615ac8a8 \ + --hash=sha256:32da954ffa2814258030e5a57bc73a3635463238e797c7375dc8091327434206 \ + --hash=sha256:335c23addf3d5e6a8633f9f8eda77efad001671e80b95c491dd0924587ece0b3 \ + --hash=sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156 \ + --hash=sha256:349f83cd6c9a415428ee1005cadb5c2c56f4389bc06a9af16103c3bc3dcc8b7d \ + --hash=sha256:37b31c1623c6605e4c00d466c9d633f9b812ea430c11c8a278774a1fde1acfa9 \ + --hash=sha256:417b28978cdccab24f46400586d128366313e8a96312e4b9362a4af504f3bbad \ + --hash=sha256:485c49116d0af10ac698623c513c1cc01c9446c058a4e61e3bf6c19dff7335a2 \ + --hash=sha256:4a1aba3340a8dca8db6eb5a7986157f52eb9e436b74813764241981ca4888f03 \ + --hash=sha256:50f23cdd8343b984957e4077839841146f67a3d31ab0d00e6b824e74c5b2f6e8 \ + --hash=sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230 \ + --hash=sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8 \ + --hash=sha256:5569417dc80977fc8c2d43a86f78e0a5a22fee17565d78621b6bb264a115d4ea \ + --hash=sha256:569d01a4e7fba956c5ae4fc988f0d4e187900f5497ce46339c996dbf24f17641 \ + --hash=sha256:583b7c42688636f930688d712885cf1531326ee05effd982028212ccc13e5957 \ + --hash=sha256:5a4b4cc550cb665dd8a47f868c8d04c8230f857363ad3c9caf7a0c3bf8c61ca6 \ + --hash=sha256:5f451484aeb5cafee1ccf789b1b66f535409d038c56966d6101740c1614b86c6 \ + --hash=sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5 \ + --hash=sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f \ + --hash=sha256:71c989cbf3254fbd5e84d3bff31e4da39c43f884e64f2551d14bb3c186230f00 \ + --hash=sha256:781caf5e8eee67f663126490c2f96f40906594cb86b408a703630f95550a8c3e \ + --hash=sha256:7be95cfb0a4dae143eaed2bcba8ac23f4892d8971311f1b06f3c6b78952ee70b \ + --hash=sha256:7d837379b647c0c4c2355c2499723f82f1635fd2c26510e1f587d89bc2199e72 \ + --hash=sha256:86890e837d61574c92a97496d590968b23c2ef0aeb8a9bc9421d174cd378ae39 \ + --hash=sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9 \ + --hash=sha256:8b6e209ffee39ff1b6d0fa7bfef6de950c60dfb91b8fcead17da4ee539121a79 \ + --hash=sha256:8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0 \ + --hash=sha256:8d7f0659570eefb578dacde98e24fb60af35350193e4f56e11190787bee77dac \ + --hash=sha256:8e1dab317b6e77424356e11e99a432b7cb2f3ec8c5ab4dabbcee6add48f72b35 \ + --hash=sha256:8ff32bb86522a9e5e31439a58addbb0166f0204d64066fb955265c4e214160f0 \ + --hash=sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5 \ + --hash=sha256:9b5aca38b67492ef518a8ab76851862488a478602229112c4b0d58d63a7a4d5c \ + --hash=sha256:a069d734c4a043182729edd3e9f247c3b2a4035415a9172fd0f1b71658a320a8 \ + --hash=sha256:a0b31e0b424cc6b5a04b8838bbaec1688834b2383256688cf47eb97412531da1 \ + --hash=sha256:a35539cacc3febb22b8f4d4a99cc79b104226a756aa7400adc722e83b0d03244 \ + --hash=sha256:a5e18a238a2b2249c9a9235466b90e96ae4795672598a58772dd806edc7ac6d3 \ + --hash=sha256:a653aea902e0324b52f1613332ddf50b00c06fdaf7e92624fbf8c77c78fa5767 \ + --hash=sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a \ + --hash=sha256:af80d74d4edfa3cb9ed973a0a5ba2b2a549371f8a741e0800cb07becdd20f23d \ + --hash=sha256:b14dc141ed6d2dde437cddb216004bcac6a1df0935d79656387bd41632ba0bbd \ + --hash=sha256:b784ca5de850f4ce93ec85d3269d24d4c82f22b7212023c974c401d4980ebc5e \ + --hash=sha256:bc59589ab64b0022385f429b94697348a6a234e8ce22544e3681b2e9331b5944 \ + --hash=sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82 \ + --hash=sha256:c0ee0e63f23914732c6d7e0cce24915c48f3f1512ec1d079ed01fc629dab269d \ + --hash=sha256:caab51a72c51973ca21fa8a18bd8165e1a0183f1ac7066a182ff27107b71e1a4 \ + --hash=sha256:d6297ce39ce5c2e6feb13c1a996a2ded3b6832155fcfc920265c76f24c7cceb5 \ + --hash=sha256:daa3b6ff70a9241cf6c7fc9e949d41232d9d7d26fd3522b1ad2b4d62487e9904 \ + --hash=sha256:df57afc692e517a85e65b72e165356ed1df12386ecb879ad5693be08fac65dde \ + --hash=sha256:e0334872c0a37b606418ac52f6ab9cfd17317ac26365f7f65e203e2d0d0d359f \ + --hash=sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c \ + --hash=sha256:eaded469f5e5b7294e2bdca0ab06becb6756ea86894a47806456089298813c89 \ + --hash=sha256:f4a32d1bd841d4bcbffdcb3d2ce50c09c3909fbead375ab28d0181af89fd04da \ + --hash=sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4 # via uvicorn diff --git a/sdk/python/tests/integration/feature_repos/repo_configuration.py b/sdk/python/tests/integration/feature_repos/repo_configuration.py index 14e60cb7cf9..60ead53d35b 100644 --- a/sdk/python/tests/integration/feature_repos/repo_configuration.py +++ b/sdk/python/tests/integration/feature_repos/repo_configuration.py @@ -380,7 +380,6 @@ def values(self): def construct_universal_feature_views( data_sources: UniversalDataSources, with_odfv: bool = True, - use_substrait_odfv: bool = False, ) -> UniversalFeatureViews: driver_hourly_stats = create_driver_hourly_stats_feature_view(data_sources.driver) driver_hourly_stats_base_feature_view = ( @@ -396,7 +395,6 @@ def construct_universal_feature_views( driver_hourly_stats_base_feature_view[["conv_rate"]], create_conv_rate_request_source(), ], - use_substrait_odfv=use_substrait_odfv, ) if with_odfv else None, diff --git a/sdk/python/tests/integration/feature_repos/universal/feature_views.py b/sdk/python/tests/integration/feature_repos/universal/feature_views.py index cd02c3478c7..8b663252a02 100644 --- a/sdk/python/tests/integration/feature_repos/universal/feature_views.py +++ b/sdk/python/tests/integration/feature_repos/universal/feature_views.py @@ -3,7 +3,6 @@ import numpy as np import pandas as pd -from ibis.expr.types.relations import Table from feast import ( BatchFeatureView, @@ -16,7 +15,7 @@ ) from feast.data_source import DataSource, RequestSource from feast.feature_view_projection import FeatureViewProjection -from feast.on_demand_feature_view import PandasTransformation, SubstraitTransformation +from feast.on_demand_feature_view import PandasTransformation from feast.types import Array, FeastType, Float32, Float64, Int32, Int64, String from tests.integration.feature_repos.universal.entities import ( customer, @@ -59,22 +58,10 @@ def conv_rate_plus_100(features_df: pd.DataFrame) -> pd.DataFrame: return df -def conv_rate_plus_100_ibis(features_table: Table) -> Table: - return features_table.mutate( - conv_rate_plus_100=features_table["conv_rate"] + 100, - conv_rate_plus_val_to_add=features_table["conv_rate"] - + features_table["val_to_add"], - conv_rate_plus_100_rounded=(features_table["conv_rate"] + 100) - .round(digits=0) - .cast("int32"), - ) - - def conv_rate_plus_100_feature_view( sources: List[Union[FeatureView, RequestSource, FeatureViewProjection]], infer_features: bool = False, features: Optional[List[Field]] = None, - use_substrait_odfv: bool = False, ) -> OnDemandFeatureView: # Test that positional arguments and Features still work for ODFVs. _features = features or [ @@ -89,10 +76,8 @@ def conv_rate_plus_100_feature_view( feature_transformation=PandasTransformation( udf=conv_rate_plus_100, udf_string="raw udf source", # type: ignore - ) - if not use_substrait_odfv - else SubstraitTransformation.from_ibis(conv_rate_plus_100_ibis, sources), - mode="pandas" if not use_substrait_odfv else "substrait", + ), + mode="pandas", ) diff --git a/sdk/python/tests/integration/offline_store/test_universal_historical_retrieval.py b/sdk/python/tests/integration/offline_store/test_universal_historical_retrieval.py index 37df649386c..a56609e53ce 100644 --- a/sdk/python/tests/integration/offline_store/test_universal_historical_retrieval.py +++ b/sdk/python/tests/integration/offline_store/test_universal_historical_retrieval.py @@ -47,19 +47,14 @@ @pytest.mark.integration @pytest.mark.universal_offline_stores @pytest.mark.parametrize("full_feature_names", [True, False], ids=lambda v: f"full:{v}") -@pytest.mark.parametrize( - "use_substrait_odfv", [True, False], ids=lambda v: f"substrait:{v}" -) def test_historical_features_main( - environment, universal_data_sources, full_feature_names, use_substrait_odfv + environment, universal_data_sources, full_feature_names ): store = environment.feature_store (entities, datasets, data_sources) = universal_data_sources - feature_views = construct_universal_feature_views( - data_sources, use_substrait_odfv=use_substrait_odfv - ) + feature_views = construct_universal_feature_views(data_sources) entity_df_with_request_data = datasets.entity_df.copy(deep=True) entity_df_with_request_data["val_to_add"] = [ diff --git a/sdk/python/tests/unit/test_substrait_transformation.py b/sdk/python/tests/unit/test_substrait_transformation.py deleted file mode 100644 index 1e5cd0889ae..00000000000 --- a/sdk/python/tests/unit/test_substrait_transformation.py +++ /dev/null @@ -1,132 +0,0 @@ -import os -import tempfile -from datetime import datetime, timedelta - -import pandas as pd - -from feast import Entity, FeatureStore, FeatureView, FileSource, RepoConfig -from feast.driver_test_data import create_driver_hourly_stats_df -from feast.field import Field -from feast.infra.online_stores.sqlite import SqliteOnlineStoreConfig -from feast.on_demand_feature_view import on_demand_feature_view -from feast.types import Float32, Float64, Int64 - - -def test_ibis_pandas_parity(): - with tempfile.TemporaryDirectory() as data_dir: - store = FeatureStore( - config=RepoConfig( - project="test_on_demand_substrait_transformation", - registry=os.path.join(data_dir, "registry.db"), - provider="local", - entity_key_serialization_version=3, - online_store=SqliteOnlineStoreConfig( - path=os.path.join(data_dir, "online.db") - ), - ) - ) - - # Generate test data. - end_date = datetime.now().replace(microsecond=0, second=0, minute=0) - start_date = end_date - timedelta(days=15) - - driver_entities = [1001, 1002, 1003, 1004, 1005] - driver_df = create_driver_hourly_stats_df(driver_entities, start_date, end_date) - driver_stats_path = os.path.join(data_dir, "driver_stats.parquet") - driver_df.to_parquet(path=driver_stats_path, allow_truncated_timestamps=True) - - driver = Entity(name="driver", join_keys=["driver_id"]) - - driver_stats_source = FileSource( - name="driver_hourly_stats_source", - path=driver_stats_path, - timestamp_field="event_timestamp", - created_timestamp_column="created", - ) - - driver_stats_fv = FeatureView( - name="driver_hourly_stats", - entities=[driver], - ttl=timedelta(days=1), - schema=[ - Field(name="conv_rate", dtype=Float32), - Field(name="acc_rate", dtype=Float32), - Field(name="avg_daily_trips", dtype=Int64), - ], - online=True, - source=driver_stats_source, - ) - - @on_demand_feature_view( - sources=[driver_stats_fv], - schema=[Field(name="conv_rate_plus_acc", dtype=Float64)], - mode="pandas", - ) - def pandas_view(inputs: pd.DataFrame) -> pd.DataFrame: - df = pd.DataFrame() - df["conv_rate_plus_acc"] = inputs["conv_rate"] + inputs["acc_rate"] - return df - - from ibis.expr.types import Table - - @on_demand_feature_view( - sources=[driver_stats_fv[["conv_rate", "acc_rate"]]], - schema=[Field(name="conv_rate_plus_acc_substrait", dtype=Float64)], - mode="substrait", - ) - def substrait_view(inputs: Table) -> Table: - return inputs.mutate( - conv_rate_plus_acc_substrait=inputs["conv_rate"] + inputs["acc_rate"] - ) - - store.apply( - [driver, driver_stats_source, driver_stats_fv, substrait_view, pandas_view] - ) - - store.materialize( - start_date=start_date, - end_date=end_date, - ) - - entity_df = pd.DataFrame.from_dict( - { - # entity's join key -> entity values - "driver_id": [1001, 1002, 1003], - # "event_timestamp" (reserved key) -> timestamps - "event_timestamp": [ - start_date + timedelta(days=4), - start_date + timedelta(days=5), - start_date + timedelta(days=6), - ], - } - ) - - requested_features = [ - "driver_hourly_stats:conv_rate", - "driver_hourly_stats:acc_rate", - "driver_hourly_stats:avg_daily_trips", - "substrait_view:conv_rate_plus_acc_substrait", - "pandas_view:conv_rate_plus_acc", - ] - - training_df = store.get_historical_features( - entity_df=entity_df, features=requested_features - ) - - assert training_df.to_df()["conv_rate_plus_acc"].equals( - training_df.to_df()["conv_rate_plus_acc_substrait"] - ) - - assert training_df.to_arrow()["conv_rate_plus_acc"].equals( - training_df.to_arrow()["conv_rate_plus_acc_substrait"] - ) - - online_response = store.get_online_features( - features=requested_features, - entity_rows=[{"driver_id": 1001}, {"driver_id": 1002}, {"driver_id": 1003}], - ) - - assert ( - online_response.to_dict()["conv_rate_plus_acc"] - == online_response.to_dict()["conv_rate_plus_acc_substrait"] - ) diff --git a/setup.py b/setup.py index d4ecc5ee0af..32082c2fa0b 100644 --- a/setup.py +++ b/setup.py @@ -39,7 +39,7 @@ "mmh3", "numpy>=2.0.0,<3", "pandas>=1.4.3,<3", - "pyarrow<=21.0.0", + "pyarrow>=21.0.0", "pydantic>=2.0.0", "pygments>=2.12.0,<3", "PyYAML>=5.4.0,<7", @@ -132,9 +132,7 @@ ] IBIS_REQUIRED = [ - "ibis-framework>=9.0.0,<10", - "ibis-substrait>=4.0.0", - "substrait<0.25.0", # TODO: remove this once we upgrade protobuf + "ibis-framework>=10.0.0", ] GRPCIO_REQUIRED = [ @@ -143,7 +141,7 @@ "grpcio-health-checking>=1.56.2,<=1.62.3", ] -DUCKDB_REQUIRED = ["ibis-framework[duckdb]>=9.0.0,<10"] +DUCKDB_REQUIRED = ["ibis-framework[duckdb]>=10.0.0"] DELTA_REQUIRED = ["deltalake<1.0.0"] @@ -158,14 +156,14 @@ "couchbase-columnar==1.0.0" ] -MSSQL_REQUIRED = ["ibis-framework[mssql]>=9.0.0,<10"] +MSSQL_REQUIRED = ["ibis-framework[mssql]>=10.0.0"] FAISS_REQUIRED = ["faiss-cpu>=1.7.0,<=1.10.0"] QDRANT_REQUIRED = ["qdrant-client>=1.12.0"] GO_REQUIRED = ["cffi>=1.15.0"] -MILVUS_REQUIRED = ["pymilvus==2.4.15", "milvus-lite==2.4.12", "setuptools>=60,<81"] +MILVUS_REQUIRED = ["pymilvus>2.5", "milvus-lite==2.4.12", "setuptools>=60,<81"] TORCH_REQUIRED = [ "torch>=2.7.0", @@ -381,7 +379,6 @@ classifiers=[ # Trove classifiers # Full list: https://pypi.python.org/pypi?%3Aaction=list_classifiers - "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", From 2081b55de32b830b4fb64e93b6d88cdfaeff2378 Mon Sep 17 00:00:00 2001 From: Jitendra Yejare Date: Fri, 16 Jan 2026 17:38:16 +0530 Subject: [PATCH 30/37] feat: Read, Save docs and chat fixes (#5865) Signed-off-by: jyejare --- sdk/python/feast/feature_server.py | 35 +++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/sdk/python/feast/feature_server.py b/sdk/python/feast/feature_server.py index ecad3404eaf..f6f15a0bd5c 100644 --- a/sdk/python/feast/feature_server.py +++ b/sdk/python/feast/feature_server.py @@ -542,7 +542,7 @@ async def chat(request: ChatRequest): # For now, just return dummy text return {"response": "This is a dummy response from the Feast feature server."} - @app.post("/read-document") + @app.post("/read-document", dependencies=[Depends(inject_user_details)]) async def read_document_endpoint(request: ReadDocumentRequest): try: import os @@ -557,7 +557,7 @@ async def read_document_endpoint(request: ReadDocumentRequest): except Exception as e: return {"error": str(e)} - @app.post("/save-document") + @app.post("/save-document", dependencies=[Depends(inject_user_details)]) async def save_document_endpoint(request: SaveDocumentRequest): try: import json @@ -668,12 +668,41 @@ async def send_message(self, message: str, websocket: WebSocket): manager = ConnectionManager() + MAX_WS_CONNECTIONS = 5 + MAX_MESSAGE_SIZE = 4096 + MAX_MESSAGES_PER_MINUTE = 60 + WS_READ_TIMEOUT_SEC = 60 + @app.websocket("/ws/chat") async def websocket_endpoint(websocket: WebSocket): + if len(manager.active_connections) >= MAX_WS_CONNECTIONS: + await websocket.close(code=status.WS_1008_POLICY_VIOLATION) + return + await manager.connect(websocket) + message_timestamps: List[float] = [] try: while True: - message = await websocket.receive_text() + try: + message = await asyncio.wait_for( + websocket.receive_text(), timeout=WS_READ_TIMEOUT_SEC + ) + except asyncio.TimeoutError: + await websocket.close(code=status.WS_1001_GOING_AWAY) + return + + if len(message) > MAX_MESSAGE_SIZE: + await websocket.close(code=status.WS_1009_MESSAGE_TOO_BIG) + return + + now = time.time() + cutoff = now - 60 + message_timestamps = [ts for ts in message_timestamps if ts >= cutoff] + if len(message_timestamps) >= MAX_MESSAGES_PER_MINUTE: + await websocket.close(code=status.WS_1008_POLICY_VIOLATION) + return + message_timestamps.append(now) + # Process the received message (currently unused but kept for future implementation) # For now, just return dummy text response = f"You sent: '{message}'. This is a dummy response from the Feast feature server." From b1844a3d8aca0f6283f23f6ac1c05d79b214f40b Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Fri, 16 Jan 2026 08:19:08 -0500 Subject: [PATCH 31/37] feat: Add RBAC blog post to website (#5861) * Initial plan * Add RBAC blog post to website Co-authored-by: franciscojavierarceo <4163062+franciscojavierarceo@users.noreply.github.com> * Apply suggestion from @franciscojavierarceo --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: franciscojavierarceo <4163062+franciscojavierarceo@users.noreply.github.com> Co-authored-by: Francisco Javier Arceo --- .../website/docs/blog/feast-launches-rbac.md | 179 ++++++++++++++++++ .../public/images/blog/rbac-architecture.jpg | Bin 0 -> 251818 bytes 2 files changed, 179 insertions(+) create mode 100644 infra/website/docs/blog/feast-launches-rbac.md create mode 100644 infra/website/public/images/blog/rbac-architecture.jpg diff --git a/infra/website/docs/blog/feast-launches-rbac.md b/infra/website/docs/blog/feast-launches-rbac.md new file mode 100644 index 00000000000..044b5e883a8 --- /dev/null +++ b/infra/website/docs/blog/feast-launches-rbac.md @@ -0,0 +1,179 @@ +--- +title: Feast Launches RBAC! +description: Feast now supports Role Based Access Controls (RBAC) so you can secure and govern your data with granular authorization policies. +date: 2024-11-21 +authors: ["Danielle Martinoli", "Francisco Javier Arceo"] +--- + +
+ Feast RBAC Architecture +
+ +# Feast Launches RBAC! 🚀 + +# What is the Feast Permission Model? + +Feast now supports Role Based Access Controls (RBAC) so you can secure and govern your data. + +If you ever wanted to securely partition your feature store across different teams, the new Feast permissions model is here to make that possible! + +This powerful feature allows administrators to configure granular authorization policies, letting them decide which users and groups can access specific resources and what operations they can perform. + +The default implementation is based on Role-Based Access Control (RBAC): user roles determine whether a user has permission to perform specific functions on registered resources. + +# Why is RBAC important for Feast? + +Feature stores often operate on sensitive, proprietary data and we want to make sure teams are able to govern the access and control of that data thoughtfully, while benefiting from transparent code and an open source community like Feast. + +That's why we built RBAC using [Kubernetes RBAC](https://kubernetes.io/docs/reference/access-authn-authz/rbac) and [OpenID Connect protocol (OIDC)](https://auth0.com/docs/authenticate/protocols/openid-connect-protocol), ensuring secure, fine-grained access control in Feast. + +# What are the Benefits of using Feast Permissions? + +Using the Feast Permissions Model offers two key benefits: + +1. Securely share and partition your feature store: grant each team only the minimum privileges necessary to access and manage the relevant resources. +2. Adopt a Service-Oriented Architecture and leverage the benefits of a distributed system. + +# How Feast Uses RBAC + +## Permissions as Feast resources + +The RBAC configuration is defined using a new Feast object type called "Permission". Permissions are registered in the Feast registry and are defined and applied like all the other registry objects, using Python code. + +A permission is defined by these three components: + +* A **resource**: a Feast object that we want to secure against unauthorized access. It's identified by the matching type(s), a possibly empty list of name patterns and a dictionary of required tags. +* An **action**: a logical operation performed on the secured resource, such as managing the resource state with CREATE, DESCRIBE, UPDATE or DELETE, or accessing the resource data with READ and WRITE (differentiated by ONLINE and OFFLINE store types) +* A **policy**: the rule to enforce authorization decisions based on the current user. The default implementation uses role-based policies. + +The resource types supported by the permission framework are those defining the customer feature store: + +* Project +* Entity +* FeatureView +* OnDemandFeatureView +* BatchFeatureView +* StreamFeatureView +* FeatureService +* DataSource +* ValidationReference +* SavedDataset +* Permission + + +**TIP**: Check out the Permission APIs in the [Feast Python API Documentation](https://docs.feast.dev/getting-started/concepts/permission) to learn more! + +```python +# This configuration grants users with the 'owner' role permissions +# to fetch resource status and read data from all the feature views +from feast.permissions.action import AuthzedAction, READ +# Note: READ is a global list including both READ_OFFLINE and +# READ_ONLINE values from AuthzedAction enum + +# You do not have to specify `name_patterns` +Permission( + name="fv-owner", + types=[FeatureView], + policy=RoleBasedPolicy(roles=["owner"]), + actions=[AuthzedAction.DESCRIBE, READ], +) + +# This configuration grants users with the 'lab' role permissions +# to fetch resource status and read data from all feature views +# named 'lab_stream_feature_view' or 'lab_feature_view' +from feast.permissions.action import AuthzedAction, READ + +Permission( + name="lab-reader", + types=[FeatureView], + name_patterns=["lab_stream_feature_view", "lab_feature_view"], + policy=RoleBasedPolicy(roles=["lab"]), + actions=[AuthzedAction.DESCRIBE, READ], +) + +# As an alternative, we can use Python regular expression patterns +# to grant the same permission to all feature views whose name +# starts by 'lab' +from feast.permissions.action import AuthzedAction, READ + +Permission( + name="lab-reader", + types=[FeatureView], + name_patterns="lab.*", # Accepts both 'str' and 'list[str]' types + policy=RoleBasedPolicy(roles=["lab"]), + actions=[AuthzedAction.DESCRIBE, READ], +) + +# This configuration grants users with the 'prod' role permissions +# to fetch resource status and read data from all feature views +# whose names include the '_prod_' word +from feast.permissions.action import AuthzedAction, READ + +Permission( + name="prod-reader", + types=[FeatureView, FeatureService], + name_patterns=".*_prod_.*", + policy=RoleBasedPolicy(roles=["prod"]), + actions=[AuthzedAction.DESCRIBE, READ], +) + +# This configuration grants permissions to write on all data sources +# tagged with 'risk_level' set to 'high', exclusively to users +# with the 'admin' or 'data_team' roles +from feast.permissions.action import WRITE +# Note: WRITE is a global list including both WRITE_OFFLINE and +# WRITE_ONLINE values from AuthzedAction enum + +Permission( + name="data-writer", + types=[DataSource], + required_tags={"risk_level": "high"}, + policy=RoleBasedPolicy(roles=["admin", "data_team"]), + actions=[WRITE], +) +``` + +## Why Now is the Time for Distributed Feature Stores + +But wait a moment—does that mean every time I access the FeatureStore API, I have to go through an authorization check? + +Well, yes and no-but mostly no if you work in a development environment. +If your environment doesn't use any remote Feast service, RBAC enforcement won't take place. + +Indeed, the reference architecture for the permission model feature represents a fully distributed environment: + +
+ RBAC Architecture Diagram +
+ +* Feast functions are deployed as interconnected services. +* Service endpoints enforce authorization, processing only authorized requests. +* Clients use the feature store transparently, with authorization headers automatically injected in every request. +* Service-to-service communications are permitted automatically. + +Currently, only the following Python servers are supported in an authorized environment: +- Online REST feature server +- Offline Arrow Flight feature server +- gRPC Registry server + +## Configuring Feast Authorization + +For backward compatibility, by default no authorizations are enforced. The authorization functionality must be explicitly enabled using the auth configuration section in feature\_store.yaml. +Of course, all server and client applications must have a consistent configuration. + +Currently, feast supports [OIDC](https://auth0.com/docs/authenticate/protocols/openid-connect-protocol) and [Kubernetes RBAC](https://kubernetes.io/docs/reference/access-authn-authz/rbac) authentication/authorization. + +* With OIDC authorization, the client uses an OIDC server to fetch a JSON Web Token (JWT), which is then included in every request. On the server side, the token is parsed to extract user roles and validate them against the configured permissions. +* With Kubernetes authorization, the client injects its service account JWT token into the request. The server then extracts the service account name from the token and uses it to look up the associated role in the Kubernetes RBAC resources. + +## Inspecting and Troubleshooting the Permissions Model + +The feast CLI includes a new `permissions` command to list the registered permissions, with options to identify the matching resources for each configured permission and the existing resources that are not covered by any permission. + +For troubleshooting purposes, it also provides a command to list all the resources and operations allowed to any managed role. + +# How Can I Get Started? + +This new feature includes working examples for both supported authorization protocols. You can start by experimenting with these examples to see how they fit your own feature store and assess their benefits. + +As this is a completely new functionality, your feedback will be extremely valuable. It will help us adapt the feature to meet real-world requirements and better serve our customers. diff --git a/infra/website/public/images/blog/rbac-architecture.jpg b/infra/website/public/images/blog/rbac-architecture.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0de87d1718cdbe012f0c83021d406b83b0ce1442 GIT binary patch literal 251818 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�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%0A2|e;UV5T!! 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%0D#B8 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 = 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

{nM&&n`fVH4LL^g+i17F=>Us&zJrx6tcv1Q@EAG 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"Ih^_&D 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 z

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�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%0AukuBczQ=g92l8J=3LeUt(H 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 g!QK@k%nXjy+4&hc&v17& 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 z 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 z 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


%}VKzwK{Y4Eh&>VZRPe{ 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

Xpv1l6NN+snn z1km9ucd=7T`_QeWq)0de%h8C9WcL3fxsW<@U(ibvibe|HJBr(Ef3pYsGgZGu2@|;# z-$*Sqba}yZ023w{A}`YIF4GrOB1ny(iSk>|fMLk?R3U2TDHhymYvt zUo?!gF@ol3S3PbRe~%lw{N58fL}7#N;xPoNv&q%}wUU+I4?m{y{4~RVBF)TEad-Po(C8RfyqSdF$>On`{v_`WiB}12=s5u)4c_z7#eSB9xfCfB{ zMq`}(+)DbkPPa(GTBgwwLV45~({FbKQ@*9Yr0m0k0D?e$ztGQBeSZ}VQVQuZKQ-O% z?pRXsak5-bIG`VAZJ6dv<{7j-Za`M%?o8&hyuaq45zn9z57wTi=UMfO#cf>0%bkNp zV-Dm)dBiwYuIM9=V2*q!b;hye5nS0f=<*15J2fZD22Vi+Rgf>B1!jeW7b-VGe#nG6 zSzbiN$>XE4l4nDXsehtVb0!rq(t>=JCZ`N_D^o*s-x7y-qY^BFpWf6ZXrD_+31#9Z zBY?@arw$r9%elO8nz_%CTMW5K^>pfUydch@4zMaZr%vXnqO+qi ze`wJPRkYnLI<`(aRnaj~=_* zZbyG3!-dM<)8Q+!J>kr!*JOHLF)xJ=F?i`DCm_9rlt<{tSUYBKrj2!aLH>C9PCgkj zrUKHvP|}s~Vt;{n>Xh!T7gbXsmlw$xMp;y5=suCfbnG85lhGBX$Yfbr1UaSxK03QE ztiXBn`-19{)6ghudYB?>ifCPWiX_V*dIkJ)R4E%x#l%w~#~hHAMN+tc{W!woy{0?P zJJdCL#^t=g9!M2h$l1?4Tlu{!Rj9DIpL=#GYk$9_i+^fs>ME56Fhc~~Nx_S#T0 ziUy^Qz_2=|=yi~;GC7NJPF{u|CGevhfwMS1`0%2t=q-g$zMt-q-)Xy~Z4k5I{ljl+ zF%LdWhkyT_a}7V_*;FM0d@+nk z&`riWiV59dc1gTRdfyu zws(v>Z<}fQ$ajH^LpDhL>qThP&mDy5T#W?9_ zNq_RDg#>J+HK#Gjlz(`txDl>~j}F&@4?qexVF8`K1?ccEqPGj!39W$#Dq$c6`{S>*ad>;}0(}Dp*Q(7rC6 zMN$~W4ot_rsQJ*QZ2N0Kf_Y^fxbWc&g zZ7n0e*Xj`AMA1jClIWQA5g}f7|Zjxlom?Tfr;V@o=4}(e`TwuL| z&BbmX>qaQq3RT$x=iyx1fPd3`X+tgiHFrTTqsT3efO(s8Iw*Z)4D>qftefJtbL|L9 z8}EdBjnH zK}eq|J%d!;>M5hA!W1Pm3sl+3`{AX}mfj26KTeceCZt~XhpBvM<&+mZxf`X=}>hha!4v)4xITB%)f zii|JFZ)AjNic5lM#D67j$ud`QT=4+(35COJf{z9oE zQnTS<^{W;E^~(>F@?q|&2=q1@&Ibw+SY$B{9=2*D^W(?EYJWuK)B&ksFN+8g{ftm= zGgIMVR(Obwm#K%PO->t7cQ>6xWw-nb+x?_fV+c^Q2jr2of{Hp8*=?)A(Pi$?aYV&G zAU|N0+`&3yKps*xlt(BWVGF3SAPa4P% zwE_9|&?=uak{@XU@~upj!vHp9@Q*Rf+mTgyTpN)4kF3g%wE@|AWL2Kf2GA%gdop_3 zTAh3RzGP$YU$q~um9jHUe94qwD$l9c!a^k9l5g7S&wpsU;KMrm9pg>P2sBW2m<^3G$X+WfU_|O*Op6B$%>KUr*mr z8xb&yWeYjW@FIdn=*9czDHUh?rL1Xi8yjyo_PW*BEmmXlzxsNkSbgcm`{7f~|3MFB zn*VZ=4le2V)ROb7du9H4`ef_bYMyWRFhwR5(0}JqBg`6y!O?tym8tGg`U7`~;dORS zKD8Gb99ys5nbhkMp%*Vs+D@4J;MI?{JG{_pGoSQ@Q)Z_!gd+DcJ2wuq0pnpdW^@6X zKb=)OPPp`QtakTi=THT(K|PqKSh>v$vg!qtCIz2UJ9lp;_c1i+Ct7uC7P@tIB1r=u zM}K{x-_0>Zo;S8qO#pIFFP%IGo$A^}PIXmi*N{S72K@x9pJulpu2;Lg0Z$Jb_THgI zXvKP#UHLOkFWI2)&ZG_lz4&6cJeP=C8Cet2pPhTqG!-|xbuA@d{fq<76zT?yxy~GdVoGUR<9&g62!y7M=0w6A!?v zI~a#WcYfP41b?J z9W29V8yOkCRoBuz7@<+Ztz`HkhRX02oX$8pGctUdaSeekTNXP+?QMjnb%v?!$;rqP z-se%qI#TcdrX|bB-)D&YhN4OG)n%(IO%+*7Io{o9B-TrL#3YdcaxN%cP|zgP^b|6bLh7KqX2r5tQu4kT(I6KfUKg_xqw1pIu>LCNm@S56gPirF*c~m zeyj4t;gu;7mRj2W=UX>u&G)P&H*|T8G4F9F9X#KKsn~!Yf+0drQKWMUihn@wxkAa< zP)c~$R)gYbY2FNduk{i;>5G52pUC*Ku>kOmD(8Z`T4C$@zG^E)uP-BUl zM2;O8l3im+$}o7nUUiotcP0#7q|OksIEl?A2m>TfMe$C(;S8ntA$KUBQw(-Pwx3ekPn=HfCh(AL}x9KdhH%YqD^?JBF)ATiz=sLoK zy_xj8h#pc2QkK`t(WN4#hRAp68sE_632gz}elSguwETeRp~uB&>37rGK1RA(s|ONrfTO zP{?4Jmyx2rpIk}hjl)MU6npSL3M6DoDUH)0r}m#m%QM&ejrNEOnoOxbb10<2#N1AF{{2)X&lD9hVhG3|w8hXT$eO|P9eHi>qizo$vo8GKf_WYM zScM?oqTSc|`^k5E4S$Ww+{3(;UnCx<@yHV%BgkdCEA_Gx^*-;3%E%B?wkbw0SCaB!`+tD0a1UrkK5XqZU7q)Z z$WV$j8HRi()no{dtPP}L$c0U}7`jv_Ch`SM?%91QmzqmhbG>261x=`hZ^afvmsw95 zBA=!#I@9s6sWC(@Y*KidIgYYn$Sa<1NtVfPQ-$!$4W7l2u@zW=OF3hKxrWGXl#Cm? z?Da%Buzq(E$bap&C*fju63DmWEv2S#LS3_AELpO}y_ifXtgw@O@Llz|A@6QkqU0Ki zb9yp@jO(JN_>ip+nc@k&SYG#p3{evJAstB}^}>f`+Fd?o=$V`)c#IsJmAtnguX*Y) z7dsJzG+zNT4xfWhYfrkn@@c)mxvz>dsqfPIQ?5?&z<hGLvcs;ia}&3cqz z(hDz@xg}Zep1%G}BcCG^oR?k-@$cabY~YOVNiIZWE@bT<8b}gLFlD>WhxslK^^*Kl zKT1_&9v(YRx1H&%d&&iOqmUJQ3FPm|+vOUafK8<#@_hPHFn5xv_orl&Oxt9L;*N2x z3!h}itACU@<)7TH&Xc4Tn@`e`gKpPH43(Jm{5)2>ge*|C;)V{HSxS-j2cC*mlA>3q z3|Ma+1lF$qYq0ivDrmYM$q+2XPrEaFhZHD(GnDzsi&Ta%#zJmOFXWOyz9{RBvGQ?W zA*8F&pmxOdQU{+>p8y}zE0gt{ZOEV=HAFTfm4ChnQ|Bmy*?1xzFk92b=pJ3z&fEtWQpe#v_uVJ>+jTRn2z z0Dt9opYyQ#P6Sra##TnrEg3I(=?J6ochqk1Vx?XC0;hJr=YV)7I}DcMU%RvWq;(d8 zCK*ow=q2y-@5%emhfhE4L+Gvi1>O6RV`otFyj%B|YGp3LN33$fdzOfKNtsLuNxDqB z%OqANlR_cNfk%fRODLeb3ymk@e#Uap7k?~lrsoqdw8SDtpvzkf>29J=?-B$>k4j!B z1iAbT%0^ZqD0$CWaskU2+pLmwlO#8b9)fg+DX5;#Ka`gTahJr3;Dr=yM-cbe3ngFW zUV!Y?E2heA$wCC>5Bg%LxXW+plu(mJVU|oo5Z57s#}J1;OL_+_B}Pc|0}jKh=6`qY zG;ClnWt{Qf#_^D?N$Lye(97ga$~uuG@Y5*wpdjIKc+tj%PxiozCMr969lfgNm)sU_ zQ7zK6g$|3T^cB!g_!z5|R7xpT`qa$n6C^$8EKL8)ZvBT;{nH`O^;OHgLM(*N&*Vpa zR2h_e7&!T}kg=uQ{5?2rCQb(9;(wRSp)h}J75vrbLa*2lpTuIgUh>_Y)Bk(7lgCvj zRxE@I8S`LT3O)uS*SC{Ykf-{pA&*EY7_ej-O)kT?gIHd=o;pXRoK%K)kjv{a1E-Zw zVc&nSAbeOV7&od3N$D+gl&FgLx_$q~mcGH9jXUAmvaHLL_#I0?35dMdKYtBgTxKug zd2V~J*zFZSPAkZAkmRP*K_i7!T*Hs`S_^a9oyn$uD22w|%D9rYq)nepp?rW24WLi> z!2Ly%G62)Z!!p_WP`X>=<$^&Xe`mao0DXr*pD5?5l(XEF@e)ueKT=_M=n_bu%$CQ? z#f1(bq5ZEj9NA3)5zhD!D}NcP?s53>9ImGuF5dm3Z-w`AoI_yZwFuC0e+vUZ=~Kls zfEuOJz;h6QUPd23(pit7j9P%8#0v2|ybf-zz43qES$W)m@ zi=3|nef-nMb<;v?awf{iLBT@eI9ij8yOy(cCV0?t?D}UM8>DvvFx@xPN zGu9g-=h@x(sfZwubLrEp0CFZ_sJAoc*qP_pHP4J1lF96bS3QptNW>IKxCrJ%1m+=m ztaBi=Kf7a9{$kkCqiF@v4>f}H2+hUW?T<7zP31Lyoo)9^t%t*8<5uf!{gmn)(q4o{ zq}hG^Sc>ce&Mm0@#eaq2eP>d>Yr*i8g5f(33_n#cP~Tet@q}hW@xVVTfLoE|qn^LO zg0zcpJZ!Llm7Ya^qNfi)l3KZ{vNANvzsGpERBA z3@>X7x903jN|~=jTiVK7mPT?ldI~F_g}Iidkyox|X=t2lS+;wG#$(}VYb+Fr=4?!u zyKP`R)|vB^FKf@aXje4S8ViNXyAsRh)3l{M ziEz%_aB0`F+<%wTJr!Nic*dzgd2Uh%w=&^tY0G&IVmXh+?V%&q)|M++@gCZ`tOhLgA13p93vdq&wn&#TN(GotU#+hYX$GY9w zwsjuYl5j{?Hf%#%$<7INb+*t)Uv?TVAVLXEQ(IDfP=6$nvBDdX887YWhM4Pf1mSqR zWqCN5@iUnzlHF6bjUuPevfIn}8pxzMwtQ~N5Su@yhP#y@hjU=xa2$iFX_jPZq^7Y* zcJJ!Dqop(My0hWPdaXv+<(y-Zf!|~m6f4Kb0?f-9ax8~NVfAG-l!~?uW9jBks(kGnX7DYtqga1hGa$B zt>LjvkL7B&BiyMB6SF?Et60w*%a77D-oX5sWgIzXi0R`|8m%UmvCJ4Hyt4#wtg7x1 zW{lOewwPL*ahev2DVyNDjEUu#>`iyHYELPX_OL_1h1S2%tDsqJ@xhv4rTn8iV9h|XQ6|-0{pZ1~c9W9;VV6-I> zS*>apT3cVu$+7hP*cJ|UMJ;n#euvzz<1}qqDCnMM>yt%Ss>;V{+S)`rmAi$uG+ zgMTgUq1nn?>+zaq-&2RkSr!WN!V6}N$7*;Pae-h*EN+2fC1!s*Z4v^GZg@9C)10qZ z>#A6X+Jwh(j?|Y07E5HMIn8F0B5I!<$9)z_gq2zLalGqzn^`~}t3KHfXHLz^cxy`S zw5a8%_IN8XGn`|&?OGCUr^jmA+Hhwq*nb-9=*d8LtR;l4`HGFA(m&>u#g=IBW%DJu zXEYg9mb)lo-d|l)3BPh?Q87T5e=z0z9;^6XRh(uKcJZ;0TUGH<&`*%(RE#K7p48VP zV2p+-cX-y5icMS9ua{v?ZAL@(^-*|O08{SmvwQgy`X$?k6_M{7dKiLPpFs68tADZn zLzH?+l`^G}bh{~6uy->>sU=J~Mu9?oS(A1kruYfvu`uNqy>`#9n8SKL7P5`wqXMsz zrS3gM32O$9hbgDinYOvkb~gG|bL-G?91nSU4Tn1(vSu>^#srvh6rrHq@n7{#Rv&kc z7zV{e$n$HtD8(@4slGw0*g>Ea+kcAz^FhjEAuVBt^|0;^Yw?Y-GPQu(%ntd}pUIeB zfJPk_RkS;kTxP3ZJu}ZyztZls8!M1)MnV45juEzJ(;dWqy?f$UouW((i$V}D3Txq3{M zQ6NvQX0Yu6oZTYn>S>pPwgGqL(I&=k6v&I+)yj_XuDk{I*U!kWolAF@4S38l%J_5Y z0Yr=f=wZ3RGaw_PKI13+*Tdel^6|p8uOn>|fW2mn-&e1n|E76F1s2qCo2T%fqCygiNp3(H&Y9G1+ z+0|P~aXR$bigA7Jeo4_&lUXh&6j12z?!8P#QTE=;Bu^bues3ltyL0V68-Lhx@fGN%wMfO8 z#PY1RYck2Fxn-L(iToUpJ1`J>c>EwzvQV0@sl+B9ocl-aJ>`FD6bmbGD z8tl)Y5!+}o_cZ^gUw?=C^H?n%^xMiG&EK@zSAy-K`k9B$`Slp`Nq#fxU*VI)qVY)i z@>qL#c}oo)j8)8-d3Xmz8TQH{s+B7|Bv&FT5oynvLD3qE63zZs;Znp;w52VV`paXn zK^YP#%gbTbAnt{afs(Tz{M^9eSV{U{|-ab^Q}( zRR4T0w6`Q$SA;ur-VV!hXXRMbM6T1AJF6m=dz;Zjm>cT6t&P2kB2)+ z{@Z0qSwy1CgMabJ@@Pw2P%W38!C9alZ zXnNnaK2`GomoiJ|MO8V|R$t{9ficcdi}4TjsS$O^-< zt!mvZtqHe;4O}aqyLcjKaV4zDXSau%Lc8&U^M>_4tn;PepdvmGF_PAnjzcB4g`>lg zmxhDk_Kw8xwNp(7ds^DthLyK6x(}012J)~9YJY|-$6klZ>F5kEiww_kh8^!(8domi zhSjuy=nO9pcMl)tQZoOd!)K~9+!~Io9)7fzhJ&qbv3Pj+Mzfk%m(Z||<6W(-;e*Pn zA;zc~-g!{o(r|EDOIv(+*RG$p(dx7&I=hCK;OU7BpZ%rbU?dcdCU~TR3B?(-c9wM! zI)7(X4ZvbdS=kH?vbv>>6O)Jy%T|29;b}_9#GO3G;bR_U-J~jUtj!j2STFp}u%E^a zWj|S;ENZcz#vP9Rbo61_Pe-d3`AB55pR9(5v7f9&m;E#@(ce6zk~!TEByNn9@1?00Y(514Y|KC-*cG5@6@db*?fBHC0)3rB``416xM~s#KKTL!0RUJlq z9vKno2x-c@+mBEjm!kyIqEc5JI^<#&3G{zKHva2S97NOQD1Ob^%lOhGk$)dMi?6-hy4D`?Q&-=h}&FZJG0d zQswC$IoA%dU@Gre73t2ko_icy;?bP_lyh0SI&+@kc1Bca?`lg#I$Cnq93oK??#}sS z9FfWk2f)p){v^Wjf17VvzPu|D$%%V;s0+%bAL8XUab3PV*4fgrqJMm;ny^SByqur^ z>h*WH)}yh|zs)-w4skfNJe=#+;~vkotStr4wfMilC$tn7Ebh=DHGvezXb4Bj=IfD$ zIJ`2D&7iW&D%!&!TkaEhJswSKNhCTWOS=-`cre};X;uArG_AW`5ltf$Av=s0<6crvc3CE00d#0)j@9)+tQI@@@~%UZ=T`PX3v4X8}(Iyek-b4ba9nZ-^vH^|UcRh=_gT`7twd#Dn_n1@b# zhhls=c?Wa%oPV5yIf71(>ffFg1?Rz>IBNP)SacA-(ao@M&0(Xk>I~yu(xrsUNOSeM zMqBO`2nOR_*)#$_$5?zYM=@`N3YO4%Ft60Z$Pv!+TH*nZb}*lv>Wv38Cm9Q&cFKk7MaDgRD+|kYDENuu`Wk9Pfxl<7$^2r)k!yV8P=wO`-n$eZ0#?8=qZd zf~G|}I)7W%kf+CD)al4v_$ypvu z*a7*}L!*#PR-m-TqDob6vgUd%VFZe3Cf0)j$$tTvNIl0=g`X|3VTM9_(g!NTFoyTWnR2{j30o$cJ>?8vL0 z4Wi)uD&bj5P^QYSx;#HK+0YjwgbV7|~@G zo`255kv2P@YMn!HUKT0kB7{^|Wtv6|lc^_Z+R&ovwuwa5rBSMBElbroIoUn|ta1uZ zpEaSrtYjYt<02lPI#_9RhLglbPPUo7o7eD%mLE5CIhsMW1@hq#W?GJs%xiGyHCYW#&`*u~T(#rfRXOy7r)| zBWP3XJGg597wuk8l98-x8D)xR6aAXafY100%v0erPQvft#Zoe_*}96%fiF7%^nYLP zwsO4H3e8qufbV-VPQ*8H;tXX(x(@+dNCVCiD!AQ=jF-(VZuJu_y|siY_OU+I<`>^! z7x0T|wSOCY#!SeMGzRkU%Ma3z8Z(7~A^f06U3iU|Dr$ruQd?GvAT}$VpMWuwX1P@Z z@ELwnevmFw)w&J8)L&uDlsR?$Re$FGit$$kTX{I$lF_;~bEE(C4^oqJ7CN zFfpsZe7C@Er@&0vZ%Ya|X;-UBYQ)u`FSr2K!6$1Upksj<(}yH`A$_#({|0^DuC0_2 z-Py~sGq^HRdDQGv@V9b;|$-%c5_}iAE->>q9Df-QX+|ymDT&*fE4}aGj-%Xq2 z*OuR&QH5j%!)j!!LYCoF0`#4<@~-gksL%v@{^>1(|9r@ZD(3M6VpPG8Y4EeBEnQ`X zA+O|@T8_t=bXyl=(7bLXm0N4PwTu4l=`UL-YoU(iKk^q~1I)*anR0cP<*Ya|nhgD> zky_3cZ81CMn|i0S7=pR6!+-uQ27Yc`kQB_7bhc1}BP&hwv_wnJJg3~5)>K}}6%>{& zZ%M@3Be_?x(5zg0uyDFuOCJGG+_rqnwPl3_=33anrOTJL#KW^s&9&MQ8rB^NFUKD3 zk=gkj0pHshajrvE`~+Hs4q*Z1c(mNgT$Gmo@7cd)=m49LCJuCXZhx1$0++{BVH+PF zrr2g=^Pk+0Z2psxZ5gEKHR_$P)e%IqEt?`}S}YpwXo)KWiM6p=w1vfBzn zNKb%@-c(v@o$+v|vPAM|3RZ<+sy^beHp}jZoVSjMQz+aXA=c}BT0Q`sFGdWEW*X!s zwMZ~!WEDwdva(F-7=P~1336vz#4X1*(gLWXGqSoR5q99RZzvYXw^3I0!DxJ)w$&Bm z?77tDX!6aLM-(DHM$;7I*c!~3EL*ChG|jpW*zj1*HRc+peyV7AI^MesDEjZXeivxgOp{4b*xj8 zpdM|_mzn~SD^%8S6hinNa=&Ovlx34;eX^*f6m$IHXv!@5bC|W(_(LkiSPc(Tim?)1 zEs`t)EJDD64DV)Wn)79;!SIVsSYH-c!_u5)GsP^WnB&P}h}bq+$8&3BY_cp9EjGlN zQ&T!2qZD&oHh(p*=Gh$%4ZpILVrbtMKFB8PI8AE{^XRY#GI7WNR=tcN;WSb&PFe_M z{ysyOAM1;iNs(SI4`RTwu5pY(bjV{pL?z9XWft^33^TIQA&)yHB8EU;D&IXsD?c7m zCMe%IM46vBWg1j;6J_tS3&X6ObjXu#IrevgeESe>J%7bA#weJwtVcPT3@GcEcaobO zH!UYJs(~p!Ww&)J?a0Kt-YyE5@_E_LM88Em9_V$good!wlV=pj2?hE47A=Aw=VKAW zIL+&tUox9UDCVo*!+iLznx6dyI@gzx-3Y>@i=0O2q5byX2=o>E=_WYj{8fIQRf#** z-$v+Xy?>9!T5N!yT_``|0j$9?EJ5(98>~P zHvoA}r)^+^VaVUc)xpQ4%`tkgGa&Ddi}L%LST)R75y1Fkol$Epx4>Fl=w%1=DVoQ# zXgi6G+s7PCY~+U7AE7Kg8csxV#_e6y#`=*fMnvI3ICr@%(S%%^wg72qE00H_%iF@s z+J7R;SL7@pCVh}=M=X1Uw8ZLgG!*MBAFl0D9*V~Kzila>I{-)Kzre9}SRM<7mv$XF z>bo=&|5yB|*xlt$j3_)M*Gc#nq`1^s&9(X5$xzEZM2<)D2u0QI(h=`D0s_LVXREuA ztje7NclJvp5o^hHVDTfM!Q2j_;RLbr@P8pi>g3$V!}Q=oB!Lnf-cS6kYg$(%nwV9g z{18|!zr&r1_bg=BMwQ_SJz~UStGZMbTQF(6hcGgBHY2nlmNg@?2@v-qn*bT%;y#oB zWnDFd4CHp(F{<-4ZB0ugvAi>8fsm&_Q+)V53sYqcV!e?Th15~_)j>p#>2wkijeobc zMJV@mFgQxoETKfn&1!6tw*H}$k5sNva z;?L|p);i-DhLq=%Xh?)Rm$g{El7E!TcrVGLu&|Z=P%%QS3#k@G4j!#(!Pe!m;PP0) zvCYynjVW16VY?+@81&Zcb+f;Q%(QaYU^`_{-MI}>x|c!L!!kETub59!={Csl^^r*G?mpED?=#AJn{) zXqRzMZgz)i>knzzN?~2Q9!Hz?GdpWVES^v^%8S6+_d`IBh7)a(=&DQ_PsqWeiG~y0 z>M={h#=3cz$FjdI#)=Z5cYj)vU;d7CIH1Mb!eMpwkSSvm|11&f%m^QO8e7)1#-i%t z=2u&!Ju)Oe9*%}M;0(aLv|_ERs7~bYaGa#ZbRI0xY?fNYQJU7)Lfc7) zEi@EHA}<7wPGamGXn(OS6vn}v?NLUs=uXw5~?-iRoFVTMGZB$4Irn!8U($1eqIG29^TTUpV-pJPD{!=&3|}9hRKdNTssA?cV=Cf6nxB4BO-lXQxWz#~(O`d@P!p@SRO576#R`m}OT7Wfjg?^>bOaX)Q_4!J^Kz_~h*EK?rQ6Q|2DRooR9LfK%- zBk7p?t9l9o7pN%YGwaZR6dLZpEXcG{$bWyuoPVb%9h3%$-i-#VlaZwe;0$BD6fU+R zC#<2{=<$$ImgC)1S-JE#KVRiS?n+npS^puKS+0HVa^0q@J%yd1ygRqA|Bv8Ba3g+1{huPby;3ndRw4*}_WKk_$l9A+!`DB%ZGVS`ueMu$^$N^~ zia2$xhYqH7$lp`%aMe9@KBk*8kbkPi#qiC!3Ud%xfzQHgo~%Oeco`}t0D2GSbO#{G z%<=e(+uyTRf1LF7X-0vW20!L=?F4n~?_(_r-}H~+<1C-cty~PRj9BmxzDxBp2GJ;k zkJIdjNWY9I<$av2KY2zud?-;`Z?d{xdSlpOjF2K{1j$zN=*Knb^x41a1>2*Zaj zI#QkB>$9$7H7a*jz)0T z&^`7;D#mKyMwrLKKMySk!ixsX=bc=F2Hd*H$fMP_&nSnqR~mUzSW4xma=EMr+^-yK zqf%%qxrE`9PG)Eiy~K+3;D1K|dIM9W=XU62bj3YFQ%=B}|L%_R_w?uvKVDF-+48LX z{!Bh2lRb@xVSWPv+y$S~T}!|RhN-w0e(2YE*oQvxgHzC81R*bI3)KBtE_X9btE3h} zq(>;~2iz8C%CfDwb&&Y#> zb{OR_Wnzez;y8K>yMJNhe6I3k3lZchdlwsd5-d`oK78DS-JrOL5&4O%l^9iWPkJGO z470Ab#fw^%Q6*nb^BOFd-)P-xad@-nbqC%mA>yQVM zn<-qJ$g*2JYC9NpqSv9psM3A%eu_cr$78%vZpstd>$>BHP+zLZEu&n%&yZ$Z$c<@h zCEwHBrEGSJ9e-{qcRK~jpOPOW3(;sme(niD%*F7UvSyErsgrb*tZ5Rn)RZ+l zWK6fZf2rLWC7H-)=Sw^SYY^n{Av!m`^wmpVRqgpR(7<4E;;B-nlgA~X!s4uASZXxL z>LN(~p)ytMoc0(32=j^T4I{vNGxz|4oW7?uMt^K?l4rC!k&qFT|4ys1|6D6AfnUCt z4$Bi-DPuT@lpH?9^rr&|Q zrGHhR!B_%Q29kpuhg_j=HI~SS$!deY7aL1peL!yX)Y%n_oPQx7u>pLR8pNgj^4TU# zqn5fgGaJ)Q2;kEOPkniT(6GjDXyeen6!OZ$7!x`7(HK{($heJfM^&e007NA*u&iynhE? z&d4?C2Z#yCLuvW|o-dDUr2pliG@n<#2J*OOYa6`lDK&y}6@&P3vIev$-%a?8Amqw) z5dsGOf9(BxcvRK(KaQU{YxBw>iWeYaP)T3{ChBlW)CrnsCSaljHCP9c5hj5N5QGGi z013&=M6d>1u!0II)&?tRp%pJ!Z+}&>-q2QU)p}{Q;-%uPUaF!dYJSgapUVV9i@y7L zp5GteRx;=8voCA!z4qE`uiGYZ#7x$EQ8J5}zA{$W?OdF^LvsKD?ADfUD5Tph;+mF! z7`c*DCJQ3p8eFSCBz=>L%0)?XWfL{Xjk;)WkmX^!Cdg~XRH9p=MXWMeTz^B?12Nx1 zAm?-$SSfQNn4+f3`|)DVy*y$Tsp)c0e5Hb1WtI`^cE*cI-d;qM0gfpFk_!r?e;J~B z!SF^aYa()BJ)~>+i?5QUwj}aM&E#!g9beZb^3b95tMtuR)8&#xMCLAo999WGSM4W8 zC-c3ZXptdhh)Puik`>b{;eUPKQZ-#ZbXG#lTNRg?WfRqO`5+!q;ES3rmnW7f$g93w zxiVR7*H_N*Uux#^mdcJ~gndm!rt9wIOKur>QI4FLE8`;=2fs|a194fK%y3D0)gd17 zeM`9OH0pcRHlhL+cl)5t@gIcHoKnpM^577{t=#Pq+I$&8ve+|#*?%_3tL$wVm>wsC zJ{|#W<Mkt^d_3i2;A7h=-B-jZawm_)c$@hnY~0?q~$X20Gxr>dx|<0rnpY8Igg zk}M`q<^?k9Jk)FTYu$w)G4t{SQG1Gq^?}|flv)G<@TNRK{_R`JVyiiz@^4?WA`2>4 zYB`gQ%imQ4OTXi*D}UkTc<$wM+cF)P2GGx?v5;)%a0I}3K)1kV@wt=m?pr@jLkOpu z2itsM$zZSObw18WkTHj>t$L>qK-QWslWM#ke}HelH0#s=`A0k}2La~8id4R4J0EY_ zlV6&ZYJmJRp2bWmR}HYFwR|-;*k`fLE|=1NnAiBtcH_KJ3x5`GR;$JMIZe0$!S?I* znc_8`QzZVeTekCXuk3?%S+-TTG6m4fkk{i`@=G&ccEu_@yD(6!^pYqfINCq!$Z6vpQB%+dx*X%9T9Y+K z|01cO`jX^RlRiu4=AD2>GIvXG0#3zfgw!&hC7Tj0towOi{zQ%Gq3(O|E`q}_QZp76 zC`3iG!>!PaD+oUtaU}xywVj{%xi{Lht|!yf>7*U-~`L5=R& zmPD}{pzk6b3BMMoMZ$vVkOgQQh#U3Er~1+zC7)liq!~AkYog+o?&lSsk3B7g3;Rt$S1!0H4TbFAO2wRI&AAT z@`cG)i16mi1T)HuQWus>`bV%>i!3RZKHJGZt1*x@iE>2oCdca{GbRni)9FYi3)x~W zq%{J+#EKz@)}aH|i3qDo7AkfNUFa6V3Tcc$e1Ex+1PhsE(q|2LYU+TPod~N#AwN$Q zyu>ZI-wL@Pf)O|m{!=7L)U|q{o_XJ*XX;mRCsDmt-gb`Sv#>h`KC{};={6e!# z;(yBsfjLzAbV+>KMPd~}njaX)iwx6x_|-g2lKNIYUl+xwTR}Pb2wbHqWtpx^58^kz zvY+aT4)6Nuc_K?8aaLkxe*ROK!(@rB0oxJAT!c=*0(GeDif6f_d9hjcGhI6Oi}Tv? z;5dZL%&&gNf(yxvrcM1BWZ?slv@-p0GJog(Clo4JwAl=RhocUjHS2iRv>xHoEnR8G z9C|v+!|6+8VEP7xL5Y|pM{Fmn6qK2q)=V$ByD{3!|DeA6GYpGz?$;53dE^&5>YgR< z#@FtRuBib>slHZ!(z#-r<_-lpG--W+r}c*pxt?`}w zdD`S5j55O)5GvFAFRTuPU{;c4vVUY!4I}cQ0-4r3F1g(n^oH`UPMH7uP%t0alwu)- zaVH^!7sw$Dqo5R|*g^MLSXJm1=C=MG=OKz(EjTcP6z1^wT*Y($;iSnTw6tYfH9L5l zPtv(cf||jF*9Eicpi~zVac8Go$%``IDf2FkYtVi znav-b$jqP&??M#$sD&gRAV@LRl;}nj?~(ruXbM%U31$u_;t~G26;a%VsH%pnZX^9^ zN096AU0G47cYqLh7IUF(#6e)+u19N?s+Q~9^pL9ovPCLgY&S~0 zQTwf;{$&-OzpHAwv5jH@sxbyY{w8IrT5f8ivLvbo$O}?w z9%?V7ZKS@O(uIAm;jOOh++#uVirk! zGlnaR7a>zUqXuyIq?*ugZ=|o07nz8tnMV|`R!Lh8LUM4~bg5r?60YPVUg0ARjH-UH zDvNd|Wv zqgiT=ALo6}6)-}kb-R36`)S^&e41^CPGeabKoTJ0#6iEJ>ds@Z%8H)u{LD3|5|iABXo6{!eni z%#dR#{XGP7Pv5C3Lmpi;iO@~YK!_5xVUz`TAf$%Kv^!LW40}c$0y89c^(74wPzoq* zylGiWXkqn7l;!SOM829Vn>n0gG#_ESk1*TWqP;U@s4iMv!|i`^2oENIu}f}pO4h7TRU zx2T$1C9^Upy>#!G?+kl`@scqx{k_SEYS7O>R1JYSRl?m^#a`vEfgjY0imwiSj?+23 zwIv4?#9~Z5nwNj%FQ+?phVCGTZE_77Rfc2@!E5kj_}S-pExyGT5v~IHTr->U)_>SW z4XDaO)I5d*9pyFW4hwuPX;|?t=aoB-c@E#qP9L`v^H^Ebji`A7d8SpeFvFZ{BVS3x zYx6=1I=`b$wpDKRxCbC&%Sg?W))QYY}S@N51JeZ{{e+|kSu?l@6%>=%$^ z3j!)&$>YBJRfhaNu~`M=abLcEj&QOw?C*c^y{s~1OJW%}NU!@dyzXDGyFUeHwr*$W zE?y{aedd3dYuuhg+ec1dQQS%Sx7q}TwO(=ioVHK>uaQC^O1sy-dC`8TEyYZR~ z;!(nE)1w>bh<2!cFq5*=*W=Lp3`?#_)Tn;4)0c}5HxY7`jvj1flHOG_9!0>qc6!q> zkn)+BTQ=JeysKNBaT~f{zKoWJJ{= z@|-kl=F6TGOMcr%ZqgjOiU#w^9U}%@M=hqYCJPXP9?EB{EMSU<%z^( zNKC40C>#%Nl8QW>$9(}oTArvu@=bp{Pi4r3X8z6gA!Zz+=7lB^EHDALA&4Ez5&cDS z=6O{YJiL5aqDqTKst~QVB%Vd#j--(nwlc{89OmSIy=vOS%P;csaxh@|5#|9(1{cYh zd2(n>W=Hrp8JQ-7bLC9^;wEXmMFqlgL=V3V*h+-~`EX4$wx*hSefdvah}eIMMFmd` zVNox$+>u)$O{7vhJDEqy0i@je`Dkh87-h?hZqneQW27x|d+u~;i$G+nW|V^3kSSnw zN?YVM@#RZG2S}kPVhgzlGt`r^vC2+*Xw$82B^a!Ps?m_@Pvz<32-1LnNbs0us;w_! z>k6%Vq_x~#vPQdC4Nu1F)KGuf8gH?gfIpdAOW|jA|BipGhROsQ6b|QmOTEgFkIWdK ze-YoTGUNqQa}vWUWkvzyh#|0~CXXx|rNkSt0p@T@Bg|Z?Lfqp`kmWDs@swbGVp1AR zE3f;QL-m)Rxu15KMa+6hJOdRfLq0dl7?Fq~mJlSdS(4?bKnpg&Z)Shm`)vDCuU}X2 z*eS#A=lD*W4_CR-qMNF7=&@mIubmb6@Hj?i?* zlC~C+GHJ^bDKkfW$!vdQq@pr!Wsa`bmN=e4A=PIH;7*d|#9ID6xD!!nSte;^Vy=-3 z%H@DENZWeCMSCQgm#pULs7Mm)@f1Sld0motToxBY`sE{d%cmnw0*%PVf36#m=(64; zoW0x|qUV&|4QFTB4X)k|{ze3%RCW)4OX}*jA z&3x8S#>8!DxV&q0!H0JTl=x<2QC?KPdC@_w!uc}0}SvLB%!jhK~$0k$m|@SUN|U!*%V&`7Qfp*Uo?H<5NtH^IcU!Ym zhFqc6P_g}XD;;_>AnR0-N|T+fS*08#$W>~M-enufZF0M9lta28^EV@k^Eo7w#iUTf zoIoO6D{UW(#00SjrfHRQ2<9;I%3;L0`KI$e3b|AvqeOw+u^`r{{A_ zR@-~Vu7z1T-5eq-(!2D6`*7hM>JYgyy@!i$;bxGMoy?U=o17@j;hz)Vj$Nv0PC(Ks zuIzD}4&eMtxgAZlfefi;#d znWc!z+lhY~S?gP2$^I*(@o_L|ze;I(T%TN5Y2rLuLu<(s7I$N}7h4y5y?Dy9dvWt( z_TqVqy|`oXcl4qiQA|eEJn9QP3BP=qXrUw;(-A#J(qghCGObG9HMUA;vRjr!a5Dn9 z5YeZ^w^d#=^2MAgS0wYQr^$OpOs+`QAclavWmJF4)yZx#V-nwtQg)7lz167rQeHK- zLhed-%U~MQbINWePhX1Y>(d{;*xPEXTV+7+457VbXe@Rnoi*$&!;J6CV9Cg>V#X}_ zBvCADeKBc?;A)JM&Sbf~s^>1x`Hc{0GCH>>iIkd~wBCZ5w+jJvh$PBYhWKLU5P8bz zlB<7`n`PiuP^+#xw|w`G?Yyx5!X@&gk;{yb!?r?V<&Ys;t4OXhH}UU6+8>eqqm04K z;faNUzFKpWPlk2Lw1^Cg$+QTipHaN%U_+c+I$5)UWuRCb($Xz;+?u(x%@f>OqBcX{ zKOZu$Tc#D0j?#9`Zefd0#&pRU5g8McGg5yoSW;QfMZBx^aeJ%0L^YFbO_NVrAK;>1 zsbYwlg_7td-<>A^X)R##FPN;-yxRWbZk6e|E$WH42uT4gH z;t5#CRKb$Fl51g(X2659oGs@DkG9>|hcfLTV^@So;9SB@{5OKwS**EU?{XNQKmy-Z2+Qq+9cBzBp*47N7 zp~~RJtTozjxsMI;wwt`tSM?z^zOP#wii8PEtrojQVXpG&y6U>kW9?$uo4sP!5GZw! z+}lbq$ir%dyPLPWd43}Mvt}{x2W5YDlz4TZstS!LtVWdNIxs;WUrdI@um(?m`1wNI zLM7rd(5R>u7VU$$J(xKpw5vD=x6y}Y_X75TkSr!OdB0IndEB5iQAqtn?o1XVprW$f z$W=dq+>?wDjgim4>C{fLnAOA?let9h3N+$S@0X013Q!C=K=^nV-+mg>qTwsZ^oxBr3BZ zBWVQm6UbS*+$>!#cN0_2)a6FAoTq*M3FLIPcD&QtgaU2hc>-z?l}C&sqW`n{VA3e% zAG_;y$KB4F{)uD`Om9?CX}d$6c9K4EYM`a8w_2g(9xwX}>g<0hn3&9!%;=?D7UmF& z>@3=_1tCi`id)3+4In>j=8y~eC7G0D3;gY9l(=WH(s{2_d4U{3nl~0D2;dfk@C$?x za8(<|AG~a%NlSz3Y>5`D0?5!Z_|@5v>5~vv&CURx4LPfvU$b+Ww%;ansI$$Z<;-p- z4$D_(%QRhjST28scbH}7+vLu;&ufQr&~>_@-zRn6C%9@^^&Rw7V!e8@ytW=UbYthQ z->tDf8EkEO!=Ubh-4-2ONJ0N@Wa*cbFRHZq#adH6v{Tox~;M(0B_=6;7<7N_>-JwkLOg~h8}`0~C$tvVKF zw!Esk5LJbc-?!4PF`!E2Xo^}yD>xbI7E=mGAdm$b_tMHa%7ZW%po#ttT56X|MRha% zMj|%!W8@{n0l&2ywPu#YyP4tl$(447qvcP`pbCG@(K4Z1mD(1?S_W3-^z@ghp33X- zk5xbUmG0;cyQ9DA-O(NKwFuiC&HaMiEs&d%o=4oaC%kF@kd8)VCSIgckQNkeG{}2_ zWPnGE5W*$d2ys9T>{6w2LA|y|48i)1G*cg&>GBvm{^V8qy7s3C!kS#FH`ow`twZD? zvnzi!6%WN}S=&$UH@B)%dC=~|{pOlfjtBK*Ss?^ql`fQK&*v}uNw1~n46d8I3Et=x z#K?M=&b7OlrjReuVg#y7c>J#BB1o2_5kXh#up^awz-Zs=O@`}bO9t=km3sqEdVu;eXKuv+1M^ntG_$&DmWwc|O+)l6tLzaI` z(#me>lP_soA$6M(l7sJu)Ne*mQLZ$Kk{nI+dEmf0R&i#r8X}|X)D$^0izY8oSed2V z@Ln}?`F(wo^4Uh}f*{B6fUPSS##4Z<;4D@UUwP=OSI;7{^w*|!{2|P77sf%6JKjFZU|=Sm*aJEhh}x7?gyF{k|XIt zfZ}NI$T1NCHAE_l)f5@G6Cs(i-eu&CzdN`#MII%tsi>UUYrmWV8NJ(nS(VD)P0f}% z5Hk4==F8j4DVeAalyC;OL%kS6YKr8Pae*GbtCZXxILJ}vKW`a2RMb34{DglrKzU45 zucqMf{5&Zyr-{RSydLF=#adTKQMzq2+G~L09AJ|J9M8fkw$(sB-=c8zGs<;_n6+Q9 zs=!jx04>=Gu!&PSb5V?&t)g;F8DTZEq@vqhVcY)c4b9hjXbzNTjr$S8MEEg6O_7_D z#ctm0SDn0ha=(uvtNUO@w8DRhc5$^ZkJv@)oDlrO9ya}7Tsq<;Ez%*C7hf4QBEu2> zl|Deez_~q)QtL26)-FhLJqMO~=qG^~eLJSp3S@-lOepTN<`OUIUt#8GVQ7}rb(=-@ z4x9ak2irEi!>&r%IJBp}X)g`xSlbcSe%XbpzjV>#MjZuNK)D~?3!{H3Pp;CA{?B%9D4ETxMUJBz^X)Jjf?TnY0wsx30f@kSJDpa1XZ5=GS$u}ZU(2F5AAkV>vqCUJ133DN${(Se2^`PEL7lh=uq>2^i3s3rpFLa z7y0CtL=EQRSSs*n6(WC$JTzi5f-j>2^fd{pJSriF;51#;orz*e)?<~P+ad0Z8*h1| z`kqg7ZQAUB=Q%pHbMW4BVcxA%zqLCxSoN1T-3(5rzOg&CEXiFw$WC?mIC!eR{7aAA zHO|P5(IcnjhOfDG?AFMwsYYIPGdPVb^XVD-#x@jj8lkC_pKE{Qk|gaU^JwY0RF7FD z&zq2owIKX;1d*_Z`!j>a)0b+)&^-CXC_0)hldpHNv;U_5?My_DY z8g!_0VFskKn`g{}OA*MG#N+%H;0~FI5WgQKXY20+9M1!@bk|(R!!rl9;;WRF2e1ZF zeGuG;RT!+b<^g}KLkQ-lJnl>4<9ul;hxj^C%KEdNwvUqPZuq5d4=4qabn>o#N?sdj zu{zMOT@~N=x^XP$SaOOW=dDLT3TVox58qQL*pU(UBS`*FwD|aVNS{i*!v*+kR%&cJ z{!9dMHstj3Dj8k|nL5eo*S`@2{X}x;+GQP%pf&=Th|qshh~g>q9POeSgdcv)Mo?y# z%c0HY;h)R=Jn}PgXmc6$21!UWcf1M&aILLVwPem(m;c}Pfzz8z`40)2ZcT6Chxbfy zXRhi)FVp7^ncrCQc z{U%v}QxShagV)kWUQ4Te1Jh{%Ero1|CLcLoL#Os`=T-#K0sm>2V}Tr#tD6ae3)>#D z9LRXxio3mKf9$n!iOCt{DhU`{*XZYB zW`EwSLy#5xCSI;G<#`<$fUa09z0oQCl1X&gs7t?O-mjL(M!WP&bO&SUjd5aiNM*`P zX4&Z^v`fnA2^n+;r2R_|@(&!y61%xK z6E*gY6-1(iS+bGtjBnCxKDAyU8+}E3`}0FyN~G|Ql1YZm$f5rob+G}+CmP({f%;pb zpj58*73m9Pz7v#}66-z8u5&2kL|uQgyqUN|*7=IqI<=7@Jwl`qgg~zVxx!bp8*HqB z0@I27QsS=AlCQk+UuV1h=oKngYaypa(kX8loe0Y{$(B8lT}S1StCHn-Pu?&*B(M6~ ztMk_~kYL@C;1*!7alb6glfV1Q#OjpAH5iK^jzkdEP8WEvyU}|Nq7DK4g5!U@Xg!I` zCTYo|99R~&$cA1K2kNvf65V)%@;6_Rmn#ne*J`o-8xJh%tJguUP87&aUo(PoRf04@ z-exQY$TbQ2W8?@URLCd3=J7N?(d_W)sL;c!)xT#TR1Uc)(W3cTA`G_z3e+ero~T1l z1<>j)(rrCn`+pW*Rt|gf-I0Gve~y~($q0-+>l&9>No_* z$3b2*2z-*;{#J^aqm(|&3yIA{ymySHkTuB+9yVdgjlQKg88gWk-m1;O&Ok+yOZ{=7 zhs8xcOYUlG!CWRiD*2iv{CyjpJu~HT$<^<7w&kG#bi*n{uv2BqAEkd%f4HxWl9NKx z6j<`0Otm@C``WrCxso+LB5SxJUrN-Y&EW=kLUBp*4L<6aUP^Ssl1GjFkw+s4x($tB zN1ie2snBO>t{uAM%f!b{CY}ihO?P6FopOJXoAM>`ge5QW6)BM~ zNXYow!3@$`40)`LE?x4VY?23QLMHb}E@XQfNiIDxD#j7z?~?n664Il35VXdki3&hU zUbc`sJ&kf>bFe(p){T)kMvrn33>-mYvU~(+YC(C`t&)oXRi>*XnSn+G+*vjHI)i_x zWc6A$*{S5A1Ji%?iEf0-lvQRO0`wR9AYP7ajJHiAt}u(3_Fg$jKA2Tq$kvs6Ch-w!@&%&i7-GhtqJGA}F2n19NGOHLJ>QGpc$+!|U zD0#=L*)26#tbvqGbEl?FG3HV+HKYdt>p1*OTc!qJp2~mWv&IqU;}Q2vR<*y=@?aS- z(C*+pz7+_n!SYBVi&J-3pxs1cO8FT-lri~kgtxn@pjv6cvCkjl{ zCQI8=jU4U_0aqi9mQRBpSG$HgCH*{L{;h?OV`(TKq(qCcDag$0nDLrh??D9?!}b}U ziwb;5FROnOX;wOn^Ycfe3>|7PED1&6*T$E!q}(yekmLjK<039hKY0khyE>~5^dR_> z{5~6}YoB#C%;KI@zU+gXd;=k42lAALd-OQ#AUT)%s9hwtshJ5iP`VPun1L{zDLAGp zbOvr>nrYV=%0a1gsa?a*v=w2m43MQs@~eY*1c!g0mGo#z&f)Go@B<+qBnmJzmG44d zitG2dTIPFy_k7EG<*Vev;y>nlH#L*(2fO{2_w@{gK~1g|M)cfKk}R(pUQQ*m_?Aw4 z@I*<}!{YgpV$L@Z`p*g01t*_kj`;jRM$|D6>pqhzO<$RL)Yq4nj~mAYM#BJilgl3H zwe^2Z@3t5-D}cc1zku~H0!<~>pU0hCedXrq)VY~g`M#N6Ju`A<D-ic4tfV1_jI z)5=JeJZ@Inh*>hoYhs0OAVPRiWlAvzX}6(2Ju5Yu`Q#+&)y3i2W8m*ircgdr^D4V$ zqOZ!7qB63d9M-c6RHg*>ws;0gNdf%cf$V=!56J6mu?fwtBU;Vboc{97@pVC3iZ6#Xlo#KP1pOx~pgoEv(;2k27!}yayb+q3Md^Y9>q!K6fU``9CUfS^ zN(7~?Tx7c?*eXkkO9Z*x3#(9TuJEy{CB@RGOn3D|M6E~9!+7}dD9^>TLX>~T8cyMC zN-v+|6Bs;^^;?u;P=nWq4HC<67g6VMZ?Ii~fkkf+O|B(Tqg_LEmn%6Yq~1-O1R_s< z55H`_9M;j_>UJ?%ms|Awgl(se6Pa?m1|g)8cLQC?9hq%at^-CyGN`zew5gcJc^ZrG z$<@}aCs$3k4ldC~?X;SwlskVDvQ20z8$!q`R1wG{ZN-|no;VR<6|p4QqB7U0i2l72 z<5Ywr83om!)>w2{qR1#wnikS7@I$FCp|$8xef&0ysN^KyxExV+804oCqf^@pZ0pOm zV!Viev}Nf+i3qJ9qX<#-n_h+mWQZsM|0SYYuO{hra^_kO#gFm2dm?`oUaPRm+tX8@ zK5^tx7OB9s+87{kD#U!5rW}2qDJ?!lT8c?K?nyq23Yzu)(deOd@gxMa>^ek9PcHil z^H6CWkw=WFYM}f&nPumH)@Ww_a`=1aAJ6>PC5u%={$WhzW>11j75;go77|0i8r%Rf zL)M|XXh_H5p?O9Ktq6ZjL;O%!TafAQ20KQ2{nb_n5GkU0715UReDe&l6TIfpwyAW? zoT^59#n#%y6Cu5>sL9kU>KJOU2%WuGM<5ZN4|t@Yn_Ge`0B6w3K!ExMn8yK2&fy+LH-0ci5*NC44_C)>F2lTT{ymNTGP9(in>L-l^=JG_S`C@VhIe^8~L= z#?@O#krtvbkKUzmBx?P19GXx%{ya=aP(|f=BSuTZEjoV^4q-9FJ^TRqi?In6+J|By zg3NPMl1qrz1XdyZwhJ_a<2{bX3=VI|9p0*94~Dho!1PA;Tl+myC(Yxdo6$JQ%ecw$ zO|cFpw8Ov9?1^oSVIIcur3Q05dp&Fya}1XHZc?j*>L3=)qh>7QiGndTD9nC?L%RVX z+jU)b(*J*5^QaVP$r@jgmYjvmjrFKK6;1cv|>4a>B+>$Z0CtE$1wXxE|4mu8RCI$;@@~@s zn?`WXhfHofWvyQ{?z4L!-Mnl2ECZaV^6U`nruuy4s!yz1#1BuYjOKk zo-lv5!;fgG7>1!*OFHNW`w#+> z-Xqoul+c82872L(6y*{#kJdA2iCQD^$TT{zFr=zAVL74_S}7+jt%^w^^01UF zlarQ$VN$9P8Z$~->rcgU1jk=WYc1=smFIuv(eketW&v$v9a5ZK;o;arDL6EctC&r zwh#5%VOV;@qsq-1#^^KJ>l=;Z5FkqKiZgV!MoCM4W;UyS@_9TN6bQLZ)?Q%RMuk#rqgB0Dq=^ZxtQ$CgT|2F>`7Rq;S@B0oOOTDx*aEB z98M+$moJQ%R?G30JKn8F`;Rm#aVH_H$#@R@H?WHrOj2obP%b)DmN`P|8OSoA(xhJ< z9#UDdzzgJ+9iD0Me=1AH(w}^27*T!2-$6a9zYHIO3N;imf%c`t8L2~Mm1v{7unrY! zhpC`p13e@u%L&0+&Xt~6=3;-^j>%pNf3*2L*4SFF+mZdY_il#%{P*f+(m+|e%90Jq zV(HTiOIjELtlOZVH4PG*gaG?_L$a9sen2ZHWC@io8#FHc1|e?Dr(naWM8Q@M^Q)#f z@SGt-v=}V}>vU)Ic%CH6@t5Mh#Z$CaItZ&!nmjYEl5@QpXx6EQ(vN>Gq|SiMd{*_B z=l7hv)izJYQkSyLGk zBNuxz{HEBscBFFcWIN=;$~CZKS3t_jRRLsrG0jU^KBW4|PJ`ygh1A2Sevr2ftvsAU z&dC-WCK(Ik7w%}3RC!>0?KW_$J+e<5D)YvEIq$DBeg>ZOT{-4}H~`MpV2oN?RyuGG<(;g!9iw~{0~mA+9}Cj*p)>2HdV zzM|3SYqqEIJWIWkY1u>CnM(f~cbGy1F2wN&6mo+JQ_P^s>`2-{G0PzF`a+(xd|S(T z#?)d{ZYC6G59fb5mZ6mn`y6qy-&wneKw-3M$3AD%EQxuY=(ZaSzQtMKQNy~4ho6I} z-=Bbhm37MUl8dy?FggJNbMUUSG21;Yw%2&oELQ{5*PVcn3PXBYUqP6cDX2;nmY&uE z?&6&J9;u{=cS`Tp+TGUTduc6mR|yzrWkbsPGkdnzrX7EtCJb|Mk857pp8EQ0)hh;f zXDXdStyFC8RQhH{5h+CANRGVT+WlPj@sbk}a7QZBA9@!yYQ4tp>z$sRN`FrE(mRx-(*LFgB4j$j1FBN#&-YGm zPo=-;0QY~egSmH4Fr7;rjJX~VU7Tv3v8NEnDR`*m+Y1!GGH_lgQI&(`h|RX8ieA!Z zAc8JDJ5uSFG99Z@^J1LuHMgD)LG%XLa;VFZm88CI;n%SUsQ@hbYn)yIR;KDFH=AXr zxksEGsqFVK`|g!x&-0pkj9=Z#?v5`*2%o8b@@Rjry0)cqKhNAY>F8|z7U{UA4@pN8 z@4;}wsb|mk8hV9A3C85p+^<#c*XeSY)@FoJst%N+8DoahNuH=^VL2TVo-|ndw^ zgZ+OUsr*L|On*`hmA?0@>9Q!|xQqYM=pwPqqLhU&9ng%Z)D%Dl4}r{ig>K{Nf9r?N^EsvM-ZGYX7rieOFF7q)~>W5nYP4#LB z@j`W={M_w6MyToXae_vk>m*J~acSL2aZrC^Cu;SUOb-udi|f3=8;1OW>5Y;_F^yDt zF5^an_x*3w)X-!q5y-X-7SApC4S|jOp-QzVXWr*!3Kt?qWz#Y;G%y8 zG=sXT=~C9h)FXLX9sp&E!f?a=*!*gK{l~^|+l*8(DM`q}b46dBPGBwouvLn2m z`bbU3{t5t(hOOkh31I4#O z62($m4>@!VqEqnzLe>|h4|{3q zZqf0QXl0p0u?T%Mrdx7}FIVNru0(_phJD-h^RxOn9~%*1-p>*>_UJD2xuZ)ZOj6Gm zorx7qe&f@+nP$pSNSA1Z8$w9>Hn$-v3#gRIbivz^bij+s!CXG4ouy4E z0xF7-dj~^yyO(DGiQfr4ozd7!AJ`_GjK3lPKQHp(L1HdK*1N^c$&!Ck#`+D=TQr0- z5X6m>5t^ZOzNf=4OIol&TD)QEywGdoXnjm+#Lu|J4@W=+7@Cp#4qEm9T}Q&rLC6}7 zHiT6`t~V>Ws$PlLBWxX1Vm(}fLYzQ$pEP`N2EP!T>w8$ zbxBtHMPAcSl1S2>tW=A>cWZly&D>`H)XV)m+a8OMH5?^eI&>#F4xy0~k8faDx&U&C zv+;8GBw$?Z6@86GaU!1Mm|g+tQzlFD$o)&7PFmjb3MYysLuh|Og*irhW#?lTg2Ned zP?cdlf~Uxm;!?8GZN(yG)P0HYh(_Mo9Lv1iDk$$=BJrJ|10h4sdI5;4mV4mbM)FT& zS%-l2{xKsByMtN^KHK-%uemP5*BfS#2uX|o3FOB6zoSPf)Q*)dX^hw*Y~KC<-v zDUVUH#3Mv>86=aDRz$tUWA}7M#(LgqE2wn|q|R(h6RpP~gQv>Oas)hxnCn@ci-&qf zRMI)S<%p>~QiSM+nQNnhvBDh)X*UOIL*phcFov^c$7p|2;b%DJ3fQr@E9_|Aa!;~% zC~sLv8R#l^)H>Z-XGmYJ?jVSaqHhD5h@kkk(q)5ky5R`?4gnNNzh-Hu0q_{W~}o1sY!73?iBknQ)|P$ z;GtEitfTcIxrrz5;vulbRvGZ)-#qaW($-=Mgm4;OK&CsS#%iajm<$`3zD^ct8Ap1j z?K{w~j5Z-v2%LsRHm~T&I^wjQ`h{Cb)#Y9#4;lmI9LgyqFE(OO>ip53%JQ5s5COBV zjlqANZh8&xvTH1)3Xh!mcuJq<9j|XJ3TS;{=u~97ynXf+PJ^@L0AlC~*hcxSHkmHX zDMVn{WYP`m1iXf@It>iGM{*3gO3KtM$S+!J#!J64b*lVB>4fWAYaq!i67hFbnfkd; zHnwJJrv$kH#wK=&Fp_KHIWX1QZk;~?p0??HGTh^ck^hT1vx@H z86VKhD$N|ZpqmcJGq^|0k|W5$g|vzwL{(Cj{%Ou|S9#T1ueW|Z$Ez_6!G~eyk@r2# zbdH6_RZh0q_Mq?z6}ni3VGTrpwhUB*hhY|dsru6uI7EM@1uJ>tKv>NNV_JskxfOpv zj*1hBLI^Sa)MC{vgUZxwc5b}tFUJhA3lCZYznU#ulUeF0`IAwmMWlWfxh+{NX3QxD zsi{}ZGB_6&&Nf@^x#8Di;5z}R+vdr(`rxL{- z8DpK(sHi+) z(AtOK%z^x#CY>rO&lvafbyG5nGI~ZZtL4W2cVj7&e`nK*XEd#NA3-g5p99&PtWi;U zQOn)uKyFM@0ndX>4vy58-ceZR=;=;mq1GCTMrmPGVQ-5p`K8yxq2$J*($s(JEHekP z-)={lPB;5RO(Ag(%-nDEU<4*;29hGJ`Kt5?MDfZcG>X)GBCQ3ZC@ds{-nL$(OihFw zP=qL5v*+Exw~QiH3OPTE&x4C7?Bv~YA(*3gHEALf!sUpPsNpFm;R?`Y)?zfk7n$@l zLNaMBRwE3)?qo<(v&N0ATSL>5tM_SG={U0c`e#kk!qw0$*F`yC}IyFDCxP7g?VVCb$~=7sO^=q zM(5LCrspBZeM=753TaviT7&!XkfihACyN<6{~@~EnB(Put{Jju^K^eftO_(PAr1!d z2m(WK1xFTTuT;%Abp|2`oQX>j#C4p03Ki*}PfLW0=(WzRXc>YW=x2?s2uPpG<+x1i zyhG{;Za8<)bG;9}4RR2~U_0*%Mx8oBOfVopL*L z@_HsS*FW8IG#$|?FFSuJmRy_6*sWz=_BRp#uUjsFC0FuxIx~CM#k4pF1wD7GiShv* zhuVrcy6ow?o(h~5*lR8OoW z*Cf}bTBA*iUFA!| zWki?0I)hvJGC7hp7eIcIY(aGO^cSDsb5@5UpbE@vS(WV8(;QO;vMQOUpUdQw^@uZ8 zw6z5R_hhqUvqyhFF5^*x(a;zcCkpH5h}NK4#pJdmcl3#{{tV)frU{_Bg;L`!`n^$~ zxyh!^(5@wZbjYLBwm|MpG7xEpzVXQncQI7DYKA2@BztvqxV)_0(=XTinkDO#o6*4$ z7%s2!18L||jU=noM12{!jxbEz`7%+HnoS22y7g3EOzeLkDt&1zRY%Bj_w{rA^-Jx{ z0)Ojd{c_gy%q13;}7a;jbM045E^V+|J9Y_RE!~h+bQN zu#p00aF>6!451HA7}k3TXdK8v*c>cY*YDOtk}cAjC4Ct$+ZyA}A^So8kZ85rJW_PT zdEDU4l1(cii9({x9ha0n8vBPRloklecj^D z(;vSzPk+$!)FSa3YEc4madH`=@=s%k>*Ce^duNtv1zL0xq*3F&(xqx;ds_it?vx=~ zHbZNIT6w&!_yP>Kv)v&dkrUdWnx(6)9syMg3750XR?$rC*KPIM03)Po%^W#PYt|{i zfwX@_yybYO2f;w9`wx?wr6^S``QBQ{dAi!)rK;^vwdQa+*RIlIY&-ArD$BGh`^{b| zo1rVaanH)4c4eo!TyoXjPGxiL8=oQfCkvqc5OkEF`;rgnwJW`%1kKf#E0d@-)}uq6 zO(ykBMuDCSdB|9b3Y=;l;qWo{IMvUW{m6f02C)!f^4-!FA&n;Q$Fqrl6E72z)^dtc zZbBHf^s(Y`jbZ-hB7hg+m-tG}EzOm*eE1o76s78HsV#6Iq~D7j$7nueK$#{-hti*7 zKFniiBNS3+%bZDSz6{D|#yQ2zI7mB$gSXW9A$7}KX1eMR9_ZBSBdG0vn@|DkLW+MF z)!A~cd$!rF<>7YA@LFC%f%4gME?XX07aqchTLNzn(LECnp)AAU}>7{qu zkxCvhP}7=;2;e%EDJx7~hc^cDNjze^xBS8^;`>MO$jIq>plIJW5N4U&>FaXDs5%bZ zkRCNg9@BB)?s4P5jgdzZ#pfePYuJA~e6;;~Qk&iQ!LV^- z$;G7zOxQ?!h?DlThj`VU+8uxN>bQuzqgO|^u4Bf&)Y1O1SI4KijnUtie@*Ds5vxjxRuD7 za){dTs8>aX;}CV1j}B4!@|f)qb+_XXl@EEIS7hz!5Ou>|9isB((L{l3no#nX*T@iO zQmJ#We$m?-YFjE(p3W44Er@?O=ya;qc(6~Fd#cl_?Ov4yZtf~(q-?m{RSxe+#O=KrQ?BoB=PlkL9!^yT#l&BuIDMM0@^nUW9fg{IU`Tv>wmWS z6l?RSleO4!BF357cGO`?fEUuv;@q9IqD?t}Kj}gECoTaV)@d1G?cump@|2fvmxJ`b zB=eY-tB+0kij*vH|Fs^X%?1(7FX@#xV1qPzf|HV`om%R&=bf616I2~dZ`9d%#G#?I zbFpb?9kNN{3n+0&k@$Z)wDqR%*?)1Wtk<$p8fc7x^q9E_t9ogVPf}x~$IMstu%xH0 z0E5-puqN=Mj?ppNsr+a;vs=|ugc?9Vo78VmXS>9e7G5?;^%y~r0#2zMd)KK4t^1_S zlZ$Tqs{>S}9NC+Grjqk^r=OQ-`dJCt<+JG-($D9-E*z`ZMPM)VGnJ={$kU5{o=N&y2}?%DoOs@z z`(?@Byqd2y2d2Mw4x-w>=x!Z&+4dgN&REwaD212T$#}uO{hU|h(QG~nGemyXsvxnY zyLdf$^_{*I+Q)w^q_x)OxujF{Z}vmhXdiKTRaYjR32o2ys*i3crX88|6-LbSB&aVr zK%S}53jf7NbgvZg?_L!H9g29jrif?Cqc%mn$DxR4LR)Bmiz05=D@8n09_d99|KT;l zxQ`?*d!dM_Of;N(lHxGt^xQwk*zTW|kZs!i^GsMWE&_i)rg7+6%UybAyyCU?1XcOp zMJ=|u`OcC<2O{WNf$c~oA3o4lVqzM?t{1-XPp9^?#Lv%nr=-={sZS5@j%lUnP-nqn zl&U-7Phr_Mx5OlFX*?I1L%+~RkqWFP0lWQo3r1A9B zTrO!_rSE?lY1=GPCM}z1FjV=XmC`qN_oTK6{nXAt;EYQJozAzmh)9{m6CB*^I*A@D zTl5{VVZ5ZlisEGsrxt&bTA$CMkGG%^4&?M^c7f|vlO+;ZjQ^=B6yj#=W zaE5RagYOY-xlc85+pp!$MBPrr#qn*a%*PG$e%+22E)pgDH zVeSq$-$-HT#m~@zCNdBS+RE|5TPlyN!3fjpBJK0vdB)y!b$48qL(oLQYpv)^?pZIY8oj7x2U&He2rt5RRLadA){ zPL;?ibC8{3TPnjt%s?6QLu#b_#TcTR=#?|UwI0fT&ui#0os;a%X>I`3_S9FhGwV8n}CHFwDB~z)7yVi-#;@4riT$l*i}94aKG`Yc705yM}81y z5e=(E7_f;)R_kDnl*BXij~XHko+0#(e>=^O;*p8;X*DY7g9?jL2STMZILL5;srq2g z+?Q*yM~HzJy?NRIfIxr0=H^P1KWST9T9)}yst%In2@1mLGV_Ixj9F>9>yn@Sp;L7l zoibd1MQ(|knjvfZc&Sxx>Jd^vi%!Q3xqa`+oqJE-w)f;6drvk#a=_cY$?Ux+mpIAk zjdWAujE?9rb8Ot&;eK03(H@y*^E#jR)%cIyj>Z+5#+fU6ef-4vxR+`>Q{S|731*;& z?(&(Qf$yhIVYX`qiG^ml*KWyY&ey$Ey~Fu`rbfx|f$2}`(4V4s$b6qV#0uIX)`B-( zUWE$GB{m#PQ$luphIR#ws(z4<%^ut3MUArL@_2^oCm)!(YLu+91F(KzPIbRSR>f)I z^CbMx*Duj5#G+_6imUMgf-c2t|H1})ub|nG5w72YW<4R?sKMg3qo;ohCOAN0PpD{r zwCP7!^@1t@-T}Ls9?Vf(?JngVT{bZ3jo6|s0IY!NwYpgyngS%VIk#{C*l-V@oSm# z$)Dr2gxmtZ>BxI_eC2_*ibIRISz-f!UG=s1Wec{L!|c>;snk94mwdCg{GF-PJ@RMw z>@9!0o0`c3H!bMQ{!Yv87kYFxB0!|tD7m&_vhqP*YFkTRHF~T2Jz8(X4E~RkqDIMK zWyn-MiP6bDdPwd+EDgC(>%uRO}1&*sQSq!-wGL%KLSB^;@Si~b%F?(8Ft1hC!_B6x2oCkyFpO7?fE`_{5)|IRPl+%JvT!UnGI!zHd4_$y0_xw|}> zvK}hw=QQx`)tCCR1$VpD%Q(Qxzn39y-~DRbmM$+*bAU~ZO8PsMQ;7Vr@$!GEVwqFL282v!zcB_lHIRybi=4IZ{x#5R1_t&j zN4BYgwSu1dF1EGro+W^PI5zMY5`dS*$na{>$aQZDxgP!&a=gS$py)Oy@7`ytB-3uv`P!>X z+jjr52a1*q{?2mVmmiIy?T0y)|7a8~IozpXuPC~0_piM=U2;T!uX5g9<(+#?HHPdh zZ&mNq7bxC{g1+q)?)uBl@`{CFmU#U8w%+MhkLzAol5JbS9_X4`3LkaTpB4=ld#sKf~wq`3%GG8KdUZ&#xKPu&}PKreW0V z`cVtcpFL`ReQeZ!?D~1tb+bp-H_RT@JgTXtxv6B)=#lwjMvfj;Q#Z3dR$DiF)SRaI z^J?p2HO*vj^o;jz6m5mvhpFeW!sOIC39o5({b5u=3Lw!Tz z|E0;=x~7_jy6SnOYGXBZO|`RXYa0F!)%}Q~O%2s`jkD^18|E9M_N~vg^*^GOnmT8Q z7uMCztdG_FU#gfnr@CQ&^@9IP6^*s?7tG^e$7ar{t*dGLKf%+~P#vpns;#f9p7%ef zZEp2~>i;W5=hrvXRM+k6gf_O+&HN#GM^!h~&##^NBgUT#aAEcAA2ZtCI&te5HM4&H zg6f$~KLU(@Z`HNWy>Du$t()Cw7)8|!o9buR)YUXpH`T;W;?ZtSlS4a3&aO9nhGCNi zzL=hO;2} zX7#SnGK|?X&S!F8!-iee{SBkOZl-RrpJ6n$EYOb!7{>gCO*OjD{S0G%b<@l_Y~(=0aOY_+uLl{1GkN@Y z(C&E;HjH`o_2)0t03NJ!&abay#)Eq`aIj%Glff_j+3VT*@j%0f)z4(&0i2b-=C*~4 z`Cz1fuTx6;6-h27DdynMDF$B7Ka}0te`rx_Kj}2Sn&Wjw{jUEo(SG`0ysC7V&xkDd zbs?-2%sg3|>_%9@q8pc=k`rz1tR>1fDDHTd%l~r6a}eoAEFu?Ge?(Cat@m}^{ol46 zZ@H(|-j4vq*zINIsAp4qs+nLBw3!7#Y{)jSTj^EcpGg_M1hab#j zd9y$W-Iu*mQl~3i!+VfKa}SazE=g2-5>^sRhqGcmFbqBRd`>fr`b9Mj4Ye_^3C+dv zn`IaTkB@!zHThylrqyGtB z=IDngs?K>+&9&LQ(}PLABGz^oW$UuI9IN0Nh_yG_Rk`YpPWRn86>oFiJt?p$JIqe} z(`!q&q5q^B%IZ-*`Bj`!7dtZ31|R8v)Cs=-0iDv5_9GVB52i2<&h6_WaI$M$-YX8z ztgnj^HGI7g&$kEmnuam2rm3k$@2_H`70W0Gofg=Wr9_U`?n>H?v%)=8WxLo$0hPeM z1k(pOt)9|nSE$_Xq&;Nt{ zY2VIb{}m5iu8*8&FM4PihC4pQII^McF_7;hr<&Cy8THPk`~q@Xy%<)PTBg}JyQAL5 z+4Qh7Wk23aX+2~MO`Eb@^=*lR*Dgv{x$i_tqp#WSz8_`_`#Rlsejh1B+4KIVDEmJ> z47#KIBhb#Bksndio4tJ{VE_Mri?Pm$<$s8MI~7n-}|fh|AKFg`l@N*V);WB?D;UfiQNsh`uBBZP1?IvYmyZEb$MV>=_!Q zQoD>)a+QWMfw;9yTV5p#sv%O zoAgO6%`g@;)Yj>Av9m-er;X08ACo`E$vv;Sv8k3KdLGE4S_D_C#XXk8fjFuHWy+vl zHmt@lTZ5oXIh1ygwJ^`5nX&a=@7OgvQn?0eOST{^29v8j6#?sigR?NlbyI2gd)3)j z=zLek>>MxSUu@&Jkm?ILh4G-|HRBn`b;%56!aPP!=mI13hA_dkE83ANtRvJE+Jzs` zfj9Ojz0F{8Z9q7Ix)bjPrftJL2wr2v2<^VZs6o;vMuSz0N4X=8gg@`d@*{CQ0+-=P z_=}HRb|h{RDUx`97J?;U_<32F1?iUyKVynRlJv3?lkU^G@XPsGGB8(vIn243Yy{7U zNt*k~oGkb;k?&bUz)Qke3!T?`M#6C8{1pIlFWOKy3IQQXsbKc~KsE?>v{ zrW-y3xX4Dkl6P1MqvSUhIB9f4a>Z_mFYC?uqbKG!*xIuxt>?jdAT|%JSfERBh3+_x+EEqnZ+|?c$q9Lo-T9pWKaw; zce7;j-W|q&e;Ix}J#oh&Xk8}}J7=PJxE2aKYh&JK5x`{l(XK7l0(eRr5YnWJmUSGJAY@yDS6p#eCo+6c5#(Xr%LL>e z!vB4FCOUbPk`0LhWrFwGDa9)a^N=a06oBzWLujCX+s|=jh$>UA@oiU%R}w1IlB;|x z7@J!uc{@?8Oj+xz)6Wsswa(X!V$klC-fIeSeWF~M@=srxQnDkF!4`_Y-GVtxuJU!o zl#xc> zUStfkd|4D3ikXNWJ+8P~`j*jEnO>OzOrD2-3hhW-ieL_Xx>3P^8`2!POb(7oeV!Z? zgVaU9IM9L5tEN?#3~hiQ7Zrk~`kI=Mj`UikV?hM6byOhQ&}+M5dIMOb4DUnQ3aYA( znsE{v=7l2GMo3G+$Z0c98Vym+fR zZy<>G?S9ihS`UB%JBN6dtcPEJk`e7(Mx%4*nolEHIAg}VGIza0! z`d%4-3?aG+4gUfmC9tG?v#!^YlY5X;il4x5HI<&s7%M^2sbd(Crx*;7*5Qi*kMPzLogUT^3iV1mJ@+nRGO|qPCFB@fi z`*pI|d1K*Q`_v&MPc6x_KTSfAAKx;%_uDGY>2(y3KY zjOmmg zW{gLM%7;1hYfjTC9Q-T>ZXAKA98d>osF(jJhJTfxwK4+M_1yBmP+JjyFtg-Wt=*8< zRI?5N7t}n+ys^U&w2mK(VTGtT4r5WlkW4ym{M(D16|hEahrWmL?bc@zpt%+MeznRM zedp-iI<#IR{-Q(2g&@C6tVajTeEFNN>ty)xTfz|E?0mjSZcJqG`(g5ik1Ufc=JlwF z%?yANB_SMQi=9eJydijhM`^b|PT`x0h(<0;uJskM;v;x9MF=5{zm|N;NHZKGS{t?hsc(tMB|f$iuw++aGhgJ>L_}I6a)ob=e41#HK4p-lKJKvc zPGTh*OXScxUb$tX?XmI&gLGK3A{mk7X8FR1Nk{T=2t!8%AwNyB2trbo;f{9aDc)#b z--ir3y`ls9?vyis*nzodv?Dyx-7tzM7kmiT8|+OhH;!4RyMdK?HQmFS3h9mOTf^Hu z=;+u{iolV@*8JiV8NCP_K`O-g3+dSSLDW-0<2u&tDEBIR!l?}FxO@2+KD7zM3a1xh zF)#HhC~PZ45<$c?Z45d7VvC9)eVa?+$C+$l0q+a+R@sh!Q@z?>XYJqF=@&qco4DO+ zGyC&z_d0umSJjt&^wA|`2?Gok+fjb(UN3ff&EUYNB8-(>O|EN3c7<2PZ$N}+_}*H~ zMerW-P>(Fhkb9CDWECGZV&upyxvS3*rR1?CD`Cdu_GGs*<>w%;a{H1LZxqEfEOeYM zV~&z1^?f>jLDu=7mRICYMhvnwnV~nTDB2K3s)0ZBAq)1Ef>bB7*ok zLagDvmS>eISL#OZVWX*<8hX`a9wU$T=~7DWUP2Dhl1KZjpmV5Fva=inOjmQ)l00R~V|~bb-L)hS<`GW!uhx)%Y#<~KYZ$ew^Sb{JyZfl6i&;P^ zd84KH`vLfq9)zt90DsZ|Y}Ek#Ndust%^~u%u9@6eK+%HWpDiuQlKuO?$*y>IvQX-|Lo_vmf7o)$r$b!^<@y%IAI7C?(tf8w$Loo4tBT zy)w;Qd5cxZ)p{h}(j#%Tjf0_Xu1m;fd_884-lVW(iboz^OCxz;Y{7u=TH|!!{0`jyl}|2C>ykk+nH?#W1It8mWp)JY36aZ^ z70r{BDWB?!o@m}XhQb^vXE{^(ZdxZt@XBUNiR8UB?zvS6jyq}uLmnt4tD4t4licV| ztlD4ZQXQYe)hQpR-H)nqO39tg8Ou@20okrc{O`>fyU)r7Ju9y^N9ZPe5MaSGhfnbotNCn_1h2v`+5o3ny`h>&K8b3bMAjd{3&T$Jkj(=CwY#KCMgU zM0$-?eGNEv-cWl#)#%g`dc z)5(uuRTZXHm6kHaV%Rr}9>DqxN@l_w{3SU!-X)+<9Aqu*_|G!C+y%O7rU&%v4g`!l z&7ekPGT&WNV4o?j?GwvE@WTlwK@tU}5S4EY)3&Eb893It7RE{wjWQTu>K6^J>GfAWTIQIa`m|@P7ooI&{d}*AC@hUOLwgu( zK+o?nR5YZ`zTW4J`|r>PN+By0vd5ezaBazE$r4G_!WW99q2pphBLqqIzC! z^*(D_Jl*4r+Pdn7mVMQXxQY~GFE+n3>+2e|y257|Gv?LLJfBJmU&>OJ_G*r$tn{*! zH4Ve=x05~fqNtvKuC3OJl|HoDC8W#+!>DblujXT#;aa$gt@6m8XJd{MVVF7uH>z~# zC?rAXF#iI1DUrux=hz%DLM{WebE^;4mEszNR+o&_^e2Z){8uAK!;iTtU9Qy5@ggfE zo@YxQ-c97O>MMMeO60Y~T1oEQt%8XNs&q3;uJv_cl@fV>DUkuQyr-8VN1X@iuz~5p z6SQ>S55{b}3t@~!0Mnh{V-Uu16gKhj#5*)6AdGR}&OlOc*KjrkYIFGKc(33@_%UG| z|FG_3j>~nUmUPy~IC>nkr;UN>K}sh52p3Yrp)aN?6e}09I1hzvnDG?@=1^(rrsNU< z+=Bo{jz-{roK}oNSmv*Xq^*z^hW_W}!$*%qU^)JTp!8pgMpwVTV}aM`J6ab*X(IpK zrn^BQX8_W#2aOo1{{x7KYJc(vZ_8|dV`SO40jUedqrGY8CW zNlO*kJpbL|R@d3!Rrf6QFbG$vK9FB0GnA4E<#c6#8&0{h68W{SjQDU?q?$OE6;tUl zJ%cJ5C6b-bPtgn|a&>YNZqW*$pdOgHf6`}f`O;t@J2~hr1muEp3`cm{D9l9w*JJFp zTG*@AWC!L-T>%f>2X99}7GyEwPe$qQ*JJEz{m{aZF2X6~M*}*gZ4?5yn1A%s@!nJ0 zCo%9jh-nW&M~)E#}0=slZFa+&WL$iEZiL~?o4n2JUv za>NkV@qXJvXWY`HA45#st>W>(sqPt{_tRVOrI zuj*sE;=NX%yKmLEH+$7HV2Lg84k8E9=dl(*H_DDo^kB(45M#DdPoODd1&MhC4Km8=XYN=M5?f^0bKu>*RNK>V3OY1zw*jck9yg zsV>dw4ZhPQ-A#7s;t`sBvr9VP-SFdo3$I5bQXQ(c`*YOy_opgp_lG=^+7EI>nT!7q zDW6=xBS}abrq1a@Zsv`>SP1_hK45e3o5cF zO)jTmL&$U(h7AB;T(eLIF_g*s1sYYld}S0VQ!YwQ;@a#shM+>9_$>KpGQy-TqY{nE zlx0aT>`zI%ja|x=T<&tC(1@|)++C|Z_4POgw@rh5z&0SOb)e#VCL*NLzZVqN|Sfo*R}e8^=C0vELDi+VKoZuB*GT+l~M(=Sf;B1vIO82thCo z^9JZU)=%o>2@7(Y2JcBjAGjz%m8?U5G;X3E%m>w0r4xps@v~D~Z=OZAC>Saj; z5AkxKd}q_V*aPh6njbnBUz1Uuh(^q%u5vWhsvq+t>Fr|e9bTE$4Du?zH4I_E5S>l- zWS;#1CsU5jC8mZc-8h<}o!=meb0?}aJ&mUP*&qvXdy>-TC-pObC*PE(^z*Gc{b_@q zCepT+EIn&GqZq4{DgGfE_l9V1jC1H3?c3c?df#ZAy_hwvO;LpE`LW}V9oa}iV$c9} zx!qmH>fN<5!^(^Oay zoJepkN-{#dqR?OsH{HW`q46ok+~&*ilI(WtFs||HxKh`#3Ug^!VjV=`(MSX_3c;ha zL2FRjBHDwJ7YIPi7{(IQ4p}PkJf(PG2_ZUvjyp0caJuR%ty$ShiB+Wf%91=j_T^)X zeoW_MvwqxPNev*O^ebdpzsFrJ2JsN&v5Dda@=&(9G0=Vg~&CT%OFb>(H3{n0kJo1a>*olfUW+0R|CVTk$G*t4e~ zc$Bo23(CmOViS$~LNLod*IY8M&8o1QmfHls_lDqcMcLQeEz2tuF!o}LM%m2ADC>PQbJsrq_qloGE;CR6m;1RnVprgtIdwFGT-)v{%SJ$wABZF z+g$WPX2vN|z3;jlkL#LUAFG+MaG%+(|HnEY z53CurjWsj(*|o(h=JaNt`9hC>b**l!+htg!~_78Ax zvd2TOqEQRZuifWRSxvR`YxWhKx|)4Ph9BtmwWy{pR^Kpcw^(3KkL(}175yOm*ryuz zwc{R!E~wdOS6&7|RL#tP*bfG;X5PHo z1x>a49GWWC)IJ}Rog%4$sQ)2{QliQa9SF@b{ILD1CYFEPabxy*%W8CDRPAFU_50id zdhd;zRXeYS5BplZhtP9s_L)++8uxwdfisCe0Ks;1uHDC0dX*Wo&#`he9p(vtUt4kd z(m1C&|G0f_rJ-ilydSfFeOAw?{ef`(0ELUw6K`qN)iyTO{Lr<$N9j?sYOD8oWAMsy znO4u+=e=`Jz`2bsY^vR7$6~MDg>{Y9vuftlRL5!>_Nt7juZ>Z-0=lT_4RHEhcjXkq|8y$Qi0p7Ugju&X@+4lV9egv3Gl(^ zbi2;zyxO{j%}nqa#-f^r+F4owp1x4a9+lQQc76q!m;L8V09;bsuCHHO&j0r@H!v`PI6HgLFB1JM)uW zORUy?S`%gaC0-O-6(XmbxrfD z8yZvKxj>U2VnzK8gX|6;2N=eZ`nsChx>;HwHo!1u5pZ3?dxahlO>ux_Y0nyLiw?*Xo8w+XLHYcyn=x;W%o46Ociv^g$ZQn0TmREI5B= zqnvK7bE-8ULk+{(HQDyC z-8|IUd3Je!(HN}?%`}W=y}vRip{cbkx`w!8ryKQiQX1=R1FwOG!EKNQa@Z{!Plp>u ztX41590u3X=*K6jZk?<%XXvpI!N?UeV)p3grXoS*=|?*T*->1jw!Zaf zEp*5~PRAxY#xNFD&s(U$38WVI$kbzCxBmOJ8ix>njWUb{`T584adhf&jQtoTtvz0U zbW>{U7S%Lpv>0O;9H$!H9ZqfjamPoi8#PLecE3fL%F3Ccpio!EcAQ7nT2Q!WJ51TF zodw6)uKz6QJhJ3*`D6BgkSV*BocCRk0`l!i^OnC=g*$kH=Tm&JKvEtR{Ipr5xC&AnQ{ySxM^qgmUm0tE^xIl>h>Tq-4;ry5HC}oW5p{^P`*QX3 zW_1YUYa{n`gw%L5SK5=^cC~VUaxIIPIbS>iNj^ZcorkZnv-#!g1hXym#pK@PTK2}w z`&^O_;P2yfJvq{?GhF10$=%7d@~9Crv%Y>rk~P?V3WAhZ@<#nIc*&3Oey)6&$I=pi z+gzmoF5!i7lGq8qY)!6hLtFwwT-CGjcW=mV*1}V|s0Z)?0*F&K*eK{iKw8Qn`^9Kh zt78fr3_rG%pcW4!s@?XcA!^3yW)Cxq-tlI;Pv&=v;uW%Cx^RVQv@^ue*5g&LxNU-0 zMNv!cUH#*IlE3)|roV?Ust}dTA~`F6OJ4*QkjzTR9Gacc`;JCP^ltNO_s9WVpqsuV z>D(YO`X~>36U9WLExu;jxKuNp+^IWoRgw-PTa(3(vs`cABr`{L8eM9-T$Sv9rnlT+zS>nh zmUuw&W02D+z2}9c+7lz79r7$`_YG0gr6;jjndZsT?qeN230fSq`||adJl2=PPgMFe zs_C%g&xvKb*QsG~>+CjI=S4}o&Tb9YMcP`S+hCm+CG&Ve_(XaPZq;4;neN(NC&wHm zpBZ%UV!KZyKK`C|zc%WB)O1;@+YQRsy4|I^-LG}K`Wa>pKhcaNz~0EiiQ@06bD18W zublB&rpMG>L`W^QKegHl9^JO517>%~J{{T-2i?_NumJf-LB)}-wm`HZoZrGJ-|(N3$mnK1~$w2J0(3| zYVvruV_TLSkuNjyAcwNQuO*6E9CEww8PuxjyghYKM=94~3LUoBoBOUz`NF7lJ&LRT z8MAiN;CwMGZ12;)rBf^(=0U@Rw^ok2|*f)g+bm+VZf zAAcPIOBQ8FdYLRNW;~5WdD6FRvLy>AIcfZo2T3nOP!<-5%9s7}sg@R1HjafCMC8C` zSx`ecHT~Dng1l-iHXvYT+WVUEnbXVBG@yGA=i8J~!tEN1wi7&({$+@~fZ zs-5-bF%B+6U5^Is%lwc--(q~GkSy*-7`Lc{A#bMT@^km%EQHm;a*@Rj1Yi#NTqEE* zHQLOUb;>~lXt0|C!7=PA* z{_?BTXlW?6xrddI`73F4KAY}Q6ZOOf^soC&cM133kq97Ptb8TedK?~uA8*31V{1s} z8m(FlD1l6O;2K7_-b5I3&PsEPJq1-=-W0rJkbl^q*%O9`I1wEiS^RW{0~ie%xgB9S ztaCi1CJ(hZ-Psa(ZOd(PaG4%j^MB_)xi#6X;gRFFv#moq;g>{<^#LrYD@QFRq61Vl zuR;hjV6#MQubt_tK;9Pa7w;j&Mz3niI+JWw0U5J-2$^%fIBEQOI2pBw+btd?zjqsa z*w_voGU47NEz<&a6(>81C2MW4PSjv6Tp76gWbX-TISxm~3z%eL;V-o^WB<=Bpt` zZ>Z7oYp(Y~RFGLw1(3hU)Ddd5{I)F*74~~RZ=N3wxuq>jiL6dK^Yb5LJK>1XM*y-a zSzvefLpzy~SIEJIz+lcHPJisrlh4{&-t)4!HZ0lV!Lya{pcYL{2n@q-nl$$NVI58_ zyu@qxe2Ci*LwV&MbjH%Ug*U4l05VdZ>>(2bmLlj%| zZQED!2_ZViOu*vh2)$T(G9I=gI30(=!m&2sx4VEpq8k&)J%27x54tJ$yD9hSl>U&p zuQ(trvq8$YK{`E)ARS$XTE;kGWxsXD|2Y=L8yaimH;Iq!vH2@gS>a^2LT8r8+7*^@ zmKhPOR!xAkC(23HMwB5e=a$RSF*RB)^=;>;j}t2ii8)Lz^>wKU@^KzXz;*3q8d?+M1_n(Q-IR3BMXU&)?|b< zbxt4zI*#%t;~w}ik&AIWLgXsj69t48(xdTonTw}i5r0qZ3@g7o1Dezz>4`g4w3|fr zrEV2p>$}!N2(X%-c)49oyIH9Q_0Cjh@471zG^`s9`IG~KH|!nYl7vHrKVm8e?icRB zy~Y&C-N{#6YPX}mM-c92xO-ANy?uuGe-^$l;cOl~KD~SRmLh=T3Ni9HZS<6*`pdr( z8c){wa(^*h^_RC3lMn!TvII1NyV94-*?K2YJXwvFHNGO%U)~{xK(6#Xb0h+)zr2;G zM_i4TmA)Y^vC1Ck!M5Fnjr$D=KrfGIXX0oRNBko_4xYKqQA;?;vemdKYw83-)cAI-)_pKOu;to2JP^3of#gi zuV`2cQKCa7F}{`_$A88P?E0=ZX_R=m9_3naW4*{EOLVtA*)$O-|8BMWw}_2*xc%G3#%2E=$bXVMP|H|jbadlZN`A}UPOY1iDX+FMpwwtc zr)bZVSKIVv)hQp*HAUWRE8xd=)a`)VQu`AWBD_51|feHa<6 zZP_t678EpHXcMo2YwS^J7jAp9xZCZ~j>Ekky`p<02TaxGs!{H}`!PC{bqk#rxPMg; z*||9uqLwT>C&431R$No13LWXl;-R$`JiHYliqGJO`GW5YZm>~4KkFk?_cWrYCgR6Q zo&@rEtFvn|KAc9<2ilxn^DZGrCG%b}r`p`|j-ejl?MidYX3j2o-N=>s>1i!y(qty}*hzo0lM+n&jmpJ%eZ29@v#s5gkmP3g!PC!F1b-iqc)6JL zp$%}saIZJ3q<@#wpxmGAmi@}G4(9n366$@(93^iWU6$OLtdZ?TzMN4mWAbHIIV3Zm zD@2}@P2ln{5BuDvm9Mo!1>r+|*`ohL*e_U8q$Dn*q5=QFF<3k z`?|GTO_Xn1%h}%x72{J*gnxX~x{|DuO<_7zK98DFJdEJer;gCV+iO#eF6p+H7{uCy zs5z4}cxaFGuVW8k$x->zT#Q=I9L!k~cVYad)rIjw<-+)l@HUo!j-nMnjvm`=xw5TW z9V1sIHH)k z$mN;nA)b}=kkx{>kejnyz~1rzyPAN(JVtgUy7jOJkkA1#0uZyP5dK38&n|2zEMc56 zYcMUXE_G)Jn*NYn83O_!;S)P;e5@7 z!w{ca5Y#-6c{JB31Ak-$@tXWyFJ9{whiLJTcm<+nzFeE^hP+{HlIxSiU$T|2BOsUh zDj6dHV!ljIvnb4o@Ov` zIgw!oR@ghkb*;F`;vmU?IPXFr?C;b{$ zLF)XkC7bP>YnTGTR@QUE3TTe~vDOwX7NU?uv- z3~oi%XoPe?=BT~@eZ9ototJ4i1oD*&+1H#erYvoB=H&~f$g9Ry8*4^xf($5wv=yM1 z@(L-5sL`^`$UnmwdTRtIgEJrX$$yrRpUAZ7@qf?R7P<1x9#>xG(TtBw@^xXnC}t7m zV~GeQn|zVBa)@F8M8=zJg5Hr}E}(zp$@apNmKw}J7({R$P0a*9&bB`?L@&40bOt6m z9YLvi0CHFnf)aaNBqoRUz-;*Xl>Z-dZvq}wk@XMXzNd0>38=v#j-ZlAM@SgE2|?@z z(|?+7NJmV-;Mfrpr8|%yK}azB*4+py(E$}ya0Zv4f=ComVH|M*m2p4?6gOOOaG!A* z_kcvn_x$QE-En*4JMaH_J~YX_b!$0w>eQ)oPMtc%L5*gtW^4up>ZFBju3Y|PPzy|P zoD4;XTJJnLjnrA#>9R95BJ5=?d(}*ebboU_S8CscIE=ANMdxuB7u8naAg9+1inyTA z>URf2$RM?ZQ98hnVxl5I6bN_*YDvddCEjN8V%a+|O!;Ma>`Rc&6S<5^74at7=jw7FTzjL&kpAo^#sA!4s)Xn#ky zqCv@JVT9HoDBNv~KA>BG&k{Nq33v(z`R{R`uQ6D#>euyw;HUfjM9cD?hBmy3J2b`+=9KCn2hq1Cmt`K~MP^)_)}Hmh%S2sY0$~ z^(+I|m>E|$<~lL!Q}-Z%Dn*tYx>E@_?E0EK*|iKH6NN*Sl3uj~ea$-E8l#db$b6 z9y5QZl`eU~8)p5tAssNhBOx<1g_UONzs!6~%#^Rql*MMsAv5K2Gv$bxa(^VjFyvm| z0_+)lcL;!WD_2egla;O~#;okB%^D9lQ*l2N3W}Tx2-x z6CwN()4$ApjT>Zr)Fwk(zke0M)``~?sB(iAlh~IiH_9hST^nJIhU;wnpG}6|yjs?C zHAS&2a(2AJe!#3nLy&}3d_T_-{pp{|P?1D3?9M6hLl7EW=n?(NGnBnz9Mk-zY{wU& zF$F4M-9;2SO+PV%O9?{;Y#I$jRGM+LPkDm9IFdNqBgV^9w0|b*Q4JS|v@)wq z%AllG8{742y=o>7b3tkj$TMX@L_M$N0(MZi*}M@cZH84Cw;u7b*d62x%uh~Sud$1Z z#c^~Z%xf@8dimmZ@blRm;0OoDvd<};R6YhP4SOYX_Hm_lA@AZK*_Y5onPksqx(ITO zmX65qBiKtP`DuoSqJOF4Jf>4ua6sBHoJ`YFnNG@Jno*6gBuq1x%55GZzpNju--}J# zwxygQ3h5i$P^e2Nc}K)U^Q+m;K{{p$0{A-ELB|v!O#@HEAQ!Ti2KcGgb28dJ9_>Pl zbTU<@G7ZRJs;y>-rc}3-^C&TcnySTd3>(Wt;Y3)zc6r-^oqwrmH3y~m@F}}k9SlB+ zJtlBbx+v8|a_%ex$xf2jitsqzfDpfY9^3gE_Fnx54zpwOojMB*ve$i=)YaAV4?$#W zt~Q6d;}WZ)1BxCun6)YF73V_x|Fevcy;w}4D{Ow@q_@K!c0hY8hTXM5I4Ki{PqEgX z&32w-T7f!d8-KMX(^-RL93aH%SvHChY}pRn@MPofxiSsu=8yiJS};L&VNpyhf~a2I zY}T&Kv1)%?k+O&w$h0S669?#@wh!g5o77;3bcti>*=C561DQ6<)e;G*Vjyi|zer}< z)6~s&ajHg(=rG?8E(whR&qbm>ju1-p}4@{GiV?TfgHC+G)-lSZf3jWN|n$LlPKbJE})uxy0n^UL=zm| z!YS;4D1*`Nu@#-d_J^?fUQ^A~nu-dNo?r(TvmJU4wN?Y?+3aO_8?8bZYJx3>W_Hq+ zXf?K!c?yonKEpUqE@PwD%K%kg>E|^^`X~Vm2hX0&4i9$hkM?WnHH=ae?L<&@1j}-< zUVj?OzW#&xrGG*6Tl}0loE;Rb_ED-|ql?Cny@@XJFxiW+eQjrIg_Vc~Z(=)TZ=%F( zYRYF?AI&65)l}7K&i?~-)@Z+H$n_z%7f}?u%5thNh~|rGBbIJ5y{s;g0Hm{P(gaq0 zT@%=)ZO+puy2ww_oqmm?-R10*XmaqSY=5V4CnfBlmP|^>mNU~O$<{GUBU=uq0a)II zaOrTJaA-t(slkJI?X-zu7IcAAh-#)A!n*q970I+uUBY3Cq)1_YkZum#0DeG$zt(8= z(zgUnyu<@G^&THgJE&B`8I$l-WEn5U^Gu=`cOr9o)gz z0$EZ^*nu(?i`Xj)X~+^8OZ8NZjw=$$l;;tr(s-;&l^)~@jRD7E8lPdXsyuKipf#Oq zSsi_d4d7eBK`FclW~eM`wk*CKtyWjI8C`#Q5Zvi@sX?8?#7!K8!_WIzIposg#M;_Y z&BRs1o#$C3PrntzvJNu_z2?$A(ym)x!EqSC!mX~p=S*? z^(-Y~!Sp#n&kBfArX49b`+g%h#(S4^hS(u4ViG`TDTBlP@g#8(C6*&=(-`39MKyni zDLoqr3&W*=Z{_jjY`;h(t7)`-PPZtfM^n}_-FgW;m+1PVsxX2gnN~J^^_M_ijHw8oou=_d%@Tdm22{P)eE~d1rJ^*dR*j zoqkPv)6&7GR0dV36s5E~(a*Jj_Q9s5SeBgZIEOQ&7WAGC#>P@?6>Lm_5r1Oeu*j!b zSVP4x&w>4`l<8R+B{&Xa>l?<1QhKcy;8Izoum_+wc1{$f^lZOPK9Nl8<1l~qlEl=# z4J%pdZHw8yRV0p~2&$ zM87ZAqDZC(8$7v$D~XydWNk_GBbq8NoPy7x{4Ut7AGQHO-N%0l|x9ay=OM%8)#0n5D z9bb-HG%8Br{TY=e#Ko-ozGIijVCrrg!`M=BFs)SIVtO~6O1G*YppTSnkwG^{#~=}c zE8VJ=h-8E)OXmp>p8_voR)=9PBFO5==tofYJN?p2IY<@xG-M%Flrn#vu#ktjq1Sva z?-faAS_YHReI#-8psd!(c4yC`^J`~Bct!*kJ)QOk1!Qd%7Y~Q1~ z6R<1&td;s?Tq@P?jlZgxT0Mv}mIFZvrc-Sddtcxn2ly83%gQ8>0`XoD;EHH7 zkK#XIM}lb|_IV-N0jz)RZJt7QomEE7Uy>+);Ll~O9bn%&DWErW(g#X8)4Hf3^DR)J zrb3*H?8K0sg{nUmomf&mlPBiie%c-mPw)7O((XMix=l02q@JP>)L5O(KENL*NB>tJz%^#<## z7Li*3*ieZpIjzSk7G!lA>QP71vACy>`jtq@03PZ3UPva*>Sj8*2mBkvISe*7HCuvk zK8nu36s36;Fh2UgCt++0vN}p;3COl683BiBelrJoFx-DYEO2MW;>-Nm!p4UQgOWa( z#@=iAWDf8_rqmp!P^mbM-fF@6GF&86M?wxf7C>fD%3-dQDqIL=Fzlg9gB|b|2=OwkLSSd& zIJ&kK#Gil6^rbMGUe=0(0b$4?Y8L%R9G0eM_2PrzKBslDg9a5*Qz=v1PVB^IFohBG z&yG;|>Uv5nr?%2kMjh0)8MCuRdXYw6!gJ&$OsuiEKd^x3;8ud0q&n?;0GBTX@16wF zWbzNJo(Q`f>^C6}s*7z$7^-7BKsfIZJH&BxV@rQ$8;3Q_z;o|~kZ6;t(D&X&)TjsJtQhjV~6IvPf9x(xE3diHnh zrEq`ebiE{ZOk^*^{;$^R9&FUp0+1FY=pgm9NQQD{LJ52M1|V4uxCCo$GoW~#Gw`av zF};pS8BL`|&vZKaL%9V%i|u>~d(q$TTfmYKcsrR6iVh?#ZbjVK!BW|9iDdd(bWp!d z)R>8tj#@pIrgxWx+wXu|4$x`kOa+}B8zI(|pM0JJNf&?4 zdLeeqdCDwEqUvG}@^etWZi(h&F@tSOb<(@i+k91YC%vzfvpNH;gjPjy*M**C41Its z4C?^)9kt_^v%1E1kZEPKg6}7n0bD3^$No6`+9aT;VP1NF{=6qaGDs@=>wl>sv4ZFCA z?V^y% zFN9eIPwF6had!tcE3liW|6nl)GR^Z)sFNvm2RqcE6zXP5+w?P4VZVL^dvVSxooNd2 z(?g@H9R{trz7`|6XbBg#M?|v!aA9DHVlaFVn3N z2T~w%Br{d7hHyBf32>+<(~T|NBAIq4lrs&+#?jA%V&WhGjj5RJvzTlvL?PYRk^&p2 zPBbqitNtafa+kiJbDl(Y-i(Q3=(`tBGx{Ji0C z#kjlmBZ)q57x3_!Xu{G{TERg|UoSn(?&sjzhZx5SrJW7Fl(@gPQk?)H9zbI|szBn% z@e`7(O_ye2FNdfr0=s_@9QNo>Hux^x&q4YovYKwO`I&05u50v7#6!z4@Dxd9`Z|I& z$jfxA%}*_*6fPxo({%bzB$bxg{L=3bTV^-0L;i){d^y{tJBfOtWGGX1%HHXOg7XC+ zPA_f^a-dB$L!V&V9FAW^z41O7AsT#P8`bOtDCJyWBH zPi~?FtnMCo4SAW4hDJn}EyLcEoCBu+%A`_J$bFpO`$$iuS zYasmxCPPF3t~5wRx-#G*q5#vzNV6D7du>e=vF@xn5G&iR%KKb!AFE4Xm0cN05d-OC zTT{L|P)9)SV^)7l*TY#2XGo4^dLgn}45a&|zxT29LL`-k>##yF-e6nEmB_U#GDer} zA2u@Xh@>LJL$(avgJDkuYboX$WMo?v2bg#XFUCTH3T}Xjnb(Mc^l6Jn`mF>czCu`v z>Dq)3#X$O^Wht^=myiufR1BmqWmcfp3(4c{Ht6L8nO1+3zRJJdCe^Gv$e+s&-mZgs zZ)7Ulk?SR!A1QQiqyn$c0#r%m(&gguNQDFdW<}Z8J+_W?2>MK&kuiGG%eE2;UT4I^ zkj_lGU?9^A$SnnrH`@%g=PoKj3cU%aXboZMaWHl$u$ltmW8wB(Ee6t?1{UwqvG^K5 z!`IGuEWUqcTd2cxS0t4KXmr0(><+!yTeb{<$Fw%S*z0DoJIrGLG>UcT#ok6ShS%}2 zOt;4ueG^4NaZDFgSVSm}rDq~AuMK2+#HK4l&qO5VA2$L2dwey2wJpR9X{xZcT(+5{ z$Mil8;tAqd>V}F;SE#xdPj@&~VpuoD$?;gIR*8RO={uS2DkIx>VM%pYsz%3u2&cq| z^$K-`IF=5|0_{eDgL;9*W`XYb0$0fvzLf>8F$#RE7q}V)_#~ZFzKt)mSX~%*@A{Kw z$LMM?NQx!5ieu?jS>-)Om9NUa$@vcy-Yr{wS!U@pvb-El6}as(L-eO5(Uji1mL9s- z<`;hhX_Z=n(;7_s!r(f_T)RhY635bBS>1g`b$j*djze`lk)Kreh^+2_Z!u{pjS5x)qVZb>i#aPy9(9uxjM#P2$vci_ArfHDEiY!KP~s7Ecd;w1iYd( z-(=Lv(-uzu%!86v;Zhn6S{?TB)YA~I)HHuv$8z4ygE(M@MLZBoe*`taS{~#G2YB`= z9N-(}E-C(k*6}w0t@^TV%do%Qg5V=rer+qPOKTzFzAiS=y4F+?pqs#9nV#V$eJ5zb zk@zEl+x~9V@wq9lCy~79{dY`XH{&en zK-Op>uYmIiWCSh5Uh3bYQJY84$#jgL9rR>NKGV7coK)26IKb`b_$w{>bYDUa)83X8 zrVR;2&{IaiSyh8YOP3xB*gK0U0o;E-!Y--hjMsfXRyO1C-aw`gWmt!M!Qt6UO%+T> zVb6D!yn4nZ@|pIxq(X_PWH0isNyr$kS8-i)v%Y8``9D@QkaRWp4hEQJbmDi@X7-BT zQG3fyUMvRE2MI&fa(xX9J!g%|FXe~)*@?a&+#yqTFz4kVtE%N z#PVW4Kpoa|ye0qbwyIo;yK7mmlJ1G@XBWL{%fMqMJ4P_=wZVW$_eDy%AYIa-MlafO zI6xaBshEtcRmSSwqt}~+Bcp#u)NJ+&8`I_CR5K{SHZwyll=@XNG_2B3O?$y8hh+5( zYz`He-QO1fP3tj>hZ)~XlzDR!xl4f96#=)yt zvvZ~TJDqU0?TrBm-&EEd@-`N9`6c6%*>*D1HU$@K+GuMO;`=rQ8ioUvZ;ir|wO#SE zofiumJsO3M@Qn5TNE8=1VvF4PL2Y}LDkJ-SGW!k%rZyCRSjG)sEVq#~I}bL&4ZUo@ zREsNlAl6&pZu`ln0QP_62dk>y)7)2LMbY@JHrQTlOz%eE5tPhyn=OZ3!p0iC6WNL> zuMXFX9x#gz<~4G^a*cYd{w3|zSfvtukC@n7V1Cid1bCTQX4@}*QC_oZ3u1n;Iy`pQ zpz)3E{2IGp?2{qfD@ajPCFQ@pHD~s`vYCC2`}Y4PoT-d$Ry}{Jwthz4+=`zKjRqK< zm&nNa00EEj7uC$HuBxpotEvmu8L_-_?D@n;-pK2NH$0S-`AzPW^KJ7B@M7#iqC4&YjL zOl-KB@F?8=Pi>n`HXeG%%HNLsAP^sXnB>whQ^iDk@4pQXUNiHwzRt7Sx|*5QRSkX3 zZcHF6)S!M3rt&j?H&oWllySFgigkUYswgr$<`n7ErXz-p-@!+aC;_)Kwf^kQb;`RI z>IM&z+QJ0z<`a2wI;U}v|8XkU?vRqxm6BQmuwC1-sWp?~aAfBf*nSZQsW}BF#w-ye z?LDhn=b)s)@Tz-Zj>*qMv5zjj&0D0=+#v+h#jswQSHG2i^I$UWep8uFUC5MJMDV(g zjFIL~YRhC7=W<|yG-wbNu@B;^8y5q>5eGjMfdL&hBe)O2f(KjZMW8v(<#38>T&K6~ zeI4ecTD~8fsweq{s$=bGVWUeuAU|`B$o;^|TghR`JQ^iGulSjJXJ%K=s~A;NUsY9s zP{pI>UwX-ZsCm`py`vV_RW#M*He@-oM?14dRhXBu%qg2+R#j13q5Kzhm}K=|)bYP4 zT31t6RXeM?rq6MYamUU79#Li|M^%u+st=-|AfKehy2Xc>)TZVKNs}7wz+oH zZ@A9sH?sWd+P*FhwRH$$-RJBkfm(5Le{LC>(Og$iT~lsF7@etKcVtuW6ue|+u*rQo z=*&o%TUk}#6s)SQtg4jpB8}u&ri!Za%Cf3|;M~f(y16oPrA<+0H_j}ZuNO6{nqO8^ zYksY%uY#}_EURy7Fh0j81uv-{tp|$4WT>mIL>^TS?1)Fg)RP5CF@mDXIf6M?RbJ7A z4hE~r>M9##_5@6me(C~)X$zvKZG(~mPM^=msq8f;!?xJ>eYQbKyNabu1b=M@?-9p; z(8?%o!>!ei0Q_6o!Hx{xdI{wzRRC5@2dt#9nnGUE0l*vOClnLa?irFL@QUrkMQbz$g0JDVP!mC9R^29CZ4^FQxm3E;M4<1~2;Y4`OY9{5UQC z{eSvChXcLx$Ct%(`~UF$8V=C3F*IU5YjhzZxu8(|4@l?&?!oaw6_!*mp!Ajq|e&KW~v z;p;5}N-~KYIyHm-IL7)7>)juJGhw4M(8Xrw=*1NDIw?A!0zj}3%C|1$#@I9rb#o6Rgf;uhonm3 ze0G>PRlYHB+MklZU8Hd*Af4ihPd0hX0wa^WzX;BD4qj}Uos@6&3X)cTaRD!eg8RMb z;R4=;$Gjc@Bel4j6)bmU|7(Tj*OoiE0)Vqy_a5aM5L3b+w>#bKcDqecAY^_?9^`Wx z$z2*?>;7L`HGU2@LqD21yKLs{vh1wBuAFAE%K5YVE)7;7z;mBhTT}k~jkhQM=8FV= z1uNEqFV#Th=azdNaluP}Dyk}KDosO-jutGYs$%A-sxGUQva3x|nyTeTTYOAzLeT1} zvYKWT6L_hU%WeWB*2*&Z%=%gzI;7LGQ0ZAkp6cO^hTjPsLtKKHX65Twi zv;{uWu|-3M9LEmn<-$zo!C;Tmp(@icXt!SnYj&!$w7>(0Ex;dy5P+D4?7(qbTqgHk zq?#RZ>S>&Ix*nIzCl;|hoRNrq`An9#0%OO*K@F))N!fe~7qDx)4E#r=&BLjbS=}rCeU@kDXwLM)OPQs3s`K_eHQF;{fn)+WZtPW$k{L>N5_ri=vr1 zjNpH3*(-4^kDI;APqTw7IhS!4u{yMiD|x8&Oz>j&NC=HqL_QKKePUa|PYHoNB$%3I z3anM?i3e#~1=I0W)VB0th5!-3qEhdXzH8@m0S|Wr$blVyRFz3lPbpIr!9W5q8;2>H zZ|T=P7G@74Hk^T3jRvfM8!>pR27fNHy~QrNG@muPBHCG;?u1a_#P4D!j-oi7)SRh5 z`kasy^k*cG!OEbgrNib>=)|3MPA6Ss%VrnvmZt*?c%MjMx*{@0sI);X7YQ1@816)r z;J0l#^qjJPiK!G`bJV|xX^>weuzEVZ81Ci*M9z)SD)q2Ppbx?+92|zBxJAto3G{wA zg-^%pt@8Cf^Yu1$p-7;2!zp|!zTPgszGJ?2$kzjA=GF4`pXTcw^7U==^-lS^-zlLJy7kW`YM?!^Cy2S%Sn zQrJa*x7v2-VF>8u$QZiURzj~tnrXeQM2d>kypq!V^kAeS-RX9wJLPZ8$Ywx_2F%9Y zPHG{0(_rV-f9W+KU#un^kcssIefzmCNK>)Z1-7H^bh-_W4LoYdkRd11 z8%A#yQbM_JtUSLKWSX`bb8(V6!9v2^e_V!9Jsd%(Wai2;!4 zF>&aWI0V9czzq&1;U6ZngWcw&)iDUv0(UwN4QydR+!$$8j&ja)Nf!7n>y;mW0f!%d zO2?AXLrxqrWC&d+k@$gaA@%qBsMbSA`DbuC&G)3!fNV&dM1H0!4?IQsVYe)i>5XtI zA|A6w>(z23yn+eAv_X9f_l&OQWfV%0d$}q>^10&wh2&$c@$;+aHjf^YHMXxJP=#qo z)Gzw)YcWG|GIn(OXhew#H9seV%&4q?s|{XKJ=!^X41@>Vabonvc&)9U7c84se!6Mk z#(QsxMehT$Lt^>yo{^MIbaBMkK2io4(}8H80z-Hr)28Scn0B96))%rJ8y-k}Ac|m# z#I#5GLch-a;b=9x_v)>ehth`favo834|x}9Br=lHaz ze33j)9;2$y<&qm3%Lmz|J*@e2ab&2~!xT+*v!j}EoYKMXvg4e6(#KAFV*+0!mw%T! z@}RuS{<3RxDY_DC{<7oD))yRObWxC99`|;@gFs~j~O!L#34d|rB8917VE_kTMxtyS{T`i*E`f~O#A)eOuXHxW(%e# zBPk+*w%T%}TJVt6P3rznbrXXee>w{!k?2HYsVm!zp3&GrKHmhV+wC6bp0ZB8q|5D| z;!H1gIuy{)%m2{({{0oKmt0>n^|3h&S_I0#*FChiSEK$hiPgjEB6hCzmTdMoZ;kS;)B zc8FtGqpi`G*d+vios=Ptp&6xkD#24VQ!^Y1sGr=4g~}&4Y10?-6h4oK3zdeJps_Lt zc4|o%&Ja;^3J$qBFl0n;ut2MM+kD33zd#47lLX^L1&IQhNhOr zbqq31uQ_3!JjCwIm?Z)eBLZdN7 z9N@(e$MMR4G`5KYT#K?XKZ+BrMvjFu{v2@>?Nx@N%!a53)jH51JXwQ+sR-3NP;Edk zP02U++Hy~_sySXi%&(Gb6Ka_Rw5Uv{<6e9p+jCiakON%66U6|!tW+>vfIDH%C`aaV znuSVZ%h@5AHJXUnGb)`?B$y^b6F;L$$YcS6j5fo6L`27CP-~_*2It0MEU{ix8jpd@ z%VcU^3JI-W4u;Q%X8P~NY$y~1=wxhtXt3Vg5415&$LaS0OkXOPBg}MNv>ESTC_~}h z$3$-#dPIG(U|JN#AxSMbL1;unxl$ytMp-3X3(OUHL=w}ep&a5`aTMPml5)jSA(4df z$wRq+9v^N}!LOkHOK5cRPz0;+`a%*O^+dY3n}dMhU&ST*?6fs?Hf86`)A5h7C^a!9&2q>2Ho4xxdF6QIGh!svdD(f$2q_wS4@LgQ~) z-QO#_??v}j+Jx={OSAV2IjIc_2LNgsh7mPtl<`Zn^XUuuI4DDn0 zDWG$p6mTGP_$)X-%Biy|>f!M5aZ__r5(L2o|1acMePxY_1?EZ`OEH81OP1{zt`9SR zeP9~|b@yDS+g+^A={m_>7;(GRIb9RoQ=FDWJG@Sv^PRa+Y|Ai;u2KgjX@LuzZg(gY z3e6~i>GMqTDs=cCTdy5S%vEBYFD98t?2Sa zv>{r$=GNwDb?!nvxen>-NnQFE=j4cgI;U%#dx|#a-A}cw!do_O+_G`w#x0+I+J%2w za&d8So-^HDSX@|Kn72=za|qqRzwz$z&SIzAIlh=|Ra!clUpoy=Y~TH^@y9tuOI};| z0w8o3j$d#KdVa|5_W9gC-$dsWr@PqaEH3o9^L)-ir!&1yozq1&zqZ}!bf3F_T%FT3 z-mU8W+~b~HJXt%|osP2j=Ns;pIkk|}dB$>e&LOwD-`2HzxBR`wIk|Z9#=5$zyY{_~ z4Jeym+pW#f%ACc;Zue+C_v>oc?%l5&e~`a;@^*F3LHYZTmb`Z3-@Ep`rzP)uuei7v z6`1ICj$R&zULA+PZd_uWgP z`+UC1ekX=@MsZ>B6rV3NO+Bk?JARy#Lq1>Gl+eV&DIs6hax!vQ7r|jFe zPur;ZvX}4EoEx=vEqUX6iQG=ASkt$m|0V5ltqT^~I?r5!Y*kE@=bKkHeXZuFyg zywMByM18zN@lDH7E<>;OHh9bp(`|JIkJ{Tmo=24#JZg$>BG`d8QFBgITuxo2fM`&UdA~mI}1ZT-(;|c?b=MF zjhDPfe%6`M9_M7I$%cyE4iwT8=Q$iC%6Wu=d1T9&D4k7{xY01TtcWa^I z3yLqmasqCDw{PD*Fp>$q>-urkaim-3F3vNi!nDZGFup^`+x}~euicmrzs&fIp7>^9 zX1T4|FawiGb_O7aG;qEt$b$57#l?D`egg|MhONu(#<02F;CiyMA2CDYi@~A#&I}3k z8w!mFm5o==>cU^07q(+jDl9B?7CONY$ANni`8OJW%nupIgV*7~WZ@{%-rkNPV0S12 zc2`_jSU4GF*RBm|$+w||8jU&(YS7!qK>oKZZlG*Z zu417=x4Y2ilmAaJnl3Z{V({t;>*+~@$2}p9q1g4b*}hNeuh?uh8zjrVTCZkSSJjnO z!fkkeZe?xV&)U`T!FfqFEH?@aFFSRXDpblD#4b}BRG!t7lWG}VvFxyS9 z>;BA#`R2n3W0di}7A3L-MWF!`ZKtiZYoXvn| zpB84XsS2h&Zf-0R`j*rCl3%p-Jni{`Bypko$lIaH%Zpv!bJ z4y$9YFr8gj%S{7q2&iNTVz@l9o+%ogAdr6xQB}ogobEv7p_fNN^|cUGg3y7prAG@P+)h+|KkQ*c4UCOi})~ zQ>UhReqHsby1BJ|9a_CaUvp!K`MG||^fhl) zMW6dnRZ%ypzGiM;YsLyt(bVVK4Ghh!{4FkTmByKdQNO|6-70fQb$P{%`aY9~Rc=OQ zZN9E(pEX+dh_>(Og&2XMl_ms+d{cXZB$fv2ZY>8YcpO`U>5z zY-Q;c1N{Hf%6`){vwBrqS#`I0bIGUnVm6=a}Wi^#LWSXL&H^|ygQ7W2bwfz*Os=8*Len=KCWpy*Fs~V6= zucf@we3@TkM10T`W!Bv4SOYU>*4LEHY>w-rCP9g-Xnu_WT9TsF&McG2Ns^i7mDSWr z#7Xc>prJ7UhW?5IJphjb6a`{F9*QZT=y77sjigBNK}-X>gu{+eO0AwGf`0*DrzccN$*9t&{Wja1?N{+ z%VKz!0(-EwzOv3b?0acNbFl1^nu>~f75Wg^6s4*{_U32>F*BeT0Q6+^V&)tXrhX#ySVb`;ZZz~e zMX9cuDbbanD7plX^g+fkWjv?En>UV=aLSRf!9_{$Z-PvfcuLSyFRQPpm!%UxyC%Fd z=T^pgKEK8^u9z0D-z&;x_11Bg8TGSf>E~IGSCpEHvU2Nx1)??}8w|3n(-{ulhy1jy zVBOqW%Re=SxY~-E2E964d>K8tR~daAQTsqenNeRk*8t;$7|q2!o@kz3MS&B31fES% z>gJkbRbHvjrlS>QZgusg^(NuP3(ctHBt>Z~tE{`ErdrQ}qv!K$t7l${k4Gy?c~z~B zRf{r@R+M>vx|obCL-j1xRkJE3P)CEvYswnqs;D&IgY&Cvb?QD^Q4HDHsy07FJhbVZG%p_6s!EV8h$VKsZS zHAPYtrM!A3Dr7~esV&3PFva9yc14+g>C9Tm1QPXsXW3k$0&>xFrz?sn&!X@t3Jx%r z&67iNilP`oD?SZZl-i1!R%I2^CvSu~xUxV-{Ip1tRn_Vwm8dAtz+|rD6=hbXJ_j=u zrLjh5)5j?a#7nd^Qc>oWOHaK&$i%UuvyptNe90aw4{bXX%hu>rlqM-!BNOPqvR0DG zU`3gKUn^T2rgwgH!)RISFgZ1A>*9m)j8YWy1a=l?z3B-!T8Sg~Y{jyFj#11oC8x#b zfV;yCiOGRKb$kGPrz^_LI&x6OVC$d$Psw;DAN4j@q%t%O~U!D zaXEr1+s~C;%K<@5X$X?VOhKH1Gty2r(xx}_BWBt#Bkkh2e8Y{j3#W3x%s0YFn>Lky zSD9%UM%o2&`7)8#kLjA|R9-AbvPLV^_3Y&d9Kc1!jFYm6w{8B-VtLV<^=_sk=nSr^ z^UAaHyQp6Y4fk_E9_!j8k9Gz4)hR{4QnOhTd@$o%L>!s;nyCbM`gb^=RcDW|(RI<- z>GhXq0oRHcM^7XUO6nalBkdLAqe|m{VBHS0wg#5%1-2eFS$8o_d)3G?l6I-cQ^~$x zz=H|xFa4!3PCwZ#e5fT9&NnyLL$4X_sMJq_>E&|}Ge8}n!_g7@z8{u&9G&0I!x-Va z7qgcqi^VqD8pUB4mr!Y&g2R9sZd1f%hpXa_66~`Y`T)l)aDu3JOJ)Y5WZlVsQ%j~n z8HnE8md|!XAt2RH;mlKbIzrmYi$mtj;sW(#n%~VdD5H=AxlZ}DfVbm}1IBI+qWh}p zRM~CRajc)_S#=;(qnqhOczSvDhz;di*}?bXhP0Co>qS_Lh&l968%Rd$(R1AyNu^^E zLD8|!%6YV0l9 zn45<&A}OY_OMmdlfX^<9dfex`c?6!C+06yGBg@6bXM@p88R zemvDzGYycbIdB>tkFw!XxIeRx?K}j<5n-uVV$j9u7qXqN<1niuaM@=Vm!CIx%VX-e z@8N(2=?{QZ210Z27M8)r{w?ng_OW+0W0)|NL3s~gh|&=40%1HYhuL?ms_w?Q++uj% z?#9)^8Xa530Wp)QD^e|gj;8l1TO33GR&oT{CAKQAq&c08 z_z_!hGLILsL(FD!KOqKCPb5W*rE@^*aKa7QMnVLGDtC-B7_K&Gb@S?clV)JyUDoU%d;kO6IfTxfyK&&%{O&+BC#icaM^UMwg2 zN?y!=5Ho~zysm%zJl$DAVfnjETB~{j>MI(#+{pXrs?v&kn|1?@&)*yuEznQ z@FM++9|TDdf^JWLDnY;AsZV9sSyAm|U+B(yzG?(Z|M68xDB_X_oV>{PVtq5aNXuqw z#N}>v>>B2SOYT{FUJ2#;<`BO{O_`MF*MBozoC*JZhdP9YAEsa_MM{aXF~ROa>{4}* zK2bs+Sv2#myti;1zv^R$ba;M-gKy$~1T}-@vA?!d#tE-~S|-uK1$-{tycZ>9gNZy< zmn!ExJz~TCLxQQN-$EJoM8f`kJw}#ltF8I@FRR&ZG>bFJZ*o9l5(Ewgs!sxJyJ9ln zFHVLRVgqzK2l#3BPGTb5lc*)@L@scLDIx~n&t7WD=XMUXAy^y6fBwp!C$n8R!kx#s zpMEyed=F56eM|}Va3><6(en$Ww%g`!;4^iyX_cjfECmA1{RK+fWAoSJUT`s+CkWy{ zVjtP1dMVt^WX$iNjEw>mOu-yK8Q%&ts{KfI{4aXHc@j>O+xAk#lXVeO>uPf}mCp>c z_M_9Wa1!M(g{$QiN{d+oqXnI+-oqfuwtRJ{P6f(;f2?xj^r(*^4!{lg4}Q^)&d+4W zFeZ5u2emab(NK}Z^rj6L{4W;$=(dO_--_N5tLjRtzsPq;qL4}OvlCW zybdB*5M#~Mz!?DD-SW3r0&Xv&mesuG_t>B}fzAEG0CuE)h8MwQ)YH*|dIo;K!?UDg1L|^ z=(0*YA)AJ`g@cbEZl!vhUh9Eap4VlbxG11$2d(mNP}~Wo+*tZs#yyN1fvYY!+qhVr z)FbcIEz(=)IAqoG&i|ZSIc(+r&yV5BjeYx^2C*JoR_UjPV(DM%Eo@Kc4U%o0?rURz z?N|U+*u}wp{1GHM|mgC+-E5vAe0p!Rovurzi<^3-d zUCMUMr_FHppQQSAJS#m`yQ>ZQh;NsFCyUY4DO>T1k@O1rWfSZ5CSH#<0kKmyv6^@G zY9Lp+MArvK(nGNZ#1%HCuUnfTAqh7f1Ky2O^iX~dQ#LzJlR3ItJ?-qB?h_;FPoil8 zw}BT~-P(d>72V=Ry_(!+vzmNfU`_{OF=`dn`nK!G-*RK$b{pSn)!*xQS`hnxwnu&g z*TTi@ud&NK2Xr8o=Y?O&lS@|nZ%A|?pp=?H(QY}SgMxFm8@COfwv_YXczPt3GnM2z@2ipNK(!>m-20~64&64ARfneK~GA?uXh+%lsIr^UR%W3 z9HfK{YFVvOLJ6YDCHbk|lUGVfRTS~$Q#8{*+dYi4*-p{!Y>K8bQ8wFIn+q|bKBZCS ztgoOXKSu$@W%=9_TOSX99A&}2OT%0m$2HK_D!E{eyj{r7gz)r?@H7ZTffHFhJeakD z*!k0rqpeErO&Wy2fkDD0RB~s#b@I&n2G#-!pRTmh=ZYP9#4q$Rut{q>3d^g%-kd!b1RK{w;-5T=hCs-adO>&^ZAkj|M} z7qOjNS9f%Bn{mug8>H*SVQNYU}4u5RT)mV;e2f(@2UtY zdF7NIc)Is<0Z)cX?S_b;$;YAKPXTWIeu_!L%5he!dmsvqV~1Yt2w80i zoSy?AIdy0^YrCw1X}`A${u>3|>>AFRgB`4$#kJaJyvE9Zdce#&jxM)JoH%%ciH@}6 zje5qB40*5&@=8g3{?F6eT z1d#&vxRDEg_zt!sMwgb_NVJ67JfvnL4!nlw>++r(j>@T=&n|AoQ$i7fUsA2blhRJK zYF@6Ihrb;>Vj|nQh%anrsKj=rqsrOgl-2{Vg6v@<`BY?M2cO4|EXI|Vx~&BE5;t-7 zDeS_9Tl4ZcZ2Ds#h_wYHAVOj3_y4=j(UP^}+Zj`TF9Ze_Nuk7Ywol+7@8+}1LbOBK ztI=^KOqXnBSCmfZVQMX9YA9ujl)B}O!$F?M4zOI&#`Hb+u5yA zTPIO=gjy;@8-3YUD#p=DD#vA>qK(x{XkQynrjBFUNF}IdPg^S9Zl?~mi#FEiqc+^D zIGuHW-(k`+a16Iq50NsCZl!EQO{51Rsr0I?oVD4w^}~Zps<41)bbmy@Fvt+zUa`p# zD-TA#grvjtsLel}>Ha7#QqySg6Fi+RDIHx(zyFYCH!~fNbGpkp$aKzT4$|1FV!EJ| zMr5;-?KCNqPS0kVlnL%ZV|Q>c#4pPDD?!$Oc5_f2dysd5!5KFzzr!@x&l)`(Eu|B1 z3x-CsaiDvydFwK}C}{;Xu4L7Dhzls8geA&_pBhU^E2nTL@FqhJbg_fCL7CC0v6Hk8 zrpBE>j8+b5I~A9+j>@3pHc@2-)5FnDO3@pvh6zDCn_U_`qaeEIrK@G@mAsAvFyP65 zyY;oR*{+eJh+0=uP3q{(KhW{zOw(3M3iswR*|O7-BW(%Y8EvM)3v+2=1=9`%_NxF+ zm0!=bzlTG%r46Nxu&5rI4k%IQ{-;STx@I$weDo5g%TjoI?AUIQCsMyJ7-Z*QJO!y? z3~SV{14Qc>s!>tCv_h)Gdw^;O4LZz!K^pP|C6rT3H&t|M5G81KDe`MOsJWC<%4tsL z#WXmZW@nNOx75<$B{Zw_QUtzaHH_c_RI&)8I3xziDyDS*5!irE{(^DB+rb*8;m)97 zz6Lw0_AUq2X_Rr8={!h0M6f-^MhD9t9CB2$hh3ce9J@ zIq24M+0Cb`V-7KR`#J1}8AZ*f+1)f`g%09ufVh@}ypJ8{OdmCJE@WI6(-xehhD*H> zhyijnZdkc^I&F=XA`(LxJsvG(+&HA3Lfe$X>`>DV5tkbj20GhBjit`%9OMEu^&s&k zigd#4l~_(qrPJjd45zaL`d2!CU%)~3aZsDgJ&4+7%fOhrco>)}W~2bqWgdzw{mZpA)LflQ z!DfoCCi_CF?qo_>2r72$rIu2v=%gVX81nNvac2J8NGb>U5iyRI*f2tWf5_;SsihP5 zG*MtD*lgoVpp1kM$zDzub>eqIIh|dqQ9~;DZjjizLg~O*i-sSAsLz$W3-@H2R-3fb zt?%;2YskWni2<~+HAVOkc`3lt*fA3PZHK_ULO!O4TUX-!DN!T_&_k_L@v>JSQt=Go zqs?t85NeFOp9au(5irny=S7b2(GzVr{2mnJSfl4Do4uUD4&i2vUT9s!i)H%dHrz4i zW;zlp)8A&1qp?>WSaSv~hVpnesV&_Ctp_w~;w;&T92 zA2Uk_mGC^)&gDQpKg0pw^z`Z2TG-z@Mgm562;6X%&H;M4t%5p#shl5WhxYq%$n<2Z zM`lt_q^HGUb_p*%)|!w0Zx)1Homu{%o()hC8<(8=T2HS!vbz6+-?EmlkTe1RG@&-Kzj5Jd?z(pM7 zH`&E^UkJx~i>|9dv|x=&CjkeMNqzemQh(5xXe3 z6we6qic5&`13M=je{9`~N#8Dp(!tg-v{?A5ehkx5{wea7TKxbLq-u3Ieb(BI$#A3i z5QY_4R6l8zi^+{5hdyb|WV&A7VIzkxifHHRaQa3sbY-m2;nqd$pld`A9d7k7EtF+s zbw8jwS}c0#2h?`6z!HwRDZhRwzuqQ#=)+bI#__r+tnA~Mf0iYbu!BO?Oe6eE-$nA7 zuC^_tPg+52J=36GML3{skF;`e2>KmekDJ};->p+=g(#6R$~Ahqbu~L^qv)ZR0oS@1 zT(8NN?-M=r8sJ(ZzsO#KCrCa(@5(%Ph#qhVy9q^1|B2+>TBfV*P4*AKluTg5js7A_FY*t5z(p z8qlK!<+RY~3jwPqH8e{Lqu02T54?)@NEkPZ9@+yKkHGY%>Y2XS|lgo zyHr9qqohV3Q3l=IR=V!(hLKDkQ8@?b=C;-GMW)IkA5e+jm_{E{2Hj*7xzVUPAj#2S z)gMy{U9VUFIb{I)b@w)m#NLzkl@5l^(!Zk;x?In9go=Owna`}#;u)Qyg!Z&zWuT2B zgZ8v~f7V^wF!HDQ9uXz)N5)N8FaAKbIrY3XU7d-uU>pZ zC3KZe6yH$>*eQrYcxjofT#TcCsC$phyy$eMJKHkZPH)j+`9udOgB^5xo9u}?SS}@M ze-ZtY4s$E5Zu781d*-67i$LZ335(9Fp{JZY9U6Tu-PzXt6C}aG#6ZPA^wnjJTwR_P zu)n^6^O6kZ9y&Z63GdD9Cne>beKq`5!AWQ&!f4sHp;O&eNZY#Pj7FyhN? zhp|HJ7CXRr9%!A4o}DQLs=?p04+EAfN$Ve?Bp$Vh7e<*_mq-_5$EhP%y#h?ZQikT1xe6tY894C}LPn z&0VfgrPb`CXcm_52x>T)uGAO7BLZG9kcCgVU@`|N{1OwDWaxRmX_2dIdxA7I9&7>2 z`B~gul~6+8wB)lx`;U&=AqHxFe-gFdijqm@z;(>EK-vqC_|NY}Z&$WRS+hH#+{ZPrx`&{o4gcP%bDmY_%hF!mpRR1(Ebj-j^Kdbax`f{} zbShO=-Y&Eci~T(uhRFhJ#ai|v;48N2C)G1WRxKI-^)#IA$vaB zd3lPPr|}hZ33`93kHiuRd-5pa8FdzGWUFEq)C#^4+XU1!bp*^2DW~9elw-;fW|;b+ z*#OPSH+z#d--2)ru0}BkZ#xIH(|u9{_Hu(kg~c$68CUKvxXdcI5#=x?wBO-siFEd| z^puGdW8>7$mzhMKTVs{^e|sWgh;88`jF|9V7@kBf)3R0=%i7t6$@GQTBywpPCK2!E zO5WanF}qYB*$z{rb9AXX>bo*%qqY^Wma8XxhtB?83IXb0Z1gXISY!xJp9l5*OsQX!&0CGOx#?Q14&JuhZNY|}zq$?9lgm<>*NOQZ5dlvczPf5fEF26B*tc^oW- zHIDYTE@CM}(O0dhy8Y;O;fJ@#Ypou6UEGZVa>72YWT#Y(VKXdZt(JrB{4@vM_!Yq~ z9?xEws^=_qvtt-Ko+57*_G8{b3SGrso+xqTM9%6hEOG7wc`NHqV*Y*IZ8()gqUcwyx%|7^l(uqDnnOv4Qs; zXtf6I73{RIi^&GLRNIbz`xqW|4pZ+9wOP5Z)8KjM68-6^rZ3U0r=)Y*TFkL0o8^1EPm}L9{&vQSJgO z?>gjl>yt!yf9cL9DIC9@2+eABlOg`Uoha{gxUDS}!X-O6eG1GOt@4WI!6th?5UcfJ z^wW)Lu|U^EziXTdv6?kn46`8^eItfsu~x#keDfThP{#$h<6==WR%`m6hti_vOr|3Y zIsXOWrR!Q?-|403c{z(+=S^YyF1+7R^DYH=VjTTDf1!kfQbn#jo3TH$lpS)7S}MlT ze)GT$b?>U1OHG9_0Zx~76ak=nnbf|F=ravvzhN>Al z^>$ogp>hX04IVKN%loO=GP!^QJb}rvdFeEb|RRzKcq!zn|%M$S^09TJ#J79!#lz4pL~U+}L&a zI7ow^C}RrYej!Rkz4O{RNCTSgW}2UQ7Sl1PqAC-{H0p=vx=d`Xc;gNc^h z&DXIV4hyVdS6Yim&CJWRwF&pL(zZlDZEebAe|kF6Z*U^*M0~GX4cD_Bdaj2Pi)cp^ z)D=ieK8~UN!9>=-$^4q~o5YDNNB!F@WijMr{9$V|or&?Pw}%B+4<>Po$gG!-&c1 zf8bs8dKed!oXbH>#d{j3vR#a$H?Y3eWIESL$#dvVSkE{~RrxhPG`a=gC>To$f z9c-)yrrNckbg&T^4eG+ZI*Hmfn7F-6f8C9l5EQS_a0!Cyq^?Fet=hE=I@su0H=nN7 zvZ<@l(=d{H63b!tZ{067XwB|}!v^&2eRMmiJ(BQj3^oj=|_J(CLRd`t8N* zhYcQ3)e}(|P7m}mm~|9sw>G4pf9m)8`Pm`YTkTWq>8dB-?inv^skFPnqYDlX_S*r2 z3blGLeWE+Lmclz>h9tEKG6F8NQT<#1!=8^m3By7`k(KO)@%4j-m-Je0lC`KO{a`K- zxhpN?er+K4!^U{z-lWBl8_RnHp?u+HeYuG+MC{$7+g{KnJ!Aqdl@r>ge|^Z5(8Q1u z0}#~m;hPBCJrlvu67+%7r_p8I;LFhpkn2;8`RveM(8X=3$rx&*uFX89mB0sZO>D7A z`-|0^RdR=a3s09KvX?W&Ncyg2j9hPMVL}HyXoQ~0JE^8w!QtZ@K>_-I+pTJm$ST$iFe7lH<6Y$rm&qp*ACP5n0#Ft7%OIG z5WDJLrWV|OsFC&-7r^s_u54T>C#7KsDxj~l!w_p|N#jyXw$HT;f4aWWv+m5SGbLZO zY&Da<1DkjgU1qwyaV0Vz&@#}+XXZDI9@^k6+~okrceP&YkTKUH{{MiuF# z_UEJ(5HXl`)#rn<2NiLEE|qfVLrE)i2WR@US<(RA20$_}f2+Y;)DyqM!3m9?soyGm z)KZOlhnDO7?CPWrxzp=qA6A4cx~$t|m}zS)B)@13NPDjV`8qZr3u1Y{!hnoV*VjV3 zu^8@`zA)pM?oN7Q1lz&2mZ2j^`YtJhT{M3T<2Fz1!xeA=E-+JfjGV~x*~MGnP)m)? z;E#>C!G|JCe@({IvDO0ej{b)Hdw;!@e_u$#a7y`iL%qb*i%Gh~zM&rS?~6%N{@q+J z<=^L$$|vwya`ZXCvc<3JSF@LvCM~3|>N9C+Qg-}brfZXyuzs>i>$-scQ}1CfElXNR z|EbTUWl7n+{@#$(#9pk#qo~P}szd86*zfAEQ~c(Je|V<(Oh1chZj0qb@K0#j}JE4yMqk#N(x zx>SAb+1FpLV0-i?51F|Z56C!|T~L{!ivP0#@zBRHt?pNX_qVY`LRJ#Fbf5t}P}6Bm zzr*yU^(kb(xU+)h__e^Zm>Deh$DXohS##FVZ>4qeOptpdOB3yLBTB)1IUiSVPoy z+d=8v*UrHQImj+`2$gj6I~71(zFS(*-{DG{pDO<}rt&)!mLDmnNOHj^qWN$^kA=~H zf6$^i=`|+$(+lMPOyJG{fA@ zR)L2Hz%HW=X008l|8w0KApOJs`mFzRe;t_hhy9n}TZc}@2l|(Xcsj6&iJ=C*SBDs? z*I%t#9~q#}&5mAue>2v1{F=co##xOzE`U}{3FR<3rW0WnmtobWnH4773m&mxe|dGl zprlpoX6<@*`50IE;Q-y45c}`1?-p+QTO>uFQnwA*0UC|&H#MA&Ek-RKN*|Q;NwJ%Q zkpGTaD0iZ~!oyU%mF@fiyFisZnq4@B! zi97Iq1M~w_`Dx-N4hRq3&@`2)ZL6GxIG3?ln=^g;s|=e#dvS3w2estsn(rGfW-n_{ zf7Ov)NR3Q?*GQZwkKTk?9ePO0nYe)@P{Q}hn<8;Nq?grU2X(9jAryP~e`&T0H@~BI zJc^FfDIanHN7yb#(#^up6G$Bj_?Z6L3O_9{>>JrdEiX|*hZw1zO4o_Q!b2anmWq+| zXR%3m=!@1;YN?=va`f*j-pfJ8)o{avhpulP!(ax()FCm5Lp2RBQp;w!xvV-eHHr1x& zu$_O8i}vs^0ZV%XEL$+W!9`{l|AsD3&BG4DIXsiSVgl1&qc9kHe|;Pj9##XiLpjWg z)mhT{r=giomcu~nqMP-RcuA48Ee^AnID@IB6r1zIv)HSSKg40kQf-}}{@`YINh53C zPFYetiN+tshvxmpha&xhMyK_#olg3YnyVqne@*MJVa*N&$Tyo%a7%0c-bcQ|$)FIt7`2y^0n2Fk(a;dCT&!D8k zOm(Gbx<44}C+uYyjF)o|kUd2?I=wy8wiA3}6$hCv+l)R(U>2rfOXT$RN((Z$vNo85 z{1}v050us$k}`ycKCLh1P!TWVI;#@f6Z-u!4=^q=fxiQ~f4r+1lXx?u&~we19Awqq zg{w-_+57dVVdpk>g9T>lVQ}DW^GF8UxdH$c;S*my~aVI9!hIRkBvVL7KdoNySa@;4RCN z{9Fl&`XhZVfBoBlE#fDD$2HU>p>hciJ=Qi=`m^DDiz>w_4c^?3qW0H7l(|e_DB1Bs zLr{2BKiv@R7P<7PQZ78IGyaX$5p-R&8=|}F?9r$sU+SWR6=}iV_L4<4k4iUT7rZ6e zMc9X-D%mkFYYU*ldfBe3da>M>tztK*gOYY#fVE}xe+3-G>Pfau(uHfW>cD=)fO4i< z*zt-aIXceao6wtfw)4a@Kr)g27{sagMG^f^z5ZuN2^VlX7N*phlEKTHlx|PR0jrs- zv-Y=IJRFqw?`xYl2zS5R^*0(&LQUW_GeE9%hq@j_^kEoR6J3$ukE`M!st{>R%eaJV znQl^>f0#ZFry&1-njv68nk6*{6*1ihAr{}B4{t_K)=J20B*^E<=g8DpdMkufoHKew zMQ@DhyEj}4Q&lzx`3e-7#sypqVz^t)M%AxN!yVc7vRxMLh!v(6!(*7FfV_?!Vk9k7 zhoZ=LvS}uO*`}4!dZ{==Ts_hLsxQ>}3c(8g^;a3D~o_ zUs9BvwP~2XPHOAM6{Z@!AD+sHKM@ooX@&3u8*&jK6|?<=@KouCQ_1jlcYsq2F^KYL3xU0ltz)RqEYQ;P}z)0!8n2=dW5&UN$5seA@z(RN%K z<#rce0KVS}lerhNC){t;lc=@ZvQ-?ge``H-u&&3GAg z@5`eyE{217a*zW)Oy1Vbvu4qtDp_JUr|yI7VmsHu5LGMn7B0Yp z3%@4tDs|isyop`fK%Sn(E`DSJe+MaAI*e@Dtd8hnuR0amX+#ULg51bn5DFYMZedrh zPtE#nE2rTOF!qxA1#4F^bYy715Hr23&cj@wIo+lhyzNs1P7hs)vw3cIiIMb$lqie? zP9|wy742kg381dZj6#6OHIbI~9}Acp#Gs^4OqydCcS#Fhpn9|r^cqBHTGv!s%A2@=7c!i(^+N;F z812cX;TcRNrE=FmGy(0Y5b}bMi{Oh$ZHs^q;ijc+uo`=qz6OAF!X~C_2oj`0ZqNpE zK+I=)wske~Y!(?}K0Vu-f3LrkV6MYtCfxLOt5MHVA>AXIa9Q{o=!E^NK+Y#{Q2PTv z$c6j~z!`%6U^@dAOHwoF#3H(=6R-ia2LK%QpZE#TIQ3r-2`I$FaIQ-#3mSR?ZiftO zeC(jHMYJ`#n);VhdJ)YnWvcCjTuPTGE(EkaO{GlsA}Z))8kAkwf6hT|qdN33rIu5u zlzvx^B7jV*!{Vsn`d8@f;H}aDTTby?I0(m3R?k1eL2b^d&QqPIvU=trc`U(ogz8?R z{@GNQ$<#mFkml53_^M`N2Je&p(OxKY8kjC7FuEz+tftc1RyieM(|=tYh5*;l$qs~& zFwwyj-pmeaT%>RIe?z3{VMC;uN|!fx!!RIAm^Cw9w3#lEQ!}EExS&@OtsrYYK{}$1RkdM!ed}%y3iyEe+|5Nj@}WoN~+&%Ju_8d z$@fZYX7=~&&?tEaHI-6pDIJwfHKkO!ngZ3-vWQ=!bHRZJn+LKM{9sM6T?v?Aq?Ry6 zV6&P5?$CUQgR@lsp;@r9xmJ(H`Gg?jj7pGI4_JprHds@g96W;4h7;IJt&2!xgK&bX z>pOlPJG@Mvf46!<9MIf%ak0K?UnfeiajYj7TFKXo67Y-5noS)X z=d&Oqz@K>@dwDNRDp)e%+x2uyoP_;&0<312W06aivTOiA1+d-k!X&=F#RGJIo`6Yw zeajgAWeHP4278zyo^%FBc%;Q(S^q$NmotrAh=B~Ge?lxB4L{x~sdU;Ge3o$256v(y zcxX?;jzy#8*%qpTi{ zP$cG4Cjg|&*)QhPk!Fv;GXRHYl!sn|EOiQ2qH{UGdjXoQ!}^T_asger9S*93i&((? zEhi-0e~npt2K=eETDa*Jv(xYEz=oS4X$v>qVfNx}{X?W#xan>)_v?CMw3+SHTFrHJ z7|ZNUhJ;kej$zAbN(GH>s;Q$Xsl1ZL`GuRhdSi`d!D{9*X*8r+1hA6_C4B-R?LL-f z^eZH#dWDC6kkS(@xj|Tdu=^A6oFN4LB|*w+e=Sm-3sP-2(*W=yH6PSl>y{_g=)UGu z;bD4){Zdf~N?vkvg2fpA)nYP+wncO_7)>8)mCMDJoOW^GIlHg~d@ao`Q-{mcVz z7_1#UlwBt?sn7=ypaVLq_O3kl8|1+>J4H1ewfbBA{nT_p+ccI(QFQ4hiia~*NFgD_(wAaM7(jqg3z3R~JJRZl3SserWpSBSLE=L87)Gm36ow1K^@tlsM zt?E}L!gM%|e;CC<{*$y_1+lWo0g7ONf3zF1SZ-lEx5yqWs<6ZT6$k8vu%hq;#X)` zM2K?WI1F(Whu|)_xc*A4VGPf$ne5_aT);Q5i$mC+DaP@5hPlZ_CuQU@e>EX?nws5( zgL9nCRFTPaToF}f(vS@KV#7{^-N&`3!erxOiXw&w7jx}cnLsHS$lWi4sXmi9qaA*w z>Iv|h!r5Ri4Je0sVhtmR4-BymO3I*!hoR-E*m{MZq?^6!=|_B84pSr_dkru~d#z*= zLs7(oz(shVh=&qkGNb%_fA|4g+X-o@7IwC4gAkg)#gDU#;pepu?vKzX)a5oT9oUnA zx^@#UW@=n&YKI+ZRu!-69&j$cM#AIbM?nFlTs#Q_WqOgMoop3&49nvFwjwWkyD(wC7dR2y#r87zdhj)HX}pLRe;;Q;vtXD}d7eD& z??$u-FOzKvdnxh~;q1pz*eJywjf(4tSfgkPR1b(+;1)WcWIqQWXox(fmaXidek)kJ zhrN&<&Rfa>kw*@!&F3|XJUYEZ%%@2n7F+b(UeHw=~ek9X!0fiM3 zr=bbwF)eQEe`FW0m9@C(j`-HzmaW|&kN*e2FF6eEd?`jDQfidA%>?{i=8+wk5xp9_R9eM~POHifdMn&s>EJMOge;=C#R>%TW+exF~#V$AT>evO? z|BQ2066Wwqphe`;0i}e4B2PVw?vys+x0G^`N9&@QB9~snvzkTgqTLiN6}kFH)~F-8 zQ+m-;6x$!_9{{-v6s>FZ*baNHUj`c5+)z3~Vi)SSmk}!lMnKUjEAg|kmF%ZdMC8+LG}03QRfNMkdoHi9LR zs=IaN?Y)@sH;?IN-EvD`@DA8FOIVt1^O&wP%(lL(*vU0ggwo!_W-k{0bSXca?%I<7OB68&NVJsgGq zPc~z%4TvVDtD_#gb}1zykM=4{Nb^(UQY76UmE7wE#V@k;7uv6s(c~X*Un?Qp#{43 zyRtZDXHc#@yBOy_yx4ksJyO~Z%4M~L*4VJ^RtMqi222MZ7L|z9y@i|hnlodAJ~N`Q z_~65|sQz(0776>q zh!mPfcc~d-KD`-k#^<}#C0yj=Ty`#5z&pX(~3&cqJtBP&DJf?rh!(Wg9DT;Xtg#RmSFtwXiFg23l(ZEFX zRpLwY^L5r|{lmBBhd=2btYzS^`QfU#4+X+aJ?4kYtq)#?YIub?tlwi;!4&tY#_^)#+p@(3>WqxR^ta_iag>K)8AU(}Cfg1Ua=YB;aDBj!fX~f_C@;+f zI5c!V^a02w8cx_qClWn5C?&SPLsfcDKc(;#=#ZXJ;VPewT|%!UsclL*e+TipHCmx> z8e*x^;A)ho`f0mzSme^9(QazZ2f)uN<;eU*v{W5Kt=%F|PeFpnqwV;L++gdO^rQlN zeJ<1HsK=^Xs}_0c`Ls(ptic=VzUWqwN4u0FkxLIk6j8JB&3vO>vP$`db}5^*K_XW# z!x}xS?BL-zyX->r4;^u8JZ2Zx5E~|#_A!uk<{=nBnk_a#ZJVuUrdcM-*e(?i3~e6M zV{%AgM1%RkO*_r8e%Si3CZ@xN{MI<%MVIi$trUOJmc~-{6~R`*8ZDrq02qpd$fHAT zslr3o(1&p*tUOvuJFtz_wg|#AL}t0$aXCTqo*>+`umz^BpUD>hxstj9z7j&v)0(m5 z7SQ93-PosbkXXXl$91vxnUoe?T*)pB+C5RQOzW zqXd79`5)*_+5t;J=EMMnR`t{!3+%!H_;H9;}Ki2``-2U#sR z%yt;|U?Gr-yzL42sPG7go1Sb+$Uwv+1YWR9{ol*G#>pxqgU0qrKnVIWu?g6@uBm_Y zT=p{d|5OJUos@&*VGI@4wV0Gw3KHIz2ok=#sgy%FTZ7QiuOw~~d32k8_Ds$gL9a?n zejck+X?>GUYS`JKwhEcSO@B2<=UIYE5$HR4+Y7)Q+H56uuQg9u{$<6epUmzql1hYczOnDoNdxvg~!+eLpPQ-@8; z;C~^%Xrpbd6(Wxw5`M`7f?Oa3tv7L7K(89(f(l-2U1S(bv80&BQXI7%DjI32EgP8s z3+13yZL2YapUZuyXS9=iq4>*^m4dDQvFM}27ZfdS~8L^__BXKv#_k@G^JsOM} zYaMn;9T*c<&pF6;Y_ip(1s{KVscoh8%+#=QHn2FB=HXa~70Irn)WYItz+&+zc=_O* zWq=36w59FC$V2CXQmkRx6%dTnur5#nf~Lc{sf>f_2x{u4#BA2!!K2CS`piMt4aT;O zosM3pdy-rZBk4GF#euGnS|ly9m@^uNZhM`vuY~Suq*Fdz<*TKGORawtS(`V5DMg#H z1{{wKT)}D)J**y<=UMZZc7(x(HMB4SBz*&DH~f*cguwuL0K$>A(oqv z*BFF35eKel7W6800cL9j^GTvda~RqJpDTiY1%>T<2V6L z+)%5jFqwJb-Tx;D3pjsEF70LD#<@(_gr!DvQ1wfJL!bNujAHob*kH@qBHZ+b+ziQMTAKjr^Fc9^ zHo+i(q$iaQ;idy-jt-dvtA}0g2g%>UEzkKcM*ii<0O_%yQ{R7mN8)n|OaosCrp2ve zbVpf{NBcw-X`4v%a|gQwGquZLMR`nJGO`Pf-mY8DkXXFx5Q=vD;V}kt@n<&6J139n z+K5M_(N=1rgN-Td#TK*_3TyH4ae-J>I4ll{tqXSlu?Kk>Y^YFF?NlF=c^IbNTEVoW zwSwW*3n*U^MV5b&ZjOP|EIP`FTlp6=itx7Bx8K2B>k^abG1V`!SjtQVViIfgsERmG zpn5R9boPoY1c(Zk;?%o&4aTKbBZE*;kb#0JViH}U4wb=zydsOf4OdSWlbEi>?h2fF zZ;F)iVx)WmFFoyn(a?V6m*tVw`j`LU3v2Xbq?4Y+HjIDBVs(*?J`Z=ZoiDfLCehp!+HEW00-nN^IMky9hRw)H ztOEvoJRMmoCeaf%h}3STcqn^$6+oB^5P}kf3*ta%_%&?oL;G}((Y!{> zBNcJ&#{evjq2d(UE5W!=2V<`UL!)G%Vh!MEjKP0V*jG5-lW^Sj%Wxb(2Bv~|IQC08 z?$F`bZ@`gY!T~7s0htg7#e!eM#;0h6Zu(^?{*4SwzIZ4;lu-OxhvGvW3LKgNF5n}s zkH}-uI3Rv?NWMlJbnPz#@dYw4JsORN;xh@wavh4#bSQLtDd3=few^HtwDCZnAvuDE zXwiQ!L(+{5OdESaa!5k5Scl}00ZA<^w-S;;fJ7gcwI(E(v~z!LV6Kj0(jJm}Frxnb zgiNnO2BtN=AXyZ}l>J_jQ+82QpR%(pNKT4Da;pgm=IpPK2;Hc+^Vu&$vP{qMmtK%u zD!_ zeodb+{-Xweit#?Q*I{A&s`!5XD#q_YH)!84_tOCE%3l4vQ}z?v16dl~X<+i zBp)2eT`nc9Jk0v{B7K?ly_)(d1^$0eE#*Te#(e*0eBXYR`ij6{NB?5qbb#LO)wgrd zx3QABo}=^D)iDgeFEOlB-m86v;zB@?@rzItOANo#3yMDiic=*Nf7GG4IR?ciaZv2( zGZY~}aq=%haj}GAcP}VP0L3X1iV_`)WhNA~*yb0L=yrYc64E5o>$Y++iSBt&b%{xOU_JmsMW&53bh8D-x;P-( zfRGsy2qM3j#DCV2{UhD6&+RX;fyASTiVzT4Q_R+L|6;X%r)=Gg7~?K}T4ItmM4Ep^ z7VVW}Lia^dn0DJ%unX7Mi7br4L=&ob#ZkLKWKkp&XtS-?Gc4~#BO0}=6j@owupzRV z-qeXi9ZD?#G6D0jWu=%z34Ya1cSX9{A+qRYKrsntutnA+6aLUG7W^F&eiysNBEYU&n~rsz#m><)jK+}o_iuTXJw3-!;TI*&nybbS=Zz%eTiDt;ZG z?a`0eD+%+6;-@-mt{#Zhv{ZIO4nqKj#{%43-~g%?%Jbe*E&o9QSuc!Mh%7uy-<1s5 z{=95gjq5NvZnvPjPSz<=Ljz!#FsZx7qbu0ItI~(*e@|U>35M>NA_GZPR@Z+PthT_o zQi5T24JRYiVMp}7U1#=Fpouulf;nI`P#Td;3iXTknXZ`dEQV1HSMomwsE)9$fK z;d;$oTs&QF7hj5L^Mg)WaNF{t?@YTC|E2t-p8R=aHP{N%GMk@=V03>zi!9;*IGnKx ziY%ItAH^4s!Np*dlIo;BW)EP&jb_#(%QodheQcLUUV@cgA6q$s8hsq;6j`)O$)13$ zpGEeYEKj3HqWkLwMD`D{E8?810)wB!iPl`c`e*2 z_gYx^AZ`p#kDmr-8`FQl^WRT{$ECV3&K$#u790oev*6g*dki15#_$<^46PB&-C&h@ zJr4G#lsE!>JSr)0hw^_zf)7ae|E`!F_*)!D-)KRzt9K84;N_S=Pw5??h}DITSfSmr z3kHY7En)>au`P;X9hF?0X<@YYI!gCPrNsJ@0$E8eRL${Z_NafzqI;rpIek?zDDfxj z=~9tJ59*l~MXe=OqcyU#Zzxz(*F>?XzM=RLz~HV(x5%O%xsdF(aB*J@7uz1RaABU4 zcI({aLK7DbtUQCM%|b=mLspr`;!*J~=HvM~F8&B>w_L?e#Ul1ctYN33B8ObU%$5B> ztg0tuRbXav9o&DfEQDlsM|2Ek(*dPOTG?-p=5q~9`7E_5Lw<#8pD`EpIs04q>_5sj^6OsnD8Gf;g6^DSeZLz4}MDL8zi0Y1yO%7-S=ZUze1<;BfmoDM|83A z@?Vr2LFbEgI^Pga=ZB>o^-3G){BQ(xex)sr&R+&d^qqx@g)vlY+hU<&Wp7l3O;kV$ zkj|Xus+snvRp#bjK*b{x75_lHOn>_^D!z-zDSx$;e1Cq*f32fp$*-c~dp*-5@u>J* zqT+gqiqC%~Dz1-5#ZG`kSI9#IU}y(pDr4^BR=2K~-O>e_KiT4#@i!64jF;K|ZT%~lJV#k~gRaeY0{#XhVxBptEbxQxzJ=5C0G{Zk$GKmQ-Wen7&$!h-#y z80;NSTCjhw^b*C6c|wPt5Z#7^&c`wWw#oFzA1xwp>lAg@uTa!J zomlSvRf>8?&vbs=8uGI2XQw2nmnA`U#uJniZ2Wc$3vb1+khb0G(MP?pkZxk346DIl z3R~m2AXesII1ymbU^#Y+=_T}zr%2rnexO(YwjfQPL%mgVEE3z%8{FllF9^N&S0R{z zpIm<|*VdUHI$+C?)(YAd*)Jy1R+y7m9ZuUK-TKNm3}8d}3VFmNddTYYKVp3jJ!AFx zV-tQ30MG|)9RO)}M6O$#Z2G$OTx1bGK5Y9!2k}QL*xkJi43^d)B}=Ir^fEHgQ*x|O zxxQxYjDu{41=$v;t8fEZ#f~Un45zsamQH_2!(rfJ9ICTNIZVwd=6bB`v`Rk*bCPl7 z)60P@Apf&4qRC}3T`&C!ACMuF<*={gYP zWnvQT4QE1J!2RNNB8%=tKntMgkqG$lV(Nshhzi%LC1Mi26;71`z@6%P0P=bmL4|*^ znC_O%Jp{Lhx@JfY^ig;bOhu}nYpKpU5gB^U>eyRSi8Q92HUv=2MoFfJ3@_p=rst&? z{!j#R%k$Fgqzf+bx_8?1R-JFlI$bbJkU!qCOxl#U=k>O>qWwZrF>?zeynnm`@4Wx!Bfqyx4n z96<6|{V!hnLFgny5si`_h!`Y!pyu2&Xe^{d5==xP^ z22N}*lV`XB^6x0La9R!*P{9}`XAaZUe5T*$P-Q+lX5(qHPj7Qy8z^HPNsPSKmcrD( zit6++b+9^=G>qwRSY{3=IJ>e;WYI1$w3zltSnk({;Q=*c3fh03f#`09OrOav z8GzoPX7C!OlNPdzrZ)pF#Mz{`+ol?WY~k}cH3Nsgr~%Ww5Z+|K%p-amf0NZr;UG=( zFzr`zD45SK%CC?wll6WrktK|Vzfr5u@N{Tgg-j2`f7>H#Yv3T`A}tr6f~T5A`V-w5 zUBq-6;6y=0vHB7HIuL)nQm5Z3khC<~qP~S`bGC=+u#&?vAPHS(%OMR{lD!wnly9=< z+7h|LFRA(2HgwSd_^(t1fX`hm!I0m-jsN~90w!gYUU}sN-7ImqR~Z_^;q{bL$U#~d z-H%HkbLbxm+W#z)DqjsW-5HOH{Sp;898XWnT_QT%`jer#pPGO8Y@R{$ae$SMh0sXe zRQ8fPgK2oVJckx!`kMp@GuIl_FV$=b@pyzmS;OE6>PUK{6)NglQ7#JU^;Vp}pry7V z`YK}3phj2Q_R1}nDeQpxq@AinAsuX!4DNa=$E=)((;9_L|Bgq}O3IkRL8jCET*?0* zdw(7tReAo8<7a=)ee%l5f^{J(E(Dkei8=u$tpl3TOu&hlh@tJECE_G70m71C7P63; zK~RGh+yxcXxPS^)&|>RW!MYTyxLa-Aa4BeA>IwoXzw7m!GiN3UHrT%Z`TV|KmtoF1 z&vHN8z2EmE@5S0#a!M`#dg}SNRsHs<-(mIpU5yXw=Xihh*W|NQs^3qlj}lZ5C%3VM zdi8sIjQ{X|dB#Yl-+3O^bWN_rNMd*5|SAM73Tc+B(-q;CI&ZHHL7yfkaOV0e* z_~0SQH!9?5rUZi=KVN=j?HnKUBc;H`UizSKxqE+Pfsr6d)^vuU|4vQkEbEm0DRl!q zCPdwNa5K_?;m>uLP8eRFTk9Y!`@lXY`A&m3ut9DpIch#9@9Vj=!|6xJGHZ>VRcmxl z>Kd)%{K_V4jqW8D{*g7h$6ljntu?yGUZYKH19DG~HF{R95#L#B^t_tW*VP&op$^T~ zu;+iJqJepmk8%Qj2e|@yRrjJCleqKNs*w$@2QS8uGyFz{{8J6)`qaTZO+e%i)?l9c z!C(ej6iuCG$o2MM{>j0}^|DB{Nt$%MR2mg}k^EB);d)7Iv#tCJ`Apx*J!X@!Pu05h zpk1c)+08YFoUabp`O(~-RP1_1#rnamSc89yVpYa4`Nriv6M+*kk(nwa)=uBKkTHu} z>7bpeHB)BSf*g^!BBeZs{=J||7$c9(&H2y1qI>pd%9XLQ|JY%{9v!}=)4bSh zjFAm{j&*EethTjT>GO-IU$e_93plrqkN@~#@^4fZ%Ut8uR1*EoMLw?Cy% z_a1$|>kReb#8Bzk_aiU96$AyQe5_{u_xqalq@~69 zY5fh_qrXpea;ZE>YxgY078zjDLTTobhYa zjE5B{EB6UXs!5#`cb>EvW8{1r6rQgtYmO2J`a27j6)CV3$W8^zg%&J3ZCE}?!g6y8 zEZ6T7mOZCsk%Hyx&VAvQi}@XLT?!}z=Tqdr{xxQC2!lH>}6VRVgbki zbU=&0f)rQ^WVwRnJqwoQHY`sjVOgI7%eNgVE|NWP#h%l$ie1U8HY`7!mfQJ%9kQz< zNr?u^Z3>jvEl_T=L3tzz$`dJ|Y}+R&drr$*b|o*^pzLK@e#ZikuTx+tkW~tnS1edo z*|6N7fJI(0r~-YVql!YmC5hgi7BR-i>m9jt0AaY#iZt?@XQB?~YYeIA%<18@_K;MP zTK~24W((o|z-{dzS;qqJb|n3O)&|P`3a-C&HWUNr5))ov43j^zj{J$gArDG16FZeEJ+Udb%uRTv zZ8mH@-#Z;tbt?y|FjJ{wtfe0%^OhuabSi*6CSJxQ?HyiII_@)u$ulei+1xQs#k|nV zPS(p7vQC7RnQ|%laT6AQQSb7Ss~A4{ibDRw@dElvB7k`b7;I9am@1RGuaxeV`tlHb zmZDNk7RMG_ZE4E&@v@axWXM}8aw{?T?zvC#=1;2A)WKNWsr>H}?vBPVc~mJe+zCg# z4Vlg+_&P1=K(nSZC&d%*Ik6}551s$L#`JM@aPI9)=uDqZI^=bKXFI@rngYxpQa$pX zQZ9M&aOYBMp7v1M_b@V3`#r{vmfDNL{!a>$2OLNqPeL;900)vc(|Q<@?ww0jIA`*C zZm$$G^X6oow^E>gvU6P08R-EF`e!=tOG57$7OWl6V+23uj&z|*ey2w8lrw^L$q{Tm z&>6w2DbVcfAT;uStc&TL#v(8q3~*FCZjaM&6)$V~;gN+Yx7)E^KDq>lWTgV)c?XE! zsU6lYvBSC#b^v*<=Ttu7Oy!^Um`d#sr_S>!z`vY2m8-3({Kx-jDsNJwc-0xj%H&jP zISw=%Q=qwc?*Du$mntCMc7V9C=TvSu)B$9D3LsZ1YN*hEo3haT(ip~6P2Bn)C-B&w zi%YKdN}@6OBvItb9=nYeI^w$3hL;UpG1s5Ob(bn!_qm1Z3glARsc^5n>@4Wr3j6%i z8OSw49aTWL9V9m#?hNG7l!3gLy1vV;_5JXFw7!?Csomm0v^2TC8;)?Gc_0OvYybD_ zyHEk~sRP7+Wj)t--cb%9zw3EawmLI=lXX;5JbyMPYu&BD-)@I9G zs&lSWt^Lr7)_t@C2?Mzkrr@u7kcCSUWMS9;fGq4*!qRqUYA#By&%9g*m|J^J%jeFt zT%`t*>NB%BS?ji*wLWrcEwySn7Vwe*PERY;RMPW*$;bV_yK^az%seUP)BI=|c}@9F zSFGcO(X9y-+Jl()K;=ImMoW{Pr5C#7D>Z&L9O5#`t|X&YGRT2yY0r^-zgKp8$PN+xJ!l{bkVvQU5dv{k%K}`rTBmDNE?}9m-I! zCC##bgkIOd&G=CoEuq(SC`;&;G}{uYa`G4za$QFeSAg$5U@SHDdDnLA%^Lc48m*yA zI)2<5%GRDuqivN5!rY+gL#|^IDKxWr3f6m16j_l&38F2e$o2nwLV2ZQqjYZ2RW<9jw<=wS7bqC}rP#Pfh3!1<@7U`H-%(z1ug_=7X^oa$>OrnMpej z;i-H&gZ8Hv+J9iVdM(W|Dvo`M_BnXrlUcctG@8jE<`TsOv}d#jJ3YJn)>C=w1~2OaOcVSXAIrZn}8u+B%56LZ-$-MNQ>F{MZ zb01b%CijQh#}W7*W_8;FZ0XBQS&2$0<6>?x4I%CO+=r$_k$#!ME-&;ZMscX4WZhe+c6p5ke07ZhDS0lmi+sNZ9ZVH>5*-y zgG7~yuS!|slub_J4OGz=C@bD9^*)`y`M>;HJ?E<5A^zt7@}gFc0Dl@4^4Io%T4R_# zMiybGvj3D@HmF_gwEu8yfy8FGJ8gnv|G8FKNv707a@6$hX!lF|=Ylqv9~r~s$u!3n zpm`mH^(|D^Tn~Orhm?iJ80rk=&R7`|5pORWiUQn27R(qy1q<)$N(ddC{FjV2g!$&L z?Kw(#3mA;IdETH#Zp~b!k$awhBpIeG?NF*=74OCjH_F%MT~MFV-L8CX^#1ZT5-J0! zdD9Mbd$c{ND`41=;Yj%XF0xE{|(Nws`rov^DUQ51WD4o2g;98!9D^)8&xagertp(SHRJh(& zaCKX7<;&X%xE3h5q6xS@Q*ikdTo0zgCHKS@$P3DMDMbmfrwI6;MKApvY2C%`^`#og z1MNA=PNew%)RvR#4VYJdS!BMa1G|#v=y9n0@0dXK1GO_RovUcMtvTr8zs4~6he1Bx z33Mts$=O_2s%>I9TU|Lfh0FLv?QOYs?tjl^yrUqy#)6FYr{p#t;CCSD>bcDqtCeB# z?P=CFk2%|XUb5E0p0&E1TDz=TPMyukIu|F#Z1IT8<|-cXeM9koh&Rr)c*J)s3~}?^ zr>yDUFNMW@;-sLt&?T>_@v~uzM||6Gj``+OoblhPlJC>sY+IY+vMx!txU8?+$YouY zPA==~HpOLKlAg+Ck*x}##j-Ph(Z(!Zl2$Jrx!_fNbT*sMEq4Jck^A}=aT1!0VX}m` zG|LhBklHGc-zisr7W#hmkh%g|gvVPH`Cn}ov!Tcuufz1gltVs)2czLJPiE^oLFVn< zc6#+aW?{e^k$)yH9hEFz@uPf!qP6geo{veq{asxPWK__a|7siEAMQ-2*A*SNxsDYmMpuGTKd-=lv%joGejc4)+Wp2bS*WgA zbB|^Sp=3Nl0@%SR5h#+@q{vy)It@9hp8THtv#l0i8^h#Z=nwN9cpUY~XlG$x;}&H~ z&b5UI;8OZv>-H6S+Np_BkhjwNq7**euuR(noKLcqJA~S(zraY8J!NQcg+V?`v9!w`W+t`*MXMaq0$XRoOoc*n> z2RZvwnzPTV%Mt^XPu1yD!mdvli{5PO>8YH=gFU6PBzCn4!>6u|2$^zAY%zQ)G~LI` zIB%kYRc=eCf#LPuHGR+Cn^v0Jn-%d_I*)44pKqk|1YO4&hAltv{Cao~{wkI2&@+W6?QiKx;invf={Lb! z5f~ks$6WPe$fb3bDYu{1ZDq>yX;XTVPpWVLywG|0omb1!gVIP;=IFjk&U8AuQ+1?t z3?OrPds_-;HI}$f&PQd5F$OZf!)BrOk{CdLz9XZOEYg#}C%Bm<>59u**_Og(?MNe+ zb&)dj==riE&E~Q`Y$Iz(Z~N=j_TSOYjY=B2J7vbkIRm+iS3{_QSd-Q7Fx?JvotG@M zA~9NHjO=bt;SlD5=t3^+`0qJ{uhedtug(?0-IWBl`d1FPx1>Nazas^b@6`U1h5rM8 zNIqAPTW6ywj>E&`oAgowv=cq}8{Xq}7{S6|KI>B&}vzJTm}R z+1#o$B7EG@-c|KFt3DQ^0Bi+VqA zjq*^N*Em&;@{q(Rm0sg&H60t3|^PAcTH)-t`n)bFC>nm&$RXdfmq>bwcg#`xC{ zFzWs7JxTSSp-A;(q_KM^)sMm^)o-+>lIll5QvE179#bAsXU~*7_l8kFGD)hJwkAmR z2c|=+g9(iKQfm)Vy#WrX-f)h8Gn&t>ZH^O-G4l7;o>ZDK`cEq;%@&e-wKXN8=rItZ zjSBcbTEHJKPpY;1d+UFc_9*85=Uy2b@AR5N7xw6NBX&|b=c+Wu$P1~1p7*1Jwp(8H zql13S8uYWNgML8``tHP_pHqW=zL$gkkG*oxPOmA0-lNwSu#-8=jWMz*b;$cxc-+HX z`YMMbckFA(|57%!&#Ya4`b_GWUs7Yf%Np}>@={`#UZ!?wQ$n%u0hl&2pcFBWrNY%i z;j!obgS?~Qx-k{55EB)Xw{T7nXJ)4b+n?#W z#6TB*kkyGU9mykKGTk}y*Jt$5nC(=}viKs?QYCacYJu)#tz{YHA8oiVP_`Yd zWZ9Kg@FE4*4n^fJQjJ+gxJ3L|^$Z7y8&q?aW~Hk=)h}Z^^>$prOWXf@zl@L78ed|~ zlrc=cOqr2c4ltL0_neUntPNlclX+?osRp?2WUVXI5bPPT6C7=5Wkl@;&I4q9YYuD! z_F&Rs`Out1QI7exV5`64rrGk2dXm&9hA!qgvGABwhU16@VLc zWH?!Fvs12HmCMYBv`{aThdMBr#H@#Oq^hdkwmP@i$1ppmen|yW(y*fV#|tyaPQThp zbB}F+y3@?(4G1(2Qm|0wui`v4AbCa=?BWK8tTSnU#ZrcpD5JKN+38TaCrYipbyHF=l+V1&U)GZl$;Z!71@2I5&WA5p0-f)qrkfjUQ-U`!PqWd%=J zkyS;Ei)yO{?-;DZ2wK(tHYZ_52`5^6$;?MN?qFEX0$Ne16eLUAph7C%;PT0>8CGzU z3Q_rg^BnTd>oXMZykQRQSSp}1A!;1*h$U)pC2!4Gq;|m@bK0#(E4Jx%HUYUcgF2BA zMG#Zom_s^nYeu~tHuDxY7i3AsPOk8W3XUbIa6C7MC;VOuj!pZ3<7#D2lO;ABA6jrM zvElf@f@6t-gR@`3ZAm!z$_n54XilwVMEcTyOe#k@oWt=QPdu-N3&JPyc3N!E%KOug zhezVMY6$~mD$POo1OY6BkI8GmT=eDesCx!x+V38;|Ft5xx%ea55&|cn5Waj!{3ZCj zkaz)jXQbzJu;WBayxgoAKJ(;~m7~wUMdA&-Rn~_~C>h1zSv>dh%Ns7g{L;%WzZ^|} z(w2-rk2+)N&LnBGG*Ls~GsnM%3GkWI!GYMajvP?A_IOkj@;JGbMrkm7cozYj4G(?= zH_G6aIc0*NU=^q-rL9XpVmksi;w}usY2fX69(5&!2l^P^SHOgPjpiUzI+r3U4eAE=vFaB4^hPM^2*5S(r?9l>e9d}lN-Wh%s~LfCh-^c0*r zjA8OSN@$SRTK6tEF-_L(7T@F)*;8=(cWgaVUS%lmYJ1DLgqqTnTTKd1Z?w{X30OZ) zZZ&tp{p~QAR6*yV3p2nQO!;pZrWi|7aUF03Y6m-GRMsb z=rtlc&!u(&e1twp(ss(M+9?Qsz`25Yz(S{uU739|S71CZ%+PmAXKjKJ+mI~sEjK?e zk~OQz)IEd1Lhy!@d`ZdlaIw?k_nBlK!>BGDlhB5BC%=B7V4koTyx2oO`y1K>RwUK_ z^Dc4P`HJl@4lSH)XhZVz2mIW#8|}AF@1R{Eun*aWfhx7_t2%V+KusPUymP62BW;NYP$WP7gMHyd;yssh_rxZWE~wgIt+Orv^Q` z4FibCjwNLb*FvJHJi({Uyw}X;2^{kkqYKCq%w{{=GRYEbX`xEV?(KTjH0WQ^tW*aT z@@}(ouGqVC&!uce4Le>0fkHW)OwvDwm}^1i)K=TPrLM;pNof+?AP+ zu(T9Gj#L~#!)mxK3sfWXFXYtQt`lT`B&Oq@%zU0EvL}xZvcijD^3pgx zU&T4IEu%u-Xs)FT1r1m4W%k$mTPCN?S2(NnCifp{(2X|LARYKvQL%tS&3HA=bl&nD zUmA?_GBlVA;gPm~2GUB=+wNBcDdrsg>Z_dgKgsHwNkNw8L6eFZ(i+{(J2$zG0}>l( zz|~HbUEDxDtYEj#=}948%1{*IUZVEBtJYr3uqnjT%{ju{HI~WYxeQW>wR4nH$8$t} zFy-17qOd)jIyPmILfqG!pb&q}awtSgfOaV9CiEprm~gV&OSD7n@d#04pX=$=EqndIIWCU0BNublJWn+9G| zYjdju$v={RkPNuqf#gyf61AU*h-hl-YNp)22fkCL@PB9Vv|q$!{83ZehgnHeTfnH0 z3!7K-knhS0%3aNg1Fq1R>`LNG9&qx4d2r(lRqyKNGDTQ7XZ0tNP8_%m%bWq+n62*I z3GKy5JYadE6y&z-9!BC4=ac-7Gw{DYu^VnkbS-~>%I=#PRdym}%w$GmA0CH~35}um zPn_IbxRa;1`$nhwbJ=_HcQ3W{JiWJPs?+-xkKNu+@5)U3^looTJ-xSP^7OvZqE7Fv z+_*61@#ejp-W#)ddf#tKoZe;G&gpGSoZe5HdYs-Bna=6m-0h6!Z=7sfxAUyZ#BFc< zdsO#-@^Z_6zwuY7VZG3jID&U2A=z+?1IgPqB#DhrB7T2U16i-MVn)_G?jMh2d*MT# zyw#MlaftvSPh}}ji07Lr|J|)9*dVxZ8a*0(36F*iw>q7E!A`l?M5k~Rts=sQxZ2=} z@p5{J=1Q7k5g6iC17994;dNmLI$}~lkyMI*NhGZ^;G?-klz&wXe0slaJSH&zjsT8< z2dBfQvX)fCr=+2^)NAYW;ZY(8o8bRfVoz~u!Jgt2i#-U>A4=|MHuFYHr#~ohe{d{r zLAfG9=6HA(cU(UEaymPbdAkmMBho~^bTi# zp6={pA^B?f%(LiYfHUC(uLGTo5qMS&Y=pGeN?N3Z4l$BNGuJdr#S8t&ZSa{#kK#2u zH<4GrT~+qcKVk%!?CbQC;PXTDRfX^{35==|zvt^Wcb=8CSJ|=G z9#4r=;<-VL{w=~d1p#$;sT;nD7=>zoNR%gAwIT;sO1obzUWEk>ci#=az!~6eWCKfYahp>L*cv9@*5#!6QuxJo0E`4?OZ>R%JpoDOux;X2Aj02H{Ry zNRtKAizhUymM6jMS(VC@;Era86X;yy(H!DscUtZ3#Ie|-?$O%w?_WLTEoWM=Z2{iQgl!4si45TYD5Mzwo(44{vysPF> zZf*YW5#ry}`gA*xyqSb#!0#PMuCO6VMTi$QHV|Q?6($4g(%3ds45xynu+v5|6&9(y7^a^pZaLRG&hBmNpTSevnOB zfI3Ze28{~2rLhcVKVz7@)~Bbt*oJk^09J4SM6TWNsmuNotoLb3Zty4^M$AcMNPNcM zM2O8~#iKWio?yn$f=3z`6E{nG+vSb7DRz9W!;a7UgVX0j2c!`9v*4qWNa3lIY=lcI zJn!set~Co0B>(0nnDu#oe{>pr`2d@p`ASc>go_Q%N62dj^x$GPJD=oT)`PDFjY{rN zNC7htz-yqIs>gZOw~>R5e-5`~zS!7^COIz$W;7)>^C4&S|J3?sZbGQqXo9%q>h73XMleUVSUIpgvpe2-p7$7HGq#e zeSgo@fe+PiA48#=6h~wo!p-WwOE>9*BKIUSq_)u92pUka=q;tWS!zZm}Vnk$a zm6#Dc0grjgQ0jb7=jF;=yNn?E@%sJEv4Y@0#$W{DMx0+_qz=c)C9X>8v-=*2t`pIu5@Gxb9`7Y{6 zZH-Z~G`1M!=7BIn2ph*iKUqF-?L-%N6TI%<2D1V_{rDZM1xE9jB?w>19gl(HDn{5a z)?iY6FeM9vT;rs#N1s9kC^$=x{GiVmM^0=oC}%W zRN7X5UnEl-E=QQR*60Ph;kfLU{MFeL@9GMD`H1(}#w#{3a=Xs6`K3C({jIIEIZ@3k zNAvWA=qKlj7+xkbJfF#BA>X?yxk=8C6@Z3cQ;u7QFyDl#Xa_#FKa>@4^0!86}U86|@yy2A{(FPVMSSPQmi<`Xq0J$`_ zOJ-L6UJlu9jFB%0r(7CqH^#{4_V0qkZ&S9Z`ufqbRijhI3d1YQd5u34Wek`1)XP_8 zEwjri66l3ART*RCXS~$Z3q4QH+r@Kd=A%yLv_rC1A*2{pYGU=XX&|6|>OwlkD{Gd2 zkIHC$khpdtaRZd$m2abEdc>OTlIQJ3@=Bh~I~ikSyUV$`!3*hP>RAr_d)I$+cY_!D zJePbM<^3Bw?Zm}iS&&p34|vgmWdJG57|6G-VnVPW=7(=OU+hwlk(KkxJS*Y!d-$Zx8!)AB7=F8KuBKf0ArRp4>IYV<@1cY!`ARj80Q94Gv!`Du)acy%wfPOF+P@UT z;hSu(es`>rjCUh|l?W*9ut}F|y>wTiyXv=`dS6-HLDIU52T~DXw9B)9T7PQ@x5fSN zh*6JXzJ5FL`U<|Lg3d1gMdHJ^F>+y&W_@UrrMv}`d*w}y$#fqaVr}PAhOK!aCvHRt z9lFi$%zN7g>SW1LD1_Ic0CI^!H z2tpt&3n7XCN=fv>yy4B10b3Bp8fH`^^K-g7Hgo`%-;~Kw5rid{1HEi_a_y?$clzJV zHITL<2FsXBq&=7O3Lh$DI$a|Bk!|U}h1#2GIdm$>-9lkKgwUCP31TZtHDg- zNbZNP6y}i#o8OI!(-Z;ynBAo~4dFu*v#?>yPpnw|fm4wg@i*Zt=mWmzUc z*v=eG71+lbp3+UZ7W!y%jl}k5HBmmw!57m}j*pe7T>c?{h9QjU7;}#jq)QRjPyfEt z{%<1W9P+#&IkHl}+NG(aq8q+(;NHKPs^0k%D{9|56|Z#hSdGL)wZ6e3IjK?%5*m3Z z{wCz4Vw?{@Bv?e%n>x2$@~XDwyrGyX!CZB2t>=jtPZ@L+!bTJHOI3!qTe`c-CyaOD7 ze=A&@EO|0Y#lGn4j1sw5k5C7qA8wW2oG4u=H*$I?8$X^_Y!pJ)clZrM)~6Mh!paRk z0P>V8e<<5kJO_gY#kJ8Wln*o_0}uCiHGIYZxh7u3`X6Z<={RIACr9$E^~VSGOCPvR z*=2kvL`Xl1BarlBX>}O>%?H|p7%N{Wx)w5zfcd>zI}aGpS&cA8ldqEWpecw@fMo9w z50PFTJjPfle~CapuX~NLkTuaf0}54F@WD7?<&=t+@QA^W97bR0o;a1 zHcLKh-P~D#5rzlyrf{3p8Dr&^PCvpk_5O0$PRO((czByG6^>odeY+9(5=#)qtEDF* zd=9v++x?ps}>^g+POUJzo^ED5hKxMjASnUWm(i(JYbBKXIjXu ze-0s+f6{IQjFGY?b0?wN)WYDb%I& zqa%YuyCJOw5Hkp$B8A7mjfV(a>?O)E{Tw;wFuS2)ip^L?iSSNWu`x_ujrsZT8yd3g zD}&^&*aAD{;T(&b-a|O#@+qOQr{94Jf0|t^bguB}Rd%)mb&rxv+-vyDVoPVCvOK_i zDA8tWpv|7i4$hHhs8^A55)IP2$P@enoym`7PgpFkC$cA;DVtP-cRHeLml9ux$%`?1 z1UZ=#HXmtCVJ2O-Op;E0*ls<~I)(F&az0XcwS*}*%Jn0y@7mER-}NJR>jSO#fAjY7 zUhD6aUt{R9MWe3KCD+Aid<*Dqt9ErtDP^L3An|3xKEDjeO}5;#&b)no*_`sl&?VCX zrlkigB?I==ZnyJ=Xmyje#BhPvFT!m-FCxy@^9`4*j#q)YZktGH1Dz%xW6@V!#q_Hf zY`A1)%%70ys*|PG7$afI!-{FzV`RAGvAGIFm~}|T-4AjawZ{LE9NW2*5)n z=0+{w7$MC$=pxW%>*2v;(2wO2wSg>gJMCQoM%2ElA8)m{A^GJ2tV!VO0eMz=DpaWR zf?Fr^`Jtw1x^|bQX)f2dmn{meDgy~WAD3DRt~LS5myrstGk?wIU>}zMX0Xk*ZOyYA z8=4z>JH*Nz0k=jP?XP2f~TZ9j~ zrnNTKH9KFXrGFNiT{pXSW?g+P3%WFIR!ehj8-I(Ysja}@hNji2A8DG_P(N9f6-{ey zpRImE)0_>=;x0|AuT_UEUDLQUd}(T0M?-yWUHueQ#?-Va4UMyER59lv+&E=&QBl!I zyF#R{W+s28Ysqt)p=q1~HLy%gt7&eiW09;L$2mK7_{YDf1HhgIYO?C`b9Rvl+Ins`Nl)nR#S8@&Oul@{UTnbx}YTMllH}eb-GX5 zcL}`GUVotewnNg}P_7(UXx!RKHk_e5ZptS7`>Fm0nLnH?OQKbf5A_J01ul&)fY~o; zsoXHcfp(tFg;h{-T1mcoEIef(pkavYM3^??yIo%R3?1@9tcrTJW_XNj5LyrYJ@`du zxDf^Ui>!!#`S~g-r*TKzjMRAvZgddB*iulP9)EyL-^%EdBR-S50#YZKmmn}@7{pTv z`DGErv(Emv7#{g$u6Vra?-J;zZbuly&?ND3=8F>dixfkQe3@H>0Ino&I+oo09q`~a zc*e?u@mzUS3rcALu7>BdVUUw65tcv|3{Jc)Wr^TrSEosAB7pa$_G2SF!ba~=XG4}&Q~`okk<-!~gkIk10Xn{4nn z6aPnwzau#hX~i@E7ci1W=90Un_J_gy6$o(hpVw%~H-}KZ8H*Zq8~*reLzg=!#u=u( zqAo$!WqCYDCFHTiuI@sovrQDFAZ9UcgMVk`s8giaE2GL}WDpW$n2vc2`xIJIAn6fl zFH_Qk8+nk9s#9cSP=bDP<)f^3bCU0}gQFnlRmsRDa#{f-yA9Ier|d+|CJ)k(EP6r2kkg$fUp>m{dkz`16rq7=QRM5#-NWP)e%g z6fdM?F+8Z_ZZsl9D$gksdw@bK6*IUU0cGnnnMo=vc@yNIh>Te*Y58)zSLzGoAg|Of zhSc%IKc;k4p3`B{3o?XFpkvAD_zN4PJHHs~;E`Fma%e;jia=&89!=dSJb%(yCfQ3s zBZddBQmw#DTl_H;VZ?qlT=`T;yx`0#hP8qRz-Q*cd>0|CK|nv|yQ^qV zl0FeS6P;Nm!y^7u^;=xKAiN4jDjL}T;StE$4F51`GBAlnO(M0jIVzl{pT#{_pXjW|-wjLcWAuew z&`EzT-g>7)cFBv(C_;so?%57EsuGx^c(VaEhf9B#PJ)EwJ$O^>prG{6Qd( zu3ckM2ajNpLM$OHVw`fa*jKq`^^h3@CQ`xgd?|TYox5yHO{m7aoe{ zG;LPk1jsNtgk28Lv-k=g6w0`Q!Eoay1aJ=hI+~StN3(R6NqQyo51IXtbWiX*y}Xyw zi;u{5LM_~OyM;2?I|Lp~px-PPr3UVL@U|{KNXC5WD55K-57JIFRtYy2VtDQ#979Dg zJiNkFj%+isQY9N{8G4ERKC>TI z&@&Y)^n*2*tNU;Y5*Oj83KFySg9)~n!`?EVwe^!5B6amshks70X{tTp=e@1AzbtOA z#SRJ+y#}Jaet!jzhF(vM!3wlB(7kQCu3_kuUIVY#``)&^A5v3O zLu0Qctd{z^$qkWSk8jfc2xNBKLtC1sjM%HVq_%Z!q_v?jLg`>nnaSGh{34n*t2R@&u(b4W`7_fDf4CZl=-q!Wj^O2Rp#SM zc9U!>0S}?)gzX7p&v%KZhRHJ;W-HM$L(}XhYe+1S@-ESA@>QK$mke8Eo@1Af)HOO~ zO^uKIz*$!_nyqPE4*Q)g{AOA&lQUydMy+X1ZK$KRu^~LUVRm~GI+mJTQ_r^gu!7QM z@ySRPYJU&lxEj?Ef2MJ7&7M}LWZVN&WaR_26qUe1n#PmBmJYTmhwEm|o*ACnFx)$w zZ+~XD&)=pc63??Km60iZ`ertrNPeNS))*>3=jGdVMyC9VLW_ri8VS*3bD~a~96*|R z7QRaw8LABY!PyWS(QBh4^31pQc~Xn8B~#YKYYkJL*OnM*dXcP&?@~`*BTd%C z3#{MJ-SYeRE+g$6!xVpi$f-Fg6* zB!Bm)E}vCh-lMuyzo8H2C%+n6C&HMCu$q`ONM`{VX_6K(Oc|D1<$8o+O}efROq4bnZc2LkN>WbS|fHvoS@KSoCFGIZ(8L4ZRsHX5chm2vA5z9Ie5PfjiP!LG1}lYb^Z z3mT^6Mhsml*k(}#GJ2_zCI_nw;&a_LOc9&THtVR6J#5(wjO>`g^Um(jZm$ z8K%rC+jDGmR8MR-{b(7xtCVvXG18#-m-1akrqq^Mt2MmX$dqwpmYX;*IiXTIt3=P2 zsGn;Rs*)2Ud*AQ+KpqDI`!>5uH zm~$o?nKCxVLbM@;ebQuZnMg#a+M|8Bvn==2JSyzeq}8ZN>#xR>-(%8xqQ&tXPQeoB z%^Z%ACIh*wefx8t_rPjur++H!H)EHjikeuVx`)Fb&n>ZxM&X1C5yAYPSMTMeA=)zCiZ~&96HT;cQ!@;Vx z0Y5V4bBP27u49AKB+S;U)iM#5{%VP8)M{|q(1j-c%Wnq+MZ8?Bx_{KqEV8fv!$z9S zDocp%8_u@HzchJ=4vWf~6aYh_#=>I^g}kL#8fkJ{v|ucJpr6-ZcnpD5$t z7r6OuOqJ69C^R*Eqg8G!ZO&;B56fL@l?zo_b%&^Tj=$ps2bK$6q{!Nz?o=AtfO2jN(Yr)q1!A-@2t|dWfC?uMzD7Xrx5JNxEI z(Sb+mKUdm^fE+O&GOcPb6K3~q!?}vJ2tyyV8}C3rivCFoGJm>Rn~?8gMGH~KIqGt) zQ}^#vgjf3f0}-+<-vx5CrA@E94`HR0YM_s*-nmU#NR^i5wb;!@n%wE)aalB>jYX!OFE7M)L1K(RbB+b)`y(xgs5Iv|JFwQ- zf&ZlX8@^H=fn)k3ge#0RsbW~@P|2%g zh`i=trC{>FJP&ScKwuROG&xk8Ijv81TEAK~z+f->E_()uta}hlMiszmw0KB2th_)m zc*cOv1|FI7xnvZRv3Wb{w=jHw>Q|2Y16L)&ms7Jztt6xQOvsnf`}l2Sj~U;F*dL;M)Q zu&;v^h;wtew((v3+sVJ*CU$xCOb3)#35u;krFDotz0D)IpJf1J4J1NCiyWN~A7qmH zotqDzR98Wc?B;*vE$V*{BwR*)w@;YVkG274ADcPbm>Lon%JNJArWZv{N3b5Vb;*S8>SfTH6Amiu}Jq?Hh}JCXHxEW(GxOT4u3>B z!n-lpfK2u$Hj&n1mrR$8zL}vyMfk}DhA@6$!jrWmS?DMd^pK)16-I$PsP~5(9wS|z zRGx%`Q3vzyMxh)}p`EUe%?P2|NQaDDU?ZzH&_sVH$;XxWoKBgmiqC)6`onFc%b()J zRP%Kr>lH@2e6LbQegeUT-9J)IkxSv(=;K#}6ltGT@F-UE$Q}};9GMFO}A|XK+Jb0F*vXVP8uLRbs!Jut7 zkg!f{uxn?A3|*emyoMovG$t6jY@9oefme|8RvU&qYXl9KZ0pEX8}EvA+9+<_i?h?T zhFP^k8(Zq@Ya8j&HG9U?p|ctyL#H;(tf`+`*w8q2Xq$3#Dw#8^&^x?v*igQ2shNLT ztL=YPNA3Q z<$X=_3hX$*H-a}2BrX`!w zH99CwVb`#9uKYJLt8_U?cPgAC?z&)dtKeWtc zMz*}`A`&B4O{+YE@#q@5uYaj%<;|qbV;sOH;{bUpHjXyVf^GaexEFtq?L~hXtDXO^ zq%{ve{`dcGmiq5Th)%&@$I2Y~FxlEVhR7$RF61JZ>S+l5T?|7uXv{&MhY+TFc*P(CuY zUj4xe)EOD_dB=JqQ=crCrtM@nV0j+XG?)kDT$ER!ivsa5OgRSunUkXy>l>3q`6g5Q ziSE|3>Somroz*h4xo&n%?@hP+NB%a~tZ+pKu8+56*iKDn`dc5}nf#+v#_Zy5l^YV^+KpDaS} zXK_E+o&Dsb)LA&MrJ=btqCy2or+Yix|3C2?;S}|DN@mwIPa8_pIDhoEl5@JaDfY!T z(tA8o(_BLys0S;jYnpv3`AL$V6h_j&A}z)3!q7D9@Uu95Ft~r@{GHB1Hd5rX%k~LS z267io>$7LpSkCZf!a+WR?jKVuXZcJm#nV2Effq-P%7)&$C?(!;vQ_fEF|0__#APb z4$5!jG_@J5Py**6 z)vbgtBS}AuLz3_idd~BnAohHhcuKmJunFratbAx#BIRA8+2kwBt>h4U3n{mfLp1u4 zIAsr3k8Fsuu9o9aYdP$9^;S#;=d5mKidzZ2Ia1w94%UD6=2mjBrZv~jn$4d zGPoF)%I+m?3CfLZUjKZXQmZokOcwMp^18MYJ|kOhi?=gs?scu$VpPwMTa0Qh$ouR_ z`>DJSN#TDqhMMtDb7RfqUZb|j4fTwA=`B*D&s1;A?nmSk;U^gTMapfbs@{TQQ~u_e zy(Z9hjkaG58`;}VW|2}%s_Qjl0B=B$zo^O+P4>2f-t$uX!M3Cfbm;6Eb#1)`rZ(YG zThmlOytkFO)-8>_UN(n}*4H-g*UoONoig*MFvB&I>h|h?XQ?_T)^Jh3p-v5-sL-$- z38g1SmsE`IJfvcDaYD?DR4SXMX?3$3Yg&n$*#-SCmG(&eus8^fPE1$rN5ax zqb3q*?9o6{DV45i-0TLK5GvW@!G78QTX zFWH)w@Hot-HmP}5O=D9MPE{sD)40D`ypN`F*Yf89n%2^&;Qg7VHPk7V#niOMhK3$q zj&o`o>!!4`0ySKldZmx&BNeLq)Vw+xRH`m(8f)vD6|(8E^D~Y;)0C zWtLm+3zx(i;GtPc&)tUU2+*31E8sB>fc*M%dak@ivorNSw5u{G{$HgSg{dqMqH=46 zVL}G?hfmMcT&}eSH`THF4>wiszaDak@WD7?t(Yu8+uLmDHHB1w7)^&QD^H7|3%@j!eQKUeAQT2JIBJU zYNs};jZSy{x`>jN__MKQ@(hd1=7FedO6=E!O&MFXitHIvUV_2f=EG(T{YNNNq`nt>!?_kt=c1oE~hS#*aAajgSN=fWlg-n5P4qxz9!y)rbJv-_4&@^ zUh3-QjO8Z4n*7t|>t~7jP5;Z;8fdLzKHR;Ysr*L_y~~;=7iX!SlXMV&{W>v!MI(eb z>(0Fp!v7LyHPudTX{=Q!tFdKfuL;@yX^{V?7;~SEH8Sf|79rB&F1wPz}0O*EuCfxJ{h#sccBL*a1 z=ydTrx~9N43iKLS$Y4&(JL~VUr3kR8J6)f_t4M+xq6{eTKSHa9*Xr-YfkKW}dS9zNGZ;f=tnQ=gNXqEIv zlJ=@Xx>&VU(GFBYSPq%bVApmzZ#}}vAl_33@$5YPe@E}h`uCPx_G0(;@<{hyD5i0x zx2>}5ei~wa3Nzve(UaT4R?dkY5-7dlI=v(Qj)Y-d~scKo#pZ1>Wv;d!KOgdtSKSv>8U&m zW7n))C}}o!S!f-{%&1|A$4jECpDvSk8HOA+-w>HR4(39H^np8n+JB>dK_6h-if832 zPFTy(H(YErVq`1ta=P2{E<8Fuhfqp)$pB(vOyEV82U+-{nd01r_LIC6I>Ssr!qP@oiU12U@YRx}ye za#DZ2(i+L;#SSR%?+q0CjWX7rNNY)=^AEM+Gc0&kG3z`*d_`Nt9w2we+Y=xiPLND_ zPFsa1EPzI_nY-d;e^gLBt@Vdq!~|Yx7BCwwbAb6$d0x_g(a)5dW9MH1!oht8u{aS#mo3odYKl{cf1~MDXW#};#znV{qo@- z@ZBP(EP)w+mJZ&TtF=^ z)md%Oa+tgX%N&6*7qOSYR*mYVPK|E62Cpuq?5caV;qY=Wr@LdU++}EMO8l$ry#`qG1AWqnLxi|CR8zcRKGSxo< z)x+RBcF;)_M0ofIfbJz^b^@c+r<7Osuk$byU4-FAJs)my`DL{$C#T(RdoO&8Q}`1Kg;&CZi|LOveZ&Z&<{ILJi{iPmL(6CCAf{!~ z`+dU`b0q3;0z3{dRJ{$>d#s@JYWn zq`jT;?G-w6BXY2}*&vys?s?!5ngh=OoQRNl9_kR{W#nPU@wsG$Q=XcD|5#pI>6HJQ z);Dw6NFrX>5_lw5Caz+xD6iJ>VK7nhV3gySJopS#7RL(s@k^!?#WBaQ1l&}6T^PHW zUg`>42h159T-qpJ6riMN~C)sh-c2$|+6#E2^5JE4WVu@|+=U zWpJO)l>eR1kgIREhma-9Nyo;I=f;vVauG78L%iK6naD7+5S~StFkc*BfH21LK8shh z2;Z!VmtiflzwlA6jWZfH&mw7?nDv`w?u{22S+Z4|KrgL1+Z5u4Cw?V=O2+fefZb|* zrd$wb^j*lvl7DNJiLJl+P6x)jTz%ozVPOt!mGk}{!hRM)7xT0l2STpbC#Zk{`De5U z?unm(w=9fRjQc8o}Jb~KiBT`DzYOMwfDnAlj|qiDuhY+ z8QUA?n}SN^^d16}-Jig$RO6vom|xdoC=29zjchrW0T(EDg|@+v$h6LMml zN2pjdhDOyvKaE64pYYw;2wZ=PkuBAW&D(H=ktO~5V@2}fPVF9lXHc&v2Za%`Rm+D* zA_b5K;suOzOK(GnXy?wj-|Fmd+7^qq`dysYr6_i95DJYfQy$kg$`&mmkt#WL0qPl@ zxfY=@60ef<-Q4>x$Ch$Tt6dXRr0vTw@<`=pb8_^Ps=ENmCPViHY$CYOU#`USDhw>>mb1@ zD1?4fjEmFrwD>u00`t0y5i)njsHfY@f#I+q&%1(fgTA1D*Aly=RU)Jxvwfu;R|)x5 z)p&%|ud@mu`9a9p1l^Q$uL^t&;Y@_(&w_8oIubwQ_C& zIWzxR2$3b_VmurxW4w==eaK@f-t56xt_pnM@qEIy2(3_V0y3ijA<5ZtE_nMmqf$fA z7r403vmsx9Mb!+@=hHwBl)-i&7wHp>Y*`T72iC9(?NXCKYH}vZ<-C{V$cVJAX7mih zAmt<34$c zJH{L@uerJ*ll+i@!L{f_sN!7C>$lORT>1q%H@SQpWz30N&9Yu7=j#kQ{XV)H17YuL zQx@niVvPbMgl1d;Y2?XrTX9OVGB!>&ySz1%s9}Muh~*|8=Tu27R~{rZ@|LS!ZjKem z-(3-ZSs5!>E-$&dhYpkLV+G)#$d=p`E0cFz6CgLn#^DlDWqHfB1ZoGHq?8`n?Aj?e z#i~qUu5OP?(-y*Vl%Fw?Bb#p>-|y7%FprU~u15@0zKu3KXJpAd{YCEYcWv&?gtYnNMwVQE zpwE}t4VN$B$7^EuDb_AarO-D_c_Fs=6C+FRaD8S#?uak`4l9f-Mt>z}UCHAP?tM;I zCN@;V4gJjBr98QrS0WW^?pM&)1DQkqoh#y{|A{=H|+E+&nOO zjN}W~1h|cCd0L^Xq4=F5D&)3FbBrv1S*NhsrkMZH9^~imE()S z;ig8G+@dpP&7FuCF4^de{yim%QM{74-^iA`;^P!9Fy&=UaaOD2Ifxor@`}2Lz-@<5 ztl(iZvgMKJI0Nz?MN-bv@^}Fk;m>*{+@;ix*xFR>DW}6vbVm1`jfn`Mg;AS-F2|-_e)IoQ5DI zgA=0s(iKB>tG$3>bw^k#Po>5yuc`&S_s19T8MT145e-4P=&K;HD&k#xIpwwJILIA( z1oCP$7qUW+NGx|e4@gYnx$<#;GzTGbJfwB0+@nu`JR40QfxFq*b5TE|=R*2OS*!1q z=c4VhmX{;KgFD76N~d4%lFOpI$Oh_)E4(zC!+GNhC=PJB;sC$UCs-8u6D5gdL9W!h zE38+$qJE3*xj^qWAiLGvDGuUXi-Y*ywGQTiWMtyo_;);S?$O6>Bd+IvScrsYP&Kxf zwU=EwgY@*%c9-G`iPajA@1y=ljVw81@pkTzGb|xY9pf6pA%E4$6*=h?yI*j&$_l3X zJWDY^`8<%P?S{0IyoO;8=Zggi>i2yoS0PFLCa^0q%*(CC{Z=jR;yo8v?b&-Y~~X71=$|mgz4>o;&*?IRN0n@G`NiOW&Et%-t>f%hlW-9i zF#7`y8!Ji?xW5{Yqf39mwXMW_TqT#6crC)_Q4;ebd{{yeG4JnA`@h(ueTHtS_78+x zB@Rt({%_TI4PE+1tNDHuCE{BVeweLy9hQ)#wKtsBc_ZFO7WnvBaa3XM>n>hSHkSW9 zsbW@q+y?r|V(c^~ue>eBK-rFQ1K9c@^$0*8yc>az5*6=4eGHYcufdI3yph*gKH^!DQXbHrwSM96J;UuVG-tUDD&}Hb;a*f zLBwI4OdQR)Y272+H8KMW<9;I@`cOV1z>9ciLLWp9(v+@v?KdbvA#I^~AQ!^UlfneJ2NawL?yOVBB=bUxfV7pF8*9hf*+ZI^<#D6xJXtgNh;N zR#7o}CPMnJc2w~~IP^2JB3MKEztU>QC$i z)aBJ2YR{>F_F#ss=O$N0WMp~ToMo5&H?A}fe)xhd-NVkUmSU00z9hBe3um+!9o9FqX{5r|y!a-BmO^x$hNeUHLDoLlkSu$N`~TgU zu?-w0Upq7N_W#49wf8~yc4xE?I38^hMsM<4VH)gPv3W^;i;(?T?obIj$fLkBfe| zyN1&D zB_~Db|F;BdAP>i?AO}>E^F|Zs_%;@SQaNdfj9UDz^$+sUrF+HP32FBmnX*}nShq{u z9H-rm{;mOW*ULHWN&<^gy(oo21;L~$CU}+)v`RV(-V*2i+$MX;LqLA+mC>ukjIi+N zG6;eypP5LTy6`k`WutT!iGSf`Rt7P=5ItCR&hzK6uiJ-X0X!I@L`n)Q)dkX0 zC501Ybb*`{l+gu{S6mU^6+#n1HAQaTTziMIIfNNfh_wjI8YZ>NBMwnOhL7vdO5adJYYr|j4rwR9Trk2j4XM!lP~TS zulk+h@p_Lig&q^@@^TN7=KwBCFasrU8h?d4GfA6(uwEd8b_#+LT_AtaD&^96l^o`k zj7s^7=9TsFD#$O}K}P>{@dPDWC3>4gtE!~KFVp;BS{%>mkhC@gWY7f2xwQz%p*v-U z{}jWJZAv)tV1GF1pD$f90RfKa>&_xWmqp^0&03HzF6D?IUkERL%0pOgi2LPT?Tu3) zW{}TU#EW3cry8BZPeedkY9ZNgNE`jw_IFCS=cNGw;bi!U9C8Zm+t;+Q|Mie}$j zy3JG|0R3^-HiY%lBz-3b@ro9a`{PSRuY}Ahqq$07s(%XnVprl@*{O=jX;RX1GdE#V zt{m=_jG*WnA(7Q|*B}u6f-I_rbNrCxPGl=Oe3f- z0&Q`0_J0VV0+Ketl#U{vOXC3OtuimR3w6eUFr_P&i?DHkDc`u-3?2GWGLNc)Q;Ff+ zxPm7+fKf1gj24m|(KiiUcDslIB_}vZ;#Hj#F~icHlh|LI4|Mj|-G;jEhglb`+q$2C z@6yrC{`u$5t?*%)1 zPq7#9w#on=gpbYhTA&afFm$<24qI|EOY_eBVIcKgOp6y^w~jWSCp3Ala+9 zZIvI599k@O_em@la@3d1KCVY?hPi&YNy6SY>QzI_;4wQOE|RJTcyNy0MnSv13U0}Y z1Xbd2k69tDFU{v1?C9`Ida>2SSBBRx~w-Gc9xqPml51$#udGJZ}bC-ZWt{8v*CN@bV>9?+B=$rf5bCe-R_06P8 zl$7gJsw_*1vQ9#nN$Q!jv7FYt3WTL?tE5k0o}}sqoJ`cw_9ivJg<|Z48*fs*b(H*K zC&E%yR4o}^$;kIYCKbRVhgZt9#aJnaQn}7lt3378)@~<;zc}6?-)O~fn{k{9pIi`M zEZcucR~OPjrxWt6R;*r+lU-Uq+l~G!*i@(I-eW-b5X`I^X7I=sp zf99n(ip(kyMYy@eIIr?+dzOc)r%L;&zj~@sPhRP#o~Ed$ zLdj82OI=&wp*V_PaUjpd##yU%!cMr~H)WgVm6%^XiTS0yy+rzZAvFa=DE*72X8nK1 zjmsn8weY@a&0kfQl%7uX8LyI~gHlt5CTYz{Xra3YIXj67CpY0NnCH^-tq|doYRIr9 z^2;h-{cX;d_9Fa(U3l{4m%ApNd!odPCY>XmN|xZ(JqDhWul`C;0!f;_Jy2$PnI( zP6yxT;gjDKK#r!WJAi=vW-+Xx7va~0tbdzKsgk3MWnz)^kI1AdIX)Jw#Zk@Stw4+BAI^Ot`}-%1h& z9=1Gk!QH$xQxF*{uK6679LMdJC)GtVARj(7L(VNS7oJ!oGs@)8T13YCD`Yy`EQJhF z&WSui#9Q*KGMpeDul%w=Jdsa$lECYlO{pw`49%B{aTWA+H6zkiz)Y*MJLcyoie#%A zh4k5?u4-&6s%ECP^kSxFcX@whMj6D6*lvwiAuvqNYXI**;1Tit^5yVJRl&z6nAe;rO-0O$W=7-}LHU*cG|`KzAVpk*6i zOaZBMTyN(cYi~1=k4Ta5|E50HroWqycSg&MaZMxDUDFV5pa1vJ{bay?&#MIy!iUP?Ri8kA z#HBbNAzX+;91jnU8H5qfOT6Hi@92zeF3Zt_mb!JoaH~so2mPxgtAm{@=r<(4@nUly zDd8i!7g56nQyz_ej&gql@O3ibZ?)HHYz+%Pp%>eQA5?`y_!>Ty9r$z=xeZ_?`Tef3LSP;a~2PjwxKMeX41#)jrz>&JSfz~USgS{YwC zZ!>FEW(gP5cQiFjR=GQLZ4Wh<^w2*UsR^z2q12)3Xb;7h3bKE6BEf|+W`?d6S)0cY z6~DA>gvv@T^}9f{${Q)h$(%@LG3z&vOL=IZ?_~f1IWP!0rwTvpcNlqwwsyNuqW?2^ zacUSI{RnB?1v$74VTmu6#&*a7Wb5qi2ze$^yWOLDrcFzxCpyikm+9>(-VB>haHje( zT_GA&L)ytPl~V^%0?Axwg`EB~db1(2OrJoRlUJ*}8GV1s5V=M78fo%ov_O4aM|e%f zrd#*JR5HuIyc#VtMDEbr$c`_GH&`o%cbUR}H^~ZRZCRoiH8X68e5lc~IuUM6;RLqS z!i|Xz+cUy~S!K#T)Qf=Og49_Fv45wO`oaGbY~md{ZFbG%8NEH+wT+DpjlIS^P5-xv zH7B+2$JKxNb-hL|Q)V@5dyCyv6J;Y5YaaNZYudDyDN|eca)SN3kV?U_C)WnyR3-f2C zT&|z0xQ8%=DQ-29)Yy_iB5dxh!f=Bu`=~KBZ7(%@+Cc@=ySmLRX|h%KcIlM8ya{-|mQ2$wjV+jBS_URwCbfV|D;qSW z?>RyOyAU?|Ku%tSusjg2LLLTTB;oGD=u&_1>gPP_Opl~$Q}4%nBJ_d$ZN6_`+_YA? zX?q~2EaKla@udXfd953A!hD5t>mE1dtJpaCtt%p9+U0~GB_LD2h*imAS47I%Wdv_z z_cI`r;)^MlxQgvDjyPAoh?U81Eu!XwiXJt{uVU-fOU_-JpB>M$I^NB|$85Xf>85}D z+b)bL9D7sEd!ppOVo#}OmOPK~k@8(kjcvZG8&TOF z%hAg$c5dD%XXRgE)DcE1AGp^Lf?0t<6x^wLa$}{DEunEnA32u9ipfKylUwPuL`&VH zotC!n5(I9W!SEc5Awx$Px(w@IX!L(!lIFQ(iTky+Q=J;uySSOD7zvp2loo;fF+NT< zYWc&cvRS7jcXKTXB6S_q37n=+u|_Z;=(KXX(@GfT9VD=QDg0fjT*Z8~trGcMjtZ8P zo=a6J%!_FA|NV^|*UFC+*4 zBz)Z6@p14N#u=0NdltEl!SIInYbifw!Q|whDVb zmIEWy-j|N>Q+__AQf5{`4xxV(`)icyKi`fO+=C6=Cf05`pi<6TZEd-1uL^_6Dn1z= z^eaVp9U}mxd9`&qrkj%4P3>-$SDLG=Dkh^Ts9c&;1xcTve0|-F1av2`O?8DmbX^Wq zMgnDmi&7T3Uq8}X)y>H=hbvdRa?l8uh(kZaX`zrCrw(QtOWff4c8q^sY_%|NtW##Q z+SwMWq&E>gFzMInM&MkOju>&4kuAX-_WvLiyQYlXG9Ge5|3cp1767+wA|Uuor_o)S zy5+?Uvvi;Xb@DU!;wCyUT@@ck(dJ`b(!#{xZWXS6S^Q1-un<0&(<$Ol-i9#M*mLDm zZ6~W;5wGHNE}yxb<)(l5I0R&~R*%Bc+Qgxo_e%$!ySa--I$D^e@iz(j2U>mMaVj28 z=CeilPAf(p=2fE%(L=E!>D^fJE2k-S)z=6kL$=0f=eX9z>_K@(2Gf&N#|)9sICODP zt6dv8?MH4O&tn>^(i5KWzjoUClwiTq1&FLeNM%kkZ!j|CL0W${RNkW}T}$9IGUNf( zAD_%pBSSuku{#}dyK91U`iU*2tqg8CvW<@tB)}2ObC>;7wRF9UINg+aN=2=oux)>^wJ!rOJFpD;;9c;@`SAsa z%1*6+0`~6TIIzENhdcaE!S1F;+JiGuhsP0?(PeT{H)M1!!t#p=RO*jXMu|GeJF)df zwlf?8!8lZBIKSs`m|)f|&qR6Ss~QT`u(He*lz+vDQ_X54o8#bGGLDX|m~yo>lry&t z<|uCED29LRsD|fEs!3zD;#vfWeGUegd8DNb(q{t7q-{M&LnWRIaeam`sNh)3jr27< zH0I)2c!pSVpu`stZ^|NdI#o8hwiPJIFN6m3@H47&u(= zCg&FSCEOvj8mHHF>{S8k#vQ6ZVMv&sp9eY#h}Wd1N#X_Ee_r^u(}$VA>5v(ctX0R_ zChdO_cn}^m!ZSkgor6cfCo^&(ISig9*KCqjiT(yD{IoX_LTHRW+`{_WWCxzV+wf3> zIZvtXn{b4Ji?QFl;?F!w=|n>?e*=#+ehxY~dmt_M5v@zSh@XCiSK&?wmDLfa`Rz{g zZkU77g?EXuI&-S44PCAjUfN7x6oy*-jE4 zRdK0MbZFvYOZ%HVN(dMk@=Rxgq04%ZvjggPEBP$e*=U zhAFK%#sPAA8Qdz(LDdT1+xM;%llD^sDS zNtPG}71{0nRVDH>FFT;~MF@ypYK}Eu@fgM8rXv zlD2U|eG$)G0Gkx}zG-S^>Gb7OD8q~q-yTEl^hD~rb^kZYjP8McgiL1)h8$Xqa49xR zT>*cRj+UGEm&&vSa#&>Z=!qC*B^xPL!SFLjOd*!RDVI&;J-AJ)d6a(`HCDI#Ff^fG zf+WssbYQi3&Jijj+qOK^>HZx=#FVP6yO~r9ix@>Hiai|(G`^w9Y2s6|t+Zs)nSt)* zO8$LRBZZqmm3+Il>Tb4bXEs?1^@H-M^{Ou*@;Rs&<%SD-KdMLr=%=EK zzJ^EX*J(^>N!A79dGvq$-MZVtHJekuv8{eVSW5jV)ajQyYI-e0pEt*8CJd825T))l z@FXT_Kx;|?64+D=Lh{=(#y~g0r+EH!b%WgtKRF2^b>dW64^8N~|8LZDy;q6t*Uc}~ zpAGGuyYc>M@alWvwK{oPOZ|-6NJ2@b)RlaoreC>wic+{)zf*sGJL&RCeIg5kPNR|9 zHogeg*EHA7QHr*7OLsP)&Ds%$E{9S56ryIvNRyva(<2pCI2~6RX>wS9i82nm9|9nO zY$6#ehq=vmU0XSQfgRG=geHmH$KZQ9ZkaN!fevjJ@4yT^5`QXjVm7xsedkk@JPEX* z5tVpI+^`VxrPhBRa&bIYwrQ1Ay6X|TcD$+FDnnQ%J5;VM^BQuROf%c8}kL2(KmkyY}uAoWw74f!O# z^`LpaUr_bd?kDemCOK-x`@V+2@ni=AM2o&(<9ubjB*zhwXjv)5MV9Y1UK<{IQwGt^ zlt>W}jN2tWnf{iTc?uJaPVrC8oEI-ay{kKR>f%MNOK9P>a2uqb? zx859grs^8fPg11mv<)#lo-M3I=r<_CkdqY`V83ZW6Wn-0MLdS^cg}uG6*VadC5Lvt z)9mYPR%P<^z#O8O+yL~#Z#e9$5jagzSJJWoMk9X&YR=A5rDz}tpo|fYWv9Un@^THj z9SPDs-|4`PM)WZ7(}SsrO`t7sN-WU1w>hz%v7EB|V!W(ghir6lKT6j85z{qxxj)XlSXHK z+-`rxZ<_s*$_MR2yFe2jLwO>!r#ks|4Wje~PSC0i$uC!+NhKg$!Re&iYT`24i<~A| z#DgeSkhMrDvcWE5q{-_>o8gk%<`&U%t?L%m)4HrC)b~Z!cl}`NTZ#QGvk6y#j7>RS zML+#`>+6Qpuf#ZAsb5PLTJ5IP)sNbZeu;m6H>7^IYA3(X&R{^w&HpF1D@7w`H#W5O zIxQy&YfJBMx7ZKM`M#{)|3B*fJU)sl`x}6(>r}oJ;5rgVTnN&L$v6#~ARS^FQUNbyfw!@Wqb`5cx6{%f?sbx&X|~eqvdd!* zBYYKCu2W;?X!E6Y6jEqfQHe@n(WZa(Yx-^co2xzQnvpdvy4B|!y3Ejdk5CrDRHi0F zgwQZE_Tz>Am;viajJe)$$+uxURS@$;+-0|6=(1bu&~C?dDAtojno$R41Mo6!vQ#fb zIdb(bqBrw6O3f7IrC=A<_y(dJZY)5qDL5XjkUdU$fvPHyFxe#L*(S;An+ktxbN1gB zkGKWhVSxeP`Tvkx^>+3F*XkXZj`4zJw6-S2?Rim~ZVO!3MWQm5jT({c{ff;ZyV@T? zd;|+);8y=jWhq*55!wu=?dj30gEEX2ihCkD_TsQgZcYL8B3Vy=I*2`OQ_-t{Q2t#SEqV{D8ZYP`qkd$G%=#b^rmu)3}- z8bA!>9p(k)Mh0Y+UZOC+-jyOcHN}L`16ulIDosrpMF1k9u2cbr86}=jxlu$pOb7Z; zlp#138{tvIGN;0gQ7o%0LU3w`;)NRCZS>}4>;TBgW{Fk zDxi{u9b6f5Sl5CY!a%$r170Hm@}5SC%MMZv4jK;Bkh|cpDfPNkFJCE9Hq$gTF%iNSTZ^v(qV~_ zAaB@2m#nS*BC50WzNvq1f5who#Av+X{wQv|RKHllEux3?3xDmVSIR$Hq+11Kln=%F z5toc@0X0Cyw!L5z>L|t)PYI;DNJf>SPHsxnqeAC`2c1cqt#gfg^A6vOkWKt8tW4wc z$LPd4d9-r9ZAC`a^}^FB-3+_!yBXevL152{X%`~H4@~2=I1;;6sc!3MuP0uD9h5J zyXE0X3pe3@R*{DzzH%c$_Gxoi|KUg)-1=Xd?p3H~KP(hq4fj>*`{`T?c_@;ohiss= zN9>N3S>C_nx*OsZR%3OH!qOU|pLJBkk%fRm-^5DF6pnvZ{x5G)21g-+Jj;kX6oB+$ z7~>0~Ff5EVHXp0W@GI5MCpuN`#P?*`IB}FnJRV*}4563VUuHep>dP|KnJHiD+tgU8 zt#RocWqC~tr{zn%qV&Tu;i?*E@>!uv0X)98Si*X;j& ze!J1d|2KK4nf$1z;-s@4{a50$|BmARFZqnJ|F?e@c=pnrES}&j78aKjjq5S$zepi< zYhl?*XZ5w==`p-`%&kS^P8KXm`A(YSiS|%5JoMiJ73Y;o#}${{aFQ*A z`Tu_=7v@O{+MUst6_?yHs_5oX#kbsg(&+3zZNX4U8UG($R904a%YSu;mK2p2pEP;l zz;6FI*&#Ez$+)7jvL3fooqS);M>mfuEI;WXjT>L`-%t_J>e2BOjv|F{vZMM>YoRtC z|54JGlWnc6d>qq%o^191W9PSwFF)y#{L6oF=}}lVy!fOevy}Z8`T55bmY+1XCV_CW z^Pz08i%V|laZ_PgQLmmS``Le*M#{cUwvA}mmy@kN+Rl7@@~aacT5-vLk@tu*-Q(us zQAPZ5vcTErn&+VK=A!@h13O--X;RADGI?t}*7*@xT4vk$kUid4aDrwb+s z?OSCZZXeG+e2S(;vk#vVi`B#0d?G0`Js^NBjNHyF}Yn5uaou-|T zYPg-fn4!Y*LJsN-`j3^3DJ`)x$-3wfQaaKJl0+9#>m6hc_3gsXLFeRTy#} z3P%;$P^unELS?rWjw}j}wh5b9+qXIeaoo^W)5r=CqVu`A%WdMG&li6X*jQ8c7s2vT zWtXL~@PvNKipEW_LHReYPxxkB>G+aR`8Zp5!j&p5QKk-wnieH0QrUW<7I#+a6jPzF zpc9oMu~=K3G{;vd(f&Dhe39*-l*oGOC?;uI96TnhwNub`*0hO*#pSn*D;=+vkv*mc z6)VerT$(nzaLkzE5;cDlTyG9>^!SR)QZI{^N9lJyUC3x#WCHlmB?>QpyEUzRxTD@- zWUtT(nCa$_gVnlfd~$Z5{W!j)xMGAFc-J@{993L0z9LvSI@GHt`!LmqV@gMj3Pz`p zZ|(1ICi@)k(SFH5UkY9Pu}ywQ9BPYuVo#;RN0yFJBV&F0$%cP{HCnwRuqVE* zQAhB&fl7*RzBzyPyL9--vJ+93LN(FD&2tgA0_qmWe;2nxFc-&PCo{BMVTr<2!BEl7 zh2uw+2TRLuwU4BW^JwRERvDN}N7_4{H)|_iilC+NZYFSiNYJ!UNm=yVw_30$Qel<9 z*i}kPZZ1~mAVDRnw^#iVO&ecaQhr&g3Y&L{y1k;e!(V^x&m8*10jqU4!$*~ts7_q= zDys=4IG7}IZj@u(=u?9dv2w&8<) z%kf4VS2}8xGj(N^qst3#VrxB4L{U97t)y7t%}aSSW3`est@!5XCDudJ#*7+&OR>5I z_%P0PVeEfFopGVjx#~jH zEw4u1i$qauMLCM1!f5XK%Q@|#;zFKm!s695o4tSFL;4>b)_X_MWh)IiU&S@#y*2HY zafM@UwQtZ2?&e#H)ppGw+O_lQUqKvGs4)3i(ZRB}BuyJVW?ZQ{cRg5}tN;r#S--g4 zUgk46UYnS@C_X@6{D65it!z~Ba5b9C<2Cxkzf0mSv_VPJwDM7E=Gw+d$iDXM28&0J z85MuLr8IhrMB8$LLM5BMVtg9Y^u#o}%0y$zd%cm-*Krt-6i=5UB zw_N6zbN%wrDRi5s=F*h!bcS|g3>+!}O&WvKc2(If{Ob>D>taPxyGmRPcSO507qe-U z%De6IP)9T6I#!GQnuR(e0j4~bUl|+LLy_395};o%2Q+(F4@D}e1UsN{SX0{B!?J(m zsfiqx=t@fUS3QsV+{LgA4@_BIQ>m;VJpZ<_ zzqHb-A2No?TW97`fmX|LZFc^7mA_s^opCu#Sy8e+x?01yTCbjI4{J?Hr7;Zh>Y164 zmyj2=^z?9LI8On4Eoe8Q7RC8NN8W!jSQ1&~hfvMB1QIEg+Y%VBuPsbDIJ#1}@>5;% zn3|($F0Q?+nOXbfB~i0wK+l(*u4Wd>JyL>zaW?~(Y}BU9lc&(zRz55%f?JiZp?8RR zn*sT%W+WP|qhzc#d%4H;Q5<=cOWm8e5D zgM1n@ToOt{oqFGK3A}u9bET05>6j^Bo|T6HP1(1(nBjohYc8^y24zsg`B;q;4Ql3( zD2f@c>|1G{AtOWXF{xq?#~sW&uX4)n{bN}{ylmzl%NpWkv;J7NFJ5-vAImzw5bZBP z7P|fbOF^t`m@L8{${J#28S;NXHBdQkF+ZKzxg2( zR!Q4D$b@=W(sl`CLaDUPlL{hT8V^^$sr?CeRz)XMY!O!PWv24`m zl>X}vsh+FCLs`%-ls4R(3QDQq>-l_rzO>_Og+paLU)S;V0HHu$zXft?{Pj5J_4#s! z^V;c6O18&3Nj;8m+=z72MrTMrs3C=+?=g<+XV^vtonMU>>rx*ztD*~>xd3iv3+N2d z{n@Z?Rd!=Rm~>!2PWzjVG9i(F-YL~ZdTO+(ElyKUMw_B}m^qc6EOHiopDY=ZM!#fw zN_B%Z#PC3_@!1wOz37eE6_&Y0`GQEe6mI&3j<{DDw0Y#LWEtc89(`l}N{w5c{?_o2 z&<15FEM<3Gsz>czI&X6-?Vv3b0x-`&5IvLwtA)V`(r)Ky+hjwRX%m!xkxx_GP8bER z(G&7%dDJBM5!&!Fbf78cF;ZtOb340$tR-!Zi%irQG1nXqi&EP&$NY@UzXe z67oej-_YfCEu@mk1=YpYsA9`nhA!*ryebn?)EE39USBHnX*Knz>uu(U)*&C&rqMGV z@|0_GH+u%(;j4kOFbf@jLG${ciXB<-FQB!rU=(JUvQ%M8b3R?aO?js_UqPgwE6ZzJ zj8kPC{R%8Xrq6T94p;NPfy-zMSs9_j4&x%qT%B%nav)6edwED7Z0NGGHfazc8qK^M zgHZQxAo|l_=;v};Kjj`P=e}yk{c;U0-Y}T+xH>XLwrG=OHQi8uw`!A7jQ0>Uo^wIJ zP9{fMP{+&VPNSKYR&rMjL!0i?=JXYR5v2EIxKWIto+f22xKDYwG8ZgX`)F|CgJ z%A`mOEZry4EH(N1dB30ufl)aZ=g>G^xr1(L+id7^yS+(T{>>(t$4z1gq`B=8MphlK zw$r3`Cu}FRVYq^SvsLZ3kQ?_#=k6e9E=eBJQ~9G_9?}_RbC2yX3JIrVPi;k2gu5en zU>M2~>^TkTJ?U2H3cgIlhM_?)PJXYWMMR#57MHxY>|#yhnz zP`}7V3X@`Wba}?MD|-Tu)A6DkJc=M301H<^PokxFH1JB+yU})aS)=ntupQ;sATUmO zNqeHME_8Xhnma`0dM6bbP|ln5$y_YA8vxDD2|oz%af-tiJ{n}3r+qj zm0#-tSfB-en~cqY8IGH@tfkv;bn*6Z&D7$_7vU6nK;Om}zUU#C z6G`gIkK~=&rOE{C85jK|a}5zDqag^!+cf<<69GJpZjiQ25w!!B(F1Zw`6Zjg5wjUT z#+1{xLCSsH4LrP2yUwqX%><*I7yWtx!+h}W&Q@oCt`53i4Bi~PyxeLI>C9ONy_`YP z)xLzepQeR_cGF1I?z<`4H}L>u2D>MvUkCl-~-Lo9Nnc;k!$pVDQm(*;6`slm+cIIofC^E z)ENI{iv7tfSlR5JK>)ekthir7=Z~HCe~#`}^SUd^D3rsCX;;y|@;s?+iNUikUjHj~ zB7*ptwXIn1S)Vu!?y-CCmqnyr+xSeF z&^c=6sqJ&xejpl;l4H6HmWmF`Gork&BvOgMB-Ba7iJ00L|8$4J+)#&LGVV-QT0Exz z4i7TyyL3{U$%ZbIY=hb3u#uk*IbM;3pwSbid|6E@UWX}jjAX`HKY(GI?^Jx)joes& zNyiy^HIfKvqll3+P=^t$XP&`G3B}N_rc<(9k}Re9BB@f7B%@N~thYtxK#J1TH6|}s z^GNf|Y&U3HnjkM!=Ma!x#vBB(lkQB!m_hwKh7GUC$5v&UZSkU=EhUC7U)L~ROge(1 z??FC_h3Q*s>k-6cSjcDMbh8P;5d{T*HxRp^JA$m8j@yT(lN?!qpbC)S8A`fC!gIyo zfM(H@`h67*A_&n}B8W#6%%;>;t8jA!^O)hMJ5Uh1hjCC6Aiq{kIpJD{zQ`pX3PYig zE|V8sC2a8Z+7{xx)x2NmnkDTT{9x`W4%!Rz0|fC9EGaI6To^)7zgUK~@RxaijJ+ih z8x$i~9<9w!hwR~)AFE{?KF0R*nzGw<5b|{Gkp2kBn@kS7vbGWyx9BHr8hDINIZ~Nu zh}?sNhAu}cml`6o;O7-mxlp|i8M-u7e8F!HDBpD*@=yh1N4VjZ9qjV?S|8l$0gbi5OH~*H+5`M&+~dRiuH4UD}-Kce-TOK7mEHf@W)NxI_duLr-J219}e!VV;A4oH1RB7SbW#qkCj*ixlT0Y)Zd{G3SMX z@0}z6nL6^l$Kq3xu7=3hNF~OUS(QFRBStyf#3I}WK`@!jbmtoTgW^SWrV&;*ai>ogB$rI7M%E1+ON*1JD`X*^UQsQTwv%w7=lZgQq|D=sOTxz7`jCt z0LVL)J{wHshDLkMI1K%=JfM_avRl8KV+#02cCg=N=xmzg`0i=AaRUe9b*RtdP6s>MaK~nV$tCGeO?I{_ z##uJR>+OyLLLB{I6@5HDPw*pMU8ip3{)BXH&0=`rMi~x8|4Q3~C_{NUSu9vKuTz?X z_uz>g-F@1BD9U%~aG zquF@LCA+H$(9=e;{h%W8KV>8{no$6`xP$IawREE8zm~KeY}aD~99c)v=nee4n0rQaW+rEFnOn25rFMApkY%FTwagS>8E;z>B8f`oi2 zBkM4#MlRo-Ivrja_dWgwPqY#zTQD_*7U23U1sy_4b0O+oGa= zR8aCk_I!4lLl6tO%*$Mm3rqMoEQM2@lx%dD0`>F4l}2|NmNK-Ta?gIP=E$DJ@0~f?##vs^{x<4)vGGwh(>3!y z4DhvZUd9?(y<~|*3C~EDi@m(l!7$Y?(COS{M;4)ps-fDg&0#p1?-~uI83I2!B;ka**}7m z+4M({(u{p=R?5c}iQ?kXyoiGy>f^u3>rem*?>4$i|0z5N#gO%pG)SXHQCTj%A!G1l z`lXc1%##F9Hsxt&ReB(hi|!rsE3)@Dvy{+k+9@ zIPzI-qS0OExsqoqT7yR)vZFSBY&jrlwV4=#gPTd_y7I1+QwK{)5oW`G!_XU2ww^mS zTQ&SiZ6dlE-Q{6dDlP;MqGcC+sCr!H@Ks((5E%&nHe z<&0J^y30bBpN)M~Td#1z>ozXfQ=24-De(CQje+=mj8C#@h z+H`p1`O!ZA7eQX<3!-&0m^v{O)cegntrG*;3 zhuyc<$!Yg4(v7`;srmTJQ8Lbk$m>ctmH~M|C>_%~H<5FJn?gD|ObfQbGSVr_sbYi< z-t>&akpWqsK*ZqHlcb^r(xKwoXp_rgO}=S2d47|TF3(m|1~nCKswLpz_d5;sJxHGg zVcmoU@L(XkjB^RObuKI%f(P#-sNOJ^^K)e5(v5U^Dc&4^o7!wt*gB2VLa-!K3PvQA ziX0m!FmG8HTbYIno!QyS*`ZKDPqO(73;G~ZrCrG_t|cv>LT7tw+4XCi zU`bUDdR!H2snPAU^p;wOnJ_!XHe~0nPT@b<4ZKFWv{cp;_&dRbJPe8JG14JNE7x;= zWGa&R_(GaHEC;!ZgPg%^Y5IJZtctXtFQti$nF2F6&Wki&>?sJb*JaOp4@~wy-1|lhp|Swd=PJx`-DI| z9-R;>w2H||C>$~(9<1*YXNbT5%W_VN7v4+0fkWJ&#xI+393D^tQ~+-uTnaY}U#VQG z7InRUy{KC&O9{g(2;D2D-$<9WRh+Cf34So-aW^VaNuyLST(3zo!5n0y%Pa9=7#XrY zfoi4^OqD_#ybaldbVx(xDuVh6R%Y|@ z5qp&TkjjC{Bb9TF4A}=i%NAGWv+73(4I>(VEr!VmqGm3F%wS2olOQ&u3qA*fYK8LU zygW#05>e+FurO0jFF_9wqjEzGg17H|W|x8&pD_1D=|S#VQwn!8tx_`N*7f9bu0Bdx z=6Rfpj&RHMb7N<&A=Mep3i6pox-70*1%|J1gA@2}f3jzWhs7}=PAYwPwMIPJjd+N zZa!1`6oQ#_a&eKu{B;Ztgte%{Cb+RG`urm5FduHbh=7vE)WK~QzWUUQSR~aB`_#FY z)A%AbPDRi47gAq&{U8MJE&_O2MWYXYsA!!eIN9D;#F4UOfMQfE=$9UsiHTI#I5q_h zUZ>%$(T2&pFGk?WYoYFmGmgMJLb2keiVgm!WE4}jIeICXf;*n-YyRoR>?|^;_y%4K zMNbU63>L~5U$cJkl^9AMlQNuvunLs?2d0V-cma{{2*`x|tvo0F;VG@js*=cm6geaG z8xBcvJjhmt1Lap{2Y4M4;0ovcH&N&*9u!ohr=urBuu1~+N0Kx<2rn+>C7%sz$i;e> zrtB=jh!Ei{y%%ArOr&_jk<%1pI*s2(6A|7h6z%aWbftK&0M;9ep^t7Vkg6QE6(eOE ze9o6E+N$v5UWQEe;A-Tm`(M9*pv4K4(8sC!s$Dl1dY9j00dgDS#UHjMRm|XaUK~cQ z-u3qa20?({`6#~`(4u#@35CvCPLoY+Qk?+{`rm%nyV*7N#cTZP)KLAZVMHwg3M{9c z$?YiLp^WQaYVC{Hn);t>6=XYY&G^r?_Qh*0Y2TsUeA>$?&W1Q$@7{uc`SGL^4gH)J z7oO6gofkoUkUcuBzfjfG zlo6TeeWjx1ACT%&y{`?Pc9jF(8>e*84f}29_}fnu&|WM;F)uXgz9&s!9R8n;44Gsn z^r14)*ye(~SU#80bYT%CZfl>4V&rpdXDH2{*VyKg)#ZvD+1fsT8M$c?*Fk3LD>k;d zOnIezh>;=N+E++TDV{q=VM*Q|&dF*V-~jvHsU6y>SkprhsKF!fCS7TE&AN=YXD{@C z=W+~JLGt?B(NC!lq74?s>oS4C_$5*wJ9hg9I?aB=W_e&2Q%iP%T-H1_8v*mien>|^ z{ZF*X|A$`38WewjLE3bJtcWnR5|zIEf5*`45nyKls_-m@#=7!@^d_|>=enAhpJ`EC zD7x=z2Z(1+vky%=ynoL|e*_e5WH!NDg!BP11Tg6u=YxZ%QCbMvDijb;q{G_}L6UM8 zH&J>BFFu2pg!JDH$hT!FMuyBhCH2JLssJ7o8yPZ7nH^q#BQwH2E}wj_QzWftu(d%5 zC>7)8u~T?3)LNVJ)@jKUVm~`J-^h@+PTOYmlxN58<~Dfiv{VF8ASFzb^eNm_d@?<& z2TZ*%3PDi96NIHd?;=xTO~rl$L8~yS*-MtEiX8DO1n>^8&_B`eV3FMH+;Q69oQary zdWUv2Kw=<&Bu20`vk`a^;+n%zEJlzdqS8ouaW#smhJt>{?+B2jC-`&5*4w0|I@tf` zF`dZ_1yA#i|BciRV|MA6kYms<`z_w;0@Z5Alb)&eY*i9g!otOr{tT7rH9q-KQh7aJ zbQve1f|j~Hp{L2Lu{6xdfV_2DGlvjcfhGUC0%xm#cFQ=Ml`)RH@j7SncAjqIyv>|* zW3X(mO@v3DaV0}`*ZLq^7`$F#zPqT0lLjMGrh_&V@^d8(C8Qn)IT!LHiQO(34-eMB z{Ta78grT}&9)<_2)ca_P9x2_e6eU6ZGC8vuVYxYx;dqBl!JI7L3u5ArYMQ#}uZNGs`=9bI+< zBZ~&0moy>Rive9po9h!*65vv1R3i11=z#sI0y~J!@^h6>?n+4I zdh3~L&fNHhi-W-^vx%xizl~H-2CB-psu}@E#X@+nmS5I>5&creeBoSlg-&nZvA1;j zs5*rLrA0<2llVw@*)2S{Sz&p*J8qt6OMLB99t_*7&sRfN7)PpQm0`BHNWb3Ln7Q_o8iWnu??1WtJBUt z)lP57H`P9wZRA0|u1=I$#vJ*kIt}{YWRB4cd88&$UDP}q`jxU@fhOUcSd6bp#ZH62 zss_nOGS`O%kv&k<6KYRo2t{~ntJIqSq7v*|BLi$hFAB= z?M5?;=0I*Y*6}E|R8yB{${ofwNON_fZb_tt847lDaql)JLw;hjce`YNy1})fxly*} zVlc|A5(k>aghow39rW(B5c_9r-aD5%wU#@z)a1ywC8hS<%sw-75TVg&{z-m>qb6D* zk7DM+l8L(^?J}dYbqOA(&eWc!FQNB19w((6$2i^XVt2ja<`r~k^mf$oz|a2EHhAuZ z{9aWgwFBdRkuj2kl_@e0$wco5D@hv!WG)8BIFQD8{jdMjLEfrJBkp>(O=^q*+!wF#Ga<(n zpi0slL>nktukr$1U9n!aw8l z=tPk+FU;uMsy69f$WtRJDfwrIRCtJdo*Jp>;IGdNseSBGA`f|AA$obz{`f=vAQdx< z!aiCb@j?x zVGg8yCgj)3H0U?U?NEkO@@!Qiyz*v3vOHIn2Hk%gVaVzW(k_k6vbKRbykOlINvWt+VRcZ28LMpn+(kdVHYbDHoYee=WRLEmhgkn#EUmjyW zx$;a}bu{4kg)G?aaoM4kRAJ6g${xh9=W%6yL1Q zlYWiN8Qo%^sKbAv?ylE)_THg%)=L~ikq_12+x?Sq~zg90YI=Em`$HM-Sm7r>A$=lY*HSLktbQqp(B} z`lY{;gtPQ03Dhyj)F-2yX>hyj)(LTL@_n6MtzvzdfwI!(op}I$XqOjrS`#A z-hgjv+c*W!MHI@}tsVSND2FoU-_HsWo8Vdm&>LRRrXWg|t0txD3#DJ;E|c>0(U)f( zL0AeBWBa$D&Y6@gXVb2%hSrN@Ica-g&O*?CxE`h)DK14W8DicB_ne(c`E9XCCJhw4 zndJyGjc_KI)yBiLMM1^CGS>YjbsGfm9s*#v`zG2fyHWOuoH~bzv?@}BCOMHL)u9Ce z6U`4o0LwXr)s^ttGUoyW|BhJ*zQpjv{MIL~kkm4(o0xtov$@A*^mf`ab&81u3hr`$ z#`o>nL71V$VX6~X&XX$)Z&}CV5)Jw+&d!C$dH## z$&?js2SeVNkOZ06mUM6r<9eArBFV^*$!BMx&bS`>9WJ?j1hE-K2w@{b8qUr{vF`mv z9-WZSoAsA*N%qaU;%t@qt&?2Jqbdo14Mdx5-sZmsxjeGgqhaAm%md)gCX@Lwa%FNPv7pwLW`A{do^icAI3kIUaxgJj@#*{1$+V3?03%S$ zYsUyemW^CWk%4}zyw#x@j7hK8((q_RwC(`($5qsV+}xklpBh=Osu#)o9h#MYC6Qiw z6anaem2!?;?@j-a0Q5dm&F4Y!o_5+j(d%|q2Zh)B*mb)aLHTfGBHM+YB~RIfeMS9U zZOY@3%9xmc-~G{b{a^I3S+oDobsA2hjyC82+)hEPPKGS}bBA^T<9hj|cqvay!`aE| zfmDJi4QJE1$E%-XXX=KP79g>yi#?sGimUgNC(%uLk zij`V^`zUVm7tW#q9Ax___V~hC73i9rF0%|0IPy((5-gcb%J=K)AxzMJ;ia}gDz^(# zjq7E~h^0n`{F<1m@@0DIH3oC2alJfW%#E5MJI*cv6G3^<0~Yk9t|qA|GOm{&i`jSm z+5SO8rJ65(Q7`Jw_Jgt23qS*3%lt)L?B=Ip!gk-;AsOeB`<4FLW6F2ciQ)Si zDS5vh&mce)1pNwH7MmTJAB%@5SD^|0T1ueIG9JrSxB9sFOa2^^3+Mzs0>wtIo+Z!U z+7f$zmi<1c^x<`&ppSLZWwld>7-|I1sNPGY8M$ovpSM!a#suhpUUZeVoeBz!44MAt zOe0qgvQv5R&*X%2Az$2@L#k^W8EIu=at-JNa7HE-n2_0ju3)Y0>Z4VE4uJy75wd$? zBC*eH;S|VmeK6!1Q_**CPvp%Y%gjus6XVidDmy2($ZcU&|F~Wv%gs!s=i)G~koB=) zl*l<8YBqvKu0BYAUW~mDvHN##O^QxP^oc%!xL7TfDX;&TwhT%nzw*{1R-Aka+X|o# z0e(OUKDEaIvi^S_977My^?J^QVJyKLSvb=qwp7Xvb->-8VT}$%PomeS7hBev`)~wD{{5R zQL&2jcJ{7neB5cer6bes^^%P@+j5t69sQ8Ckwn8Qn{P=pdc~9P1vv6oI{K9*t2q@O zM7VKzT}Dn&JWX2Uv_9oryY)5E*0-?r75}mIS6j7CQAp*5RjWXOZ(_{qO^vf)`J3_fs$6#_?h`HR9WctMmNg`L?!yeB1DPCXnQ?R-GU6T?wCU^v4vN z7M62AP`Ftp;Z-pKZNpOzgm+!gp&gajyF#s%*iWD5k4>_+#Hl+|LGhfCE{((00cebZ zuzvUyh+aYv)|^jQnOv$Ey|6Oa`z`$Edzwf%BB7;DoA*Wg-*Q6#tK$6^#Op3#|D1tU z!zXEs?>KG z>fyy*@S2zQy|-%?Zi?2RpqzM*q!a&Nq%tH1sRHmqcS}tR|6bIRPUoh}_-O8j!v|+Q z>x}Z@=qT5oFv`aGC>!E+S96r`V!j&N1NPW|zKo7-?(lk=090_iU!Nb6ntaN@rDo{~ z0~^UF%38QZ^X}~#q0hv z3iWfGGqXRGfy&XF781Y99TzC8q1)_@JL`gwl>7Wwitbn5kZQ9;mm~_gS8)=Y^7%u5 zm8RE=S@7Q0w;#rG`k9x)B*`5~Lnmd%LAJw!R20GDU06wkVM-Nm)xe9fTU1-=4DAyR zt@W@A;$K3 zSL82J+d?%)Oh&zLl>^?SPWGw%-~X?Kf6K6?nw%CSq7OrVlU*^#L%oRGG#O(@BvselI~`^iM* znQq0-dgo0}H>(JeN}wOGsk!W{Vm`%_;|Mbb zxzDf2gCo5|eX|r%gY4iO_&s(qM2p#m&3(x<-|+xX@=%J#c7+1>%B=*?2?6NC4CA@h=p5$XzSZ8qn@ z;yidLs0|BsRcXh6<1}`|HV1;^866PNVN-04@%Q&%p$JSjYGNkR+IHuoc~@|+_J)}S zkBTS4gpxrJDR^*^a@94OC9>35?}F4_SxO>Wj%E0b^)9Kqk~{lYMym4wIhH~B$;HZV z4D#4jK6_j3@lIE-e08T}=-xW0niD z!B5t!3>FSBUcr8n(~$MOlcS&UC9RBJ>Frlh6!ynwC+l@*pwHX0z#t7C6sm-di{d`@ z4e^R=u28H>5c7tMcBRnW5V<3V4n`S}oAQ}j|4Mk6mux~2q^;e@Jk>{kS5hm{J|JiL`x)8tLx0*LPlA`W zo_FZP6l5SXAh-4I1UG(!xRUP%%>?PBZ_3QGQW21EMkPV+JBt>nZ1LMsbdqsnB;0aS zCB~yz@AP{COnLUKkTOyVs%mf9)r@S&v@46qDjFGbIAgGWvAx45z2&TJGdHoEp9u>; zBk+8GA1NLpXZy`#W287qDESDLN+&YB^l|<=TWYrZq`luKMM-k5A5yST+)DU<162iY z!)wZ)ntd|XC$40nsfR1X+tpmDj9~&>QHEU7xX?TP%1dY>^V)WWXCNk`Zoxj4&YzB2 z^jLL+Iq;|zraXQC^E>Gs?Ey5r;|$=*%nt2;=JON|RIYl=dF$b3u*Vb)bJ0;xv0G|<*J){Gw57)p0C^_{1kigNg(YwPiOcIHRlzHGmMkB=S9bi#U*1KY zADxdr>bBmhY>v2ro+H--3p=hONy?)V1-tY6PG=i4DGLrL^n{V{Dj91wCt^5})*u9b zae(~AKWNC*O&Lnbm;LtIGTYgi+c+;_Isr1KhX*E2oy}YHXa=x?51o#F$mC7z1#_qc zAsx69PQ;ge@p?@PAo=`Hc`)VS(IjjbrNvTg5w8&vG%_)NDgxyNHxl{RDw)&ejH6JH zUS3{aUW>ql0B)76Q{#R8e0ni@UB<{1boQTz=EaKjj>kZn2nQq6-(lsRlFg66q@w2n^? z8L6^9Cx5egn64ha2L%rqvOYb8JgRXw{V9`8e7G!FBoe%@7gMR7RWkUTWsb}$QOYj*YLCVx~mmM08|l#C0EULFDfL;DMdbCo@G}u z+weBRo#GSr!i&0%`CCOKt~%&Sg;yk~?)l%ou?xVjR#@{tjO zJW-v5fV^*nAWN#rCCa;$DG!;g+zAiC5@V&@Tb(ZlS>-`Sh>$O7Ofj!IiARWT`$Q?8 zzZZyW9WQ#b2ZD53{PqTa^I|CBE29LM)YWwTNXTxU=QqGdm$5 zpOhp)7Mw}vDOzdPLG~+;P7in`qbqX3jG8k4Ox`Bs+*oase5PvkkO$a`^S(~LEb%G2 zb;2qvic`=9hnzuuOcy~a*t7STz!lZcJ&wNq8mT$6^U&}0??bmYH2Isyg zIES-ot#O}E`L+C*%^O~^3-|c^H}=O3gek(1GrTe8Ur!u;@88u)*HKzk8|4boXwHEWe@e)=uqEMGykkT^Y7a;|D-P@ z2kBq-U_^;1<)9Xlc@bsI-Kcl4Z{f~Ioc3?)WAke7p8(5aaabnB>rU+x6@qNft|a1k z!AH7E@k-l&Y{*`WLbfe?p^+gk`ZBpEcG-|EclHETI~k<>c=b|@V6KlrHtBl@vb&;? z?K%Onr{j?Ai`RXZkkM{^ADw1z@5}Rj8+;5m zre8=t-sBy>j7M%&Z0rR;IUn5Fm#dO3TP&W7Zb~^KFZ5wNudNo19LPny)Mv1xR*Zi- zou8(|Yg`GrKbyL_?|i95qkM4>mr0KJGI0?V2^Kn@9kaaZ{Ik>h9D>W0TWhJ4{%W5P zpVshyNnY)v+yd8FOL?y3)jr8A+hFmaxgnEWG$38$^CL)dtGkgdjoG~7hf?5UWXQ|D z(ADWz8|ktp_S(phjXu>%qXKWUFNEG8nLyKAy|3&#orFmef(nNnf-E27L$E-`J9FLG zRYLl#!|BkH8iZ zXL|5AlrcQ&CBLYx^rB1dvl2<58yWIVAEJRnuvF+9nXohljrOYp&2xl?{uxv?P0C{Q zF>c}G9Fhv}qWgI&NU%|;WlOlZC1EIre)F4pewZw zUJQ~dw%Y2!gCck_fdsA?jF~Y=su;DJRf2p_6x26;^J4He{_eoLUBSDITf5HQN5}fw z*Iiu}ue)P?)pa+6n+ozn-w@+SD});wf(yu5fP$(z=WsV1ciMiPZS&Tfp-y*y?AH6H zk8|s3+GsntO@_S7%7+Y*+p~v|$c6msn+~@jGDTfvYN$^VIbfXPq&H4!AqtF#GaiP5 zpgB+cuT+u-F3;l4S&LigGC@RtPVURYOP&_MN|EpZvI`0dq&6SZRP4MU%54;?!6I#Ott9VO?LEMOvbJzIM4wDVGxHuRsRYoUxyLorP9K7}NV+JuJ7SS1vY z)2M^uLQ4gOFBieW9_57+R9vM=<{$`Z`?iwGDDo%(^8*Ahlf<+s4Uv|Am|CVG!I}5( zIq&n~C7GXvZxFmtfzyu>svmok! z`5A&uGFL+Uin#4P9UeRa&qO6r9m8v;w2~)3CcVsR;{bDzz|dC2?12CZ;Z?(=V#YQ^ z=+}=hS$L0gaS81NVBuYVxN#c|Cc{f(y67y^Y4S5Rd4h7LAzrv)gF;Ce=u1UYF#9S; z9M{%qUYvkQr4un8}@Pq|4XqBT82_w^5Df zOB;gNEjXu9n>6Zv zUsW|2jYi7I^HLHfW(fk)KAFM;`KT%dUi6oR31l>t;HRH5B{F5-x`?_}e&#fI)u-lT zJQ|GfMr$L;-1U)F2x1cj9_PmIvxOTp@{~bXdM7!xS;pmmh$Krwg;b>|=i91$%)~MT zvA{M&M!_`*VzGRADt%#U;gPxH(kMGbAt>Ms;t92@gILa~uV$G^sdpi_4F4~bYVMr( zh`Gtz1n>)MMiLo)?7|rI1MOduP(obQ1=6NOO#%ZDspR@M8rkv)H&IYY1~VWZa{_~k zS(J|zc+xO`u2S}$s!X32j!Q!D70}M`fI9C1h%pBQM$Pnl{6d}_R|$Fl)Ro-QPx1@A zOyF)Vf?U8jFuPQ(W#j50Z?cxG8#-x>sC!09#{q6`35p(h-Qkeqz zM-hT@*}A)L#EtA-r`VBG@&vo6;7pOdW(+A^!cx{C)?K z#gDIlL=^EeeWOM&efLUa2v_yqjhcN|fA>mcuaUuLKg*k5i74*$-i=yF zYU{6L*ix7usm)l`r>pKv;!XPT(5HjiciW8Cq$pIH zPRWEvrj}Jgj-4_G9+_5_1f@@u8XEVSv?;fsUm_!&3rsuDnetCLWu!8i>?x0t8Fy^Z z96F;QUcG*kMjj;tpTL8D>V^>`M4L4kkxwUPDbE*LWE*N~AuqiWS;{T1C);EoMJYU$_7navFB(5iYBtFKelW&H+iC3;f} zVx-Gzp4wcDP%Oum4VvN>UM3=><~akhiM^fbm$o4p<=YOQV)Fu60BK(ldr8eDRbByz z8Lf#O@L)0m6n1Ay+m%@|v64+fOxk{b&4LFHp%^kfk0}On<;RQs%9^5_+}kWz=G9;E zM0FvRuvj(rFg(~IGxI0}SR_ARMACRDB%uNl_R-h`GWC_n5MDuYbfb2J`|_UXzC5b- zrO!y0`_vpjzS*Gp&p|*{S{I>AXsY`1J2eGz@45)}TJ{s1uMTg}LNwf1QR9PuY!iQ1 zSyhwxud=To=b-H=}x$=8s1*vUKN zPvo&Fp1KYe=>9I@-Jnt-fO-{RAj+Q6tE5pVD1ZDj9)d))@QNP-j zdrWdW-LKoMb!c~p6MNswHr6=2Nn6SDNH0_3g#Pf-wa7@988353Lw??5;}ytVFUK}N zH{W-gw2+(lIbbkH=xaof&33(E(@7ayFfLuJ8GQaDGa22~TNSutQhm;M0BxlOV zB+5c+`HxT$a8-68^j=LUhVDDAjz&=L`aAYx6f70#(pKLTD-R!cvh)o}b`p(n&5kJf zYd7hg3h9>u_XO!3g7i;+qoj09KIDuN-h;fmL_#F?&2u3)rAU%rPEQ5H9C&2H5XfmO z;gJr>GSY|5kdj1B`?0l=6zW4o_j3*xkWl`6zFgv$5k9$qB;cNxIR%ipo3w^=5adT+ zy&R!mf{h1eZz3L$uU}S&z!^RmL*O6E6fljfh?x>XwIAeh5{2qee_Bd_KnV2X5- zK|U43?t*m)3Z0>UL`2=51P`p0W&F6qKYyAy_0lqCh3|mn1Qm^MiT82 zr9yty=5ScAZ_*f0dmafOVs|55R=lie(HJGTL)9Qgs>+veKAs{@TpPs@A8gj%=D43( zYwy6_o3#){6wuv&T*s>kO17f5YD{C%tNyVlV<(QJ2FK7C1$d=CZBlEx<4?E5vu0e1qfq83fB#BtalxH_(aHD?onS ztcCjXUaQHM%2HS)<=&S+Cv#1!@}(vpQe6r!mrNP?@j|D)Iax;1H&&d!5nWCG16LBO z{~d!MUuDcuoQ?-qUj}Q)ZMa_QuT-)UoqAbbqZF}!Qty>5Ut|#Zm@?ser6ibCqH zD5O+HA^n9Wn*r#5`BnWZPhUx?O~8~lGAd%EV#DRmM7_p|BHeP&i7Rus)yinSoa*1Q zIwMCE7`f82CQ?~zWXSEWYE+i#7Z3o(9H;wIZ}NlW4Z9ii5BO|tM453sxLKnBSE_d- zpbEZ!TN~k6xXC-^5RCVgw}K0UWxc%%331?w`{IXg1l^`B3B7tntXXkmPjS!tD&@$lesC|Kzvz| zBW*&EQI!gP6hp6|sDv7cE12j=D(b1Zz4SPL_7iebR;`Vc+L-V4&DvyiF;=)td1-AV zO&+kBy_K(Wupg?J4ngP-xa57Uc`94((u^Q&CEi;b*^3~D%+s6)x6uYNb9H1cxo(*9 z-4?AxX0>GuUO6&hE=~WT_m?HBBP|FT8PGe+fh}4yk>Z$21dLo+zB=-~vBD*@n1O|V z(3ynJ&sQtgM(QDRBkQ}<97(>^GI``7+cs-{%!i&qqgwi$ph;0q7Bw)TOM zsgb0(3rxt!kk2-0$(V1faOu6|)ise8uECNva|ok+;_IYeX&>Q+KF&_MYpbGwz5T{2 zvlJR_4urTW;K3%F&XByWa#vf%Zk&woZ(Fnubk=%3 zHiPoQ7LF3#^;p`8tXOS%WQ(Ru9qH;{Lye7!)13kaYIHS&`Mv&uApU|&$s$-jT+9HC zKytr5crGu2?!*y-GMXV*reUUJ_#x_yPen(_)HN!0ksN(hE8zp3 ze@MA-b3ijnnZ)Vbu7#-3_3|jWkt@x$MRJELB+a!x{$&Rg5lVAy64VPi3>I(W&QCNSO-9wf!>z-g})+zV^~DHE1vu=BFb6n z@Jo@U#2L^pqU56)9wV1>4_?amZPiM!1|Ed782e}(t*M9bu+Lf@8KTf7v1R6k@Y)F~e*eFC zL{5s;$&jy9A0#rqe90z2=5EzO*-AI|#Y>!P$OBuWWXBgTMdm_uim1IL>}G8x{UJZB zCK)O-xV}7sYbdp$rG?2XIkXWCkj5-ltf1b7Mv02*_`G}}cig=8)5|fRs~NCWdsoTN zps+ut+S>%VyV6HxT&^jRf8FFNjC6UAdz#Mq)D%9sg+xE(!__v)xoC?<8wfWJNof&H z?u`7P=*}m=t;miE*M#Zox+~Rbk2i))?us#fDainyCY~;VYBsxGHFf)AJ1We|!R1+W$C(kFby` z2nrkQ5LIckdD#RD17o58_QmTz&H9H9ke-y|V^WkAwd~CK-smL*`II3?wra_8e2kBl z)N^vuNXl__zfSkd@zeZ}Nn?F-{IpD&G&T)#{Ioof8oExoUCNB?t;gmpM}7>tm$L z0#$<*=7^Cjw^9ut{(+iJuN`{n?lb~*sc^d*eN7otY z@}S+|xBOPBQb5kU)jO#yr5`$FyELKV|37d?lROfc4yh^ae@&V-`8Wy}e<^H? z7rx6vZj5pz8S&sr1lC^(`8=zX2T&ID?IZ`YlAuCQn(|=ZX63+2ZLbLZ6rY2I*$61% z<`vPu6s+vLf0{u9q=t??YiJ!n2GPPAsm{5|5f9}#BlwnZ9Kt$KRLbD2l;(RdQbm(s z60{~1o9~7Svm`lHuFF@+a=aySW-6p)2q9&kq{uA>ahI{aK9cO08-2JziGYfs50Re| z6oR1f(tgN-DxZ}5q}FFwl<-1nP6){zRYf3kQmhaCe-(mMMo3`HVN*U&pdCmIzwC!4 z3#w>wD}Q4XSIYk^gq*nqG?fZak_XW#$Tz*xjyjHP$aVF1n&R=RfRqF~sH98Tkl}X0 z)sT`(?q^KrwOmOPJ5$;mr&J9=5*0z8YJnA1aDU#*WYp!xcnhT@;>7HvzLJ0Zp@4Y> zvLQt$f4(kJhO<(5;#*Tr?L>A^HYB7{PP4J9NQU^NyI%%RQ3II?kNjgP-RowmMeYyJ z4T|`Bg3Lt6YKA~Q7iD7rxu=GsV3_}!BI)c$VBmd3kb2+W3Sr8t2^6Bn zr0ZsWJfoy{*PgD_8n?G~if2-%hgItOZ&ErZiQSA81XhqIW`7^VAGff}j8|7`5(R$S(M0 zRb?7F%4-=^3{OhN&jG2Wm>{`rkZzAgC{b+W)-qf1XmpJ6sK%r&KY=;CE}yqJ{Dt`3N2(3lKrssi++2EiAG3ed-P5% zSLzSCT4uu!3r)l>uV2NjQYnY}e`Ip<>2WNR#_$U5FUJx?+?aCb2zmv`@zbf2=?c$Q zWDkQEUFD4gh76~9yE*H1obe-S#`*3Z=iMRo4)Ui4>iA93 zD`NTA0e`a3BD}zE5 z>Lbl%aAT4@qFP9kxqa1XP$duXnqXj!I2B6aFcJYH0rKW5=j1cix;*uo#)w~T z$Oo$;6xw#Ba==5rCxu(vpayynNdb>6dQD3v^j&SW`nRhhQ)21GEVcVgd74#}TK=1V zQ~Hc5Rr&%qEZx)8`x1F4f7d4!OHn7Urge(lm<{F5nY-^biXGuy5L2iOh*?&29`988 znw1U_NnAWsCPyb_W#3GBJ6ADo%X$)NN$paO=-u3<@Tw3Btz!4ogC{|qpnL3-!JIDg zOwUeq&PtLqj>97_=lZyAjXl-9wO+MT*ZR=66c14>y=v$7vr{STe`33)Z0s3=yH~+Q zxE#T|K}=;Y4S4}`7`np_e5*Imqml=S6NE$8&4OEA$gLDiMpzd0bY`e?r8D^HuPYgd z7t9v@L=OZ9^aC|9w5GE|C)qCd-R+ILXjLT1-nbvVMifHij^bztWs}hun9q-MnaiC- zS8XB&<+n|<`oXqJf9{D@425W9$osEpO1JpzstDx_YUm%fWt{&d6BQl0W4kt4rma_L zbs3)bGNPRGX+0>18nt!u;QB~Xx_r^7jyU9}I^K=O{LrKk9+f5;HUhwS5!yW3vii)?@u zxAwtnnx7iwKIki-4)#eykJMBTL!%PJ55Zqvf z2PvU(5C1J@{>>pgQ2{zq$&)2M#cZj_dI8Fi11OF@nexv@EfjNupH%Ct?MkjKMZ1e$ zP`7wY=>E^`e{rGvzIgSGtiA&xdGNt2GyZ2gFE&F$f9UJ-#wRP()ux?D_j^f6CbB&KKC3G;P<2ze(!_=t&V! z?cHX#$0%KF@AvJBhnfm6$jC}KO(mPMP!QsLT6mAM>w!d);Kjvo<2JZa%~kwhU4%Fw zK%M?zBCVJxWYTTUoPQae#80z^KpyV9@~`j|V5ofBFR@i17he7gGArO20J%UR7g3ae z42D-$fAq_N?8qcJEN|#bh%;6)R?O>qC&&w7(z|qBHp9Z<2JOQpt2r(5biYc-KQsLZ z%2h=WZ`5{R=}M|kjSTtaG$sYe-fDssZ9}7aQnb>C9HgICazk;DoPLJ zUDGdh8?^>GB^lC`odWr}Dqq>+#gBG(3Q~mOUFC;hTLn?h3CS5ZnpDA?Q ze|X;(JWN-6%*c=*Ue~svtC24Et+bUFhhEo0a?xP9Io~G{8c)nw#R56}n&uxSzh(O% z$1_7+5s>5AMbTae$IMkqkfW+8B+wNB8td6RbULB5sDI-Qg?x5uMf6)a#}Bz>3b(ZU zxl@56jBZu?Kd;hAm*w_{v7_?(Ygz~ae@R&h`7S#}eyJWJ^EPOy6!d!f@shq*r$LA; z<#u|9+v%D3c6v_URw_M(yHy-LH)NOn!DIYj4?lQ3+=61|7+20C5tI*Gee@*vAS76+ zl*gugwo;+(sM+`2*R{}%M!I~b<^po>Yg)rl8tyrRFfw>ys~!4XEA%?+H6;w&f4?%4 zFFJJ%b6?jO-`ERoJ1>~;<=vG^4lDW+BSRin8+#WGUD9RtL}jt~$ZJ{yUy-=XfTs^+ z`35ajUf|aDINQ%gOY1ghb7adpg_d68_9I&Qur-+9n8`-E%$k^FWXPkhX~}FkjT?RT zL@MsoHTE^n&x;$h3JgOPh2o3{f1eK7u`;4K4t*PU)rHn(re3 z#ZfX}k$gWm4FT+sdwQ^#@wInQJR%b+W1P{X=}yN7*)i{_A6K4mPfdNj)jbuj{ynSD z$8!`3K|Wcb%n=&i&=^MHlNAwKWH-E_HE^yEt{~ol%zH!gXQLOXErw)P=6|(he=kxu zZFp}?gxPt91J#f0hEN?me-WzLt)Q9|uYSi45>iGlc}evt+uqQ~C1lIuQ4|K!Upl9i zXmC3xbMdHFqQM}y14V=H({1~SQ9gP9tW0@gR2t;{v+~I3VLU~p@`a1inYfD?vu;|- z-j}uxO3)*3Y~tpAnMpDbgk{S1OSw(ZD1kOV8cxD(hX?LT>FvJ-{=ldO?o+nT{un0pjY%wwh!;56(N>!4al8IW% zJd=Khw;c9qm5Jmr$d8RCJINJ0oheX@Q;>lqWKzQ}iOI-Se?+@H;$or)XFqV7_tcW? zB%@5?g-H_(s?JJR-?r>v)Y}}{~rWOB4B9h|z*h$Em<3Rreq2~%b zf8q*kZ?ysq@#}e;w(gP;vd&$&6Q&I+{-l-UdAv6U3 zs}(08msxMbkxN6o`fseh1J~hM6}-kXQ0c5F5Txd*D}sf{Mj;yE0VV(P!dhiNF55S2 z&9Zu}I&fZC`uVbDv({|xQt??$%A!6{`{TH5yp|{7f4Ho>luA39NXdtT75B|^0H3v! z2nGKDRb^{YhjMn0Vkn!`^P_j{i_a@^EPBUo;>3~7H;D{iTA^4Qsz$EixqbN!o>SSh zg2aeArqsvjmo_o2TD&f)ylm9z1EgIuMuORDgHe+C0F7E;;nRNHv<}%! zn{awWe{8-*QO-de;}^qMk$kJ2q9@z8PS(TDFdyeI=QDtGcT!*S^z+Jw`0X8mTS04Zs=vbOJIYD0$=rT9a;P#*CU4SGe;vdEnfZKVsp5OS-C@%$4@9B;dWROe zC%S#f2xk*a^EyJ$WH;FyDx~iD$aeMlvFPVBqM!e`LknePV;JjGV8viCCJp}dR2diF z<&QeBzD`&7K3?VDCZYlv6h5Uc*ciPb-CRb6|`X?-uNtE=Is<@SYo?@rpElbTzu ze@^VZJ9+&=zFW=_F}pQ4++91hkRon4dJ;E3J@4#D?y{*nvQ1oRWeVNz~cnsamr-TE|OmG^1>pL?2M1# zF{dD%xZfy&S86Mbhh326%OgIOX^SUQk(oPoY81cf=QWW_pmZb~o=HqP!MHtoSBbRH zTE-hA_$EE!%*P7$T1H{)XWXL)=D1f6dUW?y_DxSLkI>fGQo<_=e+MmC z!$`fz`#VV&Fbf^LG1j;--pp3j44zZEXp@#NtJQ_tS;EeiZg|S+bsMXfAst!pW@7=b z-d;y@oJCsVRD6#W=OZ1mVPv9|4}nM8ACdAD$gU2lyhWcN@_A-t4%IX5lcjv2yxn1m zJTtOX-tLep&y4iR+a2=cnUN`we;pkhWBtxcogNOV9t@EmpO2_eqL5iTwBxq1*0N=e zvDTZrG^+3?z=Nq*U4=z(BD(C0H}-9;u|rN{vv<&fiZNMDg?H0r;Y#ibAKwU zGswfNX;LY=SSoU^ibdzqo^|GR*_+XA-$Z8vN|m}{Dm)kiH>Oe0q=H)cS_QSzo{N55 zC~fQrGtVJlOm{(+b|h8Se~q`zr?=!6z+=?AAVxC0ET(YrZx0uvs9#^Cud;p zIU%@>Lde@U=flGyQ;u|)3=iMkJ8~i4$PXQo(UC9eNBVFW0o=u~AjWi;JlTDr^*v9I}n#S^`D@MqyTO` zf9%WGVH@8GcA< zz4GmwDi1`8s6aWWFr>+NKtaf!CMM^^HCQ%;|})mY(@QTax~>#E?v$kLd> zW-4-x1d^muvrrOO%D9EnHdQ9%@XSfu2AQxIiuG+W>~%bl zQ^}Z&`<{KgrR5<=BPI#cPF7iUD(Zza8AmidvWoRSAzstF(3P<~UpjykLW~3`f+Cp~Z^_6VUmXBrK6|spu8dbWw?We-+%IjGD?ycJ6_B83Aio!hgq? zQXMQ<39nQp(PO1DUyur^WPaHUSjH+BMs+ zAP-0;f0^}0V+rW@O`B*7@>s6FN)+KxDPSdqWy(hfqT4 zIxY>hMKrtJ=c1c`8_3@3xnLMOQyw$csi14c(9@68)1;%gN)!eez(=Nd3o3sCl3i4q ze+>YARDPj_1uQJ%29#uVgeQfQ43T3xP2Vk3N>Y>wxjYmu;ud3n@}sr{a-Uvd+rjUu zPD34MYK5_l#{2parPI3)LD?6c0%_1I2oY_lOiMcW>5wcnDU|hEaKmGcVy^CP^%qOn zCwj7kQ~vO;Vad8`ijqCHK$;;;dQv}&e*hU+cD+?~{WYY`9GW}77EY5@dg^qER5Ezi zAfJ?RN#5tpq&GlC8N)Cl)pLh6-AM(%AwqZZ-MCElXiMa=NQ&&y=0F~cCuxjv9VN5C^b8A;Y(-6FH^^mCC@B+C<)oaxN`^g7#t!#BlPl_5-dZ-ggtKYwf0I zSCenwWQZIxcvVswPc0BXAhCS&he_;DEqbd#ZeL^QY;KUTlhbm*XN87=0oqxq20%Y`%YQTP_|{kf6}wXXr>=` zA9gM`C&FW-nzA-B*ASt`HBz4{k$fXn)<#MVklpx{7{jkMsJRk2uIlQ&w4wXh|%76+IiV&hdHP`z0fTu7P~bo zUTYHU-Xy`V?u5sxl4zUHe-qD9f1Kbq*1P1N)lB(F2H`2gKY-_Lu#Mns5#ux9Lju!iBsB*4!(3Uwc%zD{_72i?C3s{+EQo`3Opl za}(_Qz!~4;c1O4p^cpBbUz8~}{2}lffjk~oXih%V2lHB46fR}ge|z<}aTU{t(ASho zIrCf^5?!eT%v7wp5g}TuT?#iSxvGL&{m&cF>Ooba%n~>D-WZO^#O({>2_NnM=C(zqaSp=2T zov^RLHU#hhiV=pTf2WGkjPB^t-2h~1Ej{Q&Ho1-%ke6#y43YgVzf8=hoxD`gI5!d3*bn1-ZmGQf!-DDYGD(xm;M|ZBM z6Hz-FSUu;0G*=Wcq$)grA&_^rNwvSD4KIF%WjyE7|1L)>e_9NYCio#T9RXtyWO5~g zLBziM9rkw~G@(u}ki=$VkbGXjf&7eh4D@K^LSCsXLXh2TLdeLK$12l!wLtbF6CI6Q zd9-qfAu#1*EJ2--D+?=m+CIiX^*i4X{?TdceF>y}B2Pyj^7UQ$=Q)dG$Y{N6dtJX^ulL6f=b+s+{nWx8;W3FWOP*>|i zpdbrVk*mgd%yrO!Osh?bJ~z2|o8J>d1)V>4+MlP|e;)y}7p!yx`gtoob@iA@$9begYdo=3+^O1Mi517&^be7IA62rs%B33B+4 zAJ2+^e|#Y<3{XOhD808Y-pI65Y|53l@nY2mFZ&PLlN&ArgBYozMXHEIwiNp8t@vyE zkg>`ocb1c9Vc7Sm$yhdNYHB$hlQB03^GkagLR=WL=WhHeIu4KA?;=_e$&>I><53r6 zMueHIJTT=4EqQ9(NU#Rk|1chPsdAf0VVnWWfAGlnN}y7JKsTbX0GbdOiJ5S-_Fa*M z20fdU9GnzFccMhI79P-4%Dm5}Mmg!k(!9S3@3WCg6dNAsh4MDtSMZP;q=kcQbfw;j zWUt|oH^LN2bVY!#pVyPw*N$*0l=s6(l&L7l0eS;_A*XU$>!?5IOjedLGF0028)O{S zf4{4FQ&6n)FwxhTdV8XmMCdK(fqt{ROGpTv^R7^K#@4hDUDGxg`h2R#E#t+H64DaThBG zi}UO&IxAK-ToP4T0EcOl&`%=H1>F#8g3h(sAi3t9y045NGY#1J553Z-HR3)!yv!5vy(MU8lUusWDUb08{4Py z`dl%A`Zv?!t2f*F(HR#0kgVaC@*-Sg3{%Im3&z8$jwWmPSsjHK6yATAtYH|Wf4N;= zOnb8L$LM&bx;RIN5GaKC449_fb{!uG^DG1@^PBG4qx`EpP$EA$5KfYZ=r4c3391M; z+oAn(7Cc?E7|4Mk>VnWGkjqg%@3i3~?NLAnM0LE2pwl|v?IoNmf; zX<(x}Yw|(2e)Dbwl0Z{`uW`COe=EmX_*G55jLk0?R%`Tx4|T>=7dEq5PYY|A@|P)5A{>GeV4t4rJb>RD}V` z2c@bKw1~_lyEFQGyJtCl8;Xq=T+lrdXdzF;2D;IB;W^tVynJbtF`DY)e+|)I1yA!Z z%C{-)*TG|)&d`bX2!X1D)x>&oq^1;Z<8;VR8jZdtQIG%`pTx%JM0^+|iqyX!LG$o1 zI}v{^y!s`wGSVWiYpKhBBalOBayiunxo8_Fs5|)}FU&elI3vTGpCc&wrP6h>c{b0V znuu@I&0$Z(>{?3n7$(VNfAXSZ@M6VO1jiL9X)Bk|BmN{v#$@E;dw6h>jVSd_za!gt z!KH*iZm2mqsBk6^d{4+qWf138C7hMlHG5j5ig<}wQ}1}(W@y(%h}=5bRV71>gwtpA zgeg~TKVfpc&CX&x6KUaO?NUa2i|nPy#xyu{H%kHCx+U6s@jiS1&q~Rh*8Xd1Z@Ac5uZ}?BJv` zE|;E07kkSTecdf~J_G}%Y;$e1KVPbPNVOmGpW!wCnv1y))V5zrLP+gHx|&zy_vMmy z`yHx{cUxF09GC>ZCS`mL51@lNi*dsS=Qf9oM_ z8q~7DtzN8*dF}2c;e~!!Dl?FkK%y_jFc%-IO zcMAhzE>%p3`4T0Kk))8`Q6eqQAn()FAPFlF4&kes zd>NO&tfrt_3h2IMhT+jYHm+|tr9|U@tamX9gfNa?4)0NPK`sXMhXr!+?=iOlrH6s6 z3wg^b=cUi3e{%4L3|r>qQTDrW;Q?3Sizm_(}@`P(8CvS6@hP9kJndRcm zvk3CI%dfm@xHNj`I5j)oqZBaI&;gU8JCj~-fAW#t=;N*i*=slYsH=gEZvSJWn;?(4 z{M=!mg^6{ec+`~ndNOZvcA{UwEMBCN<2`&*tK8}vTn)0{?%`p(haG?HVG(5hzk=QS zSLiv%<9g`M=f+p4o?>DKY$7i79ETw#C=PnPoCm% z0x}^7R3k}g66BP@aN|ZL{|>NFA=g;Nk{n2f!55xbD#cR>OSECRH3yPB7;;?>r1N07 zg^{Mt|Kmqalf!Z#U0EtOs$bD&2%r2TiA_b{P%bK$vcYT9Ab;g2u|`gS@tPb+&;MBJ zp9}e?HW>1hO^R>|S4Z+8eFi5Xe-{_E8d?ql(tikKqxK(Ldx?$gWOK_ID};VmZd~4~ zjX}tj6)f7RIpcVqAHA*pZ}a>ls~lvz5AxT?tSk!&=7$Oxd4g?z=(MS3>#;~0CG$={ zkMh$4cKt^pQ^4QRxn%v=c2WF-|=s^`~hh{R1gobe(yXThr+-VZQ1an(}DpXu+BO_p~m z=}BT4Q-;?QGbJ}G|hYm#KQs_=Bp z5LO^f(={Zovv6filDw`8SJvcnh~L63!}D#JbPt0I5=8!Q9w02)@G9}ir<&iG=8}gZ zX_QJF&^poMUXAXd$P{VT{Bj4EubD#nJLvV1kO}%cU*LzwJe);2f11bKnPtl8G?*il zG(u02``S0N6F0n1_EC*}Q=UYb#H{wJw{Obp`82yd2~)1&*X66y84KkI@ivX%7>CJ2 zsjdf>oPAtMd>pQvkq5cXC-B?S!28-CB=CpJeK9y-%J?)2r#r?3S&iMD4Iz(_fXRS` zmkAwRDXum|cD3t7e+8D3om=~mjyh0Q6aRuB9uSmKg=?c&? z=sZ|BpU7h(;}D$1T^nAXwNv1a~ zHJc^r>c>v(EbR5CQ{V;{YB1f zmXdt*e}P9jOotTbGs00&)f+{!sTawl_Yu@Xa!#`fsvT5hr_(srVX~e`L}2l>SX3(zxrDS(>~D@VOckkk)z%s zD38~+pqNvk7s>~&W)kp&j2B(Xae{d%2YIk!c&AV^|DE4&2GM~8Q zBI7O>dfiq%M4dD%q!s?Pa7|@+tbv+=ocI{|8~*S-Jb3SrjV?IC6R?BBll>2 zfAt+nWJ4#+ljJoZd6JMX5I=OUPjhv1V7?4fXv9jqmN7|<3@#~`1cXP<9P##+^ zli8ywKh)4^cd;={rb{P#p5>>S^~i;O;Zb7JI?95{xt+(;%#@;*G0c=ZBoB)We`3%d zYEojBPmKfOAU+@jaX&koA)Sb=zOP9#hRICHq==g@zOC^Y!{i?2J*r+DsmVbdI>yjc z*1&jki^+7jIVyv31J?ZKnkqp#WMCyHWV}L@ktw1=zXW7NPV5j& z`dfTyKQ}tW&9)j^6&x|he+T!bMgZnA48&9FP`+8qkl6CP>mXf~En2D@w4b}H+Q-q! z&&FWt_U@`KRgXU!6kbprsQ-3DS@I?6~jIio7qW=Xk2g+tWI8b9FsDQNv0`Y!Sz>lA2kHg~9&^+_q=v*%~{O}Achq#)J1bH+LPtZoTrW`YpjRg6w zijXS9EoES`$u8D!bIGGB^b<{l3EmskOC9j&uO_9t9lM|D1dRlwJZ0ozkqRSjLBC8U zw&;GFk}AlLFU0-?st)17cVOgq3u}~394Bp>OMW#{X`nbIf4YZ$F_J-LBIHhG=|tOQ zGF%p{UTRnUZY)t1cw#*6#+IeNi`wA8!Fi8ZPiJtcydB2=xLXb$2z}N@vTfw z@T04dAP3ZRj7YRe0#@k3z^v0;a%X}9>z6885Y@pGb9JzRIBw8kP-=2wcYo&_~TFnN1fAwoohHglLv|VQ;$Qvj2In4!Ab|oakLN@J3YE^QUs#3V6eFfGK>vsH| z0T1cVL30&G3?(>jjORhB&Clka;W_#R_S82Hi-R&XY6a9}B*^F0iS}a40wYEkMG2xZ znAC3MB0${|fA!1)sdC8L#)5dSE2F*gR$ojf zt_4+T9H)GmkP5evE(@x-bnBl z9%I2x@!npb3fM@O$ExE_UDI6hzTvoXG`6a}E(#m3rRSN+f^w_z)H1_DZ-&iDR?OZq z1SFwEe=4U4k{R<^CQ`#IiVRGL_abTMhm0>pkSy7tEF6MISy=iM*;WQSxa3fHFNOv0 zQxv~-!y@@d4gz>AHjI6t_%MDXV7#9LurB3xhbP;3-X)8brj`~XbWoV)lFu+0EP>3c zREX?L%wfg3l{Oas9Lbb!T+U0wl?OM=9tr0lf6R~H(L3oK>^W>Kig$i{8)k8Po+3ll zCgevDDb3=?cRR0=u~=1#z4-|%aqX2^cmOnl@Icz|BHoIiL4%AtDj8ctUKi@1XR`OD zl#?ihV-R$AGRfDE5D8sOZXo$rWwc>ozElr^bqnt2-6$@%i?f37Y zyj*8j()Po?&JM#*2g6)aI$q?#E9WFbe{LDlk1~!Bq=sJx-4?%}oby_)NJZTuwqJeZkHu@7WzMN$-1T`RA) zp@=`i6|SN*oYzM-l-+q_1yi??61!G5sA@8?GDaFTmc~c*OeB+OuT{3(FPX4e`DP3g7iKpPo5IuHy@T2f#Njjmxcvg#c~8Tq5xg8 zl_Sn~XH*bCxwq73ZbTv6>g}O3O4PJjbT%sGpzB+?H&KNfb#L;k>J@3N-J7PlWM*l; zD!5Zt^6{4%PBY^&j8$GwrrasXc7czn2rX)RuihcjZ6j#7)WXYCddxoEEyTr(n_a>wm(_QlGnaQw> zEXb6SB0e8KlNOb^d^4%UXTLcj&rI~m+os>hioJZYZ3wckR26Nj+&n`W|+CCesqolQ{#r;WZTD!IR0P$7Eqe@Fyy4OuvXbsn@I+R%1633Im5FK6HWM--(Uen<$T%NVfTJ@0rBg|N$fGqm@oo4n1Ach#N+u%FUJ8jVYF4&>Yr2H_^9hmZ$!?n$!aS&%QnY7`6Gq#9ZB zaYa6%Uf3pNWXUJ?_!`=DQr;Ivmh7#d4OOwt&ZZuKD8?^_&1aB3rEOi z=eOY)M{$T##?wAJ3wlW265dpdoaKg`RzgZZoz*(%1Bj;dq5M}2QdRne46ieY>TeO! zW@JRmsQo{RnYfy6xRA$ty{-1dM+3e$GUV}IsT}710V!NTnqx78s9s2NngU=sh03V@ zRP@Wue{L6jLHliT?1z4yC4#@nJ}%!2${p=|0QliD1y>-=cfnck+8 zktN?(_zaO5ZRSv}rk<0OX{|u+Zo{Z%_ruF(zN{c!ZAwNa=U{A+&177JFao%XR>h`# z4mLQiG9SYYk&n@dyIdZtRO+KoFoz9ELuHO?e?J3qcdruGFy-?BtBeep*NZFq`G6Gl zo4fb(0gQh(&z_wb1M-zK7EDCIGJR7ny2`XjCAZO0>QSdglE4g(Did_3A=1z`*Eq;r zNo?wQ$7q9Uh&;)qQ^AC@qWk)rL1QLk>ihf;C82%SJt5e}JiJ z*)!YxwUQrCLo#Iz${3!Mhd>@`Px?Foa-h5t0Vr3$huU*W{1G>ovg_19fK*xrMi2Cgzh7K1H*P|3^=FJI2zTL()Im0ihP+PtfSOW1!k^B85T)oe_@PP%(~AR z%`t9RBVG2lk`!dgyttsCAzpVOr3#Ev8P0Zs#%lLFO+7(wofEO7s*=FJtHdMy`Q{0G zYTl1d%@Z8Eyl+pOOAb1|fa1K%`cQb5CSGpk&(tBTH^qtRw|oZe7=0F0HLz5dU@u zhlmV}QCW}ect;eHEQaT0j02_o7EB56MJxKHV6M~m2mGE?4=Dr#vZ01-uSh2GHRMIf zJlD`=dkqP#I`U_vMP86RM)gqzq|9ED!QA6v%8YM}5lNjNh;;&)f6}G{%3?~-ET=&3 zAQMZ95V;5w(3fH!295Db(^!c_Wi~tr_RFFCAco31KN#yo=Bro}hd`T_sR)=|@H~Q; za3AxTRdUl&e3b=x10gU%levdtA!GV5ngiOGwfR16+wO7k>J^IBU@{tX0H$YPhco(m_!BX8=1 zmFk&dcMoJy*eAObPa~%@jc!!a#+HeZg9Y-ilA3v8-N?jx)Dp;2n}YtGnFWS2jn1SR1BQkL=VL*PEU;vOJsy*`z1aB7=ZNA)tA< zhXJBVXvtGy(l!@E-qih6XWkZeJT*H%?(D8b+=NEDtZXH2$&#&cY0IQ|-4+U+aERgz zdx3J{e;}SJxxj4 zBN3kzfB5XG@`d8meuke~;ZDhPC>wM!>hz?e2u8tglL@zklSB{6#3bpOnhhEW$ygug z-xK8Bi>`wZluF1JRjs-Kcpy0y7-l8x&=u}rD2wy&3}_`o~gXcEuPp{7?`Oe+%XJ4 zX{oa#9#bN5+G*!)B~W?JNSEUi)s=jk z5-Ft1?-Qp$^af6OOPf$Ovh1sfiYE)^mtd5tsFb+#Gfs2wM7zG@gsz+5*E?x0m)2IF z^h}BN|9@fbO~9k9lKtVgPrWJLge0IOj;KR2Helk|pkc-in8xm)i4t^R#zu!I9i$_M zC4npuNV+?M8deolP&R`KBB+1{6;Ox^iVG@kpn?Y6P~1=nl8E`9-+8xAh;wo7_uS`y z?=zTw&sJ5ZPMtb+s_IDRdoO*UCB^L=&H>(|W`EP+DUk7#b-6ze-UE*(2AOtF%4d2! zF-y98{AaSCC}woBGrd0PFpLm*Wk5TNU8!7*nR7sPv!Qq4(rp}8Yo(T{v{pUO$N9xNpLsm;O^AHeL`!a zxC}>3r1WbUAmN+^_QAu#Pz)m5Oi*j;El}si>bB*bZ9sj@2DQ`7)#YGn7*}R}3|DoF^@C-jqYE z)2;S5O&Nw2@tcAFO;e!L{-za!HZyhne*yl+YVor;|5tOF6g*}1xywLtW*ZcLvQccX z>%K3?ck?E54w@%R7;cG$?Jtv>C%>Y4>6X|v@^8zRW#+CL0yEf`f#$9hJWEsAuiIn+ zzQ+LkrZ#{#+kh*Zt-4wc~A8EedEFebZ^U|g~=jxgKtY?JyoI#!``@yxg#ycl@&8h4sJrU$N^XE<@*r^iDu7rsBsZ)JHHX}(tO;@3vz$uSff2#6n zI=m8&SLL(TgXc3WLDCnF^SM^)6i#;WPMF6aQ~R*L=N*|G<^Us)mR>UehY%kE#u%rg zBKC2}`lCNY)xw%SoEB%YAK~1! zc(Xr@s8V9uJ_T0-wW^o4Xvmw0SrJ2i#hy`|%Rahh8=V74eb6g>us<<S4HX^MEK_={dvW0&ofm*wcLCV%4OtJoVV^4Z1R zL5W>)IoIh&oe$vs=YnS&wl3rNG8{yAk`AzEM5#6`Tq+-w_mTIjAr{(@-bDD@4iY&FW%OxiFxdLw)_*4hYb?79!2 zZgfA5cGbilHkqdI>BdkmIOauF15CsI|pGIF2W(wjq9ty zOvnL;JQxp$p})&eI~SdrCKs!AHoN4K*G93A=hM8fw5rk`2Y=j*X@iXTlzRCajx45C z$W#=EJ9=#yF5lTFSGJSgT*L+R61+JZLmsLVSxldVl9^VBHC!wH_N&a|0UftdKHJ-q z160*QYLL&t`FF}x(t;XINhdAH+J+(Qqt)RrnYKFMbXqGd9P8L^a&+T+7Ja^LKQ-R> zt+Kr+Q#0v!MSt`Z|7K5don3cUJf@L8iyOfjEvsn3DnAf60vD;YxFVlEjZ33t6*Ht5 zMTj2KFZuWo|BFX+fQK*=v$>Jy&&_+(T@G4Oo;;HSdq!f}|Gj`SGyAiiEX&K{Tx#r$ z6$=v;WRjK%&uO?z;?V13F~CiPu**mKgGY{pdK(8fqun zJ_+|#PsayYqotD5P;Xq`8pPtSM07J8so-Ky;St1Z^A8@=2?z<4v2rYu#uIFwGSYdk?gK5 zVI4t<%U$7oJ#*s1ut!QXgeeACqrHw|Ht6&~xF3BCI?;-7zD6H8>MT+$3FqTfcEFLr zv@DD_+pkOEB0760Q(&zQ+h3Y_C1XDhusD-O0Q6pIOxMa{AN9l?nje+``dODB?XDbu zdt%|~r!p;@yiZpjKaJhXwLF$bE`1#rWhi@KvT^tNacq#?+G*Ew<}ALBwb6hq9Y=c6 z10Lu5@Dk4bks0!M5AUK{7JX5y;ffr*g=MUr!L{OF^gf_m9hs4Xv(1oE9Qc=Z3KQkX z%MKWt;Pp(eD?@2SK6MMy_26Moz?yesv8NkTvvNZ`1&+E!ppzmFsM{s~1E6=B0oiotk zo0AJKkV4tYE%+jrZ0@cfK5_ip_c*(>XRo_%N_sVIjeIFJUKr`hxfafkJ{c8`gb!Uu z@&OLq%ER$`U4Xj1P2<;MYlEvSuV)0bJL!~{$?mQme@C!(ujBwDCLT-yneIYI1UZ9O z3u$UT^bKtf2Nuf%?E9s;pf9-ok%VThRsV*(C-0QD$gi{}VFw26g=`eHtQ&*DdjYuO zRzoFT3Xz!20g*}LT9BS5h8`}1in2SK1GD&AF5>fLb_@tsnHM%7&LYuFp|x-zqtIF= zu~7aue?X!VzhA^%9f`eYmd$}13q(N^bRFDcEn%N_JwFP`vpGJ8*Q+sfycGV%R&q|S zc+f$M6Ph_6Ec{ZLXC#=Gc6RO|3ibV~@i%K9nVyJ!B+3ltZMDj7YF}1om%W$(g?1B* zUeF=6J<>x=qfaLzng{&4G!}k9Fe;r51&*Ekec!vu!oAjJN+qzPDXN#YC$u9%ja_zU0yg;md@=l`)EHV&W)RzlJriQ? ze`W{OBs5=cS}AH&tKWTclitMZ#OVg%?Xo*0aov~5ju)_xGcPl*e+y!)9_~%V=y-xd z&p30iypUbIN%hh_osqsE^Kv9L5vg>r98M>TIT=Ho` z8l0_5!EN$yru#}^Isv1|R)M~_3bbCeOO3aH*bX3goo*(Z12~v|PSj0Qb0&e8e@>KU zvIUdmiRHUQ+o;^eOqQBp_4#s_f224l@(W6%75T3c?6aC(_jS~jM7SA)Q;SZ7n++ng z=tP(^3Fx>$2wZjlkdVVZ7>#C^!u+gL;U`dm>Go1-wfZq3$UZALH#N}$?wu|WA#Ulx zuAKo2AD<|-)ahMxtdCEGVQzXCIItg|2*cbOHI}{?K?uKD@i}TNeE?d}f6Bz197b+K z>Cg`IkDHgOv9x;NdI_Cr7M z%dFm9MiDEKM$IYK82b%)e}0*?k?l*08Hv{1HrjQ+0z3fa;6!OWU(_Who84+AeK}F` z(!B;~Urb!VBys@GU0s53*OL@=^Y=J&VeQpI2$X?`H43MjQb6fuf%T06*0*iIy3Gcw zz^;27U`a227Xseu+0T_+#>MOdtXn6(BbVQEUDEJ#yAJA>E0`ga#Nyg@X93kWjcY((}_8_fYCD!7qR~fc{+g|1}`Rwvv56n1(!itsgao} z&Ve!yyPKZmU&~`3KLOpTd=dVQETZaMl40l9i7Z`MrJiQdpuVd-6Q5PjG&&zt!yYLv zkUHR5h-lMQ8tIqteFlRn;e4jG4kRWGW5$@8OAZ4m zjowYn0$m=TBu|?+bzQiC@8AFrg&BJysDaq!-avmwmxYWwb8&GKvNli3$L`BCGqFy8 zUSng)BAh^3qn%y1%Gj48Z0Ua1&V{0Lb}MzuVJc0Bsf7}7f1=6fGJZ(Sq}?UP)x7lX zN5aBZ#|YI+%M*9-63B&pHY7Y>by2f|;zts9s4k{=5Irhg67I((q3Y6T-=so7{9s}R zyHyu`H0d4Hi(gRHRTs_1ywj1yAZ@@?TWSWnd3RE->ZP@b8BE=W!t{>4Y9F?A9Dh&>Br(P<@UbOL8FFA+R*w_ zrqe$>>?W~>JjG1eDLpxGYj#f_$v&#iMLsU3d&2qjr6WjHDGVEpQ~nVnGf%!UNzT)g ziS_IRrt&wv54+vv3!KQvOshpDr{Xiy8d1s46nMI66z+#_ zv{t}Rpr6$9;YH}cRk)Aorih2$3wvk{479WHm5zixG#h5XB9Bbw${M{~Y{Y89M`Q?1 zOUL0=g~XGAn=UMrM^4G&GAx4S*qGrNd4J*$6thEh$<=iPZt@9rrkqagZON#0r$C{~ ze=J2Jfx%F#vb}Ii<^X&7YTSipbJ?XH?s*w*UKpwttZq@kXv#TOUk{%G{n^b6a5d)4 zX6Lo+G826l*wuD+MYX82MuT0prK<$T%b9%PSl$fAD`21Y_li}eJ@L`acwO}hMn)Ky z{4Y(ll!}Hl3zR427;avG+Y#(lWBD@nYni~Lrdt&co&xOyA=d%cu2eH<|3oBm_A)K+ zf)ElcG#7ONwR>|OKThL@{e$z=0E_eJ-bpQR;1^fWw~5Vb8OBE^`(Nf(D6xHTx3Kb3 z+<{{Qr!dZf-T!22<#m5GK=@BC`R5sRyfp7rm%;b0I|X@tOZ~c+0r;*#Z}yZO><5Q# znm82=+)OZrJF-+Seb!|mm6WJ1S_4SvK$kStMa%Fv)7xFru=qqOjcK7XhC&8tX%edd z_W}ZZX*QRFEUTC%`4m>58QTaf)ONWi$*+XdSyWIxmg>QD-QbtUx@PIuq3{Hf$zkO=cV`Js0gqb{!0{t+^%d+! zh<4~SbAW~m%$NQ6t{s2$r!Qy>L?3nt`cplPL7esxIvqj}nY#k8vM>$8nGsB^(SRS= z`IkYuqbI39=!pcc#=b7iFUZM;^hQg$NPDXRrbizX0Uv8+`dY#ZKkSn?P8yA#!FYbl z$XuQJcM}oXb1K%>Cf0BooC(>yw=cwAWEkhk>+^>OL0k9f1{;4oXNWtNLy4Hf*) zG_A!vr`KI*_50ze?F5M8w#pWCYgblamp#`F@ND7hWFi~CbZA3HfFhQ60C%2?yp`J_47Jve~>D+&$sLTL0_V;;7Nl_0w+23zVN@AbM9S!#PMM+8K*GBv6$|Ug2)%>V5 zx8h7x%ffSv1JD^)jUNUbl0NR%il2{;&j%yF(+#Tih6(b=8>a^0*HEBl(%K2oCKu>x z0n^*32BF(f)eNl3M@nEk$9}2NJ6)UUv687wySio(!99Nnf;fO}ziAvE&Go5Xnw6Bp zF6x%XG`^&#UU)EIc)XX+l0bc?d!zFiPxPT2KNgFfrmRIL^`6U4v=@y*e%# zni{%hF^x7QHS=f;`0h9)0q`>2os`CukVa=!GL7!161`iT&P6-~1YlZoN)G$!tS{)> zVhrgk!>8nS%C{+gc*W?py5h4W{jpBpXGu@a^$vL?3 z8M_urYL`mB;Zoh%VEu%2a2wN`r_N=k=z|@Gf=uv>EtI&^ltRwoB8toiGH%`jtbxSh zuhbcKXL%kJe}&n~54T^x$Y{c4lK%DvoU?z>AI#W37Jog8<}el)u^7}!^CHP@!a*7? zv!ux^q+?gJ>4kAo(qvN-q{)lpOlh(u$&x0ims?FgN`m~ug`oRv=@}f!HMO1syVeJ? zR)i zkY{!N3UE*}=?*E5^~Yzubf}wU6lt*Q?lb^_R(0iY4#>=0{X85*N~y@OdLE8D4eu`; z0JHHD_V1C-OcflMZR&g+2!mDq?7x59RPbu9u%P);LZi~cGDEfeIz9_GUU$n|PC697 z18E2vE;ntXjds%?Byjyv`_3|tzO5Y6Ti>O({w5x3Ds&qSInc^jPyKszTnW1w-uMUD ziEO@Js!fvFe4EFm;EUXll5&vh-*7)w{$W9U+i8a9;tOM8DAMSeWCYx=g6V&Oo*yfX zMb9SdbM^dK++0XwQA09zju*$_c6Lir4n&_CWTe*vL!OR3=9O{z(tF;edTC=4%%rc5 zgMuXgX4*M!1vDfG?8lRGNF8zgKBWhku#?$|K zP-vuICu?+S9hLNBAH0$Eo!o!CwGQwm8V3#OA$Bqxu&8n^RDg4_F3+KeW%Nt^r$vvY zr|AaNXXS!4`Dv^Df@zIiccn?YM<7D;DeFh)yK8c$L)Y1TMN zua>0Xz)K#GNm+WblV^Wndzd^m6GpOdA@63V>AF-m+`@M+@I^#SwY943!ULy8sZh$* zR-;d&zo**YKRYdnt?Z{>`}?8Ol1!DW!2bG;{k6va`kO&iIA1?oG?hX#^u6cR)6(#1 zW071`ubwuS-RdCPSTuwCa3LU(}!JJ9};t^+LMXS>4DR-z&pL!$Ksr(%OJog zWapXrw?&!fI4KS+p+4qddSaT+2|f<7OX?s{&a}SS@}#HHj+lCOtB*P8scDcNv?C^K z_~pWQ7p!iC(J6n?lbt};c-?N=V16G!bDu*VSTM!*ZIOP6wcFBw=hT^A+!jGh-IfML z?ny6hGu{N>(xAv)={2MN%MEZ6C@UEWPgbT^y(K-_sScngE>4rC_&2<=+vhJHG4K+k zOq7=cP97u?p^1g25UtX6TJ4xe|l(RK-M;_i9?`P$A1r-p^^-SVmG0D7!* z8t17FaSrV&Z($?~Tmt7aagNbN(CEU=`*}XB6g^tSsd`z1SypBa-Mv*ffAunNq0ugC z==#_o`{mHDO-@z^&{MH#jMt-mszak4lMl<$H$mC$F1qR6q~2h3rqY5l>p&6K=-VJB=iqOBte1kTXNO) zI<}4WH+!@)y{{vQHRN+FN6lwx7oaqsW}cM&ox}cbIRHOTh#&^(Lbey~N2y zW=TQY5wa-FuyI8;x&?Y7D{YWtyK@X}DuKn7*Ba z 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

&Nc^T6spKvu= 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

U|i_h7IMHqN8ZEFFN!O**{|Ij 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


J#cWBH@!w`z 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
<*@*T2y7tb;yCvh z<>EQ_-E(z?A{MwInbnW_SiLTzMSUZ*y4yJlgu zForbN{rL_dULg#(NDQ|ihF6!%{&I^LLo%K2fzColCbYo({^j^Q_Gg-zwZxfO)bnPD zD8_;exD~xO=6OU|`)J1I;>G_;#&!EAdVIYlzTSxM`RCb3*O)n!nbAjm$VWdCf?9Vc z_7Q($NM>; zN|44NR&XjBY@7r$4#E8T0z1UXOtU#fhulpLiF^?e)Y>7~B7JcmHI%ZbL!1iz_e=fv zqyC{Uvi^0<^j}U<|0L2sw{H6JlE~{fqLd7ladC^m}9U z`}r5m5RrxrVTTZGnGPjph**yW84!vbua}@-YVR1FE(l=SI(;bv+q6>;Fj@kPMu3M( zB*171uq~>OUcoE$ZScxeyrM263qnbuEnS)YbF3~XXZ^qJ(&I>yIFb;@xPRju6(D~J zmA{1&<`RdZBiB zn$Yii4Xyf}2CZiZ*`PHwBNJ!3+*RnXK`BeT_MINlR@{OMu$BBVdyN?kF3cgAPv4LM zC#Vp)iA8+DB0}v@PV1tR-b5%h3}4>+X8So^E~n=RG5B7fI?Ab15<)u(#kT1v-0xWS zrWp*hZ4;uf_4d9g@kL=cK%js1qzXN_{>z-A6pL}yNflz(BE|rGmjiwf%I0#al+e2Z zkE}I|_c*p7YYoSX8K-hha=T54yd%YQqH%_YH z_qG|r!%nG?h(B7LQla^Ouu6whDn$Jusw5l7o>E~Dm8a}6K^m9$H{v_B8?ZcZ@+lRT z?GgUj$SJBDYJB*V3ax)PU=!8gc<(UcgB?a?K{>m9*M1>hxZlPRWWxwry1@(vG#YGZ z_17C@0NK!!;PHGGIw|@cGlbw#R#WjzEZSp1r&44i^Hd~0=!y|;7H$^~WUI5ufju{} z1LtpK2Y!w}(1CBfiw=Am9r&kkV1e=bQz{&O*9^uVPpQymlNo=E$4{w{yU7fJ5f@rQ z!~MdvwrnEq6~EV*c%dbnL*70YTEgw`p$n_`A-{SuDhrP|fJzqD_Mi|h{5C@|py@CJ zZD04E^xF*d+qw6o-)5jIJf4|}*+H9eQ2jF)LOpLd%pE$>0B`-*3=p~UfKYReQytfQ z1=*Uvj}}xL1mb_>E3N6tjAVvC`H+w=%vg+@#N9Ii7At7T?DwT1ixsq_{C#Q3Vg<27 zXg=5X3uh?RSplhd8DCH=6Mltq0twO^O&0v2_IjzF54>8VCPpc6Amx!}c z#klaa3Y(DQ@zW|?Lyqb_?)!QHAOA8c3*cvAOvnmrJ9zl2Pl* zrBPdzi+FY#^|O!30pRI|A1c@nm5*>2gxKc}<-|YaBmJN^g$BK#=TEDU&nA{D#zUu7 zXtB)<#y@{ft1x++8N$z>R^e6r(cp{^NEc;DB63#p< zBjhkS$h|{4^DsH{zdNKe50i5sl!d~Nln?m?_f~)X<<%j7rLI=+DfY-{R#wQVu1Ee! zZ2OR{dNV}0Yf(WxvYh4p_`BX1+)_8*14Dj7& zx_~%AY`1=1%O2?sv67+nKB9+sN&5Q|L0td2gm{S{p8s4zyhOSol+K2E+z$_jN#Ci% zcA0lz-_TUq9(82Cy6Q05n%Z2;?6@|EKYieg-^_hQ8fdt@`P#kndq{5AZbN~h+fMV2$vvU}P0Di!% zh_pei#~MKW4sSVOFy78*;%_pRM#mwy4>CXnmf^buc+&THlyKMgW(eg^(@w-&f<@os zgVrOsoR>KhCSy^fAMnzJci^KLrIk}`0I{HCC7yfFsv0dv$1~pe(peQ=`@w$<#y8HY z&~Xn6MCSWX3v&xNMS)ggp0~b%(Buj07y0-J*&bqd(B`x zdsc-5_~YtX6%zNEA+W_c6{h%9ng#&FjD60jkh9MW#zE&)ShtTxjOxR`eMcL9xIi?U zXUvP@cH4JO7^IYp1b`O0_G^Ek*bVUWJ{dqQ(EG;yS^%}c_PcLC?rPF(w!|2z* zN#|6EW9o2DQ9&2u;&Uow6H~R*@b(?)n-RXQuVk0sI4_J6uJ5UHea{lR0scNLUEdR3 zAM>N;`kv_e89$nZ8NN`q|?nRK)|N+ zDkL-aE1W7N#`EV@xPi3-E~pUqi>#H4BR@bu(+et;GxrWol@jCK7gU)4iy4er7gTsh zt2GTTZ2$q&E~rq++`n+1_Dz(wJKrkpAzM#DuF z7GW*RMHSw|AGd#BRH4ytviclW+Vi3cQCuySQ>DZ>_o51Yelvsdv5P9W@W*o(RrpA& zUPMzgfPmE(RY>M~eK}Q1j3+Lta0#p3xTwPIzheVLUQ!{AIc%INCC2+NsWAC>GZ^zO zsqobA65mp~O9Kd)c}ayLW?#gqQexbCNrj)V+OA6~H2;4?Rx6gc_FYn;l-d0*3HK-^ z#uk@V$oRty#txTNSf*8bR%%PQtU?sCx8+nRF}g3S@EcZJcv*#8{*>BYklLQOtU@xg zkLFY3L2ERI+}<71>6Jgm;VZMRZ(MDe}YlK3U|47rj2mq*X>7$kss5`csD3flmy`45L^)5CYGaXo#&?t6kx1MzONjIn}YfN^J9xt$L$m zBvfftB?~qw58(NTY}H%Rs<+6h-%d-b-XediI-QYLy+u}dtlCKVxo7l|@F7LQl{5Hs z_PAHfuOkzzXYt84Q5+%?){~S^&x)2Liq;`FQ=QJ|%n-T$hG>beIMsanU#kD~IjUbl z^;z;KMERL0)kZ?5tsui?Pv>*hA&T8Iv6Md;oxl`E8*6wGa`0 z0&gJT8_GU(8Dj}ca;ybzYc_o6hY!gwUiJuw1^(8l2IzD}+oJfb-~FQuP=E!Z3ijI6 ztJr?l>{P4ET>uCCEN_LtIV__+bJ%~q3*aJ^zHm)SqOV%uambg1i0iuL)yvfX_F<81 zi0jl4uiP+01e^+{cLobH^yk+fCYMbG3q%wn1G@))^g|2&jpb3NgCW$JXLsB3^4+uG zCo(r&v0xxa1MmMPsS^~GdL~$NIvgRXOR;?YSud%_Na{5q6(GoVMTLLx^TB|Z zf$#i`rB_r)@v}hq>sM5m>1P25DjTjs8gm@*Grl)mg-`t~(7b#&-u2TR_SFCpMn5zX zDGIylN4MCy{uVIe0>KV{3kdGqK*4oqkVuic$e*}JHel{o8=%?MhO}7ByXiv#X&lls zB7}4?u08J0OAC+tSRkVGyw~{gwExhF2Dqn@1t6l*o3xxrWi$xbCV7>l<6Z zxb>?XVZ4T{3%h zx2pH<*ZzvZ>9S|r9oAfp8Q^O&bwoIJ8EbZ`%Q@YiX%qYPQJQ4<0~u!IICE`dt=Y2B z-c-iZ*W^gvN{;mkU=J0&+|&X=yRWKnk{x*1AMZ4;s!+-3e&8T_ZXFh2cduQE;cX;<2Q4vlyn1tc05qD!*SwC0~$RmAH+Jz$C~DLG-Is6=cJjZ zDPEe(S>vqM0)fyR!3yna5o`Q9O0T)M zcCKje(Rl{gjk@tVEzV^3Yi^P2m9%qiNOOx=UXQsH4CsHdJ84a)xVc4~kFuw^1!&#x zV^;PZr@Fw z<`+h`q=+rKhb%Efuq6{C*pfD8p(KG*oh6S()YcNucdWeIB$+KZ#i>$)=Wa)9mPD61 z4DfA)v?PBTEeVL!+Jv@-jfkviaP@fepKw65F!F6q1&$sXjvnKj26zS)Q*87=9G_xV zc(ezuhlSlz6Ar$K8I^_KHZ5mWi`og*N=YgJgm6a)!HzKQ7TFO(up_*6i|h#Whyp^V z+Gg>cE`(vHOle^OTCA3(O|W!V3yYY1G;Sj_JI;Zq(c4d8|5`UvxlUe4t8SbinrX+$ML#Y?#Rcxc!Kp zStKI={U!@UR9y0!Uv6Z$ncEC%j+t1Vva;k@srHGjl-|2@Gvq? zKt>P?`7u{TyOk=mlK*~Ni&)9`Ylk;=8P`?FXO4FiW7%~ThP1PQ@$Ks>Jb*vmzplb| z{ITP@3XN|=!)`sQ!oOMZ+ngfQ*TwrtqmhXoDU`F|5=B6PYXVA%fU^8HhVp+S)j%kz z%<-XsVrb7$Qt$^tc@%#jlq>BqT&wME?K?UO^K34AhS#UDwD^kRxa!_Rw2|n1JN5Ck zQ<>{BK)(($zIIacK8$%0Uppzjc6YGgcHS>2m?ApXbmbHCK@sJ2O`vl`Z7xV=Bv*S% zMEHq}a2^iAaX7fIqZ|(CVfcR&9p!Kkjsuow>}!gH#o<~)(Wa&&G$_zZKq%`cQiY(j zW+<%@N_r;=r8O#ht&@b(8ix}Plsk~x{B{dODlBXkr=b}+wv4Gm3dCKPxv$#*D{jZD zHm_<~P*9uB7J$gd7*D6(0*`mq_E`1a&bq1{up^x$_7i&c9>_lP4rH&miM=nfue(Dhy&tl7i$V7A>%P*5A-gk1$37g{ zFCse)tEtz;S4&3nuu6r+TsS~qSiyz8xUiTPr&_C0YH2-RVM?aFh` zFt{t;0-@=%@Vo8eLk~x=0MBdtl#Z=>G{GWnH3l-qyE(-Uv_p(brxR*1V&EB|s|4+(lp-y-4mrNz9v`XVqUo7YjVYgM4cgr-IkWcFu|_qlk~P1fkUCJuT2VD?RDfU|reiG%s8VVLvrf>l#x$yuwWyJh znyO>1teQ0@P_W*wV=WG>Qfei$rt4UfgQ{dL4iZvt(XpPqiM9Hxk{Cp^i4qSYX&l&P znIh1|AmV@ELBxTB$f{m)5OLrj@^>#eh&aS7NgFi^aMbA4`~Mp?zRD2Jbh1;uM~!@R z+qT|v)JSeD+V&IudGe)=tBiw_%=>^Y4pM`wWGxLAVi)SgLP(XosUd=QiJo_T)w~cY zcpumEriE51cRlkyt>+C7tCBY@OvqiX=Pj?AH@ts|;4Rhj<~ONQZaMRo>3O5VtK`iO z7jj?M^Hx;N8`V_sZqoA>HLX%^1@o@c^TrseX(o6-((@KKt5R+y z^UlzPPI7Z!*6N3l_8kk{F1sV!d!@CUqr9U{M7f__Q)hDys z)tn0J7x-z*%M1Kk%rL;rWa;|_ez?H=2IhZ-`USKr{&elsCnb2RFK4ywvh~(K?NR@< z-&->b(7mrz|1_!3#k^4eG^yXvw`S`Lt7v;xyP8vB{VI?8Ret?v8sIXjBj>Lo^_}}^ zZNG}tyZhBn{Y{O}dfVmb&G-76+uoT5cpvqVe(^Q8LKmAH)8{j%Bqz3qt0K}#=eFJc0-_v$% z+uYc;xv_2A**Fv1wr$(q*mgEfHr_aS=l8GgtD3q~)phTjbG!STKGWS#w-x9u6=+7L ziYy41R{-W7r^HR5ED=chhxaVYKzKz007Q=rq@0C`-zgHrjaZ8-Tt9sKqz1q z9O{fu`od7;4cpY<4EW`NI8@6yBSz9PkP2G;;Y?&r5aY4Ih@J9!q`c|MoDI<44`T)R ze*2sn>G6HOb-`KUibYp~f$s+N{&BSP6AQfzW$b7~63KcUNxraPhgdX&3g zApMZL-y-e#!xAzo_ebqnj@5{Iw*vZCZ{g65oc(NAJZJ#N*BB(18jgtG3S+6woW106 z_q9Se2X>U!Y!Sb4hzctb2pGT%izuS`)-r5T+mmE=C>}Aj`BpebAu8Op1x>u3 zj^7_vGVb1(Ln1?-9wY94fYzM5nZR319!CQ`gu|#KWCg;w7KhQ81CmAIoP3e3mve1F|P*>5t|~i z0rx&aJsp)%a-&U;Zyh*+Pj3Sk4d=dYvA@NORpV^+BTTFnai`C;Y{q=5snZV0enEIx zds4Lg_|kdo+-a=Ve;&kM@@I~7g*&4K|52o6H4PluB>{dk;|B4apo2NkfMNsT-6Yp0;y5xu~jsi z_qexXItH|4+^SwBE2W8U1Ey;?8dl*U?v1g>#aX-QD9*o;_C3G! z#E=W}87JOI1DY#PgJIr`6P`MByQ7}PKpt+&prt+mnK)qi2SC5^*a)b+6b^|oKQhO9 z=y+jBs@4$Gb}V4L{n8&No^LUR6vbvPhh}#$n;W#A{UznEkK`*~`8tT{*+jNS0@Yb3 zKJ6cTu?pXuy8%SZI=O~`yLfzBxlF6TlX8a&kb^aciratUJw%ASW34ZaAXGIUg0x$qHrf{FkbG-5i{)zRgFu03e ztb(b-;^%wwyDgtatRV%H@p6}_*1zQFI=kbP^n=7!qN9FT#uDZ442OgRf_k#6MDQRE z-cNJx{g7uX{q+ghhM)LX!*m9p_#uwM@F?g<91+5Xm92faOaFl|h$faS6J5ww?5PnCB@li?< z-(>(mRG22Rf@JBcZCehu>{JRK;np|Ij?X4O@2oDLwV`}3=sM)%M;A5`8bNa8m#F(Z z{tg@4QqdCDRxkb|)+Rqn*AyAQ?zpTOeM!MImr_|76%v%mff#3G)Zo|z!Ba!gBj&E zr!lQb5H2p%M`-{NL-@qVm|#0P^!?f!=FW*2%OQsh9@l|>JKi(8{4HgC@CW@(_N6Kj za&lvjGSOy{v9WPNSj+Rh8KF41wG|&X(AVKwJ)%%+D`z z3`4RTE_r~uI6u4Qs;JNat#{S-KM^+L$J(L)MF{^Eo>^*%vw6-P`R4-4Va%bny+N(&+nvC zJ5PFFg)}bxGqH%^TygFT*@$qahz65H#aM`!Bp7nyd(t06n&KS?veH5N;#&PU!-6v2 z8HIxmWIDuYhx7Ig*_&oF!|Q-33+>>|k|6q?h%2(&{;~l@gCfV|x}5`C{cIqbNcf=9 zDa#ClegSyWV^ib3NAoe(*AHlet=p zHJ`1WIrS*N-pfaS`w*jVZC?U|K?Gl)6mzN+R;Sx5Sz34cD12y)m>Q>5$0Q%HR@w6T z@U|%K87%W@IG;{Am<>?#UaxMUt0`TaVY=|@9@JIitrt&gN;WYj^r{?%0}8u_YN!bC zj&gWlPv-lUgiH$hB^FYU?gtau5C~&k|ALaVPe^8`a}Jz4ek6*x<8yuI zO5mdDfh8KNQLKR_!G~yRt>Iew*l@j?_eM24sDJU|&EEV2<)Hbbp>CN{>hfrO1r}{#;xn)91zwathk;fyLuLy}n z!3d~CZ@UEnA>!O3AxxaF!1wrpn&$A2)Gbt1yyM1?Sd@!fK4ezc7iQ-G0X1(Y>Y1+n zcbf^_0X=H-q&b6~7`H6y{hAavWlK5-wdibObC>-R*&luh=>^Vun4i)i4_z=c7bNBl zt3O`ig^(ohm5^fL<$yejX!tgb42RtTa*aCw4F%9OEJ;@4|5q#`Hqavy?LM@mz`n6z zkvP27r++bhY><{#ezTM*Hk_5#zDw6I3#7X8u|m_DtVgCaU*pUxd7p#U@7UJQT2o7` z)U|&h{a5f>rQ1;Z+v49_sMIk)Ia6$GAXnu}lE!pgRA{T&)6$--Kjp}vu6Re&I8Yrg zBLMS${Xm(nq8pEi5Q~!a$cMy+JHy=B>#d8A1gAD(brEtd1V@Mo9my4{!rYb^vGvY* zzB47Inp_Dq+1)c4kgjlGalYHG;dTux^yzOKKNs;`X#xh_3yhdWP}BQQ6+?dY%ZT!z z&%UA-%8?6OlAa5QSUqIdBu#VSqj(ddzm5w^b5=H zS;6*;t@k$sq6#tDzig2S4XJ!KO$cdIXw*yc*gX+?ycyycLdIMjUvu>MFM0m zvABdU4TgFe9Gt=R-abAZabve#jedd?)bJ9MR%>zyR|^dx#OmETf#(S43Iqio6Owl9 z_(L}Kcw_iLr~Sb+8-^cg{ibdMn8-t6%e9`y%jBC3uRYuy6qh4LuXp{;e$=R2((SAh zStSGiL7c2nXB(h_Wn`e$8CRp{CwFzvfDzqwi60WjGSF!H(Pr!tV^#Bnc(!1$?Cjr? z?w3P+oywK~r{Es{&w$$iA3t~7NqyXgb&Jcqd3Uzfo3EX-^zcVE8akcMDV4Fz9~wv1`%GVr3|83Rt?ZEf z6e_tasdnO%8oewJ_!r(AfRC^lB2M8A8tdtgFdTpsGgD0F9*U3lwl!y2&;p~4^fl{c zOFPSf^Ux|b-eQAt+@DR{ity|sB-82qw-BtD;+elEn+{CsTQe8$Nv)R;Zvz@GGkJE>svFwfOZW}OBxTV3IG|6_25%OQ=3WqFBw$Zz| z<75$tegp&D*+T_rA2*e}HbwyH>SNF96E>t#ggp0LS&e0lEEx5O0q>3d z%T_2jPks~&P{sW2_+u|82TZ)nlw4-5C-3|<#(m}M_ZqGY=uEMHv2Wi^YmIeNZfjep zqe67LNNO>+Cy!~WOK+vtl{F;uxn3rgM{_A%&E3=YixCNB z9{g7;EwLw5#&xV!EUSobG>vIJ$-;WnQKHVsAVV1~;Yj|sA9=~8+BIB7sk@V?43-`!VDcSPp(%i)j{d>!V2E=OP)+mY%<=| zfJ9FW2EG0WUbL;}gVZ4#ez&BFfS%5&dp}kAPqo{W(Ja)$he$C;MJcYUKjtSfCnrC3oZb`@Sx&@yc+$=qRZ3?$=pBD$2-tP!! zH7W!GtnM~}vr9byxklpbJ;9B5#ibk1VQT{kmieaC3sAns01Pk;ZGsHn48q35tdR`)#6m+4$KD1cVq#as(jak-X11_g?$^J7JxPkeEWh-_Cxr`;>Hv@>) zP`;LbCkP%P+`1H7G4FGN;{?Thf;XQDBwnN8Aj%7DA*GPMI4P#>mw_`DicPC@hl5B? zDe?MMGBfMs82|G(Vi(>|Tu?@NO%7N{R2_^7XW~GL!U|`SNBHk5fQvCx&Rc8QI4pf- zU^Y;^AQxM@{;sWuR8IX1CvwIXFl{1aHEl9yQhTx0?l;cjkUo>ORygIEzGENE{%iNZ z5W>6k2MWmB5{nk6Es^jy(;|YCt`j@XJ?Ps}+)~fJmDPn)z#=ghoQUdnR@LKpZDs4K z0CRf-2{f(t>4o7_7aM;Uo05lK1VS0YB5KrI+5TK9DThSdj9|ZJNZLIs%G6TYWlFG zb-r3mi^2LJmUA(7@@ae)+tq2>#j%!W?YJStwtF(%40& z(VVMV=+L9aMYO`;fHtEW3^I1~wBMigbyq`dD0HY0i;}ckA1cUF+Qw}QK`hxw)7{LKEY*(iiTUFDpTlb8orUJCwqeEH2o(r z=A^*#Z9DS~q(W~CpboGLqFbsl&2FWG%vQ^o?w+=+IqCfo2h(ft*4AqkU@X5OGtI9> z?AMa6dJ%0R0MGrj$kjgr;wbBv@!D$eX7yKm2`djvl*ZQ9rv;AAIgQxbh>pdzzmUkF z)+H1*N&5gxp?A6$Xl`qgqF5e0{4g|oNnnm^oUa;bV{+psPxGJ1Q}#-~X{iY6hpxKQaQ0tM>^Lp(@GgtHE>>8iO;de% zo|^D9hqom)VlyY-D(bvh;DH6(LeSN5Vxu*S$+XxkcH=9;7rtBmL0H$gGL;)>9OC6s>iQsvYPIq2cpc*0+fO}FS?6uuK{{33}}|9iYVWvBPMGNp=z ztw%yYO|usTJhjGosFF5jEHwRDw_zcpv({XIeJO%re3pH+IaZZP*4gp9DXj*XEq_fa zf9_ovC@j13YUVqjqfIZBmSyQ?)jK2OuNM_kl-3MjF2`Ft;~@YvZF>^S~LhmE*4it=vHj{;9cX;G8RFh-$SvT$bG$ zOh;%K8R;9H{_Aa%TrA3CtL;+=w{^=r6tP-^$oAY?7jFOEAPje0!}?`{S>-I^R;m`8 z+5cr&k;afUP0QtUaeUOI0zM+%xRQ}c1W-q=cK$j0-YQ0IX-|`0#f)RfzD?F@GPb9O zT*W}K{9P#pq;KydWIj`F}5a_+L8QPNK{uh`v22e)G zyD<>{_oaz&3sP17(Aw;*??MRXIgbf`AFT8gGB96|q^{Us#G{K$icPAwM)HR&WZkM$ zI#CvWGVtYR6-nJ*sA?A`*P&)*R8etYpG+$$Ub@;vshun>D9izUk4ZPbx(Xr+dw*9Vk06M1cLVgL|_jRg+t5G5SfCnPbd1Kz$MN~srt>%i2%^{Jj6D__tV9Mj0=lnn|DE6yNFvpio?uv@ zQQLmhGajTe){w1AOfL&7s{!zdG^a84G8iTky3`nUx>Y1X)haQh#T84wROd8jF@9AY zR*}&Mizq>oS#A`@@?0!I5KIG8fHn}GD3H(@AP82V}1@!C|=vqmAcrltw}yme=gklofr5OCg~s;@po9O4mM>Q3sdoDhANyallMH)g7+9m z9ppvgnkt$$K5#!pj04Ws3wfhF)?Ec0XiO5BoG(y&%~L^#9Mc)=b9D)pvxaM%Exp)N zn*Jd3JXzsrS_FK#FBi-tY;YXYKS?PFEIJ$T_tq`uGPZLFtc}H&!SlM|I=Bi`OgVtL zI#+|8@3*hQgG_!DYvLQlmQ}_GRj7%%X_QtKfD~zsTjmrA5CQaUrPl_x?hZ%?@D`U# zT-kBTCiMDen?_gX>-=GcZg?@DVGe#%`_EQ3xVF6HELnfB90D5~c8f zBksp_e~h!bn*mV!$g$6J70Z~Qm|YWDHgb*gw%bRAx=32wEukFRi42DSfpchGCmiMy z%(#nw>biri`}?|$;_N|@cYN6P_hMu8<@7+K3X@S%9=YA{Y5SiZay6i}<}*iu&@tG? z>-`X%Eq*_2g*E!Lgy?U8P3J=m8}$194o?7!a!D2`(HLf|^@r<}yf zk;gcyrWXKF?`}k08$6x)zzk6@^2epglb+XVP~}j7;7S+RYY1$u?H_bWwHuujs%a~= zT7J#KVJyBOT9Vz0K8ge`g`-*nq5Co09?zTDNuSmstEQ+cvh*W0$UoPaVYlhaE;>gGNAwGE!_ceqL>ywp*M^0-)(rv#aVT zDnP}au<_U=fMH4}<1&ooTdhvpslQNzFTRpKYAeH9%nNFJl17_ig8p%Qk{W@9~ne6xthn^{7*8zQ4VJ zSSx^@Ae7y`Qtu}7a31esgD_9$wY4rZTl-d!Zs|lcLn1lEz1P1Ql`=2Axcb$p*0xBd zuT(5`RL|M?TJ6GyvEE(Y-Wmh5?Dbo&QJ1^14Cc}I3^^M$=p&lj%m&G)CQ27D+L~02 zy;j+Es_LTG+oG_d{4P(nx~3EIFC{TGeGSl6_E(l%uf1s1y*KaC`FfIfh3NEF!oO+t z=^>ZR#FS*BKcjnY&Q{ds%q`PJOKVPD!~8&g7#Grtm{ho+2w&-;A)ANSlJ921iI){9 zfb3yJ)Z)e9LaT%qes{S!lrym49A#XuOb;{ehx_Z!whB8-yY!9@#vLEYPP>g&HvpfR zrwy<%tp-INr;E*@Dil1&y|Tp2iqxh>jBCjei*eg@N@iP(sNTDrDN7rviXPuvN4aOu ze4QP;1J+yvFRNXrlWutlvvf>s*gV3sT*vjo2(u>%r;Z1;7#e{ZCuK;W%AxyRRx8LrE3R#g#|dFd(Bi9z_@r(SpOVE zSF&!!+vy4lp8JWk zZlF(xJ+Hip3^DvXtYSOXI$MPv6a8A2!xSM$>Ley%`_#omn{($blh@#7vi zt&wfg`kzlF8#|u9I3uI7jxe_(R%gHSJng}iCIoeTQI5vis zP^Ql$5u^(&H25JS)%L02#}NMF%Tj!GC3SEs*9P{{vj8Gr@Gd3~yJ7o4^tDaw2<|wN z%*mmC*vNpHALxszs7fM4$VZXxl4$c=IPJasR`D^tQCTIvQl~`?@l2ILDC}AsS?88_ z$#CSEav+;}N4(*qr>HY(`Vr!TzQ`e}Y8V7zc1s~GH}ivZju%}loM66(g-feUU`u0v ztXnEelNj(4DM{^YIYQ5~8bnYO#y6U=;AiiuWMosK@(J)>v&r>>2#&FF7i+`k zhAZViE~05o`#27oL#*X0b{Sewp{1m=tUI7j4Vu#SgheuqbBMCVB65C3QK{Xx1qlT8 zN&|BB*z`PcQnZ+iIeat&3L))VWO+A&>tZQy|A~b07EA%l0hJDvjky^2qgZfEwRF`U zT4oR;te+0q&DR|5Z?+T%$huUAZRrQUOMiC_*v}P>Vxf9#iocm8%pgu0mEtm_fm{*U zfw1T;*Cj%j)f&oF5+QpmlOQWr!kdvU{shc|j23v3QBCKCx_(%UirL;Qp&ruBa}7r? z>|YaVV0$hWb5Bf9){EX=XYCIJx})X*Yb@YcXD{q!Ay3j0+|<4bKZDHJu|3%1I_Od+ zRg|>d2|@KkR7&v-@v374v5E#qLeFtcwemFW@QC`d$-8R-VZ_$1gA?TBwl^-QwgB(e zyaHxxop!{^XxB{-`VwUorc}vkKK4LeTMmy0jiX_2#v=xq2Yu>yuD@&@hf2XJ=P^bmA51YZ!4T~w^jE4n zl~WW*S|s*nJH+@ZQElBp7^+RBHEfxd)eOl6swe3#-7SiYM%qrQ2=oAFCuJU!$PyI)i$w+WeekI zQ-JcNLy8@T>zYO6D9@8}Y}`k#A+?j&_vqkDj>TZpH0a%1GI#+{4{JdB_qLbvY*x=a zr|2p-ip9Jhc9!h90!Uh@#`+rU%s`*qfF15bpA2R5*T85Tez9bIS}<62OAIe~|CdF= z0N@E}`7XlA^^tcf&}4^bB|wF|OctXSH-uvyi;D{JcX|05*@3(?!U22ok_Mk;hv*h`t=PZd-p()y)= zdMdA6^G{GAHHjGnhTo8nTgqv6%$6bDW$GA^WwdwI6(H@3p|&C#sH}BjUg$AM3Z?|n2Z#>N zjDW_+^i2@GW-&vzVEhuoTH3(BPM$wD!lZJF8*^Y9kC_c@YYCdqBrf%23;<#wUQQ{S zo>3V}I?y=>QA&S8_n+~a^rOTnXK62`frqHsvka24fZL&?SCfeu|ChOc@W+bTVAC?_ zxm72(5|^}K&>vl#}fs;st1V&SyExe zQqz9LgGTP$J3O2V3`PKMUUNIc^OOUKpfU?Lz|P^FkErk;>#EhD50nVR4-h)3vNqfX$^c>T+aVNqlsHg~Wkpfs ze!qmk@btw#(g5}Br85^tAtHU+ckft6pLf#fET_qLMMMke>tBGv6z4Q&+S|5eyffa90VRoh3XY<-4EqJh5(;ikI z9|aZz@J=yo z-pHC9RKQ@R=!7l}l)HqnCZF{{cxKproQf4+TzMLsb97mehUa4{omjhGn>gw^>U#3573P zd+MN_v_eK7grd}F20M_BnoowDVu%DGn7W$*XHX;v<7ZxCCHltw$Xrfb3^&+dTCFth zOZDMST!=R}EAmoE5-BFL>xOE~N})_)E}<$naKXT8(^*jDxc}@@9i%OrHC$<@ZOakQ zubu8(#+j{={TPr*jLt;RQ(RMv{{v)7A!qF$Hdrw;0@1Gu!{)U(3timYHx?&iIYj^| zlgd#_#8WIE7jEQpVq~c$n~s`YGu&NS(PR3qg5B}T23nD3TF~0AiUZjSRYL_#gl9zDNZ`W%Ov5Nrz(sm!Pd_=4w&)r3X8BP-rm>v?~ z^OlN=tmAN_5qko$1i?Ee39$EfQX8b`c6jLe4+%Hcyxvmjb!Mq{_8aw!7g&e8(PgQH z>%Z2)*mW!A_yLx8Z?be00o0bgeBA2N0M}X}b}7W~MGVf|PgzBus} z&o(xPH2gs*Dv&<(z+j z@G(X{yP!+-(oli(G*mDRB2EzuHpBxU{mXY9qVZWg`0m9R-E5cKwiLyvOLBL1T7X-^ z2po3ZRSS9iIro{l!S=b}1{guR%oGR)>L<>7F|5f=DlOayO}l#kV_Nz3Y&-5%Z!{?2 z`sk=;^5dKBco1t50!=lN->j<Fsg`VdnvW9_IfJeLe-^)ia6L+-J75O>D%_Hp6iL5_g~mA zSMA)_p87fWS-&}f{B5@8E}>$X`D;9YCAx+odw(Po9WpcKM)z0C4$0^gE#k3#MH&e~ z2x>^+)!THz7d!DM3+yD_vzGvSovKX)PUZyPw^IKN`OP$sY9ix!URw1;>Doe+Xx}y$jw@K{dIBsXM`bJH37a zw6K#{YU5b>Mt>vvjlh%x9=WR|&Yq$|nX%k5p8NR=>8mhTWrv3Nj+nr#PYXNYS8Sro zz+3H?+|qx+MooRicehU#U2?o>{N=7!*5N~(VNt7Q=t5fJlwVp~#VA|@e4Ww?e5*Nr zYsn}7g3BVW*v$iPm0x;OQx7otG^}#_B>nPHi>U^!%?+_YTG?{XXtVd;(eZzp6nmsl zqhoBF`1^9i3G$?wH{qfNkMjNlg=Fhyx{CcrzG&-W(etUzMQ?JSP$d41lI9t~URCrM z_=@?FrDYh?@24sZvm2m8?7ryLJY{%v^JHpOB7iIeA5HxY8GPbjdOg0zPiY5{r+;73 zSx}1ikP~smI$kWV!d^?fu+=pDQFO|+4S77hyS)|NeG@&qy*S@F3MKq7bA>udZAL%2 zMk#Q`P864g>G>jNv{N`ondGZY^1aDk+0Dk4YI}a6N$s{M5NoMQ0ASjP^-6ExdB$U$ zCzm&Atl|p1vyqnCrPUf2ADe+h3$B9G)`aL*&()K=bC`9#MbcVygV)J24A^IrXg?-yw}hx zgQuXb&)1m|(dtq98pK33{zKXazG6!rqkJMN2}fZSuke7+k_oI7=8cXHEZ<%CqXlL? zXIQVofOuGsji#)RkR5WwLalK)8@6qQ#EI$*G)|jEx(|Y07|_u<`y}e~T9EBuZdfPz z1b;M#V3)FIK^&nWC=Nvls>8eknM5qY_s4W03UX1;QQ0#Q?0m&L-HKuI<4_G8X_|?j zlf2Ew=p=}|gLhom%YY37Tkl+}-%=Wsvw9&EZbP1(`zL*DT%3i&1rZwaRXHpddDffpM1k?`zP zO0{iv0`x94d(yn~%2I{yYIICG$g0@6s#i&2hY(fjX|d2JjK{gjJvJgo6&eQYL=}v@ zYo`nB|Nlu}nj5{T>h|LQ_h5Ri)PVwC6L3(2U;VoMP2;{4TnO&$^aVO$4JZ)+>StkC zWO3l29qcGLL);IBQXuXKT~e(e3w{OuUe6I;izs=*tsv(l^kJ3EAYr^%lu8U@88Big zJ_SF>5f@;Aix3f_j0F=Zq99J}9k^?5B11%c{p3abU8W(aW$ln>5XEzs`Rk|K6Kc+j z)~X$%ELaol%1{gPl((W@8U-LzixPPvretp;@olcPurVHTnlt1_ifct&E;k6>+?^az z5}SpFtss3q&7KPH=TA}2@QZ7HIsIR=uZl!PY+q$MH^!*3OMKu-D6@s$-SrarfB$Bb z-zN}CU^-IiTIHWipZuAFQz(tkwI2(16kjpq0t{#(u<%n6(281`>$U<&S5uI9O4wmc zD|W4+f?sB-w!{AXP?kVB=^6Hn+O=|9$h9-<9my8I=6pbsEt=HXZ=i-e%vY`*_tiu+ zR>KALO34~6>r!F}syQ%2$&gAtpK75-yfghyGsYtG3mKJIh@H2n6{k%N@fWH(hG8?t zS&N>IxKEfPxM?>PEjkDIE!ZkrF{_8=%I_6Z{=N7e+>X7{XxSi38NG6s!W+2bUKsW8 zlP&fEJq!&?F;)ABS){aZ$Cs?RhI|v}7gO}|VrCi_W@XRCQKmMO zPtMEcshKO#OwnzkS{CY@5K&3@0ks)(xA(zvV;cFa75nQ|F`U^>)<#5jb=4!5EmB!)eofCBu?%g+M|?XO)rpNg}l2a&Xd$R%PAz??jjt-#>(=e8;X`9 zkks+T-iRTflkaO@GolXfENXNLQa+Cd_xTsem!S15bZ=CmsFR2{CP@@$y`vAv5Gl{~ zifBJ4zNo5F)1ih;vZKB@3L%c;RI70+FcUTkROWYLXcd?N57y$}=5ah<2up!rPL|Tj zUupp#qvf5Pe+s~c3nza{WU&7kSGx92z^3;gDIJ2{p@iM3-qW9vG?Mw#ypXBxWpyL^ zl!F z@y0wOG(rFqFhT7ha`CgGFUV$PBWNZn?mXULHQ2S1l|V}M!tV+g(Lc84!fNMdtV6J9 zDrV=dy|Ju2ZWIy(4=+^^f1lB$1#a+_L}wA^n9P+%Xp(?jc-saW0fe#<2iRD`s!{7_~&QUom4 zg6#BGXyogSE~U>zkH|3`Bt8}EgfyU}W$++D{6M}VtiU4k4H22NpKz*yxOF4Wo?5wP-D#z43%@6hJl5?1 zAcK54b7_ZdW6bXOJ7Xsb;V98?nq%r6VL)b~f<3Bde)})#oPypH9lU^m9&(wyBCj~o zwZQ{PJQ!JF2SUcuL4sN5Yj=HkiZ^p99Icr#Y6=M8>YxDK47$iTO7GhrkQbgjYy(>! zS7wmdijqJ@h#OiC_tel)a7Y<6aP*zwK1Nh}J3}bL;00egcFM zy9v^Um&%KOWaui@3b6Ff!zff7Rnx;K5K6V)n;~pfalTGNmChaq0{6A(fb$Z-cL**4 z;QTIdwi+D;GR>9IYk}0cPomhsJthl&&s-I1 zO^)^J@OYtBltivTEi{-D{#HeaNW}d^E@g39XAwT?zQ4K(+IA-!Yx-{~> z4NWawe}J;4%Sw>l5&eyFURKN#VFgV5odcA6mQK_Ixk~F5i)`CU!(haV?{>djd01mt zn{akzI-a5u-YckDNrK$9GLcwsw+s*Z%<|}DF&#}IqwmG`s(jI7uYJGMRheo5Tc4nW zlr4-_hc`(lO8_UA{{;YzP_`IPXg3t>D2#Y1Lf@PHhDo~YkBU6;7o>62M)q^t7c~S` zO_r>kTg@bK`nk3fmK??%8((qZ$p+hRZxb?jH^g}afuG-)oxuqz1HzfD>gi?J)#ja+ z0epZk0FwGfq7}j=j0UPKqlF=+F9t+C3wkZyhIDAG3};WooEm`fyO!|m#Bp^}%pbaH z6ov_CAZ4^yVP2nht|m=d@X_BtCu#sWHI36*BPW4d(Kd~nxr1NsOxq+P9LV-^U-+3;-Y&?|IiB3p3Mw5CC)0Tua8*!U^8kXV;t=~S`qgtQ0# zKRpQyVD*~ikxkG~Gbh$CcqC49y@zbqf*>p@BjpdX0WJDw7WR7oZ*hyZ2xykRYiXBT z<%0ldVB!ma=O)|$?pBaHXSF*Of%vdTHrMG$?k8h@Pb!<2(Ei4Wz$(1`4WRZ)G=d-g z$de>av>_VmR$>U4K0vAb&zQ>0=eqLXqaI}|gov$5l^@2 zjux5(t&lC_L&f5Hk)1sJBq{yyJV0Kh1Qd2du3VBazdm-JO;>@H09S301~?WNDkc_+ zUll2lBGwA)h)IYe_LKRVu4d(8~w;>55kc(!K81|NN;K9@r z#w;b9?>G@ zxdW>+3ZY7Xti2#K!YS~@7UxnCZTB<91b1dtwl?x?VCt4EB>{@PRf#+(cnvHiUmVk? zAoSmW;tUbW;3X&ji~n+ifD*v@5AT94tWCK+>qE@0!c3_K(ykI#Z=bE$<2^&s8dm{} zz@k!A7vF$i-}`wCBbf>co(SdxPf}LbvK#5pn!4w$&T<3eBv&SS6c&j(AQTtL;Cob7 zw6?HfSSBb@?CEcpC;eTtVsv=e6>`%_;CeLe*p`G)lQUJVm&d4MqaeV(jEFptL%<25 zy6(@R(^p<#LXtm@!( zG-lU2R?gxjeKth5;z2+NWMir=RZ$fN$(GWnGiS2Vvt3P0l>sy2NJQ1N8%;HBP}`Y} zDJm61FWY%j%u+FKc2Q|ex;kzaQuY4?%2@E~{W06YZP`DG0bBFdvqolEIx1UTLW8eK z0Xk90dtwquz?Y(VO!|&imAWQ7dLQVla;)$p=+()$_a5k{j|LB9iwUm z8)*oPA|8}1rC{3`k*^WrfFx!gXFd^44d^SlDEjtHOj`dbPA%GbpsM~>pBu1D3;RS+ z#l13J%;UFB;7iuZi-;_U&oPFX%<{WYod}Mp(0d$*PMsCxkH*Ckf8TLMn()7dL|aNT z&IMy65B{$xkNfYdjkEN0=}7cQq+Yy=^828}uqD`l6Ah(E-N$ppd) zW`uJb{%jo_O5L{|CUM|k(wdZ|21Q}6*i#manOYWiHo%kw`3~q45T}>cs{8W<8q<|_ z+VY<_ASlF`wpNKCIqX)o0*k~K!a~-79D+uq=ZF{Z%an9Tf@GvoUMVH))JGaS~S^=r;r+%bnCsy-d$J%OuoSSo}Se3fZ};hm|u){rs;jj%7l zis%U03fuvPto|IhZXE4wS~HAGT4uU*qt5MqXGLT|&OqjmaycbWxE0>z_mFX%G*)#7 zcX?`nNaxXm-7?yQ0ez4y2n~7&kk25-q#Bbyeu3dgSaI3anG|V2NooI-W)i`~FASx0 zFWrD4o6HJ^&JV$BL#5T6{N1#e;De+7$eQlmc@xz{f0NpeIP9{z|HYT=h+s?$!#LmPvfBk$vZ@quq z>RWx)U3K?ad#!cO-qI?X4&5C5&Eafke1a#aWkzCMSwAnr!wX4`lJ|kyCXwea6 z=4iqFXZX;Y@2n(5=UWo%)9r--yWKyJg^|Cm3P@Fj?tWYmhiInthaLV@#3Zsj?C)|6 z_O25)5NJHA#m16)2uoc++YYrRH$@#pif+=y-D@0{9NYFZ`NnEwq?50y}9BhulKckZD`a%GN=;RPa!Me+^V3sVb}% zUgwZuvPORuw>s2^?JEyq~QeWB=Vtg+04-E2}a;EFlDD%Q3N@8==lpFP$X z#IUU0+Ee+HF6zg^G7sJ`aU3f0i*aB71w(VC>J6w6w9R?n=lv-t9pRU1N$|`Ogu5}a z#0|E68#~CeH~+Ms?eGZcbnKQodG_x0(u&OTCehSx-FY!<1$`FlAUs(ZCgk4MeT{Vx z6SmT`8WS$4x%ubaPt7TKsz{OKO~NeaO?p8|E9VR;5Moo%F})Mdfd`y8hlvJ5_H_rM`E6_B zn}W|vXx*Oj&73&$KwqG%O`y>Xpw+;R>jM#gcc0oUF+qjZq8PWBALMrTy?Sk>@ zFpE9U0n5xOxL#e+WHh5@?eTu$8xvbggJPE|=}mdK-9?z)p35SE*Pz6*hJ`+9u{MhV zwNKK(y?V@!FwMv7v07GZ0W3P-3s?B}eiee)anKx~=ZtU(v~D`rkI^-Z43w021BD^T zNl2C7J$bx6z?W1G8bBQ({20NK!H%D4AeqBk@TV_~h~fxAaQD*Y&<;u|3Mkxg|bvHvBHj&6^`hNETwD-UnJf7 zA}>`tl>f6#yuK9~hkVV$(acQpEAnWR9lLdg-yM)Yd z!?y;#y;VGMDbmwQ>OXw6z`b75#2WyYXty94$Bj{UK_~FxM|-=mEsM+d@?AvA&$7v3 z`0fqLR_}4N?-3^pqC9@VlDu#N8|6JQl%zyahJPCpK3l+~s zS!Ltb2Y$@yO=UOVQKk8#le7E+lytN#TWg_qu0r#>1}kfU(av%g#n2fE7mSk)#_AxO z$zfV3*}^c@L2Kb_cknPUYEIcm6zeX1Mg~``>}`}GbU<`^C~N&L0qk7t7jrt7lfAGP zb~vs{$_t|$fYjLLqb#LrWzwHB5!NLdei}v1slIc7*GZ*FcrJEccDr%|dU^ zjrFTOsT7&rJlZNRyitvy>DTtJ@&kE;ujtc*`#dG7O1yAa_c%WwD^_v1=MK($VpOxa z+3&X5S(A~pn%%MhtiCf6CqjP**g|HDBF2J3opACZH>br>$-+r zk`I=Q&N-Zo#%huVbpKz(WgCBY+rX3{W&>L#W#s~v$qeR>P-K1=9aX~io zkvTUqc4#_J3Ab&3{@*Iakf!iYJN=t^`Fgu=l*kwCYFAzV7ljl_XMUEt5)Lp&3uRj$ z<(6tr5UTq@6jHwNc?n>)(#;wN_>630_qME$BY zh(h^Z+yN}|?dwDaDG2%+%z35nPxxvpQYN|IecG3aGTHA`Ts&?s%Bg=VzTwtVA~Fp@ zcYGFfaY4_|DC@=fD5JCf!78DUhrcBj=o$gi$nJs;T|_Al+e}gL2MC*(C$C?T6NsuN zhc0X#3drGBD$f7FSF1l}mf*Wzn5!%qlY6__0bi`kns3w<+%ii?t^g|+$@?z^fpH7+ zq!g^aP^f+w->OhUGn_iXOV)-}d$E@k^=j-c;7bxyas2V6n|T{zrU(*gu54M}$Qr#e zx*rN7K{ckfR?A*RE|BG0Gj>Pe{w z;WKhH!=Ysobz1Pyf$uzMQGls(VVa#u1AZ!vJ^G!Ke1VAT8OLU?4?$ zlIcB>j)X;cTK0=rDl#}3lbj8Wu*#z4h&7uZTp~{z_^hu$2~nf*`xyz6ACpV-VnB)| zSJo!xU=@LC^k%{%89kbma8@oNo*VLkC^l^XRxYLlo7EW42kkzPNs2{53#O5jlZ;wy z3}jxhVZq$KAvx3YD)~#*K%dbZ21V;q$LqvE4;b|-A4KGHyA>(ie-zIr13@!l$cVZ= zawC)_xc7ohZUvE2{AKaIoH5}C|J(#Uu)bBHhpt6*{*(v8Tl0L45O?Wr%LcRCKSECP zR%|Mn66tW$)VPQ|jhAmXl=`W$AJx=Q$DCrWcopWpP2KNHh?Kxni5N~l6F(XHUh1p3 z+?wFQ`6ZxTNjIZ4gc*$>_#ufM344ysJl9(556q_>_py;7NKSS;%c8w1cY_e7>jrs5 z*7p{S=>^!mo$yEB&w^XL>wMV%PcD-0JlUn_FD3%V+m2&XHBK!HVQR;t_f{u@Zcob+ zJ?ETVuGXBbGL&b;&`aGH)FFD%e1sK%BcIZG_q%@k459H(j7^Tv;39=(=hqG>>FdEF zSb7>4BEUWQg}+&$0dbk)gljWp?#)S<+(CO&SPwioH4~5Xtj+o>vF5la3cj=XwgI!F zGyl(rWlbjF{=;MC%1w?;_(eL^wrWCWQP}ElV!LLIGtvg4m)0$9D{fAp?ZGZjCpx-I zN&j{LgTA@B3N0(JhU3U*^kJ@GD1vW_jP8&L-2JYy##bA`vvva-1_zJd3x)R;4Nue| zuLEeoa>pD?>EwACi`ib7Vd&mkpiS3#@C3!qsmM9np!AO8k0;$sr!Co)0h6FB&F|xb ztO2O*X=>oy>UJJLU`LoGk#0uXB}Y@<4JeR);Fr(S_UA%R5%OwDH^<5oinYcckiZ*w z5bZDYg2VwiuT5xaf?k4Xgpd=871{l!S?R*OS`-8E9_rVq8*vW-zq+N6RoL-SP z5p6rxx_iuXIEojU;?aB26{~+=nbT zCpqQ(RGE^~syb?J<_jIVt z0jq>b>0HJ7S5M$`<7!fj%}bB24~{`V1Dd@cV*&Qz7ZC7o^gr;CXat)d2;QbN=oykz z3@L|8419;HFtJU*ng%K$&iWy#XNls@J-4K#5C2h!!KcbVGvF&;>l&a?n3-NKw<1^r znPWyFl9nF-NiQ1V;KXQK1#y?jAIdd(R#CeOMGku6MseGCLUjx zWla&feoA-fn&^baUu|I6mH#O!I6RA~6_d{onv-h9)c>_AHIum>DkBkWgtBIYCr89j%p-O1g+>hJ$^<$4b9 zn%bIfeQ6qIxd51DIDb%H<|*0ot9TQjWWIsA0hHksbr0_)b>>HNATPnIRkGNfN2dm5 z6q5&L1biwpi`|pLIlh)6aUrjQEMZpUVCW?5i9GmIJ2ro7_yJM8ye{B4%>r7sX!Bmf zN7`;tx(NEBvL)#f5aU1L^7ixLg!})ya!3wQ;VUCg+YoFCBRD`C{9c@6b~BWLh5raM ze>;nFFF5{MbT`}Yr<&wgt&hNZ{eMm!P^4RvmL_*N!W?j8lrv_Snzh%kjd> zRXBM#UvB+AvXx5Ll`pNy}Qnl8m@IpyjLuVF_i@mu*aa4`x%%s=hWFBPXV6_3a1HPk=WZ$gsw4?xU=^VHbZ=Io$Mq6J~$ zTe(fz8#o$89Fq^15cUj0J&-v^#Fvuy4nn;QU5U~Zar+ z19}c7F^L(KVn(cJUC|dFgsWVov zQ+e}OA&=>MdAfJj?>Vl1b`y+AO+fWbw#5n&Cjm^L)VHXZU-{Z_|M4s6m{7995w3%O zU(EYVQeN;AV1@hr{^J89Sa6xj%(8e0klC3_BEpN?quaJ8L%+z{??1A|v41oU)o^!YDK{ib212|bCJ6U`J}bh^A(Lbx zR)*}HGJ^~Brr>!zfD3j-mWR0!`U8=X!*&715nxbhU8ecBuo9I856@HvEx$yV<|3Te+$wxIG#y)T((drQk zHc2+THxLANzJ#p#TyPtS+amEe@3`nZAst8#q%e!#Z(nedC`icdG+V2QP}UWb=P~E5ev$oN>zlgqVgWPv8F+ zqW?ob*6&Z#N!y_c3^UxLM^WE;`7!Fj<_XJUDG?|C5A8Non9UtP4=&jFbu*ysGF{*M zqyowoPof*~oZyz^cm4mzx8PmTl}UhHoKcv+2{?&B;3NEnv=W}BsTFv#y2?+bAO@nQ z0#$6mo#)}QhyapT(Qmjn9P*rWm`O+f84+iN=5W%*)Rv?TL%b0jO(3yjJ53T-`9xpP ziqu+5=0D(buxM#@U|ZmV2-l0g$-&1owfm&9s1 z>|<=hiJt$%kubl@#ug>eicv&bS{3ztZ8EJl!ht@Ia&{F?n4dRS29YgeyRWZiUK&et!1Nolwd|Gi?Ge;m zUR`WaK`RVyAomf>sub1ZmV+d>r3Fa};B>o$0UMb!@#4?JquGjU)#Zd6s=W&5H1O6j zc|dg<{uFXXa46pT>WYx$a)#;8C$_vS+VHA4ErMqN^H_o-|S^X)mJ+_$>otR?*KlZTW@y^BGm%G32_ zPAq{C@TMc!kA_xqg<4U&I+wkvR-O80ti5cGvnF+>P1tK>*|(Y@MEVF&Xkjb6QStBQ zphx3Dsicz`9_avdONO}8jUWP{X8+PpD}ze@-LI%mFCLNPum*vKwmsmXM)DBlzXGWl4-Mh{pMv{_PckCA5}s8v zEjkR)?J;FX9mlUj;#~ZfR0NOUzv>I`0BRB0)0D(Pyk{o5dDjhrB z>P2II2Vx)ZCf%;P(m8a_x~5oz=ZF5A&-D{iQm7nY!w-lw@oziWFkOLtgh**|Syn*T zp-qQAS4SZ<6n&4#amZ(`3h*a!oZ;$OL( zCl;8!O`Qef_Lv2KF=S=3!>p^$QxfJe8i-67)zD zZOKq&ye4tmEZ($z6S5Kcteg z4&^Kfh4OalT@ey5M!50*w z%34@h-89O)Q-*L4UlGqx*sLswgu!@YeccV$wv?avp1n}}J(I32E)p6zsFw(sG$v3{zyd#mE}@Qf=S@}Zl8bE91ad+wy*0*JKh zbblJ_UA}+7Q-{;Ncpd4`qz-p?>qmyk?0}%M0+jw?zc|qupYn7g<4h?#-7b*vB&Dyv z6ang^SWjB5ncJQ@$t&=qHh_HmkQt0Wa@@~e#!{Sz3dgrepZIMG&O_Yzi;-#Z5CJz| z;LLk|1MV!&^24PEzxpOzc-J@b6IhL#{?)y&V`t5uP2Xz$uJF`Uej+}&88ldt_Z8OI z+FX7D8I=BT%J{nN-O^lc)r1bi{{razmaq9$;$66Ol~mb#D@^b=fM%pJH!w;X;HkZB z#m6z{Tj;pGiBn@6vx6_WTQJ2mHSv<2N+%QO_KiG zZ_D!&!Zs?-vcr}vE-c&hrQA{j~VW?5)`Z3GI20*#-#e-X@__RSWK zTAzX3)A?Mc@0d8<%`Z3TM}UI}Si2)7i*Q}X$tY$Xg5uAPb5Uj;`(3yst+N_xHh?bR zivrluLH`;XUd>LTk@!!HG?!g!v%i=)miJZ|X`us^_me>$9#BD17T|+jO4@k~rLtf* z)LQ3(JYzdYGYMcwxVTh}Plewq;Ch z{aDaBDs|jNQsI1Y@(TXG;#+-FP_Y#XkYp04C_K}pNRmB+{~@%SoSD5%0d2u?U&M+X z2Ba$g9-CW3SKkh{@CV2qBeK%XmtFPgAjrujO_GF|+imkx;D{&jWs1rV)vw0AGaaj( z)G((2p{QtOfGYgqh|lqon=3E1W>lq=a%UEi0{5gZ4LvQ<>=7K1zK5UX2ZW1rU;O&! zE-90lN!?^AbY66@!*Erp=*$tbB7|yRJR)P#7V{+72+s`l_hevNqkKIJKd9^sE^WZC zrFMyDLs<;1Ug1=@-rYDm(0|TkO&~MhZkIT&XM*=14YVhM&1G0Fw!k#nYoN*#+wC~y zpi^^OfDJLRz}%fXlog!`^__5XWh3baoK7>PFf1S6Mf|R#fJbUG=k3g}BWey+jSl%R zGL#q2h10ic6ah}Iefd!EYLK;dm>|OjX}X9P^V+`fOhywwVGCR`I&Wk$x{mrvwlvnr zLu@+fa@eb53^|t~|NhtZeB*2@ld~U)+q)<<>baq6i9D_uiGn5>7=G@mu$lFb@*1O(5(>1J{o;uMi3E2Nel)> z4``d^Wc&I&CW(_#Bx-!`8V&sVyg8D--yf=8BmX zB`8emLll~Lv|Z0ej0oGWOCh(J0R@VYgez8Hpr?d-8+P;8%3N9BnJW}m`Xx5vMk{yd zfc`|?3dZ?Q9sEb_Kwl)6pKYNxkX6Oaa-DXvUB)#(EOda_Qc96$EhcI^i4@hinm$w5 zy8>v2A1$V?00s{lTZG}}5GOlw-EKFw8s=adjH5PMJ94!*cd7usQZiO0u4*#xhYuDY zdDQLt-|9OjOJOl++0I0dK1Ou$9F#(Ehgtg*{a)b2?TjqJ zS~o*cjBBlud*Mxa@Ry@t*yCzA{Fvs3X5IvIaORE_uHxAN{^@y|EkGIptuLUtUJbU`TTkbT#;y(hf8ZUsXEnEk=}H!!@% zY^C5$3ZuB9aBpLe{jy$6@T!zvOrv{Lym%RHa%*{n(#S)t8&+*z1PDlS1<_pK76HPi z5X=`zfXHLe-*uT9Pt#e0yJ@C}gi?K6_AQ8=9s}q<~UUY-rMW0dL ziGZ1>pGpHHiT(DO==PFJ+?NW*7aUI~Yn~y-G^+A{X|ewOh8Tbx?9zV2vXeomb{Blb z5abacH6%RaQBw)gZ>0ZGh3iiO{MCA{6!@1sA-zikp5R4P+42jTVEN!5>NA)0CnPi< zUq)QXFfTnzY?&lz5K|K3l0jEZCF8|+Pdlx=ymaooMYIN_pK|T=VV?Vu%+%ayR+Z@ zRaG}f1ErR6J6>q^aM@>2+Y|O*3j_Vng zq<_C>&W1*aoeKY(4~YTo6d@kmI7K4HzoJ~zPu?)r71UY!0SGjfDV8Y4;X^m*JfB0h zfp6y6rCwUP)Nz7JEJlGUK&vl__G#F+GNp(mA7L=k4E|S947^5p2DKk(Z-l5kGC;i^Q7VXD41PET8)x6iV73)v08^=$JGcYRf-f!- z3Th~m(`xiG`|f0*&@~SO7#W>y6os*(ej89B+q>g(+FLrR4~(&)@@-5DPKCkZ?vTcw zK0R{5K$k50?#IcYuSrecK3`9DZYLw&AU<&i8{>cP@~xpssZSTCEDJM>-10tYKZECB z#U>~EEsM~nq!|o%19ZQ#!L$A8tbVQ44irzD?=tfe)5u}$tmLk88C67Wmg#3!1p-D| z#gaT8jnjzy@E^|-yP$s~jI;UFsmJ9tGyR@l-*tOjCQ_V&m8(M+w5%b~HwC*xb!}?z zCLW?CvV=>fs5`GnN=%8Lq$_SsIlG1B+7?Io5(R7llG*~mQd?F0C46k$PX1;98P3>6EhuCFwi_rOR^SX6oS*i$!9_!`$v z#Y{|^Nl-N%YUF~Q0ShrDta>g+jSjS?u&qmXoU~p)QrYM&PF563S>yz2HZJ-22bB9q zY9DP60XQ&qowkP*;*vM@owi4qG^qFV^F&FQ{e)ErV(Ch-3w&GM%qq^YJbas)eq_)j z^(S2q1$aZM59kBdWYVDUb|xsbn68Hm`Ok!F=~jjTqG&Ndq&;>1zti?pALu~ob<20{ zDH;|flDR?$w`zqMex}NQ4;9yPDM>GW<31wPJ+-heeqPi)AHFsIFjfOLw81TB6+=0FS)W{3R_Gurgqc!7y*gp zATULec2MnY5e~d}y$?UXwEb~g%i~;1KPBTYwEvK*SGDQAEwG%Y{TqgSa8mUB z(Yk+$jcEXHZysJR^N(z}Y?T&wvGivq*>Dl-a+enAu$@?BaW1o-vw{%aIt;yVww6!5 zaO8RrmcwL?u3oPD8Z^DR{0H!tlrNS$6n%-($A!Ed>A0G#3(Wo{>TIjY5E-=J#iw6f z3%H5L%xbS{RwoIMy2F~9s+pjx2;Sg=ctl>?Wnes^sLy?VD1d2m;q5@3*~BVcxpQ>E z&-1sceT=XN*LU#0X#sdcr4>jAgczDb|`EDlnAC(iEo9-d0jNqE#Kq(x0i<~P=}&(#;^ zbsjL{Ca&MVWgRgK90}+YnWDNL@^L~aZeVDZfT|F!f?Zhmp??o!ZAD93*nI$){_}j- zrk%>YaPfpB$t6vS8G{4L`TF@ghCws&DgMQ}2@ZMyP34$LtbX}mR_W-ty%qJ;h`580 z7c`^^&VL9h{|o?D&o~}-5PRB^8KH-D;{N_H(KG)bt^uQ?Oa|_zpgTe};n3qlgX;Aq zp{6@}o7pLTKVE@?Kf6uj@>>w{3{dI7P*AmLl_}=nyH=X65Gs zU?+lvmC)%HJgMWf?)P0&eA3Dd?@qy-tfwIyEZoWIw(*jAr}W?)7X&dyO&xiLL?&}D z#wKjkcifN_PR^Cl3h|S9Ybn{#z~Y8ScQsYWX!q;d)MFWy21)7hw*)owGABsE4(ZnT z{=!(JzgEIKARHp^dc|37C3vYLo@jWnZaNEzn7u4X$0WFDusVYzgVd=Y-BeZ!pi}y)}#>^XU>&N{$l5ph9;>f3qx8WqT1Zc;9v# zB?biG?S~bRx9Ou0NE?8@ZXs+|u~ed*YYuqCnh?a=YE#HH?<*=#m(Rd9?Pcu7$Fkr! zx!R5S`r)8KsZl=jkGG+DS{#AM^EbVDL}xmAqbD#ngs~pQ-((jt=bPBFNSE|LyVBQO z%rB;_9Py10D%DZMSJgjWh6|35U`A5taDLIWXcSJ;2SkfxFI;H@S8rm;7Z8We`xKBej7t-c*;XWh~GG9iM4s1^`&6fBn zS(oB!L&_Yug0XsRNhmEX&n-Qw9UDuCj6tmb9xzuwp7$oKC$mz2^+tF$xYgN*oDSjG zQH10wLg*)g|LI$3fBF#&o6#2XED4nTQv_RfYuKH@aV%le{+sn2%{qya=?w0VS5W}V z8C<=1Ye`@Z`k40-Yo-m?k=gW96gjYcDg(|Dpi>z@FQ|OWxr1k9A59hs3LSLwot-BY$l1dTzMNXk z*@Fw7l{(DX!~MOWDiKp%E71^gA2x!a=wI3n4w%Pu2bFTjg4VlP0YWifn+4eHTnDXk z2+qoC->XXjf|7pNqhX~6!f1@L=@Q>cM5+*1&o?06sXzMM0cbn+UlmiNESSsS4dsI% zh>jTfX8HagrkNyB$OvNy9(sgVz|y`2b5q`4qP;(ZRiO)n)PADNU|f;tc9-YEt5H_B zTur|bq@sV!)hw*8R>M}ourusZRnO;0WfoDWf7Dc`lW7Xbw*{)o#B&oN5 z0tcL_oX#t0tQe_Qz(vj4nmr6uc~iodQ^CzmaYNY^RD#(VGQt|5Ra(?ls=Vnl^eRzI ze+fs^tZWrU+88LudxqOsc{pS7=?1_)?5?5???uOv8l9YPy__e#%pE5cRv;Uf%VQCjYpSOxRcIBv`b$qS^wc?_FOZK9aXOIzl{$(5x6E9-0U6FYLbPY> z_fqCVn5A6&%kLt%m#U#>Rh7rABB0ijroyk&RrS48*TZ>p-zz}&BOX>3))o7X{Q@V? zI+%g@IeVUaPuD6;%tqch`%Z(-*4zdAY#OEk-x!p+QvQ+4fi*xDt5Mq+sT8Fo)jh1- zk`)KvKuw*F*p{N{4QY9`0>S-#6lVFb0%2x1uDJq1z4b4dd1l1`(4kpO9;>)wfUvc| zyWT08OL#2CeVZZ1K_(TPr-zL^>x{`UFBv%+SjJ#_RPV(~NGQEowuiq$s2(l{y7E0H zRfVTV4k$yF=+G!8c#!Fsz8|a<{p{M|k%>GR%Os-W`(16irEH+nJM+7?a3%jL9L$3h zwiLpoY=W^o3zzo#X4wFYt(uTvy`j62beKWV5Axo_KLBP%fLxe?_uq?^4L{93^)hfZ zJSP}*&rW3HO=wS{&Qof=dZ^?egn9e-iw<>O)>IortDep?M(_BXTv5Hk*|jsc;ZOUxMdgB)+etsW+k)yB&_pLa#>cF z(b-XWyZ~uAf7{Ds(Oa}=wnkZL_Owf<5z^z_;o~UMa9@=F7HWtqR;O2YF2KY%%Hbm= z6s|zpM(T?YIwQpsgj_H?lTZ+F+2AMCfseJ}5HzAAwNH|{dqSwr%Z%j~5Sa9&L%Uf9 z9MF7P@8i9Y!Z!AyX@dkasH^Qz4$&d03)n5RUkMV+I99lV@;5z8uwNN`hP9n->so*C z|3XSc(IWNyOjaNtnJHX++g<(z+HFllu1U4x?@oVT0p)06^{}@LV99bAua<7K(8c*%E!QVM7-ns`ENZc_`fpIu zhL(AT9VvRZIQQ*2>4ttLx()+p!LDu z``XkvSleuacq2d||C@#;9DWC;KiU2{F@+qqGy*$^=KTB!@k&&7P_ty!Lz1c&uGw-H z#5OP=!;HB~oNvzL&7y%B=;=VJj69}C|3^vZV`y-2# z%r1y8SkexPSg0xSu5MkYuaoi^Hx4!F1r9v#ADPdGUZ?t9%2Jzvl_l4R5KV*rMsucs zct#ga`7uI4Ge3&!^XHT{O0U7h%=jP~peGKnw^1Fyq8#DU3Y-IOlzdrMezoa+%_)94 zg?;WTzJQwL61PR&A;ElNRH7K`acz;`O{qspwRi;gWY~GwiSLLN88WTIE}btQnNDRR zgIZ`l2?xJL_MiU_vo-X2*2h+XeD7k4r0>uSIYC_|I|}hu=e8l|@tNs`D&4+*V|8DTkSD^kb48n{cKUL)6)RFdTRFz(-?`D!5i|qR{V95=8 z4SPNLGQ5LMS&n@wcO?6WjI2ZOz3*h;lnhzv%CE3pCT>Vq^Q=fk#(On)9+U2NJ`*zAq2dmp4Ml{YU{^VLj0$U&5a|6CYb+w55P-vT^TTbHy))3N%F zBP_x#cqrQ^H*}V>Av1hppEgElKyq?^rzt!!#AdXoGyFf;dr2WZFgZ&zr+n7S^k=<1 z#~g0JeQp~7kP^Imhfa4N8fJ3*a1xiFTG|dY!oR^=+J>Q_wde3bUtTd97}h4QCYmT; zyQZ@bHiBpQ$rHAFs8mSW9I$#A8k3~+Nw;=!Te4HHaini$9N>*0&de^L%fv1~#O!pg zyohDUJ=Np@ly7~vsrp6ELl0kOU<4A6OBqDz6nU>lW2jwvkX%TzaAd7GsFWr z(fZ4in}4&qWSy=%<3jtNI=mXgTR z*2|eC7Nmf1?;bJEA)0(ipq(qsiw@6|<`Hm$>eU@0H)cwfMy(U`v5JSEROIO*3CLyL zd^gbLLK)sv~ibzPCs}wA6CCECkcIQL!9*yNu^S))vrToy< z^+*{gMVUov7OAtH(lo+_uO~pIQ}QP*Jx9+3gV0%(a%Lx^wTd&qikve|1s&}vi$wa~ z*uw9xOAu2X;>$e3k5DqmSWRGM(I3`?`GJ7YDi}pI)`Mv=oLqFr(>vj;olVuSyfE6P z&k+6x7WaJ0nM0qy7mK0u0Y`E_g4RkV;I8-Ksx6R6*WSo3QD!IWSnRg9HUm?*LvamK zT3QRsXwEciB=i%#W$E~Q!X^~In*$IwSh6rd68J%rJ?u@QJPlwN(F{1FI~ANwD7Cyp zxi5YN(Fzl(7jf5oU{62*v3t3uf-ID<|>yD09rD$e&TUodlyQou{kc z%x^Fmv{84yYufa?7$4RZ4Do>*xDYGt}Dg1TMaN2xktZADu~KLq2pgcViJ)jwDu3_FadEy|67Z+ zKux(Vtq|$oLB8o|i+gA8SbOXkx^~$$M}%Rh+S;)z$vemI&>dGeeL zPT>CI`*ixXSC>G%s$Zkaq+IHI5QAM_z6u_EIfAqwAHu^bzP_cyyLV#pl|H&Xr{`Km zT_=pRGpdWY?zc&)1kg^q-KEb=%}Al~F)hUGLDUo2d2y)vR`(Z$G<8ru(3iG&n{W}< zjO8xAe~G~k<>iq}E_7*3y|_zY7J5y-r+s1uNqmho$>jh?(ZLS?W!O5QE^*+YV62~( zJm(-i6iT&S3lJ3MScCq+m_iXbhwfz1}RdwpoyhAh#GOs{WC+qMJ@<;32Kq4L06u@f}s*dChWBWC*AC!Z;4Un3Hb#x7^+E8NYBRz8tEp+~>X z9<6EJ{r3_`D2uR~t-A~L8VXJE0dCMTsz-;|2`dQ95fn99K=-AXK~ULaZuv|?iesHE z?#m|b7*)GIFfT*uQQMOuD<5D-QKD3U%ld= zS-`1l+x7B6SVZZnGU9U26R|6m=LSqH&Ey+cL(HCVL^|Smlx6^Wg?a7K3>ycscu|8#7kK!vLGy{z zK_P7Qyx?DC<{s`@jNI#A;l3Fu{c*$qE@~hOsTkl26IO)OS-{&;(v#)9Cyvo+NqLmD z^=BOKdt=?Dzv*}T%=$J%QD1!r{f~`A#YXDD5n`XqU0AWUuIP!!wwJx4S2ed6&aPNn zB4z&g5&STpw5X-g9vL=W$PK5u01&P;4_9(3Q93=ceg-6 z$qdXS1tX7IMee>MV^^OkOFMmog=u?QI)R!7d^^j>$v^$9Q^|+n$X>sq^?gM1>`zRI%4vdqhkK)wI5irog?ZczN z07Zkd&UEmqNe`%&nnNm? zCy17$ks8WkgkEzMVi5m(bf}&@cu9bltFRc^))(H8by-uZ$x-8!GUaL5>N~%LitzDu znUC%bonI_Ob0#e7hrh8^vwa&2TB<9`$Djl3<4&oIEt(G8j;Q{q^ZmE%pr@OJ?7ZEz zy-!^}y7-{O+Jm*ey5>rRH%VY08M^;Dtj>&^`mSXSa@DLt$U5vEM{NpUMk`X_Ip<{M z9HXVLNP&t+j2}DJz08I`G+w#uRBPXP0RLn>mrIpN;1M(F5pqyo8Ue+RkcY9q^K$rj3+16t31`=0cjSH;$m?j8?6qCwT$OG$zw-iF?S}!|pD4qR@~J;FH58|-Mci`F~WuEY4)Y(hr{qy|#(87Q5vz{$TS5bR(d^{S|( za1zw|gW(Z}vg2RW2dtu+3^-aRMd0H`=Z~%8LRySOcH{T(xy%UAb9oFqQ$ zSKQ11t0?ZMUBH|+-Hg&W^Zy6wKo-A%3~Vw3n@qsIM}Bq2kD5AWJKX&Ty7Dy06h04) z3FSAP`AsK&i9>7<>+u3iC%D=W()%OQyBst6&A8D%+}+0+!AGR`6rT;^GoQzeY^|uL z7iLiVDF2n!^=XK(n=7FC@DoG9w&m4OjLRA0a>96*AK!Su3X<@D5oQR-3c_&-C0^bj zg}BoKl_EeJ7b@r%7W4}VdN#l#(Jx^*+^i1h;rvS&j`Pr@=U8r~1QQzrg*vINbVrHxt138mLi076=tS|wG)cP$Sq!Di*Y2652qWA#)o4U>rt zf{T787EPbV=K>D+qXgw^lA@89htoK(SB;Y@eVjKMs}dk}ID2$?I2d0(mjK?7Jn}7* z{F-ojczpGLv<-~-@TeNjfBPZ$zX^tUNEDeHNd8muPi(kwxwex87Kl0IP!)X;QJD zD{goWE!XV$b+Gge#`3kKh-H7cwZrl2;Atc>u0N9iCDQspxb>Ga39$1y8(9B5lK^d= zN5M!@ArwC|#rfxjqTdTw?uZVb&oK-tr5iMOmjQ7X{ENHbU(^L}FXr*?FN*AEiuFG5 z7Y##y`1)cJy@-q(ZUb`xoT2D`f-(U(LxFwoh|o#ch>%GbjnSb6G%Fjyvoh23zSJ58 z@i8y)Z2-OioTHI($O!C3nON*_!RQFQJa;;km0}qVmviXVZ0w6jSfv;87q|{Aq>hm} zl3h45g8D<*$m;$;F0PXLk_a#?>!!kkZ?V09UXv6ZSQ249)J=u57j0lY)=h=e$lZW5 z%Y{O9Nm8U96G5}gTVIk{<|e7rX)p$5mg#&+W|@=m2hK7#Vk?|welM+lmK0mbEc4<^ z7;QMqJSvqZBt;^bWwsuPk-|Erz05Ya7|uFwn8-R>CUJ_WFNTwj&XJtlVWLq zeU6_6KVpU9d^Z*TlIBs9tJ!=I0mh@p6QEogO_w~3VhFP&pDFp(lCO~b+6acMzQXjI zBH#+o9Z%LE`fJh>=Uo>v7>@Uy5%kE}8G(hZMpQ`c(U+H}IpD5|r)p!5>7p zoe9&hbVwl_BaSzXM=T|82<1tCqWqQ$E3t5JA^b!3X*L0s3&7u`!k7v8S@w8ob%|P~ zy@{;U2{`?QF;V#T=;Jrhs4zMzHOmA?F@tc%MB&u&iMNovgvlpF;Tx>i-XikxM7|R< zNIrqcJ5EG3xgWrr+z$@O@YG=nhxhZ6V%I&u!&Biz>AK6YJq>PY()wV31P_MAl0Otd zgJJob)q^1oetGXR_j!^c_tB9wFr3u6-!%yzQVHEvfVUXiKM~f}-Bs{X1wL5Qq+&!Q zJ^KH|3PbzuD)^@||1pvx{}&^zJ-e%L+hiQna0Gs)l!;bIibNM!#XXZn#T(y75I6#t zh^*gu)P3}A8yKgaNPvoew^%nBXj+w|N`5}TP-X&N?73oq@8c7v9v4UpZ<3D8S??{T; ze#k`4-bLxS4!CC;6Fnp;63vUWLRA7}5z*t_RahsL=Osm=#gW#3g6=9Dc-IEkJdZA8 zKmRhF`K5fsDU$AHKfm>!n0U{7XkwfNl?e8#NSX!R|2|frrz)x|@cDS)eQ9c+iWC?k zsgu|q7a}P{UZslB-Bl=-iZ`RIpLSQ_{!$ynEbXqsX#BCYy9&RS$_%!A5<7BaBQR`g z571yXV>U~Qo_M8yktp`76sF8!B2?_HC_>lt13~xH2Z-(fT4OS!do{`$)kB5(AJ`zq z(nEza_#?T83Vl8l5NVSc#Mu}I(ee}Kf2*Vj;_ny%(P%DL_LmevjAam`J`@n&eyIC4 za~@M?ON!L*N0D!@pN2?rdS5I^S47hE{?%!+H?*~k8}F8X6mj5GpSoeWG+G&H#r>db zr_22Iqv^NX0s?i2NAUz*y+|86$a9 zQdDCdht&9wMd{s0eTBz4zIN4o0X}yDnesGWw}`p(Q~ir5da8dBg-`W+XYgUgFQRbd zoisy#s(%rGg^v+AtoQ{DtaxF|$|!sl-)5$bSLZ9KLYry360SVnu*e8_d>T{=oR7W_ zg|&%cZ6a8cXWAf^o|v#H3LlyKv7iuhIJ@xAvO#Q)&yz1JX4ph`C;Tx>hrfw{f!XD! zh3a;yesDI;Np?ixoaAZB1Yk!L&PgnDY&@;5Gx7d^e+7;j3z7dn>~Yz(OP$5c|0}4u zxT|B2_=>mjlk&lEn4)^_Co~s2Ox>jN6P#|ngWEoiJlId28s^~>HooLt{2PpLDhl7R zdgs|7zWf8GE6`v>G|pY8A!U5}G-m%UmBq~`_V3cS`(5Va?DHdi$#2?cHZW(w zY^wHuV+LnpbE5z9o8XoOBv}2J=(k1Vh%#$|3?18u#PK=K?aG;Ae>6@7_kS)F`-!5_ zLZrx?K|Fqq#@Sz|g+lQwQ4|pc%p{7V(KtZO)+vq>#Xh9qIbHco9?YzYT>J(DbL#15U9Esv-D$Hh(A4b!z(7h{|SvN_84>^1w zr3vlF(aftv@-w0tVnr}d5dX78e_)MX$z1nJiV$Z+(^O%|5`nmws7KtV!p}n0eigTW zLh9MkbZY(R5*wddkC|hFn*ab$t&M*SB6q27-1IrD^=G;!lAo?? z63mk(2eBcEajj-d%OyoI(^*W*FGP&@3tddiCoJX*VVfSz6WbX`NNnF;!)*VM6xn{k zZ2#2R-nIlKHs@iKO$Ch_dgCjVmO7PP)U$uUL!kB}FaH zaom2mTugZw`O&N_W-goZpD2n`y-}q!Mhr9=!#GVB+Lxo*x~c0~(nv{B(#vdr-5x7M z(wi&LX*mBYk=CQRM~st3Z%SH2Qiaft6-lpt!;W=*`Ui zE=iI5p=eqtIlr_4t&b*sX#-jh>BO-@jH=;!h`d=Lk`9YPF=dS8Fe|iw0U?q?Ew-@8 zVUnWA!>mxuYEh`)YBVP>I2cVi28W74QTE3{b~WI6aOHM5FoCV2w=JZ zsuX}F!8}>qv<5}u`r?v^>bA97WF-Uay+!~|MrvYPA#9FDgQ0B?6%I+OHruLOAB(mQ z=%K>lH8wDKdZ=)|77gNmJQQOc+e3xx*5W*XIH!Kf7OWD$-e8^p_drSl{GaVCYM7*G zqbdgc=2`*#15y*)GGX(z3`|v$-z@pe&sc1Qh%F7~No>n?x}ARej>UG^$tjAhV6onH zB6d-b`eUIwDJfF#VCp}0>f653Hgb)E*9QlH>b#UH?uwc zm4N8*HA2R*L8qD>LcNE_2LIPGHaMiNR8n+~j1B);FJnU{{=l(e!g?DRvD;@Z;GQL2 z{j2pT5_i}A!scm7k(~@0=aA@%FYOEQrSijgryX8{0p+p~bp5~z^E&lnG_6xFM&mm5 zmTzp(2jsoC870v7Nv|6^;ollG7eWdB z+W*ZJ*SEZlUM)`*IgjrTl{bs!%_4b48*R9}P6cI_0e73hoDZ|<*NTn!jobp`W={~1@ck@u8(J79=DXgFyKPI)wdWib-1UN`Z-70VgrSGtIg;{ ztawczPLvd*Y$+2JAd&H{9x8aH^%n+fSq~MKZMK1RNtfYQzCaeA(*oyb11@l$*=B?I zn1#HOIYK6zx0g3qz9BVa8}4WGc(I0T__`=ENm8`ok4&_Ph|q?Yr1GW%tSu59VSE0w zL+sggr`Yq;o#;3mvSSvpmyKAyBrBHe((QW5KqsxuK6ufHztVQ&+HMiq@FgSK@a5h0 zNRrPk@RXz<;73;J-k021z9@hAf-+0@(u#5^wVt*QZ?IudGYFKg5W&j*Ky(_}2FS(e!+hH!)QI+ zLxojXW56%fPXEG2v;WE|#>G*iHU1G5qJOr5HSrM@dj5>kYB{^RgZ?%iq>0tvJi-i= zDbWBhRZ(!GY$_cH9PzX6?x_lTLq?qHOlwf4D!5q3n(B;MgHi=Q2ig9!bc$(2b=^U9 zPC*XLAa;`v%C?y|;DZx()n^Ft8|`*z2fo73`-KS*+6azb5&IS)loIYrON zBX#>8&3Czj_@G!=Uyzhdv4u^sg_!O-qMKq%7=A(s^d57vGwHo}zDa+m&ro;vSc7|0RH$#^{blE#uwmHw^aB5CCNM0%X1MkHt z%7x0X12dP9T)rm(ig0Opa1#(%Mhd35yeam;aO%p)1sowng(ZbA6KA`6VfOcpE&$LUws zGcuc6LYFCCz9j+qmrq{4A%8(QovyT=#|pf{w^S;=2&X%H&tQe&{hlfm{KFO-D=D&F z7S7{Sr8FuJ2gAmmD!g-nY4=HrwB_N}lRZ^v`L_+MfA>_u`*%H2;cz;A)e{-%Oy%OM zkzpD56qK-7%RXC6KAZ73`)n=w>`%oJoFWSpV zu=5FoAIT}LBkla2^s*g^`phmtRVgXzxSRWoUbRoE(DFE+pg!}f6kd>&+fkp{7>QoM zK2t0P-OKK26s3D%W;okmm897E7x6;5H2PV*Fe-v+H%N-KKeHEqs-naT?V{~B~MJjOcop?PdscCPaGpp zv}|(jAGd6k6=&8l-5Vt)cOn+7gPU#E;P4_VUYGXoBAG;nEFLiJ*Lj`c=GhY2aGJRWkXKcx~JK?r^&is znAp0f$+}>+<7Y#-;5bdz1&bYDqMspy4zk$6h{I{6fISlq#;9}^%D!ZKoej4(Pgh~V zH5he2;3saYx#Cg3aaYFzDDt5OZd_q$6>j>u7-dc~6czcIV4@85+RL5$_JMKukPq`7#}a?uR+* znwv?jWHae_0+f8sc6%ctX87?0xaS5jPw{#-PgMf|!_%Gw=za~WG+0tJ&-e)IXiox6 zzQGQEjoapz;Rv3--tI^(^>ZaUgud`6+Dj=7~u7hbIBj zrQ*E^>p4#XY)G_&G0d9)CEu7J6#y(?P`wEd8N>J*NXk`USbgj|2uRsjNfFRT5!N4$ zT?etM9jphBT?e`NAud$Yma*O}`O| z4h~O%yQT7VNs(wmg!P}{32@>@J2Z|MkpR%xg8y5aj!1y^H(^Vh!&OL&1`<2c66bIe zZj#aSPo%CrUEss<5{XbQ&7W<;D7nKe<_@=*BF>h?9d0p2+#t+xhg(b$7iJ5IoDLL! zIq?p-1Mw|>`3Cmvk_a#^ zu1Wy!M$T`DpaHgOBS+f4#=!Myo49^y1no<_632>6kTe2-X)%h5g%&^EKp&M$ehvF& zJ%S+Tt!~U*!mOO4b=NV`2REY&kXyNbRPK@#i8e;?^8>zRRNsmg>A^gqyg8ov-YTh% zl3aUQ3U3#mAm8!`a_xQ1#kC`w+w0CjT>gHJJeN}rpcYH>zD-#cyLMZI66*)pMqWA6 z+>Tq%si17*Kl)ZXSm>H9d`+mwOQtYek`T&tTqJGqjf=zqdgp&QUdHhk3AY4)N2qa; zI6zOk#m-ZZQZdPEku(|q>lT@UbhuTfAg_w7iISp`a0*fzWP!WpcC@}O5r|u_3x)a? zLw$>&j<}VfzC}a&cq!R1b0H)D@WmJ!+@RMO0DbuVKD>IFh$;KS_(`ls5idJ?oyYXY~ z>5=#}sA^@0_|(nxG0VsFG0S_Yc8IUUlAJ=AOo@SmE(r7Lp?VfX+xc%L>$hg+#QNF`l+b&{%k6)X!42kMU zB{p9J*cLf)s0Ds(%XZmDb}77_?XrzDYS=CqkK4#D*WY0WQ@#s+jm$b>##fz%@Jr<9 zLoM+A9WuE-6p8O>O765ne9Tt-^BMsk{1Ca~Q4@5!%MS5gEb|P8J@mQJ*t_f@-vi%% zC+vw-KQn2F8Ga%yXr0+7}K_qy-!k6v-WoS8!jg!9~x$XqV_mU z;!?JF8{2+6_nuGMiy2R~7bi4R*+4BNMJHhIp$*zfY5hwi7%e9fK;6#VevJg-=mZW;M*?|^Yq>rGajI0=2H1ud9sH%XN#ia9yOQNW*U-vtLE zpMK8_dC0d`__?*B?!gFzOlhyRWPTiamm+EZ_7Z(@HMIi{AvmC3iln_`bG`4|e$OQ1TRIsXI6>UW=kJy7E4WvYXQ+ z%BBk9*^&mM?6wmLP$I1-MDathLh^4$)v*NKMOUkjCV%mgSqcn<#z|yE5&srcq zjk|g&8D|gX3IR&VI1k+)?CPatoo61vF8rNz;n`8{XDtxl(GKw?SmqfF^XO3b>W-mZ z__o_&UR2#Ktd{{B3U;!gK43%r)lm#}PbV?dUQywUbplxe^PO)FikD`9@VkhYrRh{bT7xkDmv}dSd**r;W_l(b?uxH%dxo+g*b%_|V z;xZ@}4l{0JgxoilL{Z;Z5{2(J9`B5?ihW~A6!#6yoekyW#`5-<)VM7$IhhiVXxIx4&*hnRhJ%otSofU$310Sw!+?D|( zN{X&OVy-)Vb8AKS`+N>v4@eW>UrWk1-N829L00F1sLTvgS=@$QRUAK7y`c}Jc zrAlFc-nl)4WFh;alvu9@urKO~=PWSbVYbpfveHJ(6=EHJ4Rq%t!A`c1tTebQ&MS7~ z4(wp~l{(b1uAv>O&0X+oJsnCfEFm35Q8b$$1G`c@rVhW4yXG3O_e z*6vxqQ_t#yeCs}Q(t}=ta%unI-HejmQ^he*MKLg{yB-5oAu({AJh!tR0ok4!_onKB zkSP-E9YQ6Yi&A2DDg8?u67$Ka0 zM@fnnK413{AgdR=#xhMX47(>3%PY~eba^Ej7nHB})U|$vK9zy^wC_#$H$lfn}GhB;>v zpt0a+FDddEA8lQACIL1fQEeXvhIzGr2ZlXNx11MCn;rLt>hg9pjf`(cDE!Y~Ane^Qb#Al+&Kt6mDjjsUaX4oOV0*mknQdu;AzEWG% zN2bVS)TCKogk{9HW9lC6WwZF4c;+5nwbLp9duXZDe-ceExL(GV23+pnb05R)Bq^GD zb~L{R_^*_`C@I#>jgG;K!g};WC*nS3rEp#t4YZ?|zL$|Kjs}Rb^im;B4Dzs~$`tFZ zy;OL!pKgrF1{~l4qT2ORAycS-T6JVx$`otAUMl?7&kolA_EKSIe>+%ndZ}Q1)D95k zK>+8K#= ztfgL#zy^+^=&$k#givmYqPfiDagW4C77 zf&PfdVk0(cl!YQ#_r=tIY>0-lx_u_x_bfN046(q+SW<;0F8G?9xra*j<1GyZ9#rE9 z8T`&1JDBmJ-Q9F9wHUJq0QOS;SIpCpw%4%u1q%!wXa_U*(@Fz&)7@B*6M%zcXRpf+ zW`7Q>H!MDFhJ7wO#HUr7z#M=LR3AGCS9c{?L<+zKLi++11NOInpG;tOI13%_Yz>we zF$g~&gc2oleh~IRB=QV~ujv@)_`zZ_SWbV|a~>sRwC@sUXS5d<5&|qMcOqTE1?2*hvlJ+;)hsLK4ql_?`eg zH+P`IY4%Ku?u^WGHq_6$wx$VKP{gHHxkj$18 zNq=C{W}a%&(z6NR@6B9`B}LL52J70h2{6Wk4+A91$Y7!;B}JmmOtgxKj`UJtkyL&y zDH82ASfhHYaLQwc#xcEBfS82dDs=QBV;koCFyq#eVw=4m2J3yjRhZ?qL(IdyRd{j; z+U8%oati;|{WR&wZ~m8;{%yWF20SATPB;6PJ#M}tAHfld|D=%yq?1M*kd_2=#3zj* z1CnISIdH~^hZ1ipmws-(Z!ffZdaE#dm>pt@daH2X)A-;Dj7$LauukyC$OM@Cv>mK( zk4%8Co`a=|DZjOi1O+fkRSZ@wNA zPe-GUP-~Zotu9K2&h{%s&&P(B-EY1jf8EdOJhAojV#DXrhE2xkHl*wqT@zuBtA3Yzu(2^j90rlTA|e?ah8EOlz$ zz(9DB?s;DECO-U*P)~SCL34MXh$VlLiC-p~RTI(1#yP!JNIhmE+mtBQjlET9e>KSt z*6(_&@X*_Ku>RCrg(>*sSZ@`+d)p2%fA?0Q%{$m{uyMIG{*W7g_>MIGdx|vf`JNr9 z@hk61<6qv>8)sIr29@B7l&@S!w*5`UoNw?34{Cq6{n^@aw!E;KUI#CuC6RU|T= zko-H6qHl*Q6dGC6kbkYv$R4O=e-Ea&J5Vl7_CKcw2L6@gL?zaVcbq~ZM#fvyFfy_o zZh%B|TjX@z?TO^xcsNeJxe;B{Z8};5FWF5y&VOB5wWfAc;RP(O4WxO?jA8D8V`yie z&l5cKUnx+INXpk+w^i`9b=wDvE$~%Pep`&oI$Uu(N&dtDJkM&CNXonhf5_?e0jLca z5bSM2Fj!Kwf&(B5J6@@jnO)hrHX$s%1^$5{e@Fm|8P8Y4Ic4sjG561i`^b;%5StC~8FibDm~(4I zp*%h#srHZ2#Rb{fn%~a{fB&W8g^zW3ObEt^3>8YmwTl&N^9&Wf|JV-J)C?68XV{_f zof){tU)wVNfFqzipyj&UbPTkokB*c>rC@(#M5qp%Scgrd!>}2w!zR+fISK&G^tGBOm#E{3s-V8qU3e;B(6#^9Mcj9m=F zh%hR|F1uOu`!lgGpuu8Ja9=pb2HQGQ4AyeiRTzx#rq?Z2DiGVg918UUL%l#y2h3uq z7YJ&}EFJ0vhDsKjCv4V8iWa-bu-DAGti>1(q>22GM}^`T6GpMkH%6Zp9Am<8Wav3t z$1x@hAB$|VOtH+Xe_`aU5wmrZl}g3 zS3BQ7hYdA}0KPLv2RMlVn!SFQMnAuuV`sB9e1(}MNs4Bh%Fy8xoWG;DKa|SAXeLIY zIjqKQpNJY`KMAT~7@VQP2BB>-rn=37FzciY6;=fq-z1f%e?CA>NfQb z2%X)|J{~U=3ybBiv3MTI*0ZbDldG)r*;VVwRZq;!+Nln3$V^5p#Zlsz^w$ZeHjDXN&r7D(*bT3fM~K}!Lf&N zd|xIwI)8d~I6C{YAyXhU9v=$jM~3nvK^gifL-~=QZ2eS+@?!{;3W4%FLy7oIpbYrz zs-g4+RWLj|Ar#9|#&VRflzhfmjuMvNKGU%r4Z)(Ge`5EXVl2%T2$q5cSC6GN6bp#G zZ-#<7%V5qDn3)S0%vl1Xe6E8z8v@2FU@kJ4wx0`_ai9Mmz_fu%LD6AiD4G%BG(3(7 z$C*d@=Zt1VI1Z0Z7wTw6(8a&}q%9XTuY}Vm*lnSp`Do$)1Bsy!Vn3pkY8hFaYXyt6Q%%x(qrAsewv`(HtDwK-s>!yTaSjQOF5r#jOvfb7ZhQu#) z4C@#}y>{yisxW+6Qg+BTX1t9U_x^$zZzIMdgN(Obj&X)7*A1n@^w;-7QSW8udx`lH ze__6tm^WIcqu$HR$#QU-BmPIWT&HDXx%ZY`-g2E&0p4fHoh4=U4l#m5grH&>t9OVH zgfG_-9AX6Z+N}>{3d4`5vH)g$j2Ryz#_g6f<7345^&sP8%$QV57u8O&YO9xvYS*o} zylQ=XP%e_AJ_to{mJysK1U*(Tg0qBRf5r-3wX-1zN(I3MM)1Q5L2%p3DJ9jznT^b zUH?PLm+=omf>`3>Dt_N+6v4>hch13kg&af1WHUdtw8F z*gznXzh)2{2*hJw>mW8Th}uIgz2fUQ(BXqL;pv$hs^HED1vglB61TBIZae8nG@hWV zq+hGPwu2#Scmlj2Ty{x{tES2bYhZW+bXac(<8#9kzxAJ6P`=&{jo%%P zXZL3e$Nv}O|MhJY1^;9ufB%4DLArdtj`$h?+BwI+9oZWHcx0z<_>@v>d`I%$H@Y!+ zH{9%o`*5Xx=LS1}qjw+f_YK~FZ!ONrMeyygsMSVXY0b(|q3WCoP)K|0_Zcd@MdkQM z;Zo0Yc}M#DZ%3*8V1^1_Deq>D>7zo2O}HSvu8#^y0=b=}$n$P%f9F0byoEHiz0|x~ zcl?9Xw8aGF(st!%q3S=T#FF}tq54NR=^8(VisBA-Yfv6Top`6(3r}K2+i%4J1F-6w zZ_xth@v{VYmG)F#+>9I2f73RohO_xan{f|?_CZVjX4M}DV|pJIDkS@&V$JKL!f%`H z5EJO5LeDL-#c-Rze@&MZRiDc{Gb6Sj*UKuO{bSu78;Qk>g zUTqWgd><8H3F|RfQe}#DW*-$6?$9xh3_}2jxiu&w=~|L{JX-yyQd^`1|6buE_}5a4 zh4IRzEQk#@e=bak%?B74_T2~zH2BUAvVlL2q-B4nOCQGq4Hv(ShsTA(P)RY+Uax!W zL`dJFKSi7F)4UF!*2UwKVWwQ#CoT&`G#~$@7)IOtFpM_yP94I0h7ezd5tR)KX)T_y zQ=GMsYG2-o2L@s;P={JY6bZY8Vii$z-=z-~_AglMe?5|-8f(L7tk@7FDwE3fk|NO; zOcb-b-auvLd@WMEnl>0z(d`FG+3Gl#Cmj!kqmKP{>pJp$UYvZ0zNh68^f3LNvfB>v z>8PCxey90x>+f+$!IEq^LNjLP_XvyjYKMx@@sc9=Kf-ChbP`e3>SX~(ZclH(<#GE{ z@Q(^Qe_U=qR7%^G%h_7W6e|EURbo8=P4PU+hVSk4Evw7p?%}}CADZIJm8L)FDmBIT zsQ5s;9?PfxfMdc%921Z@5zD^bgNSQkse727PbQQLj#(>oJb23CSR|cHI7Z(m+`88e zjRt|_lqr0t-?2y>kiqzA9~Hb8`BX?%r1jfAe=4-xM*srDyjuGdZ3rJm4F1*gjOtfS zP%cvASL)LFudc>=0Tg`4v~HgrVuwiP>^?g*@_|CHCjtIVK)v@&fhr>2kQ7G>0EI3yqm>pZ ze_n^rk)H}L^)dtSTm0p8=I#xY?e}E^ERT-dtirCJf^W|8JOCD>+dKZOM*%m}-|w%a z1B7FKwnKb5#)1o0QAwABc%JzZ_1;5tg!1G;JMi^xhlnEm7ku>#KT~GzFL*)#%s4)m zN8{tO@)z_ZKscQ__osNBL;N0JpyU7Ge{Vb&i?t%R=vG6~_vl8u3-B*L8^wgJQ|S-N zH;~cwp7vW*NdMIiu?~QHFfM0dCQCB+AF@Mio-5xKkb?NbIQPu=0^IY^78SlcYzK3Z z!~cLI507a%;eIr>;WsW#clZJ>?2eif9>9umzu6&PRm@=axpD^vx@m4GK$$oHe{KhJ zp61RC4CDg`FJXb#RplCs>v5 za)J+Yr!eQp^Jxy}uuwEUMAP99lA03;;&|x~Jote4kV8IlIPeD=)3~#b3h7~HyyF6% zus+aNh1fssVC~*lg~9lvZ(kMmf8dV+eO1UjYKNHIzADVXAKtzyynhV21Y<$B%l{%8 zREdJldqbmPl%j`2Dun~+;Xu)#zbqf6JiJwf8>=`RM$t^^Tg+vF!0f8L{8tn-ip zN8bO!Y?)%N6F-HTZSGZ>ZLU(hO@;SQu-WF4E{~kF1DcI<(=o>uk&=s8LS~z*ytYk+ z)~9Nijhmrq<`cVDPmyUjv;9U@TcKbCS_O*=v(I^8yvteHQgHwe@nKf5spf$<| z+g0fJ7aM2|X|xD)Ss=L!f0!e4tWoA~SE18seY{>HLE?h-)b7>O_}mURqiw#SlB6?s zh|lDbAE;#J8Jv7oana9IlyDY%V6Y2j5A=BaS~`v}|BGlU6(iY?g&J#QnBEE7P$vwN zPIw!2!f+XqM}}?Qp~8D-*;pg##ZIGh98H|-ggG+S$gsUTR46)Ue}_h1)CK3`IBG#7 z8Z4EOVK`iZIS*c?@~!76j9#Zq#Cba!v4k>1Ff$n5piJc7b};$rkMF-m1z>!-uL@-m zJOEA#vmWlN!c%|S!FsZ<3fup-L*u{u;w@g${Zxqh$1V-3q`_ovkok`^*nvNgwAlrn zG%b>Ozs;nD7lib8fBb=@tuLYj^#LJYbGjV=lkqc6TsHe;sOuI4UDujiSMA8fPg@{N zT(=->^iCCCy~wUxK&ESViCxFJpD>pVdJd8ymhB7+!bbjMf(}YDuxl5DP1>o#L?s#L z;HjW+doafKQ=vqR^?8_eXg?K>E6HGev7ZVBVaZ^9wVw)GfAGhIek!yGPX_DMek!~e zo-B%9|G(&Z<>I$tr$hZ$rRW~J-1DzWd3d)9%c7HMI#fjiN46oE z26E2L#vFCMe=4Q_ZWZ0zaHm#(PaL!k7#upTq6+ z- z3dLAuJa~UoNSBH;O7$2wP;+?yS5JdtvF@UCp;k`Te~o;(PLe$DdlgPJU>hf+-d!8A zi77K4Gi2f9<=?BYu3<8mb6h@u0B%NFlPMWYc^+tv888oYK@0qqVM41L%wTrGEm-ib zDH$NXl1o}+$!RPJ4j_J4PN0*g=zlVVl#5ZuTnsf%W8FBZG=kJW18cnT2NiP6$q<|8 z0cec4fB(YVK$qm2TaqD`?ZMR^EFgO|{{9CQ7Fm+P?DKd6d_enxB^lyVjb<=s4|L@@ z`S|k8YcQhpq15%io;j3?8M=h^!A)P8IW)K$b2Rv2j|yoq94mC2^%l%z0cYYH>7!+X z!+TU1&?p(=y{N1U8lvf@V?h}f3<47tG>%2he`~Ms>tB>UF`&TZ4%|5aG6i=Nla9ak zsx)mwtySr=SRB}SRr>B;6~2s5hFCt&{ZOCo!By#+zbmP@7Af-J)t}ix%p0 z10YQpPn1;ocf3ytNui{OMex3*<8?}%S5l<;zvIQd+ke4ZDvVD{dKtW{gk-0rh(+*z zqvKsGbrq5#%@y$SHBJKnu3-=Nlk_r35{0Clq$ov@T+or&q%Kubq`3l;P)`T-o1_Ty(AB~0;`8J~skAf2F*C%KR0E-?c#_`imOMU!ku3i!F3TC-}7h6pM`c zl8UTB7_oP#$v|#?Ln_~s^s1s%@59pOp2jt7_W%kQgu2jOBM;zf4lp+9uR@wdg7HcU z^mY3*2ggyGFn?WA(c(S2aPz&Ol=tWz5g708uR_WHO$<4vRM@w(f7Z}tEQzTIiWw_n zoc&d((8bV;!TrMEA4xF~U&G<>^8Ka1&lS)hO{9JzsVF(0-pPjF$US~Oy@hReBlmdT zmy;ep|Ei*pWa+*WNjJsU(03V09D)-40Ly6foh}lW(b`ZXF1vb(eLRpRQa+JX^cz88 zzZazy0gMQnvc(M7f850SjR*_rWh4GA>_cDq$|MIT4NxwEx;3d*FCSnez3P1sMNn+k z_g>kEZ=_?ckw~Q%(NEumbJ$vr9OU=7X)c*U|3jvTS}v(FMQQZBHx)qXTVSCPE)^7@ z&QP0G^Oiwo`d@J=7cQo2g9-?@b}wC#Th=iA4sK`*dT^=2f1#(OX#1f6lMMr2vVfAL z55)SN3$?Ut9?Hz`hfLv;(KLt)xlJK%ZIhA#Ka!q8pZw=yZV*WBouDMSYJon2P7m4{ zFKGBSDVZ;5c*KS~IlWYP&X&yIK$qbU{091GTRpxAL77qH@It1b>wH}el!XgTqj)Wzdr^gsUl&!r08o6?}x!5 zdEw10=^Wh_a~N|hiEoSP*SxNzIydZ~kV;`b^7oLb-_@bzGE$fP*_d4}BN7zRu))2$jnT>48 zVoFKO63np}zRoQ9KXt{_d3TSxsKR`mq~e!tbUk9he^>}#k2n)^EQGH|jK8I>5Pv-v zR-&9rf8oDCt)UEGPpRF)a`<}6$(Um~)94z;s9Tf&eU&b&%>J&xK>YzCB3j=V6jl9- ze#A=_=zD82FVr#f%B{)uFVtBR^%<3Bk-?Yt-hfXHS=Kyvcdhz7&5iZybC4$T7f4!T z!{F1GEU-++ff*&`UvPvT3@FI13#d>P6Qs~Nf4SOt2K!ZB530{WxgcqMQ$3csFv0>4 zrHExP^Gr=d4QtxLA8_~rowR_K9dNmGI}Xdv)BN}61T-JuLgR3BEpogX#T|Ii=P3#d z?Bd7{c$hA%78!nTi-%lX?gEV%)e)QRaMO3E-CP09=g1=>r5-Ls)H7?4mK`9P`Xq66 ze^+f7QH0mSg(=9eL=#aDO=q{0$%rDd9ty%j_qP#AR6QhATP>%y`B3f7ZYNO@4?{gX zG6uW68D2*=Lp9bz(b?^!)(z^b!yOl@ZCI<;>+tzCR#CTAZMTGwR4Y;2Ekr~rRMXUU zOTJ@h56zDu)k(uU12C9MHrEzMC)fITf4tRv>ZKrA85pRFCMN zcMzZ2fkHHFpK4*XBPE1LH)8Ej2_fm|$@92LSnXg5A*x1QJ6uADs$m-%)a=3Tg1kJv z7a7B0+mEy%jhhfkElT_|BEjt&&4+u7U<^-p9HbVwUs$_^yC6R+NSJvULW0D*e{J)GV0-g;MRO%v$UIjB3IOBGruE8%g_Q~ z3@PderQEXRB;azSotfskxrkDQ()M+;z9=({deIF37=lku}()WP1uVpCeZTrIBKB zIGsL-#VeF8w9OFr?V~1u@R}`LZdV{ExNlO;$C+{cDHT#<%=DK#o!9()e+utpI(kZl zc`5kn7Hf;8R-^JCvD`4}d^0#Hx-=4&kpQsHP_OuuRLB&n26i2Q2>{*?Q=nl@xcQEu zeeuB7YRv>M)UA8i9ROTYUef>7XGETQ>11s~$-=8O?coWya)t#BHtXg-6pYFg+|wOKpA8M$G13Be zx5C$*Xp3QIMq1#_R>@!<2*VXrt3zrsm>ftfI~8Bq zSH+m|jP`T|O&8rd8Nl%7BTZnSIPDEd5yA6~=RDE`0F0x~s*v7@2fvRL>y)!9^lhCC zF(02*VH*A@JFCJ@{ITS$3dT0c_^z(Dn)+i(Ovbyfw4Wr(jU)<)-4@Z6RR)~4rF_z)=! z0I)z$zqWHKTrWcHlA@MxDAxPVsqi-u?HtwwlBKeDi&AM9jgV-!!eFySyOEM& z-H*)RZDbJIIlVp)UUmfKLfg3&BV-F7#_M#jM;@k*wCN5y7w{WdwD`_sh|i3pV+6;^ z1yy&F3yzZulI}vYV4tcGv;4+=s^4AGry8_R2I^Dy;C~P7Q{MJy15~f;tqda|DXMT( z_Xrs~rZF4)1RL9Sw-~$s-6$8`Q7jY}6f5?iudyODZbkLbz|9ox=Sr#v?lY2qT~dT| zOrglVqk}~5pboVnH_zkoLbL3N^`Fsc`h96WOhHCNijnOj@|>GR+1QRH z+<$%~+dssOYL3e=bE(K;`L_7j$P+5y3Jqaq`|NyduJsd-0gxF3R%nm9&7Y<|9_B{r};)| zos#)h!vwjv&int8YoR%xP+CE>Le%=0hPvA$P1n~)c41a<)185s?82;Xm|3w->!Q&qDVgFx{G~I;x zU$x5H0nA3L{{;sZPl(d`f5FjYpXYy&r0GV`|9~Q~Q}n+Sjzn~S@9=+GocD;tA}pi& z$L%x;N1`hJaT8%IP3rR>H<1HvXZ=H^@_tT}{jUE71&fo|qx#1>VShdtNkXyzSSJZ2 ziM^?R+;K1xv6F;6|G4K!!eUul>i?uz;Usz2?tiHs!IDtzKkhz~CyFbmOn)|AUa{UCBFx;gO=XyMKmD;vZ^_ zu_bRERwZMjaY=4{^&dfa!~P0yak)R}i;O!lJi6?}%9uX@r$jUsp`61X$hTCKz83-n zv3dQqmvEN885G(lBPFW+A7G0O8sm$U20~+#an+ZdmcADgx@4sE?pcXlfQYZmR~4q5 z){kVj$CkeO27g%^T>!@W1!O6aaBD+76y!M)uptSibX zIF^T`=efX373dOckmN0qPoB%%>^o$n&+lMTgDUD(qkrw14knT7^$sTG2H_nc`7# z?c-CR`kf)X%mLNW_!Q{wgm4~ZiS9Hdh7^ofG@ea=8RCE#j4@HtQm)OTtYSc5gzAqN zAh?cbe1FQc`*Rk%IM=FT!oO zCIu76dPHy_eJYpl8HM!R$!+N;B7UqP4E%`{?&Ri2wUf(_0lWoe0b`@;=(M4NNZQD9 z(baO+)!0}b;l-@wtf=LPVV1Bw1rvFDrDe6tS$~pS5$Dz7a_+e{avT$7TF(0DF(!|) zVu(S^JH}W>zMSLew>GoPy~d&k>cUD|$)pyI%_GXGK~f0yB45_~45{fy9BEQR7cr-A zQe4L!Y0~jk7(b3nP(qqQe#!JA~1>6Wrww-E>I<;4oghght9XyNDjEM>HW^IrvOO}@N!8;pdPIosvcYGPavh>Y zh+^KJdOf01L@~C^LKM27yZA->f878pX7x+Ly#FMPEqB>4wtVy-OXU(LN2EJFY=Z$i zZnF9Sn#1_Y;|bk0<*aHP4Geh8=m{G-(0|_$ub_KaIX~T;M-J}(d?hrK-4P|X$QbBVwLMh3IT?*I%2Gmqv4H3WIcoA0we8DifiJb{K2hyDejtI5{e4rX4-_zo)RZ%(BB;rcKGy`czqG z*||P{nWFVMu14$gh^bniXI(8a-KQaRDD`>&RMZvf^C`{yMMJt`sn7XO5?E9<|X0z0n2z0=2=-&VVoGBclt39BLCTCZh{_Y;>_* zF{(_QjwxhiDV>GIb?_FA1_X*PhdYcBjqaYuPTyhJY*PI0bgkh-pDA?Lw^Q*jpyADYW}kF z{gdxUGJps70wiev7fB46NV{l;#oj{(uJK`8ET57h-4S`TG=p;z5eM^ILQin1$7bNJ z3j}+TVc(mPM;ZPqTEsIg$_P}Ed?ko7B8k7D(e#u|4bxk7G%520sknN>b#h0Oj(8xC zTs=FQRQ>=e1`zq(1b~sf)`rlzM;KFdTWI(e$)&-G~hOa8@2U^0;&fJG z8EfADAUc^~G)AAXi}CaaF$LKTkZ>`5$1s5h^C&03yMr9zkv&EZik15!^rP{_jTtl> zrIFYp5TiYubofIU4oCLnq}x&eHP%X!qPKHm0}??PMfV!N+~cG!vy~Tt`->B=nGLN| zs{tKNYE-em(tpsXb(MBB>7Ln^ymdT7BWe}uXc9$5N#|>5)Vd~hH0jIPdE}bb(WIB_ z^2jx_qe;8!tnv@@?31X~BOOgD&~nup8nvz!9Zfps;XHD!?P$`6`13l7=?x^2kwK?kgTm&!_a7>7?r(&7+(!*I_Z$+tAn-Jc_EWN1C73 z@eJb=B&BVGa#ZMEF<~87U!F^8`!n<^5W_X+0}TPOI1WLbOuD5~%HFLZAePzMnw?DC z5ABNJB!6jYFWcGR$HSxx_OF5C!Hy}J&%CE4s{TfkX zx|fX+y2ToT?kjP+KXx*yK+DzJ+GZbxWn0IiOmaO2ON;lmiF)iN-xjLVTD+g)jok|IlhCLJ2xvU_ywb=&QSyG-?z;Xxs<@$gv0jLZd+;o)Q|L0R%MKEmazsXMZQt zxNxb`_|H;{MzsP6jfDUJjZXm}H0l*%kJhx7w_sb*l|SYrmH;5hY`*4V^dTEIbERhvD-B z8+Paxzl7Jl&xN}@jQ01T4LikOF@NRse;;L1!MVcxFE-ctN14=VSsuAAJj$e!WqFi& z#Ze|T;7{>UCfQyFyRE8@GAUPiI!;5Q);0Yolg@bA8aqbwl(?yARG{#w(=C~BH*hX) z?C~zzT)w0?`epQ4cu#}o8rTwi83~p{hvxDGY*(DtT;68EEU-HnbLEjsM}Nde^NhTS zPC9KlcQsXT^)BSuLnBiB^fpI^uE6X7+ewRgsxkv{?wPQpU&=78UV%@~$46OSW@5!i z!A;S5Ozvq!i@jldP%cV~jAQ0!(E0Uwl>X3BCe@tlAV@jSaJ_JpNsC_1BiAcOnUt~; z=CKJHR*02`>%T{tbn41H%76UzD3cz+pCdY(^bUh|=xkEKd4g<%;X1jqNu5^ZQTq9v zO{zOjoW4C=BRZQjX%%WJu6<8@omu9KQLgI#z5A2v;9EmhnBTH|zpSz<@>_PBVh#8m z{~NLz(`NdE6*F&j9_2Ki$3C>53^HQ>3N)R)cQQi84M5>kWDG#l~g) zUh7#K*ay^Iwk~cnti6lw-FWZfHiI`W(n~v=G`Od*xh%zXU4LhjmT!On7MuJzVX9Zg zrazd>;ASvLv^fQRgma_Cp2X$r!C6`$pdsq}jT9HY9z1emo_syHrl*6liS+Bi3peH+ z;OoI^B6{FSHoLos*Sb#8ANx=;e-muHE}md}X{M8m*DPo21RlswdClT?0#5+6+mTGl zY3RxCCERYqHGjOa*OFDzgn?pjuotGo>TxJg7W!(aRx7O3Fe@|Tq-)sEm)yYlbetty zdHnoAp<;VVL%}*-uuf;Jn;{@}tEaOslr~xNO&22RuMX)%xxJ*W@3pzM59vfFZ^|QA z?|+iUg0JU^zpzkM zGSBA1PRiofbtlESr3IDn0XsFiT;*!9hEgYsg}cSJ4`w>4#}u!koMpr~HbTL%fBnIjdv|lWSCDT^>$W z{whJbijg`Rw7yqyeHS!X(ybC2>9=(@iF%94t+u&lbv7y5kVmdZI-B%(Lms6~d9oAP zlt7w>9f;tAeB#MY^iu=s-~gwkpJb~m1O`vA0Sf#}N+^SYtpjvxh ztg_deYLySZ35_)A3+05Onq|GR)#s69_C6Q(KDYfj(@70)T4wn4-S1dcxsPd#c*hcIpI92T zTGZL3M#V7TQOhV?Z+156u6Odt^+9Ko>f^5p0L0Cl}?j(^ni z=E&4-*Z_$X6V>w;$Tq|yzHq=w=(XJvRRHjY)T_KZvS2&B^R$LHQa;(9M`_Pa>_jt_ z=wb~)a;4q1Zel0u_ii4w-7>Kg_6QPf>p<*VUK?fp(#J1BIjx;Fb_4q`q|_I`i+L~{ zBuK%w%rWm-Yzu#w$I)6Ax#m6e1%D86EsMMgai~C|S?}-H#ty_@-^ySy6)IDIX(*<% zT{XO&$yL2?X?Q!6n~OM;r|oukt&@Ix-(pn&aBAjVR_X~K95O4aEqX$QnC4b&_VKNgR zsa8H>t$eZr$NYemK4MutA6aVph{@cHcu?!~BR04vzh&I?P)Vcgx`=5^j7$2ApL^x(A=*0C__as11ZM z-egkL2Cr-)20G#met(lCql}`6x7bJ9B z#NWX{yMBWAwjNM^`jL|^+zSWCT|Xa5x&34=_fc!toS%=R8f2u+{rO0`WSPiuy@u#p zKWgoI<>w>m8vw->kg%A({$Pm=2g53hv^6akEZ?t?Q0#G9ntxc&v@}>x-=ARzMAOnB z_MJalbv`W(&Kh!fX?hy0;g_Geu3|KUGoJn>k218u-IKPk)=898-H&VT0sa=n4ZotI zZ1F{=)w}AIH+<5I=oR7XbPa{S$%hGllMe%b3x2gYntT|nTjx@f55ui5N`uqQsl{Cy zLRohn#*Vj74u8N!{HiANQJ@7|*9$+w$5iEGD)Zs`4QGY0ilV8^$d$iYj7=3@9Jt%k zho&+3eZQ&uU>axc{w+_O0}Wc^(+*?jK*jH@rTC3SRhKUqi;SaOW#?24_q&d`=sqXC z{JWfn;>fPw_q&eR3@5LIWeQ0Jit%L)_rr`C?J<8SW`9J=|2R12QK2HLS4=xJ+z;dC zS|=^AFe38F{uu2lwx_G^mh}(fR+v~bH7d%YSFPG%H$-g;_UB!HTD4HiZWBsB_Gptb z`#a?8Pnm;`HmTpAd2$$FaDNB2BBI&YXG#!7>m3&G7yINRGu29Gfrhw<878Vr*;(tP z8{+h=9e>ON;E6`5UJ)F>GQoJ5=wU{*;7^>MLag4KL7yNt%8I%EvV_uY&UEaO)>%UF z=4ijabaQk*{$O+Tnm<#;)6!N9ovS z-5uuu+pEv)%Ol=i%_cYT_G({p6Vc&Xo4gt7D}U+fk45>yQ?8X!;jN0_6u=c0&fQ~c zDf?1iaZDeEsjkk9L*N=$U#}mJJY#134mKH$xyDt}q`UhipRWkSKuXzT$>HaneEWr@= zfPX37R+s$JvPB~p;`1o!wtCIQF^zbxH#iQ3FAl{n9zf}~Muow4TvHf4%>RbmvfVG6 zM+BBX-A4WonZNS7wu$l#pfVOr5g8{W14P5VV!t=g6IXd~mv^BEIkXGf+O!PfQ`bak z271X8W8R{%5qxojawcxhpn5gBf(spo@VAt+zFGx;AHAJH)F?LDF#J$fB~mbTe?;BN z^r^YN{wiO|pwiN)PhLg$2g}H~#&DL?$bGY&ew_R%iCCTgE2G%VQRxeqe1UNBfBc#6XvnV&#nrwa;>*Vnp8tVb3Oer zZtM}LKYJ_@Ruauf1$|?C`?yB?dZRHi&NrHWfq1%FG(wRs?BmxGWb95cvP+15pMy1` z1tpe+j}%E2#u@3NYbiWFf=6Z^b5b@>+am{H&eOFd!CRMZ(Q)k$CZ?iGqOZv{T49`tNahx;ED(YmSWZ23IaCvq1ZDMts*2`%9d$P|O>k(P*7cKLt1}r9g|4#?dF$bTk%< z_)6H(!cE4iZ-4ObcuYc4ioQf}JeQJx5R-R1xT&|?8MMR?Ym57)em*b1yY!GPfzcoB z6Dn1|#~5#*(npW*(S&B2IEPwRPxYWoF_<{#$u!2$B zv@!I+7zIQyUSVX1N=pxbvD_bxg~}q{3Nn_aCTy$Rs#$u8x7?b^=IL5APFqHQmu}He zBu2*46n>uOo@bndPVdTxTaXmR`bK=$T4mNrnPmqrQ;u<-+*(v-rveV`{DI2NU zX^RFW(u~(Qr`_V6a+GLXOZ`wXDBhrYMfd|O+Ab_R@dj0sCYmVAu47}>KPn5Y2!ETT zTw}}pDIA!4Jpp(K%yB{C?CpPlP_S1h5~&Qw_(UwfINpta3E!gg5j8&3LM`_X#(em~ z9z$C2T@AoH=C=Uv>0071j`jATLb>DjmdIMqn2$cUgeW@KiEaj4F|>faKh0{n2@-C@ z@Vk<6wUKS%$Sx-F7dEZDCZ)Y&y#4@>h-CCj6mO}R&oToHc%}ZJKU&^@GZ4aiPmiY> z*`-9)3;teYrpMA5y$((;Sy5=b(&L?d=!IgDaV!{LxicO}QgC*OAHy3Pxz(T$ah62+ z(S(`oX>Tm*s40l3lNl3F{Xgd1ZEDP7k8ke(wmH~h2a==>Hr41cv z(m9&AQA1p+F3-Gqq)FFybW`TUktRKgKlhF_XJJ30`6+!Y>zYBIN+^D%>y4}uqU(R3 zaJ?e3Pa3{;fbUm5~9MKPP3%KzpH|6Xe?jT2rFA($69h|xysri?%8{}?I zIlQx*s9obHLM%&(I{b7mXP<}czhj?`SUQ_RMG*T;5DNE?7|i}72Kc|WvzxMb1`#EC z#K0_eBa-B3Aw9x$&pg_a>k)ROQ%)FMkM##jLSyMM?s@}%N5gH<)G9pt&HSO+%cM}X zvh?{E$*kdfj3q>inKehQsCF^qzcZH|`zx8D8%+3vL!oe#)^Nf$(@i<`U}_Yt<&@6H zxG5+1Qg{-BCA6N?o;?P>)~Ixkn>p#!f4RvK3-LjD+QgKmAPIB&H~HGO>)-IB1JM|7 zfZpay}5y}ghHdeEy0%a$Qnr(k}eDy3nL6j&oCHS)oaH;!n8H zq*soAL+OJXGPki|yg-qbR%RxIaihv&E!p^Gmf_!)l9w^ z)4W|5RR%`)^J1-Et!R(_CK>%RvT5-QquYGEo8)}wGbz~e4xZp9ob99MSSPCxEia-) zDR2SoJ;6;mG=h7c#hiamx4)O#7c3qY_W4SGC|B9o@ZBXaY_-tWMB3L_+FO9{;7Zh$ zIW;Pl|NfMW?GM5B2V+~`4O=JRH(|JPxz>52n;c0-{v;nZ?qQ|MTA!Zc)H{$GH@A75 z_Q{EEY8TrjlpoL#2avSU$PEZrJ}lceR?$gfKO}}m(_%iPeSN;0C@1qu*r9JM{D4(| zdW?TQ;G{p@%ry5fXf;6n^c^Ri)g9_jyB@>V_rlCl4KZTPu~GU%g(fvz>EQSZjptq^ z@p_w-%~uun)DUGGY|Smp)2v%&V>PySopxP?=-;&}YmWLz@^*G$GW{bbR{OxDMHC(HiFOx6Ll!A_Sk)6R3&ziAFU zfvQ(RKI77)mbFv}E@gsUPIXh(SfZtNxZ^^I1$<+C0i#!pEAzGMI^W6MtDuS`!uwJgPV;^q^ng!Kc*yWijQp*y~~<<>on2SyR50! zr@JY=*lQA9Esf?qyQ{`)(xs<=yU8`fYtqEi|DJYnAQbfx*@Wg*b_vB~_ew48W!l?M zw;IM?sf8AV!fg67J%qy{6)M7I8VceisRk;1N$S;4JE`*-VsA@Q(f)>2e~hkx3-Ql$ z-S|BF2>c&$9ySlh(3Ke4TA$BdbyW-_CtZc4f#>5?!PWSl`)Gfdf+%y31vZSri0?+c z*c&YImw017y7roCa^!480`wq9f<0h*>5qF&YAAFN6xGl5j@P8d9&XCq;WcSM zPd8=m^qO=N{_OUe^lVS;9M-huzv2BR4<-f^u+`}%i zO#e-WCP%b8y~UH=r!RsDh3QMq*o~N%zUNZ^8sNrlh+Q0iIdLFNw*;n3?{mtUfo_~Z z|9~UMU5xn@vimb$WJy+{Y$sLH5pldP1x zQ@8`TI|WL~9^@9I&-6*X-j~8w-*=E&{W$!A)z8BpSp7$Xz-RLT0)1)RSIC1myRxd4 z`1RQq6NeFhQJIki=S~?Mh*^Wt3$c%@48!N;i0eW~QYH_!s)GRtYeV*Kl>>goU|CaQ ziQ-2>>Jaoy;_(`VgaJrU{}^wFyf~!APPF+34WIX*YUO=VTT2EEt05i}LfEyTq3H4` z24YtXbyNBRv}B)yhu><$^l&>Yi*BzHCUmss; zabB%|5HAYEDVHh4U6&my=hlulwq(kDK`KzTZ|j)M{(515J+pt;!2=$ZM`l9wm$e8KKv(2txJJYZ$*-&R7qNbq@;~Tx#sZIHEwEu z!>YFKJ>cq;8bCCjnEpMQaJe*%$5UKK6`Ry)q?_6vTWk_#<`ET49e+^xJ^Vpohu13HsD1$Fpo52y4l{YSOHOMYuJJ6C0VQA3dxuY-&ws_u{NPy0M4PuFCt zW+ip_Xg4_$jr|1%U5!L`a>x;crJUL)fX+4+ig$KnQ(dbLEtOnB=9$!!^YS@mSl{3*cj&^iH&g&S8z#X!Wj3kF|Mc-V~qD4zj1AxG)9sw^ODqY zNad=oW*<*I;>ngQ$v=*9Q@g!ggwdj|5;~$>@K!FEH#XV$ZneXImw&}rtdU>^FVp4ukOzROlrA;a^X@mloXox~{?5?LvOxnPOo+~k_S_?gD zcfCOBizyoZQXoVezBsU{1 zw13*M*SjgFF~|yA$qKs$DGi~x!nlXn%1YaGJ$Bm?eaZ%ZPCe^}c*jItv4~ea=$q|BOEc*G8_)yoj%P~k(L0>!{10k{(oro1*NVp1OI7qh7FR{JX25fZ zs%X&o8>0RN3<&jSMg+rFQU6gl0(sNM4{vL?d@5A!_Bkn8%Z+v;L(B%}W9VZ$E&x(G zT%ch^{;A!6a%(ol+|mS-E0((zc2O59wYjGyQ~g@%_G_-&!8f`|I*_lqk-m($Uq-X9 z+11?jCiE0^Pb!vuIn{_H4Q)4b@>NLY=6^fKr&ObcBJhN9>LgBG$xzmaG$|FG!cW!c zl0PUhX}3!Jlil?jde@uXQFM!T8?OVJr)uG- zRL|U0o~pfct4`JO#L2r9!K~baZfanAI3v3QMgNR$+iz*j-7z65{sg~h)$gVabW^)Dpk+vLKQT7 zs5PX2<48hgOy1_d!nJ#(NvkKgiO(a@XZrP=a`Ge?M@|jW7%zRp>7|^0 zz$O^in>QNumr2wgEb9@J2^pO$y8G@t2}Or{MTdJ?hp$e8yFj&0w3j7rJvpw}y{y=O z`zFJ<;Pw95fU(?qC%RWK8>C-Yal7uc6!{A?-v2H)<%GxJS+(-Y;Apxz1r>C|T@W+9 ztQ=x=_CE9f)np?loq8sjtR4TiYMXHtVgJe@++svbpD#)%plwXRQmCas-+ZnY5k z8V*sbZ+s@zDbyDl8nrHGsYxC0b(1Tn)TCYb)49~7WA3xczrss9qE_xwlc=X?v{XZ* z)^%a2NtfK`CfCqXle*jw?|P|8SKaR>YE@inQni9k)X=DP-BN1Ol>03Ln^*}%ttOY6 zRHsnCYiQKE=9ZfD8Sp+=YSPkw8E$edD>dnx8CLn%Ee2PE!CuOshDNRHvr>~fKj0?U zx1}cifIoXmO*(ca82l3qD(EH+jarwd%%sa_S_J-uOMXPHx|f;Ms6gF&3mv1@b$OXd zljFc$1^9riJMQnrU`_>!=JNg)I=oO3&GHqeGslN0FI*P*rl5O5PBG- z=*1OU%q53BB(pMF!eHZnAL0g|Gx&OLB(E^cCcp$WvJZ$BBAa<%#SkaWc2gX&oTu{5 zc2m2T`iXA8(h#dj+Q3ET&W13#H}IuBIT-a{U_>IDdBVf01A^*hc23 z@WFY@H)DS1geja*jJprjygc6ah@09CQ8Hc)`HKG!jPB@1 zVTA?%VQasQi%fXbP3<06j+SW1Meg7$yL(WCau!M%@oSBLcnoNEOVR_3=7q<=n??pc z4l}+H4Y!CMw_%Ut-p4V((-RE*10q#4lOu&saAOM7V;sE)QJf2z$>euG;ih(P4;6)d zqao+N%=xpP1S|ERHHy|U2IDEz`QKNK<=)_f=QLbM#IBZ5O#dUBkyT3ckqxGQ!BcL^ z$-K!yjxn@Q&6v8lmp{5KmL{IL0MqO{M-OnO!&s@D+R z!LK$-?^tfq;F|@>&34yCtxyH)Uq}O&Wkdo&6?l!Jp&(CY`^? zO_^u=O`5+5^EdFnP_cYw7y6mE3f9lA=1>)anY(z55==nFG7wNC7Vl-ff}pU zj0ve+V~;P<8oP3&upiPexyBl_jMmtHOOS`OH+-^loH- zaPwGMBvLhK2*o|5rXJQpv!xd1ybLm^g@u~&h}42}xz@t$VnH@fLm;!-&2BBDwNSPk z?dEUCjfzmj$Lr7n)&5@^N-ZpvT3E`paP$gm&{)cfCPy*7$XC#OE3^h){C;wG$sR;OZS*|Xl_Z#A2V zj^wMECv19eNW~B_u^!E>h&FSq0Wm}tU6DaUUd3|oc65on9DI*cw<5KkQ>lUFJ#MAS z+rYT5SqZsV;(|Lw;l4?*SJw89k$j@>9>wDDRYvPJjXR_lu2XOx~c7> zqp%mcV3bLptaVdn{V0=M>y*%cUS$Ju3m>l)hLr5!yi!Gu?`fQn<-xy)%i?s zxqHUXE>){qUer)*;;&RA?VWM$Xo{xJ(-6&LUuxU0$F(DB`vZQ{{yQ)McCUgRPDJOo zzyxkBCr@C9@`vl|wbZ5Iotyex~M3ed1 zmuh6N8|&s)CxL@@-z(UE5enw;(=Dy)y&3e|MqI(Ml21%zPvGo=*N|-`4@zX;!P&QQ zwv}9-$ezsEn~+V37bUGq);mpje`rwdTvx+0%P{m^V`hR&^Lsqx0$C2 zh>aqREq%jH>F_qy#Myw8>6{%zhzSYu%IHc14EH!Di0a7ekgS)9IoDPr7=zU7_&HWN68Lo#teoJ|?w z>?BEAE}tYyvz8(l%KfD=W+JO8g`&#RQeQ+TVBQS6x%!vpV)(HyJJ1^`^GkbdX5SV5 z;KiYTppL-%S6;Kqk&S0;zw>??v(>pNTfU%NJj7*npD4I_n-O0PFhz&Oyb(clb2C$h z-?z*c1YCk*c2kN)-V#7CJ1sOmRujL^5U-Bi&1yrS;sC!i1JJ$60e;-`fVwlAvQgo! z0viK-qUo0MFNQB&gng))uoYh9_x48xpqXNSbq`%0T5hHUtPm@_!CqLS#jUbg!s zS5`2f;Hqxc&nOt{JZ_@ROh=(E^#&?^2|I0uOzJuTkkeFgVpefF`&#Hh@n%~bpt`!c zI-@BPouCdM7ZyWk)|}+sDJvT|?1wcOzIgjKO6j)h_vJOSo1SS)MpGzXBqEoU*mYfh z0`TVr91E9b;39q>96RB9Nw?K0_UScvfVvqEcz&lRo~TH-)hi@!%{D_UYD-4ksNgLk z7H~yO9|*@SBGy(nD1yazx-Iu$u&@E`Y}0KshRT!D*m`ZoE-zoTpW)4K93)J))%|T5 zL7!CQ$-gfWEcQ{l%`^XNoU^7pe(Ae^iK3YwogwIQ8p19T5q_WVY%T&66W7YU^1k-% zi&_AbI!A8+YijJcgW1SP%WRHQswED3bP_22JB|3n3Lf0XcywZMr1<2MDCY*dgQ|5( z)_CWkJZmQfQxizKMg0}wfN!98G+yQn_{hjIvcsXkIC*!;8Kdk4&*B}JW<>^nhr*SZ z6AZ`rM|dnOQ7jt=TA$@N%Q~WubQVX7snen>GRQfKjzY?QJm3Q@J;r$b0if#Nr%xX; zRvSh$5O_HxcVm-W5#kblC7keL59kr-Wn*KHz)N9Mt*P46<_B)UtkWco6P%{OU($(wFUziPfo1$W6;J=(e^%{S?*H{FyuZN5pJ-f~ms z%=so2;m@PU|<83!TumGw+RliO2mH{nQARa~x-k3VXe~R&i zM)1kHr?>cZh5O#ImI;D~(mtEsf!Zm_e`yF_-!Ult`}ro-E3-Qc*I^4x+VGB>Tx}Pa z)NdQk!Y(lB`fYB?%v)g6wcFvNgVT!c7Nx&uG;>sqR1&2c;zSoas*-AzpUj9>RxslQ zs)lzp6m|TGH!Hj`FVUYY@uS-v>FTbYUR@45+?!Zy+i~4Vt=qK(dY}5`W_7p{-)SjMwT?`v(S?Iyl;^`%lRBUWHCA$e}5*w@1~qO zaNwtN(X>|}p%DqNv-42a{sHbqOyQ09^8s_=2jEGXP~jA5Lg%<{nr~9g2ik<*!5=iC zP9M67n^5J4DAa-=qEDj#hz?)YP^9Ru_TC?iEc?(h_x|ABy+ah+AI3gnhb16`iq$Su z<}PQWU9dxK^`{+bt0#Qaf0QSyRa?$JWv26u!kn00)R0CP1yh9|2^UdtanDB<7o10Q zc#=WK=cV@KR5m1NweGf0zH=t$^zuey-m+jQ;OG2b_HMsFEjj<9P$-ODaTK1vaNWE6 z6|V3`qUGLz-V6XpMsnHWIPQzObMBMI0kTix?E1r!v(*I8=v5iRe=!SS&pa$i(gb!H zU(#(0b+kt>Wh8@2cb6n;x^1b#X3WRDEeUP8cg+5fpXuj2-nkcZup~$*)goQ5=$es6 zT{F-blx|zEP%x|(7z9E}w>2nKGuD7h=PPIIH(yC&${Q&z@9*;^Xl_?*Oq2dYEzcAB zraLHC?Qi##L!T!ke>XL-*K5GQO9sR-eRz{)(QpUV8V1or&IAMTX;#^F{xIca9p<1$ zEsaTWBv+Xx8eA?B6NOdB(;}b`hM227Xt=&vV$!uc-Q@adiAj&*&%PxlZQF@*iLEoP_5G#n$CXNSn@G3wZV5%o z`6A_ff0nY(mu|``FNu&b-}vG=C*Ad>Tc7)w&w`MnG*Ct_8=qd0LG@qa=sLa0>Nx5v zH|11A9=7DycqX>tD^xj7cNE?uRldOB!w8vQ>tTc^zjjkwobDh#iSYZ^ICish*U_|H zdEKEQRIuEjw0)m-pk10~zg^@&UcHfa*{t^Qe=M73;Z*WHhZCizy^hp1gRtWJOb8wJy+vrDW~>uJE5C1n(1=|i1p6@W6hh}|2tpghK91O}_R({|^6$z;_C83^>J2(;rT6{yW# zH?csy_d+0;Pr-en(FrMR^~--&#a;5teu}&M7tquB1f__t~ZI+IewdTSKfZ7FQM zv0o3`>}6o6Q?=YjarWW*WcPr^DX>zE#nvs8&oDe^nT@ zIA3rMU$Hv}1LIx4@d0Suz@T$5Da`xbqHxYPi=9@-c@7T|j_arZi8ueg-vLH{vEeE@Ryf3C(5{@|aM#8-=yu&E;a9r%}<(*D|L1 z4z5zFQ_ijqK3$O#c<7e!K56! zhg?s;U{bZ+Lz(q2n6%FBAxcNTU!&}-lCI}BfMPCiLaIl)p2AdsZhFC_1_fPhxOTr_ zQmmonHhx#+D2b6iCoveU{YBe z^a%xdMni!9Y%tJF0441YaL0k4{=H>Idvs!R0m+&t%h}0EJ45lz-ael7^Kv$=N#W9f zw`@4RDT@xJX<=mce=CXfiWGBp(w-3GMm9V6IX7u%C7ydRK6MPtEs^aNs;Iy>Uyz@) z9mRzYx>e5**otp)r#_y0kd1nV`TKo(22&^ep!ha@!d1`teIgOdqlXV$w!GP5LF%+M z-IkdQN0(flSfNHLgIETh7!F55rId52%Rz-|qJtkelohHJe@xvEPq%2yTZ~Vgmihxe zc^Lmrn~_~b^xv1@M?VPgFq9 zGAJA)qlbZ2Z0;*gILpgqQ3`%f^Jg?8+zbO5=NzQCvy#qT={q=@N$;SqLqPX%_B!T$mypi`S_c23_aOu^W|W< z$v2MTQyDVeu^ZVT{dgtj3)zX!R-%bv&ta^5u#%%;uYRi1iWT!mDzOa8M$5(*xx+0` zObp<>YfZ+^#1}*(w;&D6f=IJ`nS1~ve zLMySVrGM~}s86O$#_Liyf3|}^M%&DR3k@n7 zxVX2kcy#=8Ne|fhD@%{8X>PUL>Fg)Cx1?mCHyri{%lZUkk#S`FH^jR29TC%Xs@r+;sam3l|}Lfh=zdIQ&URB6^T>d*ssh#5k2c4eoAxE@4SXn{&XfZEKJXBgr z-7zwqe;DWcf-!yofzwta4R>F1u<{sxf4E0(skH-k`@kNWd`@ITD{WCq3GZ^&1!{y*%Y9{D8o)kLcH01nJD#A-oYCU5CHl zfz~ndCYI&t8o)GWpf`-+86z9je`(2co)HO*+B72SYGeh7x?ZrvNx!wR%u9}{I!61( zUFr=)soOF0GiX?rhjMm9BcmxF)_6`^57w#te{x%_b)LQOC@QFR5b&PjT7BVB^b69P z^M(l`vxc|bE5lTvES>$V#TssmbTYCkh&l~?!AWg$Jd_oUjV9{!$x|70e;K0OCw5wX zc?Nx!V=>-o<`QhBmQ!cUIgV@RAxFR)jgcGa6WV#G-DOJZP7NJZbTm5D6WYVVs%v4q z)CJ&$?LCxJkAzWl0&HRrKq!YEZFVK9fpUfP|@#LnoQ=~6a$;{-!je}9X$N>`L`*U7>1AZP?pZFf4=3T<-;`J=88oY4p(0F`D+Vg5Jsn%dN()F{x1V{2Cgyu32kL zI?}YL-f4qP6SaDDjY-uC^`eGGt!v{NlR~D4TwB+elzEI*>@FKLOVsN9H73<7_$m#J zT9>ibq+Z8($d$g=Ol&)i`D03+*vrAs0smUvb z_aH^u|5DcMdq@ZqEwy!f)k(*@E$uB;?d4(W@RAJ+f2SMW9?BT)8%N7*54?&VnyZP{ z*SmpP!aDEa@$i@wr42TWNE1DYI@p<92VZg>%=&OA9kP-y~kj;9S^W}*{ele zZP!ZZe;7?)asH1eQGgOW>PBgoZTN%?Dm=kM4u44%eb40YIRRMGE?#HSq*n#QW)0E# zY`3`r>r8t81P`?xx6UMLdk6pC&%clH?{oO2G+5E6D+R?{t0V-9&%~nY9u}(+i)z%E zTGSlLQ;RCpC|guo{W_B(Y7;kU2)sLNuFuw)f7GWN1ZXlUHM1`6{Z67rEk9$u@FzC* zUz_15q93_FU+AXl`GM855799Fz}9rqi5|+So5OYR1M7Iki9Fqq$j%cFnUn5RryP9u zS~4fgY=+DzmT~uWTE2&}0!4u+(K7CsR_9yxyo~9S*z+>B=fk^uD5nwZg^Ov04U>(b zf8Ei(zguTg?jzDBU$(gpTW`_?&KNMH6IE-*N}DS*q!VrG?xFN!hIFFFM;vrI5k+0S zhIFFrlOP)x$bVEYt&##GPV$gz?2u0M@JU*-`qAW)fs?u9w!xjKK})W&xqceliJs$} zCN<~jI@&ib+H)LtwsLKaHi?Q-HIz!bf7NbeRT154fBjV_{dTgYms|M_fo9!J6SRC; zELZWptD)c>FL=i@-V;vo5C+EajI|K4QKYeZPVxL5nE|*b*Qn@!*eqfQnF&H>0+U$_ z#D1a)Oy=lQW&D-c&{HkZCWw2*QS7JN8F0d>9&!|q(%2@%M*HbDJLW&jnm(jRAe$aThglTJC?s?}xIcUksdh>gVq)ja}%P%#xMjwKoj6R%3Wf4s`|Qg(J? zV0@KXnH?wa>OlxV$o~34RH|3}&wnAj3!ODWXARTYnnY&})0ubFJ@g;`Jt-r+F64e@R62q1|=EdXsW{ zd8qAp7*pny^(IZ~1;ptXsl$&u7}?i$9-Ws1@Zh6!`XlR2TByZtPNlT%>rLvuP53)o zL-2Qp=FQtKc`GzT-jq~I10E}F)BbtsM{F=@x6+uJnt9#^lg{sr0SFldPYBQVN=5`3 zJhtEdxlo#}At)_Rf90|LF#t7fo!l~#4YylqWw5wA)vMX&>=b-rzB}!_vf0Tsn9@gj zR*9Y3$1={HY;fcV(@wUG@;)BXShX^}(=L+#s5Ji25WMchb2$4qUhY7W{mGQ8OciS= z%&kn-j$|cU6FQPr{O|KV9!eXs!K5wzU0H zFR(PYUQRSNrNfFyIJ_Gb`SD*SSJ75W3tJf}r7hWD(#K6eA^4lA=@+cMA6J6@^JeQ@dbw(vlVu+!ZKS3pErKyeBGn zk5#b#f`kg*6K?xiDtNDD6|kz~M0mW7QoWLx^_8$Hq&^l>A2X?wFuxSVKjYPVHRYP`r&%U)&?roE2~y9am(o%}w2-*-A0iQEX-)tqDzCX;`SPRiE5Fm74z`#lZBky zihUV#TcHEk6302W)lbn3%h#`wbU3i8RmK-ue_8&*CJyE%WV@Ax#zws1lc-S1KB6HG zApcF#5?|awU9Y7ayDa9#;rPC$@6r&x$kJ9WI2_L$>=B=1U~mid0B5j2;FB{hl&fej z-)*4>qRpb4&8(Z*gL$^{dMh|$wjlx^{T9|!=OG?yH&}7Jt)asgDy6Nh;8F_@!F~WP ze<*Ej1xL+mh{wETQQF!HtspQIPG7WdAHB&K9mBwLQ~Mnj3x$(vv{1P{?Z3%ff6+?3 zyfS9WX#E$FHq!nX=teCuhe)*L!kdsG(TyWYJNFO(WF!6A%pLxQ=OJw zub~+IkF9jj{E-bEJoLSTGrZja+z zqdmTwL|}aDdT$2(8YeKmHMh{F`d|Xuw`>6d#jKbzDVPSNWx_ax@(Pq1n!XYf-FoSuJ_@lLw}O$I69VtS%ACg$x% zpv~~ay!{>#^bHMRoU>Z<#Qee$e>ySmpm`Qd(!_l6i2Ww!ov&oXn3%t(g*yBs1c11< zwF@q^Ay@vr3$13zQM6Bsw%VIOF{ibRAem3g2=YX09zm9YFne4JHDjJ+e2)yCTu=K& zu-va97+TbtC)egxV7p0sX~{lxe%+|nar|$BQVjCm);zzym$iP+RWiSpf7sfqtXjX9 zYZvu*FW29%Al-yA?`l^K9X5;#l)&-7TZGyWQ5!b=Hn96KSL^iW=%1n))OfXrG9r~x zoM-5K<4ca_ttt?TT3+TpV{k^UKrvsgp?uV$ozax1=7$pGQ+S11ZmWh;eu`ma6%kD_ zFa%^@)4cm=jxJop4=V7If4NbSrKMbkxvC&(#p+A25jb2WYN^uWj{OtVJfRHEAVqOj~PGe!ecaf4EW$d>+cuT^p)1I@dVpHYD-R4b>T#5oDIa5sc0AD3ajEzrEB$ zTuq~u#8?ecO%LNaYVC_p|3r?e|cxQR^<--K~-Mlx9spm zF9JzpxbPm+;t_p2qGG|I9Bg-SNkJCO+^ zEm$BZ)E??ID)#WjD6t1_V!IazD+@%l>qo0-uZ~vHvIE-0sspf6?3WZQjF$o9&jpn6 znuS8O4;!zee?nOB3(2^JyzQAh|MO0yY&b8*#bh+iC$Y>>~3K|aq0 zIVtSXp741#$OgpW2kPIO=y?N&C)!<$HUoV0JR9M)f7f~_eZ)qSYMyhj5xrovowO01 z*Yu4hEk!OiJM$L{^JgaYSy>V79vU@M1s(jnz>1)O2n))sa-PaiuOWeIARn9!enIj@`ClO!%BQ80tUMKJRCvmdF;9o2{DE@Zjwn;~ zzCBk$e;MAEi~g6h{@27js{iGz|BOlxW%)~pmb31MA&R%jtb}Kf5a9Qe6l4!ltV4TJ z>g+Kd(xYX|`Oe@iNQfWcleBk`R_=}Vtqd09sYpKXc*Iz(+Qy|0R`n~%ReKq7p}^di zL{rICy9k+3V}oX@8Vi;Qtf=wuDpn&`ZIPp`|5byH>bWXyH;pd~ zwljIO`3=dSxp288E6vOm5*3;~#xYGc*@Y_vZ@u9CZk*z+dqqkJ-cznqGY!{Evf^#f zsNlW+x&+?vtAcl>;QjaYinn2I@s!#LJ*F9RD9}7P)JMiZqKI|Iub~#*NBrwdPB+n1*EV z+NjCOYr#6fBD{WkBl9Xfcg;E>yjqyO^(JL@<4ww}ty+8TaJ9v3W1Q&TxbamX9`VKKOUC*(qP+V@+YD^mJwL%iyleMwQ@ER?e<2#q zJBACpc3)4>UAyycgRD*FEkf5JqIyZhvfSWevrJiE=GCR&+-0qpxpI9=r}qctfw zP}qMm4y49L(<;Vz!{ine)tqncJ*hxhjhvFq@(0552h4J(I}-<2zD&U^lpH(-{ffyI z-H8*j8~G&SHz_!ZSaKImvLQt$rn^!wFMZ`M@YQbFi9+e=dE2k>q8qF8NOOOo0yERz} z58fhJgm9Z_NrdaR2;t9#@Ke*2@NO+4gzfhz;gRJ!6uu#cZ&I-6 z@Z2khZ#XjcUhvSQ-)PQ&Hyri_O9q6BqkTh>VSE>>KXr#AFBz<#g6-!qH)xWxHd!lX7c4lv9m-Z%K)-gq~!OOKNc* ze9Gw}${r0J{t{YXL!WX7@~PeYGX$XRnGyovRR;JJ06Fyuyz3e7c@F~bJ_Rp2D^Y9< z7rPeuIrOHm`xckk^dPhQ7PGq#0F+Yz2!9EEz@<)k2y46te=#N3N?5ERhKA`jqE^VP z)|z=(L!;JJ4^IV3H?MKMauSP->rqld^;+h#9>TI%*`szNtAyxLJFcRvd;9ll4{jV*^6PUUZFAsABwlO|m#^?QE=T?HK1afT0_4=y|Oj zRgRk%`D8_4EfLzpl3w{RpLL^m8LkmAu*?(dZT3^wIcew|4F351w+OPC8UN~0G(||r zYNF3Lwew@xg?!sV4qb=sWVFK`1B%LEF`sn(f{%r~fAtt7&j|zAPkZd}WnKL^?D-uW z38G)@7#wOI7pQGO8Kj$2Yt}kx4HDDgo+@}(dbp46GDWV|_$T(ZiB;Wik88h{|DN<% zXC|%c0#E34xluE~vP*b6_95;9%(BN@GB=7*B3 zc&jxke|T3vmB33o9Aqb=|6}dT1?V~VFl(y_3>J-_Pr7Yrz zgEX{HOC(KVl9nRsR7DXHMF9~-Ejr=?DuVl{Q+EYKTv!y;x`4QX8{+SPB(9fu)muG{VCW}j zf3Hd=vet@M$=Yc>%c_R{+x9BPS1Ms2S}(#5eOQEj5I-AJxbHfLWv4TPPrL4*zO zQ(Tp>_iqqkQ#OjQ+az8ITY_K+TlkquCc-WeuM+k@8!f^%e5M#*rG%aQhzPs)5fOIM zqoUdRM@?Z1_nT=f3uNCvDk3l0uXtM*JjljBCW7Dhm+3YQxLza)R88LG|wySUmajr%UA z_*S(yk?muXhzj9(MPfwo|YvFqkzdvgSsDyTayrS)Fh? z-7q#5_LqE{K9j2q@KOX!0{c&^Lb={ZBs5CU#1e|N)`|js3+ua${5HMf||NPKTGI8a4=FcQ?I~ zOP9QqN4%r+!b?Cxi?`$(h187+a$XjK@|TfkrZ^}RJ(=QblcMh{fH-q=F4Z1T5FU4E zb1psl3eKQ!&ZS@R^(T1<-wySpcI^0A=vj5RJwZd+jFNUp(j}XO+5Uddg-L zK=HR6at^jmDiOk4S`FW-to*}W^Kvfj*_=mi?7it*^2m)nF8>y3Eq85^hP(DVmEv?R zvQY=GOOY+c4-}Wf1-~zUfPpfr7lL9gv$Qv*%qHOn%53GEB2D;5g`~=?0rA)p?D-au zP-gW)pvvr~w}jOm5FEA4qI~N#N<~sw=gzYhnvV<3heE4*+blF63T-RAHAFuB!8CHe zgPGYOCpn`u6BE%3-hp7(ZqB9jpOoaK?uR$$Qrh-BazD8_mkj)Wcwuuct=pbQtP47< z2&c0y#_tea+_OVeQ2eusS1R}h@le62o#4bO5CWxwk9LX*PT9o;ax}Z0843lcL^3}8 zQmX=jtbiaCux^*BfFKm`9lSL}K^)WQ@vdoKzbGlgY+wI)SM2L{#IukRudL=x#3L7- z-ZOJSzbXJ_cM*htlO2uCRU+T+i%+p}p8bt2p-FEozyw z+vHf(h~rxbKdQEjV43+?LW$_=mdlk)s;R}N?q?Fs*Pyk|drYm(=WUVm;pZ0@K(Xgl z7u~Q22i|+rl^nlokJv-4h_ygtgE;nL9y;yuftka4 zAyAgF^aD}ByC7(m)j2rPgu~Rucr=FUBx@;)%`BcsM91*ai(^*3;iS-qdHm?sF*rbf z4?GcH%pf`jP1PUpmo>i&a11KRhz4`P^BA1kz-nwd`o0&?aK2QW{lvsy{?z z(?j{izpE>MjNN|ki~Gik8DM?B1aiNvcZ!YTWu%+qZu znG9@8#M_-q{<8gwGf%#@*%aT-Joh^NbD1Gr^|{OtcHsx6Gb6u%yL|^M#07@TJuKZ4$3Uy#~RkjD;yGnTWbXyh_x)Un)`g_Q4kml#Tr&F4Q%^ zo%&jTE?x2!mW6QBz>L$bRRyM8@`D##^BNd`TT#YNn5Y3sex>I3w%f7+jl}>|YzXJ3o z1IcKqFTnLp&WF?rUf?<8q~bN^vf(3oku@6-dZH)8K#kKpxq*Y|f=GMGm{j0Ub?qzq>h?em;OQYmyDt zk@fz7sHs+xce~!qP6`oiN#Rr2TT*by`{aWVHryM**a)GHLDIJH(QxV*nvLJ6sN}$Z z^@nh(i;t|mp5n%phm8mGh;Kb~`8JQ-m%o-vGrpDU4>#fmu0OnlAGrQ-7(Z|W;`Hy3 zgC>WG^SstKygYKuI!ELlC$6@NFBx8EyZ$v7t@sXm+(g&$&CpHXAs>-Kir*P;je`-S z62ZM*T*1GV@qdpans?q?K~(G4b%OPOo4A6xm@x~#S28bVnM=PnWtQvl4qU3QPjwL< zCDiyX{Y~G?UHZ%)T2z~yjFyc!4>rbR9@MM6l4yx4`29C17s3QWL|^mNa^w$rlrhV1 zdgsC`Gf|;fhajE|($_ro`w#)I>C~U{ z$bHP_Tngbw=gqlvCw}zUoJ-sBqi}OBop=~3vV2Ih@sX=aqjH=tOmw5t#na;AXnXt< znqR%-qJJLFql^oQ*mLLMJn9&KA&s|IkBl8O=3t@r`Nw-xz2MGRs`xa*Pk-4(pPTsb z6#RSy{PTKG7xDAeVsDAy^;*^f?v58-RQoIX=;s!WOajWXK#sEf1~ z<45}Z0U=0gLJ;#+$QJMn)pYWiNp!_cp_)-L)lu-oe3{I4WVU0?HFz+8O+GRmiiOwe zL6>r5I`vlT6nqYcNmGwZIy@2zbD5}bc(pq+ET+L5WOuUa~fOeT*{Hn9v>^91qZwlm@~wqQRAs0yffd2{s!AqkfrZqB z8DoYsMGHJk3ckj}L@g-BBuacg?G<8DdBZ=ph& zWTVyjF;r7!|1DH0E3I%>v@KLB3oTACj<2emX+#ut3pL9^Jtl~MWk^fiZlP|O4bM@E zB~BvHqJb95CQdoDtSo{pOV~;a#S^DPewe6*(m`Cjy%U}-7!8x*ALFzjl-Xn+C5Lg6 z@un3V4QKM)Xw0aLleUn*IG$OyEL#hCj1#iS$8(X=zHtXyJVzBdsVoYzIr!m+J1T%W8&LVZJ9R{Ug3VbFUHrmx&F(9Dl=m z1(r^{>U#ZlkuWqicXxPW!3(R>_=?Dw*O?4DB z=Ac@V!&YRaq8ex7Vd0n&jroHW1^!^nhy;Cs0tA#9;V5O_H`z%=GH6=T&PDk&DwI=N zSyoUQsto%BMovYjcYdEf`Gbe#M1PD5-%LNnjHpVR0+beE^QRcm*l;5p#jrnOy}79s zXqj_}usqYo^w!IKr1jO>lx$38I24H$`(m?5JH2g5CL6J0U(jDVAvmJOA1fqnzNTeX z6Y&Jk)`qN(!-tgBKq;=#XP2A9(Ig@|QR{eVxRB_?{ja%*GQz$X(TP}Z@_+n-Ni(h_ zuy^e*81|}zjoOJUKu2s+X(ytVlH=j-xwO8Wi=Qw&+5L9+TxzvfX^+VQzWSy}k+?s|MKef}$^1oraox%9i3fI|d^xPK!` z{ji%(^%C}nxY{a}jRMYwJAb>oPG|pSPSy%oL`prryH0eI%6(^X&4hh9VVji7ms+Jd zO$kwsAl)LadgODU=yf3D%5Cp~Q0(I0@+e~t(Lfm7OYq3!cLULtbo$+tdZ0)>wYyGr zg8h)Vrqri1x;m|LI>3*bgFG)xW^Aa!lRwIc8Nq6*7rg8hN-IkCF@OAgfp?FzbP|hGqZd0-P%F3*J`VAs=uUky%)y45&CHxo(2aggr?u{QL z52fR+$`draDRC5IYTRJMH#Ss3MS{5JR+A&J15(`rTp=>%5Pt&^BzcI-IYnT+;zGQOCI3e& zZHOZsWn8vKWq&Ssy>2tblrop_VF5xmSu}PUPwLy8Q3%l!7Bvb)$%_eQW#`$zV z*IlQVL2kqMtWU`|F3dl&fg%RRQ7d3;#BIEkv<2+dOKi2%eLZJ=Ue7qgDV@DIRM- zUN3BZ7FSy(Wp(-^n_Rq(Tu5fS+(vY3k4?8L1>YoY9Dn{qhPQOqGm<@cN;e{X_k*0V zBX-tl`M#=HC{`JsF_>7}+N!pS*K|ZuC!+l(Zd}Cqnv$^^8+ZO`Y4m%thwLc$r-k$- zan;f(in}lc*3m{q@pQuSS_9polob^>E=hqBWDZdQnuO96k5n8rEU;rZ(Nhxj7FWrH zQN)J7ECCaj8WO)7J5rre!&q_ST>COtJH|krC9a#eoZF)|33(R#2SYQDC4#U{+&H&+ z%+1swC`>FC6Q}R#>WeeN-q-@ZF_QCQk)(1mxjuWNxoo(kzYD16p9+8U7f6DRz-*& z9-Kk=eo4nuGRRfRmxC52V^5H5M-+iS=xHk9ocokA%$}r`bopw#vqVxI5LXRLx7jqb zhudtq2c4AL&O;dyqHQ*4PoTE=nb$p!>GuZq(b3mbJA^v+#Y0?pIm9SX?Fi2TJ%4Soku# z68-}gemBsMu1|*UOSJ;ocdcTfpg&U3A2GDcp`brv=n992?B6DLqnjn=K7Vncmyd1k z^ptM&pu_s74&Bc`ZI>^)j>gj#?V)Fkj!_L6hU#3`TZ*MuXm8lXQfHziyCMC zyfkFq0Ug%1SA$?ldS{v>{eRp{THiQnS0|FTC36Fa9#EOPU0jv9FI48f;LMdeRp!3n z%pG=m$Z^$4I#CBD)t5H+LnrBUk_$}RpwNL-C%j%4SMmH>@%);3p6^mTzh<6WfPG|W zG-YFgF=`OJ^Bz=rQn=45+-Dj0Pr-ebajTE<98FEY#pjTzL;!b-tABu>SHRCR@O{T9 zfuCpKob;mtTbsTpH?`7qHV6a9dTS0|OV%>bD880_%HRx|oUS;%mW&4Iqja+`e2uS| zkTXb|lCdI@*U>}H=uFz2{8pNaLLEJnUDUya3yH6D{9PSAM2;s;(rLYvO_b2Jp zBf~@Kzn-L1AOjS5!GHLmP;A4Sk4J2P(Puzk1Nu>pWZ+tHmBw}_YiK%mv*dSVn3C`2 z3o~TjoZOB2N`g`1qRQ+^cJEK_Mtd{Nnv$lPiBfJQPRfMgapFmmXqLE^#202tV!VKk z23940oD)-rBjyR;uo@p4RuzqfDo3KL#o=JB{gLVYfdH1yv3~*Xu;ooxU3tNvjH4xz zvty0Sf*iJnU)54AN?oI;3lfX4vj;`<{h9^ zeKN=u3dhKMUZ107vt`&kFJL|S!)EydWu%SK@JX#LoiZp>Ed*iInTdy>v0)P>!XaB% zgw6!XkyX($ukpqlFe7b{c69W?KzI3qq1Y@V0>*R-J8zYIjQ@!~YfmmwFwE`OJ_bx9gNNVcOdtRotV#PU^39vvDnCWj(1 zql~nAjX!dQ(j`SB$FbuyV=BV|!dJIylo3!$G~h2aqWNQ@3go`~=`7-x<`=&vf7l<35`R0;)IpoG0V9h|#^3=`#9q~&r}&~zMGwTuxpV%VvR_=6SsWBt(>X*FC!mS&=c ze;l>yHcDy)Nn4<`H7U0t))pNF5}W18$FULZoVf6r{B~CxwLQtWu*x4XDve;wlRw-r z!ox!0xnqK{5NTbsOn;E5NAC>E3{}O5f4TfY>N;}@z6n_sQ@_Y|q#R3`@|@M|sZTpk z_1K9yYb&WMePKq(FQg(#J7~Izfx*vaf15_B6@7IolHf7oYOCDK`|9+2ra1GT{Z zyYa2vEJZ<7qJ%mSQmz_WuGX}S*?5?3HNT+re`~f! zZN9A5@|+n|(aFPa%|(e;YiNj{M1bn+S8M3)vpSn%t=4+<&frDh-lVNoUu<@UvHg3O zh6*sQvxl7AI~61FUJhK2Kwls*A`*$xo!Zz=8T4vrk9w>#9E*^C-Ly1n(TmS2>fBhz z5Bw`{r{jGpgDb@4t%84R%iJ0CfAeu3qU?q=9?n0-MK`sphqCLPE=BeqmV0+s42`pk zTuk=@)495NDEr_sLiZxWE$s$6M}9w@>N=`f-CdfyqMuIRbn{Spq@PZI>+YfSi~8vl z>h2-3U)fKmM@y7^rkpUie{1fS`ss9McMoOl>ZcQ>@9(G67u`MN__m);e+N6d2p^<7 zGiyM9M2_sQQ@7&*=j%dR z*TRhETs!8NT;CDEz2YXg4hIc6?(45pZH7|Idd>Z5f1R$$@sRsqf1REIiKG1howfOcq4hRJb?8LVmP!1n zBm$z+*1R5ZZLOD_KCN;}Jte23dx9i&#sHltteABYS6k)2Wq?jAdYaXJT@rRVT5pB& z8utfkm`6DRd-p|(jcSY@OX7L%V@YU9zKXMYj9+ZwN%`YRn3VVVn@4?Hh}^2k>XWkY zF(Pu{OGG7Z7iHp0e?(dM5)p3L;JZcZh4gtL*Uwu?f2%SyVfMbeyO z73o$hY53Tts95W$7t(i;XQe{$Izm*-Im&*|Dyns8SI z-(XGihMA_J#WaQ8RGPh#hRd_ITT^)CW}A?Hmejh5M}6fyX`yN&u1-+4UbxNCq;Io*|@UnRMp9iY=4UJp558K6_RyNe&Ps@L3m z2k7(@!oL}ye^Y&Tb*CxY-D99m6Hf9_dar>x-E)$M?E8wk&`BcD0C9WZqp9xXpzHGoiox;Z}^H`MZo;6UXg}puG4iD7n4N%zU4%BI)fYykM z0=zES{lGw-PVIx<=kbAhJaS26qWuGPx`~Ot8>rJO61iDiAYGsA?m0-OgCP2A+Me8K z&RZf`zP{F~@7tBWZ)bfE=xbWT?W_{)vGykIcF}jh7k`aSF7*Y2M%kE{QAu|s|Jg5t zF7E4z7eyTx#fSYol)X)~e-~^2{r(=xF3fR}GZva{1nFMJA2dLz{9aah?Eu&l>wHO$ z()nFV=Nkuz&VL38>--DJO_zVE+(1)nl3C{!1EF)MbDKo&5f?;jl{%k~6a6ZYBzghS zLyE{g2!9f_*}}&fHB=`kw_K*=QdW&OpaMiMvzEsXGOhY$)`D2|%Sy}H4bW2QEP90% zcNs)ros{G%oxGxS^2i|3$!APaFi5BM35viVoq7%SkUKU=r;@=QVjFA_;l2|WS$!s% zZE($C)7}pXO1K|aX{SILto$C5xe?+5XMdAY{@+2x${#6_XNn7=%}TG4IMGyz zoF*=awko2#LDUB2o9hi|U#L!S?!Mfr{wvfS$175>%(3ef4|RG{=&lhuG0Q7cu-?&o zh=-g3f6R#Z0(2$cbXzn8nQz?^OkwyL8LAibeOFnfxn4!Redr@r+Oh>m4D*yGFYb%K~XSRryj#Rlzz%!on{XMDNxf- zRH&;J>QkTqDh>A#qmCR75&mLfOfuq{BwC=#_s}?pQzE~(i52s*mzaL>x`NItG=|~URM`RAx zDI${GC@$>(u@v`ZgLNt$jb`kc!8$#4wG#6+aY6KQiu>uoI^D!XK-w;mUx_P3Kza>C z{~!9wH<#FWqrDH+iP}C8SA7>=*D^vx`pP~T^xJ3;Im2`URw4?eEr_okOyA-^Vn zg?3+8_VPO0%d2BddwHFWKUCZPH9$7mlH%>5HQqK=+Q9s5)s z-NmAg(fENDXm zD%&SamTX^-AISFh$sk41=KM`*=!#Ts-iJ()=KUW0K=c0f6p#WnETq?`a`V3MY(f3; zY*5^vRY>(hu_QI?y{tka$7lF|pQoM>=$56s3yIS6-G!7l)k6+Xb|Dq#x%km7-90Eloibe)xWX}>9MIO995D_@|2v{DCQ~W2=fci0nK0RC&rW+!I;0?Z$zTJHBcla zIAOW9B;y}Kr}?WEJfg-|8sm0|O2lZ-Utu-gr`4AUpJwBK?K0go-ly40#dx2N z8}Bn5JY%{?HLB0DWjzTm8r2ur{QjJ7HSPWbP19!6%PCaZea32fb%jbr)|x;5d@;R< zh<%Z`3Ddjxe2=sOFg+A%PH%<&tZJl^W=JD7dIri4MHCi_`c!vTb|GCi!$TH3tM9D@ z$>UaLKOz&Y%o!zrY&@`l^gfEu3#yU1p+p*)o%n%vvzyOkSR$k^DTV=GBZlkySQ);I z$OOZjnPAvziSsmrN~Bar+-xn~FH*IPsGI;G`hv?RG?RClaBAd>RO}?ZJJT%nFH+AQ z7~e_yLQ0*dFJOOt!SV4Wm`r$Th~|MF4Ex)`_rh++r2Fww;zSo2a%O8t6aDi) zgR~PWOlfO>+hOQN*+qTT053|HwZrn;O%-T7vEgD9+?C>@@w~hpZ}N1XCEE!Ge*D&7 zr$=VBMca+?Fx3~RGN?h&pIK$i#R8R!1)PgPer!>a`0j*{HyvpK=jjK(nWqJkr`mX) zuI4-qxd3^hQ*=7*R>ftdxX9DOcJ9+p(W(1v54lHwo}!a68`RLi`$82F*@PO~TyKCH z+g#ZJ54nHquagmg22v-UqEo%lKXRMmrmb=>IYp;0LAvr3oqAV#sMFsha*?>l+;xgh zbj&*ZKT2KXqXeQyf5<$hH9i!ZTouM`T*GoACd!8mrc=GJSYBt!gFCC6HO&M2_f;0s zxUEiqBJuU6`4gR_Wyq1E&Af|SQ;9O*5~I!9#*5QvpM?0!xFDklA2Lm+NkOwXHfwBR zPC28rg}0x73u0h_0=lp&6f?}kTY2w!eF*CS{diCI4c?PIFN`f^dP5sCO{a!1RBWGl z*|Ai6hsw%3;vz%aGW2xXm4>>Nm>{wcV($7U5iRe=I(#wveCoc3*)~%NvOO$ob zW%&R2WyhjDr{q?S66ATCE_Hk4j8mQH^J8(fRa!=rXkF6f12br7#MFcAqdBnYwyhs- zE)XuL{4acEjh$Aj+)o!*7++@t<5--rtgg3#6CYlb&n64z_2L5CM|8RN+`tUFCys4@ zo{DHa7jf)plPzZdaPhM(vvE_r9vLm3yCzM`n9O*tFkz|o5I{-RAj zQ4x)Lh)+};#1EXPI3WguX|srY3bRB+8}aW(BF<+Kr^b|s>Mh5G@LhoGVAz>>I_4n< zpAm^m^?F~O4#ebW$Q@O3G~}%+NR_yM1lWrGSr@-cM5rgkHP6Fjgo(5t2WC)8wcG}T zXHd1rdK<9K9QouM)eDboxjfT|7dA>}o4nw;y)my2tz>FMBoc~D31L+pvyay4gJl!S zmGvi5X{~V?76?U+vSOcwQ&OvGLY0-i1P@zl^ut3&bbKf_qQ)PMC6Xn#o~&wrX22M6 zVU;fsO(aWcEm_k9sjVd##m{;~rp)pM6KvYGmTF9VKAK2mZ#9vHgQGQKoK$WsRQuMF zK+8?^)u9b(tYW3LMvpuGjqJtQT8guH=`Oy8bVET#>((qiCTO+xt<;pNpf57lgvZ(U zS~>f!KbY2f>Y4tg$?N_~avo@ZOiC`ksOOfc5BPn^Rz=5WGIPT?@AJPmKS_$!Tkyw8?@_LO0y z{chJXV?>8vFuD6BZcw-Lb2wm!3R{Bv|29AKxC|uWm6WykNX@#ROO&c=DLmA3I zMxj6!&oKu(qhPY+4A5x&cxR4>oING!cGmfEH6F4%N_DCe#*d1NxyqUDo~1gCukn!M z)KZ-q`l~7PjwE+=sZPslFbuI@R;trulITTok@zh4ZKXQBTH_)2-K9DmGuK1*hf8&O zTxhJcuOR_zH(@D%la1Jfs#v%xMmeI35&yR8q*%)c5EUa|Q|GEX&Baj9s=4yOMa}>v z?nJV;U*3fd2+A+wg5?x<;qorj?IL6(8HL*ddt4zhB6A|XaBnIR2_6tvTcz1OXLX`^ z;=f*8U{B(A9*QsWsJA_?U?!Z$@=&DG7aMK(__KqOJ3LZ^6hY}9x;S3?5tRPSOW^kh42i!FetvvP#XohahqA*1T;!Z<_#!k9X}-SH zL(a-jFgA~D)5@nL$RgypKSu0j_CbHkTqBAWPg6G5q!7j~?kNVvvK@W?Is1G%C5{|N4Iui|6 z_A<|1b4zD>{4x)@Yj5dHpIz=D_o7=m)3H~0$i3o!md4EtkIwr3S=Wz?mboze2htda^=`{FC6QNEJZr2zhaHWSBVk3S4 zV&9dGAWptYAR%&3mZY4vrr&zTWCTo5r``l#I}V3(dimd#ZA{Vg4lD7K(J?whef9e@! zI@L)Vkn$fTgSN_jc9~Aqpx~Ax(L9+=qfp*0uIgT%)3|MXPDA5(-}N5KDD?#bWkwjw zj?Zze+k?<3(Q{lY^(AJ9@tlSSbEHFR%1-*UdSN#AX;Vxn=>_#M=NB}bYr8NGsQlP} zPkNDA{kjBem5tllkZR{^1@GSHthk$0W;StVF1`T^lBGnOG`yd`9bQY`HgVnxZuC%w z`YfZUi8g5mwz%lF8_jHPQrT3Uuy~x@gTBKM9hUNLRuCVYMf*4zera{z=6pPd5N>66 zu;0B*mSlfq=nt1!t|+{obY1+8Lcj=r((6gUr0i`&Tzq)%J$?=*e>qyr^i%N#fGB;W z;lsGTNuqWPh0#k;7@|RD7zcykBbSu_j-=O0_^-r2Za{vb1D8 ziC(%7)r&90dKScKIu=m&nPAbIas>KjalryLc!>CG z#0875G&gGTt&Gf;k0E4!A=L?g(YxZR%KNh>qsZcjKNu^g28mtxf|(nDUTf1b)Hs6Z zT0R83bp=*f;TxXpqHZ^v)l9)i)vXhdpTt!x7ppImF1DfSF1p#QB+5@t;iFaqU%r_a zRIg($?v*B&k-nHOP)_us5^{mK3V*dl*wrlT6)Tmns~P4$aTtEvk?JIWb&r=6nnHO% zJqqvuCpomzL(V8Y$Y{N9F~v}tmCP1N^3CEZm|rw411-oe+=4uMi-+WsXuojFwf`0~ z`@e8SmZs1OoZp)o1ajreRtbMa6Nm}auM9QyRufA3F`|n3=r@jRxD_(T=7!ZnUa)C3 zN1{5x9Q2BbjWG(OCgMha(6>s~=+M01v#QY=T?Ym#!xvQ0#%Riq=^y)(l)utn8VN;> z(onEWJt>^5!ULgT1-EHPYgb`BdW#39t3b>mL6f7rmC*`m91&PAQbc2AY9fX}TYE?r zjg^tZR)3zF`9pqm1^6c|WBydq9#Km=AUCnlx=>08&ly*S zhx;R>J!#W8AZ7+EuxT#5mvA$`6@L@QT~)*1G}GJ=CX$`1WzI4&crnoBr_+=yXl~VN z+c=(5Yu6-eDC)y6ILW1E*^81f%_a-!aNk_gmRJbOd~@lB=Vwr+%pxFGW`AY0LS?;8 z^?UX6Yb%ThANC#Q3j{>sQf><~3mOX?Kh1$uX!y~q$2*WK ze^(uewo3K4_KZbC=u+uj){2X<*WcWI7Y(6rR$&CYXbAPV%|rI^t2$jLGII`=kA^6a1VFQ6|a_J3Gm*OiER*}v;wKwmY9=|)83-Khf#Xvu9JN>3k9Krb*( zvwXndLRB$tEvZg`_x)k!C!L5+(K3XJ=#;V-oOI|mEb)Yb1`WCO?=Cv^b`RO#tsg?! zk}OYLBtFCadHoQYe>*Z^o`^AZD5%U^243{1;yg-RjU_l$b27Wr!GCTO*nJn#sk6}Z z5EtxDYo5bq{jl20qY_DWqqyn|dJ8q)NMER-t?YP*ISgCKRlF_WMvUqNu@9O1xcFk= zQiZ&fk%!-bQ7m_9vb;4X&TFY^M4WgWKRPQED5GT>MhTzX;i2sHr@F{lO*e6fr_RH( zz?*m$_|H0AB3JP%wSNKrG`b$~s2?jC^7%THg54R_=}Qsu2XP_b9h&>}s7`sSLDjUZ z^2`x~Xs<}}77`$0#*qyS_TX>rKK-_1VJb&fu7!%bgETNxk?nP0Z z>Op;9RHyY4{#r8G;qNVyo+>Vs_;hmCrl?Mo^%nk9;sk_g^a({8jpl_70@5qV%)VM6 z{#C+{k#I2Cucn^g-zihio_DoeWU9-?wK#0@;Q0?K5||z~lMMjpCutd#MDvq|dNb(U zyUcQ%pM-^1(SNCU_%&ohP?n1ejH{AFhw)Pni7Yo4B)`lkH`m6CM3%+kVoK~es}r3k z{*bufvLK0P-PhhFS^sYvvK}9fQJo;2nqtlUB9;3^ocr(MxnHDm@9a5~u1zXF&P9X% zjS6-epAlNj3o-xtHF=A9Cf~2;y3RI^As$+r9 zx;tU?bu7}Qcbf%NmxPW_3P?OyTEa|VbrPlmuiq_}znV$i_lV^$5qa-6ON}jmn}ptz zezl!aW{k@=2*mPN%pilBbi!*tt?%CNbBE3yRm0-KY*7?t@ZVGmpmA zB1aTcDSxhM8$-lDL0qs|qikdHePSC|F~6oQ8K1ix$Aeka45}4`y!I+Sq-99^ zyq1;z}Ls|7>(d9Gg z??RGeSNQ?y21Oc3kUHLv>Qq;xjQ05?$I4H2qM^#WDJknoc!}(Pyq-<7917?vaRK;r zl8Rd`VgD5uaZg%qwI`Z@CNmi|NhlJX59**;DBbT#(y(c@CkYdr|E!DeN$p`pW4zsC>4#eZEriFZEKKu|Cq4Atw zlrG~t_IIg}fI(OCj4Efn2X{|{1}Xny_)!HG+R(K9vR>ZbA16{q#6_lmHMPrjpX8d0 z{+4=(3yRBZTt#|4oTwrj7IvjcLgE(}q*vMa`wmM%`UZdBflIPpN^*%!dN-~TGk=d! zylTY-z;(8^l(MyT>q8}?^9RH=i+G;+uNN2iH`uu6qYYBTeK(+p%@c-4tZ0om_NID4 zbaqrZFgfm)@B`w4<8R8S%1w?dnPbzMgqcu&A>{~Q54Q;nh&ydsTH=BHKJ=UY*<*2e z%f9~VuGCkOEE5+A?y_aQadlUstbd*S|3m(N2>y)gGAP~F@C2Fm>z<;~%NO&f3 zjSx4%!{~RNL~Rupc=y|~Fdk4n`~wp4gt#Dhy791=M*^E9-U{@ZIaW}*_*F>yXC`#J z?nttm#7RQjM0VD#M1{qLXb&6-&m=xgh+DwBP@>j~3%m!9gl7`h2yqK|>m+KQxWIep zNO&gkMj>vD=U51vIz#o?Pk-3l>tZ@>+2En9ClKD!Of|8jjHeKd2o*_HP3fexuUh`4 zDZB-|G=-O$H{x3uL`zdJ13ec$S;kq)UrDapX!Zk3Q+Q3ZwV@ehGuqwWXkM}m{ z9+u>k$K%72dsv2R5fBW`0Rfip-hSLv)jdj8c+Z9I<=-bifi0aT>uGtG5({HTPpwep zh=^0WSVhHWtph|`Sbx;$6H3%AEb5c+q42RiuqEZf9vMVWszDXz3A82UgS-qHg&-;0 zEu4Xs2=PTKq9DQgbivnqn{nX1^%s(1`R z=H|(ER>dC(5>+Ua%bvlx09M6zR>dRFc*yY@YT7Ut*W&k5+=pU1efNxq?5D2jO7BT# zJ`fk*Fh7;Zfw&?`^HB;pN^)|jHsNp9yIPIFz{&N=R4@9uzMEA~D^t1Ju1rO>?eVOK zGBApwm3+w$`^&*nX@EQ=Q1%?Rcx~cPrWNX4!vw4i$+{(h}XxvQB*7Vy<_ytZNY@ zvfj=7YwQVxxh<}h*l1~HW< zQr)<4^dQ1<;iz!9i$=vS93{Ql@`WS&pD~?gJexsno0?RXRo#pqMK$w}}gi zr&Haan1A{z7Cd11ONJ}M|8FWA{?b>)@KZ!t8RClJAJwo!RWY2_tdk`Byh=jVAK@-! zfannG`@L6Hbw0%U&3VmYDu>uqDiFjw>4#Wz55g~Ya)^uIM}(+0LtU&qbrVo91rdrh z2=E1>p(&xsu`;ekhf@96N8OBtZ|uZh*$xLDMt^U%9Mu_c9VpT+jTG`podKvnl;)3) z4VBI|%IGJB&}nH8mAS9Q<;hN6J4|+---0K*CiYYWYs6)OdzoO=>p17LZ8&bdV`Grs zVllS9j^{E)xX6jK=D{r_L)mo*E2r)4a{iV<&NsME%%+j(SYy6elp5M;Cuh(< z5r4sxoh2hxnI2AcuRXI9UC$9%iAx`)B3^9AUu4^f2zzmrP6u=)>`&stRBGF~=T+&{ zew&A+eUsEzwj=xeDxFS}tmli1L^ron?P-J1e$bB1>a=Y*LA<6b6^(Y8reudizj+kn zu3{^|cvnd`AB@{zZ|0W6NeXF{xXS8&PJh*$J>!MbE_l24?r$F)-T-e>CQc#HzwX_uEm^&w9sH z%l#|{R)MR^=_NbXfp2`r!(a5^tbb_RWr6h}ChWJ}L!Iu-SKQkdD3?b?8065S_CX&w z>9CpRQBG5}14l>?z1M{rMEtMCg;hUbcX!y`g}wt3e^POq7~HdV_rvN=}t7k zMm5n6J6am=E>l%II5*_<2V+L0+83amc5D}3xC;aKF=%z@Lr(HGW3Q~#4?-^jt$5jq3qnzj} z$8UKV^xM0*P-%)vS2-Z-8GrBL*$02=Y$HN9IF3IqgBHFgE9M79f(4GYNFa?%k??&IE-d|O2e+Uh^glt0y4^ZBApyS^9KGbkj zu2Ca4m2!mBlvAx7SAVzX%&%^b%n$qkZE`8m>h?GUeaQ!A)m_~lhselT9;7?lZ+L?{PyPY8dNc z1>W7>ecBCusJy{Lj#Xp2QSmqzjU}R+?e2|Zy3x3gkVnVvDu12o#;Fwdw|BR%)~Vme z9!hst>$KowkTkW1scKSOB6&_3YR&te_L@2N+r#oc^)ZHeMzs+j+QV7?`eRcCd)nia z3f3$N$@E|}r^p}Sy@WOdWFH)deV_)>)+sz*>F(L~ z?)B9=IrnzfUj%@gjzbd>BJ`=pL`vtGQG2XKMg7?aP;5BRCl!aN_v>Y+A zN^#9LZHV|MhzlvcYR_%jFZ-oU>-9O9G__*Y1&<9?4EIN(R4eIw4O6+&R^g;i56$sX zwN6y*;(vob9>r}$%&ER>7zBd&K-X3ukZa*!%uGmG+S=1jD z{nyWBJkuY;!R23|B7aw{Q-kpB?@pSd)2m;2$nBh?)66eH(0PtdITMv&1Kfk>=(PMx z52cTuqf^0GEoC?ms^HHYHHawtMp?5uLd%HxDu0MZK%kjlsXJ^VFjm|6m4`a2!*?8s zw`7B}Nj&ybhUL?M;R*wh4py4BwI1pn3IX;}DQ;BG*xOqt_Lm(Qh61{Ym za(`7xO&7IHhgv@STB&6^)Ux6mjLFO)>~yp)c?Ueyv7EH&&OJ_|j_6O6-Z-@kz^9{( z$;lCZpx%D~Qyi$2y%P??>x;%lL?Uznh<`X}ner~M+)lvT5NGe(-}R zu9lBTb^OsooqiI2X~NH0PM3hTvSb43+X>y{0SaF^E6E4vjk$(!Kj0Pd# zv!6WV_+ySvMU!0w_*2}yYINFg*hB8YH9GCZk6|@BP5c?=-?R_1C}Kp=H#1oPmHJfAx^#A2m8H5xop^*VO2A({CPf&#%$xHT<}) zMyLM2d&qrrjZUk7hk{ZcsL`ob#JaNB6wke*MyE6W@R0k18l4{c!_08$RXB+5>=~d^ zh<)gf7R`%F81kZ1OHo9k&xVhAX3omJ!cO9r+u(KzL_^Z^}YAh*fI2bgHyp(YvDNi+d zkNVyaY9o$qtAmKezE>FK2<|1~Hp0i1hWku>c=ogrKd~%DwF3OCxQ!TK>FpRzG62sR zTB8g!pJXEk+)81?EOB1FUeIrw99I)o%h?30z(Cf%OHn(wg2|0;?6KU8g3P&m=mWd~&Z0nwa86zgtM! z;bhd|ma>yT^ax~*Kvjy1N6Q!zCi6tAkO_al{7HtdY-A)4A%U#55o z9|K;TdiV_|El>3l)@&E2;<%y=85i?DS8L+O*_8;JE#gWJ7N;TyucunsQMmyeFARx2df0T@RK=#h-2T%tgJw{w*>wVS_py%4PWb1j23W&KDNz#8( zaV2*jarykvBG++3I#JvN*T30Y;%dn#+qya@NVSrD#JP>~yFUfRIL+=Q>_YD6J@I6R zX?pv4OB{CCo3#BYZLvcu&l2JFyttCv{V6ERQyo^Gp})!#V=#XZ_Z^$8>GdkFqy}Ml z!nAm1SZt8KVponX0)6IY9vrG!^#m1NmzF6(8{dC2)jP^~sA&|>`T8C|k zyflSdWAXR0KmnE`YW(W*$`pSkF42&~RyXo}!XMC^(NBmX1yI+jZ%7{);cQNYyPi=z zRJHL7AkhcAvzil`S4&Oe+D_`?>lJ%iAT}bAsjB0fJU1Bg)sVwh^t_Vb$EbhhB`-5y zMkF!?+lz7P;-gVZ$&tfWa-+JOd))~c%_S}kRaW|fWn;0=>afuwMf!x>)tofuuQbMo z=8(g7vnZ;hYkG6CK&S%x99b1CC5Nq0-u3FWz6H{9+%X>?njG_$&W3JJUaNHb@VPBy z-@FIuu-z-A`Ml8rSwL269JYV;VkC{8BQup5_T%1i_yNTbrrFFc!jVu##8(LoRw%V# zWZR4kcLqTth0!8Sl{uSo*urh0n-DBD$YI<6pc1d=T`d@7D2OYl6}&X%upPFNlB+ZE zRD;Nl_tOfZ*n!Ue=rJdiymAhk@3zS<%BNAGoYKm&g3?fB*dH)*Dnfs~^ZWG4A3P){ zVpRBM`YDQZDY%>sg#4kgSVT@llXgCT(!9%7mwIDMQSikfA>n~;Z^FIGnZBr8L&d#f zq7ARNkZPPS5}oA>OfhO=q*d^Jzb16?OFCxi!%8b0AXv>B6rZ3Gu$Zm zRRvpL;L$GaW=+eSMf5sHp{*}C>XUF)rLmlOIdMJB zQd|-N!ZzoUrVqz`@}~K4+=RCqNpY4xSSETT?JO;GHqq;il~x+63dZ=;+M^<&s&JIF z$2Bd}7bVJh$3?CnJ)yy@T|RnJYf?&l^F7}mO{6C6ew&tAO;ms0xI7glgyByE3xTVK z&V@9t8ai)2nAOnqdgadeRk^-?+g*q+9jjaeF9chPL;+Voa?-A8k@v_z$QK*Xk10vJ z3^&Y)iX&;wVP@i)0c}&#k#i7@MQ|y^LV(sRA3a3=m>_A39r63TnSoF#QM(uAB|T-= zEJS`eBqD8}6(@gQ=!#@)sDgh)Nc-JFmO5d*9P6_Z%~s(j zvhWijyuX7f{6wz39r?uSMD&DY|LvRO=xssxR$OHM>@4?z;|G*d8HmW>jZ(-mo6HTgfEWpsLpQtw%>Q=I^R zEUvc7{qlc$oywgiOa)LSe-)gTQr|$?Y*DHy6IWa1{(ikqE1h0)|GHkM590`7l`5g{ zcwYGy71avD*IN~$%43Z47(*V9b*WKd40cii4_0!t7;v|^yyOg(m*ZWGi_wB;$9QEe zdLGFCd5o8`4^H8$JeMGTWx7|EU(XhPbHqgvU8jFp4Z5+Q(nHW2O3cmTDsihcXHQ5~ z<$TvkKcsuf8KpT8U`R)=6_R&R3aLR7Ke|nUX{)k`sJCWs_pnZXNaQ~y5>b8JJs;NT z8i3jRJ*>y$mNudp`LIrJGR=gC^?2Ofjc6WvSf`u})PU5d9@eQ|BEJ_`TjhTHVVx#t zcu{}og`}N@Tv)S!W{6u2qBoWF4~nb4E4571GOCG|Y1mY_Dvq;EA+#)X0uF~xNR&RZA3b-g7W) z;Zz0tghmQCECKI1i0mgU?;OWlBZ(Dm`mlfHoynOA6(x+8yDgRNdZB)Im&(4%_8Lvg zK!3JILytB&)70M@mG89b8FatxqOC5{R^j(KiJ#Y4f?FZUUO&}^V?+0IZ|QM+DSO*F zE^_*!eP}H+UWu@S|3Db6}Q_*?KyVjQO+o03PE?y$XEgN)7|EG$0*hZvMh9%?y zl`?(0B9N4G<0%^?f>S0GJv6A^x}gS9Z`B^Fnzt$I+Qu)JuIplId7EhY(n#S9subO_ zXO7i#vDI_rn5#4^U0owzBZxM78gYL*vgfi!j7(prirq>9i^O$S(_0#9{T zetL-OtfqI^JhHnY`nmU1>iyz6t7(UJV>pe*aI_hGOagotUw6NlqfMS064CEz&l_p< z5J&eGP@lNYYWhIKy!B&_?)t9cJxp9@HSO1MXvE#ki;s7l&+iZ%)G$sO%|U;)D(E}y z)JPi5Lr^DEvOx(Eeqd97kfYlPYf}_wH67A0-s{>O*}p(oFA^7Z@382ZI*k#Xog=QZ zntox+nt;UiXEx|GSMdKOF4~CiHTSL!I$eA);yDi787?&sUSQgnnLX)#E zNsPUE2CcRH-emc`%ko=bxLK$_UsdialDJvucLF-sk2dJ^`TI(?gW@97Hzkq7wo#`g zGgP8wNva9iCjM)ah(U8oRQxIhS^>~zijXC&64AjQ;woL-rF3x@>*9Zw6HHy)#Vf>= zhEtgLB=Nwe8E(v9X%Ky^q#yr@auw?L3iW$NwV!CBexHPnjvRk}+J)AO=!cWsuDxAo z&xu}gci!8D^d4SHKVfedn$^Qg_H%CSObdj??c$=}TH3*V!L6O?)*fiE?I&*3=>duT zQCz6;aFTn#MxC|-32$H0J}7Y}4UledxL2&`Oi4YxGeBrPWETa<9#G)^)8hK2;iT9WdHrKx=hN96J(PR9Q-@21c4Jm(98?@S*)dr7b zch+uFY!H{9Q@mhD46pD?3xIM7&@-X7S3-MCmuL z>`ab)V2;_SQ^h`oSt%|s|7)}7gpZ9!1uRjY;jPN&4;&Y#Uu=o|ug(45f#c}Zd@s2_ zJ#ZYoneU~nuP}wkI>i6AgU6xMMV&e*Vm)b7b*ivb$^VLfO(~&P{F`lDQIiW`Vu?;y zH7=8kXedx^P@NR=$^$Ah%KRHtVK;DL4=li{do^jw`|sW|z4*q4QTe;Qy_6P;_$y}6 zN0z~jS!&fY=yz#QveV0WY`))y!TI0&U|50iMxmkP|J>$2cY{tZ_VE%6{(L`B1UBlF zUalyR$$WF}VAIJ!cH^lCxZ;JZ!^jtS=#?=S=#4*;bq8qJe|G3iFc%hG7s zU@v9YLGH>>#Gv17*g79~iittL*`9bfjqX1M>O1D=W2r&Z_k)cO=zVyKm)tm@moWqs zcs{kTLMiyL&0Y9-GHo8>C4Mq>>S>_ZS=^PvLa`v({bO-gdKD4;c&VCK=Xu$z;?Kr3 zh^kJ1`@vKhPZaJ-g5GVyrE{*66yJ+0Y=?mDf8%V`@((}SsS07XF?U#~ zG8_sT!PsOY%Su*RXmxoVBGaqt;f+{5UTpFULrgM4^Z#D@=_aU4H`nuwF7 zLyodFh8q)%4Nwslp@AnF2B#*1VS3Ktsg0q|_Q$c>HICt_Ehn+$A50R*G~!WsH!ZLsm1H~_E*ECPk9l4|Dp%6trTB@ob3-vF0h$Ww@2+I@%9I;#WNV3 z$gWlRW3#GeV(X`%!ty91Wq-EWN%WJdDD@R>*&qmnDk79}1VF6z@P$!+&~!46FKQpD zrzNl0>7vXiLWs}j*p39D0Qm93xM<4{D-qT6ze|#MU291aHUq!=yLonD36D&F>x;b9 z^zgtEKD%)KP%mXSRJh1F#~+(D+6aV=2rWD4Eu< zOn0Br_<+NNVWy00SjN@xw|Kze$6@F>XEm1bewMM%@V3a<_)toT$T;p-tE^usS-)ag zHw?#!Q{6TGDhZYJo)KmvsVFEUyTKGFaopu#(%Cy*GtQR*Y<{*-h|Uj*fI0)x7l8$(327u!b0atocaNC|RgPn7=Jje%)c#1|k*Xl3M%=nOZ2L#3Eoz)y)aZaCv4Lkv9|}hO1r`3_?21r9 zb)N$DRsvoN$d0_>q?h1WzZQQS8Lo)UB5k9l;Q`_3E>z{%T%1hg-A`AL9^vH>mp?ce z;q)j!gy@<{k7<+2)2LC^IwC`?>&CNm|L^hQCmd;O8^m~H4r;*o(6CS-6yc7fUV#1- zSG6JeT1HS25#?i;SBf&^qbd2wUmHcn)*=0&B)!-14{mN1gZ^4ZDP(^b7b-J|`aitW zMK{G+^k)`nOfWRy_eG5;4S4Qp7as#Y8xc6PeF@2OSKm&i@7_=0A zUdb#%wf*EwFDVK}q#}%qPdW>0M0FtJ#Om<&MF?%PLS^7zFWFn#!J5tCl1-xF;MZj= zwiu&%Xtz)C*w!f0Q_&G;u5uIq<;?8iPHAE6}+;Mi}-&QyZ@n^kwk)YHUrj6W1D1X2R zn*Qt}R&`Yj$4Y;qw1Ba{nCzwOC9`oI9*0e?Ve}KGq8APz(BM|(25vd-o9ZR!oKU1J zO4oDZq32*zsw#F4hb`f-7yjX;?7|>=$55n zVV)tYCI8h3w&OLw0col@ip52#&)4{=vUjF=&DZ=Kgs3`w(8rFj$-5JR8gB~J4ien5;fOOSb68~PH9tqz-88Zgcb`GZ8+N;UbNm8&fF zWsObtWetBedr1j8~d8# z=mRFdx*Y20(3XN8Heu{!o``L0BfZ&!jSmG4LLc@Q(@ilVmHwbFz-hI%$!PK{_C=$y zS&>jx#Vk&qWF1!>aS*}Dacg3744)3d5xYm#vlEyz8U}v7054whZ@F!lMlJm;ghV5y7g;$yH%| zJDju*T4pRHQ)7zkc9AO<0s*Csg{RV2qkQO|T(il^ZZ$d4y|m5^eXn`7z+B?cvb4<7 zP+2^jsQVrqjXJVLE6GRkuoz#uh~^Iqh39_`Rm<#JE{{^Xe(Iu3d<`Q?H0CoGxzGvf z2yIBBD<|i-n63Ai8H$)lwWI(&Xka~UE&=&c}8*_%nV!qN@Mp=R(UINuF)L3%- zR-fwtY?M@9lr4*z3WJ4hqa)GI*YbUPtxv`my_>&E302Kj^IArZ-<#S*~bvvWR@ z!Zi6Ex>4}6{21ckg;;`Hc1+oqwPQ;8^4!31Ml|%P?~nK_(K=3U|0_TEeS&J1fDMa< zklEem$gte%_39_@3Er%%ISdW&P?ebqjR8kwC@?`8tYJ_Qa(rm3?R(kz$Ox@;Mi0(5Vp+!es=P#45v8bY&jmuvVi1gLq&76t zJ?ZARQ#O>+aEc!k#J_1R??eua(;KB4rNO;JtKZM*!DR2n-kIM)0c%@tS>GPA*?aFA zT77lYSkfSlU(Ly3g2Mqd+KCoOF?O2tMpA6FiW>CE=C~hU{3rJL5KtKiZF!A|Z<9*T z$Df08kY+uMVGStkGTf6AW;gyQDoi+h>MOL7Eu6TkK>l?AIclRrZAzd?^K_c%N9;u@I`lcP1-aw#-xIAhb`Q}#WYp1e?7IUt~=WwVO zNKe?6Ffh5c6k%IM&QO>wv4NGtzRZLk#)SQc!wQ6r0S%4g-;m|>qwA0JMV%~5v{aq+ zZqmJwElY5{Z0i55f=X3)t}F`qp=m)^&M-x_v8;hIOVks#2$w|ep*=|Lwuc^VrF*?0 zWVt4LQTn_fWJT9pDZW5*JC}dqY2tJF1QIrJJL53Gy%vCQm1Tf=%B{Qpa`s{Z*Wr}% z(*=eRLE7GR4RckVKy&5Z$)=+?VaVy)4a77ZvmX^*!tZplSe8xJ0Ow+?2y-3EHlluzf z?*+y;v3~Vn7qILrq0=f{0wwtLLK0kB1vv754P;K}z*iPyh(~NgNbzCDJSj8dSf7R~ z4{uI9KLOpnM0ZprLwwkPaI-zg7jJPo20kM*#%OXz>0ikpD^5rFkt2p-z2Ga=|; z=w|l@YyN%NHZ9dD<(X|?iGtZtNPb0j94qcE*5Fbwb(=qwx`*y6j4by-qo+Ix819Ql ze{+yU?T($lR z%m#~xT9@dP#n9fEiQq=tMfreU=W9u}#X9h%F2~Vm*fO z6G}x?>@Pd>emmn}<82g>@NH?8UvcLX%wiRjmH*^`hFmTm9l~|0OoGV(I1`MzXIGSJ zbEWU|^Ne1oe9P%37^iZk1o_ApQb*H_6rx|wY2fAIg=#AQ9M>MN1iiU~bdL%rSrMt&X96s;3In<$naxSF3PF_Uo$+sXK#1uN}N2 zigAY*aQwBKc7$iXo1?o16kT}(-kedT>Mu|dAqd?mBFh506!G1Ud@MRW?0MMhsDnvg zEGN3G4ApM*!pWY#kZ$L@dS?3=927R$tu9(R4rj}yy8dm>@uqOSjY&OpZ8#mf|6~f= z_|?d=V#CdsQv5z9rC~9Ah+<;0)6;Q!-FCOy^FuE~+N71MjiqfAAnZSCUDp$AQWVe# z{PG7s?$W)%F|2{(b4KQr_2fx8F{1PJFX)}I6EVxD!UUk7HA3)PoN~|-vv!M7ufGCf zhPsF*@yoLfhEkP@LV0)6rV{Tu<5{Ag?vcfI)F(B0j$P`fLiIGpRr{ExyM zvNrnVvbj|1u0-^eGSs3^s}fm4?c<`mU~ZT69+2OS-X*fYP7k%qTZwoZ2gtih{A*Pf z7jIjy)Wz>CE}vjRz4Q6w^a_V5-xAr&9kEv(t_kgLN)}B7aw36ai*dv!Jzn{{C6#;n z@r%fsyYFj(m1;IB!=jK*3^2(?9R^{Gbryf{q#c0+qBVFIHWz|x{n@m0`xkok;P>pb zpJ%u;{hg*jw_)B%uW%fN&zSKg{hgw#Y!jT0j|zim$bv@|sjj0C(aX={*fkNK9d;sQ z#jUW+4u}?>PoLz`er%(pF$ijFESyTCfHe}sX%4tQ=h6(fP(NtmL;J2V0y@%iZ=)#k z2|AoT^^{Hdg^}|@eZ?K8mW$>Vak~;#>ZHgWf4Ln4%3A07Xhbi+ob-C6$k!CIM1ra?Pu#8KkpnHSbMOD8CVX2NqRg4It7p}08~sv zy*?bC-r0{B9BT>93XF(f+k?C5nmlrEKOKHf7FCM8lg;d|u;&?ns?n0sC}7Bz%Br8g zm#BoKSXB;;v6^3>WJuHMP8!iG6u3VzoG0Pc-II;km$zS^uUJOnQ)V3O7Fvm`(BMUi zK)Sz~(sPcX)X#vyH~kw(!qU`01*V&DL{ko{gAkr7K!Y*c)TPwSwJn!^4$U~l$Qp#T zDvnWY7ND-YdpT3_ikUbTwep6QS}ktieV!3yjgqY65Kg?HUu#T0UgI+naZk$xbj5=} zx+Epd6`&ZPunp?~DX%u0W4n`YK5 zmp?c+6`TBu8nwjJ*PXb3d(|3;GH7x=l8PL(Prj1<;5}FER{fzyThREMT$5W>L-Ti3 zGV`7PK$?fHR-5E6cX921)=>xldGVyXW~9`g47yTGzC$`(<@FFx8Lj6cLi_?wM=D}Z|n z6hYYP;aK%6Pp5CgOJE%mH?c@I&$hQhwYo(F{iY8k%vuSADQT%Of+VhpPC`*+-0|u1 z4dCB0owYE~yzb=mTr8S+UL5EX=NFRg7z<5BcM@)fzZ+Fr_UC`-N+>-0YL}#ZVpy4$ zub|$jDi{bRtroxW<@cS`vqGz=W)+lk{8)g)S=pEcFCFeaqj!D(|b}{}oKqa=G?U@6S<_JfRw0+Nrsjc;fF#C#j*juNln|4Y*Oe z{^S9pvC`qhlXE3OnFw2983ai}F%;fC;|=+O0iF=S)#02y>hqZ_Kn>pKkw7lRfeHsJ z5X`Q4tz`2GNLd_wR27zHs$JadHK@F?HWNCQ-*m*K7L(G=+SDg^2ZF* z=+R4#@+Lpy=V(qn&uXkxfCNJW{}r9 zzAv3nA>^?Cnn>NM!+|I(AQacT&l`oGT>>~u9Rrmc-)W)WRFwIMDa&n}E?Xu*d$beO zw9-`m%?ddB6~XD0Y(MsDyT&?n`q_8p(nn+di0;uM=Fs)yu+=WG@AMO*j@kDEwm7KMj)-oN^?==jJBUZ}Z2PWi!>q3+@|133cc{jov4X372cs(_O#xN=8LwqHIv;39<<}G z)yar%XPE|_08tHN*5LGgjqJBg0z$J4#9FrXG8?jWPnR&{5*e@cSEJBUqRVWDepQHR zpw^tFz9`FI7&oMvQxb&{#DFx)kNm^>mG9z+;Ijqbg&`mszGA9)_eejs_Jnn?&+;+| zhd0XfPwEu7g|b>wM7Ht{Yx#nXuRj=k)wHbmb%o+-A)-^2t2C!vUtNVI?p<;XntPqTFdLRnG9u zUObWF)V-KxW~ZugTO3YK;K?VX;xuik`C-F-StxpnPpn+ek*7b}=$wd|L+h>+NPK)0p~#$gVtk z%2LL$2U6}^bO?5U=Th)@$bzl0qes)}OVYb9c!u09siT@!G0=@M0YoK%9$^6|P`+(2 z3|=us2>TF_Rz|qqy&xe4Q;;`27-nX);lm&E;2h_h<%9q)!l_<7Jcx7CH07A<5yshv z4>I>C)`jVJH#3HH87w}>8vWJ`2A(&*;GGLTEZ@TZt2v<7fJ&0*zgO#D5jQ?Yx$!cD3RN!`;u}Gsxld1-o~7PAydY z@llz)M@67R)#bN%Pp{|g_8xJ5(7t~^m$TjMZrnbPw=OAR-#pf;< z9)!;8VI_#Bwx4iiKo3PN2Bt9=HawihE{+6pWf5m@{8IQhNF|;!KdE}0dwp9SWJu8F zuUytY{DC9I?(rp}ILA0i|Fw(qU%MmvRrCH$@x5FJ^cwnAB(=6uflZ2ti-yUqqKXi} z=>eYp$QP9$s{c`0dE()}sGJiPt@~$pw&)Dh=!VkhrVJrL4kiI8+W1sH{0JILfOODF^N$ou9TJ!fpmF#JlBa;>)$w}v-O>zeHhS<&c{l+y#>GwFED2JPKk275-` z%(;CBUEaIdH38bfn``*Ww8{rg3|wp;_z4qM1}J15CiR8(*gEw-^{D;{C2!``U(vfw zf5=U$8E0H^O(kiLY-6-R)eW|$-eYb!2N`TdbYId-q8&uwG2w{so>P<-sWx7$bX|rf z%(;uTy%z4-4c;nP{9LT^i#p*&RVVFDfcF>yz3{CVfjfd*{F^f)9e}*9tI!A7d0op%C#zjXopz*&m|2wC6eG5eRjSLJE(CAVmwZ}W1z)C3e zfs*`ucx(*H$86^OQI|=HS+$KuIW{`BS^O?ku;tndg%V!a0xNNTlGWo)rFA%OrQUmH#VL{{+m-uJGL1a%5f@9-MkoA2&3n9D0-zsL{cJmZ`F^b6 zIg2=3CiP#AgE878vUKHZ@=XQSRT#1X}-1!UNy);ZbUAu zc6!Pr-s<<}X5E-hdBFQ=4dDp=K;mJm>)h`#_PMVGpTP)pEOL#|XASg~KjuRV+}_kF zU*eo4IO*)V=#;a`WhcAyxjC)@r&@Q%cd=ieW7I!9zyD9p&iq?!(mqj)Ofe!gbt{Kl}tBdos8^v zVX0xc zBc>PiTgld7WR6s%7}v)2$&;n?NfRB7_cdo`JI>8O;t|x(WDsO<`qWPr**#;zSH1=u zsz(>{p{@&o1L2b+ZwYj3n^3a`JX5P8mt+0ZkKp=tQRwy36Q2Q~e$j|r>{V>8&Y)HA zQK11!JCmw-gcMB#ku~KVaC<5f&~()M7p=Fb7MHh5!Rk$!Kl~TH-$c>T@>s*))%v1W zD3jkGWa`h}bfLfOFD`0VK9^7Z_U%;teSB)b35NLzj$C>J05$*jFkNWt7dLdYp2)v6 z`)Arr^W7awpuu)|3}ElB3iqjn=GU68&p|-Tz&`wqZ9}0&%1rvJYTZ~@e7;}DO8tPA z;Y!sLwC2GIS@Oi1Dx`>cnj!FOdB&vfCeX&*^}azDTg^@Gfj?c}kGMq^#x;XNUiWcfHzrBv5TC zS1gt8ib|W>^jlB&>tuZgh6<3KVZgYSGN{g_s{i|}2>R7-hl;#6IuWt0FVBGQa6T-D zIW%lR=DVP>%I0Kp!60CoBDVqjq{AHTV3L@lD_{+_N^|Heq|j&9YPJtifB5m?pPW^v zM59&L02@BdG{`6P-|%N22sAak=i_1h#yFV?>Q;oMsJ4$D%X|5ZBp}C!_$M_LK|?Of z!CpDP%I|bk@ebH_H%YAn+Qek*loqQpjoW!H zX9utG`57^FtR|NctT_Kod?=913hgWZ#r`P6&yd=J48xUu!d#O?>?pU|cv%UB5majv zM9IGPDveDS@$$+>+iDNQ1eRr^61HX|t##V-`(^mb^tJOPYc}gvy#|Rf85xpJQTUw{ z!cx~)R!d=nWuS5~`WI^FWRGtq{>h0{onc#{^@J+VB}DDQ?+_GAz5yMRO2-PD4~zb7 zJZ~Y4Zb2x%8w0+Q%K91eUax;RN)GQs!bcd?yN^e8&yjV{(gp?Xa1&LQH5|QWjlxe2 zh!wdM4_DE%-lJ|{s(yyfKS_h*Jk zK4RPwKERS&TNmlM9!-CFedyPo_5Iao0A?R42q}IT%_{ZL^6Y9%h5ObfSA5H%65hr! zoovuPWX(q>8k>*58k}AkSB4t8zS%9Yw|d(bf%EYE?C9I*{Lr7!pjb@`p9ct@b613T zLDfi%=l0|)wP-nX!zJhV%w}xlro~8~uFL9vK;U$oo?!~cmg2>xRJq(oxUzJ+&|&0aj?Tu%Bk1I(E~^U|JgWO{|c$!F*Orx3mD0 zzq&pgdT9Sgg=PRPq%%MI)U!2Zu7Wj;?w@;{F7=14vz4?ZN_VTCihKh+*>|4C&;GgJ z*QIoVh6qc>F0#cw!| zlHuAF)(_RFpgjEB#{E6~gz$2I$4W><@)y`T&Ld_R5X1c3Y%b%Lh_m&L>()DU1rmtd zK4Y`dD7(+`p&NC^e)lNo1Kaq}K;n5-!0u7@%rx=ut)8APlPUAmt`^vEu7}9q7|1Jh zl$x~#5QqD*aMeZ@b{I%Y!r`aLdA^E@gDOGG@E-A1JSvKf541y!-()F-@TmV~Hnuv5|uqa7pMciiiISuz&~y37>8X0y-~Z(W=%} z1yW1ZC_REvkWg`~vdIxKCBwb#FsJ>Te}Afs zCEA}peM#fwiX(|-$uN9*02Bq&-!M{lyk)*T!$F&^lDo%(z$|6eVMBw7HjAui%=>SC zIT+KP&lbX&@{#0`+n#)}N`e)8yiZu{*>ds2OxUtkJ0a*OVC(YQQx0z$pT7;U9WInPCSMfDg(^KAy@sF4+X z_c>l~8N^AvlL2P!2AtZ-V7nuY%D*tAP6tgBVdSejuh7fFW8KkY=_JygM;cm-~2wQw?T(2^ghItPiVd;G_I(}sSsGBcv3@{29E=M(ZpD^# z+t*`>*do~vJlg~=ItdL@dmL<11q>n1O-v%4blcVADfR2(0)t#0E zr>}*?|GLgAppOx1Y_^7B+KtTif@Ej*(&ICi^9>yryC?5}XlN?x1QN4q?7~ZB_$xG_ z3(ermrQg_!@~+(j)%Hb>{XcN1HW|c!htGxt;X>`0pYy+#gE@kWuq{!t&uoz+I*mT= zsm)#zyvc|t6TGz#zzjaEB*|Xe-2Zr`$5iPxB9(n!gcaB^y5s=SHI4W!Zh2Y{JVt{z zDi(S3QvNLfG;J=O{7rcvlZc#0F;x3(?Rux=c9YU^p}IaSDBsHFVNA|JaK#ml?Tg&| zf22l8nO78Ifjxew8jgl-siyun$Q*Cj@uTY0E<`H93H`%gW-_6_Xhef@-ilO& z&cd-9yE;8n=H{j*o+yrma}rs3M{}ttt%6gB*`W~*V1|f$Bx!OnKr9?kUF=h%o;CS2 zi?pLWmdW-qZq`wAlJ@t-*jotIjnGQ{ZWvOCJ__WPt}|G>R14m$!yLO&u`xK~7!ovLd&B;ny*mH~=E~ z7o7VYh)QipPdKMkGc@hwT}U6OFlBNpdTCV3Q*uuFlsf*Ue7H7xMK$^Cj(OP3M4q^_ z^UR@F3wt|r7WYb75c(~AV+|jKJsGV2^A8`;0dDyqJVi5eVMarMKA;ty5nyu-aUtv{ z$yhC-DEdK!tK|^~Kfyz8gY-%8L)tyXf@*~kU>0Gwx^WqsrhM7uzT2ij?~;tk=GdQFq4dT-z%E}*SV{2T8AN}z1Dd8N9TF-oiB_$VOr#S z$Z8gYB@|djWWNeq=f#0f2WsdpRsOUnCuq2X;3p{wxF5Ckerv4VX@1gMhbX59>8BY# z;3ULZ{qJ_v=gdqtSLBuc!R;pBN1sJ9-DUa@!v)#oNQJel_IX#JZf-c6hl5OVxSeQ3 zcrkcpr^faLc;;7Zz+m&XhaWTbhd(OG=~gcMs@1TUzVyxKUqU{jom+3BUM^+nHR+7I zSn`ld4^q^AQvUTPmB?Ocph$shsQDQm@CydFCH{Rik@O4*39Vh}K{I%KQw(Ayr0TPM zO8WM?t7iVeyoP`E@6`I^s46r6`El(`&(2L?+n#*+(blaOKZMw2rUT(ANj{65QgO?y zf$+5&94f{k;62d|9|<>bzUh){8z;|GMX^xVsKKrC)NkTf(Da*}?u93@QLl^!kiAk- zU;mb04vIOV4N2^?!?+MBCR~yj^OJi8fi6eP)N+Wp&h)KSGAV+%&6Ec{Zkgd-Ct#(@ zr?4gXqvmRTf0b8cyPA&l56SljsH5ef2u7hs*^-23Mh|^)#+agVE+nn%9eH}aGJ9IY zM^&RI)j4sh)-#$NS+qvnEYvDB6<}?|xD4hUX@Vx~L7Is(qVep1%@!>npKuAbs59AM zY7Jr7B;$B8FHDn1s+8IkzodBu14TXbc-+%x(q-IqW}%}Kghwj;bYJ=}@`Vz7ktks$ zJbv#hjt%KWpTznDhkCy%kARO&7iGT1>1;|L<^^JmH_+la`)omV4Sl8aSxFq252wu8 z&Uz4Vs8*f$F1LP^YbPazPDDIa%(K3VPN{efVmB|)=IWA2H=&X7Xk!#!4XGH_Xt%!7 z6b5RC5T11jL?hHfi}nPdxzQ$jJ4hi5pn=Q}YZg_!9>S2TccJ5v_&11}_4Knd!{Gw! zmGV8~!z}c|xG>Q03jZ6g`1da_Its#LZlqjq;N?^QEr)U&qk7M7Qo=#?N+6X4tpzP{ z3Nb%2;`npy3ZUrzrvvQ_J9q;2+I7j5>ynQu%JWtY-Yo0fcVz}_x`2EKfr2JIYOhan^PhEkXdfja^iwVf<%T(grtf`MB)TlV#-9~l@C=Xx;`olAvyE`30U$t$xW?FSEXDm`&mF3l< z;H<=M2G;1_ZLzeGorNTD0pD#@t;_Br2A&|5_zzTw2-wNzVzkNrLuJx)vM|DJyH1yS z{LP{%>`3kf7}9m4&&2W#Gr2)cSO>}8d@$>zT?6te3g-a>cwfUSXefj|zlQ3sIX`@%O3{6u^78kqYRBUsbcBidbJXD zfX4;yXS&uFSo_z#TqqO59t@5xs@!Arbgm6i?*!aTdFMR@=uT2kz67+>@pH%rFE zQ@&cT$^8pTZO^g2P9=^Jr}aYAjqy|WzG;RRl<10~#? zKur4MmSXG4owwoTRe5)Aw89d8SXaWpqz0*{mmIQ}+{(+A;?XlddEyKNPiBBA`iJTY z0J|DYN&?!m@(C0ny;fnJ4Sm@yEW*fh*p+~DiMT72DH;O$CE&la@*tk&tApwhJ#KL< z?jNg~@1=Qa*3d#E65nYF^@VwQu+QUlRHN85&=7bA(^ZmrRm`=z};0 z&JKUbf5#s=)OYiUH%(2_y<@?SyXn-Mo9cKgTaKL9dd&;%TuoJUx_?=}V&^jjIy`g} z-gWj}2KZfQS3QXY=PEV2Su-4tFgEVF*1we`j}uMj@|>ay*o_fP%jL3 z{>&tL&sSdNP^M>Dmpg;?XJuq%RbwA3UID$Moy;9wrpyh6%L z%iGk+ND6`;*F*E#ch78k0MvobE9-EWQMbzZ?3niBl$3Ro~f)deCX<)}sB>rmRjLE`3~^NIDA z`%r>cF|614{^g(U1FBa(lyCVGCy4}Wl?MF=stKs!-Ck3mi0_$z%J&UDMUbauQ^J-p zQ0k27D*vbLV{?nJ*(z4Ur)TI|<;gKCSSAE*rChgd9Lv9c-6k6dOS8IRDe~_EjeDTn zT&c5^nvV`gO+A%!ACAcnDR4&}tfXZJZ8Z9DyrIKi5)rW}l`kaU!g~5M7@Re2?`7qg z#ZVk^WuANQQ63op|Dofzh0S&6_QVuKzgEwu0A`1|?Itc;@Q8cOJ4Eht4&IEpP0m|A zpq9v66G{!OTuYtGTZ1P5z~lc*-o1|wS~>GjfD-rMCp_K(FUb9|YJR@d5=YOOJ`S;D! zLEnWojsazbt4kM-y*XN$`aNbT;K}1(8+wionui6`Dkob9;Rs{)lJskZu5C^!PpBaz zw|nF~;)8_LFJnm9=(t|KB0M=)Gnr24(==+cUuq~xrf%}3o|uXe)x`35N?IaoW5v#8 z_)s6nDgZr~2G$5hEw;5)k=-PXwpRtO@F6b{YU8I+MuVM9dD7bKsjH;rsh3!hZqMi~ zl7rsRU0iMGd12j`ev)y7Df5daJv%x<>aRpcv*j5Xx8etjyJ+_|?5Z0EFJ#O&uB z$@|FXz1+Wkso8P1YEp+6P55uXq2H*h4&d?2fjwI@a%z(8KBMgd>1~Hy)aFZp;Lh8v9&fK(BFw(53n2H6H)eFTHzlI)9#r~J+WF}0Dd zRB&Tk(}K_LKZPyAKt)kiCRcLW%hBp?qm_1%{mkHOh_Cylr!Wk8Z4;{Z8ZwdlYjf_k z4GwD+{qpe%xpFm(E922fdGyTr&0D~K7iTI8OAP67B{E$MpqXmdUCslrSS`s?E4RV> zRVAt*%Tt_9URNOYTcPQ< z$JvrBIa;-upV!PpgC6ml>}w7yZre1~SVsSr#h|0(T9JUy@V? z3964oSLT9asMkzW!fxBPo+2WuL(WZC`_mB2=U(8>Yn2gJ@f%MCzQs;VP7HQL2K%3h3;F~!m%q&u%xC>S z9qN474yr7QaNXAqVrC_sPN!*M^%7aC+<7TC6I7eBT_X>QB)hA!t0z509uip3NKVW_ zzd5gj^#4qu0P%=0yq-QsIFc2^yfC!>ifqM9A9FO@6gDpq^#{i6na8E($aaQ_ZQ8g3 zajlrtg8D_y1#=J0!)}!*6B{@h)+(eA&N3WhkR!~97RY!gv^nWPxZazNrKv%4agz#P z5tPUCvqaR$WeQrdgesS0KdyRg5=+EaSQ}n?HLvgZS;e}P=*%c_pH}OkEEXs-T>3We;`M6#cTjUZa2&Pyf(NGl)-z4tDerMrq&L$hiC|Nj6 z@1q(Tskv|#-OXImgGnc}NF5ca1NJ>67%@kRS&iq&Ei#NT>b{lW83}n86lO+noVs5L zjSOyjwV}s_4ITA)J257*x>?7@xJS1J&F$yWkzsKnbB`?j059eifzP#Zb*78Tm3d%8z+K=?E&FHm_Xud z7K%2uhwcBg}B{4ROfP{^LSNX_i_T)u1DpIZ5J zgn=#=#8hr7F)WT@?TB8$nP?Z$P*q~X>M^V#cCa!5Z`@y+p*08v$Rx2(bO368Fdxb&-#7gcc_zrY^Fm9pE-^pW3Qi zOn)`pS@hXcOg}A>3Xr6KXy*v;jkZYTiCGK~29JFJR?5&`UcYv3;W^Rhu~_lm#s*a0 z9PVRO#zokp-O~4#qP#@b9+jNT2QR^U@)~zzM#q4{juTjv_64;2K9Xb95%9qTs{W^>wg-2jh0xO#;HLG)`v}d2bWX!3S#$mB zwo@^J|Dl5@rNaql?ND8o?F0^nAP;yLX9KO8o>|V&i_bs0drfL`W^3Y zp%E2!38YpkNqTl7%b3QxIp2=tA1q*?X57(LuOh7Vw|hLl$XP@VzFnB}6*^h1g%#!Z zM9%5-%(Z19pt2eC#DscxK#ReC)5G&aF!_y1Iwd1|=eE-uy_muFN({jYGZ;MP-vXHy z_iE_GDz|}COJnmev$uyAy17hT{-5W*ZAk_Q;Tw~0WDBepB}KH>N)d>3t!nN)QO!M!oQSeXOi$|r3gW(9w8?i@PmC?GWV{3+)@x*>n?__V ztS@5N0Yq%4H)*DDtj#TODJ~Y`PCo_uSo`Y53){5Kn#q*m@J zaRdAnspPS+l;_lYFy+I~X3@Iu6fb8?`{IgWiP0R2%z$y0lm!{h8Me)$2u*~-al>R1 z3+~4s!gOM(sxdSsq|_%dj%>+E;vs_NVasLKhQW}Q;TEzyclizc%k6B6Z|@yw*2$S1 zT|X1x&*gc{hfc@eO7Nc4{w1WFlKmS<7yMv`ZEe_(5SFRTaG z7nlh!eOU>U?a7Sdtk&(uwCs^u$@7$+PesDeNo#>?7N{&O4S82vPGH`;`zX-j!L{`v z+vQ?}LuYv&h9t7L%8Y6%Gx;_rAEn|RoA;mJ%kxkqE(@N0g>kle& z4s`i`*nT%SK{4v7BMyV4M;`{k-tma=?v+h$LR2@ci&?1t+|H(+`6t5ROP5~@&dQ*G z*2=;o0BNqeACs_eX<@-jzNsus=$!1yvH=~uD;V+#VaVBguQ&`ZZb_7s6^9F*7fsV`*>1pCk0!8xtRAp5aARxcjMgdb+(C@=_ zSMVG%Y);iL&om#_(v!(8{M((_6Z6Q7)fDeo(FyIYcJ3+f4+=%|jz%G6=J3`%~D*+g{Du=_t z%yenkH0|Q}Yt?4?MWo7x@xoNKqmTxXFT(1G9N8Xfr+*#(zmaD(&cRjNIyOE6ThdoH zUDAi9FrSL$ZnqkyIy+l2Lt7(U=Wvq`<~xjs#MRLwW`b#@aQDdeRRG3>_IluK9`F9I zS5tjSN#aaIOvtb#a?NcuhL6c#^JjM9wo`=zhu0^WHw?6 znp)|JDsS_?@Wg5FjR-lg=~Ib@cyFLNB)f-4q_(X?FvL?uLx5qpGuvHFX1AFYS%;ew>`{&N#g8L>$d7_Rw_*vk!} zao^{9Xfb0j{dxwE=oz~_T-Y9lR(hChC3xR(bG3>dwL2Sc2BO7z&@HkFOP(8$p^O)1 z4N{I#;G7ktO0lfgd)9L$#JxQBCy{q9?nw4PZ0s z6nJ6n`S-{u7T*M%`qn&My~&WVkM}YD&UxE*h8;z2o3^Jf{tC~KcV42nOkLdKu(Lf~ zIg5%5)8%o^{637UwLPNH51(aP|NFqWT$o}4@^^eygLrNnJ6#Gn%58^bm#w4m6m?FQ zwX#&3CBPG>UdUG%?DAc&+k#>xA<(-9#)Bl;WR!Z0&ZochEpNt$*5i5?*N%y01J&u- za-_fidmn;?(9awUm*-ZV^pS9T86)Kj1=V>%%l`pgK%&23OpOALsUkvEZerK83CED_ zMs=pk)29mjg|V>eu(zg`SFw!R4won9c6mLd@=#+*ZdZVRNDee6snOhtI2ZR}##EX+ z7|^05Yd>QukJra$8%4a!6Z2M+lmm>Vcr{Hse%yrd#~e+Rzcis#HW>$a3~7!fLHn2p z3QZ#tqe=qp4%fJd=4U2iA~lS+!-S^Z-9U0GjcKO1xqCClghZQ8QidCo_X zVMOgFB*6$5$$iae>Z43#0%mwxIK)65Y%D3Fx$DD!-YAD=sR^B*MLA7K0$kii8Iwf4 zV$ngyH1z>5qiqu4^?^u8V}p!(GA>W7Arf?R$Q^F1ZmKH~@`f19{f)^~Yf)@MBIArB zj7WU7v0wf66d_!lAlwP3%}-aB4^z><108U|Ls=OEP`2Asj+U zJtpZe8TNC8Htbd{sv!(QDc!5ft?Z0){cG5NX%KO$Kp4Wxbk)-3S!AI$-8cG+B_T)m z4HhW6>s&#uYYn5CEp&U;X!0V%5+jrmpO<6lA}i%c$$gkhEJ$l=+RyrB^5US=h7sw$7mEiw}O z>f2@cgrFJy@&rILA> z6{Q+SU1>q+bA@=QxWJ+&qd|;n;V!k38VrW2UDA~+gn!*GDe z_y@Gi;N<}e0|Hul1Y^;82m}M1r$6kqXhU_wl>05zGifZ{qy4iLz1JVscn)WOsTHZz zm$-E)=WM2+6$+;ZRTg0oc1=xJg$u1|rR`m0MXAP5S6GBVI1+B)^0&Z(GUDa#`eF-+ zB2&c1ORNZ0M*=sJnSqIf+>f}}!p3MlE=y4D+i9VlNm=Yg7PJjPFJrXVDoSazD)22&>aZ+W3FmV>gY9w zvm0yzQoF;Niz8)i9@Oaxk=yei4uyk$Z^T_6lv(-J7Cd1$&!!qqBCyqAcU{bd|4W~3 z(?y+~!;HqSIu>83jtBd(0!LM zxmD?rx zdFpjZ^xxN+SM>XW!9Xp47Mh71X%}CdSEQxcL>sc@QP%tuC-Ai5>v@E~|JdVs#>=pg z%)sjRy2HV0pGzix9?k<FM7axjOUD3N^2lm*w?T64 zi~MqpSj1^$$wNzI;t5>;8P1kxKt)<^7_Q6DYnkdZT!+w!R+Z76`AU|uhV*%qwMbpM zq#;K>z=T|3j!uhz?iqGnh**HXD?bmSUY}OWXg-=>XNNf?B9JE!zmX>t=G{>bxrWIY6JXs)lNL&gW@MIQNJrPC6-P`gMu)BPz4|G06ytM&Yi!$#Q zv3Mp|3Je#26m<$R02P|Hku0C6m3Z^PFb&GWTFh1Nt%*g0F|A%k`-aQPY!!~>bZnl8 z;xq3P_2mmzPmU>03!wXGOe-|+lPET=mi_ZYYQ;grDZeZS6(1U^I4vSb3{{+Ig@#k@ z*$O2iGKd;(hsw!^hAKoYik~u6G^P&?4(iVMjRm5iB&+Yz$NRD60n^DFh3 z<*ZTVg5jcXwnhmV)TlTuDkecj7_qvcjId~evbiu)iOYOWs}C1N8?l*pKKrogeY0p_ zvaLjaa7dl`1f4q=@OW#neGSOQ!5b~Wn95>Tnv>PIG=DG!EqZTW)RCx5%-Lu`FT;zE%psj`qPfaZ3k`P>DL8`f;^>E zXx?k+$FI5TqpoV7mKhP6cjo#CkOS8qo&vQP9QNV$1tZZ|SW|;9!xevOX#4O+v`EAo z40vnA0)o!Ghpr^xX(ef2Hs%*3zF@6?H-PQ5*Y9VvNL_xJ9Sr!U> z+@OWgPvWr9=hb{Qs>vq$Pc2keg9(6_Xs`-Rkfu5I}^#c9&D%e3$W8m`Lz*n`-(p3t#awQ;7UAB&GV?*HH>AlJOW!14Zp|crkotlyF7a2G zvtWfKL#UU`r^c8v7EEsdUTy9#(#QP48a3*=&z#)niey&;=FKRPlZvd`c9D735|^qv zsj%K-KD^9g;JS8``Ancsi$t>P91BMjeg6u_yne%x61ni9d2NYwR9-mlzOdcydPi^{L?wH%<^M)e9^nR|(%%fP(qGkk^=D~tG8jenD*=ru6 zq(xYimd-r1^qaZ)-dYcCA8?~#viNq1wVn)1h>QNE`SR3gK2ft^AS|M0VZJ;x!l&3; zWX(bYPub0PQGVnqPcF75?^{d$&pJnR4aj%a)b#;hwGT(mLB92W;fH)#B2l+;d$F}2 ztR@n5E8mw`@l4UMTO;SJzBVu8e%G`ZjhwjZuo%Fmsk6pe=5x}>gNL-#5j2YqnqP}V zT(w#(s!hX{R9=`xo9?!oPgw`FT9+)GVrSTVFc8q9GGKChxUF1oZbyb8G=+=#-Bt_@ zGSO$AfdOA_IE0}>;F&k4fnXHlTQ@mrK5PqwWmw1|ZVm~~@vFhdC+0RIsZVQ&)p=`q zU#)qsL6NKK!h8h?sY5ady4@UOBn<~;LzDUH7m}s}$$Z6s3rSVm|FJa?*yEzSGhZ&k z^5KedFY7@Iw?bOj6%9(R;ob=Ink>De<2rM>>CXIz=3XIPEL~5SM-9>9Bs4)_9==4I z=iURNrL}t!Y(BINX@Zr7{}NRe-UlNQZ?y!Kg+ofB`Lc8<9CSy$Q4x8MxshQl% z>wC>fBd(f%nsChH;w{*pnY$Iy+_*MJXl}5OtNFZv`e`vO%z^!_6?p_FDg|8gCQ)^g zKQNDIoHCVpP%`+x7UZhlvLN%;@N_K6+`D)0Uh_erY)$b7JiK-7a|`i7_Y}+#l75o~ zW!L1e_Zm^)H`-jr22AM?%^O>KacE_XED{+JgI5upWeje+~@ zc`@K3QN8T^GcWd{!55TWWENdGAy;MAd~#2S!>*{N!`r+rjMP_8j=6mt0OlJBh@^eLhm3ncI2aqMlJrr+L>TGCh)x{%b6vpGkQ? zmkjiO&0)Y5wV11Bav&ONkj~Pd&2XxIfHOH_oUv_0{UXLkWpDVo~)?zg} zvu^W&d1)lVm^Z)~^{F|gOpH@%6kDI=Lmk$*6znl3js|nw(zeK`dZ^}o)<$ksj~~wj zhWz6v$XP0*dAsWI6ZyQqQ43H#{utI_G)GxI{&>-06wKA*Pf%tURqoY_pwOV~R8Kg6 zTC^BVdsM4qV@BXtPdr}9Flr2{k5;}I4X>*O4Wj~3eXN*iRI;j%JB9+vs1#J6pd=Wz zLe*}UyH3jyMlald%@#wuYqW-}>;AraW`*H}8P(oEjTX+KVb8XQ-!;r3Z@}Y^X6bmo zYt2=LaTW5!cumZx`67yHF04i!G@_AzxkJNJf|`8wgu1CUzIr(^VHiOuN%oh#WU4MK z=WKcm;{-)TgMQgqWJyDsy6HIg1x*`hrtq{(4`O?|U(SwtDj6gdhz-*PuRr)XKwSU^;&p( zO!Ig&choBz{>(YTT8%fXxuY?EkIz-hRf^HroN?68JeXA)o>;`EX(1feQCynmWdv^) ziT1(U+;Z#%#ll)`%o}KMg}ttT>SyM|7O08UdF9BBxfiUaJ`f8AV(t)EmU(E1OsS5! z>ooV2NWGsH1ALlHJLjPehm~5)6V^^8=*+{344hUIiut?^$mH_N=*K*NT#=(jYlu|` z>jO2k35|3aj*dC^k*m%XiD5i)w3vl4Py3pg@0Bag&8iQtG%Tj3P39)kOwMF?P$c!5 zW#D8%-7H`y%l<&KntgIDSIA}nO_thoqp3kY7SwG@Bp0F?c1A;<*kpf5Lf){ef>d(F zj%hnSS&akDGbJK88E#L1CWR3}s@F94B7&7^GdMXSV43zCcrTurHXlz#nUk0=#-MBI zH9fPe^Z8;y51(7??CiYIq_g0Y&XXxnv~gdJ7O6~|Dfhdkc>@s{`QaDJavsJ+U;HwL zGgq$pBMghF%YMy2HK^`&H7jUzvLJtF)FFMdeyTsnd28BH@(1~UVh+=S>6h#T2vP&lT5+{m!<+Pzm^U^Glb>fhG{ttMYQ^wV5~Zt?z|X|t3w_| zo$gGVg`Y_F)CYKJ$gFV`+9^n!k#5$?2?y?@@NlN*VGB}wrEHtkraIx?nrX2Hm#?0C zI%butjw!=n=0aG1wvU<#RbwjCT2^Mi&2&YgTy)JcH&Sms=!&{(Gvh6@);}uS7tE^J zXfU6l2!5)C(KnSfje7~E<%|bpW?~p6GsmW>p|@!>lpaOCV-}Xvq=XvRGT|v+IRIst zyAhtMGW05%Yf|Hpmo8soI6X!j)c4GMwBg$wPp>qrdg~*9eZCD~Sh(sVu{tl;nuhg3 zeI!;N;ZQUT*ZN4T!5dDmL>Uz!w<{2VU03@3F2v)$cXkA!~)CHxBV7OfeS@0B_ zA8$#X7>l_4A)oZjjl9ZYsn)__9Bl=|QT6E=qk24x&+W!~|9HImmRkS(43zrOsFljn z;Hklj7-Qal2rqaVmZmHwoG{h`c-V!kG6On|TGlm|Mr9;ROE93tB6UITFdLQ7ERIlE zi`4sZ$&!18h7DmBSG2|*bJa%$fV}b(S^Ta*y(~2uZaqRhn#V%}a)QcipOPZ>>K0lK zH0T;A+Vu4sxQ1hfsum6h!?BPn62XyWpRl)PoazdH2k>Z0Hltzpk<1H+W9r&cvrt63 zYFw}hOXX-~4pOU5wrLKdWVh6&ruj;Q;i!2vrF=p{TohMxGS()9qrO;p8qHUE)Q%_% z$XQExn#wT>9BJ1i9kqd=`(E$Z1F;vSTJFDPS z#M}|FLR(SuHAz-MOw^vB973@IoTz<4cey&sc1>`pToP4nku zipWG%URa?&>C;L^>y7=?sNgqRI_$@w1$m->VzgNs6Xu{Jo4hsSj*iL7pV1m;KP}#x z@e^X>csbB$MKTxDak24y50+6UGzZg!ak25oQ^79G-=_)3$0l%S<{fNm(ZQ(K+uyW6 zR2{1_+Bn#cC#*?F->BQ3i-R38T2$@N5#_B*MvFN87$OogM*Z~u3`&JnLzFI<1E}wR zi3gW~(#ONBS|Q?yMC)aaE-#~GByHI(A=v}4KCEHG5|y2DmhDh9%wtun3N#v?hF?*u ziv@zQsb1MuXXR*`DN+{JhRl)7g+2H13j#cRuPG6Rbmi@3a zS3e&Or^i(|_h)sx0=yz(85aF{6+ni6b3Dds6+)IhZ`3+~Sd31i4ROJG&UCX5fH%+} zXAG#Owdz87BSHDnnpv(+9)H5b6G)y})ZpuBmCEW(|}-{iPwZ zBH@qnvZ7fj4PZ^d!%Z{e)E9QmG6Rj5wPp3uJJXR4(ogfn8r;cixcL+H7p zJSHI?vj(#dk6L3gbtW3l?wXs~6!G8$Hg;Lr7PD>-(q{VEW|kb@$q9|Ekt` zS$jYHvMReOD=RB2Giz*YAF9R|n^x5`^0v`Z9fvzoZ#%Usj>BCsm+?mpLCT+$s~3&G z9vU(cJ*QWoS2fESx@1>izrqkUtt~HtpZr`G<1Zzc*l3wf^cW%a&X?zZgKc`c7bnnE95{JO-vNS?@XZ5(W%Qkom3 z{dSGafU2HU=voK}U6tjq`!hn(9s~{r{E3Sa~znaZdky8W$5~@a{WMb3<$n??{ZBRMhb{ zJy4{7YsJBWo|UEb=&${1c2I_1L~g9QK2R=U1eQA&q4=!DOw#p#aV+P6_iKUnQ7BO2 zW9)t?N`2)6MJLY4(Z#eclt>t%uDEQ(U_ePGGtziFITc{+qL7cG90*o}*lVJ|@tSs} zx{+DM9)lrV78fQIZJ`dFzlfyM47-!pwhy0t1&V3iPI^TTRpQp!X}EjR>YJbcp7+CM zndXG#cV7EmXs9%Qw}cG;wx*Tw#S574|43fXSxyV7IPo6F;d)5Fl4%UF<#(%jSY-R7Mv!`QN%xrZ2q$!+G(73q^^lv5p>Q#9JtsK=Jr?K8Fb_?oAp;qq zSXnH&HfcHO>-o8l^UZ1h8+^dldK%fOAkTm%)bEqc}6 zk{gNx7Wu2N;3?Q|iGZ>203gtwD@u;ngX%?SJqX+x3bvuf=hsX=3%}6I^%NW~DGR_{ z;vfrucIGn%+US%EFo}-BeT`OhG&~cKXNLPhW_VRx9nJ0+fAT%>mEg*3rtJ~>13&*# z0==hK8$;Pu!T8H&EO&H>GIJs`@+(z{F!}|NpDPm9ZQ*z9A7CdIUBUHZQ#Y{=2%1|& zPx`6pHSYl_>PWmbeM@Ez6}{k*&k?Zf)jj!tU9^swh$RyvT@-seB_0Z@9l^wCGro6t2ty?gEPTC6s`+{ zRoCLXzx10gA;+2G`PEmEmbd58&di)Vdk&g{-&vNP%cH#+!`9f&j9QHPU1!j6r4{bs zg)`7AulVzM_+_CHH7};IR55rg9R1OM(g4iRd(u=*SA@s!o9o6?$!pZK$mA{TOz|-h?UoNukm`A*WQlnJh7XSiNOe z*lGe2-$He=_z4Og--QNlBc0}*&Qikr$3h5C2vtWel8SFsj9psD?eATds&IBt$lVlGZrPC_2J+mi&>-NLN$g> zD~C~ZAgV^X5@9Bxz>V|{Aw%GIjG=C{DjFQaF|@rf^Ht~z=>}Nl7cQ-TF;J~E<_20G zW0?AjK6gc2jp1@9b~CzhHRaB7SBM?MmisL}|Ns6uWR{wm?h(6U*u|S}G-9T1_64Qu zEO|GdfBTpI54s|}tscrRf5&rZT1^+?OW=^zEQ~MH(e;`VqWW${1_a6v`$VLJZ(StfyCDr^fpNmR*yuZbwq7Cs+KrE(Vs@fH}+FJ z>J1pWb2nYsv_*MQ>)kjk(MdoJviL%xzvX@V1nbMA_NkVxxBcXohu2?Ajd29`cb>h;J7VxF8k0K%b1+m?`LLUjIu%u=wG29y<7JyXh#^ zOb&C2mZ)qlJt)qN!57+1N1pDOBaZG~38l|pAXkJyROcWcr0D|nC3)n(pO|=hs+<`| zQ3|GGOo%Cm@BT!8LeliY8@*#rZDn5zkDz;ZhgN-$C@dmE_Y#Tujd-zmEuMmcAxy_F zfN#YM^q&#~cJxqq5*Nz*PiXSNI}*U7XT%d?wt74K@8A!;I^(@?)0eiQSx$fwxca7>mCfbbdioV<#A1g1x{WiAVySK4_%)(J!0p*4o$}IVfj1yB5 z>M90_Sw{D7X&k*2MmdYjA;BS+)a-5&*El+cF-SMuWJB@zlIG6#vD|qZ;Acgnn7}I1V1>w>yY$iYY(#^f6TMXsc z(kmh?49PElXJmXuBFQBqV<8c^5@`ZMV@q};arZC7{@so8mtil_4xjs}Ux5$$7(ayl zlVQ#eg`GV)nRym7XpbM4s#H9h|lldR!< zC^rP&6kdaG;aXmy+g9tr=NPA^d#hFmoWWJgG1C}-3h)Z6JV1pOq2w)$g}~u~X#x9P zWyJKjhjywpn7y48Kthg87FDbyBHiWVO(s`C(*&XHz)&7ayyszdvcn!O8#R4$lCq@- zK6|5)2H%nyo^5H1)_C1Vp-VsqWm~yDEehrtDuxI)M#lQ5q0O-%2WKTR07ZH&*fTF4 z7lJW=R8vQh@%k7aR_8N6Nt?<3?i^LAJ!5+#$&To1cz@<_|H ze=0jF&Zvasl+~6VU|qg2xAknDS4H*lJP%i8>s=f5KJo$2pQ!j!3s^uuNE8;q$9VR? zky~W$s`Qg+A$T-iny$qy@>lb%*1M*UPs2aR!~1a>wA$1CJep=l=KPy-;22nv+ibRf zdQb7^vJKMh^1QIVISU^P6;BisGY>BnOpT!^Uz=-pRLz6}X69DMiQnO1<@Cv{bdHNS zK-WbShe_`NP&UsDytJZN;0aV)>@SP!;53g0#kxoEVBFJ_(fVvZm-{eM6fqY3>oQ|I z?5=~UhALEbJBINpbl#LAZjT=241k4ySkeZ0+|S@ndhBgXGyjvbda4UQQZCj-sO)7w z8>uilZ63Vc^$Bf%HmgT6_4DU^oL@`fFXSke_u-$+OqEl`!9h1v&6gs+`8&S#F)1sj z@ph@`CXZExg)5*ValOk)0v%>aRx86;-t{xSZpX14ZFaj z4fToa7mAJ3M!(LT+-NJl(I_E*c>ObTzU+eVDqz8?Q3T!dYvf`Sp?Jd;d}S0pmHWhK z=j2YxUhN!|>Nj^E4UC*#I#TUFo1MCqfdOv~;($d117(lSz)LkS;N7*hNVP3lp?nP< z&M<^KPd$+GL0@=JVmQMP9z1dPP9e^W51j)Q>-o3OfJ&A41HOM8wSTRDS@hlCp5-*i zyE{=@Va6?JGPy^8zeFC@&e zFw9Q249beN_Q4#BZY}|mmZSJ7&nM20#NAkE?9Tgh-#m78p)t14=C~ZYZmYpxmO7*{gf2QHORQ2|JMw;tJ z6!3RsaJyK7DPc;4A?&;y$bLA}T(eRBzB30j#?Z$5l)UBkhiOGb=po)zCOlkWh)^BR zhZ%4!o5fFjCM`^VI+%y_7SIfPDIN6RUP-IqW{_BlAIn$RbgaNKATyT zbPAyhQr=B|H?y0xZ6y-)dPXE$TNdrS`6V1a#HqE?C@gs?boL&)7+@pU7d=&ic*V zhwl~m2N_^rdWl*1Vh*Uj@?Xd-^r4U?_RdUue1>Jod@=LQ!*15>e~_M^VHjq?OfTJG z7^p;;4Ek^87#L_mnb*Y8JPh1weDe15xkjBSrcuropU91svvm`9w{Opah1EaK;i7&` zpDl)I)~#uO;L}b2w44?WA55!5Ldsrw`2IXn4mO7$Oe0-1+dqnfP*{6#DG(#qe(%c+ zkuOCZzmQS1J{AUlDKqK5FJy8OPW3Q^vC=#7S2BxjG*a67S3i|r7-KBk@TtrfkFIE1 z4c$n1+=)j=rkoy6)8~cJ%kksQjAe9L^t6O{p(U<=Gs6%r%Ti!Jks0uKM0zf*4z8k2 z_(eF5`w(CHgr>tj#QQ$z+1&>%UJJJmLaY;Zpee8q7e=0NNbnphAi@dSQ@{z2ICL59 zL#K)oDu8_$F2!JkC#ijKnhpaOGC^co|19$K?1R?=webFWAN0fk*VsPzYmrFk_}a%@ z9v+&1hge5m6`SkP=(G8uH+oWh6VAz1U5qDr%>VWeK91Ga)p%MK>z98WO5xRb@1*@C z{K?0Ii%NuN@T*Z&(*F;pu)cdsI?lU4_UZ421oU8N8S0iCLbjwA{$0`Qdv<677oyU( zZ83PWB0`(^Le%u$xN${-7W6`LVa&iKl~`hb(DX0(-iBRM8CvRkg^pI&LNiQ#xeGh1 z1ZW{G1XJ&Kg?<=) z5k^Y4nEwtC658oO2w7TXaVip-taNa=*Y)C{~1j zcZIv)z%7Bp``?JS)3~)1tG;6C#}CMB7O5zXXH9W{eqW{-N7u*-#`4%pty`YKgm~yk zlcOybKuWbK^TI;KE#tKvTOJ%0XzS@d7F_VAl~IK;@dEC}q`<1Bk9!@LJLXSM=#)N~ zr9c(B-KU;eq&Y%|gS10cYpv3hBDsx-6Z@I1p|o;Wj2Ck12V& z*;8*W`QsKoQwr!NwQVWDrCCv<(8b&MU8W+n4yDgotH#JezMbGwUdb^*1{V5XlEx4r%dU8T82^~ix|h4WkHHrFu%!JvhzTsVOpvO`V4p)?Vidd z#8C3|$TC*n97qd?-LEx$YM6Sfmu~+wVgB^C-%ttC?AY{nQ7x$k?HpZ7(Nn2KM~S4| zZAw}R6y{wWRyUympP_6Iam%>&%}hYHlVVfMKFzhw=JcOKa+2ICwIfk~-jsOII(W1f zF5AT+rHF4*XkjAxhHptsbtG)uysITui{j%Bm>eF(E*UK;!Bp@fPnp4_5@h<73pXjD z(GEtnFOr(s89&(G8{UG%;t6w>c{M( z>GwwOwV@`Dt=pTe!y%3oq%(>>9(dqTNBGn`<88aw0;W*SG?l5Q!7Q$iAN|nh@JY^d z;gfJ-u0v&f>6&4*ZgEe*X}Cd0C#<@;dOX6Wiq#z#Iyh>p4tXDcrXpor)Qu0uVn$Jd zqgWttG&9Xux^oXy-&fWZoc2{a94gFp$CeRfJ$eok3-K}*G%{`$5pE=;Ykms=Us|YKv>4kT+yd=afxQvH73=?gID*hq_kXPuXy$` zsrHIzAChiMIhZ`o@EXqy$7PHK{iN5X-xsYK%y{~_#6nS3Yw~zU`Q5L-_6&4%2_;o~ zT!{p43A`hJ@d|nM^@q8Tw>O>94p;pG^4D`=ihiwj*1`j*c&35 zoo3AO3vYbi!wko4@|YW6&BX70{b6prZYAa$j>XV%Yt*j#bW9iyQ6yS zMY|1tSKNI{cISjTQ0ZP%J#|M+l!X3Ks@aizn=SpgWKa-!gd3W{1TS^3 zUQD*=_0cm_tAm^4Q)Y0NVHaOddL`ND5%k;A&}DvK#=zOfibtBSMP+Mv1~+8uipED1 zQ&5^BWuUUBM{%g~#tJ7f_$ZUI4puB+ES@xf4vVW6`n3dCPqai=7p7PmxZSO@!XTDr z#?cQeNj%O334Z4qt%VB}lpxQz)1{=XHiBVwy2XmiavqewdV9eMxzL zVr&8$Y^p3X{(Qr?IXaZkH93WebMUjia4+KQ71 zC0BFjQ}1tz0&Lv%6~~oPEqoRlI0b}%Ji2;A>WY!B=qs&Ag+yytH8xbP*&7l@?)-a^ zDRYbsg+>_v^E2_gYITf2U%2XHXE(<*NPt%~OQnf_b_Q2tbkCgg2?VCAdmf|jIkWZ0 z_<*e$w?_29!({7p7`}IRqc4!Wl*JaMo&4B{%)ToRuPSG}oUGrSMQU>12Ih495S7F-&XV=4T;Y!|Z>{;NE6k-{Iy zf``VktCeNtUuNO6(Egh&^oG!WFiWr!T6nCU$M34voRsI2?T)TtJ+;W|`;&OOd)?9t zJ8q%)Fr;WGhU)58e;Euo*jazu^ArF3(c57+!!7agKl_Wn@;Wl)chlB?jP2&=8NfgM zcklTKx)N(Pe%I6z5`v7CrgXiSe=t0vsf$pDs;Fwp7!sob?cItsgEJJrFJN>A6!6Y= zX1(4ar_4rI^u^YUrW=Tcr8~oTR~FM~-)b9)GJ?k`X}`CXRt!NVR>TdCyrRxdx?95d z1tGA**mTXjaU+9Cz{in)1u!l~z@8G~t3uyWLl&fBIkGVfuGtr*I2mA!j!@80TX$aT z6rNp-O$>`e=PGKrD?u)@Q_#$b(o*h z!BKJ4;8CJ>ipQ3=r4Un0lLOxsbG7^AXY;JjgAP?LvB}W&#HXgHF9s1NtYc~hh1wNc zv6->*szYyME^1PSdRsU2#0?8a@@smlX_@Er9m>MFMz_nvVk16-et5EXdhU9OFvGVC zH17IhoqSSiI0s9AubT5OgVR_ydd(fobnk4}cop~5l)I_#n_kvsa*TXisNPC`&Zud< zsXoU^wi>L8Yr+I`RqEE8`~+QEsn+(r8R=}wBYa2-p$lbOtm8}G1CD2FkB9gPPF@+=8voDCt!M<}b7 zp!rm*hVqsQ?~6c&B=`O35%h;G=(vyK(VZKPWd#n0!xxc>xk4|tBML)~;LVz66BJSV1?v(L&E&xuJ^>^yXT@+iwj8CGn-jg!7GmwpyOXJwzw z;QU1eLC?s4J!|^2QqN}C5`u^~_x>aw=a4W%L`8D^vtH61@SC~h9p-EqIdmj+Y9AUO zb4DmIA8MU`wt}JnJc2eY^UTi-<~r*SYtw4tv^41aii(U!!i326K2RTI6K;)RU_|# z8<7ax7&8u11m@SF5NVSXmCGOWyE$YP%VVG--?7Qck9N?l3T1~xtl3KMaB`GQ)0b)u zeJ;nR@zNwJ?K(F};oEVsy$dR4Wq_=7dQzLm3f1(D;H`#&ppyF$x3j}MQn}A+O1-?x zaY{gcEg^>9)rkE!TAd5k*O+lz?Hj5Y9VIPsmi?ANflwXJ?dg}GX9gm$y{pBxem~cD zCkx|++%QrBEuQR`^2kvO$2^}KpH8`ij~K@9nUi}^b$|#Q8o4a~?c8_A%1kJDFgEB4 ziF&}Mip~wWqvCPr8#5Zo`MoSk^kzkD)W@QKY0u_HJ&rkYdBzrX#L<%r5jN>kK=;Qh zT-&G{?nTVw{(iW7_bqqVsu0V%f_HY{WG$9DtPmIUtUI6~9KplIIOjWK8P%4D3)0_> z)e_lwfEDk?UFDc*l>5MZkQ24GT6QBja)jhaP~%Kr8d-+$!HU>;=uEdU&hJ#WpmINd zf}h4+%@t#ljg)Uiwh<*R${MYg1x>!04^B>L5wVR%?pAIcgeuK4{1UzOMZct2di7y{=H&52mY7+KEk36yFKf}glhTyb@?sI7_r7MfM|OMh zB7-l}37Bp_T`1a^WsMIl#PSLq8c&XBk;AV~@;+NK=t&M?gEbHlU}6raPi_(}3?N3fP;~JGiLkAVc@}$u-0i@inPAzN%ffwmi@yk4MR}p`uH*OY8iuY$PSiEFfkUUWf$zo!vSj1DVv9F)es!OXoj{?} zu+xv>Q#Kj8EZKO)6Xe(y#%IHoRL2KA@xHhMtBQjD<281+YVk>bX4P^WPVAqhkRwAT z3y%ZdKQfg_EgpCB>vH*J%I=nRGTu@FB#DI8hS*i}L>3Wka-Vw-<9 zL3v~nvp$=unZ%1`X_8O++%Dewmv+y!$`^_=Z1M$sjzzwp&#=d-#nG0UDS}V(Y#2sE z9EM`eup=`Z@4eiADoONggku|@v9l`yyR`&&;{=!xS!c?7&eB(~$5wjMr}&sqz+CBq~I<8(9TmGqbK4t&EF z#OG|zXy+F^xyi(Q+%)f?Q^MO@;%qW%Aa#_NTSRfAqIdw-;q6x1FW!dsB{j$&Nng zqU?BC(Y{@5w1_oqo2r$C!j-#l?}22f^&0w5Cw6 z_~Gz@GdQn*OkGTEdPi9`-W0JS%i-|JGn#L$?YHy^EJud}%!OX{F&hhqMDWZS->4CZ zV=Qi(V+CFRbwBT$f`T3h$@R(9PA(QURGvKTJ~=L$PVv zW^D9-x(#_gFJ`=dB5ay1m2Nq+1OLQnH+Xy_TmFeqHFe#XurqBNADzq$L0J%;78okj z^@q0DqfhE$U=#Et9Kkgrx)DifdHr{lixRgHcDQ+HoXQOt3*tEk#S(sEkP?F@RW6GcQE3$O=yyI)1PE@RZjb zGg*<*sraV%W6_UIly-D(IE9DC%JziLI5P=X4vHNhuZ^Pl#?%|{sS=y64gT(o?6fg| z{xY*1=7sw8>6s~*iuJKP#MpLbj z=XQ;zGDO_;*QQ5=S>GGiXz3SpJFRU~DKc&r9olEyTa8{?pyS?*yhVqhYvh?`Z!bjo zAa|)Ey_th*MRWx}~2p&REAZ9Ku08(O${DB{rR--g+C#-TeF%s&!9)a-`zK zJPyv%lSfBACI;h()|sa#K8k(N8nNrQGgqMTDp9^*rq+q$WxU<^!)KwUZ`x(#}h5uvx54hNH9 zAmz1ew=kph7D84sad^Af{o1G1uwr^|swqN`53-3Fd zl-wPKMz8$#%da4-@T5znlX9}3e&Od{`6{%5++@~Y20!`1Xt?v|{^;%SF~lR&CwF3Nlc%9W0BiYcQF)yWa>+k%Aqt_JA|@z zp_YT;!}sFW2xZNkq>c?$Bqlwl@7$FFtcb{KRrue^v`iAP1M?`f+X% znQ1d}ZWHZ0GqN{&!HuTk2uVSH7fOJ9f=n@c-- z6-Va^<`uc`kKt@De={CkDKLIjZZ)|`R@)acg}6OW?j5=ekO&WCG%$ARk0${+z8QSk zwCyahNarYWFe@oQUe&G`mg5ATD*|1q+~dWks6Y>y4sFbANjzRay^~ahJNLI@JJAcX zc*zVAeX*eND9q??Mjwz%aN%Ud2=d1*;8n}Wmoz%f>5u2>d#~C@HK=A}k!;>7`_u(o9&BLCsrI!iHM4oU_1ilp8K^b5*ue=CNKu zQeJ69!tY`hfB5Q=J-5ujUqc(v0v2{xG$>D9Xl|x#ep9jsL7#MiibF^j-8%67iDdh? zgh!$R6`kp}W^`uT*nUn3fAQ7V;B!Qs>1fBZcB97ocfI->De$u2z4z7E;6p{75#ZA7 zccz-HD+;l}>Fp`jH;7aOP=t z6_5j30y^P|?UX<~iO3T{1ihCBq{)G_bOAM)t)`ZqoNh*rbfVlqD$dntTrK?K6`j;P zqgvnUQWv)h9EMZUy>aX(P0s~Y#G*R8E;LoAe`TLiM*M>BZ9$emx^oJ<|kS7Fsa^I!mcdV;#4KSC!uetlg9%y}R07Ay%@_?3oK#Qm zfh#WcEuGc9;gD>rx2wCqL-KR16{8Xhf6+D!#z;^>ivPjcD+w9-Q|O@Jx4~&)ad?YP zAb+hxkrIGKOyGL;+c3K8UE$;$ni^OVkeET699ja_*4bVJFL7M=+weByY-tA>mP9Gf z&WEC$>&TO&U|vJvuX|Y^c+LXdbBiqF(Fq&tbf6C@d7>MfxzB_!-3)cd(h?fle}pOQ zQFu&^Vz@A_XKfv^iFVuKZP)YOo2azf(Vc|^?Qp9JwGg^(89IFjJC#{PZEj0)WpI;+ z!;icGUCEv!f(4iAdu>W2R>L_q1cQ!j2fR*0zbJOR2HC^e+0oE-t$a($Kq7ohswRO; zNN<0J5yH(K8y^Y5=q*KcMJ5j@e>|=8VX(frDzti7QZU!9u+(mOmc8RCe^B{LjLeZS zl(M#{y=B!Tlz{6f4@l+vmktMb^X1n*z4S!;rj3EjNyW0NL7&o7Hx0BzbzI_d+AJTQ zR=TrROQ>7I?3^V5;^|4OnyDwXJ6|N>8onJrSGMup;`9LczrpBQv#$sU;I`&6; zvd~tBf;E@Z;HTew4OUtu5_-GQl;vRQA^Fk8JT*F3>e|&{V6qZ9K<$pl^xx2lcEIt}TPtYI@o^ik{Ru;2d#3C;te9S>fP9R3ARR|88gAiXobKMZlYSD>- zm0L@_8CT`Fa)a5|trhV_7f|s7Xbb4=W>R6y!G~2D)ttb%fA|C^GOi;Ji$@FXuQT#0 zWHY=XmZn{b;lvtzC=h0*FdQPx6OZ)vjP2yyf?|oOFh;|rYahWa4K zHuv)caImdOf4XA9LmOcs@HhKFfdOlhv->D**R4HVP`K+-uvCC8KC1|K;ku+usirg% z5WD6EDjuTYcw|ZlcQS1$ZWiz;;1oCH;Jz%}E&QPKH}Ufrlglr&>$Mk4LW-N6DJrvi zvOI-tyuI_({kPl;lRO1Gi&|!U6Oe)kBT8gy>`-Vr?2x)iah zP1}?OPfcn7*We{QAjOSPkn}wHGOCj<*uNu741pE=S28f!;g z(L&%)e}VhX34G}S9*7pAx0*|R+Ap;vHUV1!Dw=3%?b_Inqp{rU!PDwqm3zIf9bi3MK|?@-UNE2q^cB~`bxs~#imtg zN?^SSQ&Wm9n8exgLS&T`Jac;#z9O-~H;Z_{#t9@BKf{zAaXte;-UPdfTl zb#+a3b$4}j^^gC;oFd9;df@wXa4fM)TIRBI;eD&2$bQwy6~L|$L!*n7-GkHH(tWoGndTKe-szM z%d;Ue>J$V8b*N)P@)oOG!2vH0!n>>AJM$4FYz_iqV{0K+hp8 zBYUWuxl4ce3E3bZzE;>SxoIg|e{;aL#Ti1%O-Rv^4QKKt9Fx+fMY=`R)su(gCz!dR zA|ssr@N!0bNH>xli)My3);S2IEOH@J6d&Gzm@CUAt8&74s59f-EZvYl)8uW}Vd^Z4 zF9!eW$v6GJF-HTdR8o&Th^Dwx4?R>>-tFNF;gHt8JI5+v!fkBsX&{g|e-g~y#I9)z ze^B`ls*B0KY>NCRs1_NVpQh~~(7NW9X1`3a^jG`#3=U=@JC-Q=vdqzj1oItD*%o|z zRr~eVHIl(1<5Mi^ez#haPNmgoHw0bZt zcC^}`($+7Jo&+UrBrwy-VSpnZm^ZWg<`b4^Sg$ggUd?T~4NV6)#cbTnnH$R4zC( zSq9j9Zj%;}RoE$reivcJg^ULAs~|3s@Vli0ECjZ;TkiSl(5~l)G{y0Y9N|?_$Mu91 z?f5#T7i3X>YK}CiUuCdEEaP;gbOzd<`j)c_%tz z;egJx9m|i1cST7?z(G-k$v754^h_uL;%zrM6hhaODGyXlNOY0N60UV4w~U(F<ajYR4y=Qa##>YPX4Qa~k z%iCT~`5zy6fAF2sTBR>tM|zh&PhVGj0wNxl^tEk>i8y!mUE?y7Uf=blZczPTU^~*@ z$QXO_SEbL<4?Tz1q|X5UrYSCOnTp=^m3Mzc)Ek7DVUdKNSaQ03nocgwYXCY?$HiXw zlZ)AwQb*`%zUPx07bxa4tl+RGk`*vC=Efm7BMIE5fALTTmXnqxT{7?Ilaj_H$;L}M za9JUJxf>`*CXJwL@IgPBUZbNDrRO=ve`%_@hEA0v`GiOU2Th^uaK;>y<(L#UX10gm?lPL=o7pRakV2)*8t!)SOpviy zsI0dO>983^H$6YZ`R9doCb!^OJBP3p8Ng4#V_QM0#Dp5U|*JYqERjz_KJi81+tm0!3lraq5{be-wX05 zB(maHBxx(Mdqt8h&-t-J;{l@V&|I524j7E9skjD2gTYcL4kNDhZxWEc#S$<#38+TP zv!c_!Ard8lJ-40UKD0+M*mSdn7a@UIe?j6V0lgOa&Fv!n2(}=v%5HR;-r9Uv{I*Ci zpJ@qL_Dy5sHEwa8e~reO(e4kEuc1CBoL}=lP*lBZOT$bPn1pN}amTwB0+yY4=Lp*r zox)1+p>UJsT9%?uSW~ofkdK4#96!GLw&*8T46w#Q5kiLQH`%$OD-Rwn7+z9If1aJ4 zV2@96f9W}HY;Wg$;oAG}qxTY*J%{KsK*(!E=FC^2M0a)zQ7izj>hoGl@WvQ^Hqi^N zTB_|GM5`Ld4b8QhZK^p3g04^M^{F2yQ1o+L)2Mcb_`z1b+`FD{F{x@goIKvvSq=j4 z-o1NQoJ>JUaGka6yUCoV5l$cce>jCDw%U83Ln!2IPE;>OJQJaoOzU?I-m;^$gW8pV zj=Nt~QvuykxIz620lSnmlU{O-Vjucp^fWzXStFKarmV<_rAbM(O%NHeG#_OZhuEcm zQsv9oKd9b-e>hB=6&wk+DjUIzG~!|n&C#^JIX2zg`l7q^Wlu* zCg&QSYtoC0(`#@(49Z#o_o1PWo7X3Gxw+T32TF-oeQ2VkhD;)BKA{C#pkys5z-y95 z+)rIoPdie`TlLF{^lU=9hgwWxXbpu~#9jS0dBW{yar<)(zgX#Ck#;NBC}u9iqdQCL zfpM3P{af19LWqm<5K)_lpl^hJ5-Ua%H%^SF|@FXQLY7pH-JYe(8r zZ?WEBT3bdc+%WQGX~=7fhhHo4ok0>B-&dP@3?!~-xs^>ez$DztrhYFbyv2n?`&DA7 z;j8sSzEEunj_+J&yV^q`5?rEXKUY8ap*B-VD~_za_fTKj*0fqwe>WCjWq_VSeYLE% z`Cc0RY?Gd_$v67zIX5%H`S#h@CpyE;>WA@z;go@_?wMdQ8>!-H{Ip0BeOXpb5l*f< zJ5&fC2YdDt6P{<1ZTeXP7~9m7Xh)2>g;6p!yQrHicL4K}BHK^Ik|)UO5U^2$*)Ig> zt@;COPi{CrDFApef29_3^ZY(J%iH&_0@bhL+eMAIW7)ppY+i898ef7Q7!r8`^>aCLd)x+&^9 zI;BgFtyG_r(zK9nxSMTLh1c4j$M-Rb_egkVxr?vxY1yoKcp4wYs*yh@nom+ z0Feuv=$=RO3#A{NG3~${wp(KSsH!_1i*{&C2!ajGlAfrJGbTG3j7Nf3p$=X>AUb4Q ztt*Co;Nf3*e}!mob}*|voAnbX|yw&K5h`B53| zZ10D?BR?RTETZT=XB0qmGXTtg7ze3C{G{ztV(m*Z*S@@wh4T(E3kMQk7dIoi3fE5% zp*xLLaGpx_zy-|#H>HFqV!MzcsdNfFX+d68)_gzte+}_y2N``kcwY_@Tkso+0hI*{ zZ)YG@Jd8)IFWQ|Al?J8qA8V+`xAA%4RwGBOQv% zB{vt=gEM8Y4#k|9v*SC(a)Hu?^LX-fSsqPQp5tOKXHEr@tH%-+rUYNp2+))M|f*ljr zvd*`q@fRU0TMUseI9eSbSH(sH*HsFNe_~D%ZwklPh!mF?(Vu3+?jfY;wxuU`hCH5BD6M!b1+cf7G1G7ZCJ}m@36tA8qPdr zT_+Nc4V`Z%17m23WqkAQUsklr=p|gE%moN8>txBI%u4|rFTRQgPb_npl=jgqe-b1v z>qKHr?*SYhWl%osP?WwHs^Y@X^*5z&4BZ8&xF2;4-AAs9pC_(1LY00oGzyUE7EDdF z_Nm|^CV9QTD_aGyhn!7__b~c?9Sysl8!h}Dg=T>Afaj8YeBz5Vt=~f9`wj*n`U6e1 zYf@8LysnF6nwr;S(Ug?|b&VwWe;@4wts4PNCY{nuD-znBn+DoNZt6`p94vKS8SM-E zamOe9%CJn(u3%X*od&C{zy|O$$hm?JnS)*y^oJEuoE^&}-XR}PzBXNHY|P75)N?Bt zO}p8~#TA%?)g7nFqQ$?VJAgtjO<4Dk<7J%aK6Eu%6 zihe@GkRyPbI?dF{5Zfjqe>F;ENt@fWfiEokI@Ir1tUm4L0qWE8Wp%A@25KbT-1Gl6 z<;$9Bz30~yZ>Dt5FWv=l=oywh{|ofy>mls8mSycV-`|hlmMpG(6fCka&{<4VnGOB2CZxU3Cy)+f~a@RH>Cua zQ;dC3!Vo|agIbxsf8GdciTN$0n{`kt)6W6R>(JWr^PhY0qZygg7?^mQm&CXh1N&Zm z9N!uPdr^kwax9Amp8hco;s!%3f$+C=!dru9Ka!!j7Cif#8MtlJXxLxMqC+$+GfqM@ z?1ehRG#Zu}8poCr*WUZYXP?M?{bO7BqU*cGbTuE|8d&W3e)iPH-VPSk@x@C!a_pUbj2UCLi#d8A9LnqkufkI{BjU*H_K(C@r z7r?!SSG8C2XpOfyCv{?^qiHnzuP)ZC*gohwQMfA`@FzSX3jrZi+e1F8sCTa>bQwMC=;7{%G7M}#jW8^zrSb$D+k6e>LJ_`s_&GVRUe3_Ew( zfBaFI4CTsfuiC(Qw0qmtRMGDh+wd_0{@M+A??!V622E}Evn$~3FZ|AL+(H`$M3nHS zo(~md$-;&L_tz`}w*6?1i-p?cZsv^XSLfg{F++Bu_;ujPMJ{*$aE@n>11NG<-uz~> z>XU8X15am6s`ukOLT${|P*UDBkBwkYe-_7)>2Xi^=s7aJHNrVjL*9I&7y-X^v@-iN z7?kq|f#h=B_dSIsv#Lee&?lg^WxOS~fcPr-V{wy!yy24BMGWv|T-0F9MLNh|le4^p zfX+EKbsMOlmH~D-qawhDcds)u&(L3(*wc(-1#A={qjkUr5i%1Ln+y0>2q1@he@m~= z=`p2i%~Zs0ydh6%UrKB4hw{*=AHb>7y8CJaKF%d#5S)x`q-lrek_R_%PR;C<+wgHN zdEEwloDW3L{z#UK?e>isCw?4FJa=IgP^1=Z`Y%eclob@Gs_hFnZh)zR+slmT6;T&l zhP+$Bxo1VhriuN^3_zsjSH#68f8s3!88Pg67c6!T3a+3;qW1tqO&Ce)JKg!d8y8um z3l(>|^Zhr#Pd)X8rzMZzigp!@_|tbk`md!K&=n^?6qj%p+gEmPCywSwlBf7XX;BlB zu2O7#$W79H3htP(q~a7iIJgyIrh*^amprPgCajWkLz7Rw>v8Eo!x=joe|Jlb-fuki z_?!NmFw&fXqbImlaVWYyIY?1MgzfsY$g|jM0-p|ciZ}Gc-r}<_OS(l4#}#MAk3;O@ z+#vRca5a={L(>rZLcpdkFK9}TPDUBnj(dE^1er>^3&wVqA8wOo4#v3&ZmA(h=~yTt z;lK%z(rF?iN4tmhYB+9^f6j*kI@VGWhuc(~eNi1-&Jq`gG2qJ57tNk}^xcwmBJjkw zN~B#WqUvItp!PK!k(Pab!P$CJn1E;~OiABV{7xVPBf%%vjvumDdlv{yNn10~v{LSI z;+DdVEA$xB>qYxcc~9j4Q+(;UM5wCrAUzn;80&e8!xGv#^aG9(f3!Psd;rpRc8cFr zw7GzE;p>Z54@elA*s`kUkU^yyMLW@T9964#W?Nna{fnavBy;rQMHpk!;)t+Q506D) zM?`mkOf#iC1L#=LX};+Ff!R1h!WP#b7iVceZg`6daVOhVJ-yedxQb0Lcen{&Zl+|- z?-RX5S@Xl@qbpH+e^>JLHizim89L|;aCtPBH9QFyaPqh*YZ$;(obO7mFM#cL{J`PW zl~@M{amS)Lk}Fr@2yQBULH7lvJuX0YW6N5?zQ`k`WGEiXRR|WRS_U`pU>+jnVMA=k zspzU5MPg;+D5DE1n!-``mnK7SScry1e19)__03HnQER(-eRGpTDlW`C`1tmK zJWVaVg390X5XuR_B}Y`AJo*;WlJC?i1{(z|d*@6ETUlf;yMcwIGp6z*C(jq9x9$#EtQaf;(}KE;wKF`X#K;vuhr$)Dq*tvAM0ib8+Sexn?m1bR zW}5t%f-3w>f4Y!;OO3bt%BC2{xJbCVx_VlkdYGc`h_##+;{e(;eb?BI=1@5$2C(br zEv{6*R3|kLl`;juHqBbsoMP>(%dQCT3TYav8=ixdq6g6OzL?A@YwPv$Y=CUn@Gkpg zTwU;*9<-yP!$d9?Py+$s!*GtO60$~QAMzWZW!Xd2f8cVK*T>{pqxNAfuh?%L*GxKS zZl>iu01!|fmiS&8`Yf<=d3eDExVm?z!qGe>)_?)+Kv?HI9m1*AmEwAU@6b+j6&^d# z!9(BJlDwt5@_;w+q1p%*Ir_?!FaP`h*xS0OxTLP~F;fc2OQ7lVN|6RB>~Op#rPJ2MLRh- zI6X9e*$|O!2epn6C=U_>_LHq?jLLookrVA9f8@al>kKZ(qG;7urYV-i*FECyg^ADIy^^)b4HC&W=ZUzD9FwjcE^Z;m4lqL|3^k26f$iYo4YI)ht2qLduX z{prjUmo&eTWx6=~Kir1h&E*B3&HS$%#mKSu&t`!5Pz-8IsxQKQTgHZz=@o#%XGk>* ze;7C6dJ&tJGSmaIw($&3x;_-3_)IP`{ok3MADe<~?`s;crj!|;zm-AkYj5t%MH9~P zG!Noyd>}q~2vPIK9(MTs#XQiH#Mn7)^1&Aoqc_n!v9BS?3(hNuspjPutgj2(1dXVn z1RzSCu;z|xICr9Pd!@>}hb*hOX_WGvf59FA8T^)X1th^Oe(NKeMF7|CvMl&fLh14) zGhSSrSc#31RY~6H*E5YrS17%g$NT^nUE!Z(mfH6k|%Oqoa`qu;==Xau%iB>ZP>)g{%MXPIN8r-fQyrrE<|zP7AN~cWj=n4H#nNf2M&tb4pe=Kcr|9 zkikPpw_>3yj9WZ}Slococ$?puq34~k_^eUD$Cc0*GChM~jow;wrkz1t9R6R)Fb%{1 zQyE-WK^{iWS#n}6EbbHzYm`;Ge^QqM!}wRH!p@x1Mb@)9d6Pw!_)t_70vBY-`2U|d z?qU4@W)2vQ`>PpbGFwVzwOHK6r%0E?8MycqDW4?(gHKU5lJEf*pYmIo-XuOnD#^ud zr#?k0pcJ5sPZ3|{La6g~(b~px6!d#EKj7e094gY1vsA~+XyRP`Uo{1ce+K7Z8~{?8 zJrHy>>j_Z2ZqDFE|Gz6Y-yJp{V0Dlu+YV5tAjWQ$O+$C^wXbreO&sCCSH(iGvcE!} zeZ4G1<-ILImte5GAV(zBn=VGnhg9;$8o`s}^{3*25IA=nIih8=JY3*jCdD7*gJdjh zyNg?9dG00Po|eeJBF7yFe`h)5DCZ3jF1%eXpF|<9I+WC~{1pk;p}Qf)$cMy;H8zw; z7IT*&tpq9x$4A*@%RrWPv^0SKQ${}*#tcPck1VOYlt#8m0dm=f5J}-U>b@MRU?_!8 zAx>K1wxK|=JTI3I&yT|TFwbTcB_->e;h|HjsKnu4m=zO zjpYH3t#3N>N94KZdfalR2I5|7cHD7!%z6x6tPX|#uiPa@FQ*@Ov)DG2ApG_QD0!GX z(=EE1$6{}&{H)`93;#@-HwinMhR*Orvm+d2abyZ&xl`?n0dl@@&J?adZ_#baB zgOu3iTtg{MXHI+(kIM&%!|#>`vB(Expisu3_~~vToub=*K0QP#Z$_87oP1l0Fz?{q zL?~GSE`%yMh(nEqhQgf%#?*arEG&(uoQ8o2Pc5+&e->G+Xo%d9?aQfQDrZ=_t7o1T z?|9!v7>(_LXPy(^U`Ys*;tnN-K>Pm{ZrucXr zHuoW*f7bwpODwTqEBN@_V2^~!3Uy0kO;4Wa>gubTJ_%l{;*a?BRtnm5UuDf4Isu_s z8e81T)wgq|0&51e$i#wk78z+0E6(X_5e=UG2DgZLskv;PUdwt_$Z+M%me?)TurEpQ(vJ?h#RVUg@%l^?^#6pO& z<24ul(DS-To`?*T!=X)~3JUi;<&W3cZaydKd;Q&Sd{p!zhk5cGbP_od=0qwJ`w1w< zh-$TcSyWZk@a?v%H;LQ`i3gYXrQZEm2Fh`n*QvN&-&G}EN`r}$1B{QWQUHnR#-?EO ze%&RlWTr zP4VCBY+dO4b1KeEhpF#rE%5;rxep9Kf2G6da0IS*;;4L1?aF<LjotcJIp}o0({Ql&nH)BrWWPcmSgp0gf#$6b>O5O(ouQ@l zhjipH3?&>5kO_WW7ho8M1*^MDz#cg?@HL%lbeEskMIA4=Jjcf}xOjc_p$$Oh`RYwj z-#4^{-2#tbU5tyeEv8uHO!wIre`UKA4f;J*trulGcL`(N!T0lYryHqnA5~QW2ReN^ zZR!%cSfJ|-D%&wkai7*GdCS1dxk>?(oqZGR!ew%K~|hc}E@?=a`?%VtI~ve<}xzbId!l z$YhTB*&H~TV}3b@UFMi~<)FzN^J_V5oMT?8kC|lV_^{41y6xXnai^lI424WTA_Fgc zWsAMv4K)-QbZ}rA(h|k}{Vg=k+=+DJHn%NG*v;?xH2jml^57HVp1v*I`&=L z&8h`4WsCF&uQx+z4-Qx+eyIM_I)5aA;Nf`an~D}Ezp;VjSTr-o&7alb@q>OcgPV$p z>nndwNAg*5zv|~_w$NPb=zo)GcK5;&w}Gdkg8e@8#K*rb29Vm_e+~SfJtea5%ZpW{ z?xPRAM-J`v<%QqPaE}6q(?~OcI9dT!m7MV;9(E(jjFanWohx09A|SeqOG-&3ycqrl z#fJSp?D58Yo zaV|o;YSp;f?dj~yf1wx;t2CUu8%gYzBOVYbwn83_R-JMqjW75(`ZcoV8YnG<+I@=( znn=43YoM~=5Z6!ZsLt;~Wbg}Oc(!kRS#;4*#7lVqjN{`CTEmqoJI+ISP{Y}>9gg>- zPNYjE&?x7RX&tbEk94UF`M8P#@~>5en)!tCaSe4*(r5Y^e+|?$6k>S225QTR&U@aj zqK1h*)6Z(K&P+QqQ^@;u8DLx+|C9=>sSj_}K*>;lwTkNo%TMadi@d(^!!Y#Cy{wl< zHIBi(DK4P#j_2n$tDMempsqfm!N!(AKc|7hw~}X(#!r@;d!x#UQ%s)FKyyVFB;}rh zN{`^!aH##ff5z&3?~4%hkP71V-X??E;#~F}A76`^2tC(hPfsGHJ5XcqE3=!)h04B| z>#@T^9Xldj06=zAQLfrnz{cR)Tz)!FwuP!P^dtaggkeL9NY`jvJB~c3$O?=^FEy?& z`{B};{a~3)Z>x89Z#(p^D4E_!f+kliuM|KghA(-of170Ka@9-6lsRY^V`QO1nY`3U zM4HaYN_Zm$w1hg6M{3eS_!LMXuW5k7)#ZIJe(`;jzGTT*kW5h*D_Xlz zzuVgG`fdkx31Njxhc9BD!>Uy;~ul?TEq)Aa1 z0ojIUaK(YXAdh56qBR6$P!4_#(dzEZ#duh4e?q_frT5F}B2b_dl01@xinssvyWb ze}9VEBsU+F+6zRsD@I%5Z5oP7$ti%?3i<;=%2{)SjOLcnez^d}L5CbG+ZT=9^D;4` zzff3Q|ByB$8j1rLTW-54__2&}6VlI}y~DX@SD9WxZXJ%wj0jOnnU3c#K2o3J3?^r| zW8cSlcjT-Nx#$K#;c_f?MgNX7PYI&if5vuiF=gFLVE(=f*Y(u2&daWZwUhAdBBiq3{Bbi=br*oFeeTkp^HVR*K6^e=~7H8tiaW&n1{UeXRNu2HduDRG? z2j0e~T4dw%w%#=~8(xW*H33x~9QHsN!QR%DWt2R8yp0!x_G@T`g2*y&6g z<`+wgdT-t7Ou5;j0V0MfP(Q77e+(X4o=3bLgRi&}{kXT|aiZ0!>>#{71w|^1PC=2% z2U!NMW|*g_ZqXHbdk!Lrj?mk4e-KII6B-i-=Tz)|2u)4et-#Zy;C4q}wiSd~Ts(J_ zjA~61PB$gZE$F@J8d%tjHuE;?LIU$jY(a8n3;bvn=F&~xskC)7bIEW~E2Zsg3Ji(; z0!U<}p=jA64T!1i7dFzjp2|MRBa7T~OEQz8A0}^jPL~-WtS!zXXI{yje?w%)RY^1L z#+v`qo@OF;fP>l$t)0RuUbIA_fCbVLZji=Q03*^LxKQV7A9+=VU_(WCc%Yyx@zow2 zY*I)Dajmxp-JpKkaBs9(! zWofv0kyO?IIMxNd)`7bF3&MPv0z)JR3BGR&!G)m^n{*>>#T|ltXaUGyD)|K@ke-hq zDHKScym7*%=updD^vdOcxOi7r8N>waCVn_yaS%{7W^Ww5V38uoK(1d_@hq z0_EIKwi^#2^d!$OgKw)Bjg}Tvd04y>ubDn^X^ZoPxeRH) z&nh!Ttg$Vwz)*SPx*o<`HCrI?XdNG7yiXg9koezl0d%cnT|bTR`gYTw`1uN{P$|fZ zFCal~0*)3bb%T(}e`6|AL>z$5fS*HtQn{xE1_?|E)ih5W0SYeQM6q_M9!JWXJeQ`e zz&d$JP%4p`Fh;GR*i!OJ0#0UCDdZ1mNN%d&P9XA?jwS*!0;K~w1YUN*cS$=Lgn78U z>e)GH2Fu70-PgR*bg-STW;h4O4oN4mAOK<^`>t@f!s%xYf7EI7^?E5J)vG}EXDsqe z6OB~f7l3m^rX@Y>gqYDpA+cjp%_IOH;kb)$%xhM7ynlHIL7NiDl#)^vFHq*#a5e`w z%uTqO_x%zjkx5SbsK_!g)r zD1scDlW5wue=moN35NmpTXaSN*u%mIq2g4=P~7pvFo-56NPy^N`>pjI;8;fh#gMnf zEJwG9ERHIMj#I&R@x%chk-Q<2H9M40?81f6vbZ*lz_tt}g=J+0rtu_KR#XZd`HdQ# zu_-D@Ok0@CpBR_}oR$!EF@ds3SjB{~clLNv+DT=WP z+*ccVe`g$W26dn+)Nu#k{%Bk*tgdTV?u`i!&}gOKfsG#DEJ0^ zYucT0-W+*ksC_-y{o%Tus07z+N-XJxh6{;_;FdE-DunG%*O{vx0JeKOQ#j)mgHb&m z5LkHnhu=n)r;`C{&YVg5XpHa6N`rSB7J@8)e_WEa<9_iP&%RPMHJoCuJ(2aGY7s=? z%+M@vBR!;3n99!W^)I24z!0>R51Uc7-+&Ff!PjQFZglU!bn)%F>qTth*43|yU?_BS z$5&?Hlbl!P#ojm#AbSYylLu2p>1q6{m|@;Ec0BN|Tou!q3v+3^z3+ILfA{WPF}(oC ze-rk^gRF48!m=x)I>K&bT z;Y%T3^&?IF5Z7@kSFCte_b!H`vvzp0f779I1+SY_DPG!li3^c81w%>D+m?y?puiTE zRpr&yH^oSIY$b6%;_g3!$Fk=%dsU4n$KrKFY&)zH5Z?St4~trX2nY9j{bxS>PBC6OLRx1V7irS? znJX-8jG5cv*5?Pl^s0X;DQK?Xl#mbbG?0m9YQ+0%zzbpCjDzjMT^Pv#Zo(n&*V_x4 zpR&UE{WMVKg{0!8h5a<#LuoV8Mt#A;b*DvoX{rYN-jOpCpEdyy93H|Ae}Vfw=Xr|{ zQLWLOck@NbdjNVg`{>&LKm(=$VeNaQ0b%Lbai-+luCMzh1eqm=JCD1{;Nozc*GBo& zuZnU^aIGg@*NWc&k$ua>zQ27}K43h)WHr>@B2S!098YTwikP}P&9pbM_3x8 z42Iexe(D!-GI&_YZtN;9_2Hfh-{@H-CaGGwGqbsf!c62*YOXTDtp+fOogQDKNR=gGM49vm2=))J(ir$ETM=;~r_sCj8f5ESw*@L`g8<4sOS zB?_!=S~fjD`6{k=2n}(`gW;utWPt=7`jc^hM_q_(l>|I@6_?SH)+r2Ln}=+jsOQnF zY(rcs6MF70x)2nXe~!ulIfim3Wq6%i)5gg6|07uYild)QI}Am~Ra-PO8n+2-&Ni1R zciLm|W>eY07Z9w(&nCJ5)1K$W1uBl}J>L0RfYRaXX^$DEAzf6|=YD&h=xGmUOxacE z$#%XdFCg|K8;4sOG~mA|%51x91T^m7f2t9%h8NExY8X-mY_adc zAbvz;+xHG`?qL^yCx@K7i2Yq1d+Ol8!nd|`eHl(g9@A*>)Yju$hbYV+Yy^XoMS?$4 z3HrE)c~+bYZ3mZS@xwzPG*|rw@D^We;K#PVqDc^tzG^89`6oKMF|j}qcJK2lyyJC% z`0NG8_#vcX87RWsOv};y`*VB|8X3Pt$h!c>A*)#X zxD*#ETk6z1w8n?9Fs?dI%;?rlpr6Qe)z~9z@m>N~BBAjCJBItblP~vjLb_fc# z_aUuy;8wLoRJ)YzlQ8vtSCW~2cnfFhAFB3)+woDLf4`yF0SM3cy^;SHa{MD#Dd8Y= z(>FbbwWOrk71H-zX};s>AN#KF`2O#F+5e;L&4M&Ht~*~n-td+0jr($A!k(9T@i=C& zxQWtuJmbIzB)$(W00|-!UsdS^QNu2h9c)%}nk9*vm#ON7`_fz_SuL3+Wy&VCP$IQ& z7D;WCe@JTI7pf)MGQG)`EZY*jaN?Yk3E(U8p8z|eqa*tJ2Dl8 zcIiv5e#up@x#}ga+&O%8kC&0nmb49*W%lQzS?&{bx&QZLb<(vEvJ#fu`_mBIba78I z)<2XEaYjj88NWN?2Kk3j>ADnrZY48R3MR?vfBx)J&ez;eCM6lHpFa&JP?8fE;+2}gD4VLtHnqC}`;diBc!z1rkTRi$2+BK;^R)}d0SHw4kb+ikroh*c`~%l>Uauy)#u zf6#u-*r-fqvex_{C`~{q$Ll7LUHzP$28-l7L-117zU25Emz9p|ni7U$AF$mV^+;$L z=S=~3x^n{EgDJn>eKu4ePj*>-=>)NTULT(%d$8m^@d6TbdAe{cPs2s;>CrEAaxWN_ z+bw(NO+x#MIe(Pz+WXv5)ObsoKOZmKf1ro{77|=)3b?_&2nsAUIjD4jCP}3Q59+0+ zyJMENw}%x-Wbj%!y%&_#lzf{a+apA6u=9<$R*|#UK!p&nR#hIk9U2tLwm{)*Ef@?|IQ|-P3kJ(?|-Hpjxx^2F}U|2xXlz(3VP(yMr~=h%tFE!5|x< z7B!2gR!Q48eG$%Cg+bdC0o0wq>UF%xqrsf zD5ngydt=md#zSbR5pP6nsCriB5?E4Irsg?Uqd$A->F@p$nwX!5fAkOE@F?mbuh8YH zk-?X5`skMs+%7V@L7J0wR#d32p`gltkf2&@nl1s{bzMtf6;61`(-#u zD0)2}YCe_df&rvaP_hhC zR?*8fC3jhbpygYozSe#fm6xxuNe1ehif>jKK`#?krulc&pHybZ)eLD!ls8Z7!NPl9`rK>8n zsYD8TaH&dd$>$G=K?VZE_zFf(d5E#nZ_#^PRc^S3M9Y$@R4x4$&7_Lm2~%c~K2?dq zFCj=7sA`?cNJek?$*`!B?t@)sMu&qHQAiI4KZl$HrbplHi$tDYO=Xe^CdH=p-eWn)QL$B8c)R3 zkyId>(`M(M!+&^RaUJUHvvbdV>3Qb}bbJI7>UvDQwEy4@kUEbck$-g~rp`a-0tcPI z(BOkNLF)X$2XDsIK-Mjgx?mvdR!m)Z&dXiqPeN$$y;B%^*@aHfewdN^yaq!5<-Bvf zq-!CRukp6jyBB%}-I~nuwV8Rv+?mPz?Y(!yBcG7|W#dooy&IZv%<{D)Go9JQKL)<- zING>6?Z7_==rlL8Mt@u=d_ROyd>+yA{An2TrTLQpHdi*u%$k2syZ4r070s3HOzO{u zr4o1H1w5vI8m{+D7w)Ct&jTVet(~8nUj(RX(A@tN;QBiJVUY4w_=6CoeFu9gNO@V` z4N^9ubFB-x@vkAYuKXpz_X3zvvFnE17XK1PtuM--jc~p&KYt2w{m^?lfYI>qc6HA} zPTPgE#Dd-vXGU&eu&c(INnEHJ%*3;(k-CEOCL=DuC(KQpb%OTxJ^~MXac}zxl>>3@ z3Whcqv2!j2r?NU}<-G1f~Sj#G2=-B4`b=Xz}Nf}Tr z5g|9PsGgV*A+XaBQ%YU}HL=i@^ALecl_qVRYd)nty!GN2?ZGZjWa+%H3kr)^Wjda7 zfC;JA<9EIpXMkWcfcNiwGp^oB=lRt9ZrG~U67ysaN`FjKH~OGHI!(L5gPE*1OuqiU z+ws?glcOC~_s#bm-$&z~&DG?^1Z61!TtTm9s_9(f1~HRO%NnTPTNq?!|eIfRyxmO$>?jJco5gG zl}G1)xikqaDs{E2%e@WWCLa(c%T58^7KOgbOM=z(9n-c>a%X#ju2NDey2}zeraH!DX@rvK5a_nTiCTBEf|xHJn#a?&DSh$KAv|r@ zYtNwLey`B&Jb0Wqjr+OB6J=zcIez-KJ=6q4xPM#e_D|miyND#H)l$3F;O5h}!Opm7 zs#w+oC@+hn(z#kgb(Eq2Ye$&PG`C#@J6kNH_=&8ADk^JdOU7Ou*KMKirr7s#au+-@=G z8-EP#6+E_>U09X9VAWT;YI1M-fCmGKJX4!j7N8Yn}()q05z2&3=qiaUWVmd1oIyRdOp}>+UIr(}GVk`kz@cSZLua~Os!iSt3!^y_j`II<5%4SKM*1Dh<0?wcGH9x)` z&MYoNlqxIfAD8C3@icb++)rIQF@M?0x2_*gM7{@H&h}vq=sa#@ibU0~%RCmddo-76 zTlI6<8_wXvg0|IMJ!fXPGx#*1ZDmxhV$uBG9GIN+FdP=_ z6S|H1#RiTxJ@F*1Thb0m-U7msto9|qORIL6uH`g`7i`@oeHqYtsav(-_kX=;HqdR_ z3%WZ{fIO<_il#H30?;u@w`J1#^x8u@5DInJM>)e=9pYlTai;YVPI^QQ+y~%o27yy{ z+`6qI=ih5@FHm#!w3?enkvkr;Uf`ncorFW2LhqF_4Z!UjPpGm;!dk1MS|>95V>#>{ z#$^fhpi0$gtCr-hn_i438Gnc4=0y9@!RLWQ5|EqI>`hJMmac0b!}m4^zEbEUOE)=c zN;Ye(yO_H1F?{27KtL6d!Io}p&B?05X%En3{xM;mj(zySr|BZBVj7P}FOt*MA759JIhGoY9Ju zr;)W$EIXo)K8+Wz4vrU*bodX9(z7~C=Bi8Z-q8f)y45cN9~z|-j$_PY;v?g5W=J~I zAB4{jq?B`B{)$M?xnD@a|Ai9KKR zy&roTA5aFgJF`uYO@A(Z`b&}bJ$=t{bh>ili(0$|eR;f$^-9xxbv!}$((Y^H?8b`l zFFcLUkdkpjL0g!Ur^kbyBp7Ued5a$J7jvmPE7-uJ9;j>8ny z+^r^GoIuyEJwH5!m8SpFI9gWSIq~tQv5vu2cK7h{)8iGl+JC9OGM<&yj`I1Z_u(y! zGTaw zpvsoK1?Dod-hVk#kV@6Mu`3<`PdsxL_YPYfNFqhKX)Fyz`&Ksf``l}v*@M22`5Qei zA2>adfII}syC0r>PCc`C1|675evgazTY@~f;%lQiUbI#1uf&lFY9%z?9agn+*J{XU za|myAG%^+K=~iCRwNb6a^98cqbxCxd7-ii%Caxf4aDVL*P+RrcM|TlJxX(VapYG}B zWFMK?`XpI7&sBf1^6!Avy2m$-DrA;M7U3(T8!yHx**~Gfcb#WNX4^<=5Z!w@YN#ni zy9tMux;rMKTR~5DH~i=-(t)*+OrlHFx=f;k9Ie#aJx@GwFJ7U9wq*Y91NZFTi+A32 zneePtX@3{!@S1zkNwY4Kxw5M4r7=*QMM$T^q{7E23(U zhm#n!aT{fdW*Qzv$Irroc~Um;`(ZFI+D=`5-PzmVO#n;H3mTsM{cF$O2B&IbRi)!a zFZ$-Qff}>1!@V`!EoTEg!p3b@UsUz7Zyb@$w0{?U(}?IQs-uGDP%h;iXTJ}ZR?3Lb zUiO`1^q~E&2{sFp(tfAHV4ioGz3nXCgmY%|yvyqCXYoFa*jj=gaV1^;G;Ca~{Wx1PNRjy6M~q13Wa1$m>IH8MYZ9_`i!xC9vEX8T+Sr^e-{s{V;E zaw0^shcLZgraN0_^M~9XJSSPTW;><-Z-NzfC6T-CK(V}--JqOtVgFk|d7XE zM6O=VjCjEF6FFLI*ay!zKwQ7uFf4i|)1)q<`YbU->qfUb3v#6Gqg+E!B@OhR*wyB9qb6~p>B}K~LTFvuQaMAYF9eF{7TZayr*0En&=YUEi9>GPm?|x)L!>{V zvy;&jLd^NYMoI>w+pLUrk(Ki{uH-O!E^gtDEu$*)_h2u_eCLOli-eA%Mt@WN%-vHH z_=Hk(cO72d{3rb7ZjC{YTa0cg6jv3+RQB4Nl)WS%QWf1s<7F5t6`8jTI_#$d-J{g0 z^B(dau|%zBSxG&JYw?#bNV?hBheL*IFkLbmQ)Pbt@kAhhB+)3j^hNKTNuW||-D&eb z1Tv^p-DU9q3v(Q#PUgk`8h3uRJx7Jq2PKEGm zIHz^I^!sh3XffJRsjl6eh;>_ED;lGETT|G&~+CNF6U}*DFsO&_jHY$6U98f)3t> zu+C+-8xpK22A68d?*L7Kp9y7_R(=XBz$Dy8>V7d`5UB_W+_xnIZa*mB%$l{TU38VXD!>1R@uKTDZ$ZrHlYU`*pwDaNbB6ks-m<*U`DWEI;M&^+J z94KCy_-=}{d?b~rzMCRlq@aB_MM_uUxLa|7kluH|b=~jdfo@_-5!!XXfMEJMpA1G% zu6l*-GV(|uBSYa`W`E$(c<=$YHH4?t6|~C=G^aYi`%yVXd?)<3aqqDkwOT~Z`s1^q z`j~LS)@^6_34JE$>4$K=>dol4Kq+iAb8pYk3TmU7T*pBBHyh2|+s||GS2~+o$i$sZ z?TzqIY3W_1+^(DoL$a3ck3dqgx8C<4)Hv}M#bNP70bwTMmw$3RoYDMjV>5HQfa^n| zX7!rfdAub=DOV5Ij6kCFx^9GWx`Z%gxOm4$AgR;0-S;5W%h}i{Yb0Yh%$1`=+&f0a zNeNDjWX^ehefyX=Y4LZ5rEN$N-ZMf;&fXiKHncM}ya7X#6;wn{(|%BB_SkpH`|zhT z9mm>D&A%7Klz%sby(x%MAPw$I58a1#&GcDv9>L(fVR_wmA088!_3tmf8dzy$|c8IiGpFX6qu;hI9M1u;flFcIybYCL5j)j1{V~{!!rv$5Gk5y=xq#GXxjs zk#II^bHU4B%HRWG(5O0dekbl4A)TGj{Uex8Z5&A^-+vHB*R#^Rf-`wX5FFQkQhVoF z*~k>}rl7Q9=Hl7Behib2^SUtReP_HjjAfmd-tUA#e~I$DVXXCa3^!U-Cq)~}SRJF> zI)Zl5A}cY{tkAGpusY*5g;vv!a`(+6nENE$31vDiTIcW}$ z#3m@)>3^$!wzxYejCL1XWq%aLy7vILggI5mx=b^<&;RlmOAjwyEq`+YOK$h2fxk6M z8(TNA%$MI7h1WB8K>x}ZYSbVX-yWqq!CxIiDd3f47u_aMqZ;M>1OGu-o@;>j-G?ne zSln=;T&{}+UXIlTYsw_9LsFKu)H%YbFi@d{s=i(G0uch z*Yj=*Sm>-68>z8@Qz3!J60%l^`+SW(k(hQB-tQ|V@+ zAAkDZBzTe3ZUgc4NxZZ5{B9UFiZ(EH=Bncd_XoyrLv(MR{h3i#>bbl3`~GNFSPRV+ z__iq*#S7shFNTFdMcqim&W zYNg;vp?b~}WO3O-!?!uSKbpzylmjKbdq4UtPa9%Z$fyS~{ zRZV`0skYEgb7`#iGKtPq%WhMIE`QaRrZLjs=)!nu)~(#^qKlrTb((N^N?h7biydIH zLZ){#0+#E&YXD@iLeX|(GGC=Yiu4N3+1wp}08buWnggMNub+};@QwXRd{cGzaeEJ7 zjFGqQD#rMA&B$|PFB4+E$K0QdwZ(o*~GNKW0qkI9^joW-&JPa!pn63PDs;A~7p zDlsFV2?jBRkti7OW{{wo^M8zt!I-#6q7ER-BVtT$Sq?H6Q?pc;f*|t}6-Q;PawP@( z7g#;<8{^2o86iohNx6F(a*2wP zTtWn(n_yvdJW3f$W*N1*h`;$w{7r2WEe!w-Jydd0;~4m&P%X5v?0@Er%J{eNdxSM* zt>{rckw3xYdZja?OU6#29g4~l7fk}0ZmBFMAK&z`ufUIG^jK=n&yflII}FM@dxHKV z0F{w+w4Xy}O>L@;DkD2F683BetT|}3>u3A0D%RAdI7F180=EJxKX2j2C9>01`FSP1 z=jOa2I~A3m@8uwSRDYG9PXRcogvh2(<=HHXfKV?kN^XZW?k%z6DL>RXsybIADs|~v1nvn{sjD^FGC<=hV#oxOLKRTfzZ1xlk-f!lqisy7jTPj# z0?4LB_xUx9$bV}G%FSN}azh6I7t{z@dsEyaKcoLcNK~z2y;OBHb781Xz`45Amfm=9 z?!FNcX&RY7z88Xc7fc0(R>VqI^vR|glScVZbG^>uprNW_JtS>dm^%*3SsmB}pM}NX z?!(fcskShyyXx@R&DGb+z+mb_rYbt>2;y=T3Y|Rmws03ew6rHFUL63Bp zNazSnf_{tzXc zf*G3Rtk;ad*J#(ThO#Qo70LxC5O)rvbi-@#6bJ_Y;J8MOmjj7LN1}P7PIgc5n$A2{0d}+IgaKC~xw4Rmmf<>V?f+m}9 z(EB8+MQACX%{Nl>3TEIVy-m}S#)B0%Xyg#IUT5xo6`BEw(v@?|jtpE0igRs569ui9 zH%&|GM$Q$|ei4**6jG%Um3I_ULlea#iPX?==x>@fH%f_d4AP(xMd7Sj6jDYrM9Zvl z_J1g_TWy-Q=x=Y3CY~^Fr3rf_js*rQ;Y2X z7j^JWL-%toMh%=wHceYm*L42i;ABf2_f7}G>6FT^qD0I};q0_&q^}DGXP-^O?|6-< zNZ|xTnae8a?QjO7-p;R5xJlqFL|D8~Nq@VUDQBAmhdy0D-{K4DPDYwj)``hM6n6w|(Qzln~+#8C`r7jO^h6bYm3S$QXg z6wZXzDqfPqaxMkZq!CE+3Kt9MVa(gbS=TC;*&KgBB$ zNQCwwtk87_QK^4Ni0(TGT6WZL2G%N4WIE@Y=w^h3sSOuX1*u91BD3oYxHgdTiYPvA zQk9{T7(q?fTu6OGl;Q9eEDUOu9OvvIpkm2kv0J#|;hVWdk;qq}=8Uky%zwSXI=sDe zoGE2!z>~1!>R488c(LR-Uks??ATEtdS6ZmQWsL8EsKMaP4P)I>3-9|FBL!!NLd6fE zwrc*9OEDYyPwF3WBh@@P8P*l_IPUE&w$}gt5w)iV77iL^b5UK=#y7VL_bPlrZ@u z5Gp4Lq@8W|X?V#=0yzo)aprVFb5J?SK>wl(_J_c{r2{lSAy#-w z?>h+M~-y6GC@-d63L|hIK2NOl6K^->EYEfadA}nO%b%QaU5B) z(9!^}If)ack3gm$Ye9~v<93D{`8o9CcuM1P-v>@k(w)WKUT!bxM5 z+dg_7yvifEp^S5$;Z+S`#aihWL1@oHSYybNfyG@D(tDD9zb>QPN2$Fw1UH>J^12X4 zR4U`|`Vf~6z#BrK*)&exjUkNYygJjhFUw6Km}b%;d~*4=Y=j@~J7*AK%l+89Pt*V#qjr5(N zWPQlL*9NgcyuH^2K|1AlkM^$*k|NTxzZ+tQuioAe0$t3Y+?^|71V0+LRkqZ&t+kfv z>y06~G%oyM@J%7GcOw6LA?$#|d1%p3`HYg^q4`SQiGTloNGh#|?8ltD+1(*DUUUV& zC&YC}%r}RqD0WvAe-NU~!F@LL#ZAR7x&W7N2?=eO6MgI-hCs6(RnCj>AB}SEQ5t+; zNg1paS=Dn@!*`9u8D+_gveU%8HTZQh%_4t>9safup6N<_Z@qnlQcflOju6MES4D%U zaZjio2!G*Onb{%y&JdiaT&>D}R|u!5$!n@ERZhoSS>YZGC6Lfth3>NcP?**>@&o$a zA+k*AS@6=c?+LNA3KdQ#{N4~)HMRra7XqWy@YLgH$@hm~+iY~;2ST9t#>Rd3gCUZS z#&VqdP>3VVLbOnkpdSvQM%j(XTG0%DBt+&b=zm8;Xu5*_aR{9czyGlinXjM^htPBd zeI$gEYQC?4M}z1p`|%K)uCkv9v9&7nQuUemWC+d=(w_>^=|TF_A=-9I?8kzbe+%`Q z5S2F8Es~!NVZ4WfNIg}vRdabG2WZ(|= zDjpMvlxkr;QOayJnBrkJi$#}MI#1Q5C;~$VM3}@#DAv&fr&`R!qIF1i<|0k31 z+I6l!9j8~#41N?!KsS^vYXG^Re->mbo##9@n1zwysM3Y?+o(SeiM8`?S@??($A4-Z znb!U?#4XuFu538|Dg+kY-TGgLFdBq~Dk`04vCP3g4&gNat>S+Z!i$S~3%S1?0S7lk zKN&%((ngXYekhd>tsuz!Pp5rWs$rtjR(gt$zTK8X4dXW*YEuwK#o&p}pN zfDdIX`Cq2cR2S=PIZd_kuTzrL#URDAp%g_nuOmBL2ca_}njy$8)ERQ^hfG8H#@2zy z!(gcs2c8Ila_{I!7|WaTn97{v&{H9yrCMjLt7ESTu`-Swd2NW4Yi&nf7k?t@qStZP zhd6h8?9dxRD4p^KVs8wway9Iv-V`Lsg3I_iy*Y$dVgf17G;ax#v@~(2zBPn3rCCJI zWbt$eq&dIVv&L9Hz_H}pLJ4TrKbQaquOS1)D)%ux?g$CCO12<(h9FYg$tJXpN_YSK z+E9XJG5G%LLL?m>2V2|MhksZeEv0YT-wmO%Kd5LD=gNIU2sYWgjB*zW>P(2VS)uAQ z8SXsa7~=V;&~p^_d=-8!*D-)*OUaqJ>l<%63_^$oXyzXA<$Qxn3vrX zLS0RWX7$ZMlE#{=Vex(P2O&IZD)IAuZ-^p`X!-VALfCNGlW+fF2!F3=3KQF}KMHbe zEH2=EA+WZsotx~y&F1}~B!kfZwB&Jbe`_cKn~-|F;@d)G8XepPynPa0_~2si2;r4n zF1X{~10j^O*R9p6y4?KLqSfJ zNmt+R4wJT&1IT+q*neDEdWS<>toMdEdPbp)X_pc*RJz~$CZ-tl*!PE$ti{fQ&Idvi ztHy@v^bdyUUZ>_2yB`|INuTEN4~KBS=aK2)BO%m9@8hceXb2>Gkf=&j zNvk1E@W~Jt>uOWV-)}uW6-pp;vPk}P5R@)1MR-Z>K&pit~ET9p|&7Y+Acb z*yACTY%b*1_K6Ud>9$%`(mol&YjTf5Q_1H-R8uQk)!Mlx{d@?mvLq#ic$v8E0ZYFx z^zJUxZ9_gHX@5)8$Y{HN60gWGf#tt-5?`x1y=0IiZwn>i<-_`Rd3y-u9V}lPb57n7 zVpBtcnR_724g6QXGfeiMepeW*vRKT29}IEQeqA;n3bApnOC`IncaLyJ4F>RgLNI+g zaU|-&I~K}#e}9Pe3+M1<*#|-iWPi)brwtMR!4S<2Mt!|ouRavQ z$^8;tF1N0j9}dAe?T{#ZsJncxo1A@5(Fp&@q=clyp;VmYqmz=*tw5c{RHj_~JN|Jf zoveUH#kG64^|27$HAby+<=xXg97@4AcdWmYEzct%m`>uII<;NsLbat%r1X!562?)y zpxY1`^?x4^pnB4gd}-Gt&!3vYx+}R)kF%__bP>xQ z3*odnamVI<^O+DzSIa&6*&u2-wtH(-o>FL9nYkYyOG1shn&gSGB$TOE>^)=){$wac zVU#n6`y9j$|F7+%mzc|r9^2(Afompn*^W@~<$pO-`O%$A=`RcXzrg#kYHRnhV(V&V zV05e~`5g)t>5X}j-j%SF`#|aLCQvbmETRonkA*uWP#N2Us2l`RuX0XC(W7m`NF_qC zfTZ)G$F@vH61f3d7ZYR@`Q`R?1GUVA7Fk@&GtgjF(~X%l2z(Jo(yU*hu_sr;bV`|P zO@CI-b7dCJ;&4BhQJ==J+LiONj}HxD#5R)j`b)ud?Od~GtXkmnHLL3!v;bZi{ZbM{M8BvI_P}mv{{hiGEa058> zJhek*)}u0Un^qiDUC@45?S(3cRUN99>3xNf{m3~8W8}<`zK9^1?dz>qr-zSh zC)2$NW8#Oqyhh21)K>GrOoIj4B> zq(UrWS+AiNofY}cH9T|~vjW#CdjzHq`%9DZ5=U}!4-Y`!Tv09$pYRjfmE0^vbvUgn zY$T#3nMPMtbyO5b(4)ypR%}*@=4zVw{5)G_FC;&bK)N!TlU8$-HSUG|G=IEIr{q6B zymP7Ry>P$5^^#S^vF-oK9c2o*!(_O7XVt4N?1YBLPPKLM<=eX*9BvbyQ>x2%5BoWP zBpW;1yB7}ea8@|iwi#VeT(!kT^{NZg!$)>qEr%Pgx%k-jp$S!I}S> z7!k&riSAh>T8xNfm989j(YA)LW$tD^v|k~p3%r1)YJ!%fOy|ho88O))FjJ^vi-=B< zTpP&e8Hpncla_;qIcqL7*%NH)xXUAQd{)|&u0{C6u(fQ;3J8W^TYuSfSP0kxHl>Ez z5OX+KBQ|Z-hHY~d)uoaH9-1qNb%CcGiH0VTwQjnD3M_AvwB)XPw}A#QadL-Pue?DxEriDnlf(>$8XjE6=NQFZ^$mU{x4V2HI51rVJy z#n7|(SXZiT%514>=d=#BcSoDd`N4$GS~`?wJI*n**X&SwMSsXBwA1X+Qm-$RvulGk znq<2|V|vPp*RioKDyKq+_NX14D87p3Ooz%R*`Q~SjE2f5Xg>_bOXr_mKl|*n&mwn| zwVgCl2^(AYi7~b8XVDlXCd*{8K_iqH?HDvRiJ3=Mt-Hw-jZNan?6`ZckA|jzD)j|G z1CzKy(H&BFXn!(CAr7j@F1T&cz$B6#nbSOuR&s(?=NPnICX%}f%L_GoXZwWK7!p;a zF|BOw5fySXO5`$&_>;)PC^4m4_q_6rC|6czJX4eh)?7SSl;M)W$O+0(eZ#JZPd!>+&N}Mvx=NO z%Ok~Amw#S%NVH>UE*PNO#{@-#Q_y;MzP)qBRdNA{I)$L+k!W{UWTI9Su-=^rW|z=e z+J8M*HnXUPg6KX5smVXz%V6vT&kp~xSl4RkvU3e8engCYv z(^iplHjQSM=i<7|Wy>7ybmr*AmrvHWWIIQ94`1>c^{Q=mOAcEnV=KwlEHW3R5s{H? zRZ-c^w%bX-Td>HsY2tlOzUhC1MIy3osoSWrx;Jgu3w&K3wtFv-@CGolyiwR-YvVQ= z_Nw%rZDY6W0 zE8s2W05A100qTI%j`Uo?^;1}nWK`CYJs(|tx^p%fIlVz&oBH=mvVobDqU!^a2IYL^ zD+l@_8asnD)KKiFQ@(>^`{;Nmaqsf`)oJq>UvL zTIO*z4y4brGOA^&#`QAbyNMDl9V@vZS}KThgllr}1!v!gc9Na^xLA3Bh4zyxJb%UJ zD${JH?n4%HBa38nK=&bz4O9EGCVP zjB(UVgA}gY3y&&&z;7h(RTAnl^cKtciwhxDEqZ;FMG`|noM`e#*&@c9q@ao(SI zS8|*CRO>|?8S*M4+DEjMcPSE; zuckn&OP6A<>}m?6I2xuHIDc?KIwZy?cQL9RhNX$xkxBkJJiVIb$uZas_zQFyl{t5o z!Ct`hBB?nRF-^R|e!z4Q^{(N9J%Q;-{eVf|LfU&54|W7jGH9Y;A7EHlLq6C89M2Up z-uAkhG^cgVudC@zuPZ(_$Z9>_?!FFRV2=7^T^|e1Ok6*GBG-|}vwtV;^}=e)rAfrz zemq;AZ`?cP$+@Bw)VaCUQ7T%;=`h!g7pVG}C3I=u&T5s2Q43lc97rDFnpvKOPtH9& zc%O_iTWue^WOjHrIegXD|2VRJ=tYlizZh1aW3!#hwvQbaE2t5%)#05TXW@k=4JTAx zeesc3UUm3YV(*Mb>VFVEv`zY3ZV7lSkixO-L)&ZH$9A^G1{oa@Rue2<#nPevW0lSh z9g)mK9h&2dE4D;G4b>zLjE`P%1?K>&xEz>zTSeH@9O#

kWt}-9U^5N5@l{A_=5H2qOKEzL@N~Y7f|5RHb_0x!yDd7NR!j}xa_C95 z9gJ7lz?nm=EOZ3@+W<4jBljsP&(x8kNOc+71gm#R4qywVm?=p5%N$;R&;R9(Po{oH zfcr+=#H(TUcP_>czt||cNCnQ>a2J}_vxEVk$vky!o}I3-q*VQ}9pthJ{_%ylL-w}; z=xh^AgMwddF{{_=dTzRQ9a`59a9=r_mf1%+PKj zlGH+Gl-GDu99Pscc^G>mM|8^2{TmmAG`lCsC#Zfy=>;#x8?qDhMIL#LmOjUuRbQ}s zW}l%BHS9KeaPK2I0^|v`PlMUG?ny^!a)~;lXMGaV8-Z{Zf^RQ)gmi8aP!3%{Qi#7xWA_(N0R~;h(ZFE^*Ej=4h~k@Gra9!0UyV6mB5o5 z7$^;-HKq>!+CHuj%+7<|K>17k++C+?;(m`7Ry}rEPQLJpd2U#S(dV$(B< zf*vuvv8Qp>)T_Gls)z9~_IIgs775BqJ6I7X2r5hV8LH#h`+RaOxP>WbJO}8`@8|3T zVqYVFS_F`G+#+QwuhkJe%{;H8n}`2M8%1I)+0^Z+J8?~)sl6)EMHuJ=R*p-ejW61y zcr_)ySvu9eE(w3WP-QyeYdj>D*+HAv>O-i}ars=7F|nehg5>7$B46;23P6NI{ThEI z!wXq52j`Zm*eA5V$f+9OI5Mi7!O0TV3}OfMkkgM>X*@0aN3+YRRs0Aa- zkdLXGCiO!I(<~NcU)SpCAUh+d^XjA!{-w!A*~mtfYAtE(1~$O6XfQ$~cTt0IAj_^T zwQj5`c4vvQsgIy6l|gB0Mr~?_yM_VvJE@%(37*E{d;VuU<$hq&C%u{@riuNyz*+XS zM3*UQ?6&b#3}#j+j=jkOV0_IlMVb!{D0Y?;#vnbIBlrhl$y z`dal5Zv9J0$hplqd=ALJ&2gLVcw84K9tN8x9Z7$2kr@{YZxE=t4O(F=jQ~(YcBBOc z{=*0BArHD3kwpUG5LZO?{u5+V98Zr1^OHs%B6gI@Q3Y%3B1F1=ZcG;~;Y5UKl# z13oKI_R?za@~6ulbkN9zp{XC7MA7F(uUt?^U88i(Es%i4Cos-;#S1_^V%IkaOBf{q zU3DF#$}LH?l;n~H=`G_-Y5>!xRt?PF<`LvwGgy}f7qX!?Fqrv2rB%u!H#l*lJYa$c zK?|XAq{e#|3Q%!c(nFCZ_V6ebBl+n~_DR}@93*S0aipeu)C$mXZ7i0>(bAj+ghtF3 zz5t*pF+uqi3h{5I@<{L%aUGT4Osr^*DSEtR5ZUjTs4U7ADt=Yb?@Sh}|9k0&r1e26 zOwpV=7>SO+r*P4dR~~e*HCviA#@u&x}#D7XlbTXH=b&u%c_nxMOvYeB{st`%wJ%^xuVV}gr zq68FC;(!C_yT~vh>R2XN9iB>1MDB>6JxGpzpnkENIH3XZMpGz=&EuP4dzu_idRgCyo{5&DKDXW`oP}agN>AW!OZw zFzcAmqvG*k0aL2-pHz^pjL1f*qt3k4G#;mF7)x#e{rEB&sbm}t5ya|^du%c9SF|qv>*n+V9UloFi za!8mNZUIFnO$FBa0(~)6-F`IHdVu{3X?25P%?~k+xJ4j-)TTIviU+Zt!@Q7=LFz}B zfBc=iz8f8;T_r~*$>S9NMYhKR&)%OsZpn>5HRTt)^M>4RGE;o?OK`J}%*7#R2d(aj z8~QSC7pR+4f~#zqo^Blc+5~OR2Nh(R?uu2dF=Iy!17`50Y zG{84Y<=4RQZ#8AeM0d?I)#yIenVUuBVVn6Cfvf2YVse*hiei`6w1rwUd1#Rmhzvbz zR%}`66pa@&N7Q1;GqSluu$i0eWo@xX_s8;g=~zA9xhdpj&0mCg${)=^^D#g3e~kR= zX|I>}$q?}PlF&$KU>+;D0pM?WHL;vBJKJaOWNQV=%n;#3HLH&+Y#N82157s*lobOx z3vIJTVKZ+q%eq79E|0`gwsaQm)1zOD}IdcgG3zK%MD1F^#-pdyGA`h9JOB2gLA1W1*c^QhS*T&Fq z9^Pp5!pk$fSDd0grf=1NeT>q$%nf!U8^}O#r&<+@x>x)M`339rI$pk>Bv}+En5-xj z!#KTy;4UW>ClcIwVx_DPg^eJ%ukd4V<0=buU?*{FjdlY2yHLQFMx1W*pUe00oxJ{E ziF5PWJc~%4P`l_Kl`+k{G+r+9WJL3`T$@CUSj$*^?ZU=<@v_#XaW)Z#nByU)Z@?yL zWDw!FCeo@IX_B_qxiWVI=jY7;gzP;L)JIHwMHt+>B9Zt4zurwbRq9$CI9HgT-VJRf z;}x693>N&lE&s;MQK0%3mQBIRwy1V;R~3*!xalJ(@Zk`@j6r z@{imiy?d*xuuAcMX4m{Pi5tZ+2E2sT#clyUl#Nu-Gk^YWdR|*9pNR2x0k{(&Cw!@a zo!zmb-W?g`-38)X3#y*-MR|Q3QtjF#*kDx>ow_&+y>v@_KVkau5-A;9MR={E+A2-8 zq#>{ywT)qzG_itnD{#5*nfK%nkoROz5(!MWa<(>1ZCwVKf?4pb9SGJQfo0+JzoQz1 z|GpqH6(Jc);K8fd8le>F_**nxNrU?=ut}elXLO-R4pBSI3+{dXBF&*$B)AD*VHQmz zby7g-B;}(aQOL%YfCV0Qha>7f0I(QtuFJ_MeTSVJ;eGmx2+Hr~kI0GpK(Ed_@nN-fwC_Js<~+PI+6j7%lwSZC1 zq6Ca{LA(4#USu)++r;DW;;l6%Vx?2(6l|1BZVTB~Tk;EfBh(_v_`cf)Opxz0BBuz- znys+FL|VOF1M=&D2nbc;#S9 zKH)RdEtIZgV6rP`pyd9xLZW#$g6Y)YCC&iQb?Ep-awRpy4E=C`ii7qYF%Pb9BFUST zO^d&1eUfx_x9Z}xq@FEdtAXv$vdSM1WDJAQP160 z;wc_h-4-CH% z%6Nxg0Tf@-3~OtVkAxt7&cJ61Nd7-t-qCm+E0FmJ^G0q`6+yPXu(#-zPAMm4m}7a{ zp7R}9mMtCdE)1_6IY3OQa0ito9XNtK_vytp5!@xVD;Tv$yr1fI$VUxI{$sc2PjGsz zy0l4s{VtQkbJgG$TS<5+PydztzqWJ2N=2-#rpPpG1R1i;uANc9dS63s5k|3q`U0j=*K#(@Y_fvp$^220`pe;I~$BUZVVVV)^++Pergn3q)(m+(?dZ z(SSA?J@88e4VIXgZ~Wm%kz=pm06oe9AQgYkapzYvk8WTujA;duFnwKEp*b`CG#v@% zk7nB9@XPAqi@Z3seqiCJ(Tr9QSW-tN5VG8ksrFeTqBt0`l@Fm&; z=8(*t`x5SXGYJLQ-16iFu*c0i3zT6W4P9R2q^T;Boq8h%?jSC=#QWClP)P0*^uD_| z0q|Q$tpUa_Y(Y`?-!tNm=%hqdB%F6MQ_g%gM}@_qCvmQL0SF#?=p^X!U!x-mZr$7# zw}>~zr?`P;YMc_jUh%*j~@aydR2vg(Ct@dYWsmM~}lkuw@I8 zHkothvu7(sO+m9zig-3rJZ0?5K>3YMJo(KXho+bppH6t)bh%-N?nMA6nUlvOs>T7T&!-k8(h(rN$`!zF zq#z@Yjik&fMUu8BC%l*#yMps{z(E!@=4mhD?jb|H^s0K2_M->2(#-__ZDI#LcG{#; z!Zq)`kd22SRcr5ELc+R-;9!C$xx!2Frc`X&zkRy^$p@}5jvX9ADXWT<@a|wIRF7-H za6X{;fZjXe@3nS%4|kJ(t7o>!+WPl3J1^=Z=MK8|fLHC9OU69`xu=(&6JKPv_!)aY z4dQdC1EMWGCmpJxw|k1rqk`%m?NX>IJ9!-P;a%eEO4w22y2KZwrDs|Y9i75`dtW%V zKfz@zoPxAnuj;P~+QqKl9ktmdEVb8h1A*VbOpV&as9M1_cc;9}fX0?#%Aubj5dgx^ zg9cY-Ggi>2qIXy3GXYgw5VGFqdF{HVO@|!Z*gy5CqinNWh=Wf-PHg_BL}VlLI9rKy z&TXRDZZe*4SLUxb#o1f&p?o!jYD?%c>@t^ z3ah##sl@TC=11ekgRgz1j~a+tYIV4~)P4mDmSja&F}DrpUQ+CD6cME?i5rNvZX=Ob$RfP+mM;Ap@2wVTYQ0VXT;~X9 z=HZt1!R^!E3BKq0Eo2+IwdzNYJMKiMje|!-_V%Q*nd3Qtz@RE=@*x;OX29p%KC+-G znIVX1wlg5+t*E2O;_Dy0|EW;G5*&2xP0}C?2UyG?fJ5i^(j~$cB>j^6xd0@817-lS zA3e7# zIeom@r>%;6hEDZogN-yXg zmq!>h%A5$}MER6A8#L~79Y;_7r^63GSc3dHC6p=^;oHJA-^iUtB~Xp(M4_Valzr}> z`bi&Nln>tP*-nM5z<9t1dX$e&!N< zkJ3p(v_ww_mlqjeM+6G~8Tf4ihTN#3=Oa?0$AYWqVtV8=9>^hhelI1{r~+ct{B2f= zJ?m=W0i-#mDr$<^BbI=|{(ueUd!rbM9tSQ?@tP@^<7MLiw0$^5{}C^lO=Knc3nJ%S zJG);sTlU`rLP3C}IO(wV-Qnk-U6Sr9tq8GLDFeLJYcK~KWU*@8E%+@W1d7PQ1 z;gtU#-C~;tco;E;&HIx4nbu(9N_rcmmtq3OY=gH9X9@51{P@jy2l4arDDb}@6R|Oc zH_=B1)sqse+cOyn6Dp=z+7PVE`@YfTMNiSqh~g2riYLL_s&3NnK%bZ=-`I@4?EzV4)V8jmJn0FUk^swub#SqU}uzmylw| z0NE1zG)R0tg(iqYuhK46-sm!h%$fH{{1vG1AL4QeYC?iwKUV8WzecQ@u5V;xFW>Xx z@^PYI)%QFN4?0Kx2i3^pe$5{q5!4A91Ez(e1Q?53i*V&pSaAOje9E61IRrLb&z*_v zoqt=YpumJ6Q-?CE{~#Dp?0nqD-M94{>ZFVTH#^wg0^?@(NC0xt7$LlAea4gIe{j*d zf7-@(i2DK$f5w3M^RGjo37%EC^HQ;_yEl~V zImQ3eembq`@qcg;@CxNAQ?Hi}bEvH*`6_LnHL?Ynf*XQfMVRguNxPQ>TfZQ69sdt5 zs*|a_Cj38SkM5TRx*h?{-!H*q*jSVj|A9)l^a2oF{K%q#7Kcue66mDrP=iUMWIxy= zZ)8RMzR`#Q%~Bx9+;wxR1w<>-NZ92LKsUo@ps^M;nX3JN2;NTP7fI993~ee*;z}|_ znbphxL2FZ61YlnZ3~-RF2zZSEY=vC3KmuQML26$W^`Cn9bQWe1OQS)UrCcYlA>i7r ztO!0a@-9^fohwYRHU-U(|G|#JrDySdE5u9BBKDv;EJ$^gvLfp6k@W;Xi9ZD*=u_{w za8)o@!T7WmasWte5>DII)#6maynAp(t){^tA-tF%+Z*wCFWL`-fr9ZIWZ8cY^S7|v z26S_W?J1_gpy2i&Wzz0`rIy=kN;1qpI2pH>QLD6huM}3i=s+GryZmR;jxb9lZTWQz z;Bo>Fs~Llp>gJ52a3CoC35*5gS0La~%ggDo8dsRc=79^$&*|Y(dvvG$Nh6L=j!9W~ zFa}b6DE|-A8W89MF6^eyw&<9q22>HmISKnG2t5f>_sX~PDKFy}*`$jw=1`;0-?X4> z{hkv&V?i~fb6nr*4aNf#($A+Z;90oeQ8b3^+^}1S~ zzLFrCnBq{(ww|;B=$7vx4&50ZX=ggBWnbTN39XUcjAN-%uVW6aOVoA}awg`;JFi;6 zq5N|$`~Dw$L&h7Q8#LMYRGz=_USVX<#WaGS{@tN;P;R=%OOV;XO9he!)@D$8g6$^L z1a?O{&v+H7Ff~G0)q&%d5QrHucni7#Xq@?}bnrLM!0(KGrO6vwQ$APbxQKk4?>Twj z?qnmJ3xJkB_lF2QLARlXVey-7+6icvYm<0BIJbtqB{ntXH*S+ct*W4_LULaiSd7DEhnR0=xR4<$}Za1lX%IPV!^2)QAQ@w4U#0o*`V|QK* z8x6`lK%?)v`GOC)QBN9<|3B_Fa7+-XbnawG?(o0Zf8cYeZi{Rurgr=l^OtB)$i_{d z>R=8dFaHKl!vlRsvg1x#AF7{8{@D*(4%QuvbOirdx9W?zHe-i6#emRw$AVwu-#Hld zBLNQ7aq5-tTmZ%-{c&B2js@`?G>j-V4d7mn-uUlm2%a_a&m_>gtc5q6dR}0=)HCqN zKpWx~hVE{>F#RemDa?_}cV_O`O4fhD$4NAtouLaJ?tqc==(wx#BB8*%u3qPsTV?w% zf^%f*r_9mZs@iXzm~g;z@%=&XvZk|5wHT`PWkGN1Z-bfcRsQ-)o+;jxF`oPc%7F(tRER;ydvhd(?dqV;?QCW0%x7 zJs`PFLL*ajUp}W%CQ!Fv2;xek4GWw1@3mN*)RA+T;0q+FaXXFOxqK3y0wEHAAP< zmxoqJ!WT*kjJ|P)iqxt9kj#C{V2T}gX(~6p!~NFy_S%5#_8#%|-T=LWev3KFpJQI1 zw5L0;drmA5M7|?yF^|w}{8}KG@nI>rhp8B1Kq-i-P9~?>-=_n@dzN}~~ zT|U$NWsY4YtVD|!hj%`^CP|*fkTTPd{DShr^l@d+mis%c#TN=lu(_HD4-h*`ltz7L zce(;$3~aYxzor3GQPAo&ev1CFha}N#$T4#?@a13|T|O8e);48SvlN-=2~5W-;L{b! zCnM9p2$RiT15gy;bgv`ndU8w%29z?%ObT9+GL_&MN`He_jq%9BSJ0=WSAIb}+?7=f zayX^>;%LM||Eb|CKY)aFgu% zNB8)3-t;x|8re1K2Ho|;(XOClG5Fu4WRzzZZ$djL*GzuVOZb15xYz=(c?MTX(;3Jc zp919_%$aYN-ZBnvJQr!nDeazfjeUxjSosDxJ8?<6GaI7Xn*4r` zeVMOx|3~wREuw-g$W^E&b6fHHhi0R)q@(3!r!pIVw1E!(k@$F3r1N9r%sxLFr3!t@14!;$zmb}sb&5=_* zx>y9)c$N2kJs6{=+@I!Q()Z38DgRX1M;OjML0TT{(!yD8v8jeq8cDukL$LSH93kHr zNQ3)3MnbNBaqc^=63~bw2FOgPtKhwWABXl_o}%J2r^O$v6KAFQZxc@w2TF3{WC_R= z8J2fP9rxD~%XU^K2}7?$XI2_D{6S`m+7@!EiNt<#;D`>BezIb?{L5c&jzWIAgF}ug zL%rc{7wqiiA|K$lB8uA!8v9-esw|ep>~iT5Zi}9D3YE)b?&LV(MCnaRhyo5&`5*nK zepMB{Oqg+wk8be^X$f*~EEFnE#lU`5wa9O5#)f|ofOwqrFHZ|Im8=(w3}6% zjf#wi%HodxcS;0zw*ZGZGbamW`#?r(t4ThE>ilz�FQGzk&3qqZa>Lr5FryL^pyqElup_LG4NLoDeCNu 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

4OHrolcSdlc^l`C59gc6~6YntrIm28ZqO0O?h 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 pu!eELW5bG{ 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

~2Z(?Tyvk4)qGXqpo(w z*id8YK47=55>sESdUWLa*6#MPE4Gd~e5}%{W7`)WzG^$GW`Bow#Y+cPK)NpslgKl? zy|Id)%U?+kkV-riU(yYF?0yAifGTH920zLv+TnL2jgrAF(yxoSH;a`fWM-5Rnt zTF>#(o!#xLcYn>R5AR-lnQP0js$M^Kcz1iYb@An|-Z~~Wse5~Y%2stMN0miXC+pq; z6q>(#-00MHI9jQC+}2U7DxEoFGC1A#*;yC!1}-()*7bNDiJAh=&Yj>{t)jI)CumpK zC-6oyXm`(KOfK46%5>GV@n)Pmvw>hmc8Rjm*t+2`vwyPt307#AjO{<#TBWL1W$eBf ztl9%fi_938ELg=|vRNIK@#4Ap4OaWX)Pt`EYrjv|m|>kxYY1bbJXeWJ*rv5Et&g9A zcH65>c|gJ}ir2gVxUN$->+)Tzl=o1B{(!dPs|kIVL;LYnTDn1gt{Bcv>v2Afs6Jmv zcXQ7iUw=q9OKdJdVWxF5$y??VP3v2dXjU~mVNB~+lBRnyKdoO$BHu#OdXl8k6&Vk| zpjP@noPEiX^*VCiN?vq?cV4+|DP*-IYrg7x^-J;?I3#!uZ*lrT@KjZA=m&6w72&0a zC_kFtz)$2>rnipvvj&xlfwaEnE#1R&I~Bv}k!gPB z#(!3fsr7X?Lw}t{JNaBh6+>%%-R-yyhWeOOE8O$?N|WGGe(_a!<@J@Wr`qSuFPrS* zt#HokYjhN){XT3atD(aOyPiaYLtLTZdS7Tq5vwO+p#dnECi1K~C_@F)6@m;d&KD>i zDwrPRXl_RT$Q5U<8AJ2r@=PJahFj%6YJa4+Sl7?e^77m@D}43NnlZGeJS)g3At5c# zy)v+-Rq4&Pj~anGdtK=?kLasBFUTt58Zu6mXkTrAy@}0#REd`!TY()6f8Ou&f@lNhCU(eTCt{zkjo| zAN6A9z>-$z>ZIMwt^LfbaSvh(G$1y8=L$`GGiijlj3&JqTt~#VT9@sJg8^FQsLb$U zQrt~f;}?{ByJvOQcv$6`={+ODIDKp^5y?Gf>>6cc)jI1pH)VVnvX8a*Q~Ovu4BJPx zxy*FP2Vx* z!exoOW7ZQ6>n4}XJ?Cq^QuxDB?e!{#Htvq zM0R7sdP4l{!G!gM3dng0=?Nu}IK*!W^$9(YG|6QN@d-6hokDs>2fvcyxls!Rd+xyV#^bf`ZMw`Vny?@`+8aDP>2U1*N!hwJ|(I=h?P{RCZ zRt<(9A0PjKQfVq(IDaYkhW+m7HaEZf*_&bKTl4Hh*9(Xzgck9c>b7a>CpjGfyQWlK zHG{^X(6r;29#4jH#{xL8UlsmY%{xdA4enENDVl)8p=*fj<>48 zXr*9!AMkt}Dwq!PdauWbVboH>HXSH1fGMS$ome!CU-%__CAEeVVZ~pTPM$F0&cL~^GP1SE(ya^}Qx)#%AJsDJE#7dZ zs|>Tf>8}*dpMS+KmM(0_s|s$VbZtY9RXIs=ztyI}+QI`lJWNvKZw|y+)l}nq4#dz; z=!c?W>wA|di<_@};+U-h_UwVQP4N{<*snyZ>P`6Bsf!Z-1x4h5&6YhrN~fFIBmyC> zt$h5?n)0uk)tHAfgit)=53Txd)zxHe`>!>mAk_a;l7H0d_felzU>z6Ju9ePz8_H7{ zSDeE#uGLd_rTjubz01lgIW>mH1GJ?$#HcmgpHi~8)$gv22lz|oOei~KO)I4*E1glE znwy)a`Q#FJztF}Yzu#p$XK9WdVGU$MrCE%etly_Kp35xdSd8sEGxSD`qLf-OaN5TGF1KWr zGAYL0J8C398p47qrBVzgA+5UXQMv+)f%k5w3#6o-rE}+uBv`s&v~(X9Lru5G!_B3u zuzwhsCbGXQI5mc;-1V$u={78eQc4?F2ue3%F>-P9*ssmjd-*j|x~Q7Lq$K~gf8Xq; zbCKVJ4c^Ax9pEJw&!son3wFPc%H{nGtO(7${|!QGv3ql)7j#9%e}D*FyiA}%1;0Xg z8e^oKDcp1WhX~E3bK|2M|09TZv!C~N)_+CtKStQ=I#Xh`uU5~Ym2T~4c}H~r8}TH6 zg31op#QiA(h3nD(41xGTS{}TAj$o60JxKL05V-FS*uO;BFRl%R_+UWWBL7pl>3@Z4 z2n^C%#wn#NtPSdJegX4eqYB1;it+u|5NO^a@J9q(+`J^O`V)eh!RJZH-ykgA!hd_n zg1$j?v~^nGS@l@#-$IIUwDYpH_cWgVu984I^Wz}=dqlcA9av$g{5yp9VHgJVzpp}v zLHi#N+6)8V!^uYY9}%*(clJ!=YZ(2X5SpApzubQk{}CGgpCQG~Ur>tkG`8|~8HRn) zU6lW~G}~b4Cu68Njap#FSO}Bw&wn-E&9I4Ygem!FVwm1ST2B$Z;*tgK6ocvK1?v*_ zgP`A@D)<{OWJ_$UC^|Odw0qwq2je!w*^0E8PbxDQ&RPV_=MpFzWCEPP2%&GrNt37f!h&bM?mgZBf|-E}Vo%ZeD9Y`MWqAI46%>Y3zFI zmy8PM=aEWk>@Dqf3RS|1`hoYJ)dpwn4=iWbWu8`>(cv^c(vR{@Qi5}O+V<1&UZ%ZY z_&#~b0e*F242kqDV}HR3epZ!nd0lXtA0myuw6HICUE6>Yeu{s3CKFEeL+PCS9JX`7 zIe#v5f8@bsfXM5w<8rv-2rdjn+Bmca7F;Jd_HD5)g*&)pK(*0}2K!~6hk22-6D|Z0 zqaoKC#tVs4A|6~0PzOF8o(THk#PZ1H)9gKeRtT;MTpWe@>VLFf;i(HJ86p>cSd>4> z5t$Iz`cINX2FHc!lMIo;*UdQj`+JfhGMW-NtDC+~l0?RLq~^gIy>b2|Nn{EuDumCI z9FYl|JTpMAW$1CflQfZ8i<{rx!wX0!xgrxnyVB0Plbn%Rp_=`*?_{yzBzI&MXPfG{ zP7+7PA9LB0w11Hqt>u?~y=~JlKgk#$dC?|MGDqfVXHL>ahE6gOJ;@Up`j};g_vTO1 zM&{DwyT9&>o!Ve+C+Q>8M!T-&YH2o><*6sBBs04?n@nchldO`t^nP zM3T|$!r3Wj`R++R$;1#hPclfxir4RkFiwAoeRsz3^MAfI;bpFq{E=z&;@|GKY0`JU zPVz?PT&RYudB0oHJehzTCaEX6B3CuhY1)0=mL>kzK1mgs*01wGW0rIFlPr-5bY00t z*8u89xs%k8Iip*4n%2|*QTZi%k`hK%KPApdMkpK>xV?FP%4^++e$>}cPBOzU*d6n17oWohP3ph72E#TwQXK914~@HHl?Nc6^c?W;DuF*rbGbk{vQpOo{FNU{5D0 zB6HO|rklEFm>|*;VRc%>;Fo?9Q-wJZL+P|QTQ$sv82U!JmdFQYLkwOAI&l~q0yCnF z5Ss&&A{Kh>!ZU+a&QKlV=cHw~@aq)MO~9$0MoPzw))N&|gl@i|ri zWI&t0t_&vcfp%$ViniH3?9GAs`&TSl(-Ic|Gx?0#Y<}+K=L}5a@2;yh0K)RJ19u&2 zpP=j-YmI*^5-KYgO|#mjx_E`J`ieYkyJD&N+)?N`6x=uWsNFM*rFJ*{a--WAw(z3o znbi{MwVzsjzzq5hZIhjvnR4=dm5^{|t5k)Z8uzY?4`)_NcyefAB70_q+<0cW-c2} zBHubUR+~P9>DN1#3oW0aeHX$jGFYc%jNW(O%e)4z|nl6L=-zW`jj;kg@C=6e;O5n@R}DwH!7uuH7@QRbfbbdSNbK* zXy`-*ou+rtg9@0U7+v|TKgXdXRR*o-aa*7#6|mEd*wA|lboh0=iV!+ZMgJJl&~*x$ zddW?OZd0&qc;6TeSKI{6)+A`S=qBi`UG{%w-9|1QuDm7uZ>*b{^evnNhs$nX5}n+b z@GsCxix8b1sez#?xZrkVXdQ5wO&HgU3~ac(CeYBFXo% zElnx(wtpT-;6mEfPWE2)LKW{8Q+Q2uP$)f%sXwz|d{B7s<1ju1tU7WS9uylL3k(nn z{?aC4xKN^WR=f-h7m7c)85l7#!e>7N!^hW5bpkMqD3c9}9U+V(ihdkFFrX+$2M~-V z3hk$f{>1Wz-h7zC*m5z>lBjFvumOJ`jRvNN0d4)wI{&V&1{!;ytgfLtXx}vp7+QTG z@vjMyK+ON(5LlL~*I;;n6P7kT>uC_!@vE;dm#|&?1NZW@(5{tJgHVQ4;?gd>eJ5@# zh5{sp3y+pVi4n4K)_A+Gv@)*CtJrsVy2+Y%k<_j$5rsWGiv>FjzX(*E3-o^#mw9UI zZJof;j-YB7N;iwroprR1%*}>MV#?U}qwcwf`eE?4w01C(w?Z8;nodF_Jk$^4x7CJI z6x?{|)R|!%?|ZT?JU|K6lqidy2jObY)kW3ls)UFY`t(>0UA!pgPAb+{n3d0Bp+C>j zw5!U}0s;31x^$*>rXTkCZs~vSB01m*eLHjB#@_Q_&T|*+*2#38UG3EJjv#IvoH#Ip zj*szVdzyVOsT-U>Fo^`sHoxi!;L6}kf_ZeJh9IV0cQ|_7OV4CW_oZc!7M*q_V#@;W8duhegm9TFezCZJzc2I4NfeW7BnO-m!$~j z7)+wswxuoNGLwXJ3?@wL-Y?(Oi*O}ylEIv2-WGmFWS+d6C49kY2D41d=I~r-3M6`g z)?SUD#c@{zDy@x&`|N+zL7qpez!T#L_H-V&0*~gul%odbc@TSKj_Nbd!x@kF=j16A z`eiH@buLI@jD626z4zf~0{ZquuJPEFy$Z~pApaHq^K;96O?_ZPA9NPyYoy<-KY zqrfnUymt>bm%xAYF_cZYMzu4{No-bU_Q#%#ByV@KdEvnGatDji&GFCH)b=Y~k;t?& zyQj9TbTNWvgiJbXp^*IBfpjJcA-T8x^6vG=Ze8PiPB|T$WaSTba5hAR!z(0B*dBQ{ zPK6Wx@16}-LA$rTb@Q_5W{#=>OTEuYXJeO=mS@bF@T`Axs6Ikfm&)L~%#qGZUEJLD zdYL1%2Pt;#`4T#AGPDJT(`$fcYV5uR2L)|`Ik$QB2@man@y>paSDQgQP_&#h;toIy z=$E;_R100uOUNIg+yxt#Z=lo#yYYTZZZj16ZKYeX>rMs}mNO4owu3E>Sh?{FwwSPS zET>CvPTPOIZi{tyzHK<2g@oopHLdphK1rGhO@**`>*8I;&{7D@YqjB&FEkWF_mj7d zf(`2kItlSbwX52Krjo;z%}`MpJlkOk_4SD&R>2*CO3R44cP6hBYEG#6ok&o50>4_n z+Ilw_NqWXxLTiQesFGuc_TfhK!Wr-BmCMQ&q>WNg+*B}MaH_v= z;kY7j>+S~v99cwIUoHm%bd5x~y&mw;ITGH!EqtOs2okzSz7XpCB7FYuC0J)K^DMy; zT8)38J8S&rY7$_<(;^t%SV61fv^dTq3u;VwyiWbjtBB$@pyGtXCuC)9oU4JV6G~{_ zywJu-sR=63Z}q#%2s^({dRqb%EueRKZ3?Tu27PMTzW1MN{?`Nx~)fTDlX1uXtKXaRD=dkrPJyqFJ^y zP@95I9t!GnY@Ya~%;3pZ4A*uw)x9GuJy5dM#7qK@X7wj#t-CcR`zDPoUCOMuxZ9^R zc~=}wCfTA(GF6LEFIf{T@Xxd1}K0~`p9wQK@ZM@C1{^Kh-jES!jq`eh-+=yEa zL^4@M%V{PC1Cc2B(2}BAbUY)e84>|Xmr9*9LCU1N-WYgRc{plbR)!QP9pfU)k`<_& z`eta+$`#r#ciBi$TICGD);7V#lvaN%19aL(ZU;A@v|zc;`|SE_Kbc`~HER67vJp(f zelfne)#)mtuXfTLuWT}&UhtubY#Uy!DK|r~cy>Q2N*qX8{Zf`Vkh1axC8ks!evJC@ z*ZU8$v8WUswP^&DK9r(i29$1;%_CMVJt-}IXC+E!%2pIh{2ORNS&3r8r9FQV8Srnp z#M0J?4ET2pENzF#fPc@x(*B18{AGBzFFLr#IfSL+iPc^iKMw{}Qi+1K8f@qzb64x!B^`ewj6?_+|~{eiyRk~JK5J&6J6xG2r5fkJUWr{B4}%eP%3g? z1eFHZLHEfZCq{5-M1+@uVGx@%B*KwHqtYk)deuLr$fXhVYJGqrr$&EJenW}nhP)af zC;K{Ier720YXrSoAE3yy5wx{KfFj>UP$`wC_o8X!qKeGR$zpS_DXklOr1CUf4MGM3gBpVzHi4E|>#^w3`PnY_foF^i+_bp;81Lg;CLHG7oMA2v(tk*{M(vtpYko4g{+J zjcaEhSOqNKl@Q+i1_3MJ!w+>3u*^;ou-f7n%x1@egX&`}YlVNYP@p>3#1h6lw!9WqkqkU)cilg{n5 z*djA^Anpf7yg?mM)J(LNTK~j7P)?ecR~QXzs?J&Q4?Z)^)B6}6!~zvCx|yfd2X_oQ z&0zi)91b1;BV&JXcnb*Vm2vc>Sy&1~NfG_Lw4w6S?p_Mc1e`BFhZV-+P5lA8%mb~O z^P8wsBZC=DGpKyxjCP#${5_DeVSH=Xs!K&UFi-_di06n-%dfRUD!S5T5i~{+U>VZE z6ilJJqC#Knd-C+ailksdhx=`ytD>UG?WD4ytBUYYIP`y1gwDbquxV*EsgKvoE+8oC!m>>z^;IqN}NYKG$gPD;4=gZGY9cXey@}dme))P)IRTY*a>a@=F5ZO+;9s1N2 z5?XjP0Mr!#3t&T}gL%55hr$%u>|s6q1qiuUS{9CJ=#AuzB`(I#V zGQ9B>ExPpnwO{LJN&&xCwI-lr+o5yhYL8w5 zb=%Q9lr?G*V1;6gLTfuO1=n?7ur&e@Was9wN)DmX^txqmuE-3Ad48dHmG)j2FMy?* zfUcE@79R4NnxdolpjBwW(RBdBh>fmGc_M#2CDmYb&|zpQcV1|x{i#Q2-vfGETBCyx zNF@*|wWGz?YDeMJ{<gn z%iMLrBf>!u+ESIm1TYODwpTb90-D7ce}lmBaG+#efaBsoN)`|1>-5O>t#x}x+b36h z{^KqX<|S=wL)K^Cxcqt9eY1oIilBd%l~HR#3a_&u1xFP?15$7%d}u!kuQDISCKW;R zQM7t?Xf_IsW(mw?A1#Gn-P?e4$Uy$95zdtX1qO6q^@mx|qjBheu(7SW_1GYMZEJu&yj%-Q&uB6)b59c=(Aelfmc*6ASL*dQwYNINW?g z!-EL9(%}{yA}lXHDjjaZA#k&7+-|r9hk$+Gr9&!k{|%w%91S<$5V}bv!+ke|U7VTP zS*|Zadv2WHbMrvX#d$ueaGQS@*%*mjOTx-#RN%e|>zid5)j00(PiIM+&-Z8wSxYK@`c_Yo8>BcsZobY1;&xAT<^b-t#Vd*grk1n~JZq4B#M z+zEf3fS3qO$CTApfS3pw9Y2r};qn*(%#Wb;KgbAuv%{iOIbeQ-9Dd|r64D%CfrMV2 z`~^nAoy4jqFHl%-=={>0Uim?BJz!(~D6&UzXa$PwjhFj(#b=_RPQ||He=ro!8(BM- z0#Ph){BG{o;D!SB zvN;`$P{h)R7>IzBL&23ZIVm`-TLEWe!Vbu4!Re04It`}c^Xq?`pa4Vpq48LN^R>F+ zgiR?ZR``6Sb&9T+>n34)3A;{asY-tc{N3N2UFoe)&dIUT=j%S$yFPCT6Ci>n>wqff zqu14P6Li(4Z-M&R>q`kxZ~{(EhKd&O>g;v@9-0Cqw}0PeZ|Xcp#I|-Btk-1or0G<8 zt*eo?(9g(Ik7s`roTO6Gj;fI&ji7y++o)Yc@^hAUKJGpJ&)X(vO>_P?S~;Gs-&OAi zMp=MU6>o<+K$nlCY32jXmd6o_JK8d-idVt&K2v~4W&W!ya_a%cq z8OD-7p=(&_Mr*brs1qtZG4w8CFp5$gobAU-ey4m?@e@UBf&QG@l{^NROc>g-^1WK_ zqglUa1w(x@mV|TcD%8LuNBatOz}G%h_dw8}n+3b_iKOjkoMmR?CD^C*0!ZW?vKyMH11me^4M@-F1&_wS=vkyb{vc zbvxfGWf)sE#26{1R+?bW2>*0|s2|`_fI!|kg~oq!jA*Aq@Aj1lY_gzDDxbZLV9=TX zj*Di{v`I-F{T<*ofOV))Y!D$>UrgMVEZo)Pbvd;Pl8Ta8p3n64UqY2#}|NE=%zo086AmGX^ z*#dv&^K`YRB!v@|Cs$hyUC_8AcznsZ@4^$8b3|tl+9PEB4epFT=}nrDT#HSV^brOX?PUYljDXX`Fuu z-dQ?6@jxk#80)9iRO}d4T-e!DYO>-^=QC2A-b8%TIC)!ck98M^v=rKG&e z(+KWn*XSBO>}e!~-qP7oZWQcqKtI*zoWxbYe&^__z8?ts4#7T}pY_Zf6vNlteo}6| zEJD4jmoDOQt`^2p5pGcW~6m$4br2Am9hl+oSIsDf= zHQ!P?zs?<>z*xN*7rG4GzwI~U+E?R5ASGk@inz|5kHpe|`9yRNHI}sg74cAGNur;K z2UaPq|IB({kD@6pd3<6z^Lk_!uO#_IofjWe`03Dm%5 zTxC`Eqgn+-^Xok6@1BopEf9Z^hO7LL{ixOf@s<}Kv&oO=bl~6i_4W43{_~?=6PJE! z_vI#=z&`3#L9Oju`XQ?|R_kL3&rE&PD zDmU0($zB`xzWAAM_q&ASJtecru#MK%b$*eSmcL1e;_@p&7?n{$W3ucx4n; zEjLR^w1t`LDdi8J>$wasO~2f98)s?2eC8QzTCS>;G<>GeEYDfpI9^H_KGT9SOZmcQ zM%JN{YyC_zxg1LA!e@Wl%OcLElq!5?7?J~vuC)A@amY4vTPQ69K2oA3lokRX2}e69 zEeSrdq7{_3pgt0)@6iUZXJNzU{s#-dz9r!^{bTQvC>(l9vc5xnO_00_d-@Mnq_aCH99{;hD=bs2Z8Q&V#kPt zL3qg^5*`VF@U4HPjgASA`b_w%mBUlgk{1qSq%OyC>XLFNH>y z&o#>8?cBN}RWt-S93M+tQ(~Netz$jXsVwYkdm3&Zz;!6RL z@Z1urplkQbdtj6zATdG>2SO?M5kXbME0|P=F2I(;A5nj}Ro^$OmtK~F9zmUXmETIs z+)tif4;S&50v~ZMzDw3u3U>kcNjRlYM+9%y7m`eBdnwQnnnbDN*i7xGA%`L!Q9Ebt zZ)EYLbh46aq25v_=oO}*;L_~6ZNGHF@_~?bBXLXjn+LACrbPIcVCYcm z)Hfx_l&1b3!Mp5T!*3k|amg zte?LR3TByPo~?AVJeA91k(U?3J-dGZN+$KtKdIX29`P~zJ_}@Ax^d3n{kzokSUC3~ zan52HSFu>v$*HZ3iGo_H%{qR3)T}agP<(qNrAB|EXct+lH_eOqKQ>qt`XWhFlvEW8 zf{``2Eh!0w!UN+`7Qd*monaYw?|SLdS+rwiabNbiqsnEdpr999NGdw8&H^7-*4ld* z3MlTyTGqLF2?P}NBB5EffJdP(;@{R-J_>sgPYt53v&o?N7a3|Yl+4m^xz;YuHYS`> zKoNhjPy|<9#dCIBWqpU5&5CC7Szu*Vsren7&-An4%5*+b#BdZ~V;6ZeGW;yQa_Q?! z5GZrbLM(H{_SkTlbQW8gw0gHSlpD#=I18`Las70?Y_gdXh1b~mewtf~RWn%#w+%(w zNaKu2?TT3_=0?_KnCDR+rDhh2yOBlL5+8p$hJtToHCMMBT8N@BM;aDj<@7cY$h<9W z0Upkt)uh;#crS~aFCsfMsY?W2EZ-YFT8)C?BgZuO-|?|wyaA2Va#j%vgQ=poR;J1* z{3Ub>(p&`!e~A>l!OMk7DEfUS&HCdCMZm-wUTNOL)u70CB!o8#P~Dyxujm`_Re)BMM=Ow7#Sm$aSI6m1y)T6}^bO+Q#cP z2Nc8-G05e8ZM<|2MYF^^Dq??iecFGMjbd9WA=ErKFY_XOMe!{W$X%V^&oXegQ~ZEKgG_SH^p*i3=~TH<^=a8NLN@bV~(ec_~0@Y2@MxL4PV;+3Mg zzs@%I&|eg*66f22gF=;ZXj^|k=DAUnQpRe1&OqUbJiL_?J# zSHJ~^smmV%jE0mvmi!ThXX_t!2%h+lpX2N^U0-mGR~h|VK!2E0{Rx1I;mZ7TAGg8x zY`}jCC^RNSYYhD}0DVZ&{v1G$Y0X~%q;K91>C9iAV6!yluMpJHk+zLz;+Z6V02E$> ze`cj15!~UQ7Yh=tnkRoEH8bSND7#9GOjjtqN`&af&{BDV^Z5zx0a_kN_%Oy$N|n$L zwu}<1MEYdUD7#9u2XjRURw5k@7v)!p;~P0effB2P{$!IVu}bo)UcO3yNu(y$C9=kx z;jHH&!z5&o8A;T`3}lfx<4_H<%Zx-rrFQWu$-v&jF?D31opyghJVl;PAi;J2NZOY? z>#`$vtzbt43l>D<@Cw%Sef{30&0wOwD%JU_Pff3e@0{yR#e-;A&~Aum_kxullL0f& zlYz#7nZXhK1WcSds$5c0Y_Zqd%j5{7Zaswpw#(YI7029TK2N=UgP8_j$5zZ4hY!r!_7}hF zQ4(UFIFVDY1M;}!%9d+dirL`Ax9f@#BGlA}xa1&((M*3g$|xd>|8ZP|P2Zadj^T-Y zTzp{gh)xmRSS(jgLHRf;H^`%$Axj7EtswK*BEsO0oAJ$b z1Qegs$v_(Ex)^-;0S6OnqJ~F-pfm6ooC_7ko4~gl8q-!j%|G^)T-(Py0EhjFYXe-p z-@2lIYE6G-b3Nl4fdJFvMJVL2C`Qvixh&hbXqL5y+a3PVi8%TE+>F~nFrUOB7^uQ& z#-1zdwJv6?tXw|B+ggNB>>b2ZsR65R%Id`q?X20y@##WyMsJLew-VQ#YUr1(o{A^9 z7LOx{4`4PQf`Px-L%g`@=?9oHxa!HpwBvo}`SpKggyQsgvDGX6C!c&G-fkhg$+v~M z=6(WVd2J2ccC___KmPdRkAL`+Pht*j?V9mE_BThqM{u&RkSK(`?ZHXR;01uD*LU!M zyfQ={(}{q5GTNg#B-Wz(+%{2M_|;U~(@gaT;!DkeOkWn`)_w+-HRWu_x>w%^Qi66| zcaMK9zP~-$q~y37pK+^=mB!W6;rfB3>g5@?pblt7^WJ6_$~sU?sRLH#DAVYU8wfQ- zl2D^Y(6#8g>aUu`=KqYFuT4!B=(CZm?i- zQC>wJu1509RP^N)J%Fj2{X3Vj7N-kn%S(UpY;5MbLX5j?NFQ4}(`74eMbmDsY*ft5 zOczYqNbWb(uieIhTuh}K<1|!`Hug1XvthQ&I=_S0T5*d4BOF_@462&BET(FQiwiHy{+fP0O&A7xW%c z)6zf&>!|I3vBA66;49VaU@_C;VAHbfKrwA{ps|={vlUQSuA1=bcsS0edJQEBhghur zb3eTFxQgKhddMc`lQ=ezTw?CRqppd=!x(I%v{8H#Q%4884fb;>iP}Cmx;1~j4K1c= z!b@LyNRkdLB^2q#IQ>>ql2&XpbHky^A{*4?xU|iDH5J2?bZCS}*Wg5FhD4toK6aSz zn(vLN=FOCp9~V0?br86Z54wvBE4Jnxf>tBaC+WCfh=_?DNnv$M}w(R-1octcZ-INH`>8;H%TBR4h%x;f@OvTZ|n8fg}P2Li*S` z0s8q}56Kv$1+f*v#E|`foMX!Zi0h``UW#U+Yr?Tr5K>b%UrgtL8q5JQ$DYL09jME8 zurJHT)Z9^e#xX4i^0t^4R{|rZ-bmcci@i`6(`z7w4s&cVrp!Rwn-_naL^m%nZ3aMB zywWNoYb~iFkixfCL-kX>M-m;=&3#pZxh>nGql2^W)gVx}qlA-4I@bC=jUMbzXD_gR zzeYU2BU|_b354ur{$L6%JK#Sg5rfp=Latl*AR_KgY(4q~4+uWl;!GU}Imgp?muBTF~it ztUFLz+uq2e$GNaWu?7OfurA|Dh{QJVz`8fh6CL)%1|GDtT&!;tGeAiHypFKVZu44} zT-zk(Q0+jMwkV&kLrasQ%7ELlPqMgZl`0Ab@`EfW^4RvV>t%mGEbthDt&F8gkQ;;d z6RKv0UXo77_LN?!}UWj(=p?)L%~Tsx^K3du_^DCbt|vW@a0X$ zJ2q!bJehR$2r5h*|xYC%6^ZEMdE=c zLfD1apvz%0Hhc%~bA@%DW7BmE!gt->9U}A#{5Oed?+w~Zm^8nG}VfVJa zrFci86sA2YHvQNZ=D0N#9e|?J{rX}VHBf06+uCTqsq`&(1HyIYbb?&v#z4k)SNj^2|?8n`Fty7rR# z1=MfD&P#v#x1$d_FX`Tn-gjQoyB#^yXs+o1SJFDBuT1&H&wo=m0O?qP5&baIce3>H z#)Ou&@4Iw-a0IaErGrSO@A-Xq>8b@2HskFrBretVkx%Ke#g5)}L%L?c)P03%6@1f8 zx?#cO<8|oG5=vaUVR1lsK}r`a7*N@h9_elc)8T)@>&;RQJzWt0@j|FH0KDA+q)QeI z=qfrn`jo=B8{0V;;7?G`42GUGSAUIxyQ7wa-$g?ki-w5vGsv6z;*EJ%2g8F$q5 zLB2I)HYL-uG-J7y?K(sGySW@j@&=?W6UnKbf}@o-&H3F7@A|@7{?Owo9PyU6_&xnF z+T%TGs`upT>B*TKVl626v;ja1^d13%q}hMkx8rA5@&OL?Lq88K`tsO{sP;h0AGJK#Z%8o9Y5s}25UFE(M#Fs;lv&#hYb7%@^uM)sM}(` zh9z--Y9?qi_7#_(mJ5Wes+G>Qe|iFTnF=qRpOFe+h4}hZ0I!grnF`>wAtok5x0kMe&nWg~fnwt zTzOC#98n{N9@pPWLBTT=Fr(h@{M#w8&gP8$U5ywvItm2#!@^QX2f=wKDw}phKRmubtM+7y7)zux5XF#a0{64j5En(Z)1iw&gmR`8u>VTLJcwh9ZgyjUK?&yT0fw zT5Fm=wmK+;+nT4Mq`;`w>JCRAY?XazIkic;qCzeAT9B7F4sJID!>M4B?%V_02jmg2 zY0^DBUV#7=Lk^m1F$YZJcyQ7k;%}sx)yyVRi-y!+-uQta! zP&F4Q98J7C&{#IxNGIKzP*1oU;k1+19q!gl%W6fUow)9RYroDmh2=*p{uO;4mAKZX zwTI+t6pXgmLR>Y$wI%g>hMPV7x~3*aGj&DJ#a`6e2#~xBq+#k8O3Ou`2_MB-bb~C-i=i}|9lJDb zh_Wl%m*O3LhNQ_U%B?s237ICaC^IK~O=|c6G3+t% z#o}k5jo^Z;a4Be=4ngocg0x-&A-B{u(_||{Ymsm7tr}LCsDlAB6m{*;ml@C1=3&E zS+DHC142Y)ZXTft91)x!68(+$xX)VOgVB7Q#tA*Mbi!ptyu!N)4 zqU}4FTO?Y%eTQ-rqXpY{sQtMC_En3yGu}ZFr3Ks_stm-U1=|?}(dTldPX{f?9%9(g zYQcYX#PEkXe4F8rw6OXP6`V#O_*2SSWOGxUfMce}}Hq4Kr*5d337#*Z(arPr9SRh)k z{RBlZ(-$T6Sc|`(IFPJE7Ft05#KKA(C8mGH<^wSH9YI=n{s^MpB2wUGW9h;=n-m|9H#41Q{di#?{)0{UmL_er!^et^a9qIiF` z`27*&rK^SQPe?0VEpmUtU7F>kscgwVEqs4Mcci#}rD;KY!8e4d|b7E{LiI_3vP@ZZOJ6 z4eZ}RceYlB8rr{ywE*rlN#CIuITlSh!eod0PKxV*0YGj;c$ zW#h1~|2!M!mEd3GW8G!#@6N}z_Nv;yOoC#bsXaw^O7ySNp|hEqq76;XzfK3=3|*zH zp%OL9`QPM&r?v0d_5Zi|a43HnY(LWfT|U~0?BC~Oy@mM?NnpoZMb}H>kSpnpJ>T`Upjg$n&}At{&aXTozOp!j>c|tO6?D(<8a7DM+W$Z@^Cnv zexLf`N6>EL_>W2GL;fVLp#Ss;((Cbmeh3aha}wHrc?fSNs3E)BT7`fA^&uWM@tjVB zP!#{|AwHP?Z8x|7{t$;Jc;>8LTS$Lt1~P2_;~`FvqsRlpA^p!JHWXxEM|_v0Zrb3Z z>VM@kfG1G~m&EhG^BI74th0Nt`u{x4q2ipq|NAhDWmxQ4#{Wy=fetlghJ~A)SO|9) z>2%=R4lGty-hn}C1(kR77}j^j>lY^ldl3_yF8-2qlyk^`X*wo!{(o6IjB^!m z1$;|74&#$vB)>cfX=Cnn(X`er_!UXGgDqw=ve_`guS{ZsZ;Z3EXDZ0o-^9|?K?*y^v#$6kNd$-dzB>yyB^g6p*} zU1H8}NW!68eHq|AgR_VH8B@5sXO$?_jcM`8IM=e7Ldbl_M_re6;DKaz&0d((fAdb&T$`lCs3cVElLw*FWi z5EOwl_>boSozwLv@^Db~c9<5M)<&k{PbRT|FKJVOm2r1o{!|js-TuPm@|{T-)}KGE zQPV*`h6#5OwDem&B8M=0FRdGxM}Sjfdt_dVlB}Edi9x-vwgo2Fa-bLVQF3W4NEBwd znyEL-R?UBlD`uX<0PC{>*uKq^iG7=or3k$1dB%_}61t42w8`=)df-UQKXn062m%G0 zo+cSsZq9L}xI#u|?H%;>#h(gmLnXLv)*BmbtUK5+dZ3nYy91WRNNZlpxh0hKtw}^| z0Hn0p{#vAn5y? zw)1}^K55$8mu1DLR&he~UF$#(bvIG&k}wbS)|yMQJW{uG(jrOoNIsG!l|*?UcTdYn z!aUGl?3K(!Q3Cr7ACW`>NsHmo$TSkUv?>nd%}{hSXlZ>M0I&5#@pWmT9O&5&O5~sb zTQgcEO4wNTfXbeMNb0kvUKSFLq&|CU?z(?OZIk^6>-{4By&~FPLKS-;l9OSd8qv}w&g*T*g+DIJzXQ<9> z@(7dy_s0>>3p~MzLy*?;2|^>5*7Awmj#yg7Cwe<#X&ImB?TDpS%=F{+U8cSQq8fi* zdVB-`MWoF#AnIaX;Pdhsu?W*98(^jyDafSFGnnB5*Wf2^p_~$Ye z4TRqDuza;A2HH3gXEfGNoy5mXo%=?sp5+ZY-V*i04}LPX^^}S*9yo(7Ap%jnqCD?d}JqD`S7aw>G6) zR$H}##m0G=nkrXE1FrqBT}!e#={m~zcG;dMa;w2pd&WsA$`4n#cZtg`e|m{0PFB-j zn@h9oVhH)O958em*i_in*(|I>aPzpRa_vkYh>6ao>tbzbndDD$+jiSn&Kq~nN^-lj z@R}_A_oz$-#zp73J|NfwS1^AvMcX{}xGC96cKJ&P*w!Vgdo$xS!N~23d`zg*EU-&A z>pat!x!KxcdNMXVwhcAx+*lH4Gt)HK@5Ow@2hQ}W8J+LKu|Ljt{>+rkjuUQX$SS{A zWkYbR=!UkD-2<b*!jhv}4_zH>G2q~7%$u4G`xb=XTYUp>7x&>DYpVT#2g)Zv&C zzwXn!WJ>hQ96;@pDYv1n9eqlVCSUVITWP=^o)ey21KMH&MB4^UBrO-%<+eAU{#hS= z>GR8W{pbrn$F-+TA{zZ2y#DeRzTn`R{6hG><~4cV!SCAF1iZuF>wqTjdkl6xNSA-{ zMG<}&$JD4nYqdpO}+ zyY!{&qg1otjC%9wPxD;vra~%WaON<6^yM#o-nIN=gk$0}uK3a~{Kf-VDqe5~zxM(4 z`gPxHser+m!R4c${qugo7e4x;@A;2S?m5T|mjCmib*YxYxpjZwU|GDsAAwZaAjV_b zvyjRhL|9B{3%R9e7Ap5Y9Z_=Z-v22Z2ge5h6Uw zBM+%cLWIYB52=tsgvUu9Uz5C4Tt80okSZ)h`f-xS z*CzJ^>;*2k^00qcq>2mYZa5al^(NI_h_ILsy^xA7oLPLpie4TUi&TLj!sE2yq=F1* z9%#W(q9+ZLN;AZmoYdndB~PvI$w^P8`V6t2fRdTx!joz>oEf?KnUC`$m2NomfDys| za@by^0uJ{XAcv#2OO+fVERL!wm34@)Xb;*hRd-f<0*T~gxTP8rF(xMq zB^8v2F*$#2LsDId7?XB-Z!=&o;a~VkER~puF{_SDq|y^-Cg{$h&Yd>3uTR!n&*ZeJ zNfjw#J#qWdaZeJ9Rm8YeM=oONiWryEMk|)GICFVJ0$$$iZK+t);w}fAqazEkw#AtR zel8%B=jpTij)*lbVqE4U7qQw!j7vLxb~C^U{)KT*@OCu`I@! z3v61u^EI(H#u*#hy8Q%+TP9m1jI5Y7^ z>a>-7HT@XVb2;rLVx^5(U&MVttiKWCcG?KUf*dg}rwvXl&2i=unwi6~gjlL0#^to3 zh*f_(VqC->MXciy<96Cn#JV0aE~gzutn+c^Vt17Kb$=Q!mivft*qL3i><4q`<|lme z9bNOJI1V7@WrDygzoDZY`vU|{dGVqigS4~$9f(UYYX|%cf@5g^6pnVPzejOf+EG5E zD1m~9r5)n~sxp`L$sx2ee2?IsY3KKVcnN>roz+h6nV$J;C-y*Jn_^j~K*-vG{SL$} zX=n5R8mHz~x5bm6Pwj+$kK(qpqj^9<%7$-8JB#-SZbLhP2LvRs^rrRAXov1Q5VxeA zvLk3HS~Hja;V$i5eFx%}w6k;ojm0|qX0(HIkKi`6V{$+k<6F><#F?J?YscR}zs!F- z`=p(A0|dkN6n8J|Eu>E=Us(s(QcVu3oofTsW+Cr-s-0y64jfrFQQEmR)3fljGispk zhH7mMXVq~_+R-#1!F>9)pq)emV!W2yt%Q^lkJFBy0cZQjozqU60|-k(J6s0H7%T+s z9GU5vzjkB{^waD|t(^`7{W_b;C5nG*XN~}PhHGu@qYl9~nX#oLtz5StfMz)d{X+M9 zvYmsV!8{j%Tg-M5f)=wJg#efCE^se1+=ZZ>RHuPk$#oinrgB|}0Gi@JI9G+cn&&@2 z(wtZ76feSiEZkzcC$VoW#h)Obgig#ipOF70DA*q-(HIU;XIaLbSeJF!EXuB8Lr5_yD1Kd9WF~K)hF3El;N2K z<4W;Qth>Qi*|d-*dPC~&q-ZL)S zISka6@kK7Q(d=NZq=z;hhk}98m^7!!L3o06AzT`m75I@Shya%(hya!$hydkl+~~px zU@VXv(EO-Gd=jy)8NQFR>tr%2OLc8a{oqPJCAZ_sA?rG8TY(?A43mEa?k6@`Y283H z*S^617%2Tg&p_z_y2F_#VT;LG4;JDFuS?iMSff(`nc7UP%=RZvrLHav;=Uy#Os4g* z4H;MUI;SOk6$eL@EIR|YGSPQOoUYWqgDi^-%wtn!7M?9Wp~w(Qj`6Vpg)HM^F;rv* zWth~tK=AB3B+VJ%aGHPTZRqU@N74iUFnz{coFq#Y4wWShhl2Y|C_!Bk9&>%?DyQpm zaIj_Ex~d_QsaxeEY%7<|pSz>o&<^tQ)P z`dV=~8YF(5qeAK{#zEaMJz8Ht4$ae;0O4G$JVj$vo}w{odWH0llH8I6RSR%Xu)CgI zHO>T$3&87a%6V(14{j7l$6;&}V&CT%Mrd#y;aJvQRw%x(U=Y>9f+krez-NrjC ztGB~y$r;5C8_1m-*YY$12CQigo3Pp3pLA|qOWg<>cT&4HPqZ~^$r}OKiOqqvB#u2e zkelP6<#Ggn9Gu`BSj*|ygYPx3Wp@M|@SJ5Xy0JAI6fc}^_6Zg(-y`4wO9q@7_()`( z*AhP@xb-HrJdgn1S>Hj+jVNqFOV*A9R#UOS^5TmENue- zth?DCVe4Y>Aa{hFHkPd8324P&g<>kLsH+_yme;Kvn;lTszW}&2ojsM;T^4}xWa`v5 z?<{LREhcM9Ed~ZMFGV-<0k}S|jC{qC{IuBhiM1$L5LhdpaJpHsILPDj0eO9rEsW)^ zPi~NZf0rfu0GB2I0LPuwjS_(-Gq3Hkl|z*oPdLK|3J*Ne@-W(Wn01Xgw>uY|+2-qD zpWW5f=ggv#g({g=em^*xb_F#ADk{&on9q}$YNd!cpnQVEmet+Jm8_+)^NZfRTA*R)+2L=IMSP}UL!6PKccgG%kz~Aa)Nqb zB|7Y*+lSYatbw|AL0*VVU6c;VV#)$Sc6(W8rsM@W&G@?Emrk?Pnc;0=-w4T?V@A(^ zi=k(R9vZqcM5%igN}Stfsb_;9RZeL5QRM_Ir-Wonnn#)ngad|VSs!zYJlIW7s$zNQ zH{Nh1<##xDsN>qs4|#tCwEavSAc44#sVG<^k0>4DaCvW4GcQG7lCP1~F0Ai8JatmA zdHiqJdg@9?B#SB)1j_{M@FU`KSZEo4)h|_04(Sva;i-aha8wV3W{)>pP~aJ1!wc3# z9}PL#sjmDE|06MK&_0~g*nv<%xi!Zov8P!w;yxyWux`X7okU=kjk2Rd zAS@kF`^=d{ERRuATTCzB*8aI4UdWVuvrvNL`m)S$yl7vI)GHhu0Yyu>=aRUO^z+cs zq)L510>)+BZf~~s{SDv7Lxqrk^zSbAy**YsYLu|=1?@^9XaVaxECqiZaCwDCG;nZ| z)!)(5tg1o>wy=wtahu=uv=vK&2SJaut^tx-{ zv)Lwm^J?w=L-7*pkiKjO^J*Ou>Fca-yZH&;fGw6~f~;Mf6KRNh>Y=WGY`kRiFTb>clIbK(t^TI>lu$j5@lbPTiJnCRGm^Lh3npxxi!l74U@xd<&`{q zsmmcLB)H@Fv>sPx#G3+t%v@AmJ3>eAT9D!~jKIUkZ5*sEmrSH5A4X3t#mtx*q`1J_ zQ)IiPJRl%PgK3H9tsd5%4n!rp>oGJ<@ItvEh?MMeg1`%C{1~5<;^RRykgXl;>6B#H z14Ksw(}K@srDUERq%s&~bs#B=2SA|JZCj$C$6_ivGD1?`P6(NQ%@RVSbRC9JAa|R| zXi2#_OkFiIJY>n_QZ^2g!w}|bGL#@ErQZNGsR`55Xr*Kupa%ifFSs1qp&;~n2cY2F^i87FlK#aFU-d5JyS35?D<#B+B0#{&_)t7^hoP^4(=H2 zKj3chxn#_L;3FD#p|M&~uVaQDiP?b6!Q>_W;{MRV0MhFP-;{|4-U? zJxjAB_3gt~9FS9@1&Y9?6WmQ&IR#sMK)_eS~_kEua zm^VHe67scEL1VfaN_R$oYHS=#IL4jrtO;~AzDC0hRjhn^-}-TFvw+X+eMN4X$2A2E zUv>R|**MzDAJ;Skd$F;I%_#GcS9#@~^I3KcYMH>XJ(6vGE*I;fJU$0H<`9L2<*a7M24(cUF-h*+ovz#$EtpxUikuk zye8@MmU%y3lj+&VBXxOAJI=r5F0V=P{A2F&nh?)F<}R;E@a*HA>kNCD*JOA0Jrxf_ z{=Msptk1shPECnfJp`75g_kd6xUL=nFTan*dqW%M>M^iH?OfP9+tke3)pKBf6NkQW z)dLAV8rT}c_X-SF4RY=o@_#|Absd%9i_hM;t`UR`H!R=B*k>${XV9f{)H7DgCDzXRJK_ z8a^fXB!*CPiq!8jR^kOdWq&Mo2+N9^7u^g{}h&OAP%5->0x6yjv<7*VDAj_JC zzl5BP?^4dr+8SA6pju9%v$j`EnB8fF8%La_wbd|vJ%)Z5SQD+ufAMu=ZB98_6Zz@$ z6pyeb;cnkRu12TPHu>9~3&FJ#4=+CluR7n(tT8cz@WqU0axi}i=Sy0D5^Ly zK8>b|I}(*OaqWsPpDnF_)0cVAHdSQ@2wZLKIMV5t?2$E1cBPHlb`asWY++5WO)bPb z!A&-e?2dfcVy_19q6F6+MhHQ%zB3I3JRIYA8uFoD>{-#uXyWb3`Ug;^ehu|>*)miQ#zdUkmDN9)*X(d)ILGi%bPZiCznppt51K^N_DynLzE#J>LRjG3 zN5<Uwz!N7N+9%FocT1TbJ#A!hAe?Af?>;DEr-|4>C@XHC_27`%w6HKjHuLZF#{ zWKHp20|w*B2`y@WM3BPWA&y{S4A#4zdig23v5jNgnbB2P)`Gb5ZmZ`z*1<@TYZb0N z06!noIL0cBc+H0_T)p{Nkch_+`yrbLzpoO(-8iy$;?LDQ7;R(u0k&V$gCOS@d~~MW zH6(zmcQng^5q50)Fe!o6+nN$w*)HHK?Dm%KmOn?;-x3CY$~)Z>e74u~Aq$uOT_Z*-0Ln^5&!L*Ln z9;Ba7XF+qsY^}57JK@!5rsoZGp+0vwrL3uN#NVbHaRCNjGhMxXyAGR*5y3?q()_0F zIIuBmmn~XFY}pR0wzTQE0px<5;Q%eXxD*xy+nd5qY`Ym{x|$mi8} zrMXq|ELFEHYXS(p94SH%39g-ImvH>}mvub4ZSyKxJNho0$FiN9?V4({*zrY;7m(-XIC4EJ!=67HzOYtD;{ zfdXuQxZ!MrHUG#}luwranipn{@(ygDK0kNz^*Y{+CRVUpv54a2D>thQ-Mm#LB)r&> ztcf?N`|Ef^|5g=(!x7*h#CO#nt;6ldSea@v2USxJC~ptRCG-h8QXFh-`4IWdDn*n~ zN80VbavO-2`Rg|I?~YMltwnK+u&v|nA#xyp(GRHfSlxFao{bA}k3MX29DIz9aDWiT z>FBlQEt{>M`s621-p{J~XpbRQW-vR~q!{RLQcZ$wn9XO= zw79}Q1rgJ1WqgRXrv<$9N`0snpR2s%Xn#)CYc335xH>*ohjR_C_M=VFeeclYYByGY zU`&w9>5Ek3LxR>1v4aU3?QQH%w9o&Io-p9OH4Op(dLxjdg8p_J3^JQ?5Y^lD*c(er z_)qkZuJ0;V^?#~EL49MCmRD+gCipo$(So2~P_24GW#jkPl^}Z?%|2aZ{6}5)>}}lH zeeY>Z|3MAfyL_25bz$QFOS4&>_Eb}{<||4y}jE_d41$mr5JH-k-oJK!g( zro!21#<8zZ+>o7*N*sRtuQW@~S#ZMc>_p?8DtH(5G>6E%F&Efg&ujTy;>Q@3UQmz~9iZp#w7r^4;)IkP^c` zSqTo-<0Q}v1!!!NX80@Bl;7BY2X<;=msKa`6uJCnH3hgh#`aaG9q3bSu^t|R)^5OO zi?RU4_RtdY-8HMFM1sH&`~E;ZI617SxKX*W57hpTtJ@zr|8p&J;DQY>2xQ#9*9^bu zE7Qc*jz>!9n)1NDKqZ2N$5;^dc_Qt%sK(ctDw?W+ogPtNtRji1y5{hI|1Z*Fkb=rt z0tAjJX8H%U?N3|5&nhAJ;6R}5VC3AKAJRf`G(VzJW?)B6o}Ag4^c%F~BDz<=A8ncM zKdOed25x!4ErXr@P&KeSwM+H=9qJJScxZ22O;mqIDUkOF#EVuiCkXtnH7g0&3`EE3 zXlrU=Xbh|4U*0t6qKT=06Mv%~fw!%3UFrz)8O5D#}XL$usz z5kRRT4Eue3??xN=TKJE2GjV7GWMt-@_g|{U)YMR(gDkIa)5%FwXOoPXp-=z}m(43wTt^H#$c{aoz*bX% zXS7aDa1|`m(8p7MM}OMl9fv>D$=4~iuI=N#Z<_v$mIjzI*#FSul`64;RllkZz;O^4>lk}MUJpP)?sYu#<-`$|1anuy{T?u%Qpd^q{DDz(}$^K z6CD!h0Es&n5~Z)wVfXtKAp^C?$Y1$;Dz(xN*2k(zFUJ0VjA~>QNfo<3IGU^PQNe~6 zhFFEO>*}67Zl9-y^~1oL=<{_LE;#e+y023Z+OO(9x7O!M1mCEK6uTqox{p`Q?!emg zCsY$Uv^TiW|4!F0FkbQdpVqb>8@IO*J&Lf;)(xS(@lU2A5+9@m!6gC4Wv2UYr1?2o zINa8nu6B@rh>OS%(=ny@0i&CH?_SOR=nvM>?9bL?91~jVrVH_49ND!hAJ3uz>pX2A zsw3s#?H%}0SzdljH>2L&nTl?JzF&!$`Tag#$I}dgJ9~)u#tHd2Ef_2Mq+2ptJzuHA zj&SbfB$8iJ4e+)fv#S3A6%lW0XKQ~b)8=m=u))b!%WOB%Dp z+sZ<&bv83_3O-lYP0Lr}(c9aT9aCMkFIS=u(KN%+P|)W;*7f!PMVWdIZTlr9UjXES zgA)S|?}?TcL?0H$p_&}vNFe`-mQ=RkpXw0kK1`KW{#qr&aKpuAF5jdCj6*{Fs1DH^ zNCudH@;^RU$1{HY4Y@#!dz+5leLSAgfsMs;adzLJ6Tf>rJxyr@-=Xa(rE$c1M>o~4 zSK-E|2RuO);T2z^>gOB?7BTJRU#deJJDKXbqz8aN{^Pm#q>n#IO=&pOmilE%gpaub z=vU|mY`4Uu^ilqi4~)4P?}BZ$O`h0i*nA`MyK7d<%c$6l(p8N}`jO4Q`{-L#cncl`wjV zakL+@l`ukaz7W41eh)gC7`9rQY32TP2n1sh{fk@{bM zY;FRAY)$>D6NlOUrLKW?7^gd;pVncX?}m8n_W>*1(d{a6>g_tY8X6bk*$u~sSf5(j zkiJUS*<_=?s9N>GYL{C@T%E zRyi!aWB|$jxYY`SO9WS-n(2?#Vu?$C@X)yKri>+AEed!YiC34ng8od+6;QH0yiS)c zSV%U%Q#}_`1Cx`71^m07qY;SerY@|Oja&|%dw`A~cHg{BOBr7H%MU94pqgvpp3cz7 z>`&C~{lR1yxaA?u8R4%}!|&4LF{|YUgbY;GC%hjSd34{762R-_pqqL-9Tb z{7pFff2zd#JNq!{qo3M>@}_n@DhJ}x&#M?5>e55}MwO6;x*1FT^%^CmW{kBnO@D}? zzu~8CU#rL3dk&@^^KI8h>CtX~c98!uJrMLAhAH7heuN%~p4~-A;ScNKEJ#T8BXux4 zhJ3RBK9%eQ2P-Sz8Goj3{#|S9m;%4vs3g?pP_d6wQ|V9OA~Gqp@2_-hNcPZA=srIK zjWU$>lXd;ObUpljp@4p*8hU#&UEpB;k5Z$+wjuTPS|tWqL6DzUvH#SKeG_+hGdekvk(pntqN%F4 zR)o-eR}r&7}e+jSEiT@FZo}~Ehb~tn`tc29ZQUN??py{&eX36Q9QZgaz?n-Vx}UNEz4zu2 z=l8h(Rn1^byFo7h^KBSZtqAfG!hG|wC?lyabs|Gy19P6zcOm;P5btbq(4?Q~%O zl}!!YmQN`BGZo|dGpPLF-Qkczl>b~ubB;_W1r9Fw3tbz7Nu{D``Tej6JB1^tGdR@t ztqGiXBUW!nFwFHF=nhIutC)fK;!2EpSb*ZdZ~2Mw4jD*)axX5n^nEJSq8?6X!@2i2 z(Q@pUm`0Q+^#f#!J&eJUk*1!k(U2V|CLkqBi^}fOB81&BzHnealGH8y`aRRvsF=8irfZd?%AKcoyK8lMC)1ngFYmE#?GFer#bF~3} zvPre*$_C0TVPu4A9V}X?%*065)L+9Fd{nKAD{UlyHma7#H9T`swVF#j{k=gC5r9N7 zEws&Z$NqyU??kl<8WMQb7{{k+;}EBWD+}Y|g1wAv;K3Iq6h+Y}+elp51Og3&QY>x; zP#u#CdGfr8>@Of?%!A082^U6+>=0EdK=PHeW-PF!6!*j8 zWVj1-)we@q6JE^3yTD_@1BYgdB}y;Q%mC!NSgn%KU6)=*kSfuo@3~w!5)tbhGH5E5 zjWrJuD+XF#$HH1IbdVU;g{`E2ipG7_H-P4P<>LL;H89r?5aW~pTVq-AWa{CtrAusr zHDwWH>FAOm=$3%OU`R+b8QL21K4PluCE6tXJ=Rh{3ep)bAwZ8n{ei5P#p|_%Ou5ry z{gwhS(yk#r7?ThnOQ|5Obg)jCX}b{PClUm2?2&7t2>^U{BknP9xy9-A|260L# zLY^ofIUE%B8AORi1A)@MIYH&HHt||Yc14Ug>_*Vo8~8Qw8K#F#e~r08IIQ+eyC4oq z%zVHO28yXdgm`fch=UE~G8N6*wnj*LZ2}3sO+2A6YF4cj*+NGsF$O#}FxL*^nT5$F z?I4=@{5^(j7e<5h9?%SbHyCgD`3f}-D!U*jC1+5kG*B3!SZ^r-s06@h?r6rOV2}(; zuSs(yX_~ILXy@B=2!~XiG?B~ZzZ9IG0bz>BmYh}@gTeL4ZYg~rK_zlIh{ktCM_kExJnc_@u94hBIaBrET{q~1AJ~oSTV-hHTmtP>wK-2st%|a`R7?h8pixp;&?)<naB`GhEi7-Ynis-MW! zx2qPI4RKzbQhWm{5l-$dvFLLFV0V{Pw<063AYMMqO6ds+R#spWbGQ>I9bu(XtJC*T zSF7LeVMjrRixu+{bmVeIqzJ{7<_s$gUMbciVHWAWuhpDqKqkUHWQoH{o6_2(hh!7Y zb3LMeU5QK)^B*(HrGQBB{*+Y+A|S$^4F{<_&6iLatC z7OFv#6GwB*L)#aQl-NJ9ioiqz%A?Yoe~1(_!Y1Uj$s$tB3n64bq?he99)H-q^Qgos zCYi!wP-4Ds1}?@VzBCU&ta3n(Se)p^&7fF+XnShoXqI5HpnV3z-huNV7HrKBC|H0H z@yQN^*fHd%%%!?v2%v-|wEmEcRDcmcr_SCFwt^eZ7foIJ!cZ6AIauH)6aObQTiU4u zXC@yhu)ksn2O@~DE06Vry1NeyhFr@RZNoH#zV z#|v=R7kF{oOfOT@OYycYodbF>yw5>i1u_l9Zl@Q1>HNHW%vjt=6Feu@(xp;7x&t{g z#jdZl&~S}z%?RMBU>Lc}uMEFNJgnt^JMw4-H_#bb^vg}4`dHDHEDmtOSTpo=UJ>~^ zfnZ#-=WJdhUa3#u4Rt5r{awt{H@k)wjMPa$*f3JWs^;T;MY$Lf%b?*`5qG5-flp7} zyx*GUPhHBbmgEa5jF~CY=N6LGb7mmS9;z+La9hH-X18>Cjxf-1oo%3IG!c`3ZjKiy zrX{frQpi9Ur`(JDWRBzkN2u$rL8V*d*_Azcj*y{ZZ&T$bxaudH7;)nK-RI|XBUQ;T zT|FMnjfGld1LqY>w}H=S1gc$3fpqsXYv7i&u@r4mVtAhfOV472 z4{x_9TvANgGaJGdq-(}2E#MKGpE8#sQ&!>Bf9XDO4c^#8D&a4A`_`IBFQiLhTr)hR zB|$JFvQF~eFOdUfzog)QQPmc!s4{TjI5hAw=n!rwKw64im^IKBF@jxx51A^Ur*It7 z4a;gf@RD}qQW@BioHW}kFB^UN0Da10Iy_J2y@B(t{iB?Vm-Q+-W3q-73FL&7(ims(M{IETCrbrhlvo?GWwvw%5IMX&D1+6X7{8oNv4?VsL$l)faNTfT3 zvMmaOfFzdUnH=$dv{Y>TsoNb+}!=cR&V0mt!5X*4q|7%F=xCYD~K zknZR&&~R)Upan2lQm~427kSZ&Cmq67k)=z}3pibAe;f*r?yTfpO^kB^cOp88QgbOwTf;Y|=4fqvloQ`3Okh&=M3#&|z}RI}ko73Gn#mUXU!D7rfr z9#Ch}I@L-Y8m!*+9^iS}#PHL^E{Mv3H@Ur?#`>s#Mt61EDxe*>^}~TbKI#R(vruRp zTm!lD>P0hM7GpCbihByp(n>ota_H%yQR@9hUc5(QO#E4~&AE?BO>jF3?uoI#TuHlt8C)e;PDMhknuVF(wklD5o z3^+9C8-7Vcay7!y0Sh=0&z`=N9)FSCU`t?s!b$#z1@47}lbjw4+=~e(xmp¨IC% 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

_6V@fqi{DxmFA{!+fF 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%0DJ z9yYoeWxJ>5rUwlL%VA$73MXFAGn6k}VV5WysOR{#GM8g@Aw%V%&1nRIybh>q#L5k= z>-?Mhu#YT`L<$6ht^aIid|lJH4FdHn!Y9gQ;BN`z32N{vXk@x)I+G6Kg;4ApyzQg6 zwXXDC7F9ka`U9i)j>VZf+C5oCB)KX)qb%*_m<)nTK?V1rk;JyPejr^zc){UkXL7QM z-M>&VIUs+I+G{DJ2zLh;G^CUbO)-$%5(@6VbCP#<(nyetqOGwnG?WG4VEh?1UApv!Gr!W?>&wz;?dxJs;E9spd(dE6e4&AyxBkjN<&v)X_jD*^ z$>6N1rttYKg2%zTy6j-EdsqhCb@$nM8NZ^Oh-$zI8;n-cIbZ=XiJ#)X%_-FNPvSx+ znr&(7QSYM6Mz$YMT47kHI+RM|wq^Mn^^GSV>aGB;qyb@O=cr55K5<%LZk{nHLj(yj z?-Te+DK8{&S{UtjJ_9vefM?lkD z#H62p17A3NQ~P2|*n3|`^4I3XpIY2j`+96f4`)%GEyyk*4R~%a+D1)hJJmL-{h_PS zWL_#2>lpq1=rL z4*J%FD!YES((!%gx2v(rGilSir~Dvyt-RJ~{KkRX(*;>UTFnmA=60@u@VA-KYA?e` zmGxZw#cY;HcwuWv&_U(eR5aX*Z6%d`ssM{9mxgekEnQXr-4ZK8(Fj_86J<3p&~7D`OfpEq-85Cp}J<>oOG#$ zPAt-H+-w*$iI@5v(#uvkmos_^>udVdQon@CHpAO=%Vsg@h~DXe0@5op&`B=tVM$#; zmPp2l04Bz0Jgs~;Vt!Q_J&oCmuw zcJANn{iz73b+=^kra(^1CoehET3mhtwVJ>Bjt}Cxjo{7nAViha0kH%e)?ZR+AQ zim;geA}UG`HlL>=^Ak@J7Z#f1wk6VexaFNK`LwL~esq~bG=dAWWVsKO-e+1+fo z@i*@$`jZg~m>t{pQ$>VXwJZmMuv^l}l`nPBfeWs08G-wD%6E4TWFbc+lpSifS6)sLFXcK|mXz#)buBeE2b{j|%u5bCL9zQW&g<^Dq~FlXnYbttStJ zz=e>l5l|dy2q|#DZ>nH%WT?I7L2G8#`Hu6;nH?vnP1dFz)^Wo-6EO)M#f-ueD-LZt z-eaRSN?Hd;TaR4E15yWVVMdJfb}7eNqGOVvKKz~&YA zjbE^yphJf9NclOzhV=nICu(#$Xca>%ThsGh8qX+fsGInDV2Yq}7wZbv(s3BKP_tV4 zCV(cl=|)=-dS%ruQu9EF7Fc#e)7`+o!Z+8ofYg^V|M*>3L|^slueo^-PllGiN~J_( zT_x_O3iWf@b?j!C#qhUiJI35;f$}-F%MalDL|W(WN6O0zu#%{xBt%(!0xw9)XkmB~ z849gj`i)jR@AC|P+w=gL)U4Uow*ks@P;}%HlOK%M+c)S!oH~29(Tkn9>iR;k2-7|Q z1#8#o&>>J;8Qv;cj_|69g(e282K4Tj-O@$*OK*US(KV;~S{C|F)@ zM^ty2yR%2C_$x?Ack>bx8i4Ym`PZDRly}qd^64e|-TxtpT7uGE>$+XlO^$z=^T5H7 zup();8^W)k2#fqeH!v3%2&Uh$Fbb}UEG*s zgqdb%Dfru75i^@S=zWACYN@Apm~=0?U)ay*6y#HbxK&1FB$W%>whRYQxhx2plt(Bv zFI?>}wVTG-eCVfb7JgYF-vvk(My;-S#-WQhOy*P2&`$>swd$5*QTj26tE;ky#b9Tv z4$^2ZrEhBj^xnvP8SU?6-4i6dp}$_91TIg#5Z2k-i24}qZKjqdM%i6|+2117U9Ic| zZ!+9+M09&DLt*n(!s-mEl_UN2BMFkTgHeN2|CCmz_rP>GunBbi5fQ&OKv~=SzP=k8 zBw}K^jABIWWF%P3+h#KTOM85$@b@kWq}Jta#YQKPEuEVwUX5O5d(#2>X_K^)WT?l5 zS5fCKiH?$_h8LGOcdIwz&AkvtdC!+Ktnp+EhnKk29v~CV3MM*3)~XG(7q)C)>4wS$ zNRbHgdf>)@;GCMVv&V?DxZ{OTs}2_rGaI?*nH}Xe;V=^VY9bdqFl>ZKqWIuLwD{GL zGYvk4f{xGUfp(IhsQHG8lP))da1-_-Ra6M$XSUfKH%VX-nWVMs641sJp$Xgy9IsW` za8TL*&h;*O^d#Ff)Yo&XImHIi*_!phHCc4*QjKf{!5=xm*x6c=sQ0+*nOgOQM|55= zJfk*>6O6sd;6q&U^U+UVS9uxoA(NRO+A&Z*a4tH)e69{32p>x{$K0{-0V1BK+<3_H zX<6>u2PT^&nV!dfaLnw0i#y=Sa#Upht6&mAoL6m%6Y$x@p3I$7zJISiVcjuv{AJ^4 zSj9jwTnx$q(KOR8Iwi5{mm_o_{@tRC^>Q?Hprg3-!jmO%H=>?E>PMIy0_8DYtu)rG zxu%hHLBX_tM$!*=x0TN687#FD2iiWw49N6ppN;{0!*0|Gw|ifA@rczlpR%77bLw=m zlY^|R* zld^DY9uQjE=#lWo0HKQed9J$4iP$Q2{WX$jmT@-ZnvDo|>*Sll;x@nBc3*i|!bxCX z@&xEqDX2OxLRwALv75r7pXGqm7hQdVIZPq5(sGz*kVlEg-F`C8MqEb3z|1{|e#fJ% zu^%A&DnUSFL5@k+up>qHa#?g`E;YY_c;Cun@3eEJYlVbN4TXQpn|b1WtVvWAFtItZ(=Vw>br-!tO?&ht8=fip+|ha!)#0Dn zCJmtO7bz@rpiqwvE`!A_zl>2UO3LEVB*=#?M@hzD=WL(Ki+n??WwRlGEOQ31ywqR* z4r87$=K{|f&wFIlcLSfWd=GJm#uP&?ZnjU9U59lEMM6~6_ z#BuSeu{R^>bC=Ir;8`}x>6KVgpJPG%8^(ayIgQ?DD+&5*E#g>Rzp4u^TJ#W*hg)&$ z@DcfjwJhQ5A$|8X%Y-UVHOnZtwNT1EJci>6=F;{ClBDzr8Z@!M0O-;HxB#f7C(kJP z%|_`)_LVnHL9`Y#q)&4}*+W|L)Jd#ynRo~{Q^JpYLr4Rp2GKK|md{C>5`el@p``iX zTAS1+<*w7TfqVIMN&hm4`I{{bj;tDVMAZX~HjrwKqPeFg#FVo1wKcdfL^H@=j)>p= zmqq9|`C}y?dP-Khl>U)3)B_k1(vFkW`MfT=-{dPVemk&AuZDQ}H=f%cxwm~|H*hoK zjQe(a?ESJWF5ZXJ;jbF`Bi>4DLmveG>&xL2TP>eI`dd^EJ5H6;-pLM0uRrL}S@(@k z9%=h(i}4%8s`}?4jN{7X{k0!ru2KTi54{-0+wq~h-@Uc0w3`?ZF;{s!e@yEaQcYf_ zi@@i+Y8Dr!g01?icn_2tIMgA_J3D=l&!1PdfIZqEbzI)}w~^{E?g3qBpVA#l#SUTCsLffcRjO0d z1|WNXmOy_0kGWyGL$x@s@e{3etpN9Z_-aJFbEMnwI&8Aa^RyVjGr{b z5U8Xlrt9CY_}>K^z#$*zq~oqQMHlq?H8!(NB*n&)xC^}=s7>nv&otovR6~ji%5$B z2pU6MO9%XG=T5u!4vWG9&3lLQEs6@6gVv4}pv}BH5}xS7m}>ovI8+5+s@9}gO1bl* zBGDl_kaMcL%#fQ(N9E!oHy7k@;%QQ9*Pr((5ljBSZPR(jThi27Y8wk?-VdwrFCzm* z-Xa_LdBaE6Qo|SVPe-nNifNcJMBChTbN53qUC#D;_*`>LvUoTla=z5lao&Bn!JrTi z5ZfkKcLqFAhb+98%E(J+nM;XRyAF}A0RL_eJmqvt1^Sj>kpAHI1i`YO9k*b7xP+zHDYZkw_PB=rU5YIxg+W5zqE z)>*RVuW33ngXy}j#nY=-4h4@hF{9ngQ&bO+h>`gvy^9nfzdKSNW?b5S?RdJ~y!<~6q0RS;}o0Zs%Xe6XKM3DMW>`IdWo z6G<)S48##roPrr3DV<9UBt|00iQ8UJU~$5GLU1@Yj&_?=hrgPhmviP8BT~cziYH6Z zavv6yjkYzzh*Rk z;fY^6Usf}(mhHA2-RGdu=g80RHF~j#KG^p%L1S~>zz|Ozrr7NwCBj6QcJ4ch><;yI zwEx++#j&JhZe$zI5pBk}+t?zw=j$47wO%>b za`16zZ>Dk!Q2Hvld??isdncg}+S?5SSL-I-%S+DH$nLI+BylmPYS0{!ik^5!Nyi*~ zT!?Tq&La^GSp$gn(J3fk!5^?x(hq)&%;8I#uK|K_pBgFm`Lhe z&TJ{yd5D+7$pq#2sJ2qgVJos)f;hi?@DB_0GCrhHnSTx|e7AFfJ`_J~Rn zElOiQTs3&Ya#M?d4Evc(8=+qyS{Wf2y&G6TH`FE7B)&G4i}*LPkz36$y}bWqPk>x`%Xlwq0%`!EpSI>QtPh=vGb`6G3Lj*OiKxbTK%o>} zxWWQ05CRa(YfUG_Wvn0+>O(Ka4IM1ol)9)Y}qOEewafd!nbs!VC#T z^4)WmFp)*f1!?fl7i4g0G|V;xo6ut}>F_np!V(bXq@h2=Q=ZH~%*)E-M<#G;Ig)Xp z1iia``9U>YYIIV%h8FyFP8?o|3x3BX4d-Hsad9f^Bf}*hUK)(c5-^M`m^7gC^Mc=2 zRV%9n@CJ(o=+DObZmxlZf10wMwtnISOx3xCZC>3AnSAY#GE{XOQdlv>8wYFMl0{H` zlq-b92(o3!Znc3cySSWj#+631etGtZip9V!v)?U2Hp^>0ZIa^iFNq@Em~TyasTl}&V2KTWEMQu_vo&ww+t=V z134cro|EIGe7oGr4V96oi*N1?Cah^AGMG$!C388w?}p{7YtCS1ot;h0z0Gn``@?En zCV=AMLUih@B8mC;Q92zA_z=Xl8f8KSNT{QF#>wef|9nR9gi*AujQnleIQGVLJTzQv}M3yz@eu;&Vk5Q^Pqn=~a zD=iCmUP&JtdUxx(Ae*D!s_Ob9%jOu=1fFQ+X(Zn`+-R5prqk9cpwI&L3YT#fu=h&S z_@ZNe)YIGbp1$;pjrmdBjoh2g#TspAI9hz>+T5I~Xkfh1>$xtz3WXQ*)zE^#Mxjg_ zuO&iraXJMluPuUA$Pm1?X)rD{JvG zu^`ArFleMv&?%aKb=nUoaO!+hu`oA#UC$5T!yvMJ9Gy_bO9sFe8X<3%IC;v^s@G94 z&I9bk%~1a_F2fw2zOFh^b8&p!bbR-n7gM`!*>Zk4&#es3k(ptFZKfzMOrFh7nU@VZ zM;p#~GX13iVigy-SoZ;n)#v@>4O-C;lUIlsemcgdi0oX(sE(2WkSTGAC{)x-U2}t~ zs_HX+Yt)761)r8v$`!a|DQ!nP7cQ0t#U2oJ{vh%ExL@>g17vYxcai5P7og(*2fME4 zb)J0T`RT$w_TW$+W`A6DEQpe5uBx_~IhkPC<{UkN@9W+0nhts1MnSC6)y;;avHjb~+Z-e6i5Oj+* zC*D3L9dGmbEP2T53r|i>Y#~%jBN;^jUm$Q);&#SU-Od!cO^sB`*%+6?CFi2gq1(C%f$E=iJ>qH{ zhC^0HYS&&#tDK**%8RBhc7@j|)B8T#BvNbI=q zt?``{e-+IJ`k>DaMela)>DrbKetBJ>_MU9_<+uYv}D;5}a_2{$I)bS(fS25X<+E#5Pvfhz4 z=+1}i$MyhEJ{1{KVL~;HkO`8&i{%f!h-xLp!TkYiJ2$Q-CrP&1F7Mg&gD*8GE!~3q zN%DuH*~#_#9j!AALr~Gcs(4mk-aOkM)XJ3Mg~3U^tOjjovm1#<7Q(9xD-c=2%TM;d zvG?9_O=WApICjU5h$uyrIugo&1Ox6heo9NbkK1{xY5^%>B%H&&-_j-uvF)HGk~v&)#c2tL*ix@~riIzfU9jo#}6| zQ?!8e3-3%+lOO>(u2W++juC2JZhH7FE`DLrdfn-vl!Mrs zRFfvP1=cw|p)@p2>uFd&FY4+Wxpw8XyNTU-J(u}byyKvQ2%*5YF22=>ajBHgQ_Eh**tm)4n97+Z zw1r*a&oWaR@ug>94tlFdzx+dDn2xezP6^{yIf>YI(nF&m^uUipE{=MAL<0)4nS5{p z-=GdGKXh38()Racd2X1zw!+@(+x58+GP_6oMLfehF?kvk?TtM*52|oXw{EM;HCzUBI5)oFd+c46~Ly?(b)TU{TjF>IWZcuYx!1H2 zDI~iklNhJwqnuSlFQ=;F&Pj%+`G~P~aW{^2lFKGO4dfr`5lWJzN!)`nr&s5aCXc1R z&LO0AkA@jLGs)abS53uQUSA=ZB44QCVt_>K+VxDkF?@#$6-k?}%X3z{9f8la^^DS1 z)}PNE*^0G}6U3Y3Dt+v+t+fq{N|vvR>LR1}lbU@FLtG2mNI=^mK24ky##58S9Yzkgw>s4>gNsaj&%G#m zu|%2`%?%A{pTVv!$X4kYohG?LbG>s-va^h4Vtl!BJt8wmFf)PxRbHm7aVXCF3(H+J zba)CuvFWE+)2l(yKFa-DG8ZZr#meEl z!iQj7+9%`cmMAitB!6?!40$RJ8vt!Dw?M~5aI|V~LoJLtnf`b-%*Mm<%00!E*sBKT zG$9{0xUDU8WqGQMd& zlI2haZhg=D1c9`*biROswy&gzOhCNJl*0N7F;Ku3ts3KS^R1DeZCjrg`@ zRJSOXT(xj!wzGkOz>8WJXI0G^h`){-UQre@KTC=O;4gM5Tui;aj|8-q0J%{@@u1 z8S8PI34}}@9hV1pWQ;S3?NPI+epj;O!7x2@gU}Gv2Yyb!@wm8sOC4smE&;bTea~q= z%p8-^(Y2giUmfYM{3tNoX(xG^W!F*VqbXIfsds!Lneb|HQHFC}Q*h(eQKlZ0q_G%WjUJY?c4qPWbBU8R(zF{P`cOSa)+cMjSAUaos3Wvu zq=&%kz1sg++ZeR-Ea9G;Eb_;{|1Idhx(l9Ee=*~=TIjJZ8bl5c6e21Q{Sa6P*Znk&%q=Z~=vCptimFDn{1jbzc$7#@^#4;HyY|Xr0x-U9Q-j~2YU1Jv|mFmm1%FG)G zXf7is>zk@(NfLHjVISo?pD!t|vsCm@X6F%wz^4rj((*srC0=|wl0opCh2>ElWnwGe zqWn&0KzdF$@()uAL|q$3JhWgPKBcEmF)TuhH?t)kR7eDzrLV#*o>(P%i5ZC4z36_H zp5m}N6m5fCkfW_E5ZdanYsEr$J432g&(WeFR{V#A?=`qzcvoWfrr__g`5Q zfxH`5Q+vnUs0A_6fBE8n;8Ip+`sOYt+owt#jgY%Q>KTZQu%!x{Kn zf9kT+O^3^HM7H)L4Y`I%YjNF>k(4YE-{7(-OgV=_yl0mz6D$^F{`lp+OJ~CYAX9db zUT?m1wlUn(PV2rNyw4L;=@P*q?-W-v=_lm3PKgk=7b$CC`qF`85@;ebhW@G*g0IQ- zT0nfv{u(JK-?v)c#TI98rI}EvI)!W}FZ!NdDNU-O<=;^PT#x7({ggC90SCOt@ zALeFrRZVel5&P1DyK5Z2&#_e0j&L?tNWx%3@}O#DCT~n<2;q~&3sw3Px);;r^u~Q| zi@UZmF3fPG&DSUA27J(+Y9^u?l7E?65$70mRNKih`H*-G>D>r_Gc8;8!JWpCzNZ6; z?9mgz;4A$1U#3;^9ATiCgLq)EQfs|gv)8-qEY!kF0k(CeeIjp|-G{mxX>I;42zie7}m7B4M@Y#6U5 zCEB#EN8mn-P*1yz7;@(6KTB@BK{4c;J~fR`i^Ytay#pE6&?p7$^`v<9Lo!Fzs-^G8 zJ<#t*Ia^Ooj8gO&6V%E89&(Edc%LdZUm9cohzV)kC5O@qVP&qd%V5R0&g#X6VN2EZ z(|6}D;Ma9DGJVQ6&$aIFLO9EEBR@=r>1&#R(ARApIlO!G+!kgBhWlS-&@3fic0h`H z4z%{}Vb2W{dOPcJ79*tKrJ9w4vvKm$QsMJzjIecFnagWJ)|6$g?SJpuK8sG1t={I2 zA;<+gRwBiY1rKrxrdUhIV}m${R{gWOdN&+B1=vVlBw=?s``CImJ>0tA z;xA(#J=7iOP&xU-k)E@}D$%%Zk$hFdi^QoE!`C%K_gZ`>fY#ooPKYEAnRn6Vp&}guv4B31Fj}+UU$m87&PN+CyDf>15Nf_5n|$ zv*5EgK1+T&BgU3risXNbd8=iG^K-xrm1e6LyJdot@}m>X@*db{)i7sfPD~czP{~%J zUfrDk;J!*Hc|E_{F{!%M=3Zp04kWmq6Tp^e9XR@B+`-r?VdX3{oBO+?Kh?(TP z1-{wKes7DSX*Y&z=gysSF%lF^iE2u#m4M_uON0-BF!LbI)m(HXrfHk)^#C}g0G7?t z6+Y}!0ckE&inuiA7WdubQEpL7scGdJ4?keNWLU9^aX{7VndCw$pcyJ>QA8FUaZLB) z#=7TQ$NFCnA(Rc+iOy3Pb`5Tg(q)5C*{N7@>C^QOOlpNA3BWVqu_(+0jZcJJ$AtZ5 z_hZ+2y!+xCkuowH&A$X7RRBN7q({eRf2=nw5YtU2RqIS4`}M#_pn3i91mnG!EdTGf znWspx-b@>}LWq+vbmrxL$StqB!*SpgFY$UFk5ebgNm;(ZhID!JXleIMcasi45_Yz3 z)caWWUME)*PqsvRZebAsCdvIm-I{xis5cos=v~ri?C9^|aVj5|JZe+m`9k-s(*x9>LcI<=mGPd0H>KaVgg2 z1)GMSmeoKQW#uN?;3xfS-UXdBk7bnQbd?W3sw|d!JXBJ3KsTZ@k3+*@`OsTa{W=l* zrZM=@5Fw}xc$HvmhP}K+n<`33Yp*o z)1dG`S9n3kdQxhPaOKQa&w0l?ad&vPa0QVwV!T?)$G2OJs#i}(R5bV}C`owDbnP+y zEuO=M@mk|GcQ0=^51*(R#KQonSC`5=_Z-%M2ynp+Jg?w6at1>-*kyl7J zjImjKwS7zUv+|~%HE*wp(ywXp1U_At^0$~}kp4*~9VS0l*T#HWy)*q7Sn+GdB6lQa zIijSU%0XLox<~viV*$UW#oSkuT(DUy>!;Zqb=i@z9aYk?9{H^nn*T4Vg|Y1-zhk3; zezLmJHKs<@3kdqQ%7IOp$8z3Q12Yc&N4gcmG`KN_Wf7DDy_)hSFXJ<^4rF3~so2PBJ`h`B5*)(_hGHy?hk zQu*afH1jCP=vQE6A;eddp%W(Wf7S>>Ji_ip1rJlcRwBd=X3TyzW@94Mfpd_ub=WtbyjLS6L010Rp!Hg z{y~LTsQ81nj<$g!1g|-f6l8_QXrN%=)pK`!HnxP5KgVwE$#3!LueJPe;Muu5Kfjz@ zO7U8NE$tdRkoxmW`G16E@!d80^UGu31bwTc|L5A#j?U}doj*3LA0lr+D=&v zPWR=1VWC|ChV;&LUrp2@x*qmp@J<4Ch1@tpi)mY-pUz_lpY0sZqS->PdV; z6Pb}6<5y;f^2d1Y#58SdZr@Advl2!ZZD;k;UEkH4@~`W&e0shAdw z`F(`@?%#K2NB@Ng_Y!0-4iU@aFc-eCpcjr~D1qJTEzKFq^A^|Ui)S}AY?e2471jY8 z2P`udE21l&*@4kM0GG`4>w%wMJ{WZFUx`{Of*=13d+hH_+io#d{5ju0=jv>XRf=ZM zxI+u?TK@U99k`*G#-r*))kl;7fx8zT-5+1t;)63tl~@SXrR z@qf|m<5#b2{a$FFQeUHffP z@&Aj7*R`EE4SdBU!7N3T^X-eN2$Sn?E-umZd%Ke?KDK{ktvgo1lNK zjsG{)(Sfh4m+$g^UQV2wxR{>E?vG^1#me^FRQze3^GDG6&HaIxOB+R>Cmg}Ct7~*+ zf^Jh*(NBT@dw#oiy)BC+AOGCEV9)kx&m%tof_FWAsA;$V-%swUQ~7%)*nhC>LQk{O zc^OOl-0E2su65_J@8Uq7|{bZg8yP^^sY<6oBbYlQt9 zwV%O(xt0yV5BrUkL-Uuz)*m0e%Y1$0w(q;Z+o?}$epzf@Wnq!_>L1kJCMwG((rp8_ zrQc7`7juYvM$5|rPUbc}(0BBxf8@`1e`zzoEN&InZqNu5^q7LGXG)(aCDcVA(&V7M zHE3K2_M*sub@&|tptAABr3X+C-}}9*&0tF?q+6a~vm`xF>99e2240Vdvc|BoCgWvLEtVR%1&jNxEG|XIHd(vjE)?PLDI*kGd z;t^9clff5JGz)Y+O0+1_$S4BsR%F5%;*^eEO&)`lrd?z`c6%Zv4uRxPdQW^@uMV>0 z@!W`G2tox&>1?Ubt(#%l)_qL6t*vuYFo{QYIIlG&=tPS8#kgO_!~H!J(qE}wqAG#{^7k`EIo>_%ic%{VoA{NRaxM4*gJ#|fpad|?5f z7}*jSprg0Nmg?S%8fOA&`(KC_p|bjr>_^Z!TbKH!nHH;aq*4LDD4RQd$JFu~AP!zG zoNY;vYvI;UUjEPmRm#eu8ur&FxYcD&;>eZ<9EaDJCR9j6%jidx}WQ)~9ucDmVRG45n9Hv#4Ri|a2cY1D& zs(>7_3aoyp)`F}6d8Npo852`^YOMwAfkRH^d)${G#4gMu*=lnrZaLPQv68&?zUpj? zR7&rY+@LT3J=v6h$UhR|B_hI)Vxabvd;4~1DYJ5VGt^&LcPJ_E-L@IGj7@NbH4t#yJ!R8eDPClM{-hX|A z|1%ho6+dACxChsPTUy7L9xH)mav2RL)3tL$^F|OWrs>h>>a<5}(*drBXi@`c=Jww0FYP#;jurW8cr z?FWny98-WNNdYIAO3o(MhQD)WDRI~wy!T{Fv)NgfSgXWQSKP3n0iYX4;L^WNXObWK zB{x=xIPq#-o5zOmh<6~55~VNi-6#};#w$G=M~pic*41E{JP$Q1{FdE}lo65ZeLvy7 z=&^Z--4Sv%OFi^aRz)JJZ>AY0^<0n;E0U>U&iG!C&<*PM93FP`^XCaU(0cy1xZk@n zwbX!PNt{^>ub5^XTU(^uHCaufH3Lvhnq00I%8x0unf5J-P zb4zVX!x9|cIUs>2H8|DqGaB3-BI57ec>z%hhVm#ky!*@n`gwo5=WpB?f%M$$5NDrH zI*E1NN-v5{0GJ;k5HoxlqLlA`f}s61&I&u(bi~S{h$Jg5Uu)|Kk3|#Ug_wFqQ-1v6 zxJ!>zw9G+@HhHmd*5)Rrmr)=7Wzvg+UhGsG1Eq6Y>E51C$PmV5Y=`!y;9Kcb;Sz)1 zO9IhZi-sHPeCX(yta08(5#(4ptSsbZXv0iZng}4VLVHbofX+8S(a!VEyX8$Wmw=hJ zc3hlr5RAS~1u{t}t>o1td$QF=#m5JHS8yC_zYYz5@8;Ve`ez5xSn&$S2<5l!yT-$w zn22+5Ie9KE8Gux33W0)99aMT75!K_(Ub|9{*!&DnZOb0j=Sm*mKAY3orgI_H`iU1! z(Il;23)0xrkdoQR*V755Y%IuclfdK|y9t#Abu56A70+vXKu1AJx7wRAv=d6={`ji?bDoD!;y+!#;~a z=L}*D-h`1iksIgC_)U@EQuWL*`Kl%V+pT?o%piQ&pmkQ)_zF)$*pU3OX8WSSl{!Z; zbe9H_(yaEFuCM=N=kuV@kB($utGg{G@3@Zu>pLY8Fs(!NY$##KvfE9{Z8SHg5}bqZ{$*D&@h7U zPKgI_;>($_;8VK6sEz?HJ(fF+Uq_nVHMVP01*WvDJIVcqR z`DI->yS{bCOXabZU;_w!9C=*b#uLGhuy=~q)sy1Gr<+UXd7znoyK0M0DFSIb6((2lR-MlY%bZon&TomgoD-F{H!lQ4 zoXw;pPQGiW1$rO=r|)a}+Sp(3TxZKtV-E5)<>}5Z@9-<--OhaGJLnOyh3gIko1-G6 zL&Z-mv*|+=LrHv!b7f_Gd_uMF8%f?WGMv}mGKnaEY}3l@1SzIvQKivYIc;nZT>z_| zkD*4&D8HAg1q1@72i#qEe;bGY=nJn3S~T!X8~~D1Qpz{^TE#@k$AYQ$HI*Yy&hDFf z3ltB~w3`bFnH>XY5*R#;!5)1h|J`7rMSlCH=TXt=*+KG;D~ocqJ>4S$Bs>y_UIwp# z-)El9-gam-QanJp*$$f|GcMx*ufyqx=-IbIA)0lk`bK&+n`O;`#~pfEI!76xq{ zAWb+6z37%+i3WIrd z_|!@Ks#KSOSE5Y56*UVIirspmX+OPcX|wTN`ejuU=Zwxf2Ton&%0-!I%0;mu;aE0b zm_(OH(u^euujY9m$b4^`cHdFZ`#EWv&8fzFQBb9EQ!bNEm^VEw!mbL3#?t_PUgoP} z#sd*)XD<$e3^m)Vi`~d5NEZq+ty_H8KY1V%X08-MMtO`1g7=Ay%svM8@#K6`uhwE7 zhplxV-@Nns^Tzia)fV2#MV;dGdM&4-PTb8=NA_M~9NZ?(FdKt%6aK;yrm7SImpCkc z^m+V5ZmQO8p)O=>5%O8eb0joYWQ={vx8S6Y1qS5dWZul`*UDM@X5`T%!&$Jy;C8VY zQu>EwZ@?{lVj`-NN=t{Sjx3Vdn;_~gq*A6g^B(Io6M9B>VFH?|K>)sb|<0QGHI_wLJIIwl#f}rV5z#YA0>1u+Yz>{ z9ijBZPM+|V_rpRl=)Tch*swHZEE$E4>&?TPd_bgGY)X)Au$5{I+QAu z^C};P&%y+|7aJHEVF?wl=n|1@G7<>yl=UmwR~a);Pzqq@i2-4CEtl+Qyw{etE7@## zHA>ewzh-_@$2ih#-gHZ(wMRnQ-E{JnhULlny}5?hn@}QhG;$r5tY>hi60~PH|3eqq zaKe(k>vT@v1*W8DCFVmhZ|jYXrPPbRu-HboqPBwg*z8W53vcjqh(@ZE^>TvDEjr@qR!>SwCm%6Vo-4cd}6}NR{q`U^=eUY6o1s`S@+oYj!C296ZmYt`KYC9FSI*!NIYlh z3P<}KgSuvldkJ~c&6P*5h{eFU*z{)HhoDS?m^40q3J3~*Ea&y({Ef3S_D38^SE16XOw@=NuC@g=8xR;#;zb0OppBGV~T$0ggJw%G9FQL z==|%CQ;uv%)&4>+;1vh3(j(oYLf*LK_nFn*C z#yiV$9b-^D;3(_3Bh*@B%zEtTOmag-0HAC1~#nkGtHA~XbHa_{}x(90u!vAslHK0ff-C4~}I+iL1}nUN56 z{+0t4g!WVBtILYAh=3sTm!?j}>t4qL8+ z44xJLF;Ow}^@H)opkhBkX%d)63ZkX-KB{iC)Dn=i%p?mK?kQj^`0o1Oo5KATYxi$f z5aD+Rj;$EBDle+nChh$(%F&&&5l+ zAv?_@uYN1TU%flJ9J7}Ag~g~M;plheq(C;yNsh(yTt7+qqXXOyvlUedTPAlrfmwAw z&(jP{b|$%(m*RgOsZho%2e6I>~mG~pEciu zBR{pv9|n;yFP|)VNKf5A6I0VJ$;#FzbN(lhyG)GM96oTn2$|J2W;|_E9Je=#YbUZ< z@(V#3Huf@O)kr*z%&H~2Gx>kx{`_SxQt|UIEQw0mpZu@hp0#ymZrVxvC%n?V`?sb3 zQybPUrN1n5*DlhgqMfqunf`hg)wSQXtG_Jkw+O#l!9HLoh3A3W1%Xn#UNB$p`i0W- zSHl>SxIE(5PwvEozxzi!c=nsD|McC#V?0wtT;ND#%;nS*+zMT$H@>hm@(SJl8>;h5 z)^_i)UGZ(Wvm{v&*B3g!qeid(jjy~zoquobO#LOfzws~IuKUSx%WB(3TId&B`Npg8~Hc_p?SVB|u>H z!=nkG@iYJMgJQsJKvSx{`A*BeJ@MV&yP0}U9<9njdNdnebIBz^7$O%U)Y21c?IMcz z1De_8N==9iC@Yk!VchT;)03H`JB5C~BEcE(`92fwg7p0tmd+PP54d_x_6YAb|zR?psft>)zg`+4zWGk09J=@1WHyd(y0lY6 z{`~znUHYa=-^QgsuP^^q$ZxvzO_%E zKzr*_0gCfquZswlHZQ5{y7&J7xOU$Knm6Pu6!!Ccy~;d0%7nRL#;yK`1l+gC-zv=i z|3o9Xd#iXNs0{-`0AyXG{@E)|;GRTMt-PzA4bRPUHW{ zj`C1mJrZZ`-;h9))mG-TJRVoPyz$)^mak()P3%qw>ivY$SS3Th!LQem)?N4+Tiw`{ zwXfH8G7Ey1U@&Z7uJHBhe3dhA1hQ^C8}apuz40yb|M?1AFD75z@U^wUx-=2GRvvGE zb<{m?%bczL(bmF&l&_FL3HYDzfp*}j|5uaSzw_?Dq^JE!pgNhOb5nS`iui@)=6tqA zb!YVokYjWIQP7G~?H85;LSW|=ct^pCfY z7(>SGZ_fvAh|3(-^4ve5@uc?0aE<;0uG8)s&1tpew#Fy_6KJs-BcTnEGLB7Nh8r;qJEngL*jt+g_UE)@;&z|Z7$w`YX$r}q~o@To0M_fS9;A;;4^y7IV; zJqZPR!^Q9!$WgzEvBCUMI-QITS&o+Wy2OfS9#;x2-pY>TXl2MY0T9le7S9G@8%*rL zhSRhncKvIlGzkT3UxFX>iju)6COJvTG0)2PC(nXOwNZwHOL8$Y9A;U?=Q>DTVy5=d zg5VXma%d0^J6(a8X@wZ?Pq}F@Ceh4Z?a`s@CPI67+Kd{(Xdmi|uGavZZ8sJcw!*6m zF$d9pjJQvGF5S+M-&#GZw*@Hcwj$@%d#qGR&($`0lrwqhniv%vX2;Qe z*hUs0B(p|bJ^Kt}vTPH3+_0bqOSX?<_g7F~Ik8c)N|KRhf-hLJnvIG~g@g`3l~m?b zs~zK;_t6mky^98PNWWBBQgTSG#n>&K{@p-Cde;@RkOS?68I_xr#OOYf<8XPi%L8Ow zUU}w|x$24s39}Hy9d@8J6`R%8x#?ENbFB(5iu6_ONrEA~S^#abY8f@#;EvkTg|N^g z6vaWm@Q@;vGql=cijFVA*5qnZc}j}>9h=+|MI0_#WQoaE;sLcbddH*+$X%=XaB3h> z|7P=)DUfC<8c%R$--3_MLJ@KkH|;gJ6spT!k``#r&4nV~Z4jk47{V^els_|Z7c+dKhH0g zm2C>2dQmB~_(^qEC+dNo!Bwn@WP)qX5F$`B>Pa1=qi#4Fx>{@BeBzTHl6p4FS0TbM zH`XT^-4Wf_0%RCQSy|^ix0JX-tEB|VpY~2V(83+~!#lTk$*yKu%|4nI7OADn%@7Z> zo`ppwbgkDgs%H&lc>!19xIfy8V)J5{Gc%-X1~CIk%P*rFG!cq7JzRVh0?J=6X6rl7 z_U@i@35S4l0l_$$P0|O-%$4#mYm%KVm!;zMpk)0-hCN zWQ$OeJ2T{N(FShTGbqqAsB(Y|rmN%(cJGZxv`VFEf3$9s_EdOx@;c6$ge0>DHq@>I)C`?zi~G7YwrI!Xys0Fn_q+f z$(vm}cq&gw-DSr51qw3wm$?RWo8-O01bzC9cAFAWsrli-?dMie_TI;|9yF~;T?u|~ zjPOgrl5?&|ghKCB-|=@J2((zx*#k@!srCfy&&OpG?A;}#B}G66M_!Z}UK|+hB1!7K z?;*1`MsY_>saldBYF%y-1GH9#c0bC#+^!*TWNaXA+%Y)oI<|aMau!hWr_&-DZkGh;&)#qiAB>EWiPkd5AF?k~ z9+ty^yao&w!Rg%^>T%+J8kr>z&tA$7(Cy2;&lv2z)0uS=a zD}~EA#Tuui!W%A$2$H&>J}J@`l_sJ3-?!bV6O_gVw5)3#k6^IX4G5+W7&<1S z2c5~?ISJhG>+6UiO4UfQ5IJPnHv`Lu5?O;ew@-N;;g&5QqIiwTu#k~n@--#X!j6=F zYU6(zZSvy5Hw*rLA0jkDjFIhvYQk=l#CctfLU#7lS7rF7Wj%HU1$MTZmk*37 z4ZOJVNj@y6&Dl{OPmOCl)zo!ThW@S)+%sfRa45g`g6GRC2sQ0Rly<_PJ zAhad~%|v4kL3`ic5^Nz}A*2l4g{NE$Z-c5mey^C)2nGohq|Mfhs#X!ORKBS)?7aoY z$RteMwqkbasNn=P{7$7}(AHjUo#?dQnwyDs)eX1~k+Qa<;5Ig_2Ne8d!{=>0>*Yu` zBOvnGEg8Q`Dnr9Fj^50$4vi_DuRMjGG3r}M6VVQxpiJp&C6BE%w zVW1dS@6Us=;>owiaS0yo8JAkDmtFO12onf9dzC|9SeBxH_>})_`XS+FtFwB_sjk^H zl721afsH>sd)OcqB&BW1*^o;<(`OmcBN3Nau2XQ$Eh7S-h*VGSdCwg}L^U~@VY98s z9B&?BPrUvCqf}gP_v%H@IpDP`lLlg9DU74s5(y^lxe+#CM`&HUB-3}c3&-?M7(5q> zAaWe+z1hEDu2(Hiu61DYK22I>V8S5PHLHAJE*p2w=@s2^KEOFVx(qvg(cN$M%u9bO zSbbZH?;$|!Lf?jh)Aa1KLOLHL9ac!TJj}~SBeUB=bylq>??BT`MofB-pzJ+ zbGA!S2koFkR)xUddUHl?>{X&aFod-L7mDjQ>7Jz^nBw@XEB?7nYUj&|^0@ zc;&D8ep0Z2120{{I7)8GJS(nB=7*&xro|;cS=sOaO+l>BYw%F8V0s0&+I&<_lItp$ zN>RF&qk{vUkd6yD0#roe2QC@diAJbNK7Lc_o9j}-n%IWm*)H?Iz5Aso=DDBjT(yu ziih&KQ{05r@F6s}6<*VsVk~rpp=V##14o`>kIIFfBHt)Bva?zPbDjL6?pNDswn;D8+6ja^Y*PI89rdn3hRmEU%>_c!BpoGUDnB|7rl~reLYL>9h6}j~TMr;s&Wto`qZUP=_C7+!Pg~sxHZzqI zc65#Mo<%(a4~U-x!0+TKoz(yeOk}~62bf83YS3w2uP|)n)QX+`NV^9r4DLH;gpT;| zaz9M2$vq>LJ0nj0CwH*-{)l1oj;id*ahHL?ZVsJtz>RHO%X+orYo!s3w=m$)A=#a8 z0>nOF@%wSSqY}Z}c0397l5Ixes9DG3@B1?=9z{Bs%dZhtHl8n0=H{mlXIrx40wGGS z-E+DnQ$Tl%tLb;*w$CX(_n7=dK0fiNrT=Ypk$AGd;q$EmSMQ&2C_->UaIM1=>l*`WI z|E|cFr@e)HQJkgu=k+Rf7Juhg@E;_9Om*!ny431w@hprx5)s$2mQx0>T5W^#Whqg8lA$|9$EIy9<0K>GGI>esNlV`dVxrifj_o zJ?(l!8)HtV13{GL)w|U301eRNPgemHVo%Fg|>X)%eQ84iUW4Z#^yn8x$3tW7}8ZtL3->UMOEjxi&nmh(UP?^vkqaa zH0Ce+;Z#?di=GZ6rvZpa!wa*koM)-S{hc1@U&h(J6YBN_`gc^O|1$DF5AfA^oMKJa zoeX?<-+#MbS@z=^u3vd7)c3Y!l# z`&v!fx>aFbwTCb0H1>wsq$p?k>JZ3HDXm*)21mD&6~$97VyGo|_q?ZE{gWlyjmx)F zdAnTaRDa5(J}#+dqUc88-FR+e;D`>E%Z?LxO9t|6x|f2ZkY@-uzJzfB1epilh1Z* zZE8bpEqM@ezE0Sg)@c`la~i~isMk)8)Dm^^K-8E9lmjF0)J0zd^N1)Cd&qi}@3@#Q z%!>Xv$BCInEPHQ+5T z_ty_JuF;;es4?)skD)E)n!*_^S1Tb9P|E2>9Xu|l zUV$sKR)Cb)#$Ge-Kc|Q8y7g}e{yJmTmHcY@+W*sm|37l0`%m+r zh-lBQzx`Gdli|~X}H$i1Micc{gt9c-tL*w z(%34z^M!?jARyou+;3%~JB?jkD>ELylC-In65`-kqF;FTK(71UzasZfhTVy~XZsLV zEWT;E2&0gR?_8g@8N77ja$s_JK{jyEp6Ww#{!z%NxviDIVz#Bxj1V@G7D1{+d%3mfbuA-~3RAtfQtl zpO>*tMK?5#xQmG@iYB$xboLZ_fj37lNXo^JMFdLsrhg`NE!2c>n0oY8fT$(f@BCUz zA_{n%mrRL2PRLmy+INsZ!M(R{WRbP&ecV4;x)- z3Z3$mTDbF-3hiUhXt&Z$-DohCW^)I`nLI@41!!aj2IUxAhQ*V;4DnP-dsr22JWe5? z-m9h-KGnf==~#_EvLpW=(Y^rU`o~t`EFX zx@>~1YHC%XT&tmuzLR-Yot}6p-k2nF)38x(Lf@uT)o_N|!*7=rp`#{Qg9}-eS5=pj zRgHX;j5m@uzKgih8h^ME8&)^f!Sm9@Hj4rgB=zf0$aesIL?3%E!_yl&g zxDwFK^5&{e{{iQsK9(2u$f>gNTm?!A}5yhrdxj8D%0v| zz>@t8JY^U0S8o?r^`1fSZrWHfjT^kr_zx6v3S~&=6ccK zLF-VIU>)72$mk;edmP-d=a5E=#Fe@cr|BeGwoFg{Jz2Mc`7Kt&!G1udyT>D2zbIC- zverPvR0uY|6CB>0nHGvq#D_i&9Z061!_^hK+3{IPmU9^H!OJ+S(1wd0p((2>;=JAg zad}!nyed4}M1)A~9*Tu`$DK;^_*XP196?GhQU^FGQ1ro-Bi)=zg)AsM_zTstQAvm7jc?(H@{#4mYFr=v9rdJ2a%K3r=A7*u*tu)nI8|E`Hq0 z3ATQm7zSh0Y{v4C`{^n64#*%YS9-ZugFRJwE`rJ@TYm3Br9m zvQRsXuC910T;pQ4$KzIkqDYvqtm=508X=JwD1s8X_`r-UREKk}F2FPQ6KB3u1l>|C zesdo*IxZ27Pl20qVGr=Rg9=kZ!pb+rC(5v57eBxZ`4Axq2_cxz)?NaQW8n>IW1i%< zd@s6@sCr=2tcI4QZ`^g~)|NUCLz!YW zEdR83enB4tKCvX-G{g7yYF}(Ke|MP(6FP^4B!aqVd>7h{!02U+)sl?%BhlR2yi-J9 zT~EUO%XT?Xza;dCYRJ1TcCOBp{n_D_zLhe>W;194{u1W%h_b|x7}ygV;iqwc_a=K{vl`ly<7hIE44fP~|OZ#T*Meri{e2kxr&YL#=UYX64 zErCu<6#R+z8bhPqW=kq6=5OK)KNu1>QGw|m{g-_YwN)VBFCnp`r%xzaC*=q1L-bSZ zH)O$!kDd`tSEjzOsEwDq-eLjtUo)XhcWqKbEz-Y>Az4 zhmktQJXmnR2d0&O8jU%kU@QPd1xlkr6 zsyUT!T^6MKqI~xo7SIpoN?C6*X}wuB;;WOD8_#29xiEExfFVQ4vs`Dn!8UqoRauRW zXHwW<)|$@cV$>g@2aYy(iopCquNyy(&m;<6FoBsLnA`61B{#2ncxIczQp;2k3%|~QdbD7i%#{b?#{xE zeVZ#@mZ&02oak&yo1mb6VVnkn)yF6#e8g>KDxwSJCc*>ASu^v+WS>>rC8%j21hOX- z3rzGOgXpRwGT@i~_#ssP&6qtr)9R*f;_s{il^hM!8Wk?Rt}y}S`$nakc-b_UsSKn; zkj6>??fNV1XSR|7V&u6WlOEUArFbBO`G7nFU4H(E_C{We&Eov93fA{5mGp*c+-mOT zDUb|})pB*;pf*y3wd!8>VrMDH9-fm&Vi7rsczmKHP<7OQm2i5LmF)_5e6~C=+V1on z;TQh*n{O9XCfUMdx(NVWM#RMg0Ynr;y&<%vDstGuZYGTK@F9G7^AufFq$4}A^3@#` z_xgejqiGVXb5351DAHkl2Kg4I;Bk6B-U9{$XXU3HI z>VB2-=Bpw7UTgJfuCr(U{Nc&{<;PR@wf~B#l*)06xMcs(>;DSz$68E3U*`53f|nw@;rH8yd>yhA**xbc9GfGmh$8$j`FatuA`| z^FrT;f4bFA{k4rU%az}9SBiyI?_XNT6v>4Y*G(XbmQ|79>@MaKKDs~Eve)s8RGDgb zRsGqT(vb*FrRL|?x4Wp2%bP(LWqJ&RhP8ec>;awxQ}wkt&@F9}F*?FWgdbWBA3il3 ze)H7c!pjhVcwu-!HU^>iIG}LQ$704h?wmp`!d(#SmuO}3^O)JWHY`5Om&vW(lVZLz zQT@4Y4NBEqkOq)QxcsynIZmcSh(Mx#M3qiyiJB74C8F$M@931kv9^AIEs^iF< z0{m-o^^hTD9h%h8)e>+(aTozb_q~~WSFTPikf>g2jiOB%*V^I5 z&CY=#uNd;?Vce;w7o<(wd?{>U#vH0+t;S9tJ?{?4zT%Mzm`?#n*A8#hCTeY|^;b6;RyhD0$7TGr>ZQsXuOpURgRO=;7J5$_ z6V@GL)$}J(Vu7+*qiZj!gZXWO4W2~_m2?4(Mt2?3C(3S&D|N~8N-$nPEHtfg@r!%f zEL^1r35Q>dV~oN4M@z6?8F@wE9+#$&t+3%Xk5?MM#6p+bWN(+Kt_kGGMqQj({o?c+ z^nJofsB3~yZS-M59hROIed%czFamv!3#FcgeEC^+T_m(_h^44BDzp3>v9d9`t*hN| z&Zq!^+o1WDaPVB~SdplPW%-h%NWLuN(qYoKl$A$}dqYO36#W59D#9Z&l}93K3p=d8 zhDD<(fz~mXCWq085?)izr=?}RCpwO_E*_FO_Q!mQei^bYb%jqFAO5Y!YRkQ!4U|ti zdOp-^UdE{dwJocQ{AClqt)B zK_4u5R9U;LCIl*?4l(IP#zJ)JpafFfR%#uy7Ea}WVM_Wd#gv2NXJ~aTWf#*;(TDjL z-ust|H3wk_{3snV2mr!Q`F*{StQAl%={Q@}q3&fZ$EhnMk~C}D(xay@tJSaQ;9Q%knn65TNj61 z21IYlZI!L5(+TmHC)DXDKNtvpGokPRHXj1GRSLHHU|o8SK!g0n^-B`R$B?QXmM0FU zK*n{i{KSxZ3HbQ@nY>h6xzM@e^K`|Um2+KaJ@Cq)#pNwyK}MoUE2<@fEAm6naw2MNa$dB0ne3$OxVR<{PAt|P zsEHROLu|zzdOwb7j!3cN7C>;#S3}f{PdtemEqi!{A?4@R`KRV_3pMhJ?-d0fzLYc` zUkzG;K$rzalCvPa4LB*Q3=!HFQ-eIot+AErw(?r}zRh>>XAY7Ttq(e6NC5W+*qyBI zu4IzL1N_?Bm_sFQcb)7Vs6O0{uYLe2sdPhKmm71JqGrtB1)1+eo+UrB8R(CPK*B_t zoB8*dZ!$wJ(2VZ4lAu*r9)0e9Iwxhg*3_(CWd_i17_3bd zY^zX@*rP%qYIih+M=;N|HgXrUrO9zK^FgEP&0I`OPz&&2DqmxH6~4)5=0Tv1`k}5% z;vp&LhHa$c*PVWb&#|>cHjs6xS7O&n;h#zb>FHkS7uH)#)3SdWu$nB}JMbbw@r`F=Vm9Oo-GWt&P!rpfviDq`wTGzeR6H}ro{5ckHePiG`jb;M{@FG9 zJD}NddWfwDS^|>17?&k($sGZ)epiV~%{#9#l8ylSdKAO+-D+5YWUV(K5Nh2ncNy@; z9hqZceL**p5w3K!Od^Q^VZOf5_g^`2hp6uo!4`494&kXbuD(AfYDd7!he$dU{e8>9 z5>6l;Z6N(hAM1%d=wENI)zYr(f4!oN$>mg8q(yQeZvNAT|DP7sf6T`E4_j1Vjpy(C zQV^2NfH!1n1|E*4BuKUa9DLqTSB|80bao-1Q5_=+owfJ)b*&yRJ zE+!W9RRglO?523bt;`b0!b;uhF<+Yyb9oXDK`W_8etW;&EY74HtMYcbPzbM|y@Gi^ zciS|HRh*JbP0>)9s<5vp7$7wA2jshWeDn9x_b;eTv^yWW^MGNWGGyug_@W!G2>C}@ zu4Mc`XG0`dJ!e*55u;eAR6XQl8|C)X~)ht(4S@w4guq{*oX9NufS)76I zC)a;fU0c2D)ha)9X}an6wS7tg_28lJ`Px;N^p-SGB%e_eKnEHW6ta_Mr zke@1h@BY~7IAUe-{jag7WHJY=n}tn5Q>hqzJf~pZsbU9}USLnu^~~%A)OV%lY-JDi z#Py5^$I(~w-BQdDHSilt#dHUfSRuOa#UyPaklw*`8Olp0F&+2AnDm57;;j+(@6Sx$ z%)VDHA?ME6I@kV@Dl$&UFN`u-+x8=2b*kr;c)NupBd^ctvAMfB7PyOQZcdd(ez|@M zT{Uok*hAcfy?2$@Sj28Af!n0in7LZDz6Ow6ZHwD?F#&64t#8Ul)+EaptC_GBzT;si z%NJ9&23jhw5`^I8zdujLz_gc{X345+7U%otcE+n#L!R_q+ffHbAxcN_MI+WurB_Zu z({QOfzY3+`um<`gvZ6@=C6?B{(2Y?v`{2uU+|z~^EgdWxr57Q_iFeQ+dEO^roO7iN z+e6{IINbN+GUJQwu&QmPM2{HZgXo`vyA^8vmDvg6dT@WMd5aY9^trBuhWX~S!oHdS}pOMT}(lr6(x zUAZ8h5`4n|MAv{@pzmw@xvyJ&AtA{Kmq_!!xR@PS5#J`aAp5)i=N`1Ltk&e{KTByg zaX8&<2|Ooqd7!drpzNW9ksxtTffWRX;DcgJD&@}(i0ICoF|>U^v%mH_Gq6OZN_KF; z(>7JO9M7J9Kbk>^pLSLcnGMig`b|+p9PBQZGnCkl6&KhI*_uqkNeg|A44vzMnNA5! z*TaV=@*9{jPV!X9_f95QlaZ13!|zRg4RGR_O{--+8Ldbc(n*K z3Nk17JRT14BE0rfNwumJEWRlvCbqty&P~V)1uuVjF`Z=^C~sacWcYyP9sIlj7ShdtUKu4w1bb0N%Rw!1TfA@0%QotAvKI{3`n8FtHMR5ou0}?Ni127 zS-cq7+TCM|&`$WVc9TfnmZ}EEqvOw`C;If(P?P6I+M?0=lm!3FtYU55elptg!?XM&vF@X@(yWCLiyBHlnBO>ysA-AGp3^mSNu5qCBavLqwC zF&uMGE7tBHE9l6u*V;@ed;OpyXLN?$&LHzG=PK7L>+JPv*_pqw8u-?9^KIz6chdO{ zAt(y1`30k>laY>eMJHhdmOTQtYCQsd(&(zJwUWrbNVMPW4?kJ_2k7oC>} zJ9%AwN^(`6eKi~;LYDhrIN!Km|deYO?i<1QsFjD+a1 zRdCwr-{!c7es5;!B=z+NwTlL((#ZS$ih)?5#s0SE^WF1zzl2;q4=UEuSbBC5`|>Kk zfQSiMJ!;1!TQ;CKaK-aBxLh@mig$9-DzuK< zGJ0Gl0=`e>Hr1Q)5Gv+r^H9>Bh+HJ~4gbZZ6E*7Z&}4bbZczRd^PKr7Xg5&)j`h&k zOsO|yv8($D>FZL81j%7)pwU2kf{+tOFBuJTI!CkVy)qzdVUc%9wI=pyl|6(%8ZnmY zMsWD%nWEimu`iDZO^``+^){Swfe+(5FlNaYzi0R%!pGe+`u2Nz`rJdD)uwOx?UF(C z%nmM~Ef*Irb?bE7&Kbv5=-KyZyQei-7iq%=##C$2C5sVH+d)~EKud?NIkSl{3)A?zqn#Z zN1Q70L7FRkx*I!AWO=Tj8kyO5nVch!iNdoe=k}xTB|F9QS+OFgaSy8*p_gym>D_lh z(}-l>720aNROfh6;Te#U#VO^RrHyIy%LiQ+PY{1`aq7nZE!)0+C97Ce2GXf~`AM*8 z`1#*rn&+|9UX}D%5%qGjR|~J8^~Z5J9i6fY{G>QB14SZ2w#aOvQ3}7@C?PKBcKaQ) za%333-T29~11Y~5v~$DCekE+?d8SYwIdA|{Pm)?18-LdCgyV00(r}02B0%Nie&M`r zLw9TSNSd9UrDS&VT;W)z+IMd1O|=e|y;_du`jRBfBiAuIB!9AFd!E9?Y^U2XcbBv( zAl5hCWtp9_%tWx`k$oIP4`gx7`yqofDURqUH|h7l81mJ>MfJyW2lBMr?p?CvjJE8# zE0VD+-Mf|%#XP=vprkk=8 z?3d@s;x(bkvKHyz6sy-!v13v=Cc`Z}93bCA+V+d#zu-;(#aKe}t(r zodp?PnG*ZbLMMaSqPh1p?k*t*EJ_Q%>X+>l{4Exr_$<>duP=>uforDxp&n}y*yu`k z*gwsX`%r;caN!HporQ^B3-lbm14m2=Uwu&ReZ+)tRJE?EGk;88zfP`M!j7peSg-``u!dOZYrVjM_mUpwY3br@Q~%As1Sp6>i)(&o8rDoxTDb`mN)p zbX^TgyFzG?^TUCX*8}!2^8r9r1NA4`&VZ6Rhm5bRO7A3Sz{VI2fdBO1NIqO<=T+V*=J)ETzs3Ecc225kbshW&>xR9? z2=D~e{`e>$h)eVHJX9@7Z^V+pS=syLx} zGN`D|!Jbi^T%jY7N~o9WqD!kTH=ZEyl?{&I@@$PhW1LnD{ua$$7*}y41p@f{wn@{W zphLMD7T(6A!K(lA4U@{%vWFtHj$S6W@VZ_|LWL!C@r{38F|WOPZ%g!X1kDXf^ZHms zs2-%2mf;C0`brozRxZg!}HD>C2t1Sw^2| z88?M92-rDx|ZsvU%T99yDx>B`eaTEAHg7N5qxpJcc! zODc{HX_+@zh7)oG>+Bl{!z90P0-Dd`Zv}tUHDX{2mrzK1nPd0ByXq|c(Ro=jyL_^y^e_}#r9Jn7J+ahU~f$ zT`V59iWG+(4E!w)k_L3NDzt+-w-TU|#p-8PzXEBb1qceW*^_Fix8rRZE49~`;!a(6 z30czz_%*T^z!-fV6R|fH46JrWw|h{@RfiNr=p5Lrc3dKW3UizCec3sF()Qn9aV0x3 z&!cV*os)aJ6Fu|?ZBAA0yOHf}Ms`QhQx}U*g1b!zJ~7I?1bPwz|NUkW;Xolg@Ob4X zpEi~QbJE&jF8>3&lQUyO7Jdb#wkUFjNC2&Cs!4<&|p*ZRJ44){6yaZ`y~&MV4^AvDqUv= zOE*7V#m^~qHf>dJ6S^2+vzkHXrWZMM{VJ$*KkvNuUDFkf)A0bWvVs2K!u-sRWQdVj zM;w7LuP6qP4XcM}i3Py`6ffK@bG07*@Ae@a7oAsJd^+@4+(_>A{DH1s4HKy=mKoLv z;i`9ftf)IT!>$hKRd@2(XH$%vR6I$fY%;`g>L*-!yqVkEKvUx(3QgoTW@eu{EGv1g zZ!E?qd;r?LVrkBB7TZ!d+Cu5+1>nDto_Y;TQZh*5N&bz>w`SsICNk?y%|))C*Jj9D zPb;J+j-S=M{LY73&9KRFgV2Ul4a==ZhIEPqs8s-cvMZsyz)q0b#ei(ogIDBG_&wYE zwUF7g4*3x;qH_u@>DPnMr3EOiQ^<8peSE|>ZtZ1|*{*Da1qACwa#w2$#bc+58A
%NIwF-+sr1~`Bj(o3 zNn3Li>`(Q(r>3jow%@TJ<1Dy;d6@-l4gyhpr zS9|>WZnaE%JTX6-tOkusN4&n>t>y>-PNttR^L+g&f6%MhD=Q$V%9Z=(YR#Npz;LiD zqQI`ReqTK`3YE}K?Dy+zT@_1b`AaTG4Dw(|e-Fdvij{2l;(-VjmN zy?Ewz(Z4z)?d5-;Gbo!;&?#B-*q`7!pJo4#oqpQlU+jx{FKBdRwsnLMZ+Mg3a#QXv zuHUIYpJ_>U3T>ESR=@HuNG?%Hif4gnyVAOZwbhM!qw`)xG&jO}VRZh|u+l4y$>+u( zI$UN2nsc?ge_*>OL|RQegypku9dqo`108P9NlW*Z>cd+@W_PB~s12FthG!@U(9bK5 z*al5XpbZNlX}~1koq-YweJVG1SS>_vSyKmO`+nrZR%!1xk3ybu?R=($xp94)PFHY+ zM1_QP>8md~HnZRq?5zO^R42@`vnQ9cEp=`S=>^(t;1Zh+Z?M=?Ran|57d#>7P^zeV$syixs1dZtGWw$oZG|5bE zONlv~-FdwLoZ?e%2v2$5z<{M4;dQOu(lvY`KEC|+FG>aC98^%R3q0o^+zw*W&SF1p z!4`x3lM6I_3U{Npdt?<})oJ@0FC$Ln=LZddcj{cc&6k8mdvoVN^DI|RMZpgDFe21Z z_&Yjk!!lS5Tbb58Bs)t$pER5;CQ?;ZP1|sO;+7oKQ{gaxt_i8XYA6#L_~Eo%d}gp{ z{KpTD1v!8MO42*yu}lrkOi5&N&dPp$*vr~z_MTc;QmR*MK4TE-F&>;an|k?bt6M$% zkCI4{`qkEC64~q!W#0RCKmXl)*dL4y93*Y|gu?POxMI1Z>~*#!zkxU|KsmK*if=J% zZP)N5_r&ju`lXxoPnH|h&aZkM)yZ?S*)U{!>OiyRl(NImW4+>G_Bq+4gpX@FHRD0W zCZ$(Y#>fd~6-dq`1i>)|rv=LVIKT-B{WAc+pBu(TbciCqnpg9`B}dKR^B zX2~DNjoj(ukeXsMUu}O@j@q{s;^xqrU=`e_f`^{5Pc^z)xz&;d-pg)SH5H{a;@_Fb zeKBhMwjPl|T0n&tv7Lz>a1G8C70F3Hga-!G`! zRZZ-yIh`hkr}A@KOdF>QRjb7s%Q@RsLS=o=(s%X79Wh~Hn%0f;bKj1i9BD-V#r4gs zaO$X*bEG_`xNVZz?6U=Y=Pj5;Q0L>%7#iq@+>M~ZhZ}RznXZ1)@OX-MNkd|ITLqww zG(y7nAzn@Wid`z@qsaM3DKzg)eky(Qv^)1St!o_K^ihTvy=2cM`&pdSuc+w4gm4fB zIV55&Lo4f8Gw{TK1(M-?vpM;lp!jg^ieD^6%BU7Wt)zA&?B3h@cwmj!@DLtYn#^?x z?E>Q@R=jHN8ZRYl39n-aWvo@w!*?8rG_>D8k9$aH8(bEAj<;>WNUMW6=UN5&xd2i2 zkhk*}QeHq&Q@pa3byXa+Nhcdm$lEr9}x^5IPeXMD3#{U6o=nW zn1Q4!$?<^4*X~)HNf^%tv@Hp6%9Cf39UXSrJXPfvQX{4PuN6k#@@%7cey{qZcKu6z z>5irR<(fGd6gL#~>s_7Y1b&IQ9YD~*aT31!MvfiHT z_|64vbwQPb%jf1Dxisy2HO>r?Hz7izM zs|u~7fDFX;dAYuJ2bzgZOJ5)QW+6W#t4p6iO2B0UM*cXw*{RYHH<~-o6x-Wy^#R3; zGRAlzL|UHp*T=)-3PLK5GbH{)h~u4=yI#Zty3Pk0Da>(nzdi zRxW-Z^9~)7rXKi6G_UeY&g+%djL8re5CCt&NCl^kV{tt1#aC0Chvy+4r1r`P`E!#a z4p%`OU%Ywe$DFKlzInDU&P_+K(DNh1uhnq&c1$0+fUjFDP*- zLWI`2eD;kBt8jq|YhHaO-0ZD-s9h5)eKRHYQRa)={7+FxfjG|FC3y8SiMVy==>39l zwi6;v*0S}4CbF#}I}8dyW5dx>WzfL!r7<3v+2oBhJ%pG#dj>UCMZGNVc>YHH#@UGz zv$Sr{_N)ipl|m4xoro4@Dm?U)BYwnZd~s04cGsM_lpRMLtL2@yzq@>b_<17=-yfPm zZG_WC|9ECT-Qwb*<=-!ym<;AR&OGhWyvKntRscYugn=gI0IC zLa$-!Z{8YbAmQ=TdU|@Jk7}Pqak-z0-5|mLO>qmQ$Vo?CII0xvPs;@jk+{| zE)l5`AP#CN*a6eL0P-~pqcS39AX#?LUh}2)PND2|CKLxKL*$X@yaTj-#Xy*s!WBy? zOOf$f6n6AFJku37b?CnA}v^$_9I`%TuPFo@s!i3+yH~L#V zX`ySoD7-*0ew^Y^qi1oNB)qn*e5-2EN9pa%hl$3B>?;ZenM(3zk1&JH_ox_rF@|?( zwADzkVS=4q5AdZw8?uv6>BWo_y>G4I&?DaYoC22|R=w-R+k&A29iwr>RIRwUCmK3e zw-toRnG6l}r&ZUI@@20C`Xprn?CvGa8znFH4(f&Y>5`^uAN)&oq2sn3yKrn|QdRo< zwHW!ErPVR&-YXkIoQTB5riadd{;Q+l|DG@Z-@sA+lkQdx9?l`FQ?bH_qHSLDxigZ# zKrEY2`$?1*6VPD-jL)PJv2gF4l15H+fN?gBVwUx4B55gpR~DiP?$u(%CU4$;9d z=|ibx?}$p3YA**`n;40!IdVWjegNDmnmy#E8T~HNCA3JQTA)$eyK1msE7j`VZ6gt_ z0Mi}z7xhv-P(=FsISx*am;6EGOr7IYioHtUX(G)?(fpv!TZNMPWuwV(K~^o0qow0i zrB7r54^aQ>R7RWTX8(tF#)IwqcafsnuI)gJCk>A6mOwZBfGxz}F7WQa7n5I9RMz4* z0>s3#32h`wC++KtDgTMMH@Ru3P@vVjebV_SZ=B!I$7v%$v>6nwt6PXINx|Wg)FtyH zu$aKtfyq!wupS6X@{Nm&@f&RezG^kGcsVoN-2evqj|^5erf9^zvljjKQb{zSTRg-e zHw)lfujo}~P7$jQHjT1B*izQTZXuPxfq_zmbGO!iZlAyM!aW3QB2QW=PURyZmY1@Q zYm!oGY&C$%%NWp@UCqik1rZ84kFT}&*$Y1%QG}=E)}Se>y%yFMvaV>)i7e`B1jMoz zyaob|nJIV_+ng`3eCO9+UM~eQGu=r!wf>45T&M^hv+oOXgn(BeX7%Uj_#tFDOUAp# zBpBE@b@zs6}5g?7DV(_ zA#xII-lR2n`4pdM&|!I&!^`g3%n}Qo>oi!)qB#;B+en8h7=6KbB_~h#nsoQb_DlX6u=FzlLej1=Wew6rQ3`T ztJZwti?l~ydkYX8)XiQ=*4LYQ8D|xxaz;M=2 zR;Y0~zEb)=XGDPpFjE&ztqOsR-35_VO9UZ@nCt8P@nsyHulPpve@>Z zQkabxW5SpBa!~nz-J%Thi}n@B=`Za<)-A)N)%ejk z_ccBu(@Z5M{7q(N4vVx7y-xC(k0|(ZM|!&CPW~tDkxu2Tt9GU)bu0H*l6SVr%XEG) zJnBF%L^r&oW`e%^jlTJ9fMvja>*N`@-P5I9N!Pq+zG9 zI#kvX@QE$viVgRC2g>+6BclfPb^4`z&AxI}vv!aRe~ir3=nY?@F7 zsB5BZ2sp3-Ks>c!5U?fv^!!t<;rj6UQC6;K$F{*KSA0hCpIl1+Qr$KluA7}&upzqg z<>1(&OoYK!N_Er>JKE`Yhm-Whm^#aquiei{hqm8CxPHcu{KxjC)0G3?=BmmXye+=n z`3`scasNBk`X9U0|JZ;3-;gr_{%GNDi)gOtVs=G0+D)aQgIMJn3`x_Qs*Or5Z+h2+ zkbd=HN%x=mR&W2`e5?PK;(FvC;_t%grF^{(bt}=zqDjl3^CE%nGC^<>wq7fQ&+Mc< z?)y1`9dpS1oTKX(fPnUC|L*nDw(nv?ku!@TXM9Q3Dy9aUxV<3TtOT}6P*T z=^vVZ7~3Z%j6)yLa^iP*ocv?+4+A?-YBcbvnEp!puaB2ATuq8K zbha(#8wkJOOe#xed51PC)SndlvH3%>aN}~1-?Y41p9mx}iRIF|89b`a^Fy=f59%+M z%>H|`@}u_uIVt~Tsr>(8QpTX1H)~Ds9)`m$jdSX9`eE5f*sHU4;4BUT>qI%?-1+-q zD8+=v)5|6%@~cVd`MB`hWRn-NCk3lw7chQLtk0_5U;ZSXmyW)~LrbzswYq;2*K)#&zCI1vlLB4*C7 znwq+E{RIB=ziVn`?V7fpR2Hw}&-K5dL=n8~|b3!*!NVQTbD`Uar*bIg}?zk=<{GX;xz7Hy7-MV>1_rZrFd z)l)%#0?wYfJbklRre;C#X^HB%9k^41nqhW4_T=rKop=sz(GKeIk;(KPm^QcII*8+1 zSht1#1U2SG}L!OESz1p%?=e49O z0;=5pA^P`j*^Y>dxf0T=kq*xxWssBLS>SZEz0&B6dl5RvC8(m(xHZJ|We|eB3qq)? zg259$2L22P54!j~UY4!G+(qbHX3d;?_eEClQ;13p*`Y5T_h^Pj*Dwx=F=~3Z71fhm ze_$tJVCJh)R@$I;|B7Ul_0W|rU&aF%%z@>KFEx7UQIPRMH%)b&#N@aF(^oS>U3-9l z{cy&FiB%PJj`xta5-=MD@mpHLPmItIOsG!#S5UmsiN{a}o)qIvsyKo7yz9kKyNWNyv+uVi{aX594(?$Kp==Ovv}FuU zR#I^0a^kw&pj`Ja4T}v-ZJrQ6*JT9z^YaugWAN@>lolU=cu z@4i}87~9W59ezp`+gRqsIAHtSx72&*S0~B?B9U>c(ja97R@=+8>}K&}8Wi5zMwH=` zc*^}{uuy*9HAf7%hNy1@g`+4eOqr6Z|MMcDBVF9~No@};(=VTkeTTiTC3nA=W4z)p zoW!{+6;TL>fgpKgy=aAD3W*xQpAS};(0P8XcDe>FM_XqVeK~#IHh}DH8c*fD-m>I4 zti(-5)JG-rRH#Zx10cR$iT(L+jt3UpiY}SHocRm9gs|y01Y^&a)EJ2X?lNUWYUNBS zrJvXOGW;I$nh0b}q6>K9vi}sWD63Pu1iw$T3HW%BZV+A2S9wJ~$Yw4$Ee(5GwbXci zJJk%7y6U{w$MOIGE%}4*NIjs^G&);Mi0`aj_|~ij>mAKEoV00TWk^&TCru zxShN+VkBM=Axwz~6RPQlIQH(XjV`eGFKVO`Y|8M#YJB0K$FN~lM3(Qb526}v#?G&N zXte|Hr=W~y^-EI8<_?E;O)k!e_lz-YRXls;NTlXGq%-tYPgUR5pnfZr;Tf}p$w1RC z7G^|tX{IbGbmf%LU<`0za@?`tNIsL-X_Gw%)PqGZjH*bSQr%I&eY{A z@=osnc%_xR&fyLdLy9|7`J@U``yeo%nt|Fg`nkjzrK|hxt*k#^Qx)OLhdKILUh^-k z?Ff}*!`F5V>1Pr&Lgi`}r<07_Y?7^u!nd;%&2}M(jhaP#<71@}kxPsT-Sf8TDj{#k+~dn@dpe*8{Tc7dqe=3q_QnihV|i<)=NQ)m(> zi-PVM9MuvZaGf&<`nNs*SGW8hIYe>&WQ6$T#bU0VRG3I3q&Z-Dl$G513xZrV!5c3e zauP^vx_eXg79Pb?>P-Tz1|`WIvxb)NGu(VMiU5) zmlDYBRY&JYrKE~`!*d5-XRj~YX6sM=Q0y6jg&y_ zswa*0I=1RLHY38+v-<_d`<9;NKsK(CK*$ebNoH;0qbFGcvNLvWT0yHsr#538#q8M9q+iM0s9b|`bG^u{0 zGWdnYmbrbGuXoS1nnlP~ct(3r-w{Dj`PHX`{6DAPXrr7gIB){fU?ISuwKjT`&!fOH zrC+elp&phD;qj>j8;{#<@O^bmwy$p6FZjAM;62RYCIrGXYE@^KSPn|~ zn2l$NXOrrwn&-;`#FOFmyLfg&W%gfOPVahSXAB_EEy&n6tMIz+VgJ2Zw!B<2VDCd< zqng=(CRKRyWiUI!5bIGF5hAW!+x$Fc`Nf0i5#?CzTLx6ih^MD_i#ZHUU2dm=dn@1L z5tBvsO6M+_9yI4ne4^Wx$W)$&AIInA>l>Y2%cAlGtpU)!mvbzh}89%jAG;uDY-`hsZ~s=6`TgNv3_(E5D_TWj$CDDu@UHtv(h z^7jO?;qt4TMRF>sa*tSLO$Sfau8Nqsmz0%NeHd}@v8aJEhCuRWXXafgMX9}@NaI}q zb(snAQ-)Zg*qRr-gc-s*1)8mZO|*UEQKAWWF`Jc>R3x)${UETua|qe>pZF>_ZPj-6c&lp ze_Unty`TLGfX)84R}#h7gbY4-DHdIG9~FrTNA`TM&GaQ0S>YdYt4qdwe!eyp&76fC z#C~1<^Vhg$5o@Y?+s|p#X@%du^xk{#`=;#tPPz~@&o#h)rgYoV=c&SrQWHVhD-v;E zYv-ptq>i#gjDKl^);ht|+bmBbOp@?RsgQzu<@*(NUu2^k8s|LIDg|qY+5tL}pfpLF zsh(B?l%j`f_c%HbCHV}QmhAl5>q)lU{R5074v4FoyD@S7`V6rcvBtAO!NsjIr^3bt3b0r13FZ}zKTKJgPaR*Z5c)-}M9Tkjtv*$B4mBN1dM0Az!azz=UJ5$a{T#ksKA!grCnG?RoiTwu zI|rHyf|w8C-;OP52#?1*^mg7o;^6Dt!AaB_Q5?+7P!uSOs6@UD0?|f5_ludbpu{c|Z7T zYs7LbO?QoM@+TKU^Yy>&{J*&6|A@EXA9Of%!Xy8y&V2_+OtDE4Fa>g($&P6!4ae5m zO?jutTDs(LJI?9%bqb;zIwoB~W+z`qMU?B0`oJG2xZSHD#Iw7#Uh(>ZHyd%OD?F(& zvqMTe!H!c_c5jE93Mz<)aIt8eVPl06zvZs16?;&#Yyol5R0{e9N8JwV)x%8H205m% z1abJzk0A4*osqA9?&h`WsMqg`O`pi?pj|!L7y~sQ3Bl&9eEU7ZV&zm6=R+F>H-=e~AI(h@4 z+FJ)X|9P4JoST1MfIqC8K(}8Gp6Omhjd)~Wa$7LX>qh$HXISg!GwA`(GW#cUC7!!+ zNGH)pqy~Cc=Z>OHP`?4W+<_{4BfsJubm3-ZRiKXT1OpUcz{A}i&BA{pJJebLL`z5Z zn`fHBLj2P2UCzl*LnLWdg8PI_SF#13(nswO5vXFA(TK=t&8ng$&c4w&JHP3Rs!k&e z*(N{>xG!i^I6OB3iL~z)=v6~rYAYL?Yh0>v07Vr%ToPV6R#*A^j@dw^{kGQ5wlKY?q_+`i!ZEj?--b3R#$`oKD|>xh+J{CUx(|RJp}hrCQ-T$1P1!R z7NH@rboGot`%PfTQ+QJHa{Nb7U<1C5(Klbp!igcWXSj8k{l4{o9CZHK3A;~k4Qu-X zQ1_xS8;P6S$=bXr;;zorO}gf+L#i;-;!=M9sC%A`N&!a5S3DN%=v)n5Vnf;xa8@e> z>0miB+84Am8;<)z<*8cT2Twk5F|hD@ZtH&-WcG-SWZKPM2KVS0E=`Z~8ji+~4j0Gs zymfErzN{7DLR7&xGrUsmEdv$U;)5TPpv9?{gp%6iQ#qTLGB9WoP8!Ac9f$DcF5=^J z9ot#*L5%@y4aZW_y!KLi1F@4f84IBT>+G6U+4ENrL7YOT;SBp3b6~=6y-NXSSRN#N zoy2PFfMWFbM<r1ii|KbWR&RY@9^z!kcOc89KilC7U$jc8qh2b}$R&6Qf z4U0@<7<_&;2@C_^)PfzJpTHu&zd#-j4lc7$h9irjs6ej)iY1JLwAH|!^2(Ah4gU%e+*7yiAn7yaJZnvdgy*HAGLQIT@ksnj z&kcxs!Tc*!{0g=Vk6)b4#ku2FDc(1zgR+*9k@caGu`|aQ-a=q+`OfV_>HJ2Ph*(S2 zpixg^GB>ZyE~U>UnU_Dcg9AkK@ahVk6{PA49K2uE-z?tFRCcbZNz%fjD{;Zq!Kg1} z{<|uk$y+{ys|izUjjY|Va9+GEMVXvA9GE;e9;H=F5=2BWvv?kbUJ~3@zsjpOU?PX^ zyvkF^hFCh#H2qGK0GY3t2(;Hs6Sr>vH`?W97|h785Zl;D0w55cY?UF?ZCC#`2D>jX zy@H!lgpUJ$J=|okG}$yO>xR{rLxJq;NTEx<589o&kU3XQ}4peArw|0`GHKh~qwkv*#biW{Q=zTo+>)`Rj$iqwWe~hq!1K3j| zH#;v)**z%8#j&p5BNDw=gsj`o2*+jj`8~CcIy|i=UGM+vYYoG$iOHeD@t62frih%C zs=!=61)Gd+)8ED{9>6qxIpndYkwT;#wFt7?)UmQRLm*jOJI^%FnPl_`PKOr^@_Wi( z`)*E#=Vm|TvbB;@qqc4(`h%#-cK^K!Vg1L--5;N6G->=l?R|GxQ(3n+Q=JiYL`0P4 z2nYiR4qZS{2STI-3?T^+0wbW1KtO?nj-zA22tiOvC{Za1Nl1{AL=wOe=~YUA5CVhr z(3BFIIyduv&%Mqc-}~MB-SWKmx!1q;dCocOoW0iGXYaGuUhDU>bj0sQ0D>>hhdY-N z%$^rU$SLBq#OqQtXSbRD6tBLNV^x5J{$%#;MxfQe4~MW3Ma0=$x_?SiS!_YHl!Q0N zaruTJpO(yNmCYMeFR*4EFzwt4nsgVo0ksLO;AV;zZaB*Q<&FAxhAivy zwR}Gp_AFSG?;n8Nid#xiY)}upEDt>hYAeu?JM!U*cPy&ZE3ni|u*40{zA*NEQG}=4 zPz>?JKHNL1rmKBz?gB5u)Lamc2QpPI%mOH;xvmD>>t88s=fvm~Q%VYG1TzO^X!mHK zeVV$47mYbHB{+RNA)3(X+Ke;GwnF7bJlg+^XM!=myf!<#olCZtMAm8v^>|AzzK5Du z?V0V&e}&=4*EcIF>4jgR(a z*SVS?!-5aU{Xj$eftn5A6CcM=!;8XY% z&h8!18e!?Ue7L3DKAgX8{#$tJ-hsV{+AE!b?2DX)@2D?z7kk+=uDHs<&XbOlP#Pv8 zz4&m2M#e~6$z66^Qp%LPv2q%Kt9zFg9eXVh{o=I31t8SPB*NDC!1>9Pmg!nrZeiM= ze6yTz`8&a|M}fpqD0x%Vi(1YONyg91&XJl7yPz&_#kpq!)e9CURw$_A@n3gwQC&$B z*$M3@*#U1~HS3jx;smP4Pxq%g&KZ&SuHqHM;@75Enx|WI zd=K~@dy=ULvztP%AupBsMEW4NV%{MZytD%MM99e-HXf5X&{Vo=qge%a4c~loy4l1D zvjRWc1hE{0t-(PY`+N;`kDVyjIb5{ljK>|hZJkG#SLQ~Q^ZSs?Pb)kRDWPLTvg!I< z7cYX#EwPlKHkcphxRI)dRh_W=fnoj)*UM{!+3tEezHKym%q=B6R2n~puPx!_e->Oh zyZ~!MSf>j?wg6lCi^b#{CIMH6hC$Cz>D5pS2|644gwIXXSy8ctzSo-t7<=n z)5%3!*Nx#)A5e-zAnuk#DePyUdpXW~ z_zv(wKTHo&+)0R$63bKwD~g8TgqamvavS!1hto8e6<|U$?8pFIC*J{4&0m4I-XFh)%!32o!Wq zI~>^!=ygy$iEeA6%PA-zhjWJ=a{Zj{R9;X`yI`!GARCH`Ob@tp1{xtZr(27&LrWb; zj-S_!ozqrQ^za4B7E*imlF{X6vHCp=?!G5ulOCbucE?sYdPe^^K2D5${vP0v>E)SW z3B2~z$Qmgj9qZFTnX!)u`(41>OC|gu4x%etEN#rJVeP+a+;<&~1I{{q)6c^+Elq_3 z9Lw9kpjm*SqTOvxMJ-7LVOb#?clY&{0(tO0q|&-a%%7@8NlxvW za0N^H?$O1ZjMT=5zsDTkyTmsZDWg%E)6)J+CAi8;GYb~o0gEnOeTfmv-^E_a@>8Oh z5EC}^f1~B!XJ{A<#JlJ`!4oFrqZ|V84r=ACn&EnnhVfJGI1w-ZOD`fZWdW{(M>iTj zlR5DCfF{&uW}$7wJ5_8bRoY#ESl*(P~m=a=z_2hQ>zIVV~wCAwb1EgXzP-NyRHp=xxzF&o%U3{)}mwjkTSgaI4 zZ0P1q3U<{qVy{i@xKbQBn^Cus9k`xx1(6$G5^oau)~!LHoeA~Rkm@o6uqad6^e%+HG%ga(^QlUEYo~ZCk~*(!?6% z6tua=c*=cK-wp<7D=YGiMB89qJ~_-Qn;G0`TxYeq#aK}MseNYSn{z}cB|tO(p#AB65g_JB%t<)oi?2|X0LhhyLQsH5DmWn{x(POXLE z(rhp<5I%mj*Q;|~opI(@--8T{l+3r7@B($wZohHppn>d z_1*S-(A@G6Pj{k9XNU~D<>AE|gihsim^VXWm6DJ%z|p&9s@dlT z)}$WwB$h%0yyu5T1J%v33!n{+*mDm9EixZ@t>^>m73ErVxjrnE=eEx+WsRKXu-DUQ zQ{hQ;M2O4M?t~M8Hi4<`Cd!VcX=_-eU+)60lycPB1g_3hF^vL1N&;S0mq`NzF_N*w zF21$p)k5yo!pvBnPxkABxSRCwPOGg+X?Kppc?PB-HFls0kSxq#*tce1$mQi?{R6EY zmKC_1tfj5>O+bAYZuTAFOjWa$uU5=wDkR&91-`Dw*?8)pk|iGCZ{~T(gE*#F-ItXC zmSZ3{d|IC#)~b1vtfTDuRgI~D`7p~7W8siKX6{i`SjvS#!7sFSR?SGBNX6e_w3z)o zs2n5%te{xwzx|~h@JlEX`X1FrWM4^m*_dTe+!?a@`GvtAcq5i_J7)r}s)9|cR%uNq zR%m*+Fwh0zD-!LCCjBC{K8!yLB3M7FK(09lRPS`$uzm{ysgv7gr&2oO6mXy|@7#sl z&HY5Vd|-bF#PP@Nk$E#_I-%$6tfxu&Z(DhUOjtvMeYpZWs+KA-7vat&B_Tqmp!Qqc z5y;|gJ+h_oIp{gc;e6|2y-|Ul_MB!;0d=mf{X}ndw-k}f9e{j5#MzD9y;O7T%2s{= z)-x1(a{wkni;dwouLoH&ZmOo@R!TYOa1cYzyWi%|>b$K}(?`@Xm@+%cI z7&=-|F|f%v)OaQnoyAg-A`Z72=WFn0toRnVH_}8=1v2=>%)S_cE&Rdg+G{o5)htSx zqvJO1e6Z&9^mNV-0U=>Nm!MFXgvQ)i^8U@)E)D74{W%uFZejX$1PI$?(~1*;a($_$Wgw?fu10sJnm=&dR0H z%G9-uB+U0WTjZ1M`gqh|FrEA0zTqxUA9Z7^ zG|t?BvKC6~NnOXi`%VFCmfKwlH0A!WwFnbjr z=m&PQyv62b*^o`IOLsxTrDTpGCRECAciQL6<3Ib!vEZgozr3M5_PUhboHah2;0nS~ zrX3yecrL!U5U5^Iv^NLH)?CgPgB9!C-{1~m#OSCR zoq92?lm|BSR+}IUhwILLPitdhs=S6;j%qu(P1FBO{LRTVg-3<_D!0E19!{&2w}^=x zJij&pTv!>Z8ar52(cACP=Y9gcrB!k*v@6q7q4zwMyTA-ze17qy3~9G>Cxj^T*~iKJ zv%dx+9Pl%yTb#TAq#7 zMiy=h`R zJ=g(t2Wrhy+wzkLz!2d!!Hni-Do;8!(u=BXx9(L_>SFnvJYq@x)p$Q_ODMK`%Ckc z)7Mb1R+rm8G)|+{af;H!^REklRP6Q`V@o0Dxn9mdrqd;MqY8sPTmqfb=(#5a`8dB( zAYC!NEx_q&;D+xMd+tLpxenBU;r2*ejVw>pdpkxg91tTMJqP>cdXCq3a3J+vm~$A(S{Pe7vVA8Enh(6y(vF@afyALL4fm$h2k@Dxl&sB$s! zYwNP%yEGOnb7MGsKA|8Jf4C^N-+tSJ)OyICE?0tQy7<7Y5=9a%R7x9y=MF$@HqU%J zs-3E(LwMy+jpO-PCLehXZ+bz=^n3-mZ`0f`_O+TssuV7QYRsij@ddjHA7nBeu zwo5?)y;Ngb;Mm3fcT%)xW!ny01~gDw(V@RN}Y`;*2T5NGT+^yW`3Vb$=xLuR%Q zeDn-BmcvJmLOeZ<$vJ_VE9!crDQNgYQhwb}gQT=zM#TlVu5SO?ryb=I?RZf>r;ewx z@i-RKFrCulQAMlZxGY60+$LXU&v$wVOZ#2o(@pOlP`49+yX{0!uM`k(YVmNRr?U&c znjCm%skc3#YaM~dKz^GZINhw$uz+h@q6M{CX)BUKB)#rAxt} zaGtyN5!L)t&}xhzGA74+B}es4jsOu{gH%Z$kg{A5`%XZttXBDH%m6Dj@dNJOMeJ?q`B;9?@g7z7jY!wQ58{vdw40e7X8zwd= zdaFp?1a#H0qlOlu^9#oN^&ggoS7;Lbiqb8cd09kZEu>CZ>(jK>{Vlifp_q`}4au=_ z%&omK55AN>xf5UIfW>Q~8@=wg3{>Z9sPWweX5m)lb;au0)A!#Vdy)pf$o($vH|CJt zdIaAqsG^9DC%5-m2gExk7(=ygsm;*T7nZiH;*VEet{JJ~IQ!Sm*A;l7X^dF{cg(Uf z2&FW4$-b!pZP1cbVPq2J$18`*LC=%5PBCI>y2)Vi2me)cfeO`O*#CZ5BQ=U zmplhU0-zElJ8Ja>Pf_=P79|B7wW`hs5qIicEbeg!o}flG*Ng`n0` z@m+>o^xXjb_?H| z*WrrwEA&k!kV_p#U{Irqup(digpQ>fJf@00lmx5?`_o zlQ6}(AxXBnRd;+MD^1(V-kl!%v5kHx_-cZ9JfKbJ*7Rzm7(_0ir01JQ_*SY+TZwV# zC&p@xI(g31{?@%4Z#J@~*Ec#HUnSVLPS%cANtl`6l=YNG0n3lC>+<&{C1O(LKyk zo3>E11_7?<8*wgKXo1op0iH|29vrLMSi7gak)?hWB$AeTgxO(XB_u&KOcxB@^>CYe zbmU-8Cz7$}S9{nvG8K?&lM)K|xm9k2C29i1??!~Q0?A^zynIqyKVKOd(s5;jqr|`O z6YV_ydR$9CXVUZd^aK_^hI%%IO|9;BGIcAAf}7@b2VeqHgJY0mxR7PHDiVNp0X3DQ zGUK@Uknh}Q_$1yKHWYq3ae4kCM`M!m7&_rtF}imxsHtOZi?xU z{=kHFMa+N_&Fa?4kcZIwwVL?LVdGO$y37SAniiV7lp*4_HZ8hmjwG%V=Mw5}5Tap~ z-#;m!k?Poobah!e0d}`iW7P}!((R45(kX!%R6d;_xiB3)bM28xuOgjxqEP8JJJT!Y z{8GPura7l3=TN)aER`Eo<`Sla)0MN{-%CqTe&Js)j<`1flR&$nBH60ERg4B_62!-$ z6IhGzlc@oDaH9%G-P?$1f-c2w?S_MLN0URv3jIM-5-;?ovMolbJ>a*3Cxh|izH4o6 zw5YlY!EWGpXPF=N)}}S#r9aw*%0nghxCOMa+A?`7 z;bWYG4q1^E0lK*xaJVgCk8^Mq?WdCD;GVKr`!b*gJS{E;hcG`@kabH{rQ3A(=|5zQ zJ1NBljx9$rk(t#RG|+^P#Y|$li!aul5u)t4?3t?_x)FF9J3F zY^1Lg!eV_AL4+Q@A{SQg7*qRuKvdlcnAV7j4Wt_V_5HGv;Nr;^WR&EvJ<% z=Dg?Qr==*|)Ypa$S21vJzii@Nf)q*(Pb}&5Rywh?Pj4MGT-fhciN1Pzh*A^Avd2tc$WsSn1iOtn z<>Rx16~W@D!=4#|ikK7C=b|}ITJmYO_VqLhgm>HLaq-#dCCePjU{4^gXHg2OD!O-!vqqWVEg--yDu7k$?qkQ%}Vxt4r>7 zAf6m})Vce1&5ZgB*5HvRJP#t2I+zrC=uZ3TRu#GOhqKfR)B|*6jludiYl|*p`+6Ck zJ;|?^GbSuKMHZ&a?tFju175zW!;0+~?gfW2OHyL$rhUQrBuTY&8$lASa5!6QO2OG> zVR;ic^U%I)Vf79pvOaQpoa(tR?55ZR+F#Yxs;dmW!t&Pfn@e+hqBQ8BlH!BRyH`Qp zp%7#nn754{xK)v_ffhlzJzCgTE1)!sPWEcE##Tw+gH1*AP*_=Lr${#No8G-%tt?ny z>Bw1M!)EyFHSED>qI=3A?ZBV5GwIqTnVx+l2jo#bGwI4Fl(bJYCgM-vzn6 zG(zO{bp}`Zu@UzeX4&AjArDEjy#!{^3ABK|uMvjwMK1Nd>w`+0%&x)Rd(?Aua`)iG z&NxS6hJ4`K{DrL^DFRn&hLZGGUIdTS&GUDNCcWAT*}hf~bLfk>dgAF`PejIg6Wntm zt!@1l@^ihw6lR2EED%RQYx`+w<4zqCClQD9cb?}RHy=kpRuW*nK_@NpTo58=T|o~V z+Fx9R39qNNx(^ivd-tcCm$&7rYh<)m;-;K_N&OwxQQw^;#0VrH*ZaQX_t5jn2SLSz z7zJqDP!3OBUDrIZQ!*AX=6BZTR9Nt!p{et4GRM#U^UCP2uI~Shf$RTlhkw2N%w_s{ z*HP7-c3wR9mxpo;*QaPH-a>2c__L6huT1rCu=!wR=2bVnqo#n~iwWCC z5hhGR2yBY=%?TN1=AatdQ%n0q)i^ZS_}lx(Y6qmi;z85#fyG;e+~KiBmG0!V=O(QK zJ)QKSwA~joE@O?g!Rcz)xT7OQAqsr z)fy^mZ=iOwx)%vS`C_65xYPG2T1W2hiR8qo{vop)Fq`=D519iOuHgb_t;+!_hU~-s zAy>=g7{QPLwDw*320N?&i#jOPODbK>*XoI%D}PktG7teYE+2bCK6`uP zqlzERGSJhp5cN*y?^zmK6=C&f%>%v(`)J<3D2e%h)$G%&|D{j;XB%8D-|E8^;>PG@ zot62w6CWGIObL{V{sOCava8bDQ6*89L1;!5Ug!KUe^g^m*C4!Y9j2}UK@X+L#ao?f z#&OXUIsIBS(jt!sZ8{bzvp4Yn066~ZANzmcj(JgtljZb65r@`{S;jD266YP;|YG%9rw;8l~S1EAg+pXl=r>y`_;=2$ z|6|3zP*E#CI-)&oq~<}_LC7o3<=|87e52p5i(PGA8UMP=r)YIiHTFSw)t=v93{p?; x0RKGk#i<{$((65co;cgJ=Wo~lJn>23la)SojZfdhr%~h6Q2C!TKb-kP@J}#cuD}2Q literal 0 HcmV?d00001 From f0c7aca25c3f89496af7edfb1013a93d7c307a62 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Jan 2026 08:21:13 -0500 Subject: [PATCH 32/37] chore(deps): Bump diff and astro in /infra/website (#5864) Bumps [diff](https://github.com/kpdecker/jsdiff) to 8.0.3 and updates ancestor dependency [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro). These dependencies need to be updated together. Updates `diff` from 5.2.0 to 8.0.3 - [Changelog](https://github.com/kpdecker/jsdiff/blob/master/release-notes.md) - [Commits](https://github.com/kpdecker/jsdiff/compare/v5.2.0...v8.0.3) Updates `astro` from 4.16.18 to 5.16.10 - [Release notes](https://github.com/withastro/astro/releases) - [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md) - [Commits](https://github.com/withastro/astro/commits/astro@5.16.10/packages/astro) --- updated-dependencies: - dependency-name: diff dependency-version: 8.0.3 dependency-type: indirect - dependency-name: astro dependency-version: 5.16.10 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- infra/website/package-lock.json | 3628 ++++++++++++------------------- infra/website/package.json | 2 +- 2 files changed, 1436 insertions(+), 2194 deletions(-) diff --git a/infra/website/package-lock.json b/infra/website/package-lock.json index 419bd36c346..9736b96d46b 100644 --- a/infra/website/package-lock.json +++ b/infra/website/package-lock.json @@ -8,293 +8,213 @@ "name": "feast-website", "version": "0.0.1", "dependencies": { - "astro": "^4.5.5", + "astro": "^5.16.10", "d3": "^7.9.0", "shiki": "^1.29.2" } }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@astrojs/compiler": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.11.0.tgz", - "integrity": "sha512-zZOO7i+JhojO8qmlyR/URui6LyfHJY6m+L9nwyX5GiKD78YoRaZ5tzz6X0fkl+5bD3uwlDHayf6Oe8Fu36RKNg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.13.0.tgz", + "integrity": "sha512-mqVORhUJViA28fwHYaWmsXSzLO9osbdZ5ImUfxBarqsYdMlPbqAqGJCxsNzvppp1BEzc1mJNjOVvQqeDN8Vspw==", "license": "MIT" }, "node_modules/@astrojs/internal-helpers": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.4.1.tgz", - "integrity": "sha512-bMf9jFihO8YP940uD70SI/RDzIhUHJAolWVcO1v5PUivxGKvfLZTLTVVxEYzGYyPsA3ivdLNqMnL5VgmQySa+g==", + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.7.5.tgz", + "integrity": "sha512-vreGnYSSKhAjFJCWAwe/CNhONvoc5lokxtRoZims+0wa3KbHBdPHSSthJsKxPd8d/aic6lWKpRTYGY/hsgK6EA==", "license": "MIT" }, "node_modules/@astrojs/markdown-remark": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-5.3.0.tgz", - "integrity": "sha512-r0Ikqr0e6ozPb5bvhup1qdWnSPUvQu6tub4ZLYaKyG50BXZ0ej6FhGz3GpChKpH7kglRFPObJd/bDyf2VM9pkg==", + "version": "6.3.10", + "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-6.3.10.tgz", + "integrity": "sha512-kk4HeYR6AcnzC4QV8iSlOfh+N8TZ3MEStxPyenyCtemqn8IpEATBFMTJcfrNW32dgpt6MY3oCkMM/Tv3/I4G3A==", "license": "MIT", "dependencies": { - "@astrojs/prism": "3.1.0", + "@astrojs/internal-helpers": "0.7.5", + "@astrojs/prism": "3.3.0", "github-slugger": "^2.0.0", "hast-util-from-html": "^2.0.3", "hast-util-to-text": "^4.0.2", - "import-meta-resolve": "^4.1.0", + "import-meta-resolve": "^4.2.0", + "js-yaml": "^4.1.1", "mdast-util-definitions": "^6.0.0", "rehype-raw": "^7.0.0", "rehype-stringify": "^10.0.1", - "remark-gfm": "^4.0.0", + "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", - "remark-rehype": "^11.1.1", + "remark-rehype": "^11.1.2", "remark-smartypants": "^3.0.2", - "shiki": "^1.22.0", + "shiki": "^3.19.0", + "smol-toml": "^1.5.2", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.0.0", - "unist-util-visit-parents": "^6.0.1", + "unist-util-visit-parents": "^6.0.2", "vfile": "^6.0.3" } }, - "node_modules/@astrojs/prism": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-3.1.0.tgz", - "integrity": "sha512-Z9IYjuXSArkAUx3N6xj6+Bnvx8OdUSHA8YoOgyepp3+zJmtVYJIl/I18GozdJVW1p5u/CNpl3Km7/gwTJK85cw==", + "node_modules/@astrojs/markdown-remark/node_modules/@shikijs/core": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.21.0.tgz", + "integrity": "sha512-AXSQu/2n1UIQekY8euBJlvFYZIw0PHY63jUzGbrOma4wPxzznJXTXkri+QcHeBNaFxiiOljKxxJkVSoB3PjbyA==", "license": "MIT", "dependencies": { - "prismjs": "^1.29.0" - }, - "engines": { - "node": "^18.17.1 || ^20.3.0 || >=21.0.0" + "@shikijs/types": "3.21.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.5" } }, - "node_modules/@astrojs/telemetry": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@astrojs/telemetry/-/telemetry-3.1.0.tgz", - "integrity": "sha512-/ca/+D8MIKEC8/A9cSaPUqQNZm+Es/ZinRv0ZAzvu2ios7POQSsVD+VOj7/hypWNsNM3T7RpfgNq7H2TU1KEHA==", + "node_modules/@astrojs/markdown-remark/node_modules/@shikijs/engine-javascript": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.21.0.tgz", + "integrity": "sha512-ATwv86xlbmfD9n9gKRiwuPpWgPENAWCLwYCGz9ugTJlsO2kOzhOkvoyV/UD+tJ0uT7YRyD530x6ugNSffmvIiQ==", "license": "MIT", "dependencies": { - "ci-info": "^4.0.0", - "debug": "^4.3.4", - "dlv": "^1.1.3", - "dset": "^3.1.3", - "is-docker": "^3.0.0", - "is-wsl": "^3.0.0", - "which-pm-runs": "^1.1.0" - }, - "engines": { - "node": "^18.17.1 || ^20.3.0 || >=21.0.0" + "@shikijs/types": "3.21.0", + "@shikijs/vscode-textmate": "^10.0.2", + "oniguruma-to-es": "^4.3.4" } }, - "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "node_modules/@astrojs/markdown-remark/node_modules/@shikijs/engine-oniguruma": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.21.0.tgz", + "integrity": "sha512-OYknTCct6qiwpQDqDdf3iedRdzj6hFlOPv5hMvI+hkWfCKs5mlJ4TXziBG9nyabLwGulrUjHiCq3xCspSzErYQ==", "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" + "@shikijs/types": "3.21.0", + "@shikijs/vscode-textmate": "^10.0.2" } }, - "node_modules/@babel/compat-data": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", - "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", + "node_modules/@astrojs/markdown-remark/node_modules/@shikijs/langs": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.21.0.tgz", + "integrity": "sha512-g6mn5m+Y6GBJ4wxmBYqalK9Sp0CFkUqfNzUy2pJglUginz6ZpWbaWjDB4fbQ/8SHzFjYbtU6Ddlp1pc+PPNDVA==", "license": "MIT", - "engines": { - "node": ">=6.9.0" + "dependencies": { + "@shikijs/types": "3.21.0" } }, - "node_modules/@babel/core": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", - "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", + "node_modules/@astrojs/markdown-remark/node_modules/@shikijs/themes": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.21.0.tgz", + "integrity": "sha512-BAE4cr9EDiZyYzwIHEk7JTBJ9CzlPuM4PchfcA5ao1dWXb25nv6hYsoDiBq2aZK9E3dlt3WB78uI96UESD+8Mw==", "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.10", - "@babel/helper-compilation-targets": "^7.26.5", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.10", - "@babel/parser": "^7.26.10", - "@babel/template": "^7.26.9", - "@babel/traverse": "^7.26.10", - "@babel/types": "^7.26.10", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "@shikijs/types": "3.21.0" } }, - "node_modules/@babel/generator": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.10.tgz", - "integrity": "sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==", + "node_modules/@astrojs/markdown-remark/node_modules/@shikijs/types": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.21.0.tgz", + "integrity": "sha512-zGrWOxZ0/+0ovPY7PvBU2gIS9tmhSUUt30jAcNV0Bq0gb2S98gwfjIs1vxlmH5zM7/4YxLamT6ChlqqAJmPPjA==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.26.10", - "@babel/types": "^7.26.10", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" } }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "node_modules/@astrojs/markdown-remark/node_modules/oniguruma-to-es": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.4.tgz", + "integrity": "sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA==", "license": "MIT", "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" + "oniguruma-parser": "^0.12.1", + "regex": "^6.0.1", + "regex-recursion": "^6.0.2" } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", - "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", + "node_modules/@astrojs/markdown-remark/node_modules/regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz", + "integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==", "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.26.5", - "@babel/helper-validator-option": "^7.25.9", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" + "regex-utilities": "^2.3.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node_modules/@astrojs/markdown-remark/node_modules/regex-recursion": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz", + "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==", + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "node_modules/@astrojs/markdown-remark/node_modules/shiki": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.21.0.tgz", + "integrity": "sha512-N65B/3bqL/TI2crrXr+4UivctrAGEjmsib5rPMMPpFp1xAx/w03v8WZ9RDDFYteXoEgY7qZ4HGgl5KBIu1153w==", "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" + "@shikijs/core": "3.21.0", + "@shikijs/engine-javascript": "3.21.0", + "@shikijs/engine-oniguruma": "3.21.0", + "@shikijs/langs": "3.21.0", + "@shikijs/themes": "3.21.0", + "@shikijs/types": "3.21.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "node_modules/@astrojs/prism": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-3.3.0.tgz", + "integrity": "sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" + "prismjs": "^1.30.0" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": "18.20.8 || ^20.3.0 || >=22.0.0" } }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", - "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "node_modules/@astrojs/telemetry": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@astrojs/telemetry/-/telemetry-3.3.0.tgz", + "integrity": "sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==", "license": "MIT", + "dependencies": { + "ci-info": "^4.2.0", + "debug": "^4.4.0", + "dlv": "^1.1.3", + "dset": "^3.1.4", + "is-docker": "^3.0.0", + "is-wsl": "^3.1.0", + "which-pm-runs": "^1.1.0" + }, "engines": { - "node": ">=6.9.0" + "node": "18.20.8 || ^20.3.0 || >=22.0.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.10.tgz", - "integrity": "sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "license": "MIT", - "dependencies": { - "@babel/template": "^7.26.9", - "@babel/types": "^7.26.10" - }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.10.tgz", - "integrity": "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.6.tgz", + "integrity": "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==", "license": "MIT", "dependencies": { - "@babel/types": "^7.26.10" + "@babel/types": "^7.28.6" }, "bin": { "parser": "bin/babel-parser.js" @@ -303,89 +223,35 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", - "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", - "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", - "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/parser": "^7.26.9", - "@babel/types": "^7.26.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.10.tgz", - "integrity": "sha512-k8NuDrxr0WrPH5Aupqb2LCVURP/S0vBEn5mK6iH+GIYob66U5EtoZvcdudR2jQ4cmTwhEwW1DLB+Yyas9zjF6A==", + "node_modules/@babel/types": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz", + "integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.10", - "@babel/parser": "^7.26.10", - "@babel/template": "^7.26.9", - "@babel/types": "^7.26.10", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/types": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.10.tgz", - "integrity": "sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==", + "node_modules/@capsizecss/unpack": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@capsizecss/unpack/-/unpack-4.0.0.tgz", + "integrity": "sha512-VERIM64vtTP1C4mxQ5thVT9fK0apjPFobqybMtA1UdUujWka24ERHbRHFGmpbbhp73MhV+KSsHQH9C6uOTdEQA==", "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" + "fontkitten": "^1.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, "node_modules/@emnapi/runtime": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", - "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz", + "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==", "license": "MIT", "optional": true, "dependencies": { @@ -393,9 +259,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz", - "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", "cpu": [ "ppc64" ], @@ -404,15 +270,14 @@ "os": [ "aix" ], - "peer": true, "engines": { "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz", - "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", "cpu": [ "arm" ], @@ -421,15 +286,14 @@ "os": [ "android" ], - "peer": true, "engines": { "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz", - "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", "cpu": [ "arm64" ], @@ -438,15 +302,14 @@ "os": [ "android" ], - "peer": true, "engines": { "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz", - "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", "cpu": [ "x64" ], @@ -455,15 +318,14 @@ "os": [ "android" ], - "peer": true, "engines": { "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz", - "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", "cpu": [ "arm64" ], @@ -472,15 +334,14 @@ "os": [ "darwin" ], - "peer": true, "engines": { "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz", - "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", "cpu": [ "x64" ], @@ -489,15 +350,14 @@ "os": [ "darwin" ], - "peer": true, "engines": { "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz", - "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", "cpu": [ "arm64" ], @@ -506,15 +366,14 @@ "os": [ "freebsd" ], - "peer": true, "engines": { "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz", - "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", "cpu": [ "x64" ], @@ -523,15 +382,14 @@ "os": [ "freebsd" ], - "peer": true, "engines": { "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz", - "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", "cpu": [ "arm" ], @@ -540,15 +398,14 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz", - "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", "cpu": [ "arm64" ], @@ -557,15 +414,14 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz", - "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", "cpu": [ "ia32" ], @@ -574,15 +430,14 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz", - "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", "cpu": [ "loong64" ], @@ -591,15 +446,14 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz", - "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", "cpu": [ "mips64el" ], @@ -608,15 +462,14 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz", - "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", "cpu": [ "ppc64" ], @@ -625,15 +478,14 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz", - "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", "cpu": [ "riscv64" ], @@ -642,15 +494,14 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz", - "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", "cpu": [ "s390x" ], @@ -659,15 +510,14 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz", - "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", "cpu": [ "x64" ], @@ -676,15 +526,14 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": ">=18" } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz", - "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", "cpu": [ "arm64" ], @@ -693,15 +542,14 @@ "os": [ "netbsd" ], - "peer": true, "engines": { "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz", - "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", "cpu": [ "x64" ], @@ -710,15 +558,14 @@ "os": [ "netbsd" ], - "peer": true, "engines": { "node": ">=18" } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz", - "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", "cpu": [ "arm64" ], @@ -727,15 +574,14 @@ "os": [ "openbsd" ], - "peer": true, "engines": { "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz", - "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", "cpu": [ "x64" ], @@ -744,15 +590,30 @@ "os": [ "openbsd" ], - "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz", - "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", "cpu": [ "x64" ], @@ -761,15 +622,14 @@ "os": [ "sunos" ], - "peer": true, "engines": { "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz", - "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", "cpu": [ "arm64" ], @@ -778,15 +638,14 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz", - "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", "cpu": [ "ia32" ], @@ -795,15 +654,14 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz", - "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", "cpu": [ "x64" ], @@ -812,15 +670,24 @@ "os": [ "win32" ], - "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/colour": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz", + "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==", + "license": "MIT", + "optional": true, "engines": { "node": ">=18" } }, "node_modules/@img/sharp-darwin-arm64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", - "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", "cpu": [ "arm64" ], @@ -836,13 +703,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.0.4" + "@img/sharp-libvips-darwin-arm64": "1.2.4" } }, "node_modules/@img/sharp-darwin-x64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", - "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", "cpu": [ "x64" ], @@ -858,13 +725,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.0.4" + "@img/sharp-libvips-darwin-x64": "1.2.4" } }, "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", - "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", "cpu": [ "arm64" ], @@ -878,9 +745,9 @@ } }, "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", - "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", "cpu": [ "x64" ], @@ -894,9 +761,9 @@ } }, "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", - "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", "cpu": [ "arm" ], @@ -910,9 +777,9 @@ } }, "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", - "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", "cpu": [ "arm64" ], @@ -925,10 +792,42 @@ "url": "https://opencollective.com/libvips" } }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", + "cpu": [ + "ppc64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "cpu": [ + "riscv64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", - "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", "cpu": [ "s390x" ], @@ -942,9 +841,9 @@ } }, "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", - "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", "cpu": [ "x64" ], @@ -958,9 +857,9 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", - "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", "cpu": [ "arm64" ], @@ -974,9 +873,9 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", - "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", "cpu": [ "x64" ], @@ -990,9 +889,9 @@ } }, "node_modules/@img/sharp-linux-arm": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", - "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", "cpu": [ "arm" ], @@ -1008,13 +907,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.0.5" + "@img/sharp-libvips-linux-arm": "1.2.4" } }, "node_modules/@img/sharp-linux-arm64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", - "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", "cpu": [ "arm64" ], @@ -1030,13 +929,57 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.0.4" + "@img/sharp-libvips-linux-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", + "cpu": [ + "ppc64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "cpu": [ + "riscv64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.2.4" } }, "node_modules/@img/sharp-linux-s390x": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", - "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", "cpu": [ "s390x" ], @@ -1052,13 +995,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.0.4" + "@img/sharp-libvips-linux-s390x": "1.2.4" } }, "node_modules/@img/sharp-linux-x64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", - "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", "cpu": [ "x64" ], @@ -1074,13 +1017,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.0.4" + "@img/sharp-libvips-linux-x64": "1.2.4" } }, "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", - "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", "cpu": [ "arm64" ], @@ -1096,13 +1039,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" } }, "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", - "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", "cpu": [ "x64" ], @@ -1118,21 +1061,40 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" } }, "node_modules/@img/sharp-wasm32": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", - "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", "cpu": [ "wasm32" ], "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", "optional": true, "dependencies": { - "@emnapi/runtime": "^1.2.0" + "@emnapi/runtime": "^1.7.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], "engines": { "node": "^18.17.0 || ^20.3.0 || >=21.0.0" }, @@ -1141,9 +1103,9 @@ } }, "node_modules/@img/sharp-win32-ia32": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", - "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", "cpu": [ "ia32" ], @@ -1160,9 +1122,9 @@ } }, "node_modules/@img/sharp-win32-x64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", - "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", "cpu": [ "x64" ], @@ -1178,104 +1140,27 @@ "url": "https://opencollective.com/libvips" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@oslojs/encoding": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@oslojs/encoding/-/encoding-1.1.0.tgz", + "integrity": "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==", + "license": "MIT" + }, + "node_modules/@rollup/pluginutils": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@oslojs/encoding": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@oslojs/encoding/-/encoding-1.1.0.tgz", - "integrity": "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==", - "license": "MIT" - }, - "node_modules/@rollup/pluginutils": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", - "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^4.0.2" + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" }, "engines": { "node": ">=14.0.0" @@ -1296,9 +1181,9 @@ "license": "MIT" }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.35.0.tgz", - "integrity": "sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz", + "integrity": "sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==", "cpu": [ "arm" ], @@ -1309,9 +1194,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.35.0.tgz", - "integrity": "sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.1.tgz", + "integrity": "sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==", "cpu": [ "arm64" ], @@ -1322,9 +1207,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.35.0.tgz", - "integrity": "sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz", + "integrity": "sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==", "cpu": [ "arm64" ], @@ -1335,9 +1220,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.35.0.tgz", - "integrity": "sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz", + "integrity": "sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==", "cpu": [ "x64" ], @@ -1348,9 +1233,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.35.0.tgz", - "integrity": "sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.1.tgz", + "integrity": "sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==", "cpu": [ "arm64" ], @@ -1361,9 +1246,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.35.0.tgz", - "integrity": "sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.1.tgz", + "integrity": "sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==", "cpu": [ "x64" ], @@ -1374,9 +1259,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.35.0.tgz", - "integrity": "sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.1.tgz", + "integrity": "sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==", "cpu": [ "arm" ], @@ -1387,9 +1272,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.35.0.tgz", - "integrity": "sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.1.tgz", + "integrity": "sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==", "cpu": [ "arm" ], @@ -1400,9 +1285,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.35.0.tgz", - "integrity": "sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.1.tgz", + "integrity": "sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==", "cpu": [ "arm64" ], @@ -1413,9 +1298,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.35.0.tgz", - "integrity": "sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.1.tgz", + "integrity": "sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==", "cpu": [ "arm64" ], @@ -1425,10 +1310,10 @@ "linux" ] }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.35.0.tgz", - "integrity": "sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g==", + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.1.tgz", + "integrity": "sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==", "cpu": [ "loong64" ], @@ -1438,10 +1323,36 @@ "linux" ] }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.35.0.tgz", - "integrity": "sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA==", + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.1.tgz", + "integrity": "sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.1.tgz", + "integrity": "sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.1.tgz", + "integrity": "sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==", "cpu": [ "ppc64" ], @@ -1452,9 +1363,22 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.35.0.tgz", - "integrity": "sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.1.tgz", + "integrity": "sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.1.tgz", + "integrity": "sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==", "cpu": [ "riscv64" ], @@ -1465,9 +1389,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.35.0.tgz", - "integrity": "sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.1.tgz", + "integrity": "sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==", "cpu": [ "s390x" ], @@ -1478,9 +1402,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.35.0.tgz", - "integrity": "sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.55.1.tgz", + "integrity": "sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==", "cpu": [ "x64" ], @@ -1491,9 +1415,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.35.0.tgz", - "integrity": "sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.1.tgz", + "integrity": "sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==", "cpu": [ "x64" ], @@ -1503,10 +1427,36 @@ "linux" ] }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.1.tgz", + "integrity": "sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.1.tgz", + "integrity": "sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.35.0.tgz", - "integrity": "sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.1.tgz", + "integrity": "sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==", "cpu": [ "arm64" ], @@ -1517,9 +1467,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.35.0.tgz", - "integrity": "sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.1.tgz", + "integrity": "sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==", "cpu": [ "ia32" ], @@ -1529,10 +1479,23 @@ "win32" ] }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz", + "integrity": "sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.35.0.tgz", - "integrity": "sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz", + "integrity": "sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==", "cpu": [ "x64" ], @@ -1611,53 +1574,6 @@ "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", "license": "MIT" }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", - "license": "MIT" - }, "node_modules/@types/debug": { "version": "4.1.12", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", @@ -1668,9 +1584,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "license": "MIT" }, "node_modules/@types/hast": { @@ -1719,9 +1635,9 @@ "license": "ISC" }, "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -1804,6 +1720,31 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -1830,549 +1771,195 @@ } }, "node_modules/astro": { - "version": "4.16.18", - "resolved": "https://registry.npmjs.org/astro/-/astro-4.16.18.tgz", - "integrity": "sha512-G7zfwJt9BDHEZwlaLNvjbInIw2hPryyD654314KV/XT34pJU6SfN1S+mWa8RAkALcZNJnJXCJmT3JXLQStD3Lw==", - "license": "MIT", - "dependencies": { - "@astrojs/compiler": "^2.10.3", - "@astrojs/internal-helpers": "0.4.1", - "@astrojs/markdown-remark": "5.3.0", - "@astrojs/telemetry": "3.1.0", - "@babel/core": "^7.26.0", - "@babel/plugin-transform-react-jsx": "^7.25.9", - "@babel/types": "^7.26.0", + "version": "5.16.10", + "resolved": "https://registry.npmjs.org/astro/-/astro-5.16.10.tgz", + "integrity": "sha512-mBaRwFrqwCHiKDvvfNW2rRRkLAqnkj3lbkte6Vg4OzeUiDyEsdU4oOqTZxHJf/mxzZvBiU37BxG1oeh+tq1IUA==", + "license": "MIT", + "dependencies": { + "@astrojs/compiler": "^2.13.0", + "@astrojs/internal-helpers": "0.7.5", + "@astrojs/markdown-remark": "6.3.10", + "@astrojs/telemetry": "3.3.0", + "@capsizecss/unpack": "^4.0.0", "@oslojs/encoding": "^1.1.0", - "@rollup/pluginutils": "^5.1.3", - "@types/babel__core": "^7.20.5", - "@types/cookie": "^0.6.0", - "acorn": "^8.14.0", + "@rollup/pluginutils": "^5.3.0", + "acorn": "^8.15.0", "aria-query": "^5.3.2", "axobject-query": "^4.1.0", "boxen": "8.0.1", - "ci-info": "^4.1.0", + "ci-info": "^4.3.1", "clsx": "^2.1.1", "common-ancestor-path": "^1.0.1", - "cookie": "^0.7.2", + "cookie": "^1.1.1", "cssesc": "^3.0.0", - "debug": "^4.3.7", + "debug": "^4.4.3", "deterministic-object-hash": "^2.0.2", - "devalue": "^5.1.1", - "diff": "^5.2.0", + "devalue": "^5.6.1", + "diff": "^8.0.3", "dlv": "^1.1.3", "dset": "^3.1.4", - "es-module-lexer": "^1.5.4", - "esbuild": "^0.21.5", + "es-module-lexer": "^1.7.0", + "esbuild": "^0.25.0", "estree-walker": "^3.0.3", - "fast-glob": "^3.3.2", "flattie": "^1.1.1", + "fontace": "~0.4.0", "github-slugger": "^2.0.0", - "gray-matter": "^4.0.3", - "html-escaper": "^3.0.3", - "http-cache-semantics": "^4.1.1", - "js-yaml": "^4.1.0", - "kleur": "^4.1.5", - "magic-string": "^0.30.14", - "magicast": "^0.3.5", - "micromatch": "^4.0.8", - "mrmime": "^2.0.0", + "html-escaper": "3.0.3", + "http-cache-semantics": "^4.2.0", + "import-meta-resolve": "^4.2.0", + "js-yaml": "^4.1.1", + "magic-string": "^0.30.21", + "magicast": "^0.5.1", + "mrmime": "^2.0.1", "neotraverse": "^0.6.18", - "ora": "^8.1.1", - "p-limit": "^6.1.0", - "p-queue": "^8.0.1", - "preferred-pm": "^4.0.0", + "p-limit": "^6.2.0", + "p-queue": "^8.1.1", + "package-manager-detector": "^1.6.0", + "piccolore": "^0.1.3", + "picomatch": "^4.0.3", "prompts": "^2.4.2", "rehype": "^13.0.2", - "semver": "^7.6.3", - "shiki": "^1.23.1", - "tinyexec": "^0.3.1", - "tsconfck": "^3.1.4", + "semver": "^7.7.3", + "shiki": "^3.20.0", + "smol-toml": "^1.6.0", + "svgo": "^4.0.0", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "tsconfck": "^3.1.6", + "ultrahtml": "^1.6.0", + "unifont": "~0.7.1", "unist-util-visit": "^5.0.0", + "unstorage": "^1.17.3", "vfile": "^6.0.3", - "vite": "^5.4.11", - "vitefu": "^1.0.4", - "which-pm": "^3.0.0", + "vite": "^6.4.1", + "vitefu": "^1.1.1", "xxhash-wasm": "^1.1.0", "yargs-parser": "^21.1.1", - "zod": "^3.23.8", - "zod-to-json-schema": "^3.23.5", + "yocto-spinner": "^0.2.3", + "zod": "^3.25.76", + "zod-to-json-schema": "^3.25.1", "zod-to-ts": "^1.2.0" }, "bin": { "astro": "astro.js" }, "engines": { - "node": "^18.17.1 || ^20.3.0 || >=21.0.0", + "node": "18.20.8 || ^20.3.0 || >=22.0.0", "npm": ">=9.6.5", "pnpm": ">=7.1.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/astrodotbuild" + }, "optionalDependencies": { - "sharp": "^0.33.3" - } - }, - "node_modules/astro/node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/astro/node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/astro/node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/astro/node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/astro/node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/astro/node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/astro/node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/astro/node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/astro/node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/astro/node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/astro/node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "sharp": "^0.34.0" } }, - "node_modules/astro/node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], + "node_modules/astro/node_modules/@shikijs/core": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.21.0.tgz", + "integrity": "sha512-AXSQu/2n1UIQekY8euBJlvFYZIw0PHY63jUzGbrOma4wPxzznJXTXkri+QcHeBNaFxiiOljKxxJkVSoB3PjbyA==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/astro/node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/astro/node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/astro/node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@shikijs/types": "3.21.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.5" } }, - "node_modules/astro/node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], + "node_modules/astro/node_modules/@shikijs/engine-javascript": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.21.0.tgz", + "integrity": "sha512-ATwv86xlbmfD9n9gKRiwuPpWgPENAWCLwYCGz9ugTJlsO2kOzhOkvoyV/UD+tJ0uT7YRyD530x6ugNSffmvIiQ==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@shikijs/types": "3.21.0", + "@shikijs/vscode-textmate": "^10.0.2", + "oniguruma-to-es": "^4.3.4" } }, - "node_modules/astro/node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "cpu": [ - "x64" - ], + "node_modules/astro/node_modules/@shikijs/engine-oniguruma": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.21.0.tgz", + "integrity": "sha512-OYknTCct6qiwpQDqDdf3iedRdzj6hFlOPv5hMvI+hkWfCKs5mlJ4TXziBG9nyabLwGulrUjHiCq3xCspSzErYQ==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@shikijs/types": "3.21.0", + "@shikijs/vscode-textmate": "^10.0.2" } }, - "node_modules/astro/node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], + "node_modules/astro/node_modules/@shikijs/langs": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.21.0.tgz", + "integrity": "sha512-g6mn5m+Y6GBJ4wxmBYqalK9Sp0CFkUqfNzUy2pJglUginz6ZpWbaWjDB4fbQ/8SHzFjYbtU6Ddlp1pc+PPNDVA==", "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@shikijs/types": "3.21.0" } }, - "node_modules/astro/node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], + "node_modules/astro/node_modules/@shikijs/themes": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.21.0.tgz", + "integrity": "sha512-BAE4cr9EDiZyYzwIHEk7JTBJ9CzlPuM4PchfcA5ao1dWXb25nv6hYsoDiBq2aZK9E3dlt3WB78uI96UESD+8Mw==", "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@shikijs/types": "3.21.0" } }, - "node_modules/astro/node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], + "node_modules/astro/node_modules/@shikijs/types": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.21.0.tgz", + "integrity": "sha512-zGrWOxZ0/+0ovPY7PvBU2gIS9tmhSUUt30jAcNV0Bq0gb2S98gwfjIs1vxlmH5zM7/4YxLamT6ChlqqAJmPPjA==", "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" } }, - "node_modules/astro/node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], + "node_modules/astro/node_modules/oniguruma-to-es": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.4.tgz", + "integrity": "sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA==", "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" + "dependencies": { + "oniguruma-parser": "^0.12.1", + "regex": "^6.0.1", + "regex-recursion": "^6.0.2" } }, - "node_modules/astro/node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], + "node_modules/astro/node_modules/regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz", + "integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==", "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" + "dependencies": { + "regex-utilities": "^2.3.0" } }, - "node_modules/astro/node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], + "node_modules/astro/node_modules/regex-recursion": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz", + "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==", "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" + "dependencies": { + "regex-utilities": "^2.3.0" } }, - "node_modules/astro/node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "hasInstallScript": true, + "node_modules/astro/node_modules/shiki": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.21.0.tgz", + "integrity": "sha512-N65B/3bqL/TI2crrXr+4UivctrAGEjmsib5rPMMPpFp1xAx/w03v8WZ9RDDFYteXoEgY7qZ4HGgl5KBIu1153w==", "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, - "node_modules/astro/node_modules/vite": { - "version": "5.4.14", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.14.tgz", - "integrity": "sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==", - "license": "MIT", - "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } + "dependencies": { + "@shikijs/core": "3.21.0", + "@shikijs/engine-javascript": "3.21.0", + "@shikijs/engine-oniguruma": "3.21.0", + "@shikijs/langs": "3.21.0", + "@shikijs/themes": "3.21.0", + "@shikijs/types": "3.21.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" } }, "node_modules/axobject-query": { @@ -2400,6 +1987,12 @@ "integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==", "license": "MIT" }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" + }, "node_modules/boxen": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/boxen/-/boxen-8.0.1.tgz", @@ -2416,54 +2009,10 @@ "wrap-ansi": "^9.0.0" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/camelcase": { @@ -2478,26 +2027,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001705", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001705.tgz", - "integrity": "sha512-S0uyMMiYvA7CxNgomYBwwwPUnWzFD83f3B1ce5jHUfHTH//QL6hHsreI8RVC5606R4ssqravelYO5TU6t8sEyg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, "node_modules/ccount": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", @@ -2550,10 +2079,25 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "license": "MIT", + "dependencies": { + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/ci-info": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.2.0.tgz", - "integrity": "sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.1.tgz", + "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==", "funding": [ { "type": "github", @@ -2577,33 +2121,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-cursor": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", - "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", - "license": "MIT", - "dependencies": { - "restore-cursor": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", @@ -2613,51 +2130,6 @@ "node": ">=6" } }, - "node_modules/color": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", - "license": "MIT", - "optional": true, - "dependencies": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" - }, - "engines": { - "node": ">=12.5.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT", - "optional": true - }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "license": "MIT", - "optional": true, - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, "node_modules/comma-separated-tokens": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", @@ -2683,19 +2155,73 @@ "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==", "license": "ISC" }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "node_modules/cookie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/cookie-es": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.2.tgz", + "integrity": "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==", "license": "MIT" }, - "node_modules/cookie": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", - "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "node_modules/crossws": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz", + "integrity": "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==", + "license": "MIT", + "dependencies": { + "uncrypto": "^0.1.3" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz", + "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==", "license": "MIT", + "dependencies": { + "mdn-data": "2.12.2", + "source-map-js": "^1.0.1" + }, "engines": { - "node": ">= 0.6" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, "node_modules/cssesc": { @@ -2710,6 +2236,39 @@ "node": ">=4" } }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "license": "CC0-1.0" + }, "node_modules/d3": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", @@ -3112,9 +2671,9 @@ } }, "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -3129,9 +2688,9 @@ } }, "node_modules/decode-named-character-reference": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz", - "integrity": "sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz", + "integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==", "license": "MIT", "dependencies": { "character-entities": "^2.0.0" @@ -3141,6 +2700,12 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/defu": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", + "license": "MIT" + }, "node_modules/delaunator": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", @@ -3159,10 +2724,16 @@ "node": ">=6" } }, + "node_modules/destr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", + "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==", + "license": "MIT" + }, "node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "license": "Apache-2.0", "optional": true, "engines": { @@ -3182,9 +2753,9 @@ } }, "node_modules/devalue": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.1.1.tgz", - "integrity": "sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.6.2.tgz", + "integrity": "sha512-nPRkjWzzDQlsejL1WVifk5rvcFi/y1onBRxjaFMjZeR9mFpqu2gmAZ9xUB9/IEanEP/vBtGeGganC/GO1fmufg==", "license": "MIT" }, "node_modules/devlop": { @@ -3201,9 +2772,9 @@ } }, "node_modules/diff": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", - "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.3.tgz", + "integrity": "sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==", "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" @@ -3215,6 +2786,61 @@ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", "license": "MIT" }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, "node_modules/dset": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.4.tgz", @@ -3224,12 +2850,6 @@ "node": ">=4" } }, - "node_modules/electron-to-chromium": { - "version": "1.5.119", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.119.tgz", - "integrity": "sha512-Ku4NMzUjz3e3Vweh7PhApPrZSS4fyiCIbcIrG9eKrriYVLmbMepETR/v6SU7xPm98QTqMSYiCwfO89QNjXLkbQ==", - "license": "ISC" - }, "node_modules/emoji-regex": { "version": "10.4.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", @@ -3255,19 +2875,17 @@ } }, "node_modules/es-module-lexer": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", - "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", "license": "MIT" }, "node_modules/esbuild": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz", - "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", "hasInstallScript": true, "license": "MIT", - "optional": true, - "peer": true, "bin": { "esbuild": "bin/esbuild" }, @@ -3275,40 +2893,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.1", - "@esbuild/android-arm": "0.25.1", - "@esbuild/android-arm64": "0.25.1", - "@esbuild/android-x64": "0.25.1", - "@esbuild/darwin-arm64": "0.25.1", - "@esbuild/darwin-x64": "0.25.1", - "@esbuild/freebsd-arm64": "0.25.1", - "@esbuild/freebsd-x64": "0.25.1", - "@esbuild/linux-arm": "0.25.1", - "@esbuild/linux-arm64": "0.25.1", - "@esbuild/linux-ia32": "0.25.1", - "@esbuild/linux-loong64": "0.25.1", - "@esbuild/linux-mips64el": "0.25.1", - "@esbuild/linux-ppc64": "0.25.1", - "@esbuild/linux-riscv64": "0.25.1", - "@esbuild/linux-s390x": "0.25.1", - "@esbuild/linux-x64": "0.25.1", - "@esbuild/netbsd-arm64": "0.25.1", - "@esbuild/netbsd-x64": "0.25.1", - "@esbuild/openbsd-arm64": "0.25.1", - "@esbuild/openbsd-x64": "0.25.1", - "@esbuild/sunos-x64": "0.25.1", - "@esbuild/win32-arm64": "0.25.1", - "@esbuild/win32-ia32": "0.25.1", - "@esbuild/win32-x64": "0.25.1" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "license": "MIT", - "engines": { - "node": ">=6" + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" } }, "node_modules/escape-string-regexp": { @@ -3323,19 +2933,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/estree-walker": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", @@ -3357,97 +2954,51 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "license": "MIT" }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" + "node": ">=12.0.0" }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "node_modules/flattie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flattie/-/flattie-1.1.1.tgz", + "integrity": "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==", "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, "engines": { "node": ">=8" } }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/fontace": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/fontace/-/fontace-0.4.0.tgz", + "integrity": "sha512-moThBCItUe2bjZip5PF/iZClpKHGLwMvR79Kp8XpGRBrvoRSnySN4VcILdv3/MJzbhvUA5WeiUXF5o538m5fvg==", "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" + "fontkitten": "^1.0.0" } }, - "node_modules/find-up-simple": { + "node_modules/fontkitten": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.1.tgz", - "integrity": "sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==", + "resolved": "https://registry.npmjs.org/fontkitten/-/fontkitten-1.0.1.tgz", + "integrity": "sha512-m+/cO+/kAU9farlejecXLgQH20+UXyH0K6oosGtogAz7BWco+KTYE60epKwMt8eVxqlOE2Fs+GoHVlGDUbKOoA==", "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-yarn-workspace-root2": { - "version": "1.2.16", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz", - "integrity": "sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==", - "license": "Apache-2.0", "dependencies": { - "micromatch": "^4.0.2", - "pkg-dir": "^4.2.0" - } - }, - "node_modules/flattie": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flattie/-/flattie-1.1.1.tgz", - "integrity": "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==", - "license": "MIT", + "tiny-inflate": "^1.0.3" + }, "engines": { - "node": ">=8" + "node": ">=24.12.0" } }, "node_modules/fsevents": { @@ -3464,15 +3015,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/get-east-asian-width": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", @@ -3482,77 +3024,30 @@ "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/github-slugger": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", - "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", - "license": "ISC" - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC" - }, - "node_modules/gray-matter": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", - "license": "MIT", - "dependencies": { - "js-yaml": "^3.13.1", - "kind-of": "^6.0.2", - "section-matter": "^1.0.0", - "strip-bom-string": "^1.0.0" - }, - "engines": { - "node": ">=6.0" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/gray-matter/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } + "node_modules/github-slugger": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", + "license": "ISC" }, - "node_modules/gray-matter/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/h3": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.5.tgz", + "integrity": "sha512-xEyq3rSl+dhGX2Lm0+eFQIAzlDN6Fs0EcC4f7BNUmzaRX/PTzeuM+Tr2lHB8FoXggsQIeXLj8EDVgs5ywxyxmg==", "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "cookie-es": "^1.2.2", + "crossws": "^0.3.5", + "defu": "^6.1.4", + "destr": "^2.0.5", + "iron-webcrypto": "^1.2.1", + "node-mock-http": "^1.0.4", + "radix3": "^1.1.2", + "ufo": "^1.6.3", + "uncrypto": "^0.1.3" } }, "node_modules/hast-util-from-html": { @@ -3668,15 +3163,15 @@ } }, "node_modules/hast-util-to-parse5": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", - "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.1.tgz", + "integrity": "sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", - "property-information": "^6.0.0", + "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "web-namespaces": "^2.0.0", "zwitch": "^2.0.0" @@ -3686,16 +3181,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-to-parse5/node_modules/property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/hast-util-to-text": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz", @@ -3759,9 +3244,9 @@ } }, "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", "license": "BSD-2-Clause" }, "node_modules/iconv-lite": { @@ -3777,9 +3262,9 @@ } }, "node_modules/import-meta-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", - "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz", + "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==", "license": "MIT", "funding": { "type": "github", @@ -3795,12 +3280,14 @@ "node": ">=12" } }, - "node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "node_modules/iron-webcrypto": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz", + "integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==", "license": "MIT", - "optional": true + "funding": { + "url": "https://github.com/sponsors/brc-dd" + } }, "node_modules/is-docker": { "version": "3.0.0", @@ -3817,24 +3304,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -3844,18 +3313,6 @@ "node": ">=8" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-inside-container": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", @@ -3874,27 +3331,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-interactive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, "node_modules/is-plain-obj": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", @@ -3907,18 +3343,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-unicode-supported": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", - "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-wsl": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", @@ -3934,27 +3358,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jiti": { - "version": "1.21.7", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", - "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", - "license": "MIT", - "optional": true, - "peer": true, - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "license": "MIT", "dependencies": { "argparse": "^2.0.1" @@ -3963,134 +3370,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/load-yaml-file": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", - "integrity": "sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.5", - "js-yaml": "^3.13.0", - "pify": "^4.0.1", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/load-yaml-file/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/load-yaml-file/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/load-yaml-file/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", - "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", - "license": "MIT", - "dependencies": { - "chalk": "^5.3.0", - "is-unicode-supported": "^1.3.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/longest-streak": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", @@ -4102,32 +3381,32 @@ } }, "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" + "version": "11.2.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", + "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==", + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" } }, "node_modules/magic-string": { - "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" + "@jridgewell/sourcemap-codec": "^1.5.5" } }, "node_modules/magicast": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz", - "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.1.tgz", + "integrity": "sha512-xrHS24IxaLrvuo613F719wvOIv9xPHFWQHuvGUBmPnCA/3MQxKI3b+r7n1jAoDHmsbC5bRhTZYR77invLAxVnw==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.25.4", - "@babel/types": "^7.25.4", - "source-map-js": "^1.2.0" + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "source-map-js": "^1.2.1" } }, "node_modules/markdown-table": { @@ -4365,14 +3644,11 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "license": "MIT", - "engines": { - "node": ">= 8" - } + "node_modules/mdn-data": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", + "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", + "license": "CC0-1.0" }, "node_modules/micromark": { "version": "4.0.2", @@ -4937,43 +4213,6 @@ ], "license": "MIT" }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/micromatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/mimic-function": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", - "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/mrmime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", @@ -4990,9 +4229,9 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.10.tgz", - "integrity": "sha512-vSJJTG+t/dIKAUhUDw/dLdZ9s//5OxcHqLaDWWrW4Cdq7o6tdLIczUkMXt2MBNmk6sJRZBZRXVixs7URY1CmIg==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "funding": [ { "type": "github", @@ -5029,107 +4268,92 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "node_modules/node-fetch-native": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", + "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==", "license": "MIT" }, - "node_modules/onetime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", - "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", - "license": "MIT", - "dependencies": { - "mimic-function": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/node-mock-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.4.tgz", + "integrity": "sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==", + "license": "MIT" }, - "node_modules/oniguruma-to-es": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-2.3.0.tgz", - "integrity": "sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==", + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "license": "MIT", - "dependencies": { - "emoji-regex-xs": "^1.0.0", - "regex": "^5.1.1", - "regex-recursion": "^5.1.1" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/ora": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz", - "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==", - "license": "MIT", + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", "dependencies": { - "chalk": "^5.3.0", - "cli-cursor": "^5.0.0", - "cli-spinners": "^2.9.2", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^2.0.0", - "log-symbols": "^6.0.0", - "stdin-discarder": "^0.2.2", - "string-width": "^7.2.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" + "boolbase": "^1.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/p-limit": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-6.2.0.tgz", - "integrity": "sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==", + "node_modules/ofetch": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.5.1.tgz", + "integrity": "sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==", "license": "MIT", "dependencies": { - "yocto-queue": "^1.1.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "destr": "^2.0.5", + "node-fetch-native": "^1.6.7", + "ufo": "^1.6.1" } }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/ohash": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", + "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", + "license": "MIT" + }, + "node_modules/oniguruma-parser": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.1.tgz", + "integrity": "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==", + "license": "MIT" + }, + "node_modules/oniguruma-to-es": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-2.3.0.tgz", + "integrity": "sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==", "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" + "dependencies": { + "emoji-regex-xs": "^1.0.0", + "regex": "^5.1.1", + "regex-recursion": "^5.1.1" } }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/p-limit": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-6.2.0.tgz", + "integrity": "sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==", "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "yocto-queue": "^1.1.1" }, "engines": { - "node": ">=6" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-queue": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-8.1.0.tgz", - "integrity": "sha512-mxLDbbGIBEXTJL0zEx8JIylaj3xQ7Z/7eEVjcF9fJX4DBiH9oqe+oahYnlKKxm0Ci9TlWTyhSHgygxMxjIB2jw==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-8.1.1.tgz", + "integrity": "sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ==", "license": "MIT", "dependencies": { "eventemitter3": "^5.0.1", @@ -5154,14 +4378,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } + "node_modules/package-manager-detector": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.6.0.tgz", + "integrity": "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==", + "license": "MIT" }, "node_modules/parse-latin": { "version": "7.0.0", @@ -5193,14 +4414,11 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "license": "MIT", - "engines": { - "node": ">=8" - } + "node_modules/piccolore": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/piccolore/-/piccolore-0.1.3.tgz", + "integrity": "sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw==", + "license": "ISC" }, "node_modules/picocolors": { "version": "1.1.1", @@ -5209,9 +4427,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "license": "MIT", "engines": { "node": ">=12" @@ -5220,22 +4438,10 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/postcss": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "funding": [ { "type": "opencollective", @@ -5252,7 +4458,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.8", + "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -5260,20 +4466,6 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/preferred-pm": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/preferred-pm/-/preferred-pm-4.1.1.tgz", - "integrity": "sha512-rU+ZAv1Ur9jAUZtGPebQVQPzdGhNzaEiQ7VL9+cjsAWPHFYOccNXPNiev1CCDSOg/2j7UujM7ojNhpkuILEVNQ==", - "license": "MIT", - "dependencies": { - "find-up-simple": "^1.0.0", - "find-yarn-workspace-root2": "1.2.16", - "which-pm": "^3.0.1" - }, - "engines": { - "node": ">=18.12" - } - }, "node_modules/prismjs": { "version": "1.30.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", @@ -5315,26 +4507,25 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "node_modules/radix3": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz", + "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==", "license": "MIT" }, + "node_modules/readdirp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/regex": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/regex/-/regex-5.1.1.tgz", @@ -5456,9 +4647,9 @@ } }, "node_modules/remark-rehype": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.1.tgz", - "integrity": "sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", + "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", @@ -5502,22 +4693,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/restore-cursor": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", - "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", - "license": "MIT", - "dependencies": { - "onetime": "^7.0.0", - "signal-exit": "^4.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/retext": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/retext/-/retext-9.0.0.tgz", @@ -5579,16 +4754,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, "node_modules/robust-predicates": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", @@ -5596,12 +4761,12 @@ "license": "Unlicense" }, "node_modules/rollup": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.35.0.tgz", - "integrity": "sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.55.1.tgz", + "integrity": "sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==", "license": "MIT", "dependencies": { - "@types/estree": "1.0.6" + "@types/estree": "1.0.8" }, "bin": { "rollup": "dist/bin/rollup" @@ -5611,51 +4776,34 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.35.0", - "@rollup/rollup-android-arm64": "4.35.0", - "@rollup/rollup-darwin-arm64": "4.35.0", - "@rollup/rollup-darwin-x64": "4.35.0", - "@rollup/rollup-freebsd-arm64": "4.35.0", - "@rollup/rollup-freebsd-x64": "4.35.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.35.0", - "@rollup/rollup-linux-arm-musleabihf": "4.35.0", - "@rollup/rollup-linux-arm64-gnu": "4.35.0", - "@rollup/rollup-linux-arm64-musl": "4.35.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.35.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.35.0", - "@rollup/rollup-linux-riscv64-gnu": "4.35.0", - "@rollup/rollup-linux-s390x-gnu": "4.35.0", - "@rollup/rollup-linux-x64-gnu": "4.35.0", - "@rollup/rollup-linux-x64-musl": "4.35.0", - "@rollup/rollup-win32-arm64-msvc": "4.35.0", - "@rollup/rollup-win32-ia32-msvc": "4.35.0", - "@rollup/rollup-win32-x64-msvc": "4.35.0", + "@rollup/rollup-android-arm-eabi": "4.55.1", + "@rollup/rollup-android-arm64": "4.55.1", + "@rollup/rollup-darwin-arm64": "4.55.1", + "@rollup/rollup-darwin-x64": "4.55.1", + "@rollup/rollup-freebsd-arm64": "4.55.1", + "@rollup/rollup-freebsd-x64": "4.55.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.55.1", + "@rollup/rollup-linux-arm-musleabihf": "4.55.1", + "@rollup/rollup-linux-arm64-gnu": "4.55.1", + "@rollup/rollup-linux-arm64-musl": "4.55.1", + "@rollup/rollup-linux-loong64-gnu": "4.55.1", + "@rollup/rollup-linux-loong64-musl": "4.55.1", + "@rollup/rollup-linux-ppc64-gnu": "4.55.1", + "@rollup/rollup-linux-ppc64-musl": "4.55.1", + "@rollup/rollup-linux-riscv64-gnu": "4.55.1", + "@rollup/rollup-linux-riscv64-musl": "4.55.1", + "@rollup/rollup-linux-s390x-gnu": "4.55.1", + "@rollup/rollup-linux-x64-gnu": "4.55.1", + "@rollup/rollup-linux-x64-musl": "4.55.1", + "@rollup/rollup-openbsd-x64": "4.55.1", + "@rollup/rollup-openharmony-arm64": "4.55.1", + "@rollup/rollup-win32-arm64-msvc": "4.55.1", + "@rollup/rollup-win32-ia32-msvc": "4.55.1", + "@rollup/rollup-win32-x64-gnu": "4.55.1", + "@rollup/rollup-win32-x64-msvc": "4.55.1", "fsevents": "~2.3.2" } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, "node_modules/rw": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", @@ -5668,23 +4816,19 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "license": "MIT" }, - "node_modules/section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "kind-of": "^6.0.0" - }, + "node_modules/sax": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.4.tgz", + "integrity": "sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==", + "license": "BlueOak-1.0.0", "engines": { - "node": ">=4" + "node": ">=11.0.0" } }, "node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -5694,16 +4838,16 @@ } }, "node_modules/sharp": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", - "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", "hasInstallScript": true, "license": "Apache-2.0", "optional": true, "dependencies": { - "color": "^4.2.3", - "detect-libc": "^2.0.3", - "semver": "^7.6.3" + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" }, "engines": { "node": "^18.17.0 || ^20.3.0 || >=21.0.0" @@ -5712,25 +4856,30 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.33.5", - "@img/sharp-darwin-x64": "0.33.5", - "@img/sharp-libvips-darwin-arm64": "1.0.4", - "@img/sharp-libvips-darwin-x64": "1.0.4", - "@img/sharp-libvips-linux-arm": "1.0.5", - "@img/sharp-libvips-linux-arm64": "1.0.4", - "@img/sharp-libvips-linux-s390x": "1.0.4", - "@img/sharp-libvips-linux-x64": "1.0.4", - "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", - "@img/sharp-libvips-linuxmusl-x64": "1.0.4", - "@img/sharp-linux-arm": "0.33.5", - "@img/sharp-linux-arm64": "0.33.5", - "@img/sharp-linux-s390x": "0.33.5", - "@img/sharp-linux-x64": "0.33.5", - "@img/sharp-linuxmusl-arm64": "0.33.5", - "@img/sharp-linuxmusl-x64": "0.33.5", - "@img/sharp-wasm32": "0.33.5", - "@img/sharp-win32-ia32": "0.33.5", - "@img/sharp-win32-x64": "0.33.5" + "@img/sharp-darwin-arm64": "0.34.5", + "@img/sharp-darwin-x64": "0.34.5", + "@img/sharp-libvips-darwin-arm64": "1.2.4", + "@img/sharp-libvips-darwin-x64": "1.2.4", + "@img/sharp-libvips-linux-arm": "1.2.4", + "@img/sharp-libvips-linux-arm64": "1.2.4", + "@img/sharp-libvips-linux-ppc64": "1.2.4", + "@img/sharp-libvips-linux-riscv64": "1.2.4", + "@img/sharp-libvips-linux-s390x": "1.2.4", + "@img/sharp-libvips-linux-x64": "1.2.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", + "@img/sharp-linux-arm": "0.34.5", + "@img/sharp-linux-arm64": "0.34.5", + "@img/sharp-linux-ppc64": "0.34.5", + "@img/sharp-linux-riscv64": "0.34.5", + "@img/sharp-linux-s390x": "0.34.5", + "@img/sharp-linux-x64": "0.34.5", + "@img/sharp-linuxmusl-arm64": "0.34.5", + "@img/sharp-linuxmusl-x64": "0.34.5", + "@img/sharp-wasm32": "0.34.5", + "@img/sharp-win32-arm64": "0.34.5", + "@img/sharp-win32-ia32": "0.34.5", + "@img/sharp-win32-x64": "0.34.5" } }, "node_modules/shiki": { @@ -5749,34 +4898,24 @@ "@types/hast": "^3.0.4" } }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "license": "MIT", - "optional": true, - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "license": "MIT" }, + "node_modules/smol-toml": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.0.tgz", + "integrity": "sha512-4zemZi0HvTnYwLfrpk/CF9LOd9Lt87kAt50GnqhMpyF9U3poDAP2+iukq2bZsO/ufegbYehBkqINbsWxj4l4cw==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 18" + }, + "funding": { + "url": "https://github.com/sponsors/cyyynthia" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -5796,24 +4935,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "license": "BSD-3-Clause" - }, - "node_modules/stdin-discarder": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", - "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/string-width": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", @@ -5860,40 +4981,69 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "node_modules/svgo": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.0.tgz", + "integrity": "sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw==", "license": "MIT", + "dependencies": { + "commander": "^11.1.0", + "css-select": "^5.1.0", + "css-tree": "^3.0.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.1.1", + "sax": "^1.4.1" + }, + "bin": { + "svgo": "bin/svgo.js" + }, "engines": { - "node": ">=4" + "node": ">=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" } }, - "node_modules/strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "node_modules/svgo/node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=16" } }, - "node_modules/tinyexec": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "node_modules/tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", "license": "MIT" }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/tinyexec": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", + "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "license": "MIT", "dependencies": { - "is-number": "^7.0.0" + "fdir": "^6.5.0", + "picomatch": "^4.0.3" }, "engines": { - "node": ">=8.0" + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" } }, "node_modules/trim-lines": { @@ -5917,9 +5067,9 @@ } }, "node_modules/tsconfck": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.5.tgz", - "integrity": "sha512-CLDfGgUp7XPswWnezWwsCRxNmgQjhYq3VXHM0/XIRxhVrKw0M1if9agzryh1QS3nxjCROvV+xWxoJO1YctzzWg==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.6.tgz", + "integrity": "sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==", "license": "MIT", "bin": { "tsconfck": "bin/tsconfck.js" @@ -5969,6 +5119,24 @@ "node": ">=14.17" } }, + "node_modules/ufo": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz", + "integrity": "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==", + "license": "MIT" + }, + "node_modules/ultrahtml": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.6.0.tgz", + "integrity": "sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==", + "license": "MIT" + }, + "node_modules/uncrypto": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", + "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", + "license": "MIT" + }, "node_modules/unified": { "version": "11.0.5", "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", @@ -5988,6 +5156,17 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unifont": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/unifont/-/unifont-0.7.3.tgz", + "integrity": "sha512-b0GtQzKCyuSHGsfj5vyN8st7muZ6VCI4XD4vFlr7Uy1rlWVYxC3npnfk8MyreHxJYrz1ooLDqDzFe9XqQTlAhA==", + "license": "MIT", + "dependencies": { + "css-tree": "^3.1.0", + "ofetch": "^1.5.1", + "ohash": "^2.0.11" + } + }, "node_modules/unist-util-find-after": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", @@ -6098,9 +5277,9 @@ } }, "node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", @@ -6111,34 +5290,100 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/unstorage": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.4.tgz", + "integrity": "sha512-fHK0yNg38tBiJKp/Vgsq4j0JEsCmgqH58HAn707S7zGkArbZsVr/CwINoi+nh3h98BRCwKvx1K3Xg9u3VV83sw==", "license": "MIT", "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" + "anymatch": "^3.1.3", + "chokidar": "^5.0.0", + "destr": "^2.0.5", + "h3": "^1.15.5", + "lru-cache": "^11.2.0", + "node-fetch-native": "^1.6.7", + "ofetch": "^1.5.1", + "ufo": "^1.6.3" }, "peerDependencies": { - "browserslist": ">= 4.21.0" + "@azure/app-configuration": "^1.8.0", + "@azure/cosmos": "^4.2.0", + "@azure/data-tables": "^13.3.0", + "@azure/identity": "^4.6.0", + "@azure/keyvault-secrets": "^4.9.0", + "@azure/storage-blob": "^12.26.0", + "@capacitor/preferences": "^6 || ^7 || ^8", + "@deno/kv": ">=0.9.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", + "@planetscale/database": "^1.19.0", + "@upstash/redis": "^1.34.3", + "@vercel/blob": ">=0.27.1", + "@vercel/functions": "^2.2.12 || ^3.0.0", + "@vercel/kv": "^1 || ^2 || ^3", + "aws4fetch": "^1.0.20", + "db0": ">=0.2.1", + "idb-keyval": "^6.2.1", + "ioredis": "^5.4.2", + "uploadthing": "^7.4.4" + }, + "peerDependenciesMeta": { + "@azure/app-configuration": { + "optional": true + }, + "@azure/cosmos": { + "optional": true + }, + "@azure/data-tables": { + "optional": true + }, + "@azure/identity": { + "optional": true + }, + "@azure/keyvault-secrets": { + "optional": true + }, + "@azure/storage-blob": { + "optional": true + }, + "@capacitor/preferences": { + "optional": true + }, + "@deno/kv": { + "optional": true + }, + "@netlify/blobs": { + "optional": true + }, + "@planetscale/database": { + "optional": true + }, + "@upstash/redis": { + "optional": true + }, + "@vercel/blob": { + "optional": true + }, + "@vercel/functions": { + "optional": true + }, + "@vercel/kv": { + "optional": true + }, + "aws4fetch": { + "optional": true + }, + "db0": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "uploadthing": { + "optional": true + } } }, "node_modules/vfile": { @@ -6184,16 +5429,17 @@ } }, "node_modules/vite": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.2.tgz", - "integrity": "sha512-yW7PeMM+LkDzc7CgJuRLMW2Jz0FxMOsVJ8Lv3gpgW9WLcb9cTW+121UEr1hvmfR7w3SegR5ItvYyzVz1vxNJgQ==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", + "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", "postcss": "^8.5.3", - "rollup": "^4.30.1" + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" }, "bin": { "vite": "bin/vite.js" @@ -6257,16 +5503,17 @@ } }, "node_modules/vitefu": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.0.6.tgz", - "integrity": "sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.1.tgz", + "integrity": "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==", "license": "MIT", "workspaces": [ "tests/deps/*", - "tests/projects/*" + "tests/projects/*", + "tests/projects/workspace/packages/*" ], "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" }, "peerDependenciesMeta": { "vite": { @@ -6284,18 +5531,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/which-pm": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/which-pm/-/which-pm-3.0.1.tgz", - "integrity": "sha512-v2JrMq0waAI4ju1xU5x3blsxBBMgdgZve580iYMN5frDaLGjbA24fok7wKCsya8KLVO19Ju4XDc5+zTZCJkQfg==", - "license": "MIT", - "dependencies": { - "load-yaml-file": "^0.2.0" - }, - "engines": { - "node": ">=18.12" - } - }, "node_modules/which-pm-runs": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz", @@ -6343,26 +5578,6 @@ "integrity": "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==", "license": "MIT" }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "license": "ISC" - }, - "node_modules/yaml": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", - "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", - "license": "ISC", - "optional": true, - "peer": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", @@ -6384,22 +5599,49 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yocto-spinner": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/yocto-spinner/-/yocto-spinner-0.2.3.tgz", + "integrity": "sha512-sqBChb33loEnkoXte1bLg45bEBsOP9N1kzQh5JZNKj/0rik4zAPTNSAVPj3uQAdc6slYJ0Ksc403G2XgxsJQFQ==", + "license": "MIT", + "dependencies": { + "yoctocolors": "^2.1.1" + }, + "engines": { + "node": ">=18.19" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz", + "integrity": "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/zod": { - "version": "3.24.2", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.2.tgz", - "integrity": "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==", + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" } }, "node_modules/zod-to-json-schema": { - "version": "3.24.4", - "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.4.tgz", - "integrity": "sha512-0uNlcvgabyrni9Ag8Vghj21drk7+7tp7VTwwR7KxxXXc/3pbXz2PHlDgj3cICahgF1kHm4dExBFj7BXrZJXzig==", + "version": "3.25.1", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.1.tgz", + "integrity": "sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==", "license": "ISC", "peerDependencies": { - "zod": "^3.24.1" + "zod": "^3.25 || ^4" } }, "node_modules/zod-to-ts": { diff --git a/infra/website/package.json b/infra/website/package.json index 2cebf3797e7..3871bf9db8f 100644 --- a/infra/website/package.json +++ b/infra/website/package.json @@ -10,7 +10,7 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.5.5", + "astro": "^5.16.10", "d3": "^7.9.0", "shiki": "^1.29.2" } From a536bc24ec9dbcbc76912a209266c0e0da85a4af Mon Sep 17 00:00:00 2001 From: Jacob Weinhold <29459386+jfw-ppi@users.noreply.github.com> Date: Fri, 16 Jan 2026 14:22:54 +0100 Subject: [PATCH 33/37] fix: Make operator include full OIDC secret in repo config (#5676) (#5809) fix: make operator include full OIDC secret in repo config (#5676) Signed-off-by: Jacob Weinhold <29459386+jfw-ppi@users.noreply.github.com> --- .../featurestore_controller_oidc_auth_test.go | 11 +++++++--- .../controller/services/repo_config.go | 20 ++++++++--------- .../controller/services/repo_config_test.go | 22 +++++++------------ .../controller/services/services_types.go | 1 + 4 files changed, 27 insertions(+), 27 deletions(-) diff --git a/infra/feast-operator/internal/controller/featurestore_controller_oidc_auth_test.go b/infra/feast-operator/internal/controller/featurestore_controller_oidc_auth_test.go index 82a7ebeb4ad..bb5cc4fb4b2 100644 --- a/infra/feast-operator/internal/controller/featurestore_controller_oidc_auth_test.go +++ b/infra/feast-operator/internal/controller/featurestore_controller_oidc_auth_test.go @@ -487,6 +487,9 @@ func expectedServerOidcAuthorizConfig() services.AuthzConfig { OidcParameters: map[string]interface{}{ string(services.OidcAuthDiscoveryUrl): "auth-discovery-url", string(services.OidcClientId): "client-id", + string(services.OidcClientSecret): "client-secret", + string(services.OidcUsername): "username", + string(services.OidcPassword): "password", }, } } @@ -494,9 +497,11 @@ func expectedClientOidcAuthorizConfig() services.AuthzConfig { return services.AuthzConfig{ Type: services.OidcAuthType, OidcParameters: map[string]interface{}{ - string(services.OidcClientSecret): "client-secret", - string(services.OidcUsername): "username", - string(services.OidcPassword): "password"}, + string(services.OidcClientId): "client-id", + string(services.OidcAuthDiscoveryUrl): "auth-discovery-url", + string(services.OidcClientSecret): "client-secret", + string(services.OidcUsername): "username", + string(services.OidcPassword): "password"}, } } diff --git a/infra/feast-operator/internal/controller/services/repo_config.go b/infra/feast-operator/internal/controller/services/repo_config.go index b893f031d41..00c09563fd9 100644 --- a/infra/feast-operator/internal/controller/services/repo_config.go +++ b/infra/feast-operator/internal/controller/services/repo_config.go @@ -102,15 +102,15 @@ func getBaseServiceRepoConfig( return repoConfig, authSecretErr } - oidcServerProperties := map[string]interface{}{} - for _, oidcServerProperty := range OidcServerProperties { - if val, exists := propertiesMap[string(oidcServerProperty)]; exists { - oidcServerProperties[string(oidcServerProperty)] = val + oidcParameters := map[string]interface{}{} + for _, oidcProperty := range OidcProperties { + if val, exists := propertiesMap[string(oidcProperty)]; exists { + oidcParameters[string(oidcProperty)] = val } else { - return repoConfig, missingOidcSecretProperty(oidcServerProperty) + return repoConfig, missingOidcSecretProperty(oidcProperty) } } - repoConfig.AuthzConfig.OidcParameters = oidcServerProperties + repoConfig.AuthzConfig.OidcParameters = oidcParameters } return repoConfig, nil @@ -327,11 +327,11 @@ func getRepoConfig( } oidcClientProperties := map[string]interface{}{} - for _, oidcClientProperty := range OidcClientProperties { - if val, exists := propertiesMap[string(oidcClientProperty)]; exists { - oidcClientProperties[string(oidcClientProperty)] = val + for _, oidcProperty := range OidcProperties { + if val, exists := propertiesMap[string(oidcProperty)]; exists { + oidcClientProperties[string(oidcProperty)] = val } else { - return repoConfig, missingOidcSecretProperty(oidcClientProperty) + return repoConfig, missingOidcSecretProperty(oidcProperty) } } repoConfig.AuthzConfig.OidcParameters = oidcClientProperties diff --git a/infra/feast-operator/internal/controller/services/repo_config_test.go b/infra/feast-operator/internal/controller/services/repo_config_test.go index b31e40d7382..efde05df335 100644 --- a/infra/feast-operator/internal/controller/services/repo_config_test.go +++ b/infra/feast-operator/internal/controller/services/repo_config_test.go @@ -214,9 +214,12 @@ var _ = Describe("Repo Config", func() { repoConfig, err = getServiceRepoConfig(featureStore, secretExtractionFunc) Expect(err).NotTo(HaveOccurred()) Expect(repoConfig.AuthzConfig.Type).To(Equal(OidcAuthType)) - Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveLen(2)) + Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveLen(5)) Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveKey(string(OidcClientId))) Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveKey(string(OidcAuthDiscoveryUrl))) + Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveKey(string(OidcClientSecret))) + Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveKey(string(OidcUsername))) + Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveKey(string(OidcPassword))) Expect(repoConfig.OfflineStore).To(Equal(expectedOfflineConfig)) Expect(repoConfig.OnlineStore).To(Equal(defaultOnlineStoreConfig(featureStore))) Expect(repoConfig.Registry).To(Equal(defaultRegistryConfig(featureStore))) @@ -224,7 +227,9 @@ var _ = Describe("Repo Config", func() { repoConfig, err = getClientRepoConfig(featureStore, secretExtractionFunc, nil) Expect(err).NotTo(HaveOccurred()) Expect(repoConfig.AuthzConfig.Type).To(Equal(OidcAuthType)) - Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveLen(3)) + Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveLen(5)) + Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveKey(string(OidcClientId))) + Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveKey(string(OidcAuthDiscoveryUrl))) Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveKey(string(OidcClientSecret))) Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveKey(string(OidcUsername))) Expect(repoConfig.AuthzConfig.OidcParameters).To(HaveKey(string(OidcPassword))) @@ -314,14 +319,9 @@ var _ = Describe("Repo Config", func() { _, err := getServiceRepoConfig(featureStore, secretExtractionFunc) Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("missing OIDC secret")) - _, err = getServiceRepoConfig(featureStore, secretExtractionFunc) - Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(ContainSubstring("missing OIDC secret")) - _, err = getServiceRepoConfig(featureStore, secretExtractionFunc) + _, err = getClientRepoConfig(featureStore, secretExtractionFunc, nil) Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("missing OIDC secret")) - _, err = getClientRepoConfig(featureStore, secretExtractionFunc, nil) - Expect(err).ToNot(HaveOccurred()) By("Having invalid client oidc authorization") featureStore.Spec.AuthzConfig = &feastdevv1.AuthzConfig{ @@ -341,12 +341,6 @@ var _ = Describe("Repo Config", func() { _, err = getServiceRepoConfig(featureStore, secretExtractionFunc) Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("missing OIDC secret")) - _, err = getServiceRepoConfig(featureStore, secretExtractionFunc) - Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(ContainSubstring("missing OIDC secret")) - _, err = getServiceRepoConfig(featureStore, secretExtractionFunc) - Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(ContainSubstring("missing OIDC secret")) _, err = getClientRepoConfig(featureStore, secretExtractionFunc, nil) Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("missing OIDC secret")) diff --git a/infra/feast-operator/internal/controller/services/services_types.go b/infra/feast-operator/internal/controller/services/services_types.go index 5997307ab1c..d437c703a6a 100644 --- a/infra/feast-operator/internal/controller/services/services_types.go +++ b/infra/feast-operator/internal/controller/services/services_types.go @@ -210,6 +210,7 @@ var ( OidcServerProperties = []OidcPropertyType{OidcClientId, OidcAuthDiscoveryUrl} OidcClientProperties = []OidcPropertyType{OidcClientSecret, OidcUsername, OidcPassword} + OidcProperties = []OidcPropertyType{OidcClientId, OidcAuthDiscoveryUrl, OidcClientSecret, OidcUsername, OidcPassword} ) // Feast server types: Reserved only for server types like Online, Offline, and Registry servers. Should not be used for client types like the UI, etc. From f6116f9b86d3185c85e1799d55bf0769800580c1 Mon Sep 17 00:00:00 2001 From: nanohanno <44575187+nanohanno@users.noreply.github.com> Date: Fri, 16 Jan 2026 14:45:41 +0100 Subject: [PATCH 34/37] feat: Improve lambda materialization engine (#5829) Update lambda materialization engine Signed-off-by: hkuepers Co-authored-by: hkuepers Co-authored-by: Francisco Javier Arceo --- .../infra/compute_engines/aws_lambda/app.py | 119 ++++++++++-------- .../aws_lambda/lambda_engine.py | 9 +- 2 files changed, 71 insertions(+), 57 deletions(-) diff --git a/sdk/python/feast/infra/compute_engines/aws_lambda/app.py b/sdk/python/feast/infra/compute_engines/aws_lambda/app.py index 2bf65542e55..98760651dc0 100644 --- a/sdk/python/feast/infra/compute_engines/aws_lambda/app.py +++ b/sdk/python/feast/infra/compute_engines/aws_lambda/app.py @@ -1,26 +1,31 @@ import base64 -import json -import sys +import logging import tempfile -import traceback from pathlib import Path import pyarrow.parquet as pq from feast import FeatureStore from feast.constants import FEATURE_STORE_YAML_ENV_NAME -from feast.infra.materialization.local_engine import DEFAULT_BATCH_SIZE +from feast.infra.compute_engines.aws_lambda.lambda_engine import DEFAULT_BATCH_SIZE from feast.utils import _convert_arrow_to_proto, _run_pyarrow_field_mapping +logger = logging.getLogger() +logger.setLevel("INFO") -def handler(event, context): - """Provide an event that contains the following keys: - - operation: one of the operations in the operations dict below - - tableName: required for operations that interact with DynamoDB - - payload: a parameter to pass to the operation being performed +def handler(event, context): + """Load a parquet file and write the feature values to the online store. + + Args: + event (dict): payload containing the following keys: + FEATURE_STORE_YAML_ENV_NAME: Base64 encoded feature store config + view_name: Name of FeatureView to be materialized + view_type: Type of FeatureView + path: Path to parquet batch file on S3 bucket + context (dict): Lambda runtime context, not used. """ - print("Received event: " + json.dumps(event, indent=2), flush=True) + logger.info(f"Received event: {event}") try: config_base64 = event[FEATURE_STORE_YAML_ENV_NAME] @@ -28,57 +33,61 @@ def handler(event, context): config_bytes = base64.b64decode(config_base64) # Create a new unique directory for writing feature_store.yaml - repo_path = Path(tempfile.mkdtemp()) - - with open(repo_path / "feature_store.yaml", "wb") as f: - f.write(config_bytes) + with tempfile.TemporaryDirectory() as repo_posix_path: + repo_path = Path(repo_posix_path) - # Initialize the feature store - store = FeatureStore(repo_path=str(repo_path.resolve())) + with open(repo_path / "feature_store.yaml", "wb") as f: + f.write(config_bytes) - view_name = event["view_name"] - view_type = event["view_type"] - path = event["path"] + # Initialize the feature store + store = FeatureStore(repo_path=str(repo_path.resolve())) - bucket = path[len("s3://") :].split("/", 1)[0] - key = path[len("s3://") :].split("/", 1)[1] - print(f"Inferred Bucket: `{bucket}` Key: `{key}`", flush=True) + view_name = event["view_name"] + view_type = event["view_type"] + path = event["path"] - if view_type == "batch": - # TODO: This probably needs to be become `store.get_batch_feature_view` at some point. - feature_view = store.get_feature_view(view_name) - else: - feature_view = store.get_stream_feature_view(view_name) + bucket, key = path[len("s3://") :].split("/", 1) + logger.info(f"Inferred Bucket: `{bucket}` Key: `{key}`") - print(f"Got Feature View: `{feature_view}`", flush=True) + if view_type == "batch": + # TODO: This probably needs to be become `store.get_batch_feature_view` at some point. # noqa: E501,W505 + feature_view = store.get_feature_view(view_name) + else: + feature_view = store.get_stream_feature_view(view_name) - table = pq.read_table(path) - if feature_view.batch_source.field_mapping is not None: - table = _run_pyarrow_field_mapping( - table, feature_view.batch_source.field_mapping + logger.info( + f"Got Feature View: `{feature_view.name}`, \ + last updated: {feature_view.last_updated_timestamp}" ) - join_key_to_value_type = { - entity.name: entity.dtype.to_value_type() - for entity in feature_view.entity_columns - } - - written_rows = 0 - - for batch in table.to_batches(DEFAULT_BATCH_SIZE): - rows_to_write = _convert_arrow_to_proto( - batch, feature_view, join_key_to_value_type - ) - store._provider.online_write_batch( - store.config, - feature_view, - rows_to_write, - lambda x: None, + table = pq.read_table(path) + if feature_view.batch_source.field_mapping is not None: + table = _run_pyarrow_field_mapping( + table, feature_view.batch_source.field_mapping + ) + + join_key_to_value_type = { + entity.name: entity.dtype.to_value_type() + for entity in feature_view.entity_columns + } + + written_rows = 0 + + for batch in table.to_batches(DEFAULT_BATCH_SIZE): + rows_to_write = _convert_arrow_to_proto( + batch, feature_view, join_key_to_value_type + ) + store._provider.online_write_batch( + store.config, + feature_view, + rows_to_write, + lambda x: None, + ) + written_rows += len(rows_to_write) + logger.info( + f"Successfully updated {written_rows} rows.", + extra={"num_updated_rows": written_rows, "feature_view": view_name}, ) - written_rows += len(rows_to_write) - return {"written_rows": written_rows} - except Exception as e: - print(f"Exception: {e}", flush=True) - print("Traceback:", flush=True) - print(traceback.format_exc(), flush=True) - sys.exit(1) + except Exception: + logger.exception("Error in processing materialization.") + raise diff --git a/sdk/python/feast/infra/compute_engines/aws_lambda/lambda_engine.py b/sdk/python/feast/infra/compute_engines/aws_lambda/lambda_engine.py index cc32e5b74b3..9e2d217875b 100644 --- a/sdk/python/feast/infra/compute_engines/aws_lambda/lambda_engine.py +++ b/sdk/python/feast/infra/compute_engines/aws_lambda/lambda_engine.py @@ -108,9 +108,14 @@ def update( r = self.lambda_client.create_function( FunctionName=self.lambda_name, PackageType="Image", - Role=self.repo_config.batch_engine.lambda_role, - Code={"ImageUri": self.repo_config.batch_engine.materialization_image}, + Role=self.repo_config.batch_engine_config.lambda_role, + Code={ + "ImageUri": self.repo_config.batch_engine_config.materialization_image + }, Timeout=DEFAULT_TIMEOUT, + LoggingConfig={ + "LogFormat": "JSON", + }, Tags={ "feast-owned": "True", "project": project, From b997361bae8d9542319c24ba72eeaf5c638ac52e Mon Sep 17 00:00:00 2001 From: Yassin Nouh <70436855+YassinNouh21@users.noreply.github.com> Date: Fri, 16 Jan 2026 18:48:29 +0200 Subject: [PATCH 35/37] feat: Add dbt integration for importing models as FeatureViews (#5827) * feat: Add dbt integration for importing models as FeatureViews (#3335) This PR implements the dbt-Feast integration feature requested in #3335, enabling users to import dbt models as Feast FeatureViews. ## New CLI Commands - `feast dbt list` - List dbt models available for import - `feast dbt import` - Import dbt models as Feast objects ## Features - Parse dbt manifest.json files to extract model metadata - Map dbt types to Feast types (38 types supported) - Generate Entity, DataSource, and FeatureView objects - Support for BigQuery, Snowflake, and File data sources - Tag-based filtering (--tag) to select specific models - Code generation (--output) to create Python files - Dry-run mode to preview changes before applying ## Usage Examples ```bash # List models with 'feast' tag feast dbt list -m target/manifest.json --tag feast # Import models to registry feast dbt import -m target/manifest.json -e driver_id --tag feast # Generate Python file instead feast dbt import -m target/manifest.json -e driver_id --output features.py ``` Closes #3335 Signed-off-by: yassinnouh21 * fix: Address mypy and ruff lint errors in dbt integration Signed-off-by: yassinnouh21 * fix: Address ruff lint errors in dbt unit tests Signed-off-by: yassinnouh21 * style: Format dbt files with ruff Signed-off-by: yassinnouh21 * fix: Remove unused dbt-artifacts-parser import and fix enum import Signed-off-by: yassinnouh21 * feat: Use dbt-artifacts-parser for typed manifest parsing - Add dbt-artifacts-parser as optional dependency (feast[dbt]) - Update parser to use typed parsing with fallback to raw dict - Provides better support for manifest versions v1-v12 Signed-off-by: yassinnouh21 * fix: Add graceful fallback for dbt-artifacts-parser validation errors When parsing minimal/incomplete manifests (e.g., in unit tests), dbt-artifacts-parser may fail validation. This change adds a graceful fallback to use raw dict parsing when typed parsing fails. Also updated test fixture with dbt_schema_version field. Signed-off-by: yassinnouh21 * fix: Skip dbt tests when dbt-artifacts-parser is not installed Since dbt-artifacts-parser is an optional dependency, unit tests should be skipped in CI when it's not installed. Signed-off-by: yassinnouh21 * refactor: Simplify parser to rely solely on dbt-artifacts-parser Removed manual/fallback dict parsing code. The parser now exclusively uses dbt-artifacts-parser typed objects. Updated test fixtures to create complete manifests that dbt-artifacts-parser can parse. Signed-off-by: yassinnouh21 * ci: Add dbt-artifacts-parser to unit test dependencies Install dbt-artifacts-parser in CI so dbt unit tests run instead of being skipped. Signed-off-by: yassinnouh21 * fix: Address Copilot code review comments for dbt integration - mapper.py: Fix Array element type check to use set membership instead of incorrect isinstance() comparison - codegen.py: Add safe getattr() with fallback for Array.base_type access Signed-off-by: yassinnouh21 * fix: Only add ellipsis to truncated descriptions Signed-off-by: yassinnouh21 * style: Format dbt files with ruff Signed-off-by: yassinnouh21 * fix: Convert doctest examples to code blocks to avoid CI failures Signed-off-by: yassinnouh21 * fix: Add dbt-artifacts-parser to feast[ci] and update requirements - Add dbt-artifacts-parser to pyproject.toml under feast[dbt] and feast[ci] extras - Remove separate install step from unit_tests.yml workflow - Update all requirements lock files Addresses review feedback from @ntkathole. Signed-off-by: YassinNouh21 Signed-off-by: yassinnouh21 * docs: Add dbt integration documentation Add comprehensive documentation for the new dbt integration feature: - Quick start guide with step-by-step instructions - CLI reference for `feast dbt list` and `feast dbt import` - Type mapping table for dbt to Feast types - Data source configuration examples (BigQuery, Snowflake, File) - Best practices for tagging, documentation, and CI/CD - Troubleshooting section Addresses review feedback from @franciscojavierarceo. Signed-off-by: YassinNouh21 Signed-off-by: yassinnouh21 * docs: Add alpha warning to dbt integration documentation Add prominent warning callout highlighting that the dbt integration is an alpha feature with current limitations. This sets proper expectations for users regarding: - Supported data sources (BigQuery, Snowflake, File only) - Single entity per model constraint - Potential for breaking changes in future releases Addresses feedback from PR #5827 review comments. Signed-off-by: yassinnouh21 * fix: Add dbt-artifacts-parser to CI_REQUIRED dependencies Ensure dbt-artifacts-parser is installed in CI environments by adding it to the CI_REQUIRED list in setup.py. This matches the dependency already present in pyproject.toml and ensures CI tests for dbt integration have access to the required parser library. Addresses feedback from PR #5827 review comments. Signed-off-by: yassinnouh21 * fix: Add defensive Array.base_type handling with logging Add logging and defensive attribute access for Array.base_type in code generation to prevent potential AttributeError. While Array.__init__ always sets base_type, defensive programming with warnings provides: - Protection against edge cases or future Array implementation changes - Clear visibility when fallback occurs via logger.warning - Consistent error handling across both usage sites Changes: - Add logging module and logger instance - Update _get_feast_type_name() to use getattr with warning - Update import tracking logic to use getattr with warning - Add concise comments with examples (e.g., Array(String) -> base_type = String) Addresses code review feedback from PR #5827. Signed-off-by: yassinnouh21 * docs: Add comment explaining ImageBytes/PdfBytes exclusion Add clarifying comment in type_map explaining why ImageBytes and PdfBytes are not included in the dbt type mapping. While these types exist in Feast, dbt manifests only expose generic BYTES type without semantic information to distinguish between regular bytes, images, or PDFs. Example: A dbt model with image and PDF columns both appear as 'BYTES' in the manifest, making ImageBytes/PdfBytes types unmappable from dbt artifacts. Addresses feedback from PR #5827 review (franciscojavierarceo). Signed-off-by: yassinnouh21 * fix: Move imports to top of file to resolve linter errors - Fix E402 linter error in feast/dbt/codegen.py by moving imports before logger initialization - Update requirements files to include dbt-artifacts-parser in pydantic dependency comments Signed-off-by: yassinnouh21 --------- Signed-off-by: yassinnouh21 Signed-off-by: YassinNouh21 Co-authored-by: Francisco Javier Arceo --- docs/SUMMARY.md | 1 + docs/how-to-guides/dbt-integration.md | 381 ++++++++++++++++ pyproject.toml | 3 + sdk/python/feast/cli/cli.py | 2 + sdk/python/feast/cli/dbt_import.py | 379 ++++++++++++++++ sdk/python/feast/dbt/__init__.py | 30 ++ sdk/python/feast/dbt/codegen.py | 408 +++++++++++++++++ sdk/python/feast/dbt/mapper.py | 413 ++++++++++++++++++ sdk/python/feast/dbt/parser.py | 259 +++++++++++ .../requirements/py3.10-ci-requirements.txt | 5 + .../requirements/py3.11-ci-requirements.txt | 5 + .../requirements/py3.12-ci-requirements.txt | 5 + sdk/python/tests/unit/dbt/__init__.py | 1 + .../tests/unit/dbt/sample_manifest.json | 170 +++++++ sdk/python/tests/unit/dbt/test_mapper.py | 312 +++++++++++++ sdk/python/tests/unit/dbt/test_parser.py | 314 +++++++++++++ setup.py | 4 + 17 files changed, 2692 insertions(+) create mode 100644 docs/how-to-guides/dbt-integration.md create mode 100644 sdk/python/feast/cli/dbt_import.py create mode 100644 sdk/python/feast/dbt/__init__.py create mode 100644 sdk/python/feast/dbt/codegen.py create mode 100644 sdk/python/feast/dbt/mapper.py create mode 100644 sdk/python/feast/dbt/parser.py create mode 100644 sdk/python/tests/unit/dbt/__init__.py create mode 100644 sdk/python/tests/unit/dbt/sample_manifest.json create mode 100644 sdk/python/tests/unit/dbt/test_mapper.py create mode 100644 sdk/python/tests/unit/dbt/test_parser.py diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index 7d85aba1ad0..27a84d31213 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -76,6 +76,7 @@ * [Adding a custom provider](how-to-guides/customizing-feast/creating-a-custom-provider.md) * [Adding or reusing tests](how-to-guides/adding-or-reusing-tests.md) * [Starting Feast servers in TLS(SSL) Mode](how-to-guides/starting-feast-servers-tls-mode.md) +* [Importing Features from dbt](how-to-guides/dbt-integration.md) ## Reference diff --git a/docs/how-to-guides/dbt-integration.md b/docs/how-to-guides/dbt-integration.md new file mode 100644 index 00000000000..abaadbf8740 --- /dev/null +++ b/docs/how-to-guides/dbt-integration.md @@ -0,0 +1,381 @@ +# Importing Features from dbt + +{% hint style="warning" %} +**Alpha Feature**: The dbt integration is currently in early development and subject to change. + +**Current Limitations**: +- Supported data sources: BigQuery, Snowflake, and File-based sources only +- Single entity per model +- Manual entity column specification required + +Breaking changes may occur in future releases. +{% endhint %} + +This guide explains how to use Feast's dbt integration to automatically import dbt models as Feast FeatureViews. This enables you to leverage your existing dbt transformations as feature definitions without manual duplication. + +## Overview + +[dbt (data build tool)](https://www.getdbt.com/) is a popular tool for transforming data in your warehouse. Many teams already use dbt to create feature tables. Feast's dbt integration allows you to: + +- **Discover** dbt models tagged for feature engineering +- **Import** model metadata (columns, types, descriptions) as Feast objects +- **Generate** Python code for Entity, DataSource, and FeatureView definitions + +This eliminates the need to manually define Feast objects that mirror your dbt models. + +## Prerequisites + +- A dbt project with compiled artifacts (`target/manifest.json`) +- Feast installed with dbt support: + +```bash +pip install 'feast[dbt]' +``` + +Or install the parser directly: + +```bash +pip install dbt-artifacts-parser +``` + +## Quick Start + +### 1. Tag your dbt models + +In your dbt project, add a `feast` tag to models you want to import: + +{% code title="models/driver_features.sql" %} +```sql +{{ config( + materialized='table', + tags=['feast'] +) }} + +SELECT + driver_id, + event_timestamp, + avg_rating, + total_trips, + is_active +FROM {{ ref('stg_drivers') }} +``` +{% endcode %} + +### 2. Define column types in schema.yml + +Feast uses column metadata from your `schema.yml` to determine feature types: + +{% code title="models/schema.yml" %} +```yaml +version: 2 +models: + - name: driver_features + description: "Driver aggregated features for ML models" + columns: + - name: driver_id + description: "Unique driver identifier" + data_type: STRING + - name: event_timestamp + description: "Feature timestamp" + data_type: TIMESTAMP + - name: avg_rating + description: "Average driver rating" + data_type: FLOAT64 + - name: total_trips + description: "Total completed trips" + data_type: INT64 + - name: is_active + description: "Whether driver is currently active" + data_type: BOOLEAN +``` +{% endcode %} + +### 3. Compile your dbt project + +```bash +cd your_dbt_project +dbt compile +``` + +This generates `target/manifest.json` which Feast will read. + +### 4. List available models + +Use the Feast CLI to discover tagged models: + +```bash +feast dbt list target/manifest.json --tag-filter feast +``` + +Output: +``` +Found 1 model(s) with tag 'feast': + + driver_features + Description: Driver aggregated features for ML models + Columns: driver_id, event_timestamp, avg_rating, total_trips, is_active + Tags: feast +``` + +### 5. Import models as Feast definitions + +Generate a Python file with Feast object definitions: + +```bash +feast dbt import target/manifest.json \ + --entity-column driver_id \ + --data-source-type bigquery \ + --tag-filter feast \ + --output features/driver_features.py +``` + +This generates: + +{% code title="features/driver_features.py" %} +```python +""" +Feast feature definitions generated from dbt models. + +Source: target/manifest.json +Project: my_dbt_project +Generated by: feast dbt import +""" + +from datetime import timedelta + +from feast import Entity, FeatureView, Field +from feast.types import Bool, Float64, Int64 +from feast.infra.offline_stores.bigquery_source import BigQuerySource + + +# Entities +driver_id = Entity( + name="driver_id", + join_keys=["driver_id"], + description="Entity key for dbt models", + tags={'source': 'dbt'}, +) + + +# Data Sources +driver_features_source = BigQuerySource( + name="driver_features_source", + table="my_project.my_dataset.driver_features", + timestamp_field="event_timestamp", + description="Driver aggregated features for ML models", + tags={'dbt.model': 'driver_features', 'dbt.tag.feast': 'true'}, +) + + +# Feature Views +driver_features_fv = FeatureView( + name="driver_features", + entities=[driver_id], + ttl=timedelta(days=1), + schema=[ + Field(name="avg_rating", dtype=Float64, description="Average driver rating"), + Field(name="total_trips", dtype=Int64, description="Total completed trips"), + Field(name="is_active", dtype=Bool, description="Whether driver is currently active"), + ], + online=True, + source=driver_features_source, + description="Driver aggregated features for ML models", + tags={'dbt.model': 'driver_features', 'dbt.tag.feast': 'true'}, +) +``` +{% endcode %} + +## CLI Reference + +### `feast dbt list` + +Discover dbt models available for import. + +```bash +feast dbt list [OPTIONS] +``` + +**Arguments:** +- `manifest_path`: Path to dbt's `manifest.json` file + +**Options:** +- `--tag-filter`, `-t`: Filter models by dbt tag (e.g., `feast`) +- `--model`, `-m`: Filter to specific model name(s) + +### `feast dbt import` + +Import dbt models as Feast object definitions. + +```bash +feast dbt import [OPTIONS] +``` + +**Arguments:** +- `manifest_path`: Path to dbt's `manifest.json` file + +**Options:** + +| Option | Description | Default | +|--------|-------------|---------| +| `--entity-column`, `-e` | Column to use as entity key | (required) | +| `--data-source-type`, `-d` | Data source type: `bigquery`, `snowflake`, `file` | `bigquery` | +| `--tag-filter`, `-t` | Filter models by dbt tag | None | +| `--model`, `-m` | Import specific model(s) only | None | +| `--timestamp-field` | Timestamp column name | `event_timestamp` | +| `--ttl-days` | Feature TTL in days | `1` | +| `--exclude-columns` | Columns to exclude from features | None | +| `--no-online` | Disable online serving | `False` | +| `--output`, `-o` | Output Python file path | None (stdout) | +| `--dry-run` | Preview without generating code | `False` | + +## Type Mapping + +Feast automatically maps dbt/warehouse column types to Feast types: + +| dbt/SQL Type | Feast Type | +|--------------|------------| +| `STRING`, `VARCHAR`, `TEXT` | `String` | +| `INT`, `INTEGER`, `BIGINT` | `Int64` | +| `SMALLINT`, `TINYINT` | `Int32` | +| `FLOAT`, `REAL` | `Float32` | +| `DOUBLE`, `FLOAT64` | `Float64` | +| `BOOLEAN`, `BOOL` | `Bool` | +| `TIMESTAMP`, `DATETIME` | `UnixTimestamp` | +| `BYTES`, `BINARY` | `Bytes` | +| `ARRAY` | `Array(type)` | + +Snowflake `NUMBER(precision, scale)` types are handled specially: +- Scale > 0: `Float64` +- Precision <= 9: `Int32` +- Precision <= 18: `Int64` +- Precision > 18: `Float64` + +## Data Source Configuration + +### BigQuery + +```bash +feast dbt import manifest.json -e user_id -d bigquery -o features.py +``` + +Generates `BigQuerySource` with the full table path from dbt metadata: +```python +BigQuerySource( + table="project.dataset.table_name", + ... +) +``` + +### Snowflake + +```bash +feast dbt import manifest.json -e user_id -d snowflake -o features.py +``` + +Generates `SnowflakeSource` with database, schema, and table: +```python +SnowflakeSource( + database="MY_DB", + schema="MY_SCHEMA", + table="TABLE_NAME", + ... +) +``` + +### File + +```bash +feast dbt import manifest.json -e user_id -d file -o features.py +``` + +Generates `FileSource` with a placeholder path: +```python +FileSource( + path="/data/table_name.parquet", + ... +) +``` + +{% hint style="info" %} +For file sources, update the generated path to point to your actual data files. +{% endhint %} + +## Best Practices + +### 1. Use consistent tagging + +Create a standard tagging convention in your dbt project: + +```yaml +# dbt_project.yml +models: + my_project: + features: + +tags: ['feast'] # All models in features/ get the feast tag +``` + +### 2. Document your columns + +Column descriptions from `schema.yml` are preserved in the generated Feast definitions, making your feature catalog self-documenting. + +### 3. Review before committing + +Use `--dry-run` to preview what will be generated: + +```bash +feast dbt import manifest.json -e user_id -d bigquery --dry-run +``` + +### 4. Version control generated code + +Commit the generated Python files to your repository. This allows you to: +- Track changes to feature definitions over time +- Review dbt-to-Feast mapping in pull requests +- Customize generated code if needed + +### 5. Integrate with CI/CD + +Add dbt import to your CI pipeline: + +```yaml +# .github/workflows/features.yml +- name: Compile dbt + run: dbt compile + +- name: Generate Feast definitions + run: | + feast dbt import target/manifest.json \ + -e user_id -d bigquery -t feast \ + -o feature_repo/features.py + +- name: Apply Feast changes + run: feast apply +``` + +## Limitations + +- **Single entity support**: Currently supports one entity column per import. For multi-entity models, run multiple imports or manually adjust the generated code. +- **No incremental updates**: Each import generates a complete file. Use version control to track changes. +- **Column types required**: Models without `data_type` in schema.yml default to `String` type. + +## Troubleshooting + +### "manifest.json not found" + +Run `dbt compile` or `dbt run` first to generate the manifest file. + +### "No models found with tag" + +Check that your models have the correct tag in their config: + +```sql +{{ config(tags=['feast']) }} +``` + +### "Missing entity column" + +Ensure your dbt model includes the entity column specified with `--entity-column`. Models missing this column are skipped with a warning. + +### "Missing timestamp column" + +By default, Feast looks for `event_timestamp`. Use `--timestamp-field` to specify a different column name. diff --git a/pyproject.toml b/pyproject.toml index acef967e688..b729ca4b63e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -131,10 +131,13 @@ snowflake = [ sqlite_vec = ["sqlite-vec==v0.1.6"] mcp = ["fastapi_mcp"] +dbt = ["dbt-artifacts-parser"] + ci = [ "build", "virtualenv==20.23.0", "cryptography>=43.0,<44", + "dbt-artifacts-parser", "ruff>=0.8.0", "mypy-protobuf>=3.1", "grpcio-tools>=1.56.2,<=1.62.3", diff --git a/sdk/python/feast/cli/cli.py b/sdk/python/feast/cli/cli.py index ab756d47496..6638576bd2b 100644 --- a/sdk/python/feast/cli/cli.py +++ b/sdk/python/feast/cli/cli.py @@ -26,6 +26,7 @@ from feast import utils from feast.cli.data_sources import data_sources_cmd +from feast.cli.dbt_import import dbt_cmd from feast.cli.entities import entities_cmd from feast.cli.feature_services import feature_services_cmd from feast.cli.feature_views import feature_views_cmd @@ -569,6 +570,7 @@ def validate( cli.add_command(serve_offline_command) cli.add_command(serve_registry_command) cli.add_command(serve_transformations_command) +cli.add_command(dbt_cmd) if __name__ == "__main__": cli() diff --git a/sdk/python/feast/cli/dbt_import.py b/sdk/python/feast/cli/dbt_import.py new file mode 100644 index 00000000000..b09fd90ec6d --- /dev/null +++ b/sdk/python/feast/cli/dbt_import.py @@ -0,0 +1,379 @@ +""" +CLI commands for importing dbt models as Feast features. + +This module provides the `feast dbt` command group for integrating +dbt models with Feast feature stores. +""" + +from typing import Any, Dict, List, Optional + +import click +from colorama import Fore, Style + +from feast.repo_operations import cli_check_repo, create_feature_store + + +@click.group(name="dbt") +def dbt_cmd(): + """Import dbt models as Feast features.""" + pass + + +@dbt_cmd.command("import") +@click.option( + "--manifest-path", + "-m", + required=True, + type=click.Path(exists=True), + help="Path to dbt manifest.json file (typically target/manifest.json)", +) +@click.option( + "--entity-column", + "-e", + required=True, + help="Primary key / entity column name (e.g., driver_id, customer_id)", +) +@click.option( + "--data-source-type", + "-d", + type=click.Choice(["bigquery", "snowflake", "file"]), + default="bigquery", + show_default=True, + help="Type of data source to create", +) +@click.option( + "--timestamp-field", + "-t", + default="event_timestamp", + show_default=True, + help="Timestamp field name for point-in-time joins", +) +@click.option( + "--tag", + "tag_filter", + default=None, + help="Only import models with this dbt tag (e.g., --tag feast)", +) +@click.option( + "--model", + "model_names", + multiple=True, + help="Specific model names to import (can be specified multiple times)", +) +@click.option( + "--ttl-days", + type=int, + default=1, + show_default=True, + help="TTL (time-to-live) in days for feature views", +) +@click.option( + "--dry-run", + is_flag=True, + default=False, + help="Preview what would be created without applying changes", +) +@click.option( + "--exclude-columns", + default=None, + help="Comma-separated list of columns to exclude from features", +) +@click.option( + "--output", + "-o", + type=click.Path(), + default=None, + help="Output Python file path (e.g., features.py). Generates code instead of applying to registry.", +) +@click.pass_context +def import_command( + ctx: click.Context, + manifest_path: str, + entity_column: str, + data_source_type: str, + timestamp_field: str, + tag_filter: Optional[str], + model_names: tuple, + ttl_days: int, + dry_run: bool, + exclude_columns: Optional[str], + output: Optional[str], +): + """ + Import dbt models as Feast FeatureViews. + + This command parses a dbt manifest.json file and creates corresponding + Feast DataSource and FeatureView objects. + + Examples: + + # Import all models with 'feast' tag + feast dbt import -m target/manifest.json -e driver_id --tag feast + + # Import specific models + feast dbt import -m target/manifest.json -e customer_id --model orders --model customers + + # Dry run to preview changes + feast dbt import -m target/manifest.json -e driver_id --tag feast --dry-run + + # Generate Python file instead of applying to registry + feast dbt import -m target/manifest.json -e driver_id --tag feast --output features.py + """ + from feast.dbt.mapper import DbtToFeastMapper + from feast.dbt.parser import DbtManifestParser + + # Parse manifest + click.echo(f"{Fore.CYAN}Parsing dbt manifest: {manifest_path}{Style.RESET_ALL}") + + try: + parser = DbtManifestParser(manifest_path) + parser.parse() + except FileNotFoundError as e: + click.echo(f"{Fore.RED}Error: {e}{Style.RESET_ALL}", err=True) + raise SystemExit(1) + except ValueError as e: + click.echo(f"{Fore.RED}Error: {e}{Style.RESET_ALL}", err=True) + raise SystemExit(1) + + # Display manifest info + if parser.dbt_version: + click.echo(f" dbt version: {parser.dbt_version}") + if parser.project_name: + click.echo(f" Project: {parser.project_name}") + + # Get models with filters + model_list: Optional[List[str]] = list(model_names) if model_names else None + models = parser.get_models(model_names=model_list, tag_filter=tag_filter) + + if not models: + click.echo( + f"{Fore.YELLOW}No models found matching the criteria.{Style.RESET_ALL}" + ) + if tag_filter: + click.echo(f" Tag filter: {tag_filter}") + if model_names: + click.echo(f" Model names: {', '.join(model_names)}") + raise SystemExit(0) + + click.echo(f"{Fore.GREEN}Found {len(models)} model(s) to import:{Style.RESET_ALL}") + for model in models: + tags_str = f" [tags: {', '.join(model.tags)}]" if model.tags else "" + click.echo(f" - {model.name} ({len(model.columns)} columns){tags_str}") + + # Parse exclude columns + excluded: Optional[List[str]] = None + if exclude_columns: + excluded = [c.strip() for c in exclude_columns.split(",")] + + # Create mapper + mapper = DbtToFeastMapper( + data_source_type=data_source_type, + timestamp_field=timestamp_field, + ttl_days=ttl_days, + ) + + # Generate Feast objects + click.echo(f"\n{Fore.CYAN}Generating Feast objects...{Style.RESET_ALL}") + + all_objects: List[Any] = [] + entities_created: Dict[str, Any] = {} + + for model in models: + # Validate timestamp field exists + column_names = [c.name for c in model.columns] + if timestamp_field not in column_names: + click.echo( + f"{Fore.YELLOW}Warning: Model '{model.name}' missing timestamp " + f"field '{timestamp_field}'. Skipping.{Style.RESET_ALL}" + ) + continue + + # Validate entity column exists + if entity_column not in column_names: + click.echo( + f"{Fore.YELLOW}Warning: Model '{model.name}' missing entity " + f"column '{entity_column}'. Skipping.{Style.RESET_ALL}" + ) + continue + + # Create or reuse entity + if entity_column not in entities_created: + entity = mapper.create_entity( + name=entity_column, + description="Entity key for dbt models", + ) + entities_created[entity_column] = entity + all_objects.append(entity) + else: + entity = entities_created[entity_column] + + # Create data source + data_source = mapper.create_data_source( + model=model, + timestamp_field=timestamp_field, + ) + all_objects.append(data_source) + + # Create feature view + feature_view = mapper.create_feature_view( + model=model, + source=data_source, + entity_column=entity_column, + entity=entity, + timestamp_field=timestamp_field, + ttl_days=ttl_days, + exclude_columns=excluded, + ) + all_objects.append(feature_view) + + click.echo( + f" {Fore.GREEN}✓{Style.RESET_ALL} {model.name}: " + f"DataSource + FeatureView ({len(feature_view.features)} features)" + ) + + if not all_objects: + click.echo( + f"{Fore.YELLOW}No valid models to import (check warnings above).{Style.RESET_ALL}" + ) + raise SystemExit(0) + + # Filter models that were actually processed (have valid columns) + valid_models = [ + m + for m in models + if timestamp_field in [c.name for c in m.columns] + and entity_column in [c.name for c in m.columns] + ] + + # Summary + click.echo(f"\n{Fore.CYAN}Summary:{Style.RESET_ALL}") + click.echo(f" Entities: {len(entities_created)}") + click.echo(f" DataSources: {len(valid_models)}") + click.echo(f" FeatureViews: {len(valid_models)}") + + # Generate Python file if --output specified + if output: + from feast.dbt.codegen import generate_feast_code + + code = generate_feast_code( + models=valid_models, + entity_column=entity_column, + data_source_type=data_source_type, + timestamp_field=timestamp_field, + ttl_days=ttl_days, + manifest_path=manifest_path, + project_name=parser.project_name or "", + exclude_columns=excluded, + online=True, + ) + + with open(output, "w") as f: + f.write(code) + + click.echo( + f"\n{Fore.GREEN}✓ Generated Feast definitions: {output}{Style.RESET_ALL}" + ) + click.echo(" You can now import this file in your feature_store.yaml repo.") + return + + if dry_run: + click.echo(f"\n{Fore.YELLOW}Dry run - no changes applied.{Style.RESET_ALL}") + click.echo("Remove --dry-run flag to apply changes.") + return + + # Apply to Feast + click.echo(f"\n{Fore.CYAN}Applying to Feast registry...{Style.RESET_ALL}") + + repo = ctx.obj["CHDIR"] + fs_yaml_file = ctx.obj["FS_YAML_FILE"] + cli_check_repo(repo, fs_yaml_file) + store = create_feature_store(ctx) + + store.apply(all_objects) + + click.echo( + f"{Fore.GREEN}✓ Successfully imported {len(valid_models)} dbt model(s) " + f"to Feast project '{store.project}'{Style.RESET_ALL}" + ) + + +@dbt_cmd.command("list") +@click.option( + "--manifest-path", + "-m", + required=True, + type=click.Path(exists=True), + help="Path to dbt manifest.json file", +) +@click.option( + "--tag", + "tag_filter", + default=None, + help="Filter models by dbt tag", +) +@click.option( + "--show-columns", + is_flag=True, + default=False, + help="Show column details for each model", +) +def list_command( + manifest_path: str, + tag_filter: Optional[str], + show_columns: bool, +): + """ + List dbt models available for import. + + Examples: + + # List all models + feast dbt list -m target/manifest.json + + # List models with specific tag + feast dbt list -m target/manifest.json --tag feast + + # Show column details + feast dbt list -m target/manifest.json --show-columns + """ + from feast.dbt.parser import DbtManifestParser + + click.echo(f"{Fore.CYAN}Parsing dbt manifest: {manifest_path}{Style.RESET_ALL}") + + try: + parser = DbtManifestParser(manifest_path) + parser.parse() + except (FileNotFoundError, ValueError) as e: + click.echo(f"{Fore.RED}Error: {e}{Style.RESET_ALL}", err=True) + raise SystemExit(1) + + if parser.dbt_version: + click.echo(f" dbt version: {parser.dbt_version}") + if parser.project_name: + click.echo(f" Project: {parser.project_name}") + + models = parser.get_models(tag_filter=tag_filter) + + if not models: + click.echo(f"{Fore.YELLOW}No models found.{Style.RESET_ALL}") + return + + click.echo(f"\n{Fore.GREEN}Found {len(models)} model(s):{Style.RESET_ALL}\n") + + for model in models: + tags_str = f" [tags: {', '.join(model.tags)}]" if model.tags else "" + click.echo(f"{Fore.CYAN}{model.name}{Style.RESET_ALL}{tags_str}") + click.echo(f" Table: {model.full_table_name}") + if model.description: + desc = model.description[:80] + ( + "..." if len(model.description) > 80 else "" + ) + click.echo(f" Description: {desc}") + + if show_columns and model.columns: + click.echo(f" Columns ({len(model.columns)}):") + for col in model.columns: + type_str = col.data_type or "unknown" + click.echo(f" - {col.name}: {type_str}") + + click.echo() diff --git a/sdk/python/feast/dbt/__init__.py b/sdk/python/feast/dbt/__init__.py new file mode 100644 index 00000000000..7d1312d5a1a --- /dev/null +++ b/sdk/python/feast/dbt/__init__.py @@ -0,0 +1,30 @@ +""" +dbt integration for Feast. + +This module provides functionality to import dbt models as Feast FeatureViews, +enabling automatic generation of Feast objects from dbt manifest.json files. + +Example usage:: + + from feast.dbt import DbtManifestParser, DbtToFeastMapper + parser = DbtManifestParser("target/manifest.json") + parser.parse() + models = parser.get_models(tag_filter="feast") + mapper = DbtToFeastMapper(data_source_type="bigquery") + for model in models: + data_source = mapper.create_data_source(model) + feature_view = mapper.create_feature_view(model, data_source, "driver_id") +""" + +from feast.dbt.codegen import DbtCodeGenerator, generate_feast_code +from feast.dbt.mapper import DbtToFeastMapper +from feast.dbt.parser import DbtColumn, DbtManifestParser, DbtModel + +__all__ = [ + "DbtManifestParser", + "DbtModel", + "DbtColumn", + "DbtToFeastMapper", + "DbtCodeGenerator", + "generate_feast_code", +] diff --git a/sdk/python/feast/dbt/codegen.py b/sdk/python/feast/dbt/codegen.py new file mode 100644 index 00000000000..1c7acfb944c --- /dev/null +++ b/sdk/python/feast/dbt/codegen.py @@ -0,0 +1,408 @@ +""" +Code generator for dbt to Feast imports. + +This module generates Python code files containing Feast object definitions +(Entity, DataSource, FeatureView) from dbt model metadata. +""" + +import logging +from typing import Any, List, Optional, Set + +from jinja2 import BaseLoader, Environment + +from feast.dbt.mapper import map_dbt_type_to_feast_type +from feast.dbt.parser import DbtModel +from feast.types import ( + Array, + Bool, + Bytes, + Float32, + Float64, + Int32, + Int64, + String, + UnixTimestamp, +) + +logger = logging.getLogger(__name__) + +# Template for generating a complete Feast definitions file +FEAST_FILE_TEMPLATE = '''""" +Feast feature definitions generated from dbt models. + +Source: {{ manifest_path }} +Project: {{ project_name }} +Generated by: feast dbt import +""" + +from datetime import timedelta + +from feast import Entity, FeatureView, Field +{% if type_imports %} +from feast.types import {{ type_imports | join(', ') }} +{% endif %} +{% if data_source_type == 'bigquery' %} +from feast.infra.offline_stores.bigquery_source import BigQuerySource +{% elif data_source_type == 'snowflake' %} +from feast.infra.offline_stores.snowflake_source import SnowflakeSource +{% elif data_source_type == 'file' %} +from feast.infra.offline_stores.file_source import FileSource +{% endif %} + + +# ============================================================================= +# Entities +# ============================================================================= + +{% for entity in entities %} +{{ entity.var_name }} = Entity( + name="{{ entity.name }}", + join_keys=["{{ entity.join_key }}"], + description="{{ entity.description }}", + tags={{ entity.tags }}, +) + +{% endfor %} + +# ============================================================================= +# Data Sources +# ============================================================================= + +{% for source in data_sources %} +{% if data_source_type == 'bigquery' %} +{{ source.var_name }} = BigQuerySource( + name="{{ source.name }}", + table="{{ source.table }}", + timestamp_field="{{ source.timestamp_field }}", + description="{{ source.description }}", + tags={{ source.tags }}, +) +{% elif data_source_type == 'snowflake' %} +{{ source.var_name }} = SnowflakeSource( + name="{{ source.name }}", + database="{{ source.database }}", + schema="{{ source.schema }}", + table="{{ source.table }}", + timestamp_field="{{ source.timestamp_field }}", + description="{{ source.description }}", + tags={{ source.tags }}, +) +{% elif data_source_type == 'file' %} +{{ source.var_name }} = FileSource( + name="{{ source.name }}", + path="{{ source.path }}", + timestamp_field="{{ source.timestamp_field }}", + description="{{ source.description }}", + tags={{ source.tags }}, +) +{% endif %} + +{% endfor %} + +# ============================================================================= +# Feature Views +# ============================================================================= + +{% for fv in feature_views %} +{{ fv.var_name }} = FeatureView( + name="{{ fv.name }}", + entities=[{{ fv.entity_var }}], + ttl=timedelta(days={{ fv.ttl_days }}), + schema=[ +{% for field in fv.fields %} + Field(name="{{ field.name }}", dtype={{ field.dtype }}{% if field.description %}, description="{{ field.description }}"{% endif %}), +{% endfor %} + ], + online={{ fv.online }}, + source={{ fv.source_var }}, + description="{{ fv.description }}", + tags={{ fv.tags }}, +) + +{% endfor %} +''' + + +def _get_feast_type_name(feast_type: Any) -> str: + """Get the string name of a Feast type for code generation.""" + if isinstance(feast_type, Array): + # Safely get base_type. Should always exist since Array.__init__ sets it. + # Example: Array(String) -> base_type = String + base_type = getattr(feast_type, "base_type", None) + + if base_type is None: + logger.warning( + "Array type missing 'base_type' attribute. " + "This indicates a bug in Array initialization. Falling back to String." + ) + base_type = String + + base_type_name = _get_feast_type_name(base_type) + return f"Array({base_type_name})" + + # Map type objects to their names. + # Note: ImageBytes and PdfBytes are excluded since dbt manifests only expose + # generic BYTES type without semantic information about binary content. + type_map = { + String: "String", + Int32: "Int32", + Int64: "Int64", + Float32: "Float32", + Float64: "Float64", + Bool: "Bool", + UnixTimestamp: "UnixTimestamp", + Bytes: "Bytes", + } + + return type_map.get(feast_type, "String") + + +def _make_var_name(name: str) -> str: + """Convert a name to a valid Python variable name.""" + # Replace hyphens and spaces with underscores + var_name = name.replace("-", "_").replace(" ", "_") + # Ensure it starts with a letter or underscore + if var_name and var_name[0].isdigit(): + var_name = f"_{var_name}" + return var_name + + +def _escape_description(desc: Optional[str]) -> str: + """Escape a description string for use in Python code.""" + if not desc: + return "" + # Escape quotes and newlines + return desc.replace("\\", "\\\\").replace('"', '\\"').replace("\n", " ") + + +class DbtCodeGenerator: + """ + Generates Python code for Feast objects from dbt models. + + This class creates complete, importable Python files containing + Entity, DataSource, and FeatureView definitions. + + Example:: + + generator = DbtCodeGenerator( + data_source_type="bigquery", + timestamp_field="event_timestamp", + ttl_days=7 + ) + code = generator.generate( + models=models, + entity_column="user_id", + manifest_path="target/manifest.json", + project_name="my_project" + ) + with open("features.py", "w") as f: + f.write(code) + """ + + def __init__( + self, + data_source_type: str = "bigquery", + timestamp_field: str = "event_timestamp", + ttl_days: int = 1, + ): + self.data_source_type = data_source_type.lower() + self.timestamp_field = timestamp_field + self.ttl_days = ttl_days + + # Set up Jinja2 environment + self.env = Environment( + loader=BaseLoader(), + trim_blocks=True, + lstrip_blocks=True, + ) + self.template = self.env.from_string(FEAST_FILE_TEMPLATE) + + def generate( + self, + models: List[DbtModel], + entity_column: str, + manifest_path: str = "", + project_name: str = "", + exclude_columns: Optional[List[str]] = None, + online: bool = True, + ) -> str: + """ + Generate Python code for Feast objects from dbt models. + + Args: + models: List of DbtModel objects to generate code for + entity_column: The entity/primary key column name + manifest_path: Path to the dbt manifest (for documentation) + project_name: dbt project name (for documentation) + exclude_columns: Columns to exclude from features + online: Whether to enable online serving + + Returns: + Generated Python code as a string + """ + excluded = {entity_column, self.timestamp_field} + if exclude_columns: + excluded.update(exclude_columns) + + # Collect all Feast types used for imports + type_imports: Set[str] = set() + + # Prepare entity data + entities = [] + entity_var = _make_var_name(entity_column) + entities.append( + { + "var_name": entity_var, + "name": entity_column, + "join_key": entity_column, + "description": "Entity key for dbt models", + "tags": {"source": "dbt"}, + } + ) + + # Prepare data sources and feature views + data_sources = [] + feature_views = [] + + for model in models: + # Check required columns exist + column_names = [c.name for c in model.columns] + if self.timestamp_field not in column_names: + continue + if entity_column not in column_names: + continue + + # Build tags + tags = {"dbt.model": model.name} + for tag in model.tags: + tags[f"dbt.tag.{tag}"] = "true" + + # Data source + source_var = _make_var_name(f"{model.name}_source") + source_data = { + "var_name": source_var, + "name": f"{model.name}_source", + "timestamp_field": self.timestamp_field, + "description": _escape_description(model.description), + "tags": tags, + } + + if self.data_source_type == "bigquery": + source_data["table"] = model.full_table_name + elif self.data_source_type == "snowflake": + source_data["database"] = model.database + source_data["schema"] = model.schema + source_data["table"] = model.alias + elif self.data_source_type == "file": + source_data["path"] = f"/data/{model.name}.parquet" + + data_sources.append(source_data) + + # Feature view fields + fields = [] + for column in model.columns: + if column.name in excluded: + continue + + feast_type = map_dbt_type_to_feast_type(column.data_type) + type_name = _get_feast_type_name(feast_type) + + # Track base type for imports. For Array types, import both Array and base type. + # Example: Array(Int64) requires imports: Array, Int64 + if isinstance(feast_type, Array): + type_imports.add("Array") + + base_type = getattr(feast_type, "base_type", None) + if base_type is None: + logger.warning( + "Array type missing 'base_type' attribute while generating imports. " + "This indicates a bug in Array initialization. Falling back to String." + ) + base_type = String + + base_type_name = _get_feast_type_name(base_type) + type_imports.add(base_type_name) + else: + type_imports.add(type_name) + + fields.append( + { + "name": column.name, + "dtype": type_name, + "description": _escape_description(column.description), + } + ) + + # Feature view + fv_var = _make_var_name(f"{model.name}_fv") + feature_views.append( + { + "var_name": fv_var, + "name": model.name, + "entity_var": entity_var, + "source_var": source_var, + "ttl_days": self.ttl_days, + "fields": fields, + "online": online, + "description": _escape_description(model.description), + "tags": tags, + } + ) + + # Sort type imports for consistent output + sorted_types = sorted(type_imports) + + # Render template + return self.template.render( + manifest_path=manifest_path, + project_name=project_name, + data_source_type=self.data_source_type, + type_imports=sorted_types, + entities=entities, + data_sources=data_sources, + feature_views=feature_views, + ) + + +def generate_feast_code( + models: List[DbtModel], + entity_column: str, + data_source_type: str = "bigquery", + timestamp_field: str = "event_timestamp", + ttl_days: int = 1, + manifest_path: str = "", + project_name: str = "", + exclude_columns: Optional[List[str]] = None, + online: bool = True, +) -> str: + """ + Convenience function to generate Feast code from dbt models. + + Args: + models: List of DbtModel objects + entity_column: Primary key column name + data_source_type: Type of data source (bigquery, snowflake, file) + timestamp_field: Timestamp column name + ttl_days: TTL in days for feature views + manifest_path: Path to manifest for documentation + project_name: Project name for documentation + exclude_columns: Columns to exclude from features + online: Whether to enable online serving + + Returns: + Generated Python code as a string + """ + generator = DbtCodeGenerator( + data_source_type=data_source_type, + timestamp_field=timestamp_field, + ttl_days=ttl_days, + ) + + return generator.generate( + models=models, + entity_column=entity_column, + manifest_path=manifest_path, + project_name=project_name, + exclude_columns=exclude_columns, + online=online, + ) diff --git a/sdk/python/feast/dbt/mapper.py b/sdk/python/feast/dbt/mapper.py new file mode 100644 index 00000000000..2d6d63fbd32 --- /dev/null +++ b/sdk/python/feast/dbt/mapper.py @@ -0,0 +1,413 @@ +""" +dbt to Feast type and object mapper. + +This module provides functionality to map dbt model metadata to Feast objects +including DataSource, Entity, and FeatureView. +""" + +from datetime import timedelta +from typing import Any, Dict, List, Optional, Union + +from feast.dbt.parser import DbtModel +from feast.entity import Entity +from feast.feature_view import FeatureView +from feast.field import Field +from feast.types import ( + Array, + Bool, + Bytes, + FeastType, + Float32, + Float64, + Int32, + Int64, + String, + UnixTimestamp, +) +from feast.value_type import ValueType + +# Comprehensive mapping from dbt/warehouse types to Feast types +# Covers BigQuery, Snowflake, Redshift, PostgreSQL, and common SQL types +DBT_TO_FEAST_TYPE_MAP: Dict[str, FeastType] = { + # String types + "STRING": String, + "TEXT": String, + "VARCHAR": String, + "CHAR": String, + "CHARACTER": String, + "NVARCHAR": String, + "NCHAR": String, + "CHARACTER VARYING": String, + # Integer types + "INT": Int64, + "INT32": Int32, + "INT64": Int64, + "INTEGER": Int64, + "BIGINT": Int64, + "SMALLINT": Int32, + "TINYINT": Int32, + "BYTEINT": Int32, + "NUMBER": Int64, # Snowflake - default to Int64, precision handling below + "NUMERIC": Int64, + "DECIMAL": Int64, + # Float types + "FLOAT": Float32, + "FLOAT32": Float32, + "FLOAT64": Float64, + "DOUBLE": Float64, + "DOUBLE PRECISION": Float64, + "REAL": Float32, + # Boolean types + "BOOL": Bool, + "BOOLEAN": Bool, + # Timestamp types + "TIMESTAMP": UnixTimestamp, + "TIMESTAMP_NTZ": UnixTimestamp, + "TIMESTAMP_LTZ": UnixTimestamp, + "TIMESTAMP_TZ": UnixTimestamp, + "DATETIME": UnixTimestamp, + "DATE": UnixTimestamp, + "TIME": UnixTimestamp, + # Binary types + "BYTES": Bytes, + "BINARY": Bytes, + "VARBINARY": Bytes, + "BLOB": Bytes, +} + + +def map_dbt_type_to_feast_type(dbt_type: str) -> FeastType: + """ + Map a dbt data type to a Feast type. + + Handles various database type formats including: + - Simple types: STRING, INT64, FLOAT + - Parameterized types: VARCHAR(255), NUMBER(10,2), DECIMAL(18,0) + - Array types: ARRAY, ARRAY + + Args: + dbt_type: The dbt/database data type string + + Returns: + The corresponding Feast type + """ + if not dbt_type: + return String + + # Normalize the type string + normalized = dbt_type.upper().strip() + + # Handle ARRAY types: ARRAY + if normalized.startswith("ARRAY<") and normalized.endswith(">"): + element_type_str = normalized[6:-1].strip() + element_type = map_dbt_type_to_feast_type(element_type_str) + # Array only supports primitive types + valid_array_types = { + String, + Int32, + Int64, + Float32, + Float64, + Bool, + Bytes, + UnixTimestamp, + } + if element_type in valid_array_types: + return Array(element_type) + return Array(String) # Fallback for complex nested types + + # Handle parameterized types: VARCHAR(255), NUMBER(10,2), etc. + # Extract base type by removing parentheses and parameters + base_type = normalized.split("(")[0].strip() + + # Handle Snowflake NUMBER with precision + if base_type == "NUMBER" and "(" in normalized: + try: + # Parse precision and scale: NUMBER(precision, scale) + params = normalized.split("(")[1].rstrip(")").split(",") + precision = int(params[0].strip()) + scale = int(params[1].strip()) if len(params) > 1 else 0 + + if scale > 0: + # Has decimal places, use Float64 + return Float64 + elif precision <= 9: + return Int32 + elif precision <= 18: + return Int64 + else: + # Precision > 18, may exceed Int64 range + return Float64 + except (ValueError, IndexError): + return Int64 + + # Look up in mapping table + if base_type in DBT_TO_FEAST_TYPE_MAP: + return DBT_TO_FEAST_TYPE_MAP[base_type] + + # Default to String for unknown types + return String + + +class DbtToFeastMapper: + """ + Maps dbt models to Feast objects. + + Supports creating DataSource, Entity, and FeatureView objects from + dbt model metadata. + + Example:: + + mapper = DbtToFeastMapper(data_source_type="bigquery") + data_source = mapper.create_data_source(model) + feature_view = mapper.create_feature_view( + model, data_source, entity_column="driver_id" + ) + + Args: + data_source_type: Type of data source ('bigquery', 'snowflake', 'file') + timestamp_field: Default timestamp field name + ttl_days: Default TTL in days for feature views + """ + + def __init__( + self, + data_source_type: str = "bigquery", + timestamp_field: str = "event_timestamp", + ttl_days: int = 1, + ): + self.data_source_type = data_source_type.lower() + self.timestamp_field = timestamp_field + self.ttl_days = ttl_days + + def create_data_source( + self, + model: DbtModel, + timestamp_field: Optional[str] = None, + created_timestamp_column: Optional[str] = None, + ) -> Any: + """ + Create a Feast DataSource from a dbt model. + + Args: + model: The DbtModel to create a DataSource from + timestamp_field: Override the default timestamp field + created_timestamp_column: Column for created timestamp (dedup) + + Returns: + A Feast DataSource (BigQuerySource, SnowflakeSource, or FileSource) + + Raises: + ValueError: If data_source_type is not supported + """ + ts_field = timestamp_field or self.timestamp_field + + # Build tags from dbt metadata + tags = {"dbt.model": model.name} + for tag in model.tags: + tags[f"dbt.tag.{tag}"] = "true" + + if self.data_source_type == "bigquery": + from feast.infra.offline_stores.bigquery_source import BigQuerySource + + return BigQuerySource( + name=f"{model.name}_source", + table=model.full_table_name, + timestamp_field=ts_field, + created_timestamp_column=created_timestamp_column or "", + description=model.description, + tags=tags, + ) + + elif self.data_source_type == "snowflake": + from feast.infra.offline_stores.snowflake_source import SnowflakeSource + + return SnowflakeSource( + name=f"{model.name}_source", + database=model.database, + schema=model.schema, + table=model.alias, + timestamp_field=ts_field, + created_timestamp_column=created_timestamp_column or "", + description=model.description, + tags=tags, + ) + + elif self.data_source_type == "file": + from feast.infra.offline_stores.file_source import FileSource + + # For file sources, use the model name as a placeholder path + return FileSource( + name=f"{model.name}_source", + path=f"/data/{model.name}.parquet", + timestamp_field=ts_field, + created_timestamp_column=created_timestamp_column or "", + description=model.description, + tags=tags, + ) + + else: + raise ValueError( + f"Unsupported data_source_type: {self.data_source_type}. " + f"Supported types: bigquery, snowflake, file" + ) + + def create_entity( + self, + name: str, + join_keys: Optional[List[str]] = None, + description: str = "", + tags: Optional[Dict[str, str]] = None, + value_type: ValueType = ValueType.STRING, + ) -> Entity: + """ + Create a Feast Entity. + + Args: + name: Entity name + join_keys: List of join key column names (defaults to [name]) + description: Entity description + tags: Optional tags + value_type: Value type for the entity (default: STRING) + + Returns: + A Feast Entity + """ + return Entity( + name=name, + join_keys=join_keys or [name], + value_type=value_type, + description=description, + tags=tags or {}, + ) + + def create_feature_view( + self, + model: DbtModel, + source: Any, + entity_column: str, + entity: Optional[Entity] = None, + timestamp_field: Optional[str] = None, + ttl_days: Optional[int] = None, + exclude_columns: Optional[List[str]] = None, + online: bool = True, + ) -> FeatureView: + """ + Create a Feast FeatureView from a dbt model. + + Args: + model: The DbtModel to create a FeatureView from + source: The DataSource for this FeatureView + entity_column: The entity/primary key column name + entity: Optional pre-created Entity (created if not provided) + timestamp_field: Override the default timestamp field + ttl_days: Override the default TTL in days + exclude_columns: Additional columns to exclude from features + online: Whether to enable online serving + + Returns: + A Feast FeatureView + """ + ts_field = timestamp_field or self.timestamp_field + ttl = timedelta(days=ttl_days if ttl_days is not None else self.ttl_days) + + # Columns to exclude from features + excluded = {entity_column, ts_field} + if exclude_columns: + excluded.update(exclude_columns) + + # Create schema from model columns + schema: List[Field] = [] + for column in model.columns: + if column.name not in excluded: + feast_type = map_dbt_type_to_feast_type(column.data_type) + schema.append( + Field( + name=column.name, + dtype=feast_type, + description=column.description, + ) + ) + + # Create entity if not provided + if entity is None: + entity = self.create_entity( + name=entity_column, + description=f"Entity for {model.name}", + ) + + # Build tags from dbt metadata + tags = { + "dbt.model": model.name, + "dbt.unique_id": model.unique_id, + } + for tag in model.tags: + tags[f"dbt.tag.{tag}"] = "true" + + return FeatureView( + name=model.name, + source=source, + schema=schema, + entities=[entity], + ttl=ttl, + online=online, + description=model.description, + tags=tags, + ) + + def create_all_from_model( + self, + model: DbtModel, + entity_column: str, + timestamp_field: Optional[str] = None, + ttl_days: Optional[int] = None, + exclude_columns: Optional[List[str]] = None, + online: bool = True, + ) -> Dict[str, Union[Entity, Any, FeatureView]]: + """ + Create all Feast objects (DataSource, Entity, FeatureView) from a dbt model. + + This is a convenience method that creates all necessary Feast objects + in one call. + + Args: + model: The DbtModel to create objects from + entity_column: The entity/primary key column name + timestamp_field: Override the default timestamp field + ttl_days: Override the default TTL in days + exclude_columns: Additional columns to exclude from features + online: Whether to enable online serving + + Returns: + Dict with keys 'entity', 'data_source', 'feature_view' + """ + # Create entity + entity = self.create_entity( + name=entity_column, + description=f"Entity for {model.name}", + tags={"dbt.model": model.name}, + ) + + # Create data source + data_source = self.create_data_source( + model=model, + timestamp_field=timestamp_field, + ) + + # Create feature view + feature_view = self.create_feature_view( + model=model, + source=data_source, + entity_column=entity_column, + entity=entity, + timestamp_field=timestamp_field, + ttl_days=ttl_days, + exclude_columns=exclude_columns, + online=online, + ) + + return { + "entity": entity, + "data_source": data_source, + "feature_view": feature_view, + } diff --git a/sdk/python/feast/dbt/parser.py b/sdk/python/feast/dbt/parser.py new file mode 100644 index 00000000000..f7d3e587e54 --- /dev/null +++ b/sdk/python/feast/dbt/parser.py @@ -0,0 +1,259 @@ +""" +dbt manifest parser for Feast integration. + +This module provides functionality to parse dbt manifest.json files and extract +model metadata for generating Feast FeatureViews. + +Uses dbt-artifacts-parser for typed parsing of manifest versions v1-v12 (dbt 0.19 through 1.11+). +""" + +import json +from dataclasses import dataclass, field +from pathlib import Path +from typing import Any, Dict, List, Optional + + +@dataclass +class DbtColumn: + """Represents a column in a dbt model.""" + + name: str + description: str = "" + data_type: str = "STRING" + tags: List[str] = field(default_factory=list) + meta: Dict[str, Any] = field(default_factory=dict) + + +@dataclass +class DbtModel: + """Represents a dbt model.""" + + name: str + unique_id: str + database: str + schema: str + alias: str + description: str = "" + columns: List[DbtColumn] = field(default_factory=list) + tags: List[str] = field(default_factory=list) + meta: Dict[str, Any] = field(default_factory=dict) + depends_on: List[str] = field(default_factory=list) + + @property + def full_table_name(self) -> str: + """Returns fully qualified table name (database.schema.table).""" + return f"{self.database}.{self.schema}.{self.alias}" + + +class DbtManifestParser: + """ + Parser for dbt manifest.json files using dbt-artifacts-parser. + + Uses dbt-artifacts-parser for typed parsing of manifest versions v1-v12 + (dbt versions 0.19 through 1.11+). + + Example:: + + parser = DbtManifestParser("target/manifest.json") + parser.parse() + models = parser.get_models(tag_filter="feast") + for model in models: + print(f"Model: {model.name}, Columns: {len(model.columns)}") + + Args: + manifest_path: Path to manifest.json file (typically target/manifest.json) + + Raises: + FileNotFoundError: If manifest.json doesn't exist + ValueError: If manifest.json is invalid JSON + """ + + def __init__(self, manifest_path: str): + """ + Initialize parser. + + Args: + manifest_path: Path to manifest.json file + """ + self.manifest_path = Path(manifest_path) + self._raw_manifest: Optional[Dict[str, Any]] = None + self._parsed_manifest: Optional[Any] = None + + def parse(self) -> None: + """ + Load and parse the manifest.json file using dbt-artifacts-parser. + + Raises: + FileNotFoundError: If manifest.json doesn't exist + ValueError: If manifest.json is invalid JSON + ImportError: If dbt-artifacts-parser is not installed + """ + if not self.manifest_path.exists(): + raise FileNotFoundError( + f"dbt manifest not found at {self.manifest_path}.\n" + f"Run 'dbt compile' or 'dbt run' first.\n" + f"Expected path: /target/manifest.json" + ) + + try: + with open(self.manifest_path, "r") as f: + self._raw_manifest = json.load(f) + except json.JSONDecodeError as e: + raise ValueError( + f"Invalid JSON in manifest: {e}\nTry: dbt clean && dbt compile" + ) + + # Parse using dbt-artifacts-parser for typed access + try: + from dbt_artifacts_parser.parser import parse_manifest + + self._parsed_manifest = parse_manifest(manifest=self._raw_manifest) + except ImportError: + raise ImportError( + "dbt-artifacts-parser is required for dbt integration.\n" + "Install with: pip install 'feast[dbt]' or pip install dbt-artifacts-parser" + ) + + def _extract_column_from_node(self, col_name: str, col_data: Any) -> DbtColumn: + """Extract column info from a parsed node column.""" + return DbtColumn( + name=col_name, + description=getattr(col_data, "description", "") or "", + data_type=getattr(col_data, "data_type", "STRING") or "STRING", + tags=list(getattr(col_data, "tags", []) or []), + meta=dict(getattr(col_data, "meta", {}) or {}), + ) + + def _extract_model_from_node(self, node_id: str, node: Any) -> Optional[DbtModel]: + """Extract DbtModel from a parsed manifest node.""" + # Check resource type + resource_type = getattr(node, "resource_type", None) + if resource_type is None: + if not node_id.startswith("model."): + return None + else: + resource_type_str = ( + resource_type.value + if hasattr(resource_type, "value") + else str(resource_type) + ) + if resource_type_str != "model": + return None + + model_name = getattr(node, "name", "") + node_tags = list(getattr(node, "tags", []) or []) + node_columns = getattr(node, "columns", {}) or {} + depends_on = getattr(node, "depends_on", None) + + if depends_on: + depends_on_nodes = list(getattr(depends_on, "nodes", []) or []) + else: + depends_on_nodes = [] + + # Extract columns + columns = [ + self._extract_column_from_node(col_name, col_data) + for col_name, col_data in node_columns.items() + ] + + # Get schema - dbt-artifacts-parser uses schema_ to avoid Python keyword + schema = getattr(node, "schema_", "") or getattr(node, "schema", "") or "" + + return DbtModel( + name=model_name, + unique_id=node_id, + database=getattr(node, "database", "") or "", + schema=schema, + alias=getattr(node, "alias", model_name) or model_name, + description=getattr(node, "description", "") or "", + columns=columns, + tags=node_tags, + meta=dict(getattr(node, "meta", {}) or {}), + depends_on=depends_on_nodes, + ) + + def get_models( + self, + model_names: Optional[List[str]] = None, + tag_filter: Optional[str] = None, + ) -> List[DbtModel]: + """ + Extract dbt models from manifest. + + Args: + model_names: Optional list of specific model names to extract + tag_filter: Optional tag to filter models by + + Returns: + List of DbtModel objects + + Example:: + + models = parser.get_models(model_names=["driver_stats"]) + models = parser.get_models(tag_filter="feast") + """ + if self._parsed_manifest is None: + self.parse() + + if self._parsed_manifest is None: + return [] + + models = [] + nodes = getattr(self._parsed_manifest, "nodes", {}) or {} + + for node_id, node in nodes.items(): + # Only process models (not tests, seeds, snapshots, etc.) + if not node_id.startswith("model."): + continue + + model = self._extract_model_from_node(node_id, node) + if model is None: + continue + + # Filter by model names if specified + if model_names and model.name not in model_names: + continue + + # Filter by tag if specified + if tag_filter and tag_filter not in model.tags: + continue + + models.append(model) + + return models + + def get_model_by_name(self, model_name: str) -> Optional[DbtModel]: + """ + Get a specific model by name. + + Args: + model_name: Name of the model to retrieve + + Returns: + DbtModel if found, None otherwise + """ + models = self.get_models(model_names=[model_name]) + return models[0] if models else None + + @property + def dbt_version(self) -> Optional[str]: + """Get dbt version from manifest metadata.""" + if self._parsed_manifest is None: + return None + metadata = getattr(self._parsed_manifest, "metadata", None) + if metadata is None: + return None + return getattr(metadata, "dbt_version", None) + + @property + def project_name(self) -> Optional[str]: + """Get project name from manifest metadata.""" + if self._parsed_manifest is None: + return None + metadata = getattr(self._parsed_manifest, "metadata", None) + if metadata is None: + return None + # project_name may not exist in all manifest versions + return getattr(metadata, "project_name", None) or getattr( + metadata, "project_id", None + ) diff --git a/sdk/python/requirements/py3.10-ci-requirements.txt b/sdk/python/requirements/py3.10-ci-requirements.txt index 851c363868f..0a08de1c3be 100644 --- a/sdk/python/requirements/py3.10-ci-requirements.txt +++ b/sdk/python/requirements/py3.10-ci-requirements.txt @@ -853,6 +853,10 @@ db-dtypes==1.5.0 \ # via # google-cloud-bigquery # pandas-gbq +dbt-artifacts-parser==0.12.0 \ + --hash=sha256:3db93df7969c3f22c6fbf75a51b0af4c21b189d8db6f3c54e8471102c775bb0d \ + --hash=sha256:9d1c0ed41926102c1c39fdd780e1a332f58c9b794e94dba0dcf5dfefc847d6ea + # via feast (setup.py) debugpy==1.8.19 \ --hash=sha256:0601708223fe1cd0e27c6cce67a899d92c7d68e73690211e6788a4b0e1903f5b \ --hash=sha256:14035cbdbb1fe4b642babcdcb5935c2da3b1067ac211c5c5a8fdc0bb31adbcaa \ @@ -3763,6 +3767,7 @@ pydantic==2.12.5 \ --hash=sha256:e561593fccf61e8a20fc46dfc2dfe075b8be7d0188df33f221ad1f0139180f9d # via # feast (setup.py) + # dbt-artifacts-parser # docling # docling-core # docling-ibm-models diff --git a/sdk/python/requirements/py3.11-ci-requirements.txt b/sdk/python/requirements/py3.11-ci-requirements.txt index f47ea84f804..40a5f144ffb 100644 --- a/sdk/python/requirements/py3.11-ci-requirements.txt +++ b/sdk/python/requirements/py3.11-ci-requirements.txt @@ -933,6 +933,10 @@ db-dtypes==1.5.0 \ # via # google-cloud-bigquery # pandas-gbq +dbt-artifacts-parser==0.12.0 \ + --hash=sha256:3db93df7969c3f22c6fbf75a51b0af4c21b189d8db6f3c54e8471102c775bb0d \ + --hash=sha256:9d1c0ed41926102c1c39fdd780e1a332f58c9b794e94dba0dcf5dfefc847d6ea + # via feast (setup.py) debugpy==1.8.19 \ --hash=sha256:0601708223fe1cd0e27c6cce67a899d92c7d68e73690211e6788a4b0e1903f5b \ --hash=sha256:14035cbdbb1fe4b642babcdcb5935c2da3b1067ac211c5c5a8fdc0bb31adbcaa \ @@ -3928,6 +3932,7 @@ pydantic==2.12.5 \ # via # feast (setup.py) # codeflare-sdk + # dbt-artifacts-parser # docling # docling-core # docling-ibm-models diff --git a/sdk/python/requirements/py3.12-ci-requirements.txt b/sdk/python/requirements/py3.12-ci-requirements.txt index 3434f34a2ef..ed4014139d0 100644 --- a/sdk/python/requirements/py3.12-ci-requirements.txt +++ b/sdk/python/requirements/py3.12-ci-requirements.txt @@ -929,6 +929,10 @@ db-dtypes==1.5.0 \ # via # google-cloud-bigquery # pandas-gbq +dbt-artifacts-parser==0.12.0 \ + --hash=sha256:3db93df7969c3f22c6fbf75a51b0af4c21b189d8db6f3c54e8471102c775bb0d \ + --hash=sha256:9d1c0ed41926102c1c39fdd780e1a332f58c9b794e94dba0dcf5dfefc847d6ea + # via feast (setup.py) debugpy==1.8.19 \ --hash=sha256:0601708223fe1cd0e27c6cce67a899d92c7d68e73690211e6788a4b0e1903f5b \ --hash=sha256:14035cbdbb1fe4b642babcdcb5935c2da3b1067ac211c5c5a8fdc0bb31adbcaa \ @@ -3918,6 +3922,7 @@ pydantic==2.12.5 \ # via # feast (setup.py) # codeflare-sdk + # dbt-artifacts-parser # docling # docling-core # docling-ibm-models diff --git a/sdk/python/tests/unit/dbt/__init__.py b/sdk/python/tests/unit/dbt/__init__.py new file mode 100644 index 00000000000..8a225265d2c --- /dev/null +++ b/sdk/python/tests/unit/dbt/__init__.py @@ -0,0 +1 @@ +# dbt integration tests diff --git a/sdk/python/tests/unit/dbt/sample_manifest.json b/sdk/python/tests/unit/dbt/sample_manifest.json new file mode 100644 index 00000000000..6a44b9db749 --- /dev/null +++ b/sdk/python/tests/unit/dbt/sample_manifest.json @@ -0,0 +1,170 @@ +{ + "metadata": { + "dbt_version": "1.5.0", + "project_name": "sample_dbt_project", + "generated_at": "2024-01-10T00:00:00Z", + "invocation_id": "12345678-1234-1234-1234-123456789012" + }, + "nodes": { + "model.sample_dbt_project.driver_stats": { + "name": "driver_stats", + "unique_id": "model.sample_dbt_project.driver_stats", + "resource_type": "model", + "database": "feast_demo", + "schema": "public", + "alias": "driver_stats", + "description": "Driver statistics aggregated hourly for ML features", + "columns": { + "driver_id": { + "name": "driver_id", + "description": "Unique driver identifier", + "data_type": "INT64", + "tags": ["entity", "primary_key"], + "meta": {} + }, + "event_timestamp": { + "name": "event_timestamp", + "description": "Timestamp of the event", + "data_type": "TIMESTAMP", + "tags": ["timestamp"], + "meta": {} + }, + "trip_count": { + "name": "trip_count", + "description": "Total number of trips completed", + "data_type": "INT64", + "tags": ["feature"], + "meta": {} + }, + "avg_rating": { + "name": "avg_rating", + "description": "Average driver rating (1-5 scale)", + "data_type": "FLOAT64", + "tags": ["feature"], + "meta": {} + }, + "total_earnings": { + "name": "total_earnings", + "description": "Total earnings in dollars", + "data_type": "FLOAT64", + "tags": ["feature"], + "meta": {} + }, + "is_active": { + "name": "is_active", + "description": "Whether driver is currently active", + "data_type": "BOOLEAN", + "tags": ["feature"], + "meta": {} + } + }, + "tags": ["feast", "ml", "driver"], + "meta": { + "owner": "ml-team@example.com", + "team": "driver-experience" + }, + "depends_on": { + "nodes": ["source.sample_dbt_project.raw_trips"] + } + }, + "model.sample_dbt_project.customer_stats": { + "name": "customer_stats", + "unique_id": "model.sample_dbt_project.customer_stats", + "resource_type": "model", + "database": "feast_demo", + "schema": "public", + "alias": "customer_stats", + "description": "Customer statistics for personalization features", + "columns": { + "customer_id": { + "name": "customer_id", + "description": "Unique customer identifier", + "data_type": "STRING", + "tags": ["entity"], + "meta": {} + }, + "event_timestamp": { + "name": "event_timestamp", + "description": "Event timestamp", + "data_type": "TIMESTAMP", + "tags": [], + "meta": {} + }, + "order_count": { + "name": "order_count", + "description": "Total number of orders placed", + "data_type": "INT64", + "tags": ["feature"], + "meta": {} + }, + "avg_order_value": { + "name": "avg_order_value", + "description": "Average order value in dollars", + "data_type": "FLOAT64", + "tags": ["feature"], + "meta": {} + }, + "preferred_payment": { + "name": "preferred_payment", + "description": "Preferred payment method", + "data_type": "STRING", + "tags": ["feature"], + "meta": {} + } + }, + "tags": ["feast", "ml", "customer"], + "meta": { + "owner": "ml-team@example.com" + }, + "depends_on": { + "nodes": [] + } + }, + "model.sample_dbt_project.location_stats": { + "name": "location_stats", + "unique_id": "model.sample_dbt_project.location_stats", + "resource_type": "model", + "database": "feast_demo", + "schema": "public", + "alias": "location_stats", + "description": "Location-based statistics (no feast tag)", + "columns": { + "location_id": { + "name": "location_id", + "description": "Location identifier", + "data_type": "STRING", + "tags": [], + "meta": {} + }, + "event_timestamp": { + "name": "event_timestamp", + "description": "Event timestamp", + "data_type": "TIMESTAMP", + "tags": [], + "meta": {} + }, + "demand_score": { + "name": "demand_score", + "description": "Demand score for the location", + "data_type": "FLOAT64", + "tags": [], + "meta": {} + } + }, + "tags": ["analytics"], + "meta": {}, + "depends_on": { + "nodes": [] + } + } + }, + "sources": { + "source.sample_dbt_project.raw_trips": { + "name": "raw_trips", + "unique_id": "source.sample_dbt_project.raw_trips", + "source_name": "raw_data", + "schema": "raw", + "identifier": "trips" + } + } +} diff --git a/sdk/python/tests/unit/dbt/test_mapper.py b/sdk/python/tests/unit/dbt/test_mapper.py new file mode 100644 index 00000000000..809c4b43b8e --- /dev/null +++ b/sdk/python/tests/unit/dbt/test_mapper.py @@ -0,0 +1,312 @@ +""" +Unit tests for dbt to Feast mapper. +""" + +from datetime import timedelta + +import pytest + +# Skip all tests in this module if dbt-artifacts-parser is not installed +pytest.importorskip("dbt_artifacts_parser", reason="dbt-artifacts-parser not installed") + +from feast.dbt.mapper import ( + DbtToFeastMapper, + map_dbt_type_to_feast_type, +) +from feast.dbt.parser import DbtColumn, DbtModel +from feast.types import ( + Array, + Bool, + Bytes, + Float32, + Float64, + Int32, + Int64, + String, + UnixTimestamp, +) + + +class TestTypeMapping: + """Tests for dbt to Feast type mapping.""" + + def test_string_types(self): + """Test string type mappings.""" + assert map_dbt_type_to_feast_type("STRING") == String + assert map_dbt_type_to_feast_type("TEXT") == String + assert map_dbt_type_to_feast_type("VARCHAR") == String + assert map_dbt_type_to_feast_type("VARCHAR(255)") == String + assert map_dbt_type_to_feast_type("CHAR") == String + assert map_dbt_type_to_feast_type("NVARCHAR") == String + + def test_integer_types(self): + """Test integer type mappings.""" + assert map_dbt_type_to_feast_type("INT") == Int64 + assert map_dbt_type_to_feast_type("INT64") == Int64 + assert map_dbt_type_to_feast_type("INTEGER") == Int64 + assert map_dbt_type_to_feast_type("BIGINT") == Int64 + assert map_dbt_type_to_feast_type("INT32") == Int32 + assert map_dbt_type_to_feast_type("SMALLINT") == Int32 + assert map_dbt_type_to_feast_type("TINYINT") == Int32 + + def test_float_types(self): + """Test float type mappings.""" + assert map_dbt_type_to_feast_type("FLOAT") == Float32 + assert map_dbt_type_to_feast_type("FLOAT32") == Float32 + assert map_dbt_type_to_feast_type("FLOAT64") == Float64 + assert map_dbt_type_to_feast_type("DOUBLE") == Float64 + assert map_dbt_type_to_feast_type("DOUBLE PRECISION") == Float64 + assert map_dbt_type_to_feast_type("REAL") == Float32 + + def test_boolean_types(self): + """Test boolean type mappings.""" + assert map_dbt_type_to_feast_type("BOOL") == Bool + assert map_dbt_type_to_feast_type("BOOLEAN") == Bool + + def test_timestamp_types(self): + """Test timestamp type mappings.""" + assert map_dbt_type_to_feast_type("TIMESTAMP") == UnixTimestamp + assert map_dbt_type_to_feast_type("TIMESTAMP_NTZ") == UnixTimestamp + assert map_dbt_type_to_feast_type("TIMESTAMP_LTZ") == UnixTimestamp + assert map_dbt_type_to_feast_type("DATETIME") == UnixTimestamp + assert map_dbt_type_to_feast_type("DATE") == UnixTimestamp + + def test_binary_types(self): + """Test binary type mappings.""" + assert map_dbt_type_to_feast_type("BYTES") == Bytes + assert map_dbt_type_to_feast_type("BINARY") == Bytes + assert map_dbt_type_to_feast_type("VARBINARY") == Bytes + assert map_dbt_type_to_feast_type("BLOB") == Bytes + + def test_case_insensitivity(self): + """Test type mapping is case insensitive.""" + assert map_dbt_type_to_feast_type("string") == String + assert map_dbt_type_to_feast_type("String") == String + assert map_dbt_type_to_feast_type("STRING") == String + assert map_dbt_type_to_feast_type("int64") == Int64 + assert map_dbt_type_to_feast_type("INT64") == Int64 + + def test_parameterized_types(self): + """Test parameterized types are handled correctly.""" + assert map_dbt_type_to_feast_type("VARCHAR(255)") == String + assert map_dbt_type_to_feast_type("CHAR(10)") == String + assert map_dbt_type_to_feast_type("DECIMAL(10,2)") == Int64 + + def test_snowflake_number_precision(self): + """Test Snowflake NUMBER type with precision.""" + # Small precision -> Int32 + assert map_dbt_type_to_feast_type("NUMBER(5,0)") == Int32 + assert map_dbt_type_to_feast_type("NUMBER(9,0)") == Int32 + + # Medium precision -> Int64 + assert map_dbt_type_to_feast_type("NUMBER(10,0)") == Int64 + assert map_dbt_type_to_feast_type("NUMBER(18,0)") == Int64 + + # Large precision -> Float64 + assert map_dbt_type_to_feast_type("NUMBER(20,0)") == Float64 + + # With decimal places -> Float64 + assert map_dbt_type_to_feast_type("NUMBER(10,2)") == Float64 + assert map_dbt_type_to_feast_type("NUMBER(5,3)") == Float64 + + def test_array_types(self): + """Test ARRAY type mappings.""" + result = map_dbt_type_to_feast_type("ARRAY") + assert isinstance(result, Array) + + result = map_dbt_type_to_feast_type("ARRAY") + assert isinstance(result, Array) + + result = map_dbt_type_to_feast_type("ARRAY") + assert isinstance(result, Array) + + def test_unknown_type_defaults_to_string(self): + """Test unknown types default to String.""" + assert map_dbt_type_to_feast_type("UNKNOWN_TYPE") == String + assert map_dbt_type_to_feast_type("CUSTOM") == String + + def test_empty_type_defaults_to_string(self): + """Test empty type defaults to String.""" + assert map_dbt_type_to_feast_type("") == String + assert map_dbt_type_to_feast_type(None) == String + + +@pytest.fixture +def sample_model(): + """Create a sample DbtModel for testing.""" + return DbtModel( + name="driver_stats", + unique_id="model.test_project.driver_stats", + database="my_database", + schema="analytics", + alias="driver_stats", + description="Driver statistics", + columns=[ + DbtColumn(name="driver_id", data_type="INT64", description="Driver ID"), + DbtColumn( + name="event_timestamp", + data_type="TIMESTAMP", + description="Event time", + ), + DbtColumn( + name="trip_count", data_type="INT64", description="Number of trips" + ), + DbtColumn( + name="avg_rating", data_type="FLOAT64", description="Average rating" + ), + DbtColumn( + name="is_active", data_type="BOOLEAN", description="Is driver active" + ), + ], + tags=["feast", "ml"], + meta={"owner": "ml-team"}, + ) + + +class TestDbtToFeastMapper: + """Tests for DbtToFeastMapper class.""" + + def test_create_bigquery_data_source(self, sample_model): + """Test creating a BigQuery data source.""" + mapper = DbtToFeastMapper(data_source_type="bigquery") + source = mapper.create_data_source(sample_model) + + assert source.name == "driver_stats_source" + assert source.table == "my_database.analytics.driver_stats" + assert source.timestamp_field == "event_timestamp" + assert "dbt.model" in source.tags + assert source.tags["dbt.model"] == "driver_stats" + + def test_create_snowflake_data_source(self, sample_model): + """Test creating a Snowflake data source.""" + mapper = DbtToFeastMapper(data_source_type="snowflake") + source = mapper.create_data_source(sample_model) + + assert source.name == "driver_stats_source" + assert source.database == "my_database" + assert source.schema == "analytics" + assert source.table == "driver_stats" + assert source.timestamp_field == "event_timestamp" + + def test_create_file_data_source(self, sample_model): + """Test creating a file data source.""" + mapper = DbtToFeastMapper(data_source_type="file") + source = mapper.create_data_source(sample_model) + + assert source.name == "driver_stats_source" + assert "driver_stats.parquet" in source.path + + def test_unsupported_data_source_type(self, sample_model): + """Test error for unsupported data source type.""" + mapper = DbtToFeastMapper(data_source_type="unsupported") + + with pytest.raises(ValueError) as exc_info: + mapper.create_data_source(sample_model) + + assert "Unsupported data_source_type" in str(exc_info.value) + + def test_custom_timestamp_field(self, sample_model): + """Test custom timestamp field.""" + mapper = DbtToFeastMapper( + data_source_type="bigquery", timestamp_field="created_at" + ) + source = mapper.create_data_source(sample_model) + + assert source.timestamp_field == "created_at" + + def test_create_entity(self): + """Test creating an entity.""" + mapper = DbtToFeastMapper() + entity = mapper.create_entity( + name="driver_id", + description="Driver entity", + tags={"source": "dbt"}, + ) + + assert entity.name == "driver_id" + assert entity.join_key == "driver_id" + assert entity.description == "Driver entity" + assert entity.tags == {"source": "dbt"} + + def test_create_feature_view(self, sample_model): + """Test creating a feature view.""" + mapper = DbtToFeastMapper(data_source_type="bigquery", ttl_days=7) + source = mapper.create_data_source(sample_model) + fv = mapper.create_feature_view( + model=sample_model, + source=source, + entity_column="driver_id", + ) + + assert fv.name == "driver_stats" + assert fv.ttl == timedelta(days=7) + assert fv.description == "Driver statistics" + + # Check features (should exclude entity and timestamp) + feature_names = [f.name for f in fv.features] + assert "trip_count" in feature_names + assert "avg_rating" in feature_names + assert "is_active" in feature_names + assert "driver_id" not in feature_names + assert "event_timestamp" not in feature_names + + # Check tags + assert "dbt.model" in fv.tags + assert fv.tags["dbt.model"] == "driver_stats" + assert "dbt.tag.feast" in fv.tags + + def test_create_feature_view_with_exclude(self, sample_model): + """Test excluding columns from feature view.""" + mapper = DbtToFeastMapper(data_source_type="bigquery") + source = mapper.create_data_source(sample_model) + fv = mapper.create_feature_view( + model=sample_model, + source=source, + entity_column="driver_id", + exclude_columns=["is_active"], + ) + + feature_names = [f.name for f in fv.features] + assert "trip_count" in feature_names + assert "avg_rating" in feature_names + assert "is_active" not in feature_names + + def test_create_all_from_model(self, sample_model): + """Test creating all Feast objects from a model.""" + mapper = DbtToFeastMapper(data_source_type="bigquery") + result = mapper.create_all_from_model( + model=sample_model, + entity_column="driver_id", + ) + + assert "entity" in result + assert "data_source" in result + assert "feature_view" in result + + assert result["entity"].name == "driver_id" + assert result["data_source"].name == "driver_stats_source" + assert result["feature_view"].name == "driver_stats" + + def test_feature_type_mapping(self, sample_model): + """Test that feature types are correctly mapped.""" + mapper = DbtToFeastMapper(data_source_type="bigquery") + source = mapper.create_data_source(sample_model) + fv = mapper.create_feature_view( + model=sample_model, + source=source, + entity_column="driver_id", + ) + + # Find specific features and check types + trip_count = next((f for f in fv.features if f.name == "trip_count"), None) + avg_rating = next((f for f in fv.features if f.name == "avg_rating"), None) + is_active = next((f for f in fv.features if f.name == "is_active"), None) + + assert trip_count is not None + assert trip_count.dtype == Int64 + + assert avg_rating is not None + assert avg_rating.dtype == Float64 + + assert is_active is not None + assert is_active.dtype == Bool diff --git a/sdk/python/tests/unit/dbt/test_parser.py b/sdk/python/tests/unit/dbt/test_parser.py new file mode 100644 index 00000000000..2e15f9863ee --- /dev/null +++ b/sdk/python/tests/unit/dbt/test_parser.py @@ -0,0 +1,314 @@ +""" +Unit tests for dbt manifest parser. +""" + +import json + +import pytest + +# Skip all tests in this module if dbt-artifacts-parser is not installed +pytest.importorskip("dbt_artifacts_parser", reason="dbt-artifacts-parser not installed") + +from feast.dbt.parser import DbtColumn, DbtManifestParser, DbtModel + + +def _create_model_node( + name: str, + unique_id: str, + database: str = "my_database", + schema: str = "analytics", + description: str = "", + columns: dict = None, + tags: list = None, + meta: dict = None, + depends_on_nodes: list = None, +): + """Helper to create a complete model node for dbt-artifacts-parser.""" + return { + "name": name, + "unique_id": unique_id, + "resource_type": "model", + "package_name": "test_project", + "path": f"models/{name}.sql", + "original_file_path": f"models/{name}.sql", + "fqn": ["test_project", name], + "alias": name, + "checksum": {"name": "sha256", "checksum": "abc123"}, + "database": database, + "schema": schema, + "description": description or "", + "columns": columns or {}, + "tags": tags or [], + "meta": meta or {}, + "config": { + "enabled": True, + "materialized": "table", + "tags": tags or [], + "meta": meta or {}, + }, + "depends_on": {"nodes": depends_on_nodes or [], "macros": []}, + "refs": [], + "sources": [], + "metrics": [], + "compiled_path": f"target/compiled/test_project/models/{name}.sql", + } + + +def _create_column( + name: str, + data_type: str = "STRING", + description: str = "", + tags: list = None, + meta: dict = None, +): + """Helper to create a column definition.""" + return { + "name": name, + "description": description or "", + "data_type": data_type, + "tags": tags or [], + "meta": meta or {}, + } + + +@pytest.fixture +def sample_manifest(tmp_path): + """Create a sample dbt manifest.json for testing.""" + manifest = { + "metadata": { + "dbt_schema_version": "https://schemas.getdbt.com/dbt/manifest/v9.json", + "dbt_version": "1.5.0", + "generated_at": "2024-01-10T00:00:00Z", + "invocation_id": "test-invocation-id", + "env": {}, + "adapter_type": "bigquery", + }, + "nodes": { + "model.test_project.driver_stats": _create_model_node( + name="driver_stats", + unique_id="model.test_project.driver_stats", + description="Driver statistics aggregated hourly", + columns={ + "driver_id": _create_column( + "driver_id", "INT64", "Unique driver identifier", ["entity"] + ), + "event_timestamp": _create_column( + "event_timestamp", "TIMESTAMP", "Event timestamp" + ), + "trip_count": _create_column( + "trip_count", "INT64", "Number of trips", ["feature"] + ), + "avg_rating": _create_column( + "avg_rating", "FLOAT64", "Average driver rating", ["feature"] + ), + }, + tags=["feast", "ml"], + meta={"owner": "data-team"}, + depends_on_nodes=["source.test_project.raw_trips"], + ), + "model.test_project.customer_stats": _create_model_node( + name="customer_stats", + unique_id="model.test_project.customer_stats", + description="Customer statistics", + columns={ + "customer_id": _create_column( + "customer_id", "STRING", "Unique customer ID" + ), + "event_timestamp": _create_column( + "event_timestamp", "TIMESTAMP", "Event timestamp" + ), + "order_count": _create_column( + "order_count", "INT64", "Total orders" + ), + }, + tags=["ml"], + ), + }, + "sources": {}, + "macros": {}, + "docs": {}, + "exposures": {}, + "metrics": {}, + "groups": {}, + "selectors": {}, + "disabled": {}, + "parent_map": {}, + "child_map": {}, + } + + manifest_path = tmp_path / "manifest.json" + manifest_path.write_text(json.dumps(manifest)) + return manifest_path + + +class TestDbtManifestParser: + """Tests for DbtManifestParser class.""" + + def test_parse_manifest(self, sample_manifest): + """Test parsing a valid manifest file.""" + parser = DbtManifestParser(str(sample_manifest)) + parser.parse() + + assert parser.dbt_version == "1.5.0" + + def test_parse_manifest_not_found(self, tmp_path): + """Test error when manifest file doesn't exist.""" + parser = DbtManifestParser(str(tmp_path / "nonexistent.json")) + + with pytest.raises(FileNotFoundError) as exc_info: + parser.parse() + + assert "dbt manifest not found" in str(exc_info.value) + + def test_parse_manifest_invalid_json(self, tmp_path): + """Test error when manifest is invalid JSON.""" + invalid_path = tmp_path / "invalid.json" + invalid_path.write_text("not valid json {{{") + + parser = DbtManifestParser(str(invalid_path)) + + with pytest.raises(ValueError) as exc_info: + parser.parse() + + assert "Invalid JSON" in str(exc_info.value) + + def test_get_all_models(self, sample_manifest): + """Test getting all models from manifest.""" + parser = DbtManifestParser(str(sample_manifest)) + models = parser.get_models() + + assert len(models) == 2 + model_names = [m.name for m in models] + assert "driver_stats" in model_names + assert "customer_stats" in model_names + + def test_get_models_by_name(self, sample_manifest): + """Test filtering models by name.""" + parser = DbtManifestParser(str(sample_manifest)) + models = parser.get_models(model_names=["driver_stats"]) + + assert len(models) == 1 + assert models[0].name == "driver_stats" + + def test_get_models_by_tag(self, sample_manifest): + """Test filtering models by tag.""" + parser = DbtManifestParser(str(sample_manifest)) + + # Filter by 'feast' tag - only driver_stats has it + feast_models = parser.get_models(tag_filter="feast") + assert len(feast_models) == 1 + assert feast_models[0].name == "driver_stats" + + # Filter by 'ml' tag - both models have it + ml_models = parser.get_models(tag_filter="ml") + assert len(ml_models) == 2 + + def test_model_properties(self, sample_manifest): + """Test DbtModel properties.""" + parser = DbtManifestParser(str(sample_manifest)) + model = parser.get_model_by_name("driver_stats") + + assert model is not None + assert model.name == "driver_stats" + assert model.unique_id == "model.test_project.driver_stats" + assert model.database == "my_database" + assert model.schema == "analytics" + assert model.alias == "driver_stats" + assert model.description == "Driver statistics aggregated hourly" + assert model.full_table_name == "my_database.analytics.driver_stats" + assert "feast" in model.tags + assert "ml" in model.tags + assert len(model.columns) == 4 + + def test_column_properties(self, sample_manifest): + """Test DbtColumn properties.""" + parser = DbtManifestParser(str(sample_manifest)) + model = parser.get_model_by_name("driver_stats") + + # Find the trip_count column + trip_count_col = next( + (c for c in model.columns if c.name == "trip_count"), None + ) + + assert trip_count_col is not None + assert trip_count_col.name == "trip_count" + assert trip_count_col.data_type == "INT64" + assert trip_count_col.description == "Number of trips" + assert "feature" in trip_count_col.tags + + def test_get_model_by_name_not_found(self, sample_manifest): + """Test getting a model that doesn't exist.""" + parser = DbtManifestParser(str(sample_manifest)) + model = parser.get_model_by_name("nonexistent_model") + + assert model is None + + def test_depends_on(self, sample_manifest): + """Test model dependencies are captured.""" + parser = DbtManifestParser(str(sample_manifest)) + model = parser.get_model_by_name("driver_stats") + + assert len(model.depends_on) == 1 + assert "source.test_project.raw_trips" in model.depends_on + + +class TestDbtColumn: + """Tests for DbtColumn dataclass.""" + + def test_column_defaults(self): + """Test DbtColumn default values.""" + col = DbtColumn(name="test_col") + + assert col.name == "test_col" + assert col.description == "" + assert col.data_type == "STRING" + assert col.tags == [] + assert col.meta == {} + + def test_column_with_all_fields(self): + """Test DbtColumn with all fields specified.""" + col = DbtColumn( + name="feature_col", + description="A feature column", + data_type="FLOAT64", + tags=["feature", "numeric"], + meta={"owner": "ml-team"}, + ) + + assert col.name == "feature_col" + assert col.description == "A feature column" + assert col.data_type == "FLOAT64" + assert col.tags == ["feature", "numeric"] + assert col.meta == {"owner": "ml-team"} + + +class TestDbtModel: + """Tests for DbtModel dataclass.""" + + def test_model_full_table_name(self): + """Test full_table_name property.""" + model = DbtModel( + name="test_model", + unique_id="model.proj.test_model", + database="prod_db", + schema="public", + alias="test_model_v2", + ) + + assert model.full_table_name == "prod_db.public.test_model_v2" + + def test_model_defaults(self): + """Test DbtModel default values.""" + model = DbtModel( + name="test", + unique_id="model.proj.test", + database="db", + schema="schema", + alias="test", + ) + + assert model.description == "" + assert model.columns == [] + assert model.tags == [] + assert model.meta == {} + assert model.depends_on == [] diff --git a/setup.py b/setup.py index 32082c2fa0b..a3ac25a40d9 100644 --- a/setup.py +++ b/setup.py @@ -165,6 +165,8 @@ MILVUS_REQUIRED = ["pymilvus>2.5", "milvus-lite==2.4.12", "setuptools>=60,<81"] +DBT_REQUIRED = ["dbt-artifacts-parser>=0.6.0,<1"] + TORCH_REQUIRED = [ "torch>=2.7.0", "torchvision>=0.22.1", @@ -195,6 +197,7 @@ "build", "virtualenv==20.23.0", "cryptography>=43.0,<44", + "dbt-artifacts-parser>=0.6.0,<1", "ruff>=0.8.0", "mypy-protobuf>=3.1", "grpcio-tools>=1.56.2,<=1.62.3", @@ -365,6 +368,7 @@ "qdrant": QDRANT_REQUIRED, "go": GO_REQUIRED, "milvus": MILVUS_REQUIRED, + "dbt": DBT_REQUIRED, "docling": DOCLING_REQUIRED, "pytorch": TORCH_REQUIRED, "nlp": NLP_REQUIRED, From ab3562bee87df06b7437c9a7eada4482220fbfc7 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Fri, 16 Jan 2026 16:02:17 -0500 Subject: [PATCH 36/37] feat: Add progress bar to CLI from feast apply (#5867) * feat: Add progress bar to CLI from feast apply Signed-off-by: Francisco Javier Arceo * format nicer Signed-off-by: Francisco Javier Arceo * fix Signed-off-by: Francisco Javier Arceo * fix Signed-off-by: Francisco Javier Arceo * fix Signed-off-by: Francisco Javier Arceo --------- Signed-off-by: Francisco Javier Arceo --- sdk/python/feast/cli/cli.py | 22 ++- sdk/python/feast/diff/apply_progress.py | 185 ++++++++++++++++++++++++ sdk/python/feast/diff/infra_diff.py | 16 +- sdk/python/feast/feature_store.py | 48 +++++- sdk/python/feast/repo_operations.py | 48 ++++-- 5 files changed, 294 insertions(+), 25 deletions(-) create mode 100644 sdk/python/feast/diff/apply_progress.py diff --git a/sdk/python/feast/cli/cli.py b/sdk/python/feast/cli/cli.py index 6638576bd2b..4eff2707af9 100644 --- a/sdk/python/feast/cli/cli.py +++ b/sdk/python/feast/cli/cli.py @@ -271,9 +271,17 @@ def plan_command( is_flag=True, help="Don't validate feature views. Use with caution as this skips important checks.", ) +@click.option( + "--no-progress", + is_flag=True, + help="Disable progress bars during apply operation.", +) @click.pass_context def apply_total_command( - ctx: click.Context, skip_source_validation: bool, skip_feature_view_validation: bool + ctx: click.Context, + skip_source_validation: bool, + skip_feature_view_validation: bool, + no_progress: bool, ): """ Create or update a feature store deployment @@ -283,9 +291,19 @@ def apply_total_command( cli_check_repo(repo, fs_yaml_file) repo_config = load_repo_config(repo, fs_yaml_file) + + # Set environment variable to disable progress if requested + if no_progress: + import os + + os.environ["FEAST_NO_PROGRESS"] = "1" + try: apply_total( - repo_config, repo, skip_source_validation, skip_feature_view_validation + repo_config, + repo, + skip_source_validation, + skip_feature_view_validation, ) except FeastProviderLoginError as e: print(str(e)) diff --git a/sdk/python/feast/diff/apply_progress.py b/sdk/python/feast/diff/apply_progress.py new file mode 100644 index 00000000000..7d12ecef018 --- /dev/null +++ b/sdk/python/feast/diff/apply_progress.py @@ -0,0 +1,185 @@ +""" +Enhanced progress tracking infrastructure for feast apply operations. + +This module provides the ApplyProgressContext class that manages positioned, +color-coded progress bars during apply operations with fixed-width formatting +for perfect alignment. +""" + +from dataclasses import dataclass +from typing import Optional + +from tqdm import tqdm + +try: + from feast.diff.progress_utils import ( + create_positioned_tqdm, + get_color_for_phase, + is_tty_available, + ) + + _PROGRESS_UTILS_AVAILABLE = True +except ImportError: + # Graceful fallback when progress_utils is not available (e.g., in tests) + _PROGRESS_UTILS_AVAILABLE = False + + def create_positioned_tqdm( + position: int, + description: str, + total: int, + color: str = "blue", + postfix: Optional[str] = None, + ) -> Optional[tqdm]: + return None + + def get_color_for_phase(phase: str) -> str: + return "blue" + + def is_tty_available() -> bool: + return False + + +@dataclass +class ApplyProgressContext: + """ + Enhanced context object for tracking progress during feast apply operations. + + This class manages multiple positioned progress bars with fixed-width formatting: + 1. Overall progress (position 0) - tracks main phases + 2. Phase progress (position 1) - tracks operations within current phase + + Features: + - Fixed-width alignment for perfect visual consistency + - Color-coded progress bars by phase + - Position coordination to prevent overlap + - TTY detection for CI/CD compatibility + """ + + # Core tracking state + current_phase: str = "" + overall_progress: Optional[tqdm] = None + phase_progress: Optional[tqdm] = None + + # Progress tracking + total_phases: int = 3 + completed_phases: int = 0 + tty_available: bool = True + + # Position allocation + OVERALL_POSITION = 0 + PHASE_POSITION = 1 + + def __post_init__(self): + """Initialize TTY detection after dataclass creation.""" + self.tty_available = _PROGRESS_UTILS_AVAILABLE and is_tty_available() + + def start_overall_progress(self): + """Initialize the overall progress bar for apply phases.""" + if not self.tty_available: + return + + if self.overall_progress is None: + try: + self.overall_progress = create_positioned_tqdm( + position=self.OVERALL_POSITION, + description="Applying changes", + total=self.total_phases, + color=get_color_for_phase("overall"), + ) + except (TypeError, AttributeError): + # Handle case where fallback functions don't work as expected + self.overall_progress = None + + def start_phase(self, phase_name: str, operations_count: int = 0): + """ + Start tracking a new phase. + + Args: + phase_name: Human-readable name of the phase + operations_count: Number of operations in this phase (0 for unknown) + """ + if not self.tty_available: + return + + self.current_phase = phase_name + + # Close previous phase progress if exists + if self.phase_progress: + try: + self.phase_progress.close() + except (AttributeError, TypeError): + pass + self.phase_progress = None + + # Create new phase progress bar if operations are known + if operations_count > 0: + try: + self.phase_progress = create_positioned_tqdm( + position=self.PHASE_POSITION, + description=phase_name, + total=operations_count, + color=get_color_for_phase(phase_name.lower()), + ) + except (TypeError, AttributeError): + # Handle case where fallback functions don't work as expected + self.phase_progress = None + + def update_phase_progress(self, description: Optional[str] = None): + """ + Update progress within the current phase. + + Args: + description: Optional description of current operation + """ + if not self.tty_available or not self.phase_progress: + return + + try: + if description: + # Update postfix with current operation + self.phase_progress.set_postfix_str(description) + + self.phase_progress.update(1) + except (AttributeError, TypeError): + # Handle case where phase_progress is None or fallback function returned None + pass + + def complete_phase(self): + """Mark current phase as complete and advance overall progress.""" + if not self.tty_available: + return + + # Close phase progress + if self.phase_progress: + try: + self.phase_progress.close() + except (AttributeError, TypeError): + pass + self.phase_progress = None + + # Update overall progress + if self.overall_progress: + try: + self.overall_progress.update(1) + # Update postfix with phase completion + phase_text = f"({self.completed_phases + 1}/{self.total_phases} phases)" + self.overall_progress.set_postfix_str(phase_text) + except (AttributeError, TypeError): + pass + + self.completed_phases += 1 + + def cleanup(self): + """Clean up all progress bars. Should be called in finally blocks.""" + if self.phase_progress: + try: + self.phase_progress.close() + except (AttributeError, TypeError): + pass + self.phase_progress = None + if self.overall_progress: + try: + self.overall_progress.close() + except (AttributeError, TypeError): + pass + self.overall_progress = None diff --git a/sdk/python/feast/diff/infra_diff.py b/sdk/python/feast/diff/infra_diff.py index b761470905a..2fa9e8e882e 100644 --- a/sdk/python/feast/diff/infra_diff.py +++ b/sdk/python/feast/diff/infra_diff.py @@ -1,5 +1,8 @@ from dataclasses import dataclass -from typing import Generic, Iterable, List, Optional, Tuple, TypeVar +from typing import TYPE_CHECKING, Generic, Iterable, List, Optional, Tuple, TypeVar + +if TYPE_CHECKING: + from feast.diff.apply_progress import ApplyProgressContext from feast.diff.property_diff import PropertyDiff, TransitionType from feast.infra.infra_object import ( @@ -33,8 +36,9 @@ class InfraDiff: def __init__(self): self.infra_object_diffs = [] - def update(self): + def update(self, progress_ctx: Optional["ApplyProgressContext"] = None): """Apply the infrastructure changes specified in this object.""" + for infra_object_diff in self.infra_object_diffs: if infra_object_diff.transition_type in [ TransitionType.DELETE, @@ -43,6 +47,10 @@ def update(self): infra_object = InfraObject.from_proto( infra_object_diff.current_infra_object ) + if progress_ctx: + progress_ctx.update_phase_progress( + f"Tearing down {infra_object_diff.name}" + ) infra_object.teardown() elif infra_object_diff.transition_type in [ TransitionType.CREATE, @@ -51,6 +59,10 @@ def update(self): infra_object = InfraObject.from_proto( infra_object_diff.new_infra_object ) + if progress_ctx: + progress_ctx.update_phase_progress( + f"Creating/updating {infra_object_diff.name}" + ) infra_object.update() def to_string(self): diff --git a/sdk/python/feast/feature_store.py b/sdk/python/feast/feature_store.py index 0eff5034683..fc4517281d3 100644 --- a/sdk/python/feast/feature_store.py +++ b/sdk/python/feast/feature_store.py @@ -18,6 +18,7 @@ from datetime import datetime, timedelta from pathlib import Path from typing import ( + TYPE_CHECKING, Any, Callable, Dict, @@ -31,6 +32,9 @@ cast, ) +if TYPE_CHECKING: + from feast.diff.apply_progress import ApplyProgressContext + import pandas as pd import pyarrow as pa from colorama import Fore, Style @@ -726,6 +730,7 @@ def plan( self, desired_repo_contents: RepoContents, skip_feature_view_validation: bool = False, + progress_ctx: Optional["ApplyProgressContext"] = None, ) -> Tuple[RegistryDiff, InfraDiff, Infra]: """Dry-run registering objects to metadata store. @@ -793,6 +798,9 @@ def plan( self._registry, self.project, desired_repo_contents ) + if progress_ctx: + progress_ctx.update_phase_progress("Computing infrastructure diff") + # Compute the desired difference between the current infra, as stored in the registry, # and the desired infra. self._registry.refresh(project=self.project) @@ -807,7 +815,11 @@ def plan( return registry_diff, infra_diff, new_infra def _apply_diffs( - self, registry_diff: RegistryDiff, infra_diff: InfraDiff, new_infra: Infra + self, + registry_diff: RegistryDiff, + infra_diff: InfraDiff, + new_infra: Infra, + progress_ctx: Optional["ApplyProgressContext"] = None, ): """Applies the given diffs to the metadata store and infrastructure. @@ -815,13 +827,37 @@ def _apply_diffs( registry_diff: The diff between the current registry and the desired registry. infra_diff: The diff between the current infra and the desired infra. new_infra: The desired infra. + progress_ctx: Optional progress context for tracking apply progress. """ - infra_diff.update() - apply_diff_to_registry( - self._registry, registry_diff, self.project, commit=False - ) + try: + # Infrastructure phase + if progress_ctx: + infra_ops_count = len(infra_diff.infra_object_diffs) + progress_ctx.start_phase("Updating infrastructure", infra_ops_count) + + infra_diff.update(progress_ctx=progress_ctx) + + if progress_ctx: + progress_ctx.complete_phase() + progress_ctx.start_phase("Updating registry", 2) + + # Registry phase + apply_diff_to_registry( + self._registry, registry_diff, self.project, commit=False + ) + + if progress_ctx: + progress_ctx.update_phase_progress("Committing registry changes") + + self._registry.update_infra(new_infra, self.project, commit=True) - self._registry.update_infra(new_infra, self.project, commit=True) + if progress_ctx: + progress_ctx.update_phase_progress("Registry update complete") + progress_ctx.complete_phase() + finally: + # Always cleanup progress bars + if progress_ctx: + progress_ctx.cleanup() def apply( self, diff --git a/sdk/python/feast/repo_operations.py b/sdk/python/feast/repo_operations.py index b0809bdd399..fa5d297752a 100644 --- a/sdk/python/feast/repo_operations.py +++ b/sdk/python/feast/repo_operations.py @@ -358,22 +358,40 @@ def apply_total_with_repo_instance( views_to_delete, ) = extract_objects_for_apply_delete(project_name, registry, repo) - if store._should_use_plan(): - registry_diff, infra_diff, new_infra = store.plan( - repo, skip_feature_view_validation=skip_feature_view_validation - ) - click.echo(registry_diff.to_string()) + try: + if store._should_use_plan(): + # Planning phase - compute diffs first without progress bars + registry_diff, infra_diff, new_infra = store.plan( + repo, + skip_feature_view_validation=skip_feature_view_validation, + ) + click.echo(registry_diff.to_string()) - store._apply_diffs(registry_diff, infra_diff, new_infra) - click.echo(infra_diff.to_string()) - else: - store.apply( - all_to_apply, - objects_to_delete=all_to_delete, - partial=False, - skip_feature_view_validation=skip_feature_view_validation, - ) - log_infra_changes(views_to_keep, views_to_delete) + # Only show progress bars if there are actual infrastructure changes + progress_ctx = None + if len(infra_diff.infra_object_diffs) > 0: + from feast.diff.apply_progress import ApplyProgressContext + + progress_ctx = ApplyProgressContext() + progress_ctx.start_overall_progress() + + # Apply phase + store._apply_diffs( + registry_diff, infra_diff, new_infra, progress_ctx=progress_ctx + ) + click.echo(infra_diff.to_string()) + else: + # Legacy apply path - no progress bars for legacy path + store.apply( + all_to_apply, + objects_to_delete=all_to_delete, + partial=False, + skip_feature_view_validation=skip_feature_view_validation, + ) + log_infra_changes(views_to_keep, views_to_delete) + finally: + # Cleanup is handled in the new _apply_diffs method + pass def log_infra_changes( From 6214d05963906f7c28b1ea7ea57af831879024b7 Mon Sep 17 00:00:00 2001 From: feast-ci-bot Date: Fri, 16 Jan 2026 21:11:16 +0000 Subject: [PATCH 37/37] chore(release): release 0.59.0 # [0.59.0](https://github.com/feast-dev/feast/compare/v0.58.0...v0.59.0) (2026-01-16) ### Bug Fixes * Add get_table_query_string_with_alias() for PostgreSQL subquery aliasing ([#5811](https://github.com/feast-dev/feast/issues/5811)) ([11122ce](https://github.com/feast-dev/feast/commit/11122cef17be1180a9c390234d06efdf8b51c938)) * Add hybrid online store to ONLINE_STORE_CLASS_FOR_TYPE mapping ([#5810](https://github.com/feast-dev/feast/issues/5810)) ([678589b](https://github.com/feast-dev/feast/commit/678589b65e0ed24a8369c9f34e94ee4acd7fb14e)) * Add possibility to overwrite send_receive_timeout for clickhouse offline store ([#5792](https://github.com/feast-dev/feast/issues/5792)) ([59dbb33](https://github.com/feast-dev/feast/commit/59dbb33ec809cd3020cb3c5ac2dcbf2fc920fd4d)) * Denial by default to all resources when no permissions set ([#5663](https://github.com/feast-dev/feast/issues/5663)) ([1524f1c](https://github.com/feast-dev/feast/commit/1524f1ca14bed2f274617035b5eb34f427617b0b)) * Make operator include full OIDC secret in repo config ([#5676](https://github.com/feast-dev/feast/issues/5676)) ([#5809](https://github.com/feast-dev/feast/issues/5809)) ([a536bc2](https://github.com/feast-dev/feast/commit/a536bc24ec9dbcbc76912a209266c0e0da85a4af)) * Populate Postgres `registry.path` during `feast init` ([#5785](https://github.com/feast-dev/feast/issues/5785)) ([f293ae8](https://github.com/feast-dev/feast/commit/f293ae8d9f2d858c2b97fa5502cb113e926302d4)) * **redis:** Preserve millisecond timestamp precision for Redis online store ([#5807](https://github.com/feast-dev/feast/issues/5807)) ([9e3f213](https://github.com/feast-dev/feast/commit/9e3f213c7130f75fb732045f9b8c20e863fb753b)) * Search API to return all matching tags in matched_tags field ([#5843](https://github.com/feast-dev/feast/issues/5843)) ([de37f66](https://github.com/feast-dev/feast/commit/de37f6677ad3b6ca7862734e50593eaad7aaef57)) * Spark Materialization Engine Cannot Infer Schema ([#5806](https://github.com/feast-dev/feast/issues/5806)) ([58d0325](https://github.com/feast-dev/feast/commit/58d0325477626cb5637edd824505bf57a95a422a)), closes [#5594](https://github.com/feast-dev/feast/issues/5594) [#5594](https://github.com/feast-dev/feast/issues/5594) * Support arro3 table schema with newer deltalake packages ([#5799](https://github.com/feast-dev/feast/issues/5799)) ([103c5e9](https://github.com/feast-dev/feast/commit/103c5e9477a81671a6f405fde5145611afa67995)) * Timestamp formatting and lakehouse-type connector for trino_offline_store. ([#5846](https://github.com/feast-dev/feast/issues/5846)) ([c2ea7e9](https://github.com/feast-dev/feast/commit/c2ea7e92ad85df0f71ec2aec588aa2bb032d7c03)) * Update model_validator to use instance method signature (Pydantic v2.12 deprecation) ([#5825](https://github.com/feast-dev/feast/issues/5825)) ([3c10b6e](https://github.com/feast-dev/feast/commit/3c10b6eb693ba3e930020346f3edf6a70d30f5a1)) ### Features * Add dbt integration for importing models as FeatureViews ([#5827](https://github.com/feast-dev/feast/issues/5827)) ([b997361](https://github.com/feast-dev/feast/commit/b997361bae8d9542319c24ba72eeaf5c638ac52e)), closes [#3335](https://github.com/feast-dev/feast/issues/3335) [#3335](https://github.com/feast-dev/feast/issues/3335) [#3335](https://github.com/feast-dev/feast/issues/3335) * Add GCS registry store in Go feature server ([#5818](https://github.com/feast-dev/feast/issues/5818)) ([1dc2be5](https://github.com/feast-dev/feast/commit/1dc2be5177ee333220cfcd9e9a9f20bdfa2b3eca)) * Add progress bar to CLI from feast apply ([#5867](https://github.com/feast-dev/feast/issues/5867)) ([ab3562b](https://github.com/feast-dev/feast/commit/ab3562bee87df06b7437c9a7eada4482220fbfc7)) * Add RBAC blog post to website ([#5861](https://github.com/feast-dev/feast/issues/5861)) ([b1844a3](https://github.com/feast-dev/feast/commit/b1844a3d8aca0f6283f23f6ac1c05d79b214f40b)) * Add skip_feature_view_validation parameter to FeatureStore.apply() and plan() ([#5859](https://github.com/feast-dev/feast/issues/5859)) ([5482a0e](https://github.com/feast-dev/feast/commit/5482a0efee22f2d058db26c80e5ac7933863b7e1)) * Added batching to feature server /push to offline store ([#5683](https://github.com/feast-dev/feast/issues/5683)) ([#5729](https://github.com/feast-dev/feast/issues/5729)) ([ce35ce6](https://github.com/feast-dev/feast/commit/ce35ce6751a32373492b64de338771218a6dc4b1)) * Enable static artifacts for feature server that can be used in Feature Transformations ([#5787](https://github.com/feast-dev/feast/issues/5787)) ([edefc3f](https://github.com/feast-dev/feast/commit/edefc3f0afdb46d73070e230eef19c0941f0b581)) * Improve lambda materialization engine ([#5829](https://github.com/feast-dev/feast/issues/5829)) ([f6116f9](https://github.com/feast-dev/feast/commit/f6116f9b86d3185c85e1799d55bf0769800580c1)) * Offline Store historical features retrieval based on datetime range in Ray ([#5738](https://github.com/feast-dev/feast/issues/5738)) ([e484c12](https://github.com/feast-dev/feast/commit/e484c12a65d4c23ebc0163d4b27843797e092204)) * Read, Save docs and chat fixes ([#5865](https://github.com/feast-dev/feast/issues/5865)) ([2081b55](https://github.com/feast-dev/feast/commit/2081b55de32b830b4fb64e93b6d88cdfaeff2378)) * Resolve pyarrow >21 installation with ibis-framework ([#5847](https://github.com/feast-dev/feast/issues/5847)) ([8b9bb50](https://github.com/feast-dev/feast/commit/8b9bb500b4df26fade82c7bcd436b36e05e5a298)) * Support staging for spark materialization ([#5671](https://github.com/feast-dev/feast/issues/5671)) ([#5797](https://github.com/feast-dev/feast/issues/5797)) ([5b787af](https://github.com/feast-dev/feast/commit/5b787afce9263a5cc37bf69119d505d3ffd5f13c)) --- CHANGELOG.md | 34 ++++++++++++++++++ infra/charts/feast-feature-server/Chart.yaml | 2 +- infra/charts/feast-feature-server/README.md | 4 +-- infra/charts/feast-feature-server/values.yaml | 2 +- infra/charts/feast/Chart.yaml | 2 +- infra/charts/feast/README.md | 6 ++-- .../feast/charts/feature-server/Chart.yaml | 4 +-- .../feast/charts/feature-server/README.md | 4 +-- .../feast/charts/feature-server/values.yaml | 2 +- .../charts/transformation-service/Chart.yaml | 4 +-- .../charts/transformation-service/README.md | 4 +-- .../charts/transformation-service/values.yaml | 2 +- infra/charts/feast/requirements.yaml | 4 +-- infra/feast-operator/Makefile | 2 +- .../api/feastversion/version.go | 2 +- .../feast-operator.clusterserviceversion.yaml | 12 +++---- .../manifests/feast.dev_featurestores.yaml | 4 +++ .../config/component_metadata.yaml | 2 +- .../default/related_image_fs_patch.yaml | 2 +- .../config/manager/kustomization.yaml | 2 +- .../config/overlays/odh/params.env | 4 +-- .../config/overlays/rhoai/params.env | 4 +-- infra/feast-operator/dist/install.yaml | 4 +-- infra/feast-operator/dist/operator-e2e-tests | Bin 15349298 -> 15349210 bytes java/pom.xml | 2 +- .../multicloud/requirements.txt | 2 +- ui/package.json | 2 +- 27 files changed, 78 insertions(+), 40 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3607aec6195..b5f69784319 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,39 @@ # Changelog +# [0.59.0](https://github.com/feast-dev/feast/compare/v0.58.0...v0.59.0) (2026-01-16) + + +### Bug Fixes + +* Add get_table_query_string_with_alias() for PostgreSQL subquery aliasing ([#5811](https://github.com/feast-dev/feast/issues/5811)) ([11122ce](https://github.com/feast-dev/feast/commit/11122cef17be1180a9c390234d06efdf8b51c938)) +* Add hybrid online store to ONLINE_STORE_CLASS_FOR_TYPE mapping ([#5810](https://github.com/feast-dev/feast/issues/5810)) ([678589b](https://github.com/feast-dev/feast/commit/678589b65e0ed24a8369c9f34e94ee4acd7fb14e)) +* Add possibility to overwrite send_receive_timeout for clickhouse offline store ([#5792](https://github.com/feast-dev/feast/issues/5792)) ([59dbb33](https://github.com/feast-dev/feast/commit/59dbb33ec809cd3020cb3c5ac2dcbf2fc920fd4d)) +* Denial by default to all resources when no permissions set ([#5663](https://github.com/feast-dev/feast/issues/5663)) ([1524f1c](https://github.com/feast-dev/feast/commit/1524f1ca14bed2f274617035b5eb34f427617b0b)) +* Make operator include full OIDC secret in repo config ([#5676](https://github.com/feast-dev/feast/issues/5676)) ([#5809](https://github.com/feast-dev/feast/issues/5809)) ([a536bc2](https://github.com/feast-dev/feast/commit/a536bc24ec9dbcbc76912a209266c0e0da85a4af)) +* Populate Postgres `registry.path` during `feast init` ([#5785](https://github.com/feast-dev/feast/issues/5785)) ([f293ae8](https://github.com/feast-dev/feast/commit/f293ae8d9f2d858c2b97fa5502cb113e926302d4)) +* **redis:** Preserve millisecond timestamp precision for Redis online store ([#5807](https://github.com/feast-dev/feast/issues/5807)) ([9e3f213](https://github.com/feast-dev/feast/commit/9e3f213c7130f75fb732045f9b8c20e863fb753b)) +* Search API to return all matching tags in matched_tags field ([#5843](https://github.com/feast-dev/feast/issues/5843)) ([de37f66](https://github.com/feast-dev/feast/commit/de37f6677ad3b6ca7862734e50593eaad7aaef57)) +* Spark Materialization Engine Cannot Infer Schema ([#5806](https://github.com/feast-dev/feast/issues/5806)) ([58d0325](https://github.com/feast-dev/feast/commit/58d0325477626cb5637edd824505bf57a95a422a)), closes [#5594](https://github.com/feast-dev/feast/issues/5594) [#5594](https://github.com/feast-dev/feast/issues/5594) +* Support arro3 table schema with newer deltalake packages ([#5799](https://github.com/feast-dev/feast/issues/5799)) ([103c5e9](https://github.com/feast-dev/feast/commit/103c5e9477a81671a6f405fde5145611afa67995)) +* Timestamp formatting and lakehouse-type connector for trino_offline_store. ([#5846](https://github.com/feast-dev/feast/issues/5846)) ([c2ea7e9](https://github.com/feast-dev/feast/commit/c2ea7e92ad85df0f71ec2aec588aa2bb032d7c03)) +* Update model_validator to use instance method signature (Pydantic v2.12 deprecation) ([#5825](https://github.com/feast-dev/feast/issues/5825)) ([3c10b6e](https://github.com/feast-dev/feast/commit/3c10b6eb693ba3e930020346f3edf6a70d30f5a1)) + + +### Features + +* Add dbt integration for importing models as FeatureViews ([#5827](https://github.com/feast-dev/feast/issues/5827)) ([b997361](https://github.com/feast-dev/feast/commit/b997361bae8d9542319c24ba72eeaf5c638ac52e)), closes [#3335](https://github.com/feast-dev/feast/issues/3335) [#3335](https://github.com/feast-dev/feast/issues/3335) [#3335](https://github.com/feast-dev/feast/issues/3335) +* Add GCS registry store in Go feature server ([#5818](https://github.com/feast-dev/feast/issues/5818)) ([1dc2be5](https://github.com/feast-dev/feast/commit/1dc2be5177ee333220cfcd9e9a9f20bdfa2b3eca)) +* Add progress bar to CLI from feast apply ([#5867](https://github.com/feast-dev/feast/issues/5867)) ([ab3562b](https://github.com/feast-dev/feast/commit/ab3562bee87df06b7437c9a7eada4482220fbfc7)) +* Add RBAC blog post to website ([#5861](https://github.com/feast-dev/feast/issues/5861)) ([b1844a3](https://github.com/feast-dev/feast/commit/b1844a3d8aca0f6283f23f6ac1c05d79b214f40b)) +* Add skip_feature_view_validation parameter to FeatureStore.apply() and plan() ([#5859](https://github.com/feast-dev/feast/issues/5859)) ([5482a0e](https://github.com/feast-dev/feast/commit/5482a0efee22f2d058db26c80e5ac7933863b7e1)) +* Added batching to feature server /push to offline store ([#5683](https://github.com/feast-dev/feast/issues/5683)) ([#5729](https://github.com/feast-dev/feast/issues/5729)) ([ce35ce6](https://github.com/feast-dev/feast/commit/ce35ce6751a32373492b64de338771218a6dc4b1)) +* Enable static artifacts for feature server that can be used in Feature Transformations ([#5787](https://github.com/feast-dev/feast/issues/5787)) ([edefc3f](https://github.com/feast-dev/feast/commit/edefc3f0afdb46d73070e230eef19c0941f0b581)) +* Improve lambda materialization engine ([#5829](https://github.com/feast-dev/feast/issues/5829)) ([f6116f9](https://github.com/feast-dev/feast/commit/f6116f9b86d3185c85e1799d55bf0769800580c1)) +* Offline Store historical features retrieval based on datetime range in Ray ([#5738](https://github.com/feast-dev/feast/issues/5738)) ([e484c12](https://github.com/feast-dev/feast/commit/e484c12a65d4c23ebc0163d4b27843797e092204)) +* Read, Save docs and chat fixes ([#5865](https://github.com/feast-dev/feast/issues/5865)) ([2081b55](https://github.com/feast-dev/feast/commit/2081b55de32b830b4fb64e93b6d88cdfaeff2378)) +* Resolve pyarrow >21 installation with ibis-framework ([#5847](https://github.com/feast-dev/feast/issues/5847)) ([8b9bb50](https://github.com/feast-dev/feast/commit/8b9bb500b4df26fade82c7bcd436b36e05e5a298)) +* Support staging for spark materialization ([#5671](https://github.com/feast-dev/feast/issues/5671)) ([#5797](https://github.com/feast-dev/feast/issues/5797)) ([5b787af](https://github.com/feast-dev/feast/commit/5b787afce9263a5cc37bf69119d505d3ffd5f13c)) + # [0.58.0](https://github.com/feast-dev/feast/compare/v0.57.0...v0.58.0) (2025-12-16) diff --git a/infra/charts/feast-feature-server/Chart.yaml b/infra/charts/feast-feature-server/Chart.yaml index b0d73fd0b81..1d25ccdde02 100644 --- a/infra/charts/feast-feature-server/Chart.yaml +++ b/infra/charts/feast-feature-server/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: feast-feature-server description: Feast Feature Server in Go or Python type: application -version: 0.58.0 +version: 0.59.0 keywords: - machine learning - big data diff --git a/infra/charts/feast-feature-server/README.md b/infra/charts/feast-feature-server/README.md index 10b8bb63537..fd13aed957b 100644 --- a/infra/charts/feast-feature-server/README.md +++ b/infra/charts/feast-feature-server/README.md @@ -1,6 +1,6 @@ # Feast Python / Go Feature Server Helm Charts -Current chart version is `0.58.0` +Current chart version is `0.59.0` ## Installation @@ -42,7 +42,7 @@ See [here](https://github.com/feast-dev/feast/tree/master/examples/python-helm-d | fullnameOverride | string | `""` | | | image.pullPolicy | string | `"IfNotPresent"` | | | image.repository | string | `"quay.io/feastdev/feature-server"` | Docker image for Feature Server repository | -| image.tag | string | `"0.58.0"` | The Docker image tag (can be overwritten if custom feature server deps are needed for on demand transforms) | +| image.tag | string | `"0.59.0"` | The Docker image tag (can be overwritten if custom feature server deps are needed for on demand transforms) | | imagePullSecrets | list | `[]` | | | livenessProbe.initialDelaySeconds | int | `30` | | | livenessProbe.periodSeconds | int | `30` | | diff --git a/infra/charts/feast-feature-server/values.yaml b/infra/charts/feast-feature-server/values.yaml index ec80023eead..a09da7c5bc7 100644 --- a/infra/charts/feast-feature-server/values.yaml +++ b/infra/charts/feast-feature-server/values.yaml @@ -9,7 +9,7 @@ image: repository: quay.io/feastdev/feature-server pullPolicy: IfNotPresent # image.tag -- The Docker image tag (can be overwritten if custom feature server deps are needed for on demand transforms) - tag: 0.58.0 + tag: 0.59.0 logLevel: "WARNING" # Set log level DEBUG, INFO, WARNING, ERROR, and CRITICAL (case-insensitive) diff --git a/infra/charts/feast/Chart.yaml b/infra/charts/feast/Chart.yaml index b28ac762e40..82f1a464ecb 100644 --- a/infra/charts/feast/Chart.yaml +++ b/infra/charts/feast/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v1 description: Feature store for machine learning name: feast -version: 0.58.0 +version: 0.59.0 keywords: - machine learning - big data diff --git a/infra/charts/feast/README.md b/infra/charts/feast/README.md index d2260f15f2e..4ee5b2f2775 100644 --- a/infra/charts/feast/README.md +++ b/infra/charts/feast/README.md @@ -8,7 +8,7 @@ This repo contains Helm charts for Feast Java components that are being installe ## Chart: Feast -Feature store for machine learning Current chart version is `0.58.0` +Feature store for machine learning Current chart version is `0.59.0` ## Installation @@ -65,8 +65,8 @@ See [here](https://github.com/feast-dev/feast/tree/master/examples/java-demo) fo | Repository | Name | Version | |------------|------|---------| | https://charts.helm.sh/stable | redis | 10.5.6 | -| https://feast-helm-charts.storage.googleapis.com | feature-server(feature-server) | 0.58.0 | -| https://feast-helm-charts.storage.googleapis.com | transformation-service(transformation-service) | 0.58.0 | +| https://feast-helm-charts.storage.googleapis.com | feature-server(feature-server) | 0.59.0 | +| https://feast-helm-charts.storage.googleapis.com | transformation-service(transformation-service) | 0.59.0 | ## Values diff --git a/infra/charts/feast/charts/feature-server/Chart.yaml b/infra/charts/feast/charts/feature-server/Chart.yaml index db6162d96bc..e390cb1591d 100644 --- a/infra/charts/feast/charts/feature-server/Chart.yaml +++ b/infra/charts/feast/charts/feature-server/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v1 description: "Feast Feature Server: Online feature serving service for Feast" name: feature-server -version: 0.58.0 -appVersion: v0.58.0 +version: 0.59.0 +appVersion: v0.59.0 keywords: - machine learning - big data diff --git a/infra/charts/feast/charts/feature-server/README.md b/infra/charts/feast/charts/feature-server/README.md index 3e8283ac30f..16c6765ce24 100644 --- a/infra/charts/feast/charts/feature-server/README.md +++ b/infra/charts/feast/charts/feature-server/README.md @@ -1,6 +1,6 @@ # feature-server -![Version: 0.58.0](https://img.shields.io/badge/Version-0.58.0-informational?style=flat-square) ![AppVersion: v0.58.0](https://img.shields.io/badge/AppVersion-v0.58.0-informational?style=flat-square) +![Version: 0.59.0](https://img.shields.io/badge/Version-0.59.0-informational?style=flat-square) ![AppVersion: v0.59.0](https://img.shields.io/badge/AppVersion-v0.59.0-informational?style=flat-square) Feast Feature Server: Online feature serving service for Feast @@ -17,7 +17,7 @@ Feast Feature Server: Online feature serving service for Feast | envOverrides | object | `{}` | Extra environment variables to set | | image.pullPolicy | string | `"IfNotPresent"` | Image pull policy | | image.repository | string | `"quay.io/feastdev/feature-server-java"` | Docker image for Feature Server repository | -| image.tag | string | `"0.58.0"` | Image tag | +| image.tag | string | `"0.59.0"` | Image tag | | ingress.grpc.annotations | object | `{}` | Extra annotations for the ingress | | ingress.grpc.auth.enabled | bool | `false` | Flag to enable auth | | ingress.grpc.class | string | `"nginx"` | Which ingress controller to use | diff --git a/infra/charts/feast/charts/feature-server/values.yaml b/infra/charts/feast/charts/feature-server/values.yaml index 2aa4d791598..a7f8f33320c 100644 --- a/infra/charts/feast/charts/feature-server/values.yaml +++ b/infra/charts/feast/charts/feature-server/values.yaml @@ -5,7 +5,7 @@ image: # image.repository -- Docker image for Feature Server repository repository: quay.io/feastdev/feature-server-java # image.tag -- Image tag - tag: 0.58.0 + tag: 0.59.0 # image.pullPolicy -- Image pull policy pullPolicy: IfNotPresent diff --git a/infra/charts/feast/charts/transformation-service/Chart.yaml b/infra/charts/feast/charts/transformation-service/Chart.yaml index 9a343b38526..12468f2fee0 100644 --- a/infra/charts/feast/charts/transformation-service/Chart.yaml +++ b/infra/charts/feast/charts/transformation-service/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v1 description: "Transformation service: to compute on-demand features" name: transformation-service -version: 0.58.0 -appVersion: v0.58.0 +version: 0.59.0 +appVersion: v0.59.0 keywords: - machine learning - big data diff --git a/infra/charts/feast/charts/transformation-service/README.md b/infra/charts/feast/charts/transformation-service/README.md index 14de7d7b796..a629f614f90 100644 --- a/infra/charts/feast/charts/transformation-service/README.md +++ b/infra/charts/feast/charts/transformation-service/README.md @@ -1,6 +1,6 @@ # transformation-service -![Version: 0.58.0](https://img.shields.io/badge/Version-0.58.0-informational?style=flat-square) ![AppVersion: v0.58.0](https://img.shields.io/badge/AppVersion-v0.58.0-informational?style=flat-square) +![Version: 0.59.0](https://img.shields.io/badge/Version-0.59.0-informational?style=flat-square) ![AppVersion: v0.59.0](https://img.shields.io/badge/AppVersion-v0.59.0-informational?style=flat-square) Transformation service: to compute on-demand features @@ -13,7 +13,7 @@ Transformation service: to compute on-demand features | envOverrides | object | `{}` | Extra environment variables to set | | image.pullPolicy | string | `"IfNotPresent"` | Image pull policy | | image.repository | string | `"quay.io/feastdev/feature-transformation-server"` | Docker image for Transformation Server repository | -| image.tag | string | `"0.58.0"` | Image tag | +| image.tag | string | `"0.59.0"` | Image tag | | nodeSelector | object | `{}` | Node labels for pod assignment | | podLabels | object | `{}` | Labels to be added to Feast Serving pods | | replicaCount | int | `1` | Number of pods that will be created | diff --git a/infra/charts/feast/charts/transformation-service/values.yaml b/infra/charts/feast/charts/transformation-service/values.yaml index 8372fb268f1..f3a85287504 100644 --- a/infra/charts/feast/charts/transformation-service/values.yaml +++ b/infra/charts/feast/charts/transformation-service/values.yaml @@ -5,7 +5,7 @@ image: # image.repository -- Docker image for Transformation Server repository repository: quay.io/feastdev/feature-transformation-server # image.tag -- Image tag - tag: 0.58.0 + tag: 0.59.0 # image.pullPolicy -- Image pull policy pullPolicy: IfNotPresent diff --git a/infra/charts/feast/requirements.yaml b/infra/charts/feast/requirements.yaml index 2c2163f10ae..379882a1a92 100644 --- a/infra/charts/feast/requirements.yaml +++ b/infra/charts/feast/requirements.yaml @@ -1,12 +1,12 @@ dependencies: - name: feature-server alias: feature-server - version: 0.58.0 + version: 0.59.0 condition: feature-server.enabled repository: https://feast-helm-charts.storage.googleapis.com - name: transformation-service alias: transformation-service - version: 0.58.0 + version: 0.59.0 condition: transformation-service.enabled repository: https://feast-helm-charts.storage.googleapis.com - name: redis diff --git a/infra/feast-operator/Makefile b/infra/feast-operator/Makefile index a750fad7d38..529d1265834 100644 --- a/infra/feast-operator/Makefile +++ b/infra/feast-operator/Makefile @@ -3,7 +3,7 @@ # To re-generate a bundle for another specific version without changing the standard setup, you can: # - use the VERSION as arg of the bundle target (e.g make bundle VERSION=0.0.2) # - use environment variables to overwrite this value (e.g export VERSION=0.0.2) -VERSION ?= 0.58.0 +VERSION ?= 0.59.0 # CHANNELS define the bundle channels used in the bundle. # Add a new line here if you would like to change its default config. (E.g CHANNELS = "candidate,fast,stable") diff --git a/infra/feast-operator/api/feastversion/version.go b/infra/feast-operator/api/feastversion/version.go index f9fde825f06..b2599293f6d 100644 --- a/infra/feast-operator/api/feastversion/version.go +++ b/infra/feast-operator/api/feastversion/version.go @@ -17,4 +17,4 @@ limitations under the License. package feastversion // Feast release version. Keep on line #20, this is critical to release CI -const FeastVersion = "0.58.0" +const FeastVersion = "0.59.0" diff --git a/infra/feast-operator/bundle/manifests/feast-operator.clusterserviceversion.yaml b/infra/feast-operator/bundle/manifests/feast-operator.clusterserviceversion.yaml index fdf5733c83a..b6114b73b6b 100644 --- a/infra/feast-operator/bundle/manifests/feast-operator.clusterserviceversion.yaml +++ b/infra/feast-operator/bundle/manifests/feast-operator.clusterserviceversion.yaml @@ -50,10 +50,10 @@ metadata: } ] capabilities: Basic Install - createdAt: "2025-12-16T17:51:22Z" + createdAt: "2026-01-16T21:11:14Z" operators.operatorframework.io/builder: operator-sdk-v1.38.0 operators.operatorframework.io/project_layout: go.kubebuilder.io/v4 - name: feast-operator.v0.58.0 + name: feast-operator.v0.59.0 namespace: placeholder spec: apiservicedefinitions: {} @@ -230,10 +230,10 @@ spec: - /manager env: - name: RELATED_IMAGE_FEATURE_SERVER - value: quay.io/feastdev/feature-server:0.58.0 + value: quay.io/feastdev/feature-server:0.59.0 - name: RELATED_IMAGE_CRON_JOB value: quay.io/openshift/origin-cli:4.17 - image: quay.io/feastdev/feast-operator:0.58.0 + image: quay.io/feastdev/feast-operator:0.59.0 livenessProbe: httpGet: path: /healthz @@ -323,8 +323,8 @@ spec: name: Feast Community url: https://lf-aidata.atlassian.net/wiki/spaces/FEAST/ relatedImages: - - image: quay.io/feastdev/feature-server:0.58.0 + - image: quay.io/feastdev/feature-server:0.59.0 name: feature-server - image: quay.io/openshift/origin-cli:4.17 name: cron-job - version: 0.58.0 + version: 0.59.0 diff --git a/infra/feast-operator/bundle/manifests/feast.dev_featurestores.yaml b/infra/feast-operator/bundle/manifests/feast.dev_featurestores.yaml index f85530b85b2..82018b0b5fd 100644 --- a/infra/feast-operator/bundle/manifests/feast.dev_featurestores.yaml +++ b/infra/feast-operator/bundle/manifests/feast.dev_featurestores.yaml @@ -1322,6 +1322,7 @@ spec: - qdrant - couchbase.online - milvus + - hybrid type: string required: - secretRef @@ -5358,6 +5359,7 @@ spec: - qdrant - couchbase.online - milvus + - hybrid type: string required: - secretRef @@ -9521,6 +9523,7 @@ spec: - qdrant - couchbase.online - milvus + - hybrid type: string required: - secretRef @@ -13557,6 +13560,7 @@ spec: - qdrant - couchbase.online - milvus + - hybrid type: string required: - secretRef diff --git a/infra/feast-operator/config/component_metadata.yaml b/infra/feast-operator/config/component_metadata.yaml index a92c7fa318f..b28c9321c03 100644 --- a/infra/feast-operator/config/component_metadata.yaml +++ b/infra/feast-operator/config/component_metadata.yaml @@ -1,5 +1,5 @@ # This file is required to configure Feast release information for ODH/RHOAI Operator releases: - name: Feast - version: 0.58.0 + version: 0.59.0 repoUrl: https://github.com/feast-dev/feast diff --git a/infra/feast-operator/config/default/related_image_fs_patch.yaml b/infra/feast-operator/config/default/related_image_fs_patch.yaml index ecb0b6a73aa..7f1312dbc65 100644 --- a/infra/feast-operator/config/default/related_image_fs_patch.yaml +++ b/infra/feast-operator/config/default/related_image_fs_patch.yaml @@ -2,7 +2,7 @@ path: "/spec/template/spec/containers/0/env/0" value: name: RELATED_IMAGE_FEATURE_SERVER - value: quay.io/feastdev/feature-server:0.58.0 + value: quay.io/feastdev/feature-server:0.59.0 - op: replace path: "/spec/template/spec/containers/0/env/1" value: diff --git a/infra/feast-operator/config/manager/kustomization.yaml b/infra/feast-operator/config/manager/kustomization.yaml index 7670c255f67..efdd8ddde97 100644 --- a/infra/feast-operator/config/manager/kustomization.yaml +++ b/infra/feast-operator/config/manager/kustomization.yaml @@ -5,4 +5,4 @@ kind: Kustomization images: - name: controller newName: quay.io/feastdev/feast-operator - newTag: 0.58.0 + newTag: 0.59.0 diff --git a/infra/feast-operator/config/overlays/odh/params.env b/infra/feast-operator/config/overlays/odh/params.env index 85c5c52168e..79a1db49726 100644 --- a/infra/feast-operator/config/overlays/odh/params.env +++ b/infra/feast-operator/config/overlays/odh/params.env @@ -1,3 +1,3 @@ -RELATED_IMAGE_FEAST_OPERATOR=quay.io/feastdev/feast-operator:0.58.0 -RELATED_IMAGE_FEATURE_SERVER=quay.io/feastdev/feature-server:0.58.0 +RELATED_IMAGE_FEAST_OPERATOR=quay.io/feastdev/feast-operator:0.59.0 +RELATED_IMAGE_FEATURE_SERVER=quay.io/feastdev/feature-server:0.59.0 RELATED_IMAGE_CRON_JOB=quay.io/openshift/origin-cli:4.17 diff --git a/infra/feast-operator/config/overlays/rhoai/params.env b/infra/feast-operator/config/overlays/rhoai/params.env index 585e02cc99f..fbf5a1accdb 100644 --- a/infra/feast-operator/config/overlays/rhoai/params.env +++ b/infra/feast-operator/config/overlays/rhoai/params.env @@ -1,3 +1,3 @@ -RELATED_IMAGE_FEAST_OPERATOR=quay.io/feastdev/feast-operator:0.58.0 -RELATED_IMAGE_FEATURE_SERVER=quay.io/feastdev/feature-server:0.58.0 +RELATED_IMAGE_FEAST_OPERATOR=quay.io/feastdev/feast-operator:0.59.0 +RELATED_IMAGE_FEATURE_SERVER=quay.io/feastdev/feature-server:0.59.0 RELATED_IMAGE_CRON_JOB=registry.redhat.io/openshift4/ose-cli@sha256:bc35a9fc663baf0d6493cc57e89e77a240a36c43cf38fb78d8e61d3b87cf5cc5 \ No newline at end of file diff --git a/infra/feast-operator/dist/install.yaml b/infra/feast-operator/dist/install.yaml index 0bfc0da14d8..6f7b472a3bf 100644 --- a/infra/feast-operator/dist/install.yaml +++ b/infra/feast-operator/dist/install.yaml @@ -16772,10 +16772,10 @@ spec: - /manager env: - name: RELATED_IMAGE_FEATURE_SERVER - value: quay.io/feastdev/feature-server:0.58.0 + value: quay.io/feastdev/feature-server:0.59.0 - name: RELATED_IMAGE_CRON_JOB value: quay.io/openshift/origin-cli:4.17 - image: quay.io/feastdev/feast-operator:0.58.0 + image: quay.io/feastdev/feast-operator:0.59.0 livenessProbe: httpGet: path: /healthz diff --git a/infra/feast-operator/dist/operator-e2e-tests b/infra/feast-operator/dist/operator-e2e-tests index 2e725f24970e681b35a4ab9b91c1734518e60e2c..760b6dab8f71a81a38c7f37cfaa39713ec40a142 100755 GIT binary patch delta 2479592 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