diff --git a/3rdparty/Penguin-workspace/setup.py b/3rdparty/Penguin-workspace/setup.py index 9f7851b4e6..8588a080dc 100644 --- a/3rdparty/Penguin-workspace/setup.py +++ b/3rdparty/Penguin-workspace/setup.py @@ -11,6 +11,7 @@ # 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 sys import tomllib from pathlib import Path @@ -21,12 +22,34 @@ # If the submodule is present, expose `penguin` package from the checkout src_dir = Path("Penguin") -package_name = "penguin" + + +CACHED_DEPENDENCIES = [ + "openai<=1.97.1", + "tqdm", + "pydantic", + "pydantic_core", + "devtools", + "fastapi", + "uvicorn", + "uvloop", + "hydra-core", + "omegaconf", + "gradio", + "mlflow", + "tdigest>=0.5.2.2", + "aiohttp", + "yappi", +] if src_dir.exists(): pyproject_toml_path = src_dir / "pyproject.toml" with pyproject_toml_path.open("rb") as f: pyproject_toml = tomllib.load(f) + if not pyproject_toml_path.exists(): + raise FileNotFoundError( + f"[Penguin][setup] {pyproject_toml_path} not found; skipping dependency consistency check." + ) packages = pyproject_toml["tool"]["setuptools"]["packages"]["find"]["include"] @@ -34,6 +57,46 @@ final_packages.append(package) final_package_dir[package] = src_dir / package + actual_dependencies = pyproject_toml["project"]["dependencies"] + + ######################################## + # Compare cached dependencies with the submodule's pyproject + ######################################## + + missing_in_cached = set(actual_dependencies) - set(CACHED_DEPENDENCIES) + extra_in_cached = set(CACHED_DEPENDENCIES) - set(actual_dependencies) + + if missing_in_cached or extra_in_cached: + print( + "[Penguin][setup] Dependency mismatch between Penguin-workspace/Penguin/pyproject.toml vs Penguin-workspace/setup.py::CACHED_DEPENDENCIES.", + file=sys.stderr, + ) + if missing_in_cached: + print( + " - Present in Penguin-workspace/Penguin/pyproject.toml but missing from CACHED_DEPENDENCIES:", + file=sys.stderr, + ) + for dep in sorted(missing_in_cached): + print(f" * {dep}", file=sys.stderr) + if extra_in_cached: + print( + " - Present in CACHED_DEPENDENCIES but not in Penguin-workspace/Penguin/pyproject.toml:", + file=sys.stderr, + ) + for dep in sorted(extra_in_cached): + print(f" * {dep}", file=sys.stderr) + print( + " Please update CACHED_DEPENDENCIES or the submodule pyproject to keep them in sync.", + file=sys.stderr, + ) + sys.exit(1) + else: + print( + "[Penguin][setup] Dependency sets are consistent with the submodule pyproject.", + file=sys.stderr, + ) + + setuptools.setup( name="penguin", version="0.0.0", @@ -43,5 +106,5 @@ packages=final_packages, package_dir=final_package_dir, py_modules=["is_penguin_installed"], - install_requires=[], + install_requires=CACHED_DEPENDENCIES, ) diff --git a/nemo_rl/distributed/ray_actor_environment_registry.py b/nemo_rl/distributed/ray_actor_environment_registry.py index 7f912648c6..6a3529d4a1 100644 --- a/nemo_rl/distributed/ray_actor_environment_registry.py +++ b/nemo_rl/distributed/ray_actor_environment_registry.py @@ -42,6 +42,7 @@ # ReplayBuffer needs vLLM environment to handle trajectory data from VllmGenerationWorker "nemo_rl.algorithms.async_utils.ReplayBuffer": PY_EXECUTABLES.VLLM, "nemo_rl.environments.tools.retriever.RAGEnvironment": PY_EXECUTABLES.SYSTEM, + "nemo_rl.environments.penguin.Penguin": PY_EXECUTABLES.PENGUIN, } diff --git a/nemo_rl/distributed/virtual_cluster.py b/nemo_rl/distributed/virtual_cluster.py index 43a98b32b1..2ae0b2f68d 100644 --- a/nemo_rl/distributed/virtual_cluster.py +++ b/nemo_rl/distributed/virtual_cluster.py @@ -51,6 +51,9 @@ class PY_EXECUTABLES: # Use NeMo-RL direct dependencies and nemo-automodel. AUTOMODEL = "uv run --locked --extra automodel" + # Use Penguin dependencies + PENGUIN = "uv run --locked --extra penguin" + # Megatron-core (and nemo dependencies) # We always run with --reinstall to avoid issues where someone runs "uv run ... --extra mcore ..." # but the submodules are not downloaded yet. This results in errors where it appears Megatron/Nemo diff --git a/nemo_rl/environments/penguin.py b/nemo_rl/environments/penguin.py new file mode 100644 index 0000000000..43eff06c4c --- /dev/null +++ b/nemo_rl/environments/penguin.py @@ -0,0 +1,202 @@ +# Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved. +# +# 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. +from pathlib import Path +from typing import Any, Dict, List, TypedDict + +import ray +import torch + +from nemo_rl.data.interfaces import DatumSpec +from nemo_rl.distributed.virtual_cluster import _get_free_port_local, _get_node_ip_local +from nemo_rl.environments.interfaces import EnvironmentInterface + + +class PenguinConfig(TypedDict): + model_name: str + base_urls: List[str] + initial_global_config_dict: Dict[str, Any] + + +@ray.remote(max_restarts=-1, max_task_retries=-1) # pragma: no cover +class Penguin(EnvironmentInterface): + """This environment class isn't really used for training. It's really meant as an integration wrapper around Penguin that hooks into the existing NeMo RL resource management via ray. So there is still one source of truth for resource management in NeMo RL.""" + + def __init__(self, cfg: PenguinConfig): + self.cfg = cfg + + self.node_ip = _get_node_ip_local() + self.head_server_port = _get_free_port_local() + + from omegaconf import DictConfig + from penguin.cli import GlobalConfigDictParserConfig, RunHelper + from penguin.rollout_collection import RolloutCollectionHelper + from penguin.server_utils import HEAD_SERVER_KEY_NAME, BaseServerConfig + + RELATIVE_PATH = "nemo_rl/environments/penguin.py" + assert __file__.endswith(RELATIVE_PATH) + + initial_global_config_dict = self.cfg["initial_global_config_dict"] + # Policy information + initial_global_config_dict["policy_model_name"] = self.cfg["model_name"] + initial_global_config_dict["policy_api_key"] = ( + "dummy_key" # No key necessary for training. + ) + initial_global_config_dict["policy_base_url"] = self.cfg["base_urls"] + + initial_global_config_dict["global_aiohttp_connector_limit_per_host"] = ( + initial_global_config_dict.get("global_aiohttp_connector_limit_per_host") + or 1024 + ) + initial_global_config_dict["global_aiohttp_connector_limit"] = ( + initial_global_config_dict["global_aiohttp_connector_limit_per_host"] + * len(self.cfg["base_urls"]) + ) + + print( + f"""Set `global_aiohttp_connector_limit_per_host` to a flat {initial_global_config_dict["global_aiohttp_connector_limit_per_host"]}. +Since there are {len(self.cfg["base_urls"])} data-parallel vLLM worker instances, the `global_aiohttp_connector_limit` has been set to {len(self.cfg["base_urls"])} * {initial_global_config_dict["global_aiohttp_connector_limit_per_host"]} = {initial_global_config_dict["global_aiohttp_connector_limit"]}.""" + ) + + # Head server + initial_global_config_dict[HEAD_SERVER_KEY_NAME] = { + "host": "0.0.0.0", + "port": self.head_server_port, + } + + self.rh = RunHelper() + self.rh.start( + global_config_dict_parser_config=GlobalConfigDictParserConfig( + dotenv_path=Path(__file__.removesuffix(RELATIVE_PATH)).absolute() + / "penguin_env.yaml", + initial_global_config_dict=DictConfig(initial_global_config_dict), + skip_load_from_cli=True, + ) + ) + + # Setup for rollout collection + self.head_server_config = BaseServerConfig( + host=self.node_ip, + port=self.head_server_port, + ) + self.rch = RolloutCollectionHelper() + + def health_check(self) -> bool: + return True + + async def run_rollouts(self, penguin_examples: list[dict]) -> list[dict]: + penguin_results = await self.rch.run_examples( + examples=penguin_examples, head_server_config=self.head_server_config + ) + + nemo_rl_results = list( + map(self._postprocess_penguin_to_nemo_rl_result, penguin_results) + ) + return nemo_rl_results + + def _postprocess_penguin_to_nemo_rl_result(self, penguin_result: dict) -> dict: + nemo_rl_message_log = [] + seen_token_ids: List[int] = [] + for output_item_dict in penguin_result["response"]["output"]: + # Nemo RL really only has two types of messages: assistant and not assistant since that is all that it is concerned with (i.e. to train or not to train) + # Here we map all the trainable messages to assistant and all the non-trainable messages to user. + # Eventually we can maybe be smarter about this, but this is functional for now. + + # Note that Penguin will only return token ids on "assistant" messages and not other message types. + if "generation_token_ids" not in output_item_dict: + continue + + assert ( + seen_token_ids + == output_item_dict["prompt_token_ids"][: len(seen_token_ids)] + ), f"""Non-contiguous messages found! This may be a tokenization issue where certain tokens are combined when messages are concatenated, or it may be due to part of the chat history being truncated (like if super long history is truncated or if reasoning is stripped out). +Seen token IDs: {seen_token_ids} +Output prompt token IDs: {output_item_dict["prompt_token_ids"]} +""" + + nemo_rl_message_log.append( + { + "role": "user", + "content": "", + "token_ids": output_item_dict["prompt_token_ids"][ + len(seen_token_ids) : + ], + } + ) + nemo_rl_message_log.append( + { + "role": "assistant", + "content": "", + "token_ids": output_item_dict["generation_token_ids"], + "generation_logprobs": output_item_dict["generation_log_probs"], + } + ) + + seen_token_ids.extend(nemo_rl_message_log[-2]["token_ids"]) + seen_token_ids.extend(nemo_rl_message_log[-1]["token_ids"]) + + return { + "message_log": nemo_rl_message_log, + "input_message_log": nemo_rl_message_log[:1], + "full_result": penguin_result, + } + + def shutdown(self) -> None: + self.rh.shutdown() + + def step(self, message_log_batch, metadata): + # This is not used since Penguin will handle the rollouts entirely. + raise NotImplementedError + + def global_post_process_and_metrics(self, batch): + # Similar to the step function, this is not used. + raise NotImplementedError + + +######################################## +# Global config utils +######################################## + + +def setup_penguin_config(config, tokenizer) -> None: + generation_config = config["policy"]["generation"] + + # Enable the http server. Requires both async engine and the expose_http_server flag + generation_config["vllm_cfg"]["async_engine"] = True + generation_config["vllm_cfg"]["expose_http_server"] = True + + # Stop strings or token ids are not supported + generation_config["stop_strings"] = None + generation_config["stop_token_ids"] = None + + +######################################## +# Data utils +######################################## + + +# We do some light preprocessing here to make our data format compatible with nemo rl format +def penguin_example_to_nemo_rl_datum_spec(penguin_example: dict, idx: int) -> DatumSpec: + return DatumSpec( + message_log=[ + {"role": "user", "content": "", "token_ids": torch.tensor([])} + ], # Fake message + length=0, + extra_env_info=penguin_example, + loss_multiplier=1.0, # Fix to 1.0 to backprop on all examples + idx=idx, + task_name="penguin", + stop_strings=None, + # Extra vars + token_ids=[], # Just need this empty key to be compatible with the current NeMo RL GRPO impl + ) diff --git a/tests/unit/environments/penguin_test_data/test_penguin_sanity.json b/tests/unit/environments/penguin_test_data/test_penguin_sanity.json new file mode 100644 index 0000000000..2508a40609 --- /dev/null +++ b/tests/unit/environments/penguin_test_data/test_penguin_sanity.json @@ -0,0 +1 @@ +{"input": [{"id": 0, "responses_create_params": {"input": [{"role": "system", "content": "# Instructions\nYou are an extraction agent. You will be provided a user query and you need to use the tools provided to you to extract list of synonym values. You will be provided with a bunch of synonyms for each. For each term, please see if it's relevant to the user query and get the values for each synonym as appropriate. You must get and extract the values for every synonym that appears in this list. Please output synonym values in the order they appear in the available synonyms below.\n\n# Available synonyms\nThe term 'Win' has a synonym 'Outperform'.\nThe term 'Empty' has a synonym 'Desolate'.\nThe term 'Open' has a synonym 'Revealed'.\nThe term 'Dry' has a synonym 'Arid'.\nThe term 'Bad' has a synonym 'Wicked'.\nThe term 'Retreat' has a synonym 'Draw back'.\nThe term 'Empty' has a synonym 'Vacant'.\nThe term 'Thick' has a synonym 'Fat'.\nThe term 'Stormy' has a synonym 'Gale-force'.\nThe term 'Rough' has a synonym 'Coarse'.\nThe term 'Day' has a synonym 'Afternoon'.\nThe term 'Quiet' has a synonym 'Hushed'.\nThe term 'Day' has a synonym 'Sunrise'.\nThe term 'Closed' has a synonym 'Covered'.\nThe term 'Early' has a synonym 'Preliminary'.\nThe term 'Night' has a synonym 'Midnight'.\nThe term 'Light' has a synonym 'Clear'.\nThe term 'Wide' has a synonym 'Comprehensive'.\nThe term 'Ugly' has a synonym 'Grotesque'.\nThe term 'Insult' has a synonym 'Belittle'.\nThe term 'Far' has a synonym 'Remote'.\nThe term 'Up' has a synonym 'Higher'.\nThe term 'Stormy' has a synonym 'Tempestuous'.\nThe term 'Dead' has a synonym 'Deceased'.\nThe term 'Dim' has a synonym 'Faint'.\nThe term 'Thick' has a synonym 'Heavy'.\nThe term 'Failure' has a synonym 'Loss'.\nThe term 'Sad' has a synonym 'Depressed'.\nThe term 'Thin' has a synonym 'Slender'.\nThe term 'Dry' has a synonym 'Dehydrated'.\nThe term 'Dirty' has a synonym 'Muddy'.\nThe term 'Fast' has a synonym 'Brisk'.\nThe term 'Defeat' has a synonym 'Failure'.\nThe term 'Sharp' has a synonym 'Tapered'.\nThe term 'Sharp' has a synonym 'Piercing'.\nThe term 'Rough' has a synonym 'Grainy'.\nThe term 'Cowardly' has a synonym 'Craven'.\nThe term 'False' has a synonym 'Incorrect'.\nThe term 'Sad' has a synonym 'Unhappy'.\nThe term 'Brave' has a synonym 'Stouthearted'.\nThe term 'Cowardly' has a synonym 'Yellow'.\nThe term 'Thin' has a synonym 'Skinny'.\nThe term 'Outside' has a synonym 'External'.\nThe term 'Wet' has a synonym 'Soaked'.\nThe term 'Sad' has a synonym 'Heartbroken'.\nThe term 'Success' has a synonym 'Victory'.\nThe term 'Cowardly' has a synonym 'Spineless'.\nThe term 'Tight' has a synonym 'Compact'.\nThe term 'Strong' has a synonym 'Muscular'.\nThe term 'Difficult' has a synonym 'Demanding'.\nThe term 'Old' has a synonym 'Historic'.\nThe term 'Rich' has a synonym 'Opulent'.\nThe term 'Far' has a synonym 'Away'.\nThe term 'Easy' has a synonym 'Effortless'.\nThe term 'Short' has a synonym 'Little'.\nThe term 'Win' has a synonym 'Achieve'.\nThe term 'Compliment' has a synonym 'Extol'.\nThe term 'Advance' has a synonym 'Rise'.\nThe term 'Soft' has a synonym 'Tender'.\nThe term 'Narrow' has a synonym 'Restrictive'.\nThe term 'Dark' has a synonym 'Dusky'.\nThe term 'High' has a synonym 'Prominent'.\nThe term 'Calm' has a synonym 'Undisturbed'.\nThe term 'Closed' has a synonym 'Locked'.\nThe term 'Compulsory' has a synonym 'Statutory'.\nThe term 'Alive' has a synonym 'Awake'.\nThe term 'Weak' has a synonym 'Powerless'.\nThe term 'Difficult' has a synonym 'Grueling'.\nThe term 'Reject' has a synonym 'Rebuff'.\nThe term 'Slow' has a synonym 'Leisurely'.\nThe term 'Clean' has a synonym 'Unsoiled'.\nThe term 'Compulsory' has a synonym 'Obligatory'.\nThe term 'Short' has a synonym 'Diminutive'.\nThe term 'Night' has a synonym 'Nightfall'.\nThe term 'Near' has a synonym 'Proximate'.\nThe term 'Ugly' has a synonym 'Homely'.\nThe term 'Wrong' has a synonym 'Amiss'.\nThe term 'Bad' has a synonym 'Terrible'.\nThe term 'Visible' has a synonym 'Noticeable'.\nThe term 'Near' has a synonym 'In proximity'.\nThe term 'Cold' has a synonym 'Frosty'.\nThe term 'Wrong' has a synonym 'False'.\nThe term 'Soft' has a synonym 'Velvety'.\nThe term 'Day' has a synonym 'Bright'.\nThe term 'Young' has a synonym 'Budding'.\nThe term 'Smelly' has a synonym 'Rancid'.\nThe term 'Low' has a synonym 'Diminished'.\nThe term 'Small' has a synonym 'Microscopic'.\nThe term 'Calm' has a synonym 'Unruffled'.\nThe term 'Empty' has a synonym 'Void'.\nThe term 'Open' has a synonym 'Available'.\nThe term 'Far' has a synonym 'Removed'.\nThe term 'Young' has a synonym 'New'.\nThe term 'Ascend' has a synonym 'Mount'.\nThe term 'Ugly' has a synonym 'Hideous'.\nThe term 'Weak' has a synonym 'Frail'.\nThe term 'Wet' has a synonym 'Damp'.\nThe term 'Tall' has a synonym 'Sky-high'.\nThe term 'Down' has a synonym 'Depressed'.\nThe term 'Happy' has a synonym 'Cheerful'.\nThe term 'Alive' has a synonym 'Alert'.\nThe term 'Easy' has a synonym 'Light'.\nThe term 'Accept' has a synonym 'Receive'.\nThe term 'Advance' has a synonym 'Headway'.\nThe term 'Dim' has a synonym 'Dull'.\nThe term 'Tall' has a synonym 'Towering'.\nThe term 'Fragrant' has a synonym 'Balmy'.\nThe term 'Happy' has a synonym 'Pleased'.\nThe term 'Down' has a synonym 'Drop'.\nThe term 'Hard' has a synonym 'Rigid'.\nThe term 'Loud' has a synonym 'Noisy'.\nThe term 'Light' has a synonym 'Shiny'.\nThe term 'Early' has a synonym 'Prior'.\nThe term 'Hot' has a synonym 'Blazing'.\nThe term 'Light (weight)' has a synonym 'Slim'.\nThe term 'Accept' has a synonym 'Acknowledge'.\nThe term 'Quiet' has a synonym 'Peaceful'.\nThe term 'Outside' has a synonym 'Outdoors'.\nThe term 'Easy' has a synonym 'Painless'.\nThe term 'Success' has a synonym 'Conquest'.\nThe term 'Hard' has a synonym 'Solid'.\nThe term 'Failure' has a synonym 'Setback'.\nThe term 'Low' has a synonym 'Short'.\nThe term 'Late' has a synonym 'Overdue'.\nThe term 'Wet' has a synonym 'Waterlogged'.\nThe term 'Strong' has a synonym 'Forceful'.\nThe term 'Hot' has a synonym 'Warm'.\nThe term 'Dark' has a synonym 'Tenebrous'.\nThe term 'Light (weight)' has a synonym 'Flimsy'.\nThe term 'Smelly' has a synonym 'Pungent'.\nThe term 'Soft' has a synonym 'Mild'.\nThe term 'Early' has a synonym 'First'.\nThe term 'Dirty' has a synonym 'Squalid'.\nThe term 'Dead' has a synonym 'Lifeless'.\nThe term 'Bitter' has a synonym 'Astringent'.\nThe term 'False' has a synonym 'Fallacious'.\nThe term 'Defeat' has a synonym 'Collapse'.\nThe term 'Loud' has a synonym 'Blaring'.\nThe term 'Dull' has a synonym 'Dim'.\nThe term 'Stormy' has a synonym 'Wild'.\nThe term 'Narrow' has a synonym 'Compressed'.\nThe term 'Rich' has a synonym 'Flush'.\nThe term 'Invisible' has a synonym 'Obscured'.\nThe term 'Slow' has a synonym 'Dragging'.\nThe term 'Young' has a synonym 'Juvenile'.\nThe term 'Bitter' has a synonym 'Caustic'.\nThe term 'Old' has a synonym 'Elderly'.\nThe term 'Slow' has a synonym 'Sluggish'.\nThe term 'Ascend' has a synonym 'Go up'.\nThe term 'Down' has a synonym 'Sink'.\nThe term 'Descend' has a synonym 'Subside'.\nThe term 'Small' has a synonym 'Little'.\nThe term 'High' has a synonym 'Soaring'.\nThe term 'Up' has a synonym 'Climb'.\nThe term 'Calm' has a synonym 'Relaxed'.\nThe term 'Rich' has a synonym 'Well-off'.\nThe term 'Light (weight)' has a synonym 'Breezy'.\nThe term 'Wrong' has a synonym 'Inaccurate'.\nThe term 'Dirty' has a synonym 'Soiled'.\nThe term 'Late' has a synonym 'Unpunctual'.\nThe term 'Quiet' has a synonym 'Low'.\nThe term 'Descend' has a synonym 'Dismount'.\nThe term 'Compliment' has a synonym 'Praise'.\nThe term 'Open' has a synonym 'Unsealed'.\nThe term 'Dull' has a synonym 'Blunt'.\nThe term 'Small' has a synonym 'Minor'.\nThe term 'Retreat' has a synonym 'Escape'.\nThe term 'Fast' has a synonym 'Hasty'.\nThe term 'Invisible' has a synonym 'Secret'.\nThe term 'Success' has a synonym 'Achievement'.\nThe term 'Retreat' has a synonym 'Fall back'.\nThe term 'Cold' has a synonym 'Icy'.\nThe term 'Hard' has a synonym 'Stiff'.\nThe term 'Insult' has a synonym 'Deride'.\nThe term 'Night' has a synonym 'Nocturne'.\nThe term 'Tight' has a synonym 'Firm'.\nThe term 'Accept' has a synonym 'Consent'.\nThe term 'Victory' has a synonym 'Supremacy'.\nThe term 'Old' has a synonym 'Vintage'.\nThe term 'Dry' has a synonym 'Desiccated'.\nThe term 'Narrow' has a synonym 'Pinched'.\nThe term 'Clean' has a synonym 'Sterile'.\nThe term 'Visible' has a synonym 'Perceptible'.\nThe term 'Victory' has a synonym 'Win'.\nThe term 'Advance' has a synonym 'Step up'.\nThe term 'Sharp' has a synonym 'Edged'.\nThe term 'Wide' has a synonym 'Outspread'.\nThe term 'Low' has a synonym 'Flat'.\nThe term 'Closed' has a synonym 'Fastened'.\nThe term 'False' has a synonym 'Untrue'.\nThe term 'Brave' has a synonym 'Bold'.\nThe term 'Reject' has a synonym 'Refuse'.\nThe term 'Fragrant' has a synonym 'Perfumed'.\n\n# Example\nFor example, if the user query is \"I'm very warm\", the term you should focus on is \"hot\". According to the synonyms above, the term \"hot\" has the synonyms \"Blazing\" and \"Warm\", in that order. You need to get synonym values for \"Blazing\" and \"Warm\", let's say those are 5 and 6 respectively, and extract the result of those synonym values i.e. [5, 6] with 5 (blazing) first then 6 (warm) since that is the order they appear in the list of synonyms above."}, {"role": "user", "content": "What factors contribute to a region experiencing extremely high temperatures, and how do these factors interact? Please call the get_synonym_value tool on Blazing and Warm, and then extract_synonym_values on the results."}], "tools": [{"type": "function", "name": "get_synonym_value", "description": "Get the synonym value for a synonym.\nThis operation returns a value that conforms to the following JSON Schema: {\"properties\": {\"synonym_value\": {\"type\": \"integer\", \"title\": \"Synonym Value\", \"description\": \"The value for this synonym.\"}}, \"type\": \"object\", \"required\": [\"synonym_value\"]}\n", "parameters": {"properties": {"synonym": {"type": "string", "title": "Synonym", "description": "The synonym to get the value for."}}, "type": "object", "required": ["synonym"], "additionalProperties": false}, "strict": true}, {"type": "function", "name": "extract_synonym_values", "description": "Extract the synonym values you retrieved for the term that is relevant to the user query.\nThis operation returns a value that conforms to the following JSON Schema: {\"properties\": {\"success\": {\"type\": \"boolean\", \"title\": \"Success\", \"description\": \"Success.\"}}, \"type\": \"object\", \"required\": [\"success\"]}\n", "parameters": {"properties": {"synonym_values": {"items": {"type": "integer"}, "type": "array", "title": "Synonym Values", "description": "The synonym values corresponding to the term for the user query."}}, "type": "object", "required": ["synonym_values"], "additionalProperties": false}, "strict": true}], "parallel_tool_calls": false}, "expected_synonyms": ["Blazing", "Warm"], "expected_synonym_values": [711, 407], "minefield_label": "Hot", "minefield_label_value": 299, "agent_ref": {"type": "responses_api_agents", "name": "multineedle_simple_agent"}}, {"id": 1, "responses_create_params": {"input": [{"role": "system", "content": "# Instructions\nYou are an extraction agent. You will be provided a user query and you need to use the tools provided to you to extract list of synonym values. You will be provided with a bunch of synonyms for each. For each term, please see if it's relevant to the user query and get the values for each synonym as appropriate. You must get and extract the values for every synonym that appears in this list. Please output synonym values in the order they appear in the available synonyms below.\n\n# Available synonyms\nThe term 'Win' has a synonym 'Outperform'.\nThe term 'Empty' has a synonym 'Desolate'.\nThe term 'Open' has a synonym 'Revealed'.\nThe term 'Dry' has a synonym 'Arid'.\nThe term 'Bad' has a synonym 'Wicked'.\nThe term 'Retreat' has a synonym 'Draw back'.\nThe term 'Empty' has a synonym 'Vacant'.\nThe term 'Thick' has a synonym 'Fat'.\nThe term 'Stormy' has a synonym 'Gale-force'.\nThe term 'Rough' has a synonym 'Coarse'.\nThe term 'Day' has a synonym 'Afternoon'.\nThe term 'Quiet' has a synonym 'Hushed'.\nThe term 'Day' has a synonym 'Sunrise'.\nThe term 'Closed' has a synonym 'Covered'.\nThe term 'Early' has a synonym 'Preliminary'.\nThe term 'Night' has a synonym 'Midnight'.\nThe term 'Light' has a synonym 'Clear'.\nThe term 'Wide' has a synonym 'Comprehensive'.\nThe term 'Ugly' has a synonym 'Grotesque'.\nThe term 'Insult' has a synonym 'Belittle'.\nThe term 'Far' has a synonym 'Remote'.\nThe term 'Up' has a synonym 'Higher'.\nThe term 'Stormy' has a synonym 'Tempestuous'.\nThe term 'Dead' has a synonym 'Deceased'.\nThe term 'Dim' has a synonym 'Faint'.\nThe term 'Thick' has a synonym 'Heavy'.\nThe term 'Failure' has a synonym 'Loss'.\nThe term 'Sad' has a synonym 'Depressed'.\nThe term 'Thin' has a synonym 'Slender'.\nThe term 'Dry' has a synonym 'Dehydrated'.\nThe term 'Dirty' has a synonym 'Muddy'.\nThe term 'Fast' has a synonym 'Brisk'.\nThe term 'Defeat' has a synonym 'Failure'.\nThe term 'Sharp' has a synonym 'Tapered'.\nThe term 'Sharp' has a synonym 'Piercing'.\nThe term 'Rough' has a synonym 'Grainy'.\nThe term 'Cowardly' has a synonym 'Craven'.\nThe term 'False' has a synonym 'Incorrect'.\nThe term 'Sad' has a synonym 'Unhappy'.\nThe term 'Brave' has a synonym 'Stouthearted'.\nThe term 'Cowardly' has a synonym 'Yellow'.\nThe term 'Thin' has a synonym 'Skinny'.\nThe term 'Outside' has a synonym 'External'.\nThe term 'Wet' has a synonym 'Soaked'.\nThe term 'Sad' has a synonym 'Heartbroken'.\nThe term 'Success' has a synonym 'Victory'.\nThe term 'Cowardly' has a synonym 'Spineless'.\nThe term 'Tight' has a synonym 'Compact'.\nThe term 'Strong' has a synonym 'Muscular'.\nThe term 'Difficult' has a synonym 'Demanding'.\nThe term 'Old' has a synonym 'Historic'.\nThe term 'Rich' has a synonym 'Opulent'.\nThe term 'Far' has a synonym 'Away'.\nThe term 'Easy' has a synonym 'Effortless'.\nThe term 'Short' has a synonym 'Little'.\nThe term 'Win' has a synonym 'Achieve'.\nThe term 'Compliment' has a synonym 'Extol'.\nThe term 'Advance' has a synonym 'Rise'.\nThe term 'Soft' has a synonym 'Tender'.\nThe term 'Narrow' has a synonym 'Restrictive'.\nThe term 'Dark' has a synonym 'Dusky'.\nThe term 'High' has a synonym 'Prominent'.\nThe term 'Calm' has a synonym 'Undisturbed'.\nThe term 'Closed' has a synonym 'Locked'.\nThe term 'Compulsory' has a synonym 'Statutory'.\nThe term 'Alive' has a synonym 'Awake'.\nThe term 'Weak' has a synonym 'Powerless'.\nThe term 'Difficult' has a synonym 'Grueling'.\nThe term 'Reject' has a synonym 'Rebuff'.\nThe term 'Slow' has a synonym 'Leisurely'.\nThe term 'Clean' has a synonym 'Unsoiled'.\nThe term 'Compulsory' has a synonym 'Obligatory'.\nThe term 'Short' has a synonym 'Diminutive'.\nThe term 'Night' has a synonym 'Nightfall'.\nThe term 'Near' has a synonym 'Proximate'.\nThe term 'Ugly' has a synonym 'Homely'.\nThe term 'Wrong' has a synonym 'Amiss'.\nThe term 'Bad' has a synonym 'Terrible'.\nThe term 'Visible' has a synonym 'Noticeable'.\nThe term 'Near' has a synonym 'In proximity'.\nThe term 'Cold' has a synonym 'Frosty'.\nThe term 'Wrong' has a synonym 'False'.\nThe term 'Soft' has a synonym 'Velvety'.\nThe term 'Day' has a synonym 'Bright'.\nThe term 'Young' has a synonym 'Budding'.\nThe term 'Smelly' has a synonym 'Rancid'.\nThe term 'Low' has a synonym 'Diminished'.\nThe term 'Small' has a synonym 'Microscopic'.\nThe term 'Calm' has a synonym 'Unruffled'.\nThe term 'Empty' has a synonym 'Void'.\nThe term 'Open' has a synonym 'Available'.\nThe term 'Far' has a synonym 'Removed'.\nThe term 'Young' has a synonym 'New'.\nThe term 'Ascend' has a synonym 'Mount'.\nThe term 'Ugly' has a synonym 'Hideous'.\nThe term 'Weak' has a synonym 'Frail'.\nThe term 'Wet' has a synonym 'Damp'.\nThe term 'Tall' has a synonym 'Sky-high'.\nThe term 'Down' has a synonym 'Depressed'.\nThe term 'Happy' has a synonym 'Cheerful'.\nThe term 'Alive' has a synonym 'Alert'.\nThe term 'Easy' has a synonym 'Light'.\nThe term 'Accept' has a synonym 'Receive'.\nThe term 'Advance' has a synonym 'Headway'.\nThe term 'Dim' has a synonym 'Dull'.\nThe term 'Tall' has a synonym 'Towering'.\nThe term 'Fragrant' has a synonym 'Balmy'.\nThe term 'Happy' has a synonym 'Pleased'.\nThe term 'Down' has a synonym 'Drop'.\nThe term 'Hard' has a synonym 'Rigid'.\nThe term 'Loud' has a synonym 'Noisy'.\nThe term 'Light' has a synonym 'Shiny'.\nThe term 'Early' has a synonym 'Prior'.\nThe term 'Hot' has a synonym 'Blazing'.\nThe term 'Light (weight)' has a synonym 'Slim'.\nThe term 'Accept' has a synonym 'Acknowledge'.\nThe term 'Quiet' has a synonym 'Peaceful'.\nThe term 'Outside' has a synonym 'Outdoors'.\nThe term 'Easy' has a synonym 'Painless'.\nThe term 'Success' has a synonym 'Conquest'.\nThe term 'Hard' has a synonym 'Solid'.\nThe term 'Failure' has a synonym 'Setback'.\nThe term 'Low' has a synonym 'Short'.\nThe term 'Late' has a synonym 'Overdue'.\nThe term 'Wet' has a synonym 'Waterlogged'.\nThe term 'Strong' has a synonym 'Forceful'.\nThe term 'Hot' has a synonym 'Warm'.\nThe term 'Dark' has a synonym 'Tenebrous'.\nThe term 'Light (weight)' has a synonym 'Flimsy'.\nThe term 'Smelly' has a synonym 'Pungent'.\nThe term 'Soft' has a synonym 'Mild'.\nThe term 'Early' has a synonym 'First'.\nThe term 'Dirty' has a synonym 'Squalid'.\nThe term 'Dead' has a synonym 'Lifeless'.\nThe term 'Bitter' has a synonym 'Astringent'.\nThe term 'False' has a synonym 'Fallacious'.\nThe term 'Defeat' has a synonym 'Collapse'.\nThe term 'Loud' has a synonym 'Blaring'.\nThe term 'Dull' has a synonym 'Dim'.\nThe term 'Stormy' has a synonym 'Wild'.\nThe term 'Narrow' has a synonym 'Compressed'.\nThe term 'Rich' has a synonym 'Flush'.\nThe term 'Invisible' has a synonym 'Obscured'.\nThe term 'Slow' has a synonym 'Dragging'.\nThe term 'Young' has a synonym 'Juvenile'.\nThe term 'Bitter' has a synonym 'Caustic'.\nThe term 'Old' has a synonym 'Elderly'.\nThe term 'Slow' has a synonym 'Sluggish'.\nThe term 'Ascend' has a synonym 'Go up'.\nThe term 'Down' has a synonym 'Sink'.\nThe term 'Descend' has a synonym 'Subside'.\nThe term 'Small' has a synonym 'Little'.\nThe term 'High' has a synonym 'Soaring'.\nThe term 'Up' has a synonym 'Climb'.\nThe term 'Calm' has a synonym 'Relaxed'.\nThe term 'Rich' has a synonym 'Well-off'.\nThe term 'Light (weight)' has a synonym 'Breezy'.\nThe term 'Wrong' has a synonym 'Inaccurate'.\nThe term 'Dirty' has a synonym 'Soiled'.\nThe term 'Late' has a synonym 'Unpunctual'.\nThe term 'Quiet' has a synonym 'Low'.\nThe term 'Descend' has a synonym 'Dismount'.\nThe term 'Compliment' has a synonym 'Praise'.\nThe term 'Open' has a synonym 'Unsealed'.\nThe term 'Dull' has a synonym 'Blunt'.\nThe term 'Small' has a synonym 'Minor'.\nThe term 'Retreat' has a synonym 'Escape'.\nThe term 'Fast' has a synonym 'Hasty'.\nThe term 'Invisible' has a synonym 'Secret'.\nThe term 'Success' has a synonym 'Achievement'.\nThe term 'Retreat' has a synonym 'Fall back'.\nThe term 'Cold' has a synonym 'Icy'.\nThe term 'Hard' has a synonym 'Stiff'.\nThe term 'Insult' has a synonym 'Deride'.\nThe term 'Night' has a synonym 'Nocturne'.\nThe term 'Tight' has a synonym 'Firm'.\nThe term 'Accept' has a synonym 'Consent'.\nThe term 'Victory' has a synonym 'Supremacy'.\nThe term 'Old' has a synonym 'Vintage'.\nThe term 'Dry' has a synonym 'Desiccated'.\nThe term 'Narrow' has a synonym 'Pinched'.\nThe term 'Clean' has a synonym 'Sterile'.\nThe term 'Visible' has a synonym 'Perceptible'.\nThe term 'Victory' has a synonym 'Win'.\nThe term 'Advance' has a synonym 'Step up'.\nThe term 'Sharp' has a synonym 'Edged'.\nThe term 'Wide' has a synonym 'Outspread'.\nThe term 'Low' has a synonym 'Flat'.\nThe term 'Closed' has a synonym 'Fastened'.\nThe term 'False' has a synonym 'Untrue'.\nThe term 'Brave' has a synonym 'Bold'.\nThe term 'Reject' has a synonym 'Refuse'.\nThe term 'Fragrant' has a synonym 'Perfumed'.\n\n# Example\nFor example, if the user query is \"I'm very warm\", the term you should focus on is \"hot\". According to the synonyms above, the term \"hot\" has the synonyms \"Blazing\" and \"Warm\", in that order. You need to get synonym values for \"Blazing\" and \"Warm\", let's say those are 5 and 6 respectively, and extract the result of those synonym values i.e. [5, 6] with 5 (blazing) first then 6 (warm) since that is the order they appear in the list of synonyms above."}, {"role": "user", "content": "How do animals adapt to living in hot climates?"}], "tools": [{"type": "function", "name": "get_synonym_value", "description": "Get the synonym value for a synonym.\nThis operation returns a value that conforms to the following JSON Schema: {\"properties\": {\"synonym_value\": {\"type\": \"integer\", \"title\": \"Synonym Value\", \"description\": \"The value for this synonym.\"}}, \"type\": \"object\", \"required\": [\"synonym_value\"]}\n", "parameters": {"properties": {"synonym": {"type": "string", "title": "Synonym", "description": "The synonym to get the value for."}}, "type": "object", "required": ["synonym"], "additionalProperties": false}, "strict": true}, {"type": "function", "name": "extract_synonym_values", "description": "Extract the synonym values you retrieved for the term that is relevant to the user query.\nThis operation returns a value that conforms to the following JSON Schema: {\"properties\": {\"success\": {\"type\": \"boolean\", \"title\": \"Success\", \"description\": \"Success.\"}}, \"type\": \"object\", \"required\": [\"success\"]}\n", "parameters": {"properties": {"synonym_values": {"items": {"type": "integer"}, "type": "array", "title": "Synonym Values", "description": "The synonym values corresponding to the term for the user query."}}, "type": "object", "required": ["synonym_values"], "additionalProperties": false}, "strict": true}], "parallel_tool_calls": false}, "expected_synonyms": ["Blazing", "Warm"], "expected_synonym_values": [711, 407], "minefield_label": "Hot", "minefield_label_value": 299, "agent_ref": {"type": "responses_api_agents", "name": "multineedle_simple_agent"}}], "expected_output": [{"message_log": [{"role": "user", "content": "", "token_ids": [151644, 8948, 198, 2, 38297, 198, 2610, 525, 458, 32189, 8315, 13, 1446, 686, 387, 3897, 264, 1196, 3239, 323, 498, 1184, 311, 990, 279, 7375, 3897, 311, 498, 311, 8649, 1140, 315, 73350, 2750, 13, 1446, 686, 387, 3897, 448, 264, 15493, 315, 85406, 369, 1817, 13, 1752, 1817, 4647, 11, 4486, 1490, 421, 432, 594, 9760, 311, 279, 1196, 3239, 323, 633, 279, 2750, 369, 1817, 73350, 438, 8311, 13, 1446, 1969, 633, 323, 8649, 279, 2750, 369, 1449, 73350, 429, 7952, 304, 419, 1140, 13, 5209, 2550, 73350, 2750, 304, 279, 1973, 807, 4994, 304, 279, 2500, 85406, 3685, 382, 2, 16136, 85406, 198, 785, 4647, 364, 16970, 6, 702, 264, 73350, 364, 2662, 28488, 23569, 785, 4647, 364, 3522, 6, 702, 264, 73350, 364, 4896, 33066, 23569, 785, 4647, 364, 5002, 6, 702, 264, 73350, 364, 693, 586, 5838, 23569, 785, 4647, 364, 85215, 6, 702, 264, 73350, 364, 32, 1869, 23569, 785, 4647, 364, 17082, 6, 702, 264, 73350, 364, 54, 18504, 23569, 785, 4647, 364, 12020, 1222, 6, 702, 264, 73350, 364, 8137, 1182, 23569, 785, 4647, 364, 3522, 6, 702, 264, 73350, 364, 81789, 517, 23569, 785, 4647, 364, 1001, 865, 6, 702, 264, 73350, 364, 68457, 23569, 785, 4647, 364, 34291, 88, 6, 702, 264, 73350, 364, 38, 1574, 80049, 23569, 785, 4647, 364, 49, 1384, 6, 702, 264, 73350, 364, 7339, 2583, 23569, 785, 4647, 364, 10159, 6, 702, 264, 73350, 364, 6025, 12402, 23569, 785, 4647, 364, 94984, 6, 702, 264, 73350, 364, 39, 51978, 23569, 785, 4647, 364, 10159, 6, 702, 264, 73350, 364, 30092, 31509, 23569, 785, 4647, 364, 26884, 6, 702, 264, 73350, 364, 30896, 291, 23569, 785, 4647, 364, 41198, 6, 702, 264, 73350, 364, 47, 3748, 77873, 23569, 785, 4647, 364, 50437, 6, 702, 264, 73350, 364, 33648, 9287, 23569, 785, 4647, 364, 13911, 6, 702, 264, 73350, 364, 14008, 23569, 785, 4647, 364, 60970, 6, 702, 264, 73350, 364, 1092, 52899, 23569, 785, 4647, 364, 52, 22945, 6, 702, 264, 73350, 364, 76335, 2338, 591, 23569, 785, 4647, 364, 15474, 494, 6, 702, 264, 73350, 364, 21666, 2377, 23569, 785, 4647, 364, 32887, 6, 702, 264, 73350, 364, 24703, 23569, 785, 4647, 364, 2324, 6, 702, 264, 73350, 364, 87445, 23569, 785, 4647, 364, 34291, 88, 6, 702, 264, 73350, 364, 21988, 29123, 9193, 23569, 785, 4647, 364, 28320, 6, 702, 264, 73350, 364, 1912, 94204, 23569, 785, 4647, 364, 10344, 6, 702, 264, 73350, 364, 37, 1641, 23569, 785, 4647, 364, 1001, 865, 6, 702, 264, 73350, 364, 64469, 23569, 785, 4647, 364, 17507, 6, 702, 264, 73350, 364, 39838, 23569, 785, 4647, 364, 59665, 6, 702, 264, 73350, 364, 7839, 14378, 23569, 785, 4647, 364, 93088, 6, 702, 264, 73350, 364, 7442, 1659, 23569, 785, 4647, 364, 85215, 6, 702, 264, 73350, 364, 1912, 25172, 657, 23569, 785, 4647, 364, 36485, 6, 702, 264, 73350, 364, 44, 33917, 23569, 785, 4647, 364, 32174, 6, 702, 264, 73350, 364, 6828, 3187, 23569, 785, 4647, 364, 2620, 32066, 6, 702, 264, 73350, 364, 17507, 23569, 785, 4647, 364, 24056, 6, 702, 264, 73350, 364, 51, 3191, 291, 23569, 785, 4647, 364, 24056, 6, 702, 264, 73350, 364, 47, 1268, 6125, 23569, 785, 4647, 364, 49, 1384, 6, 702, 264, 73350, 364, 6464, 466, 88, 23569, 785, 4647, 364, 34, 81971, 398, 6, 702, 264, 73350, 364, 16001, 5276, 23569, 785, 4647, 364, 4049, 6, 702, 264, 73350, 364, 40468, 23569, 785, 4647, 364, 59665, 6, 702, 264, 73350, 364, 1806, 56521, 23569, 785, 4647, 364, 6828, 523, 6, 702, 264, 73350, 364, 623, 283, 1782, 471, 291, 23569, 785, 4647, 364, 34, 81971, 398, 6, 702, 264, 73350, 364, 47699, 23569, 785, 4647, 364, 93088, 6, 702, 264, 73350, 364, 37186, 3834, 23569, 785, 4647, 364, 41365, 6, 702, 264, 73350, 364, 25913, 23569, 785, 4647, 364, 54, 295, 6, 702, 264, 73350, 364, 4416, 7741, 23569, 785, 4647, 364, 59665, 6, 702, 264, 73350, 364, 45384, 48909, 23569, 785, 4647, 364, 7188, 6, 702, 264, 73350, 364, 36125, 679, 23569, 785, 4647, 364, 34, 81971, 398, 6, 702, 264, 73350, 364, 6406, 482, 1717, 23569, 785, 4647, 364, 51, 491, 6, 702, 264, 73350, 364, 98335, 23569, 785, 4647, 364, 47586, 6, 702, 264, 73350, 364, 61598, 21366, 23569, 785, 4647, 364, 21751, 3866, 6, 702, 264, 73350, 364, 81027, 287, 23569, 785, 4647, 364, 18284, 6, 702, 264, 73350, 364, 48983, 292, 23569, 785, 4647, 364, 27177, 6, 702, 264, 73350, 364, 7125, 28480, 23569, 785, 4647, 364, 32887, 6, 702, 264, 73350, 364, 78284, 23569, 785, 4647, 364, 36730, 6, 702, 264, 73350, 364, 46588, 371, 1717, 23569, 785, 4647, 364, 12472, 6, 702, 264, 73350, 364, 38103, 23569, 785, 4647, 364, 16970, 6, 702, 264, 73350, 364, 71585, 586, 23569, 785, 4647, 364, 1092, 500, 3819, 6, 702, 264, 73350, 364, 6756, 337, 23569, 785, 4647, 364, 95027, 6, 702, 264, 73350, 364, 49, 1064, 23569, 785, 4647, 364, 30531, 6, 702, 264, 73350, 364, 51, 1659, 23569, 785, 4647, 364, 45, 6044, 6, 702, 264, 73350, 364, 50360, 849, 533, 23569, 785, 4647, 364, 25830, 6, 702, 264, 73350, 364, 35, 355, 7891, 23569, 785, 4647, 364, 11976, 6, 702, 264, 73350, 364, 35186, 13847, 23569, 785, 4647, 364, 34, 7673, 6, 702, 264, 73350, 364, 19957, 380, 74225, 23569, 785, 4647, 364, 26884, 6, 702, 264, 73350, 364, 49010, 23569, 785, 4647, 364, 13552, 14295, 679, 6, 702, 264, 73350, 364, 15878, 36145, 23569, 785, 4647, 364, 32637, 6, 702, 264, 73350, 364, 22600, 726, 23569, 785, 4647, 364, 49649, 6, 702, 264, 73350, 364, 14986, 1717, 23569, 785, 4647, 364, 21751, 3866, 6, 702, 264, 73350, 364, 38, 2672, 20058, 23569, 785, 4647, 364, 78413, 6, 702, 264, 73350, 364, 693, 25976, 23569, 785, 4647, 364, 58289, 6, 702, 264, 73350, 364, 2304, 32137, 398, 23569, 785, 4647, 364, 27529, 6, 702, 264, 73350, 364, 1806, 704, 2181, 23569, 785, 4647, 364, 13552, 14295, 679, 6, 702, 264, 73350, 364, 46, 2024, 343, 5269, 23569, 785, 4647, 364, 12472, 6, 702, 264, 73350, 364, 10344, 258, 6704, 23569, 785, 4647, 364, 50437, 6, 702, 264, 73350, 364, 50437, 13464, 23569, 785, 4647, 364, 51962, 6, 702, 264, 73350, 364, 1336, 87, 3426, 23569, 785, 4647, 364, 52, 22945, 6, 702, 264, 73350, 364, 49642, 974, 23569, 785, 4647, 364, 29185, 6, 702, 264, 73350, 364, 32, 1831, 23569, 785, 4647, 364, 17082, 6, 702, 264, 73350, 364, 21209, 12280, 23569, 785, 4647, 364, 5715, 6, 702, 264, 73350, 364, 34193, 480, 23569, 785, 4647, 364, 51962, 6, 702, 264, 73350, 364, 641, 36743, 23569, 785, 4647, 364, 76418, 6, 702, 264, 73350, 364, 37, 41502, 88, 23569, 785, 4647, 364, 29185, 6, 702, 264, 73350, 364, 4049, 23569, 785, 4647, 364, 30531, 6, 702, 264, 73350, 364, 49506, 85, 2611, 23569, 785, 4647, 364, 10159, 6, 702, 264, 73350, 364, 74676, 23569, 785, 4647, 364, 40572, 6, 702, 264, 73350, 364, 33, 8347, 287, 23569, 785, 4647, 364, 10673, 11896, 6, 702, 264, 73350, 364, 49, 1129, 307, 23569, 785, 4647, 364, 24187, 6, 702, 264, 73350, 364, 10344, 24657, 23569, 785, 4647, 364, 25307, 6, 702, 264, 73350, 364, 34609, 57410, 23569, 785, 4647, 364, 34, 7673, 6, 702, 264, 73350, 364, 1806, 81, 42335, 23569, 785, 4647, 364, 3522, 6, 702, 264, 73350, 364, 35882, 23569, 785, 4647, 364, 5002, 6, 702, 264, 73350, 364, 16485, 23569, 785, 4647, 364, 32887, 6, 702, 264, 73350, 364, 42642, 23569, 785, 4647, 364, 40572, 6, 702, 264, 73350, 364, 3564, 23569, 785, 4647, 364, 40103, 408, 6, 702, 264, 73350, 364, 16284, 23569, 785, 4647, 364, 52, 22945, 6, 702, 264, 73350, 364, 21692, 782, 23569, 785, 4647, 364, 49649, 6, 702, 264, 73350, 364, 22560, 604, 23569, 785, 4647, 364, 54, 295, 6, 702, 264, 73350, 364, 35, 1121, 23569, 785, 4647, 364, 51, 541, 6, 702, 264, 73350, 364, 45948, 27561, 23569, 785, 4647, 364, 4454, 6, 702, 264, 73350, 364, 7839, 14378, 23569, 785, 4647, 364, 32847, 6, 702, 264, 73350, 364, 26843, 261, 1262, 23569, 785, 4647, 364, 32637, 6, 702, 264, 73350, 364, 9676, 23569, 785, 4647, 364, 36730, 6, 702, 264, 73350, 364, 13911, 23569, 785, 4647, 364, 16646, 6, 702, 264, 73350, 364, 14742, 23569, 785, 4647, 364, 95027, 6, 702, 264, 73350, 364, 12346, 3117, 23569, 785, 4647, 364, 10344, 6, 702, 264, 73350, 364, 35, 617, 23569, 785, 4647, 364, 51, 541, 6, 702, 264, 73350, 364, 51, 89614, 23569, 785, 4647, 364, 37, 4101, 34434, 6, 702, 264, 73350, 364, 37889, 2408, 23569, 785, 4647, 364, 32847, 6, 702, 264, 73350, 364, 47, 4673, 23569, 785, 4647, 364, 4454, 6, 702, 264, 73350, 364, 19871, 23569, 785, 4647, 364, 26907, 6, 702, 264, 73350, 364, 49, 20926, 23569, 785, 4647, 364, 43, 2950, 6, 702, 264, 73350, 364, 2753, 28013, 23569, 785, 4647, 364, 13911, 6, 702, 264, 73350, 364, 2016, 6441, 23569, 785, 4647, 364, 41198, 6, 702, 264, 73350, 364, 49471, 23569, 785, 4647, 364, 20170, 6, 702, 264, 73350, 364, 4923, 6657, 23569, 785, 4647, 364, 13911, 320, 4765, 21636, 702, 264, 73350, 364, 87208, 23569, 785, 4647, 364, 16646, 6, 702, 264, 73350, 364, 55559, 51186, 23569, 785, 4647, 364, 94984, 6, 702, 264, 73350, 364, 84643, 1262, 23569, 785, 4647, 364, 41365, 6, 702, 264, 73350, 364, 2662, 27304, 23569, 785, 4647, 364, 36730, 6, 702, 264, 73350, 364, 47, 16459, 23569, 785, 4647, 364, 7188, 6, 702, 264, 73350, 364, 1109, 719, 23569, 785, 4647, 364, 26907, 6, 702, 264, 73350, 364, 45941, 23569, 785, 4647, 364, 17507, 6, 702, 264, 73350, 364, 1649, 1419, 23569, 785, 4647, 364, 24187, 6, 702, 264, 73350, 364, 12472, 23569, 785, 4647, 364, 61457, 6, 702, 264, 73350, 364, 1918, 23646, 23569, 785, 4647, 364, 54, 295, 6, 702, 264, 73350, 364, 28253, 24867, 23569, 785, 4647, 364, 47586, 6, 702, 264, 73350, 364, 18573, 1262, 23569, 785, 4647, 364, 20170, 6, 702, 264, 73350, 364, 95275, 23569, 785, 4647, 364, 25830, 6, 702, 264, 73350, 364, 51, 1952, 65, 26522, 23569, 785, 4647, 364, 13911, 320, 4765, 21636, 702, 264, 73350, 364, 3882, 5742, 88, 23569, 785, 4647, 364, 10673, 11896, 6, 702, 264, 73350, 364, 47, 2185, 306, 23569, 785, 4647, 364, 30531, 6, 702, 264, 73350, 364, 44, 695, 23569, 785, 4647, 364, 41198, 6, 702, 264, 73350, 364, 5338, 23569, 785, 4647, 364, 36485, 6, 702, 264, 73350, 364, 50, 1751, 307, 23569, 785, 4647, 364, 28320, 6, 702, 264, 73350, 364, 25749, 1717, 23569, 785, 4647, 364, 33, 3248, 6, 702, 264, 73350, 364, 32, 917, 306, 23569, 785, 4647, 364, 4049, 6, 702, 264, 73350, 364, 49772, 19430, 23569, 785, 4647, 364, 2620, 32066, 6, 702, 264, 73350, 364, 59164, 23569, 785, 4647, 364, 43, 2950, 6, 702, 264, 73350, 364, 4923, 3249, 23569, 785, 4647, 364, 35, 617, 6, 702, 264, 73350, 364, 10344, 23569, 785, 4647, 364, 34291, 88, 6, 702, 264, 73350, 364, 40603, 23569, 785, 4647, 364, 45, 6044, 6, 702, 264, 73350, 364, 1092, 14318, 23569, 785, 4647, 364, 27177, 6, 702, 264, 73350, 364, 46874, 23569, 785, 4647, 364, 641, 12601, 6, 702, 264, 73350, 364, 66111, 66, 3073, 23569, 785, 4647, 364, 58289, 6, 702, 264, 73350, 364, 78627, 23569, 785, 4647, 364, 40572, 6, 702, 264, 73350, 364, 62604, 39104, 23569, 785, 4647, 364, 33, 3248, 6, 702, 264, 73350, 364, 22571, 590, 292, 23569, 785, 4647, 364, 18284, 6, 702, 264, 73350, 364, 36, 76869, 398, 23569, 785, 4647, 364, 58289, 6, 702, 264, 73350, 364, 7442, 2596, 812, 23569, 785, 4647, 364, 40103, 408, 6, 702, 264, 73350, 364, 10850, 705, 23569, 785, 4647, 364, 4454, 6, 702, 264, 73350, 364, 45094, 23569, 785, 4647, 364, 11065, 408, 6, 702, 264, 73350, 364, 3136, 2929, 23569, 785, 4647, 364, 25307, 6, 702, 264, 73350, 364, 38103, 23569, 785, 4647, 364, 11976, 6, 702, 264, 73350, 364, 4416, 3249, 23569, 785, 4647, 364, 2324, 6, 702, 264, 73350, 364, 34, 4659, 65, 23569, 785, 4647, 364, 34, 7673, 6, 702, 264, 73350, 364, 6740, 51451, 23569, 785, 4647, 364, 27177, 6, 702, 264, 73350, 364, 11395, 12462, 23569, 785, 4647, 364, 13911, 320, 4765, 21636, 702, 264, 73350, 364, 33, 765, 4246, 23569, 785, 4647, 364, 29185, 6, 702, 264, 73350, 364, 641, 35921, 349, 23569, 785, 4647, 364, 36485, 6, 702, 264, 73350, 364, 4416, 2181, 23569, 785, 4647, 364, 61457, 6, 702, 264, 73350, 364, 1806, 79, 19931, 928, 23569, 785, 4647, 364, 94984, 6, 702, 264, 73350, 364, 24187, 23569, 785, 4647, 364, 11065, 408, 6, 702, 264, 73350, 364, 35, 2142, 629, 23569, 785, 4647, 364, 1092, 500, 3819, 6, 702, 264, 73350, 364, 47, 18704, 23569, 785, 4647, 364, 5002, 6, 702, 264, 73350, 364, 1806, 75940, 23569, 785, 4647, 364, 35, 617, 6, 702, 264, 73350, 364, 4923, 3850, 23569, 785, 4647, 364, 25307, 6, 702, 264, 73350, 364, 57024, 23569, 785, 4647, 364, 12020, 1222, 6, 702, 264, 73350, 364, 48124, 23569, 785, 4647, 364, 32174, 6, 702, 264, 73350, 364, 39, 14980, 23569, 785, 4647, 364, 641, 12601, 6, 702, 264, 73350, 364, 19773, 23569, 785, 4647, 364, 7188, 6, 702, 264, 73350, 364, 71585, 7830, 23569, 785, 4647, 364, 12020, 1222, 6, 702, 264, 73350, 364, 49772, 1182, 23569, 785, 4647, 364, 76418, 6, 702, 264, 73350, 364, 40, 11130, 23569, 785, 4647, 364, 26907, 6, 702, 264, 73350, 364, 623, 3092, 23569, 785, 4647, 364, 15474, 494, 6, 702, 264, 73350, 364, 22171, 577, 23569, 785, 4647, 364, 50437, 6, 702, 264, 73350, 364, 2753, 302, 399, 68, 23569, 785, 4647, 364, 51, 491, 6, 702, 264, 73350, 364, 37, 2853, 23569, 785, 4647, 364, 16646, 6, 702, 264, 73350, 364, 15220, 306, 23569, 785, 4647, 364, 36125, 679, 6, 702, 264, 73350, 364, 10048, 1826, 2757, 23569, 785, 4647, 364, 18284, 6, 702, 264, 73350, 364, 88467, 23569, 785, 4647, 364, 85215, 6, 702, 264, 73350, 364, 4896, 47638, 657, 23569, 785, 4647, 364, 45, 6044, 6, 702, 264, 73350, 364, 19861, 2397, 23569, 785, 4647, 364, 27529, 6, 702, 264, 73350, 364, 80350, 457, 23569, 785, 4647, 364, 5715, 6, 702, 264, 73350, 364, 3889, 1484, 1238, 23569, 785, 4647, 364, 36125, 679, 6, 702, 264, 73350, 364, 16970, 23569, 785, 4647, 364, 95027, 6, 702, 264, 73350, 364, 8304, 705, 23569, 785, 4647, 364, 24056, 6, 702, 264, 73350, 364, 2715, 3556, 23569, 785, 4647, 364, 60970, 6, 702, 264, 73350, 364, 2662, 58195, 23569, 785, 4647, 364, 24187, 6, 702, 264, 73350, 364, 31019, 23569, 785, 4647, 364, 26884, 6, 702, 264, 73350, 364, 32174, 6758, 23569, 785, 4647, 364, 4049, 6, 702, 264, 73350, 364, 1806, 1866, 23569, 785, 4647, 364, 6828, 523, 6, 702, 264, 73350, 364, 42800, 23569, 785, 4647, 364, 78413, 6, 702, 264, 73350, 364, 3945, 810, 23569, 785, 4647, 364, 37, 4101, 34434, 6, 702, 264, 73350, 364, 3889, 69, 38155, 29636, 2, 13383, 198, 2461, 3110, 11, 421, 279, 1196, 3239, 374, 330, 40, 2776, 1602, 8205, 497, 279, 4647, 498, 1265, 5244, 389, 374, 330, 10622, 3263, 10548, 311, 279, 85406, 3403, 11, 279, 4647, 330, 10622, 1, 702, 279, 85406, 330, 4923, 6657, 1, 323, 330, 95275, 497, 304, 429, 1973, 13, 1446, 1184, 311, 633, 73350, 2750, 369, 330, 4923, 6657, 1, 323, 330, 95275, 497, 1077, 594, 1977, 1846, 525, 220, 20, 323, 220, 21, 15576, 11, 323, 8649, 279, 1102, 315, 1846, 73350, 2750, 600, 1734, 13, 508, 20, 11, 220, 21, 60, 448, 220, 20, 320, 2024, 6657, 8, 1156, 1221, 220, 21, 320, 82597, 8, 2474, 429, 374, 279, 1973, 807, 4994, 304, 279, 1140, 315, 85406, 3403, 382, 2, 13852, 271, 2610, 1231, 1618, 825, 476, 803, 5746, 311, 7789, 448, 279, 1196, 3239, 382, 2610, 525, 3897, 448, 729, 32628, 2878, 366, 15918, 1472, 15918, 29, 11874, 9492, 510, 27, 15918, 397, 4913, 1313, 788, 330, 1688, 497, 330, 1688, 788, 5212, 606, 788, 330, 455, 51393, 7831, 3142, 497, 330, 4684, 788, 330, 1949, 279, 73350, 897, 369, 264, 73350, 7110, 77, 1986, 5666, 4675, 264, 897, 429, 95164, 311, 279, 2701, 4718, 12539, 25, 314, 2105, 13193, 11693, 314, 2105, 20339, 7831, 3142, 11693, 314, 2105, 1313, 11693, 7245, 11662, 16215, 7245, 2102, 11693, 7245, 37134, 7831, 5162, 16215, 7245, 4684, 11693, 7245, 785, 897, 369, 419, 73350, 86865, 38154, 7245, 1313, 11693, 7245, 1700, 16215, 7245, 6279, 11693, 508, 2105, 20339, 7831, 3142, 75104, 11035, 77, 497, 330, 13786, 788, 5212, 13193, 788, 5212, 20339, 7831, 788, 5212, 1313, 788, 330, 917, 497, 330, 2102, 788, 330, 37134, 7831, 497, 330, 4684, 788, 330, 785, 73350, 311, 633, 279, 897, 369, 1189, 38154, 330, 1313, 788, 330, 1700, 497, 330, 6279, 788, 4383, 20339, 7831, 7914, 330, 35499, 7903, 788, 895, 2137, 330, 6627, 788, 830, 11248, 4913, 1313, 788, 330, 1688, 497, 330, 1688, 788, 5212, 606, 788, 330, 23493, 51393, 7831, 9146, 497, 330, 4684, 788, 330, 28959, 279, 73350, 2750, 498, 30403, 369, 279, 4647, 429, 374, 9760, 311, 279, 1196, 3239, 7110, 77, 1986, 5666, 4675, 264, 897, 429, 95164, 311, 279, 2701, 4718, 12539, 25, 314, 2105, 13193, 11693, 314, 2105, 5630, 11693, 314, 2105, 1313, 11693, 7245, 6117, 16215, 7245, 2102, 11693, 7245, 7188, 16215, 7245, 4684, 11693, 7245, 7188, 86865, 38154, 7245, 1313, 11693, 7245, 1700, 16215, 7245, 6279, 11693, 508, 2105, 5630, 75104, 11035, 77, 497, 330, 13786, 788, 5212, 13193, 788, 5212, 20339, 7831, 9146, 788, 5212, 3615, 788, 5212, 1313, 788, 330, 11662, 14345, 330, 1313, 788, 330, 1653, 497, 330, 2102, 788, 330, 37134, 7831, 24979, 497, 330, 4684, 788, 330, 785, 73350, 2750, 12159, 311, 279, 4647, 369, 279, 1196, 3239, 1189, 38154, 330, 1313, 788, 330, 1700, 497, 330, 6279, 788, 4383, 20339, 7831, 9146, 7914, 330, 35499, 7903, 788, 895, 2137, 330, 6627, 788, 830, 11248, 522, 15918, 1339, 2461, 1817, 729, 1618, 11, 470, 264, 2951, 1633, 448, 729, 829, 323, 5977, 2878, 220, 151657, 151658, 11874, 9492, 510, 151657, 198, 4913, 606, 788, 366, 1688, 11494, 8066, 330, 16370, 788, 366, 2116, 56080, 40432, 31296, 151658, 151645, 198, 151644, 872, 198, 3838, 9363, 16792, 311, 264, 5537, 24084, 9016, 1550, 19879, 11, 323, 1246, 653, 1493, 9363, 16282, 30, 5209, 1618, 279, 633, 51393, 7831, 3142, 5392, 389, 2502, 6657, 323, 45763, 11, 323, 1221, 8649, 51393, 7831, 9146, 389, 279, 3059, 13, 151645, 198, 151644, 77091, 198]}, {"role": "assistant", "content": "", "token_ids": [], "generation_logprobs": []}, {"role": "user", "content": "", "token_ids": []}, {"role": "assistant", "content": "", "token_ids": [], "generation_logprobs": []}], "input_message_log": [{"role": "user", "content": "", "token_ids": [151644, 8948, 198, 2, 38297, 198, 2610, 525, 458, 32189, 8315, 13, 1446, 686, 387, 3897, 264, 1196, 3239, 323, 498, 1184, 311, 990, 279, 7375, 3897, 311, 498, 311, 8649, 1140, 315, 73350, 2750, 13, 1446, 686, 387, 3897, 448, 264, 15493, 315, 85406, 369, 1817, 13, 1752, 1817, 4647, 11, 4486, 1490, 421, 432, 594, 9760, 311, 279, 1196, 3239, 323, 633, 279, 2750, 369, 1817, 73350, 438, 8311, 13, 1446, 1969, 633, 323, 8649, 279, 2750, 369, 1449, 73350, 429, 7952, 304, 419, 1140, 13, 5209, 2550, 73350, 2750, 304, 279, 1973, 807, 4994, 304, 279, 2500, 85406, 3685, 382, 2, 16136, 85406, 198, 785, 4647, 364, 16970, 6, 702, 264, 73350, 364, 2662, 28488, 23569, 785, 4647, 364, 3522, 6, 702, 264, 73350, 364, 4896, 33066, 23569, 785, 4647, 364, 5002, 6, 702, 264, 73350, 364, 693, 586, 5838, 23569, 785, 4647, 364, 85215, 6, 702, 264, 73350, 364, 32, 1869, 23569, 785, 4647, 364, 17082, 6, 702, 264, 73350, 364, 54, 18504, 23569, 785, 4647, 364, 12020, 1222, 6, 702, 264, 73350, 364, 8137, 1182, 23569, 785, 4647, 364, 3522, 6, 702, 264, 73350, 364, 81789, 517, 23569, 785, 4647, 364, 1001, 865, 6, 702, 264, 73350, 364, 68457, 23569, 785, 4647, 364, 34291, 88, 6, 702, 264, 73350, 364, 38, 1574, 80049, 23569, 785, 4647, 364, 49, 1384, 6, 702, 264, 73350, 364, 7339, 2583, 23569, 785, 4647, 364, 10159, 6, 702, 264, 73350, 364, 6025, 12402, 23569, 785, 4647, 364, 94984, 6, 702, 264, 73350, 364, 39, 51978, 23569, 785, 4647, 364, 10159, 6, 702, 264, 73350, 364, 30092, 31509, 23569, 785, 4647, 364, 26884, 6, 702, 264, 73350, 364, 30896, 291, 23569, 785, 4647, 364, 41198, 6, 702, 264, 73350, 364, 47, 3748, 77873, 23569, 785, 4647, 364, 50437, 6, 702, 264, 73350, 364, 33648, 9287, 23569, 785, 4647, 364, 13911, 6, 702, 264, 73350, 364, 14008, 23569, 785, 4647, 364, 60970, 6, 702, 264, 73350, 364, 1092, 52899, 23569, 785, 4647, 364, 52, 22945, 6, 702, 264, 73350, 364, 76335, 2338, 591, 23569, 785, 4647, 364, 15474, 494, 6, 702, 264, 73350, 364, 21666, 2377, 23569, 785, 4647, 364, 32887, 6, 702, 264, 73350, 364, 24703, 23569, 785, 4647, 364, 2324, 6, 702, 264, 73350, 364, 87445, 23569, 785, 4647, 364, 34291, 88, 6, 702, 264, 73350, 364, 21988, 29123, 9193, 23569, 785, 4647, 364, 28320, 6, 702, 264, 73350, 364, 1912, 94204, 23569, 785, 4647, 364, 10344, 6, 702, 264, 73350, 364, 37, 1641, 23569, 785, 4647, 364, 1001, 865, 6, 702, 264, 73350, 364, 64469, 23569, 785, 4647, 364, 17507, 6, 702, 264, 73350, 364, 39838, 23569, 785, 4647, 364, 59665, 6, 702, 264, 73350, 364, 7839, 14378, 23569, 785, 4647, 364, 93088, 6, 702, 264, 73350, 364, 7442, 1659, 23569, 785, 4647, 364, 85215, 6, 702, 264, 73350, 364, 1912, 25172, 657, 23569, 785, 4647, 364, 36485, 6, 702, 264, 73350, 364, 44, 33917, 23569, 785, 4647, 364, 32174, 6, 702, 264, 73350, 364, 6828, 3187, 23569, 785, 4647, 364, 2620, 32066, 6, 702, 264, 73350, 364, 17507, 23569, 785, 4647, 364, 24056, 6, 702, 264, 73350, 364, 51, 3191, 291, 23569, 785, 4647, 364, 24056, 6, 702, 264, 73350, 364, 47, 1268, 6125, 23569, 785, 4647, 364, 49, 1384, 6, 702, 264, 73350, 364, 6464, 466, 88, 23569, 785, 4647, 364, 34, 81971, 398, 6, 702, 264, 73350, 364, 16001, 5276, 23569, 785, 4647, 364, 4049, 6, 702, 264, 73350, 364, 40468, 23569, 785, 4647, 364, 59665, 6, 702, 264, 73350, 364, 1806, 56521, 23569, 785, 4647, 364, 6828, 523, 6, 702, 264, 73350, 364, 623, 283, 1782, 471, 291, 23569, 785, 4647, 364, 34, 81971, 398, 6, 702, 264, 73350, 364, 47699, 23569, 785, 4647, 364, 93088, 6, 702, 264, 73350, 364, 37186, 3834, 23569, 785, 4647, 364, 41365, 6, 702, 264, 73350, 364, 25913, 23569, 785, 4647, 364, 54, 295, 6, 702, 264, 73350, 364, 4416, 7741, 23569, 785, 4647, 364, 59665, 6, 702, 264, 73350, 364, 45384, 48909, 23569, 785, 4647, 364, 7188, 6, 702, 264, 73350, 364, 36125, 679, 23569, 785, 4647, 364, 34, 81971, 398, 6, 702, 264, 73350, 364, 6406, 482, 1717, 23569, 785, 4647, 364, 51, 491, 6, 702, 264, 73350, 364, 98335, 23569, 785, 4647, 364, 47586, 6, 702, 264, 73350, 364, 61598, 21366, 23569, 785, 4647, 364, 21751, 3866, 6, 702, 264, 73350, 364, 81027, 287, 23569, 785, 4647, 364, 18284, 6, 702, 264, 73350, 364, 48983, 292, 23569, 785, 4647, 364, 27177, 6, 702, 264, 73350, 364, 7125, 28480, 23569, 785, 4647, 364, 32887, 6, 702, 264, 73350, 364, 78284, 23569, 785, 4647, 364, 36730, 6, 702, 264, 73350, 364, 46588, 371, 1717, 23569, 785, 4647, 364, 12472, 6, 702, 264, 73350, 364, 38103, 23569, 785, 4647, 364, 16970, 6, 702, 264, 73350, 364, 71585, 586, 23569, 785, 4647, 364, 1092, 500, 3819, 6, 702, 264, 73350, 364, 6756, 337, 23569, 785, 4647, 364, 95027, 6, 702, 264, 73350, 364, 49, 1064, 23569, 785, 4647, 364, 30531, 6, 702, 264, 73350, 364, 51, 1659, 23569, 785, 4647, 364, 45, 6044, 6, 702, 264, 73350, 364, 50360, 849, 533, 23569, 785, 4647, 364, 25830, 6, 702, 264, 73350, 364, 35, 355, 7891, 23569, 785, 4647, 364, 11976, 6, 702, 264, 73350, 364, 35186, 13847, 23569, 785, 4647, 364, 34, 7673, 6, 702, 264, 73350, 364, 19957, 380, 74225, 23569, 785, 4647, 364, 26884, 6, 702, 264, 73350, 364, 49010, 23569, 785, 4647, 364, 13552, 14295, 679, 6, 702, 264, 73350, 364, 15878, 36145, 23569, 785, 4647, 364, 32637, 6, 702, 264, 73350, 364, 22600, 726, 23569, 785, 4647, 364, 49649, 6, 702, 264, 73350, 364, 14986, 1717, 23569, 785, 4647, 364, 21751, 3866, 6, 702, 264, 73350, 364, 38, 2672, 20058, 23569, 785, 4647, 364, 78413, 6, 702, 264, 73350, 364, 693, 25976, 23569, 785, 4647, 364, 58289, 6, 702, 264, 73350, 364, 2304, 32137, 398, 23569, 785, 4647, 364, 27529, 6, 702, 264, 73350, 364, 1806, 704, 2181, 23569, 785, 4647, 364, 13552, 14295, 679, 6, 702, 264, 73350, 364, 46, 2024, 343, 5269, 23569, 785, 4647, 364, 12472, 6, 702, 264, 73350, 364, 10344, 258, 6704, 23569, 785, 4647, 364, 50437, 6, 702, 264, 73350, 364, 50437, 13464, 23569, 785, 4647, 364, 51962, 6, 702, 264, 73350, 364, 1336, 87, 3426, 23569, 785, 4647, 364, 52, 22945, 6, 702, 264, 73350, 364, 49642, 974, 23569, 785, 4647, 364, 29185, 6, 702, 264, 73350, 364, 32, 1831, 23569, 785, 4647, 364, 17082, 6, 702, 264, 73350, 364, 21209, 12280, 23569, 785, 4647, 364, 5715, 6, 702, 264, 73350, 364, 34193, 480, 23569, 785, 4647, 364, 51962, 6, 702, 264, 73350, 364, 641, 36743, 23569, 785, 4647, 364, 76418, 6, 702, 264, 73350, 364, 37, 41502, 88, 23569, 785, 4647, 364, 29185, 6, 702, 264, 73350, 364, 4049, 23569, 785, 4647, 364, 30531, 6, 702, 264, 73350, 364, 49506, 85, 2611, 23569, 785, 4647, 364, 10159, 6, 702, 264, 73350, 364, 74676, 23569, 785, 4647, 364, 40572, 6, 702, 264, 73350, 364, 33, 8347, 287, 23569, 785, 4647, 364, 10673, 11896, 6, 702, 264, 73350, 364, 49, 1129, 307, 23569, 785, 4647, 364, 24187, 6, 702, 264, 73350, 364, 10344, 24657, 23569, 785, 4647, 364, 25307, 6, 702, 264, 73350, 364, 34609, 57410, 23569, 785, 4647, 364, 34, 7673, 6, 702, 264, 73350, 364, 1806, 81, 42335, 23569, 785, 4647, 364, 3522, 6, 702, 264, 73350, 364, 35882, 23569, 785, 4647, 364, 5002, 6, 702, 264, 73350, 364, 16485, 23569, 785, 4647, 364, 32887, 6, 702, 264, 73350, 364, 42642, 23569, 785, 4647, 364, 40572, 6, 702, 264, 73350, 364, 3564, 23569, 785, 4647, 364, 40103, 408, 6, 702, 264, 73350, 364, 16284, 23569, 785, 4647, 364, 52, 22945, 6, 702, 264, 73350, 364, 21692, 782, 23569, 785, 4647, 364, 49649, 6, 702, 264, 73350, 364, 22560, 604, 23569, 785, 4647, 364, 54, 295, 6, 702, 264, 73350, 364, 35, 1121, 23569, 785, 4647, 364, 51, 541, 6, 702, 264, 73350, 364, 45948, 27561, 23569, 785, 4647, 364, 4454, 6, 702, 264, 73350, 364, 7839, 14378, 23569, 785, 4647, 364, 32847, 6, 702, 264, 73350, 364, 26843, 261, 1262, 23569, 785, 4647, 364, 32637, 6, 702, 264, 73350, 364, 9676, 23569, 785, 4647, 364, 36730, 6, 702, 264, 73350, 364, 13911, 23569, 785, 4647, 364, 16646, 6, 702, 264, 73350, 364, 14742, 23569, 785, 4647, 364, 95027, 6, 702, 264, 73350, 364, 12346, 3117, 23569, 785, 4647, 364, 10344, 6, 702, 264, 73350, 364, 35, 617, 23569, 785, 4647, 364, 51, 541, 6, 702, 264, 73350, 364, 51, 89614, 23569, 785, 4647, 364, 37, 4101, 34434, 6, 702, 264, 73350, 364, 37889, 2408, 23569, 785, 4647, 364, 32847, 6, 702, 264, 73350, 364, 47, 4673, 23569, 785, 4647, 364, 4454, 6, 702, 264, 73350, 364, 19871, 23569, 785, 4647, 364, 26907, 6, 702, 264, 73350, 364, 49, 20926, 23569, 785, 4647, 364, 43, 2950, 6, 702, 264, 73350, 364, 2753, 28013, 23569, 785, 4647, 364, 13911, 6, 702, 264, 73350, 364, 2016, 6441, 23569, 785, 4647, 364, 41198, 6, 702, 264, 73350, 364, 49471, 23569, 785, 4647, 364, 20170, 6, 702, 264, 73350, 364, 4923, 6657, 23569, 785, 4647, 364, 13911, 320, 4765, 21636, 702, 264, 73350, 364, 87208, 23569, 785, 4647, 364, 16646, 6, 702, 264, 73350, 364, 55559, 51186, 23569, 785, 4647, 364, 94984, 6, 702, 264, 73350, 364, 84643, 1262, 23569, 785, 4647, 364, 41365, 6, 702, 264, 73350, 364, 2662, 27304, 23569, 785, 4647, 364, 36730, 6, 702, 264, 73350, 364, 47, 16459, 23569, 785, 4647, 364, 7188, 6, 702, 264, 73350, 364, 1109, 719, 23569, 785, 4647, 364, 26907, 6, 702, 264, 73350, 364, 45941, 23569, 785, 4647, 364, 17507, 6, 702, 264, 73350, 364, 1649, 1419, 23569, 785, 4647, 364, 24187, 6, 702, 264, 73350, 364, 12472, 23569, 785, 4647, 364, 61457, 6, 702, 264, 73350, 364, 1918, 23646, 23569, 785, 4647, 364, 54, 295, 6, 702, 264, 73350, 364, 28253, 24867, 23569, 785, 4647, 364, 47586, 6, 702, 264, 73350, 364, 18573, 1262, 23569, 785, 4647, 364, 20170, 6, 702, 264, 73350, 364, 95275, 23569, 785, 4647, 364, 25830, 6, 702, 264, 73350, 364, 51, 1952, 65, 26522, 23569, 785, 4647, 364, 13911, 320, 4765, 21636, 702, 264, 73350, 364, 3882, 5742, 88, 23569, 785, 4647, 364, 10673, 11896, 6, 702, 264, 73350, 364, 47, 2185, 306, 23569, 785, 4647, 364, 30531, 6, 702, 264, 73350, 364, 44, 695, 23569, 785, 4647, 364, 41198, 6, 702, 264, 73350, 364, 5338, 23569, 785, 4647, 364, 36485, 6, 702, 264, 73350, 364, 50, 1751, 307, 23569, 785, 4647, 364, 28320, 6, 702, 264, 73350, 364, 25749, 1717, 23569, 785, 4647, 364, 33, 3248, 6, 702, 264, 73350, 364, 32, 917, 306, 23569, 785, 4647, 364, 4049, 6, 702, 264, 73350, 364, 49772, 19430, 23569, 785, 4647, 364, 2620, 32066, 6, 702, 264, 73350, 364, 59164, 23569, 785, 4647, 364, 43, 2950, 6, 702, 264, 73350, 364, 4923, 3249, 23569, 785, 4647, 364, 35, 617, 6, 702, 264, 73350, 364, 10344, 23569, 785, 4647, 364, 34291, 88, 6, 702, 264, 73350, 364, 40603, 23569, 785, 4647, 364, 45, 6044, 6, 702, 264, 73350, 364, 1092, 14318, 23569, 785, 4647, 364, 27177, 6, 702, 264, 73350, 364, 46874, 23569, 785, 4647, 364, 641, 12601, 6, 702, 264, 73350, 364, 66111, 66, 3073, 23569, 785, 4647, 364, 58289, 6, 702, 264, 73350, 364, 78627, 23569, 785, 4647, 364, 40572, 6, 702, 264, 73350, 364, 62604, 39104, 23569, 785, 4647, 364, 33, 3248, 6, 702, 264, 73350, 364, 22571, 590, 292, 23569, 785, 4647, 364, 18284, 6, 702, 264, 73350, 364, 36, 76869, 398, 23569, 785, 4647, 364, 58289, 6, 702, 264, 73350, 364, 7442, 2596, 812, 23569, 785, 4647, 364, 40103, 408, 6, 702, 264, 73350, 364, 10850, 705, 23569, 785, 4647, 364, 4454, 6, 702, 264, 73350, 364, 45094, 23569, 785, 4647, 364, 11065, 408, 6, 702, 264, 73350, 364, 3136, 2929, 23569, 785, 4647, 364, 25307, 6, 702, 264, 73350, 364, 38103, 23569, 785, 4647, 364, 11976, 6, 702, 264, 73350, 364, 4416, 3249, 23569, 785, 4647, 364, 2324, 6, 702, 264, 73350, 364, 34, 4659, 65, 23569, 785, 4647, 364, 34, 7673, 6, 702, 264, 73350, 364, 6740, 51451, 23569, 785, 4647, 364, 27177, 6, 702, 264, 73350, 364, 11395, 12462, 23569, 785, 4647, 364, 13911, 320, 4765, 21636, 702, 264, 73350, 364, 33, 765, 4246, 23569, 785, 4647, 364, 29185, 6, 702, 264, 73350, 364, 641, 35921, 349, 23569, 785, 4647, 364, 36485, 6, 702, 264, 73350, 364, 4416, 2181, 23569, 785, 4647, 364, 61457, 6, 702, 264, 73350, 364, 1806, 79, 19931, 928, 23569, 785, 4647, 364, 94984, 6, 702, 264, 73350, 364, 24187, 23569, 785, 4647, 364, 11065, 408, 6, 702, 264, 73350, 364, 35, 2142, 629, 23569, 785, 4647, 364, 1092, 500, 3819, 6, 702, 264, 73350, 364, 47, 18704, 23569, 785, 4647, 364, 5002, 6, 702, 264, 73350, 364, 1806, 75940, 23569, 785, 4647, 364, 35, 617, 6, 702, 264, 73350, 364, 4923, 3850, 23569, 785, 4647, 364, 25307, 6, 702, 264, 73350, 364, 57024, 23569, 785, 4647, 364, 12020, 1222, 6, 702, 264, 73350, 364, 48124, 23569, 785, 4647, 364, 32174, 6, 702, 264, 73350, 364, 39, 14980, 23569, 785, 4647, 364, 641, 12601, 6, 702, 264, 73350, 364, 19773, 23569, 785, 4647, 364, 7188, 6, 702, 264, 73350, 364, 71585, 7830, 23569, 785, 4647, 364, 12020, 1222, 6, 702, 264, 73350, 364, 49772, 1182, 23569, 785, 4647, 364, 76418, 6, 702, 264, 73350, 364, 40, 11130, 23569, 785, 4647, 364, 26907, 6, 702, 264, 73350, 364, 623, 3092, 23569, 785, 4647, 364, 15474, 494, 6, 702, 264, 73350, 364, 22171, 577, 23569, 785, 4647, 364, 50437, 6, 702, 264, 73350, 364, 2753, 302, 399, 68, 23569, 785, 4647, 364, 51, 491, 6, 702, 264, 73350, 364, 37, 2853, 23569, 785, 4647, 364, 16646, 6, 702, 264, 73350, 364, 15220, 306, 23569, 785, 4647, 364, 36125, 679, 6, 702, 264, 73350, 364, 10048, 1826, 2757, 23569, 785, 4647, 364, 18284, 6, 702, 264, 73350, 364, 88467, 23569, 785, 4647, 364, 85215, 6, 702, 264, 73350, 364, 4896, 47638, 657, 23569, 785, 4647, 364, 45, 6044, 6, 702, 264, 73350, 364, 19861, 2397, 23569, 785, 4647, 364, 27529, 6, 702, 264, 73350, 364, 80350, 457, 23569, 785, 4647, 364, 5715, 6, 702, 264, 73350, 364, 3889, 1484, 1238, 23569, 785, 4647, 364, 36125, 679, 6, 702, 264, 73350, 364, 16970, 23569, 785, 4647, 364, 95027, 6, 702, 264, 73350, 364, 8304, 705, 23569, 785, 4647, 364, 24056, 6, 702, 264, 73350, 364, 2715, 3556, 23569, 785, 4647, 364, 60970, 6, 702, 264, 73350, 364, 2662, 58195, 23569, 785, 4647, 364, 24187, 6, 702, 264, 73350, 364, 31019, 23569, 785, 4647, 364, 26884, 6, 702, 264, 73350, 364, 32174, 6758, 23569, 785, 4647, 364, 4049, 6, 702, 264, 73350, 364, 1806, 1866, 23569, 785, 4647, 364, 6828, 523, 6, 702, 264, 73350, 364, 42800, 23569, 785, 4647, 364, 78413, 6, 702, 264, 73350, 364, 3945, 810, 23569, 785, 4647, 364, 37, 4101, 34434, 6, 702, 264, 73350, 364, 3889, 69, 38155, 29636, 2, 13383, 198, 2461, 3110, 11, 421, 279, 1196, 3239, 374, 330, 40, 2776, 1602, 8205, 497, 279, 4647, 498, 1265, 5244, 389, 374, 330, 10622, 3263, 10548, 311, 279, 85406, 3403, 11, 279, 4647, 330, 10622, 1, 702, 279, 85406, 330, 4923, 6657, 1, 323, 330, 95275, 497, 304, 429, 1973, 13, 1446, 1184, 311, 633, 73350, 2750, 369, 330, 4923, 6657, 1, 323, 330, 95275, 497, 1077, 594, 1977, 1846, 525, 220, 20, 323, 220, 21, 15576, 11, 323, 8649, 279, 1102, 315, 1846, 73350, 2750, 600, 1734, 13, 508, 20, 11, 220, 21, 60, 448, 220, 20, 320, 2024, 6657, 8, 1156, 1221, 220, 21, 320, 82597, 8, 2474, 429, 374, 279, 1973, 807, 4994, 304, 279, 1140, 315, 85406, 3403, 382, 2, 13852, 271, 2610, 1231, 1618, 825, 476, 803, 5746, 311, 7789, 448, 279, 1196, 3239, 382, 2610, 525, 3897, 448, 729, 32628, 2878, 366, 15918, 1472, 15918, 29, 11874, 9492, 510, 27, 15918, 397, 4913, 1313, 788, 330, 1688, 497, 330, 1688, 788, 5212, 606, 788, 330, 455, 51393, 7831, 3142, 497, 330, 4684, 788, 330, 1949, 279, 73350, 897, 369, 264, 73350, 7110, 77, 1986, 5666, 4675, 264, 897, 429, 95164, 311, 279, 2701, 4718, 12539, 25, 314, 2105, 13193, 11693, 314, 2105, 20339, 7831, 3142, 11693, 314, 2105, 1313, 11693, 7245, 11662, 16215, 7245, 2102, 11693, 7245, 37134, 7831, 5162, 16215, 7245, 4684, 11693, 7245, 785, 897, 369, 419, 73350, 86865, 38154, 7245, 1313, 11693, 7245, 1700, 16215, 7245, 6279, 11693, 508, 2105, 20339, 7831, 3142, 75104, 11035, 77, 497, 330, 13786, 788, 5212, 13193, 788, 5212, 20339, 7831, 788, 5212, 1313, 788, 330, 917, 497, 330, 2102, 788, 330, 37134, 7831, 497, 330, 4684, 788, 330, 785, 73350, 311, 633, 279, 897, 369, 1189, 38154, 330, 1313, 788, 330, 1700, 497, 330, 6279, 788, 4383, 20339, 7831, 7914, 330, 35499, 7903, 788, 895, 2137, 330, 6627, 788, 830, 11248, 4913, 1313, 788, 330, 1688, 497, 330, 1688, 788, 5212, 606, 788, 330, 23493, 51393, 7831, 9146, 497, 330, 4684, 788, 330, 28959, 279, 73350, 2750, 498, 30403, 369, 279, 4647, 429, 374, 9760, 311, 279, 1196, 3239, 7110, 77, 1986, 5666, 4675, 264, 897, 429, 95164, 311, 279, 2701, 4718, 12539, 25, 314, 2105, 13193, 11693, 314, 2105, 5630, 11693, 314, 2105, 1313, 11693, 7245, 6117, 16215, 7245, 2102, 11693, 7245, 7188, 16215, 7245, 4684, 11693, 7245, 7188, 86865, 38154, 7245, 1313, 11693, 7245, 1700, 16215, 7245, 6279, 11693, 508, 2105, 5630, 75104, 11035, 77, 497, 330, 13786, 788, 5212, 13193, 788, 5212, 20339, 7831, 9146, 788, 5212, 3615, 788, 5212, 1313, 788, 330, 11662, 14345, 330, 1313, 788, 330, 1653, 497, 330, 2102, 788, 330, 37134, 7831, 24979, 497, 330, 4684, 788, 330, 785, 73350, 2750, 12159, 311, 279, 4647, 369, 279, 1196, 3239, 1189, 38154, 330, 1313, 788, 330, 1700, 497, 330, 6279, 788, 4383, 20339, 7831, 9146, 7914, 330, 35499, 7903, 788, 895, 2137, 330, 6627, 788, 830, 11248, 522, 15918, 1339, 2461, 1817, 729, 1618, 11, 470, 264, 2951, 1633, 448, 729, 829, 323, 5977, 2878, 220, 151657, 151658, 11874, 9492, 510, 151657, 198, 4913, 606, 788, 366, 1688, 11494, 8066, 330, 16370, 788, 366, 2116, 56080, 40432, 31296, 151658, 151645, 198, 151644, 872, 198, 3838, 9363, 16792, 311, 264, 5537, 24084, 9016, 1550, 19879, 11, 323, 1246, 653, 1493, 9363, 16282, 30, 5209, 1618, 279, 633, 51393, 7831, 3142, 5392, 389, 2502, 6657, 323, 45763, 11, 323, 1221, 8649, 51393, 7831, 9146, 389, 279, 3059, 13, 151645, 198, 151644, 77091, 198]}]}, {"message_log": [{"role": "user", "content": "", "token_ids": [151644, 8948, 198, 2, 38297, 198, 2610, 525, 458, 32189, 8315, 13, 1446, 686, 387, 3897, 264, 1196, 3239, 323, 498, 1184, 311, 990, 279, 7375, 3897, 311, 498, 311, 8649, 1140, 315, 73350, 2750, 13, 1446, 686, 387, 3897, 448, 264, 15493, 315, 85406, 369, 1817, 13, 1752, 1817, 4647, 11, 4486, 1490, 421, 432, 594, 9760, 311, 279, 1196, 3239, 323, 633, 279, 2750, 369, 1817, 73350, 438, 8311, 13, 1446, 1969, 633, 323, 8649, 279, 2750, 369, 1449, 73350, 429, 7952, 304, 419, 1140, 13, 5209, 2550, 73350, 2750, 304, 279, 1973, 807, 4994, 304, 279, 2500, 85406, 3685, 382, 2, 16136, 85406, 198, 785, 4647, 364, 16970, 6, 702, 264, 73350, 364, 2662, 28488, 23569, 785, 4647, 364, 3522, 6, 702, 264, 73350, 364, 4896, 33066, 23569, 785, 4647, 364, 5002, 6, 702, 264, 73350, 364, 693, 586, 5838, 23569, 785, 4647, 364, 85215, 6, 702, 264, 73350, 364, 32, 1869, 23569, 785, 4647, 364, 17082, 6, 702, 264, 73350, 364, 54, 18504, 23569, 785, 4647, 364, 12020, 1222, 6, 702, 264, 73350, 364, 8137, 1182, 23569, 785, 4647, 364, 3522, 6, 702, 264, 73350, 364, 81789, 517, 23569, 785, 4647, 364, 1001, 865, 6, 702, 264, 73350, 364, 68457, 23569, 785, 4647, 364, 34291, 88, 6, 702, 264, 73350, 364, 38, 1574, 80049, 23569, 785, 4647, 364, 49, 1384, 6, 702, 264, 73350, 364, 7339, 2583, 23569, 785, 4647, 364, 10159, 6, 702, 264, 73350, 364, 6025, 12402, 23569, 785, 4647, 364, 94984, 6, 702, 264, 73350, 364, 39, 51978, 23569, 785, 4647, 364, 10159, 6, 702, 264, 73350, 364, 30092, 31509, 23569, 785, 4647, 364, 26884, 6, 702, 264, 73350, 364, 30896, 291, 23569, 785, 4647, 364, 41198, 6, 702, 264, 73350, 364, 47, 3748, 77873, 23569, 785, 4647, 364, 50437, 6, 702, 264, 73350, 364, 33648, 9287, 23569, 785, 4647, 364, 13911, 6, 702, 264, 73350, 364, 14008, 23569, 785, 4647, 364, 60970, 6, 702, 264, 73350, 364, 1092, 52899, 23569, 785, 4647, 364, 52, 22945, 6, 702, 264, 73350, 364, 76335, 2338, 591, 23569, 785, 4647, 364, 15474, 494, 6, 702, 264, 73350, 364, 21666, 2377, 23569, 785, 4647, 364, 32887, 6, 702, 264, 73350, 364, 24703, 23569, 785, 4647, 364, 2324, 6, 702, 264, 73350, 364, 87445, 23569, 785, 4647, 364, 34291, 88, 6, 702, 264, 73350, 364, 21988, 29123, 9193, 23569, 785, 4647, 364, 28320, 6, 702, 264, 73350, 364, 1912, 94204, 23569, 785, 4647, 364, 10344, 6, 702, 264, 73350, 364, 37, 1641, 23569, 785, 4647, 364, 1001, 865, 6, 702, 264, 73350, 364, 64469, 23569, 785, 4647, 364, 17507, 6, 702, 264, 73350, 364, 39838, 23569, 785, 4647, 364, 59665, 6, 702, 264, 73350, 364, 7839, 14378, 23569, 785, 4647, 364, 93088, 6, 702, 264, 73350, 364, 7442, 1659, 23569, 785, 4647, 364, 85215, 6, 702, 264, 73350, 364, 1912, 25172, 657, 23569, 785, 4647, 364, 36485, 6, 702, 264, 73350, 364, 44, 33917, 23569, 785, 4647, 364, 32174, 6, 702, 264, 73350, 364, 6828, 3187, 23569, 785, 4647, 364, 2620, 32066, 6, 702, 264, 73350, 364, 17507, 23569, 785, 4647, 364, 24056, 6, 702, 264, 73350, 364, 51, 3191, 291, 23569, 785, 4647, 364, 24056, 6, 702, 264, 73350, 364, 47, 1268, 6125, 23569, 785, 4647, 364, 49, 1384, 6, 702, 264, 73350, 364, 6464, 466, 88, 23569, 785, 4647, 364, 34, 81971, 398, 6, 702, 264, 73350, 364, 16001, 5276, 23569, 785, 4647, 364, 4049, 6, 702, 264, 73350, 364, 40468, 23569, 785, 4647, 364, 59665, 6, 702, 264, 73350, 364, 1806, 56521, 23569, 785, 4647, 364, 6828, 523, 6, 702, 264, 73350, 364, 623, 283, 1782, 471, 291, 23569, 785, 4647, 364, 34, 81971, 398, 6, 702, 264, 73350, 364, 47699, 23569, 785, 4647, 364, 93088, 6, 702, 264, 73350, 364, 37186, 3834, 23569, 785, 4647, 364, 41365, 6, 702, 264, 73350, 364, 25913, 23569, 785, 4647, 364, 54, 295, 6, 702, 264, 73350, 364, 4416, 7741, 23569, 785, 4647, 364, 59665, 6, 702, 264, 73350, 364, 45384, 48909, 23569, 785, 4647, 364, 7188, 6, 702, 264, 73350, 364, 36125, 679, 23569, 785, 4647, 364, 34, 81971, 398, 6, 702, 264, 73350, 364, 6406, 482, 1717, 23569, 785, 4647, 364, 51, 491, 6, 702, 264, 73350, 364, 98335, 23569, 785, 4647, 364, 47586, 6, 702, 264, 73350, 364, 61598, 21366, 23569, 785, 4647, 364, 21751, 3866, 6, 702, 264, 73350, 364, 81027, 287, 23569, 785, 4647, 364, 18284, 6, 702, 264, 73350, 364, 48983, 292, 23569, 785, 4647, 364, 27177, 6, 702, 264, 73350, 364, 7125, 28480, 23569, 785, 4647, 364, 32887, 6, 702, 264, 73350, 364, 78284, 23569, 785, 4647, 364, 36730, 6, 702, 264, 73350, 364, 46588, 371, 1717, 23569, 785, 4647, 364, 12472, 6, 702, 264, 73350, 364, 38103, 23569, 785, 4647, 364, 16970, 6, 702, 264, 73350, 364, 71585, 586, 23569, 785, 4647, 364, 1092, 500, 3819, 6, 702, 264, 73350, 364, 6756, 337, 23569, 785, 4647, 364, 95027, 6, 702, 264, 73350, 364, 49, 1064, 23569, 785, 4647, 364, 30531, 6, 702, 264, 73350, 364, 51, 1659, 23569, 785, 4647, 364, 45, 6044, 6, 702, 264, 73350, 364, 50360, 849, 533, 23569, 785, 4647, 364, 25830, 6, 702, 264, 73350, 364, 35, 355, 7891, 23569, 785, 4647, 364, 11976, 6, 702, 264, 73350, 364, 35186, 13847, 23569, 785, 4647, 364, 34, 7673, 6, 702, 264, 73350, 364, 19957, 380, 74225, 23569, 785, 4647, 364, 26884, 6, 702, 264, 73350, 364, 49010, 23569, 785, 4647, 364, 13552, 14295, 679, 6, 702, 264, 73350, 364, 15878, 36145, 23569, 785, 4647, 364, 32637, 6, 702, 264, 73350, 364, 22600, 726, 23569, 785, 4647, 364, 49649, 6, 702, 264, 73350, 364, 14986, 1717, 23569, 785, 4647, 364, 21751, 3866, 6, 702, 264, 73350, 364, 38, 2672, 20058, 23569, 785, 4647, 364, 78413, 6, 702, 264, 73350, 364, 693, 25976, 23569, 785, 4647, 364, 58289, 6, 702, 264, 73350, 364, 2304, 32137, 398, 23569, 785, 4647, 364, 27529, 6, 702, 264, 73350, 364, 1806, 704, 2181, 23569, 785, 4647, 364, 13552, 14295, 679, 6, 702, 264, 73350, 364, 46, 2024, 343, 5269, 23569, 785, 4647, 364, 12472, 6, 702, 264, 73350, 364, 10344, 258, 6704, 23569, 785, 4647, 364, 50437, 6, 702, 264, 73350, 364, 50437, 13464, 23569, 785, 4647, 364, 51962, 6, 702, 264, 73350, 364, 1336, 87, 3426, 23569, 785, 4647, 364, 52, 22945, 6, 702, 264, 73350, 364, 49642, 974, 23569, 785, 4647, 364, 29185, 6, 702, 264, 73350, 364, 32, 1831, 23569, 785, 4647, 364, 17082, 6, 702, 264, 73350, 364, 21209, 12280, 23569, 785, 4647, 364, 5715, 6, 702, 264, 73350, 364, 34193, 480, 23569, 785, 4647, 364, 51962, 6, 702, 264, 73350, 364, 641, 36743, 23569, 785, 4647, 364, 76418, 6, 702, 264, 73350, 364, 37, 41502, 88, 23569, 785, 4647, 364, 29185, 6, 702, 264, 73350, 364, 4049, 23569, 785, 4647, 364, 30531, 6, 702, 264, 73350, 364, 49506, 85, 2611, 23569, 785, 4647, 364, 10159, 6, 702, 264, 73350, 364, 74676, 23569, 785, 4647, 364, 40572, 6, 702, 264, 73350, 364, 33, 8347, 287, 23569, 785, 4647, 364, 10673, 11896, 6, 702, 264, 73350, 364, 49, 1129, 307, 23569, 785, 4647, 364, 24187, 6, 702, 264, 73350, 364, 10344, 24657, 23569, 785, 4647, 364, 25307, 6, 702, 264, 73350, 364, 34609, 57410, 23569, 785, 4647, 364, 34, 7673, 6, 702, 264, 73350, 364, 1806, 81, 42335, 23569, 785, 4647, 364, 3522, 6, 702, 264, 73350, 364, 35882, 23569, 785, 4647, 364, 5002, 6, 702, 264, 73350, 364, 16485, 23569, 785, 4647, 364, 32887, 6, 702, 264, 73350, 364, 42642, 23569, 785, 4647, 364, 40572, 6, 702, 264, 73350, 364, 3564, 23569, 785, 4647, 364, 40103, 408, 6, 702, 264, 73350, 364, 16284, 23569, 785, 4647, 364, 52, 22945, 6, 702, 264, 73350, 364, 21692, 782, 23569, 785, 4647, 364, 49649, 6, 702, 264, 73350, 364, 22560, 604, 23569, 785, 4647, 364, 54, 295, 6, 702, 264, 73350, 364, 35, 1121, 23569, 785, 4647, 364, 51, 541, 6, 702, 264, 73350, 364, 45948, 27561, 23569, 785, 4647, 364, 4454, 6, 702, 264, 73350, 364, 7839, 14378, 23569, 785, 4647, 364, 32847, 6, 702, 264, 73350, 364, 26843, 261, 1262, 23569, 785, 4647, 364, 32637, 6, 702, 264, 73350, 364, 9676, 23569, 785, 4647, 364, 36730, 6, 702, 264, 73350, 364, 13911, 23569, 785, 4647, 364, 16646, 6, 702, 264, 73350, 364, 14742, 23569, 785, 4647, 364, 95027, 6, 702, 264, 73350, 364, 12346, 3117, 23569, 785, 4647, 364, 10344, 6, 702, 264, 73350, 364, 35, 617, 23569, 785, 4647, 364, 51, 541, 6, 702, 264, 73350, 364, 51, 89614, 23569, 785, 4647, 364, 37, 4101, 34434, 6, 702, 264, 73350, 364, 37889, 2408, 23569, 785, 4647, 364, 32847, 6, 702, 264, 73350, 364, 47, 4673, 23569, 785, 4647, 364, 4454, 6, 702, 264, 73350, 364, 19871, 23569, 785, 4647, 364, 26907, 6, 702, 264, 73350, 364, 49, 20926, 23569, 785, 4647, 364, 43, 2950, 6, 702, 264, 73350, 364, 2753, 28013, 23569, 785, 4647, 364, 13911, 6, 702, 264, 73350, 364, 2016, 6441, 23569, 785, 4647, 364, 41198, 6, 702, 264, 73350, 364, 49471, 23569, 785, 4647, 364, 20170, 6, 702, 264, 73350, 364, 4923, 6657, 23569, 785, 4647, 364, 13911, 320, 4765, 21636, 702, 264, 73350, 364, 87208, 23569, 785, 4647, 364, 16646, 6, 702, 264, 73350, 364, 55559, 51186, 23569, 785, 4647, 364, 94984, 6, 702, 264, 73350, 364, 84643, 1262, 23569, 785, 4647, 364, 41365, 6, 702, 264, 73350, 364, 2662, 27304, 23569, 785, 4647, 364, 36730, 6, 702, 264, 73350, 364, 47, 16459, 23569, 785, 4647, 364, 7188, 6, 702, 264, 73350, 364, 1109, 719, 23569, 785, 4647, 364, 26907, 6, 702, 264, 73350, 364, 45941, 23569, 785, 4647, 364, 17507, 6, 702, 264, 73350, 364, 1649, 1419, 23569, 785, 4647, 364, 24187, 6, 702, 264, 73350, 364, 12472, 23569, 785, 4647, 364, 61457, 6, 702, 264, 73350, 364, 1918, 23646, 23569, 785, 4647, 364, 54, 295, 6, 702, 264, 73350, 364, 28253, 24867, 23569, 785, 4647, 364, 47586, 6, 702, 264, 73350, 364, 18573, 1262, 23569, 785, 4647, 364, 20170, 6, 702, 264, 73350, 364, 95275, 23569, 785, 4647, 364, 25830, 6, 702, 264, 73350, 364, 51, 1952, 65, 26522, 23569, 785, 4647, 364, 13911, 320, 4765, 21636, 702, 264, 73350, 364, 3882, 5742, 88, 23569, 785, 4647, 364, 10673, 11896, 6, 702, 264, 73350, 364, 47, 2185, 306, 23569, 785, 4647, 364, 30531, 6, 702, 264, 73350, 364, 44, 695, 23569, 785, 4647, 364, 41198, 6, 702, 264, 73350, 364, 5338, 23569, 785, 4647, 364, 36485, 6, 702, 264, 73350, 364, 50, 1751, 307, 23569, 785, 4647, 364, 28320, 6, 702, 264, 73350, 364, 25749, 1717, 23569, 785, 4647, 364, 33, 3248, 6, 702, 264, 73350, 364, 32, 917, 306, 23569, 785, 4647, 364, 4049, 6, 702, 264, 73350, 364, 49772, 19430, 23569, 785, 4647, 364, 2620, 32066, 6, 702, 264, 73350, 364, 59164, 23569, 785, 4647, 364, 43, 2950, 6, 702, 264, 73350, 364, 4923, 3249, 23569, 785, 4647, 364, 35, 617, 6, 702, 264, 73350, 364, 10344, 23569, 785, 4647, 364, 34291, 88, 6, 702, 264, 73350, 364, 40603, 23569, 785, 4647, 364, 45, 6044, 6, 702, 264, 73350, 364, 1092, 14318, 23569, 785, 4647, 364, 27177, 6, 702, 264, 73350, 364, 46874, 23569, 785, 4647, 364, 641, 12601, 6, 702, 264, 73350, 364, 66111, 66, 3073, 23569, 785, 4647, 364, 58289, 6, 702, 264, 73350, 364, 78627, 23569, 785, 4647, 364, 40572, 6, 702, 264, 73350, 364, 62604, 39104, 23569, 785, 4647, 364, 33, 3248, 6, 702, 264, 73350, 364, 22571, 590, 292, 23569, 785, 4647, 364, 18284, 6, 702, 264, 73350, 364, 36, 76869, 398, 23569, 785, 4647, 364, 58289, 6, 702, 264, 73350, 364, 7442, 2596, 812, 23569, 785, 4647, 364, 40103, 408, 6, 702, 264, 73350, 364, 10850, 705, 23569, 785, 4647, 364, 4454, 6, 702, 264, 73350, 364, 45094, 23569, 785, 4647, 364, 11065, 408, 6, 702, 264, 73350, 364, 3136, 2929, 23569, 785, 4647, 364, 25307, 6, 702, 264, 73350, 364, 38103, 23569, 785, 4647, 364, 11976, 6, 702, 264, 73350, 364, 4416, 3249, 23569, 785, 4647, 364, 2324, 6, 702, 264, 73350, 364, 34, 4659, 65, 23569, 785, 4647, 364, 34, 7673, 6, 702, 264, 73350, 364, 6740, 51451, 23569, 785, 4647, 364, 27177, 6, 702, 264, 73350, 364, 11395, 12462, 23569, 785, 4647, 364, 13911, 320, 4765, 21636, 702, 264, 73350, 364, 33, 765, 4246, 23569, 785, 4647, 364, 29185, 6, 702, 264, 73350, 364, 641, 35921, 349, 23569, 785, 4647, 364, 36485, 6, 702, 264, 73350, 364, 4416, 2181, 23569, 785, 4647, 364, 61457, 6, 702, 264, 73350, 364, 1806, 79, 19931, 928, 23569, 785, 4647, 364, 94984, 6, 702, 264, 73350, 364, 24187, 23569, 785, 4647, 364, 11065, 408, 6, 702, 264, 73350, 364, 35, 2142, 629, 23569, 785, 4647, 364, 1092, 500, 3819, 6, 702, 264, 73350, 364, 47, 18704, 23569, 785, 4647, 364, 5002, 6, 702, 264, 73350, 364, 1806, 75940, 23569, 785, 4647, 364, 35, 617, 6, 702, 264, 73350, 364, 4923, 3850, 23569, 785, 4647, 364, 25307, 6, 702, 264, 73350, 364, 57024, 23569, 785, 4647, 364, 12020, 1222, 6, 702, 264, 73350, 364, 48124, 23569, 785, 4647, 364, 32174, 6, 702, 264, 73350, 364, 39, 14980, 23569, 785, 4647, 364, 641, 12601, 6, 702, 264, 73350, 364, 19773, 23569, 785, 4647, 364, 7188, 6, 702, 264, 73350, 364, 71585, 7830, 23569, 785, 4647, 364, 12020, 1222, 6, 702, 264, 73350, 364, 49772, 1182, 23569, 785, 4647, 364, 76418, 6, 702, 264, 73350, 364, 40, 11130, 23569, 785, 4647, 364, 26907, 6, 702, 264, 73350, 364, 623, 3092, 23569, 785, 4647, 364, 15474, 494, 6, 702, 264, 73350, 364, 22171, 577, 23569, 785, 4647, 364, 50437, 6, 702, 264, 73350, 364, 2753, 302, 399, 68, 23569, 785, 4647, 364, 51, 491, 6, 702, 264, 73350, 364, 37, 2853, 23569, 785, 4647, 364, 16646, 6, 702, 264, 73350, 364, 15220, 306, 23569, 785, 4647, 364, 36125, 679, 6, 702, 264, 73350, 364, 10048, 1826, 2757, 23569, 785, 4647, 364, 18284, 6, 702, 264, 73350, 364, 88467, 23569, 785, 4647, 364, 85215, 6, 702, 264, 73350, 364, 4896, 47638, 657, 23569, 785, 4647, 364, 45, 6044, 6, 702, 264, 73350, 364, 19861, 2397, 23569, 785, 4647, 364, 27529, 6, 702, 264, 73350, 364, 80350, 457, 23569, 785, 4647, 364, 5715, 6, 702, 264, 73350, 364, 3889, 1484, 1238, 23569, 785, 4647, 364, 36125, 679, 6, 702, 264, 73350, 364, 16970, 23569, 785, 4647, 364, 95027, 6, 702, 264, 73350, 364, 8304, 705, 23569, 785, 4647, 364, 24056, 6, 702, 264, 73350, 364, 2715, 3556, 23569, 785, 4647, 364, 60970, 6, 702, 264, 73350, 364, 2662, 58195, 23569, 785, 4647, 364, 24187, 6, 702, 264, 73350, 364, 31019, 23569, 785, 4647, 364, 26884, 6, 702, 264, 73350, 364, 32174, 6758, 23569, 785, 4647, 364, 4049, 6, 702, 264, 73350, 364, 1806, 1866, 23569, 785, 4647, 364, 6828, 523, 6, 702, 264, 73350, 364, 42800, 23569, 785, 4647, 364, 78413, 6, 702, 264, 73350, 364, 3945, 810, 23569, 785, 4647, 364, 37, 4101, 34434, 6, 702, 264, 73350, 364, 3889, 69, 38155, 29636, 2, 13383, 198, 2461, 3110, 11, 421, 279, 1196, 3239, 374, 330, 40, 2776, 1602, 8205, 497, 279, 4647, 498, 1265, 5244, 389, 374, 330, 10622, 3263, 10548, 311, 279, 85406, 3403, 11, 279, 4647, 330, 10622, 1, 702, 279, 85406, 330, 4923, 6657, 1, 323, 330, 95275, 497, 304, 429, 1973, 13, 1446, 1184, 311, 633, 73350, 2750, 369, 330, 4923, 6657, 1, 323, 330, 95275, 497, 1077, 594, 1977, 1846, 525, 220, 20, 323, 220, 21, 15576, 11, 323, 8649, 279, 1102, 315, 1846, 73350, 2750, 600, 1734, 13, 508, 20, 11, 220, 21, 60, 448, 220, 20, 320, 2024, 6657, 8, 1156, 1221, 220, 21, 320, 82597, 8, 2474, 429, 374, 279, 1973, 807, 4994, 304, 279, 1140, 315, 85406, 3403, 382, 2, 13852, 271, 2610, 1231, 1618, 825, 476, 803, 5746, 311, 7789, 448, 279, 1196, 3239, 382, 2610, 525, 3897, 448, 729, 32628, 2878, 366, 15918, 1472, 15918, 29, 11874, 9492, 510, 27, 15918, 397, 4913, 1313, 788, 330, 1688, 497, 330, 1688, 788, 5212, 606, 788, 330, 455, 51393, 7831, 3142, 497, 330, 4684, 788, 330, 1949, 279, 73350, 897, 369, 264, 73350, 7110, 77, 1986, 5666, 4675, 264, 897, 429, 95164, 311, 279, 2701, 4718, 12539, 25, 314, 2105, 13193, 11693, 314, 2105, 20339, 7831, 3142, 11693, 314, 2105, 1313, 11693, 7245, 11662, 16215, 7245, 2102, 11693, 7245, 37134, 7831, 5162, 16215, 7245, 4684, 11693, 7245, 785, 897, 369, 419, 73350, 86865, 38154, 7245, 1313, 11693, 7245, 1700, 16215, 7245, 6279, 11693, 508, 2105, 20339, 7831, 3142, 75104, 11035, 77, 497, 330, 13786, 788, 5212, 13193, 788, 5212, 20339, 7831, 788, 5212, 1313, 788, 330, 917, 497, 330, 2102, 788, 330, 37134, 7831, 497, 330, 4684, 788, 330, 785, 73350, 311, 633, 279, 897, 369, 1189, 38154, 330, 1313, 788, 330, 1700, 497, 330, 6279, 788, 4383, 20339, 7831, 7914, 330, 35499, 7903, 788, 895, 2137, 330, 6627, 788, 830, 11248, 4913, 1313, 788, 330, 1688, 497, 330, 1688, 788, 5212, 606, 788, 330, 23493, 51393, 7831, 9146, 497, 330, 4684, 788, 330, 28959, 279, 73350, 2750, 498, 30403, 369, 279, 4647, 429, 374, 9760, 311, 279, 1196, 3239, 7110, 77, 1986, 5666, 4675, 264, 897, 429, 95164, 311, 279, 2701, 4718, 12539, 25, 314, 2105, 13193, 11693, 314, 2105, 5630, 11693, 314, 2105, 1313, 11693, 7245, 6117, 16215, 7245, 2102, 11693, 7245, 7188, 16215, 7245, 4684, 11693, 7245, 7188, 86865, 38154, 7245, 1313, 11693, 7245, 1700, 16215, 7245, 6279, 11693, 508, 2105, 5630, 75104, 11035, 77, 497, 330, 13786, 788, 5212, 13193, 788, 5212, 20339, 7831, 9146, 788, 5212, 3615, 788, 5212, 1313, 788, 330, 11662, 14345, 330, 1313, 788, 330, 1653, 497, 330, 2102, 788, 330, 37134, 7831, 24979, 497, 330, 4684, 788, 330, 785, 73350, 2750, 12159, 311, 279, 4647, 369, 279, 1196, 3239, 1189, 38154, 330, 1313, 788, 330, 1700, 497, 330, 6279, 788, 4383, 20339, 7831, 9146, 7914, 330, 35499, 7903, 788, 895, 2137, 330, 6627, 788, 830, 11248, 522, 15918, 1339, 2461, 1817, 729, 1618, 11, 470, 264, 2951, 1633, 448, 729, 829, 323, 5977, 2878, 220, 151657, 151658, 11874, 9492, 510, 151657, 198, 4913, 606, 788, 366, 1688, 11494, 8066, 330, 16370, 788, 366, 2116, 56080, 40432, 31296, 151658, 151645, 198, 151644, 872, 198, 4340, 653, 9898, 10515, 311, 5382, 304, 4017, 91299, 30, 151645, 198, 151644, 77091, 198]}, {"role": "assistant", "content": "", "token_ids": [], "generation_logprobs": []}, {"role": "user", "content": "", "token_ids": []}, {"role": "assistant", "content": "", "token_ids": [], "generation_logprobs": []}], "input_message_log": [{"role": "user", "content": "", "token_ids": [151644, 8948, 198, 2, 38297, 198, 2610, 525, 458, 32189, 8315, 13, 1446, 686, 387, 3897, 264, 1196, 3239, 323, 498, 1184, 311, 990, 279, 7375, 3897, 311, 498, 311, 8649, 1140, 315, 73350, 2750, 13, 1446, 686, 387, 3897, 448, 264, 15493, 315, 85406, 369, 1817, 13, 1752, 1817, 4647, 11, 4486, 1490, 421, 432, 594, 9760, 311, 279, 1196, 3239, 323, 633, 279, 2750, 369, 1817, 73350, 438, 8311, 13, 1446, 1969, 633, 323, 8649, 279, 2750, 369, 1449, 73350, 429, 7952, 304, 419, 1140, 13, 5209, 2550, 73350, 2750, 304, 279, 1973, 807, 4994, 304, 279, 2500, 85406, 3685, 382, 2, 16136, 85406, 198, 785, 4647, 364, 16970, 6, 702, 264, 73350, 364, 2662, 28488, 23569, 785, 4647, 364, 3522, 6, 702, 264, 73350, 364, 4896, 33066, 23569, 785, 4647, 364, 5002, 6, 702, 264, 73350, 364, 693, 586, 5838, 23569, 785, 4647, 364, 85215, 6, 702, 264, 73350, 364, 32, 1869, 23569, 785, 4647, 364, 17082, 6, 702, 264, 73350, 364, 54, 18504, 23569, 785, 4647, 364, 12020, 1222, 6, 702, 264, 73350, 364, 8137, 1182, 23569, 785, 4647, 364, 3522, 6, 702, 264, 73350, 364, 81789, 517, 23569, 785, 4647, 364, 1001, 865, 6, 702, 264, 73350, 364, 68457, 23569, 785, 4647, 364, 34291, 88, 6, 702, 264, 73350, 364, 38, 1574, 80049, 23569, 785, 4647, 364, 49, 1384, 6, 702, 264, 73350, 364, 7339, 2583, 23569, 785, 4647, 364, 10159, 6, 702, 264, 73350, 364, 6025, 12402, 23569, 785, 4647, 364, 94984, 6, 702, 264, 73350, 364, 39, 51978, 23569, 785, 4647, 364, 10159, 6, 702, 264, 73350, 364, 30092, 31509, 23569, 785, 4647, 364, 26884, 6, 702, 264, 73350, 364, 30896, 291, 23569, 785, 4647, 364, 41198, 6, 702, 264, 73350, 364, 47, 3748, 77873, 23569, 785, 4647, 364, 50437, 6, 702, 264, 73350, 364, 33648, 9287, 23569, 785, 4647, 364, 13911, 6, 702, 264, 73350, 364, 14008, 23569, 785, 4647, 364, 60970, 6, 702, 264, 73350, 364, 1092, 52899, 23569, 785, 4647, 364, 52, 22945, 6, 702, 264, 73350, 364, 76335, 2338, 591, 23569, 785, 4647, 364, 15474, 494, 6, 702, 264, 73350, 364, 21666, 2377, 23569, 785, 4647, 364, 32887, 6, 702, 264, 73350, 364, 24703, 23569, 785, 4647, 364, 2324, 6, 702, 264, 73350, 364, 87445, 23569, 785, 4647, 364, 34291, 88, 6, 702, 264, 73350, 364, 21988, 29123, 9193, 23569, 785, 4647, 364, 28320, 6, 702, 264, 73350, 364, 1912, 94204, 23569, 785, 4647, 364, 10344, 6, 702, 264, 73350, 364, 37, 1641, 23569, 785, 4647, 364, 1001, 865, 6, 702, 264, 73350, 364, 64469, 23569, 785, 4647, 364, 17507, 6, 702, 264, 73350, 364, 39838, 23569, 785, 4647, 364, 59665, 6, 702, 264, 73350, 364, 7839, 14378, 23569, 785, 4647, 364, 93088, 6, 702, 264, 73350, 364, 7442, 1659, 23569, 785, 4647, 364, 85215, 6, 702, 264, 73350, 364, 1912, 25172, 657, 23569, 785, 4647, 364, 36485, 6, 702, 264, 73350, 364, 44, 33917, 23569, 785, 4647, 364, 32174, 6, 702, 264, 73350, 364, 6828, 3187, 23569, 785, 4647, 364, 2620, 32066, 6, 702, 264, 73350, 364, 17507, 23569, 785, 4647, 364, 24056, 6, 702, 264, 73350, 364, 51, 3191, 291, 23569, 785, 4647, 364, 24056, 6, 702, 264, 73350, 364, 47, 1268, 6125, 23569, 785, 4647, 364, 49, 1384, 6, 702, 264, 73350, 364, 6464, 466, 88, 23569, 785, 4647, 364, 34, 81971, 398, 6, 702, 264, 73350, 364, 16001, 5276, 23569, 785, 4647, 364, 4049, 6, 702, 264, 73350, 364, 40468, 23569, 785, 4647, 364, 59665, 6, 702, 264, 73350, 364, 1806, 56521, 23569, 785, 4647, 364, 6828, 523, 6, 702, 264, 73350, 364, 623, 283, 1782, 471, 291, 23569, 785, 4647, 364, 34, 81971, 398, 6, 702, 264, 73350, 364, 47699, 23569, 785, 4647, 364, 93088, 6, 702, 264, 73350, 364, 37186, 3834, 23569, 785, 4647, 364, 41365, 6, 702, 264, 73350, 364, 25913, 23569, 785, 4647, 364, 54, 295, 6, 702, 264, 73350, 364, 4416, 7741, 23569, 785, 4647, 364, 59665, 6, 702, 264, 73350, 364, 45384, 48909, 23569, 785, 4647, 364, 7188, 6, 702, 264, 73350, 364, 36125, 679, 23569, 785, 4647, 364, 34, 81971, 398, 6, 702, 264, 73350, 364, 6406, 482, 1717, 23569, 785, 4647, 364, 51, 491, 6, 702, 264, 73350, 364, 98335, 23569, 785, 4647, 364, 47586, 6, 702, 264, 73350, 364, 61598, 21366, 23569, 785, 4647, 364, 21751, 3866, 6, 702, 264, 73350, 364, 81027, 287, 23569, 785, 4647, 364, 18284, 6, 702, 264, 73350, 364, 48983, 292, 23569, 785, 4647, 364, 27177, 6, 702, 264, 73350, 364, 7125, 28480, 23569, 785, 4647, 364, 32887, 6, 702, 264, 73350, 364, 78284, 23569, 785, 4647, 364, 36730, 6, 702, 264, 73350, 364, 46588, 371, 1717, 23569, 785, 4647, 364, 12472, 6, 702, 264, 73350, 364, 38103, 23569, 785, 4647, 364, 16970, 6, 702, 264, 73350, 364, 71585, 586, 23569, 785, 4647, 364, 1092, 500, 3819, 6, 702, 264, 73350, 364, 6756, 337, 23569, 785, 4647, 364, 95027, 6, 702, 264, 73350, 364, 49, 1064, 23569, 785, 4647, 364, 30531, 6, 702, 264, 73350, 364, 51, 1659, 23569, 785, 4647, 364, 45, 6044, 6, 702, 264, 73350, 364, 50360, 849, 533, 23569, 785, 4647, 364, 25830, 6, 702, 264, 73350, 364, 35, 355, 7891, 23569, 785, 4647, 364, 11976, 6, 702, 264, 73350, 364, 35186, 13847, 23569, 785, 4647, 364, 34, 7673, 6, 702, 264, 73350, 364, 19957, 380, 74225, 23569, 785, 4647, 364, 26884, 6, 702, 264, 73350, 364, 49010, 23569, 785, 4647, 364, 13552, 14295, 679, 6, 702, 264, 73350, 364, 15878, 36145, 23569, 785, 4647, 364, 32637, 6, 702, 264, 73350, 364, 22600, 726, 23569, 785, 4647, 364, 49649, 6, 702, 264, 73350, 364, 14986, 1717, 23569, 785, 4647, 364, 21751, 3866, 6, 702, 264, 73350, 364, 38, 2672, 20058, 23569, 785, 4647, 364, 78413, 6, 702, 264, 73350, 364, 693, 25976, 23569, 785, 4647, 364, 58289, 6, 702, 264, 73350, 364, 2304, 32137, 398, 23569, 785, 4647, 364, 27529, 6, 702, 264, 73350, 364, 1806, 704, 2181, 23569, 785, 4647, 364, 13552, 14295, 679, 6, 702, 264, 73350, 364, 46, 2024, 343, 5269, 23569, 785, 4647, 364, 12472, 6, 702, 264, 73350, 364, 10344, 258, 6704, 23569, 785, 4647, 364, 50437, 6, 702, 264, 73350, 364, 50437, 13464, 23569, 785, 4647, 364, 51962, 6, 702, 264, 73350, 364, 1336, 87, 3426, 23569, 785, 4647, 364, 52, 22945, 6, 702, 264, 73350, 364, 49642, 974, 23569, 785, 4647, 364, 29185, 6, 702, 264, 73350, 364, 32, 1831, 23569, 785, 4647, 364, 17082, 6, 702, 264, 73350, 364, 21209, 12280, 23569, 785, 4647, 364, 5715, 6, 702, 264, 73350, 364, 34193, 480, 23569, 785, 4647, 364, 51962, 6, 702, 264, 73350, 364, 641, 36743, 23569, 785, 4647, 364, 76418, 6, 702, 264, 73350, 364, 37, 41502, 88, 23569, 785, 4647, 364, 29185, 6, 702, 264, 73350, 364, 4049, 23569, 785, 4647, 364, 30531, 6, 702, 264, 73350, 364, 49506, 85, 2611, 23569, 785, 4647, 364, 10159, 6, 702, 264, 73350, 364, 74676, 23569, 785, 4647, 364, 40572, 6, 702, 264, 73350, 364, 33, 8347, 287, 23569, 785, 4647, 364, 10673, 11896, 6, 702, 264, 73350, 364, 49, 1129, 307, 23569, 785, 4647, 364, 24187, 6, 702, 264, 73350, 364, 10344, 24657, 23569, 785, 4647, 364, 25307, 6, 702, 264, 73350, 364, 34609, 57410, 23569, 785, 4647, 364, 34, 7673, 6, 702, 264, 73350, 364, 1806, 81, 42335, 23569, 785, 4647, 364, 3522, 6, 702, 264, 73350, 364, 35882, 23569, 785, 4647, 364, 5002, 6, 702, 264, 73350, 364, 16485, 23569, 785, 4647, 364, 32887, 6, 702, 264, 73350, 364, 42642, 23569, 785, 4647, 364, 40572, 6, 702, 264, 73350, 364, 3564, 23569, 785, 4647, 364, 40103, 408, 6, 702, 264, 73350, 364, 16284, 23569, 785, 4647, 364, 52, 22945, 6, 702, 264, 73350, 364, 21692, 782, 23569, 785, 4647, 364, 49649, 6, 702, 264, 73350, 364, 22560, 604, 23569, 785, 4647, 364, 54, 295, 6, 702, 264, 73350, 364, 35, 1121, 23569, 785, 4647, 364, 51, 541, 6, 702, 264, 73350, 364, 45948, 27561, 23569, 785, 4647, 364, 4454, 6, 702, 264, 73350, 364, 7839, 14378, 23569, 785, 4647, 364, 32847, 6, 702, 264, 73350, 364, 26843, 261, 1262, 23569, 785, 4647, 364, 32637, 6, 702, 264, 73350, 364, 9676, 23569, 785, 4647, 364, 36730, 6, 702, 264, 73350, 364, 13911, 23569, 785, 4647, 364, 16646, 6, 702, 264, 73350, 364, 14742, 23569, 785, 4647, 364, 95027, 6, 702, 264, 73350, 364, 12346, 3117, 23569, 785, 4647, 364, 10344, 6, 702, 264, 73350, 364, 35, 617, 23569, 785, 4647, 364, 51, 541, 6, 702, 264, 73350, 364, 51, 89614, 23569, 785, 4647, 364, 37, 4101, 34434, 6, 702, 264, 73350, 364, 37889, 2408, 23569, 785, 4647, 364, 32847, 6, 702, 264, 73350, 364, 47, 4673, 23569, 785, 4647, 364, 4454, 6, 702, 264, 73350, 364, 19871, 23569, 785, 4647, 364, 26907, 6, 702, 264, 73350, 364, 49, 20926, 23569, 785, 4647, 364, 43, 2950, 6, 702, 264, 73350, 364, 2753, 28013, 23569, 785, 4647, 364, 13911, 6, 702, 264, 73350, 364, 2016, 6441, 23569, 785, 4647, 364, 41198, 6, 702, 264, 73350, 364, 49471, 23569, 785, 4647, 364, 20170, 6, 702, 264, 73350, 364, 4923, 6657, 23569, 785, 4647, 364, 13911, 320, 4765, 21636, 702, 264, 73350, 364, 87208, 23569, 785, 4647, 364, 16646, 6, 702, 264, 73350, 364, 55559, 51186, 23569, 785, 4647, 364, 94984, 6, 702, 264, 73350, 364, 84643, 1262, 23569, 785, 4647, 364, 41365, 6, 702, 264, 73350, 364, 2662, 27304, 23569, 785, 4647, 364, 36730, 6, 702, 264, 73350, 364, 47, 16459, 23569, 785, 4647, 364, 7188, 6, 702, 264, 73350, 364, 1109, 719, 23569, 785, 4647, 364, 26907, 6, 702, 264, 73350, 364, 45941, 23569, 785, 4647, 364, 17507, 6, 702, 264, 73350, 364, 1649, 1419, 23569, 785, 4647, 364, 24187, 6, 702, 264, 73350, 364, 12472, 23569, 785, 4647, 364, 61457, 6, 702, 264, 73350, 364, 1918, 23646, 23569, 785, 4647, 364, 54, 295, 6, 702, 264, 73350, 364, 28253, 24867, 23569, 785, 4647, 364, 47586, 6, 702, 264, 73350, 364, 18573, 1262, 23569, 785, 4647, 364, 20170, 6, 702, 264, 73350, 364, 95275, 23569, 785, 4647, 364, 25830, 6, 702, 264, 73350, 364, 51, 1952, 65, 26522, 23569, 785, 4647, 364, 13911, 320, 4765, 21636, 702, 264, 73350, 364, 3882, 5742, 88, 23569, 785, 4647, 364, 10673, 11896, 6, 702, 264, 73350, 364, 47, 2185, 306, 23569, 785, 4647, 364, 30531, 6, 702, 264, 73350, 364, 44, 695, 23569, 785, 4647, 364, 41198, 6, 702, 264, 73350, 364, 5338, 23569, 785, 4647, 364, 36485, 6, 702, 264, 73350, 364, 50, 1751, 307, 23569, 785, 4647, 364, 28320, 6, 702, 264, 73350, 364, 25749, 1717, 23569, 785, 4647, 364, 33, 3248, 6, 702, 264, 73350, 364, 32, 917, 306, 23569, 785, 4647, 364, 4049, 6, 702, 264, 73350, 364, 49772, 19430, 23569, 785, 4647, 364, 2620, 32066, 6, 702, 264, 73350, 364, 59164, 23569, 785, 4647, 364, 43, 2950, 6, 702, 264, 73350, 364, 4923, 3249, 23569, 785, 4647, 364, 35, 617, 6, 702, 264, 73350, 364, 10344, 23569, 785, 4647, 364, 34291, 88, 6, 702, 264, 73350, 364, 40603, 23569, 785, 4647, 364, 45, 6044, 6, 702, 264, 73350, 364, 1092, 14318, 23569, 785, 4647, 364, 27177, 6, 702, 264, 73350, 364, 46874, 23569, 785, 4647, 364, 641, 12601, 6, 702, 264, 73350, 364, 66111, 66, 3073, 23569, 785, 4647, 364, 58289, 6, 702, 264, 73350, 364, 78627, 23569, 785, 4647, 364, 40572, 6, 702, 264, 73350, 364, 62604, 39104, 23569, 785, 4647, 364, 33, 3248, 6, 702, 264, 73350, 364, 22571, 590, 292, 23569, 785, 4647, 364, 18284, 6, 702, 264, 73350, 364, 36, 76869, 398, 23569, 785, 4647, 364, 58289, 6, 702, 264, 73350, 364, 7442, 2596, 812, 23569, 785, 4647, 364, 40103, 408, 6, 702, 264, 73350, 364, 10850, 705, 23569, 785, 4647, 364, 4454, 6, 702, 264, 73350, 364, 45094, 23569, 785, 4647, 364, 11065, 408, 6, 702, 264, 73350, 364, 3136, 2929, 23569, 785, 4647, 364, 25307, 6, 702, 264, 73350, 364, 38103, 23569, 785, 4647, 364, 11976, 6, 702, 264, 73350, 364, 4416, 3249, 23569, 785, 4647, 364, 2324, 6, 702, 264, 73350, 364, 34, 4659, 65, 23569, 785, 4647, 364, 34, 7673, 6, 702, 264, 73350, 364, 6740, 51451, 23569, 785, 4647, 364, 27177, 6, 702, 264, 73350, 364, 11395, 12462, 23569, 785, 4647, 364, 13911, 320, 4765, 21636, 702, 264, 73350, 364, 33, 765, 4246, 23569, 785, 4647, 364, 29185, 6, 702, 264, 73350, 364, 641, 35921, 349, 23569, 785, 4647, 364, 36485, 6, 702, 264, 73350, 364, 4416, 2181, 23569, 785, 4647, 364, 61457, 6, 702, 264, 73350, 364, 1806, 79, 19931, 928, 23569, 785, 4647, 364, 94984, 6, 702, 264, 73350, 364, 24187, 23569, 785, 4647, 364, 11065, 408, 6, 702, 264, 73350, 364, 35, 2142, 629, 23569, 785, 4647, 364, 1092, 500, 3819, 6, 702, 264, 73350, 364, 47, 18704, 23569, 785, 4647, 364, 5002, 6, 702, 264, 73350, 364, 1806, 75940, 23569, 785, 4647, 364, 35, 617, 6, 702, 264, 73350, 364, 4923, 3850, 23569, 785, 4647, 364, 25307, 6, 702, 264, 73350, 364, 57024, 23569, 785, 4647, 364, 12020, 1222, 6, 702, 264, 73350, 364, 48124, 23569, 785, 4647, 364, 32174, 6, 702, 264, 73350, 364, 39, 14980, 23569, 785, 4647, 364, 641, 12601, 6, 702, 264, 73350, 364, 19773, 23569, 785, 4647, 364, 7188, 6, 702, 264, 73350, 364, 71585, 7830, 23569, 785, 4647, 364, 12020, 1222, 6, 702, 264, 73350, 364, 49772, 1182, 23569, 785, 4647, 364, 76418, 6, 702, 264, 73350, 364, 40, 11130, 23569, 785, 4647, 364, 26907, 6, 702, 264, 73350, 364, 623, 3092, 23569, 785, 4647, 364, 15474, 494, 6, 702, 264, 73350, 364, 22171, 577, 23569, 785, 4647, 364, 50437, 6, 702, 264, 73350, 364, 2753, 302, 399, 68, 23569, 785, 4647, 364, 51, 491, 6, 702, 264, 73350, 364, 37, 2853, 23569, 785, 4647, 364, 16646, 6, 702, 264, 73350, 364, 15220, 306, 23569, 785, 4647, 364, 36125, 679, 6, 702, 264, 73350, 364, 10048, 1826, 2757, 23569, 785, 4647, 364, 18284, 6, 702, 264, 73350, 364, 88467, 23569, 785, 4647, 364, 85215, 6, 702, 264, 73350, 364, 4896, 47638, 657, 23569, 785, 4647, 364, 45, 6044, 6, 702, 264, 73350, 364, 19861, 2397, 23569, 785, 4647, 364, 27529, 6, 702, 264, 73350, 364, 80350, 457, 23569, 785, 4647, 364, 5715, 6, 702, 264, 73350, 364, 3889, 1484, 1238, 23569, 785, 4647, 364, 36125, 679, 6, 702, 264, 73350, 364, 16970, 23569, 785, 4647, 364, 95027, 6, 702, 264, 73350, 364, 8304, 705, 23569, 785, 4647, 364, 24056, 6, 702, 264, 73350, 364, 2715, 3556, 23569, 785, 4647, 364, 60970, 6, 702, 264, 73350, 364, 2662, 58195, 23569, 785, 4647, 364, 24187, 6, 702, 264, 73350, 364, 31019, 23569, 785, 4647, 364, 26884, 6, 702, 264, 73350, 364, 32174, 6758, 23569, 785, 4647, 364, 4049, 6, 702, 264, 73350, 364, 1806, 1866, 23569, 785, 4647, 364, 6828, 523, 6, 702, 264, 73350, 364, 42800, 23569, 785, 4647, 364, 78413, 6, 702, 264, 73350, 364, 3945, 810, 23569, 785, 4647, 364, 37, 4101, 34434, 6, 702, 264, 73350, 364, 3889, 69, 38155, 29636, 2, 13383, 198, 2461, 3110, 11, 421, 279, 1196, 3239, 374, 330, 40, 2776, 1602, 8205, 497, 279, 4647, 498, 1265, 5244, 389, 374, 330, 10622, 3263, 10548, 311, 279, 85406, 3403, 11, 279, 4647, 330, 10622, 1, 702, 279, 85406, 330, 4923, 6657, 1, 323, 330, 95275, 497, 304, 429, 1973, 13, 1446, 1184, 311, 633, 73350, 2750, 369, 330, 4923, 6657, 1, 323, 330, 95275, 497, 1077, 594, 1977, 1846, 525, 220, 20, 323, 220, 21, 15576, 11, 323, 8649, 279, 1102, 315, 1846, 73350, 2750, 600, 1734, 13, 508, 20, 11, 220, 21, 60, 448, 220, 20, 320, 2024, 6657, 8, 1156, 1221, 220, 21, 320, 82597, 8, 2474, 429, 374, 279, 1973, 807, 4994, 304, 279, 1140, 315, 85406, 3403, 382, 2, 13852, 271, 2610, 1231, 1618, 825, 476, 803, 5746, 311, 7789, 448, 279, 1196, 3239, 382, 2610, 525, 3897, 448, 729, 32628, 2878, 366, 15918, 1472, 15918, 29, 11874, 9492, 510, 27, 15918, 397, 4913, 1313, 788, 330, 1688, 497, 330, 1688, 788, 5212, 606, 788, 330, 455, 51393, 7831, 3142, 497, 330, 4684, 788, 330, 1949, 279, 73350, 897, 369, 264, 73350, 7110, 77, 1986, 5666, 4675, 264, 897, 429, 95164, 311, 279, 2701, 4718, 12539, 25, 314, 2105, 13193, 11693, 314, 2105, 20339, 7831, 3142, 11693, 314, 2105, 1313, 11693, 7245, 11662, 16215, 7245, 2102, 11693, 7245, 37134, 7831, 5162, 16215, 7245, 4684, 11693, 7245, 785, 897, 369, 419, 73350, 86865, 38154, 7245, 1313, 11693, 7245, 1700, 16215, 7245, 6279, 11693, 508, 2105, 20339, 7831, 3142, 75104, 11035, 77, 497, 330, 13786, 788, 5212, 13193, 788, 5212, 20339, 7831, 788, 5212, 1313, 788, 330, 917, 497, 330, 2102, 788, 330, 37134, 7831, 497, 330, 4684, 788, 330, 785, 73350, 311, 633, 279, 897, 369, 1189, 38154, 330, 1313, 788, 330, 1700, 497, 330, 6279, 788, 4383, 20339, 7831, 7914, 330, 35499, 7903, 788, 895, 2137, 330, 6627, 788, 830, 11248, 4913, 1313, 788, 330, 1688, 497, 330, 1688, 788, 5212, 606, 788, 330, 23493, 51393, 7831, 9146, 497, 330, 4684, 788, 330, 28959, 279, 73350, 2750, 498, 30403, 369, 279, 4647, 429, 374, 9760, 311, 279, 1196, 3239, 7110, 77, 1986, 5666, 4675, 264, 897, 429, 95164, 311, 279, 2701, 4718, 12539, 25, 314, 2105, 13193, 11693, 314, 2105, 5630, 11693, 314, 2105, 1313, 11693, 7245, 6117, 16215, 7245, 2102, 11693, 7245, 7188, 16215, 7245, 4684, 11693, 7245, 7188, 86865, 38154, 7245, 1313, 11693, 7245, 1700, 16215, 7245, 6279, 11693, 508, 2105, 5630, 75104, 11035, 77, 497, 330, 13786, 788, 5212, 13193, 788, 5212, 20339, 7831, 9146, 788, 5212, 3615, 788, 5212, 1313, 788, 330, 11662, 14345, 330, 1313, 788, 330, 1653, 497, 330, 2102, 788, 330, 37134, 7831, 24979, 497, 330, 4684, 788, 330, 785, 73350, 2750, 12159, 311, 279, 4647, 369, 279, 1196, 3239, 1189, 38154, 330, 1313, 788, 330, 1700, 497, 330, 6279, 788, 4383, 20339, 7831, 9146, 7914, 330, 35499, 7903, 788, 895, 2137, 330, 6627, 788, 830, 11248, 522, 15918, 1339, 2461, 1817, 729, 1618, 11, 470, 264, 2951, 1633, 448, 729, 829, 323, 5977, 2878, 220, 151657, 151658, 11874, 9492, 510, 151657, 198, 4913, 606, 788, 366, 1688, 11494, 8066, 330, 16370, 788, 366, 2116, 56080, 40432, 31296, 151658, 151645, 198, 151644, 872, 198, 4340, 653, 9898, 10515, 311, 5382, 304, 4017, 91299, 30, 151645, 198, 151644, 77091, 198]}]}]} \ No newline at end of file diff --git a/tests/unit/environments/test_penguin.py b/tests/unit/environments/test_penguin.py index 94385d6f57..2e2f5d6be7 100644 --- a/tests/unit/environments/test_penguin.py +++ b/tests/unit/environments/test_penguin.py @@ -11,7 +11,29 @@ # 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 copy import deepcopy +from pathlib import Path + import pytest +import ray +from yaml import safe_load + +from nemo_rl.distributed.ray_actor_environment_registry import ( + get_actor_python_env, +) +from nemo_rl.environments.penguin import Penguin, PenguinConfig, setup_penguin_config +from nemo_rl.models.generation.vllm import VllmGeneration + +# cluster and tokenizer are fixture imports +from tests.unit.models.generation.test_vllm_generation import ( + basic_vllm_test_config, + cluster, # noqa: F401 +) +from tests.unit.models.generation.test_vllm_generation import ( + tokenizer as penguin_tokenizer, # noqa: F401 +) try: from penguin import config_types # noqa: F401 @@ -28,3 +50,129 @@ ) def test_penguin_stub_module(): print(f"Penguin test successfully run! Penguin config_types module: {config_types}") + + +@pytest.fixture(scope="function") +def penguin_vllm_generation(cluster, penguin_tokenizer): # noqa: F811 + generation_config = deepcopy(basic_vllm_test_config) + master_config = { + "policy": { + "generation": generation_config, + }, + } + setup_penguin_config(master_config, penguin_tokenizer) + + generation_config["vllm_cfg"]["max_model_len"] = 16_384 + # This is the tool parser for Qwen/Qwen3-0.6B. This needs to be changed for other models. + generation_config["vllm_cfg"]["http_server_serving_chat_kwargs"] = { + "enable_auto_tools": True, + "tool_parser": "hermes", + } + + vllm_generation = VllmGeneration(cluster, generation_config) + + yield vllm_generation + + vllm_generation.shutdown() + + +@pytest.fixture(scope="function") +def penguin(penguin_vllm_generation): + """Create a Penguin actor for testing.""" + + yaml_str = r"""multineedle_resources_server: + resources_servers: + multineedle: + entrypoint: app.py + domain: instruction_following +multineedle_simple_agent: + responses_api_agents: + simple_agent: + entrypoint: app.py + resources_server: + type: resources_servers + name: multineedle_resources_server + model_server: + type: responses_api_models + name: openai_model +openai_model: + responses_api_models: + vllm_model: + entrypoint: app.py + base_url: ${policy_base_url} + api_key: ${policy_api_key} + model: ${policy_model_name} + return_token_id_information: true +""" + + config = PenguinConfig( + model_name=penguin_vllm_generation.cfg["model_name"], + base_urls=penguin_vllm_generation.dp_openai_server_base_urls, + initial_global_config_dict=safe_load(yaml_str), + ) + env = Penguin.options( + runtime_env={ + "py_executable": get_actor_python_env( + "nemo_rl.environments.penguin.Penguin" + ), + } + ).remote(config) + + # Blocking wait for penguin to spin up + ray.get(env.health_check.remote()) + + yield env + # Clean up the actor and wait for it to be killed + env.shutdown.remote() + ray.kill(env) + # Give some time for cleanup + time.sleep(0.1) + + +@pytest.fixture(scope="function") +def penguin_sanity_test_data(): + fpath = Path(__file__).parent / "penguin_test_data/test_penguin_sanity.json" + with open(fpath) as f: + data = json.load(f) + return data + + +@pytest.mark.skipif( + not PENGUIN_INSTALLED, + reason="Skipping Penguin test since Penguin is not installed!", +) +def test_penguin_sanity(penguin, penguin_sanity_test_data, penguin_vllm_generation): + """Test basic functionality of MathEnvironment step with simple messages.""" + + # We need to match NeMo RL generation config params before sending to Penguin + generation_config = penguin_vllm_generation.cfg + examples = penguin_sanity_test_data["input"] + for example in examples: + example["responses_create_params"]["temperature"] = generation_config[ + "temperature" + ] + example["responses_create_params"]["top_p"] = generation_config["top_p"] + + actual_result = ray.get( + penguin.run_rollouts.remote(penguin_sanity_test_data["input"]) + ) + expected_result = penguin_sanity_test_data["expected_output"] + + def _standardize_single_result(d: dict): + d = deepcopy(d) + d.pop("full_result", None) + + # We remove these fields and message from comparison since we cannot guarantee exact generation reproducibility + d["message_log"] = d["message_log"][:2] + for message in d["message_log"][1:]: + if "token_ids" in message: + message["token_ids"] = [] + if "generation_logprobs" in message: + message["generation_logprobs"] = [] + + return d + + def _standardize(l: list[dict]): + return list(map(_standardize_single_result, l)) + + assert _standardize(expected_result) == _standardize(actual_result) diff --git a/uv.lock b/uv.lock index f1375d8969..2019ca2b41 100644 --- a/uv.lock +++ b/uv.lock @@ -69,6 +69,21 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/8d/3f/95338030883d8c8b91223b4e21744b04d11b161a3ef117295d8241f50ab4/accessible_pygments-0.0.5-py3-none-any.whl", hash = "sha256:88ae3211e68a1d0b011504b2ffc1691feafce124b845bd072ab6f9f66f34d4b7", size = 1395903, upload-time = "2024-05-10T11:23:08.421Z" }, ] +[[package]] +name = "accumulation-tree" +version = "0.6.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ac/dc/4ffda8a22b6af3f41bcec07ddfebe723218976eaa016cefbc904634a4e85/accumulation_tree-0.6.4.tar.gz", hash = "sha256:5f907667e4106b5ba140b6b871e1902eb2a93d429b92f8a9f7ddb2bee7704334", size = 12635, upload-time = "2024-09-26T21:50:40.627Z" } + +[[package]] +name = "aiofiles" +version = "24.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0b/03/a88171e277e8caa88a4c77808c20ebb04ba74cc4681bf1e9416c862de237/aiofiles-24.1.0.tar.gz", hash = "sha256:22a075c9e5a3810f0c2e48f3008c94d68c65d763b9b03857924c99e57355166c", size = 30247, upload-time = "2024-06-24T11:02:03.584Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a5/45/30bb92d442636f570cb5651bc661f52b610e2eec3f891a5dc3a4c3667db0/aiofiles-24.1.0-py3-none-any.whl", hash = "sha256:b4ec55f4195e3eb5d7abd1bf7e061763e864dd4954231fb8539a0ef8bb8260e5", size = 15896, upload-time = "2024-06-24T11:02:01.529Z" }, +] + [[package]] name = "aiohappyeyeballs" version = "2.6.1" @@ -233,6 +248,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/af/0f/3b8fdc946b4d9cc8cc1e8af42c4e409468c84441b933d037e101b3d72d86/astroid-3.3.11-py3-none-any.whl", hash = "sha256:54c760ae8322ece1abd213057c4b5bba7c49818853fc901ef09719a60dbf9dec", size = 275612, upload-time = "2025-07-13T18:04:21.07Z" }, ] +[[package]] +name = "asttokens" +version = "2.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/45/1d/f03bcb60c4a3212e15f99a56085d93093a497718adf828d050b9d675da81/asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0", size = 62284, upload-time = "2023-10-26T10:03:05.06Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24", size = 27764, upload-time = "2023-10-26T10:03:01.789Z" }, +] + [[package]] name = "attrs" version = "25.3.0" @@ -242,6 +269,62 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/77/06/bb80f5f86020c4551da315d78b3ab75e8228f89f0162f2c3a819e407941a/attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3", size = 63815, upload-time = "2025-03-13T11:10:21.14Z" }, ] +[[package]] +name = "audioop-lts" +version = "0.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/38/53/946db57842a50b2da2e0c1e34bd37f36f5aadba1a929a3971c5d7841dbca/audioop_lts-0.2.2.tar.gz", hash = "sha256:64d0c62d88e67b98a1a5e71987b7aa7b5bcffc7dcee65b635823dbdd0a8dbbd0", size = 30686, upload-time = "2025-08-05T16:43:17.409Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/d4/94d277ca941de5a507b07f0b592f199c22454eeaec8f008a286b3fbbacd6/audioop_lts-0.2.2-cp313-abi3-macosx_10_13_universal2.whl", hash = "sha256:fd3d4602dc64914d462924a08c1a9816435a2155d74f325853c1f1ac3b2d9800", size = 46523, upload-time = "2025-08-05T16:42:20.836Z" }, + { url = "https://files.pythonhosted.org/packages/f8/5a/656d1c2da4b555920ce4177167bfeb8623d98765594af59702c8873f60ec/audioop_lts-0.2.2-cp313-abi3-macosx_10_13_x86_64.whl", hash = "sha256:550c114a8df0aafe9a05442a1162dfc8fec37e9af1d625ae6060fed6e756f303", size = 27455, upload-time = "2025-08-05T16:42:22.283Z" }, + { url = "https://files.pythonhosted.org/packages/1b/83/ea581e364ce7b0d41456fb79d6ee0ad482beda61faf0cab20cbd4c63a541/audioop_lts-0.2.2-cp313-abi3-macosx_11_0_arm64.whl", hash = "sha256:9a13dc409f2564de15dd68be65b462ba0dde01b19663720c68c1140c782d1d75", size = 26997, upload-time = "2025-08-05T16:42:23.849Z" }, + { url = "https://files.pythonhosted.org/packages/b8/3b/e8964210b5e216e5041593b7d33e97ee65967f17c282e8510d19c666dab4/audioop_lts-0.2.2-cp313-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:51c916108c56aa6e426ce611946f901badac950ee2ddaf302b7ed35d9958970d", size = 85844, upload-time = "2025-08-05T16:42:25.208Z" }, + { url = "https://files.pythonhosted.org/packages/c7/2e/0a1c52faf10d51def20531a59ce4c706cb7952323b11709e10de324d6493/audioop_lts-0.2.2-cp313-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:47eba38322370347b1c47024defbd36374a211e8dd5b0dcbce7b34fdb6f8847b", size = 85056, upload-time = "2025-08-05T16:42:26.559Z" }, + { url = "https://files.pythonhosted.org/packages/75/e8/cd95eef479656cb75ab05dfece8c1f8c395d17a7c651d88f8e6e291a63ab/audioop_lts-0.2.2-cp313-abi3-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ba7c3a7e5f23e215cb271516197030c32aef2e754252c4c70a50aaff7031a2c8", size = 93892, upload-time = "2025-08-05T16:42:27.902Z" }, + { url = "https://files.pythonhosted.org/packages/5c/1e/a0c42570b74f83efa5cca34905b3eef03f7ab09fe5637015df538a7f3345/audioop_lts-0.2.2-cp313-abi3-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:def246fe9e180626731b26e89816e79aae2276f825420a07b4a647abaa84becc", size = 96660, upload-time = "2025-08-05T16:42:28.9Z" }, + { url = "https://files.pythonhosted.org/packages/50/d5/8a0ae607ca07dbb34027bac8db805498ee7bfecc05fd2c148cc1ed7646e7/audioop_lts-0.2.2-cp313-abi3-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e160bf9df356d841bb6c180eeeea1834085464626dc1b68fa4e1d59070affdc3", size = 79143, upload-time = "2025-08-05T16:42:29.929Z" }, + { url = "https://files.pythonhosted.org/packages/12/17/0d28c46179e7910bfb0bb62760ccb33edb5de973052cb2230b662c14ca2e/audioop_lts-0.2.2-cp313-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:4b4cd51a57b698b2d06cb9993b7ac8dfe89a3b2878e96bc7948e9f19ff51dba6", size = 84313, upload-time = "2025-08-05T16:42:30.949Z" }, + { url = "https://files.pythonhosted.org/packages/84/ba/bd5d3806641564f2024e97ca98ea8f8811d4e01d9b9f9831474bc9e14f9e/audioop_lts-0.2.2-cp313-abi3-musllinux_1_2_ppc64le.whl", hash = "sha256:4a53aa7c16a60a6857e6b0b165261436396ef7293f8b5c9c828a3a203147ed4a", size = 93044, upload-time = "2025-08-05T16:42:31.959Z" }, + { url = "https://files.pythonhosted.org/packages/f9/5e/435ce8d5642f1f7679540d1e73c1c42d933331c0976eb397d1717d7f01a3/audioop_lts-0.2.2-cp313-abi3-musllinux_1_2_riscv64.whl", hash = "sha256:3fc38008969796f0f689f1453722a0f463da1b8a6fbee11987830bfbb664f623", size = 78766, upload-time = "2025-08-05T16:42:33.302Z" }, + { url = "https://files.pythonhosted.org/packages/ae/3b/b909e76b606cbfd53875693ec8c156e93e15a1366a012f0b7e4fb52d3c34/audioop_lts-0.2.2-cp313-abi3-musllinux_1_2_s390x.whl", hash = "sha256:15ab25dd3e620790f40e9ead897f91e79c0d3ce65fe193c8ed6c26cffdd24be7", size = 87640, upload-time = "2025-08-05T16:42:34.854Z" }, + { url = "https://files.pythonhosted.org/packages/30/e7/8f1603b4572d79b775f2140d7952f200f5e6c62904585d08a01f0a70393a/audioop_lts-0.2.2-cp313-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:03f061a1915538fd96272bac9551841859dbb2e3bf73ebe4a23ef043766f5449", size = 86052, upload-time = "2025-08-05T16:42:35.839Z" }, + { url = "https://files.pythonhosted.org/packages/b5/96/c37846df657ccdda62ba1ae2b6534fa90e2e1b1742ca8dcf8ebd38c53801/audioop_lts-0.2.2-cp313-abi3-win32.whl", hash = "sha256:3bcddaaf6cc5935a300a8387c99f7a7fbbe212a11568ec6cf6e4bc458c048636", size = 26185, upload-time = "2025-08-05T16:42:37.04Z" }, + { url = "https://files.pythonhosted.org/packages/34/a5/9d78fdb5b844a83da8a71226c7bdae7cc638861085fff7a1d707cb4823fa/audioop_lts-0.2.2-cp313-abi3-win_amd64.whl", hash = "sha256:a2c2a947fae7d1062ef08c4e369e0ba2086049a5e598fda41122535557012e9e", size = 30503, upload-time = "2025-08-05T16:42:38.427Z" }, + { url = "https://files.pythonhosted.org/packages/34/25/20d8fde083123e90c61b51afb547bb0ea7e77bab50d98c0ab243d02a0e43/audioop_lts-0.2.2-cp313-abi3-win_arm64.whl", hash = "sha256:5f93a5db13927a37d2d09637ccca4b2b6b48c19cd9eda7b17a2e9f77edee6a6f", size = 24173, upload-time = "2025-08-05T16:42:39.704Z" }, + { url = "https://files.pythonhosted.org/packages/58/a7/0a764f77b5c4ac58dc13c01a580f5d32ae8c74c92020b961556a43e26d02/audioop_lts-0.2.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:73f80bf4cd5d2ca7814da30a120de1f9408ee0619cc75da87d0641273d202a09", size = 47096, upload-time = "2025-08-05T16:42:40.684Z" }, + { url = "https://files.pythonhosted.org/packages/aa/ed/ebebedde1a18848b085ad0fa54b66ceb95f1f94a3fc04f1cd1b5ccb0ed42/audioop_lts-0.2.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:106753a83a25ee4d6f473f2be6b0966fc1c9af7e0017192f5531a3e7463dce58", size = 27748, upload-time = "2025-08-05T16:42:41.992Z" }, + { url = "https://files.pythonhosted.org/packages/cb/6e/11ca8c21af79f15dbb1c7f8017952ee8c810c438ce4e2b25638dfef2b02c/audioop_lts-0.2.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:fbdd522624141e40948ab3e8cdae6e04c748d78710e9f0f8d4dae2750831de19", size = 27329, upload-time = "2025-08-05T16:42:42.987Z" }, + { url = "https://files.pythonhosted.org/packages/84/52/0022f93d56d85eec5da6b9da6a958a1ef09e80c39f2cc0a590c6af81dcbb/audioop_lts-0.2.2-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:143fad0311e8209ece30a8dbddab3b65ab419cbe8c0dde6e8828da25999be911", size = 92407, upload-time = "2025-08-05T16:42:44.336Z" }, + { url = "https://files.pythonhosted.org/packages/87/1d/48a889855e67be8718adbc7a01f3c01d5743c325453a5e81cf3717664aad/audioop_lts-0.2.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dfbbc74ec68a0fd08cfec1f4b5e8cca3d3cd7de5501b01c4b5d209995033cde9", size = 91811, upload-time = "2025-08-05T16:42:45.325Z" }, + { url = "https://files.pythonhosted.org/packages/98/a6/94b7213190e8077547ffae75e13ed05edc488653c85aa5c41472c297d295/audioop_lts-0.2.2-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cfcac6aa6f42397471e4943e0feb2244549db5c5d01efcd02725b96af417f3fe", size = 100470, upload-time = "2025-08-05T16:42:46.468Z" }, + { url = "https://files.pythonhosted.org/packages/e9/e9/78450d7cb921ede0cfc33426d3a8023a3bda755883c95c868ee36db8d48d/audioop_lts-0.2.2-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:752d76472d9804ac60f0078c79cdae8b956f293177acd2316cd1e15149aee132", size = 103878, upload-time = "2025-08-05T16:42:47.576Z" }, + { url = "https://files.pythonhosted.org/packages/4f/e2/cd5439aad4f3e34ae1ee852025dc6aa8f67a82b97641e390bf7bd9891d3e/audioop_lts-0.2.2-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:83c381767e2cc10e93e40281a04852facc4cd9334550e0f392f72d1c0a9c5753", size = 84867, upload-time = "2025-08-05T16:42:49.003Z" }, + { url = "https://files.pythonhosted.org/packages/68/4b/9d853e9076c43ebba0d411e8d2aa19061083349ac695a7d082540bad64d0/audioop_lts-0.2.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c0022283e9556e0f3643b7c3c03f05063ca72b3063291834cca43234f20c60bb", size = 90001, upload-time = "2025-08-05T16:42:50.038Z" }, + { url = "https://files.pythonhosted.org/packages/58/26/4bae7f9d2f116ed5593989d0e521d679b0d583973d203384679323d8fa85/audioop_lts-0.2.2-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:a2d4f1513d63c795e82948e1305f31a6d530626e5f9f2605408b300ae6095093", size = 99046, upload-time = "2025-08-05T16:42:51.111Z" }, + { url = "https://files.pythonhosted.org/packages/b2/67/a9f4fb3e250dda9e9046f8866e9fa7d52664f8985e445c6b4ad6dfb55641/audioop_lts-0.2.2-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:c9c8e68d8b4a56fda8c025e538e639f8c5953f5073886b596c93ec9b620055e7", size = 84788, upload-time = "2025-08-05T16:42:52.198Z" }, + { url = "https://files.pythonhosted.org/packages/70/f7/3de86562db0121956148bcb0fe5b506615e3bcf6e63c4357a612b910765a/audioop_lts-0.2.2-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:96f19de485a2925314f5020e85911fb447ff5fbef56e8c7c6927851b95533a1c", size = 94472, upload-time = "2025-08-05T16:42:53.59Z" }, + { url = "https://files.pythonhosted.org/packages/f1/32/fd772bf9078ae1001207d2df1eef3da05bea611a87dd0e8217989b2848fa/audioop_lts-0.2.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e541c3ef484852ef36545f66209444c48b28661e864ccadb29daddb6a4b8e5f5", size = 92279, upload-time = "2025-08-05T16:42:54.632Z" }, + { url = "https://files.pythonhosted.org/packages/4f/41/affea7181592ab0ab560044632571a38edaf9130b84928177823fbf3176a/audioop_lts-0.2.2-cp313-cp313t-win32.whl", hash = "sha256:d5e73fa573e273e4f2e5ff96f9043858a5e9311e94ffefd88a3186a910c70917", size = 26568, upload-time = "2025-08-05T16:42:55.627Z" }, + { url = "https://files.pythonhosted.org/packages/28/2b/0372842877016641db8fc54d5c88596b542eec2f8f6c20a36fb6612bf9ee/audioop_lts-0.2.2-cp313-cp313t-win_amd64.whl", hash = "sha256:9191d68659eda01e448188f60364c7763a7ca6653ed3f87ebb165822153a8547", size = 30942, upload-time = "2025-08-05T16:42:56.674Z" }, + { url = "https://files.pythonhosted.org/packages/ee/ca/baf2b9cc7e96c179bb4a54f30fcd83e6ecb340031bde68f486403f943768/audioop_lts-0.2.2-cp313-cp313t-win_arm64.whl", hash = "sha256:c174e322bb5783c099aaf87faeb240c8d210686b04bd61dfd05a8e5a83d88969", size = 24603, upload-time = "2025-08-05T16:42:57.571Z" }, + { url = "https://files.pythonhosted.org/packages/5c/73/413b5a2804091e2c7d5def1d618e4837f1cb82464e230f827226278556b7/audioop_lts-0.2.2-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:f9ee9b52f5f857fbaf9d605a360884f034c92c1c23021fb90b2e39b8e64bede6", size = 47104, upload-time = "2025-08-05T16:42:58.518Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8c/daa3308dc6593944410c2c68306a5e217f5c05b70a12e70228e7dd42dc5c/audioop_lts-0.2.2-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:49ee1a41738a23e98d98b937a0638357a2477bc99e61b0f768a8f654f45d9b7a", size = 27754, upload-time = "2025-08-05T16:43:00.132Z" }, + { url = "https://files.pythonhosted.org/packages/4e/86/c2e0f627168fcf61781a8f72cab06b228fe1da4b9fa4ab39cfb791b5836b/audioop_lts-0.2.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5b00be98ccd0fc123dcfad31d50030d25fcf31488cde9e61692029cd7394733b", size = 27332, upload-time = "2025-08-05T16:43:01.666Z" }, + { url = "https://files.pythonhosted.org/packages/c7/bd/35dce665255434f54e5307de39e31912a6f902d4572da7c37582809de14f/audioop_lts-0.2.2-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:a6d2e0f9f7a69403e388894d4ca5ada5c47230716a03f2847cfc7bd1ecb589d6", size = 92396, upload-time = "2025-08-05T16:43:02.991Z" }, + { url = "https://files.pythonhosted.org/packages/2d/d2/deeb9f51def1437b3afa35aeb729d577c04bcd89394cb56f9239a9f50b6f/audioop_lts-0.2.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f9b0b8a03ef474f56d1a842af1a2e01398b8f7654009823c6d9e0ecff4d5cfbf", size = 91811, upload-time = "2025-08-05T16:43:04.096Z" }, + { url = "https://files.pythonhosted.org/packages/76/3b/09f8b35b227cee28cc8231e296a82759ed80c1a08e349811d69773c48426/audioop_lts-0.2.2-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2b267b70747d82125f1a021506565bdc5609a2b24bcb4773c16d79d2bb260bbd", size = 100483, upload-time = "2025-08-05T16:43:05.085Z" }, + { url = "https://files.pythonhosted.org/packages/0b/15/05b48a935cf3b130c248bfdbdea71ce6437f5394ee8533e0edd7cfd93d5e/audioop_lts-0.2.2-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0337d658f9b81f4cd0fdb1f47635070cc084871a3d4646d9de74fdf4e7c3d24a", size = 103885, upload-time = "2025-08-05T16:43:06.197Z" }, + { url = "https://files.pythonhosted.org/packages/83/80/186b7fce6d35b68d3d739f228dc31d60b3412105854edb975aa155a58339/audioop_lts-0.2.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:167d3b62586faef8b6b2275c3218796b12621a60e43f7e9d5845d627b9c9b80e", size = 84899, upload-time = "2025-08-05T16:43:07.291Z" }, + { url = "https://files.pythonhosted.org/packages/49/89/c78cc5ac6cb5828f17514fb12966e299c850bc885e80f8ad94e38d450886/audioop_lts-0.2.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:0d9385e96f9f6da847f4d571ce3cb15b5091140edf3db97276872647ce37efd7", size = 89998, upload-time = "2025-08-05T16:43:08.335Z" }, + { url = "https://files.pythonhosted.org/packages/4c/4b/6401888d0c010e586c2ca50fce4c903d70a6bb55928b16cfbdfd957a13da/audioop_lts-0.2.2-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:48159d96962674eccdca9a3df280e864e8ac75e40a577cc97c5c42667ffabfc5", size = 99046, upload-time = "2025-08-05T16:43:09.367Z" }, + { url = "https://files.pythonhosted.org/packages/de/f8/c874ca9bb447dae0e2ef2e231f6c4c2b0c39e31ae684d2420b0f9e97ee68/audioop_lts-0.2.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:8fefe5868cd082db1186f2837d64cfbfa78b548ea0d0543e9b28935ccce81ce9", size = 84843, upload-time = "2025-08-05T16:43:10.749Z" }, + { url = "https://files.pythonhosted.org/packages/3e/c0/0323e66f3daebc13fd46b36b30c3be47e3fc4257eae44f1e77eb828c703f/audioop_lts-0.2.2-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:58cf54380c3884fb49fdd37dfb7a772632b6701d28edd3e2904743c5e1773602", size = 94490, upload-time = "2025-08-05T16:43:12.131Z" }, + { url = "https://files.pythonhosted.org/packages/98/6b/acc7734ac02d95ab791c10c3f17ffa3584ccb9ac5c18fd771c638ed6d1f5/audioop_lts-0.2.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:088327f00488cdeed296edd9215ca159f3a5a5034741465789cad403fcf4bec0", size = 92297, upload-time = "2025-08-05T16:43:13.139Z" }, + { url = "https://files.pythonhosted.org/packages/13/c3/c3dc3f564ce6877ecd2a05f8d751b9b27a8c320c2533a98b0c86349778d0/audioop_lts-0.2.2-cp314-cp314t-win32.whl", hash = "sha256:068aa17a38b4e0e7de771c62c60bbca2455924b67a8814f3b0dee92b5820c0b3", size = 27331, upload-time = "2025-08-05T16:43:14.19Z" }, + { url = "https://files.pythonhosted.org/packages/72/bb/b4608537e9ffcb86449091939d52d24a055216a36a8bf66b936af8c3e7ac/audioop_lts-0.2.2-cp314-cp314t-win_amd64.whl", hash = "sha256:a5bf613e96f49712073de86f20dbdd4014ca18efd4d34ed18c75bd808337851b", size = 31697, upload-time = "2025-08-05T16:43:15.193Z" }, + { url = "https://files.pythonhosted.org/packages/f6/22/91616fe707a5c5510de2cac9b046a30defe7007ba8a0c04f9c08f27df312/audioop_lts-0.2.2-cp314-cp314t-win_arm64.whl", hash = "sha256:b492c3b040153e68b9fdaff5913305aaaba5bb433d8a7f73d5cf6a64ed3cc1dd", size = 25206, upload-time = "2025-08-05T16:43:16.444Z" }, +] + [[package]] name = "av" version = "15.0.0" @@ -408,6 +491,44 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e4/f0/ca5a00dd8fe3768ecff54756457dd0c69ed8e1cd09d0f7c21599477b5d5b/botocore-1.40.38-py3-none-any.whl", hash = "sha256:7d60a7557db3a58f9394e7ecec1f6b87495ce947eb713f29d53aee83a6e9dc71", size = 14025193, upload-time = "2025-09-24T19:23:11.093Z" }, ] +[[package]] +name = "brotli" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2f/c2/f9e977608bdf958650638c3f1e28f85a1b075f075ebbe77db8555463787b/Brotli-1.1.0.tar.gz", hash = "sha256:81de08ac11bcb85841e440c13611c00b67d3bf82698314928d0b676362546724", size = 7372270, upload-time = "2023-09-07T14:05:41.643Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5c/d0/5373ae13b93fe00095a58efcbce837fd470ca39f703a235d2a999baadfbc/Brotli-1.1.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:32d95b80260d79926f5fab3c41701dbb818fde1c9da590e77e571eefd14abe28", size = 815693, upload-time = "2024-10-18T12:32:23.824Z" }, + { url = "https://files.pythonhosted.org/packages/8e/48/f6e1cdf86751300c288c1459724bfa6917a80e30dbfc326f92cea5d3683a/Brotli-1.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b760c65308ff1e462f65d69c12e4ae085cff3b332d894637f6273a12a482d09f", size = 422489, upload-time = "2024-10-18T12:32:25.641Z" }, + { url = "https://files.pythonhosted.org/packages/06/88/564958cedce636d0f1bed313381dfc4b4e3d3f6015a63dae6146e1b8c65c/Brotli-1.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:316cc9b17edf613ac76b1f1f305d2a748f1b976b033b049a6ecdfd5612c70409", size = 873081, upload-time = "2023-09-07T14:03:57.967Z" }, + { url = "https://files.pythonhosted.org/packages/58/79/b7026a8bb65da9a6bb7d14329fd2bd48d2b7f86d7329d5cc8ddc6a90526f/Brotli-1.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:caf9ee9a5775f3111642d33b86237b05808dafcd6268faa492250e9b78046eb2", size = 446244, upload-time = "2023-09-07T14:03:59.319Z" }, + { url = "https://files.pythonhosted.org/packages/e5/18/c18c32ecea41b6c0004e15606e274006366fe19436b6adccc1ae7b2e50c2/Brotli-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70051525001750221daa10907c77830bc889cb6d865cc0b813d9db7fefc21451", size = 2906505, upload-time = "2023-09-07T14:04:01.327Z" }, + { url = "https://files.pythonhosted.org/packages/08/c8/69ec0496b1ada7569b62d85893d928e865df29b90736558d6c98c2031208/Brotli-1.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7f4bf76817c14aa98cc6697ac02f3972cb8c3da93e9ef16b9c66573a68014f91", size = 2944152, upload-time = "2023-09-07T14:04:03.033Z" }, + { url = "https://files.pythonhosted.org/packages/ab/fb/0517cea182219d6768113a38167ef6d4eb157a033178cc938033a552ed6d/Brotli-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0c5516f0aed654134a2fc936325cc2e642f8a0e096d075209672eb321cff408", size = 2919252, upload-time = "2023-09-07T14:04:04.675Z" }, + { url = "https://files.pythonhosted.org/packages/c7/53/73a3431662e33ae61a5c80b1b9d2d18f58dfa910ae8dd696e57d39f1a2f5/Brotli-1.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6c3020404e0b5eefd7c9485ccf8393cfb75ec38ce75586e046573c9dc29967a0", size = 2845955, upload-time = "2023-09-07T14:04:06.585Z" }, + { url = "https://files.pythonhosted.org/packages/55/ac/bd280708d9c5ebdbf9de01459e625a3e3803cce0784f47d633562cf40e83/Brotli-1.1.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4ed11165dd45ce798d99a136808a794a748d5dc38511303239d4e2363c0695dc", size = 2914304, upload-time = "2023-09-07T14:04:08.668Z" }, + { url = "https://files.pythonhosted.org/packages/76/58/5c391b41ecfc4527d2cc3350719b02e87cb424ef8ba2023fb662f9bf743c/Brotli-1.1.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:4093c631e96fdd49e0377a9c167bfd75b6d0bad2ace734c6eb20b348bc3ea180", size = 2814452, upload-time = "2023-09-07T14:04:10.736Z" }, + { url = "https://files.pythonhosted.org/packages/c7/4e/91b8256dfe99c407f174924b65a01f5305e303f486cc7a2e8a5d43c8bec3/Brotli-1.1.0-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:7e4c4629ddad63006efa0ef968c8e4751c5868ff0b1c5c40f76524e894c50248", size = 2938751, upload-time = "2023-09-07T14:04:12.875Z" }, + { url = "https://files.pythonhosted.org/packages/5a/a6/e2a39a5d3b412938362bbbeba5af904092bf3f95b867b4a3eb856104074e/Brotli-1.1.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:861bf317735688269936f755fa136a99d1ed526883859f86e41a5d43c61d8966", size = 2933757, upload-time = "2023-09-07T14:04:14.551Z" }, + { url = "https://files.pythonhosted.org/packages/13/f0/358354786280a509482e0e77c1a5459e439766597d280f28cb097642fc26/Brotli-1.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:87a3044c3a35055527ac75e419dfa9f4f3667a1e887ee80360589eb8c90aabb9", size = 2936146, upload-time = "2024-10-18T12:32:27.257Z" }, + { url = "https://files.pythonhosted.org/packages/80/f7/daf538c1060d3a88266b80ecc1d1c98b79553b3f117a485653f17070ea2a/Brotli-1.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c5529b34c1c9d937168297f2c1fde7ebe9ebdd5e121297ff9c043bdb2ae3d6fb", size = 2848055, upload-time = "2024-10-18T12:32:29.376Z" }, + { url = "https://files.pythonhosted.org/packages/ad/cf/0eaa0585c4077d3c2d1edf322d8e97aabf317941d3a72d7b3ad8bce004b0/Brotli-1.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:ca63e1890ede90b2e4454f9a65135a4d387a4585ff8282bb72964fab893f2111", size = 3035102, upload-time = "2024-10-18T12:32:31.371Z" }, + { url = "https://files.pythonhosted.org/packages/d8/63/1c1585b2aa554fe6dbce30f0c18bdbc877fa9a1bf5ff17677d9cca0ac122/Brotli-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e79e6520141d792237c70bcd7a3b122d00f2613769ae0cb61c52e89fd3443839", size = 2930029, upload-time = "2024-10-18T12:32:33.293Z" }, + { url = "https://files.pythonhosted.org/packages/5f/3b/4e3fd1893eb3bbfef8e5a80d4508bec17a57bb92d586c85c12d28666bb13/Brotli-1.1.0-cp312-cp312-win32.whl", hash = "sha256:5f4d5ea15c9382135076d2fb28dde923352fe02951e66935a9efaac8f10e81b0", size = 333276, upload-time = "2023-09-07T14:04:16.49Z" }, + { url = "https://files.pythonhosted.org/packages/3d/d5/942051b45a9e883b5b6e98c041698b1eb2012d25e5948c58d6bf85b1bb43/Brotli-1.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:906bc3a79de8c4ae5b86d3d75a8b77e44404b0f4261714306e3ad248d8ab0951", size = 357255, upload-time = "2023-09-07T14:04:17.83Z" }, + { url = "https://files.pythonhosted.org/packages/0a/9f/fb37bb8ffc52a8da37b1c03c459a8cd55df7a57bdccd8831d500e994a0ca/Brotli-1.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8bf32b98b75c13ec7cf774164172683d6e7891088f6316e54425fde1efc276d5", size = 815681, upload-time = "2024-10-18T12:32:34.942Z" }, + { url = "https://files.pythonhosted.org/packages/06/b3/dbd332a988586fefb0aa49c779f59f47cae76855c2d00f450364bb574cac/Brotli-1.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7bc37c4d6b87fb1017ea28c9508b36bbcb0c3d18b4260fcdf08b200c74a6aee8", size = 422475, upload-time = "2024-10-18T12:32:36.485Z" }, + { url = "https://files.pythonhosted.org/packages/bb/80/6aaddc2f63dbcf2d93c2d204e49c11a9ec93a8c7c63261e2b4bd35198283/Brotli-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c0ef38c7a7014ffac184db9e04debe495d317cc9c6fb10071f7fefd93100a4f", size = 2906173, upload-time = "2024-10-18T12:32:37.978Z" }, + { url = "https://files.pythonhosted.org/packages/ea/1d/e6ca79c96ff5b641df6097d299347507d39a9604bde8915e76bf026d6c77/Brotli-1.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91d7cc2a76b5567591d12c01f019dd7afce6ba8cba6571187e21e2fc418ae648", size = 2943803, upload-time = "2024-10-18T12:32:39.606Z" }, + { url = "https://files.pythonhosted.org/packages/ac/a3/d98d2472e0130b7dd3acdbb7f390d478123dbf62b7d32bda5c830a96116d/Brotli-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a93dde851926f4f2678e704fadeb39e16c35d8baebd5252c9fd94ce8ce68c4a0", size = 2918946, upload-time = "2024-10-18T12:32:41.679Z" }, + { url = "https://files.pythonhosted.org/packages/c4/a5/c69e6d272aee3e1423ed005d8915a7eaa0384c7de503da987f2d224d0721/Brotli-1.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f0db75f47be8b8abc8d9e31bc7aad0547ca26f24a54e6fd10231d623f183d089", size = 2845707, upload-time = "2024-10-18T12:32:43.478Z" }, + { url = "https://files.pythonhosted.org/packages/58/9f/4149d38b52725afa39067350696c09526de0125ebfbaab5acc5af28b42ea/Brotli-1.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6967ced6730aed543b8673008b5a391c3b1076d834ca438bbd70635c73775368", size = 2936231, upload-time = "2024-10-18T12:32:45.224Z" }, + { url = "https://files.pythonhosted.org/packages/5a/5a/145de884285611838a16bebfdb060c231c52b8f84dfbe52b852a15780386/Brotli-1.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:7eedaa5d036d9336c95915035fb57422054014ebdeb6f3b42eac809928e40d0c", size = 2848157, upload-time = "2024-10-18T12:32:46.894Z" }, + { url = "https://files.pythonhosted.org/packages/50/ae/408b6bfb8525dadebd3b3dd5b19d631da4f7d46420321db44cd99dcf2f2c/Brotli-1.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:d487f5432bf35b60ed625d7e1b448e2dc855422e87469e3f450aa5552b0eb284", size = 3035122, upload-time = "2024-10-18T12:32:48.844Z" }, + { url = "https://files.pythonhosted.org/packages/af/85/a94e5cfaa0ca449d8f91c3d6f78313ebf919a0dbd55a100c711c6e9655bc/Brotli-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:832436e59afb93e1836081a20f324cb185836c617659b07b129141a8426973c7", size = 2930206, upload-time = "2024-10-18T12:32:51.198Z" }, + { url = "https://files.pythonhosted.org/packages/c2/f0/a61d9262cd01351df22e57ad7c34f66794709acab13f34be2675f45bf89d/Brotli-1.1.0-cp313-cp313-win32.whl", hash = "sha256:43395e90523f9c23a3d5bdf004733246fba087f2948f87ab28015f12359ca6a0", size = 333804, upload-time = "2024-10-18T12:32:52.661Z" }, + { url = "https://files.pythonhosted.org/packages/7e/c1/ec214e9c94000d1c1974ec67ced1c970c148aa6b8d8373066123fc3dbf06/Brotli-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:9011560a466d2eb3f5a6e4929cf4a09be405c64154e12df0dd72713f6500e32b", size = 358517, upload-time = "2024-10-18T12:32:54.066Z" }, +] + [[package]] name = "cachetools" version = "5.5.2" @@ -986,6 +1107,20 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/28/4d/1192acbcdc5e843f5e5d51f6e8788f2b60a9fe0b578ac385ded67a0b0b26/depyf-0.19.0-py3-none-any.whl", hash = "sha256:040b35fc0997d49df024b7d094f2a7836f91e9ed02f49982dd37e70aa3285ad5", size = 39034, upload-time = "2025-04-20T08:07:37.036Z" }, ] +[[package]] +name = "devtools" +version = "0.12.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asttokens" }, + { name = "executing" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/84/75/b78198620640d394bc435c17bb49db18419afdd6cfa3ed8bcfe14034ec80/devtools-0.12.2.tar.gz", hash = "sha256:efceab184cb35e3a11fa8e602cc4fadacaa2e859e920fc6f87bf130b69885507", size = 75005, upload-time = "2023-09-03T16:57:00.679Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/ae/afb1487556e2dc827a17097aac8158a25b433a345386f0e249f6d2694ccb/devtools-0.12.2-py3-none-any.whl", hash = "sha256:c366e3de1df4cdd635f1ad8cbcd3af01a384d7abda71900e68d43b04eb6aaca7", size = 19411, upload-time = "2023-09-03T16:56:59.049Z" }, +] + [[package]] name = "dill" version = "0.3.8" @@ -1094,6 +1229,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d7/ee/bf0adb559ad3c786f12bcbc9296b3f5675f529199bef03e2df281fa1fadb/email_validator-2.2.0-py3-none-any.whl", hash = "sha256:561977c2d73ce3611850a06fa56b414621e0c8faa9d66f2611407d87465da631", size = 33521, upload-time = "2024-06-20T11:30:28.248Z" }, ] +[[package]] +name = "executing" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/28/c14e053b6762b1044f34a13aab6859bbf40456d37d23aa286ac24cfd9a5d/executing-2.2.1.tar.gz", hash = "sha256:3632cc370565f6648cc328b32435bd120a1e4ebb20c77e3fdde9a13cd1e533c4", size = 1129488, upload-time = "2025-09-01T09:48:10.866Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl", hash = "sha256:760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017", size = 28317, upload-time = "2025-09-01T09:48:08.5Z" }, +] + [[package]] name = "fastapi" version = "0.116.1" @@ -1174,6 +1318,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/28/a3/2ad0a0a69662fd4cf556ab8074f0de978ee9b56bff6ddb4e656df4aa9e8e/fastrlock-0.8.3-cp313-cp313-win_amd64.whl", hash = "sha256:8d1d6a28291b4ace2a66bd7b49a9ed9c762467617febdd9ab356b867ed901af8", size = 30472, upload-time = "2024-12-17T11:02:37.983Z" }, ] +[[package]] +name = "ffmpy" +version = "0.6.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b1/11/d1cf103779efaf9fd165b4ef5f7b8f44c4e692bb44638082d3980f83afc8/ffmpy-0.6.2.tar.gz", hash = "sha256:24fdb5d6476e7d73e6d5aaa95a6c34f66a214fb0f905d459609b3ba452dd940b", size = 4958, upload-time = "2025-10-08T06:34:50.063Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8b/57/699c8b55080248027b97a910818de7ce32e87e2dd60de5e81cff3a353745/ffmpy-0.6.2-py3-none-any.whl", hash = "sha256:ce6b8582e236a272f39f341dc37e7ddf313cb061eca52f9acf1b60062fe8e2fe", size = 5495, upload-time = "2025-10-08T06:34:48.665Z" }, +] + [[package]] name = "filelock" version = "3.19.1" @@ -1433,6 +1586,63 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/86/f1/62a193f0227cf15a920390abe675f386dec35f7ae3ffe6da582d3ade42c7/googleapis_common_protos-1.70.0-py3-none-any.whl", hash = "sha256:b8bfcca8c25a2bb253e0e0b0adaf8c00773e5e6af6fd92397576680b807e0fd8", size = 294530, upload-time = "2025-04-14T10:17:01.271Z" }, ] +[[package]] +name = "gradio" +version = "5.49.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiofiles" }, + { name = "anyio" }, + { name = "audioop-lts", marker = "python_full_version >= '3.13'" }, + { name = "brotli" }, + { name = "fastapi" }, + { name = "ffmpy" }, + { name = "gradio-client" }, + { name = "groovy" }, + { name = "httpx" }, + { name = "huggingface-hub" }, + { name = "jinja2" }, + { name = "markupsafe" }, + { name = "numpy" }, + { name = "orjson" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "pillow" }, + { name = "pydantic" }, + { name = "pydub" }, + { name = "python-multipart" }, + { name = "pyyaml" }, + { name = "ruff" }, + { name = "safehttpx" }, + { name = "semantic-version" }, + { name = "starlette" }, + { name = "tomlkit" }, + { name = "typer" }, + { name = "typing-extensions" }, + { name = "uvicorn" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/83/67/17b3969a686f204dfb8f06bd34d1423bcba1df8a2f3674f115ca427188b7/gradio-5.49.1.tar.gz", hash = "sha256:c06faa324ae06c3892c8b4b4e73c706c4520d380f6b9e52a3c02dc53a7627ba9", size = 73784504, upload-time = "2025-10-08T20:18:40.4Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8d/95/1c25fbcabfa201ab79b016c8716a4ac0f846121d4bbfd2136ffb6d87f31e/gradio-5.49.1-py3-none-any.whl", hash = "sha256:1b19369387801a26a6ba7fd2f74d46c5b0e2ac9ddef14f24ddc0d11fb19421b7", size = 63523840, upload-time = "2025-10-08T20:18:34.585Z" }, +] + +[[package]] +name = "gradio-client" +version = "1.13.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "fsspec" }, + { name = "httpx" }, + { name = "huggingface-hub" }, + { name = "packaging" }, + { name = "typing-extensions" }, + { name = "websockets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3e/a9/a3beb0ece8c05c33e6376b790fa42e0dd157abca8220cf639b249a597467/gradio_client-1.13.3.tar.gz", hash = "sha256:869b3e67e0f7a0f40df8c48c94de99183265cf4b7b1d9bd4623e336d219ffbe7", size = 323253, upload-time = "2025-09-26T19:51:21.7Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6e/0b/337b74504681b5dde39f20d803bb09757f9973ecdc65fd4e819d4b11faf7/gradio_client-1.13.3-py3-none-any.whl", hash = "sha256:3f63e4d33a2899c1a12b10fe3cf77b82a6919ff1a1fb6391f6aa225811aa390c", size = 325350, upload-time = "2025-09-26T19:51:20.288Z" }, +] + [[package]] name = "graphene" version = "3.4.3" @@ -1550,6 +1760,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/34/b2/056fd4642637cd4627d59ccf2be3f62dd41b8da98e49300eeecd8d4faaa5/grimp-3.9-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:9ddcbfd11d6e6b813121db1116f6b3c4930ab433a949522b5e80542c5da3d805", size = 2092059, upload-time = "2025-05-05T13:46:41.095Z" }, ] +[[package]] +name = "groovy" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/52/36/bbdede67400277bef33d3ec0e6a31750da972c469f75966b4930c753218f/groovy-0.1.2.tar.gz", hash = "sha256:25c1dc09b3f9d7e292458aa762c6beb96ea037071bf5e917fc81fb78d2231083", size = 17325, upload-time = "2025-02-28T20:24:56.068Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/27/3d6dcadc8a3214d8522c1e7f6a19554e33659be44546d44a2f7572ac7d2a/groovy-0.1.2-py3-none-any.whl", hash = "sha256:7f7975bab18c729a257a8b1ae9dcd70b7cafb1720481beae47719af57c35fa64", size = 14090, upload-time = "2025-02-28T20:24:55.152Z" }, +] + [[package]] name = "grpcio" version = "1.74.0" @@ -3726,6 +3945,55 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/05/75/7d591371c6c39c73de5ce5da5a2cc7b72d1d1cd3f8f4638f553c01c37b11/opentelemetry_semantic_conventions-0.57b0-py3-none-any.whl", hash = "sha256:757f7e76293294f124c827e514c2a3144f191ef175b069ce8d1211e1e38e9e78", size = 201627, upload-time = "2025-07-29T15:12:04.174Z" }, ] +[[package]] +name = "orjson" +version = "3.11.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/be/4d/8df5f83256a809c22c4d6792ce8d43bb503be0fb7a8e4da9025754b09658/orjson-3.11.3.tar.gz", hash = "sha256:1c0603b1d2ffcd43a411d64797a19556ef76958aef1c182f22dc30860152a98a", size = 5482394, upload-time = "2025-08-26T17:46:43.171Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3d/b0/a7edab2a00cdcb2688e1c943401cb3236323e7bfd2839815c6131a3742f4/orjson-3.11.3-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:8c752089db84333e36d754c4baf19c0e1437012242048439c7e80eb0e6426e3b", size = 238259, upload-time = "2025-08-26T17:45:15.093Z" }, + { url = "https://files.pythonhosted.org/packages/e1/c6/ff4865a9cc398a07a83342713b5932e4dc3cb4bf4bc04e8f83dedfc0d736/orjson-3.11.3-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:9b8761b6cf04a856eb544acdd82fc594b978f12ac3602d6374a7edb9d86fd2c2", size = 127633, upload-time = "2025-08-26T17:45:16.417Z" }, + { url = "https://files.pythonhosted.org/packages/6e/e6/e00bea2d9472f44fe8794f523e548ce0ad51eb9693cf538a753a27b8bda4/orjson-3.11.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b13974dc8ac6ba22feaa867fc19135a3e01a134b4f7c9c28162fed4d615008a", size = 123061, upload-time = "2025-08-26T17:45:17.673Z" }, + { url = "https://files.pythonhosted.org/packages/54/31/9fbb78b8e1eb3ac605467cb846e1c08d0588506028b37f4ee21f978a51d4/orjson-3.11.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f83abab5bacb76d9c821fd5c07728ff224ed0e52d7a71b7b3de822f3df04e15c", size = 127956, upload-time = "2025-08-26T17:45:19.172Z" }, + { url = "https://files.pythonhosted.org/packages/36/88/b0604c22af1eed9f98d709a96302006915cfd724a7ebd27d6dd11c22d80b/orjson-3.11.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e6fbaf48a744b94091a56c62897b27c31ee2da93d826aa5b207131a1e13d4064", size = 130790, upload-time = "2025-08-26T17:45:20.586Z" }, + { url = "https://files.pythonhosted.org/packages/0e/9d/1c1238ae9fffbfed51ba1e507731b3faaf6b846126a47e9649222b0fd06f/orjson-3.11.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc779b4f4bba2847d0d2940081a7b6f7b5877e05408ffbb74fa1faf4a136c424", size = 132385, upload-time = "2025-08-26T17:45:22.036Z" }, + { url = "https://files.pythonhosted.org/packages/a3/b5/c06f1b090a1c875f337e21dd71943bc9d84087f7cdf8c6e9086902c34e42/orjson-3.11.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd4b909ce4c50faa2192da6bb684d9848d4510b736b0611b6ab4020ea6fd2d23", size = 135305, upload-time = "2025-08-26T17:45:23.4Z" }, + { url = "https://files.pythonhosted.org/packages/a0/26/5f028c7d81ad2ebbf84414ba6d6c9cac03f22f5cd0d01eb40fb2d6a06b07/orjson-3.11.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:524b765ad888dc5518bbce12c77c2e83dee1ed6b0992c1790cc5fb49bb4b6667", size = 132875, upload-time = "2025-08-26T17:45:25.182Z" }, + { url = "https://files.pythonhosted.org/packages/fe/d4/b8df70d9cfb56e385bf39b4e915298f9ae6c61454c8154a0f5fd7efcd42e/orjson-3.11.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:84fd82870b97ae3cdcea9d8746e592b6d40e1e4d4527835fc520c588d2ded04f", size = 130940, upload-time = "2025-08-26T17:45:27.209Z" }, + { url = "https://files.pythonhosted.org/packages/da/5e/afe6a052ebc1a4741c792dd96e9f65bf3939d2094e8b356503b68d48f9f5/orjson-3.11.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:fbecb9709111be913ae6879b07bafd4b0785b44c1eb5cac8ac76da048b3885a1", size = 403852, upload-time = "2025-08-26T17:45:28.478Z" }, + { url = "https://files.pythonhosted.org/packages/f8/90/7bbabafeb2ce65915e9247f14a56b29c9334003536009ef5b122783fe67e/orjson-3.11.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9dba358d55aee552bd868de348f4736ca5a4086d9a62e2bfbbeeb5629fe8b0cc", size = 146293, upload-time = "2025-08-26T17:45:29.86Z" }, + { url = "https://files.pythonhosted.org/packages/27/b3/2d703946447da8b093350570644a663df69448c9d9330e5f1d9cce997f20/orjson-3.11.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:eabcf2e84f1d7105f84580e03012270c7e97ecb1fb1618bda395061b2a84a049", size = 135470, upload-time = "2025-08-26T17:45:31.243Z" }, + { url = "https://files.pythonhosted.org/packages/38/70/b14dcfae7aff0e379b0119c8a812f8396678919c431efccc8e8a0263e4d9/orjson-3.11.3-cp312-cp312-win32.whl", hash = "sha256:3782d2c60b8116772aea8d9b7905221437fdf53e7277282e8d8b07c220f96cca", size = 136248, upload-time = "2025-08-26T17:45:32.567Z" }, + { url = "https://files.pythonhosted.org/packages/35/b8/9e3127d65de7fff243f7f3e53f59a531bf6bb295ebe5db024c2503cc0726/orjson-3.11.3-cp312-cp312-win_amd64.whl", hash = "sha256:79b44319268af2eaa3e315b92298de9a0067ade6e6003ddaef72f8e0bedb94f1", size = 131437, upload-time = "2025-08-26T17:45:34.949Z" }, + { url = "https://files.pythonhosted.org/packages/51/92/a946e737d4d8a7fd84a606aba96220043dcc7d6988b9e7551f7f6d5ba5ad/orjson-3.11.3-cp312-cp312-win_arm64.whl", hash = "sha256:0e92a4e83341ef79d835ca21b8bd13e27c859e4e9e4d7b63defc6e58462a3710", size = 125978, upload-time = "2025-08-26T17:45:36.422Z" }, + { url = "https://files.pythonhosted.org/packages/fc/79/8932b27293ad35919571f77cb3693b5906cf14f206ef17546052a241fdf6/orjson-3.11.3-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:af40c6612fd2a4b00de648aa26d18186cd1322330bd3a3cc52f87c699e995810", size = 238127, upload-time = "2025-08-26T17:45:38.146Z" }, + { url = "https://files.pythonhosted.org/packages/1c/82/cb93cd8cf132cd7643b30b6c5a56a26c4e780c7a145db6f83de977b540ce/orjson-3.11.3-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:9f1587f26c235894c09e8b5b7636a38091a9e6e7fe4531937534749c04face43", size = 127494, upload-time = "2025-08-26T17:45:39.57Z" }, + { url = "https://files.pythonhosted.org/packages/a4/b8/2d9eb181a9b6bb71463a78882bcac1027fd29cf62c38a40cc02fc11d3495/orjson-3.11.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:61dcdad16da5bb486d7227a37a2e789c429397793a6955227cedbd7252eb5a27", size = 123017, upload-time = "2025-08-26T17:45:40.876Z" }, + { url = "https://files.pythonhosted.org/packages/b4/14/a0e971e72d03b509190232356d54c0f34507a05050bd026b8db2bf2c192c/orjson-3.11.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:11c6d71478e2cbea0a709e8a06365fa63da81da6498a53e4c4f065881d21ae8f", size = 127898, upload-time = "2025-08-26T17:45:42.188Z" }, + { url = "https://files.pythonhosted.org/packages/8e/af/dc74536722b03d65e17042cc30ae586161093e5b1f29bccda24765a6ae47/orjson-3.11.3-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff94112e0098470b665cb0ed06efb187154b63649403b8d5e9aedeb482b4548c", size = 130742, upload-time = "2025-08-26T17:45:43.511Z" }, + { url = "https://files.pythonhosted.org/packages/62/e6/7a3b63b6677bce089fe939353cda24a7679825c43a24e49f757805fc0d8a/orjson-3.11.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae8b756575aaa2a855a75192f356bbda11a89169830e1439cfb1a3e1a6dde7be", size = 132377, upload-time = "2025-08-26T17:45:45.525Z" }, + { url = "https://files.pythonhosted.org/packages/fc/cd/ce2ab93e2e7eaf518f0fd15e3068b8c43216c8a44ed82ac2b79ce5cef72d/orjson-3.11.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c9416cc19a349c167ef76135b2fe40d03cea93680428efee8771f3e9fb66079d", size = 135313, upload-time = "2025-08-26T17:45:46.821Z" }, + { url = "https://files.pythonhosted.org/packages/d0/b4/f98355eff0bd1a38454209bbc73372ce351ba29933cb3e2eba16c04b9448/orjson-3.11.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b822caf5b9752bc6f246eb08124c3d12bf2175b66ab74bac2ef3bbf9221ce1b2", size = 132908, upload-time = "2025-08-26T17:45:48.126Z" }, + { url = "https://files.pythonhosted.org/packages/eb/92/8f5182d7bc2a1bed46ed960b61a39af8389f0ad476120cd99e67182bfb6d/orjson-3.11.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:414f71e3bdd5573893bf5ecdf35c32b213ed20aa15536fe2f588f946c318824f", size = 130905, upload-time = "2025-08-26T17:45:49.414Z" }, + { url = "https://files.pythonhosted.org/packages/1a/60/c41ca753ce9ffe3d0f67b9b4c093bdd6e5fdb1bc53064f992f66bb99954d/orjson-3.11.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:828e3149ad8815dc14468f36ab2a4b819237c155ee1370341b91ea4c8672d2ee", size = 403812, upload-time = "2025-08-26T17:45:51.085Z" }, + { url = "https://files.pythonhosted.org/packages/dd/13/e4a4f16d71ce1868860db59092e78782c67082a8f1dc06a3788aef2b41bc/orjson-3.11.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ac9e05f25627ffc714c21f8dfe3a579445a5c392a9c8ae7ba1d0e9fb5333f56e", size = 146277, upload-time = "2025-08-26T17:45:52.851Z" }, + { url = "https://files.pythonhosted.org/packages/8d/8b/bafb7f0afef9344754a3a0597a12442f1b85a048b82108ef2c956f53babd/orjson-3.11.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e44fbe4000bd321d9f3b648ae46e0196d21577cf66ae684a96ff90b1f7c93633", size = 135418, upload-time = "2025-08-26T17:45:54.806Z" }, + { url = "https://files.pythonhosted.org/packages/60/d4/bae8e4f26afb2c23bea69d2f6d566132584d1c3a5fe89ee8c17b718cab67/orjson-3.11.3-cp313-cp313-win32.whl", hash = "sha256:2039b7847ba3eec1f5886e75e6763a16e18c68a63efc4b029ddf994821e2e66b", size = 136216, upload-time = "2025-08-26T17:45:57.182Z" }, + { url = "https://files.pythonhosted.org/packages/88/76/224985d9f127e121c8cad882cea55f0ebe39f97925de040b75ccd4b33999/orjson-3.11.3-cp313-cp313-win_amd64.whl", hash = "sha256:29be5ac4164aa8bdcba5fa0700a3c9c316b411d8ed9d39ef8a882541bd452fae", size = 131362, upload-time = "2025-08-26T17:45:58.56Z" }, + { url = "https://files.pythonhosted.org/packages/e2/cf/0dce7a0be94bd36d1346be5067ed65ded6adb795fdbe3abd234c8d576d01/orjson-3.11.3-cp313-cp313-win_arm64.whl", hash = "sha256:18bd1435cb1f2857ceb59cfb7de6f92593ef7b831ccd1b9bfb28ca530e539dce", size = 125989, upload-time = "2025-08-26T17:45:59.95Z" }, + { url = "https://files.pythonhosted.org/packages/ef/77/d3b1fef1fc6aaeed4cbf3be2b480114035f4df8fa1a99d2dac1d40d6e924/orjson-3.11.3-cp314-cp314-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:cf4b81227ec86935568c7edd78352a92e97af8da7bd70bdfdaa0d2e0011a1ab4", size = 238115, upload-time = "2025-08-26T17:46:01.669Z" }, + { url = "https://files.pythonhosted.org/packages/e4/6d/468d21d49bb12f900052edcfbf52c292022d0a323d7828dc6376e6319703/orjson-3.11.3-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:bc8bc85b81b6ac9fc4dae393a8c159b817f4c2c9dee5d12b773bddb3b95fc07e", size = 127493, upload-time = "2025-08-26T17:46:03.466Z" }, + { url = "https://files.pythonhosted.org/packages/67/46/1e2588700d354aacdf9e12cc2d98131fb8ac6f31ca65997bef3863edb8ff/orjson-3.11.3-cp314-cp314-manylinux_2_34_aarch64.whl", hash = "sha256:88dcfc514cfd1b0de038443c7b3e6a9797ffb1b3674ef1fd14f701a13397f82d", size = 122998, upload-time = "2025-08-26T17:46:04.803Z" }, + { url = "https://files.pythonhosted.org/packages/3b/94/11137c9b6adb3779f1b34fd98be51608a14b430dbc02c6d41134fbba484c/orjson-3.11.3-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:d61cd543d69715d5fc0a690c7c6f8dcc307bc23abef9738957981885f5f38229", size = 132915, upload-time = "2025-08-26T17:46:06.237Z" }, + { url = "https://files.pythonhosted.org/packages/10/61/dccedcf9e9bcaac09fdabe9eaee0311ca92115699500efbd31950d878833/orjson-3.11.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2b7b153ed90ababadbef5c3eb39549f9476890d339cf47af563aea7e07db2451", size = 130907, upload-time = "2025-08-26T17:46:07.581Z" }, + { url = "https://files.pythonhosted.org/packages/0e/fd/0e935539aa7b08b3ca0f817d73034f7eb506792aae5ecc3b7c6e679cdf5f/orjson-3.11.3-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:7909ae2460f5f494fecbcd10613beafe40381fd0316e35d6acb5f3a05bfda167", size = 403852, upload-time = "2025-08-26T17:46:08.982Z" }, + { url = "https://files.pythonhosted.org/packages/4a/2b/50ae1a5505cd1043379132fdb2adb8a05f37b3e1ebffe94a5073321966fd/orjson-3.11.3-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:2030c01cbf77bc67bee7eef1e7e31ecf28649353987775e3583062c752da0077", size = 146309, upload-time = "2025-08-26T17:46:10.576Z" }, + { url = "https://files.pythonhosted.org/packages/cd/1d/a473c158e380ef6f32753b5f39a69028b25ec5be331c2049a2201bde2e19/orjson-3.11.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:a0169ebd1cbd94b26c7a7ad282cf5c2744fce054133f959e02eb5265deae1872", size = 135424, upload-time = "2025-08-26T17:46:12.386Z" }, + { url = "https://files.pythonhosted.org/packages/da/09/17d9d2b60592890ff7382e591aa1d9afb202a266b180c3d4049b1ec70e4a/orjson-3.11.3-cp314-cp314-win32.whl", hash = "sha256:0c6d7328c200c349e3a4c6d8c83e0a5ad029bdc2d417f234152bf34842d0fc8d", size = 136266, upload-time = "2025-08-26T17:46:13.853Z" }, + { url = "https://files.pythonhosted.org/packages/15/58/358f6846410a6b4958b74734727e582ed971e13d335d6c7ce3e47730493e/orjson-3.11.3-cp314-cp314-win_amd64.whl", hash = "sha256:317bbe2c069bbc757b1a2e4105b64aacd3bc78279b66a6b9e51e846e4809f804", size = 131351, upload-time = "2025-08-26T17:46:15.27Z" }, + { url = "https://files.pythonhosted.org/packages/28/01/d6b274a0635be0468d4dbd9cafe80c47105937a0d42434e805e67cd2ed8b/orjson-3.11.3-cp314-cp314-win_arm64.whl", hash = "sha256:e8f6a7a27d7b7bec81bd5924163e9af03d49bbb63013f107b48eb5d16db711bc", size = 125985, upload-time = "2025-08-26T17:46:16.67Z" }, +] + [[package]] name = "outlines-core" version = "0.2.10" @@ -3836,6 +4104,42 @@ wheels = [ [[package]] name = "penguin" source = { editable = "3rdparty/Penguin-workspace" } +dependencies = [ + { name = "aiohttp" }, + { name = "devtools" }, + { name = "fastapi" }, + { name = "gradio" }, + { name = "hydra-core" }, + { name = "mlflow" }, + { name = "omegaconf" }, + { name = "openai" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "tdigest" }, + { name = "tqdm" }, + { name = "uvicorn" }, + { name = "uvloop" }, + { name = "yappi" }, +] + +[package.metadata] +requires-dist = [ + { name = "aiohttp" }, + { name = "devtools" }, + { name = "fastapi" }, + { name = "gradio" }, + { name = "hydra-core" }, + { name = "mlflow" }, + { name = "omegaconf" }, + { name = "openai", specifier = "<=1.97.1" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "tdigest", specifier = ">=0.5.2.2" }, + { name = "tqdm" }, + { name = "uvicorn" }, + { name = "uvloop" }, + { name = "yappi" }, +] [[package]] name = "pillow" @@ -4439,6 +4743,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e2/0d/8ba33fa83a7dcde13eb3c1c2a0c1cc29950a048bfed6d9b0d8b6bd710b4c/pydata_sphinx_theme-0.16.1-py3-none-any.whl", hash = "sha256:225331e8ac4b32682c18fcac5a57a6f717c4e632cea5dd0e247b55155faeccde", size = 6723264, upload-time = "2024-12-17T10:53:35.645Z" }, ] +[[package]] +name = "pydub" +version = "0.25.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/9a/e6bca0eed82db26562c73b5076539a4a08d3cffd19c3cc5913a3e61145fd/pydub-0.25.1.tar.gz", hash = "sha256:980a33ce9949cab2a569606b65674d748ecbca4f0796887fd6f46173a7b0d30f", size = 38326, upload-time = "2021-03-10T02:09:54.659Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a6/53/d78dc063216e62fc55f6b2eebb447f6a4b0a59f55c8406376f76bf959b08/pydub-0.25.1-py2.py3-none-any.whl", hash = "sha256:65617e33033874b59d87db603aa1ed450633288aefead953b30bded59cb599a6", size = 32327, upload-time = "2021-03-10T02:09:53.503Z" }, +] + [[package]] name = "pyecharts" version = "2.0.8" @@ -4647,6 +4960,12 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00", size = 509225, upload-time = "2025-03-25T02:24:58.468Z" }, ] +[[package]] +name = "pyudorandom" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/13/14/6fc20ea903eda547d6a255e995f8d4a09fdc3cf8bfacb6f85e6d669bc259/pyudorandom-1.0.0.tar.gz", hash = "sha256:f30a093a0170c15f9c7f87eb29f71f0f5fde995528b7c6dc4606d389e8c37755", size = 1599, upload-time = "2016-07-18T16:18:56.037Z" } + [[package]] name = "pywin32" version = "311" @@ -5087,6 +5406,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/48/f0/ae7ca09223a81a1d890b2557186ea015f6e0502e9b8cb8e1813f1d8cfa4e/s3transfer-0.14.0-py3-none-any.whl", hash = "sha256:ea3b790c7077558ed1f02a3072fb3cb992bbbd253392f4b6e9e8976941c7d456", size = 85712, upload-time = "2025-09-09T19:23:30.041Z" }, ] +[[package]] +name = "safehttpx" +version = "0.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/67/4c/19db75e6405692b2a96af8f06d1258f8aa7290bdc35ac966f03e207f6d7f/safehttpx-0.1.6.tar.gz", hash = "sha256:b356bfc82cee3a24c395b94a2dbeabbed60aff1aa5fa3b5fe97c4f2456ebce42", size = 9987, upload-time = "2024-12-02T18:44:10.226Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4d/c0/1108ad9f01567f66b3154063605b350b69c3c9366732e09e45f9fd0d1deb/safehttpx-0.1.6-py3-none-any.whl", hash = "sha256:407cff0b410b071623087c63dd2080c3b44dc076888d8c5823c00d1e58cb381c", size = 8692, upload-time = "2024-12-02T18:44:08.555Z" }, +] + [[package]] name = "safetensors" version = "0.6.2" @@ -5194,6 +5525,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6e/6c/a76329897a7cae4937d403e623aa6aaea616a0bb5b36588f0b9d1c9a3739/scipy-1.16.1-cp314-cp314t-win_amd64.whl", hash = "sha256:c0c804d60492a0aad7f5b2bb1862f4548b990049e27e828391ff2bf6f7199998", size = 39427705, upload-time = "2025-07-27T16:31:53.96Z" }, ] +[[package]] +name = "semantic-version" +version = "2.10.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/31/f2289ce78b9b473d582568c234e104d2a342fd658cc288a7553d83bb8595/semantic_version-2.10.0.tar.gz", hash = "sha256:bdabb6d336998cbb378d4b9db3a4b56a1e3235701dc05ea2690d9a997ed5041c", size = 52289, upload-time = "2022-05-26T13:35:23.454Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/23/8146aad7d88f4fcb3a6218f41a60f6c2d4e3a72de72da1825dc7c8f7877c/semantic_version-2.10.0-py2.py3-none-any.whl", hash = "sha256:de78a3b8e0feda74cabc54aab2da702113e33ac9d9eb9d2389bcf1f58b7d9177", size = 15552, upload-time = "2022-05-26T13:35:21.206Z" }, +] + [[package]] name = "sentencepiece" version = "0.2.1" @@ -5626,6 +5966,20 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5", size = 6299353, upload-time = "2025-04-27T18:04:59.103Z" }, ] +[[package]] +name = "tdigest" +version = "0.5.2.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "accumulation-tree" }, + { name = "pyudorandom" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/dd/34/7e2f78d1ed0af7d0039ab2cff45b6bf8512234b9f178bb21713084a1f2f0/tdigest-0.5.2.2.tar.gz", hash = "sha256:8deffc8bac024761786f43d9444e3b6c91008cd690323e051f068820a7364d0e", size = 6549, upload-time = "2019-05-07T18:57:40.771Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/72/f420480118cbdd18eb761b9936f0a927957130659a638449575b4a4f0aa7/tdigest-0.5.2.2-py2.py3-none-any.whl", hash = "sha256:e32ff6ab62e4defdb93b816c831080d94dfa1efb68a9fa1e7976c237fa9375cb", size = 9445, upload-time = "2019-05-07T18:57:37.493Z" }, + { url = "https://files.pythonhosted.org/packages/b4/94/fd3853b98f39d10206b08f2737d2ec2dc6f46a42dc7b7e05f4f0162d13ee/tdigest-0.5.2.2-py3-none-any.whl", hash = "sha256:dd25f8d6e6be002192bba9e4b8c16491d36c10b389f50637818603d1f67c6fb2", size = 9440, upload-time = "2019-05-07T18:57:38.942Z" }, +] + [[package]] name = "tensorboard" version = "2.20.0" @@ -5793,6 +6147,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/41/f2/fd673d979185f5dcbac4be7d09461cbb99751554ffb6718d0013af8604cb/tokenizers-0.21.4-cp39-abi3-win_amd64.whl", hash = "sha256:475d807a5c3eb72c59ad9b5fcdb254f6e17f53dfcbb9903233b0dfa9c943b597", size = 2507568, upload-time = "2025-07-28T15:48:55.456Z" }, ] +[[package]] +name = "tomlkit" +version = "0.13.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/18/0bbf3884e9eaa38819ebe46a7bd25dcd56b67434402b66a58c4b8e552575/tomlkit-0.13.3.tar.gz", hash = "sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1", size = 185207, upload-time = "2025-06-05T07:13:44.947Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bd/75/8539d011f6be8e29f339c42e633aae3cb73bffa95dd0f9adec09b9c58e85/tomlkit-0.13.3-py3-none-any.whl", hash = "sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0", size = 38901, upload-time = "2025-06-05T07:13:43.546Z" }, +] + [[package]] name = "torch" version = "2.7.1" @@ -6621,6 +6984,28 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/27/ee/518b72faa2073f5aa8e3262408d284892cb79cf2754ba0c3a5870645ef73/xxhash-3.5.0-cp313-cp313-win_arm64.whl", hash = "sha256:4811336f1ce11cac89dcbd18f3a25c527c16311709a89313c3acaf771def2d4b", size = 26801, upload-time = "2024-08-17T09:19:06.547Z" }, ] +[[package]] +name = "yappi" +version = "1.6.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/02/5b/cfde09baf28f7046194b98f1c4907e172c48e7c1b2db35a918fc8a57727a/yappi-1.6.10.tar.gz", hash = "sha256:463b822727658937bd95a7d80ca9758605b8cd0014e004e9e520ec9cb4db0c92", size = 59379, upload-time = "2024-11-12T11:24:38.351Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/50/01/1823649d33aee627440939d7247e1fa7ef64bd907ca4ea88438274d392fc/yappi-1.6.10-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:32c6d928604d7a236090bc36d324f309fe8344c91123bb84e37c43f6677adddc", size = 32914, upload-time = "2024-11-12T11:23:45.877Z" }, + { url = "https://files.pythonhosted.org/packages/54/c5/85852db160c93ee3190741a4fff25075518ad97dea1e2ad47ca6eab31d2f/yappi-1.6.10-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9683c40de7e4ddff225068032cd97a6d928e4beddd9c7cf6515325be8ac28036", size = 77223, upload-time = "2024-11-12T11:23:46.834Z" }, + { url = "https://files.pythonhosted.org/packages/38/01/b03a2bc47fbb2d9bcad072fc2e08730f814defaac2ffbf76ef785fdff5d0/yappi-1.6.10-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:733a212014f2b44673ed62be53b3d4dd458844cd2008ba107f27a3293e42f43a", size = 81250, upload-time = "2024-11-12T11:23:47.872Z" }, + { url = "https://files.pythonhosted.org/packages/39/44/a3c64e0de45a0fc0bf327af95465a94cb8340a64e5abb7bb8af1cfd76f7f/yappi-1.6.10-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:7d80938e566ac6329daa3b036fdf7bd34488010efcf0a65169a44603878daa4e", size = 76118, upload-time = "2024-11-12T11:23:48.829Z" }, + { url = "https://files.pythonhosted.org/packages/0c/68/6806060eaec421a21554c2f7ee8b1379ff02b059e0c753eb55e5b7b701a4/yappi-1.6.10-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:01705971b728a4f95829b723d08883c7623ec275f4066f4048b28dc0151fe0af", size = 78522, upload-time = "2024-11-12T11:23:49.993Z" }, + { url = "https://files.pythonhosted.org/packages/af/4f/0afcacc683f3c34570effc78e6d4c154dea9d6cc8549c2535fb75441be30/yappi-1.6.10-cp312-cp312-win32.whl", hash = "sha256:8dd13a430b046e2921ddf63d992da97968724b41a03e68292f06a2afa11c9d6e", size = 32020, upload-time = "2024-11-12T11:23:51.51Z" }, + { url = "https://files.pythonhosted.org/packages/cb/45/17f50baed4a886fab2c34a040cefefe6623abcaaadf23f851207da9cd5e6/yappi-1.6.10-cp312-cp312-win_amd64.whl", hash = "sha256:a50eb3aec893c40554f8f811d3341af266d844e7759f7f7abfcdba2744885ea3", size = 34471, upload-time = "2024-11-12T11:23:52.457Z" }, + { url = "https://files.pythonhosted.org/packages/2c/33/9ca066f48c7fb21e0ab16fd5e1c99771275a8cec435ef7ac1840d13252f0/yappi-1.6.10-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:944df9ebc6b283d6591a6b5f4c586d0eb9c6131c915f1b20fb36127ade83720d", size = 32924, upload-time = "2024-11-12T11:23:53.435Z" }, + { url = "https://files.pythonhosted.org/packages/cc/ef/a81fac59ca7a13fd26321d59a54841f70f76ce91b5884c001d77f534b3b1/yappi-1.6.10-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3736ea6458edbabd96918d88e2963594823e4ab4c58d62a52ef81f6b5839ec19", size = 77308, upload-time = "2024-11-12T11:23:55.393Z" }, + { url = "https://files.pythonhosted.org/packages/62/59/8fdcb2a660388a7778c52cdfa0c52654955cf7953f85efacd8fd771f8da0/yappi-1.6.10-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f27bbc3311a3662231cff395d38061683fac5c538f3bab6796ff05511d2cce43", size = 81347, upload-time = "2024-11-12T11:23:56.926Z" }, + { url = "https://files.pythonhosted.org/packages/f5/28/62d8f97a62eafc443bb057442ae75b7f4741230c2dd774c5b7002bc05a4e/yappi-1.6.10-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:354cf94d659302b421b13c03487f2f1bce969b97b85fba88afb11f2ef83c35f3", size = 76239, upload-time = "2024-11-12T11:23:57.93Z" }, + { url = "https://files.pythonhosted.org/packages/5d/aa/ea0dbf6e00c7dcb81b4d84d35f6e0584c448674fc19533ddb3198533d41b/yappi-1.6.10-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1d82839835ae2c291b88fb56d82f80c88c00d76df29f3c1ed050db73b553bef0", size = 78712, upload-time = "2024-11-12T11:23:59.171Z" }, + { url = "https://files.pythonhosted.org/packages/88/72/81acfc73b5d66031284c7b4d384200d016f96e26038466269ed139114e98/yappi-1.6.10-cp313-cp313-win32.whl", hash = "sha256:fc84074575afcc5a2a712e132c0b51541b7434b3099be99f573964ef3b6064a8", size = 32026, upload-time = "2024-11-12T11:24:00.305Z" }, + { url = "https://files.pythonhosted.org/packages/23/71/47f12130412703a6816dba27ebd0aa853612ea6fbe3f93f7698c3520ea92/yappi-1.6.10-cp313-cp313-win_amd64.whl", hash = "sha256:334b31dfefae02bc28b7cd50953aaaae3292e40c15efb613792e4a587281a161", size = 34471, upload-time = "2024-11-12T11:24:01.378Z" }, +] + [[package]] name = "yarl" version = "1.20.1"