From f04e52acf6f9f39cdf7cb7368956b24badbf174f Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 26 Aug 2025 14:47:58 -0700 Subject: [PATCH 01/21] more complex example --- tests/chinook/agent.py | 27 +++++++- tests/chinook/dataset.py | 50 ++++++++++++++ tests/chinook/dataset/task_1/ground_truth.md | 7 ++ tests/chinook/dataset/task_1/task.txt | 1 + tests/chinook/dataset/task_5/ground_truth.md | 26 +++++++ tests/chinook/dataset/task_5/task.txt | 1 + tests/chinook/test_pydantic_chinook.py | 72 ++++++++++++++++++++ 7 files changed, 182 insertions(+), 2 deletions(-) create mode 100644 tests/chinook/dataset.py create mode 100644 tests/chinook/dataset/task_1/ground_truth.md create mode 100644 tests/chinook/dataset/task_1/task.txt create mode 100644 tests/chinook/dataset/task_5/ground_truth.md create mode 100644 tests/chinook/dataset/task_5/task.txt diff --git a/tests/chinook/agent.py b/tests/chinook/agent.py index 0d8afc27..81137796 100644 --- a/tests/chinook/agent.py +++ b/tests/chinook/agent.py @@ -26,10 +26,33 @@ def setup_agent(orchestrator_agent_model: Model): ) @agent.tool(retries=5) - def execute_sql(ctx: RunContext, query: str) -> tuple[any, ...]: + def execute_sql(ctx: RunContext, query: str) -> dict: try: cursor.execute(query) - return cursor.fetchall() + # Get column headers from cursor description + columns = [desc[0] for desc in cursor.description] if cursor.description else [] + # Get data rows + rows = cursor.fetchall() + + if not columns or not rows: + return "No results found." + + # Create markdown table + table_lines = [] + + # Header row + table_lines.append("| " + " | ".join(columns) + " |") + + # Separator row + table_lines.append("| " + " | ".join(["---"] * len(columns)) + " |") + + # Data rows + for row in rows: + # Convert all values to strings and escape pipes + formatted_row = [str(cell).replace("|", "\\|") if cell is not None else "" for cell in row] + table_lines.append("| " + " | ".join(formatted_row) + " |") + + return "\n".join(table_lines) except Exception as e: connection.rollback() raise ModelRetry("Please try again with a different query. Here is the error: " + str(e)) diff --git a/tests/chinook/dataset.py b/tests/chinook/dataset.py new file mode 100644 index 00000000..a042add9 --- /dev/null +++ b/tests/chinook/dataset.py @@ -0,0 +1,50 @@ +from typing import List +import os +import glob + +from eval_protocol.models import EvaluationRow, Message + + +def collect_dataset() -> List[EvaluationRow]: + """ + Iterate through the dataset folder and create EvaluationRow objects. + + For each folder named "task_", reads "task.txt" and "ground_truth.md" + and creates an EvaluationRow where: + - messages contains a user message with the task content + - ground_truth contains the contents of ground_truth.md + """ + dataset_rows = [] + dataset_path = os.path.join(os.path.dirname(__file__), "dataset") + + # Find all task folders (task_) + task_folders = glob.glob(os.path.join(dataset_path, "task_*")) + + for task_folder in sorted(task_folders): + task_name = os.path.basename(task_folder) + + # Read task.txt + task_file = os.path.join(task_folder, "task.txt") + if not os.path.exists(task_file): + raise FileNotFoundError(f"Task file not found: {task_file}") + + with open(task_file, "r", encoding="utf-8") as f: + task_content = f.read().strip() + + # Read ground_truth.md + ground_truth_file = os.path.join(task_folder, "ground_truth.md") + if not os.path.exists(ground_truth_file): + raise FileNotFoundError(f"Ground truth file not found: {ground_truth_file}") + + with open(ground_truth_file, "r", encoding="utf-8") as f: + ground_truth_content = f.read().strip() + + # Create user message with the task + user_message = Message(role="user", content=task_content) + + # Create EvaluationRow + evaluation_row = EvaluationRow(messages=[user_message], ground_truth=ground_truth_content) + + dataset_rows.append(evaluation_row) + + return dataset_rows diff --git a/tests/chinook/dataset/task_1/ground_truth.md b/tests/chinook/dataset/task_1/ground_truth.md new file mode 100644 index 00000000..588d4fb4 --- /dev/null +++ b/tests/chinook/dataset/task_1/ground_truth.md @@ -0,0 +1,7 @@ +| customer_name | favorite_genre | total_invoices | total_spent | spending_rank | +| ------------------ | -------------- | -------------- | ----------- | ------------- | +| Helena Holý | Rock | 7 | 49.62 | 1 | +| Richard Cunningham | Rock | 7 | 47.62 | 2 | +| Luis Rojas | Rock | 7 | 46.62 | 3 | +| Ladislav Kovács | Rock | 7 | 45.62 | 4 | +| Hugh O'Reilly | Rock | 7 | 45.62 | 4 | diff --git a/tests/chinook/dataset/task_1/task.txt b/tests/chinook/dataset/task_1/task.txt new file mode 100644 index 00000000..b92b6b3b --- /dev/null +++ b/tests/chinook/dataset/task_1/task.txt @@ -0,0 +1 @@ +Find the top 5 customers by total spending, including their favorite genre. Show customer name, favorite genre, total invoices, total spent, and spending rank. diff --git a/tests/chinook/dataset/task_5/ground_truth.md b/tests/chinook/dataset/task_5/ground_truth.md new file mode 100644 index 00000000..d7611038 --- /dev/null +++ b/tests/chinook/dataset/task_5/ground_truth.md @@ -0,0 +1,26 @@ +| genre_name | usa_revenue | canada_revenue | germany_revenue | france_revenue | brazil_revenue | total_revenue | total_unique_customers | percentage_of_total | +| ------------------ | ----------- | -------------- | --------------- | -------------- | -------------- | ------------- | ---------------------- | ------------------- | +| Rock | 1526.14 | 989.03 | 577.17 | 525.73 | 691.02 | 4309.09 | 35 | 35.47 | +| Latin | 754.67 | 510.84 | 163.35 | 265.32 | 501.93 | 2196.11 | 33 | 18.08 | +| Metal | 554.45 | 335.61 | 189.09 | 192.06 | 74.25 | 1345.46 | 34 | 11.07 | +| Alternative & Punk | 415.92 | 300.96 | 105.12 | 207.90 | 71.28 | 1101.18 | 29 | 9.06 | +| Jazz | 202.95 | 126.72 | 27.72 | 139.59 | 0 | 496.98 | 19 | 4.09 | +| Blues | 126.72 | 15.84 | 97.02 | 11.88 | 30.69 | 282.15 | 13 | 2.32 | +| TV Shows | 191.70 | 3.98 | 44.73 | 16.86 | 0 | 257.27 | 10 | 2.12 | +| Reggae | 73.26 | 58.41 | 0 | 13.86 | 83.16 | 228.69 | 8 | 1.88 | +| Soundtrack | 45.54 | 0 | 59.40 | 54.45 | 55.44 | 214.83 | 7 | 1.77 | +| Drama | 143.16 | 13.89 | 14.91 | 38.69 | 0 | 210.65 | 7 | 1.73 | +| Classical | 87.20 | 24.75 | 0 | 57.48 | 39.60 | 209.03 | 9 | 1.72 | +| R&B/Soul | 75.28 | 69.30 | 0 | 0 | 29.70 | 174.28 | 10 | 1.43 | +| Alternative | 79.30 | 0 | 0.99 | 67.44 | 0 | 147.73 | 3 | 1.22 | +| Hip Hop/Rap | 6.93 | 57.45 | 0 | 33.72 | 27.72 | 125.82 | 7 | 1.04 | +| Pop | 33.66 | 0 | 13.86 | 27.72 | 36.63 | 111.87 | 7 | 0.92 | +| World | 0 | 83.16 | 0 | 0 | 27.72 | 110.88 | 5 | 0.91 | +| Heavy Metal | 50.49 | 0 | 41.58 | 0 | 0 | 92.07 | 3 | 0.76 | +| Comedy | 90.44 | 0 | 0 | 0 | 0 | 90.44 | 3 | 0.74 | +| Sci Fi & Fantasy | 71.62 | 0 | 0 | 7.96 | 7.96 | 87.54 | 4 | 0.72 | +| Bossa Nova | 43.56 | 28.71 | 0 | 13.86 | 0 | 86.13 | 7 | 0.71 | +| Rock And Roll | 41.58 | 27.72 | 0 | 13.86 | 0 | 83.16 | 4 | 0.68 | +| Electronica/Dance | 0 | 43.59 | 0 | 33.72 | 0 | 77.31 | 3 | 0.64 | +| Easy Listening | 41.58 | 0 | 27.72 | 0 | 0 | 69.30 | 2 | 0.57 | +| Science Fiction | 10.91 | 0 | 29.82 | 0 | 0 | 40.73 | 2 | 0.34 | diff --git a/tests/chinook/dataset/task_5/task.txt b/tests/chinook/dataset/task_5/task.txt new file mode 100644 index 00000000..d9f07e81 --- /dev/null +++ b/tests/chinook/dataset/task_5/task.txt @@ -0,0 +1 @@ +Create a genre popularity matrix by country. Show genre name, revenue by country (USA, Canada, Germany, France, Brazil), total revenue, unique customers, and revenue percentage of total sales. diff --git a/tests/chinook/test_pydantic_chinook.py b/tests/chinook/test_pydantic_chinook.py index 2bd82549..83516bd4 100644 --- a/tests/chinook/test_pydantic_chinook.py +++ b/tests/chinook/test_pydantic_chinook.py @@ -9,6 +9,8 @@ from agent import setup_agent from pydantic_ai.models.openai import OpenAIModel +from tests.chinook.dataset import collect_dataset + @pytest.mark.asyncio @evaluation_test( @@ -75,3 +77,73 @@ class Response(BaseModel): reason=result.output.reason, ) return row + + +@pytest.mark.asyncio +@evaluation_test( + input_rows=collect_dataset(), + completion_params=[ + { + "model": { + "orchestrator_agent_model": { + "model": "accounts/fireworks/models/kimi-k2-instruct", + "provider": "fireworks", + } + } + }, + ], + rollout_processor=PydanticAgentRolloutProcessor(), + rollout_processor_kwargs={"agent": setup_agent}, + num_runs=3, + mode="pointwise", +) +async def test_complex_queries(row: EvaluationRow) -> EvaluationRow: + """ + Complex queries for the Chinook database + """ + last_assistant_message = row.last_assistant_message() + if last_assistant_message is None: + row.evaluation_result = EvaluateResult( + score=0.0, + reason="No assistant message found", + ) + elif not last_assistant_message.content: + row.evaluation_result = EvaluateResult( + score=0.0, + reason="No assistant message found", + ) + else: + model = OpenAIModel( + "accounts/fireworks/models/llama-v3p1-8b-instruct", + provider="fireworks", + ) + + class Response(BaseModel): + """ + A score between 0.0 and 1.0 indicating whether the response is correct. + """ + + score: float + + """ + A short explanation of why the response is correct or incorrect. + """ + reason: str + + comparison_agent = Agent( + system_prompt=( + "Your job is to compare the response to the expected answer." + "If the response is correct, return 1.0. If the response is incorrect, return 0.0." + ), + output_type=Response, + model=model, + ) + result = await comparison_agent.run( + f"Expected answer: {row.ground_truth}\nResponse: {last_assistant_message.content}" + ) + row.evaluation_result = EvaluateResult( + score=result.output.score, + reason=result.output.reason, + ) + return row + return row From 443e3f83b7b9d7cc779377fa11ef36a2ade20c00 Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 26 Aug 2025 15:01:02 -0700 Subject: [PATCH 02/21] use kimi k2 for llm as a judge --- tests/chinook/test_pydantic_chinook.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/chinook/test_pydantic_chinook.py b/tests/chinook/test_pydantic_chinook.py index 83516bd4..1cf55827 100644 --- a/tests/chinook/test_pydantic_chinook.py +++ b/tests/chinook/test_pydantic_chinook.py @@ -47,7 +47,7 @@ async def test_simple_query(row: EvaluationRow) -> EvaluationRow: ) else: model = OpenAIModel( - "accounts/fireworks/models/llama-v3p1-8b-instruct", + "accounts/fireworks/models/kimi-k2-instruct", provider="fireworks", ) @@ -114,7 +114,7 @@ async def test_complex_queries(row: EvaluationRow) -> EvaluationRow: ) else: model = OpenAIModel( - "accounts/fireworks/models/llama-v3p1-8b-instruct", + "accounts/fireworks/models/kimi-k2-instruct", provider="fireworks", ) From 69dfddc1693dc5004e5f387ba52ede5e05b12bd5 Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 26 Aug 2025 15:01:11 -0700 Subject: [PATCH 03/21] add more tasks --- tests/chinook/dataset/task_2/ground_truth.md | 10 +++ tests/chinook/dataset/task_2/task.txt | 1 + tests/chinook/dataset/task_3/ground_truth.md | 3 + tests/chinook/dataset/task_3/task.txt | 1 + tests/chinook/dataset/task_4/ground_truth.md | 86 ++++++++++++++++++++ tests/chinook/dataset/task_4/task.txt | 1 + 6 files changed, 102 insertions(+) create mode 100644 tests/chinook/dataset/task_2/ground_truth.md create mode 100644 tests/chinook/dataset/task_2/task.txt create mode 100644 tests/chinook/dataset/task_3/ground_truth.md create mode 100644 tests/chinook/dataset/task_3/task.txt create mode 100644 tests/chinook/dataset/task_4/ground_truth.md create mode 100644 tests/chinook/dataset/task_4/task.txt diff --git a/tests/chinook/dataset/task_2/ground_truth.md b/tests/chinook/dataset/task_2/ground_truth.md new file mode 100644 index 00000000..3b340de1 --- /dev/null +++ b/tests/chinook/dataset/task_2/ground_truth.md @@ -0,0 +1,10 @@ +| name | level | hierarchy_path | +| ---------------- | ----- | -------------------------------------------------- | +| Andrew Adams | 0 | Andrew Adams | +| Michael Mitchell | 1 | Andrew Adams -> Michael Mitchell | +| Laura Callahan | 2 | Andrew Adams -> Michael Mitchell -> Laura Callahan | +| Robert King | 2 | Andrew Adams -> Michael Mitchell -> Robert King | +| Nancy Edwards | 1 | Andrew Adams -> Nancy Edwards | +| Jane Peacock | 2 | Andrew Adams -> Nancy Edwards -> Jane Peacock | +| Margaret Park | 2 | Andrew Adams -> Nancy Edwards -> Margaret Park | +| Steve Johnson | 2 | Andrew Adams -> Nancy Edwards -> Steve Johnson | diff --git a/tests/chinook/dataset/task_2/task.txt b/tests/chinook/dataset/task_2/task.txt new file mode 100644 index 00000000..9dba4d50 --- /dev/null +++ b/tests/chinook/dataset/task_2/task.txt @@ -0,0 +1 @@ +Find all employees and their reporting hierarchy levels using a recursive CTE. Show employee name, level, and the complete hierarchy path from top to bottom. diff --git a/tests/chinook/dataset/task_3/ground_truth.md b/tests/chinook/dataset/task_3/ground_truth.md new file mode 100644 index 00000000..c3d460dc --- /dev/null +++ b/tests/chinook/dataset/task_3/ground_truth.md @@ -0,0 +1,3 @@ +| artist_name | genre_count | longest_track_name_length | total_tracks | most_popular_track | +| ------------- | ----------- | ------------------------- | ------------ | ------------------ | +| Lenny Kravitz | 3 | 32 | 57 | Mr. Cab Driver | diff --git a/tests/chinook/dataset/task_3/task.txt b/tests/chinook/dataset/task_3/task.txt new file mode 100644 index 00000000..7a222aa8 --- /dev/null +++ b/tests/chinook/dataset/task_3/task.txt @@ -0,0 +1 @@ +Find artists who have albums in multiple genres and their most popular track. Include genre count, longest track name, and total tracks. Only include artists who have at least one album with 'Greatest' in the title. diff --git a/tests/chinook/dataset/task_4/ground_truth.md b/tests/chinook/dataset/task_4/ground_truth.md new file mode 100644 index 00000000..09db62aa --- /dev/null +++ b/tests/chinook/dataset/task_4/ground_truth.md @@ -0,0 +1,86 @@ +| month | day_of_week | unique_customers | total_invoices | average_order_value | total_revenue | day_over_day_growth_percentage | +| ----- | ----------- | ---------------- | -------------- | ------------------- | ------------- | ------------------------------ | +| 1 | Friday | 2 | 2 | 5.45 | 10.89 | null | +| 1 | Monday | 7 | 7 | 6.22 | 43.57 | 300.09 | +| 1 | Saturday | 4 | 4 | 4.21 | 16.83 | -61.37 | +| 1 | Sunday | 4 | 4 | 3.47 | 13.86 | -17.65 | +| 1 | Thursday | 3 | 3 | 10.92 | 32.76 | 136.36 | +| 1 | Tuesday | 8 | 8 | 6.07 | 48.56 | 48.23 | +| 1 | Wednesday | 6 | 6 | 5.78 | 34.65 | -28.64 | +| 2 | Friday | 8 | 8 | 6.45 | 51.56 | null | +| 2 | Monday | 3 | 3 | 4.29 | 12.87 | -75.04 | +| 2 | Saturday | 5 | 5 | 6.34 | 31.69 | 146.23 | +| 2 | Sunday | 2 | 2 | 8.91 | 17.82 | -43.77 | +| 2 | Thursday | 7 | 7 | 6.08 | 42.57 | 138.89 | +| 2 | Tuesday | 4 | 4 | 4.21 | 16.83 | -60.47 | +| 2 | Wednesday | 4 | 4 | 3.47 | 13.86 | -17.65 | +| 3 | Friday | 4 | 4 | 5.21 | 20.83 | null | +| 3 | Monday | 8 | 8 | 5.70 | 45.56 | 118.72 | +| 3 | Saturday | 5 | 5 | 3.56 | 17.82 | -60.89 | +| 3 | Sunday | 8 | 8 | 6.06 | 48.51 | 172.22 | +| 3 | Thursday | 3 | 3 | 4.29 | 12.87 | -73.47 | +| 3 | Tuesday | 5 | 5 | 6.14 | 30.69 | 138.46 | +| 3 | Wednesday | 2 | 2 | 9.41 | 18.82 | -38.68 | +| 4 | Friday | 5 | 5 | 7.74 | 38.69 | null | +| 4 | Monday | 4 | 4 | 4.21 | 16.83 | -56.50 | +| 4 | Saturday | 2 | 2 | 8.91 | 17.82 | 5.88 | +| 4 | Sunday | 3 | 3 | 6.29 | 18.87 | 5.89 | +| 4 | Thursday | 6 | 6 | 6.60 | 39.60 | 109.86 | +| 4 | Tuesday | 5 | 5 | 3.56 | 17.82 | -55.00 | +| 4 | Wednesday | 8 | 8 | 6.06 | 48.51 | 172.22 | +| 5 | Friday | 5 | 5 | 3.56 | 17.82 | null | +| 5 | Monday | 5 | 5 | 7.14 | 35.69 | 100.28 | +| 5 | Saturday | 8 | 8 | 6.06 | 48.51 | 35.92 | +| 5 | Sunday | 6 | 6 | 6.60 | 39.60 | -18.37 | +| 5 | Thursday | 6 | 6 | 3.47 | 20.79 | -47.50 | +| 5 | Tuesday | 2 | 2 | 8.91 | 17.82 | -14.29 | +| 5 | Wednesday | 3 | 3 | 4.29 | 12.87 | -27.78 | +| 6 | Friday | 2 | 2 | 8.91 | 17.82 | null | +| 6 | Monday | 5 | 5 | 4.16 | 20.82 | 16.84 | +| 6 | Saturday | 3 | 3 | 4.29 | 12.87 | -38.18 | +| 6 | Sunday | 6 | 6 | 3.47 | 20.79 | 61.54 | +| 6 | Thursday | 5 | 5 | 6.54 | 32.69 | 57.24 | +| 6 | Tuesday | 8 | 8 | 6.69 | 53.51 | 63.69 | +| 6 | Wednesday | 6 | 6 | 7.10 | 42.60 | -20.39 | +| 7 | Friday | 8 | 8 | 6.06 | 48.51 | null | +| 7 | Monday | 2 | 2 | 8.91 | 17.82 | -63.27 | +| 7 | Saturday | 6 | 6 | 6.60 | 39.60 | 122.22 | +| 7 | Sunday | 5 | 5 | 6.14 | 30.69 | -22.50 | +| 7 | Thursday | 5 | 5 | 3.56 | 17.82 | -41.94 | +| 7 | Tuesday | 3 | 3 | 4.29 | 12.87 | -27.78 | +| 7 | Wednesday | 6 | 6 | 3.80 | 22.79 | 77.08 | +| 8 | Friday | 3 | 3 | 4.29 | 12.87 | null | +| 8 | Monday | 8 | 8 | 7.31 | 58.51 | 354.62 | +| 8 | Saturday | 6 | 6 | 3.47 | 20.79 | -64.47 | +| 8 | Sunday | 5 | 5 | 3.56 | 17.82 | -14.29 | +| 8 | Thursday | 2 | 2 | 8.91 | 17.82 | 0.00 | +| 8 | Tuesday | 6 | 6 | 6.60 | 39.60 | 122.22 | +| 8 | Wednesday | 5 | 5 | 6.14 | 30.69 | -22.50 | +| 9 | Friday | 6 | 6 | 7.43 | 44.60 | null | +| 9 | Monday | 3 | 3 | 4.29 | 12.87 | -71.14 | +| 9 | Saturday | 4 | 4 | 8.93 | 35.70 | 177.39 | +| 9 | Sunday | 2 | 2 | 8.91 | 17.82 | -50.08 | +| 9 | Thursday | 8 | 8 | 6.94 | 55.51 | 211.50 | +| 9 | Tuesday | 5 | 5 | 2.38 | 11.88 | -78.60 | +| 9 | Wednesday | 5 | 5 | 3.56 | 17.82 | 50.00 | +| 10 | Friday | 5 | 5 | 2.38 | 11.88 | null | +| 10 | Monday | 6 | 6 | 6.60 | 39.60 | 233.33 | +| 10 | Saturday | 6 | 6 | 3.14 | 18.81 | -52.50 | +| 10 | Sunday | 8 | 8 | 6.44 | 51.51 | 173.84 | +| 10 | Thursday | 3 | 3 | 4.29 | 12.87 | -75.01 | +| 10 | Tuesday | 5 | 5 | 8.12 | 40.61 | 215.54 | +| 10 | Wednesday | 2 | 2 | 8.91 | 17.82 | -56.12 | +| 11 | Friday | 4 | 4 | 6.19 | 24.75 | null | +| 11 | Monday | 5 | 5 | 2.38 | 11.88 | -52.00 | +| 11 | Saturday | 2 | 2 | 8.91 | 17.82 | 50.00 | +| 11 | Sunday | 3 | 3 | 4.29 | 12.87 | -27.78 | +| 11 | Thursday | 6 | 6 | 8.60 | 51.60 | 300.93 | +| 11 | Tuesday | 6 | 6 | 3.14 | 18.81 | -63.55 | +| 11 | Wednesday | 8 | 8 | 6.06 | 48.51 | 157.89 | +| 12 | Friday | 7 | 7 | 4.67 | 32.67 | null | +| 12 | Monday | 4 | 4 | 6.44 | 25.75 | -21.18 | +| 12 | Saturday | 8 | 8 | 6.06 | 48.51 | 88.39 | +| 12 | Sunday | 6 | 6 | 6.60 | 39.60 | -18.37 | +| 12 | Thursday | 5 | 5 | 2.38 | 11.88 | -70.00 | +| 12 | Tuesday | 2 | 2 | 8.91 | 17.82 | 50.00 | +| 12 | Wednesday | 3 | 3 | 4.29 | 12.87 | -27.78 | diff --git a/tests/chinook/dataset/task_4/task.txt b/tests/chinook/dataset/task_4/task.txt new file mode 100644 index 00000000..e5bb282d --- /dev/null +++ b/tests/chinook/dataset/task_4/task.txt @@ -0,0 +1 @@ +Analyze customer purchasing patterns by month and day of week. Show month, day of week, unique customers, total invoices, average order value, total revenue, and day-over-day growth percentage for invoices from 2010 onwards. From 16d1ef94620e5f224949a3f55b8d94c26b75d6a2 Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 26 Aug 2025 15:06:08 -0700 Subject: [PATCH 04/21] improve LLM judge prompt --- tests/chinook/test_pydantic_chinook.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/tests/chinook/test_pydantic_chinook.py b/tests/chinook/test_pydantic_chinook.py index 1cf55827..eedb83ca 100644 --- a/tests/chinook/test_pydantic_chinook.py +++ b/tests/chinook/test_pydantic_chinook.py @@ -11,6 +11,12 @@ from tests.chinook.dataset import collect_dataset +LLM_JUDGE_PROMPT = ( + "Your job is to compare the response to the expected answer.\n" + "If the response contains the same information as the expected answer, return 1.0.\n" + "If the response does not contain the same information or is missing information, return 0.0." +) + @pytest.mark.asyncio @evaluation_test( @@ -27,7 +33,6 @@ ], rollout_processor=PydanticAgentRolloutProcessor(), rollout_processor_kwargs={"agent": setup_agent}, - num_runs=5, mode="pointwise", ) async def test_simple_query(row: EvaluationRow) -> EvaluationRow: @@ -64,10 +69,7 @@ class Response(BaseModel): reason: str comparison_agent = Agent( - system_prompt=( - "Your job is to compare the response to the expected answer." - "If the response is correct, return 1.0. If the response is incorrect, return 0.0." - ), + system_prompt=LLM_JUDGE_PROMPT, output_type=Response, model=model, ) @@ -131,10 +133,7 @@ class Response(BaseModel): reason: str comparison_agent = Agent( - system_prompt=( - "Your job is to compare the response to the expected answer." - "If the response is correct, return 1.0. If the response is incorrect, return 0.0." - ), + system_prompt=LLM_JUDGE_PROMPT, output_type=Response, model=model, ) From cf45835789b8b396b1e955934bd72fc0f201b606 Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 26 Aug 2025 16:03:54 -0700 Subject: [PATCH 05/21] improve LLM judge prompt --- tests/chinook/test_pydantic_chinook.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/chinook/test_pydantic_chinook.py b/tests/chinook/test_pydantic_chinook.py index eedb83ca..4b232956 100644 --- a/tests/chinook/test_pydantic_chinook.py +++ b/tests/chinook/test_pydantic_chinook.py @@ -13,7 +13,8 @@ LLM_JUDGE_PROMPT = ( "Your job is to compare the response to the expected answer.\n" - "If the response contains the same information as the expected answer, return 1.0.\n" + "The response will be a narrative report of the query results.\n" + "If the response contains the same or well summarized information as the expected answer, return 1.0.\n" "If the response does not contain the same information or is missing information, return 0.0." ) From cfb4b670337dd06deb0c6ce82cfd48f9a784c01e Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 26 Aug 2025 16:04:05 -0700 Subject: [PATCH 06/21] add experiment/run/row id to table --- vite-app/src/components/EvaluationRow.tsx | 49 +++++++++++++++++++++ vite-app/src/components/EvaluationTable.tsx | 3 ++ 2 files changed, 52 insertions(+) diff --git a/vite-app/src/components/EvaluationRow.tsx b/vite-app/src/components/EvaluationRow.tsx index 346f57d9..581c6fab 100644 --- a/vite-app/src/components/EvaluationRow.tsx +++ b/vite-app/src/components/EvaluationRow.tsx @@ -162,6 +162,38 @@ const RowStatus = observer( ) ); +const ExperimentId = observer( + ({ experimentId: experimentId }: { experimentId?: string }) => { + debugger; + if (!experimentId) { + return null; + } + return ( + + {experimentId} + + ); + } +); + +const RunId = observer(({ runId: runId }: { runId?: string }) => { + if (!runId) { + return null; + } + return ( + {runId} + ); +}); + +const RowId = observer(({ rowId: rowId }: { rowId?: string }) => { + if (!rowId) { + return null; + } + return ( + {rowId} + ); +}); + const RolloutId = observer( ({ rolloutId: rolloutId }: { rolloutId?: string }) => { if (!rolloutId) { @@ -399,6 +431,23 @@ export const EvaluationRow = observer( /> + {/* Experiment ID */} + + + + + {/* Run ID */} + + + + + {/* Row ID */} + + + + {/* Rollout ID */} diff --git a/vite-app/src/components/EvaluationTable.tsx b/vite-app/src/components/EvaluationTable.tsx index 8650000b..f9defbf3 100644 --- a/vite-app/src/components/EvaluationTable.tsx +++ b/vite-app/src/components/EvaluationTable.tsx @@ -164,6 +164,9 @@ export const EvaluationTable = observer(() => { Eval Status Rollout Status Invocation ID + Experiment ID + Run ID + Row ID Rollout ID Model Score From a8f23a336de3d6a885a4200c0a460bee7dc2556c Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 26 Aug 2025 16:13:56 -0700 Subject: [PATCH 07/21] allow evaluationtable to be sorted --- vite-app/src/GlobalState.tsx | 121 +++++++++++++++++++- vite-app/src/components/EvaluationTable.tsx | 104 +++++++++++++++-- vite-app/src/components/TableContainer.tsx | 101 ++++++++++++++++ 3 files changed, 312 insertions(+), 14 deletions(-) diff --git a/vite-app/src/GlobalState.tsx b/vite-app/src/GlobalState.tsx index 94f760c5..69ba2385 100644 --- a/vite-app/src/GlobalState.tsx +++ b/vite-app/src/GlobalState.tsx @@ -22,6 +22,12 @@ const DEFAULT_PAGINATION_CONFIG = { pageSize: 25, }; +// Default sort configuration +const DEFAULT_SORT_CONFIG = { + sortField: "created_at", + sortDirection: "desc" as "asc" | "desc", +}; + export class GlobalState { isConnected: boolean = false; // rollout_id -> EvaluationRow @@ -37,6 +43,9 @@ export class GlobalState { // Pagination configuration currentPage: number; pageSize: number; + // Sort configuration + sortField: string; + sortDirection: "asc" | "desc"; // Loading state isLoading: boolean = true; @@ -64,6 +73,10 @@ export class GlobalState { const paginationConfig = this.loadPaginationConfig(); this.currentPage = paginationConfig.currentPage; this.pageSize = paginationConfig.pageSize; + // Load sort config from localStorage or use defaults + const sortConfig = this.loadSortConfig(); + this.sortField = sortConfig.sortField; + this.sortDirection = sortConfig.sortDirection; makeAutoObservable(this); } @@ -114,6 +127,21 @@ export class GlobalState { return DEFAULT_PAGINATION_CONFIG; } + // Load sort configuration from localStorage + private loadSortConfig() { + try { + const stored = localStorage.getItem("sortConfig"); + if (stored) { + const parsed = JSON.parse(stored); + // Merge with defaults to handle any missing properties + return { ...DEFAULT_SORT_CONFIG, ...parsed }; + } + } catch (error) { + console.warn("Failed to load sort config from localStorage:", error); + } + return DEFAULT_SORT_CONFIG; + } + // Save pivot configuration to localStorage private savePivotConfig() { if (this.savePivotConfigTimer) clearTimeout(this.savePivotConfigTimer); @@ -160,6 +188,24 @@ export class GlobalState { }, 200); } + // Save sort configuration to localStorage + private saveSortConfig() { + if (this.saveFilterConfigTimer) clearTimeout(this.saveFilterConfigTimer); + this.saveFilterConfigTimer = setTimeout(() => { + try { + localStorage.setItem( + "sortConfig", + JSON.stringify({ + sortField: this.sortField, + sortDirection: this.sortDirection, + }) + ); + } catch (error) { + console.warn("Failed to save sort config to localStorage:", error); + } + }, 200); + } + // Update pivot configuration and save to localStorage updatePivotConfig(updates: Partial) { Object.assign(this.pivotConfig, updates); @@ -191,6 +237,29 @@ export class GlobalState { this.savePaginationConfig(); } + // Update sort configuration and save to localStorage + updateSortConfig( + updates: Partial<{ sortField: string; sortDirection: "asc" | "desc" }> + ) { + Object.assign(this, updates); + // Reset to first page when sorting changes + this.currentPage = 1; + this.saveSortConfig(); + } + + // Handle sort field click - toggle direction if same field, set to asc if new field + handleSortFieldClick(field: string) { + if (this.sortField === field) { + // Toggle direction for same field + this.sortDirection = this.sortDirection === "asc" ? "desc" : "asc"; + } else { + // New field, set to ascending + this.sortField = field; + this.sortDirection = "asc"; + } + this.saveSortConfig(); + } + // Reset pivot configuration to defaults resetPivotConfig() { this.pivotConfig = { ...DEFAULT_PIVOT_CONFIG }; @@ -211,6 +280,13 @@ export class GlobalState { this.savePaginationConfig(); } + // Reset sort configuration to defaults + resetSortConfig() { + this.sortField = DEFAULT_SORT_CONFIG.sortField; + this.sortDirection = DEFAULT_SORT_CONFIG.sortDirection; + this.saveSortConfig(); + } + // Set current page setCurrentPage(page: number) { this.currentPage = page; @@ -286,9 +362,48 @@ export class GlobalState { // Computed values following MobX best practices get sortedIds() { - return Object.keys(this.dataset).sort( - (a, b) => (this.createdAtMsById[b] ?? 0) - (this.createdAtMsById[a] ?? 0) - ); + const ids = Object.keys(this.dataset); + + if (this.sortField === "created_at") { + // Special case for created_at - use cached timestamp + return ids.sort((a, b) => { + const aTime = this.createdAtMsById[a] ?? 0; + const bTime = this.createdAtMsById[b] ?? 0; + return this.sortDirection === "asc" ? aTime - bTime : bTime - aTime; + }); + } + + // For other fields, sort by flattened data + return ids.sort((a, b) => { + const aFlat = this.flattenedById[a]; + const bFlat = this.flattenedById[b]; + + if (!aFlat || !bFlat) return 0; + + const aValue = aFlat[this.sortField]; + const bValue = bFlat[this.sortField]; + + // Handle undefined values + if (aValue === undefined && bValue === undefined) return 0; + if (aValue === undefined) return this.sortDirection === "asc" ? -1 : 1; + if (bValue === undefined) return this.sortDirection === "asc" ? 1 : -1; + + // Handle different types + if (typeof aValue === "string" && typeof bValue === "string") { + const comparison = aValue.localeCompare(bValue); + return this.sortDirection === "asc" ? comparison : -comparison; + } + + if (typeof aValue === "number" && typeof bValue === "number") { + return this.sortDirection === "asc" ? aValue - bValue : bValue - aValue; + } + + // Fallback to string comparison + const aStr = String(aValue); + const bStr = String(bValue); + const comparison = aStr.localeCompare(bStr); + return this.sortDirection === "asc" ? comparison : -comparison; + }); } get sortedDataset() { diff --git a/vite-app/src/components/EvaluationTable.tsx b/vite-app/src/components/EvaluationTable.tsx index f9defbf3..e4175eec 100644 --- a/vite-app/src/components/EvaluationTable.tsx +++ b/vite-app/src/components/EvaluationTable.tsx @@ -8,6 +8,7 @@ import { TableHeader, TableHead, TableBody as TableBodyBase, + SortableTableHeader, } from "./TableContainer"; const TableBody = observer( @@ -51,6 +52,10 @@ export const EvaluationTable = observer(() => { state.updateFilterConfig(filters); }; + const handleSort = (field: string) => { + state.handleSortFieldClick(field); + }; + return (
{/* Filter Controls */} @@ -160,17 +165,94 @@ export const EvaluationTable = observer(() => {   - Name - Eval Status - Rollout Status - Invocation ID - Experiment ID - Run ID - Row ID - Rollout ID - Model - Score - Created + + Name + + + Eval Status + + + Rollout Status + + + Invocation ID + + + Experiment ID + + + Run ID + + + Row ID + + + Rollout ID + + + Model + + + Score + + + Created + diff --git a/vite-app/src/components/TableContainer.tsx b/vite-app/src/components/TableContainer.tsx index c2df519c..d2ab76bc 100644 --- a/vite-app/src/components/TableContainer.tsx +++ b/vite-app/src/components/TableContainer.tsx @@ -30,6 +30,25 @@ export interface TableHeaderProps { nowrap?: boolean; } +export interface SortableTableHeaderProps extends TableHeaderProps { + /** + * The field name to sort by + */ + sortField: string; + /** + * Current sort field + */ + currentSortField: string; + /** + * Current sort direction + */ + currentSortDirection: "asc" | "desc"; + /** + * Click handler for sorting + */ + onSort: (field: string) => void; +} + export interface TableCellProps { /** * The cell content @@ -186,6 +205,88 @@ export function TableHeader({ ); } +/** + * Sortable table header component with click-to-sort functionality + */ +export function SortableTableHeader({ + children, + className = "", + align = "left", + nowrap = false, + sortField, + currentSortField, + currentSortDirection, + onSort, +}: SortableTableHeaderProps) { + const alignClasses = { + left: "text-left", + center: "text-center", + right: "text-right", + }; + + const isActive = currentSortField === sortField; + const sortIcon = isActive ? ( + currentSortDirection === "asc" ? ( + + + + ) : ( + + + + ) + ) : ( + + + + ); + + return ( + onSort(sortField)} + style={{ cursor: "pointer" }} + > +
+ {children} + {sortIcon} +
+ + ); +} + /** * Table row component with consistent styling */ From 39db110088e4e6467978a1497011842c6010aeda Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 26 Aug 2025 16:14:07 -0700 Subject: [PATCH 08/21] vite build --- tests/chinook/tasks.jsonl | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 tests/chinook/tasks.jsonl diff --git a/tests/chinook/tasks.jsonl b/tests/chinook/tasks.jsonl new file mode 100644 index 00000000..4d48ee14 --- /dev/null +++ b/tests/chinook/tasks.jsonl @@ -0,0 +1,16 @@ +{"task": "Find the top 5 customers by total spending, including their favorite genre. Show customer name, favorite genre, total invoices, total spent, and spending rank."} +{"task": "Find all employees and their reporting hierarchy levels using a recursive CTE. Show employee name, level, and the complete hierarchy path from top to bottom."} +{"task": "Find artists who have albums in multiple genres and their most popular track. Include genre count, longest track name, and total tracks. Only include artists who have at least one album with 'Greatest' in the title.", "expected_answer": {"sample_results": [{"ArtistName": "Queen", "GenreCount": 3, "LongestTrack": "Bohemian Rhapsody", "TotalTracks": 15}, {"ArtistName": "The Beatles", "GenreCount": 4, "LongestTrack": "Hey Jude", "TotalTracks": 27}, {"ArtistName": "Led Zeppelin", "GenreCount": 2, "LongestTrack": "Stairway to Heaven", "TotalTracks": 8}], "expected_columns": ["ArtistName", "GenreCount", "LongestTrack", "TotalTracks"], "expected_result_type": "table of multi-genre artists with 'Greatest' albums", "difficulty": "very_high", "sql_concepts": ["correlated subqueries", "EXISTS clause", "LIKE operator", "HAVING with multiple conditions", "aggregations"]}} +{"task": "Analyze customer purchasing patterns by month and day of week. Show month, day of week, unique customers, total invoices, average order value, total revenue, and day-over-day growth percentage for invoices from 2010 onwards.", "expected_answer": {"sample_results": [{"Month": "2010-01", "DayOfWeek": "Monday", "UniqueCustomers": 12, "TotalInvoices": 15, "AvgOrderValue": 8.99, "TotalRevenue": 134.85, "DayOverDayGrowth": null}, {"Month": "2010-01", "DayOfWeek": "Tuesday", "UniqueCustomers": 8, "TotalInvoices": 10, "AvgOrderValue": 7.99, "TotalRevenue": 79.90, "DayOverDayGrowth": -40.8}], "expected_columns": ["Month", "DayOfWeek", "UniqueCustomers", "TotalInvoices", "AvgOrderValue", "TotalRevenue", "DayOverDayGrowth"], "expected_result_type": "time-series analysis table", "difficulty": "very_high", "sql_concepts": ["date functions", "CASE statements", "window functions", "LAG", "PARTITION BY", "strftime", "HAVING"]}} +{"task": "Create a genre popularity matrix by country. Show genre name, revenue by country (USA, Canada, Germany, France, Brazil), total revenue, unique customers, and revenue percentage of total sales.", "expected_answer": {"sample_results": [{"Genre": "Rock", "USA_Revenue": 847.80, "Canada_Revenue": 140.67, "Germany_Revenue": 156.48, "France_Revenue": 195.56, "Brazil_Revenue": 127.91, "TotalRevenue": 1468.42, "UniqueCustomers": 28, "RevenuePercentage": 34.2}, {"Genre": "Latin", "USA_Revenue": 97.16, "Canada_Revenue": 31.32, "Germany_Revenue": 0.00, "France_Revenue": 0.00, "Brazil_Revenue": 35.91, "TotalRevenue": 164.39, "UniqueCustomers": 8, "RevenuePercentage": 3.8}], "expected_columns": ["Genre", "USA_Revenue", "Canada_Revenue", "Germany_Revenue", "France_Revenue", "Brazil_Revenue", "TotalRevenue", "UniqueCustomers", "RevenuePercentage"], "expected_result_type": "pivot-like matrix table", "difficulty": "high", "sql_concepts": ["CASE statements", "conditional aggregations", "subqueries in SELECT", "ROUND function", "pivot-like analysis"]}} +{"task": "Find tracks with complex text patterns in titles. Look for tracks that are either two-word titles starting with capital letters, contain numbers, contain special characters, or are in title case. Show track name, artist, album, duration, and identified pattern type.", "expected_answer": {"sample_results": [{"TrackName": "For Those About To Rock (We Salute You)", "ArtistName": "AC/DC", "AlbumTitle": "For Those About To Rock We Salute You", "Milliseconds": 343719, "TitlePattern": "Contains Special Characters"}, {"TrackName": "Fast As a Shark", "ArtistName": "Accept", "AlbumTitle": "Restless and Wild", "Milliseconds": 230619, "TitlePattern": "Two Word Title"}, {"TrackName": "2 Minutes To Midnight", "ArtistName": "Iron Maiden", "AlbumTitle": "Powerslave", "Milliseconds": 337423, "TitlePattern": "Contains Numbers"}], "expected_columns": ["TrackName", "ArtistName", "AlbumTitle", "Milliseconds", "TitlePattern"], "expected_result_type": "pattern analysis table", "difficulty": "high", "sql_concepts": ["REGEXP", "CASE statements", "regular expressions", "pattern matching", "OR conditions"]}} +{"task": "Find high-value customers who haven't purchased recently and their potential re-engagement opportunities. Identify customers who haven't purchased in 3+ months, have lifetime value >$25, and have >10 related tracks available. Include customer status (At Risk/Needs Attention/Active) and segment (High Value Diverse/Medium Value/Low Value).", "expected_answer": {"sample_results": [{"CustomerId": 15, "CustomerName": "Jennifer Peterson", "Country": "Canada", "LastPurchaseDate": "2010-02-22", "TotalPurchases": 3, "LifetimeValue": 128.70, "AvgOrderValue": 42.90, "GenresExplored": 4, "RelatedTracksAvailable": 15, "CustomerStatus": "Needs Attention", "CustomerSegment": "High Value, Diverse Taste"}, {"CustomerId": 23, "CustomerName": "John Gordon", "Country": "USA", "LastPurchaseDate": "2010-01-03", "TotalPurchases": 2, "LifetimeValue": 43.65, "AvgOrderValue": 21.83, "GenresExplored": 2, "RelatedTracksAvailable": 12, "CustomerStatus": "Needs Attention", "CustomerSegment": "Medium Value"}], "expected_columns": ["CustomerId", "CustomerName", "Country", "LastPurchaseDate", "TotalPurchases", "LifetimeValue", "AvgOrderValue", "GenresExplored", "RelatedTracksAvailable", "CustomerStatus", "CustomerSegment"], "expected_result_type": "customer re-engagement analysis table", "difficulty": "very_high", "sql_concepts": ["CTEs", "correlated subqueries", "IN operator", "date functions", "CASE statements", "business logic", "complex filtering"]}} +{"task": "Find the most expensive tracks by genre and their popularity metrics. Show genre, track name, artist, unit price, total quantity sold, total revenue, and popularity rank within each genre.", "expected_answer": {"sample_results": [{"Genre": "Rock", "TrackName": "Stairway to Heaven", "ArtistName": "Led Zeppelin", "UnitPrice": 0.99, "TotalQuantity": 45, "TotalRevenue": 44.55, "PopularityRank": 1}, {"Genre": "Jazz", "TrackName": "Take Five", "ArtistName": "Dave Brubeck", "UnitPrice": 0.99, "TotalQuantity": 38, "TotalRevenue": 37.62, "PopularityRank": 1}, {"Genre": "Classical", "TrackName": "Symphony No. 9", "ArtistName": "Beethoven", "UnitPrice": 0.99, "TotalQuantity": 22, "TotalRevenue": 21.78, "PopularityRank": 1}], "expected_columns": ["Genre", "TrackName", "ArtistName", "UnitPrice", "TotalQuantity", "TotalRevenue", "PopularityRank"], "expected_result_type": "genre-based ranking table", "difficulty": "high", "sql_concepts": ["window functions", "PARTITION BY", "RANK", "aggregations", "multi-table JOINs"]}} +{"task": "Calculate customer lifetime value segments and predict churn risk. Group customers into segments based on spending patterns and calculate days since last purchase to identify churn risk.", "expected_answer": {"sample_results": [{"CustomerId": 6, "CustomerName": "Helena Holý", "LifetimeValue": 49.62, "Segment": "High Value", "DaysSinceLastPurchase": 45, "ChurnRisk": "Low", "PurchaseFrequency": 7.5}, {"CustomerId": 26, "CustomerName": "Richard Cunningham", "LifetimeValue": 47.62, "Segment": "High Value", "DaysSinceLastPurchase": 120, "ChurnRisk": "Medium", "PurchaseFrequency": 6.0}, {"CustomerId": 57, "CustomerName": "Luis Rojas", "LifetimeValue": 46.62, "Segment": "High Value", "DaysSinceLastPurchase": 90, "ChurnRisk": "Medium", "PurchaseFrequency": 5.5}], "expected_columns": ["CustomerId", "CustomerName", "LifetimeValue", "Segment", "DaysSinceLastPurchase", "ChurnRisk", "PurchaseFrequency"], "expected_result_type": "customer segmentation and churn analysis", "difficulty": "high", "sql_concepts": ["CASE statements", "date calculations", "business logic", "segmentation", "risk assessment"]}} +{"task": "Find albums with the highest track count variance and their genre distribution. Show album title, artist, total tracks, track count variance, genre count, and most common genre.", "expected_answer": {"sample_results": [{"AlbumTitle": "Greatest Hits", "ArtistName": "Queen", "TotalTracks": 15, "TrackCountVariance": 2.8, "GenreCount": 3, "MostCommonGenre": "Rock", "GenrePercentage": 60.0}, {"AlbumTitle": "The Wall", "ArtistName": "Pink Floyd", "TotalTracks": 26, "TrackCountVariance": 3.2, "GenreCount": 2, "MostCommonGenre": "Rock", "GenrePercentage": 85.0}, {"AlbumTitle": "Abbey Road", "ArtistName": "The Beatles", "TotalTracks": 17, "TrackCountVariance": 1.9, "GenreCount": 4, "MostCommonGenre": "Rock", "GenrePercentage": 70.0}], "expected_columns": ["AlbumTitle", "ArtistName", "TotalTracks", "TrackCountVariance", "GenreCount", "MostCommonGenre", "GenrePercentage"], "expected_result_type": "album complexity analysis table", "difficulty": "very_high", "sql_concepts": ["variance calculations", "mode functions", "complex aggregations", "subqueries", "percentage calculations"]}} +{"task": "Analyze seasonal purchasing trends by customer country and genre preference. Show country, genre, month, average purchase value, customer count, and seasonal trend indicator.", "expected_answer": {"sample_results": [{"Country": "USA", "Genre": "Rock", "Month": "January", "AvgPurchaseValue": 8.99, "CustomerCount": 12, "SeasonalTrend": "Peak"}, {"Country": "Canada", "Genre": "Rock", "Month": "January", "AvgPurchaseValue": 7.99, "CustomerCount": 8, "SeasonalTrend": "Peak"}, {"Country": "Germany", "Genre": "Classical", "Month": "March", "AvgPurchaseValue": 9.99, "CustomerCount": 5, "SeasonalTrend": "Rising"}, {"Country": "France", "Genre": "Jazz", "Month": "February", "AvgPurchaseValue": 6.99, "CustomerCount": 6, "SeasonalTrend": "Stable"}], "expected_columns": ["Country", "Genre", "Month", "AvgPurchaseValue", "CustomerCount", "SeasonalTrend"], "expected_result_type": "seasonal analysis by geography and genre", "difficulty": "high", "sql_concepts": ["seasonal analysis", "geographic grouping", "trend indicators", "multi-dimensional aggregations"]}} +{"task": "Find customers with the most diverse music taste and their spending correlation. Calculate genre diversity score, average track price, total spending, and diversity-to-spending ratio.", "expected_answer": {"sample_results": [{"CustomerId": 15, "CustomerName": "Jennifer Peterson", "GenreDiversityScore": 0.85, "AvgTrackPrice": 0.99, "TotalSpending": 128.70, "DiversityToSpendingRatio": 0.0066}, {"CustomerId": 23, "CustomerName": "John Gordon", "GenreDiversityScore": 0.72, "AvgTrackPrice": 0.99, "TotalSpending": 43.65, "DiversityToSpendingRatio": 0.0165}, {"CustomerId": 6, "CustomerName": "Helena Holý", "GenreDiversityScore": 0.68, "AvgTrackPrice": 0.99, "TotalSpending": 49.62, "DiversityToSpendingRatio": 0.0137}], "expected_columns": ["CustomerId", "CustomerName", "GenreDiversityScore", "AvgTrackPrice", "TotalSpending", "DiversityToSpendingRatio"], "expected_result_type": "customer diversity analysis table", "difficulty": "very_high", "sql_concepts": ["diversity calculations", "correlation analysis", "ratio calculations", "complex aggregations", "business metrics"]}} +{"task": "Calculate employee performance metrics based on customer satisfaction and sales volume. Show employee name, total customers served, average customer spending, customer retention rate, and performance score.", "expected_answer": {"sample_results": [{"EmployeeId": 3, "EmployeeName": "Jane Peacock", "TotalCustomersServed": 45, "AvgCustomerSpending": 42.15, "CustomerRetentionRate": 0.78, "PerformanceScore": 8.7}, {"EmployeeId": 4, "EmployeeName": "Margaret Park", "TotalCustomersServed": 38, "AvgCustomerSpending": 38.92, "CustomerRetentionRate": 0.72, "PerformanceScore": 7.9}, {"EmployeeId": 5, "EmployeeName": "Steve Johnson", "TotalCustomersServed": 32, "AvgCustomerSpending": 35.67, "CustomerRetentionRate": 0.68, "PerformanceScore": 7.2}], "expected_columns": ["EmployeeId", "EmployeeName", "TotalCustomersServed", "AvgCustomerSpending", "CustomerRetentionRate", "PerformanceScore"], "expected_result_type": "employee performance evaluation table", "difficulty": "high", "sql_concepts": ["employee metrics", "customer retention", "performance scoring", "complex aggregations", "business intelligence"]}} +{"task": "Find the most profitable music combinations (artist-album-genre) and their market performance. Calculate profit margin, total sales, customer acquisition cost, and return on investment by combination.", "expected_answer": {"sample_results": [{"ArtistName": "Queen", "AlbumTitle": "Greatest Hits", "Genre": "Rock", "ProfitMargin": 0.75, "TotalSales": 847.80, "CustomerAcquisitionCost": 2.50, "ROI": 3.2}, {"ArtistName": "The Beatles", "AlbumTitle": "Abbey Road", "Genre": "Rock", "ProfitMargin": 0.72, "TotalSales": 756.45, "CustomerAcquisitionCost": 2.75, "ROI": 2.9}, {"ArtistName": "Led Zeppelin", "AlbumTitle": "Led Zeppelin IV", "Genre": "Rock", "ProfitMargin": 0.78, "TotalSales": 689.32, "CustomerAcquisitionCost": 2.25, "ROI": 3.5}], "expected_columns": ["ArtistName", "AlbumTitle", "Genre", "ProfitMargin", "TotalSales", "CustomerAcquisitionCost", "ROI"], "expected_result_type": "profitability analysis table", "difficulty": "very_high", "sql_concepts": ["profit calculations", "ROI analysis", "cost analysis", "business metrics", "complex aggregations"]}} +{"task": "Analyze customer migration patterns between genres over time. Show customer ID, original genre preference, current genre preference, migration date, and genre evolution score.", "expected_answer": {"sample_results": [{"CustomerId": 15, "OriginalGenre": "Rock", "CurrentGenre": "Jazz", "MigrationDate": "2010-03-15", "GenreEvolutionScore": 0.65}, {"CustomerId": 23, "OriginalGenre": "Pop", "CurrentGenre": "Classical", "MigrationDate": "2010-02-28", "GenreEvolutionScore": 0.72}, {"CustomerId": 6, "OriginalGenre": "Rock", "CurrentGenre": "Latin", "MigrationDate": "2010-01-20", "GenreEvolutionScore": 0.58}], "expected_columns": ["CustomerId", "OriginalGenre", "CurrentGenre", "MigrationDate", "GenreEvolutionScore"], "expected_result_type": "customer genre migration analysis", "difficulty": "very_high", "sql_concepts": ["temporal analysis", "migration tracking", "evolution scoring", "time-based comparisons", "customer behavior analysis"]}} +{"task": "Calculate the network effect of music recommendations based on customer similarity. Find customer clusters with similar music taste and calculate recommendation strength scores.", "expected_answer": {"sample_results": [{"ClusterId": 1, "ClusterSize": 8, "AvgGenreOverlap": 0.75, "RecommendationStrength": 0.82, "MostCommonGenre": "Rock", "ClusterCohesion": 0.68}, {"ClusterId": 2, "ClusterSize": 6, "AvgGenreOverlap": 0.68, "RecommendationStrength": 0.74, "MostCommonGenre": "Jazz", "ClusterCohesion": 0.72}, {"ClusterId": 3, "ClusterSize": 5, "AvgGenreOverlap": 0.62, "RecommendationStrength": 0.69, "MostCommonGenre": "Classical", "ClusterCohesion": 0.65}], "expected_columns": ["ClusterId", "ClusterSize", "AvgGenreOverlap", "RecommendationStrength", "MostCommonGenre", "ClusterCohesion"], "expected_result_type": "customer clustering and recommendation analysis", "difficulty": "very_high", "sql_concepts": ["clustering algorithms", "similarity calculations", "network analysis", "recommendation systems", "complex data mining"]} From b39f2c94e226b9d614d88cf912bbf2ae2d39b53f Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 26 Aug 2025 16:14:12 -0700 Subject: [PATCH 09/21] vite build --- .../{index-Bw6MHHaR.js => index-B54SLXhR.js} | 56 +++++++++---------- ...-Bw6MHHaR.js.map => index-B54SLXhR.js.map} | 2 +- vite-app/dist/assets/index-BxZNbf6w.css | 1 - vite-app/dist/assets/index-CiLyUyXb.css | 1 + vite-app/dist/index.html | 4 +- 5 files changed, 32 insertions(+), 32 deletions(-) rename vite-app/dist/assets/{index-Bw6MHHaR.js => index-B54SLXhR.js} (61%) rename vite-app/dist/assets/{index-Bw6MHHaR.js.map => index-B54SLXhR.js.map} (54%) delete mode 100644 vite-app/dist/assets/index-BxZNbf6w.css create mode 100644 vite-app/dist/assets/index-CiLyUyXb.css diff --git a/vite-app/dist/assets/index-Bw6MHHaR.js b/vite-app/dist/assets/index-B54SLXhR.js similarity index 61% rename from vite-app/dist/assets/index-Bw6MHHaR.js rename to vite-app/dist/assets/index-B54SLXhR.js index 826011f1..43e0f981 100644 --- a/vite-app/dist/assets/index-Bw6MHHaR.js +++ b/vite-app/dist/assets/index-B54SLXhR.js @@ -1,4 +1,4 @@ -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function A(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(i){if(i.ep)return;i.ep=!0;const s=A(i);fetch(i.href,s)}})();function Dm(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Up={exports:{}},Bl={};/** +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function A(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(i){if(i.ep)return;i.ep=!0;const s=A(i);fetch(i.href,s)}})();function Lm(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Fp={exports:{}},Bl={};/** * @license React * react-jsx-runtime.production.js * @@ -6,7 +6,7 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var uy;function SH(){if(uy)return Bl;uy=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function A(n,i,s){var o=null;if(s!==void 0&&(o=""+s),i.key!==void 0&&(o=""+i.key),"key"in i){s={};for(var c in i)c!=="key"&&(s[c]=i[c])}else s=i;return i=s.ref,{$$typeof:e,type:n,key:o,ref:i!==void 0?i:null,props:s}}return Bl.Fragment=t,Bl.jsx=A,Bl.jsxs=A,Bl}var fy;function HH(){return fy||(fy=1,Up.exports=SH()),Up.exports}var U=HH(),Ep={exports:{}},Ut={};/** + */var hy;function OH(){if(hy)return Bl;hy=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function A(n,i,s){var o=null;if(s!==void 0&&(o=""+s),i.key!==void 0&&(o=""+i.key),"key"in i){s={};for(var c in i)c!=="key"&&(s[c]=i[c])}else s=i;return i=s.ref,{$$typeof:e,type:n,key:o,ref:i!==void 0?i:null,props:s}}return Bl.Fragment=t,Bl.jsx=A,Bl.jsxs=A,Bl}var dy;function TH(){return dy||(dy=1,Fp.exports=OH()),Fp.exports}var Q=TH(),Sp={exports:{}},Ut={};/** * @license React * react.production.js * @@ -14,7 +14,7 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var hy;function OH(){if(hy)return Ut;hy=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),A=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),o=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),h=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),p=Symbol.iterator;function m(T){return T===null||typeof T!="object"?null:(T=p&&T[p]||T["@@iterator"],typeof T=="function"?T:null)}var v={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,b={};function _(T,j,et){this.props=T,this.context=j,this.refs=b,this.updater=et||v}_.prototype.isReactComponent={},_.prototype.setState=function(T,j){if(typeof T!="object"&&typeof T!="function"&&T!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,T,j,"setState")},_.prototype.forceUpdate=function(T){this.updater.enqueueForceUpdate(this,T,"forceUpdate")};function C(){}C.prototype=_.prototype;function Q(T,j,et){this.props=T,this.context=j,this.refs=b,this.updater=et||v}var E=Q.prototype=new C;E.constructor=Q,w(E,_.prototype),E.isPureReactComponent=!0;var H=Array.isArray,F={H:null,A:null,T:null,S:null,V:null},D=Object.prototype.hasOwnProperty;function L(T,j,et,tt,Y,ct){return et=ct.ref,{$$typeof:e,type:T,key:j,ref:et!==void 0?et:null,props:ct}}function z(T,j){return L(T.type,j,void 0,void 0,void 0,T.props)}function N(T){return typeof T=="object"&&T!==null&&T.$$typeof===e}function J(T){var j={"=":"=0",":":"=2"};return"$"+T.replace(/[=:]/g,function(et){return j[et]})}var At=/\/+/g;function nt(T,j){return typeof T=="object"&&T!==null&&T.key!=null?J(""+T.key):j.toString(36)}function lt(){}function ut(T){switch(T.status){case"fulfilled":return T.value;case"rejected":throw T.reason;default:switch(typeof T.status=="string"?T.then(lt,lt):(T.status="pending",T.then(function(j){T.status==="pending"&&(T.status="fulfilled",T.value=j)},function(j){T.status==="pending"&&(T.status="rejected",T.reason=j)})),T.status){case"fulfilled":return T.value;case"rejected":throw T.reason}}throw T}function rt(T,j,et,tt,Y){var ct=typeof T;(ct==="undefined"||ct==="boolean")&&(T=null);var at=!1;if(T===null)at=!0;else switch(ct){case"bigint":case"string":case"number":at=!0;break;case"object":switch(T.$$typeof){case e:case t:at=!0;break;case d:return at=T._init,rt(at(T._payload),j,et,tt,Y)}}if(at)return Y=Y(T),at=tt===""?"."+nt(T,0):tt,H(Y)?(et="",at!=null&&(et=at.replace(At,"$&/")+"/"),rt(Y,j,et,"",function(Yt){return Yt})):Y!=null&&(N(Y)&&(Y=z(Y,et+(Y.key==null||T&&T.key===Y.key?"":(""+Y.key).replace(At,"$&/")+"/")+at)),j.push(Y)),1;at=0;var he=tt===""?".":tt+":";if(H(T))for(var Kt=0;Kt>>1,T=R[ot];if(0>>1;oti(tt,q))Yi(ct,tt)?(R[ot]=ct,R[Y]=q,ot=Y):(R[ot]=tt,R[et]=q,ot=et);else if(Yi(ct,q))R[ot]=ct,R[Y]=q,ot=Y;else break t}}return G}function i(R,G){var q=R.sortIndex-G.sortIndex;return q!==0?q:R.id-G.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var o=Date,c=o.now();e.unstable_now=function(){return o.now()-c}}var u=[],h=[],d=1,p=null,m=3,v=!1,w=!1,b=!1,_=!1,C=typeof setTimeout=="function"?setTimeout:null,Q=typeof clearTimeout=="function"?clearTimeout:null,E=typeof setImmediate<"u"?setImmediate:null;function H(R){for(var G=A(h);G!==null;){if(G.callback===null)n(h);else if(G.startTime<=R)n(h),G.sortIndex=G.expirationTime,t(u,G);else break;G=A(h)}}function F(R){if(b=!1,H(R),!w)if(A(u)!==null)w=!0,D||(D=!0,nt());else{var G=A(h);G!==null&&rt(F,G.startTime-R)}}var D=!1,L=-1,z=5,N=-1;function J(){return _?!0:!(e.unstable_now()-NR&&J());){var ot=p.callback;if(typeof ot=="function"){p.callback=null,m=p.priorityLevel;var T=ot(p.expirationTime<=R);if(R=e.unstable_now(),typeof T=="function"){p.callback=T,H(R),G=!0;break e}p===A(u)&&n(u),H(R)}else n(u);p=A(u)}if(p!==null)G=!0;else{var j=A(h);j!==null&&rt(F,j.startTime-R),G=!1}}break t}finally{p=null,m=q,v=!1}G=void 0}}finally{G?nt():D=!1}}}var nt;if(typeof E=="function")nt=function(){E(At)};else if(typeof MessageChannel<"u"){var lt=new MessageChannel,ut=lt.port2;lt.port1.onmessage=At,nt=function(){ut.postMessage(null)}}else nt=function(){C(At,0)};function rt(R,G){L=C(function(){R(e.unstable_now())},G)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(R){R.callback=null},e.unstable_forceFrameRate=function(R){0>R||125ot?(R.sortIndex=q,t(h,R),A(u)===null&&R===A(h)&&(b?(Q(L),L=-1):b=!0,rt(F,q-ot))):(R.sortIndex=T,t(u,R),w||v||(w=!0,D||(D=!0,nt()))),R},e.unstable_shouldYield=J,e.unstable_wrapCallback=function(R){var G=m;return function(){var q=m;m=G;try{return R.apply(this,arguments)}finally{m=q}}}}(Hp)),Hp}var py;function DH(){return py||(py=1,Sp.exports=TH()),Sp.exports}var Op={exports:{}},fA={};/** + */var By;function MH(){return By||(By=1,function(e){function t(R,G){var q=R.length;R.push(G);t:for(;0>>1,T=R[lt];if(0>>1;lti(tt,q))Yi(ut,tt)?(R[lt]=ut,R[Y]=q,lt=Y):(R[lt]=tt,R[et]=q,lt=et);else if(Yi(ut,q))R[lt]=ut,R[Y]=q,lt=Y;else break t}}return G}function i(R,G){var q=R.sortIndex-G.sortIndex;return q!==0?q:R.id-G.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var o=Date,c=o.now();e.unstable_now=function(){return o.now()-c}}var u=[],h=[],d=1,p=null,m=3,v=!1,w=!1,b=!1,_=!1,C=typeof setTimeout=="function"?setTimeout:null,U=typeof clearTimeout=="function"?clearTimeout:null,E=typeof setImmediate<"u"?setImmediate:null;function H(R){for(var G=A(h);G!==null;){if(G.callback===null)n(h);else if(G.startTime<=R)n(h),G.sortIndex=G.expirationTime,t(u,G);else break;G=A(h)}}function F(R){if(b=!1,H(R),!w)if(A(u)!==null)w=!0,D||(D=!0,nt());else{var G=A(h);G!==null&&st(F,G.startTime-R)}}var D=!1,L=-1,z=5,N=-1;function J(){return _?!0:!(e.unstable_now()-NR&&J());){var lt=p.callback;if(typeof lt=="function"){p.callback=null,m=p.priorityLevel;var T=lt(p.expirationTime<=R);if(R=e.unstable_now(),typeof T=="function"){p.callback=T,H(R),G=!0;break e}p===A(u)&&n(u),H(R)}else n(u);p=A(u)}if(p!==null)G=!0;else{var j=A(h);j!==null&&st(F,j.startTime-R),G=!1}}break t}finally{p=null,m=q,v=!1}G=void 0}}finally{G?nt():D=!1}}}var nt;if(typeof E=="function")nt=function(){E(At)};else if(typeof MessageChannel<"u"){var ct=new MessageChannel,ft=ct.port2;ct.port1.onmessage=At,nt=function(){ft.postMessage(null)}}else nt=function(){C(At,0)};function st(R,G){L=C(function(){R(e.unstable_now())},G)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(R){R.callback=null},e.unstable_forceFrameRate=function(R){0>R||125lt?(R.sortIndex=q,t(h,R),A(u)===null&&R===A(h)&&(b?(U(L),L=-1):b=!0,st(F,q-lt))):(R.sortIndex=T,t(u,R),w||v||(w=!0,D||(D=!0,nt()))),R},e.unstable_shouldYield=J,e.unstable_wrapCallback=function(R){var G=m;return function(){var q=m;m=G;try{return R.apply(this,arguments)}finally{m=q}}}}(Tp)),Tp}var my;function LH(){return my||(my=1,Op.exports=MH()),Op.exports}var Dp={exports:{}},hA={};/** * @license React * react-dom.production.js * @@ -30,7 +30,7 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var By;function MH(){if(By)return fA;By=1;var e=Lh();function t(u){var h="https://react.dev/errors/"+u;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),Op.exports=MH(),Op.exports}/** + */var vy;function RH(){if(vy)return hA;vy=1;var e=Ih();function t(u){var h="https://react.dev/errors/"+u;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),Dp.exports=RH(),Dp.exports}/** * @license React * react-dom-client.production.js * @@ -38,15 +38,15 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var vy;function LH(){if(vy)return ml;vy=1;var e=DH(),t=Lh(),A=BQ();function n(r){var a="https://react.dev/errors/"+r;if(1T||(r.current=ot[T],ot[T]=null,T--)}function tt(r,a){T++,ot[T]=r.current,r.current=a}var Y=j(null),ct=j(null),at=j(null),he=j(null);function Kt(r,a){switch(tt(at,a),tt(ct,r),tt(Y,null),a.nodeType){case 9:case 11:r=(r=a.documentElement)&&(r=r.namespaceURI)?Nb(r):0;break;default:if(r=a.tagName,a=a.namespaceURI)a=Nb(a),r=kb(a,r);else switch(r){case"svg":r=1;break;case"math":r=2;break;default:r=0}}et(Y),tt(Y,r)}function Yt(){et(Y),et(ct),et(at)}function An(r){r.memoizedState!==null&&tt(he,r);var a=Y.current,l=kb(a,r.type);a!==l&&(tt(ct,r),tt(Y,l))}function Pe(r){ct.current===r&&(et(Y),et(ct)),he.current===r&&(et(he),fl._currentValue=q)}var tA=Object.prototype.hasOwnProperty,EA=e.unstable_scheduleCallback,FA=e.unstable_cancelCallback,ea=e.unstable_shouldYield,bA=e.unstable_requestPaint,yA=e.unstable_now,pi=e.unstable_getCurrentPriorityLevel,Pn=e.unstable_ImmediatePriority,re=e.unstable_UserBlockingPriority,jn=e.unstable_NormalPriority,es=e.unstable_LowPriority,Ar=e.unstable_IdlePriority,As=e.log,Aa=e.unstable_setDisableYieldValue,nn=null,_e=null;function SA(r){if(typeof As=="function"&&Aa(r),_e&&typeof _e.setStrictMode=="function")try{_e.setStrictMode(nn,r)}catch{}}var Fe=Math.clz32?Math.clz32:ir,nr=Math.log,yo=Math.LN2;function ir(r){return r>>>=0,r===0?32:31-(nr(r)/yo|0)|0}var rn=256,aA=4194304;function Wt(r){var a=r&42;if(a!==0)return a;switch(r&-r){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return r&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return r&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return r}}function Bi(r,a,l){var f=r.pendingLanes;if(f===0)return 0;var g=0,B=r.suspendedLanes,y=r.pingedLanes;r=r.warmLanes;var x=f&134217727;return x!==0?(f=x&~B,f!==0?g=Wt(f):(y&=x,y!==0?g=Wt(y):l||(l=x&~r,l!==0&&(g=Wt(l))))):(x=f&~B,x!==0?g=Wt(x):y!==0?g=Wt(y):l||(l=f&~r,l!==0&&(g=Wt(l)))),g===0?0:a!==0&&a!==g&&(a&B)===0&&(B=g&-g,l=a&-a,B>=l||B===32&&(l&4194048)!==0)?a:g}function En(r,a){return(r.pendingLanes&~(r.suspendedLanes&~r.pingedLanes)&a)===0}function rr(r,a){switch(r){case 1:case 2:case 4:case 8:case 64:return a+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function sr(){var r=rn;return rn<<=1,(rn&4194048)===0&&(rn=256),r}function mi(){var r=aA;return aA<<=1,(aA&62914560)===0&&(aA=4194304),r}function Gn(r){for(var a=[],l=0;31>l;l++)a.push(r);return a}function sn(r,a){r.pendingLanes|=a,a!==268435456&&(r.suspendedLanes=0,r.pingedLanes=0,r.warmLanes=0)}function ns(r,a,l,f,g,B){var y=r.pendingLanes;r.pendingLanes=l,r.suspendedLanes=0,r.pingedLanes=0,r.warmLanes=0,r.expiredLanes&=l,r.entangledLanes&=l,r.errorRecoveryDisabledLanes&=l,r.shellSuspendCounter=0;var x=r.entanglements,O=r.expirationTimes,K=r.hiddenUpdates;for(l=y&~l;0T||(r.current=lt[T],lt[T]=null,T--)}function tt(r,a){T++,lt[T]=r.current,r.current=a}var Y=j(null),ut=j(null),ot=j(null),he=j(null);function Kt(r,a){switch(tt(ot,a),tt(ut,r),tt(Y,null),a.nodeType){case 9:case 11:r=(r=a.documentElement)&&(r=r.namespaceURI)?Kb(r):0;break;default:if(r=a.tagName,a=a.namespaceURI)a=Kb(a),r=zb(a,r);else switch(r){case"svg":r=1;break;case"math":r=2;break;default:r=0}}et(Y),tt(Y,r)}function Yt(){et(Y),et(ut),et(ot)}function An(r){r.memoizedState!==null&&tt(he,r);var a=Y.current,l=zb(a,r.type);a!==l&&(tt(ut,r),tt(Y,l))}function Pe(r){ut.current===r&&(et(Y),et(ut)),he.current===r&&(et(he),fl._currentValue=q)}var eA=Object.prototype.hasOwnProperty,EA=e.unstable_scheduleCallback,FA=e.unstable_cancelCallback,ea=e.unstable_shouldYield,yA=e.unstable_requestPaint,CA=e.unstable_now,pi=e.unstable_getCurrentPriorityLevel,Pn=e.unstable_ImmediatePriority,se=e.unstable_UserBlockingPriority,jn=e.unstable_NormalPriority,es=e.unstable_LowPriority,Ar=e.unstable_IdlePriority,As=e.log,Aa=e.unstable_setDisableYieldValue,nn=null,_e=null;function SA(r){if(typeof As=="function"&&Aa(r),_e&&typeof _e.setStrictMode=="function")try{_e.setStrictMode(nn,r)}catch{}}var Fe=Math.clz32?Math.clz32:ir,nr=Math.log,yo=Math.LN2;function ir(r){return r>>>=0,r===0?32:31-(nr(r)/yo|0)|0}var rn=256,oA=4194304;function Wt(r){var a=r&42;if(a!==0)return a;switch(r&-r){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return r&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return r&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return r}}function Bi(r,a,l){var f=r.pendingLanes;if(f===0)return 0;var g=0,B=r.suspendedLanes,y=r.pingedLanes;r=r.warmLanes;var x=f&134217727;return x!==0?(f=x&~B,f!==0?g=Wt(f):(y&=x,y!==0?g=Wt(y):l||(l=x&~r,l!==0&&(g=Wt(l))))):(x=f&~B,x!==0?g=Wt(x):y!==0?g=Wt(y):l||(l=f&~r,l!==0&&(g=Wt(l)))),g===0?0:a!==0&&a!==g&&(a&B)===0&&(B=g&-g,l=a&-a,B>=l||B===32&&(l&4194048)!==0)?a:g}function Un(r,a){return(r.pendingLanes&~(r.suspendedLanes&~r.pingedLanes)&a)===0}function rr(r,a){switch(r){case 1:case 2:case 4:case 8:case 64:return a+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function sr(){var r=rn;return rn<<=1,(rn&4194048)===0&&(rn=256),r}function mi(){var r=oA;return oA<<=1,(oA&62914560)===0&&(oA=4194304),r}function Gn(r){for(var a=[],l=0;31>l;l++)a.push(r);return a}function sn(r,a){r.pendingLanes|=a,a!==268435456&&(r.suspendedLanes=0,r.pingedLanes=0,r.warmLanes=0)}function ns(r,a,l,f,g,B){var y=r.pendingLanes;r.pendingLanes=l,r.suspendedLanes=0,r.pingedLanes=0,r.warmLanes=0,r.expiredLanes&=l,r.entangledLanes&=l,r.errorRecoveryDisabledLanes&=l,r.shellSuspendCounter=0;var x=r.entanglements,O=r.expirationTimes,K=r.hiddenUpdates;for(l=y&~l;0)":-1g||O[f]!==K[g]){var X=` -`+O[f].replace(" at new "," at ");return r.displayName&&X.includes("")&&(X=X.replace("",r.displayName)),X}while(1<=f&&0<=g);break}}}finally{yd=!1,Error.prepareStackTrace=l}return(l=r?r.displayName||r.name:"")?ra(l):""}function _S(r){switch(r.tag){case 26:case 27:case 5:return ra(r.type);case 16:return ra("Lazy");case 13:return ra("Suspense");case 19:return ra("SuspenseList");case 0:case 15:return Cd(r.type,!1);case 11:return Cd(r.type.render,!1);case 1:return Cd(r.type,!0);case 31:return ra("Activity");default:return""}}function Tv(r){try{var a="";do a+=_S(r),r=r.return;while(r);return a}catch(l){return` +`+O[f].replace(" at new "," at ");return r.displayName&&X.includes("")&&(X=X.replace("",r.displayName)),X}while(1<=f&&0<=g);break}}}finally{_d=!1,Error.prepareStackTrace=l}return(l=r?r.displayName||r.name:"")?ra(l):""}function QS(r){switch(r.tag){case 26:case 27:case 5:return ra(r.type);case 16:return ra("Lazy");case 13:return ra("Suspense");case 19:return ra("SuspenseList");case 0:case 15:return xd(r.type,!1);case 11:return xd(r.type.render,!1);case 1:return xd(r.type,!0);case 31:return ra("Activity");default:return""}}function Mv(r){try{var a="";do a+=QS(r),r=r.return;while(r);return a}catch(l){return` Error generating stack: `+l.message+` -`+l.stack}}function ln(r){switch(typeof r){case"bigint":case"boolean":case"number":case"string":case"undefined":return r;case"object":return r;default:return""}}function Dv(r){var a=r.type;return(r=r.nodeName)&&r.toLowerCase()==="input"&&(a==="checkbox"||a==="radio")}function xS(r){var a=Dv(r)?"checked":"value",l=Object.getOwnPropertyDescriptor(r.constructor.prototype,a),f=""+r[a];if(!r.hasOwnProperty(a)&&typeof l<"u"&&typeof l.get=="function"&&typeof l.set=="function"){var g=l.get,B=l.set;return Object.defineProperty(r,a,{configurable:!0,get:function(){return g.call(this)},set:function(y){f=""+y,B.call(this,y)}}),Object.defineProperty(r,a,{enumerable:l.enumerable}),{getValue:function(){return f},setValue:function(y){f=""+y},stopTracking:function(){r._valueTracker=null,delete r[a]}}}}function Dc(r){r._valueTracker||(r._valueTracker=xS(r))}function Mv(r){if(!r)return!1;var a=r._valueTracker;if(!a)return!0;var l=a.getValue(),f="";return r&&(f=Dv(r)?r.checked?"true":"false":r.value),r=f,r!==l?(a.setValue(r),!0):!1}function Mc(r){if(r=r||(typeof document<"u"?document:void 0),typeof r>"u")return null;try{return r.activeElement||r.body}catch{return r.body}}var QS=/[\n"\\]/g;function cn(r){return r.replace(QS,function(a){return"\\"+a.charCodeAt(0).toString(16)+" "})}function _d(r,a,l,f,g,B,y,x){r.name="",y!=null&&typeof y!="function"&&typeof y!="symbol"&&typeof y!="boolean"?r.type=y:r.removeAttribute("type"),a!=null?y==="number"?(a===0&&r.value===""||r.value!=a)&&(r.value=""+ln(a)):r.value!==""+ln(a)&&(r.value=""+ln(a)):y!=="submit"&&y!=="reset"||r.removeAttribute("value"),a!=null?xd(r,y,ln(a)):l!=null?xd(r,y,ln(l)):f!=null&&r.removeAttribute("value"),g==null&&B!=null&&(r.defaultChecked=!!B),g!=null&&(r.checked=g&&typeof g!="function"&&typeof g!="symbol"),x!=null&&typeof x!="function"&&typeof x!="symbol"&&typeof x!="boolean"?r.name=""+ln(x):r.removeAttribute("name")}function Lv(r,a,l,f,g,B,y,x){if(B!=null&&typeof B!="function"&&typeof B!="symbol"&&typeof B!="boolean"&&(r.type=B),a!=null||l!=null){if(!(B!=="submit"&&B!=="reset"||a!=null))return;l=l!=null?""+ln(l):"",a=a!=null?""+ln(a):l,x||a===r.value||(r.value=a),r.defaultValue=a}f=f??g,f=typeof f!="function"&&typeof f!="symbol"&&!!f,r.checked=x?r.checked:!!f,r.defaultChecked=!!f,y!=null&&typeof y!="function"&&typeof y!="symbol"&&typeof y!="boolean"&&(r.name=y)}function xd(r,a,l){a==="number"&&Mc(r.ownerDocument)===r||r.defaultValue===""+l||(r.defaultValue=""+l)}function sa(r,a,l,f){if(r=r.options,a){a={};for(var g=0;g"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Sd=!1;if(bi)try{var Qo={};Object.defineProperty(Qo,"passive",{get:function(){Sd=!0}}),window.addEventListener("test",Qo,Qo),window.removeEventListener("test",Qo,Qo)}catch{Sd=!1}var lr=null,Hd=null,Rc=null;function Vv(){if(Rc)return Rc;var r,a=Hd,l=a.length,f,g="value"in lr?lr.value:lr.textContent,B=g.length;for(r=0;r=Fo),Yv=" ",Wv=!1;function $v(r,a){switch(r){case"keyup":return t1.indexOf(a.keyCode)!==-1;case"keydown":return a.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Jv(r){return r=r.detail,typeof r=="object"&&"data"in r?r.data:null}var ca=!1;function A1(r,a){switch(r){case"compositionend":return Jv(a);case"keypress":return a.which!==32?null:(Wv=!0,Yv);case"textInput":return r=a.data,r===Yv&&Wv?null:r;default:return null}}function n1(r,a){if(ca)return r==="compositionend"||!Ld&&$v(r,a)?(r=Vv(),Rc=Hd=lr=null,ca=!1,r):null;switch(r){case"paste":return null;case"keypress":if(!(a.ctrlKey||a.altKey||a.metaKey)||a.ctrlKey&&a.altKey){if(a.char&&1=a)return{node:l,offset:a-r};r=f}t:{for(;l;){if(l.nextSibling){l=l.nextSibling;break t}l=l.parentNode}l=void 0}l=s0(l)}}function o0(r,a){return r&&a?r===a?!0:r&&r.nodeType===3?!1:a&&a.nodeType===3?o0(r,a.parentNode):"contains"in r?r.contains(a):r.compareDocumentPosition?!!(r.compareDocumentPosition(a)&16):!1:!1}function l0(r){r=r!=null&&r.ownerDocument!=null&&r.ownerDocument.defaultView!=null?r.ownerDocument.defaultView:window;for(var a=Mc(r.document);a instanceof r.HTMLIFrameElement;){try{var l=typeof a.contentWindow.location.href=="string"}catch{l=!1}if(l)r=a.contentWindow;else break;a=Mc(r.document)}return a}function Nd(r){var a=r&&r.nodeName&&r.nodeName.toLowerCase();return a&&(a==="input"&&(r.type==="text"||r.type==="search"||r.type==="tel"||r.type==="url"||r.type==="password")||a==="textarea"||r.contentEditable==="true")}var u1=bi&&"documentMode"in document&&11>=document.documentMode,ua=null,kd=null,To=null,Kd=!1;function c0(r,a,l){var f=l.window===l?l.document:l.nodeType===9?l:l.ownerDocument;Kd||ua==null||ua!==Mc(f)||(f=ua,"selectionStart"in f&&Nd(f)?f={start:f.selectionStart,end:f.selectionEnd}:(f=(f.ownerDocument&&f.ownerDocument.defaultView||window).getSelection(),f={anchorNode:f.anchorNode,anchorOffset:f.anchorOffset,focusNode:f.focusNode,focusOffset:f.focusOffset}),To&&Oo(To,f)||(To=f,f=Uu(kd,"onSelect"),0>=y,g-=y,Ci=1<<32-Fe(a)+g|l<B?B:8;var y=R.T,x={};R.T=x,Qg(r,!1,a,l);try{var O=g(),K=R.S;if(K!==null&&K(x,O),O!==null&&typeof O=="object"&&typeof O.then=="function"){var X=w1(O,f);Zo(r,a,X,XA(r))}else Zo(r,a,f,XA(r))}catch($){Zo(r,a,{then:function(){},status:"rejected",reason:$},XA())}finally{G.p=B,R.T=y}}function x1(){}function _g(r,a,l,f){if(r.tag!==5)throw Error(n(476));var g=uw(r).queue;cw(r,g,a,q,l===null?x1:function(){return fw(r),l(f)})}function uw(r){var a=r.memoizedState;if(a!==null)return a;a={memoizedState:q,baseState:q,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ui,lastRenderedState:q},next:null};var l={};return a.next={memoizedState:l,baseState:l,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ui,lastRenderedState:l},next:null},r.memoizedState=a,r=r.alternate,r!==null&&(r.memoizedState=a),a}function fw(r){var a=uw(r).next.queue;Zo(r,a,{},XA())}function xg(){return uA(fl)}function hw(){return Ne().memoizedState}function dw(){return Ne().memoizedState}function Q1(r){for(var a=r.return;a!==null;){switch(a.tag){case 24:case 3:var l=XA();r=fr(l);var f=hr(a,r,l);f!==null&&(ZA(f,a,l),zo(f,a,l)),a={cache:eg()},r.payload=a;return}a=a.return}}function U1(r,a,l){var f=XA();l={lane:f,revertLane:0,action:l,hasEagerState:!1,eagerState:null,next:null},au(r)?pw(a,l):(l=jd(r,a,l,f),l!==null&&(ZA(l,r,f),Bw(l,a,f)))}function gw(r,a,l){var f=XA();Zo(r,a,l,f)}function Zo(r,a,l,f){var g={lane:f,revertLane:0,action:l,hasEagerState:!1,eagerState:null,next:null};if(au(r))pw(a,g);else{var B=r.alternate;if(r.lanes===0&&(B===null||B.lanes===0)&&(B=a.lastRenderedReducer,B!==null))try{var y=a.lastRenderedState,x=B(y,l);if(g.hasEagerState=!0,g.eagerState=x,zA(x,y))return Pc(r,a,g,0),se===null&&Vc(),!1}catch{}finally{}if(l=jd(r,a,g,f),l!==null)return ZA(l,r,f),Bw(l,a,f),!0}return!1}function Qg(r,a,l,f){if(f={lane:2,revertLane:ip(),action:f,hasEagerState:!1,eagerState:null,next:null},au(r)){if(a)throw Error(n(479))}else a=jd(r,l,f,2),a!==null&&ZA(a,r,2)}function au(r){var a=r.alternate;return r===Et||a!==null&&a===Et}function pw(r,a){ba=eu=!0;var l=r.pending;l===null?a.next=a:(a.next=l.next,l.next=a),r.pending=a}function Bw(r,a,l){if((l&4194048)!==0){var f=a.lanes;f&=r.pendingLanes,l|=f,a.lanes=l,Se(r,l)}}var ou={readContext:uA,use:nu,useCallback:Te,useContext:Te,useEffect:Te,useImperativeHandle:Te,useLayoutEffect:Te,useInsertionEffect:Te,useMemo:Te,useReducer:Te,useRef:Te,useState:Te,useDebugValue:Te,useDeferredValue:Te,useTransition:Te,useSyncExternalStore:Te,useId:Te,useHostTransitionStatus:Te,useFormState:Te,useActionState:Te,useOptimistic:Te,useMemoCache:Te,useCacheRefresh:Te},mw={readContext:uA,use:nu,useCallback:function(r,a){return OA().memoizedState=[r,a===void 0?null:a],r},useContext:uA,useEffect:ew,useImperativeHandle:function(r,a,l){l=l!=null?l.concat([r]):null,su(4194308,4,rw.bind(null,a,r),l)},useLayoutEffect:function(r,a){return su(4194308,4,r,a)},useInsertionEffect:function(r,a){su(4,2,r,a)},useMemo:function(r,a){var l=OA();a=a===void 0?null:a;var f=r();if(ms){SA(!0);try{r()}finally{SA(!1)}}return l.memoizedState=[f,a],f},useReducer:function(r,a,l){var f=OA();if(l!==void 0){var g=l(a);if(ms){SA(!0);try{l(a)}finally{SA(!1)}}}else g=a;return f.memoizedState=f.baseState=g,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:r,lastRenderedState:g},f.queue=r,r=r.dispatch=U1.bind(null,Et,r),[f.memoizedState,r]},useRef:function(r){var a=OA();return r={current:r},a.memoizedState=r},useState:function(r){r=wg(r);var a=r.queue,l=gw.bind(null,Et,a);return a.dispatch=l,[r.memoizedState,l]},useDebugValue:yg,useDeferredValue:function(r,a){var l=OA();return Cg(l,r,a)},useTransition:function(){var r=wg(!1);return r=cw.bind(null,Et,r.queue,!0,!1),OA().memoizedState=r,[!1,r]},useSyncExternalStore:function(r,a,l){var f=Et,g=OA();if(Pt){if(l===void 0)throw Error(n(407));l=l()}else{if(l=a(),se===null)throw Error(n(349));(Lt&124)!==0||N0(f,a,l)}g.memoizedState=l;var B={value:l,getSnapshot:a};return g.queue=B,ew(K0.bind(null,f,B,r),[r]),f.flags|=2048,Ca(9,ru(),k0.bind(null,f,B,l,a),null),l},useId:function(){var r=OA(),a=se.identifierPrefix;if(Pt){var l=_i,f=Ci;l=(f&~(1<<32-Fe(f)-1)).toString(32)+l,a="«"+a+"R"+l,l=Au++,0Ct?(Ze=vt,vt=null):Ze=vt.sibling;var It=V(I,vt,k[Ct],W);if(It===null){vt===null&&(vt=Ze);break}r&&vt&&It.alternate===null&&a(I,vt),M=B(It,M,Ct),Ft===null?gt=It:Ft.sibling=It,Ft=It,vt=Ze}if(Ct===k.length)return l(I,vt),Pt&&fs(I,Ct),gt;if(vt===null){for(;CtCt?(Ze=vt,vt=null):Ze=vt.sibling;var Sr=V(I,vt,It.value,W);if(Sr===null){vt===null&&(vt=Ze);break}r&&vt&&Sr.alternate===null&&a(I,vt),M=B(Sr,M,Ct),Ft===null?gt=Sr:Ft.sibling=Sr,Ft=Sr,vt=Ze}if(It.done)return l(I,vt),Pt&&fs(I,Ct),gt;if(vt===null){for(;!It.done;Ct++,It=k.next())It=$(I,It.value,W),It!==null&&(M=B(It,M,Ct),Ft===null?gt=It:Ft.sibling=It,Ft=It);return Pt&&fs(I,Ct),gt}for(vt=f(vt);!It.done;Ct++,It=k.next())It=P(vt,I,Ct,It.value,W),It!==null&&(r&&It.alternate!==null&&vt.delete(It.key===null?Ct:It.key),M=B(It,M,Ct),Ft===null?gt=It:Ft.sibling=It,Ft=It);return r&&vt.forEach(function(FH){return a(I,FH)}),Pt&&fs(I,Ct),gt}function qt(I,M,k,W){if(typeof k=="object"&&k!==null&&k.type===w&&k.key===null&&(k=k.props.children),typeof k=="object"&&k!==null){switch(k.$$typeof){case m:t:{for(var gt=k.key;M!==null;){if(M.key===gt){if(gt=k.type,gt===w){if(M.tag===7){l(I,M.sibling),W=g(M,k.props.children),W.return=I,I=W;break t}}else if(M.elementType===gt||typeof gt=="object"&>!==null&>.$$typeof===z&&ww(gt)===M.type){l(I,M.sibling),W=g(M,k.props),Wo(W,k),W.return=I,I=W;break t}l(I,M);break}else a(I,M);M=M.sibling}k.type===w?(W=cs(k.props.children,I.mode,W,k.key),W.return=I,I=W):(W=Gc(k.type,k.key,k.props,null,I.mode,W),Wo(W,k),W.return=I,I=W)}return y(I);case v:t:{for(gt=k.key;M!==null;){if(M.key===gt)if(M.tag===4&&M.stateNode.containerInfo===k.containerInfo&&M.stateNode.implementation===k.implementation){l(I,M.sibling),W=g(M,k.children||[]),W.return=I,I=W;break t}else{l(I,M);break}else a(I,M);M=M.sibling}W=Zd(k,I.mode,W),W.return=I,I=W}return y(I);case z:return gt=k._init,k=gt(k._payload),qt(I,M,k,W)}if(rt(k))return _t(I,M,k,W);if(nt(k)){if(gt=nt(k),typeof gt!="function")throw Error(n(150));return k=gt.call(k),bt(I,M,k,W)}if(typeof k.then=="function")return qt(I,M,lu(k),W);if(k.$$typeof===E)return qt(I,M,Wc(I,k),W);cu(I,k)}return typeof k=="string"&&k!==""||typeof k=="number"||typeof k=="bigint"?(k=""+k,M!==null&&M.tag===6?(l(I,M.sibling),W=g(M,k),W.return=I,I=W):(l(I,M),W=Xd(k,I.mode,W),W.return=I,I=W),y(I)):l(I,M)}return function(I,M,k,W){try{Yo=0;var gt=qt(I,M,k,W);return _a=null,gt}catch(vt){if(vt===ko||vt===Jc)throw vt;var Ft=VA(29,vt,null,I.mode);return Ft.lanes=W,Ft.return=I,Ft}finally{}}}var xa=bw(!0),yw=bw(!1),gn=j(null),Yn=null;function gr(r){var a=r.alternate;tt(Ke,Ke.current&1),tt(gn,r),Yn===null&&(a===null||wa.current!==null||a.memoizedState!==null)&&(Yn=r)}function Cw(r){if(r.tag===22){if(tt(Ke,Ke.current),tt(gn,r),Yn===null){var a=r.alternate;a!==null&&a.memoizedState!==null&&(Yn=r)}}else pr()}function pr(){tt(Ke,Ke.current),tt(gn,gn.current)}function Ei(r){et(gn),Yn===r&&(Yn=null),et(Ke)}var Ke=j(0);function uu(r){for(var a=r;a!==null;){if(a.tag===13){var l=a.memoizedState;if(l!==null&&(l=l.dehydrated,l===null||l.data==="$?"||pp(l)))return a}else if(a.tag===19&&a.memoizedProps.revealOrder!==void 0){if((a.flags&128)!==0)return a}else if(a.child!==null){a.child.return=a,a=a.child;continue}if(a===r)break;for(;a.sibling===null;){if(a.return===null||a.return===r)return null;a=a.return}a.sibling.return=a.return,a=a.sibling}return null}function Ug(r,a,l,f){a=r.memoizedState,l=l(f,a),l=l==null?a:d({},a,l),r.memoizedState=l,r.lanes===0&&(r.updateQueue.baseState=l)}var Eg={enqueueSetState:function(r,a,l){r=r._reactInternals;var f=XA(),g=fr(f);g.payload=a,l!=null&&(g.callback=l),a=hr(r,g,f),a!==null&&(ZA(a,r,f),zo(a,r,f))},enqueueReplaceState:function(r,a,l){r=r._reactInternals;var f=XA(),g=fr(f);g.tag=1,g.payload=a,l!=null&&(g.callback=l),a=hr(r,g,f),a!==null&&(ZA(a,r,f),zo(a,r,f))},enqueueForceUpdate:function(r,a){r=r._reactInternals;var l=XA(),f=fr(l);f.tag=2,a!=null&&(f.callback=a),a=hr(r,f,l),a!==null&&(ZA(a,r,l),zo(a,r,l))}};function _w(r,a,l,f,g,B,y){return r=r.stateNode,typeof r.shouldComponentUpdate=="function"?r.shouldComponentUpdate(f,B,y):a.prototype&&a.prototype.isPureReactComponent?!Oo(l,f)||!Oo(g,B):!0}function xw(r,a,l,f){r=a.state,typeof a.componentWillReceiveProps=="function"&&a.componentWillReceiveProps(l,f),typeof a.UNSAFE_componentWillReceiveProps=="function"&&a.UNSAFE_componentWillReceiveProps(l,f),a.state!==r&&Eg.enqueueReplaceState(a,a.state,null)}function vs(r,a){var l=a;if("ref"in a){l={};for(var f in a)f!=="ref"&&(l[f]=a[f])}if(r=r.defaultProps){l===a&&(l=d({},l));for(var g in r)l[g]===void 0&&(l[g]=r[g])}return l}var fu=typeof reportError=="function"?reportError:function(r){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var a=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof r=="object"&&r!==null&&typeof r.message=="string"?String(r.message):String(r),error:r});if(!window.dispatchEvent(a))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",r);return}console.error(r)};function Qw(r){fu(r)}function Uw(r){console.error(r)}function Ew(r){fu(r)}function hu(r,a){try{var l=r.onUncaughtError;l(a.value,{componentStack:a.stack})}catch(f){setTimeout(function(){throw f})}}function Fw(r,a,l){try{var f=r.onCaughtError;f(l.value,{componentStack:l.stack,errorBoundary:a.tag===1?a.stateNode:null})}catch(g){setTimeout(function(){throw g})}}function Fg(r,a,l){return l=fr(l),l.tag=3,l.payload={element:null},l.callback=function(){hu(r,a)},l}function Sw(r){return r=fr(r),r.tag=3,r}function Hw(r,a,l,f){var g=l.type.getDerivedStateFromError;if(typeof g=="function"){var B=f.value;r.payload=function(){return g(B)},r.callback=function(){Fw(a,l,f)}}var y=l.stateNode;y!==null&&typeof y.componentDidCatch=="function"&&(r.callback=function(){Fw(a,l,f),typeof g!="function"&&(yr===null?yr=new Set([this]):yr.add(this));var x=f.stack;this.componentDidCatch(f.value,{componentStack:x!==null?x:""})})}function F1(r,a,l,f,g){if(l.flags|=32768,f!==null&&typeof f=="object"&&typeof f.then=="function"){if(a=l.alternate,a!==null&&Ro(a,l,g,!0),l=gn.current,l!==null){switch(l.tag){case 13:return Yn===null?qg():l.alternate===null&&Qe===0&&(Qe=3),l.flags&=-257,l.flags|=65536,l.lanes=g,f===ig?l.flags|=16384:(a=l.updateQueue,a===null?l.updateQueue=new Set([f]):a.add(f),ep(r,f,g)),!1;case 22:return l.flags|=65536,f===ig?l.flags|=16384:(a=l.updateQueue,a===null?(a={transitions:null,markerInstances:null,retryQueue:new Set([f])},l.updateQueue=a):(l=a.retryQueue,l===null?a.retryQueue=new Set([f]):l.add(f)),ep(r,f,g)),!1}throw Error(n(435,l.tag))}return ep(r,f,g),qg(),!1}if(Pt)return a=gn.current,a!==null?((a.flags&65536)===0&&(a.flags|=256),a.flags|=65536,a.lanes=g,f!==$d&&(r=Error(n(422),{cause:f}),Lo(un(r,l)))):(f!==$d&&(a=Error(n(423),{cause:f}),Lo(un(a,l))),r=r.current.alternate,r.flags|=65536,g&=-g,r.lanes|=g,f=un(f,l),g=Fg(r.stateNode,f,g),ag(r,g),Qe!==4&&(Qe=2)),!1;var B=Error(n(520),{cause:f});if(B=un(B,l),nl===null?nl=[B]:nl.push(B),Qe!==4&&(Qe=2),a===null)return!0;f=un(f,l),l=a;do{switch(l.tag){case 3:return l.flags|=65536,r=g&-g,l.lanes|=r,r=Fg(l.stateNode,f,r),ag(l,r),!1;case 1:if(a=l.type,B=l.stateNode,(l.flags&128)===0&&(typeof a.getDerivedStateFromError=="function"||B!==null&&typeof B.componentDidCatch=="function"&&(yr===null||!yr.has(B))))return l.flags|=65536,g&=-g,l.lanes|=g,g=Sw(g),Hw(g,r,l,f),ag(l,g),!1}l=l.return}while(l!==null);return!1}var Ow=Error(n(461)),Ge=!1;function eA(r,a,l,f){a.child=r===null?yw(a,null,l,f):xa(a,r.child,l,f)}function Tw(r,a,l,f,g){l=l.render;var B=a.ref;if("ref"in f){var y={};for(var x in f)x!=="ref"&&(y[x]=f[x])}else y=f;return ps(a),f=fg(r,a,l,y,B,g),x=hg(),r!==null&&!Ge?(dg(r,a,g),Fi(r,a,g)):(Pt&&x&&Yd(a),a.flags|=1,eA(r,a,f,g),a.child)}function Dw(r,a,l,f,g){if(r===null){var B=l.type;return typeof B=="function"&&!Gd(B)&&B.defaultProps===void 0&&l.compare===null?(a.tag=15,a.type=B,Mw(r,a,B,f,g)):(r=Gc(l.type,null,f,a,a.mode,g),r.ref=a.ref,r.return=a,a.child=r)}if(B=r.child,!Rg(r,g)){var y=B.memoizedProps;if(l=l.compare,l=l!==null?l:Oo,l(y,f)&&r.ref===a.ref)return Fi(r,a,g)}return a.flags|=1,r=yi(B,f),r.ref=a.ref,r.return=a,a.child=r}function Mw(r,a,l,f,g){if(r!==null){var B=r.memoizedProps;if(Oo(B,f)&&r.ref===a.ref)if(Ge=!1,a.pendingProps=f=B,Rg(r,g))(r.flags&131072)!==0&&(Ge=!0);else return a.lanes=r.lanes,Fi(r,a,g)}return Sg(r,a,l,f,g)}function Lw(r,a,l){var f=a.pendingProps,g=f.children,B=r!==null?r.memoizedState:null;if(f.mode==="hidden"){if((a.flags&128)!==0){if(f=B!==null?B.baseLanes|l:l,r!==null){for(g=a.child=r.child,B=0;g!==null;)B=B|g.lanes|g.childLanes,g=g.sibling;a.childLanes=B&~f}else a.childLanes=0,a.child=null;return Rw(r,a,f,l)}if((l&536870912)!==0)a.memoizedState={baseLanes:0,cachePool:null},r!==null&&$c(a,B!==null?B.cachePool:null),B!==null?M0(a,B):lg(),Cw(a);else return a.lanes=a.childLanes=536870912,Rw(r,a,B!==null?B.baseLanes|l:l,l)}else B!==null?($c(a,B.cachePool),M0(a,B),pr(),a.memoizedState=null):(r!==null&&$c(a,null),lg(),pr());return eA(r,a,g,l),a.child}function Rw(r,a,l,f){var g=ng();return g=g===null?null:{parent:ke._currentValue,pool:g},a.memoizedState={baseLanes:l,cachePool:g},r!==null&&$c(a,null),lg(),Cw(a),r!==null&&Ro(r,a,f,!0),null}function du(r,a){var l=a.ref;if(l===null)r!==null&&r.ref!==null&&(a.flags|=4194816);else{if(typeof l!="function"&&typeof l!="object")throw Error(n(284));(r===null||r.ref!==l)&&(a.flags|=4194816)}}function Sg(r,a,l,f,g){return ps(a),l=fg(r,a,l,f,void 0,g),f=hg(),r!==null&&!Ge?(dg(r,a,g),Fi(r,a,g)):(Pt&&f&&Yd(a),a.flags|=1,eA(r,a,l,g),a.child)}function Iw(r,a,l,f,g,B){return ps(a),a.updateQueue=null,l=R0(a,f,l,g),L0(r),f=hg(),r!==null&&!Ge?(dg(r,a,B),Fi(r,a,B)):(Pt&&f&&Yd(a),a.flags|=1,eA(r,a,l,B),a.child)}function Nw(r,a,l,f,g){if(ps(a),a.stateNode===null){var B=ga,y=l.contextType;typeof y=="object"&&y!==null&&(B=uA(y)),B=new l(f,B),a.memoizedState=B.state!==null&&B.state!==void 0?B.state:null,B.updater=Eg,a.stateNode=B,B._reactInternals=a,B=a.stateNode,B.props=f,B.state=a.memoizedState,B.refs={},rg(a),y=l.contextType,B.context=typeof y=="object"&&y!==null?uA(y):ga,B.state=a.memoizedState,y=l.getDerivedStateFromProps,typeof y=="function"&&(Ug(a,l,y,f),B.state=a.memoizedState),typeof l.getDerivedStateFromProps=="function"||typeof B.getSnapshotBeforeUpdate=="function"||typeof B.UNSAFE_componentWillMount!="function"&&typeof B.componentWillMount!="function"||(y=B.state,typeof B.componentWillMount=="function"&&B.componentWillMount(),typeof B.UNSAFE_componentWillMount=="function"&&B.UNSAFE_componentWillMount(),y!==B.state&&Eg.enqueueReplaceState(B,B.state,null),Po(a,f,B,g),Vo(),B.state=a.memoizedState),typeof B.componentDidMount=="function"&&(a.flags|=4194308),f=!0}else if(r===null){B=a.stateNode;var x=a.memoizedProps,O=vs(l,x);B.props=O;var K=B.context,X=l.contextType;y=ga,typeof X=="object"&&X!==null&&(y=uA(X));var $=l.getDerivedStateFromProps;X=typeof $=="function"||typeof B.getSnapshotBeforeUpdate=="function",x=a.pendingProps!==x,X||typeof B.UNSAFE_componentWillReceiveProps!="function"&&typeof B.componentWillReceiveProps!="function"||(x||K!==y)&&xw(a,B,f,y),ur=!1;var V=a.memoizedState;B.state=V,Po(a,f,B,g),Vo(),K=a.memoizedState,x||V!==K||ur?(typeof $=="function"&&(Ug(a,l,$,f),K=a.memoizedState),(O=ur||_w(a,l,O,f,V,K,y))?(X||typeof B.UNSAFE_componentWillMount!="function"&&typeof B.componentWillMount!="function"||(typeof B.componentWillMount=="function"&&B.componentWillMount(),typeof B.UNSAFE_componentWillMount=="function"&&B.UNSAFE_componentWillMount()),typeof B.componentDidMount=="function"&&(a.flags|=4194308)):(typeof B.componentDidMount=="function"&&(a.flags|=4194308),a.memoizedProps=f,a.memoizedState=K),B.props=f,B.state=K,B.context=y,f=O):(typeof B.componentDidMount=="function"&&(a.flags|=4194308),f=!1)}else{B=a.stateNode,sg(r,a),y=a.memoizedProps,X=vs(l,y),B.props=X,$=a.pendingProps,V=B.context,K=l.contextType,O=ga,typeof K=="object"&&K!==null&&(O=uA(K)),x=l.getDerivedStateFromProps,(K=typeof x=="function"||typeof B.getSnapshotBeforeUpdate=="function")||typeof B.UNSAFE_componentWillReceiveProps!="function"&&typeof B.componentWillReceiveProps!="function"||(y!==$||V!==O)&&xw(a,B,f,O),ur=!1,V=a.memoizedState,B.state=V,Po(a,f,B,g),Vo();var P=a.memoizedState;y!==$||V!==P||ur||r!==null&&r.dependencies!==null&&Yc(r.dependencies)?(typeof x=="function"&&(Ug(a,l,x,f),P=a.memoizedState),(X=ur||_w(a,l,X,f,V,P,O)||r!==null&&r.dependencies!==null&&Yc(r.dependencies))?(K||typeof B.UNSAFE_componentWillUpdate!="function"&&typeof B.componentWillUpdate!="function"||(typeof B.componentWillUpdate=="function"&&B.componentWillUpdate(f,P,O),typeof B.UNSAFE_componentWillUpdate=="function"&&B.UNSAFE_componentWillUpdate(f,P,O)),typeof B.componentDidUpdate=="function"&&(a.flags|=4),typeof B.getSnapshotBeforeUpdate=="function"&&(a.flags|=1024)):(typeof B.componentDidUpdate!="function"||y===r.memoizedProps&&V===r.memoizedState||(a.flags|=4),typeof B.getSnapshotBeforeUpdate!="function"||y===r.memoizedProps&&V===r.memoizedState||(a.flags|=1024),a.memoizedProps=f,a.memoizedState=P),B.props=f,B.state=P,B.context=O,f=X):(typeof B.componentDidUpdate!="function"||y===r.memoizedProps&&V===r.memoizedState||(a.flags|=4),typeof B.getSnapshotBeforeUpdate!="function"||y===r.memoizedProps&&V===r.memoizedState||(a.flags|=1024),f=!1)}return B=f,du(r,a),f=(a.flags&128)!==0,B||f?(B=a.stateNode,l=f&&typeof l.getDerivedStateFromError!="function"?null:B.render(),a.flags|=1,r!==null&&f?(a.child=xa(a,r.child,null,g),a.child=xa(a,null,l,g)):eA(r,a,l,g),a.memoizedState=B.state,r=a.child):r=Fi(r,a,g),r}function kw(r,a,l,f){return Mo(),a.flags|=256,eA(r,a,l,f),a.child}var Hg={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Og(r){return{baseLanes:r,cachePool:U0()}}function Tg(r,a,l){return r=r!==null?r.childLanes&~l:0,a&&(r|=pn),r}function Kw(r,a,l){var f=a.pendingProps,g=!1,B=(a.flags&128)!==0,y;if((y=B)||(y=r!==null&&r.memoizedState===null?!1:(Ke.current&2)!==0),y&&(g=!0,a.flags&=-129),y=(a.flags&32)!==0,a.flags&=-33,r===null){if(Pt){if(g?gr(a):pr(),Pt){var x=xe,O;if(O=x){t:{for(O=x,x=Zn;O.nodeType!==8;){if(!x){x=null;break t}if(O=Hn(O.nextSibling),O===null){x=null;break t}}x=O}x!==null?(a.memoizedState={dehydrated:x,treeContext:us!==null?{id:Ci,overflow:_i}:null,retryLane:536870912,hydrationErrors:null},O=VA(18,null,null,0),O.stateNode=x,O.return=a,a.child=O,_A=a,xe=null,O=!0):O=!1}O||ds(a)}if(x=a.memoizedState,x!==null&&(x=x.dehydrated,x!==null))return pp(x)?a.lanes=32:a.lanes=536870912,null;Ei(a)}return x=f.children,f=f.fallback,g?(pr(),g=a.mode,x=gu({mode:"hidden",children:x},g),f=cs(f,g,l,null),x.return=a,f.return=a,x.sibling=f,a.child=x,g=a.child,g.memoizedState=Og(l),g.childLanes=Tg(r,y,l),a.memoizedState=Hg,f):(gr(a),Dg(a,x))}if(O=r.memoizedState,O!==null&&(x=O.dehydrated,x!==null)){if(B)a.flags&256?(gr(a),a.flags&=-257,a=Mg(r,a,l)):a.memoizedState!==null?(pr(),a.child=r.child,a.flags|=128,a=null):(pr(),g=f.fallback,x=a.mode,f=gu({mode:"visible",children:f.children},x),g=cs(g,x,l,null),g.flags|=2,f.return=a,g.return=a,f.sibling=g,a.child=f,xa(a,r.child,null,l),f=a.child,f.memoizedState=Og(l),f.childLanes=Tg(r,y,l),a.memoizedState=Hg,a=g);else if(gr(a),pp(x)){if(y=x.nextSibling&&x.nextSibling.dataset,y)var K=y.dgst;y=K,f=Error(n(419)),f.stack="",f.digest=y,Lo({value:f,source:null,stack:null}),a=Mg(r,a,l)}else if(Ge||Ro(r,a,l,!1),y=(l&r.childLanes)!==0,Ge||y){if(y=se,y!==null&&(f=l&-l,f=(f&42)!==0?1:oA(f),f=(f&(y.suspendedLanes|l))!==0?0:f,f!==0&&f!==O.retryLane))throw O.retryLane=f,da(r,f),ZA(y,r,f),Ow;x.data==="$?"||qg(),a=Mg(r,a,l)}else x.data==="$?"?(a.flags|=192,a.child=r.child,a=null):(r=O.treeContext,xe=Hn(x.nextSibling),_A=a,Pt=!0,hs=null,Zn=!1,r!==null&&(hn[dn++]=Ci,hn[dn++]=_i,hn[dn++]=us,Ci=r.id,_i=r.overflow,us=a),a=Dg(a,f.children),a.flags|=4096);return a}return g?(pr(),g=f.fallback,x=a.mode,O=r.child,K=O.sibling,f=yi(O,{mode:"hidden",children:f.children}),f.subtreeFlags=O.subtreeFlags&65011712,K!==null?g=yi(K,g):(g=cs(g,x,l,null),g.flags|=2),g.return=a,f.return=a,f.sibling=g,a.child=f,f=g,g=a.child,x=r.child.memoizedState,x===null?x=Og(l):(O=x.cachePool,O!==null?(K=ke._currentValue,O=O.parent!==K?{parent:K,pool:K}:O):O=U0(),x={baseLanes:x.baseLanes|l,cachePool:O}),g.memoizedState=x,g.childLanes=Tg(r,y,l),a.memoizedState=Hg,f):(gr(a),l=r.child,r=l.sibling,l=yi(l,{mode:"visible",children:f.children}),l.return=a,l.sibling=null,r!==null&&(y=a.deletions,y===null?(a.deletions=[r],a.flags|=16):y.push(r)),a.child=l,a.memoizedState=null,l)}function Dg(r,a){return a=gu({mode:"visible",children:a},r.mode),a.return=r,r.child=a}function gu(r,a){return r=VA(22,r,null,a),r.lanes=0,r.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},r}function Mg(r,a,l){return xa(a,r.child,null,l),r=Dg(a,a.pendingProps.children),r.flags|=2,a.memoizedState=null,r}function zw(r,a,l){r.lanes|=a;var f=r.alternate;f!==null&&(f.lanes|=a),qd(r.return,a,l)}function Lg(r,a,l,f,g){var B=r.memoizedState;B===null?r.memoizedState={isBackwards:a,rendering:null,renderingStartTime:0,last:f,tail:l,tailMode:g}:(B.isBackwards=a,B.rendering=null,B.renderingStartTime=0,B.last=f,B.tail=l,B.tailMode=g)}function Vw(r,a,l){var f=a.pendingProps,g=f.revealOrder,B=f.tail;if(eA(r,a,f.children,l),f=Ke.current,(f&2)!==0)f=f&1|2,a.flags|=128;else{if(r!==null&&(r.flags&128)!==0)t:for(r=a.child;r!==null;){if(r.tag===13)r.memoizedState!==null&&zw(r,l,a);else if(r.tag===19)zw(r,l,a);else if(r.child!==null){r.child.return=r,r=r.child;continue}if(r===a)break t;for(;r.sibling===null;){if(r.return===null||r.return===a)break t;r=r.return}r.sibling.return=r.return,r=r.sibling}f&=1}switch(tt(Ke,f),g){case"forwards":for(l=a.child,g=null;l!==null;)r=l.alternate,r!==null&&uu(r)===null&&(g=l),l=l.sibling;l=g,l===null?(g=a.child,a.child=null):(g=l.sibling,l.sibling=null),Lg(a,!1,g,l,B);break;case"backwards":for(l=null,g=a.child,a.child=null;g!==null;){if(r=g.alternate,r!==null&&uu(r)===null){a.child=g;break}r=g.sibling,g.sibling=l,l=g,g=r}Lg(a,!0,l,null,B);break;case"together":Lg(a,!1,null,null,void 0);break;default:a.memoizedState=null}return a.child}function Fi(r,a,l){if(r!==null&&(a.dependencies=r.dependencies),br|=a.lanes,(l&a.childLanes)===0)if(r!==null){if(Ro(r,a,l,!1),(l&a.childLanes)===0)return null}else return null;if(r!==null&&a.child!==r.child)throw Error(n(153));if(a.child!==null){for(r=a.child,l=yi(r,r.pendingProps),a.child=l,l.return=a;r.sibling!==null;)r=r.sibling,l=l.sibling=yi(r,r.pendingProps),l.return=a;l.sibling=null}return a.child}function Rg(r,a){return(r.lanes&a)!==0?!0:(r=r.dependencies,!!(r!==null&&Yc(r)))}function S1(r,a,l){switch(a.tag){case 3:Kt(a,a.stateNode.containerInfo),cr(a,ke,r.memoizedState.cache),Mo();break;case 27:case 5:An(a);break;case 4:Kt(a,a.stateNode.containerInfo);break;case 10:cr(a,a.type,a.memoizedProps.value);break;case 13:var f=a.memoizedState;if(f!==null)return f.dehydrated!==null?(gr(a),a.flags|=128,null):(l&a.child.childLanes)!==0?Kw(r,a,l):(gr(a),r=Fi(r,a,l),r!==null?r.sibling:null);gr(a);break;case 19:var g=(r.flags&128)!==0;if(f=(l&a.childLanes)!==0,f||(Ro(r,a,l,!1),f=(l&a.childLanes)!==0),g){if(f)return Vw(r,a,l);a.flags|=128}if(g=a.memoizedState,g!==null&&(g.rendering=null,g.tail=null,g.lastEffect=null),tt(Ke,Ke.current),f)break;return null;case 22:case 23:return a.lanes=0,Lw(r,a,l);case 24:cr(a,ke,r.memoizedState.cache)}return Fi(r,a,l)}function Pw(r,a,l){if(r!==null)if(r.memoizedProps!==a.pendingProps)Ge=!0;else{if(!Rg(r,l)&&(a.flags&128)===0)return Ge=!1,S1(r,a,l);Ge=(r.flags&131072)!==0}else Ge=!1,Pt&&(a.flags&1048576)!==0&&w0(a,Zc,a.index);switch(a.lanes=0,a.tag){case 16:t:{r=a.pendingProps;var f=a.elementType,g=f._init;if(f=g(f._payload),a.type=f,typeof f=="function")Gd(f)?(r=vs(f,r),a.tag=1,a=Nw(null,a,f,r,l)):(a.tag=0,a=Sg(null,a,f,r,l));else{if(f!=null){if(g=f.$$typeof,g===H){a.tag=11,a=Tw(null,a,f,r,l);break t}else if(g===L){a.tag=14,a=Dw(null,a,f,r,l);break t}}throw a=ut(f)||f,Error(n(306,a,""))}}return a;case 0:return Sg(r,a,a.type,a.pendingProps,l);case 1:return f=a.type,g=vs(f,a.pendingProps),Nw(r,a,f,g,l);case 3:t:{if(Kt(a,a.stateNode.containerInfo),r===null)throw Error(n(387));f=a.pendingProps;var B=a.memoizedState;g=B.element,sg(r,a),Po(a,f,null,l);var y=a.memoizedState;if(f=y.cache,cr(a,ke,f),f!==B.cache&&tg(a,[ke],l,!0),Vo(),f=y.element,B.isDehydrated)if(B={element:f,isDehydrated:!1,cache:y.cache},a.updateQueue.baseState=B,a.memoizedState=B,a.flags&256){a=kw(r,a,f,l);break t}else if(f!==g){g=un(Error(n(424)),a),Lo(g),a=kw(r,a,f,l);break t}else{switch(r=a.stateNode.containerInfo,r.nodeType){case 9:r=r.body;break;default:r=r.nodeName==="HTML"?r.ownerDocument.body:r}for(xe=Hn(r.firstChild),_A=a,Pt=!0,hs=null,Zn=!0,l=yw(a,null,f,l),a.child=l;l;)l.flags=l.flags&-3|4096,l=l.sibling}else{if(Mo(),f===g){a=Fi(r,a,l);break t}eA(r,a,f,l)}a=a.child}return a;case 26:return du(r,a),r===null?(l=Zb(a.type,null,a.pendingProps,null))?a.memoizedState=l:Pt||(l=a.type,r=a.pendingProps,f=Fu(at.current).createElement(l),f[it]=a,f[pt]=r,nA(f,l,r),Oe(f),a.stateNode=f):a.memoizedState=Zb(a.type,r.memoizedProps,a.pendingProps,r.memoizedState),null;case 27:return An(a),r===null&&Pt&&(f=a.stateNode=jb(a.type,a.pendingProps,at.current),_A=a,Zn=!0,g=xe,xr(a.type)?(Bp=g,xe=Hn(f.firstChild)):xe=g),eA(r,a,a.pendingProps.children,l),du(r,a),r===null&&(a.flags|=4194304),a.child;case 5:return r===null&&Pt&&((g=f=xe)&&(f=iH(f,a.type,a.pendingProps,Zn),f!==null?(a.stateNode=f,_A=a,xe=Hn(f.firstChild),Zn=!1,g=!0):g=!1),g||ds(a)),An(a),g=a.type,B=a.pendingProps,y=r!==null?r.memoizedProps:null,f=B.children,hp(g,B)?f=null:y!==null&&hp(g,y)&&(a.flags|=32),a.memoizedState!==null&&(g=fg(r,a,y1,null,null,l),fl._currentValue=g),du(r,a),eA(r,a,f,l),a.child;case 6:return r===null&&Pt&&((r=l=xe)&&(l=rH(l,a.pendingProps,Zn),l!==null?(a.stateNode=l,_A=a,xe=null,r=!0):r=!1),r||ds(a)),null;case 13:return Kw(r,a,l);case 4:return Kt(a,a.stateNode.containerInfo),f=a.pendingProps,r===null?a.child=xa(a,null,f,l):eA(r,a,f,l),a.child;case 11:return Tw(r,a,a.type,a.pendingProps,l);case 7:return eA(r,a,a.pendingProps,l),a.child;case 8:return eA(r,a,a.pendingProps.children,l),a.child;case 12:return eA(r,a,a.pendingProps.children,l),a.child;case 10:return f=a.pendingProps,cr(a,a.type,f.value),eA(r,a,f.children,l),a.child;case 9:return g=a.type._context,f=a.pendingProps.children,ps(a),g=uA(g),f=f(g),a.flags|=1,eA(r,a,f,l),a.child;case 14:return Dw(r,a,a.type,a.pendingProps,l);case 15:return Mw(r,a,a.type,a.pendingProps,l);case 19:return Vw(r,a,l);case 31:return f=a.pendingProps,l=a.mode,f={mode:f.mode,children:f.children},r===null?(l=gu(f,l),l.ref=a.ref,a.child=l,l.return=a,a=l):(l=yi(r.child,f),l.ref=a.ref,a.child=l,l.return=a,a=l),a;case 22:return Lw(r,a,l);case 24:return ps(a),f=uA(ke),r===null?(g=ng(),g===null&&(g=se,B=eg(),g.pooledCache=B,B.refCount++,B!==null&&(g.pooledCacheLanes|=l),g=B),a.memoizedState={parent:f,cache:g},rg(a),cr(a,ke,g)):((r.lanes&l)!==0&&(sg(r,a),Po(a,null,null,l),Vo()),g=r.memoizedState,B=a.memoizedState,g.parent!==f?(g={parent:f,cache:f},a.memoizedState=g,a.lanes===0&&(a.memoizedState=a.updateQueue.baseState=g),cr(a,ke,f)):(f=B.cache,cr(a,ke,f),f!==g.cache&&tg(a,[ke],l,!0))),eA(r,a,a.pendingProps.children,l),a.child;case 29:throw a.pendingProps}throw Error(n(156,a.tag))}function Si(r){r.flags|=4}function jw(r,a){if(a.type!=="stylesheet"||(a.state.loading&4)!==0)r.flags&=-16777217;else if(r.flags|=16777216,!qb(a)){if(a=gn.current,a!==null&&((Lt&4194048)===Lt?Yn!==null:(Lt&62914560)!==Lt&&(Lt&536870912)===0||a!==Yn))throw Ko=ig,E0;r.flags|=8192}}function pu(r,a){a!==null&&(r.flags|=4),r.flags&16384&&(a=r.tag!==22?mi():536870912,r.lanes|=a,Fa|=a)}function $o(r,a){if(!Pt)switch(r.tailMode){case"hidden":a=r.tail;for(var l=null;a!==null;)a.alternate!==null&&(l=a),a=a.sibling;l===null?r.tail=null:l.sibling=null;break;case"collapsed":l=r.tail;for(var f=null;l!==null;)l.alternate!==null&&(f=l),l=l.sibling;f===null?a||r.tail===null?r.tail=null:r.tail.sibling=null:f.sibling=null}}function ye(r){var a=r.alternate!==null&&r.alternate.child===r.child,l=0,f=0;if(a)for(var g=r.child;g!==null;)l|=g.lanes|g.childLanes,f|=g.subtreeFlags&65011712,f|=g.flags&65011712,g.return=r,g=g.sibling;else for(g=r.child;g!==null;)l|=g.lanes|g.childLanes,f|=g.subtreeFlags,f|=g.flags,g.return=r,g=g.sibling;return r.subtreeFlags|=f,r.childLanes=l,a}function H1(r,a,l){var f=a.pendingProps;switch(Wd(a),a.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return ye(a),null;case 1:return ye(a),null;case 3:return l=a.stateNode,f=null,r!==null&&(f=r.memoizedState.cache),a.memoizedState.cache!==f&&(a.flags|=2048),Qi(ke),Yt(),l.pendingContext&&(l.context=l.pendingContext,l.pendingContext=null),(r===null||r.child===null)&&(Do(a)?Si(a):r===null||r.memoizedState.isDehydrated&&(a.flags&256)===0||(a.flags|=1024,C0())),ye(a),null;case 26:return l=a.memoizedState,r===null?(Si(a),l!==null?(ye(a),jw(a,l)):(ye(a),a.flags&=-16777217)):l?l!==r.memoizedState?(Si(a),ye(a),jw(a,l)):(ye(a),a.flags&=-16777217):(r.memoizedProps!==f&&Si(a),ye(a),a.flags&=-16777217),null;case 27:Pe(a),l=at.current;var g=a.type;if(r!==null&&a.stateNode!=null)r.memoizedProps!==f&&Si(a);else{if(!f){if(a.stateNode===null)throw Error(n(166));return ye(a),null}r=Y.current,Do(a)?b0(a):(r=jb(g,f,l),a.stateNode=r,Si(a))}return ye(a),null;case 5:if(Pe(a),l=a.type,r!==null&&a.stateNode!=null)r.memoizedProps!==f&&Si(a);else{if(!f){if(a.stateNode===null)throw Error(n(166));return ye(a),null}if(r=Y.current,Do(a))b0(a);else{switch(g=Fu(at.current),r){case 1:r=g.createElementNS("http://www.w3.org/2000/svg",l);break;case 2:r=g.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;default:switch(l){case"svg":r=g.createElementNS("http://www.w3.org/2000/svg",l);break;case"math":r=g.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;case"script":r=g.createElement("div"),r.innerHTML=" - + +
From b6e1d7ad77bd892275751afe01aaa6845b955606 Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 26 Aug 2025 16:14:54 -0700 Subject: [PATCH 10/21] reduce time for complex queries example --- tests/chinook/test_pydantic_chinook.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/chinook/test_pydantic_chinook.py b/tests/chinook/test_pydantic_chinook.py index 4b232956..88940be9 100644 --- a/tests/chinook/test_pydantic_chinook.py +++ b/tests/chinook/test_pydantic_chinook.py @@ -97,7 +97,6 @@ class Response(BaseModel): ], rollout_processor=PydanticAgentRolloutProcessor(), rollout_processor_kwargs={"agent": setup_agent}, - num_runs=3, mode="pointwise", ) async def test_complex_queries(row: EvaluationRow) -> EvaluationRow: From a78dbe9db88f7f10bb95f1b202eeeb05e9a4c1b9 Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 26 Aug 2025 16:18:36 -0700 Subject: [PATCH 11/21] increase number of result retries --- tests/chinook/test_pydantic_chinook.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/chinook/test_pydantic_chinook.py b/tests/chinook/test_pydantic_chinook.py index 88940be9..341c93e8 100644 --- a/tests/chinook/test_pydantic_chinook.py +++ b/tests/chinook/test_pydantic_chinook.py @@ -136,6 +136,7 @@ class Response(BaseModel): system_prompt=LLM_JUDGE_PROMPT, output_type=Response, model=model, + result_retries=3, ) result = await comparison_agent.run( f"Expected answer: {row.ground_truth}\nResponse: {last_assistant_message.content}" From fab141b91ede3a7aaa3e5500fcb599166ff87654 Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 26 Aug 2025 16:29:25 -0700 Subject: [PATCH 12/21] add task 6 --- tests/chinook/dataset/task_6/ground_truth.md | 12 ++++++++++++ tests/chinook/dataset/task_6/task.txt | 1 + 2 files changed, 13 insertions(+) create mode 100644 tests/chinook/dataset/task_6/ground_truth.md create mode 100644 tests/chinook/dataset/task_6/task.txt diff --git a/tests/chinook/dataset/task_6/ground_truth.md b/tests/chinook/dataset/task_6/ground_truth.md new file mode 100644 index 00000000..9e97e4e2 --- /dev/null +++ b/tests/chinook/dataset/task_6/ground_truth.md @@ -0,0 +1,12 @@ +| track_name | artist_name | album_name | duration | pattern_type | +| ---------------------------------------------------------- | --------------------------------------------------------------------------- | ---------------------------------------------------------------- | -------- | ---------------- | +| .07% | Heroes | Heroes, Season 1 | 43:05 | Contains numbers | +| "40" | U2 | War | 02:37 | Contains numbers | +| "Eine Kleine Nachtmusik" Serenade In G, K. 525: I. Allegro | Academy of St. Martin in the Fields Chamber Ensemble & Sir Neville Marriner | Sir Neville Marriner: A Celebration | 05:48 | Contains numbers | +| #1 Zero | Audioslave | Out Of Exile | 04:59 | Contains numbers | +| #9 Dream | U2 | Instant Karma: The Amnesty International Campaign to Save Darfur | 04:38 | Contains numbers | +| 01 - Prowler | Iron Maiden | Iron Maiden | 03:56 | Contains numbers | +| 02 - Sanctuary | Iron Maiden | Iron Maiden | 03:16 | Contains numbers | +| 03 - Remember Tomorrow | Iron Maiden | Iron Maiden | 05:28 | Contains numbers | +| 04 - Running Free | Iron Maiden | Iron Maiden | 03:17 | Contains numbers | +| 05 - Phantom of the Opera | Iron Maiden | Iron Maiden | 07:08 | Contains numbers | diff --git a/tests/chinook/dataset/task_6/task.txt b/tests/chinook/dataset/task_6/task.txt new file mode 100644 index 00000000..418da1fa --- /dev/null +++ b/tests/chinook/dataset/task_6/task.txt @@ -0,0 +1 @@ +Find tracks with complex text patterns in titles. Look for tracks that are either two-word titles starting with capital letters, contain numbers, contain special characters, or are in title case. Show track name, artist, album, duration, and identified pattern type. From 2bf6c419944e415b88bad3943c04ef194f85fca8 Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 26 Aug 2025 16:29:45 -0700 Subject: [PATCH 13/21] remove duplicate line --- tests/chinook/test_pydantic_chinook.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/chinook/test_pydantic_chinook.py b/tests/chinook/test_pydantic_chinook.py index 341c93e8..8fdff684 100644 --- a/tests/chinook/test_pydantic_chinook.py +++ b/tests/chinook/test_pydantic_chinook.py @@ -146,4 +146,3 @@ class Response(BaseModel): reason=result.output.reason, ) return row - return row From 5e49d3f60559521329661838a50bbb060cbec7d4 Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 26 Aug 2025 16:56:44 -0700 Subject: [PATCH 14/21] improve system prompt --- tests/chinook/agent.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/chinook/agent.py b/tests/chinook/agent.py index 81137796..7a8790bc 100644 --- a/tests/chinook/agent.py +++ b/tests/chinook/agent.py @@ -12,8 +12,10 @@ def setup_agent(orchestrator_agent_model: Model): introspection_result_str = "\n".join([",".join(map(str, item)) for item in introspection_result]) SYSTEM_PROMPT = f"""You are a helpful assistant that has access to the -Chinook database. You have access to a tool to execute SQL queries. Your job -is to answer questions about the database. Here is the schema of the database: +Chinook database stored in a Postgres database. You have access to a tool to +execute SQL queries that you should use to answer questions. Your job is to +answer questions about the database. If you run into an error, you should try to +fix the query and try again. Here is the schema of the database: Schema: table_name,column_name,data_type,is_nullable From 42c34897afa2458a3f6dd58687f1158c881eafd6 Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 26 Aug 2025 17:05:45 -0700 Subject: [PATCH 15/21] fix more or less hooks before previous render --- vite-app/src/components/ChartExport.tsx | 146 +++++++++++++----------- vite-app/src/components/PivotTab.tsx | 67 +++++++---- 2 files changed, 124 insertions(+), 89 deletions(-) diff --git a/vite-app/src/components/ChartExport.tsx b/vite-app/src/components/ChartExport.tsx index 755f7201..0457df18 100644 --- a/vite-app/src/components/ChartExport.tsx +++ b/vite-app/src/components/ChartExport.tsx @@ -48,6 +48,10 @@ interface ChartExportProps> { * Whether to show column totals */ showColumnTotals?: boolean; + /** + * Whether to hide the component content + */ + hidden?: boolean; } type ChartType = "bar" | "line" | "doughnut" | "pie"; @@ -59,6 +63,7 @@ const ChartExport = >({ valueField, aggregator, chartType = "bar", + hidden = false, }: ChartExportProps) => { const chartRef = useRef(null); const [selectedChartType, setSelectedChartType] = @@ -142,32 +147,12 @@ const ChartExport = >({ const chartData = getChartData(); - // Don't render chart if no data - if (!chartData.labels.length || !chartData.datasets.length) { - return ( -
-
- No data available for chart visualization. Please select row and - column fields. -
-
- ); - } - - // Additional safety check for line charts - if ( - selectedChartType === "line" && - chartData.datasets.some((dataset) => dataset.data.length === 0) - ) { - return ( -
-
- Line charts require data in all datasets. Please check your pivot - configuration. -
-
- ); - } + // Check if we have valid data for rendering + const hasValidData = + chartData.labels.length > 0 && chartData.datasets.length > 0; + const hasValidLineChartData = + selectedChartType !== "line" || + !chartData.datasets.some((dataset) => dataset.data.length === 0); const chartOptions = { responsive: true, @@ -256,48 +241,81 @@ const ChartExport = >({ { value: "pie", label: "Pie Chart" }, ]; + // Always render the component, but conditionally show content return ( -
-
-

Chart Export

-
- - + <> + {hidden && null} + + {!hidden && !hasValidData && ( +
+
+

Chart Export

+
+
+ No data available for chart visualization. Please select row and + column fields. +
+
+ )} + + {!hidden && hasValidData && !hasValidLineChartData && ( +
+
+

Chart Export

+
+
+ Line charts require data in all datasets. Please check your pivot + configuration. +
-
+ )} -
- Visualize your pivot table data as a chart and export it as a - high-resolution PNG image. You can adjust your browser window size to - change the exported image dimensions. -
+ {!hidden && hasValidData && hasValidLineChartData && ( +
+
+

Chart Export

+
+ + +
+
-
- -
-
+
+ Visualize your pivot table data as a chart and export it as a + high-resolution PNG image. You can adjust your browser window size + to change the exported image dimensions. +
+ +
+ +
+
+ )} + ); }; diff --git a/vite-app/src/components/PivotTab.tsx b/vite-app/src/components/PivotTab.tsx index 4a928998..27a6259b 100644 --- a/vite-app/src/components/PivotTab.tsx +++ b/vite-app/src/components/PivotTab.tsx @@ -1,4 +1,5 @@ import { observer } from "mobx-react"; +import { useMemo, useCallback } from "react"; import PivotTable from "./PivotTable"; import ChartExport from "./ChartExport"; import SearchableSelect from "./SearchableSelect"; @@ -154,17 +155,38 @@ const PivotTab = observer(() => { showColumnTotals: true, }); - const updateValueField = (value: string) => { + // Memoize field handlers to prevent unnecessary re-renders + const rowFieldHandlers = useMemo( + () => + createFieldHandlerSet(pivotConfig.selectedRowFields, (fields) => + updatePivotConfig({ selectedRowFields: fields }) + ), + [pivotConfig.selectedRowFields] + ); + + const columnFieldHandlers = useMemo( + () => + createFieldHandlerSet(pivotConfig.selectedColumnFields, (fields) => + updatePivotConfig({ selectedColumnFields: fields }) + ), + [pivotConfig.selectedColumnFields] + ); + + const updateValueField = useCallback((value: string) => { updatePivotConfig({ selectedValueField: value }); - }; + }, []); - const updateAggregator = (value: string) => { + const updateAggregator = useCallback((value: string) => { updatePivotConfig({ selectedAggregator: value }); - }; + }, []); - const updateFilters = (filters: FilterGroup[]) => { + const updateFilters = useCallback((filters: FilterGroup[]) => { updateFilterConfig(filters); - }; + }, []); + + // Memoize data and filter function to prevent unnecessary re-renders + const flattenedDataset = useMemo(() => getFlattenedDataset(), []); + const filterFunction = useMemo(() => createFilterFunction(), []); return (
@@ -190,9 +212,7 @@ const PivotTab = observer(() => { - updatePivotConfig({ selectedRowFields: fields }) - )} + {...rowFieldHandlers} availableKeys={availableKeys} variant="row" /> @@ -200,9 +220,7 @@ const PivotTab = observer(() => { - updatePivotConfig({ selectedColumnFields: fields }) - )} + {...columnFieldHandlers} availableKeys={availableKeys} variant="column" /> @@ -237,27 +255,26 @@ const PivotTab = observer(() => { */} {/* Chart Export Component */} - {pivotData.hasValidConfiguration && ( - - )} +
); From 64bf5f3710b9b4765a30ef81456d740da7e72ca3 Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 26 Aug 2025 17:05:50 -0700 Subject: [PATCH 16/21] vite build --- tests/chinook/test_pydantic_chinook.py | 20 ++++++++++- .../{index-B54SLXhR.js => index-D0r8BDZ2.js} | 36 +++++++++---------- ...-B54SLXhR.js.map => index-D0r8BDZ2.js.map} | 2 +- vite-app/dist/index.html | 2 +- 4 files changed, 39 insertions(+), 21 deletions(-) rename vite-app/dist/assets/{index-B54SLXhR.js => index-D0r8BDZ2.js} (94%) rename vite-app/dist/assets/{index-B54SLXhR.js.map => index-D0r8BDZ2.js.map} (71%) diff --git a/tests/chinook/test_pydantic_chinook.py b/tests/chinook/test_pydantic_chinook.py index 8fdff684..6241a02d 100644 --- a/tests/chinook/test_pydantic_chinook.py +++ b/tests/chinook/test_pydantic_chinook.py @@ -82,6 +82,15 @@ class Response(BaseModel): return row +""" +invocation ids: + + - lead-low-war-kind-business (worked) + - miss-wonder-early-friend-side (failed) + - +""" + + @pytest.mark.asyncio @evaluation_test( input_rows=collect_dataset(), @@ -94,9 +103,18 @@ class Response(BaseModel): } } }, + { + "model": { + "orchestrator_agent_model": { + "model": "accounts/fireworks/models/deepseek-v3p1", + "provider": "fireworks", + } + } + }, ], rollout_processor=PydanticAgentRolloutProcessor(), rollout_processor_kwargs={"agent": setup_agent}, + num_runs=3, mode="pointwise", ) async def test_complex_queries(row: EvaluationRow) -> EvaluationRow: @@ -136,7 +154,7 @@ class Response(BaseModel): system_prompt=LLM_JUDGE_PROMPT, output_type=Response, model=model, - result_retries=3, + result_retries=5, ) result = await comparison_agent.run( f"Expected answer: {row.ground_truth}\nResponse: {last_assistant_message.content}" diff --git a/vite-app/dist/assets/index-B54SLXhR.js b/vite-app/dist/assets/index-D0r8BDZ2.js similarity index 94% rename from vite-app/dist/assets/index-B54SLXhR.js rename to vite-app/dist/assets/index-D0r8BDZ2.js index 43e0f981..18559725 100644 --- a/vite-app/dist/assets/index-B54SLXhR.js +++ b/vite-app/dist/assets/index-D0r8BDZ2.js @@ -14,7 +14,7 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var gy;function DH(){if(gy)return Ut;gy=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),A=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),o=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),h=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),p=Symbol.iterator;function m(T){return T===null||typeof T!="object"?null:(T=p&&T[p]||T["@@iterator"],typeof T=="function"?T:null)}var v={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,b={};function _(T,j,et){this.props=T,this.context=j,this.refs=b,this.updater=et||v}_.prototype.isReactComponent={},_.prototype.setState=function(T,j){if(typeof T!="object"&&typeof T!="function"&&T!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,T,j,"setState")},_.prototype.forceUpdate=function(T){this.updater.enqueueForceUpdate(this,T,"forceUpdate")};function C(){}C.prototype=_.prototype;function U(T,j,et){this.props=T,this.context=j,this.refs=b,this.updater=et||v}var E=U.prototype=new C;E.constructor=U,w(E,_.prototype),E.isPureReactComponent=!0;var H=Array.isArray,F={H:null,A:null,T:null,S:null,V:null},D=Object.prototype.hasOwnProperty;function L(T,j,et,tt,Y,ut){return et=ut.ref,{$$typeof:e,type:T,key:j,ref:et!==void 0?et:null,props:ut}}function z(T,j){return L(T.type,j,void 0,void 0,void 0,T.props)}function N(T){return typeof T=="object"&&T!==null&&T.$$typeof===e}function J(T){var j={"=":"=0",":":"=2"};return"$"+T.replace(/[=:]/g,function(et){return j[et]})}var At=/\/+/g;function nt(T,j){return typeof T=="object"&&T!==null&&T.key!=null?J(""+T.key):j.toString(36)}function ct(){}function ft(T){switch(T.status){case"fulfilled":return T.value;case"rejected":throw T.reason;default:switch(typeof T.status=="string"?T.then(ct,ct):(T.status="pending",T.then(function(j){T.status==="pending"&&(T.status="fulfilled",T.value=j)},function(j){T.status==="pending"&&(T.status="rejected",T.reason=j)})),T.status){case"fulfilled":return T.value;case"rejected":throw T.reason}}throw T}function st(T,j,et,tt,Y){var ut=typeof T;(ut==="undefined"||ut==="boolean")&&(T=null);var ot=!1;if(T===null)ot=!0;else switch(ut){case"bigint":case"string":case"number":ot=!0;break;case"object":switch(T.$$typeof){case e:case t:ot=!0;break;case d:return ot=T._init,st(ot(T._payload),j,et,tt,Y)}}if(ot)return Y=Y(T),ot=tt===""?"."+nt(T,0):tt,H(Y)?(et="",ot!=null&&(et=ot.replace(At,"$&/")+"/"),st(Y,j,et,"",function(Yt){return Yt})):Y!=null&&(N(Y)&&(Y=z(Y,et+(Y.key==null||T&&T.key===Y.key?"":(""+Y.key).replace(At,"$&/")+"/")+ot)),j.push(Y)),1;ot=0;var he=tt===""?".":tt+":";if(H(T))for(var Kt=0;Kt>>1,T=R[lt];if(0>>1;lti(tt,q))Yi(ut,tt)?(R[lt]=ut,R[Y]=q,lt=Y):(R[lt]=tt,R[et]=q,lt=et);else if(Yi(ut,q))R[lt]=ut,R[Y]=q,lt=Y;else break t}}return G}function i(R,G){var q=R.sortIndex-G.sortIndex;return q!==0?q:R.id-G.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var o=Date,c=o.now();e.unstable_now=function(){return o.now()-c}}var u=[],h=[],d=1,p=null,m=3,v=!1,w=!1,b=!1,_=!1,C=typeof setTimeout=="function"?setTimeout:null,U=typeof clearTimeout=="function"?clearTimeout:null,E=typeof setImmediate<"u"?setImmediate:null;function H(R){for(var G=A(h);G!==null;){if(G.callback===null)n(h);else if(G.startTime<=R)n(h),G.sortIndex=G.expirationTime,t(u,G);else break;G=A(h)}}function F(R){if(b=!1,H(R),!w)if(A(u)!==null)w=!0,D||(D=!0,nt());else{var G=A(h);G!==null&&st(F,G.startTime-R)}}var D=!1,L=-1,z=5,N=-1;function J(){return _?!0:!(e.unstable_now()-NR&&J());){var lt=p.callback;if(typeof lt=="function"){p.callback=null,m=p.priorityLevel;var T=lt(p.expirationTime<=R);if(R=e.unstable_now(),typeof T=="function"){p.callback=T,H(R),G=!0;break e}p===A(u)&&n(u),H(R)}else n(u);p=A(u)}if(p!==null)G=!0;else{var j=A(h);j!==null&&st(F,j.startTime-R),G=!1}}break t}finally{p=null,m=q,v=!1}G=void 0}}finally{G?nt():D=!1}}}var nt;if(typeof E=="function")nt=function(){E(At)};else if(typeof MessageChannel<"u"){var ct=new MessageChannel,ft=ct.port2;ct.port1.onmessage=At,nt=function(){ft.postMessage(null)}}else nt=function(){C(At,0)};function st(R,G){L=C(function(){R(e.unstable_now())},G)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(R){R.callback=null},e.unstable_forceFrameRate=function(R){0>R||125lt?(R.sortIndex=q,t(h,R),A(u)===null&&R===A(h)&&(b?(U(L),L=-1):b=!0,st(F,q-lt))):(R.sortIndex=T,t(u,R),w||v||(w=!0,D||(D=!0,nt()))),R},e.unstable_shouldYield=J,e.unstable_wrapCallback=function(R){var G=m;return function(){var q=m;m=G;try{return R.apply(this,arguments)}finally{m=q}}}}(Tp)),Tp}var my;function LH(){return my||(my=1,Op.exports=MH()),Op.exports}var Dp={exports:{}},hA={};/** + */var By;function MH(){return By||(By=1,function(e){function t(L,G){var q=L.length;L.push(G);t:for(;0>>1,T=L[ct];if(0>>1;cti(tt,q))Yi(ut,tt)?(L[ct]=ut,L[Y]=q,ct=Y):(L[ct]=tt,L[At]=q,ct=At);else if(Yi(ut,q))L[ct]=ut,L[Y]=q,ct=Y;else break t}}return G}function i(L,G){var q=L.sortIndex-G.sortIndex;return q!==0?q:L.id-G.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var o=Date,c=o.now();e.unstable_now=function(){return o.now()-c}}var u=[],h=[],d=1,p=null,m=3,v=!1,w=!1,b=!1,_=!1,C=typeof setTimeout=="function"?setTimeout:null,U=typeof clearTimeout=="function"?clearTimeout:null,E=typeof setImmediate<"u"?setImmediate:null;function H(L){for(var G=A(h);G!==null;){if(G.callback===null)n(h);else if(G.startTime<=L)n(h),G.sortIndex=G.expirationTime,t(u,G);else break;G=A(h)}}function F(L){if(b=!1,H(L),!w)if(A(u)!==null)w=!0,D||(D=!0,nt());else{var G=A(h);G!==null&&st(F,G.startTime-L)}}var D=!1,R=-1,z=5,N=-1;function J(){return _?!0:!(e.unstable_now()-NL&&J());){var ct=p.callback;if(typeof ct=="function"){p.callback=null,m=p.priorityLevel;var T=ct(p.expirationTime<=L);if(L=e.unstable_now(),typeof T=="function"){p.callback=T,H(L),G=!0;break e}p===A(u)&&n(u),H(L)}else n(u);p=A(u)}if(p!==null)G=!0;else{var j=A(h);j!==null&&st(F,j.startTime-L),G=!1}}break t}finally{p=null,m=q,v=!1}G=void 0}}finally{G?nt():D=!1}}}var nt;if(typeof E=="function")nt=function(){E(et)};else if(typeof MessageChannel<"u"){var ot=new MessageChannel,ft=ot.port2;ot.port1.onmessage=et,nt=function(){ft.postMessage(null)}}else nt=function(){C(et,0)};function st(L,G){R=C(function(){L(e.unstable_now())},G)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(L){L.callback=null},e.unstable_forceFrameRate=function(L){0>L||125ct?(L.sortIndex=q,t(h,L),A(u)===null&&L===A(h)&&(b?(U(R),R=-1):b=!0,st(F,q-ct))):(L.sortIndex=T,t(u,L),w||v||(w=!0,D||(D=!0,nt()))),L},e.unstable_shouldYield=J,e.unstable_wrapCallback=function(L){var G=m;return function(){var q=m;m=G;try{return L.apply(this,arguments)}finally{m=q}}}}(Tp)),Tp}var my;function LH(){return my||(my=1,Op.exports=MH()),Op.exports}var Dp={exports:{}},hA={};/** * @license React * react-dom.production.js * @@ -38,15 +38,15 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var by;function IH(){if(by)return ml;by=1;var e=LH(),t=Ih(),A=vQ();function n(r){var a="https://react.dev/errors/"+r;if(1T||(r.current=lt[T],lt[T]=null,T--)}function tt(r,a){T++,lt[T]=r.current,r.current=a}var Y=j(null),ut=j(null),ot=j(null),he=j(null);function Kt(r,a){switch(tt(ot,a),tt(ut,r),tt(Y,null),a.nodeType){case 9:case 11:r=(r=a.documentElement)&&(r=r.namespaceURI)?Kb(r):0;break;default:if(r=a.tagName,a=a.namespaceURI)a=Kb(a),r=zb(a,r);else switch(r){case"svg":r=1;break;case"math":r=2;break;default:r=0}}et(Y),tt(Y,r)}function Yt(){et(Y),et(ut),et(ot)}function An(r){r.memoizedState!==null&&tt(he,r);var a=Y.current,l=zb(a,r.type);a!==l&&(tt(ut,r),tt(Y,l))}function Pe(r){ut.current===r&&(et(Y),et(ut)),he.current===r&&(et(he),fl._currentValue=q)}var eA=Object.prototype.hasOwnProperty,EA=e.unstable_scheduleCallback,FA=e.unstable_cancelCallback,ea=e.unstable_shouldYield,yA=e.unstable_requestPaint,CA=e.unstable_now,pi=e.unstable_getCurrentPriorityLevel,Pn=e.unstable_ImmediatePriority,se=e.unstable_UserBlockingPriority,jn=e.unstable_NormalPriority,es=e.unstable_LowPriority,Ar=e.unstable_IdlePriority,As=e.log,Aa=e.unstable_setDisableYieldValue,nn=null,_e=null;function SA(r){if(typeof As=="function"&&Aa(r),_e&&typeof _e.setStrictMode=="function")try{_e.setStrictMode(nn,r)}catch{}}var Fe=Math.clz32?Math.clz32:ir,nr=Math.log,yo=Math.LN2;function ir(r){return r>>>=0,r===0?32:31-(nr(r)/yo|0)|0}var rn=256,oA=4194304;function Wt(r){var a=r&42;if(a!==0)return a;switch(r&-r){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return r&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return r&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return r}}function Bi(r,a,l){var f=r.pendingLanes;if(f===0)return 0;var g=0,B=r.suspendedLanes,y=r.pingedLanes;r=r.warmLanes;var x=f&134217727;return x!==0?(f=x&~B,f!==0?g=Wt(f):(y&=x,y!==0?g=Wt(y):l||(l=x&~r,l!==0&&(g=Wt(l))))):(x=f&~B,x!==0?g=Wt(x):y!==0?g=Wt(y):l||(l=f&~r,l!==0&&(g=Wt(l)))),g===0?0:a!==0&&a!==g&&(a&B)===0&&(B=g&-g,l=a&-a,B>=l||B===32&&(l&4194048)!==0)?a:g}function Un(r,a){return(r.pendingLanes&~(r.suspendedLanes&~r.pingedLanes)&a)===0}function rr(r,a){switch(r){case 1:case 2:case 4:case 8:case 64:return a+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function sr(){var r=rn;return rn<<=1,(rn&4194048)===0&&(rn=256),r}function mi(){var r=oA;return oA<<=1,(oA&62914560)===0&&(oA=4194304),r}function Gn(r){for(var a=[],l=0;31>l;l++)a.push(r);return a}function sn(r,a){r.pendingLanes|=a,a!==268435456&&(r.suspendedLanes=0,r.pingedLanes=0,r.warmLanes=0)}function ns(r,a,l,f,g,B){var y=r.pendingLanes;r.pendingLanes=l,r.suspendedLanes=0,r.pingedLanes=0,r.warmLanes=0,r.expiredLanes&=l,r.entangledLanes&=l,r.errorRecoveryDisabledLanes&=l,r.shellSuspendCounter=0;var x=r.entanglements,O=r.expirationTimes,K=r.hiddenUpdates;for(l=y&~l;0T||(r.current=ct[T],ct[T]=null,T--)}function tt(r,a){T++,ct[T]=r.current,r.current=a}var Y=j(null),ut=j(null),lt=j(null),he=j(null);function Kt(r,a){switch(tt(lt,a),tt(ut,r),tt(Y,null),a.nodeType){case 9:case 11:r=(r=a.documentElement)&&(r=r.namespaceURI)?Kb(r):0;break;default:if(r=a.tagName,a=a.namespaceURI)a=Kb(a),r=zb(a,r);else switch(r){case"svg":r=1;break;case"math":r=2;break;default:r=0}}At(Y),tt(Y,r)}function Yt(){At(Y),At(ut),At(lt)}function An(r){r.memoizedState!==null&&tt(he,r);var a=Y.current,l=zb(a,r.type);a!==l&&(tt(ut,r),tt(Y,l))}function Pe(r){ut.current===r&&(At(Y),At(ut)),he.current===r&&(At(he),fl._currentValue=q)}var eA=Object.prototype.hasOwnProperty,EA=e.unstable_scheduleCallback,FA=e.unstable_cancelCallback,ea=e.unstable_shouldYield,yA=e.unstable_requestPaint,CA=e.unstable_now,pi=e.unstable_getCurrentPriorityLevel,Pn=e.unstable_ImmediatePriority,se=e.unstable_UserBlockingPriority,jn=e.unstable_NormalPriority,es=e.unstable_LowPriority,Ar=e.unstable_IdlePriority,As=e.log,Aa=e.unstable_setDisableYieldValue,nn=null,_e=null;function SA(r){if(typeof As=="function"&&Aa(r),_e&&typeof _e.setStrictMode=="function")try{_e.setStrictMode(nn,r)}catch{}}var Fe=Math.clz32?Math.clz32:ir,nr=Math.log,yo=Math.LN2;function ir(r){return r>>>=0,r===0?32:31-(nr(r)/yo|0)|0}var rn=256,oA=4194304;function Wt(r){var a=r&42;if(a!==0)return a;switch(r&-r){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return r&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return r&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return r}}function Bi(r,a,l){var f=r.pendingLanes;if(f===0)return 0;var g=0,B=r.suspendedLanes,y=r.pingedLanes;r=r.warmLanes;var x=f&134217727;return x!==0?(f=x&~B,f!==0?g=Wt(f):(y&=x,y!==0?g=Wt(y):l||(l=x&~r,l!==0&&(g=Wt(l))))):(x=f&~B,x!==0?g=Wt(x):y!==0?g=Wt(y):l||(l=f&~r,l!==0&&(g=Wt(l)))),g===0?0:a!==0&&a!==g&&(a&B)===0&&(B=g&-g,l=a&-a,B>=l||B===32&&(l&4194048)!==0)?a:g}function Un(r,a){return(r.pendingLanes&~(r.suspendedLanes&~r.pingedLanes)&a)===0}function rr(r,a){switch(r){case 1:case 2:case 4:case 8:case 64:return a+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function sr(){var r=rn;return rn<<=1,(rn&4194048)===0&&(rn=256),r}function mi(){var r=oA;return oA<<=1,(oA&62914560)===0&&(oA=4194304),r}function Gn(r){for(var a=[],l=0;31>l;l++)a.push(r);return a}function sn(r,a){r.pendingLanes|=a,a!==268435456&&(r.suspendedLanes=0,r.pingedLanes=0,r.warmLanes=0)}function ns(r,a,l,f,g,B){var y=r.pendingLanes;r.pendingLanes=l,r.suspendedLanes=0,r.pingedLanes=0,r.warmLanes=0,r.expiredLanes&=l,r.entangledLanes&=l,r.errorRecoveryDisabledLanes&=l,r.shellSuspendCounter=0;var x=r.entanglements,O=r.expirationTimes,K=r.hiddenUpdates;for(l=y&~l;0)":-1g||O[f]!==K[g]){var X=` `+O[f].replace(" at new "," at ");return r.displayName&&X.includes("")&&(X=X.replace("",r.displayName)),X}while(1<=f&&0<=g);break}}}finally{_d=!1,Error.prepareStackTrace=l}return(l=r?r.displayName||r.name:"")?ra(l):""}function QS(r){switch(r.tag){case 26:case 27:case 5:return ra(r.type);case 16:return ra("Lazy");case 13:return ra("Suspense");case 19:return ra("SuspenseList");case 0:case 15:return xd(r.type,!1);case 11:return xd(r.type.render,!1);case 1:return xd(r.type,!0);case 31:return ra("Activity");default:return""}}function Mv(r){try{var a="";do a+=QS(r),r=r.return;while(r);return a}catch(l){return` Error generating stack: `+l.message+` -`+l.stack}}function ln(r){switch(typeof r){case"bigint":case"boolean":case"number":case"string":case"undefined":return r;case"object":return r;default:return""}}function Lv(r){var a=r.type;return(r=r.nodeName)&&r.toLowerCase()==="input"&&(a==="checkbox"||a==="radio")}function US(r){var a=Lv(r)?"checked":"value",l=Object.getOwnPropertyDescriptor(r.constructor.prototype,a),f=""+r[a];if(!r.hasOwnProperty(a)&&typeof l<"u"&&typeof l.get=="function"&&typeof l.set=="function"){var g=l.get,B=l.set;return Object.defineProperty(r,a,{configurable:!0,get:function(){return g.call(this)},set:function(y){f=""+y,B.call(this,y)}}),Object.defineProperty(r,a,{enumerable:l.enumerable}),{getValue:function(){return f},setValue:function(y){f=""+y},stopTracking:function(){r._valueTracker=null,delete r[a]}}}}function Dc(r){r._valueTracker||(r._valueTracker=US(r))}function Rv(r){if(!r)return!1;var a=r._valueTracker;if(!a)return!0;var l=a.getValue(),f="";return r&&(f=Lv(r)?r.checked?"true":"false":r.value),r=f,r!==l?(a.setValue(r),!0):!1}function Mc(r){if(r=r||(typeof document<"u"?document:void 0),typeof r>"u")return null;try{return r.activeElement||r.body}catch{return r.body}}var ES=/[\n"\\]/g;function cn(r){return r.replace(ES,function(a){return"\\"+a.charCodeAt(0).toString(16)+" "})}function Qd(r,a,l,f,g,B,y,x){r.name="",y!=null&&typeof y!="function"&&typeof y!="symbol"&&typeof y!="boolean"?r.type=y:r.removeAttribute("type"),a!=null?y==="number"?(a===0&&r.value===""||r.value!=a)&&(r.value=""+ln(a)):r.value!==""+ln(a)&&(r.value=""+ln(a)):y!=="submit"&&y!=="reset"||r.removeAttribute("value"),a!=null?Ud(r,y,ln(a)):l!=null?Ud(r,y,ln(l)):f!=null&&r.removeAttribute("value"),g==null&&B!=null&&(r.defaultChecked=!!B),g!=null&&(r.checked=g&&typeof g!="function"&&typeof g!="symbol"),x!=null&&typeof x!="function"&&typeof x!="symbol"&&typeof x!="boolean"?r.name=""+ln(x):r.removeAttribute("name")}function Iv(r,a,l,f,g,B,y,x){if(B!=null&&typeof B!="function"&&typeof B!="symbol"&&typeof B!="boolean"&&(r.type=B),a!=null||l!=null){if(!(B!=="submit"&&B!=="reset"||a!=null))return;l=l!=null?""+ln(l):"",a=a!=null?""+ln(a):l,x||a===r.value||(r.value=a),r.defaultValue=a}f=f??g,f=typeof f!="function"&&typeof f!="symbol"&&!!f,r.checked=x?r.checked:!!f,r.defaultChecked=!!f,y!=null&&typeof y!="function"&&typeof y!="symbol"&&typeof y!="boolean"&&(r.name=y)}function Ud(r,a,l){a==="number"&&Mc(r.ownerDocument)===r||r.defaultValue===""+l||(r.defaultValue=""+l)}function sa(r,a,l,f){if(r=r.options,a){a={};for(var g=0;g"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Od=!1;if(bi)try{var Qo={};Object.defineProperty(Qo,"passive",{get:function(){Od=!0}}),window.addEventListener("test",Qo,Qo),window.removeEventListener("test",Qo,Qo)}catch{Od=!1}var lr=null,Td=null,Rc=null;function jv(){if(Rc)return Rc;var r,a=Td,l=a.length,f,g="value"in lr?lr.value:lr.textContent,B=g.length;for(r=0;r=Fo),$v=" ",Jv=!1;function qv(r,a){switch(r){case"keyup":return A1.indexOf(a.keyCode)!==-1;case"keydown":return a.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function t0(r){return r=r.detail,typeof r=="object"&&"data"in r?r.data:null}var ca=!1;function i1(r,a){switch(r){case"compositionend":return t0(a);case"keypress":return a.which!==32?null:(Jv=!0,$v);case"textInput":return r=a.data,r===$v&&Jv?null:r;default:return null}}function r1(r,a){if(ca)return r==="compositionend"||!Id&&qv(r,a)?(r=jv(),Rc=Td=lr=null,ca=!1,r):null;switch(r){case"paste":return null;case"keypress":if(!(a.ctrlKey||a.altKey||a.metaKey)||a.ctrlKey&&a.altKey){if(a.char&&1=a)return{node:l,offset:a-r};r=f}t:{for(;l;){if(l.nextSibling){l=l.nextSibling;break t}l=l.parentNode}l=void 0}l=o0(l)}}function c0(r,a){return r&&a?r===a?!0:r&&r.nodeType===3?!1:a&&a.nodeType===3?c0(r,a.parentNode):"contains"in r?r.contains(a):r.compareDocumentPosition?!!(r.compareDocumentPosition(a)&16):!1:!1}function u0(r){r=r!=null&&r.ownerDocument!=null&&r.ownerDocument.defaultView!=null?r.ownerDocument.defaultView:window;for(var a=Mc(r.document);a instanceof r.HTMLIFrameElement;){try{var l=typeof a.contentWindow.location.href=="string"}catch{l=!1}if(l)r=a.contentWindow;else break;a=Mc(r.document)}return a}function Kd(r){var a=r&&r.nodeName&&r.nodeName.toLowerCase();return a&&(a==="input"&&(r.type==="text"||r.type==="search"||r.type==="tel"||r.type==="url"||r.type==="password")||a==="textarea"||r.contentEditable==="true")}var h1=bi&&"documentMode"in document&&11>=document.documentMode,ua=null,zd=null,To=null,Vd=!1;function f0(r,a,l){var f=l.window===l?l.document:l.nodeType===9?l:l.ownerDocument;Vd||ua==null||ua!==Mc(f)||(f=ua,"selectionStart"in f&&Kd(f)?f={start:f.selectionStart,end:f.selectionEnd}:(f=(f.ownerDocument&&f.ownerDocument.defaultView||window).getSelection(),f={anchorNode:f.anchorNode,anchorOffset:f.anchorOffset,focusNode:f.focusNode,focusOffset:f.focusOffset}),To&&Oo(To,f)||(To=f,f=Uu(zd,"onSelect"),0>=y,g-=y,Ci=1<<32-Fe(a)+g|l<B?B:8;var y=R.T,x={};R.T=x,Eg(r,!1,a,l);try{var O=g(),K=R.S;if(K!==null&&K(x,O),O!==null&&typeof O=="object"&&typeof O.then=="function"){var X=y1(O,f);Zo(r,a,X,XA(r))}else Zo(r,a,f,XA(r))}catch($){Zo(r,a,{then:function(){},status:"rejected",reason:$},XA())}finally{G.p=B,R.T=y}}function U1(){}function Qg(r,a,l,f){if(r.tag!==5)throw Error(n(476));var g=hw(r).queue;fw(r,g,a,q,l===null?U1:function(){return dw(r),l(f)})}function hw(r){var a=r.memoizedState;if(a!==null)return a;a={memoizedState:q,baseState:q,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ui,lastRenderedState:q},next:null};var l={};return a.next={memoizedState:l,baseState:l,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ui,lastRenderedState:l},next:null},r.memoizedState=a,r=r.alternate,r!==null&&(r.memoizedState=a),a}function dw(r){var a=hw(r).next.queue;Zo(r,a,{},XA())}function Ug(){return fA(fl)}function gw(){return Ne().memoizedState}function pw(){return Ne().memoizedState}function E1(r){for(var a=r.return;a!==null;){switch(a.tag){case 24:case 3:var l=XA();r=fr(l);var f=hr(a,r,l);f!==null&&(ZA(f,a,l),zo(f,a,l)),a={cache:ng()},r.payload=a;return}a=a.return}}function F1(r,a,l){var f=XA();l={lane:f,revertLane:0,action:l,hasEagerState:!1,eagerState:null,next:null},au(r)?mw(a,l):(l=Xd(r,a,l,f),l!==null&&(ZA(l,r,f),vw(l,a,f)))}function Bw(r,a,l){var f=XA();Zo(r,a,l,f)}function Zo(r,a,l,f){var g={lane:f,revertLane:0,action:l,hasEagerState:!1,eagerState:null,next:null};if(au(r))mw(a,g);else{var B=r.alternate;if(r.lanes===0&&(B===null||B.lanes===0)&&(B=a.lastRenderedReducer,B!==null))try{var y=a.lastRenderedState,x=B(y,l);if(g.hasEagerState=!0,g.eagerState=x,zA(x,y))return Pc(r,a,g,0),ae===null&&Vc(),!1}catch{}finally{}if(l=Xd(r,a,g,f),l!==null)return ZA(l,r,f),vw(l,a,f),!0}return!1}function Eg(r,a,l,f){if(f={lane:2,revertLane:sp(),action:f,hasEagerState:!1,eagerState:null,next:null},au(r)){if(a)throw Error(n(479))}else a=Xd(r,l,f,2),a!==null&&ZA(a,r,2)}function au(r){var a=r.alternate;return r===Et||a!==null&&a===Et}function mw(r,a){ba=eu=!0;var l=r.pending;l===null?a.next=a:(a.next=l.next,l.next=a),r.pending=a}function vw(r,a,l){if((l&4194048)!==0){var f=a.lanes;f&=r.pendingLanes,l|=f,a.lanes=l,Se(r,l)}}var ou={readContext:fA,use:nu,useCallback:Te,useContext:Te,useEffect:Te,useImperativeHandle:Te,useLayoutEffect:Te,useInsertionEffect:Te,useMemo:Te,useReducer:Te,useRef:Te,useState:Te,useDebugValue:Te,useDeferredValue:Te,useTransition:Te,useSyncExternalStore:Te,useId:Te,useHostTransitionStatus:Te,useFormState:Te,useActionState:Te,useOptimistic:Te,useMemoCache:Te,useCacheRefresh:Te},ww={readContext:fA,use:nu,useCallback:function(r,a){return OA().memoizedState=[r,a===void 0?null:a],r},useContext:fA,useEffect:nw,useImperativeHandle:function(r,a,l){l=l!=null?l.concat([r]):null,su(4194308,4,aw.bind(null,a,r),l)},useLayoutEffect:function(r,a){return su(4194308,4,r,a)},useInsertionEffect:function(r,a){su(4,2,r,a)},useMemo:function(r,a){var l=OA();a=a===void 0?null:a;var f=r();if(ms){SA(!0);try{r()}finally{SA(!1)}}return l.memoizedState=[f,a],f},useReducer:function(r,a,l){var f=OA();if(l!==void 0){var g=l(a);if(ms){SA(!0);try{l(a)}finally{SA(!1)}}}else g=a;return f.memoizedState=f.baseState=g,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:r,lastRenderedState:g},f.queue=r,r=r.dispatch=F1.bind(null,Et,r),[f.memoizedState,r]},useRef:function(r){var a=OA();return r={current:r},a.memoizedState=r},useState:function(r){r=yg(r);var a=r.queue,l=Bw.bind(null,Et,a);return a.dispatch=l,[r.memoizedState,l]},useDebugValue:_g,useDeferredValue:function(r,a){var l=OA();return xg(l,r,a)},useTransition:function(){var r=yg(!1);return r=fw.bind(null,Et,r.queue,!0,!1),OA().memoizedState=r,[!1,r]},useSyncExternalStore:function(r,a,l){var f=Et,g=OA();if(Pt){if(l===void 0)throw Error(n(407));l=l()}else{if(l=a(),ae===null)throw Error(n(349));(Lt&124)!==0||K0(f,a,l)}g.memoizedState=l;var B={value:l,getSnapshot:a};return g.queue=B,nw(V0.bind(null,f,B,r),[r]),f.flags|=2048,Ca(9,ru(),z0.bind(null,f,B,l,a),null),l},useId:function(){var r=OA(),a=ae.identifierPrefix;if(Pt){var l=_i,f=Ci;l=(f&~(1<<32-Fe(f)-1)).toString(32)+l,a="«"+a+"R"+l,l=Au++,0Ct?(Ze=vt,vt=null):Ze=vt.sibling;var It=V(I,vt,k[Ct],W);if(It===null){vt===null&&(vt=Ze);break}r&&vt&&It.alternate===null&&a(I,vt),M=B(It,M,Ct),Ft===null?pt=It:Ft.sibling=It,Ft=It,vt=Ze}if(Ct===k.length)return l(I,vt),Pt&&fs(I,Ct),pt;if(vt===null){for(;CtCt?(Ze=vt,vt=null):Ze=vt.sibling;var Sr=V(I,vt,It.value,W);if(Sr===null){vt===null&&(vt=Ze);break}r&&vt&&Sr.alternate===null&&a(I,vt),M=B(Sr,M,Ct),Ft===null?pt=Sr:Ft.sibling=Sr,Ft=Sr,vt=Ze}if(It.done)return l(I,vt),Pt&&fs(I,Ct),pt;if(vt===null){for(;!It.done;Ct++,It=k.next())It=$(I,It.value,W),It!==null&&(M=B(It,M,Ct),Ft===null?pt=It:Ft.sibling=It,Ft=It);return Pt&&fs(I,Ct),pt}for(vt=f(vt);!It.done;Ct++,It=k.next())It=P(vt,I,Ct,It.value,W),It!==null&&(r&&It.alternate!==null&&vt.delete(It.key===null?Ct:It.key),M=B(It,M,Ct),Ft===null?pt=It:Ft.sibling=It,Ft=It);return r&&vt.forEach(function(HH){return a(I,HH)}),Pt&&fs(I,Ct),pt}function qt(I,M,k,W){if(typeof k=="object"&&k!==null&&k.type===w&&k.key===null&&(k=k.props.children),typeof k=="object"&&k!==null){switch(k.$$typeof){case m:t:{for(var pt=k.key;M!==null;){if(M.key===pt){if(pt=k.type,pt===w){if(M.tag===7){l(I,M.sibling),W=g(M,k.props.children),W.return=I,I=W;break t}}else if(M.elementType===pt||typeof pt=="object"&&pt!==null&&pt.$$typeof===z&&yw(pt)===M.type){l(I,M.sibling),W=g(M,k.props),Wo(W,k),W.return=I,I=W;break t}l(I,M);break}else a(I,M);M=M.sibling}k.type===w?(W=cs(k.props.children,I.mode,W,k.key),W.return=I,I=W):(W=Gc(k.type,k.key,k.props,null,I.mode,W),Wo(W,k),W.return=I,I=W)}return y(I);case v:t:{for(pt=k.key;M!==null;){if(M.key===pt)if(M.tag===4&&M.stateNode.containerInfo===k.containerInfo&&M.stateNode.implementation===k.implementation){l(I,M.sibling),W=g(M,k.children||[]),W.return=I,I=W;break t}else{l(I,M);break}else a(I,M);M=M.sibling}W=Wd(k,I.mode,W),W.return=I,I=W}return y(I);case z:return pt=k._init,k=pt(k._payload),qt(I,M,k,W)}if(st(k))return _t(I,M,k,W);if(nt(k)){if(pt=nt(k),typeof pt!="function")throw Error(n(150));return k=pt.call(k),bt(I,M,k,W)}if(typeof k.then=="function")return qt(I,M,lu(k),W);if(k.$$typeof===E)return qt(I,M,Wc(I,k),W);cu(I,k)}return typeof k=="string"&&k!==""||typeof k=="number"||typeof k=="bigint"?(k=""+k,M!==null&&M.tag===6?(l(I,M.sibling),W=g(M,k),W.return=I,I=W):(l(I,M),W=Yd(k,I.mode,W),W.return=I,I=W),y(I)):l(I,M)}return function(I,M,k,W){try{Yo=0;var pt=qt(I,M,k,W);return _a=null,pt}catch(vt){if(vt===ko||vt===Jc)throw vt;var Ft=VA(29,vt,null,I.mode);return Ft.lanes=W,Ft.return=I,Ft}finally{}}}var xa=Cw(!0),_w=Cw(!1),gn=j(null),Yn=null;function gr(r){var a=r.alternate;tt(Ke,Ke.current&1),tt(gn,r),Yn===null&&(a===null||wa.current!==null||a.memoizedState!==null)&&(Yn=r)}function xw(r){if(r.tag===22){if(tt(Ke,Ke.current),tt(gn,r),Yn===null){var a=r.alternate;a!==null&&a.memoizedState!==null&&(Yn=r)}}else pr()}function pr(){tt(Ke,Ke.current),tt(gn,gn.current)}function Ei(r){et(gn),Yn===r&&(Yn=null),et(Ke)}var Ke=j(0);function uu(r){for(var a=r;a!==null;){if(a.tag===13){var l=a.memoizedState;if(l!==null&&(l=l.dehydrated,l===null||l.data==="$?"||mp(l)))return a}else if(a.tag===19&&a.memoizedProps.revealOrder!==void 0){if((a.flags&128)!==0)return a}else if(a.child!==null){a.child.return=a,a=a.child;continue}if(a===r)break;for(;a.sibling===null;){if(a.return===null||a.return===r)return null;a=a.return}a.sibling.return=a.return,a=a.sibling}return null}function Fg(r,a,l,f){a=r.memoizedState,l=l(f,a),l=l==null?a:d({},a,l),r.memoizedState=l,r.lanes===0&&(r.updateQueue.baseState=l)}var Sg={enqueueSetState:function(r,a,l){r=r._reactInternals;var f=XA(),g=fr(f);g.payload=a,l!=null&&(g.callback=l),a=hr(r,g,f),a!==null&&(ZA(a,r,f),zo(a,r,f))},enqueueReplaceState:function(r,a,l){r=r._reactInternals;var f=XA(),g=fr(f);g.tag=1,g.payload=a,l!=null&&(g.callback=l),a=hr(r,g,f),a!==null&&(ZA(a,r,f),zo(a,r,f))},enqueueForceUpdate:function(r,a){r=r._reactInternals;var l=XA(),f=fr(l);f.tag=2,a!=null&&(f.callback=a),a=hr(r,f,l),a!==null&&(ZA(a,r,l),zo(a,r,l))}};function Qw(r,a,l,f,g,B,y){return r=r.stateNode,typeof r.shouldComponentUpdate=="function"?r.shouldComponentUpdate(f,B,y):a.prototype&&a.prototype.isPureReactComponent?!Oo(l,f)||!Oo(g,B):!0}function Uw(r,a,l,f){r=a.state,typeof a.componentWillReceiveProps=="function"&&a.componentWillReceiveProps(l,f),typeof a.UNSAFE_componentWillReceiveProps=="function"&&a.UNSAFE_componentWillReceiveProps(l,f),a.state!==r&&Sg.enqueueReplaceState(a,a.state,null)}function vs(r,a){var l=a;if("ref"in a){l={};for(var f in a)f!=="ref"&&(l[f]=a[f])}if(r=r.defaultProps){l===a&&(l=d({},l));for(var g in r)l[g]===void 0&&(l[g]=r[g])}return l}var fu=typeof reportError=="function"?reportError:function(r){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var a=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof r=="object"&&r!==null&&typeof r.message=="string"?String(r.message):String(r),error:r});if(!window.dispatchEvent(a))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",r);return}console.error(r)};function Ew(r){fu(r)}function Fw(r){console.error(r)}function Sw(r){fu(r)}function hu(r,a){try{var l=r.onUncaughtError;l(a.value,{componentStack:a.stack})}catch(f){setTimeout(function(){throw f})}}function Hw(r,a,l){try{var f=r.onCaughtError;f(l.value,{componentStack:l.stack,errorBoundary:a.tag===1?a.stateNode:null})}catch(g){setTimeout(function(){throw g})}}function Hg(r,a,l){return l=fr(l),l.tag=3,l.payload={element:null},l.callback=function(){hu(r,a)},l}function Ow(r){return r=fr(r),r.tag=3,r}function Tw(r,a,l,f){var g=l.type.getDerivedStateFromError;if(typeof g=="function"){var B=f.value;r.payload=function(){return g(B)},r.callback=function(){Hw(a,l,f)}}var y=l.stateNode;y!==null&&typeof y.componentDidCatch=="function"&&(r.callback=function(){Hw(a,l,f),typeof g!="function"&&(yr===null?yr=new Set([this]):yr.add(this));var x=f.stack;this.componentDidCatch(f.value,{componentStack:x!==null?x:""})})}function H1(r,a,l,f,g){if(l.flags|=32768,f!==null&&typeof f=="object"&&typeof f.then=="function"){if(a=l.alternate,a!==null&&Ro(a,l,g,!0),l=gn.current,l!==null){switch(l.tag){case 13:return Yn===null?ep():l.alternate===null&&Qe===0&&(Qe=3),l.flags&=-257,l.flags|=65536,l.lanes=g,f===sg?l.flags|=16384:(a=l.updateQueue,a===null?l.updateQueue=new Set([f]):a.add(f),np(r,f,g)),!1;case 22:return l.flags|=65536,f===sg?l.flags|=16384:(a=l.updateQueue,a===null?(a={transitions:null,markerInstances:null,retryQueue:new Set([f])},l.updateQueue=a):(l=a.retryQueue,l===null?a.retryQueue=new Set([f]):l.add(f)),np(r,f,g)),!1}throw Error(n(435,l.tag))}return np(r,f,g),ep(),!1}if(Pt)return a=gn.current,a!==null?((a.flags&65536)===0&&(a.flags|=256),a.flags|=65536,a.lanes=g,f!==qd&&(r=Error(n(422),{cause:f}),Lo(un(r,l)))):(f!==qd&&(a=Error(n(423),{cause:f}),Lo(un(a,l))),r=r.current.alternate,r.flags|=65536,g&=-g,r.lanes|=g,f=un(f,l),g=Hg(r.stateNode,f,g),lg(r,g),Qe!==4&&(Qe=2)),!1;var B=Error(n(520),{cause:f});if(B=un(B,l),nl===null?nl=[B]:nl.push(B),Qe!==4&&(Qe=2),a===null)return!0;f=un(f,l),l=a;do{switch(l.tag){case 3:return l.flags|=65536,r=g&-g,l.lanes|=r,r=Hg(l.stateNode,f,r),lg(l,r),!1;case 1:if(a=l.type,B=l.stateNode,(l.flags&128)===0&&(typeof a.getDerivedStateFromError=="function"||B!==null&&typeof B.componentDidCatch=="function"&&(yr===null||!yr.has(B))))return l.flags|=65536,g&=-g,l.lanes|=g,g=Ow(g),Tw(g,r,l,f),lg(l,g),!1}l=l.return}while(l!==null);return!1}var Dw=Error(n(461)),Ge=!1;function AA(r,a,l,f){a.child=r===null?_w(a,null,l,f):xa(a,r.child,l,f)}function Mw(r,a,l,f,g){l=l.render;var B=a.ref;if("ref"in f){var y={};for(var x in f)x!=="ref"&&(y[x]=f[x])}else y=f;return ps(a),f=dg(r,a,l,y,B,g),x=gg(),r!==null&&!Ge?(pg(r,a,g),Fi(r,a,g)):(Pt&&x&&$d(a),a.flags|=1,AA(r,a,f,g),a.child)}function Lw(r,a,l,f,g){if(r===null){var B=l.type;return typeof B=="function"&&!Zd(B)&&B.defaultProps===void 0&&l.compare===null?(a.tag=15,a.type=B,Rw(r,a,B,f,g)):(r=Gc(l.type,null,f,a,a.mode,g),r.ref=a.ref,r.return=a,a.child=r)}if(B=r.child,!Ng(r,g)){var y=B.memoizedProps;if(l=l.compare,l=l!==null?l:Oo,l(y,f)&&r.ref===a.ref)return Fi(r,a,g)}return a.flags|=1,r=yi(B,f),r.ref=a.ref,r.return=a,a.child=r}function Rw(r,a,l,f,g){if(r!==null){var B=r.memoizedProps;if(Oo(B,f)&&r.ref===a.ref)if(Ge=!1,a.pendingProps=f=B,Ng(r,g))(r.flags&131072)!==0&&(Ge=!0);else return a.lanes=r.lanes,Fi(r,a,g)}return Og(r,a,l,f,g)}function Iw(r,a,l){var f=a.pendingProps,g=f.children,B=r!==null?r.memoizedState:null;if(f.mode==="hidden"){if((a.flags&128)!==0){if(f=B!==null?B.baseLanes|l:l,r!==null){for(g=a.child=r.child,B=0;g!==null;)B=B|g.lanes|g.childLanes,g=g.sibling;a.childLanes=B&~f}else a.childLanes=0,a.child=null;return Nw(r,a,f,l)}if((l&536870912)!==0)a.memoizedState={baseLanes:0,cachePool:null},r!==null&&$c(a,B!==null?B.cachePool:null),B!==null?R0(a,B):ug(),xw(a);else return a.lanes=a.childLanes=536870912,Nw(r,a,B!==null?B.baseLanes|l:l,l)}else B!==null?($c(a,B.cachePool),R0(a,B),pr(),a.memoizedState=null):(r!==null&&$c(a,null),ug(),pr());return AA(r,a,g,l),a.child}function Nw(r,a,l,f){var g=rg();return g=g===null?null:{parent:ke._currentValue,pool:g},a.memoizedState={baseLanes:l,cachePool:g},r!==null&&$c(a,null),ug(),xw(a),r!==null&&Ro(r,a,f,!0),null}function du(r,a){var l=a.ref;if(l===null)r!==null&&r.ref!==null&&(a.flags|=4194816);else{if(typeof l!="function"&&typeof l!="object")throw Error(n(284));(r===null||r.ref!==l)&&(a.flags|=4194816)}}function Og(r,a,l,f,g){return ps(a),l=dg(r,a,l,f,void 0,g),f=gg(),r!==null&&!Ge?(pg(r,a,g),Fi(r,a,g)):(Pt&&f&&$d(a),a.flags|=1,AA(r,a,l,g),a.child)}function kw(r,a,l,f,g,B){return ps(a),a.updateQueue=null,l=N0(a,f,l,g),I0(r),f=gg(),r!==null&&!Ge?(pg(r,a,B),Fi(r,a,B)):(Pt&&f&&$d(a),a.flags|=1,AA(r,a,l,B),a.child)}function Kw(r,a,l,f,g){if(ps(a),a.stateNode===null){var B=ga,y=l.contextType;typeof y=="object"&&y!==null&&(B=fA(y)),B=new l(f,B),a.memoizedState=B.state!==null&&B.state!==void 0?B.state:null,B.updater=Sg,a.stateNode=B,B._reactInternals=a,B=a.stateNode,B.props=f,B.state=a.memoizedState,B.refs={},ag(a),y=l.contextType,B.context=typeof y=="object"&&y!==null?fA(y):ga,B.state=a.memoizedState,y=l.getDerivedStateFromProps,typeof y=="function"&&(Fg(a,l,y,f),B.state=a.memoizedState),typeof l.getDerivedStateFromProps=="function"||typeof B.getSnapshotBeforeUpdate=="function"||typeof B.UNSAFE_componentWillMount!="function"&&typeof B.componentWillMount!="function"||(y=B.state,typeof B.componentWillMount=="function"&&B.componentWillMount(),typeof B.UNSAFE_componentWillMount=="function"&&B.UNSAFE_componentWillMount(),y!==B.state&&Sg.enqueueReplaceState(B,B.state,null),Po(a,f,B,g),Vo(),B.state=a.memoizedState),typeof B.componentDidMount=="function"&&(a.flags|=4194308),f=!0}else if(r===null){B=a.stateNode;var x=a.memoizedProps,O=vs(l,x);B.props=O;var K=B.context,X=l.contextType;y=ga,typeof X=="object"&&X!==null&&(y=fA(X));var $=l.getDerivedStateFromProps;X=typeof $=="function"||typeof B.getSnapshotBeforeUpdate=="function",x=a.pendingProps!==x,X||typeof B.UNSAFE_componentWillReceiveProps!="function"&&typeof B.componentWillReceiveProps!="function"||(x||K!==y)&&Uw(a,B,f,y),ur=!1;var V=a.memoizedState;B.state=V,Po(a,f,B,g),Vo(),K=a.memoizedState,x||V!==K||ur?(typeof $=="function"&&(Fg(a,l,$,f),K=a.memoizedState),(O=ur||Qw(a,l,O,f,V,K,y))?(X||typeof B.UNSAFE_componentWillMount!="function"&&typeof B.componentWillMount!="function"||(typeof B.componentWillMount=="function"&&B.componentWillMount(),typeof B.UNSAFE_componentWillMount=="function"&&B.UNSAFE_componentWillMount()),typeof B.componentDidMount=="function"&&(a.flags|=4194308)):(typeof B.componentDidMount=="function"&&(a.flags|=4194308),a.memoizedProps=f,a.memoizedState=K),B.props=f,B.state=K,B.context=y,f=O):(typeof B.componentDidMount=="function"&&(a.flags|=4194308),f=!1)}else{B=a.stateNode,og(r,a),y=a.memoizedProps,X=vs(l,y),B.props=X,$=a.pendingProps,V=B.context,K=l.contextType,O=ga,typeof K=="object"&&K!==null&&(O=fA(K)),x=l.getDerivedStateFromProps,(K=typeof x=="function"||typeof B.getSnapshotBeforeUpdate=="function")||typeof B.UNSAFE_componentWillReceiveProps!="function"&&typeof B.componentWillReceiveProps!="function"||(y!==$||V!==O)&&Uw(a,B,f,O),ur=!1,V=a.memoizedState,B.state=V,Po(a,f,B,g),Vo();var P=a.memoizedState;y!==$||V!==P||ur||r!==null&&r.dependencies!==null&&Yc(r.dependencies)?(typeof x=="function"&&(Fg(a,l,x,f),P=a.memoizedState),(X=ur||Qw(a,l,X,f,V,P,O)||r!==null&&r.dependencies!==null&&Yc(r.dependencies))?(K||typeof B.UNSAFE_componentWillUpdate!="function"&&typeof B.componentWillUpdate!="function"||(typeof B.componentWillUpdate=="function"&&B.componentWillUpdate(f,P,O),typeof B.UNSAFE_componentWillUpdate=="function"&&B.UNSAFE_componentWillUpdate(f,P,O)),typeof B.componentDidUpdate=="function"&&(a.flags|=4),typeof B.getSnapshotBeforeUpdate=="function"&&(a.flags|=1024)):(typeof B.componentDidUpdate!="function"||y===r.memoizedProps&&V===r.memoizedState||(a.flags|=4),typeof B.getSnapshotBeforeUpdate!="function"||y===r.memoizedProps&&V===r.memoizedState||(a.flags|=1024),a.memoizedProps=f,a.memoizedState=P),B.props=f,B.state=P,B.context=O,f=X):(typeof B.componentDidUpdate!="function"||y===r.memoizedProps&&V===r.memoizedState||(a.flags|=4),typeof B.getSnapshotBeforeUpdate!="function"||y===r.memoizedProps&&V===r.memoizedState||(a.flags|=1024),f=!1)}return B=f,du(r,a),f=(a.flags&128)!==0,B||f?(B=a.stateNode,l=f&&typeof l.getDerivedStateFromError!="function"?null:B.render(),a.flags|=1,r!==null&&f?(a.child=xa(a,r.child,null,g),a.child=xa(a,null,l,g)):AA(r,a,l,g),a.memoizedState=B.state,r=a.child):r=Fi(r,a,g),r}function zw(r,a,l,f){return Mo(),a.flags|=256,AA(r,a,l,f),a.child}var Tg={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Dg(r){return{baseLanes:r,cachePool:F0()}}function Mg(r,a,l){return r=r!==null?r.childLanes&~l:0,a&&(r|=pn),r}function Vw(r,a,l){var f=a.pendingProps,g=!1,B=(a.flags&128)!==0,y;if((y=B)||(y=r!==null&&r.memoizedState===null?!1:(Ke.current&2)!==0),y&&(g=!0,a.flags&=-129),y=(a.flags&32)!==0,a.flags&=-33,r===null){if(Pt){if(g?gr(a):pr(),Pt){var x=xe,O;if(O=x){t:{for(O=x,x=Zn;O.nodeType!==8;){if(!x){x=null;break t}if(O=Sn(O.nextSibling),O===null){x=null;break t}}x=O}x!==null?(a.memoizedState={dehydrated:x,treeContext:us!==null?{id:Ci,overflow:_i}:null,retryLane:536870912,hydrationErrors:null},O=VA(18,null,null,0),O.stateNode=x,O.return=a,a.child=O,xA=a,xe=null,O=!0):O=!1}O||ds(a)}if(x=a.memoizedState,x!==null&&(x=x.dehydrated,x!==null))return mp(x)?a.lanes=32:a.lanes=536870912,null;Ei(a)}return x=f.children,f=f.fallback,g?(pr(),g=a.mode,x=gu({mode:"hidden",children:x},g),f=cs(f,g,l,null),x.return=a,f.return=a,x.sibling=f,a.child=x,g=a.child,g.memoizedState=Dg(l),g.childLanes=Mg(r,y,l),a.memoizedState=Tg,f):(gr(a),Lg(a,x))}if(O=r.memoizedState,O!==null&&(x=O.dehydrated,x!==null)){if(B)a.flags&256?(gr(a),a.flags&=-257,a=Rg(r,a,l)):a.memoizedState!==null?(pr(),a.child=r.child,a.flags|=128,a=null):(pr(),g=f.fallback,x=a.mode,f=gu({mode:"visible",children:f.children},x),g=cs(g,x,l,null),g.flags|=2,f.return=a,g.return=a,f.sibling=g,a.child=f,xa(a,r.child,null,l),f=a.child,f.memoizedState=Dg(l),f.childLanes=Mg(r,y,l),a.memoizedState=Tg,a=g);else if(gr(a),mp(x)){if(y=x.nextSibling&&x.nextSibling.dataset,y)var K=y.dgst;y=K,f=Error(n(419)),f.stack="",f.digest=y,Lo({value:f,source:null,stack:null}),a=Rg(r,a,l)}else if(Ge||Ro(r,a,l,!1),y=(l&r.childLanes)!==0,Ge||y){if(y=ae,y!==null&&(f=l&-l,f=(f&42)!==0?1:lA(f),f=(f&(y.suspendedLanes|l))!==0?0:f,f!==0&&f!==O.retryLane))throw O.retryLane=f,da(r,f),ZA(y,r,f),Dw;x.data==="$?"||ep(),a=Rg(r,a,l)}else x.data==="$?"?(a.flags|=192,a.child=r.child,a=null):(r=O.treeContext,xe=Sn(x.nextSibling),xA=a,Pt=!0,hs=null,Zn=!1,r!==null&&(hn[dn++]=Ci,hn[dn++]=_i,hn[dn++]=us,Ci=r.id,_i=r.overflow,us=a),a=Lg(a,f.children),a.flags|=4096);return a}return g?(pr(),g=f.fallback,x=a.mode,O=r.child,K=O.sibling,f=yi(O,{mode:"hidden",children:f.children}),f.subtreeFlags=O.subtreeFlags&65011712,K!==null?g=yi(K,g):(g=cs(g,x,l,null),g.flags|=2),g.return=a,f.return=a,f.sibling=g,a.child=f,f=g,g=a.child,x=r.child.memoizedState,x===null?x=Dg(l):(O=x.cachePool,O!==null?(K=ke._currentValue,O=O.parent!==K?{parent:K,pool:K}:O):O=F0(),x={baseLanes:x.baseLanes|l,cachePool:O}),g.memoizedState=x,g.childLanes=Mg(r,y,l),a.memoizedState=Tg,f):(gr(a),l=r.child,r=l.sibling,l=yi(l,{mode:"visible",children:f.children}),l.return=a,l.sibling=null,r!==null&&(y=a.deletions,y===null?(a.deletions=[r],a.flags|=16):y.push(r)),a.child=l,a.memoizedState=null,l)}function Lg(r,a){return a=gu({mode:"visible",children:a},r.mode),a.return=r,r.child=a}function gu(r,a){return r=VA(22,r,null,a),r.lanes=0,r.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},r}function Rg(r,a,l){return xa(a,r.child,null,l),r=Lg(a,a.pendingProps.children),r.flags|=2,a.memoizedState=null,r}function Pw(r,a,l){r.lanes|=a;var f=r.alternate;f!==null&&(f.lanes|=a),eg(r.return,a,l)}function Ig(r,a,l,f,g){var B=r.memoizedState;B===null?r.memoizedState={isBackwards:a,rendering:null,renderingStartTime:0,last:f,tail:l,tailMode:g}:(B.isBackwards=a,B.rendering=null,B.renderingStartTime=0,B.last=f,B.tail=l,B.tailMode=g)}function jw(r,a,l){var f=a.pendingProps,g=f.revealOrder,B=f.tail;if(AA(r,a,f.children,l),f=Ke.current,(f&2)!==0)f=f&1|2,a.flags|=128;else{if(r!==null&&(r.flags&128)!==0)t:for(r=a.child;r!==null;){if(r.tag===13)r.memoizedState!==null&&Pw(r,l,a);else if(r.tag===19)Pw(r,l,a);else if(r.child!==null){r.child.return=r,r=r.child;continue}if(r===a)break t;for(;r.sibling===null;){if(r.return===null||r.return===a)break t;r=r.return}r.sibling.return=r.return,r=r.sibling}f&=1}switch(tt(Ke,f),g){case"forwards":for(l=a.child,g=null;l!==null;)r=l.alternate,r!==null&&uu(r)===null&&(g=l),l=l.sibling;l=g,l===null?(g=a.child,a.child=null):(g=l.sibling,l.sibling=null),Ig(a,!1,g,l,B);break;case"backwards":for(l=null,g=a.child,a.child=null;g!==null;){if(r=g.alternate,r!==null&&uu(r)===null){a.child=g;break}r=g.sibling,g.sibling=l,l=g,g=r}Ig(a,!0,l,null,B);break;case"together":Ig(a,!1,null,null,void 0);break;default:a.memoizedState=null}return a.child}function Fi(r,a,l){if(r!==null&&(a.dependencies=r.dependencies),br|=a.lanes,(l&a.childLanes)===0)if(r!==null){if(Ro(r,a,l,!1),(l&a.childLanes)===0)return null}else return null;if(r!==null&&a.child!==r.child)throw Error(n(153));if(a.child!==null){for(r=a.child,l=yi(r,r.pendingProps),a.child=l,l.return=a;r.sibling!==null;)r=r.sibling,l=l.sibling=yi(r,r.pendingProps),l.return=a;l.sibling=null}return a.child}function Ng(r,a){return(r.lanes&a)!==0?!0:(r=r.dependencies,!!(r!==null&&Yc(r)))}function O1(r,a,l){switch(a.tag){case 3:Kt(a,a.stateNode.containerInfo),cr(a,ke,r.memoizedState.cache),Mo();break;case 27:case 5:An(a);break;case 4:Kt(a,a.stateNode.containerInfo);break;case 10:cr(a,a.type,a.memoizedProps.value);break;case 13:var f=a.memoizedState;if(f!==null)return f.dehydrated!==null?(gr(a),a.flags|=128,null):(l&a.child.childLanes)!==0?Vw(r,a,l):(gr(a),r=Fi(r,a,l),r!==null?r.sibling:null);gr(a);break;case 19:var g=(r.flags&128)!==0;if(f=(l&a.childLanes)!==0,f||(Ro(r,a,l,!1),f=(l&a.childLanes)!==0),g){if(f)return jw(r,a,l);a.flags|=128}if(g=a.memoizedState,g!==null&&(g.rendering=null,g.tail=null,g.lastEffect=null),tt(Ke,Ke.current),f)break;return null;case 22:case 23:return a.lanes=0,Iw(r,a,l);case 24:cr(a,ke,r.memoizedState.cache)}return Fi(r,a,l)}function Gw(r,a,l){if(r!==null)if(r.memoizedProps!==a.pendingProps)Ge=!0;else{if(!Ng(r,l)&&(a.flags&128)===0)return Ge=!1,O1(r,a,l);Ge=(r.flags&131072)!==0}else Ge=!1,Pt&&(a.flags&1048576)!==0&&y0(a,Zc,a.index);switch(a.lanes=0,a.tag){case 16:t:{r=a.pendingProps;var f=a.elementType,g=f._init;if(f=g(f._payload),a.type=f,typeof f=="function")Zd(f)?(r=vs(f,r),a.tag=1,a=Kw(null,a,f,r,l)):(a.tag=0,a=Og(null,a,f,r,l));else{if(f!=null){if(g=f.$$typeof,g===H){a.tag=11,a=Mw(null,a,f,r,l);break t}else if(g===L){a.tag=14,a=Lw(null,a,f,r,l);break t}}throw a=ft(f)||f,Error(n(306,a,""))}}return a;case 0:return Og(r,a,a.type,a.pendingProps,l);case 1:return f=a.type,g=vs(f,a.pendingProps),Kw(r,a,f,g,l);case 3:t:{if(Kt(a,a.stateNode.containerInfo),r===null)throw Error(n(387));f=a.pendingProps;var B=a.memoizedState;g=B.element,og(r,a),Po(a,f,null,l);var y=a.memoizedState;if(f=y.cache,cr(a,ke,f),f!==B.cache&&Ag(a,[ke],l,!0),Vo(),f=y.element,B.isDehydrated)if(B={element:f,isDehydrated:!1,cache:y.cache},a.updateQueue.baseState=B,a.memoizedState=B,a.flags&256){a=zw(r,a,f,l);break t}else if(f!==g){g=un(Error(n(424)),a),Lo(g),a=zw(r,a,f,l);break t}else{switch(r=a.stateNode.containerInfo,r.nodeType){case 9:r=r.body;break;default:r=r.nodeName==="HTML"?r.ownerDocument.body:r}for(xe=Sn(r.firstChild),xA=a,Pt=!0,hs=null,Zn=!0,l=_w(a,null,f,l),a.child=l;l;)l.flags=l.flags&-3|4096,l=l.sibling}else{if(Mo(),f===g){a=Fi(r,a,l);break t}AA(r,a,f,l)}a=a.child}return a;case 26:return du(r,a),r===null?(l=Wb(a.type,null,a.pendingProps,null))?a.memoizedState=l:Pt||(l=a.type,r=a.pendingProps,f=Fu(ot.current).createElement(l),f[it]=a,f[Bt]=r,iA(f,l,r),Oe(f),a.stateNode=f):a.memoizedState=Wb(a.type,r.memoizedProps,a.pendingProps,r.memoizedState),null;case 27:return An(a),r===null&&Pt&&(f=a.stateNode=Xb(a.type,a.pendingProps,ot.current),xA=a,Zn=!0,g=xe,xr(a.type)?(vp=g,xe=Sn(f.firstChild)):xe=g),AA(r,a,a.pendingProps.children,l),du(r,a),r===null&&(a.flags|=4194304),a.child;case 5:return r===null&&Pt&&((g=f=xe)&&(f=sH(f,a.type,a.pendingProps,Zn),f!==null?(a.stateNode=f,xA=a,xe=Sn(f.firstChild),Zn=!1,g=!0):g=!1),g||ds(a)),An(a),g=a.type,B=a.pendingProps,y=r!==null?r.memoizedProps:null,f=B.children,gp(g,B)?f=null:y!==null&&gp(g,y)&&(a.flags|=32),a.memoizedState!==null&&(g=dg(r,a,_1,null,null,l),fl._currentValue=g),du(r,a),AA(r,a,f,l),a.child;case 6:return r===null&&Pt&&((r=l=xe)&&(l=aH(l,a.pendingProps,Zn),l!==null?(a.stateNode=l,xA=a,xe=null,r=!0):r=!1),r||ds(a)),null;case 13:return Vw(r,a,l);case 4:return Kt(a,a.stateNode.containerInfo),f=a.pendingProps,r===null?a.child=xa(a,null,f,l):AA(r,a,f,l),a.child;case 11:return Mw(r,a,a.type,a.pendingProps,l);case 7:return AA(r,a,a.pendingProps,l),a.child;case 8:return AA(r,a,a.pendingProps.children,l),a.child;case 12:return AA(r,a,a.pendingProps.children,l),a.child;case 10:return f=a.pendingProps,cr(a,a.type,f.value),AA(r,a,f.children,l),a.child;case 9:return g=a.type._context,f=a.pendingProps.children,ps(a),g=fA(g),f=f(g),a.flags|=1,AA(r,a,f,l),a.child;case 14:return Lw(r,a,a.type,a.pendingProps,l);case 15:return Rw(r,a,a.type,a.pendingProps,l);case 19:return jw(r,a,l);case 31:return f=a.pendingProps,l=a.mode,f={mode:f.mode,children:f.children},r===null?(l=gu(f,l),l.ref=a.ref,a.child=l,l.return=a,a=l):(l=yi(r.child,f),l.ref=a.ref,a.child=l,l.return=a,a=l),a;case 22:return Iw(r,a,l);case 24:return ps(a),f=fA(ke),r===null?(g=rg(),g===null&&(g=ae,B=ng(),g.pooledCache=B,B.refCount++,B!==null&&(g.pooledCacheLanes|=l),g=B),a.memoizedState={parent:f,cache:g},ag(a),cr(a,ke,g)):((r.lanes&l)!==0&&(og(r,a),Po(a,null,null,l),Vo()),g=r.memoizedState,B=a.memoizedState,g.parent!==f?(g={parent:f,cache:f},a.memoizedState=g,a.lanes===0&&(a.memoizedState=a.updateQueue.baseState=g),cr(a,ke,f)):(f=B.cache,cr(a,ke,f),f!==g.cache&&Ag(a,[ke],l,!0))),AA(r,a,a.pendingProps.children,l),a.child;case 29:throw a.pendingProps}throw Error(n(156,a.tag))}function Si(r){r.flags|=4}function Xw(r,a){if(a.type!=="stylesheet"||(a.state.loading&4)!==0)r.flags&=-16777217;else if(r.flags|=16777216,!ey(a)){if(a=gn.current,a!==null&&((Lt&4194048)===Lt?Yn!==null:(Lt&62914560)!==Lt&&(Lt&536870912)===0||a!==Yn))throw Ko=sg,S0;r.flags|=8192}}function pu(r,a){a!==null&&(r.flags|=4),r.flags&16384&&(a=r.tag!==22?mi():536870912,r.lanes|=a,Fa|=a)}function $o(r,a){if(!Pt)switch(r.tailMode){case"hidden":a=r.tail;for(var l=null;a!==null;)a.alternate!==null&&(l=a),a=a.sibling;l===null?r.tail=null:l.sibling=null;break;case"collapsed":l=r.tail;for(var f=null;l!==null;)l.alternate!==null&&(f=l),l=l.sibling;f===null?a||r.tail===null?r.tail=null:r.tail.sibling=null:f.sibling=null}}function ye(r){var a=r.alternate!==null&&r.alternate.child===r.child,l=0,f=0;if(a)for(var g=r.child;g!==null;)l|=g.lanes|g.childLanes,f|=g.subtreeFlags&65011712,f|=g.flags&65011712,g.return=r,g=g.sibling;else for(g=r.child;g!==null;)l|=g.lanes|g.childLanes,f|=g.subtreeFlags,f|=g.flags,g.return=r,g=g.sibling;return r.subtreeFlags|=f,r.childLanes=l,a}function T1(r,a,l){var f=a.pendingProps;switch(Jd(a),a.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return ye(a),null;case 1:return ye(a),null;case 3:return l=a.stateNode,f=null,r!==null&&(f=r.memoizedState.cache),a.memoizedState.cache!==f&&(a.flags|=2048),Qi(ke),Yt(),l.pendingContext&&(l.context=l.pendingContext,l.pendingContext=null),(r===null||r.child===null)&&(Do(a)?Si(a):r===null||r.memoizedState.isDehydrated&&(a.flags&256)===0||(a.flags|=1024,x0())),ye(a),null;case 26:return l=a.memoizedState,r===null?(Si(a),l!==null?(ye(a),Xw(a,l)):(ye(a),a.flags&=-16777217)):l?l!==r.memoizedState?(Si(a),ye(a),Xw(a,l)):(ye(a),a.flags&=-16777217):(r.memoizedProps!==f&&Si(a),ye(a),a.flags&=-16777217),null;case 27:Pe(a),l=ot.current;var g=a.type;if(r!==null&&a.stateNode!=null)r.memoizedProps!==f&&Si(a);else{if(!f){if(a.stateNode===null)throw Error(n(166));return ye(a),null}r=Y.current,Do(a)?C0(a):(r=Xb(g,f,l),a.stateNode=r,Si(a))}return ye(a),null;case 5:if(Pe(a),l=a.type,r!==null&&a.stateNode!=null)r.memoizedProps!==f&&Si(a);else{if(!f){if(a.stateNode===null)throw Error(n(166));return ye(a),null}if(r=Y.current,Do(a))C0(a);else{switch(g=Fu(ot.current),r){case 1:r=g.createElementNS("http://www.w3.org/2000/svg",l);break;case 2:r=g.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;default:switch(l){case"svg":r=g.createElementNS("http://www.w3.org/2000/svg",l);break;case"math":r=g.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;case"script":r=g.createElement("div"),r.innerHTML=" + From b1cb22b606b11157f97a3260470724f723cffad0 Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 26 Aug 2025 17:06:45 -0700 Subject: [PATCH 17/21] revert --- tests/chinook/test_pydantic_chinook.py | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/tests/chinook/test_pydantic_chinook.py b/tests/chinook/test_pydantic_chinook.py index 6241a02d..8fdff684 100644 --- a/tests/chinook/test_pydantic_chinook.py +++ b/tests/chinook/test_pydantic_chinook.py @@ -82,15 +82,6 @@ class Response(BaseModel): return row -""" -invocation ids: - - - lead-low-war-kind-business (worked) - - miss-wonder-early-friend-side (failed) - - -""" - - @pytest.mark.asyncio @evaluation_test( input_rows=collect_dataset(), @@ -103,18 +94,9 @@ class Response(BaseModel): } } }, - { - "model": { - "orchestrator_agent_model": { - "model": "accounts/fireworks/models/deepseek-v3p1", - "provider": "fireworks", - } - } - }, ], rollout_processor=PydanticAgentRolloutProcessor(), rollout_processor_kwargs={"agent": setup_agent}, - num_runs=3, mode="pointwise", ) async def test_complex_queries(row: EvaluationRow) -> EvaluationRow: @@ -154,7 +136,7 @@ class Response(BaseModel): system_prompt=LLM_JUDGE_PROMPT, output_type=Response, model=model, - result_retries=5, + result_retries=3, ) result = await comparison_agent.run( f"Expected answer: {row.ground_truth}\nResponse: {last_assistant_message.content}" From 4ce005703177309e3d5a1088c22151f94fe56fed Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 26 Aug 2025 17:31:20 -0700 Subject: [PATCH 18/21] support anthropic and google --- .../default_pydantic_ai_rollout_processor.py | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/eval_protocol/pytest/default_pydantic_ai_rollout_processor.py b/eval_protocol/pytest/default_pydantic_ai_rollout_processor.py index 43ff6907..b134199d 100644 --- a/eval_protocol/pytest/default_pydantic_ai_rollout_processor.py +++ b/eval_protocol/pytest/default_pydantic_ai_rollout_processor.py @@ -11,8 +11,9 @@ from eval_protocol.pytest.types import RolloutProcessorConfig from openai.types.chat import ChatCompletion, ChatCompletionMessageParam from openai.types.chat.chat_completion import Choice as ChatCompletionChoice - +from pydantic_ai.models.anthropic import AnthropicModel from pydantic_ai.models.openai import OpenAIModel +from pydantic_ai.models.google import GoogleModel from pydantic import TypeAdapter from pydantic_ai.messages import ModelMessage from pydantic_ai._utils import generate_tool_call_id @@ -61,10 +62,19 @@ def __call__(self, rows: List[EvaluationRow], config: RolloutProcessorConfig) -> ) kwargs = {} for k, v in config.completion_params["model"].items(): - kwargs[k] = OpenAIModel( - v["model"], - provider=v["provider"], - ) + if v["model"] and v["model"].startswith("anthropic:"): + kwargs[k] = AnthropicModel( + v["model"].removeprefix("anthropic:"), + ) + elif v["model"] and v["model"].startswith("google:"): + kwargs[k] = GoogleModel( + v["model"].removeprefix("google:"), + ) + else: + kwargs[k] = OpenAIModel( + v["model"], + provider=v["provider"], + ) agent = setup_agent(**kwargs) model = None else: From 8a01ddcd366133b763dcae91004ec5ddfc2263d1 Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 26 Aug 2025 17:33:30 -0700 Subject: [PATCH 19/21] skip in CI --- tests/chinook/test_pydantic_chinook.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/chinook/test_pydantic_chinook.py b/tests/chinook/test_pydantic_chinook.py index 8fdff684..9d4c128c 100644 --- a/tests/chinook/test_pydantic_chinook.py +++ b/tests/chinook/test_pydantic_chinook.py @@ -82,6 +82,7 @@ class Response(BaseModel): return row +@pytest.mark.skip(reason="takes too long to run") @pytest.mark.asyncio @evaluation_test( input_rows=collect_dataset(), @@ -136,7 +137,7 @@ class Response(BaseModel): system_prompt=LLM_JUDGE_PROMPT, output_type=Response, model=model, - result_retries=3, + result_retries=5, ) result = await comparison_agent.run( f"Expected answer: {row.ground_truth}\nResponse: {last_assistant_message.content}" From 6d8d2c29e7cf22a2797d5bc9dad97d09247db93c Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 26 Aug 2025 17:34:53 -0700 Subject: [PATCH 20/21] sort by aggregate score --- vite-app/src/util/pivot.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/vite-app/src/util/pivot.ts b/vite-app/src/util/pivot.ts index 45473243..aaa22e0c 100644 --- a/vite-app/src/util/pivot.ts +++ b/vite-app/src/util/pivot.ts @@ -277,7 +277,9 @@ export function computePivot>({ // Deterministic ordering rowKeyTuples.sort((a, b) => toKey(a).localeCompare(toKey(b))); - colKeyTuples.sort((a, b) => toKey(a).localeCompare(toKey(b))); + + // Sort columns by aggregate score (largest to smallest) instead of alphabetically + // We'll sort after calculating column totals, so we'll do it later type CellAgg = { value: number; records: T[] }; const cells: Record> = {}; @@ -357,6 +359,16 @@ export function computePivot>({ colTotals[cKey] = aggregate(columnValues, columnRecords, aggregator); } + // Sort columns by aggregate score (largest to smallest) based on column totals + colKeyTuples.sort((a, b) => { + const aKey = toKey(a); + const bKey = toKey(b); + const aTotal = colTotals[aKey] ?? 0; + const bTotal = colTotals[bKey] ?? 0; + // Sort from largest to smallest (descending order) + return bTotal - aTotal; + }); + // Grand total should follow the same aggregation semantics over the entire dataset // rather than summing per-row/per-column aggregates (which can be incorrect for // non-additive aggregations like "avg"). From bc0a6574ac3717d6ed8d6fcab01205792a0bc834 Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 26 Aug 2025 17:35:05 -0700 Subject: [PATCH 21/21] vite build --- vite-app/dist/assets/{index-D0r8BDZ2.js => index-CWShMUgl.js} | 4 ++-- .../assets/{index-D0r8BDZ2.js.map => index-CWShMUgl.js.map} | 2 +- vite-app/dist/assets/index-CiLyUyXb.css | 1 - vite-app/dist/assets/index-DLyzGYL0.css | 1 + vite-app/dist/index.html | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) rename vite-app/dist/assets/{index-D0r8BDZ2.js => index-CWShMUgl.js} (99%) rename vite-app/dist/assets/{index-D0r8BDZ2.js.map => index-CWShMUgl.js.map} (55%) delete mode 100644 vite-app/dist/assets/index-CiLyUyXb.css create mode 100644 vite-app/dist/assets/index-DLyzGYL0.css diff --git a/vite-app/dist/assets/index-D0r8BDZ2.js b/vite-app/dist/assets/index-CWShMUgl.js similarity index 99% rename from vite-app/dist/assets/index-D0r8BDZ2.js rename to vite-app/dist/assets/index-CWShMUgl.js index 18559725..9a72ed07 100644 --- a/vite-app/dist/assets/index-D0r8BDZ2.js +++ b/vite-app/dist/assets/index-CWShMUgl.js @@ -94,7 +94,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho ${te.input.size[i]} cursor-pointer flex items-center justify-between ${o?"opacity-50 cursor-not-allowed":""} - `,style:{boxShadow:te.input.shadow},children:[Q.jsx("span",{className:t?"text-gray-900":"text-gray-400",title:N?N.label:n,children:N?N.label:n}),Q.jsx("svg",{className:`w-4 h-4 text-gray-400 transition-transform ${u?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:Q.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),u&&Q.jsxs("div",{className:`absolute z-50 mt-1 ${te.input.base} max-h-60 overflow-x-hidden ${v==="right"?"right-0":"left-0"}`,style:{width:b,right:v==="right"?"0":void 0,left:v==="left"?"0":void 0,boxShadow:te.input.shadow},children:[Q.jsx("div",{className:"p-2 border-b border-gray-200 rounded-t-md",style:{boxShadow:te.input.shadow},children:Q.jsx("input",{ref:H,type:"text",value:d,onChange:Y=>p(Y.target.value),onKeyDown:D,placeholder:"Search...",className:`${te.input.base} ${te.input.size.sm} w-full`,style:{boxShadow:te.input.shadow},role:"searchbox","aria-label":"Search options"})}),Q.jsx("div",{ref:J,className:"max-h-48 overflow-y-auto overflow-x-hidden",role:"listbox","aria-label":"Options",onScroll:tt,children:G>0?Q.jsxs(Q.Fragment,{children:[j>0&&Q.jsx("div",{style:{height:j}}),m.slice(ct,T).map((Y,ut)=>{const lt=ct+ut;return Q.jsx("div",{onClick:()=>F(Y.value),onMouseEnter:()=>U(lt),className:`px-3 py-2 text-xs font-medium cursor-pointer hover:bg-gray-100 text-gray-700 border-b border-gray-100 last:border-b-0 ${C===lt?"bg-gray-100":""}`,role:"option","aria-selected":C===lt,"aria-label":Y.label,tabIndex:-1,style:{height:st},title:Y.label,children:Q.jsx("div",{className:"overflow-x-auto whitespace-nowrap",children:Y.label})},Y.value)}),At>0&&Q.jsx("div",{style:{height:At}})]}):Q.jsx("div",{className:"px-3 py-2 text-xs font-medium text-gray-500",children:"No options found"})})]})]})});Ds.displayName="SearchableSelect";const QN=({filter:e,onUpdate:t})=>{if((e.type||"text")==="date")return Q.jsxs("div",{className:"flex space-x-2",children:[Q.jsx("input",{type:"date",value:e.value,onChange:d=>t({value:d.target.value}),className:`${te.input.base} ${te.input.size.sm} ${te.width.sm}`,style:{boxShadow:te.input.shadow}}),e.operator==="between"&&Q.jsx("input",{type:"date",value:e.value2||"",onChange:d=>t({value2:d.target.value}),className:`${te.input.base} ${te.input.size.sm} ${te.width.sm}`,placeholder:"End date",style:{boxShadow:te.input.shadow}})]});const[n,i]=S.useState(e.value||""),s=S.useRef(null);S.useEffect(()=>{i(e.value||"")},[e.value]);const o=d=>{s.current&&clearTimeout(s.current),t({value:d})},c=d=>{const p=d.target.value;i(p),s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{t({value:p})},250)},u=d=>{d.key==="Enter"&&o(n)},h=()=>o(n);return Q.jsx("input",{type:"text",value:n,onChange:c,onKeyDown:u,onBlur:h,placeholder:"Value",className:`${te.input.base} ${te.input.size.sm} ${te.width.sm}`,style:{boxShadow:te.input.shadow}})},vE=e=>e.toLowerCase().includes("date")||e.toLowerCase().includes("time")||e.toLowerCase().includes("created")||e.toLowerCase().includes("updated"),zC=e=>vE(e)?"date":"text",UN=(e,t)=>vE(e)?[{value:">=",label:"on or after"},{value:"<=",label:"on or before"},{value:"==",label:"on"},{value:"!=",label:"not on"},{value:"between",label:"between"}]:[{value:"contains",label:"contains"},{value:"!contains",label:"not contains"},{value:"==",label:"equals"},{value:"!=",label:"not equals"},{value:">",label:"greater than"},{value:"<",label:"less than"},{value:">=",label:"greater than or equal"},{value:"<=",label:"less than or equal"}],vh=e=>{if(e.length!==0)return t=>e.every(A=>A.filters.length===0?!0:A.logic==="OR"?A.filters.some(n=>VC(n,t)):A.filters.every(n=>VC(n,t)))},VC=(e,t)=>{if(!e.field||!e.value)return!0;const A=t[e.field],n=e.value,i=e.value2;if(e.type==="date"||e.type==="date-range"){const s=new Date(A),o=new Date(n);if(isNaN(s.getTime())||isNaN(o.getTime()))return!0;switch(e.operator){case"==":return s.toDateString()===o.toDateString();case"!=":return s.toDateString()!==o.toDateString();case">=":return s>=o;case"<=":return s<=o;case"between":if(i){const c=new Date(i);if(!isNaN(c.getTime()))return s>=o&&s<=c}return!0;default:return!0}}switch(e.operator){case"==":return String(A)===n;case"!=":return String(A)!==n;case">":return Number(A)>Number(n);case"<":return Number(A)=":return Number(A)>=Number(n);case"<=":return Number(A)<=Number(n);case"contains":return String(A).toLowerCase().includes(n.toLowerCase());case"!contains":return!String(A).toLowerCase().includes(n.toLowerCase());default:return!0}},EN=({filters:e,onFiltersChange:t,availableKeys:A,title:n="Filters"})=>{const i=S.useCallback(()=>{t([...e,{logic:"AND",filters:[]}])},[e,t]),s=S.useCallback(p=>{t(e.filter((m,v)=>v!==p))},[e,t]),o=S.useCallback((p,m)=>{const v=[...e];v[p]={...v[p],logic:m},t(v)},[e,t]),c=S.useCallback(p=>{const m=[...e];m[p].filters.push({field:"",operator:"contains",value:"",type:"text"}),t(m)},[e,t]),u=S.useCallback((p,m)=>{const v=[...e];v[p].filters.splice(m,1),t(v)},[e,t]),h=S.useCallback((p,m,v)=>{const w=[...e];w[p].filters[m]={...w[p].filters[m],...v},t(w)},[e,t]),d=S.useMemo(()=>A.map(p=>({value:p,label:p})),[A]);return Q.jsxs("div",{className:"mb-3",children:[Q.jsxs("div",{className:"flex items-center justify-between mb-2",children:[Q.jsx("h3",{className:"text-xs font-semibold text-gray-700",children:n}),e.length>0&&Q.jsx(Je,{onClick:i,size:"sm",variant:"secondary",children:"+ Add Filter Group"})]}),Q.jsxs("div",{className:"space-y-2",children:[e.map((p,m)=>Q.jsxs("div",{className:`pt-2 ${m>0?"border-t border-gray-200 mt-2":""}`,children:[Q.jsxs("div",{className:"flex items-center justify-between mb-2",children:[Q.jsxs("div",{className:"flex items-center gap-2",children:[Q.jsxs("span",{className:"text-xs font-medium text-gray-600",children:["Group ",m+1]}),Q.jsx(Ds,{value:p.logic,onChange:v=>o(m,v),options:[{value:"AND",label:"AND (all filters must match)"},{value:"OR",label:"OR (any filter can match)"}],size:"sm",className:"min-w-40"})]}),Q.jsx(Je,{onClick:()=>s(m),size:"sm",variant:"secondary",children:"Remove Group"})]}),Q.jsxs("div",{className:"space-y-2",children:[p.filters.map((v,w)=>{const b=v.type||zC(v.field),_=UN(b);return Q.jsxs("div",{className:"flex items-center gap-2",children:[Q.jsx(Ds,{value:v.field,onChange:C=>{const U=zC(C);h(m,w,{field:C,type:U,operator:_[0]?.value||"contains"})},options:d,placeholder:"Select field...",size:"sm",className:"min-w-40"}),Q.jsx(Ds,{value:v.operator,onChange:C=>h(m,w,{operator:C}),options:_,size:"sm",className:"min-w-36"}),Q.jsx(QN,{filter:v,onUpdate:C=>h(m,w,C)}),Q.jsx(Je,{onClick:()=>u(m,w),size:"sm",variant:"secondary",children:"Remove"})]},w)}),Q.jsx("div",{children:Q.jsx(Je,{onClick:()=>c(m),size:"sm",variant:"secondary",children:"+ Add Filter to Group"})})]})]},m)),e.length===0&&Q.jsx("div",{className:"flex justify-center py-4",children:Q.jsx(Je,{onClick:i,size:"sm",variant:"primary",children:"+ Add Filter Group"})})]})]})},wE=mA.memo(EN),FN=Ae(({currentPage:e,pageSize:t})=>{const A=(e-1)*t,n=A+t,s=rt.filteredOriginalDataset.slice(A,n);return Q.jsx(mE,{children:s.map((o,c)=>Q.jsx(xN,{row:o,index:A+c},o.execution_metadata?.rollout_id))})}),SN=Ae(()=>{const e=rt.filteredOriginalDataset.length,t=Math.ceil(e/rt.pageSize),A=(rt.currentPage-1)*rt.pageSize+1,n=Math.min(rt.currentPage*rt.pageSize,e),i=u=>{rt.setCurrentPage(Math.max(1,Math.min(u,t)))},s=u=>{rt.setPageSize(u)},o=u=>{rt.updateFilterConfig(u)},c=u=>{rt.handleSortFieldClick(u)};return Q.jsxs("div",{className:"bg-white border border-gray-200",children:[Q.jsxs("div",{className:"px-3 py-3 border-b border-gray-200 bg-white",children:[Q.jsx("div",{className:"flex items-center justify-between",children:Q.jsxs("div",{className:"flex items-center gap-4",children:[Q.jsx("h3",{className:"text-sm font-medium text-gray-700",children:"Table Filters"}),Q.jsx("div",{className:"text-xs text-gray-600",children:rt.filterConfig.length>0?Q.jsxs(Q.Fragment,{children:["Showing ",e," of ",rt.sortedDataset.length," rows",e!==rt.sortedDataset.length&&Q.jsx("span",{className:"text-blue-600 ml-1",children:"(filtered)"})]}):`Showing all ${rt.sortedDataset.length} rows`})]})}),Q.jsx("div",{className:"bg-white rounded-lg",children:Q.jsx(wE,{filters:rt.filterConfig,onFiltersChange:o,availableKeys:rt.flattenedDatasetKeys,title:""})})]}),Q.jsxs("div",{className:"px-3 py-2 border-b border-gray-200 bg-gray-50 flex items-center justify-between",children:[Q.jsxs("div",{className:"flex items-center gap-4",children:[Q.jsxs("div",{className:"text-xs text-gray-600",children:["Showing ",A,"-",n," of ",e," rows"]}),Q.jsxs("div",{className:"flex items-center gap-2",children:[Q.jsx("label",{className:"text-xs text-gray-600",children:"Page size:"}),Q.jsxs(ov,{value:rt.pageSize,onChange:u=>s(Number(u.target.value)),size:"sm",children:[Q.jsx("option",{value:25,children:"25"}),Q.jsx("option",{value:50,children:"50"}),Q.jsx("option",{value:100,children:"100"}),Q.jsx("option",{value:200,children:"200"})]})]})]}),Q.jsxs("div",{className:"flex items-center gap-2",children:[Q.jsx(Je,{onClick:()=>i(1),disabled:rt.currentPage===1,size:"sm",variant:"secondary",children:"First"}),Q.jsx(Je,{onClick:()=>i(rt.currentPage-1),disabled:rt.currentPage===1,size:"sm",variant:"secondary",children:"Previous"}),Q.jsxs("span",{className:"text-xs text-gray-600 px-2",children:["Page ",rt.currentPage," of ",t]}),Q.jsx(Je,{onClick:()=>i(rt.currentPage+1),disabled:rt.currentPage===t,size:"sm",variant:"secondary",children:"Next"}),Q.jsx(Je,{onClick:()=>i(t),disabled:rt.currentPage===t,size:"sm",variant:"secondary",children:"Last"})]})]}),e===0?Q.jsxs("div",{className:"px-3 py-6 text-center text-xs text-gray-600",children:[Q.jsx("div",{className:"mb-2",children:"No rows match your current filters."}),Q.jsx(Je,{onClick:()=>o([]),size:"sm",variant:"secondary",children:"Clear filters"})]}):Q.jsx("div",{className:"overflow-x-auto",children:Q.jsxs("table",{className:"w-full min-w-max",children:[Q.jsx(BE,{children:Q.jsxs("tr",{children:[Q.jsx(Wf,{className:"w-8",children:" "}),Q.jsx(Hn,{sortField:"$.eval_metadata.name",currentSortField:rt.sortField,currentSortDirection:rt.sortDirection,onSort:c,children:"Name"}),Q.jsx(Hn,{sortField:"$.eval_metadata.status.code",currentSortField:rt.sortField,currentSortDirection:rt.sortDirection,onSort:c,children:"Eval Status"}),Q.jsx(Hn,{sortField:"$.rollout_status.code",currentSortField:rt.sortField,currentSortDirection:rt.sortDirection,onSort:c,children:"Rollout Status"}),Q.jsx(Hn,{sortField:"$.execution_metadata.invocation_id",currentSortField:rt.sortField,currentSortDirection:rt.sortDirection,onSort:c,children:"Invocation ID"}),Q.jsx(Hn,{sortField:"$.execution_metadata.experiment_id",currentSortField:rt.sortField,currentSortDirection:rt.sortDirection,onSort:c,children:"Experiment ID"}),Q.jsx(Hn,{sortField:"$.execution_metadata.run_id",currentSortField:rt.sortField,currentSortDirection:rt.sortDirection,onSort:c,children:"Run ID"}),Q.jsx(Hn,{sortField:"$.input_metadata.row_id",currentSortField:rt.sortField,currentSortDirection:rt.sortDirection,onSort:c,children:"Row ID"}),Q.jsx(Hn,{sortField:"$.execution_metadata.rollout_id",currentSortField:rt.sortField,currentSortDirection:rt.sortDirection,onSort:c,children:"Rollout ID"}),Q.jsx(Hn,{sortField:"$.input_metadata.completion_params.model",currentSortField:rt.sortField,currentSortDirection:rt.sortDirection,onSort:c,children:"Model"}),Q.jsx(Hn,{sortField:"$.evaluation_result.score",currentSortField:rt.sortField,currentSortDirection:rt.sortDirection,onSort:c,children:"Score"}),Q.jsx(Hn,{sortField:"created_at",currentSortField:rt.sortField,currentSortDirection:rt.sortDirection,onSort:c,children:"Created"})]})}),Q.jsx(FN,{currentPage:rt.currentPage,pageSize:rt.pageSize})]})})]})});function qn(e){return e.map(t=>String(t)).join("||")}function $u(e,t){return t.map(A=>e[A])}function Ju(e){if(typeof e=="number"&&Number.isFinite(e))return e;const t=Number(e);return Number.isFinite(t)?t:null}function qu(e,t,A){return typeof A=="function"?A(e,t):A==="sum"?e.reduce((n,i)=>n+i,0):A==="avg"?e.length===0?0:e.reduce((n,i)=>n+i,0)/e.length:A==="min"?e.length===0?0:Math.min(...e):A==="max"?e.length===0?0:Math.max(...e):t.length}function bE({data:e,rowFields:t,columnFields:A,valueField:n,aggregator:i="count",filter:s}){const c=(s?e.filter(s):e).filter(C=>t.every(U=>C[U]!==void 0)&&A.every(U=>C[U]!==void 0)),u=[],h=new Set,d=[],p=new Set;for(const C of c){const U=$u(C,t),E=qn(U);h.has(E)||(h.add(E),u.push(U));const H=$u(C,A),F=qn(H);p.has(F)||(p.add(F),d.push(H))}u.sort((C,U)=>qn(C).localeCompare(qn(U))),d.sort((C,U)=>qn(C).localeCompare(qn(U)));const m={},v={},w={};for(const C of u){const U=qn(C);m[U]={},v[U]=0}for(const C of d){const U=qn(C);w[U]=0}const b={};for(const C of c){const U=qn($u(C,t)),E=qn($u(C,A));b[U]||(b[U]={}),b[U][E]||(b[U][E]=[]),b[U][E].push(C)}for(const C of Object.keys(b))for(const U of Object.keys(b[C])){const E=b[C][U],H=[];if(n!=null)for(const D of E){const R=Ju(D[n]);R!=null&&H.push(R)}const F=qu(H,E,i);m[C][U]={value:F,records:E}}for(const C of Object.keys(m)){const U=[],E=[],H=b[C]??{};for(const F of Object.keys(H)){const D=H[F];if(U.push(...D),n!=null)for(const R of D){const z=Ju(R[n]);z!=null&&E.push(z)}}v[C]=qu(E,U,i)}for(const C of Object.keys(w)){const U=[],E=[];for(const H of Object.keys(b))if(b[H][C]&&(U.push(...b[H][C]),n!=null))for(const F of b[H][C]){const D=Ju(F[n]);D!=null&&E.push(D)}w[C]=qu(E,U,i)}let _;{const C=c,U=[];if(n!=null)for(const E of C){const H=Ju(E[n]);H!=null&&U.push(H)}_=qu(U,C,i)}return{rowKeyTuples:u,colKeyTuples:d,cells:m,rowTotals:v,colTotals:w,grandTotal:_}}function Zp(e){return e.map(t=>String(t)).join("||")}function HN({data:e,rowFields:t,columnFields:A,valueField:n,aggregator:i="count",showRowTotals:s=!0,showColumnTotals:o=!0,className:c="",formatter:u=p=>p.toLocaleString(void 0,{maximumFractionDigits:3}),emptyValue:h="-",filter:d}){const{rowKeyTuples:p,colKeyTuples:m,cells:v,rowTotals:w,colTotals:b,grandTotal:_}=bE({data:e,rowFields:t,columnFields:A,valueField:n,aggregator:i,filter:d});return Q.jsx(eN,{className:c,children:Q.jsxs("table",{className:"w-full min-w-max",children:[Q.jsx(BE,{children:Q.jsxs("tr",{children:[t.map(C=>Q.jsx(Wf,{className:"bg-blue-50",children:Q.jsx("div",{className:"text-xs font-medium text-blue-700",children:String(C)})},String(C))),m.map((C,U)=>Q.jsx(Wf,{align:"right",nowrap:!0,className:A.length>0?"bg-green-50":"bg-gray-50",children:Q.jsx("div",{className:`text-xs font-medium ${A.length>0?"text-green-700":"text-gray-700"}`,children:C.map(E=>String(E??"")).join(" / ")})},`col-${U}`)),s&&Q.jsx(Wf,{align:"right",className:"bg-gray-100 border-l-2 border-l-gray-300",children:Q.jsx("div",{className:"text-xs font-semibold text-gray-900",children:"Total"})})]})}),Q.jsxs(mE,{children:[p.map((C,U)=>{const E=Zp(C);return Q.jsxs(kC,{className:"text-xs hover:bg-gray-50",children:[C.map((H,F)=>Q.jsx(We,{nowrap:!0,className:"bg-blue-50",children:Q.jsx("div",{className:"font-medium text-blue-900",children:String(H??"")})},`rh-${F}`)),m.map((H,F)=>{const D=Zp(H),R=v[E]?.[D],z=R?u(R.value):h;return Q.jsx(We,{align:"right",nowrap:!0,className:"bg-white",children:Q.jsx("div",{className:"font-mono text-sm",children:z})},`c-${F}`)}),s&&Q.jsx(We,{align:"right",nowrap:!0,medium:!0,className:"bg-gray-100 border-l-2 border-l-gray-300",children:Q.jsx("div",{className:"text-xs font-semibold text-gray-900",children:u(w[E]??0)})})]},`row-${U}`)}),o&&Q.jsxs(kC,{gray:!0,children:[Q.jsx(We,{colSpan:Math.max(1,t.length),semibold:!0,className:"bg-gray-100 border-t-2 border-gray-300",children:Q.jsx("div",{className:"text-xs font-semibold text-gray-900",children:"Total"})}),m.map((C,U)=>{const E=Zp(C);return Q.jsx(We,{align:"right",nowrap:!0,medium:!0,className:"bg-gray-100 border-t-2 border-gray-300",children:Q.jsx("div",{className:"text-xs font-semibold text-gray-900",children:u(b[E]??0)})},`ct-${U}`)}),s&&Q.jsx(We,{align:"right",nowrap:!0,semibold:!0,className:"bg-gray-200 border-t-0",children:Q.jsx("div",{className:"text-sm font-bold text-gray-900",children:u(_)})})]})]})]})})}/*! + `,style:{boxShadow:te.input.shadow},children:[Q.jsx("span",{className:t?"text-gray-900":"text-gray-400",title:N?N.label:n,children:N?N.label:n}),Q.jsx("svg",{className:`w-4 h-4 text-gray-400 transition-transform ${u?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:Q.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),u&&Q.jsxs("div",{className:`absolute z-50 mt-1 ${te.input.base} max-h-60 overflow-x-hidden ${v==="right"?"right-0":"left-0"}`,style:{width:b,right:v==="right"?"0":void 0,left:v==="left"?"0":void 0,boxShadow:te.input.shadow},children:[Q.jsx("div",{className:"p-2 border-b border-gray-200 rounded-t-md",style:{boxShadow:te.input.shadow},children:Q.jsx("input",{ref:H,type:"text",value:d,onChange:Y=>p(Y.target.value),onKeyDown:D,placeholder:"Search...",className:`${te.input.base} ${te.input.size.sm} w-full`,style:{boxShadow:te.input.shadow},role:"searchbox","aria-label":"Search options"})}),Q.jsx("div",{ref:J,className:"max-h-48 overflow-y-auto overflow-x-hidden",role:"listbox","aria-label":"Options",onScroll:tt,children:G>0?Q.jsxs(Q.Fragment,{children:[j>0&&Q.jsx("div",{style:{height:j}}),m.slice(ct,T).map((Y,ut)=>{const lt=ct+ut;return Q.jsx("div",{onClick:()=>F(Y.value),onMouseEnter:()=>U(lt),className:`px-3 py-2 text-xs font-medium cursor-pointer hover:bg-gray-100 text-gray-700 border-b border-gray-100 last:border-b-0 ${C===lt?"bg-gray-100":""}`,role:"option","aria-selected":C===lt,"aria-label":Y.label,tabIndex:-1,style:{height:st},title:Y.label,children:Q.jsx("div",{className:"overflow-x-auto whitespace-nowrap",children:Y.label})},Y.value)}),At>0&&Q.jsx("div",{style:{height:At}})]}):Q.jsx("div",{className:"px-3 py-2 text-xs font-medium text-gray-500",children:"No options found"})})]})]})});Ds.displayName="SearchableSelect";const QN=({filter:e,onUpdate:t})=>{if((e.type||"text")==="date")return Q.jsxs("div",{className:"flex space-x-2",children:[Q.jsx("input",{type:"date",value:e.value,onChange:d=>t({value:d.target.value}),className:`${te.input.base} ${te.input.size.sm} ${te.width.sm}`,style:{boxShadow:te.input.shadow}}),e.operator==="between"&&Q.jsx("input",{type:"date",value:e.value2||"",onChange:d=>t({value2:d.target.value}),className:`${te.input.base} ${te.input.size.sm} ${te.width.sm}`,placeholder:"End date",style:{boxShadow:te.input.shadow}})]});const[n,i]=S.useState(e.value||""),s=S.useRef(null);S.useEffect(()=>{i(e.value||"")},[e.value]);const o=d=>{s.current&&clearTimeout(s.current),t({value:d})},c=d=>{const p=d.target.value;i(p),s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{t({value:p})},250)},u=d=>{d.key==="Enter"&&o(n)},h=()=>o(n);return Q.jsx("input",{type:"text",value:n,onChange:c,onKeyDown:u,onBlur:h,placeholder:"Value",className:`${te.input.base} ${te.input.size.sm} ${te.width.sm}`,style:{boxShadow:te.input.shadow}})},vE=e=>e.toLowerCase().includes("date")||e.toLowerCase().includes("time")||e.toLowerCase().includes("created")||e.toLowerCase().includes("updated"),zC=e=>vE(e)?"date":"text",UN=(e,t)=>vE(e)?[{value:">=",label:"on or after"},{value:"<=",label:"on or before"},{value:"==",label:"on"},{value:"!=",label:"not on"},{value:"between",label:"between"}]:[{value:"contains",label:"contains"},{value:"!contains",label:"not contains"},{value:"==",label:"equals"},{value:"!=",label:"not equals"},{value:">",label:"greater than"},{value:"<",label:"less than"},{value:">=",label:"greater than or equal"},{value:"<=",label:"less than or equal"}],vh=e=>{if(e.length!==0)return t=>e.every(A=>A.filters.length===0?!0:A.logic==="OR"?A.filters.some(n=>VC(n,t)):A.filters.every(n=>VC(n,t)))},VC=(e,t)=>{if(!e.field||!e.value)return!0;const A=t[e.field],n=e.value,i=e.value2;if(e.type==="date"||e.type==="date-range"){const s=new Date(A),o=new Date(n);if(isNaN(s.getTime())||isNaN(o.getTime()))return!0;switch(e.operator){case"==":return s.toDateString()===o.toDateString();case"!=":return s.toDateString()!==o.toDateString();case">=":return s>=o;case"<=":return s<=o;case"between":if(i){const c=new Date(i);if(!isNaN(c.getTime()))return s>=o&&s<=c}return!0;default:return!0}}switch(e.operator){case"==":return String(A)===n;case"!=":return String(A)!==n;case">":return Number(A)>Number(n);case"<":return Number(A)=":return Number(A)>=Number(n);case"<=":return Number(A)<=Number(n);case"contains":return String(A).toLowerCase().includes(n.toLowerCase());case"!contains":return!String(A).toLowerCase().includes(n.toLowerCase());default:return!0}},EN=({filters:e,onFiltersChange:t,availableKeys:A,title:n="Filters"})=>{const i=S.useCallback(()=>{t([...e,{logic:"AND",filters:[]}])},[e,t]),s=S.useCallback(p=>{t(e.filter((m,v)=>v!==p))},[e,t]),o=S.useCallback((p,m)=>{const v=[...e];v[p]={...v[p],logic:m},t(v)},[e,t]),c=S.useCallback(p=>{const m=[...e];m[p].filters.push({field:"",operator:"contains",value:"",type:"text"}),t(m)},[e,t]),u=S.useCallback((p,m)=>{const v=[...e];v[p].filters.splice(m,1),t(v)},[e,t]),h=S.useCallback((p,m,v)=>{const w=[...e];w[p].filters[m]={...w[p].filters[m],...v},t(w)},[e,t]),d=S.useMemo(()=>A.map(p=>({value:p,label:p})),[A]);return Q.jsxs("div",{className:"mb-3",children:[Q.jsxs("div",{className:"flex items-center justify-between mb-2",children:[Q.jsx("h3",{className:"text-xs font-semibold text-gray-700",children:n}),e.length>0&&Q.jsx(Je,{onClick:i,size:"sm",variant:"secondary",children:"+ Add Filter Group"})]}),Q.jsxs("div",{className:"space-y-2",children:[e.map((p,m)=>Q.jsxs("div",{className:`pt-2 ${m>0?"border-t border-gray-200 mt-2":""}`,children:[Q.jsxs("div",{className:"flex items-center justify-between mb-2",children:[Q.jsxs("div",{className:"flex items-center gap-2",children:[Q.jsxs("span",{className:"text-xs font-medium text-gray-600",children:["Group ",m+1]}),Q.jsx(Ds,{value:p.logic,onChange:v=>o(m,v),options:[{value:"AND",label:"AND (all filters must match)"},{value:"OR",label:"OR (any filter can match)"}],size:"sm",className:"min-w-40"})]}),Q.jsx(Je,{onClick:()=>s(m),size:"sm",variant:"secondary",children:"Remove Group"})]}),Q.jsxs("div",{className:"space-y-2",children:[p.filters.map((v,w)=>{const b=v.type||zC(v.field),_=UN(b);return Q.jsxs("div",{className:"flex items-center gap-2",children:[Q.jsx(Ds,{value:v.field,onChange:C=>{const U=zC(C);h(m,w,{field:C,type:U,operator:_[0]?.value||"contains"})},options:d,placeholder:"Select field...",size:"sm",className:"min-w-40"}),Q.jsx(Ds,{value:v.operator,onChange:C=>h(m,w,{operator:C}),options:_,size:"sm",className:"min-w-36"}),Q.jsx(QN,{filter:v,onUpdate:C=>h(m,w,C)}),Q.jsx(Je,{onClick:()=>u(m,w),size:"sm",variant:"secondary",children:"Remove"})]},w)}),Q.jsx("div",{children:Q.jsx(Je,{onClick:()=>c(m),size:"sm",variant:"secondary",children:"+ Add Filter to Group"})})]})]},m)),e.length===0&&Q.jsx("div",{className:"flex justify-center py-4",children:Q.jsx(Je,{onClick:i,size:"sm",variant:"primary",children:"+ Add Filter Group"})})]})]})},wE=mA.memo(EN),FN=Ae(({currentPage:e,pageSize:t})=>{const A=(e-1)*t,n=A+t,s=rt.filteredOriginalDataset.slice(A,n);return Q.jsx(mE,{children:s.map((o,c)=>Q.jsx(xN,{row:o,index:A+c},o.execution_metadata?.rollout_id))})}),SN=Ae(()=>{const e=rt.filteredOriginalDataset.length,t=Math.ceil(e/rt.pageSize),A=(rt.currentPage-1)*rt.pageSize+1,n=Math.min(rt.currentPage*rt.pageSize,e),i=u=>{rt.setCurrentPage(Math.max(1,Math.min(u,t)))},s=u=>{rt.setPageSize(u)},o=u=>{rt.updateFilterConfig(u)},c=u=>{rt.handleSortFieldClick(u)};return Q.jsxs("div",{className:"bg-white border border-gray-200",children:[Q.jsxs("div",{className:"px-3 py-3 border-b border-gray-200 bg-white",children:[Q.jsx("div",{className:"flex items-center justify-between",children:Q.jsxs("div",{className:"flex items-center gap-4",children:[Q.jsx("h3",{className:"text-sm font-medium text-gray-700",children:"Table Filters"}),Q.jsx("div",{className:"text-xs text-gray-600",children:rt.filterConfig.length>0?Q.jsxs(Q.Fragment,{children:["Showing ",e," of ",rt.sortedDataset.length," rows",e!==rt.sortedDataset.length&&Q.jsx("span",{className:"text-blue-600 ml-1",children:"(filtered)"})]}):`Showing all ${rt.sortedDataset.length} rows`})]})}),Q.jsx("div",{className:"bg-white rounded-lg",children:Q.jsx(wE,{filters:rt.filterConfig,onFiltersChange:o,availableKeys:rt.flattenedDatasetKeys,title:""})})]}),Q.jsxs("div",{className:"px-3 py-2 border-b border-gray-200 bg-gray-50 flex items-center justify-between",children:[Q.jsxs("div",{className:"flex items-center gap-4",children:[Q.jsxs("div",{className:"text-xs text-gray-600",children:["Showing ",A,"-",n," of ",e," rows"]}),Q.jsxs("div",{className:"flex items-center gap-2",children:[Q.jsx("label",{className:"text-xs text-gray-600",children:"Page size:"}),Q.jsxs(ov,{value:rt.pageSize,onChange:u=>s(Number(u.target.value)),size:"sm",children:[Q.jsx("option",{value:25,children:"25"}),Q.jsx("option",{value:50,children:"50"}),Q.jsx("option",{value:100,children:"100"}),Q.jsx("option",{value:200,children:"200"})]})]})]}),Q.jsxs("div",{className:"flex items-center gap-2",children:[Q.jsx(Je,{onClick:()=>i(1),disabled:rt.currentPage===1,size:"sm",variant:"secondary",children:"First"}),Q.jsx(Je,{onClick:()=>i(rt.currentPage-1),disabled:rt.currentPage===1,size:"sm",variant:"secondary",children:"Previous"}),Q.jsxs("span",{className:"text-xs text-gray-600 px-2",children:["Page ",rt.currentPage," of ",t]}),Q.jsx(Je,{onClick:()=>i(rt.currentPage+1),disabled:rt.currentPage===t,size:"sm",variant:"secondary",children:"Next"}),Q.jsx(Je,{onClick:()=>i(t),disabled:rt.currentPage===t,size:"sm",variant:"secondary",children:"Last"})]})]}),e===0?Q.jsxs("div",{className:"px-3 py-6 text-center text-xs text-gray-600",children:[Q.jsx("div",{className:"mb-2",children:"No rows match your current filters."}),Q.jsx(Je,{onClick:()=>o([]),size:"sm",variant:"secondary",children:"Clear filters"})]}):Q.jsx("div",{className:"overflow-x-auto",children:Q.jsxs("table",{className:"w-full min-w-max",children:[Q.jsx(BE,{children:Q.jsxs("tr",{children:[Q.jsx(Wf,{className:"w-8",children:" "}),Q.jsx(Hn,{sortField:"$.eval_metadata.name",currentSortField:rt.sortField,currentSortDirection:rt.sortDirection,onSort:c,children:"Name"}),Q.jsx(Hn,{sortField:"$.eval_metadata.status.code",currentSortField:rt.sortField,currentSortDirection:rt.sortDirection,onSort:c,children:"Eval Status"}),Q.jsx(Hn,{sortField:"$.rollout_status.code",currentSortField:rt.sortField,currentSortDirection:rt.sortDirection,onSort:c,children:"Rollout Status"}),Q.jsx(Hn,{sortField:"$.execution_metadata.invocation_id",currentSortField:rt.sortField,currentSortDirection:rt.sortDirection,onSort:c,children:"Invocation ID"}),Q.jsx(Hn,{sortField:"$.execution_metadata.experiment_id",currentSortField:rt.sortField,currentSortDirection:rt.sortDirection,onSort:c,children:"Experiment ID"}),Q.jsx(Hn,{sortField:"$.execution_metadata.run_id",currentSortField:rt.sortField,currentSortDirection:rt.sortDirection,onSort:c,children:"Run ID"}),Q.jsx(Hn,{sortField:"$.input_metadata.row_id",currentSortField:rt.sortField,currentSortDirection:rt.sortDirection,onSort:c,children:"Row ID"}),Q.jsx(Hn,{sortField:"$.execution_metadata.rollout_id",currentSortField:rt.sortField,currentSortDirection:rt.sortDirection,onSort:c,children:"Rollout ID"}),Q.jsx(Hn,{sortField:"$.input_metadata.completion_params.model",currentSortField:rt.sortField,currentSortDirection:rt.sortDirection,onSort:c,children:"Model"}),Q.jsx(Hn,{sortField:"$.evaluation_result.score",currentSortField:rt.sortField,currentSortDirection:rt.sortDirection,onSort:c,children:"Score"}),Q.jsx(Hn,{sortField:"created_at",currentSortField:rt.sortField,currentSortDirection:rt.sortDirection,onSort:c,children:"Created"})]})}),Q.jsx(FN,{currentPage:rt.currentPage,pageSize:rt.pageSize})]})})]})});function qn(e){return e.map(t=>String(t)).join("||")}function $u(e,t){return t.map(A=>e[A])}function Ju(e){if(typeof e=="number"&&Number.isFinite(e))return e;const t=Number(e);return Number.isFinite(t)?t:null}function qu(e,t,A){return typeof A=="function"?A(e,t):A==="sum"?e.reduce((n,i)=>n+i,0):A==="avg"?e.length===0?0:e.reduce((n,i)=>n+i,0)/e.length:A==="min"?e.length===0?0:Math.min(...e):A==="max"?e.length===0?0:Math.max(...e):t.length}function bE({data:e,rowFields:t,columnFields:A,valueField:n,aggregator:i="count",filter:s}){const c=(s?e.filter(s):e).filter(C=>t.every(U=>C[U]!==void 0)&&A.every(U=>C[U]!==void 0)),u=[],h=new Set,d=[],p=new Set;for(const C of c){const U=$u(C,t),E=qn(U);h.has(E)||(h.add(E),u.push(U));const H=$u(C,A),F=qn(H);p.has(F)||(p.add(F),d.push(H))}u.sort((C,U)=>qn(C).localeCompare(qn(U)));const m={},v={},w={};for(const C of u){const U=qn(C);m[U]={},v[U]=0}for(const C of d){const U=qn(C);w[U]=0}const b={};for(const C of c){const U=qn($u(C,t)),E=qn($u(C,A));b[U]||(b[U]={}),b[U][E]||(b[U][E]=[]),b[U][E].push(C)}for(const C of Object.keys(b))for(const U of Object.keys(b[C])){const E=b[C][U],H=[];if(n!=null)for(const D of E){const R=Ju(D[n]);R!=null&&H.push(R)}const F=qu(H,E,i);m[C][U]={value:F,records:E}}for(const C of Object.keys(m)){const U=[],E=[],H=b[C]??{};for(const F of Object.keys(H)){const D=H[F];if(U.push(...D),n!=null)for(const R of D){const z=Ju(R[n]);z!=null&&E.push(z)}}v[C]=qu(E,U,i)}for(const C of Object.keys(w)){const U=[],E=[];for(const H of Object.keys(b))if(b[H][C]&&(U.push(...b[H][C]),n!=null))for(const F of b[H][C]){const D=Ju(F[n]);D!=null&&E.push(D)}w[C]=qu(E,U,i)}d.sort((C,U)=>{const E=qn(C),H=qn(U),F=w[E]??0;return(w[H]??0)-F});let _;{const C=c,U=[];if(n!=null)for(const E of C){const H=Ju(E[n]);H!=null&&U.push(H)}_=qu(U,C,i)}return{rowKeyTuples:u,colKeyTuples:d,cells:m,rowTotals:v,colTotals:w,grandTotal:_}}function Zp(e){return e.map(t=>String(t)).join("||")}function HN({data:e,rowFields:t,columnFields:A,valueField:n,aggregator:i="count",showRowTotals:s=!0,showColumnTotals:o=!0,className:c="",formatter:u=p=>p.toLocaleString(void 0,{maximumFractionDigits:3}),emptyValue:h="-",filter:d}){const{rowKeyTuples:p,colKeyTuples:m,cells:v,rowTotals:w,colTotals:b,grandTotal:_}=bE({data:e,rowFields:t,columnFields:A,valueField:n,aggregator:i,filter:d});return Q.jsx(eN,{className:c,children:Q.jsxs("table",{className:"w-full min-w-max",children:[Q.jsx(BE,{children:Q.jsxs("tr",{children:[t.map(C=>Q.jsx(Wf,{className:"bg-blue-50",children:Q.jsx("div",{className:"text-xs font-medium text-blue-700",children:String(C)})},String(C))),m.map((C,U)=>Q.jsx(Wf,{align:"right",nowrap:!0,className:A.length>0?"bg-green-50":"bg-gray-50",children:Q.jsx("div",{className:`text-xs font-medium ${A.length>0?"text-green-700":"text-gray-700"}`,children:C.map(E=>String(E??"")).join(" / ")})},`col-${U}`)),s&&Q.jsx(Wf,{align:"right",className:"bg-gray-100 border-l-2 border-l-gray-300",children:Q.jsx("div",{className:"text-xs font-semibold text-gray-900",children:"Total"})})]})}),Q.jsxs(mE,{children:[p.map((C,U)=>{const E=Zp(C);return Q.jsxs(kC,{className:"text-xs hover:bg-gray-50",children:[C.map((H,F)=>Q.jsx(We,{nowrap:!0,className:"bg-blue-50",children:Q.jsx("div",{className:"font-medium text-blue-900",children:String(H??"")})},`rh-${F}`)),m.map((H,F)=>{const D=Zp(H),R=v[E]?.[D],z=R?u(R.value):h;return Q.jsx(We,{align:"right",nowrap:!0,className:"bg-white",children:Q.jsx("div",{className:"font-mono text-sm",children:z})},`c-${F}`)}),s&&Q.jsx(We,{align:"right",nowrap:!0,medium:!0,className:"bg-gray-100 border-l-2 border-l-gray-300",children:Q.jsx("div",{className:"text-xs font-semibold text-gray-900",children:u(w[E]??0)})})]},`row-${U}`)}),o&&Q.jsxs(kC,{gray:!0,children:[Q.jsx(We,{colSpan:Math.max(1,t.length),semibold:!0,className:"bg-gray-100 border-t-2 border-gray-300",children:Q.jsx("div",{className:"text-xs font-semibold text-gray-900",children:"Total"})}),m.map((C,U)=>{const E=Zp(C);return Q.jsx(We,{align:"right",nowrap:!0,medium:!0,className:"bg-gray-100 border-t-2 border-gray-300",children:Q.jsx("div",{className:"text-xs font-semibold text-gray-900",children:u(b[E]??0)})},`ct-${U}`)}),s&&Q.jsx(We,{align:"right",nowrap:!0,semibold:!0,className:"bg-gray-200 border-t-0",children:Q.jsx("div",{className:"text-sm font-bold text-gray-900",children:u(_)})})]})]})]})})}/*! * @kurkle/color v0.3.4 * https://github.com/kurkle/color#readme * (c) 2024 Jukka Kurkela @@ -133,4 +133,4 @@ PERFORMANCE OF THIS SOFTWARE. display: none !important; }`,j6=function(e){G6(e,"."+Tm+V6+lQ+` .`+Dm+P6+lQ)},G6=function(e,t){var A=e.ownerDocument;if(A){var n=A.createElement("style");n.textContent=t,e.appendChild(n)}},vS=function(){function e(){}return e.getOrigin=function(t){var A=e._link;return A?(A.href=t,A.href=A.href,A.protocol+A.hostname+A.port):"about:blank"},e.isSameOrigin=function(t){return e.getOrigin(t)===e._origin},e.setContext=function(t){e._link=t.document.createElement("a"),e._origin=e.getOrigin(t.location.href)},e._origin="about:blank",e}(),X6=function(){function e(t,A){this.context=t,this._options=A,this._cache={}}return e.prototype.addImage=function(t){var A=Promise.resolve();return this.has(t)||(EB(t)||$6(t))&&(this._cache[t]=this.loadImage(t)).catch(function(){}),A},e.prototype.match=function(t){return this._cache[t]},e.prototype.loadImage=function(t){return UA(this,void 0,void 0,function(){var A,n,i,s,o=this;return dA(this,function(c){switch(c.label){case 0:return A=vS.isSameOrigin(t),n=!UB(t)&&this._options.useCORS===!0&&rA.SUPPORT_CORS_IMAGES&&!A,i=!UB(t)&&!A&&!EB(t)&&typeof this._options.proxy=="string"&&rA.SUPPORT_CORS_XHR&&!n,!A&&this._options.allowTaint===!1&&!UB(t)&&!EB(t)&&!i&&!n?[2]:(s=t,i?[4,this.proxy(s)]:[3,2]);case 1:s=c.sent(),c.label=2;case 2:return this.context.logger.debug("Added image "+t.substring(0,256)),[4,new Promise(function(u,h){var d=new Image;d.onload=function(){return u(d)},d.onerror=h,(J6(s)||n)&&(d.crossOrigin="anonymous"),d.src=s,d.complete===!0&&setTimeout(function(){return u(d)},500),o._options.imageTimeout>0&&setTimeout(function(){return h("Timed out ("+o._options.imageTimeout+"ms) loading image")},o._options.imageTimeout)})];case 3:return[2,c.sent()]}})})},e.prototype.has=function(t){return typeof this._cache[t]<"u"},e.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},e.prototype.proxy=function(t){var A=this,n=this._options.proxy;if(!n)throw new Error("No proxy defined");var i=t.substring(0,256);return new Promise(function(s,o){var c=rA.SUPPORT_RESPONSE_TYPE?"blob":"text",u=new XMLHttpRequest;u.onload=function(){if(u.status===200)if(c==="text")s(u.response);else{var p=new FileReader;p.addEventListener("load",function(){return s(p.result)},!1),p.addEventListener("error",function(m){return o(m)},!1),p.readAsDataURL(u.response)}else o("Failed to proxy resource "+i+" with status code "+u.status)},u.onerror=o;var h=n.indexOf("?")>-1?"&":"?";if(u.open("GET",""+n+h+"url="+encodeURIComponent(t)+"&responseType="+c),c!=="text"&&u instanceof XMLHttpRequest&&(u.responseType=c),A._options.imageTimeout){var d=A._options.imageTimeout;u.timeout=d,u.ontimeout=function(){return o("Timed out ("+d+"ms) proxying "+i)}}u.send()})},e}(),Z6=/^data:image\/svg\+xml/i,Y6=/^data:image\/.*;base64,/i,W6=/^data:image\/.*/i,$6=function(e){return rA.SUPPORT_SVG_DRAWING||!q6(e)},UB=function(e){return W6.test(e)},J6=function(e){return Y6.test(e)},EB=function(e){return e.substr(0,4)==="blob"},q6=function(e){return e.substr(-3).toLowerCase()==="svg"||Z6.test(e)},ht=function(){function e(t,A){this.type=0,this.x=t,this.y=A}return e.prototype.add=function(t,A){return new e(this.x+t,this.y+A)},e}(),Xa=function(e,t,A){return new ht(e.x+(t.x-e.x)*A,e.y+(t.y-e.y)*A)},Df=function(){function e(t,A,n,i){this.type=1,this.start=t,this.startControl=A,this.endControl=n,this.end=i}return e.prototype.subdivide=function(t,A){var n=Xa(this.start,this.startControl,t),i=Xa(this.startControl,this.endControl,t),s=Xa(this.endControl,this.end,t),o=Xa(n,i,t),c=Xa(i,s,t),u=Xa(o,c,t);return A?new e(this.start,n,o,u):new e(u,c,s,this.end)},e.prototype.add=function(t,A){return new e(this.start.add(t,A),this.startControl.add(t,A),this.endControl.add(t,A),this.end.add(t,A))},e.prototype.reverse=function(){return new e(this.end,this.endControl,this.startControl,this.start)},e}(),bn=function(e){return e.type===1},t8=function(){function e(t){var A=t.styles,n=t.bounds,i=Rl(A.borderTopLeftRadius,n.width,n.height),s=i[0],o=i[1],c=Rl(A.borderTopRightRadius,n.width,n.height),u=c[0],h=c[1],d=Rl(A.borderBottomRightRadius,n.width,n.height),p=d[0],m=d[1],v=Rl(A.borderBottomLeftRadius,n.width,n.height),w=v[0],b=v[1],_=[];_.push((s+u)/n.width),_.push((w+p)/n.width),_.push((o+b)/n.height),_.push((h+m)/n.height);var C=Math.max.apply(Math,_);C>1&&(s/=C,o/=C,u/=C,h/=C,p/=C,m/=C,w/=C,b/=C);var U=n.width-u,E=n.height-m,H=n.width-p,F=n.height-b,D=A.borderTopWidth,R=A.borderRightWidth,z=A.borderBottomWidth,N=A.borderLeftWidth,J=ie(A.paddingTop,t.bounds.width),et=ie(A.paddingRight,t.bounds.width),nt=ie(A.paddingBottom,t.bounds.width),ot=ie(A.paddingLeft,t.bounds.width);this.topLeftBorderDoubleOuterBox=s>0||o>0?ge(n.left+N/3,n.top+D/3,s-N/3,o-D/3,jt.TOP_LEFT):new ht(n.left+N/3,n.top+D/3),this.topRightBorderDoubleOuterBox=s>0||o>0?ge(n.left+U,n.top+D/3,u-R/3,h-D/3,jt.TOP_RIGHT):new ht(n.left+n.width-R/3,n.top+D/3),this.bottomRightBorderDoubleOuterBox=p>0||m>0?ge(n.left+H,n.top+E,p-R/3,m-z/3,jt.BOTTOM_RIGHT):new ht(n.left+n.width-R/3,n.top+n.height-z/3),this.bottomLeftBorderDoubleOuterBox=w>0||b>0?ge(n.left+N/3,n.top+F,w-N/3,b-z/3,jt.BOTTOM_LEFT):new ht(n.left+N/3,n.top+n.height-z/3),this.topLeftBorderDoubleInnerBox=s>0||o>0?ge(n.left+N*2/3,n.top+D*2/3,s-N*2/3,o-D*2/3,jt.TOP_LEFT):new ht(n.left+N*2/3,n.top+D*2/3),this.topRightBorderDoubleInnerBox=s>0||o>0?ge(n.left+U,n.top+D*2/3,u-R*2/3,h-D*2/3,jt.TOP_RIGHT):new ht(n.left+n.width-R*2/3,n.top+D*2/3),this.bottomRightBorderDoubleInnerBox=p>0||m>0?ge(n.left+H,n.top+E,p-R*2/3,m-z*2/3,jt.BOTTOM_RIGHT):new ht(n.left+n.width-R*2/3,n.top+n.height-z*2/3),this.bottomLeftBorderDoubleInnerBox=w>0||b>0?ge(n.left+N*2/3,n.top+F,w-N*2/3,b-z*2/3,jt.BOTTOM_LEFT):new ht(n.left+N*2/3,n.top+n.height-z*2/3),this.topLeftBorderStroke=s>0||o>0?ge(n.left+N/2,n.top+D/2,s-N/2,o-D/2,jt.TOP_LEFT):new ht(n.left+N/2,n.top+D/2),this.topRightBorderStroke=s>0||o>0?ge(n.left+U,n.top+D/2,u-R/2,h-D/2,jt.TOP_RIGHT):new ht(n.left+n.width-R/2,n.top+D/2),this.bottomRightBorderStroke=p>0||m>0?ge(n.left+H,n.top+E,p-R/2,m-z/2,jt.BOTTOM_RIGHT):new ht(n.left+n.width-R/2,n.top+n.height-z/2),this.bottomLeftBorderStroke=w>0||b>0?ge(n.left+N/2,n.top+F,w-N/2,b-z/2,jt.BOTTOM_LEFT):new ht(n.left+N/2,n.top+n.height-z/2),this.topLeftBorderBox=s>0||o>0?ge(n.left,n.top,s,o,jt.TOP_LEFT):new ht(n.left,n.top),this.topRightBorderBox=u>0||h>0?ge(n.left+U,n.top,u,h,jt.TOP_RIGHT):new ht(n.left+n.width,n.top),this.bottomRightBorderBox=p>0||m>0?ge(n.left+H,n.top+E,p,m,jt.BOTTOM_RIGHT):new ht(n.left+n.width,n.top+n.height),this.bottomLeftBorderBox=w>0||b>0?ge(n.left,n.top+F,w,b,jt.BOTTOM_LEFT):new ht(n.left,n.top+n.height),this.topLeftPaddingBox=s>0||o>0?ge(n.left+N,n.top+D,Math.max(0,s-N),Math.max(0,o-D),jt.TOP_LEFT):new ht(n.left+N,n.top+D),this.topRightPaddingBox=u>0||h>0?ge(n.left+Math.min(U,n.width-R),n.top+D,U>n.width+R?0:Math.max(0,u-R),Math.max(0,h-D),jt.TOP_RIGHT):new ht(n.left+n.width-R,n.top+D),this.bottomRightPaddingBox=p>0||m>0?ge(n.left+Math.min(H,n.width-N),n.top+Math.min(E,n.height-z),Math.max(0,p-R),Math.max(0,m-z),jt.BOTTOM_RIGHT):new ht(n.left+n.width-R,n.top+n.height-z),this.bottomLeftPaddingBox=w>0||b>0?ge(n.left+N,n.top+Math.min(F,n.height-z),Math.max(0,w-N),Math.max(0,b-z),jt.BOTTOM_LEFT):new ht(n.left+N,n.top+n.height-z),this.topLeftContentBox=s>0||o>0?ge(n.left+N+ot,n.top+D+J,Math.max(0,s-(N+ot)),Math.max(0,o-(D+J)),jt.TOP_LEFT):new ht(n.left+N+ot,n.top+D+J),this.topRightContentBox=u>0||h>0?ge(n.left+Math.min(U,n.width+N+ot),n.top+D+J,U>n.width+N+ot?0:u-N+ot,h-(D+J),jt.TOP_RIGHT):new ht(n.left+n.width-(R+et),n.top+D+J),this.bottomRightContentBox=p>0||m>0?ge(n.left+Math.min(H,n.width-(N+ot)),n.top+Math.min(E,n.height+D+J),Math.max(0,p-(R+et)),m-(z+nt),jt.BOTTOM_RIGHT):new ht(n.left+n.width-(R+et),n.top+n.height-(z+nt)),this.bottomLeftContentBox=w>0||b>0?ge(n.left+N+ot,n.top+F,Math.max(0,w-(N+ot)),b-(z+nt),jt.BOTTOM_LEFT):new ht(n.left+N+ot,n.top+n.height-(z+nt))}return e}(),jt;(function(e){e[e.TOP_LEFT=0]="TOP_LEFT",e[e.TOP_RIGHT=1]="TOP_RIGHT",e[e.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",e[e.BOTTOM_LEFT=3]="BOTTOM_LEFT"})(jt||(jt={}));var ge=function(e,t,A,n,i){var s=4*((Math.sqrt(2)-1)/3),o=A*s,c=n*s,u=e+A,h=t+n;switch(i){case jt.TOP_LEFT:return new Df(new ht(e,h),new ht(e,h-c),new ht(u-o,t),new ht(u,t));case jt.TOP_RIGHT:return new Df(new ht(e,t),new ht(e+o,t),new ht(u,h-c),new ht(u,h));case jt.BOTTOM_RIGHT:return new Df(new ht(u,t),new ht(u,t+c),new ht(e+o,h),new ht(e,h));case jt.BOTTOM_LEFT:default:return new Df(new ht(u,h),new ht(u-o,h),new ht(e,t+c),new ht(e,t))}},Mh=function(e){return[e.topLeftBorderBox,e.topRightBorderBox,e.bottomRightBorderBox,e.bottomLeftBorderBox]},e8=function(e){return[e.topLeftContentBox,e.topRightContentBox,e.bottomRightContentBox,e.bottomLeftContentBox]},Lh=function(e){return[e.topLeftPaddingBox,e.topRightPaddingBox,e.bottomRightPaddingBox,e.bottomLeftPaddingBox]},A8=function(){function e(t,A,n){this.offsetX=t,this.offsetY=A,this.matrix=n,this.type=0,this.target=6}return e}(),Mf=function(){function e(t,A){this.path=t,this.target=A,this.type=1}return e}(),n8=function(){function e(t){this.opacity=t,this.type=2,this.target=6}return e}(),i8=function(e){return e.type===0},wS=function(e){return e.type===1},r8=function(e){return e.type===2},cQ=function(e,t){return e.length===t.length?e.some(function(A,n){return A===t[n]}):!1},s8=function(e,t,A,n,i){return e.map(function(s,o){switch(o){case 0:return s.add(t,A);case 1:return s.add(t+n,A);case 2:return s.add(t+n,A+i);case 3:return s.add(t,A+i)}return s})},bS=function(){function e(t){this.element=t,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]}return e}(),yS=function(){function e(t,A){if(this.container=t,this.parent=A,this.effects=[],this.curves=new t8(this.container),this.container.styles.opacity<1&&this.effects.push(new n8(this.container.styles.opacity)),this.container.styles.transform!==null){var n=this.container.bounds.left+this.container.styles.transformOrigin[0].number,i=this.container.bounds.top+this.container.styles.transformOrigin[1].number,s=this.container.styles.transform;this.effects.push(new A8(n,i,s))}if(this.container.styles.overflowX!==0){var o=Mh(this.curves),c=Lh(this.curves);cQ(o,c)?this.effects.push(new Mf(o,6)):(this.effects.push(new Mf(o,2)),this.effects.push(new Mf(c,4)))}}return e.prototype.getEffects=function(t){for(var A=[2,3].indexOf(this.container.styles.position)===-1,n=this.parent,i=this.effects.slice(0);n;){var s=n.effects.filter(function(u){return!wS(u)});if(A||n.container.styles.position!==0||!n.parent){if(i.unshift.apply(i,s),A=[2,3].indexOf(n.container.styles.position)===-1,n.container.styles.overflowX!==0){var o=Mh(n.curves),c=Lh(n.curves);cQ(o,c)||i.unshift(new Mf(c,6))}}else i.unshift.apply(i,s);n=n.parent}return i.filter(function(u){return ze(u.target,t)})},e}(),Mm=function(e,t,A,n){e.container.elements.forEach(function(i){var s=ze(i.flags,4),o=ze(i.flags,2),c=new yS(i,e);ze(i.styles.display,2048)&&n.push(c);var u=ze(i.flags,8)?[]:n;if(s||o){var h=s||i.styles.isPositioned()?A:t,d=new bS(c);if(i.styles.isPositioned()||i.styles.opacity<1||i.styles.isTransformed()){var p=i.styles.zIndex.order;if(p<0){var m=0;h.negativeZIndex.some(function(w,b){return p>w.element.container.styles.zIndex.order?(m=b,!1):m>0}),h.negativeZIndex.splice(m,0,d)}else if(p>0){var v=0;h.positiveZIndex.some(function(w,b){return p>=w.element.container.styles.zIndex.order?(v=b+1,!1):v>0}),h.positiveZIndex.splice(v,0,d)}else h.zeroOrAutoZIndexOrTransformedOrOpacity.push(d)}else i.styles.isFloating()?h.nonPositionedFloats.push(d):h.nonPositionedInlineLevel.push(d);Mm(c,d,s?d:A,u)}else i.styles.isInlineLevel()?t.inlineLevel.push(c):t.nonInlineLevel.push(c),Mm(c,t,A,u);ze(i.flags,8)&&CS(i,u)})},CS=function(e,t){for(var A=e instanceof Sm?e.start:1,n=e instanceof Sm?e.reversed:!1,i=0;i"u"?e[0]:A},d8=function(e,t,A,n,i){var s=t[0],o=t[1],c=A[0],u=A[1];switch(e){case 2:return[new ht(Math.round(n.left),Math.round(n.top+o)),new ht(Math.round(n.left+n.width),Math.round(n.top+o)),new ht(Math.round(n.left+n.width),Math.round(u+n.top+o)),new ht(Math.round(n.left),Math.round(u+n.top+o))];case 3:return[new ht(Math.round(n.left+s),Math.round(n.top)),new ht(Math.round(n.left+s+c),Math.round(n.top)),new ht(Math.round(n.left+s+c),Math.round(n.height+n.top)),new ht(Math.round(n.left+s),Math.round(n.height+n.top))];case 1:return[new ht(Math.round(n.left+s),Math.round(n.top+o)),new ht(Math.round(n.left+s+c),Math.round(n.top+o)),new ht(Math.round(n.left+s+c),Math.round(n.top+o+u)),new ht(Math.round(n.left+s),Math.round(n.top+o+u))];default:return[new ht(Math.round(i.left),Math.round(i.top)),new ht(Math.round(i.left+i.width),Math.round(i.top)),new ht(Math.round(i.left+i.width),Math.round(i.height+i.top)),new ht(Math.round(i.left),Math.round(i.height+i.top))]}},g8="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",fQ="Hidden Text",p8=function(){function e(t){this._data={},this._document=t}return e.prototype.parseMetrics=function(t,A){var n=this._document.createElement("div"),i=this._document.createElement("img"),s=this._document.createElement("span"),o=this._document.body;n.style.visibility="hidden",n.style.fontFamily=t,n.style.fontSize=A,n.style.margin="0",n.style.padding="0",n.style.whiteSpace="nowrap",o.appendChild(n),i.src=g8,i.width=1,i.height=1,i.style.margin="0",i.style.padding="0",i.style.verticalAlign="baseline",s.style.fontFamily=t,s.style.fontSize=A,s.style.margin="0",s.style.padding="0",s.appendChild(this._document.createTextNode(fQ)),n.appendChild(s),n.appendChild(i);var c=i.offsetTop-s.offsetTop+2;n.removeChild(s),n.appendChild(this._document.createTextNode(fQ)),n.style.lineHeight="normal",i.style.verticalAlign="super";var u=i.offsetTop-n.offsetTop+2;return o.removeChild(n),{baseline:c,middle:u}},e.prototype.getMetrics=function(t,A){var n=t+" "+A;return typeof this._data[n]>"u"&&(this._data[n]=this.parseMetrics(t,A)),this._data[n]},e}(),xS=function(){function e(t,A){this.context=t,this.options=A}return e}(),B8=1e4,m8=function(e){Vn(t,e);function t(A,n){var i=e.call(this,A,n)||this;return i._activeEffects=[],i.canvas=n.canvas?n.canvas:document.createElement("canvas"),i.ctx=i.canvas.getContext("2d"),n.canvas||(i.canvas.width=Math.floor(n.width*n.scale),i.canvas.height=Math.floor(n.height*n.scale),i.canvas.style.width=n.width+"px",i.canvas.style.height=n.height+"px"),i.fontMetrics=new p8(document),i.ctx.scale(i.options.scale,i.options.scale),i.ctx.translate(-n.x,-n.y),i.ctx.textBaseline="bottom",i._activeEffects=[],i.context.logger.debug("Canvas renderer initialized ("+n.width+"x"+n.height+") with scale "+n.scale),i}return t.prototype.applyEffects=function(A){for(var n=this;this._activeEffects.length;)this.popEffect();A.forEach(function(i){return n.applyEffect(i)})},t.prototype.applyEffect=function(A){this.ctx.save(),r8(A)&&(this.ctx.globalAlpha=A.opacity),i8(A)&&(this.ctx.translate(A.offsetX,A.offsetY),this.ctx.transform(A.matrix[0],A.matrix[1],A.matrix[2],A.matrix[3],A.matrix[4],A.matrix[5]),this.ctx.translate(-A.offsetX,-A.offsetY)),wS(A)&&(this.path(A.path),this.ctx.clip()),this._activeEffects.push(A)},t.prototype.popEffect=function(){this._activeEffects.pop(),this.ctx.restore()},t.prototype.renderStack=function(A){return UA(this,void 0,void 0,function(){var n;return dA(this,function(i){switch(i.label){case 0:return n=A.element.container.styles,n.isVisible()?[4,this.renderStackContent(A)]:[3,2];case 1:i.sent(),i.label=2;case 2:return[2]}})})},t.prototype.renderNode=function(A){return UA(this,void 0,void 0,function(){return dA(this,function(n){switch(n.label){case 0:if(ze(A.container.flags,16))debugger;return A.container.styles.isVisible()?[4,this.renderNodeBackgroundAndBorders(A)]:[3,3];case 1:return n.sent(),[4,this.renderNodeContent(A)];case 2:n.sent(),n.label=3;case 3:return[2]}})})},t.prototype.renderTextWithLetterSpacing=function(A,n,i){var s=this;if(n===0)this.ctx.fillText(A.text,A.bounds.left,A.bounds.top+i);else{var o=Hv(A.text);o.reduce(function(c,u){return s.ctx.fillText(u,c,A.bounds.top+i),c+s.ctx.measureText(u).width},A.bounds.left)}},t.prototype.createFontStyle=function(A){var n=A.fontVariant.filter(function(o){return o==="normal"||o==="small-caps"}).join(""),i=C8(A.fontFamily).join(", "),s=Oc(A.fontSize)?""+A.fontSize.number+A.fontSize.unit:A.fontSize.number+"px";return[[A.fontStyle,n,A.fontWeight,s,i].join(" "),i,s]},t.prototype.renderTextNode=function(A,n){return UA(this,void 0,void 0,function(){var i,s,o,c,u,h,d,p,m=this;return dA(this,function(v){return i=this.createFontStyle(n),s=i[0],o=i[1],c=i[2],this.ctx.font=s,this.ctx.direction=n.direction===1?"rtl":"ltr",this.ctx.textAlign="left",this.ctx.textBaseline="alphabetic",u=this.fontMetrics.getMetrics(o,c),h=u.baseline,d=u.middle,p=n.paintOrder,A.textBounds.forEach(function(w){p.forEach(function(b){switch(b){case 0:m.ctx.fillStyle=Ye(n.color),m.renderTextWithLetterSpacing(w,n.letterSpacing,h);var _=n.textShadow;_.length&&w.text.trim().length&&(_.slice(0).reverse().forEach(function(C){m.ctx.shadowColor=Ye(C.color),m.ctx.shadowOffsetX=C.offsetX.number*m.options.scale,m.ctx.shadowOffsetY=C.offsetY.number*m.options.scale,m.ctx.shadowBlur=C.blur.number,m.renderTextWithLetterSpacing(w,n.letterSpacing,h)}),m.ctx.shadowColor="",m.ctx.shadowOffsetX=0,m.ctx.shadowOffsetY=0,m.ctx.shadowBlur=0),n.textDecorationLine.length&&(m.ctx.fillStyle=Ye(n.textDecorationColor||n.color),n.textDecorationLine.forEach(function(C){switch(C){case 1:m.ctx.fillRect(w.bounds.left,Math.round(w.bounds.top+h),w.bounds.width,1);break;case 2:m.ctx.fillRect(w.bounds.left,Math.round(w.bounds.top),w.bounds.width,1);break;case 3:m.ctx.fillRect(w.bounds.left,Math.ceil(w.bounds.top+d),w.bounds.width,1);break}}));break;case 1:n.webkitTextStrokeWidth&&w.text.trim().length&&(m.ctx.strokeStyle=Ye(n.webkitTextStrokeColor),m.ctx.lineWidth=n.webkitTextStrokeWidth,m.ctx.lineJoin=window.chrome?"miter":"round",m.ctx.strokeText(w.text,w.bounds.left,w.bounds.top+h)),m.ctx.strokeStyle="",m.ctx.lineWidth=0,m.ctx.lineJoin="miter";break}})}),[2]})})},t.prototype.renderReplacedElement=function(A,n,i){if(i&&A.intrinsicWidth>0&&A.intrinsicHeight>0){var s=Rh(A),o=Lh(n);this.path(o),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(i,0,0,A.intrinsicWidth,A.intrinsicHeight,s.left,s.top,s.width,s.height),this.ctx.restore()}},t.prototype.renderNodeContent=function(A){return UA(this,void 0,void 0,function(){var n,i,s,o,c,u,U,U,h,d,p,m,H,v,w,F,b,_,C,U,E,H,F;return dA(this,function(D){switch(D.label){case 0:this.applyEffects(A.getEffects(4)),n=A.container,i=A.curves,s=n.styles,o=0,c=n.textNodes,D.label=1;case 1:return o0&&ft>0&&(z=s.ctx.createPattern(F,"repeat"),s.renderRepeat(J,z,L,G))):r5(d)&&(N=FB(A,n,[null,null,null]),J=N[0],et=N[1],nt=N[2],ot=N[3],ft=N[4],st=d.position.length===0?[Ev]:d.position,L=ie(st[0],ot),G=ie(st[st.length-1],ft),q=t5(d,L,G,ot,ft),ct=q[0],T=q[1],ct>0&&T>0&&(j=s.ctx.createRadialGradient(et+L,nt+G,0,et+L,nt+G,ct),Dx(d.stops,ct*2).forEach(function(he){return j.addColorStop(he.stop,Ye(he.color))}),s.path(J),s.ctx.fillStyle=j,ct!==T?(At=A.bounds.left+.5*A.bounds.width,tt=A.bounds.top+.5*A.bounds.height,Y=T/ct,ut=1/Y,s.ctx.save(),s.ctx.translate(At,tt),s.ctx.transform(1,0,0,Y,0,0),s.ctx.translate(-At,-tt),s.ctx.fillRect(et,ut*(nt-tt)+tt,ot,ft*ut),s.ctx.restore()):s.ctx.fill())),lt.label=6;case 6:return n--,[2]}})},s=this,o=0,c=A.styles.backgroundImage.slice(0).reverse(),h.label=1;case 1:return o0?d.style!==2?[3,5]:[4,this.renderDashedDottedBorder(d.color,d.width,c,A.curves,2)]:[3,11]):[3,13];case 4:return m.sent(),[3,11];case 5:return d.style!==3?[3,7]:[4,this.renderDashedDottedBorder(d.color,d.width,c,A.curves,3)];case 6:return m.sent(),[3,11];case 7:return d.style!==4?[3,9]:[4,this.renderDoubleBorder(d.color,d.width,c,A.curves)];case 8:return m.sent(),[3,11];case 9:return[4,this.renderSolidBorder(d.color,c,A.curves)];case 10:m.sent(),m.label=11;case 11:c++,m.label=12;case 12:return u++,[3,3];case 13:return[2]}})})},t.prototype.renderDashedDottedBorder=function(A,n,i,s,o){return UA(this,void 0,void 0,function(){var c,u,h,d,p,m,v,w,b,_,C,U,E,H,F,D,F,D;return dA(this,function(R){return this.ctx.save(),c=c8(s,i),u=uQ(s,i),o===2&&(this.path(u),this.ctx.clip()),bn(u[0])?(h=u[0].start.x,d=u[0].start.y):(h=u[0].x,d=u[0].y),bn(u[1])?(p=u[1].end.x,m=u[1].end.y):(p=u[1].x,m=u[1].y),i===0||i===2?v=Math.abs(h-p):v=Math.abs(d-m),this.ctx.beginPath(),o===3?this.formatPath(c):this.formatPath(u.slice(0,2)),w=n<3?n*3:n*2,b=n<3?n*2:n,o===3&&(w=n,b=n),_=!0,v<=w*2?_=!1:v<=w*2+b?(C=v/(2*w+b),w*=C,b*=C):(U=Math.floor((v+b)/(w+b)),E=(v-U*w)/(U-1),H=(v-(U+1)*w)/U,b=H<=0||Math.abs(b-E){const c=S.useRef(null),[u,h]=S.useState(s),[d,p]=S.useState(!1),v=S.useCallback(()=>{const{rowKeyTuples:E,colKeyTuples:H,cells:F}=e;if(u==="bar"||u==="line"){const D=E.map(z=>z.map(N=>String(N??"")).join(" / ")),R=H.map((z,N)=>{const J=z.map(st=>String(st??"")).join(" / "),et=A.length>0?J:`Column ${N+1}`,nt=E.map(st=>{const L=st.map(q=>String(q??"")).join("||"),G=F[L]?.[J];return G?G.value:0}),ft=`hsl(${N*137.5%360}, 70%, 60%)`;return{label:et,data:nt,backgroundColor:u==="line"?"transparent":ft,borderColor:ft,borderWidth:u==="line"?2:1,fill:u!=="line",tension:u==="line"?.1:void 0}});return{labels:D,datasets:R}}else{const D={};Object.values(F).forEach(J=>{Object.values(J).forEach(et=>{const nt=Object.keys(J).find(ot=>J[ot]===et);if(nt){const ot=nt||"Unknown";D[ot]=(D[ot]||0)+et.value}})});const R=Object.keys(D),z=Object.values(D),N=R.map((J,et)=>`hsl(${et*137.5%360}, 60%, 60%)`);return{labels:R,datasets:[{data:z,backgroundColor:N,borderColor:N.map(J=>J),borderWidth:1}]}}},[e,t,A,u])(),w=v.labels.length>0&&v.datasets.length>0,b=u!=="line"||!v.datasets.some(E=>E.data.length===0),_={responsive:!0,maintainAspectRatio:!1,plugins:{title:{display:!0,text:`Pivot Table: ${i} of ${String(n||"records")}`,font:{size:16,weight:"bold"}},legend:{display:!0,position:"top"},tooltip:{enabled:!0}},scales:u==="bar"||u==="line"?{y:{type:"linear",beginAtZero:!0,title:{display:!0,text:i==="count"?"Count":"Value"}},x:{type:"category",title:{display:!0,text:t.map(E=>String(E)).join(" / ")}}}:void 0,elements:u==="line"?{line:{tension:.1},point:{radius:3,hoverRadius:5}}:void 0},C=S.useCallback(async()=>{if(c.current){p(!0);try{const E=await E8(c.current,{backgroundColor:"#ffffff",scale:2,useCORS:!0,allowTaint:!0}),H=document.createElement("a");H.download=`pivot-chart-${u}-${Date.now()}.png`,H.href=E.toDataURL("image/png"),H.click()}catch(E){console.error("Error exporting chart:",E)}finally{p(!1)}}},[u]),U=[{value:"bar",label:"Bar Chart"},{value:"line",label:"Line Chart"},{value:"doughnut",label:"Doughnut Chart"},{value:"pie",label:"Pie Chart"}];return Q.jsxs(Q.Fragment,{children:[o&&null,!o&&!w&&Q.jsxs("div",{className:"mb-4 bg-white",children:[Q.jsx("div",{className:"flex items-center justify-between mb-4",children:Q.jsx("h3",{className:"text-sm font-medium text-gray-900",children:"Chart Export"})}),Q.jsx("div",{className:"text-center text-gray-500 py-8",children:"No data available for chart visualization. Please select row and column fields."})]}),!o&&w&&!b&&Q.jsxs("div",{className:"mb-4 bg-white",children:[Q.jsx("div",{className:"flex items-center justify-between mb-4",children:Q.jsx("h3",{className:"text-sm font-medium text-gray-900",children:"Chart Export"})}),Q.jsx("div",{className:"text-center text-gray-500 py-8",children:"Line charts require data in all datasets. Please check your pivot configuration."})]}),!o&&w&&b&&Q.jsxs("div",{className:"mb-4 bg-white",children:[Q.jsxs("div",{className:"flex items-center justify-between mb-4",children:[Q.jsx("h3",{className:"text-sm font-medium text-gray-900",children:"Chart Export"}),Q.jsxs("div",{className:"flex items-center space-x-2",children:[Q.jsx(ov,{value:u,onChange:E=>h(E.target.value),size:"sm",className:"min-w-32",children:U.map(E=>Q.jsx("option",{value:E.value,children:E.label},E.value))}),Q.jsx(Je,{onClick:C,disabled:d,size:"sm",variant:"secondary",children:d?"Exporting...":"Export as Image"})]})]}),Q.jsx("div",{className:"text-xs text-gray-600 mb-3",children:"Visualize your pivot table data as a chart and export it as a high-resolution PNG image. You can adjust your browser window size to change the exported image dimensions."}),Q.jsx("div",{ref:c,className:"w-full h-96 bg-white p-4",children:Q.jsx(nP,{type:u,data:v,options:_})})]})]})};function O8(e){const{rowFields:t,columnFields:A,valueField:n,aggregator:i}=e,s=S.useMemo(()=>t.filter(d=>d!==""),[t]),o=S.useMemo(()=>A.filter(d=>d!==""),[A]),c=S.useMemo(()=>n&&n!==""?n:void 0,[n]),u=S.useMemo(()=>s.length>0&&o.length>0,[s,o]),h=S.useMemo(()=>u?bE({data:rt.flattenedDataset,rowFields:s,columnFields:o,valueField:c,aggregator:i,filter:vh(rt.filterConfig)}):{rowKeyTuples:[],colKeyTuples:[],cells:{},rowTotals:{},colTotals:{},grandTotal:0},[u,s,o,c,i,rt.filterConfig]);return{rowFields:s,columnFields:o,valueField:c,aggregator:i,pivotResult:h,hasValidConfiguration:u}}function T8(e){return(t,A)=>{e(t,A)}}function D8(e,t,A=3){return()=>{e.length{t(e.filter((n,i)=>i!==A))}}function hQ(e,t,A=3){return{onFieldChange:T8((n,i)=>{const s=[...e];s[n]=i,t(s)}),onAddField:D8(e,t,A),onRemoveField:M8(e,t)}}function L8(){return rt.flattenedDatasetKeys}function R8(){return rt.pivotConfig}function If(e){rt.updatePivotConfig(e)}function I8(){rt.resetPivotConfig()}function N8(e){rt.updateFilterConfig(e)}function k8(){return rt.flattenedDataset}function K8(){return vh(rt.filterConfig)}function z8(){return rt.filterConfig}const dQ=({title:e,fields:t,onFieldChange:A,onAddField:n,onRemoveField:i,availableKeys:s,variant:o="default"})=>{const c={row:"border-l-4 border-l-blue-500 pl-3",column:"border-l-4 border-l-green-500 pl-3",default:""};return Q.jsxs("div",{className:`mb-4 ${c[o]}`,children:[Q.jsxs("div",{className:"text-xs font-medium text-gray-700 mb-2",children:[e,":"]}),Q.jsxs("div",{className:"space-y-2",children:[t.map((u,h)=>Q.jsxs("div",{className:"flex items-center space-x-2",children:[Q.jsx(Ds,{value:u,onChange:d=>A(h,d),options:[{value:"",label:"Select a field..."},...s?.map(d=>({value:d,label:d}))||[]],size:"sm",className:"min-w-48"}),t.length>0&&Q.jsx("button",{onClick:()=>i(h),className:"text-xs text-red-600 hover:text-red-800 px-2 py-1",children:"Remove"})]},h)),t.length<3&&Q.jsxs("button",{onClick:n,className:"text-xs text-blue-600 hover:text-blue-800 px-2 py-1",children:["+ Add ",e.slice(0,-1)]})]})]})},V8=({title:e,field:t,onFieldChange:A,availableKeys:n})=>Q.jsxs("div",{className:"mb-4",children:[Q.jsxs("div",{className:"text-xs font-medium text-gray-700 mb-2",children:[e,":"]}),Q.jsx(Ds,{value:t,onChange:i=>A(i),options:[{value:"",label:"Select a field..."},...n?.map(i=>({value:i,label:i}))||[]],size:"sm",className:"min-w-48"})]}),P8=({aggregator:e,onAggregatorChange:t})=>Q.jsxs("div",{className:"mb-4",children:[Q.jsx("div",{className:"text-xs font-medium text-gray-700 mb-2",children:"Aggregation Method:"}),Q.jsx(Ds,{value:e,onChange:A=>t(A),options:[{value:"count",label:"Count"},{value:"sum",label:"Sum"},{value:"avg",label:"Average"},{value:"min",label:"Minimum"},{value:"max",label:"Maximum"}],size:"sm",className:"min-w-48"})]}),j8=Ae(()=>{const e=R8(),t=L8(),A=O8({rowFields:e.selectedRowFields,columnFields:e.selectedColumnFields,valueField:e.selectedValueField,aggregator:e.selectedAggregator}),n=S.useMemo(()=>hQ(e.selectedRowFields,d=>If({selectedRowFields:d})),[e.selectedRowFields]),i=S.useMemo(()=>hQ(e.selectedColumnFields,d=>If({selectedColumnFields:d})),[e.selectedColumnFields]),s=S.useCallback(d=>{If({selectedValueField:d})},[]),o=S.useCallback(d=>{If({selectedAggregator:d})},[]),c=S.useCallback(d=>{N8(d)},[]),u=S.useMemo(()=>k8(),[]),h=S.useMemo(()=>K8(),[]);return Q.jsxs("div",{children:[Q.jsx("div",{className:"text-xs text-gray-600 mb-2 max-w-2xl",children:"Answer questions about your dataset by creating pivot tables that summarize and analyze your data. Select fields for rows, columns, and values to explore patterns, compare metrics across different dimensions, and gain insights from your evaluation results. Use filters to focus on specific subsets of your data."}),Q.jsx("div",{className:"mb-4 flex justify-between items-center",children:Q.jsx(Je,{onClick:()=>I8(),variant:"secondary",size:"sm",children:"Reset to Defaults"})}),Q.jsx(dQ,{title:"Row Fields",fields:e.selectedRowFields,...n,availableKeys:t,variant:"row"}),Q.jsx(dQ,{title:"Column Fields",fields:e.selectedColumnFields,...i,availableKeys:t,variant:"column"}),Q.jsx(V8,{title:"Value Field",field:e.selectedValueField,onFieldChange:s,availableKeys:t}),Q.jsx(P8,{aggregator:e.selectedAggregator,onAggregatorChange:o}),Q.jsx(wE,{filters:z8(),onFiltersChange:c,availableKeys:t,title:"Filters"}),Q.jsx(H8,{pivotData:A.pivotResult,rowFields:A.rowFields,columnFields:A.columnFields,valueField:A.valueField,aggregator:A.aggregator,showRowTotals:!0,showColumnTotals:!0,hidden:!A.hasValidConfiguration}),Q.jsx(HN,{data:u,rowFields:A.rowFields,columnFields:A.columnFields,valueField:A.valueField,aggregator:A.aggregator,showRowTotals:!0,showColumnTotals:!0,filter:h})]})}),gQ=({label:e,isActive:t,onClick:A,title:n})=>Q.jsx("button",{type:"button",role:"tab","aria-selected":t,title:n,onClick:A,className:`text-xs font-medium px-2 py-0.5 border-b-2 focus:outline-none cursor-pointer transition-colors ${t?"text-gray-900 border-gray-900 bg-transparent":"text-gray-700 hover:text-gray-900 hover:border-gray-400 border-transparent bg-transparent hover:bg-gray-100"}`,children:e}),G8=({onRefresh:e})=>{const t=()=>{e()};return Q.jsx("div",{className:"bg-white border border-gray-200 p-8 text-center",children:Q.jsxs("div",{className:"max-w-sm mx-auto",children:[Q.jsx("div",{className:"text-gray-400 mb-4",children:Q.jsx("svg",{className:"mx-auto h-12 w-12",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:Q.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1,d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"})})}),Q.jsx("h3",{className:"text-sm font-medium text-gray-900 mb-2",children:"No evaluation data available"}),Q.jsx("p",{className:"text-xs text-gray-500 mb-4",children:"No evaluation rows have been loaded yet. Click refresh to reconnect and load data."}),Q.jsx(Je,{onClick:t,size:"md",children:"Refresh"})]})})},X8=()=>Q.jsx("div",{className:"bg-white border border-gray-200 p-8 text-center",children:Q.jsxs("div",{className:"max-w-sm mx-auto",children:[Q.jsx("div",{className:"text-gray-400 mb-4",children:Q.jsx("div",{className:"animate-spin rounded-full h-6 w-6 border-2 border-gray-300 border-t-gray-600 mx-auto"})}),Q.jsx("h3",{className:"text-sm font-medium text-gray-900 mb-2",children:"Loading evaluation data..."}),Q.jsx("p",{className:"text-xs text-gray-500",children:"Connecting to the server and loading data"})]})}),pQ=Ae(({onRefresh:e})=>{const t=()=>rt.setAllRowsExpanded(!0),A=()=>rt.setAllRowsExpanded(!1),n=tr(),i=km(),s=u=>u.endsWith("/pivot")?"pivot":"table",[o,c]=S.useState(s(n.pathname));return S.useEffect(()=>{c(s(n.pathname))},[n.pathname]),Q.jsx("div",{className:"text-sm",children:rt.isLoading?Q.jsx(X8,{}):rt.sortedDataset.length===0?Q.jsx(G8,{onRefresh:e}):Q.jsxs("div",{className:"bg-white border border-gray-200",children:[Q.jsx("div",{className:"px-3 pt-2 border-b border-gray-200",children:Q.jsxs("div",{className:"flex justify-between h-8",children:[Q.jsxs("div",{id:"tabs",className:"flex gap-1",children:[Q.jsx(gQ,{label:"Table",isActive:o==="table",onClick:()=>{c("table"),i("/table")},title:"View table"}),Q.jsx(gQ,{label:"Pivot",isActive:o==="pivot",onClick:()=>{c("pivot"),i("/pivot")},title:"View pivot"})]}),o==="table"&&Q.jsxs("div",{className:"flex gap-2 pb-2",children:[Q.jsx(Je,{onClick:t,size:"sm",variant:"secondary",children:"Expand All"}),Q.jsx(Je,{onClick:A,size:"sm",variant:"secondary",children:"Collapse All"})]})]})}),Q.jsx("div",{className:"p-3",children:o==="table"?Q.jsx(SN,{}):Q.jsx(j8,{})})]})})}),Z8=fe({type:Ec("initialize_logs"),logs:IA(wA())}),Y8=fe({type:Ec("log"),row:em}),W8=gI("type",[Z8,Y8]);fe({status:Ec("ok"),build_dir:gt(),active_connections:tA(),watch_paths:IA(gt())});fe({id:gt(),timestamp:gt(),level:av(["DEBUG","INFO","WARNING","ERROR"]),message:gt(),metadata:aA(gt(),wA()).optional()});function $8(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function BQ(e,t){if(typeof t=="number")return`${e}[${t}]`;if(/^[A-Za-z_][A-Za-z0-9_]*$/.test(t))return`${e}.${t}`;const n=t.replace(/'/g,"\\'");return`${e}['${n}']`}function J8(e,t="$"){const A={},n=(i,s)=>{if(i===null||typeof i=="string"||typeof i=="number"||typeof i=="boolean"||i===void 0){A[s]=i;return}if(i instanceof Date){A[s]=i;return}if(Array.isArray(i)){for(let o=0;o{try{localStorage.setItem("pivotConfig",JSON.stringify(this.pivotConfig))}catch(t){console.warn("Failed to save pivot config to localStorage:",t)}},200)}saveFilterConfig(){this.saveFilterConfigTimer&&clearTimeout(this.saveFilterConfigTimer),this.saveFilterConfigTimer=setTimeout(()=>{try{localStorage.setItem("filterConfig",JSON.stringify(this.filterConfig))}catch(t){console.warn("Failed to save filter config to localStorage:",t)}},200)}savePaginationConfig(){this.savePaginationConfigTimer&&clearTimeout(this.savePaginationConfigTimer),this.savePaginationConfigTimer=setTimeout(()=>{try{localStorage.setItem("paginationConfig",JSON.stringify({currentPage:this.currentPage,pageSize:this.pageSize}))}catch(t){console.warn("Failed to save pagination config to localStorage:",t)}},200)}saveSortConfig(){this.saveFilterConfigTimer&&clearTimeout(this.saveFilterConfigTimer),this.saveFilterConfigTimer=setTimeout(()=>{try{localStorage.setItem("sortConfig",JSON.stringify({sortField:this.sortField,sortDirection:this.sortDirection}))}catch(t){console.warn("Failed to save sort config to localStorage:",t)}},200)}updatePivotConfig(t){Object.assign(this.pivotConfig,t),this.savePivotConfig()}updateFilterConfig(t){this.filterConfig=t,this.saveFilterConfig(),this.applyFilterTimer&&clearTimeout(this.applyFilterTimer),this.applyFilterTimer=setTimeout(()=>{this.appliedFilterConfig=this.filterConfig.slice()},150)}updatePaginationConfig(t){t.currentPage!==void 0&&(this.currentPage=t.currentPage),t.pageSize!==void 0&&(this.pageSize=t.pageSize),this.savePaginationConfig()}updateSortConfig(t){Object.assign(this,t),this.currentPage=1,this.saveSortConfig()}handleSortFieldClick(t){this.sortField===t?this.sortDirection=this.sortDirection==="asc"?"desc":"asc":(this.sortField=t,this.sortDirection="asc"),this.saveSortConfig()}resetPivotConfig(){this.pivotConfig={...SB},this.savePivotConfig()}resetFilterConfig(){this.filterConfig=[...Nf],this.appliedFilterConfig=[...Nf],this.saveFilterConfig()}resetPaginationConfig(){this.currentPage=kf.currentPage,this.pageSize=kf.pageSize,this.savePaginationConfig()}resetSortConfig(){this.sortField=Kf.sortField,this.sortDirection=Kf.sortDirection,this.saveSortConfig()}setCurrentPage(t){this.currentPage=t,this.savePaginationConfig()}setPageSize(t){this.pageSize=t,this.currentPage=1,this.savePaginationConfig()}setLoading(t){this.isLoading=t}setConnected(t){this.isConnected=t}upsertRows(t){Oy(()=>{this.isLoading=!0}),t.forEach(A=>{if(!A.execution_metadata?.rollout_id)return;const n=A.execution_metadata.rollout_id;this.dataset[n]=A;const i=new Date(A.created_at).getTime();this.createdAtMsById[n]=isNaN(i)?0:i,this.flattenedById[n]=J8(A)}),Oy(()=>{this.currentPage=1,this.isLoading=!1}),this.savePaginationConfig()}toggleRowExpansion(t){t&&(this.expandedRows[t]?this.expandedRows[t]=!1:this.expandedRows[t]=!0)}isRowExpanded(t){return t?this.expandedRows[t]:!1}setAllRowsExpanded(t){Object.keys(this.dataset).forEach(A=>{this.expandedRows[A]=t})}get sortedIds(){const t=Object.keys(this.dataset);return this.sortField==="created_at"?t.sort((A,n)=>{const i=this.createdAtMsById[A]??0,s=this.createdAtMsById[n]??0;return this.sortDirection==="asc"?i-s:s-i}):t.sort((A,n)=>{const i=this.flattenedById[A],s=this.flattenedById[n];if(!i||!s)return 0;const o=i[this.sortField],c=s[this.sortField];if(o===void 0&&c===void 0)return 0;if(o===void 0)return this.sortDirection==="asc"?-1:1;if(c===void 0)return this.sortDirection==="asc"?1:-1;if(typeof o=="string"&&typeof c=="string"){const p=o.localeCompare(c);return this.sortDirection==="asc"?p:-p}if(typeof o=="number"&&typeof c=="number")return this.sortDirection==="asc"?o-c:c-o;const u=String(o),h=String(c),d=u.localeCompare(h);return this.sortDirection==="asc"?d:-d})}get sortedDataset(){return this.sortedIds.map(t=>this.dataset[t])}get flattenedDataset(){return this.sortedIds.map(t=>this.flattenedById[t])}get filteredFlattenedDataset(){if(this.appliedFilterConfig.length===0)return this.flattenedDataset;const t=vh(this.appliedFilterConfig);return this.flattenedDataset.filter(t)}get filteredOriginalDataset(){if(this.appliedFilterConfig.length===0)return this.sortedDataset;const t=vh(this.appliedFilterConfig);return this.sortedIds.filter(A=>t(this.flattenedById[A])).map(A=>this.dataset[A])}get flattenedDatasetKeys(){const t=new Set;return this.sortedIds.forEach(A=>{const n=this.flattenedById[A];n&&Object.keys(n).forEach(i=>t.add(i))}),Array.from(t)}get totalCount(){return this.filteredFlattenedDataset.length}get totalPages(){return Math.ceil(this.totalCount/this.pageSize)}get startRow(){return(this.currentPage-1)*this.pageSize+1}get endRow(){return Math.min(this.currentPage*this.pageSize,this.totalCount)}}const tX="/assets/logo-light-BprIBJQW.png",QA={websocket:{host:"localhost",port:"8000",protocol:"ws"},api:{host:"localhost",port:"8000",protocol:"http"}},eX=()=>{const{protocol:e,host:t,port:A}=QA.websocket;return`${e}://${t}:${A}/ws`},AX=async()=>{try{if(window.SERVER_CONFIG){const n=window.SERVER_CONFIG;QA.websocket.host=n.host,QA.websocket.port=n.port,QA.websocket.protocol=n.protocol,QA.api.host=n.host,QA.api.port=n.port,QA.api.protocol=n.apiProtocol,console.log("Using server-injected config:",QA);return}const e=window.location.hostname,t=window.location.port,A=window.location.protocol==="https:"?"wss:":"ws:";QA.websocket.host=e,QA.websocket.port=t||(A==="wss:"?"443":"80"),QA.websocket.protocol=A,QA.api.host=e,QA.api.port=t||(A==="wss:"?"443":"80"),QA.api.protocol=window.location.protocol==="https:"?"https:":"http:",console.log("Using discovered config from location:",QA)}catch(e){console.warn("Failed to discover server config, using defaults:",e)}},rt=new q8,nX=1e3,mQ=5,iX=Ae(()=>{const e=S.useRef(null),t=S.useRef(null),A=S.useRef(0),n=()=>{if(e.current?.readyState===WebSocket.OPEN)return;const o=new WebSocket(eX());e.current=o,o.onopen=()=>{console.log("Connected to file watcher"),rt.setConnected(!0),rt.setLoading(!0),A.current=0},o.onmessage=c=>{try{const u=W8.parse(JSON.parse(c.data));if(u.type==="initialize_logs"){const h=u.logs.map(d=>em.parse(d));console.log("initialize_logs",h),rt.upsertRows(h)}else if(u.type==="log"){rt.setLoading(!0);const h=em.parse(u.row);console.log("log",h),rt.upsertRows([h])}}catch(u){console.error("Failed to parse WebSocket message:",u),rt.setLoading(!1)}},o.onclose=c=>{console.log("Disconnected from file watcher",c.code,c.reason),rt.setConnected(!1),rt.setLoading(!1),c.code!==1e3&&A.current{console.error("WebSocket error:",c),rt.setConnected(!1),rt.setLoading(!1)}},i=()=>{t.current&&clearTimeout(t.current);const o=nX*Math.pow(2,A.current);console.log(`Scheduling reconnect attempt ${A.current+1} in ${o}ms`),t.current=setTimeout(()=>{A.current++,console.log(`Attempting to reconnect (attempt ${A.current}/${mQ})`),n()},o)},s=()=>{if(rt.setLoading(!0),e.current){try{e.current.onclose=null,e.current.close()}catch{}e.current=null}n()};return S.useEffect(()=>((async()=>{await AX(),n()})(),()=>{t.current&&clearTimeout(t.current),e.current&&e.current.close()}),[]),Q.jsxs("div",{className:"min-h-screen bg-gray-50",children:[Q.jsx("nav",{className:"bg-white border-b border-gray-200",children:Q.jsx("div",{className:"max-w-7xl mx-auto px-3",children:Q.jsxs("div",{className:"flex justify-between items-center h-10",children:[Q.jsx("div",{className:"flex items-center space-x-2",children:Q.jsx("a",{href:"https://evalprotocol.io",target:"_blank",children:Q.jsx("img",{src:tX,alt:"Eval Protocol",className:"h-6 w-auto"})})}),Q.jsxs("div",{className:"flex items-center gap-2",children:[Q.jsx(pE,{status:rt.isConnected?{code:0,message:"Connected",details:[]}:{code:1,message:"Disconnected",details:[]}}),Q.jsx(Je,{onClick:s,className:"ml-2",children:"Refresh"})]})]})})}),Q.jsx("main",{className:"max-w-7xl mx-auto px-3 py-4",children:Q.jsxs(OO,{children:[Q.jsx(zf,{path:"/",element:Q.jsx(SO,{to:"/table",replace:!0})}),Q.jsx(zf,{path:"/table",element:Q.jsx(pQ,{onRefresh:s})}),Q.jsx(zf,{path:"/pivot",element:Q.jsx(pQ,{onRefresh:s})})]})})]})});KH.createRoot(document.getElementById("root")).render(Q.jsx(mA.StrictMode,{children:Q.jsx(eT,{children:Q.jsx(iX,{})})})); -//# sourceMappingURL=index-D0r8BDZ2.js.map +//# sourceMappingURL=index-CWShMUgl.js.map diff --git a/vite-app/dist/assets/index-D0r8BDZ2.js.map b/vite-app/dist/assets/index-CWShMUgl.js.map similarity index 55% rename from vite-app/dist/assets/index-D0r8BDZ2.js.map rename to vite-app/dist/assets/index-CWShMUgl.js.map index 3b624f5e..2385ca4d 100644 --- a/vite-app/dist/assets/index-D0r8BDZ2.js.map +++ b/vite-app/dist/assets/index-CWShMUgl.js.map @@ -1 +1 @@ -{"version":3,"file":"index-D0r8BDZ2.js","sources":["../../node_modules/.pnpm/react@19.1.1/node_modules/react/cjs/react-jsx-runtime.production.js","../../node_modules/.pnpm/react@19.1.1/node_modules/react/jsx-runtime.js","../../node_modules/.pnpm/react@19.1.1/node_modules/react/cjs/react.production.js","../../node_modules/.pnpm/react@19.1.1/node_modules/react/index.js","../../node_modules/.pnpm/scheduler@0.26.0/node_modules/scheduler/cjs/scheduler.production.js","../../node_modules/.pnpm/scheduler@0.26.0/node_modules/scheduler/index.js","../../node_modules/.pnpm/react-dom@19.1.1_react@19.1.1/node_modules/react-dom/cjs/react-dom.production.js","../../node_modules/.pnpm/react-dom@19.1.1_react@19.1.1/node_modules/react-dom/index.js","../../node_modules/.pnpm/react-dom@19.1.1_react@19.1.1/node_modules/react-dom/cjs/react-dom-client.production.js","../../node_modules/.pnpm/react-dom@19.1.1_react@19.1.1/node_modules/react-dom/client.js","../../node_modules/.pnpm/react-router@7.7.1_react-dom@19.1.1_react@19.1.1__react@19.1.1/node_modules/react-router/dist/development/chunk-C37GKA54.mjs","../../node_modules/.pnpm/mobx@6.13.7/node_modules/mobx/dist/mobx.esm.js","../../node_modules/.pnpm/mobx-react-lite@4.1.0_mobx@6.13.7_react-dom@19.1.1_react@19.1.1__react@19.1.1/node_modules/mobx-react-lite/es/utils/assertEnvironment.js","../../node_modules/.pnpm/mobx-react-lite@4.1.0_mobx@6.13.7_react-dom@19.1.1_react@19.1.1__react@19.1.1/node_modules/mobx-react-lite/es/utils/observerBatching.js","../../node_modules/.pnpm/mobx-react-lite@4.1.0_mobx@6.13.7_react-dom@19.1.1_react@19.1.1__react@19.1.1/node_modules/mobx-react-lite/es/utils/printDebugValue.js","../../node_modules/.pnpm/mobx-react-lite@4.1.0_mobx@6.13.7_react-dom@19.1.1_react@19.1.1__react@19.1.1/node_modules/mobx-react-lite/es/utils/UniversalFinalizationRegistry.js","../../node_modules/.pnpm/mobx-react-lite@4.1.0_mobx@6.13.7_react-dom@19.1.1_react@19.1.1__react@19.1.1/node_modules/mobx-react-lite/es/utils/observerFinalizationRegistry.js","../../node_modules/.pnpm/use-sync-external-store@1.5.0_react@19.1.1/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","../../node_modules/.pnpm/use-sync-external-store@1.5.0_react@19.1.1/node_modules/use-sync-external-store/shim/index.js","../../node_modules/.pnpm/mobx-react-lite@4.1.0_mobx@6.13.7_react-dom@19.1.1_react@19.1.1__react@19.1.1/node_modules/mobx-react-lite/es/useObserver.js","../../node_modules/.pnpm/mobx-react-lite@4.1.0_mobx@6.13.7_react-dom@19.1.1_react@19.1.1__react@19.1.1/node_modules/mobx-react-lite/es/observer.js","../../node_modules/.pnpm/mobx-react-lite@4.1.0_mobx@6.13.7_react-dom@19.1.1_react@19.1.1__react@19.1.1/node_modules/mobx-react-lite/es/index.js","../../node_modules/.pnpm/mobx-react@9.2.0_mobx@6.13.7_react-dom@19.1.1_react@19.1.1__react@19.1.1/node_modules/mobx-react/dist/mobxreact.esm.js","../../src/styles/common.ts","../../src/components/Button.tsx","../../node_modules/.pnpm/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../node_modules/.pnpm/@floating-ui+core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../node_modules/.pnpm/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../../node_modules/.pnpm/@floating-ui+dom@1.7.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js","../../node_modules/.pnpm/react-tooltip@5.29.1_react-dom@19.1.1_react@19.1.1__react@19.1.1/node_modules/react-tooltip/dist/react-tooltip.min.mjs","../../src/components/Tooltip.tsx","../../src/components/MessageBubble.tsx","../../src/components/ChatInterface.tsx","../../src/components/MetadataSection.tsx","../../node_modules/.pnpm/zod@4.0.14/node_modules/zod/v4/core/core.js","../../node_modules/.pnpm/zod@4.0.14/node_modules/zod/v4/core/util.js","../../node_modules/.pnpm/zod@4.0.14/node_modules/zod/v4/core/errors.js","../../node_modules/.pnpm/zod@4.0.14/node_modules/zod/v4/core/parse.js","../../node_modules/.pnpm/zod@4.0.14/node_modules/zod/v4/core/regexes.js","../../node_modules/.pnpm/zod@4.0.14/node_modules/zod/v4/core/checks.js","../../node_modules/.pnpm/zod@4.0.14/node_modules/zod/v4/core/doc.js","../../node_modules/.pnpm/zod@4.0.14/node_modules/zod/v4/core/versions.js","../../node_modules/.pnpm/zod@4.0.14/node_modules/zod/v4/core/schemas.js","../../node_modules/.pnpm/zod@4.0.14/node_modules/zod/v4/core/registries.js","../../node_modules/.pnpm/zod@4.0.14/node_modules/zod/v4/core/api.js","../../node_modules/.pnpm/zod@4.0.14/node_modules/zod/v4/classic/iso.js","../../node_modules/.pnpm/zod@4.0.14/node_modules/zod/v4/classic/errors.js","../../node_modules/.pnpm/zod@4.0.14/node_modules/zod/v4/classic/parse.js","../../node_modules/.pnpm/zod@4.0.14/node_modules/zod/v4/classic/schemas.js","../../src/types/eval-protocol.ts","../../src/components/StatusIndicator.tsx","../../src/components/TableContainer.tsx","../../src/components/JSONTooltip.tsx","../../src/components/EvaluationRow.tsx","../../src/components/Select.tsx","../../src/components/SearchableSelect.tsx","../../src/components/FilterInput.tsx","../../src/util/filter-utils.ts","../../src/components/FilterSelector.tsx","../../src/components/EvaluationTable.tsx","../../src/util/pivot.ts","../../src/components/PivotTable.tsx","../../node_modules/.pnpm/@kurkle+color@0.3.4/node_modules/@kurkle/color/dist/color.esm.js","../../node_modules/.pnpm/chart.js@4.5.0/node_modules/chart.js/dist/chunks/helpers.dataset.js","../../node_modules/.pnpm/chart.js@4.5.0/node_modules/chart.js/dist/chart.js","../../node_modules/.pnpm/react-chartjs-2@5.3.0_chart.js@4.5.0_react@19.1.1/node_modules/react-chartjs-2/dist/index.js","../../node_modules/.pnpm/html2canvas-oklch@1.5.0-alpha.0/node_modules/html2canvas-oklch/dist/html2canvas.esm.js","../../src/components/ChartExport.tsx","../../src/hooks/usePivotData.ts","../../src/util/field-processors.ts","../../src/components/PivotTab.tsx","../../src/components/TabButton.tsx","../../src/components/Dashboard.tsx","../../src/types/websocket.ts","../../src/util/flatten-json.ts","../../src/GlobalState.tsx","../../src/assets/logo-light.png","../../src/config.ts","../../src/App.tsx","../../src/main.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray,\n ReactSharedInternals = { H: null, A: null, T: null, S: null, V: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, self, source, owner, props) {\n self = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== self ? self : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(\n oldElement.type,\n newKey,\n void 0,\n void 0,\n void 0,\n oldElement.props\n );\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction noop$1() {}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop$1, noop$1)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n };\nfunction noop() {}\nexports.Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n};\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nexports.__COMPILER_RUNTIME = {\n __proto__: null,\n c: function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n }\n};\nexports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nexports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key,\n owner = void 0;\n if (null != config)\n for (propName in (void 0 !== config.ref && (owner = void 0),\n void 0 !== config.key && (key = \"\" + config.key),\n config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, void 0, void 0, owner, props);\n};\nexports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\nexports.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, void 0, void 0, null, props);\n};\nexports.createRef = function () {\n return { current: null };\n};\nexports.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n};\nexports.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\nexports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n ReactSharedInternals.T = prevTransition;\n }\n};\nexports.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, createDeps, update) {\n var dispatcher = ReactSharedInternals.H;\n if (\"function\" === typeof update)\n throw Error(\n \"useEffect CRUD overload is not enabled in this build of React.\"\n );\n return dispatcher.useEffect(create, createDeps);\n};\nexports.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nexports.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nexports.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.1.1\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @license React\n * scheduler.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nfunction push(heap, node) {\n var index = heap.length;\n heap.push(node);\n a: for (; 0 < index; ) {\n var parentIndex = (index - 1) >>> 1,\n parent = heap[parentIndex];\n if (0 < compare(parent, node))\n (heap[parentIndex] = node), (heap[index] = parent), (index = parentIndex);\n else break a;\n }\n}\nfunction peek(heap) {\n return 0 === heap.length ? null : heap[0];\n}\nfunction pop(heap) {\n if (0 === heap.length) return null;\n var first = heap[0],\n last = heap.pop();\n if (last !== first) {\n heap[0] = last;\n a: for (\n var index = 0, length = heap.length, halfLength = length >>> 1;\n index < halfLength;\n\n ) {\n var leftIndex = 2 * (index + 1) - 1,\n left = heap[leftIndex],\n rightIndex = leftIndex + 1,\n right = heap[rightIndex];\n if (0 > compare(left, last))\n rightIndex < length && 0 > compare(right, left)\n ? ((heap[index] = right),\n (heap[rightIndex] = last),\n (index = rightIndex))\n : ((heap[index] = left),\n (heap[leftIndex] = last),\n (index = leftIndex));\n else if (rightIndex < length && 0 > compare(right, last))\n (heap[index] = right), (heap[rightIndex] = last), (index = rightIndex);\n else break a;\n }\n }\n return first;\n}\nfunction compare(a, b) {\n var diff = a.sortIndex - b.sortIndex;\n return 0 !== diff ? diff : a.id - b.id;\n}\nexports.unstable_now = void 0;\nif (\"object\" === typeof performance && \"function\" === typeof performance.now) {\n var localPerformance = performance;\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n} else {\n var localDate = Date,\n initialTime = localDate.now();\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n}\nvar taskQueue = [],\n timerQueue = [],\n taskIdCounter = 1,\n currentTask = null,\n currentPriorityLevel = 3,\n isPerformingWork = !1,\n isHostCallbackScheduled = !1,\n isHostTimeoutScheduled = !1,\n needsPaint = !1,\n localSetTimeout = \"function\" === typeof setTimeout ? setTimeout : null,\n localClearTimeout = \"function\" === typeof clearTimeout ? clearTimeout : null,\n localSetImmediate = \"undefined\" !== typeof setImmediate ? setImmediate : null;\nfunction advanceTimers(currentTime) {\n for (var timer = peek(timerQueue); null !== timer; ) {\n if (null === timer.callback) pop(timerQueue);\n else if (timer.startTime <= currentTime)\n pop(timerQueue),\n (timer.sortIndex = timer.expirationTime),\n push(taskQueue, timer);\n else break;\n timer = peek(timerQueue);\n }\n}\nfunction handleTimeout(currentTime) {\n isHostTimeoutScheduled = !1;\n advanceTimers(currentTime);\n if (!isHostCallbackScheduled)\n if (null !== peek(taskQueue))\n (isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n}\nvar isMessageLoopRunning = !1,\n taskTimeoutID = -1,\n frameInterval = 5,\n startTime = -1;\nfunction shouldYieldToHost() {\n return needsPaint\n ? !0\n : exports.unstable_now() - startTime < frameInterval\n ? !1\n : !0;\n}\nfunction performWorkUntilDeadline() {\n needsPaint = !1;\n if (isMessageLoopRunning) {\n var currentTime = exports.unstable_now();\n startTime = currentTime;\n var hasMoreWork = !0;\n try {\n a: {\n isHostCallbackScheduled = !1;\n isHostTimeoutScheduled &&\n ((isHostTimeoutScheduled = !1),\n localClearTimeout(taskTimeoutID),\n (taskTimeoutID = -1));\n isPerformingWork = !0;\n var previousPriorityLevel = currentPriorityLevel;\n try {\n b: {\n advanceTimers(currentTime);\n for (\n currentTask = peek(taskQueue);\n null !== currentTask &&\n !(\n currentTask.expirationTime > currentTime && shouldYieldToHost()\n );\n\n ) {\n var callback = currentTask.callback;\n if (\"function\" === typeof callback) {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var continuationCallback = callback(\n currentTask.expirationTime <= currentTime\n );\n currentTime = exports.unstable_now();\n if (\"function\" === typeof continuationCallback) {\n currentTask.callback = continuationCallback;\n advanceTimers(currentTime);\n hasMoreWork = !0;\n break b;\n }\n currentTask === peek(taskQueue) && pop(taskQueue);\n advanceTimers(currentTime);\n } else pop(taskQueue);\n currentTask = peek(taskQueue);\n }\n if (null !== currentTask) hasMoreWork = !0;\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(\n handleTimeout,\n firstTimer.startTime - currentTime\n );\n hasMoreWork = !1;\n }\n }\n break a;\n } finally {\n (currentTask = null),\n (currentPriorityLevel = previousPriorityLevel),\n (isPerformingWork = !1);\n }\n hasMoreWork = void 0;\n }\n } finally {\n hasMoreWork\n ? schedulePerformWorkUntilDeadline()\n : (isMessageLoopRunning = !1);\n }\n }\n}\nvar schedulePerformWorkUntilDeadline;\nif (\"function\" === typeof localSetImmediate)\n schedulePerformWorkUntilDeadline = function () {\n localSetImmediate(performWorkUntilDeadline);\n };\nelse if (\"undefined\" !== typeof MessageChannel) {\n var channel = new MessageChannel(),\n port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n schedulePerformWorkUntilDeadline = function () {\n port.postMessage(null);\n };\n} else\n schedulePerformWorkUntilDeadline = function () {\n localSetTimeout(performWorkUntilDeadline, 0);\n };\nfunction requestHostTimeout(callback, ms) {\n taskTimeoutID = localSetTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n}\nexports.unstable_IdlePriority = 5;\nexports.unstable_ImmediatePriority = 1;\nexports.unstable_LowPriority = 4;\nexports.unstable_NormalPriority = 3;\nexports.unstable_Profiling = null;\nexports.unstable_UserBlockingPriority = 2;\nexports.unstable_cancelCallback = function (task) {\n task.callback = null;\n};\nexports.unstable_forceFrameRate = function (fps) {\n 0 > fps || 125 < fps\n ? console.error(\n \"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"\n )\n : (frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5);\n};\nexports.unstable_getCurrentPriorityLevel = function () {\n return currentPriorityLevel;\n};\nexports.unstable_next = function (eventHandler) {\n switch (currentPriorityLevel) {\n case 1:\n case 2:\n case 3:\n var priorityLevel = 3;\n break;\n default:\n priorityLevel = currentPriorityLevel;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_requestPaint = function () {\n needsPaint = !0;\n};\nexports.unstable_runWithPriority = function (priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n break;\n default:\n priorityLevel = 3;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_scheduleCallback = function (\n priorityLevel,\n callback,\n options\n) {\n var currentTime = exports.unstable_now();\n \"object\" === typeof options && null !== options\n ? ((options = options.delay),\n (options =\n \"number\" === typeof options && 0 < options\n ? currentTime + options\n : currentTime))\n : (options = currentTime);\n switch (priorityLevel) {\n case 1:\n var timeout = -1;\n break;\n case 2:\n timeout = 250;\n break;\n case 5:\n timeout = 1073741823;\n break;\n case 4:\n timeout = 1e4;\n break;\n default:\n timeout = 5e3;\n }\n timeout = options + timeout;\n priorityLevel = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: options,\n expirationTime: timeout,\n sortIndex: -1\n };\n options > currentTime\n ? ((priorityLevel.sortIndex = options),\n push(timerQueue, priorityLevel),\n null === peek(taskQueue) &&\n priorityLevel === peek(timerQueue) &&\n (isHostTimeoutScheduled\n ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))\n : (isHostTimeoutScheduled = !0),\n requestHostTimeout(handleTimeout, options - currentTime)))\n : ((priorityLevel.sortIndex = timeout),\n push(taskQueue, priorityLevel),\n isHostCallbackScheduled ||\n isPerformingWork ||\n ((isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline())));\n return priorityLevel;\n};\nexports.unstable_shouldYield = shouldYieldToHost;\nexports.unstable_wrapCallback = function (callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction noop() {}\nvar Internals = {\n d: {\n f: noop,\n r: function () {\n throw Error(formatProdErrorMessage(522));\n },\n D: noop,\n C: noop,\n L: noop,\n m: noop,\n X: noop,\n S: noop,\n M: noop\n },\n p: 0,\n findDOMNode: null\n },\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\");\nfunction createPortal$1(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\nvar ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\nfunction getCrossOriginStringAs(as, input) {\n if (\"font\" === as) return \"\";\n if (\"string\" === typeof input)\n return \"use-credentials\" === input ? input : \"\";\n}\nexports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n Internals;\nexports.createPortal = function (children, container) {\n var key =\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n if (\n !container ||\n (1 !== container.nodeType &&\n 9 !== container.nodeType &&\n 11 !== container.nodeType)\n )\n throw Error(formatProdErrorMessage(299));\n return createPortal$1(children, container, null, key);\n};\nexports.flushSync = function (fn) {\n var previousTransition = ReactSharedInternals.T,\n previousUpdatePriority = Internals.p;\n try {\n if (((ReactSharedInternals.T = null), (Internals.p = 2), fn)) return fn();\n } finally {\n (ReactSharedInternals.T = previousTransition),\n (Internals.p = previousUpdatePriority),\n Internals.d.f();\n }\n};\nexports.preconnect = function (href, options) {\n \"string\" === typeof href &&\n (options\n ? ((options = options.crossOrigin),\n (options =\n \"string\" === typeof options\n ? \"use-credentials\" === options\n ? options\n : \"\"\n : void 0))\n : (options = null),\n Internals.d.C(href, options));\n};\nexports.prefetchDNS = function (href) {\n \"string\" === typeof href && Internals.d.D(href);\n};\nexports.preinit = function (href, options) {\n if (\"string\" === typeof href && options && \"string\" === typeof options.as) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n integrity =\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n fetchPriority =\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0;\n \"style\" === as\n ? Internals.d.S(\n href,\n \"string\" === typeof options.precedence ? options.precedence : void 0,\n {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority\n }\n )\n : \"script\" === as &&\n Internals.d.X(href, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n};\nexports.preinitModule = function (href, options) {\n if (\"string\" === typeof href)\n if (\"object\" === typeof options && null !== options) {\n if (null == options.as || \"script\" === options.as) {\n var crossOrigin = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n );\n Internals.d.M(href, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n } else null == options && Internals.d.M(href);\n};\nexports.preload = function (href, options) {\n if (\n \"string\" === typeof href &&\n \"object\" === typeof options &&\n null !== options &&\n \"string\" === typeof options.as\n ) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);\n Internals.d.L(href, as, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n type: \"string\" === typeof options.type ? options.type : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0,\n referrerPolicy:\n \"string\" === typeof options.referrerPolicy\n ? options.referrerPolicy\n : void 0,\n imageSrcSet:\n \"string\" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,\n imageSizes:\n \"string\" === typeof options.imageSizes ? options.imageSizes : void 0,\n media: \"string\" === typeof options.media ? options.media : void 0\n });\n }\n};\nexports.preloadModule = function (href, options) {\n if (\"string\" === typeof href)\n if (options) {\n var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);\n Internals.d.m(href, {\n as:\n \"string\" === typeof options.as && \"script\" !== options.as\n ? options.as\n : void 0,\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0\n });\n } else Internals.d.m(href);\n};\nexports.requestFormReset = function (form) {\n Internals.d.r(form);\n};\nexports.unstable_batchedUpdates = function (fn, a) {\n return fn(a);\n};\nexports.useFormState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useFormState(action, initialState, permalink);\n};\nexports.useFormStatus = function () {\n return ReactSharedInternals.H.useHostTransitionStatus();\n};\nexports.version = \"19.1.1\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * @license React\n * react-dom-client.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n\"use strict\";\nvar Scheduler = require(\"scheduler\"),\n React = require(\"react\"),\n ReactDOM = require(\"react-dom\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction isValidContainer(node) {\n return !(\n !node ||\n (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)\n );\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n if (13 === fiber.tag) {\n var suspenseState = fiber.memoizedState;\n null === suspenseState &&\n ((fiber = fiber.alternate),\n null !== fiber && (suspenseState = fiber.memoizedState));\n if (null !== suspenseState) return suspenseState.dehydrated;\n }\n return null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(formatProdErrorMessage(188));\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate) throw Error(formatProdErrorMessage(188));\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(formatProdErrorMessage(188));\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$0 = parentA.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) {\n for (child$0 = parentB.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) throw Error(formatProdErrorMessage(189));\n }\n }\n if (a.alternate !== b) throw Error(formatProdErrorMessage(190));\n }\n if (3 !== a.tag) throw Error(formatProdErrorMessage(188));\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiberImpl(node) {\n var tag = node.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;\n for (node = node.child; null !== node; ) {\n tag = findCurrentHostFiberImpl(node);\n if (null !== tag) return tag;\n node = node.sibling;\n }\n return null;\n}\nvar assign = Object.assign,\n REACT_LEGACY_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_PROVIDER_TYPE = Symbol.for(\"react.provider\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nvar REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.tracing_marker\");\nvar REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\");\nSymbol.for(\"react.view_transition\");\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nvar isArrayImpl = Array.isArray,\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n ReactDOMSharedInternals =\n ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n sharedNotPendingObject = {\n pending: !1,\n data: null,\n method: null,\n action: null\n },\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar contextStackCursor = createCursor(null),\n contextFiberStackCursor = createCursor(null),\n rootInstanceStackCursor = createCursor(null),\n hostTransitionProviderCursor = createCursor(null);\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor, null);\n switch (nextRootInstance.nodeType) {\n case 9:\n case 11:\n fiber = (fiber = nextRootInstance.documentElement)\n ? (fiber = fiber.namespaceURI)\n ? getOwnHostContext(fiber)\n : 0\n : 0;\n break;\n default:\n if (\n ((fiber = nextRootInstance.tagName),\n (nextRootInstance = nextRootInstance.namespaceURI))\n )\n (nextRootInstance = getOwnHostContext(nextRootInstance)),\n (fiber = getChildHostContextProd(nextRootInstance, fiber));\n else\n switch (fiber) {\n case \"svg\":\n fiber = 1;\n break;\n case \"math\":\n fiber = 2;\n break;\n default:\n fiber = 0;\n }\n }\n pop(contextStackCursor);\n push(contextStackCursor, fiber);\n}\nfunction popHostContainer() {\n pop(contextStackCursor);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber);\n var context = contextStackCursor.current;\n var JSCompiler_inline_result = getChildHostContextProd(context, fiber.type);\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor), pop(contextFiberStackCursor));\n hostTransitionProviderCursor.current === fiber &&\n (pop(hostTransitionProviderCursor),\n (HostTransitionContext._currentValue = sharedNotPendingObject));\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n scheduleCallback$3 = Scheduler.unstable_scheduleCallback,\n cancelCallback$1 = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority$1 = Scheduler.unstable_NormalPriority,\n LowPriority = Scheduler.unstable_LowPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n log$1 = Scheduler.log,\n unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,\n rendererID = null,\n injectedHook = null;\nfunction setIsStrictModeForDevtools(newIsStrictMode) {\n \"function\" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode);\n if (injectedHook && \"function\" === typeof injectedHook.setStrictMode)\n try {\n injectedHook.setStrictMode(rendererID, newIsStrictMode);\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionLane = 256,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n var pendingSyncLanes = lanes & 42;\n if (0 !== pendingSyncLanes) return pendingSyncLanes;\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n return 64;\n case 128:\n return 128;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 4194048;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return lanes & 62914560;\n case 67108864:\n return 67108864;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 0;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes, rootHasPendingCommit) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes;\n root = root.warmLanes;\n var nonIdlePendingLanes = pendingLanes & 134217727;\n 0 !== nonIdlePendingLanes\n ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),\n 0 !== pendingLanes\n ? (nextLanes = getHighestPriorityLanes(pendingLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = nonIdlePendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit)))))\n : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = pendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))));\n return 0 === nextLanes\n ? 0\n : 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (rootHasPendingCommit = wipLanes & -wipLanes),\n suspendedLanes >= rootHasPendingCommit ||\n (32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)))\n ? wipLanes\n : nextLanes;\n}\nfunction checkIfRootIsPrerendering(root, renderLanes) {\n return (\n 0 ===\n (root.pendingLanes &\n ~(root.suspendedLanes & ~root.pingedLanes) &\n renderLanes)\n );\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n case 8:\n case 64:\n return currentTime + 250;\n case 16:\n case 32:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return -1;\n case 67108864:\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction claimNextTransitionLane() {\n var lane = nextTransitionLane;\n nextTransitionLane <<= 1;\n 0 === (nextTransitionLane & 4194048) && (nextTransitionLane = 256);\n return lane;\n}\nfunction claimNextRetryLane() {\n var lane = nextRetryLane;\n nextRetryLane <<= 1;\n 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated$1(root, updateLane) {\n root.pendingLanes |= updateLane;\n 268435456 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0), (root.warmLanes = 0));\n}\nfunction markRootFinished(\n root,\n finishedLanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n var previouslyPendingLanes = root.pendingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.warmLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n root.errorRecoveryDisabledLanes &= remainingLanes;\n root.shellSuspendCounter = 0;\n var entanglements = root.entanglements,\n expirationTimes = root.expirationTimes,\n hiddenUpdates = root.hiddenUpdates;\n for (\n remainingLanes = previouslyPendingLanes & ~remainingLanes;\n 0 < remainingLanes;\n\n ) {\n var index$5 = 31 - clz32(remainingLanes),\n lane = 1 << index$5;\n entanglements[index$5] = 0;\n expirationTimes[index$5] = -1;\n var hiddenUpdatesForLane = hiddenUpdates[index$5];\n if (null !== hiddenUpdatesForLane)\n for (\n hiddenUpdates[index$5] = null, index$5 = 0;\n index$5 < hiddenUpdatesForLane.length;\n index$5++\n ) {\n var update = hiddenUpdatesForLane[index$5];\n null !== update && (update.lane &= -536870913);\n }\n remainingLanes &= ~lane;\n }\n 0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);\n 0 !== suspendedRetryLanes &&\n 0 === updatedLanes &&\n 0 !== root.tag &&\n (root.suspendedLanes |=\n suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));\n}\nfunction markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {\n root.pendingLanes |= spawnedLane;\n root.suspendedLanes &= ~spawnedLane;\n var spawnedLaneIndex = 31 - clz32(spawnedLane);\n root.entangledLanes |= spawnedLane;\n root.entanglements[spawnedLaneIndex] =\n root.entanglements[spawnedLaneIndex] |\n 1073741824 |\n (entangledLanes & 4194090);\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$6 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$6;\n (lane & entangledLanes) | (root[index$6] & entangledLanes) &&\n (root[index$6] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nfunction getBumpedLaneForHydrationByLane(lane) {\n switch (lane) {\n case 2:\n lane = 1;\n break;\n case 8:\n lane = 4;\n break;\n case 32:\n lane = 16;\n break;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n lane = 128;\n break;\n case 268435456:\n lane = 134217728;\n break;\n default:\n lane = 0;\n }\n return lane;\n}\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 2 < lanes\n ? 8 < lanes\n ? 0 !== (lanes & 134217727)\n ? 32\n : 268435456\n : 8\n : 2;\n}\nfunction resolveUpdatePriority() {\n var updatePriority = ReactDOMSharedInternals.p;\n if (0 !== updatePriority) return updatePriority;\n updatePriority = window.event;\n return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type);\n}\nfunction runWithPriority(priority, fn) {\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n return (ReactDOMSharedInternals.p = priority), fn();\n } finally {\n ReactDOMSharedInternals.p = previousPriority;\n }\n}\nvar randomKey = Math.random().toString(36).slice(2),\n internalInstanceKey = \"__reactFiber$\" + randomKey,\n internalPropsKey = \"__reactProps$\" + randomKey,\n internalContainerInstanceKey = \"__reactContainer$\" + randomKey,\n internalEventHandlersKey = \"__reactEvents$\" + randomKey,\n internalEventHandlerListenersKey = \"__reactListeners$\" + randomKey,\n internalEventHandlesSetKey = \"__reactHandles$\" + randomKey,\n internalRootNodeResourcesKey = \"__reactResources$\" + randomKey,\n internalHoistableMarker = \"__reactMarker$\" + randomKey;\nfunction detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlersKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n}\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n if (targetInst) return targetInst;\n for (var parentNode = targetNode.parentNode; parentNode; ) {\n if (\n (targetInst =\n parentNode[internalContainerInstanceKey] ||\n parentNode[internalInstanceKey])\n ) {\n parentNode = targetInst.alternate;\n if (\n null !== targetInst.child ||\n (null !== parentNode && null !== parentNode.child)\n )\n for (\n targetNode = getParentSuspenseInstance(targetNode);\n null !== targetNode;\n\n ) {\n if ((parentNode = targetNode[internalInstanceKey])) return parentNode;\n targetNode = getParentSuspenseInstance(targetNode);\n }\n return targetInst;\n }\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n return null;\n}\nfunction getInstanceFromNode(node) {\n if (\n (node = node[internalInstanceKey] || node[internalContainerInstanceKey])\n ) {\n var tag = node.tag;\n if (\n 5 === tag ||\n 6 === tag ||\n 13 === tag ||\n 26 === tag ||\n 27 === tag ||\n 3 === tag\n )\n return node;\n }\n return null;\n}\nfunction getNodeFromInstance(inst) {\n var tag = inst.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode;\n throw Error(formatProdErrorMessage(33));\n}\nfunction getResourcesFromRoot(root) {\n var resources = root[internalRootNodeResourcesKey];\n resources ||\n (resources = root[internalRootNodeResourcesKey] =\n { hoistableStyles: new Map(), hoistableScripts: new Map() });\n return resources;\n}\nfunction markNodeAsHoistable(node) {\n node[internalHoistableMarker] = !0;\n}\nvar allNativeEvents = new Set(),\n registrationNameDependencies = {};\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + \"Capture\", dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n registrationNameDependencies[registrationName] = dependencies;\n for (\n registrationName = 0;\n registrationName < dependencies.length;\n registrationName++\n )\n allNativeEvents.add(dependencies[registrationName]);\n}\nvar VALID_ATTRIBUTE_NAME_REGEX = RegExp(\n \"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n illegalAttributeNameCache = {},\n validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n return !0;\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n return (validatedAttributeNameCache[attributeName] = !0);\n illegalAttributeNameCache[attributeName] = !0;\n return !1;\n}\nfunction setValueForAttribute(node, name, value) {\n if (isAttributeNameSafe(name))\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n node.removeAttribute(name);\n return;\n case \"boolean\":\n var prefix$8 = name.toLowerCase().slice(0, 5);\n if (\"data-\" !== prefix$8 && \"aria-\" !== prefix$8) {\n node.removeAttribute(name);\n return;\n }\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForKnownAttribute(node, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForNamespacedAttribute(node, namespace, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttributeNS(namespace, name, \"\" + value);\n }\n}\nvar prefix, suffix;\nfunction describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" ()\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n}\nvar reentry = !1;\nfunction describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n reentry = !0;\n var previousPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n try {\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$9) {\n control = x$9;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$10) {\n control = x$10;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n namePropDescriptor = RunInRootFrame = 0;\n RunInRootFrame < sampleLines.length &&\n !sampleLines[RunInRootFrame].includes(\"DetermineComponentFrameRoot\");\n\n )\n RunInRootFrame++;\n for (\n ;\n namePropDescriptor < controlLines.length &&\n !controlLines[namePropDescriptor].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n namePropDescriptor++;\n if (\n RunInRootFrame === sampleLines.length ||\n namePropDescriptor === controlLines.length\n )\n for (\n RunInRootFrame = sampleLines.length - 1,\n namePropDescriptor = controlLines.length - 1;\n 1 <= RunInRootFrame &&\n 0 <= namePropDescriptor &&\n sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];\n\n )\n namePropDescriptor--;\n for (\n ;\n 1 <= RunInRootFrame && 0 <= namePropDescriptor;\n RunInRootFrame--, namePropDescriptor--\n )\n if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {\n if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {\n do\n if (\n (RunInRootFrame--,\n namePropDescriptor--,\n 0 > namePropDescriptor ||\n sampleLines[RunInRootFrame] !==\n controlLines[namePropDescriptor])\n ) {\n var frame =\n \"\\n\" +\n sampleLines[RunInRootFrame].replace(\" at new \", \" at \");\n fn.displayName &&\n frame.includes(\"\") &&\n (frame = frame.replace(\"\", fn.displayName));\n return frame;\n }\n while (1 <= RunInRootFrame && 0 <= namePropDescriptor);\n }\n break;\n }\n }\n } finally {\n (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);\n }\n return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(previousPrepareStackTrace)\n : \"\";\n}\nfunction describeFiber(fiber) {\n switch (fiber.tag) {\n case 26:\n case 27:\n case 5:\n return describeBuiltInComponentFrame(fiber.type);\n case 16:\n return describeBuiltInComponentFrame(\"Lazy\");\n case 13:\n return describeBuiltInComponentFrame(\"Suspense\");\n case 19:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n case 0:\n case 15:\n return describeNativeComponentFrame(fiber.type, !1);\n case 11:\n return describeNativeComponentFrame(fiber.type.render, !1);\n case 1:\n return describeNativeComponentFrame(fiber.type, !0);\n case 31:\n return describeBuiltInComponentFrame(\"Activity\");\n default:\n return \"\";\n }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\";\n do\n (info += describeFiber(workInProgress)),\n (workInProgress = workInProgress.return);\n while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"undefined\":\n return value;\n case \"object\":\n return value;\n default:\n return \"\";\n }\n}\nfunction isCheckable(elem) {\n var type = elem.type;\n return (\n (elem = elem.nodeName) &&\n \"input\" === elem.toLowerCase() &&\n (\"checkbox\" === type || \"radio\" === type)\n );\n}\nfunction trackValueOnNode(node) {\n var valueField = isCheckable(node) ? \"checked\" : \"value\",\n descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField\n ),\n currentValue = \"\" + node[valueField];\n if (\n !node.hasOwnProperty(valueField) &&\n \"undefined\" !== typeof descriptor &&\n \"function\" === typeof descriptor.get &&\n \"function\" === typeof descriptor.set\n ) {\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: !0,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = \"\" + value;\n set.call(this, value);\n }\n });\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n return {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = \"\" + value;\n },\n stopTracking: function () {\n node._valueTracker = null;\n delete node[valueField];\n }\n };\n }\n}\nfunction track(node) {\n node._valueTracker || (node._valueTracker = trackValueOnNode(node));\n}\nfunction updateValueIfChanged(node) {\n if (!node) return !1;\n var tracker = node._valueTracker;\n if (!tracker) return !0;\n var lastValue = tracker.getValue();\n var value = \"\";\n node &&\n (value = isCheckable(node)\n ? node.checked\n ? \"true\"\n : \"false\"\n : node.value);\n node = value;\n return node !== lastValue ? (tracker.setValue(node), !0) : !1;\n}\nfunction getActiveElement(doc) {\n doc = doc || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof doc) return null;\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\nvar escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\\n\"\\\\]/g;\nfunction escapeSelectorAttributeValueInsideDoubleQuotes(value) {\n return value.replace(\n escapeSelectorAttributeValueInsideDoubleQuotesRegex,\n function (ch) {\n return \"\\\\\" + ch.charCodeAt(0).toString(16) + \" \";\n }\n );\n}\nfunction updateInput(\n element,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n) {\n element.name = \"\";\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type\n ? (element.type = type)\n : element.removeAttribute(\"type\");\n if (null != value)\n if (\"number\" === type) {\n if ((0 === value && \"\" === element.value) || element.value != value)\n element.value = \"\" + getToStringValue(value);\n } else\n element.value !== \"\" + getToStringValue(value) &&\n (element.value = \"\" + getToStringValue(value));\n else\n (\"submit\" !== type && \"reset\" !== type) || element.removeAttribute(\"value\");\n null != value\n ? setDefaultValue(element, type, getToStringValue(value))\n : null != defaultValue\n ? setDefaultValue(element, type, getToStringValue(defaultValue))\n : null != lastDefaultValue && element.removeAttribute(\"value\");\n null == checked &&\n null != defaultChecked &&\n (element.defaultChecked = !!defaultChecked);\n null != checked &&\n (element.checked =\n checked && \"function\" !== typeof checked && \"symbol\" !== typeof checked);\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name\n ? (element.name = \"\" + getToStringValue(name))\n : element.removeAttribute(\"name\");\n}\nfunction initInput(\n element,\n value,\n defaultValue,\n checked,\n defaultChecked,\n type,\n name,\n isHydrating\n) {\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type &&\n (element.type = type);\n if (null != value || null != defaultValue) {\n if (\n !(\n (\"submit\" !== type && \"reset\" !== type) ||\n (void 0 !== value && null !== value)\n )\n )\n return;\n defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n value = null != value ? \"\" + getToStringValue(value) : defaultValue;\n isHydrating || value === element.value || (element.value = value);\n element.defaultValue = value;\n }\n checked = null != checked ? checked : defaultChecked;\n checked =\n \"function\" !== typeof checked && \"symbol\" !== typeof checked && !!checked;\n element.checked = isHydrating ? element.checked : !!checked;\n element.defaultChecked = !!checked;\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name &&\n (element.name = name);\n}\nfunction setDefaultValue(node, type, value) {\n (\"number\" === type && getActiveElement(node.ownerDocument) === node) ||\n node.defaultValue === \"\" + value ||\n (node.defaultValue = \"\" + value);\n}\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n node = node.options;\n if (multiple) {\n multiple = {};\n for (var i = 0; i < propValue.length; i++)\n multiple[\"$\" + propValue[i]] = !0;\n for (propValue = 0; propValue < node.length; propValue++)\n (i = multiple.hasOwnProperty(\"$\" + node[propValue].value)),\n node[propValue].selected !== i && (node[propValue].selected = i),\n i && setDefaultSelected && (node[propValue].defaultSelected = !0);\n } else {\n propValue = \"\" + getToStringValue(propValue);\n multiple = null;\n for (i = 0; i < node.length; i++) {\n if (node[i].value === propValue) {\n node[i].selected = !0;\n setDefaultSelected && (node[i].defaultSelected = !0);\n return;\n }\n null !== multiple || node[i].disabled || (multiple = node[i]);\n }\n null !== multiple && (multiple.selected = !0);\n }\n}\nfunction updateTextarea(element, value, defaultValue) {\n if (\n null != value &&\n ((value = \"\" + getToStringValue(value)),\n value !== element.value && (element.value = value),\n null == defaultValue)\n ) {\n element.defaultValue !== value && (element.defaultValue = value);\n return;\n }\n element.defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n}\nfunction initTextarea(element, value, defaultValue, children) {\n if (null == value) {\n if (null != children) {\n if (null != defaultValue) throw Error(formatProdErrorMessage(92));\n if (isArrayImpl(children)) {\n if (1 < children.length) throw Error(formatProdErrorMessage(93));\n children = children[0];\n }\n defaultValue = children;\n }\n null == defaultValue && (defaultValue = \"\");\n value = defaultValue;\n }\n defaultValue = getToStringValue(value);\n element.defaultValue = defaultValue;\n children = element.textContent;\n children === defaultValue &&\n \"\" !== children &&\n null !== children &&\n (element.value = children);\n}\nfunction setTextContent(node, text) {\n if (text) {\n var firstChild = node.firstChild;\n if (\n firstChild &&\n firstChild === node.lastChild &&\n 3 === firstChild.nodeType\n ) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n}\nvar unitlessNumbers = new Set(\n \"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\n \" \"\n )\n);\nfunction setValueForStyle(style, styleName, value) {\n var isCustomProperty = 0 === styleName.indexOf(\"--\");\n null == value || \"boolean\" === typeof value || \"\" === value\n ? isCustomProperty\n ? style.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (style.cssFloat = \"\")\n : (style[styleName] = \"\")\n : isCustomProperty\n ? style.setProperty(styleName, value)\n : \"number\" !== typeof value ||\n 0 === value ||\n unitlessNumbers.has(styleName)\n ? \"float\" === styleName\n ? (style.cssFloat = value)\n : (style[styleName] = (\"\" + value).trim())\n : (style[styleName] = value + \"px\");\n}\nfunction setValueForStyles(node, styles, prevStyles) {\n if (null != styles && \"object\" !== typeof styles)\n throw Error(formatProdErrorMessage(62));\n node = node.style;\n if (null != prevStyles) {\n for (var styleName in prevStyles)\n !prevStyles.hasOwnProperty(styleName) ||\n (null != styles && styles.hasOwnProperty(styleName)) ||\n (0 === styleName.indexOf(\"--\")\n ? node.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (node.cssFloat = \"\")\n : (node[styleName] = \"\"));\n for (var styleName$16 in styles)\n (styleName = styles[styleName$16]),\n styles.hasOwnProperty(styleName$16) &&\n prevStyles[styleName$16] !== styleName &&\n setValueForStyle(node, styleName$16, styleName);\n } else\n for (var styleName$17 in styles)\n styles.hasOwnProperty(styleName$17) &&\n setValueForStyle(node, styleName$17, styles[styleName$17]);\n}\nfunction isCustomElement(tagName) {\n if (-1 === tagName.indexOf(\"-\")) return !1;\n switch (tagName) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n default:\n return !0;\n }\n}\nvar aliases = new Map([\n [\"acceptCharset\", \"accept-charset\"],\n [\"htmlFor\", \"for\"],\n [\"httpEquiv\", \"http-equiv\"],\n [\"crossOrigin\", \"crossorigin\"],\n [\"accentHeight\", \"accent-height\"],\n [\"alignmentBaseline\", \"alignment-baseline\"],\n [\"arabicForm\", \"arabic-form\"],\n [\"baselineShift\", \"baseline-shift\"],\n [\"capHeight\", \"cap-height\"],\n [\"clipPath\", \"clip-path\"],\n [\"clipRule\", \"clip-rule\"],\n [\"colorInterpolation\", \"color-interpolation\"],\n [\"colorInterpolationFilters\", \"color-interpolation-filters\"],\n [\"colorProfile\", \"color-profile\"],\n [\"colorRendering\", \"color-rendering\"],\n [\"dominantBaseline\", \"dominant-baseline\"],\n [\"enableBackground\", \"enable-background\"],\n [\"fillOpacity\", \"fill-opacity\"],\n [\"fillRule\", \"fill-rule\"],\n [\"floodColor\", \"flood-color\"],\n [\"floodOpacity\", \"flood-opacity\"],\n [\"fontFamily\", \"font-family\"],\n [\"fontSize\", \"font-size\"],\n [\"fontSizeAdjust\", \"font-size-adjust\"],\n [\"fontStretch\", \"font-stretch\"],\n [\"fontStyle\", \"font-style\"],\n [\"fontVariant\", \"font-variant\"],\n [\"fontWeight\", \"font-weight\"],\n [\"glyphName\", \"glyph-name\"],\n [\"glyphOrientationHorizontal\", \"glyph-orientation-horizontal\"],\n [\"glyphOrientationVertical\", \"glyph-orientation-vertical\"],\n [\"horizAdvX\", \"horiz-adv-x\"],\n [\"horizOriginX\", \"horiz-origin-x\"],\n [\"imageRendering\", \"image-rendering\"],\n [\"letterSpacing\", \"letter-spacing\"],\n [\"lightingColor\", \"lighting-color\"],\n [\"markerEnd\", \"marker-end\"],\n [\"markerMid\", \"marker-mid\"],\n [\"markerStart\", \"marker-start\"],\n [\"overlinePosition\", \"overline-position\"],\n [\"overlineThickness\", \"overline-thickness\"],\n [\"paintOrder\", \"paint-order\"],\n [\"panose-1\", \"panose-1\"],\n [\"pointerEvents\", \"pointer-events\"],\n [\"renderingIntent\", \"rendering-intent\"],\n [\"shapeRendering\", \"shape-rendering\"],\n [\"stopColor\", \"stop-color\"],\n [\"stopOpacity\", \"stop-opacity\"],\n [\"strikethroughPosition\", \"strikethrough-position\"],\n [\"strikethroughThickness\", \"strikethrough-thickness\"],\n [\"strokeDasharray\", \"stroke-dasharray\"],\n [\"strokeDashoffset\", \"stroke-dashoffset\"],\n [\"strokeLinecap\", \"stroke-linecap\"],\n [\"strokeLinejoin\", \"stroke-linejoin\"],\n [\"strokeMiterlimit\", \"stroke-miterlimit\"],\n [\"strokeOpacity\", \"stroke-opacity\"],\n [\"strokeWidth\", \"stroke-width\"],\n [\"textAnchor\", \"text-anchor\"],\n [\"textDecoration\", \"text-decoration\"],\n [\"textRendering\", \"text-rendering\"],\n [\"transformOrigin\", \"transform-origin\"],\n [\"underlinePosition\", \"underline-position\"],\n [\"underlineThickness\", \"underline-thickness\"],\n [\"unicodeBidi\", \"unicode-bidi\"],\n [\"unicodeRange\", \"unicode-range\"],\n [\"unitsPerEm\", \"units-per-em\"],\n [\"vAlphabetic\", \"v-alphabetic\"],\n [\"vHanging\", \"v-hanging\"],\n [\"vIdeographic\", \"v-ideographic\"],\n [\"vMathematical\", \"v-mathematical\"],\n [\"vectorEffect\", \"vector-effect\"],\n [\"vertAdvY\", \"vert-adv-y\"],\n [\"vertOriginX\", \"vert-origin-x\"],\n [\"vertOriginY\", \"vert-origin-y\"],\n [\"wordSpacing\", \"word-spacing\"],\n [\"writingMode\", \"writing-mode\"],\n [\"xmlnsXlink\", \"xmlns:xlink\"],\n [\"xHeight\", \"x-height\"]\n ]),\n isJavaScriptProtocol =\n /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\nfunction sanitizeURL(url) {\n return isJavaScriptProtocol.test(\"\" + url)\n ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\"\n : url;\n}\nvar currentReplayingEvent = null;\nfunction getEventTarget(nativeEvent) {\n nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;\n nativeEvent.correspondingUseElement &&\n (nativeEvent = nativeEvent.correspondingUseElement);\n return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;\n}\nvar restoreTarget = null,\n restoreQueue = null;\nfunction restoreStateOfTarget(target) {\n var internalInstance = getInstanceFromNode(target);\n if (internalInstance && (target = internalInstance.stateNode)) {\n var props = target[internalPropsKey] || null;\n a: switch (((target = internalInstance.stateNode), internalInstance.type)) {\n case \"input\":\n updateInput(\n target,\n props.value,\n props.defaultValue,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name\n );\n internalInstance = props.name;\n if (\"radio\" === props.type && null != internalInstance) {\n for (props = target; props.parentNode; ) props = props.parentNode;\n props = props.querySelectorAll(\n 'input[name=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n \"\" + internalInstance\n ) +\n '\"][type=\"radio\"]'\n );\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n ) {\n var otherNode = props[internalInstance];\n if (otherNode !== target && otherNode.form === target.form) {\n var otherProps = otherNode[internalPropsKey] || null;\n if (!otherProps) throw Error(formatProdErrorMessage(90));\n updateInput(\n otherNode,\n otherProps.value,\n otherProps.defaultValue,\n otherProps.defaultValue,\n otherProps.checked,\n otherProps.defaultChecked,\n otherProps.type,\n otherProps.name\n );\n }\n }\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n )\n (otherNode = props[internalInstance]),\n otherNode.form === target.form && updateValueIfChanged(otherNode);\n }\n break a;\n case \"textarea\":\n updateTextarea(target, props.value, props.defaultValue);\n break a;\n case \"select\":\n (internalInstance = props.value),\n null != internalInstance &&\n updateOptions(target, !!props.multiple, internalInstance, !1);\n }\n }\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates$1(fn, a, b) {\n if (isInsideEventHandler) return fn(a, b);\n isInsideEventHandler = !0;\n try {\n var JSCompiler_inline_result = fn(a);\n return JSCompiler_inline_result;\n } finally {\n if (\n ((isInsideEventHandler = !1),\n null !== restoreTarget || null !== restoreQueue)\n )\n if (\n (flushSyncWork$1(),\n restoreTarget &&\n ((a = restoreTarget),\n (fn = restoreQueue),\n (restoreQueue = restoreTarget = null),\n restoreStateOfTarget(a),\n fn))\n )\n for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);\n }\n}\nfunction getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n var props = stateNode[internalPropsKey] || null;\n if (null === props) return null;\n stateNode = props[registrationName];\n a: switch (registrationName) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n case \"onMouseEnter\":\n (props = !props.disabled) ||\n ((inst = inst.type),\n (props = !(\n \"button\" === inst ||\n \"input\" === inst ||\n \"select\" === inst ||\n \"textarea\" === inst\n )));\n inst = !props;\n break a;\n default:\n inst = !1;\n }\n if (inst) return null;\n if (stateNode && \"function\" !== typeof stateNode)\n throw Error(\n formatProdErrorMessage(231, registrationName, typeof stateNode)\n );\n return stateNode;\n}\nvar canUseDOM = !(\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ),\n passiveBrowserEventsSupported = !1;\nif (canUseDOM)\n try {\n var options = {};\n Object.defineProperty(options, \"passive\", {\n get: function () {\n passiveBrowserEventsSupported = !0;\n }\n });\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (e) {\n passiveBrowserEventsSupported = !1;\n }\nvar root = null,\n startText = null,\n fallbackText = null;\nfunction getData() {\n if (fallbackText) return fallbackText;\n var start,\n startValue = startText,\n startLength = startValue.length,\n end,\n endValue = \"value\" in root ? root.value : root.textContent,\n endLength = endValue.length;\n for (\n start = 0;\n start < startLength && startValue[start] === endValue[start];\n start++\n );\n var minEnd = startLength - start;\n for (\n end = 1;\n end <= minEnd &&\n startValue[startLength - end] === endValue[endLength - end];\n end++\n );\n return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));\n}\nfunction getEventCharCode(nativeEvent) {\n var keyCode = nativeEvent.keyCode;\n \"charCode\" in nativeEvent\n ? ((nativeEvent = nativeEvent.charCode),\n 0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))\n : (nativeEvent = keyCode);\n 10 === nativeEvent && (nativeEvent = 13);\n return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;\n}\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction createSyntheticEvent(Interface) {\n function SyntheticBaseEvent(\n reactName,\n reactEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n for (var propName in Interface)\n Interface.hasOwnProperty(propName) &&\n ((reactName = Interface[propName]),\n (this[propName] = reactName\n ? reactName(nativeEvent)\n : nativeEvent[propName]));\n this.isDefaultPrevented = (\n null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue\n )\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble &&\n (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function () {},\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n}\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n },\n SyntheticEvent = createSyntheticEvent(EventInterface),\n UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),\n SyntheticUIEvent = createSyntheticEvent(UIEventInterface),\n lastMovementX,\n lastMovementY,\n lastMouseEvent,\n MouseEventInterface = assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n return void 0 === event.relatedTarget\n ? event.fromElement === event.srcElement\n ? event.toElement\n : event.fromElement\n : event.relatedTarget;\n },\n movementX: function (event) {\n if (\"movementX\" in event) return event.movementX;\n event !== lastMouseEvent &&\n (lastMouseEvent && \"mousemove\" === event.type\n ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),\n (lastMovementY = event.screenY - lastMouseEvent.screenY))\n : (lastMovementY = lastMovementX = 0),\n (lastMouseEvent = event));\n return lastMovementX;\n },\n movementY: function (event) {\n return \"movementY\" in event ? event.movementY : lastMovementY;\n }\n }),\n SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),\n DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),\n SyntheticDragEvent = createSyntheticEvent(DragEventInterface),\n FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),\n SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),\n AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),\n ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return \"clipboardData\" in event\n ? event.clipboardData\n : window.clipboardData;\n }\n }),\n SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),\n CompositionEventInterface = assign({}, EventInterface, { data: 0 }),\n SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface),\n normalizeKey = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n },\n translateToKey = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n },\n modifierKeyToProp = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n };\nfunction modifierStateGetter(keyArg) {\n var nativeEvent = this.nativeEvent;\n return nativeEvent.getModifierState\n ? nativeEvent.getModifierState(keyArg)\n : (keyArg = modifierKeyToProp[keyArg])\n ? !!nativeEvent[keyArg]\n : !1;\n}\nfunction getEventModifierState() {\n return modifierStateGetter;\n}\nvar KeyboardEventInterface = assign({}, UIEventInterface, {\n key: function (nativeEvent) {\n if (nativeEvent.key) {\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (\"Unidentified\" !== key) return key;\n }\n return \"keypress\" === nativeEvent.type\n ? ((nativeEvent = getEventCharCode(nativeEvent)),\n 13 === nativeEvent ? \"Enter\" : String.fromCharCode(nativeEvent))\n : \"keydown\" === nativeEvent.type || \"keyup\" === nativeEvent.type\n ? translateToKey[nativeEvent.keyCode] || \"Unidentified\"\n : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n charCode: function (event) {\n return \"keypress\" === event.type ? getEventCharCode(event) : 0;\n },\n keyCode: function (event) {\n return \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n },\n which: function (event) {\n return \"keypress\" === event.type\n ? getEventCharCode(event)\n : \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n }\n }),\n SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),\n PointerEventInterface = assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n }),\n SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),\n TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n }),\n SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),\n TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),\n WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return \"deltaX\" in event\n ? event.deltaX\n : \"wheelDeltaX\" in event\n ? -event.wheelDeltaX\n : 0;\n },\n deltaY: function (event) {\n return \"deltaY\" in event\n ? event.deltaY\n : \"wheelDeltaY\" in event\n ? -event.wheelDeltaY\n : \"wheelDelta\" in event\n ? -event.wheelDelta\n : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n }),\n SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),\n ToggleEventInterface = assign({}, EventInterface, {\n newState: 0,\n oldState: 0\n }),\n SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),\n END_KEYCODES = [9, 13, 27, 32],\n canUseCompositionEvent = canUseDOM && \"CompositionEvent\" in window,\n documentMode = null;\ncanUseDOM &&\n \"documentMode\" in document &&\n (documentMode = document.documentMode);\nvar canUseTextInputEvent = canUseDOM && \"TextEvent\" in window && !documentMode,\n useFallbackCompositionData =\n canUseDOM &&\n (!canUseCompositionEvent ||\n (documentMode && 8 < documentMode && 11 >= documentMode)),\n SPACEBAR_CHAR = String.fromCharCode(32),\n hasSpaceKeypress = !1;\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"keyup\":\n return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);\n case \"keydown\":\n return 229 !== nativeEvent.keyCode;\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n default:\n return !1;\n }\n}\nfunction getDataFromCustomEvent(nativeEvent) {\n nativeEvent = nativeEvent.detail;\n return \"object\" === typeof nativeEvent && \"data\" in nativeEvent\n ? nativeEvent.data\n : null;\n}\nvar isComposing = !1;\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"compositionend\":\n return getDataFromCustomEvent(nativeEvent);\n case \"keypress\":\n if (32 !== nativeEvent.which) return null;\n hasSpaceKeypress = !0;\n return SPACEBAR_CHAR;\n case \"textInput\":\n return (\n (domEventName = nativeEvent.data),\n domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName\n );\n default:\n return null;\n }\n}\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n if (isComposing)\n return \"compositionend\" === domEventName ||\n (!canUseCompositionEvent &&\n isFallbackCompositionEnd(domEventName, nativeEvent))\n ? ((domEventName = getData()),\n (fallbackText = startText = root = null),\n (isComposing = !1),\n domEventName)\n : null;\n switch (domEventName) {\n case \"paste\":\n return null;\n case \"keypress\":\n if (\n !(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) ||\n (nativeEvent.ctrlKey && nativeEvent.altKey)\n ) {\n if (nativeEvent.char && 1 < nativeEvent.char.length)\n return nativeEvent.char;\n if (nativeEvent.which) return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case \"compositionend\":\n return useFallbackCompositionData && \"ko\" !== nativeEvent.locale\n ? null\n : nativeEvent.data;\n default:\n return null;\n }\n}\nvar supportedInputTypes = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n};\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return \"input\" === nodeName\n ? !!supportedInputTypes[elem.type]\n : \"textarea\" === nodeName\n ? !0\n : !1;\n}\nfunction createAndAccumulateChangeEvent(\n dispatchQueue,\n inst,\n nativeEvent,\n target\n) {\n restoreTarget\n ? restoreQueue\n ? restoreQueue.push(target)\n : (restoreQueue = [target])\n : (restoreTarget = target);\n inst = accumulateTwoPhaseListeners(inst, \"onChange\");\n 0 < inst.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onChange\",\n \"change\",\n null,\n nativeEvent,\n target\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: inst }));\n}\nvar activeElement$1 = null,\n activeElementInst$1 = null;\nfunction runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n}\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n if (updateValueIfChanged(targetNode)) return targetInst;\n}\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n if (\"change\" === domEventName) return targetInst;\n}\nvar isInputEventSupported = !1;\nif (canUseDOM) {\n var JSCompiler_inline_result$jscomp$282;\n if (canUseDOM) {\n var isSupported$jscomp$inline_417 = \"oninput\" in document;\n if (!isSupported$jscomp$inline_417) {\n var element$jscomp$inline_418 = document.createElement(\"div\");\n element$jscomp$inline_418.setAttribute(\"oninput\", \"return;\");\n isSupported$jscomp$inline_417 =\n \"function\" === typeof element$jscomp$inline_418.oninput;\n }\n JSCompiler_inline_result$jscomp$282 = isSupported$jscomp$inline_417;\n } else JSCompiler_inline_result$jscomp$282 = !1;\n isInputEventSupported =\n JSCompiler_inline_result$jscomp$282 &&\n (!document.documentMode || 9 < document.documentMode);\n}\nfunction stopWatchingForValueChange() {\n activeElement$1 &&\n (activeElement$1.detachEvent(\"onpropertychange\", handlePropertyChange),\n (activeElementInst$1 = activeElement$1 = null));\n}\nfunction handlePropertyChange(nativeEvent) {\n if (\n \"value\" === nativeEvent.propertyName &&\n getInstIfValueChanged(activeElementInst$1)\n ) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(\n dispatchQueue,\n activeElementInst$1,\n nativeEvent,\n getEventTarget(nativeEvent)\n );\n batchedUpdates$1(runEventInBatch, dispatchQueue);\n }\n}\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n \"focusin\" === domEventName\n ? (stopWatchingForValueChange(),\n (activeElement$1 = target),\n (activeElementInst$1 = targetInst),\n activeElement$1.attachEvent(\"onpropertychange\", handlePropertyChange))\n : \"focusout\" === domEventName && stopWatchingForValueChange();\n}\nfunction getTargetInstForInputEventPolyfill(domEventName) {\n if (\n \"selectionchange\" === domEventName ||\n \"keyup\" === domEventName ||\n \"keydown\" === domEventName\n )\n return getInstIfValueChanged(activeElementInst$1);\n}\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n if (\"click\" === domEventName) return getInstIfValueChanged(targetInst);\n}\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (\"input\" === domEventName || \"change\" === domEventName)\n return getInstIfValueChanged(targetInst);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction getLeafNode(node) {\n for (; node && node.firstChild; ) node = node.firstChild;\n return node;\n}\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n root = 0;\n for (var nodeEnd; node; ) {\n if (3 === node.nodeType) {\n nodeEnd = root + node.textContent.length;\n if (root <= offset && nodeEnd >= offset)\n return { node: node, offset: offset - root };\n root = nodeEnd;\n }\n a: {\n for (; node; ) {\n if (node.nextSibling) {\n node = node.nextSibling;\n break a;\n }\n node = node.parentNode;\n }\n node = void 0;\n }\n node = getLeafNode(node);\n }\n}\nfunction containsNode(outerNode, innerNode) {\n return outerNode && innerNode\n ? outerNode === innerNode\n ? !0\n : outerNode && 3 === outerNode.nodeType\n ? !1\n : innerNode && 3 === innerNode.nodeType\n ? containsNode(outerNode, innerNode.parentNode)\n : \"contains\" in outerNode\n ? outerNode.contains(innerNode)\n : outerNode.compareDocumentPosition\n ? !!(outerNode.compareDocumentPosition(innerNode) & 16)\n : !1\n : !1;\n}\nfunction getActiveElementDeep(containerInfo) {\n containerInfo =\n null != containerInfo &&\n null != containerInfo.ownerDocument &&\n null != containerInfo.ownerDocument.defaultView\n ? containerInfo.ownerDocument.defaultView\n : window;\n for (\n var element = getActiveElement(containerInfo.document);\n element instanceof containerInfo.HTMLIFrameElement;\n\n ) {\n try {\n var JSCompiler_inline_result =\n \"string\" === typeof element.contentWindow.location.href;\n } catch (err) {\n JSCompiler_inline_result = !1;\n }\n if (JSCompiler_inline_result) containerInfo = element.contentWindow;\n else break;\n element = getActiveElement(containerInfo.document);\n }\n return element;\n}\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return (\n nodeName &&\n ((\"input\" === nodeName &&\n (\"text\" === elem.type ||\n \"search\" === elem.type ||\n \"tel\" === elem.type ||\n \"url\" === elem.type ||\n \"password\" === elem.type)) ||\n \"textarea\" === nodeName ||\n \"true\" === elem.contentEditable)\n );\n}\nvar skipSelectionChangeEvent =\n canUseDOM && \"documentMode\" in document && 11 >= document.documentMode,\n activeElement = null,\n activeElementInst = null,\n lastSelection = null,\n mouseDown = !1;\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n var doc =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget.document\n : 9 === nativeEventTarget.nodeType\n ? nativeEventTarget\n : nativeEventTarget.ownerDocument;\n mouseDown ||\n null == activeElement ||\n activeElement !== getActiveElement(doc) ||\n ((doc = activeElement),\n \"selectionStart\" in doc && hasSelectionCapabilities(doc)\n ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })\n : ((doc = (\n (doc.ownerDocument && doc.ownerDocument.defaultView) ||\n window\n ).getSelection()),\n (doc = {\n anchorNode: doc.anchorNode,\n anchorOffset: doc.anchorOffset,\n focusNode: doc.focusNode,\n focusOffset: doc.focusOffset\n })),\n (lastSelection && shallowEqual(lastSelection, doc)) ||\n ((lastSelection = doc),\n (doc = accumulateTwoPhaseListeners(activeElementInst, \"onSelect\")),\n 0 < doc.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onSelect\",\n \"select\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: doc }),\n (nativeEvent.target = activeElement))));\n}\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\" + styleProp] = \"webkit\" + eventName;\n prefixes[\"Moz\" + styleProp] = \"moz\" + eventName;\n return prefixes;\n}\nvar vendorPrefixes = {\n animationend: makePrefixMap(\"Animation\", \"AnimationEnd\"),\n animationiteration: makePrefixMap(\"Animation\", \"AnimationIteration\"),\n animationstart: makePrefixMap(\"Animation\", \"AnimationStart\"),\n transitionrun: makePrefixMap(\"Transition\", \"TransitionRun\"),\n transitionstart: makePrefixMap(\"Transition\", \"TransitionStart\"),\n transitioncancel: makePrefixMap(\"Transition\", \"TransitionCancel\"),\n transitionend: makePrefixMap(\"Transition\", \"TransitionEnd\")\n },\n prefixedEventNames = {},\n style = {};\ncanUseDOM &&\n ((style = document.createElement(\"div\").style),\n \"AnimationEvent\" in window ||\n (delete vendorPrefixes.animationend.animation,\n delete vendorPrefixes.animationiteration.animation,\n delete vendorPrefixes.animationstart.animation),\n \"TransitionEvent\" in window ||\n delete vendorPrefixes.transitionend.transition);\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];\n if (!vendorPrefixes[eventName]) return eventName;\n var prefixMap = vendorPrefixes[eventName],\n styleProp;\n for (styleProp in prefixMap)\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)\n return (prefixedEventNames[eventName] = prefixMap[styleProp]);\n return eventName;\n}\nvar ANIMATION_END = getVendorPrefixedEventName(\"animationend\"),\n ANIMATION_ITERATION = getVendorPrefixedEventName(\"animationiteration\"),\n ANIMATION_START = getVendorPrefixedEventName(\"animationstart\"),\n TRANSITION_RUN = getVendorPrefixedEventName(\"transitionrun\"),\n TRANSITION_START = getVendorPrefixedEventName(\"transitionstart\"),\n TRANSITION_CANCEL = getVendorPrefixedEventName(\"transitioncancel\"),\n TRANSITION_END = getVendorPrefixedEventName(\"transitionend\"),\n topLevelEventsToReactNames = new Map(),\n simpleEventPluginEvents =\n \"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\n \" \"\n );\nsimpleEventPluginEvents.push(\"scrollEnd\");\nfunction registerSimpleEvent(domEventName, reactName) {\n topLevelEventsToReactNames.set(domEventName, reactName);\n registerTwoPhaseEvent(reactName, [domEventName]);\n}\nvar CapturedStacks = new WeakMap();\nfunction createCapturedValueAtFiber(value, source) {\n if (\"object\" === typeof value && null !== value) {\n var existing = CapturedStacks.get(value);\n if (void 0 !== existing) return existing;\n source = {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n CapturedStacks.set(value, source);\n return source;\n }\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n}\nvar concurrentQueues = [],\n concurrentQueuesIndex = 0,\n concurrentlyUpdatedLanes = 0;\nfunction finishQueueingConcurrentUpdates() {\n for (\n var endIndex = concurrentQueuesIndex,\n i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);\n i < endIndex;\n\n ) {\n var fiber = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var queue = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var update = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var lane = concurrentQueues[i];\n concurrentQueues[i++] = null;\n if (null !== queue && null !== update) {\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n }\n 0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);\n }\n}\nfunction enqueueUpdate$1(fiber, queue, update, lane) {\n concurrentQueues[concurrentQueuesIndex++] = fiber;\n concurrentQueues[concurrentQueuesIndex++] = queue;\n concurrentQueues[concurrentQueuesIndex++] = update;\n concurrentQueues[concurrentQueuesIndex++] = lane;\n concurrentlyUpdatedLanes |= lane;\n fiber.lanes |= lane;\n fiber = fiber.alternate;\n null !== fiber && (fiber.lanes |= lane);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n enqueueUpdate$1(fiber, queue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction enqueueConcurrentRenderForLane(fiber, lane) {\n enqueueUpdate$1(fiber, null, null, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )\n (parent.childLanes |= lane),\n (alternate = parent.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n 22 === parent.tag &&\n ((sourceFiber = parent.stateNode),\n null === sourceFiber || sourceFiber._visibility & 1 || (isHidden = !0)),\n (sourceFiber = parent),\n (parent = parent.return);\n return 3 === sourceFiber.tag\n ? ((parent = sourceFiber.stateNode),\n isHidden &&\n null !== update &&\n ((isHidden = 31 - clz32(lane)),\n (sourceFiber = parent.hiddenUpdates),\n (alternate = sourceFiber[isHidden]),\n null === alternate\n ? (sourceFiber[isHidden] = [update])\n : alternate.push(update),\n (update.lane = lane | 536870912)),\n parent)\n : null;\n}\nfunction getRootForUpdatedFiber(sourceFiber) {\n if (50 < nestedUpdateCount)\n throw (\n ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(formatProdErrorMessage(185)))\n );\n for (var parent = sourceFiber.return; null !== parent; )\n (sourceFiber = parent), (parent = sourceFiber.return);\n return 3 === sourceFiber.tag ? sourceFiber.stateNode : null;\n}\nvar emptyContextObject = {};\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling =\n this.child =\n this.return =\n this.stateNode =\n this.type =\n this.elementType =\n null;\n this.index = 0;\n this.refCleanup = this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies =\n this.memoizedState =\n this.updateQueue =\n this.memoizedProps =\n null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiberImplClass(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiberImplClass(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 65011712;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n workInProgress.refCleanup = current.refCleanup;\n return workInProgress;\n}\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n workInProgress.flags &= 65011714;\n var current = workInProgress.alternate;\n null === current\n ? ((workInProgress.childLanes = 0),\n (workInProgress.lanes = renderLanes),\n (workInProgress.child = null),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.memoizedProps = null),\n (workInProgress.memoizedState = null),\n (workInProgress.updateQueue = null),\n (workInProgress.dependencies = null),\n (workInProgress.stateNode = null))\n : ((workInProgress.childLanes = current.childLanes),\n (workInProgress.lanes = current.lanes),\n (workInProgress.child = current.child),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null),\n (workInProgress.memoizedProps = current.memoizedProps),\n (workInProgress.memoizedState = current.memoizedState),\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.type = current.type),\n (renderLanes = current.dependencies),\n (workInProgress.dependencies =\n null === renderLanes\n ? null\n : {\n lanes: renderLanes.lanes,\n firstContext: renderLanes.firstContext\n }));\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 0;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type)\n fiberTag = isHostHoistableType(\n type,\n pendingProps,\n contextStackCursor.current\n )\n ? 26\n : \"html\" === type || \"head\" === type || \"body\" === type\n ? 27\n : 5;\n else\n a: switch (type) {\n case REACT_ACTIVITY_TYPE:\n return (\n (type = createFiberImplClass(31, pendingProps, key, mode)),\n (type.elementType = REACT_ACTIVITY_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 24;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiberImplClass(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiberImplClass(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiberImplClass(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_PROVIDER_TYPE:\n case REACT_CONTEXT_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONSUMER_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n fiberTag = 29;\n pendingProps = Error(\n formatProdErrorMessage(130, null === type ? \"null\" : typeof type, \"\")\n );\n owner = null;\n }\n key = createFiberImplClass(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiberImplClass(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiberImplClass(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiberImplClass(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n treeForkCount = 0,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null,\n treeContextId = 1,\n treeContextOverflow = \"\";\nfunction pushTreeFork(workInProgress, totalChildren) {\n forkStack[forkStackIndex++] = treeForkCount;\n forkStack[forkStackIndex++] = treeForkProvider;\n treeForkProvider = workInProgress;\n treeForkCount = totalChildren;\n}\nfunction pushTreeId(workInProgress, totalChildren, index) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextProvider = workInProgress;\n var baseIdWithLeadingBit = treeContextId;\n workInProgress = treeContextOverflow;\n var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;\n baseIdWithLeadingBit &= ~(1 << baseLength);\n index += 1;\n var length = 32 - clz32(totalChildren) + baseLength;\n if (30 < length) {\n var numberOfOverflowBits = baseLength - (baseLength % 5);\n length = (\n baseIdWithLeadingBit &\n ((1 << numberOfOverflowBits) - 1)\n ).toString(32);\n baseIdWithLeadingBit >>= numberOfOverflowBits;\n baseLength -= numberOfOverflowBits;\n treeContextId =\n (1 << (32 - clz32(totalChildren) + baseLength)) |\n (index << baseLength) |\n baseIdWithLeadingBit;\n treeContextOverflow = length + workInProgress;\n } else\n (treeContextId =\n (1 << length) | (index << baseLength) | baseIdWithLeadingBit),\n (treeContextOverflow = workInProgress);\n}\nfunction pushMaterializedTreeId(workInProgress) {\n null !== workInProgress.return &&\n (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));\n}\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n (treeForkCount = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextOverflow = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextId = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null);\n}\nvar hydrationParentFiber = null,\n nextHydratableInstance = null,\n isHydrating = !1,\n hydrationErrors = null,\n rootOrSingletonContext = !1,\n HydrationMismatchException = Error(formatProdErrorMessage(519));\nfunction throwOnHydrationMismatch(fiber) {\n var error = Error(formatProdErrorMessage(418, \"\"));\n queueHydrationError(createCapturedValueAtFiber(error, fiber));\n throw HydrationMismatchException;\n}\nfunction prepareToHydrateHostInstance(fiber) {\n var instance = fiber.stateNode,\n type = fiber.type,\n props = fiber.memoizedProps;\n instance[internalInstanceKey] = fiber;\n instance[internalPropsKey] = props;\n switch (type) {\n case \"dialog\":\n listenToNonDelegatedEvent(\"cancel\", instance);\n listenToNonDelegatedEvent(\"close\", instance);\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"video\":\n case \"audio\":\n for (type = 0; type < mediaEventTypes.length; type++)\n listenToNonDelegatedEvent(mediaEventTypes[type], instance);\n break;\n case \"source\":\n listenToNonDelegatedEvent(\"error\", instance);\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", instance);\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", instance);\n break;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n initInput(\n instance,\n props.value,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name,\n !0\n );\n track(instance);\n break;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n break;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", instance),\n initTextarea(instance, props.value, props.defaultValue, props.children),\n track(instance);\n }\n type = props.children;\n (\"string\" !== typeof type &&\n \"number\" !== typeof type &&\n \"bigint\" !== typeof type) ||\n instance.textContent === \"\" + type ||\n !0 === props.suppressHydrationWarning ||\n checkForUnmatchedText(instance.textContent, type)\n ? (null != props.popover &&\n (listenToNonDelegatedEvent(\"beforetoggle\", instance),\n listenToNonDelegatedEvent(\"toggle\", instance)),\n null != props.onScroll && listenToNonDelegatedEvent(\"scroll\", instance),\n null != props.onScrollEnd &&\n listenToNonDelegatedEvent(\"scrollend\", instance),\n null != props.onClick && (instance.onclick = noop$1),\n (instance = !0))\n : (instance = !1);\n instance || throwOnHydrationMismatch(fiber);\n}\nfunction popToNextHostParent(fiber) {\n for (hydrationParentFiber = fiber.return; hydrationParentFiber; )\n switch (hydrationParentFiber.tag) {\n case 5:\n case 13:\n rootOrSingletonContext = !1;\n return;\n case 27:\n case 3:\n rootOrSingletonContext = !0;\n return;\n default:\n hydrationParentFiber = hydrationParentFiber.return;\n }\n}\nfunction popHydrationState(fiber) {\n if (fiber !== hydrationParentFiber) return !1;\n if (!isHydrating) return popToNextHostParent(fiber), (isHydrating = !0), !1;\n var tag = fiber.tag,\n JSCompiler_temp;\n if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {\n if ((JSCompiler_temp = 5 === tag))\n (JSCompiler_temp = fiber.type),\n (JSCompiler_temp =\n !(\"form\" !== JSCompiler_temp && \"button\" !== JSCompiler_temp) ||\n shouldSetTextContent(fiber.type, fiber.memoizedProps));\n JSCompiler_temp = !JSCompiler_temp;\n }\n JSCompiler_temp && nextHydratableInstance && throwOnHydrationMismatch(fiber);\n popToNextHostParent(fiber);\n if (13 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n a: {\n fiber = fiber.nextSibling;\n for (tag = 0; fiber; ) {\n if (8 === fiber.nodeType)\n if (((JSCompiler_temp = fiber.data), \"/$\" === JSCompiler_temp)) {\n if (0 === tag) {\n nextHydratableInstance = getNextHydratable(fiber.nextSibling);\n break a;\n }\n tag--;\n } else\n (\"$\" !== JSCompiler_temp &&\n \"$!\" !== JSCompiler_temp &&\n \"$?\" !== JSCompiler_temp) ||\n tag++;\n fiber = fiber.nextSibling;\n }\n nextHydratableInstance = null;\n }\n } else\n 27 === tag\n ? ((tag = nextHydratableInstance),\n isSingletonScope(fiber.type)\n ? ((fiber = previousHydratableOnEnteringScopedSingleton),\n (previousHydratableOnEnteringScopedSingleton = null),\n (nextHydratableInstance = fiber))\n : (nextHydratableInstance = tag))\n : (nextHydratableInstance = hydrationParentFiber\n ? getNextHydratable(fiber.stateNode.nextSibling)\n : null);\n return !0;\n}\nfunction resetHydrationState() {\n nextHydratableInstance = hydrationParentFiber = null;\n isHydrating = !1;\n}\nfunction upgradeHydrationErrorsToRecoverable() {\n var queuedErrors = hydrationErrors;\n null !== queuedErrors &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = queuedErrors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n queuedErrors\n ),\n (hydrationErrors = null));\n return queuedErrors;\n}\nfunction queueHydrationError(error) {\n null === hydrationErrors\n ? (hydrationErrors = [error])\n : hydrationErrors.push(error);\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber$1 = null,\n lastContextDependency = null;\nfunction pushProvider(providerFiber, context, nextValue) {\n push(valueCursor, context._currentValue);\n context._currentValue = nextValue;\n}\nfunction popProvider(context) {\n context._currentValue = valueCursor.current;\n pop(valueCursor);\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction propagateContextChanges(\n workInProgress,\n contexts,\n renderLanes,\n forcePropagateEntireTree\n) {\n var fiber = workInProgress.child;\n null !== fiber && (fiber.return = workInProgress);\n for (; null !== fiber; ) {\n var list = fiber.dependencies;\n if (null !== list) {\n var nextFiber = fiber.child;\n list = list.firstContext;\n a: for (; null !== list; ) {\n var dependency = list;\n list = fiber;\n for (var i = 0; i < contexts.length; i++)\n if (dependency.context === contexts[i]) {\n list.lanes |= renderLanes;\n dependency = list.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n list.return,\n renderLanes,\n workInProgress\n );\n forcePropagateEntireTree || (nextFiber = null);\n break a;\n }\n list = dependency.next;\n }\n } else if (18 === fiber.tag) {\n nextFiber = fiber.return;\n if (null === nextFiber) throw Error(formatProdErrorMessage(341));\n nextFiber.lanes |= renderLanes;\n list = nextFiber.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(nextFiber, renderLanes, workInProgress);\n nextFiber = null;\n } else nextFiber = fiber.child;\n if (null !== nextFiber) nextFiber.return = fiber;\n else\n for (nextFiber = fiber; null !== nextFiber; ) {\n if (nextFiber === workInProgress) {\n nextFiber = null;\n break;\n }\n fiber = nextFiber.sibling;\n if (null !== fiber) {\n fiber.return = nextFiber.return;\n nextFiber = fiber;\n break;\n }\n nextFiber = nextFiber.return;\n }\n fiber = nextFiber;\n }\n}\nfunction propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n forcePropagateEntireTree\n) {\n current = null;\n for (\n var parent = workInProgress, isInsidePropagationBailout = !1;\n null !== parent;\n\n ) {\n if (!isInsidePropagationBailout)\n if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;\n else if (0 !== (parent.flags & 262144)) break;\n if (10 === parent.tag) {\n var currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent = currentParent.memoizedProps;\n if (null !== currentParent) {\n var context = parent.type;\n objectIs(parent.pendingProps.value, currentParent.value) ||\n (null !== current ? current.push(context) : (current = [context]));\n }\n } else if (parent === hostTransitionProviderCursor.current) {\n currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent.memoizedState.memoizedState !==\n parent.memoizedState.memoizedState &&\n (null !== current\n ? current.push(HostTransitionContext)\n : (current = [HostTransitionContext]));\n }\n parent = parent.return;\n }\n null !== current &&\n propagateContextChanges(\n workInProgress,\n current,\n renderLanes,\n forcePropagateEntireTree\n );\n workInProgress.flags |= 262144;\n}\nfunction checkIfContextChanged(currentDependencies) {\n for (\n currentDependencies = currentDependencies.firstContext;\n null !== currentDependencies;\n\n ) {\n if (\n !objectIs(\n currentDependencies.context._currentValue,\n currentDependencies.memoizedValue\n )\n )\n return !0;\n currentDependencies = currentDependencies.next;\n }\n return !1;\n}\nfunction prepareToReadContext(workInProgress) {\n currentlyRenderingFiber$1 = workInProgress;\n lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress && (workInProgress.firstContext = null);\n}\nfunction readContext(context) {\n return readContextForConsumer(currentlyRenderingFiber$1, context);\n}\nfunction readContextDuringReconciliation(consumer, context) {\n null === currentlyRenderingFiber$1 && prepareToReadContext(consumer);\n return readContextForConsumer(consumer, context);\n}\nfunction readContextForConsumer(consumer, context) {\n var value = context._currentValue;\n context = { context: context, memoizedValue: value, next: null };\n if (null === lastContextDependency) {\n if (null === consumer) throw Error(formatProdErrorMessage(308));\n lastContextDependency = context;\n consumer.dependencies = { lanes: 0, firstContext: context };\n consumer.flags |= 524288;\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar AbortControllerLocal =\n \"undefined\" !== typeof AbortController\n ? AbortController\n : function () {\n var listeners = [],\n signal = (this.signal = {\n aborted: !1,\n addEventListener: function (type, listener) {\n listeners.push(listener);\n }\n });\n this.abort = function () {\n signal.aborted = !0;\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n },\n scheduleCallback$2 = Scheduler.unstable_scheduleCallback,\n NormalPriority = Scheduler.unstable_NormalPriority,\n CacheContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Consumer: null,\n Provider: null,\n _currentValue: null,\n _currentValue2: null,\n _threadCount: 0\n };\nfunction createCache() {\n return {\n controller: new AbortControllerLocal(),\n data: new Map(),\n refCount: 0\n };\n}\nfunction releaseCache(cache) {\n cache.refCount--;\n 0 === cache.refCount &&\n scheduleCallback$2(NormalPriority, function () {\n cache.controller.abort();\n });\n}\nvar currentEntangledListeners = null,\n currentEntangledPendingCount = 0,\n currentEntangledLane = 0,\n currentEntangledActionThenable = null;\nfunction entangleAsyncAction(transition, thenable) {\n if (null === currentEntangledListeners) {\n var entangledListeners = (currentEntangledListeners = []);\n currentEntangledPendingCount = 0;\n currentEntangledLane = requestTransitionLane();\n currentEntangledActionThenable = {\n status: \"pending\",\n value: void 0,\n then: function (resolve) {\n entangledListeners.push(resolve);\n }\n };\n }\n currentEntangledPendingCount++;\n thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);\n return thenable;\n}\nfunction pingEngtangledActionScope() {\n if (\n 0 === --currentEntangledPendingCount &&\n null !== currentEntangledListeners\n ) {\n null !== currentEntangledActionThenable &&\n (currentEntangledActionThenable.status = \"fulfilled\");\n var listeners = currentEntangledListeners;\n currentEntangledListeners = null;\n currentEntangledLane = 0;\n currentEntangledActionThenable = null;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])();\n }\n}\nfunction chainThenableValue(thenable, result) {\n var listeners = [],\n thenableWithOverride = {\n status: \"pending\",\n value: null,\n reason: null,\n then: function (resolve) {\n listeners.push(resolve);\n }\n };\n thenable.then(\n function () {\n thenableWithOverride.status = \"fulfilled\";\n thenableWithOverride.value = result;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);\n },\n function (error) {\n thenableWithOverride.status = \"rejected\";\n thenableWithOverride.reason = error;\n for (error = 0; error < listeners.length; error++)\n (0, listeners[error])(void 0);\n }\n );\n return thenableWithOverride;\n}\nvar prevOnStartTransitionFinish = ReactSharedInternals.S;\nReactSharedInternals.S = function (transition, returnValue) {\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n entangleAsyncAction(transition, returnValue);\n null !== prevOnStartTransitionFinish &&\n prevOnStartTransitionFinish(transition, returnValue);\n};\nvar resumedCache = createCursor(null);\nfunction peekCacheFromPool() {\n var cacheResumedFromPreviousRender = resumedCache.current;\n return null !== cacheResumedFromPreviousRender\n ? cacheResumedFromPreviousRender\n : workInProgressRoot.pooledCache;\n}\nfunction pushTransition(offscreenWorkInProgress, prevCachePool) {\n null === prevCachePool\n ? push(resumedCache, resumedCache.current)\n : push(resumedCache, prevCachePool.pool);\n}\nfunction getSuspendedCache() {\n var cacheFromPool = peekCacheFromPool();\n return null === cacheFromPool\n ? null\n : { parent: CacheContext._currentValue, pool: cacheFromPool };\n}\nvar SuspenseException = Error(formatProdErrorMessage(460)),\n SuspenseyCommitException = Error(formatProdErrorMessage(474)),\n SuspenseActionException = Error(formatProdErrorMessage(542)),\n noopSuspenseyCommitThenable = { then: function () {} };\nfunction isThenableResolved(thenable) {\n thenable = thenable.status;\n return \"fulfilled\" === thenable || \"rejected\" === thenable;\n}\nfunction noop$3() {}\nfunction trackUsedThenable(thenableState, thenable, index) {\n index = thenableState[index];\n void 0 === index\n ? thenableState.push(thenable)\n : index !== thenable && (thenable.then(noop$3, noop$3), (thenable = index));\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n default:\n if (\"string\" === typeof thenable.status) thenable.then(noop$3, noop$3);\n else {\n thenableState = workInProgressRoot;\n if (null !== thenableState && 100 < thenableState.shellSuspendCounter)\n throw Error(formatProdErrorMessage(482));\n thenableState = thenable;\n thenableState.status = \"pending\";\n thenableState.then(\n function (fulfilledValue) {\n if (\"pending\" === thenable.status) {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n },\n function (error) {\n if (\"pending\" === thenable.status) {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n }\n );\n }\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n }\n suspendedThenable = thenable;\n throw SuspenseException;\n }\n}\nvar suspendedThenable = null;\nfunction getSuspendedThenable() {\n if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));\n var thenable = suspendedThenable;\n suspendedThenable = null;\n return thenable;\n}\nfunction checkIfUseWrappedInAsyncCatch(rejectedReason) {\n if (\n rejectedReason === SuspenseException ||\n rejectedReason === SuspenseActionException\n )\n throw Error(formatProdErrorMessage(483));\n}\nvar hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, lanes: 0, hiddenCallbacks: null },\n callbacks: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n callbacks: null\n });\n}\nfunction createUpdate(lane) {\n return { lane: lane, tag: 0, payload: null, callback: null, next: null };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n update = getRootForUpdatedFiber(fiber);\n markUpdateLaneFromFiberToRoot(fiber, null, lane);\n return update;\n }\n enqueueUpdate$1(fiber, updateQueue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194048))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: null,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n callbacks: current.callbacks\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nvar didReadFromEntangledAsyncAction = !1;\nfunction suspendIfUpdateReadFromEntangledAsyncAction() {\n if (didReadFromEntangledAsyncAction) {\n var entangledActionThenable = currentEntangledActionThenable;\n if (null !== entangledActionThenable) throw entangledActionThenable;\n }\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance$jscomp$0,\n renderLanes\n) {\n didReadFromEntangledAsyncAction = !1;\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane & -536870913,\n isHiddenUpdate = updateLane !== pendingQueue.lane;\n if (\n isHiddenUpdate\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n 0 !== updateLane &&\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n null !== current &&\n (current = current.next =\n {\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: null,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n var instance = instance$jscomp$0;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(instance, newState, updateLane);\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(instance, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n updateLane = pendingQueue.callback;\n null !== updateLane &&\n ((workInProgress$jscomp$0.flags |= 64),\n isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192),\n (isHiddenUpdate = queue.callbacks),\n null === isHiddenUpdate\n ? (queue.callbacks = [updateLane])\n : isHiddenUpdate.push(updateLane));\n } else\n (isHiddenUpdate = {\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = isHiddenUpdate),\n (lastPendingUpdate = newState))\n : (current = current.next = isHiddenUpdate),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (isHiddenUpdate = pendingQueue),\n (pendingQueue = isHiddenUpdate.next),\n (isHiddenUpdate.next = null),\n (queue.lastBaseUpdate = isHiddenUpdate),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction callCallback(callback, context) {\n if (\"function\" !== typeof callback)\n throw Error(formatProdErrorMessage(191, callback));\n callback.call(context);\n}\nfunction commitCallbacks(updateQueue, context) {\n var callbacks = updateQueue.callbacks;\n if (null !== callbacks)\n for (\n updateQueue.callbacks = null, updateQueue = 0;\n updateQueue < callbacks.length;\n updateQueue++\n )\n callCallback(callbacks[updateQueue], context);\n}\nvar currentTreeHiddenStackCursor = createCursor(null),\n prevEntangledRenderLanesCursor = createCursor(0);\nfunction pushHiddenContext(fiber, context) {\n fiber = entangledRenderLanes;\n push(prevEntangledRenderLanesCursor, fiber);\n push(currentTreeHiddenStackCursor, context);\n entangledRenderLanes = fiber | context.baseLanes;\n}\nfunction reuseHiddenContextOnStack() {\n push(prevEntangledRenderLanesCursor, entangledRenderLanes);\n push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current);\n}\nfunction popHiddenContext() {\n entangledRenderLanes = prevEntangledRenderLanesCursor.current;\n pop(currentTreeHiddenStackCursor);\n pop(prevEntangledRenderLanesCursor);\n}\nvar renderLanes = 0,\n currentlyRenderingFiber = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n shouldDoubleInvokeUserFnsInHooksDEV = !1,\n localIdCounter = 0,\n thenableIndexCounter$1 = 0,\n thenableState$1 = null,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(formatProdErrorMessage(321));\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactSharedInternals.H =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n nextRenderLanes = Component(props, secondArg);\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n didScheduleRenderPhaseUpdateDuringThisPass &&\n (nextRenderLanes = renderWithHooksAgain(\n workInProgress,\n Component,\n props,\n secondArg\n ));\n finishRenderingHooks(current);\n return nextRenderLanes;\n}\nfunction finishRenderingHooks(current) {\n ReactSharedInternals.H = ContextOnlyDispatcher;\n var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdate = !1;\n thenableIndexCounter$1 = 0;\n thenableState$1 = null;\n if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300));\n null === current ||\n didReceiveUpdate ||\n ((current = current.dependencies),\n null !== current &&\n checkIfContextChanged(current) &&\n (didReceiveUpdate = !0));\n}\nfunction renderWithHooksAgain(workInProgress, Component, props, secondArg) {\n currentlyRenderingFiber = workInProgress;\n var numberOfReRenders = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass && (thenableState$1 = null);\n thenableIndexCounter$1 = 0;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));\n numberOfReRenders += 1;\n workInProgressHook = currentHook = null;\n if (null != workInProgress.updateQueue) {\n var children = workInProgress.updateQueue;\n children.lastEffect = null;\n children.events = null;\n children.stores = null;\n null != children.memoCache && (children.memoCache.index = 0);\n }\n ReactSharedInternals.H = HooksDispatcherOnRerender;\n children = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n return children;\n}\nfunction TransitionAwareHostComponent() {\n var dispatcher = ReactSharedInternals.H,\n maybeThenable = dispatcher.useState()[0];\n maybeThenable =\n \"function\" === typeof maybeThenable.then\n ? useThenable(maybeThenable)\n : maybeThenable;\n dispatcher = dispatcher.useState()[0];\n (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher &&\n (currentlyRenderingFiber.flags |= 1024);\n return maybeThenable;\n}\nfunction checkDidRenderIdHook() {\n var didRenderIdHook = 0 !== localIdCounter;\n localIdCounter = 0;\n return didRenderIdHook;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags &= -2053;\n current.lanes &= ~lanes;\n}\nfunction resetHooksOnUnwind(workInProgress) {\n if (didScheduleRenderPhaseUpdate) {\n for (\n workInProgress = workInProgress.memoizedState;\n null !== workInProgress;\n\n ) {\n var queue = workInProgress.queue;\n null !== queue && (queue.pending = null);\n workInProgress = workInProgress.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n thenableIndexCounter$1 = localIdCounter = 0;\n thenableState$1 = null;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook) {\n if (null === currentlyRenderingFiber.alternate)\n throw Error(formatProdErrorMessage(467));\n throw Error(formatProdErrorMessage(310));\n }\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook =\n nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction createFunctionComponentUpdateQueue() {\n return { lastEffect: null, events: null, stores: null, memoCache: null };\n}\nfunction useThenable(thenable) {\n var index = thenableIndexCounter$1;\n thenableIndexCounter$1 += 1;\n null === thenableState$1 && (thenableState$1 = []);\n thenable = trackUsedThenable(thenableState$1, thenable, index);\n index = currentlyRenderingFiber;\n null ===\n (null === workInProgressHook\n ? index.memoizedState\n : workInProgressHook.next) &&\n ((index = index.alternate),\n (ReactSharedInternals.H =\n null === index || null === index.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate));\n return thenable;\n}\nfunction use(usable) {\n if (null !== usable && \"object\" === typeof usable) {\n if (\"function\" === typeof usable.then) return useThenable(usable);\n if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);\n }\n throw Error(formatProdErrorMessage(438, String(usable)));\n}\nfunction useMemoCache(size) {\n var memoCache = null,\n updateQueue = currentlyRenderingFiber.updateQueue;\n null !== updateQueue && (memoCache = updateQueue.memoCache);\n if (null == memoCache) {\n var current = currentlyRenderingFiber.alternate;\n null !== current &&\n ((current = current.updateQueue),\n null !== current &&\n ((current = current.memoCache),\n null != current &&\n (memoCache = {\n data: current.data.map(function (array) {\n return array.slice();\n }),\n index: 0\n })));\n }\n null == memoCache && (memoCache = { data: [], index: 0 });\n null === updateQueue &&\n ((updateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = updateQueue));\n updateQueue.memoCache = memoCache;\n updateQueue = memoCache.data[memoCache.index];\n if (void 0 === updateQueue)\n for (\n updateQueue = memoCache.data[memoCache.index] = Array(size), current = 0;\n current < size;\n current++\n )\n updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;\n memoCache.index++;\n return updateQueue;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook();\n return updateReducerImpl(hook, currentHook, reducer);\n}\nfunction updateReducerImpl(hook, current, reducer) {\n var queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var baseQueue = hook.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n pendingQueue = hook.baseState;\n if (null === baseQueue) hook.memoizedState = pendingQueue;\n else {\n current = baseQueue.next;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = current,\n didReadFromEntangledAsyncAction$32 = !1;\n do {\n var updateLane = update.lane & -536870913;\n if (\n updateLane !== update.lane\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n var revertLane = update.revertLane;\n if (0 === revertLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next =\n {\n lane: 0,\n revertLane: 0,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$32 = !0);\n else if ((renderLanes & revertLane) === revertLane) {\n update = update.next;\n revertLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$32 = !0);\n continue;\n } else\n (updateLane = {\n lane: 0,\n revertLane: update.revertLane,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = updateLane),\n (currentlyRenderingFiber.lanes |= revertLane),\n (workInProgressRootSkippedLanes |= revertLane);\n updateLane = update.action;\n shouldDoubleInvokeUserFnsInHooksDEV &&\n reducer(pendingQueue, updateLane);\n pendingQueue = update.hasEagerState\n ? update.eagerState\n : reducer(pendingQueue, updateLane);\n } else\n (revertLane = {\n lane: updateLane,\n revertLane: update.revertLane,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = revertLane),\n (currentlyRenderingFiber.lanes |= updateLane),\n (workInProgressRootSkippedLanes |= updateLane);\n update = update.next;\n } while (null !== update && update !== current);\n null === newBaseQueueLast\n ? (baseFirst = pendingQueue)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n if (\n !objectIs(pendingQueue, hook.memoizedState) &&\n ((didReceiveUpdate = !0),\n didReadFromEntangledAsyncAction$32 &&\n ((reducer = currentEntangledActionThenable), null !== reducer))\n )\n throw reducer;\n hook.memoizedState = pendingQueue;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = pendingQueue;\n }\n null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = updateWorkInProgressHook(),\n isHydrating$jscomp$0 = isHydrating;\n if (isHydrating$jscomp$0) {\n if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else getServerSnapshot = getSnapshot();\n var snapshotChanged = !objectIs(\n (currentHook || hook).memoizedState,\n getServerSnapshot\n );\n snapshotChanged &&\n ((hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n var create = subscribeToStore.bind(null, fiber, hook, subscribe);\n updateEffectImpl(2048, 8, create, [subscribe]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n createEffectInstance(),\n updateStoreInstance.bind(\n null,\n fiber,\n hook,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n isHydrating$jscomp$0 ||\n 0 !== (renderLanes & 124) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n return getServerSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n}\nfunction mountStateImpl(initialState) {\n var hook = mountWorkInProgressHook();\n if (\"function\" === typeof initialState) {\n var initialStateInitializer = initialState;\n initialState = initialStateInitializer();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n initialStateInitializer();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n }\n hook.memoizedState = hook.baseState = initialState;\n hook.queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n return hook;\n}\nfunction updateOptimisticImpl(hook, current, passthrough, reducer) {\n hook.baseState = passthrough;\n return updateReducerImpl(\n hook,\n currentHook,\n \"function\" === typeof reducer ? reducer : basicStateReducer\n );\n}\nfunction dispatchActionState(\n fiber,\n actionQueue,\n setPendingState,\n setState,\n payload\n) {\n if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485));\n fiber = actionQueue.action;\n if (null !== fiber) {\n var actionNode = {\n payload: payload,\n action: fiber,\n next: null,\n isTransition: !0,\n status: \"pending\",\n value: null,\n reason: null,\n listeners: [],\n then: function (listener) {\n actionNode.listeners.push(listener);\n }\n };\n null !== ReactSharedInternals.T\n ? setPendingState(!0)\n : (actionNode.isTransition = !1);\n setState(actionNode);\n setPendingState = actionQueue.pending;\n null === setPendingState\n ? ((actionNode.next = actionQueue.pending = actionNode),\n runActionStateAction(actionQueue, actionNode))\n : ((actionNode.next = setPendingState.next),\n (actionQueue.pending = setPendingState.next = actionNode));\n }\n}\nfunction runActionStateAction(actionQueue, node) {\n var action = node.action,\n payload = node.payload,\n prevState = actionQueue.state;\n if (node.isTransition) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = action(prevState, payload),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n handleActionReturnValue(actionQueue, node, returnValue);\n } catch (error) {\n onActionError(actionQueue, node, error);\n } finally {\n ReactSharedInternals.T = prevTransition;\n }\n } else\n try {\n (prevTransition = action(prevState, payload)),\n handleActionReturnValue(actionQueue, node, prevTransition);\n } catch (error$38) {\n onActionError(actionQueue, node, error$38);\n }\n}\nfunction handleActionReturnValue(actionQueue, node, returnValue) {\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ? returnValue.then(\n function (nextState) {\n onActionSuccess(actionQueue, node, nextState);\n },\n function (error) {\n return onActionError(actionQueue, node, error);\n }\n )\n : onActionSuccess(actionQueue, node, returnValue);\n}\nfunction onActionSuccess(actionQueue, actionNode, nextState) {\n actionNode.status = \"fulfilled\";\n actionNode.value = nextState;\n notifyActionListeners(actionNode);\n actionQueue.state = nextState;\n actionNode = actionQueue.pending;\n null !== actionNode &&\n ((nextState = actionNode.next),\n nextState === actionNode\n ? (actionQueue.pending = null)\n : ((nextState = nextState.next),\n (actionNode.next = nextState),\n runActionStateAction(actionQueue, nextState)));\n}\nfunction onActionError(actionQueue, actionNode, error) {\n var last = actionQueue.pending;\n actionQueue.pending = null;\n if (null !== last) {\n last = last.next;\n do\n (actionNode.status = \"rejected\"),\n (actionNode.reason = error),\n notifyActionListeners(actionNode),\n (actionNode = actionNode.next);\n while (actionNode !== last);\n }\n actionQueue.action = null;\n}\nfunction notifyActionListeners(actionNode) {\n actionNode = actionNode.listeners;\n for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();\n}\nfunction actionStateReducer(oldState, newState) {\n return newState;\n}\nfunction mountActionState(action, initialStateProp) {\n if (isHydrating) {\n var ssrFormState = workInProgressRoot.formState;\n if (null !== ssrFormState) {\n a: {\n var JSCompiler_inline_result = currentlyRenderingFiber;\n if (isHydrating) {\n if (nextHydratableInstance) {\n b: {\n var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance;\n for (\n var inRootOrSingleton = rootOrSingletonContext;\n 8 !== JSCompiler_inline_result$jscomp$0.nodeType;\n\n ) {\n if (!inRootOrSingleton) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n JSCompiler_inline_result$jscomp$0 = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n if (null === JSCompiler_inline_result$jscomp$0) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n }\n inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data;\n JSCompiler_inline_result$jscomp$0 =\n \"F!\" === inRootOrSingleton || \"F\" === inRootOrSingleton\n ? JSCompiler_inline_result$jscomp$0\n : null;\n }\n if (JSCompiler_inline_result$jscomp$0) {\n nextHydratableInstance = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n JSCompiler_inline_result =\n \"F!\" === JSCompiler_inline_result$jscomp$0.data;\n break a;\n }\n }\n throwOnHydrationMismatch(JSCompiler_inline_result);\n }\n JSCompiler_inline_result = !1;\n }\n JSCompiler_inline_result && (initialStateProp = ssrFormState[0]);\n }\n }\n ssrFormState = mountWorkInProgressHook();\n ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;\n JSCompiler_inline_result = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: actionStateReducer,\n lastRenderedState: initialStateProp\n };\n ssrFormState.queue = JSCompiler_inline_result;\n ssrFormState = dispatchSetState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result\n );\n JSCompiler_inline_result.dispatch = ssrFormState;\n JSCompiler_inline_result = mountStateImpl(!1);\n inRootOrSingleton = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !1,\n JSCompiler_inline_result.queue\n );\n JSCompiler_inline_result = mountWorkInProgressHook();\n JSCompiler_inline_result$jscomp$0 = {\n state: initialStateProp,\n dispatch: null,\n action: action,\n pending: null\n };\n JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0;\n ssrFormState = dispatchActionState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result$jscomp$0,\n inRootOrSingleton,\n ssrFormState\n );\n JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState;\n JSCompiler_inline_result.memoizedState = action;\n return [initialStateProp, ssrFormState, !1];\n}\nfunction updateActionState(action) {\n var stateHook = updateWorkInProgressHook();\n return updateActionStateImpl(stateHook, currentHook, action);\n}\nfunction updateActionStateImpl(stateHook, currentStateHook, action) {\n currentStateHook = updateReducerImpl(\n stateHook,\n currentStateHook,\n actionStateReducer\n )[0];\n stateHook = updateReducer(basicStateReducer)[0];\n if (\n \"object\" === typeof currentStateHook &&\n null !== currentStateHook &&\n \"function\" === typeof currentStateHook.then\n )\n try {\n var state = useThenable(currentStateHook);\n } catch (x) {\n if (x === SuspenseException) throw SuspenseActionException;\n throw x;\n }\n else state = currentStateHook;\n currentStateHook = updateWorkInProgressHook();\n var actionQueue = currentStateHook.queue,\n dispatch = actionQueue.dispatch;\n action !== currentStateHook.memoizedState &&\n ((currentlyRenderingFiber.flags |= 2048),\n pushSimpleEffect(\n 9,\n createEffectInstance(),\n actionStateActionEffect.bind(null, actionQueue, action),\n null\n ));\n return [state, dispatch, stateHook];\n}\nfunction actionStateActionEffect(actionQueue, action) {\n actionQueue.action = action;\n}\nfunction rerenderActionState(action) {\n var stateHook = updateWorkInProgressHook(),\n currentStateHook = currentHook;\n if (null !== currentStateHook)\n return updateActionStateImpl(stateHook, currentStateHook, action);\n updateWorkInProgressHook();\n stateHook = stateHook.memoizedState;\n currentStateHook = updateWorkInProgressHook();\n var dispatch = currentStateHook.queue.dispatch;\n currentStateHook.memoizedState = action;\n return [stateHook, dispatch, !1];\n}\nfunction pushSimpleEffect(tag, inst, create, createDeps) {\n tag = { tag: tag, create: create, deps: createDeps, inst: inst, next: null };\n inst = currentlyRenderingFiber.updateQueue;\n null === inst &&\n ((inst = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = inst));\n create = inst.lastEffect;\n null === create\n ? (inst.lastEffect = tag.next = tag)\n : ((createDeps = create.next),\n (create.next = tag),\n (tag.next = createDeps),\n (inst.lastEffect = tag));\n return tag;\n}\nfunction createEffectInstance() {\n return { destroy: void 0, resource: void 0 };\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, createDeps) {\n var hook = mountWorkInProgressHook();\n createDeps = void 0 === createDeps ? null : createDeps;\n currentlyRenderingFiber.flags |= fiberFlags;\n hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n createEffectInstance(),\n create,\n createDeps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var inst = hook.memoizedState.inst;\n null !== currentHook &&\n null !== deps &&\n areHookInputsEqual(deps, currentHook.memoizedState.deps)\n ? (hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps))\n : ((currentlyRenderingFiber.flags |= fiberFlags),\n (hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n inst,\n create,\n deps\n )));\n}\nfunction mountEffect(create, createDeps) {\n mountEffectImpl(8390656, 8, create, createDeps);\n}\nfunction updateEffect(create, createDeps) {\n updateEffectImpl(2048, 8, create, createDeps);\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref) {\n create = create();\n var refCleanup = ref(create);\n return function () {\n \"function\" === typeof refCleanup ? refCleanup() : ref(null);\n };\n }\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function () {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps);\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n prevState = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [prevState, deps];\n return prevState;\n}\nfunction mountDeferredValueImpl(hook, value, initialValue) {\n if (void 0 === initialValue || 0 !== (renderLanes & 1073741824))\n return (hook.memoizedState = value);\n hook.memoizedState = initialValue;\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return initialValue;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value, initialValue) {\n if (objectIs(value, prevValue)) return value;\n if (null !== currentTreeHiddenStackCursor.current)\n return (\n (hook = mountDeferredValueImpl(hook, value, initialValue)),\n objectIs(hook, prevValue) || (didReceiveUpdate = !0),\n hook\n );\n if (0 === (renderLanes & 42))\n return (didReceiveUpdate = !0), (hook.memoizedState = value);\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return prevValue;\n}\nfunction startTransition(fiber, queue, pendingState, finishedState, callback) {\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p =\n 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8;\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n dispatchOptimisticSetState(fiber, !1, queue, pendingState);\n try {\n var returnValue = callback(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n if (\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ) {\n var thenableForFinishedState = chainThenableValue(\n returnValue,\n finishedState\n );\n dispatchSetStateInternal(\n fiber,\n queue,\n thenableForFinishedState,\n requestUpdateLane(fiber)\n );\n } else\n dispatchSetStateInternal(\n fiber,\n queue,\n finishedState,\n requestUpdateLane(fiber)\n );\n } catch (error) {\n dispatchSetStateInternal(\n fiber,\n queue,\n { then: function () {}, status: \"rejected\", reason: error },\n requestUpdateLane()\n );\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction noop$2() {}\nfunction startHostTransition(formFiber, pendingState, action, formData) {\n if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476));\n var queue = ensureFormComponentIsStateful(formFiber).queue;\n startTransition(\n formFiber,\n queue,\n pendingState,\n sharedNotPendingObject,\n null === action\n ? noop$2\n : function () {\n requestFormReset$1(formFiber);\n return action(formData);\n }\n );\n}\nfunction ensureFormComponentIsStateful(formFiber) {\n var existingStateHook = formFiber.memoizedState;\n if (null !== existingStateHook) return existingStateHook;\n existingStateHook = {\n memoizedState: sharedNotPendingObject,\n baseState: sharedNotPendingObject,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: sharedNotPendingObject\n },\n next: null\n };\n var initialResetState = {};\n existingStateHook.next = {\n memoizedState: initialResetState,\n baseState: initialResetState,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialResetState\n },\n next: null\n };\n formFiber.memoizedState = existingStateHook;\n formFiber = formFiber.alternate;\n null !== formFiber && (formFiber.memoizedState = existingStateHook);\n return existingStateHook;\n}\nfunction requestFormReset$1(formFiber) {\n var resetStateQueue = ensureFormComponentIsStateful(formFiber).next.queue;\n dispatchSetStateInternal(formFiber, resetStateQueue, {}, requestUpdateLane());\n}\nfunction useHostTransitionStatus() {\n return readContext(HostTransitionContext);\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction updateRefresh() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction refreshCache(fiber) {\n for (var provider = fiber.return; null !== provider; ) {\n switch (provider.tag) {\n case 24:\n case 3:\n var lane = requestUpdateLane();\n fiber = createUpdate(lane);\n var root$41 = enqueueUpdate(provider, fiber, lane);\n null !== root$41 &&\n (scheduleUpdateOnFiber(root$41, provider, lane),\n entangleTransitions(root$41, provider, lane));\n provider = { cache: createCache() };\n fiber.payload = provider;\n return;\n }\n provider = provider.return;\n }\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane();\n action = {\n lane: lane,\n revertLane: 0,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n isRenderPhaseUpdate(fiber)\n ? enqueueRenderPhaseUpdate(queue, action)\n : ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action &&\n (scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane)));\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane();\n dispatchSetStateInternal(fiber, queue, action, lane);\n}\nfunction dispatchSetStateInternal(fiber, queue, action, lane) {\n var update = {\n lane: lane,\n revertLane: 0,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState))\n return (\n enqueueUpdate$1(fiber, queue, update, 0),\n null === workInProgressRoot && finishQueueingConcurrentUpdates(),\n !1\n );\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n if (null !== action)\n return (\n scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane),\n !0\n );\n }\n return !1;\n}\nfunction dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) {\n action = {\n lane: 2,\n revertLane: requestTransitionLane(),\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) {\n if (throwIfDuringRender) throw Error(formatProdErrorMessage(479));\n } else\n (throwIfDuringRender = enqueueConcurrentHookUpdate(\n fiber,\n queue,\n action,\n 2\n )),\n null !== throwIfDuringRender &&\n scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2);\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber ||\n (null !== alternate && alternate === currentlyRenderingFiber)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate =\n !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194048)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n use: use,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n useHostTransitionStatus: throwInvalidHookError,\n useFormState: throwInvalidHookError,\n useActionState: throwInvalidHookError,\n useOptimistic: throwInvalidHookError,\n useMemoCache: throwInvalidHookError,\n useCacheRefresh: throwInvalidHookError\n },\n HooksDispatcherOnMount = {\n readContext: readContext,\n use: use,\n useCallback: function (callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function (ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n mountEffectImpl(\n 4194308,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function (create, deps) {\n return mountEffectImpl(4194308, 4, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function (nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var nextValue = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [nextValue, deps];\n return nextValue;\n },\n useReducer: function (reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n if (void 0 !== init) {\n var initialState = init(initialArg);\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n init(initialArg);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n } else initialState = initialArg;\n hook.memoizedState = hook.baseState = initialState;\n reducer = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function (initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: function (initialState) {\n initialState = mountStateImpl(initialState);\n var queue = initialState.queue,\n dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue);\n queue.dispatch = dispatch;\n return [initialState.memoizedState, dispatch];\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = mountWorkInProgressHook();\n return mountDeferredValueImpl(hook, value, initialValue);\n },\n useTransition: function () {\n var stateHook = mountStateImpl(!1);\n stateHook = startTransition.bind(\n null,\n currentlyRenderingFiber,\n stateHook.queue,\n !0,\n !1\n );\n mountWorkInProgressHook().memoizedState = stateHook;\n return [!1, stateHook];\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = mountWorkInProgressHook();\n if (isHydrating) {\n if (void 0 === getServerSnapshot)\n throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else {\n getServerSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(formatProdErrorMessage(349));\n 0 !== (workInProgressRootRenderLanes & 124) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n hook.memoizedState = getServerSnapshot;\n var inst = { value: getServerSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n createEffectInstance(),\n updateStoreInstance.bind(\n null,\n fiber,\n inst,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n return getServerSnapshot;\n },\n useId: function () {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix;\n if (isHydrating) {\n var JSCompiler_inline_result = treeContextOverflow;\n var idWithLeadingBit = treeContextId;\n JSCompiler_inline_result =\n (\n idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))\n ).toString(32) + JSCompiler_inline_result;\n identifierPrefix =\n \"\\u00ab\" + identifierPrefix + \"R\" + JSCompiler_inline_result;\n JSCompiler_inline_result = localIdCounter++;\n 0 < JSCompiler_inline_result &&\n (identifierPrefix += \"H\" + JSCompiler_inline_result.toString(32));\n identifierPrefix += \"\\u00bb\";\n } else\n (JSCompiler_inline_result = globalClientIdCounter++),\n (identifierPrefix =\n \"\\u00ab\" +\n identifierPrefix +\n \"r\" +\n JSCompiler_inline_result.toString(32) +\n \"\\u00bb\");\n return (hook.memoizedState = identifierPrefix);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: mountActionState,\n useActionState: mountActionState,\n useOptimistic: function (passthrough) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = hook.baseState = passthrough;\n var queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: null,\n lastRenderedState: null\n };\n hook.queue = queue;\n hook = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !0,\n queue\n );\n queue.dispatch = hook;\n return [passthrough, hook];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n return (mountWorkInProgressHook().memoizedState = refreshCache.bind(\n null,\n currentlyRenderingFiber\n ));\n }\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function () {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: updateActionState,\n useActionState: updateActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n },\n HooksDispatcherOnRerender = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function () {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? mountDeferredValueImpl(hook, value, initialValue)\n : updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: rerenderActionState,\n useActionState: rerenderActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n if (null !== currentHook)\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n hook.baseState = passthrough;\n return [passthrough, hook.queue.dispatch];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n },\n thenableState = null,\n thenableIndexCounter = 0;\nfunction unwrapThenable(thenable) {\n var index = thenableIndexCounter;\n thenableIndexCounter += 1;\n null === thenableState && (thenableState = []);\n return trackUsedThenable(thenableState, thenable, index);\n}\nfunction coerceRef(workInProgress, element) {\n element = element.props.ref;\n workInProgress.ref = void 0 !== element ? element : null;\n}\nfunction throwOnInvalidObjectType(returnFiber, newChild) {\n if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)\n throw Error(formatProdErrorMessage(525));\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n formatProdErrorMessage(\n 31,\n \"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber\n )\n );\n}\nfunction resolveLazy(lazyType) {\n var init = lazyType._init;\n return init(lazyType._payload);\n}\nfunction createChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(currentFirstChild) {\n for (var existingChildren = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? existingChildren.set(currentFirstChild.key, currentFirstChild)\n : existingChildren.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return existingChildren;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 67108866), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 67108866;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 67108866);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (current = useFiber(current, element.props)),\n coerceRef(current, element),\n (current.return = returnFiber),\n current\n );\n current = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n coerceRef(current, element);\n current.return = returnFiber;\n return current;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n newChild = init(newChild._payload);\n return createChild(returnFiber, newChild, lanes);\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"function\" === typeof newChild.then)\n return createChild(returnFiber, unwrapThenable(newChild), lanes);\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return createChild(\n returnFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (key = newChild._init),\n (newChild = key(newChild._payload)),\n updateSlot(returnFiber, oldFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n if (\"function\" === typeof newChild.then)\n return updateSlot(\n returnFiber,\n oldFiber,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateSlot(\n returnFiber,\n oldFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n newChild = init(newChild._payload);\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n if (\"function\" === typeof newChild.then)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n if (null == newChildren) throw Error(formatProdErrorMessage(151));\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildren.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildren.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildren.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n !step.done;\n newIdx++, step = newChildren.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (var key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === currentFirstChild.tag) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(\n currentFirstChild,\n newChild.props.children\n );\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n } else if (\n currentFirstChild.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === currentFirstChild.type)\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.props);\n coerceRef(lanes, newChild);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n } else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((lanes = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.children || []);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n lanes.return = returnFiber;\n returnFiber = lanes;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (key = newChild._init),\n (newChild = key(newChild._payload)),\n reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild)) {\n key = getIteratorFn(newChild);\n if (\"function\" !== typeof key) throw Error(formatProdErrorMessage(150));\n newChild = key.call(newChild);\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n }\n if (\"function\" === typeof newChild.then)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (lanes = useFiber(currentFirstChild, newChild)),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (lanes = createFiberFromText(newChild, returnFiber.mode, lanes)),\n (lanes.return = returnFiber),\n (returnFiber = lanes)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return function (returnFiber, currentFirstChild, newChild, lanes) {\n try {\n thenableIndexCounter = 0;\n var firstChildFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n thenableState = null;\n return firstChildFiber;\n } catch (x) {\n if (x === SuspenseException || x === SuspenseActionException) throw x;\n var fiber = createFiberImplClass(29, x, null, returnFiber.mode);\n fiber.lanes = lanes;\n fiber.return = returnFiber;\n return fiber;\n } finally {\n }\n };\n}\nvar reconcileChildFibers = createChildReconciler(!0),\n mountChildFibers = createChildReconciler(!1),\n suspenseHandlerStackCursor = createCursor(null),\n shellBoundary = null;\nfunction pushPrimaryTreeSuspenseHandler(handler) {\n var current = handler.alternate;\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n push(suspenseHandlerStackCursor, handler);\n null === shellBoundary &&\n (null === current || null !== currentTreeHiddenStackCursor.current\n ? (shellBoundary = handler)\n : null !== current.memoizedState && (shellBoundary = handler));\n}\nfunction pushOffscreenSuspenseHandler(fiber) {\n if (22 === fiber.tag) {\n if (\n (push(suspenseStackCursor, suspenseStackCursor.current),\n push(suspenseHandlerStackCursor, fiber),\n null === shellBoundary)\n ) {\n var current = fiber.alternate;\n null !== current &&\n null !== current.memoizedState &&\n (shellBoundary = fiber);\n }\n } else reuseSuspenseHandlerOnStack(fiber);\n}\nfunction reuseSuspenseHandlerOnStack() {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);\n}\nfunction popSuspenseHandler(fiber) {\n pop(suspenseHandlerStackCursor);\n shellBoundary === fiber && (shellBoundary = null);\n pop(suspenseStackCursor);\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (\n null !== state &&\n ((state = state.dehydrated),\n null === state ||\n \"$?\" === state.data ||\n isSuspenseInstanceFallback(state))\n )\n return node;\n } else if (19 === node.tag && void 0 !== node.memoizedProps.revealOrder) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n enqueueSetState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function (inst, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction resolveClassComponentProps(Component, baseProps) {\n var newProps = baseProps;\n if (\"ref\" in baseProps) {\n newProps = {};\n for (var propName in baseProps)\n \"ref\" !== propName && (newProps[propName] = baseProps[propName]);\n }\n if ((Component = Component.defaultProps)) {\n newProps === baseProps && (newProps = assign({}, newProps));\n for (var propName$73 in Component)\n void 0 === newProps[propName$73] &&\n (newProps[propName$73] = Component[propName$73]);\n }\n return newProps;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n };\nfunction defaultOnUncaughtError(error) {\n reportGlobalError(error);\n}\nfunction defaultOnCaughtError(error) {\n console.error(error);\n}\nfunction defaultOnRecoverableError(error) {\n reportGlobalError(error);\n}\nfunction logUncaughtError(root, errorInfo) {\n try {\n var onUncaughtError = root.onUncaughtError;\n onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack });\n } catch (e$74) {\n setTimeout(function () {\n throw e$74;\n });\n }\n}\nfunction logCaughtError(root, boundary, errorInfo) {\n try {\n var onCaughtError = root.onCaughtError;\n onCaughtError(errorInfo.value, {\n componentStack: errorInfo.stack,\n errorBoundary: 1 === boundary.tag ? boundary.stateNode : null\n });\n } catch (e$75) {\n setTimeout(function () {\n throw e$75;\n });\n }\n}\nfunction createRootErrorUpdate(root, errorInfo, lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n lane.payload = { element: null };\n lane.callback = function () {\n logUncaughtError(root, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n return lane;\n}\nfunction initializeClassErrorUpdate(update, root, fiber, errorInfo) {\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n update.payload = function () {\n return getDerivedStateFromError(error);\n };\n update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n}\nfunction throwException(\n root,\n returnFiber,\n sourceFiber,\n value,\n rootRenderLanes\n) {\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n returnFiber = sourceFiber.alternate;\n null !== returnFiber &&\n propagateParentContextChanges(\n returnFiber,\n sourceFiber,\n rootRenderLanes,\n !0\n );\n sourceFiber = suspenseHandlerStackCursor.current;\n if (null !== sourceFiber) {\n switch (sourceFiber.tag) {\n case 13:\n return (\n null === shellBoundary\n ? renderDidSuspendDelayIfPossible()\n : null === sourceFiber.alternate &&\n 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3),\n (sourceFiber.flags &= -257),\n (sourceFiber.flags |= 65536),\n (sourceFiber.lanes = rootRenderLanes),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? (sourceFiber.updateQueue = new Set([value]))\n : returnFiber.add(value),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n case 22:\n return (\n (sourceFiber.flags |= 65536),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? ((returnFiber = {\n transitions: null,\n markerInstances: null,\n retryQueue: new Set([value])\n }),\n (sourceFiber.updateQueue = returnFiber))\n : ((sourceFiber = returnFiber.retryQueue),\n null === sourceFiber\n ? (returnFiber.retryQueue = new Set([value]))\n : sourceFiber.add(value)),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n }\n throw Error(formatProdErrorMessage(435, sourceFiber.tag));\n }\n attachPingListener(root, value, rootRenderLanes);\n renderDidSuspendDelayIfPossible();\n return !1;\n }\n if (isHydrating)\n return (\n (returnFiber = suspenseHandlerStackCursor.current),\n null !== returnFiber\n ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),\n (returnFiber.flags |= 65536),\n (returnFiber.lanes = rootRenderLanes),\n value !== HydrationMismatchException &&\n ((root = Error(formatProdErrorMessage(422), { cause: value })),\n queueHydrationError(createCapturedValueAtFiber(root, sourceFiber))))\n : (value !== HydrationMismatchException &&\n ((returnFiber = Error(formatProdErrorMessage(423), {\n cause: value\n })),\n queueHydrationError(\n createCapturedValueAtFiber(returnFiber, sourceFiber)\n )),\n (root = root.current.alternate),\n (root.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (root.lanes |= rootRenderLanes),\n (value = createCapturedValueAtFiber(value, sourceFiber)),\n (rootRenderLanes = createRootErrorUpdate(\n root.stateNode,\n value,\n rootRenderLanes\n )),\n enqueueCapturedUpdate(root, rootRenderLanes),\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2)),\n !1\n );\n var wrapperError = Error(formatProdErrorMessage(520), { cause: value });\n wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [wrapperError])\n : workInProgressRootConcurrentErrors.push(wrapperError);\n 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2);\n if (null === returnFiber) return !0;\n value = createCapturedValueAtFiber(value, sourceFiber);\n sourceFiber = returnFiber;\n do {\n switch (sourceFiber.tag) {\n case 3:\n return (\n (sourceFiber.flags |= 65536),\n (root = rootRenderLanes & -rootRenderLanes),\n (sourceFiber.lanes |= root),\n (root = createRootErrorUpdate(sourceFiber.stateNode, value, root)),\n enqueueCapturedUpdate(sourceFiber, root),\n !1\n );\n case 1:\n if (\n ((returnFiber = sourceFiber.type),\n (wrapperError = sourceFiber.stateNode),\n 0 === (sourceFiber.flags & 128) &&\n (\"function\" === typeof returnFiber.getDerivedStateFromError ||\n (null !== wrapperError &&\n \"function\" === typeof wrapperError.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))))\n )\n return (\n (sourceFiber.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (sourceFiber.lanes |= rootRenderLanes),\n (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),\n initializeClassErrorUpdate(\n rootRenderLanes,\n root,\n sourceFiber,\n value\n ),\n enqueueCapturedUpdate(sourceFiber, rootRenderLanes),\n !1\n );\n }\n sourceFiber = sourceFiber.return;\n } while (null !== sourceFiber);\n return !1;\n}\nvar SelectiveHydrationException = Error(formatProdErrorMessage(461)),\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n if (\"ref\" in nextProps) {\n var propsWithoutRef = {};\n for (var key in nextProps)\n \"ref\" !== key && (propsWithoutRef[key] = nextProps[key]);\n } else propsWithoutRef = nextProps;\n prepareToReadContext(workInProgress);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n propsWithoutRef,\n ref,\n renderLanes\n );\n key = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && key && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n checkScheduledUpdateOrContext(current, renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n if (\"hidden\" === nextProps.mode) {\n if (0 !== (workInProgress.flags & 128)) {\n nextProps =\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes;\n if (null !== current) {\n nextChildren = workInProgress.child = current.child;\n for (prevState = 0; null !== nextChildren; )\n (prevState =\n prevState | nextChildren.lanes | nextChildren.childLanes),\n (nextChildren = nextChildren.sibling);\n workInProgress.childLanes = prevState & ~nextProps;\n } else (workInProgress.childLanes = 0), (workInProgress.child = null);\n return deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextProps,\n renderLanes\n );\n }\n if (0 !== (renderLanes & 536870912))\n (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),\n null !== current &&\n pushTransition(\n workInProgress,\n null !== prevState ? prevState.cachePool : null\n ),\n null !== prevState\n ? pushHiddenContext(workInProgress, prevState)\n : reuseHiddenContextOnStack(),\n pushOffscreenSuspenseHandler(workInProgress);\n else\n return (\n (workInProgress.lanes = workInProgress.childLanes = 536870912),\n deferHiddenOffscreenComponent(\n current,\n workInProgress,\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes,\n renderLanes\n )\n );\n } else\n null !== prevState\n ? (pushTransition(workInProgress, prevState.cachePool),\n pushHiddenContext(workInProgress, prevState),\n reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.memoizedState = null))\n : (null !== current && pushTransition(workInProgress, null),\n reuseHiddenContextOnStack(),\n reuseSuspenseHandlerOnStack(workInProgress));\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextBaseLanes,\n renderLanes\n) {\n var JSCompiler_inline_result = peekCacheFromPool();\n JSCompiler_inline_result =\n null === JSCompiler_inline_result\n ? null\n : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result };\n workInProgress.memoizedState = {\n baseLanes: nextBaseLanes,\n cachePool: JSCompiler_inline_result\n };\n null !== current && pushTransition(workInProgress, null);\n reuseHiddenContextOnStack();\n pushOffscreenSuspenseHandler(workInProgress);\n null !== current &&\n propagateParentContextChanges(current, workInProgress, renderLanes, !0);\n return null;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (null === ref)\n null !== current &&\n null !== current.ref &&\n (workInProgress.flags |= 4194816);\n else {\n if (\"function\" !== typeof ref && \"object\" !== typeof ref)\n throw Error(formatProdErrorMessage(284));\n if (null === current || current.ref !== ref)\n workInProgress.flags |= 4194816;\n }\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n void 0,\n renderLanes\n );\n nextProps = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && nextProps && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction replayFunctionComponent(\n current,\n workInProgress,\n nextProps,\n Component,\n secondArg,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n workInProgress.updateQueue = null;\n nextProps = renderWithHooksAgain(\n workInProgress,\n Component,\n nextProps,\n secondArg\n );\n finishRenderingHooks(current);\n Component = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && Component && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n if (null === workInProgress.stateNode) {\n var context = emptyContextObject,\n contextType = Component.contextType;\n \"object\" === typeof contextType &&\n null !== contextType &&\n (context = readContext(contextType));\n context = new Component(nextProps, context);\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state ? context.state : null;\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n context = workInProgress.stateNode;\n context.props = nextProps;\n context.state = workInProgress.memoizedState;\n context.refs = {};\n initializeUpdateQueue(workInProgress);\n contextType = Component.contextType;\n context.context =\n \"object\" === typeof contextType && null !== contextType\n ? readContext(contextType)\n : emptyContextObject;\n context.state = workInProgress.memoizedState;\n contextType = Component.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n contextType,\n nextProps\n ),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof Component.getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n ((contextType = context.state),\n \"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount(),\n contextType !== context.state &&\n classComponentUpdater.enqueueReplaceState(context, context.state, null),\n processUpdateQueue(workInProgress, nextProps, context, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction(),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308);\n nextProps = !0;\n } else if (null === current) {\n context = workInProgress.stateNode;\n var unresolvedOldProps = workInProgress.memoizedProps,\n oldProps = resolveClassComponentProps(Component, unresolvedOldProps);\n context.props = oldProps;\n var oldContext = context.context,\n contextType$jscomp$0 = Component.contextType;\n contextType = emptyContextObject;\n \"object\" === typeof contextType$jscomp$0 &&\n null !== contextType$jscomp$0 &&\n (contextType = readContext(contextType$jscomp$0));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n contextType$jscomp$0 =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate;\n unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;\n contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((unresolvedOldProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n oldContext = workInProgress.memoizedState;\n unresolvedOldProps || oldState !== oldContext || hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n (\"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount()),\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (context.props = nextProps),\n (context.state = oldContext),\n (context.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (nextProps = !1));\n } else {\n context = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n contextType = workInProgress.memoizedProps;\n contextType$jscomp$0 = resolveClassComponentProps(Component, contextType);\n context.props = contextType$jscomp$0;\n getDerivedStateFromProps = workInProgress.pendingProps;\n oldState = context.context;\n oldContext = Component.contextType;\n oldProps = emptyContextObject;\n \"object\" === typeof oldContext &&\n null !== oldContext &&\n (oldProps = readContext(oldContext));\n unresolvedOldProps = Component.getDerivedStateFromProps;\n (oldContext =\n \"function\" === typeof unresolvedOldProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((contextType !== getDerivedStateFromProps || oldState !== oldProps) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n oldProps\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n var newState = workInProgress.memoizedState;\n contextType !== getDerivedStateFromProps ||\n oldState !== newState ||\n hasForceUpdate ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies))\n ? (\"function\" === typeof unresolvedOldProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n unresolvedOldProps,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType$jscomp$0 =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType$jscomp$0,\n nextProps,\n oldState,\n newState,\n oldProps\n ) ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies)))\n ? (oldContext ||\n (\"function\" !== typeof context.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof context.componentWillUpdate) ||\n (\"function\" === typeof context.componentWillUpdate &&\n context.componentWillUpdate(nextProps, newState, oldProps),\n \"function\" === typeof context.UNSAFE_componentWillUpdate &&\n context.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldProps\n )),\n \"function\" === typeof context.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof context.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (context.props = nextProps),\n (context.state = newState),\n (context.context = oldProps),\n (nextProps = contextType$jscomp$0))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n context = nextProps;\n markRef(current, workInProgress);\n nextProps = 0 !== (workInProgress.flags & 128);\n context || nextProps\n ? ((context = workInProgress.stateNode),\n (Component =\n nextProps && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : context.render()),\n (workInProgress.flags |= 1),\n null !== current && nextProps\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n (workInProgress.memoizedState = context.state),\n (current = workInProgress.child))\n : (current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ));\n return current;\n}\nfunction mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextChildren,\n renderLanes\n) {\n resetHydrationState();\n workInProgress.flags |= 256;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nvar SUSPENDED_MARKER = {\n dehydrated: null,\n treeContext: null,\n retryLane: 0,\n hydrationErrors: null\n};\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: getSuspendedCache() };\n}\nfunction getRemainingWorkInPrimaryTree(\n current,\n primaryTreeDidDefer,\n renderLanes\n) {\n current = null !== current ? current.childLanes & ~renderLanes : 0;\n primaryTreeDidDefer && (current |= workInProgressDeferredLane);\n return current;\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseStackCursor.current & 2));\n JSCompiler_temp && ((showFallback = !0), (workInProgress.flags &= -129));\n JSCompiler_temp = 0 !== (workInProgress.flags & 32);\n workInProgress.flags &= -33;\n if (null === current) {\n if (isHydrating) {\n showFallback\n ? pushPrimaryTreeSuspenseHandler(workInProgress)\n : reuseSuspenseHandlerOnStack(workInProgress);\n if (isHydrating) {\n var nextInstance = nextHydratableInstance,\n JSCompiler_temp$jscomp$0;\n if ((JSCompiler_temp$jscomp$0 = nextInstance)) {\n c: {\n JSCompiler_temp$jscomp$0 = nextInstance;\n for (\n nextInstance = rootOrSingletonContext;\n 8 !== JSCompiler_temp$jscomp$0.nodeType;\n\n ) {\n if (!nextInstance) {\n nextInstance = null;\n break c;\n }\n JSCompiler_temp$jscomp$0 = getNextHydratable(\n JSCompiler_temp$jscomp$0.nextSibling\n );\n if (null === JSCompiler_temp$jscomp$0) {\n nextInstance = null;\n break c;\n }\n }\n nextInstance = JSCompiler_temp$jscomp$0;\n }\n null !== nextInstance\n ? ((workInProgress.memoizedState = {\n dehydrated: nextInstance,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (JSCompiler_temp$jscomp$0 = createFiberImplClass(\n 18,\n null,\n null,\n 0\n )),\n (JSCompiler_temp$jscomp$0.stateNode = nextInstance),\n (JSCompiler_temp$jscomp$0.return = workInProgress),\n (workInProgress.child = JSCompiler_temp$jscomp$0),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (JSCompiler_temp$jscomp$0 = !0))\n : (JSCompiler_temp$jscomp$0 = !1);\n }\n JSCompiler_temp$jscomp$0 || throwOnHydrationMismatch(workInProgress);\n }\n nextInstance = workInProgress.memoizedState;\n if (\n null !== nextInstance &&\n ((nextInstance = nextInstance.dehydrated), null !== nextInstance)\n )\n return (\n isSuspenseInstanceFallback(nextInstance)\n ? (workInProgress.lanes = 32)\n : (workInProgress.lanes = 536870912),\n null\n );\n popSuspenseHandler(workInProgress);\n }\n nextInstance = nextProps.children;\n nextProps = nextProps.fallback;\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = workInProgress.mode),\n (nextInstance = mountWorkInProgressOffscreenFiber(\n { mode: \"hidden\", children: nextInstance },\n showFallback\n )),\n (nextProps = createFiberFromFragment(\n nextProps,\n showFallback,\n renderLanes,\n null\n )),\n (nextInstance.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextInstance.sibling = nextProps),\n (workInProgress.child = nextInstance),\n (showFallback = workInProgress.child),\n (showFallback.memoizedState = mountSuspenseOffscreenState(renderLanes)),\n (showFallback.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n nextProps\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n return mountSuspensePrimaryChildren(workInProgress, nextInstance);\n }\n JSCompiler_temp$jscomp$0 = current.memoizedState;\n if (\n null !== JSCompiler_temp$jscomp$0 &&\n ((nextInstance = JSCompiler_temp$jscomp$0.dehydrated),\n null !== nextInstance)\n ) {\n if (didSuspend)\n workInProgress.flags & 256\n ? (pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags &= -257),\n (workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n )))\n : null !== workInProgress.memoizedState\n ? (reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null))\n : (reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = nextProps.fallback),\n (nextInstance = workInProgress.mode),\n (nextProps = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: nextProps.children },\n nextInstance\n )),\n (showFallback = createFiberFromFragment(\n showFallback,\n nextInstance,\n renderLanes,\n null\n )),\n (showFallback.flags |= 2),\n (nextProps.return = workInProgress),\n (showFallback.return = workInProgress),\n (nextProps.sibling = showFallback),\n (workInProgress.child = nextProps),\n reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n ),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState =\n mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n (workInProgress = showFallback));\n else if (\n (pushPrimaryTreeSuspenseHandler(workInProgress),\n isSuspenseInstanceFallback(nextInstance))\n ) {\n JSCompiler_temp =\n nextInstance.nextSibling && nextInstance.nextSibling.dataset;\n if (JSCompiler_temp) var digest = JSCompiler_temp.dgst;\n JSCompiler_temp = digest;\n nextProps = Error(formatProdErrorMessage(419));\n nextProps.stack = \"\";\n nextProps.digest = JSCompiler_temp;\n queueHydrationError({ value: nextProps, source: null, stack: null });\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (JSCompiler_temp = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || JSCompiler_temp)\n ) {\n JSCompiler_temp = workInProgressRoot;\n if (\n null !== JSCompiler_temp &&\n ((nextProps = renderLanes & -renderLanes),\n (nextProps =\n 0 !== (nextProps & 42)\n ? 1\n : getBumpedLaneForHydrationByLane(nextProps)),\n (nextProps =\n 0 !== (nextProps & (JSCompiler_temp.suspendedLanes | renderLanes))\n ? 0\n : nextProps),\n 0 !== nextProps && nextProps !== JSCompiler_temp$jscomp$0.retryLane)\n )\n throw (\n ((JSCompiler_temp$jscomp$0.retryLane = nextProps),\n enqueueConcurrentRenderForLane(current, nextProps),\n scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps),\n SelectiveHydrationException)\n );\n \"$?\" === nextInstance.data || renderDidSuspendDelayIfPossible();\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n \"$?\" === nextInstance.data\n ? ((workInProgress.flags |= 192),\n (workInProgress.child = current.child),\n (workInProgress = null))\n : ((current = JSCompiler_temp$jscomp$0.treeContext),\n (nextHydratableInstance = getNextHydratable(\n nextInstance.nextSibling\n )),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n ((idStack[idStackIndex++] = treeContextId),\n (idStack[idStackIndex++] = treeContextOverflow),\n (idStack[idStackIndex++] = treeContextProvider),\n (treeContextId = current.id),\n (treeContextOverflow = current.overflow),\n (treeContextProvider = workInProgress)),\n (workInProgress = mountSuspensePrimaryChildren(\n workInProgress,\n nextProps.children\n )),\n (workInProgress.flags |= 4096));\n return workInProgress;\n }\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = nextProps.fallback),\n (nextInstance = workInProgress.mode),\n (JSCompiler_temp$jscomp$0 = current.child),\n (digest = JSCompiler_temp$jscomp$0.sibling),\n (nextProps = createWorkInProgress(JSCompiler_temp$jscomp$0, {\n mode: \"hidden\",\n children: nextProps.children\n })),\n (nextProps.subtreeFlags =\n JSCompiler_temp$jscomp$0.subtreeFlags & 65011712),\n null !== digest\n ? (showFallback = createWorkInProgress(digest, showFallback))\n : ((showFallback = createFiberFromFragment(\n showFallback,\n nextInstance,\n renderLanes,\n null\n )),\n (showFallback.flags |= 2)),\n (showFallback.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextProps.sibling = showFallback),\n (workInProgress.child = nextProps),\n (nextProps = showFallback),\n (showFallback = workInProgress.child),\n (nextInstance = current.child.memoizedState),\n null === nextInstance\n ? (nextInstance = mountSuspenseOffscreenState(renderLanes))\n : ((JSCompiler_temp$jscomp$0 = nextInstance.cachePool),\n null !== JSCompiler_temp$jscomp$0\n ? ((digest = CacheContext._currentValue),\n (JSCompiler_temp$jscomp$0 =\n JSCompiler_temp$jscomp$0.parent !== digest\n ? { parent: digest, pool: digest }\n : JSCompiler_temp$jscomp$0))\n : (JSCompiler_temp$jscomp$0 = getSuspendedCache()),\n (nextInstance = {\n baseLanes: nextInstance.baseLanes | renderLanes,\n cachePool: JSCompiler_temp$jscomp$0\n })),\n (showFallback.memoizedState = nextInstance),\n (showFallback.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n nextProps\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n renderLanes = current.child;\n current = renderLanes.sibling;\n renderLanes = createWorkInProgress(renderLanes, {\n mode: \"visible\",\n children: nextProps.children\n });\n renderLanes.return = workInProgress;\n renderLanes.sibling = null;\n null !== current &&\n ((JSCompiler_temp = workInProgress.deletions),\n null === JSCompiler_temp\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : JSCompiler_temp.push(current));\n workInProgress.child = renderLanes;\n workInProgress.memoizedState = null;\n return renderLanes;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction mountWorkInProgressOffscreenFiber(offscreenProps, mode) {\n offscreenProps = createFiberImplClass(22, offscreenProps, null, mode);\n offscreenProps.lanes = 0;\n offscreenProps.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n };\n return offscreenProps;\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n reconcileChildren(current, workInProgress, nextProps.children, renderLanes);\n nextProps = suspenseStackCursor.current;\n if (0 !== (nextProps & 2))\n (nextProps = (nextProps & 1) | 2), (workInProgress.flags |= 128);\n else {\n if (null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n nextProps &= 1;\n }\n push(suspenseStackCursor, nextProps);\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child), (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode\n );\n break;\n case \"backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode\n );\n break;\n case \"together\":\n initSuspenseListRenderState(workInProgress, !1, null, null, void 0);\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes))\n if (null !== current) {\n if (\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n 0 === (renderLanes & workInProgress.childLanes))\n )\n return null;\n } else return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(formatProdErrorMessage(153));\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling =\n createWorkInProgress(current, current.pendingProps)),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction checkScheduledUpdateOrContext(current, renderLanes) {\n if (0 !== (current.lanes & renderLanes)) return !0;\n current = current.dependencies;\n return null !== current && checkIfContextChanged(current) ? !0 : !1;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n resetHydrationState();\n break;\n case 27:\n case 5:\n pushHostContext(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n pushProvider(\n workInProgress,\n workInProgress.type,\n workInProgress.memoizedProps.value\n );\n break;\n case 13:\n var state = workInProgress.memoizedState;\n if (null !== state) {\n if (null !== state.dehydrated)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n pushPrimaryTreeSuspenseHandler(workInProgress);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n break;\n case 19:\n var didSuspendBefore = 0 !== (current.flags & 128);\n state = 0 !== (renderLanes & workInProgress.childLanes);\n state ||\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (state = 0 !== (renderLanes & workInProgress.childLanes)));\n if (didSuspendBefore) {\n if (state)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n didSuspendBefore = workInProgress.memoizedState;\n null !== didSuspendBefore &&\n ((didSuspendBefore.rendering = null),\n (didSuspendBefore.tail = null),\n (didSuspendBefore.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (state) break;\n else return null;\n case 22:\n case 23:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(current, workInProgress, renderLanes)\n );\n case 24:\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction beginWork(current, workInProgress, renderLanes) {\n if (null !== current)\n if (current.memoizedProps !== workInProgress.pendingProps)\n didReceiveUpdate = !0;\n else {\n if (\n !checkScheduledUpdateOrContext(current, renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else\n (didReceiveUpdate = !1),\n isHydrating &&\n 0 !== (workInProgress.flags & 1048576) &&\n pushTreeId(workInProgress, treeForkCount, workInProgress.index);\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 16:\n a: {\n current = workInProgress.pendingProps;\n var lazyComponent = workInProgress.elementType,\n init = lazyComponent._init;\n lazyComponent = init(lazyComponent._payload);\n workInProgress.type = lazyComponent;\n if (\"function\" === typeof lazyComponent)\n shouldConstruct(lazyComponent)\n ? ((current = resolveClassComponentProps(lazyComponent, current)),\n (workInProgress.tag = 1),\n (workInProgress = updateClassComponent(\n null,\n workInProgress,\n lazyComponent,\n current,\n renderLanes\n )))\n : ((workInProgress.tag = 0),\n (workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n lazyComponent,\n current,\n renderLanes\n )));\n else {\n if (void 0 !== lazyComponent && null !== lazyComponent)\n if (\n ((init = lazyComponent.$$typeof), init === REACT_FORWARD_REF_TYPE)\n ) {\n workInProgress.tag = 11;\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n lazyComponent,\n current,\n renderLanes\n );\n break a;\n } else if (init === REACT_MEMO_TYPE) {\n workInProgress.tag = 14;\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n lazyComponent,\n current,\n renderLanes\n );\n break a;\n }\n workInProgress =\n getComponentNameFromType(lazyComponent) || lazyComponent;\n throw Error(formatProdErrorMessage(306, workInProgress, \"\"));\n }\n }\n return workInProgress;\n case 0:\n return updateFunctionComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 1:\n return (\n (lazyComponent = workInProgress.type),\n (init = resolveClassComponentProps(\n lazyComponent,\n workInProgress.pendingProps\n )),\n updateClassComponent(\n current,\n workInProgress,\n lazyComponent,\n init,\n renderLanes\n )\n );\n case 3:\n a: {\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n if (null === current) throw Error(formatProdErrorMessage(387));\n lazyComponent = workInProgress.pendingProps;\n var prevState = workInProgress.memoizedState;\n init = prevState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, lazyComponent, null, renderLanes);\n var nextState = workInProgress.memoizedState;\n lazyComponent = nextState.cache;\n pushProvider(workInProgress, CacheContext, lazyComponent);\n lazyComponent !== prevState.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n );\n suspendIfUpdateReadFromEntangledAsyncAction();\n lazyComponent = nextState.element;\n if (prevState.isDehydrated)\n if (\n ((prevState = {\n element: lazyComponent,\n isDehydrated: !1,\n cache: nextState.cache\n }),\n (workInProgress.updateQueue.baseState = prevState),\n (workInProgress.memoizedState = prevState),\n workInProgress.flags & 256)\n ) {\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n lazyComponent,\n renderLanes\n );\n break a;\n } else if (lazyComponent !== init) {\n init = createCapturedValueAtFiber(\n Error(formatProdErrorMessage(424)),\n workInProgress\n );\n queueHydrationError(init);\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n lazyComponent,\n renderLanes\n );\n break a;\n } else {\n current = workInProgress.stateNode.containerInfo;\n switch (current.nodeType) {\n case 9:\n current = current.body;\n break;\n default:\n current =\n \"HTML\" === current.nodeName\n ? current.ownerDocument.body\n : current;\n }\n nextHydratableInstance = getNextHydratable(current.firstChild);\n hydrationParentFiber = workInProgress;\n isHydrating = !0;\n hydrationErrors = null;\n rootOrSingletonContext = !0;\n renderLanes = mountChildFibers(\n workInProgress,\n null,\n lazyComponent,\n renderLanes\n );\n for (workInProgress.child = renderLanes; renderLanes; )\n (renderLanes.flags = (renderLanes.flags & -3) | 4096),\n (renderLanes = renderLanes.sibling);\n }\n else {\n resetHydrationState();\n if (lazyComponent === init) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n reconcileChildren(\n current,\n workInProgress,\n lazyComponent,\n renderLanes\n );\n }\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 26:\n return (\n markRef(current, workInProgress),\n null === current\n ? (renderLanes = getResource(\n workInProgress.type,\n null,\n workInProgress.pendingProps,\n null\n ))\n ? (workInProgress.memoizedState = renderLanes)\n : isHydrating ||\n ((renderLanes = workInProgress.type),\n (current = workInProgress.pendingProps),\n (lazyComponent = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n ).createElement(renderLanes)),\n (lazyComponent[internalInstanceKey] = workInProgress),\n (lazyComponent[internalPropsKey] = current),\n setInitialProperties(lazyComponent, renderLanes, current),\n markNodeAsHoistable(lazyComponent),\n (workInProgress.stateNode = lazyComponent))\n : (workInProgress.memoizedState = getResource(\n workInProgress.type,\n current.memoizedProps,\n workInProgress.pendingProps,\n current.memoizedState\n )),\n null\n );\n case 27:\n return (\n pushHostContext(workInProgress),\n null === current &&\n isHydrating &&\n ((lazyComponent = workInProgress.stateNode =\n resolveSingletonInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n rootInstanceStackCursor.current\n )),\n (hydrationParentFiber = workInProgress),\n (rootOrSingletonContext = !0),\n (init = nextHydratableInstance),\n isSingletonScope(workInProgress.type)\n ? ((previousHydratableOnEnteringScopedSingleton = init),\n (nextHydratableInstance = getNextHydratable(\n lazyComponent.firstChild\n )))\n : (nextHydratableInstance = init)),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n markRef(current, workInProgress),\n null === current && (workInProgress.flags |= 4194304),\n workInProgress.child\n );\n case 5:\n if (null === current && isHydrating) {\n if ((init = lazyComponent = nextHydratableInstance))\n (lazyComponent = canHydrateInstance(\n lazyComponent,\n workInProgress.type,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== lazyComponent\n ? ((workInProgress.stateNode = lazyComponent),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = getNextHydratable(\n lazyComponent.firstChild\n )),\n (rootOrSingletonContext = !1),\n (init = !0))\n : (init = !1);\n init || throwOnHydrationMismatch(workInProgress);\n }\n pushHostContext(workInProgress);\n init = workInProgress.type;\n prevState = workInProgress.pendingProps;\n nextState = null !== current ? current.memoizedProps : null;\n lazyComponent = prevState.children;\n shouldSetTextContent(init, prevState)\n ? (lazyComponent = null)\n : null !== nextState &&\n shouldSetTextContent(init, nextState) &&\n (workInProgress.flags |= 32);\n null !== workInProgress.memoizedState &&\n ((init = renderWithHooks(\n current,\n workInProgress,\n TransitionAwareHostComponent,\n null,\n null,\n renderLanes\n )),\n (HostTransitionContext._currentValue = init));\n markRef(current, workInProgress);\n reconcileChildren(current, workInProgress, lazyComponent, renderLanes);\n return workInProgress.child;\n case 6:\n if (null === current && isHydrating) {\n if ((current = renderLanes = nextHydratableInstance))\n (renderLanes = canHydrateTextInstance(\n renderLanes,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== renderLanes\n ? ((workInProgress.stateNode = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (current = !0))\n : (current = !1);\n current || throwOnHydrationMismatch(workInProgress);\n }\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (lazyComponent = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n lazyComponent,\n renderLanes\n ))\n : reconcileChildren(\n current,\n workInProgress,\n lazyComponent,\n renderLanes\n ),\n workInProgress.child\n );\n case 11:\n return updateForwardRef(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n return (\n (lazyComponent = workInProgress.pendingProps),\n pushProvider(workInProgress, workInProgress.type, lazyComponent.value),\n reconcileChildren(\n current,\n workInProgress,\n lazyComponent.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 9:\n return (\n (init = workInProgress.type._context),\n (lazyComponent = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress),\n (init = readContext(init)),\n (lazyComponent = lazyComponent(init)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, lazyComponent, renderLanes),\n workInProgress.child\n );\n case 14:\n return updateMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 31:\n return (\n (lazyComponent = workInProgress.pendingProps),\n (renderLanes = workInProgress.mode),\n (lazyComponent = {\n mode: lazyComponent.mode,\n children: lazyComponent.children\n }),\n null === current\n ? ((renderLanes = mountWorkInProgressOffscreenFiber(\n lazyComponent,\n renderLanes\n )),\n (renderLanes.ref = workInProgress.ref),\n (workInProgress.child = renderLanes),\n (renderLanes.return = workInProgress),\n (workInProgress = renderLanes))\n : ((renderLanes = createWorkInProgress(current.child, lazyComponent)),\n (renderLanes.ref = workInProgress.ref),\n (workInProgress.child = renderLanes),\n (renderLanes.return = workInProgress),\n (workInProgress = renderLanes)),\n workInProgress\n );\n case 22:\n return updateOffscreenComponent(current, workInProgress, renderLanes);\n case 24:\n return (\n prepareToReadContext(workInProgress),\n (lazyComponent = readContext(CacheContext)),\n null === current\n ? ((init = peekCacheFromPool()),\n null === init &&\n ((init = workInProgressRoot),\n (prevState = createCache()),\n (init.pooledCache = prevState),\n prevState.refCount++,\n null !== prevState && (init.pooledCacheLanes |= renderLanes),\n (init = prevState)),\n (workInProgress.memoizedState = {\n parent: lazyComponent,\n cache: init\n }),\n initializeUpdateQueue(workInProgress),\n pushProvider(workInProgress, CacheContext, init))\n : (0 !== (current.lanes & renderLanes) &&\n (cloneUpdateQueue(current, workInProgress),\n processUpdateQueue(workInProgress, null, null, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction()),\n (init = current.memoizedState),\n (prevState = workInProgress.memoizedState),\n init.parent !== lazyComponent\n ? ((init = { parent: lazyComponent, cache: lazyComponent }),\n (workInProgress.memoizedState = init),\n 0 === workInProgress.lanes &&\n (workInProgress.memoizedState =\n workInProgress.updateQueue.baseState =\n init),\n pushProvider(workInProgress, CacheContext, lazyComponent))\n : ((lazyComponent = prevState.cache),\n pushProvider(workInProgress, CacheContext, lazyComponent),\n lazyComponent !== init.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n ))),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 29:\n throw workInProgress.pendingProps;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction markUpdate(workInProgress) {\n workInProgress.flags |= 4;\n}\nfunction preloadResourceAndSuspendIfNeeded(workInProgress, resource) {\n if (\"stylesheet\" !== resource.type || 0 !== (resource.state.loading & 4))\n workInProgress.flags &= -16777217;\n else if (((workInProgress.flags |= 16777216), !preloadResource(resource))) {\n resource = suspenseHandlerStackCursor.current;\n if (\n null !== resource &&\n ((workInProgressRootRenderLanes & 4194048) ===\n workInProgressRootRenderLanes\n ? null !== shellBoundary\n : ((workInProgressRootRenderLanes & 62914560) !==\n workInProgressRootRenderLanes &&\n 0 === (workInProgressRootRenderLanes & 536870912)) ||\n resource !== shellBoundary)\n )\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n workInProgress.flags |= 8192;\n }\n}\nfunction scheduleRetryEffect(workInProgress, retryQueue) {\n null !== retryQueue && (workInProgress.flags |= 4);\n workInProgress.flags & 16384 &&\n ((retryQueue =\n 22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),\n (workInProgress.lanes |= retryQueue),\n (workInProgressSuspendedRetryLanes |= retryQueue));\n}\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (!isHydrating)\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$113 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$113 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$113\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$113.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$114 = completedWork.child; null !== child$114; )\n (newChildLanes |= child$114.lanes | child$114.childLanes),\n (subtreeFlags |= child$114.subtreeFlags & 65011712),\n (subtreeFlags |= child$114.flags & 65011712),\n (child$114.return = completedWork),\n (child$114 = child$114.sibling);\n else\n for (child$114 = completedWork.child; null !== child$114; )\n (newChildLanes |= child$114.lanes | child$114.childLanes),\n (subtreeFlags |= child$114.subtreeFlags),\n (subtreeFlags |= child$114.flags),\n (child$114.return = completedWork),\n (child$114 = child$114.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 31:\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return bubbleProperties(workInProgress), null;\n case 3:\n renderLanes = workInProgress.stateNode;\n newProps = null;\n null !== current && (newProps = current.memoizedState.cache);\n workInProgress.memoizedState.cache !== newProps &&\n (workInProgress.flags |= 2048);\n popProvider(CacheContext);\n popHostContainer();\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null));\n if (null === current || null === current.child)\n popHydrationState(workInProgress)\n ? markUpdate(workInProgress)\n : null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n upgradeHydrationErrorsToRecoverable());\n bubbleProperties(workInProgress);\n return null;\n case 26:\n return (\n (renderLanes = workInProgress.memoizedState),\n null === current\n ? (markUpdate(workInProgress),\n null !== renderLanes\n ? (bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, renderLanes))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217)))\n : renderLanes\n ? renderLanes !== current.memoizedState\n ? (markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, renderLanes))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217))\n : (current.memoizedProps !== newProps && markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217)),\n null\n );\n case 27:\n popHostContext(workInProgress);\n renderLanes = rootInstanceStackCursor.current;\n var type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n current = contextStackCursor.current;\n popHydrationState(workInProgress)\n ? prepareToHydrateHostInstance(workInProgress, current)\n : ((current = resolveSingletonInstance(type, newProps, renderLanes)),\n (workInProgress.stateNode = current),\n markUpdate(workInProgress));\n }\n bubbleProperties(workInProgress);\n return null;\n case 5:\n popHostContext(workInProgress);\n renderLanes = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n current = contextStackCursor.current;\n if (popHydrationState(workInProgress))\n prepareToHydrateHostInstance(workInProgress, current);\n else {\n type = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n );\n switch (current) {\n case 1:\n current = type.createElementNS(\n \"http://www.w3.org/2000/svg\",\n renderLanes\n );\n break;\n case 2:\n current = type.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n renderLanes\n );\n break;\n default:\n switch (renderLanes) {\n case \"svg\":\n current = type.createElementNS(\n \"http://www.w3.org/2000/svg\",\n renderLanes\n );\n break;\n case \"math\":\n current = type.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n renderLanes\n );\n break;\n case \"script\":\n current = type.createElement(\"div\");\n current.innerHTML = \" - + +