From 152a4ab8e731e8bb8aa7ab2225154f6c2385643e Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 5 Aug 2025 21:49:18 -0700 Subject: [PATCH 01/14] simple solution to updating the client --- eval_protocol/utils/logs_server.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/eval_protocol/utils/logs_server.py b/eval_protocol/utils/logs_server.py index d8ae3f57..16b68efe 100644 --- a/eval_protocol/utils/logs_server.py +++ b/eval_protocol/utils/logs_server.py @@ -97,6 +97,18 @@ def broadcast_file_update(self, update_type: str, file_path: str): return logger.info(f"Broadcasting file update: {update_type} {file_path}") + logs = default_logger.read() + # send initialize_logs message to all connected clients + for connection in self.active_connections: + asyncio.run_coroutine_threadsafe( + connection.send_text( + json.dumps( + {"type": "initialize_logs", "logs": [log.model_dump_json(exclude_none=True) for log in logs]} + ) + ), + self._loop, + ) + message = {"type": update_type, "path": file_path, "timestamp": time.time()} # Include file contents for created and modified events if update_type in ["file_created", "file_changed"] and os.path.exists(file_path): From 71dd500fcdf4841dc613ca46bcab33310fb81717 Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 5 Aug 2025 22:02:31 -0700 Subject: [PATCH 02/14] fix layout of expanded row --- vite-app/src/components/Dashboard.tsx | 4 +-- vite-app/src/components/Row.tsx | 44 +++++++++++---------------- 2 files changed, 20 insertions(+), 28 deletions(-) diff --git a/vite-app/src/components/Dashboard.tsx b/vite-app/src/components/Dashboard.tsx index 684eff98..a873d3c9 100644 --- a/vite-app/src/components/Dashboard.tsx +++ b/vite-app/src/components/Dashboard.tsx @@ -63,8 +63,8 @@ const Dashboard = observer(({ onRefresh }: DashboardProps) => { {state.dataset.length === 0 ? ( ) : ( -
- +
+
{/* Table Header */} diff --git a/vite-app/src/components/Row.tsx b/vite-app/src/components/Row.tsx index 6b1cd52b..fb1a3281 100644 --- a/vite-app/src/components/Row.tsx +++ b/vite-app/src/components/Row.tsx @@ -20,23 +20,11 @@ export const Row = observer( > {/* Expand/Collapse Icon */} {/* Name */} {/* Status */} {/* Row ID */} {/* Model */} @@ -80,7 +70,7 @@ export const Row = observer( {/* Score */} diff --git a/vite-app/src/components/StatusIndicator.tsx b/vite-app/src/components/StatusIndicator.tsx index 07a51d84..0e2068e7 100644 --- a/vite-app/src/components/StatusIndicator.tsx +++ b/vite-app/src/components/StatusIndicator.tsx @@ -3,11 +3,19 @@ import React from "react"; interface StatusIndicatorProps { status: string; className?: string; + showSpinner?: boolean; } +const Spinner: React.FC<{ color: string }> = ({ color }) => ( +
+); + const StatusIndicator: React.FC = ({ status, className = "", + showSpinner = false, }) => { const getStatusConfig = (status: string) => { switch (status.toLowerCase()) { @@ -51,12 +59,17 @@ const StatusIndicator: React.FC = ({ }; const config = getStatusConfig(status); + const shouldShowSpinner = showSpinner && status.toLowerCase() === "running"; return (
-
+ {shouldShowSpinner ? ( + + ) : ( +
+ )} {config.text}
); From bc3e3956ec008da32dadb863810010e69e465ac2 Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 5 Aug 2025 22:15:48 -0700 Subject: [PATCH 05/14] Implement row expansion management in GlobalState and Dashboard - Added functionality to manage expanded rows in GlobalState, including methods to toggle individual row expansion and set all rows expanded or collapsed. - Updated Dashboard component to include buttons for expanding and collapsing all rows, and display the count of currently expanded rows. - Refactored Row component to utilize GlobalState for determining and toggling row expansion state. --- vite-app/src/GlobalState.tsx | 33 ++++++++++++++++++++ vite-app/src/components/Dashboard.tsx | 43 ++++++++++++++++++++++----- vite-app/src/components/Row.tsx | 7 +++-- 3 files changed, 73 insertions(+), 10 deletions(-) diff --git a/vite-app/src/GlobalState.tsx b/vite-app/src/GlobalState.tsx index c80652bc..27df64fe 100644 --- a/vite-app/src/GlobalState.tsx +++ b/vite-app/src/GlobalState.tsx @@ -4,11 +4,44 @@ import type { EvaluationRow } from "./types/eval-protocol"; export class GlobalState { isConnected: boolean = false; dataset: EvaluationRow[] = []; + expandedRows: Set = new Set(); + constructor() { makeAutoObservable(this); } setDataset(dataset: EvaluationRow[]) { + // Preserve expansion state for existing rows + const newExpandedRows = new Set(); + dataset.forEach((row) => { + if (this.expandedRows.has(row.input_metadata.row_id)) { + newExpandedRows.add(row.input_metadata.row_id); + } + }); + this.expandedRows = newExpandedRows; this.dataset = dataset; } + + toggleRowExpansion(rowId: string) { + if (this.expandedRows.has(rowId)) { + this.expandedRows.delete(rowId); + } else { + this.expandedRows.add(rowId); + } + } + + isRowExpanded(rowId: string): boolean { + return this.expandedRows.has(rowId); + } + + // Method to expand/collapse all rows + setAllRowsExpanded(expanded: boolean) { + if (expanded) { + this.dataset.forEach((row) => { + this.expandedRows.add(row.input_metadata.row_id); + }); + } else { + this.expandedRows.clear(); + } + } } diff --git a/vite-app/src/components/Dashboard.tsx b/vite-app/src/components/Dashboard.tsx index a873d3c9..3bbaa3e9 100644 --- a/vite-app/src/components/Dashboard.tsx +++ b/vite-app/src/components/Dashboard.tsx @@ -46,16 +46,41 @@ const EmptyState = ({ onRefresh }: { onRefresh: () => void }) => { }; const Dashboard = observer(({ onRefresh }: DashboardProps) => { + const expandAll = () => state.setAllRowsExpanded(true); + const collapseAll = () => state.setAllRowsExpanded(false); + + const expandedCount = state.expandedRows.size; + return (
{/* Summary Stats */}
-

- Dataset Summary -

-
- Total Rows:{" "} - {state.dataset.length} +
+

+ Dataset Summary +

+ {state.dataset.length > 0 && ( +
+ + +
+ )} +
+
+
+ Total Rows:{" "} + {state.dataset.length} +
+ {state.dataset.length > 0 && ( +
+ Expanded:{" "} + {expandedCount} of {state.dataset.length} +
+ )}
@@ -102,7 +127,11 @@ const Dashboard = observer(({ onRefresh }: DashboardProps) => { new Date(a.created_at).getTime() ) .map((row, index) => ( - + ))}
- {isExpanded ? ( +
- - - ) : ( - - )} +
- + {row.eval_metadata?.name || "N/A"} - +
+ +
- + {row.input_metadata.row_id} - + {row.input_metadata.completion_params?.model || "N/A"} = 0.8 ? "text-green-700" @@ -96,7 +86,7 @@ export const Row = observer( {/* Created */} - + {row.created_at instanceof Date ? row.created_at.toLocaleDateString() + " " + @@ -113,12 +103,14 @@ export const Row = observer(
-
+
{/* Left Column - Chat Interface */} - +
+ +
{/* Right Column - Metadata */} -
+
{/* Eval Metadata */} Date: Tue, 5 Aug 2025 22:05:28 -0700 Subject: [PATCH 03/14] Refactor ChatInterface and MetadataSection components for improved layout and functionality - Adjusted default chat height in ChatInterface from 512px to 400px for better UI consistency. - Enhanced MetadataSection to include expandable functionality, allowing users to toggle visibility of metadata details. - Updated Row component to set defaultExpanded prop for MetadataSection, ensuring sections are expanded by default. --- vite-app/src/components/ChatInterface.tsx | 2 +- vite-app/src/components/MetadataSection.tsx | 38 ++++++++++++++++++--- vite-app/src/components/Row.tsx | 2 ++ 3 files changed, 36 insertions(+), 6 deletions(-) diff --git a/vite-app/src/components/ChatInterface.tsx b/vite-app/src/components/ChatInterface.tsx index f9741e63..b6a11762 100644 --- a/vite-app/src/components/ChatInterface.tsx +++ b/vite-app/src/components/ChatInterface.tsx @@ -8,7 +8,7 @@ interface ChatInterfaceProps { export const ChatInterface = ({ messages }: ChatInterfaceProps) => { const [chatWidth, setChatWidth] = useState(600); // Default width in pixels - const [chatHeight, setChatHeight] = useState(512); // Default height in pixels (32rem = 512px) + const [chatHeight, setChatHeight] = useState(400); // Default height in pixels const [isResizingWidth, setIsResizingWidth] = useState(false); const [isResizingHeight, setIsResizingHeight] = useState(false); const [initialWidth, setInitialWidth] = useState(0); diff --git a/vite-app/src/components/MetadataSection.tsx b/vite-app/src/components/MetadataSection.tsx index 2e4cced4..bde8ad0a 100644 --- a/vite-app/src/components/MetadataSection.tsx +++ b/vite-app/src/components/MetadataSection.tsx @@ -1,20 +1,48 @@ +import { useState } from "react"; + export const MetadataSection = ({ title, data, + defaultExpanded = false, }: { title: string; data: any; + defaultExpanded?: boolean; }) => { + const [isExpanded, setIsExpanded] = useState(defaultExpanded); + if (!data || Object.keys(data).length === 0) return null; return (
-

{title}

-
-
-          {JSON.stringify(data, null, 1)}
-        
+
setIsExpanded(!isExpanded)} + > +

{title}

+ + +
+ {isExpanded && ( +
+
+            {JSON.stringify(data, null, 1)}
+          
+
+ )}
); }; diff --git a/vite-app/src/components/Row.tsx b/vite-app/src/components/Row.tsx index fb1a3281..e6f33a04 100644 --- a/vite-app/src/components/Row.tsx +++ b/vite-app/src/components/Row.tsx @@ -115,12 +115,14 @@ export const Row = observer( {/* Evaluation Result */} {/* Ground Truth */} From 18306f715c0667a9933e0ee0476e6ca349106e6a Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 5 Aug 2025 22:08:48 -0700 Subject: [PATCH 04/14] Enhance StatusIndicator to show spinner for running status - Updated Row component to pass showSpinner prop to StatusIndicator when the status is "running". - Modified StatusIndicator to conditionally render a spinner based on the showSpinner prop, improving user feedback during loading states. --- vite-app/src/components/Row.tsx | 5 ++++- vite-app/src/components/StatusIndicator.tsx | 15 ++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/vite-app/src/components/Row.tsx b/vite-app/src/components/Row.tsx index e6f33a04..170d7e7c 100644 --- a/vite-app/src/components/Row.tsx +++ b/vite-app/src/components/Row.tsx @@ -49,7 +49,10 @@ export const Row = observer( {/* Status */}
- +
diff --git a/vite-app/src/components/Row.tsx b/vite-app/src/components/Row.tsx index 170d7e7c..26160980 100644 --- a/vite-app/src/components/Row.tsx +++ b/vite-app/src/components/Row.tsx @@ -1,15 +1,16 @@ import { observer } from "mobx-react"; -import { useState } from "react"; import type { EvaluationRow } from "../types/eval-protocol"; import { ChatInterface } from "./ChatInterface"; import { MetadataSection } from "./MetadataSection"; import StatusIndicator from "./StatusIndicator"; +import { state } from "../App"; export const Row = observer( ({ row }: { row: EvaluationRow; index: number }) => { - const [isExpanded, setIsExpanded] = useState(false); + const rowId = row.input_metadata.row_id; + const isExpanded = state.isRowExpanded(rowId); - const toggleExpanded = () => setIsExpanded(!isExpanded); + const toggleExpanded = () => state.toggleRowExpansion(rowId); return ( <> From 907bbf96b868f2ce21ea766cd9df85df9811dd04 Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 5 Aug 2025 22:20:27 -0700 Subject: [PATCH 06/14] Add auto-scroll functionality to ChatInterface for new messages - Implemented auto-scrolling to the bottom of the chat window when new messages are received, enhancing user experience during conversations. - Introduced a new scrollContainerRef to manage scrolling behavior effectively. --- vite-app/src/components/ChatInterface.tsx | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/vite-app/src/components/ChatInterface.tsx b/vite-app/src/components/ChatInterface.tsx index b6a11762..2400fc30 100644 --- a/vite-app/src/components/ChatInterface.tsx +++ b/vite-app/src/components/ChatInterface.tsx @@ -16,9 +16,20 @@ export const ChatInterface = ({ messages }: ChatInterfaceProps) => { const [initialMouseX, setInitialMouseX] = useState(0); const [initialMouseY, setInitialMouseY] = useState(0); const chatContainerRef = useRef(null); + const scrollContainerRef = useRef(null); const resizeHandleRef = useRef(null); const heightResizeHandleRef = useRef(null); + // Auto-scroll to bottom when new messages come in + useEffect(() => { + if (scrollContainerRef.current) { + scrollContainerRef.current.scrollTo({ + top: scrollContainerRef.current.scrollHeight, + behavior: "smooth", + }); + } + }, [messages]); + // Handle horizontal resizing useEffect(() => { const handleMouseMove = (e: MouseEvent) => { @@ -113,6 +124,7 @@ export const ChatInterface = ({ messages }: ChatInterfaceProps) => { style={{ width: `${chatWidth}px` }} >
From dcf21344fcc710680c918b44c6f0ce3a7ff028d2 Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 5 Aug 2025 22:45:41 -0700 Subject: [PATCH 07/14] Refactor GlobalState and Dashboard components for improved data handling and UI - Changed dataset and expandedRows in GlobalState from arrays and sets to objects for better performance and reactivity. - Updated setDataset method to create a new dataset object, preserving expansion state more efficiently. - Refactored Dashboard to utilize totalCount for dataset management and replaced the Row component with EvaluationTable for cleaner structure. - Introduced EvaluationRow and EvaluationTable components to enhance modularity and maintainability of the evaluation display. --- vite-app/src/GlobalState.tsx | 44 ++-- vite-app/src/components/Dashboard.tsx | 65 +----- vite-app/src/components/EvaluationRow.tsx | 242 ++++++++++++++++++++ vite-app/src/components/EvaluationTable.tsx | 56 +++++ vite-app/src/components/Row.tsx | 158 ------------- 5 files changed, 326 insertions(+), 239 deletions(-) create mode 100644 vite-app/src/components/EvaluationRow.tsx create mode 100644 vite-app/src/components/EvaluationTable.tsx delete mode 100644 vite-app/src/components/Row.tsx diff --git a/vite-app/src/GlobalState.tsx b/vite-app/src/GlobalState.tsx index 27df64fe..4ffc962c 100644 --- a/vite-app/src/GlobalState.tsx +++ b/vite-app/src/GlobalState.tsx @@ -3,45 +3,47 @@ import type { EvaluationRow } from "./types/eval-protocol"; export class GlobalState { isConnected: boolean = false; - dataset: EvaluationRow[] = []; - expandedRows: Set = new Set(); + dataset: Record = {}; + expandedRows: Record = {}; constructor() { makeAutoObservable(this); } setDataset(dataset: EvaluationRow[]) { - // Preserve expansion state for existing rows - const newExpandedRows = new Set(); + // Create new dataset object to avoid multiple re-renders dataset.forEach((row) => { - if (this.expandedRows.has(row.input_metadata.row_id)) { - newExpandedRows.add(row.input_metadata.row_id); - } + this.dataset[row.input_metadata.row_id] = row; }); - this.expandedRows = newExpandedRows; - this.dataset = dataset; } toggleRowExpansion(rowId: string) { - if (this.expandedRows.has(rowId)) { - this.expandedRows.delete(rowId); + if (this.expandedRows[rowId]) { + this.expandedRows[rowId] = false; } else { - this.expandedRows.add(rowId); + this.expandedRows[rowId] = true; } } isRowExpanded(rowId: string): boolean { - return this.expandedRows.has(rowId); + return this.expandedRows[rowId]; } - // Method to expand/collapse all rows setAllRowsExpanded(expanded: boolean) { - if (expanded) { - this.dataset.forEach((row) => { - this.expandedRows.add(row.input_metadata.row_id); - }); - } else { - this.expandedRows.clear(); - } + Object.keys(this.dataset).forEach((rowId) => { + this.expandedRows[rowId] = expanded; + }); + } + + // Computed values following MobX best practices + get sortedDataset() { + return Object.values(this.dataset).sort( + (a, b) => + new Date(b.created_at).getTime() - new Date(a.created_at).getTime() + ); + } + + get totalCount() { + return Object.keys(this.dataset).length; } } diff --git a/vite-app/src/components/Dashboard.tsx b/vite-app/src/components/Dashboard.tsx index 3bbaa3e9..82646917 100644 --- a/vite-app/src/components/Dashboard.tsx +++ b/vite-app/src/components/Dashboard.tsx @@ -1,7 +1,7 @@ import { observer } from "mobx-react"; import { state } from "../App"; import Button from "./Button"; -import { Row } from "./Row"; +import { EvaluationTable } from "./EvaluationTable"; interface DashboardProps { onRefresh: () => void; @@ -49,8 +49,6 @@ const Dashboard = observer(({ onRefresh }: DashboardProps) => { const expandAll = () => state.setAllRowsExpanded(true); const collapseAll = () => state.setAllRowsExpanded(false); - const expandedCount = state.expandedRows.size; - return (
{/* Summary Stats */} @@ -59,7 +57,7 @@ const Dashboard = observer(({ onRefresh }: DashboardProps) => {

Dataset Summary

- {state.dataset.length > 0 && ( + {state.totalCount > 0 && (
{/* Show empty state or main table */} - {state.dataset.length === 0 ? ( + {state.totalCount === 0 ? ( ) : ( -
- - {/* Table Header */} - - - - - - - - - - - - - {/* Table Body */} - - {state.dataset - .slice() - .sort( - (a, b) => - new Date(b.created_at).getTime() - - new Date(a.created_at).getTime() - ) - .map((row, index) => ( - - ))} - -
- {/* Expand/Collapse column */} - - Name - - Status - - Row ID - - Model - - Score - - Created -
-
+ )}
); diff --git a/vite-app/src/components/EvaluationRow.tsx b/vite-app/src/components/EvaluationRow.tsx new file mode 100644 index 00000000..ffd9a8dc --- /dev/null +++ b/vite-app/src/components/EvaluationRow.tsx @@ -0,0 +1,242 @@ +import { observer } from "mobx-react"; +import type { EvaluationRow as EvaluationRowType } from "../types/eval-protocol"; +import { ChatInterface } from "./ChatInterface"; +import { MetadataSection } from "./MetadataSection"; +import StatusIndicator from "./StatusIndicator"; +import { state } from "../App"; + +// Small, focused components following "dereference values late" principle +const ExpandIcon = observer(({ rowId }: { rowId: string }) => { + const isExpanded = state.isRowExpanded(rowId); + return ( +
+ + + +
+ ); +}); + +const RowName = observer(({ name }: { name: string | undefined }) => ( + {name || "N/A"} +)); + +const RowStatus = observer( + ({ + status, + showSpinner, + }: { + status: string | undefined; + showSpinner: boolean; + }) => ( +
+ +
+ ) +); + +const RowId = observer(({ rowId }: { rowId: string }) => ( + {rowId} +)); + +const RowModel = observer(({ model }: { model: string | undefined }) => ( + {model || "N/A"} +)); + +const RowScore = observer(({ score }: { score: number | undefined }) => { + const scoreClass = score + ? score >= 0.8 + ? "text-green-700" + : score >= 0.6 + ? "text-yellow-700" + : "text-red-700" + : "text-gray-500"; + + return ( + + {score?.toFixed(3) || "N/A"} + + ); +}); + +const RowCreated = observer(({ created_at }: { created_at: Date | string }) => { + const date = created_at instanceof Date ? created_at : new Date(created_at); + + return ( + + {date.toLocaleDateString() + " " + date.toLocaleTimeString()} + + ); +}); + +// Granular metadata components following "dereference late" principle +const EvalMetadataSection = observer( + ({ data }: { data: EvaluationRowType["eval_metadata"] }) => ( + + ) +); + +const EvaluationResultSection = observer( + ({ data }: { data: EvaluationRowType["evaluation_result"] }) => ( + + ) +); + +const GroundTruthSection = observer( + ({ data }: { data: EvaluationRowType["ground_truth"] }) => ( + + ) +); + +const UsageStatsSection = observer( + ({ data }: { data: EvaluationRowType["usage"] }) => ( + + ) +); + +const InputMetadataSection = observer( + ({ data }: { data: EvaluationRowType["input_metadata"] }) => ( + + ) +); + +const ToolsSection = observer( + ({ data }: { data: EvaluationRowType["tools"] }) => ( + + ) +); + +const ChatInterfaceSection = observer( + ({ messages }: { messages: EvaluationRowType["messages"] }) => ( + + ) +); + +const ExpandedContent = observer( + ({ + messages, + eval_metadata, + evaluation_result, + ground_truth, + usage, + input_metadata, + tools, + }: { + messages: EvaluationRowType["messages"]; + eval_metadata: EvaluationRowType["eval_metadata"]; + evaluation_result: EvaluationRowType["evaluation_result"]; + ground_truth: EvaluationRowType["ground_truth"]; + usage: EvaluationRowType["usage"]; + input_metadata: EvaluationRowType["input_metadata"]; + tools: EvaluationRowType["tools"]; + }) => ( +
+
+ {/* Left Column - Chat Interface */} +
+ +
+ + {/* Right Column - Metadata */} +
+ + + + + + +
+
+
+ ) +); + +export const EvaluationRow = observer( + ({ row }: { row: EvaluationRowType; index: number }) => { + const rowId = row.input_metadata.row_id; + const isExpanded = state.isRowExpanded(rowId); + + const toggleExpanded = () => state.toggleRowExpansion(rowId); + + return ( + <> + {/* Main Table Row */} + + {/* Expand/Collapse Icon */} + + + + + {/* Name */} + + + + + {/* Status */} + + + + + {/* Row ID */} + + + + + {/* Model */} + + + + + {/* Score */} + + + + + {/* Created */} + + + + + + {/* Expanded Content Row */} + {isExpanded && ( + + + + + + )} + + ); + } +); diff --git a/vite-app/src/components/EvaluationTable.tsx b/vite-app/src/components/EvaluationTable.tsx new file mode 100644 index 00000000..7093757a --- /dev/null +++ b/vite-app/src/components/EvaluationTable.tsx @@ -0,0 +1,56 @@ +import { observer } from "mobx-react"; +import { state } from "../App"; +import { EvaluationRow } from "./EvaluationRow"; + +const TableBody = observer(() => { + return ( + + {state.sortedDataset.map((row, index) => ( + + ))} + + ); +}); + +// Dedicated component for rendering the list - following MobX best practices +export const EvaluationTable = observer(() => { + return ( +
+ + {/* Table Header */} + + + + + + + + + + + + + {/* Table Body */} + +
+ {/* Expand/Collapse column */} + + Name + + Status + + Row ID + + Model + + Score + + Created +
+
+ ); +}); diff --git a/vite-app/src/components/Row.tsx b/vite-app/src/components/Row.tsx deleted file mode 100644 index 26160980..00000000 --- a/vite-app/src/components/Row.tsx +++ /dev/null @@ -1,158 +0,0 @@ -import { observer } from "mobx-react"; -import type { EvaluationRow } from "../types/eval-protocol"; -import { ChatInterface } from "./ChatInterface"; -import { MetadataSection } from "./MetadataSection"; -import StatusIndicator from "./StatusIndicator"; -import { state } from "../App"; - -export const Row = observer( - ({ row }: { row: EvaluationRow; index: number }) => { - const rowId = row.input_metadata.row_id; - const isExpanded = state.isRowExpanded(rowId); - - const toggleExpanded = () => state.toggleRowExpansion(rowId); - - return ( - <> - {/* Main Table Row */} - - {/* Expand/Collapse Icon */} - -
- - - -
- - - {/* Name */} - - - {row.eval_metadata?.name || "N/A"} - - - - {/* Status */} - -
- -
- - - {/* Row ID */} - - - {row.input_metadata.row_id} - - - - {/* Model */} - - - {row.input_metadata.completion_params?.model || "N/A"} - - - - {/* Score */} - - = 0.8 - ? "text-green-700" - : row.evaluation_result.score >= 0.6 - ? "text-yellow-700" - : "text-red-700" - : "text-gray-500" - }`} - > - {row.evaluation_result?.score?.toFixed(3) || "N/A"} - - - - {/* Created */} - - - {row.created_at instanceof Date - ? row.created_at.toLocaleDateString() + - " " + - row.created_at.toLocaleTimeString() - : new Date(row.created_at).toLocaleDateString() + - " " + - new Date(row.created_at).toLocaleTimeString()} - - - - - {/* Expanded Content Row */} - {isExpanded && ( - - -
-
- {/* Left Column - Chat Interface */} -
- -
- - {/* Right Column - Metadata */} -
- {/* Eval Metadata */} - - - {/* Evaluation Result */} - - - {/* Ground Truth */} - - - {/* Usage Stats - Compact */} - - - {/* Input Metadata - Less Important */} - - - {/* Tools - Least Important */} - -
-
-
- - - )} - - ); - } -); From eeed6b42796cdca88be3091dfe748c6143b97ac7 Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 5 Aug 2025 22:47:04 -0700 Subject: [PATCH 08/14] Enhance auto-scroll functionality in ChatInterface to prevent initial scroll on mount - Added a reference to track the initial mount state, preventing auto-scrolling on the first render. - Updated the scrolling logic to only trigger after the initial mount when new messages are received, improving user experience during chat interactions. --- vite-app/src/components/ChatInterface.tsx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/vite-app/src/components/ChatInterface.tsx b/vite-app/src/components/ChatInterface.tsx index 2400fc30..4d65a646 100644 --- a/vite-app/src/components/ChatInterface.tsx +++ b/vite-app/src/components/ChatInterface.tsx @@ -19,10 +19,18 @@ export const ChatInterface = ({ messages }: ChatInterfaceProps) => { const scrollContainerRef = useRef(null); const resizeHandleRef = useRef(null); const heightResizeHandleRef = useRef(null); + const isInitialMountRef = useRef(true); // Auto-scroll to bottom when new messages come in useEffect(() => { - if (scrollContainerRef.current) { + // Skip scrolling on initial mount + if (isInitialMountRef.current) { + isInitialMountRef.current = false; + return; + } + + // Scroll to bottom when messages change (after initial mount) + if (messages.length > 0 && scrollContainerRef.current) { scrollContainerRef.current.scrollTo({ top: scrollContainerRef.current.scrollHeight, behavior: "smooth", From 83bfb3e25972dea469dbe5da04b798d39e530313 Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 5 Aug 2025 22:51:36 -0700 Subject: [PATCH 09/14] Refactor auto-scroll logic in ChatInterface to enhance user experience - Replaced initial mount reference with a previous messages length reference to prevent scrolling on the first render and only scroll when new messages are added. - Improved scrolling behavior to avoid unnecessary scrolls when messages are removed, ensuring a smoother chat interaction. --- vite-app/src/components/ChatInterface.tsx | 28 +++++++++++++++-------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/vite-app/src/components/ChatInterface.tsx b/vite-app/src/components/ChatInterface.tsx index 4d65a646..9d6c1862 100644 --- a/vite-app/src/components/ChatInterface.tsx +++ b/vite-app/src/components/ChatInterface.tsx @@ -19,23 +19,31 @@ export const ChatInterface = ({ messages }: ChatInterfaceProps) => { const scrollContainerRef = useRef(null); const resizeHandleRef = useRef(null); const heightResizeHandleRef = useRef(null); - const isInitialMountRef = useRef(true); + const prevMessagesLengthRef = useRef(0); // Auto-scroll to bottom when new messages come in useEffect(() => { - // Skip scrolling on initial mount - if (isInitialMountRef.current) { - isInitialMountRef.current = false; + // On first render, just set the initial length without scrolling + if (prevMessagesLengthRef.current === 0) { + prevMessagesLengthRef.current = messages.length; return; } - // Scroll to bottom when messages change (after initial mount) - if (messages.length > 0 && scrollContainerRef.current) { - scrollContainerRef.current.scrollTo({ - top: scrollContainerRef.current.scrollHeight, - behavior: "smooth", - }); + // Only scroll if we have messages and the number of messages has increased + // This prevents scrolling on initial mount or when messages are removed + if ( + messages.length > 0 && + messages.length > prevMessagesLengthRef.current + ) { + if (scrollContainerRef.current) { + scrollContainerRef.current.scrollTo({ + top: scrollContainerRef.current.scrollHeight, + behavior: "smooth", + }); + } } + // Update the previous length for the next comparison + prevMessagesLengthRef.current = messages.length; }, [messages]); // Handle horizontal resizing From 23c10c45a48356cbfdb5d90dd0fee55feb96f38a Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 5 Aug 2025 22:51:57 -0700 Subject: [PATCH 10/14] update build --- vite-app/dist/assets/favicon-BkAAWQga.png | Bin 0 -> 4763 bytes vite-app/dist/assets/index-BqeSuXV9.js | 61 ------------- vite-app/dist/assets/index-BqeSuXV9.js.map | 1 - vite-app/dist/assets/index-D-1FJ7zw.js | 88 +++++++++++++++++++ vite-app/dist/assets/index-D-1FJ7zw.js.map | 1 + vite-app/dist/assets/index-DFYonil9.css | 1 - vite-app/dist/assets/index-oTZ6nRrN.css | 1 + vite-app/dist/assets/logo-light-BprIBJQW.png | Bin 0 -> 21694 bytes vite-app/dist/index.html | 10 +-- 9 files changed, 95 insertions(+), 68 deletions(-) create mode 100644 vite-app/dist/assets/favicon-BkAAWQga.png delete mode 100644 vite-app/dist/assets/index-BqeSuXV9.js delete mode 100644 vite-app/dist/assets/index-BqeSuXV9.js.map create mode 100644 vite-app/dist/assets/index-D-1FJ7zw.js create mode 100644 vite-app/dist/assets/index-D-1FJ7zw.js.map delete mode 100644 vite-app/dist/assets/index-DFYonil9.css create mode 100644 vite-app/dist/assets/index-oTZ6nRrN.css create mode 100644 vite-app/dist/assets/logo-light-BprIBJQW.png diff --git a/vite-app/dist/assets/favicon-BkAAWQga.png b/vite-app/dist/assets/favicon-BkAAWQga.png new file mode 100644 index 0000000000000000000000000000000000000000..66ff03b44ec8e2b80f36ce8aeb4da603fb17aa23 GIT binary patch literal 4763 zcmd^DXIN8PvtEe;q6biV5zr6}3IZwtk*X#VM4EI&i6AXBL23j#}BhZzvq>vG=k zJOGt(2iP|`0N_{F$DB70f-Q{Nd)$}~ZCV}=&Lsb3o_2hX;y|(Dua_6n^RBw(sHI;1 zE9S;Q^X61@G>b~0B&8Ke_8uc6i&cs;i#du^h61|({P_S~bXzGZ0ZYh87vj!K^T-j9 z?Q=bEOLgx%# zYWvz}Vk0P@tH34mK1a^s*#?i3dA8a(uq}*SmWw8R!#YzpgQ$^{)6eBlQ4V+yMv<(e zjLbC@^{r6%!vW17{S(hK>@4cn$FGN`jq!2lZpT!j!7xQ;DsGPM@B`k=#!tTJu(3czbyVr?{uy?Qz|tfd?gK1_t)E!mr^pzCV?zT($~0wqzj z3S_Aiu=P?dJK?qSS+bB%n#g$MnoBD~rbSHbtg{N_934TI6xL&OE7$X$q-ReuE<;QS zofR!-#Q_!uXv=0Yw%^D6?QJcLgtj=~6vv*1#T}Li%e6B3(qu!Y7L9hu;HQQtSC`Lm z!A4v~OZSD7!_^Io6BVUOQKvmklz2exO*hk4nW_+$*;Iujae3PHelmtC7U@gS115W> z>6VWsqhyXA1pa+#CU)KZhHgJCR3>WxCHZ|((2`ErYfq%G>znwqccV5%CZ6&Ef7Me5 z+q60tH^;0MnjVyU5jd&APfK(`-^iC+iJd1|KR$C{sbc$5YT&G>8Q82JDkilsSkGa# zC2sqLE?}kkTC7;=uc%a%q^GIP%RAlyUD3?f8;*hOFl{xCjFt9RWI{OhCRJ2UM|*Hf z^HcE1tz2=usi@{wNVfXZ-fBieg!H(1Vt3Eheb9xzct=v>dcer7k9+@?`{efBZ^*|? zeF#@K0f+rv{Sm_dB(oaKyJ&Z4Go9n&0ve2z8RHN=rraJE=4X z0~UFNHAlte$*1*@De&;H)AM7k*myZq;Q$v1EmRN}so%*CG@AU*_-4-qwp}N`{c8Ny zvdfBs#@joW9Zo;q6CQ>R`cd2)*THTMj+e_-Ccx)h%$A!z8h4V@W6}VwIKCI%D^s{; z$$!ZZm^;U2bYQ9U{;(qe-~NtKpM?vczDzywYMqhqeS5gw zLC0~fC})w5nDqCPOc3s7=0ZEt!PKv|5&&m}Qzxn6b2_$R+h}$9pY_J7d&6w;?Tg6T zBlVw4s}}|+cY2~nk}gd?o-ZfgU2HhBIl3%>np|3s|F-byY|vbP&^B3SmfAci!{78; z!JbySk&?ms`DJ@er7@YhOkAZcHg%TVW}mRu#K5Z^)ObQE8v%<;nV&4K?QeUxqT}BF zaO@brt^xY3Z_A+S!+1ozL!~$C5k;-0mfJP`W$pUrlzn8T@x2#fJj6I0@Jz83ap+FR zz~@pK)|wk+9>qP2hY&EokwTpsMApv0_*?pxjzC{J4qRVun6`TRSWh~NXI?sL`a=rG zDw1E4QAHIx4s-!>?PGX9Ag58va<$ z9S;bo1yc{}Up1614E$L>>pSnPT&*!OoPK#$uBZ3`^AI;>Ad8)@#5KD6Vm|ph>z#e= zMM!UOS3og(ffq8MG&;*z;j=OHdx!&CN3|lF3DgxR2r)~6OccLvXZ3t+l95B;=LA4( zhVnG|ne?Rl#NxF8|IYd^1@$DZ#YR+E^?c!Zmq<*ux@H)1$7z;1r^eu*4SH7WG%iSl z9<@FBX`|PvK+SG#r`l)kVdW3nwc@o^t)}F1KYmijA(HkTb}MN&UEywe|Pr$nfaHp<9_V#ZKE+zm7Jn)Vnxi@}zpk_GTXC zZ<5Wo)~s}LFT1ep7C$E%4;1Cg6dHb1{jyFs$r!rm<4hI6z*C<%zBN|05_GdK;f={S z2W^GAfqazoccS(;e4A$#=K>0p`w+b~c%DX(PgU+mM65B+BP^7L+m6-ymI^^=6Ki z>%Fb|JD6K-3ssmZ8~xv*C##lOjRd&+4bM;gl6X0oK&g1`J@mXfhf^XpGod^uaMfUb z)c@`KXAfJZyg8vDLTB1@_*y#_!_I8By|KDMMyY!9*v_xaYfFqK@4)dRePQi}O|K!! zyPPz#mDXgHP@pBGzECMHZ8?F^FTw0?i@Hrih|O-r4>}0Nvr}+>f8sz&5`1~VP-3cp zU|hl*+puc%$}JS>sv|K76~W3u`+MvIuWZgEx$G;YyN@GacF3~B%(^WzpFxz>z@%pD zqo0!N!Chhqn2K7SH@k}~Z7T1jFK#hK>6);A;w8g!k8g+L!=;wLY-hXO2&13qoyt8& zj-P3MR`db`C$^H&Ln=&~G;`CfOTF9+PHb=J7Rh+dRE84t*a9<4+S?^iir6Jt7G9`Z z5&`SGvHwpCOkm_*6L*GP>z&R;zFnp5RtL>R^K5Z6#M?3zXW!b|y59_by)V6g6e8Y2 zUTEZ^=Jvzi#7+{7MA1C_(PoB_6$!Yh4rKL#ZXcA^>!^dP)0PvuR{15VG4Uv`06JE27tex#BQcJqeF&5zyVc?Jivx#tRIWXp%Md`!x@BKLNka?49( zwj_?lq!6JaKr%jyYr?C%9x4)=e#xU>At`eVhvP}Q`2}AkE*vm+YUY^L;+{O)0zaEzQ6TwH0C?oTm zL1$tmb&l@~#X#!s8cP>e_8*-?u6e=#cTxY38voCrEk7$ssA^PPBYVf0m7eR}C}8X{ zCf>x3#7Ngp)VlA%E5@Y%XCD5IkpE_?#JZkYc^cq_E&soK;QyZvKH(3BnH~V%?0PE=lOg zwDnY9ok1BAYPWid`N-YzWdi-eKZ8Ki-FCfV?F=oHskI?czPRDLxqJl~^+Ojly}Wda z9+DDR>BQVEP9@QEke4)MuNG! zSd~i!I@%(n-ogqxv}|Scx$TJ>oJyyG`64{L!NSu#ju{-Vwa%KI)iG{<$4%)J(r^h2 zxPk15%@`39rr3WHMa#}&5#)@h9s-;qEoAyVRh@9zIXJ|vMh493O!svhXf*%$Gqhw- zi`Ga~I}BLSmC$NJ+09C-&RZQ+g{r+EG*=w0h29!GW2wXbT#*}-1Mrm+6_$sjvldX| zHTI@glI;Hg!u159O4(m`Qt;kzeD{ZPL_&LhSbjZscv~4Uv+--+TtfWk-3Gqef~$$z zrzzqy3Tmskxk#4T1cN=F__WxN(&(RGG++tD$uncVfn;C3CFA% zNz%+26lZ}{X}i%BOjk)XyHmUM%AJN<#)Y-=t)Ajb3i?)>JeVNd4nt(oo{jFKohXY%MYA12X3osMuvi+Ez1RV0XpjznH*p%oq5evzjAXC+J z;XJ!PDK^#FcB$V`-Cb%(*&MoHYHbQqa@z|hN4a{j*zOAl8fuTD7N{cRA5yb&;9S0_ z!R!%R$;cTUb-L^7tf~k3(()@n(JFXfSe|898+_}Q`!%m7`T!1DB2DygT&?riAHf8+ zZdCDk@1eT8!voO0R}WEX4C^|FC6=;ugRv1`XO{2!ccewAdMHNEtp8IC$M2kbPE0Lw zN@?n7bFX-~k%>pQ++*VCIjefO-WN~y;$E!4oE!u7m$u)TI<@jsx z@X4g;P~uYoJE7;#n>=a+$z?+Oob!O77T)%35;53>78glk>`5jW^5Imte79&s6xKQ=)wI z>Eg9EylLXY{76uyW{Umt@iOI#n##$m2gB@J`>Z!Z79+is*m P|B`?{)(BI60sr7%EUa?O literal 0 HcmV?d00001 diff --git a/vite-app/dist/assets/index-BqeSuXV9.js b/vite-app/dist/assets/index-BqeSuXV9.js deleted file mode 100644 index b11e4e26..00000000 --- a/vite-app/dist/assets/index-BqeSuXV9.js +++ /dev/null @@ -1,61 +0,0 @@ -(function(){const o=document.createElement("link").relList;if(o&&o.supports&&o.supports("modulepreload"))return;for(const h of document.querySelectorAll('link[rel="modulepreload"]'))r(h);new MutationObserver(h=>{for(const S of h)if(S.type==="childList")for(const R of S.addedNodes)R.tagName==="LINK"&&R.rel==="modulepreload"&&r(R)}).observe(document,{childList:!0,subtree:!0});function d(h){const S={};return h.integrity&&(S.integrity=h.integrity),h.referrerPolicy&&(S.referrerPolicy=h.referrerPolicy),h.crossOrigin==="use-credentials"?S.credentials="include":h.crossOrigin==="anonymous"?S.credentials="omit":S.credentials="same-origin",S}function r(h){if(h.ep)return;h.ep=!0;const S=d(h);fetch(h.href,S)}})();function Xd(f){return f&&f.__esModule&&Object.prototype.hasOwnProperty.call(f,"default")?f.default:f}var gc={exports:{}},zu={};/** - * @license React - * react-jsx-runtime.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var zd;function Rv(){if(zd)return zu;zd=1;var f=Symbol.for("react.transitional.element"),o=Symbol.for("react.fragment");function d(r,h,S){var R=null;if(S!==void 0&&(R=""+S),h.key!==void 0&&(R=""+h.key),"key"in h){S={};for(var N in h)N!=="key"&&(S[N]=h[N])}else S=h;return h=S.ref,{$$typeof:f,type:r,key:R,ref:h!==void 0?h:null,props:S}}return zu.Fragment=o,zu.jsx=d,zu.jsxs=d,zu}var Od;function zv(){return Od||(Od=1,gc.exports=Rv()),gc.exports}var wt=zv(),Sc={exports:{}},I={};/** - * @license React - * react.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Md;function Ov(){if(Md)return I;Md=1;var f=Symbol.for("react.transitional.element"),o=Symbol.for("react.portal"),d=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),h=Symbol.for("react.profiler"),S=Symbol.for("react.consumer"),R=Symbol.for("react.context"),N=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),m=Symbol.for("react.memo"),M=Symbol.for("react.lazy"),H=Symbol.iterator;function C(v){return v===null||typeof v!="object"?null:(v=H&&v[H]||v["@@iterator"],typeof v=="function"?v:null)}var k={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Q=Object.assign,j={};function Z(v,x,G){this.props=v,this.context=x,this.refs=j,this.updater=G||k}Z.prototype.isReactComponent={},Z.prototype.setState=function(v,x){if(typeof v!="object"&&typeof v!="function"&&v!=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,v,x,"setState")},Z.prototype.forceUpdate=function(v){this.updater.enqueueForceUpdate(this,v,"forceUpdate")};function Y(){}Y.prototype=Z.prototype;function nt(v,x,G){this.props=v,this.context=x,this.refs=j,this.updater=G||k}var P=nt.prototype=new Y;P.constructor=nt,Q(P,Z.prototype),P.isPureReactComponent=!0;var bt=Array.isArray,W={H:null,A:null,T:null,S:null,V:null},xt=Object.prototype.hasOwnProperty;function Dt(v,x,G,B,V,it){return G=it.ref,{$$typeof:f,type:v,key:x,ref:G!==void 0?G:null,props:it}}function Ht(v,x){return Dt(v.type,x,void 0,void 0,void 0,v.props)}function Et(v){return typeof v=="object"&&v!==null&&v.$$typeof===f}function It(v){var x={"=":"=0",":":"=2"};return"$"+v.replace(/[=:]/g,function(G){return x[G]})}var ol=/\/+/g;function Qt(v,x){return typeof v=="object"&&v!==null&&v.key!=null?It(""+v.key):x.toString(36)}function pe(){}function Ee(v){switch(v.status){case"fulfilled":return v.value;case"rejected":throw v.reason;default:switch(typeof v.status=="string"?v.then(pe,pe):(v.status="pending",v.then(function(x){v.status==="pending"&&(v.status="fulfilled",v.value=x)},function(x){v.status==="pending"&&(v.status="rejected",v.reason=x)})),v.status){case"fulfilled":return v.value;case"rejected":throw v.reason}}throw v}function jt(v,x,G,B,V){var it=typeof v;(it==="undefined"||it==="boolean")&&(v=null);var F=!1;if(v===null)F=!0;else switch(it){case"bigint":case"string":case"number":F=!0;break;case"object":switch(v.$$typeof){case f:case o:F=!0;break;case M:return F=v._init,jt(F(v._payload),x,G,B,V)}}if(F)return V=V(v),F=B===""?"."+Qt(v,0):B,bt(V)?(G="",F!=null&&(G=F.replace(ol,"$&/")+"/"),jt(V,x,G,"",function(kl){return kl})):V!=null&&(Et(V)&&(V=Ht(V,G+(V.key==null||v&&v.key===V.key?"":(""+V.key).replace(ol,"$&/")+"/")+F)),x.push(V)),1;F=0;var tl=B===""?".":B+":";if(bt(v))for(var gt=0;gt>>1,v=O[mt];if(0>>1;mth(B,J))Vh(it,B)?(O[mt]=it,O[V]=J,mt=V):(O[mt]=B,O[G]=J,mt=G);else if(Vh(it,J))O[mt]=it,O[V]=J,mt=V;else break t}}return q}function h(O,q){var J=O.sortIndex-q.sortIndex;return J!==0?J:O.id-q.id}if(f.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var S=performance;f.unstable_now=function(){return S.now()}}else{var R=Date,N=R.now();f.unstable_now=function(){return R.now()-N}}var p=[],m=[],M=1,H=null,C=3,k=!1,Q=!1,j=!1,Z=!1,Y=typeof setTimeout=="function"?setTimeout:null,nt=typeof clearTimeout=="function"?clearTimeout:null,P=typeof setImmediate<"u"?setImmediate:null;function bt(O){for(var q=d(m);q!==null;){if(q.callback===null)r(m);else if(q.startTime<=O)r(m),q.sortIndex=q.expirationTime,o(p,q);else break;q=d(m)}}function W(O){if(j=!1,bt(O),!Q)if(d(p)!==null)Q=!0,xt||(xt=!0,Qt());else{var q=d(m);q!==null&&jt(W,q.startTime-O)}}var xt=!1,Dt=-1,Ht=5,Et=-1;function It(){return Z?!0:!(f.unstable_now()-EtO&&It());){var mt=H.callback;if(typeof mt=="function"){H.callback=null,C=H.priorityLevel;var v=mt(H.expirationTime<=O);if(O=f.unstable_now(),typeof v=="function"){H.callback=v,bt(O),q=!0;break l}H===d(p)&&r(p),bt(O)}else r(p);H=d(p)}if(H!==null)q=!0;else{var x=d(m);x!==null&&jt(W,x.startTime-O),q=!1}}break t}finally{H=null,C=J,k=!1}q=void 0}}finally{q?Qt():xt=!1}}}var Qt;if(typeof P=="function")Qt=function(){P(ol)};else if(typeof MessageChannel<"u"){var pe=new MessageChannel,Ee=pe.port2;pe.port1.onmessage=ol,Qt=function(){Ee.postMessage(null)}}else Qt=function(){Y(ol,0)};function jt(O,q){Dt=Y(function(){O(f.unstable_now())},q)}f.unstable_IdlePriority=5,f.unstable_ImmediatePriority=1,f.unstable_LowPriority=4,f.unstable_NormalPriority=3,f.unstable_Profiling=null,f.unstable_UserBlockingPriority=2,f.unstable_cancelCallback=function(O){O.callback=null},f.unstable_forceFrameRate=function(O){0>O||125mt?(O.sortIndex=J,o(m,O),d(p)===null&&O===d(m)&&(j?(nt(Dt),Dt=-1):j=!0,jt(W,J-mt))):(O.sortIndex=v,o(p,O),Q||k||(Q=!0,xt||(xt=!0,Qt()))),O},f.unstable_shouldYield=It,f.unstable_wrapCallback=function(O){var q=C;return function(){var J=C;C=q;try{return O.apply(this,arguments)}finally{C=J}}}}(Ec)),Ec}var Ud;function _v(){return Ud||(Ud=1,pc.exports=Dv()),pc.exports}var Tc={exports:{}},Kt={};/** - * @license React - * react-dom.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Nd;function Uv(){if(Nd)return Kt;Nd=1;var f=Oc();function o(p){var m="https://react.dev/errors/"+p;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(f)}catch(o){console.error(o)}}return f(),Tc.exports=Uv(),Tc.exports}/** - * @license React - * react-dom-client.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Hd;function xv(){if(Hd)return Ou;Hd=1;var f=_v(),o=Oc(),d=Nv();function r(t){var l="https://react.dev/errors/"+t;if(1v||(t.current=mt[v],mt[v]=null,v--)}function B(t,l){v++,mt[v]=t.current,t.current=l}var V=x(null),it=x(null),F=x(null),tl=x(null);function gt(t,l){switch(B(F,l),B(it,t),B(V,null),l.nodeType){case 9:case 11:t=(t=l.documentElement)&&(t=t.namespaceURI)?Is(t):0;break;default:if(t=l.tagName,l=l.namespaceURI)l=Is(l),t=td(l,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}G(V),B(V,t)}function kl(){G(V),G(it),G(F)}function li(t){t.memoizedState!==null&&B(tl,t);var l=V.current,e=td(l,t.type);l!==e&&(B(it,t),B(V,e))}function xu(t){it.current===t&&(G(V),G(it)),tl.current===t&&(G(tl),pu._currentValue=J)}var ei=Object.prototype.hasOwnProperty,ai=f.unstable_scheduleCallback,ui=f.unstable_cancelCallback,eh=f.unstable_shouldYield,ah=f.unstable_requestPaint,Al=f.unstable_now,uh=f.unstable_getCurrentPriorityLevel,xc=f.unstable_ImmediatePriority,Hc=f.unstable_UserBlockingPriority,Hu=f.unstable_NormalPriority,nh=f.unstable_LowPriority,Cc=f.unstable_IdlePriority,ih=f.log,fh=f.unstable_setDisableYieldValue,Da=null,ll=null;function Wl(t){if(typeof ih=="function"&&fh(t),ll&&typeof ll.setStrictMode=="function")try{ll.setStrictMode(Da,t)}catch{}}var el=Math.clz32?Math.clz32:oh,ch=Math.log,rh=Math.LN2;function oh(t){return t>>>=0,t===0?32:31-(ch(t)/rh|0)|0}var Cu=256,Bu=4194304;function Te(t){var l=t&42;if(l!==0)return l;switch(t&-t){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 t&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return t}}function qu(t,l,e){var a=t.pendingLanes;if(a===0)return 0;var u=0,n=t.suspendedLanes,i=t.pingedLanes;t=t.warmLanes;var c=a&134217727;return c!==0?(a=c&~n,a!==0?u=Te(a):(i&=c,i!==0?u=Te(i):e||(e=c&~t,e!==0&&(u=Te(e))))):(c=a&~n,c!==0?u=Te(c):i!==0?u=Te(i):e||(e=a&~t,e!==0&&(u=Te(e)))),u===0?0:l!==0&&l!==u&&(l&n)===0&&(n=u&-u,e=l&-l,n>=e||n===32&&(e&4194048)!==0)?l:u}function _a(t,l){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&l)===0}function sh(t,l){switch(t){case 1:case 2:case 4:case 8:case 64:return l+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 l+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 Bc(){var t=Cu;return Cu<<=1,(Cu&4194048)===0&&(Cu=256),t}function qc(){var t=Bu;return Bu<<=1,(Bu&62914560)===0&&(Bu=4194304),t}function ni(t){for(var l=[],e=0;31>e;e++)l.push(t);return l}function Ua(t,l){t.pendingLanes|=l,l!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function dh(t,l,e,a,u,n){var i=t.pendingLanes;t.pendingLanes=e,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=e,t.entangledLanes&=e,t.errorRecoveryDisabledLanes&=e,t.shellSuspendCounter=0;var c=t.entanglements,s=t.expirationTimes,E=t.hiddenUpdates;for(e=i&~e;0)":-1u||s[a]!==E[u]){var z=` -`+s[a].replace(" at new "," at ");return t.displayName&&z.includes("")&&(z=z.replace("",t.displayName)),z}while(1<=a&&0<=u);break}}}finally{si=!1,Error.prepareStackTrace=e}return(e=t?t.displayName||t.name:"")?we(e):""}function Sh(t){switch(t.tag){case 26:case 27:case 5:return we(t.type);case 16:return we("Lazy");case 13:return we("Suspense");case 19:return we("SuspenseList");case 0:case 15:return di(t.type,!1);case 11:return di(t.type.render,!1);case 1:return di(t.type,!0);case 31:return we("Activity");default:return""}}function wc(t){try{var l="";do l+=Sh(t),t=t.return;while(t);return l}catch(e){return` -Error generating stack: `+e.message+` -`+e.stack}}function sl(t){switch(typeof t){case"bigint":case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function Jc(t){var l=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(l==="checkbox"||l==="radio")}function bh(t){var l=Jc(t)?"checked":"value",e=Object.getOwnPropertyDescriptor(t.constructor.prototype,l),a=""+t[l];if(!t.hasOwnProperty(l)&&typeof e<"u"&&typeof e.get=="function"&&typeof e.set=="function"){var u=e.get,n=e.set;return Object.defineProperty(t,l,{configurable:!0,get:function(){return u.call(this)},set:function(i){a=""+i,n.call(this,i)}}),Object.defineProperty(t,l,{enumerable:e.enumerable}),{getValue:function(){return a},setValue:function(i){a=""+i},stopTracking:function(){t._valueTracker=null,delete t[l]}}}}function Lu(t){t._valueTracker||(t._valueTracker=bh(t))}function $c(t){if(!t)return!1;var l=t._valueTracker;if(!l)return!0;var e=l.getValue(),a="";return t&&(a=Jc(t)?t.checked?"true":"false":t.value),t=a,t!==e?(l.setValue(t),!0):!1}function Xu(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}var ph=/[\n"\\]/g;function dl(t){return t.replace(ph,function(l){return"\\"+l.charCodeAt(0).toString(16)+" "})}function hi(t,l,e,a,u,n,i,c){t.name="",i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?t.type=i:t.removeAttribute("type"),l!=null?i==="number"?(l===0&&t.value===""||t.value!=l)&&(t.value=""+sl(l)):t.value!==""+sl(l)&&(t.value=""+sl(l)):i!=="submit"&&i!=="reset"||t.removeAttribute("value"),l!=null?mi(t,i,sl(l)):e!=null?mi(t,i,sl(e)):a!=null&&t.removeAttribute("value"),u==null&&n!=null&&(t.defaultChecked=!!n),u!=null&&(t.checked=u&&typeof u!="function"&&typeof u!="symbol"),c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"?t.name=""+sl(c):t.removeAttribute("name")}function kc(t,l,e,a,u,n,i,c){if(n!=null&&typeof n!="function"&&typeof n!="symbol"&&typeof n!="boolean"&&(t.type=n),l!=null||e!=null){if(!(n!=="submit"&&n!=="reset"||l!=null))return;e=e!=null?""+sl(e):"",l=l!=null?""+sl(l):e,c||l===t.value||(t.value=l),t.defaultValue=l}a=a??u,a=typeof a!="function"&&typeof a!="symbol"&&!!a,t.checked=c?t.checked:!!a,t.defaultChecked=!!a,i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(t.name=i)}function mi(t,l,e){l==="number"&&Xu(t.ownerDocument)===t||t.defaultValue===""+e||(t.defaultValue=""+e)}function Je(t,l,e,a){if(t=t.options,l){l={};for(var u=0;u"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),bi=!1;if(xl)try{var Ca={};Object.defineProperty(Ca,"passive",{get:function(){bi=!0}}),window.addEventListener("test",Ca,Ca),window.removeEventListener("test",Ca,Ca)}catch{bi=!1}var Pl=null,pi=null,ju=null;function er(){if(ju)return ju;var t,l=pi,e=l.length,a,u="value"in Pl?Pl.value:Pl.textContent,n=u.length;for(t=0;t=Ya),cr=" ",rr=!1;function or(t,l){switch(t){case"keyup":return $h.indexOf(l.keyCode)!==-1;case"keydown":return l.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function sr(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var Fe=!1;function Wh(t,l){switch(t){case"compositionend":return sr(l);case"keypress":return l.which!==32?null:(rr=!0,cr);case"textInput":return t=l.data,t===cr&&rr?null:t;default:return null}}function Fh(t,l){if(Fe)return t==="compositionend"||!zi&&or(t,l)?(t=er(),ju=pi=Pl=null,Fe=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(l.ctrlKey||l.altKey||l.metaKey)||l.ctrlKey&&l.altKey){if(l.char&&1=l)return{node:e,offset:l-t};t=a}t:{for(;e;){if(e.nextSibling){e=e.nextSibling;break t}e=e.parentNode}e=void 0}e=br(e)}}function Er(t,l){return t&&l?t===l?!0:t&&t.nodeType===3?!1:l&&l.nodeType===3?Er(t,l.parentNode):"contains"in t?t.contains(l):t.compareDocumentPosition?!!(t.compareDocumentPosition(l)&16):!1:!1}function Tr(t){t=t!=null&&t.ownerDocument!=null&&t.ownerDocument.defaultView!=null?t.ownerDocument.defaultView:window;for(var l=Xu(t.document);l instanceof t.HTMLIFrameElement;){try{var e=typeof l.contentWindow.location.href=="string"}catch{e=!1}if(e)t=l.contentWindow;else break;l=Xu(t.document)}return l}function Di(t){var l=t&&t.nodeName&&t.nodeName.toLowerCase();return l&&(l==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||l==="textarea"||t.contentEditable==="true")}var nm=xl&&"documentMode"in document&&11>=document.documentMode,Pe=null,_i=null,Qa=null,Ui=!1;function Ar(t,l,e){var a=e.window===e?e.document:e.nodeType===9?e:e.ownerDocument;Ui||Pe==null||Pe!==Xu(a)||(a=Pe,"selectionStart"in a&&Di(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Qa&&Xa(Qa,a)||(Qa=a,a=Hn(_i,"onSelect"),0>=i,u-=i,Cl=1<<32-el(l)+u|e<n?n:8;var i=O.T,c={};O.T=c,yf(t,!1,l,e);try{var s=u(),E=O.S;if(E!==null&&E(c,s),s!==null&&typeof s=="object"&&typeof s.then=="function"){var z=mm(s,a);eu(t,l,z,cl(t))}else eu(t,l,a,cl(t))}catch(_){eu(t,l,{then:function(){},status:"rejected",reason:_},cl())}finally{q.p=n,O.T=i}}function bm(){}function mf(t,l,e,a){if(t.tag!==5)throw Error(r(476));var u=zo(t).queue;Ro(t,u,l,J,e===null?bm:function(){return Oo(t),e(a)})}function zo(t){var l=t.memoizedState;if(l!==null)return l;l={memoizedState:J,baseState:J,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Gl,lastRenderedState:J},next:null};var e={};return l.next={memoizedState:e,baseState:e,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Gl,lastRenderedState:e},next:null},t.memoizedState=l,t=t.alternate,t!==null&&(t.memoizedState=l),l}function Oo(t){var l=zo(t).next.queue;eu(t,l,{},cl())}function vf(){return Vt(pu)}function Mo(){return Mt().memoizedState}function Do(){return Mt().memoizedState}function pm(t){for(var l=t.return;l!==null;){switch(l.tag){case 24:case 3:var e=cl();t=le(e);var a=ee(l,t,e);a!==null&&(rl(a,l,e),Wa(a,l,e)),l={cache:Vi()},t.payload=l;return}l=l.return}}function Em(t,l,e){var a=cl();e={lane:a,revertLane:0,action:e,hasEagerState:!1,eagerState:null,next:null},hn(t)?Uo(l,e):(e=Ci(t,l,e,a),e!==null&&(rl(e,t,a),No(e,l,a)))}function _o(t,l,e){var a=cl();eu(t,l,e,a)}function eu(t,l,e,a){var u={lane:a,revertLane:0,action:e,hasEagerState:!1,eagerState:null,next:null};if(hn(t))Uo(l,u);else{var n=t.alternate;if(t.lanes===0&&(n===null||n.lanes===0)&&(n=l.lastRenderedReducer,n!==null))try{var i=l.lastRenderedState,c=n(i,e);if(u.hasEagerState=!0,u.eagerState=c,al(c,i))return ku(t,l,u,0),yt===null&&$u(),!1}catch{}finally{}if(e=Ci(t,l,u,a),e!==null)return rl(e,t,a),No(e,l,a),!0}return!1}function yf(t,l,e,a){if(a={lane:2,revertLane:$f(),action:a,hasEagerState:!1,eagerState:null,next:null},hn(t)){if(l)throw Error(r(479))}else l=Ci(t,e,a,2),l!==null&&rl(l,t,2)}function hn(t){var l=t.alternate;return t===tt||l!==null&&l===tt}function Uo(t,l){ca=fn=!0;var e=t.pending;e===null?l.next=l:(l.next=e.next,e.next=l),t.pending=l}function No(t,l,e){if((e&4194048)!==0){var a=l.lanes;a&=t.pendingLanes,e|=a,l.lanes=e,Gc(t,e)}}var mn={readContext:Vt,use:rn,useCallback:Rt,useContext:Rt,useEffect:Rt,useImperativeHandle:Rt,useLayoutEffect:Rt,useInsertionEffect:Rt,useMemo:Rt,useReducer:Rt,useRef:Rt,useState:Rt,useDebugValue:Rt,useDeferredValue:Rt,useTransition:Rt,useSyncExternalStore:Rt,useId:Rt,useHostTransitionStatus:Rt,useFormState:Rt,useActionState:Rt,useOptimistic:Rt,useMemoCache:Rt,useCacheRefresh:Rt},xo={readContext:Vt,use:rn,useCallback:function(t,l){return Wt().memoizedState=[t,l===void 0?null:l],t},useContext:Vt,useEffect:vo,useImperativeHandle:function(t,l,e){e=e!=null?e.concat([t]):null,dn(4194308,4,bo.bind(null,l,t),e)},useLayoutEffect:function(t,l){return dn(4194308,4,t,l)},useInsertionEffect:function(t,l){dn(4,2,t,l)},useMemo:function(t,l){var e=Wt();l=l===void 0?null:l;var a=t();if(Be){Wl(!0);try{t()}finally{Wl(!1)}}return e.memoizedState=[a,l],a},useReducer:function(t,l,e){var a=Wt();if(e!==void 0){var u=e(l);if(Be){Wl(!0);try{e(l)}finally{Wl(!1)}}}else u=l;return a.memoizedState=a.baseState=u,t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:u},a.queue=t,t=t.dispatch=Em.bind(null,tt,t),[a.memoizedState,t]},useRef:function(t){var l=Wt();return t={current:t},l.memoizedState=t},useState:function(t){t=of(t);var l=t.queue,e=_o.bind(null,tt,l);return l.dispatch=e,[t.memoizedState,e]},useDebugValue:df,useDeferredValue:function(t,l){var e=Wt();return hf(e,t,l)},useTransition:function(){var t=of(!1);return t=Ro.bind(null,tt,t.queue,!0,!1),Wt().memoizedState=t,[!1,t]},useSyncExternalStore:function(t,l,e){var a=tt,u=Wt();if(ct){if(e===void 0)throw Error(r(407));e=e()}else{if(e=l(),yt===null)throw Error(r(349));(ut&124)!==0||Pr(a,l,e)}u.memoizedState=e;var n={value:e,getSnapshot:l};return u.queue=n,vo(to.bind(null,a,n,t),[t]),a.flags|=2048,oa(9,sn(),Ir.bind(null,a,n,e,l),null),e},useId:function(){var t=Wt(),l=yt.identifierPrefix;if(ct){var e=Bl,a=Cl;e=(a&~(1<<32-el(a)-1)).toString(32)+e,l="«"+l+"R"+e,e=cn++,0w?(Yt=X,X=null):Yt=X.sibling;var ft=T(g,X,b[w],D);if(ft===null){X===null&&(X=Yt);break}t&&X&&ft.alternate===null&&l(g,X),y=n(ft,y,w),lt===null?L=ft:lt.sibling=ft,lt=ft,X=Yt}if(w===b.length)return e(g,X),ct&&_e(g,w),L;if(X===null){for(;ww?(Yt=X,X=null):Yt=X.sibling;var be=T(g,X,ft.value,D);if(be===null){X===null&&(X=Yt);break}t&&X&&be.alternate===null&&l(g,X),y=n(be,y,w),lt===null?L=be:lt.sibling=be,lt=be,X=Yt}if(ft.done)return e(g,X),ct&&_e(g,w),L;if(X===null){for(;!ft.done;w++,ft=b.next())ft=_(g,ft.value,D),ft!==null&&(y=n(ft,y,w),lt===null?L=ft:lt.sibling=ft,lt=ft);return ct&&_e(g,w),L}for(X=a(X);!ft.done;w++,ft=b.next())ft=A(X,g,w,ft.value,D),ft!==null&&(t&&ft.alternate!==null&&X.delete(ft.key===null?w:ft.key),y=n(ft,y,w),lt===null?L=ft:lt.sibling=ft,lt=ft);return t&&X.forEach(function(Av){return l(g,Av)}),ct&&_e(g,w),L}function ht(g,y,b,D){if(typeof b=="object"&&b!==null&&b.type===Q&&b.key===null&&(b=b.props.children),typeof b=="object"&&b!==null){switch(b.$$typeof){case C:t:{for(var L=b.key;y!==null;){if(y.key===L){if(L=b.type,L===Q){if(y.tag===7){e(g,y.sibling),D=u(y,b.props.children),D.return=g,g=D;break t}}else if(y.elementType===L||typeof L=="object"&&L!==null&&L.$$typeof===Ht&&Co(L)===y.type){e(g,y.sibling),D=u(y,b.props),uu(D,b),D.return=g,g=D;break t}e(g,y);break}else l(g,y);y=y.sibling}b.type===Q?(D=Me(b.props.children,g.mode,D,b.key),D.return=g,g=D):(D=Fu(b.type,b.key,b.props,null,g.mode,D),uu(D,b),D.return=g,g=D)}return i(g);case k:t:{for(L=b.key;y!==null;){if(y.key===L)if(y.tag===4&&y.stateNode.containerInfo===b.containerInfo&&y.stateNode.implementation===b.implementation){e(g,y.sibling),D=u(y,b.children||[]),D.return=g,g=D;break t}else{e(g,y);break}else l(g,y);y=y.sibling}D=Yi(b,g.mode,D),D.return=g,g=D}return i(g);case Ht:return L=b._init,b=L(b._payload),ht(g,y,b,D)}if(jt(b))return $(g,y,b,D);if(Qt(b)){if(L=Qt(b),typeof L!="function")throw Error(r(150));return b=L.call(b),K(g,y,b,D)}if(typeof b.then=="function")return ht(g,y,vn(b),D);if(b.$$typeof===P)return ht(g,y,ln(g,b),D);yn(g,b)}return typeof b=="string"&&b!==""||typeof b=="number"||typeof b=="bigint"?(b=""+b,y!==null&&y.tag===6?(e(g,y.sibling),D=u(y,b),D.return=g,g=D):(e(g,y),D=qi(b,g.mode,D),D.return=g,g=D),i(g)):e(g,y)}return function(g,y,b,D){try{au=0;var L=ht(g,y,b,D);return sa=null,L}catch(X){if(X===$a||X===an)throw X;var lt=ul(29,X,null,g.mode);return lt.lanes=D,lt.return=g,lt}finally{}}}var da=Bo(!0),qo=Bo(!1),gl=x(null),zl=null;function ue(t){var l=t.alternate;B(Ut,Ut.current&1),B(gl,t),zl===null&&(l===null||fa.current!==null||l.memoizedState!==null)&&(zl=t)}function Yo(t){if(t.tag===22){if(B(Ut,Ut.current),B(gl,t),zl===null){var l=t.alternate;l!==null&&l.memoizedState!==null&&(zl=t)}}else ne()}function ne(){B(Ut,Ut.current),B(gl,gl.current)}function Ll(t){G(gl),zl===t&&(zl=null),G(Ut)}var Ut=x(0);function gn(t){for(var l=t;l!==null;){if(l.tag===13){var e=l.memoizedState;if(e!==null&&(e=e.dehydrated,e===null||e.data==="$?"||ic(e)))return l}else if(l.tag===19&&l.memoizedProps.revealOrder!==void 0){if((l.flags&128)!==0)return l}else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===t)break;for(;l.sibling===null;){if(l.return===null||l.return===t)return null;l=l.return}l.sibling.return=l.return,l=l.sibling}return null}function gf(t,l,e,a){l=t.memoizedState,e=e(a,l),e=e==null?l:M({},l,e),t.memoizedState=e,t.lanes===0&&(t.updateQueue.baseState=e)}var Sf={enqueueSetState:function(t,l,e){t=t._reactInternals;var a=cl(),u=le(a);u.payload=l,e!=null&&(u.callback=e),l=ee(t,u,a),l!==null&&(rl(l,t,a),Wa(l,t,a))},enqueueReplaceState:function(t,l,e){t=t._reactInternals;var a=cl(),u=le(a);u.tag=1,u.payload=l,e!=null&&(u.callback=e),l=ee(t,u,a),l!==null&&(rl(l,t,a),Wa(l,t,a))},enqueueForceUpdate:function(t,l){t=t._reactInternals;var e=cl(),a=le(e);a.tag=2,l!=null&&(a.callback=l),l=ee(t,a,e),l!==null&&(rl(l,t,e),Wa(l,t,e))}};function Go(t,l,e,a,u,n,i){return t=t.stateNode,typeof t.shouldComponentUpdate=="function"?t.shouldComponentUpdate(a,n,i):l.prototype&&l.prototype.isPureReactComponent?!Xa(e,a)||!Xa(u,n):!0}function Lo(t,l,e,a){t=l.state,typeof l.componentWillReceiveProps=="function"&&l.componentWillReceiveProps(e,a),typeof l.UNSAFE_componentWillReceiveProps=="function"&&l.UNSAFE_componentWillReceiveProps(e,a),l.state!==t&&Sf.enqueueReplaceState(l,l.state,null)}function qe(t,l){var e=l;if("ref"in l){e={};for(var a in l)a!=="ref"&&(e[a]=l[a])}if(t=t.defaultProps){e===l&&(e=M({},e));for(var u in t)e[u]===void 0&&(e[u]=t[u])}return e}var Sn=typeof reportError=="function"?reportError:function(t){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var l=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof t=="object"&&t!==null&&typeof t.message=="string"?String(t.message):String(t),error:t});if(!window.dispatchEvent(l))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",t);return}console.error(t)};function Xo(t){Sn(t)}function Qo(t){console.error(t)}function jo(t){Sn(t)}function bn(t,l){try{var e=t.onUncaughtError;e(l.value,{componentStack:l.stack})}catch(a){setTimeout(function(){throw a})}}function Zo(t,l,e){try{var a=t.onCaughtError;a(e.value,{componentStack:e.stack,errorBoundary:l.tag===1?l.stateNode:null})}catch(u){setTimeout(function(){throw u})}}function bf(t,l,e){return e=le(e),e.tag=3,e.payload={element:null},e.callback=function(){bn(t,l)},e}function Vo(t){return t=le(t),t.tag=3,t}function Ko(t,l,e,a){var u=e.type.getDerivedStateFromError;if(typeof u=="function"){var n=a.value;t.payload=function(){return u(n)},t.callback=function(){Zo(l,e,a)}}var i=e.stateNode;i!==null&&typeof i.componentDidCatch=="function"&&(t.callback=function(){Zo(l,e,a),typeof u!="function"&&(se===null?se=new Set([this]):se.add(this));var c=a.stack;this.componentDidCatch(a.value,{componentStack:c!==null?c:""})})}function Am(t,l,e,a,u){if(e.flags|=32768,a!==null&&typeof a=="object"&&typeof a.then=="function"){if(l=e.alternate,l!==null&&Ka(l,e,u,!0),e=gl.current,e!==null){switch(e.tag){case 13:return zl===null?Zf():e.alternate===null&&At===0&&(At=3),e.flags&=-257,e.flags|=65536,e.lanes=u,a===Ji?e.flags|=16384:(l=e.updateQueue,l===null?e.updateQueue=new Set([a]):l.add(a),Kf(t,a,u)),!1;case 22:return e.flags|=65536,a===Ji?e.flags|=16384:(l=e.updateQueue,l===null?(l={transitions:null,markerInstances:null,retryQueue:new Set([a])},e.updateQueue=l):(e=l.retryQueue,e===null?l.retryQueue=new Set([a]):e.add(a)),Kf(t,a,u)),!1}throw Error(r(435,e.tag))}return Kf(t,a,u),Zf(),!1}if(ct)return l=gl.current,l!==null?((l.flags&65536)===0&&(l.flags|=256),l.flags|=65536,l.lanes=u,a!==Xi&&(t=Error(r(422),{cause:a}),Va(hl(t,e)))):(a!==Xi&&(l=Error(r(423),{cause:a}),Va(hl(l,e))),t=t.current.alternate,t.flags|=65536,u&=-u,t.lanes|=u,a=hl(a,e),u=bf(t.stateNode,a,u),Wi(t,u),At!==4&&(At=2)),!1;var n=Error(r(520),{cause:a});if(n=hl(n,e),su===null?su=[n]:su.push(n),At!==4&&(At=2),l===null)return!0;a=hl(a,e),e=l;do{switch(e.tag){case 3:return e.flags|=65536,t=u&-u,e.lanes|=t,t=bf(e.stateNode,a,t),Wi(e,t),!1;case 1:if(l=e.type,n=e.stateNode,(e.flags&128)===0&&(typeof l.getDerivedStateFromError=="function"||n!==null&&typeof n.componentDidCatch=="function"&&(se===null||!se.has(n))))return e.flags|=65536,u&=-u,e.lanes|=u,u=Vo(u),Ko(u,t,e,a),Wi(e,u),!1}e=e.return}while(e!==null);return!1}var wo=Error(r(461)),Bt=!1;function Gt(t,l,e,a){l.child=t===null?qo(l,null,e,a):da(l,t.child,e,a)}function Jo(t,l,e,a,u){e=e.render;var n=l.ref;if("ref"in a){var i={};for(var c in a)c!=="ref"&&(i[c]=a[c])}else i=a;return He(l),a=lf(t,l,e,i,n,u),c=ef(),t!==null&&!Bt?(af(t,l,u),Xl(t,l,u)):(ct&&c&&Gi(l),l.flags|=1,Gt(t,l,a,u),l.child)}function $o(t,l,e,a,u){if(t===null){var n=e.type;return typeof n=="function"&&!Bi(n)&&n.defaultProps===void 0&&e.compare===null?(l.tag=15,l.type=n,ko(t,l,n,a,u)):(t=Fu(e.type,null,a,l,l.mode,u),t.ref=l.ref,t.return=l,l.child=t)}if(n=t.child,!Mf(t,u)){var i=n.memoizedProps;if(e=e.compare,e=e!==null?e:Xa,e(i,a)&&t.ref===l.ref)return Xl(t,l,u)}return l.flags|=1,t=Hl(n,a),t.ref=l.ref,t.return=l,l.child=t}function ko(t,l,e,a,u){if(t!==null){var n=t.memoizedProps;if(Xa(n,a)&&t.ref===l.ref)if(Bt=!1,l.pendingProps=a=n,Mf(t,u))(t.flags&131072)!==0&&(Bt=!0);else return l.lanes=t.lanes,Xl(t,l,u)}return pf(t,l,e,a,u)}function Wo(t,l,e){var a=l.pendingProps,u=a.children,n=t!==null?t.memoizedState:null;if(a.mode==="hidden"){if((l.flags&128)!==0){if(a=n!==null?n.baseLanes|e:e,t!==null){for(u=l.child=t.child,n=0;u!==null;)n=n|u.lanes|u.childLanes,u=u.sibling;l.childLanes=n&~a}else l.childLanes=0,l.child=null;return Fo(t,l,a,e)}if((e&536870912)!==0)l.memoizedState={baseLanes:0,cachePool:null},t!==null&&en(l,n!==null?n.cachePool:null),n!==null?$r(l,n):Pi(),Yo(l);else return l.lanes=l.childLanes=536870912,Fo(t,l,n!==null?n.baseLanes|e:e,e)}else n!==null?(en(l,n.cachePool),$r(l,n),ne(),l.memoizedState=null):(t!==null&&en(l,null),Pi(),ne());return Gt(t,l,u,e),l.child}function Fo(t,l,e,a){var u=wi();return u=u===null?null:{parent:_t._currentValue,pool:u},l.memoizedState={baseLanes:e,cachePool:u},t!==null&&en(l,null),Pi(),Yo(l),t!==null&&Ka(t,l,a,!0),null}function pn(t,l){var e=l.ref;if(e===null)t!==null&&t.ref!==null&&(l.flags|=4194816);else{if(typeof e!="function"&&typeof e!="object")throw Error(r(284));(t===null||t.ref!==e)&&(l.flags|=4194816)}}function pf(t,l,e,a,u){return He(l),e=lf(t,l,e,a,void 0,u),a=ef(),t!==null&&!Bt?(af(t,l,u),Xl(t,l,u)):(ct&&a&&Gi(l),l.flags|=1,Gt(t,l,e,u),l.child)}function Po(t,l,e,a,u,n){return He(l),l.updateQueue=null,e=Wr(l,a,e,u),kr(t),a=ef(),t!==null&&!Bt?(af(t,l,n),Xl(t,l,n)):(ct&&a&&Gi(l),l.flags|=1,Gt(t,l,e,n),l.child)}function Io(t,l,e,a,u){if(He(l),l.stateNode===null){var n=ea,i=e.contextType;typeof i=="object"&&i!==null&&(n=Vt(i)),n=new e(a,n),l.memoizedState=n.state!==null&&n.state!==void 0?n.state:null,n.updater=Sf,l.stateNode=n,n._reactInternals=l,n=l.stateNode,n.props=a,n.state=l.memoizedState,n.refs={},$i(l),i=e.contextType,n.context=typeof i=="object"&&i!==null?Vt(i):ea,n.state=l.memoizedState,i=e.getDerivedStateFromProps,typeof i=="function"&&(gf(l,e,i,a),n.state=l.memoizedState),typeof e.getDerivedStateFromProps=="function"||typeof n.getSnapshotBeforeUpdate=="function"||typeof n.UNSAFE_componentWillMount!="function"&&typeof n.componentWillMount!="function"||(i=n.state,typeof n.componentWillMount=="function"&&n.componentWillMount(),typeof n.UNSAFE_componentWillMount=="function"&&n.UNSAFE_componentWillMount(),i!==n.state&&Sf.enqueueReplaceState(n,n.state,null),Pa(l,a,n,u),Fa(),n.state=l.memoizedState),typeof n.componentDidMount=="function"&&(l.flags|=4194308),a=!0}else if(t===null){n=l.stateNode;var c=l.memoizedProps,s=qe(e,c);n.props=s;var E=n.context,z=e.contextType;i=ea,typeof z=="object"&&z!==null&&(i=Vt(z));var _=e.getDerivedStateFromProps;z=typeof _=="function"||typeof n.getSnapshotBeforeUpdate=="function",c=l.pendingProps!==c,z||typeof n.UNSAFE_componentWillReceiveProps!="function"&&typeof n.componentWillReceiveProps!="function"||(c||E!==i)&&Lo(l,n,a,i),te=!1;var T=l.memoizedState;n.state=T,Pa(l,a,n,u),Fa(),E=l.memoizedState,c||T!==E||te?(typeof _=="function"&&(gf(l,e,_,a),E=l.memoizedState),(s=te||Go(l,e,s,a,T,E,i))?(z||typeof n.UNSAFE_componentWillMount!="function"&&typeof n.componentWillMount!="function"||(typeof n.componentWillMount=="function"&&n.componentWillMount(),typeof n.UNSAFE_componentWillMount=="function"&&n.UNSAFE_componentWillMount()),typeof n.componentDidMount=="function"&&(l.flags|=4194308)):(typeof n.componentDidMount=="function"&&(l.flags|=4194308),l.memoizedProps=a,l.memoizedState=E),n.props=a,n.state=E,n.context=i,a=s):(typeof n.componentDidMount=="function"&&(l.flags|=4194308),a=!1)}else{n=l.stateNode,ki(t,l),i=l.memoizedProps,z=qe(e,i),n.props=z,_=l.pendingProps,T=n.context,E=e.contextType,s=ea,typeof E=="object"&&E!==null&&(s=Vt(E)),c=e.getDerivedStateFromProps,(E=typeof c=="function"||typeof n.getSnapshotBeforeUpdate=="function")||typeof n.UNSAFE_componentWillReceiveProps!="function"&&typeof n.componentWillReceiveProps!="function"||(i!==_||T!==s)&&Lo(l,n,a,s),te=!1,T=l.memoizedState,n.state=T,Pa(l,a,n,u),Fa();var A=l.memoizedState;i!==_||T!==A||te||t!==null&&t.dependencies!==null&&tn(t.dependencies)?(typeof c=="function"&&(gf(l,e,c,a),A=l.memoizedState),(z=te||Go(l,e,z,a,T,A,s)||t!==null&&t.dependencies!==null&&tn(t.dependencies))?(E||typeof n.UNSAFE_componentWillUpdate!="function"&&typeof n.componentWillUpdate!="function"||(typeof n.componentWillUpdate=="function"&&n.componentWillUpdate(a,A,s),typeof n.UNSAFE_componentWillUpdate=="function"&&n.UNSAFE_componentWillUpdate(a,A,s)),typeof n.componentDidUpdate=="function"&&(l.flags|=4),typeof n.getSnapshotBeforeUpdate=="function"&&(l.flags|=1024)):(typeof n.componentDidUpdate!="function"||i===t.memoizedProps&&T===t.memoizedState||(l.flags|=4),typeof n.getSnapshotBeforeUpdate!="function"||i===t.memoizedProps&&T===t.memoizedState||(l.flags|=1024),l.memoizedProps=a,l.memoizedState=A),n.props=a,n.state=A,n.context=s,a=z):(typeof n.componentDidUpdate!="function"||i===t.memoizedProps&&T===t.memoizedState||(l.flags|=4),typeof n.getSnapshotBeforeUpdate!="function"||i===t.memoizedProps&&T===t.memoizedState||(l.flags|=1024),a=!1)}return n=a,pn(t,l),a=(l.flags&128)!==0,n||a?(n=l.stateNode,e=a&&typeof e.getDerivedStateFromError!="function"?null:n.render(),l.flags|=1,t!==null&&a?(l.child=da(l,t.child,null,u),l.child=da(l,null,e,u)):Gt(t,l,e,u),l.memoizedState=n.state,t=l.child):t=Xl(t,l,u),t}function ts(t,l,e,a){return Za(),l.flags|=256,Gt(t,l,e,a),l.child}var Ef={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Tf(t){return{baseLanes:t,cachePool:Xr()}}function Af(t,l,e){return t=t!==null?t.childLanes&~e:0,l&&(t|=Sl),t}function ls(t,l,e){var a=l.pendingProps,u=!1,n=(l.flags&128)!==0,i;if((i=n)||(i=t!==null&&t.memoizedState===null?!1:(Ut.current&2)!==0),i&&(u=!0,l.flags&=-129),i=(l.flags&32)!==0,l.flags&=-33,t===null){if(ct){if(u?ue(l):ne(),ct){var c=Tt,s;if(s=c){t:{for(s=c,c=Rl;s.nodeType!==8;){if(!c){c=null;break t}if(s=Tl(s.nextSibling),s===null){c=null;break t}}c=s}c!==null?(l.memoizedState={dehydrated:c,treeContext:De!==null?{id:Cl,overflow:Bl}:null,retryLane:536870912,hydrationErrors:null},s=ul(18,null,null,0),s.stateNode=c,s.return=l,l.child=s,Jt=l,Tt=null,s=!0):s=!1}s||Ne(l)}if(c=l.memoizedState,c!==null&&(c=c.dehydrated,c!==null))return ic(c)?l.lanes=32:l.lanes=536870912,null;Ll(l)}return c=a.children,a=a.fallback,u?(ne(),u=l.mode,c=En({mode:"hidden",children:c},u),a=Me(a,u,e,null),c.return=l,a.return=l,c.sibling=a,l.child=c,u=l.child,u.memoizedState=Tf(e),u.childLanes=Af(t,i,e),l.memoizedState=Ef,a):(ue(l),Rf(l,c))}if(s=t.memoizedState,s!==null&&(c=s.dehydrated,c!==null)){if(n)l.flags&256?(ue(l),l.flags&=-257,l=zf(t,l,e)):l.memoizedState!==null?(ne(),l.child=t.child,l.flags|=128,l=null):(ne(),u=a.fallback,c=l.mode,a=En({mode:"visible",children:a.children},c),u=Me(u,c,e,null),u.flags|=2,a.return=l,u.return=l,a.sibling=u,l.child=a,da(l,t.child,null,e),a=l.child,a.memoizedState=Tf(e),a.childLanes=Af(t,i,e),l.memoizedState=Ef,l=u);else if(ue(l),ic(c)){if(i=c.nextSibling&&c.nextSibling.dataset,i)var E=i.dgst;i=E,a=Error(r(419)),a.stack="",a.digest=i,Va({value:a,source:null,stack:null}),l=zf(t,l,e)}else if(Bt||Ka(t,l,e,!1),i=(e&t.childLanes)!==0,Bt||i){if(i=yt,i!==null&&(a=e&-e,a=(a&42)!==0?1:ii(a),a=(a&(i.suspendedLanes|e))!==0?0:a,a!==0&&a!==s.retryLane))throw s.retryLane=a,la(t,a),rl(i,t,a),wo;c.data==="$?"||Zf(),l=zf(t,l,e)}else c.data==="$?"?(l.flags|=192,l.child=t.child,l=null):(t=s.treeContext,Tt=Tl(c.nextSibling),Jt=l,ct=!0,Ue=null,Rl=!1,t!==null&&(vl[yl++]=Cl,vl[yl++]=Bl,vl[yl++]=De,Cl=t.id,Bl=t.overflow,De=l),l=Rf(l,a.children),l.flags|=4096);return l}return u?(ne(),u=a.fallback,c=l.mode,s=t.child,E=s.sibling,a=Hl(s,{mode:"hidden",children:a.children}),a.subtreeFlags=s.subtreeFlags&65011712,E!==null?u=Hl(E,u):(u=Me(u,c,e,null),u.flags|=2),u.return=l,a.return=l,a.sibling=u,l.child=a,a=u,u=l.child,c=t.child.memoizedState,c===null?c=Tf(e):(s=c.cachePool,s!==null?(E=_t._currentValue,s=s.parent!==E?{parent:E,pool:E}:s):s=Xr(),c={baseLanes:c.baseLanes|e,cachePool:s}),u.memoizedState=c,u.childLanes=Af(t,i,e),l.memoizedState=Ef,a):(ue(l),e=t.child,t=e.sibling,e=Hl(e,{mode:"visible",children:a.children}),e.return=l,e.sibling=null,t!==null&&(i=l.deletions,i===null?(l.deletions=[t],l.flags|=16):i.push(t)),l.child=e,l.memoizedState=null,e)}function Rf(t,l){return l=En({mode:"visible",children:l},t.mode),l.return=t,t.child=l}function En(t,l){return t=ul(22,t,null,l),t.lanes=0,t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},t}function zf(t,l,e){return da(l,t.child,null,e),t=Rf(l,l.pendingProps.children),t.flags|=2,l.memoizedState=null,t}function es(t,l,e){t.lanes|=l;var a=t.alternate;a!==null&&(a.lanes|=l),ji(t.return,l,e)}function Of(t,l,e,a,u){var n=t.memoizedState;n===null?t.memoizedState={isBackwards:l,rendering:null,renderingStartTime:0,last:a,tail:e,tailMode:u}:(n.isBackwards=l,n.rendering=null,n.renderingStartTime=0,n.last=a,n.tail=e,n.tailMode=u)}function as(t,l,e){var a=l.pendingProps,u=a.revealOrder,n=a.tail;if(Gt(t,l,a.children,e),a=Ut.current,(a&2)!==0)a=a&1|2,l.flags|=128;else{if(t!==null&&(t.flags&128)!==0)t:for(t=l.child;t!==null;){if(t.tag===13)t.memoizedState!==null&&es(t,e,l);else if(t.tag===19)es(t,e,l);else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===l)break t;for(;t.sibling===null;){if(t.return===null||t.return===l)break t;t=t.return}t.sibling.return=t.return,t=t.sibling}a&=1}switch(B(Ut,a),u){case"forwards":for(e=l.child,u=null;e!==null;)t=e.alternate,t!==null&&gn(t)===null&&(u=e),e=e.sibling;e=u,e===null?(u=l.child,l.child=null):(u=e.sibling,e.sibling=null),Of(l,!1,u,e,n);break;case"backwards":for(e=null,u=l.child,l.child=null;u!==null;){if(t=u.alternate,t!==null&&gn(t)===null){l.child=u;break}t=u.sibling,u.sibling=e,e=u,u=t}Of(l,!0,e,null,n);break;case"together":Of(l,!1,null,null,void 0);break;default:l.memoizedState=null}return l.child}function Xl(t,l,e){if(t!==null&&(l.dependencies=t.dependencies),oe|=l.lanes,(e&l.childLanes)===0)if(t!==null){if(Ka(t,l,e,!1),(e&l.childLanes)===0)return null}else return null;if(t!==null&&l.child!==t.child)throw Error(r(153));if(l.child!==null){for(t=l.child,e=Hl(t,t.pendingProps),l.child=e,e.return=l;t.sibling!==null;)t=t.sibling,e=e.sibling=Hl(t,t.pendingProps),e.return=l;e.sibling=null}return l.child}function Mf(t,l){return(t.lanes&l)!==0?!0:(t=t.dependencies,!!(t!==null&&tn(t)))}function Rm(t,l,e){switch(l.tag){case 3:gt(l,l.stateNode.containerInfo),Il(l,_t,t.memoizedState.cache),Za();break;case 27:case 5:li(l);break;case 4:gt(l,l.stateNode.containerInfo);break;case 10:Il(l,l.type,l.memoizedProps.value);break;case 13:var a=l.memoizedState;if(a!==null)return a.dehydrated!==null?(ue(l),l.flags|=128,null):(e&l.child.childLanes)!==0?ls(t,l,e):(ue(l),t=Xl(t,l,e),t!==null?t.sibling:null);ue(l);break;case 19:var u=(t.flags&128)!==0;if(a=(e&l.childLanes)!==0,a||(Ka(t,l,e,!1),a=(e&l.childLanes)!==0),u){if(a)return as(t,l,e);l.flags|=128}if(u=l.memoizedState,u!==null&&(u.rendering=null,u.tail=null,u.lastEffect=null),B(Ut,Ut.current),a)break;return null;case 22:case 23:return l.lanes=0,Wo(t,l,e);case 24:Il(l,_t,t.memoizedState.cache)}return Xl(t,l,e)}function us(t,l,e){if(t!==null)if(t.memoizedProps!==l.pendingProps)Bt=!0;else{if(!Mf(t,e)&&(l.flags&128)===0)return Bt=!1,Rm(t,l,e);Bt=(t.flags&131072)!==0}else Bt=!1,ct&&(l.flags&1048576)!==0&&Hr(l,Iu,l.index);switch(l.lanes=0,l.tag){case 16:t:{t=l.pendingProps;var a=l.elementType,u=a._init;if(a=u(a._payload),l.type=a,typeof a=="function")Bi(a)?(t=qe(a,t),l.tag=1,l=Io(null,l,a,t,e)):(l.tag=0,l=pf(null,l,a,t,e));else{if(a!=null){if(u=a.$$typeof,u===bt){l.tag=11,l=Jo(null,l,a,t,e);break t}else if(u===Dt){l.tag=14,l=$o(null,l,a,t,e);break t}}throw l=Ee(a)||a,Error(r(306,l,""))}}return l;case 0:return pf(t,l,l.type,l.pendingProps,e);case 1:return a=l.type,u=qe(a,l.pendingProps),Io(t,l,a,u,e);case 3:t:{if(gt(l,l.stateNode.containerInfo),t===null)throw Error(r(387));a=l.pendingProps;var n=l.memoizedState;u=n.element,ki(t,l),Pa(l,a,null,e);var i=l.memoizedState;if(a=i.cache,Il(l,_t,a),a!==n.cache&&Zi(l,[_t],e,!0),Fa(),a=i.element,n.isDehydrated)if(n={element:a,isDehydrated:!1,cache:i.cache},l.updateQueue.baseState=n,l.memoizedState=n,l.flags&256){l=ts(t,l,a,e);break t}else if(a!==u){u=hl(Error(r(424)),l),Va(u),l=ts(t,l,a,e);break t}else{switch(t=l.stateNode.containerInfo,t.nodeType){case 9:t=t.body;break;default:t=t.nodeName==="HTML"?t.ownerDocument.body:t}for(Tt=Tl(t.firstChild),Jt=l,ct=!0,Ue=null,Rl=!0,e=qo(l,null,a,e),l.child=e;e;)e.flags=e.flags&-3|4096,e=e.sibling}else{if(Za(),a===u){l=Xl(t,l,e);break t}Gt(t,l,a,e)}l=l.child}return l;case 26:return pn(t,l),t===null?(e=cd(l.type,null,l.pendingProps,null))?l.memoizedState=e:ct||(e=l.type,t=l.pendingProps,a=Bn(F.current).createElement(e),a[Zt]=l,a[$t]=t,Xt(a,e,t),Ct(a),l.stateNode=a):l.memoizedState=cd(l.type,t.memoizedProps,l.pendingProps,t.memoizedState),null;case 27:return li(l),t===null&&ct&&(a=l.stateNode=nd(l.type,l.pendingProps,F.current),Jt=l,Rl=!0,u=Tt,me(l.type)?(fc=u,Tt=Tl(a.firstChild)):Tt=u),Gt(t,l,l.pendingProps.children,e),pn(t,l),t===null&&(l.flags|=4194304),l.child;case 5:return t===null&&ct&&((u=a=Tt)&&(a=Pm(a,l.type,l.pendingProps,Rl),a!==null?(l.stateNode=a,Jt=l,Tt=Tl(a.firstChild),Rl=!1,u=!0):u=!1),u||Ne(l)),li(l),u=l.type,n=l.pendingProps,i=t!==null?t.memoizedProps:null,a=n.children,ac(u,n)?a=null:i!==null&&ac(u,i)&&(l.flags|=32),l.memoizedState!==null&&(u=lf(t,l,ym,null,null,e),pu._currentValue=u),pn(t,l),Gt(t,l,a,e),l.child;case 6:return t===null&&ct&&((t=e=Tt)&&(e=Im(e,l.pendingProps,Rl),e!==null?(l.stateNode=e,Jt=l,Tt=null,t=!0):t=!1),t||Ne(l)),null;case 13:return ls(t,l,e);case 4:return gt(l,l.stateNode.containerInfo),a=l.pendingProps,t===null?l.child=da(l,null,a,e):Gt(t,l,a,e),l.child;case 11:return Jo(t,l,l.type,l.pendingProps,e);case 7:return Gt(t,l,l.pendingProps,e),l.child;case 8:return Gt(t,l,l.pendingProps.children,e),l.child;case 12:return Gt(t,l,l.pendingProps.children,e),l.child;case 10:return a=l.pendingProps,Il(l,l.type,a.value),Gt(t,l,a.children,e),l.child;case 9:return u=l.type._context,a=l.pendingProps.children,He(l),u=Vt(u),a=a(u),l.flags|=1,Gt(t,l,a,e),l.child;case 14:return $o(t,l,l.type,l.pendingProps,e);case 15:return ko(t,l,l.type,l.pendingProps,e);case 19:return as(t,l,e);case 31:return a=l.pendingProps,e=l.mode,a={mode:a.mode,children:a.children},t===null?(e=En(a,e),e.ref=l.ref,l.child=e,e.return=l,l=e):(e=Hl(t.child,a),e.ref=l.ref,l.child=e,e.return=l,l=e),l;case 22:return Wo(t,l,e);case 24:return He(l),a=Vt(_t),t===null?(u=wi(),u===null&&(u=yt,n=Vi(),u.pooledCache=n,n.refCount++,n!==null&&(u.pooledCacheLanes|=e),u=n),l.memoizedState={parent:a,cache:u},$i(l),Il(l,_t,u)):((t.lanes&e)!==0&&(ki(t,l),Pa(l,null,null,e),Fa()),u=t.memoizedState,n=l.memoizedState,u.parent!==a?(u={parent:a,cache:a},l.memoizedState=u,l.lanes===0&&(l.memoizedState=l.updateQueue.baseState=u),Il(l,_t,a)):(a=n.cache,Il(l,_t,a),a!==u.cache&&Zi(l,[_t],e,!0))),Gt(t,l,l.pendingProps.children,e),l.child;case 29:throw l.pendingProps}throw Error(r(156,l.tag))}function Ql(t){t.flags|=4}function ns(t,l){if(l.type!=="stylesheet"||(l.state.loading&4)!==0)t.flags&=-16777217;else if(t.flags|=16777216,!hd(l)){if(l=gl.current,l!==null&&((ut&4194048)===ut?zl!==null:(ut&62914560)!==ut&&(ut&536870912)===0||l!==zl))throw ka=Ji,Qr;t.flags|=8192}}function Tn(t,l){l!==null&&(t.flags|=4),t.flags&16384&&(l=t.tag!==22?qc():536870912,t.lanes|=l,ya|=l)}function nu(t,l){if(!ct)switch(t.tailMode){case"hidden":l=t.tail;for(var e=null;l!==null;)l.alternate!==null&&(e=l),l=l.sibling;e===null?t.tail=null:e.sibling=null;break;case"collapsed":e=t.tail;for(var a=null;e!==null;)e.alternate!==null&&(a=e),e=e.sibling;a===null?l||t.tail===null?t.tail=null:t.tail.sibling=null:a.sibling=null}}function pt(t){var l=t.alternate!==null&&t.alternate.child===t.child,e=0,a=0;if(l)for(var u=t.child;u!==null;)e|=u.lanes|u.childLanes,a|=u.subtreeFlags&65011712,a|=u.flags&65011712,u.return=t,u=u.sibling;else for(u=t.child;u!==null;)e|=u.lanes|u.childLanes,a|=u.subtreeFlags,a|=u.flags,u.return=t,u=u.sibling;return t.subtreeFlags|=a,t.childLanes=e,l}function zm(t,l,e){var a=l.pendingProps;switch(Li(l),l.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return pt(l),null;case 1:return pt(l),null;case 3:return e=l.stateNode,a=null,t!==null&&(a=t.memoizedState.cache),l.memoizedState.cache!==a&&(l.flags|=2048),Yl(_t),kl(),e.pendingContext&&(e.context=e.pendingContext,e.pendingContext=null),(t===null||t.child===null)&&(ja(l)?Ql(l):t===null||t.memoizedState.isDehydrated&&(l.flags&256)===0||(l.flags|=1024,qr())),pt(l),null;case 26:return e=l.memoizedState,t===null?(Ql(l),e!==null?(pt(l),ns(l,e)):(pt(l),l.flags&=-16777217)):e?e!==t.memoizedState?(Ql(l),pt(l),ns(l,e)):(pt(l),l.flags&=-16777217):(t.memoizedProps!==a&&Ql(l),pt(l),l.flags&=-16777217),null;case 27:xu(l),e=F.current;var u=l.type;if(t!==null&&l.stateNode!=null)t.memoizedProps!==a&&Ql(l);else{if(!a){if(l.stateNode===null)throw Error(r(166));return pt(l),null}t=V.current,ja(l)?Cr(l):(t=nd(u,a,e),l.stateNode=t,Ql(l))}return pt(l),null;case 5:if(xu(l),e=l.type,t!==null&&l.stateNode!=null)t.memoizedProps!==a&&Ql(l);else{if(!a){if(l.stateNode===null)throw Error(r(166));return pt(l),null}if(t=V.current,ja(l))Cr(l);else{switch(u=Bn(F.current),t){case 1:t=u.createElementNS("http://www.w3.org/2000/svg",e);break;case 2:t=u.createElementNS("http://www.w3.org/1998/Math/MathML",e);break;default:switch(e){case"svg":t=u.createElementNS("http://www.w3.org/2000/svg",e);break;case"math":t=u.createElementNS("http://www.w3.org/1998/Math/MathML",e);break;case"script":t=u.createElement("div"),t.innerHTML=" - + EP | Log Viewer + + +
- \ No newline at end of file + From a8af676919ccd7d8871d182f6f88bcd42524b56e Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 5 Aug 2025 22:54:45 -0700 Subject: [PATCH 11/14] Remove redundant arguments from logs command in CLI and simplify serve_logs call --- eval_protocol/cli.py | 32 +----------------------------- eval_protocol/cli_commands/logs.py | 7 +------ 2 files changed, 2 insertions(+), 37 deletions(-) diff --git a/eval_protocol/cli.py b/eval_protocol/cli.py index efe2d996..f94d14ba 100644 --- a/eval_protocol/cli.py +++ b/eval_protocol/cli.py @@ -25,9 +25,9 @@ ) from .cli_commands.deploy import deploy_command from .cli_commands.deploy_mcp import deploy_mcp_command +from .cli_commands.logs import logs_command from .cli_commands.preview import preview_command from .cli_commands.run_eval_cmd import hydra_cli_entry_point -from .cli_commands.logs import logs_command def parse_args(args=None): @@ -289,36 +289,6 @@ def parse_args(args=None): # Logs command logs_parser = subparsers.add_parser("logs", help="Serve logs with file watching and real-time updates") - logs_parser.add_argument( - "--build-dir", - default="dist", - help="Path to the Vite build output directory (default: dist)", - ) - logs_parser.add_argument( - "--host", - default="localhost", - help="Host to bind the server to (default: localhost)", - ) - logs_parser.add_argument( - "--port", - type=int, - default=4789, - help="Port to bind the server to (default: 4789)", - ) - logs_parser.add_argument( - "--index-file", - default="index.html", - help="Name of the main index file (default: index.html)", - ) - logs_parser.add_argument( - "--watch-paths", - help="Comma-separated list of paths to watch for file changes (default: current directory)", - ) - logs_parser.add_argument( - "--reload", - action="store_true", - help="Enable auto-reload (default: False)", - ) # Run command (for Hydra-based evaluations) # This subparser intentionally defines no arguments itself. diff --git a/eval_protocol/cli_commands/logs.py b/eval_protocol/cli_commands/logs.py index 66c3e57b..0701a661 100644 --- a/eval_protocol/cli_commands/logs.py +++ b/eval_protocol/cli_commands/logs.py @@ -25,12 +25,7 @@ def logs_command(args): print("-" * 50) try: - serve_logs( - host=args.host, - port=args.port, - watch_paths=watch_paths, - reload=args.reload, - ) + serve_logs() return 0 except KeyboardInterrupt: print("\n🛑 Server stopped by user") From a330d3566e0d69a1d415129695a91e4131e28cf6 Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 5 Aug 2025 22:56:18 -0700 Subject: [PATCH 12/14] Update logs command to use default localhost settings and simplify output - Removed the ability to specify watch paths, defaulting to 'current directory'. - Changed server host and port to fixed values (localhost:8000) for consistency. --- eval_protocol/cli_commands/logs.py | 12 +++--------- eval_protocol/utils/logs_server.py | 2 +- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/eval_protocol/cli_commands/logs.py b/eval_protocol/cli_commands/logs.py index 0701a661..3f4eda7e 100644 --- a/eval_protocol/cli_commands/logs.py +++ b/eval_protocol/cli_commands/logs.py @@ -11,16 +11,10 @@ def logs_command(args): """Serve logs with file watching and real-time updates""" - # Parse watch paths - watch_paths = None - if args.watch_paths: - watch_paths = args.watch_paths.split(",") - watch_paths = [path.strip() for path in watch_paths if path.strip()] - print(f"🚀 Starting Eval Protocol Logs Server") - print(f"🌐 URL: http://{args.host}:{args.port}") - print(f"🔌 WebSocket: ws://{args.host}:{args.port}/ws") - print(f"👀 Watching paths: {watch_paths or ['current directory']}") + print(f"🌐 URL: http://localhost:8000") + print(f"🔌 WebSocket: ws://localhost:8000/ws") + print(f"👀 Watching paths: {['current directory']}") print("Press Ctrl+C to stop the server") print("-" * 50) diff --git a/eval_protocol/utils/logs_server.py b/eval_protocol/utils/logs_server.py index 16b68efe..545fef3d 100644 --- a/eval_protocol/utils/logs_server.py +++ b/eval_protocol/utils/logs_server.py @@ -149,7 +149,7 @@ def __init__( os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), "vite-app", "dist") ), host: str = "localhost", - port: Optional[int] = None, + port: Optional[int] = 8000, index_file: str = "index.html", watch_paths: Optional[List[str]] = None, ): From 5c039e8987e78910f4cc564d85a3e60a60504c9d Mon Sep 17 00:00:00 2001 From: Dylan Huang Date: Tue, 5 Aug 2025 23:02:07 -0700 Subject: [PATCH 13/14] Implement message expansion feature in MessageBubble component - Added state management to toggle message expansion for long messages. - Introduced a helper function to format message content based on its type. - Updated rendering logic to display a "Show more" / "Show less" button for long messages, enhancing user interaction. --- vite-app/src/components/MessageBubble.tsx | 50 +++++++++++++++++++---- 1 file changed, 41 insertions(+), 9 deletions(-) diff --git a/vite-app/src/components/MessageBubble.tsx b/vite-app/src/components/MessageBubble.tsx index 2310c11d..382cb6dc 100644 --- a/vite-app/src/components/MessageBubble.tsx +++ b/vite-app/src/components/MessageBubble.tsx @@ -1,12 +1,36 @@ import type { Message } from "../types/eval-protocol"; +import { useState } from "react"; export const MessageBubble = ({ message }: { message: Message }) => { + const [isExpanded, setIsExpanded] = useState(false); const isUser = message.role === "user"; const isSystem = message.role === "system"; const isTool = message.role === "tool"; const hasToolCalls = message.tool_calls && message.tool_calls.length > 0; const hasFunctionCall = message.function_call; + // Get the message content as a string + const getMessageContent = () => { + if (typeof message.content === "string") { + return message.content; + } else if (Array.isArray(message.content)) { + return message.content + .map((part, i) => + part.type === "text" ? part.text : JSON.stringify(part) + ) + .join(""); + } else { + return JSON.stringify(message.content); + } + }; + + const messageContent = getMessageContent(); + const isLongMessage = messageContent.length > 200; // Threshold for considering a message "long" + const displayContent = + isLongMessage && !isExpanded + ? messageContent.substring(0, 200) + "..." + : messageContent; + return (
{ {message.role}
- {typeof message.content === "string" - ? message.content - : Array.isArray(message.content) - ? message.content - .map((part, i) => - part.type === "text" ? part.text : JSON.stringify(part) - ) - .join("") - : JSON.stringify(message.content)} + {displayContent}
+ {isLongMessage && ( + + )} {hasToolCalls && message.tool_calls && (
Date: Tue, 5 Aug 2025 23:02:35 -0700 Subject: [PATCH 14/14] update build --- ...{index-oTZ6nRrN.css => index-BySN1scz.css} | 2 +- .../{index-D-1FJ7zw.js => index-CRkZ6JGL.js} | 34 +++++++++---------- ...-D-1FJ7zw.js.map => index-CRkZ6JGL.js.map} | 2 +- vite-app/dist/index.html | 4 +-- 4 files changed, 21 insertions(+), 21 deletions(-) rename vite-app/dist/assets/{index-oTZ6nRrN.css => index-BySN1scz.css} (79%) rename vite-app/dist/assets/{index-D-1FJ7zw.js => index-CRkZ6JGL.js} (80%) rename vite-app/dist/assets/{index-D-1FJ7zw.js.map => index-CRkZ6JGL.js.map} (64%) diff --git a/vite-app/dist/assets/index-oTZ6nRrN.css b/vite-app/dist/assets/index-BySN1scz.css similarity index 79% rename from vite-app/dist/assets/index-oTZ6nRrN.css rename to vite-app/dist/assets/index-BySN1scz.css index e90793d5..e660a110 100644 --- a/vite-app/dist/assets/index-oTZ6nRrN.css +++ b/vite-app/dist/assets/index-BySN1scz.css @@ -1 +1 @@ -/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-500:oklch(63.7% .237 25.331);--color-red-700:oklch(50.5% .213 27.518);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-500:oklch(72.3% .219 149.579);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-blue-50:oklch(97% .014 254.604);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--font-weight-medium:500;--font-weight-semibold:600;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.static{position:static}.top-0{top:calc(var(--spacing)*0)}.right-0{right:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.\!container{width:100%!important}@media (min-width:40rem){.\!container{max-width:40rem!important}}@media (min-width:48rem){.\!container{max-width:48rem!important}}@media (min-width:64rem){.\!container{max-width:64rem!important}}@media (min-width:80rem){.\!container{max-width:80rem!important}}@media (min-width:96rem){.\!container{max-width:96rem!important}}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mb-0\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-2{margin-left:calc(var(--spacing)*2)}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.h-1{height:calc(var(--spacing)*1)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-6{height:calc(var(--spacing)*6)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.min-h-screen{min-height:100vh}.w-1{width:calc(var(--spacing)*1)}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-8{width:calc(var(--spacing)*8)}.w-12{width:calc(var(--spacing)*12)}.w-\[500px\]{width:500px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-7xl{max-width:var(--container-7xl)}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-max{min-width:max-content}.flex-shrink-0{flex-shrink:0}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-nw-resize{cursor:nw-resize}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.resize{resize:both}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-200>:not(:last-child)){border-color:var(--color-gray-200)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-blue-200{border-color:var(--color-blue-200)}.border-current{border-color:currentColor}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-green-200{border-color:var(--color-green-200)}.border-yellow-200{border-color:var(--color-yellow-200)}.border-t-transparent{border-top-color:#0000}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-red-500{background-color:var(--color-red-500)}.bg-white{background-color:var(--color-white)}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-yellow-100{background-color:var(--color-yellow-100)}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-8{padding:calc(var(--spacing)*8)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.pt-1{padding-top:calc(var(--spacing)*1)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-blue-700{color:var(--color-blue-700)}.text-blue-900{color:var(--color-blue-900)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-green-900{color:var(--color-green-900)}.text-red-700{color:var(--color-red-700)}.text-yellow-700{color:var(--color-yellow-700)}.text-yellow-800{color:var(--color-yellow-800)}.text-yellow-900{color:var(--color-yellow-900)}.capitalize{text-transform:capitalize}.italic{font-style:italic}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-gray-400:hover{background-color:var(--color-gray-400)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}@media (min-width:64rem){.lg\:max-w-md{max-width:var(--container-md)}}@media (min-width:80rem){.xl\:max-w-lg{max-width:var(--container-lg)}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}} +/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-500:oklch(63.7% .237 25.331);--color-red-700:oklch(50.5% .213 27.518);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-500:oklch(72.3% .219 149.579);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-blue-50:oklch(97% .014 254.604);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--font-weight-medium:500;--font-weight-semibold:600;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.static{position:static}.top-0{top:calc(var(--spacing)*0)}.right-0{right:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.\!container{width:100%!important}@media (min-width:40rem){.\!container{max-width:40rem!important}}@media (min-width:48rem){.\!container{max-width:48rem!important}}@media (min-width:64rem){.\!container{max-width:64rem!important}}@media (min-width:80rem){.\!container{max-width:80rem!important}}@media (min-width:96rem){.\!container{max-width:96rem!important}}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mb-0\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-2{margin-left:calc(var(--spacing)*2)}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.h-1{height:calc(var(--spacing)*1)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-6{height:calc(var(--spacing)*6)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.min-h-screen{min-height:100vh}.w-1{width:calc(var(--spacing)*1)}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-8{width:calc(var(--spacing)*8)}.w-12{width:calc(var(--spacing)*12)}.w-\[500px\]{width:500px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-7xl{max-width:var(--container-7xl)}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-max{min-width:max-content}.flex-shrink-0{flex-shrink:0}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-nw-resize{cursor:nw-resize}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.resize{resize:both}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-200>:not(:last-child)){border-color:var(--color-gray-200)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-blue-200{border-color:var(--color-blue-200)}.border-current{border-color:currentColor}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-green-200{border-color:var(--color-green-200)}.border-yellow-200{border-color:var(--color-yellow-200)}.border-t-transparent{border-top-color:#0000}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-red-500{background-color:var(--color-red-500)}.bg-white{background-color:var(--color-white)}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-yellow-100{background-color:var(--color-yellow-100)}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-8{padding:calc(var(--spacing)*8)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.pt-1{padding-top:calc(var(--spacing)*1)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-blue-700{color:var(--color-blue-700)}.text-blue-900{color:var(--color-blue-900)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-green-900{color:var(--color-green-900)}.text-red-700{color:var(--color-red-700)}.text-yellow-700{color:var(--color-yellow-700)}.text-yellow-800{color:var(--color-yellow-800)}.text-yellow-900{color:var(--color-yellow-900)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-gray-400:hover{background-color:var(--color-gray-400)}.hover\:no-underline:hover{text-decoration-line:none}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}@media (min-width:64rem){.lg\:max-w-md{max-width:var(--container-md)}}@media (min-width:80rem){.xl\:max-w-lg{max-width:var(--container-lg)}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}} diff --git a/vite-app/dist/assets/index-D-1FJ7zw.js b/vite-app/dist/assets/index-CRkZ6JGL.js similarity index 80% rename from vite-app/dist/assets/index-D-1FJ7zw.js rename to vite-app/dist/assets/index-CRkZ6JGL.js index f911d92b..8b877c26 100644 --- a/vite-app/dist/assets/index-D-1FJ7zw.js +++ b/vite-app/dist/assets/index-CRkZ6JGL.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 Nm;function Q0(){if(Nm)return oe;Nm=1;var n=Symbol.for("react.transitional.element"),l=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),c=Symbol.for("react.profiler"),f=Symbol.for("react.consumer"),d=Symbol.for("react.context"),v=Symbol.for("react.forward_ref"),m=Symbol.for("react.suspense"),g=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),A=Symbol.iterator;function R(b){return b===null||typeof b!="object"?null:(b=A&&b[A]||b["@@iterator"],typeof b=="function"?b:null)}var B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},H=Object.assign,L={};function q(b,Z,X){this.props=b,this.context=Z,this.refs=L,this.updater=X||B}q.prototype.isReactComponent={},q.prototype.setState=function(b,Z){if(typeof b!="object"&&typeof b!="function"&&b!=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,b,Z,"setState")},q.prototype.forceUpdate=function(b){this.updater.enqueueForceUpdate(this,b,"forceUpdate")};function k(){}k.prototype=q.prototype;function F(b,Z,X){this.props=b,this.context=Z,this.refs=L,this.updater=X||B}var G=F.prototype=new k;G.constructor=F,H(G,q.prototype),G.isPureReactComponent=!0;var I=Array.isArray,K={H:null,A:null,T:null,S:null,V:null},me=Object.prototype.hasOwnProperty;function Re(b,Z,X,V,ee,pe){return X=pe.ref,{$$typeof:n,type:b,key:Z,ref:X!==void 0?X:null,props:pe}}function Ye(b,Z){return Re(b.type,Z,void 0,void 0,void 0,b.props)}function ae(b){return typeof b=="object"&&b!==null&&b.$$typeof===n}function $e(b){var Z={"=":"=0",":":"=2"};return"$"+b.replace(/[=:]/g,function(X){return Z[X]})}var Fe=/\/+/g;function Ge(b,Z){return typeof b=="object"&&b!==null&&b.key!=null?$e(""+b.key):Z.toString(36)}function Jt(){}function qn(b){switch(b.status){case"fulfilled":return b.value;case"rejected":throw b.reason;default:switch(typeof b.status=="string"?b.then(Jt,Jt):(b.status="pending",b.then(function(Z){b.status==="pending"&&(b.status="fulfilled",b.value=Z)},function(Z){b.status==="pending"&&(b.status="rejected",b.reason=Z)})),b.status){case"fulfilled":return b.value;case"rejected":throw b.reason}}throw b}function ut(b,Z,X,V,ee){var pe=typeof b;(pe==="undefined"||pe==="boolean")&&(b=null);var re=!1;if(b===null)re=!0;else switch(pe){case"bigint":case"string":case"number":re=!0;break;case"object":switch(b.$$typeof){case n:case l:re=!0;break;case y:return re=b._init,ut(re(b._payload),Z,X,V,ee)}}if(re)return ee=ee(b),re=V===""?"."+Ge(b,0):V,I(ee)?(X="",re!=null&&(X=re.replace(Fe,"$&/")+"/"),ut(ee,Z,X,"",function(Vn){return Vn})):ee!=null&&(ae(ee)&&(ee=Ye(ee,X+(ee.key==null||b&&b.key===ee.key?"":(""+ee.key).replace(Fe,"$&/")+"/")+re)),Z.push(ee)),1;re=0;var St=V===""?".":V+":";if(I(b))for(var Ne=0;Ne>>1,b=M[Ae];if(0>>1;Aec(V,le))eec(pe,V)?(M[Ae]=pe,M[ee]=le,Ae=ee):(M[Ae]=V,M[X]=le,Ae=X);else if(eec(pe,le))M[Ae]=pe,M[ee]=le,Ae=ee;else break e}}return Y}function c(M,Y){var le=M.sortIndex-Y.sortIndex;return le!==0?le:M.id-Y.id}if(n.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var f=performance;n.unstable_now=function(){return f.now()}}else{var d=Date,v=d.now();n.unstable_now=function(){return d.now()-v}}var m=[],g=[],y=1,A=null,R=3,B=!1,H=!1,L=!1,q=!1,k=typeof setTimeout=="function"?setTimeout:null,F=typeof clearTimeout=="function"?clearTimeout:null,G=typeof setImmediate<"u"?setImmediate:null;function I(M){for(var Y=i(g);Y!==null;){if(Y.callback===null)r(g);else if(Y.startTime<=M)r(g),Y.sortIndex=Y.expirationTime,l(m,Y);else break;Y=i(g)}}function K(M){if(L=!1,I(M),!H)if(i(m)!==null)H=!0,me||(me=!0,Ge());else{var Y=i(g);Y!==null&&ut(K,Y.startTime-M)}}var me=!1,Re=-1,Ye=5,ae=-1;function $e(){return q?!0:!(n.unstable_now()-aeM&&$e());){var Ae=A.callback;if(typeof Ae=="function"){A.callback=null,R=A.priorityLevel;var b=Ae(A.expirationTime<=M);if(M=n.unstable_now(),typeof b=="function"){A.callback=b,I(M),Y=!0;break t}A===i(m)&&r(m),I(M)}else r(m);A=i(m)}if(A!==null)Y=!0;else{var Z=i(g);Z!==null&&ut(K,Z.startTime-M),Y=!1}}break e}finally{A=null,R=le,B=!1}Y=void 0}}finally{Y?Ge():me=!1}}}var Ge;if(typeof G=="function")Ge=function(){G(Fe)};else if(typeof MessageChannel<"u"){var Jt=new MessageChannel,qn=Jt.port2;Jt.port1.onmessage=Fe,Ge=function(){qn.postMessage(null)}}else Ge=function(){k(Fe,0)};function ut(M,Y){Re=k(function(){M(n.unstable_now())},Y)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(M){M.callback=null},n.unstable_forceFrameRate=function(M){0>M||125Ae?(M.sortIndex=le,l(g,M),i(m)===null&&M===i(g)&&(L?(F(Re),Re=-1):L=!0,ut(K,le-Ae))):(M.sortIndex=b,l(m,M),H||B||(H=!0,me||(me=!0,Ge()))),M},n.unstable_shouldYield=$e,n.unstable_wrapCallback=function(M){var Y=R;return function(){var le=R;R=Y;try{return M.apply(this,arguments)}finally{R=le}}}}(Gs)),Gs}var Um;function J0(){return Um||(Um=1,Ys.exports=K0()),Ys.exports}var Xs={exports:{}},ft={};/** + */var Cm;function K0(){return Cm||(Cm=1,function(n){function l(M,Y){var le=M.length;M.push(Y);e:for(;0>>1,b=M[Ae];if(0>>1;Aec(V,le))eec(pe,V)?(M[Ae]=pe,M[ee]=le,Ae=ee):(M[Ae]=V,M[X]=le,Ae=X);else if(eec(pe,le))M[Ae]=pe,M[ee]=le,Ae=ee;else break e}}return Y}function c(M,Y){var le=M.sortIndex-Y.sortIndex;return le!==0?le:M.id-Y.id}if(n.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var f=performance;n.unstable_now=function(){return f.now()}}else{var d=Date,v=d.now();n.unstable_now=function(){return d.now()-v}}var m=[],p=[],y=1,x=null,z=3,B=!1,H=!1,L=!1,q=!1,k=typeof setTimeout=="function"?setTimeout:null,F=typeof clearTimeout=="function"?clearTimeout:null,G=typeof setImmediate<"u"?setImmediate:null;function I(M){for(var Y=i(p);Y!==null;){if(Y.callback===null)r(p);else if(Y.startTime<=M)r(p),Y.sortIndex=Y.expirationTime,l(m,Y);else break;Y=i(p)}}function K(M){if(L=!1,I(M),!H)if(i(m)!==null)H=!0,me||(me=!0,Ge());else{var Y=i(p);Y!==null&&ut(K,Y.startTime-M)}}var me=!1,Re=-1,Ye=5,ae=-1;function $e(){return q?!0:!(n.unstable_now()-aeM&&$e());){var Ae=x.callback;if(typeof Ae=="function"){x.callback=null,z=x.priorityLevel;var b=Ae(x.expirationTime<=M);if(M=n.unstable_now(),typeof b=="function"){x.callback=b,I(M),Y=!0;break t}x===i(m)&&r(m),I(M)}else r(m);x=i(m)}if(x!==null)Y=!0;else{var Z=i(p);Z!==null&&ut(K,Z.startTime-M),Y=!1}}break e}finally{x=null,z=le,B=!1}Y=void 0}}finally{Y?Ge():me=!1}}}var Ge;if(typeof G=="function")Ge=function(){G(Fe)};else if(typeof MessageChannel<"u"){var Jt=new MessageChannel,qn=Jt.port2;Jt.port1.onmessage=Fe,Ge=function(){qn.postMessage(null)}}else Ge=function(){k(Fe,0)};function ut(M,Y){Re=k(function(){M(n.unstable_now())},Y)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(M){M.callback=null},n.unstable_forceFrameRate=function(M){0>M||125Ae?(M.sortIndex=le,l(p,M),i(m)===null&&M===i(p)&&(L?(F(Re),Re=-1):L=!0,ut(K,le-Ae))):(M.sortIndex=b,l(m,M),H||B||(H=!0,me||(me=!0,Ge()))),M},n.unstable_shouldYield=$e,n.unstable_wrapCallback=function(M){var Y=z;return function(){var le=z;z=Y;try{return M.apply(this,arguments)}finally{z=le}}}}(Gs)),Gs}var Um;function J0(){return Um||(Um=1,Ys.exports=K0()),Ys.exports}var Xs={exports:{}},ft={};/** * @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 Zm;function P0(){if(Zm)return ft;Zm=1;var n=uo();function l(m){var g="https://react.dev/errors/"+m;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(l){console.error(l)}}return n(),Xs.exports=P0(),Xs.exports}/** + */var Zm;function P0(){if(Zm)return ft;Zm=1;var n=uo();function l(m){var p="https://react.dev/errors/"+m;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(l){console.error(l)}}return n(),Xs.exports=P0(),Xs.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 Lm;function W0(){if(Lm)return Gu;Lm=1;var n=J0(),l=uo(),i=$p();function r(e){var t="https://react.dev/errors/"+e;if(1b||(e.current=Ae[b],Ae[b]=null,b--)}function V(e,t){b++,Ae[b]=e.current,e.current=t}var ee=Z(null),pe=Z(null),re=Z(null),St=Z(null);function Ne(e,t){switch(V(re,t),V(pe,e),V(ee,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?lm(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=lm(t),e=um(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}X(ee),V(ee,e)}function Vn(){X(ee),X(pe),X(re)}function To(e){e.memoizedState!==null&&V(St,e);var t=ee.current,a=um(t,e.type);t!==a&&(V(pe,e),V(ee,a))}function pi(e){pe.current===e&&(X(ee),X(pe)),St.current===e&&(X(St),Hu._currentValue=le)}var zo=Object.prototype.hasOwnProperty,Ro=n.unstable_scheduleCallback,wo=n.unstable_cancelCallback,E_=n.unstable_shouldYield,x_=n.unstable_requestPaint,ln=n.unstable_now,A_=n.unstable_getCurrentPriorityLevel,Lf=n.unstable_ImmediatePriority,Hf=n.unstable_UserBlockingPriority,gi=n.unstable_NormalPriority,T_=n.unstable_LowPriority,kf=n.unstable_IdlePriority,z_=n.log,R_=n.unstable_setDisableYieldValue,Ql=null,Ot=null;function Yn(e){if(typeof z_=="function"&&R_(e),Ot&&typeof Ot.setStrictMode=="function")try{Ot.setStrictMode(Ql,e)}catch{}}var Et=Math.clz32?Math.clz32:M_,w_=Math.log,D_=Math.LN2;function M_(e){return e>>>=0,e===0?32:31-(w_(e)/D_|0)|0}var _i=256,yi=4194304;function ya(e){var t=e&42;if(t!==0)return t;switch(e&-e){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 e&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function bi(e,t,a){var u=e.pendingLanes;if(u===0)return 0;var o=0,s=e.suspendedLanes,h=e.pingedLanes;e=e.warmLanes;var p=u&134217727;return p!==0?(u=p&~s,u!==0?o=ya(u):(h&=p,h!==0?o=ya(h):a||(a=p&~e,a!==0&&(o=ya(a))))):(p=u&~s,p!==0?o=ya(p):h!==0?o=ya(h):a||(a=u&~e,a!==0&&(o=ya(a)))),o===0?0:t!==0&&t!==o&&(t&s)===0&&(s=o&-o,a=t&-t,s>=a||s===32&&(a&4194048)!==0)?t:o}function Kl(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function N_(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+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 t+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 $f(){var e=_i;return _i<<=1,(_i&4194048)===0&&(_i=256),e}function qf(){var e=yi;return yi<<=1,(yi&62914560)===0&&(yi=4194304),e}function Do(e){for(var t=[],a=0;31>a;a++)t.push(e);return t}function Jl(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function j_(e,t,a,u,o,s){var h=e.pendingLanes;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=a,e.entangledLanes&=a,e.errorRecoveryDisabledLanes&=a,e.shellSuspendCounter=0;var p=e.entanglements,_=e.expirationTimes,x=e.hiddenUpdates;for(a=h&~a;0b||(e.current=Ae[b],Ae[b]=null,b--)}function V(e,t){b++,Ae[b]=e.current,e.current=t}var ee=Z(null),pe=Z(null),re=Z(null),St=Z(null);function Ne(e,t){switch(V(re,t),V(pe,e),V(ee,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?lm(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=lm(t),e=um(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}X(ee),V(ee,e)}function Vn(){X(ee),X(pe),X(re)}function To(e){e.memoizedState!==null&&V(St,e);var t=ee.current,a=um(t,e.type);t!==a&&(V(pe,e),V(ee,a))}function pi(e){pe.current===e&&(X(ee),X(pe)),St.current===e&&(X(St),Hu._currentValue=le)}var zo=Object.prototype.hasOwnProperty,Ro=n.unstable_scheduleCallback,wo=n.unstable_cancelCallback,E_=n.unstable_shouldYield,x_=n.unstable_requestPaint,ln=n.unstable_now,A_=n.unstable_getCurrentPriorityLevel,Lf=n.unstable_ImmediatePriority,Hf=n.unstable_UserBlockingPriority,gi=n.unstable_NormalPriority,T_=n.unstable_LowPriority,kf=n.unstable_IdlePriority,z_=n.log,R_=n.unstable_setDisableYieldValue,Ql=null,Ot=null;function Yn(e){if(typeof z_=="function"&&R_(e),Ot&&typeof Ot.setStrictMode=="function")try{Ot.setStrictMode(Ql,e)}catch{}}var Et=Math.clz32?Math.clz32:M_,w_=Math.log,D_=Math.LN2;function M_(e){return e>>>=0,e===0?32:31-(w_(e)/D_|0)|0}var _i=256,yi=4194304;function ya(e){var t=e&42;if(t!==0)return t;switch(e&-e){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 e&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function bi(e,t,a){var u=e.pendingLanes;if(u===0)return 0;var o=0,s=e.suspendedLanes,h=e.pingedLanes;e=e.warmLanes;var g=u&134217727;return g!==0?(u=g&~s,u!==0?o=ya(u):(h&=g,h!==0?o=ya(h):a||(a=g&~e,a!==0&&(o=ya(a))))):(g=u&~s,g!==0?o=ya(g):h!==0?o=ya(h):a||(a=u&~e,a!==0&&(o=ya(a)))),o===0?0:t!==0&&t!==o&&(t&s)===0&&(s=o&-o,a=t&-t,s>=a||s===32&&(a&4194048)!==0)?t:o}function Kl(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function N_(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+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 t+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 $f(){var e=_i;return _i<<=1,(_i&4194048)===0&&(_i=256),e}function qf(){var e=yi;return yi<<=1,(yi&62914560)===0&&(yi=4194304),e}function Do(e){for(var t=[],a=0;31>a;a++)t.push(e);return t}function Jl(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function j_(e,t,a,u,o,s){var h=e.pendingLanes;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=a,e.entangledLanes&=a,e.errorRecoveryDisabledLanes&=a,e.shellSuspendCounter=0;var g=e.entanglements,_=e.expirationTimes,A=e.hiddenUpdates;for(a=h&~a;0)":-1o||_[u]!==x[o]){var N=` +`+Uo+e+Wf}var Zo=!1;function Bo(e,t){if(!e||Zo)return"";Zo=!0;var a=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var u={DetermineComponentFrameRoot:function(){try{if(t){var U=function(){throw Error()};if(Object.defineProperty(U.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(U,[])}catch(R){var T=R}Reflect.construct(e,[],U)}else{try{U.call()}catch(R){T=R}e.call(U.prototype)}}else{try{throw Error()}catch(R){T=R}(U=e())&&typeof U.catch=="function"&&U.catch(function(){})}}catch(R){if(R&&T&&typeof R.stack=="string")return[R.stack,T.stack]}return[null,null]}};u.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var o=Object.getOwnPropertyDescriptor(u.DetermineComponentFrameRoot,"name");o&&o.configurable&&Object.defineProperty(u.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var s=u.DetermineComponentFrameRoot(),h=s[0],g=s[1];if(h&&g){var _=h.split(` +`),A=g.split(` +`);for(o=u=0;u<_.length&&!_[u].includes("DetermineComponentFrameRoot");)u++;for(;oo||_[u]!==A[o]){var N=` `+_[u].replace(" at new "," at ");return e.displayName&&N.includes("")&&(N=N.replace("",e.displayName)),N}while(1<=u&&0<=o);break}}}finally{Zo=!1,Error.prepareStackTrace=a}return(a=e?e.displayName||e.name:"")?el(a):""}function H_(e){switch(e.tag){case 26:case 27:case 5:return el(e.type);case 16:return el("Lazy");case 13:return el("Suspense");case 19:return el("SuspenseList");case 0:case 15:return Bo(e.type,!1);case 11:return Bo(e.type.render,!1);case 1:return Bo(e.type,!0);case 31:return el("Activity");default:return""}}function Ff(e){try{var t="";do t+=H_(e),e=e.return;while(e);return t}catch(a){return` Error generating stack: `+a.message+` -`+a.stack}}function Ut(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function If(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function k_(e){var t=If(e)?"checked":"value",a=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),u=""+e[t];if(!e.hasOwnProperty(t)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var o=a.get,s=a.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(h){u=""+h,s.call(this,h)}}),Object.defineProperty(e,t,{enumerable:a.enumerable}),{getValue:function(){return u},setValue:function(h){u=""+h},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Ei(e){e._valueTracker||(e._valueTracker=k_(e))}function ed(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var a=t.getValue(),u="";return e&&(u=If(e)?e.checked?"true":"false":e.value),e=u,e!==a?(t.setValue(e),!0):!1}function xi(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var $_=/[\n"\\]/g;function Zt(e){return e.replace($_,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Lo(e,t,a,u,o,s,h,p){e.name="",h!=null&&typeof h!="function"&&typeof h!="symbol"&&typeof h!="boolean"?e.type=h:e.removeAttribute("type"),t!=null?h==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+Ut(t)):e.value!==""+Ut(t)&&(e.value=""+Ut(t)):h!=="submit"&&h!=="reset"||e.removeAttribute("value"),t!=null?Ho(e,h,Ut(t)):a!=null?Ho(e,h,Ut(a)):u!=null&&e.removeAttribute("value"),o==null&&s!=null&&(e.defaultChecked=!!s),o!=null&&(e.checked=o&&typeof o!="function"&&typeof o!="symbol"),p!=null&&typeof p!="function"&&typeof p!="symbol"&&typeof p!="boolean"?e.name=""+Ut(p):e.removeAttribute("name")}function td(e,t,a,u,o,s,h,p){if(s!=null&&typeof s!="function"&&typeof s!="symbol"&&typeof s!="boolean"&&(e.type=s),t!=null||a!=null){if(!(s!=="submit"&&s!=="reset"||t!=null))return;a=a!=null?""+Ut(a):"",t=t!=null?""+Ut(t):a,p||t===e.value||(e.value=t),e.defaultValue=t}u=u??o,u=typeof u!="function"&&typeof u!="symbol"&&!!u,e.checked=p?e.checked:!!u,e.defaultChecked=!!u,h!=null&&typeof h!="function"&&typeof h!="symbol"&&typeof h!="boolean"&&(e.name=h)}function Ho(e,t,a){t==="number"&&xi(e.ownerDocument)===e||e.defaultValue===""+a||(e.defaultValue=""+a)}function tl(e,t,a,u){if(e=e.options,t){t={};for(var o=0;o"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Yo=!1;if(bn)try{var Il={};Object.defineProperty(Il,"passive",{get:function(){Yo=!0}}),window.addEventListener("test",Il,Il),window.removeEventListener("test",Il,Il)}catch{Yo=!1}var Xn=null,Go=null,Ti=null;function od(){if(Ti)return Ti;var e,t=Go,a=t.length,u,o="value"in Xn?Xn.value:Xn.textContent,s=o.length;for(e=0;e=nu),vd=" ",md=!1;function pd(e,t){switch(e){case"keyup":return my.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function gd(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var ul=!1;function gy(e,t){switch(e){case"compositionend":return gd(t);case"keypress":return t.which!==32?null:(md=!0,vd);case"textInput":return e=t.data,e===vd&&md?null:e;default:return null}}function _y(e,t){if(ul)return e==="compositionend"||!Po&&pd(e,t)?(e=od(),Ti=Go=Xn=null,ul=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:a,offset:t-e};e=u}e:{for(;a;){if(a.nextSibling){a=a.nextSibling;break e}a=a.parentNode}a=void 0}a=Ad(a)}}function zd(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?zd(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Rd(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=xi(e.document);t instanceof e.HTMLIFrameElement;){try{var a=typeof t.contentWindow.location.href=="string"}catch{a=!1}if(a)e=t.contentWindow;else break;t=xi(e.document)}return t}function Io(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var Ty=bn&&"documentMode"in document&&11>=document.documentMode,il=null,ec=null,iu=null,tc=!1;function wd(e,t,a){var u=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;tc||il==null||il!==xi(u)||(u=il,"selectionStart"in u&&Io(u)?u={start:u.selectionStart,end:u.selectionEnd}:(u=(u.ownerDocument&&u.ownerDocument.defaultView||window).getSelection(),u={anchorNode:u.anchorNode,anchorOffset:u.anchorOffset,focusNode:u.focusNode,focusOffset:u.focusOffset}),iu&&uu(iu,u)||(iu=u,u=pr(ec,"onSelect"),0>=h,o-=h,On=1<<32-Et(t)+o|a<s?s:8;var h=M.T,p={};M.T=p,kc(e,!1,t,a);try{var _=o(),x=M.S;if(x!==null&&x(p,_),_!==null&&typeof _=="object"&&typeof _.then=="function"){var N=Uy(_,u);Su(e,t,N,wt(e))}else Su(e,t,u,wt(e))}catch(U){Su(e,t,{then:function(){},status:"rejected",reason:U},wt())}finally{Y.p=s,M.T=h}}function ky(){}function Lc(e,t,a,u){if(e.tag!==5)throw Error(r(476));var o=Dh(e).queue;wh(e,o,t,le,a===null?ky:function(){return Mh(e),a(u)})}function Dh(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:le,baseState:le,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Tn,lastRenderedState:le},next:null};var a={};return t.next={memoizedState:a,baseState:a,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Tn,lastRenderedState:a},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Mh(e){var t=Dh(e).next.queue;Su(e,t,{},wt())}function Hc(){return st(Hu)}function Nh(){return Qe().memoizedState}function jh(){return Qe().memoizedState}function $y(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var a=wt();e=Jn(a);var u=Pn(t,e,a);u!==null&&(Dt(u,t,a),mu(u,t,a)),t={cache:mc()},e.payload=t;return}t=t.return}}function qy(e,t,a){var u=wt();a={lane:u,revertLane:0,action:a,hasEagerState:!1,eagerState:null,next:null},Pi(e)?Uh(t,a):(a=uc(e,t,a,u),a!==null&&(Dt(a,e,u),Zh(a,t,u)))}function Ch(e,t,a){var u=wt();Su(e,t,a,u)}function Su(e,t,a,u){var o={lane:u,revertLane:0,action:a,hasEagerState:!1,eagerState:null,next:null};if(Pi(e))Uh(t,o);else{var s=e.alternate;if(e.lanes===0&&(s===null||s.lanes===0)&&(s=t.lastRenderedReducer,s!==null))try{var h=t.lastRenderedState,p=s(h,a);if(o.hasEagerState=!0,o.eagerState=p,xt(p,h))return ji(e,t,o,0),we===null&&Ni(),!1}catch{}finally{}if(a=uc(e,t,o,u),a!==null)return Dt(a,e,u),Zh(a,t,u),!0}return!1}function kc(e,t,a,u){if(u={lane:2,revertLane:_s(),action:u,hasEagerState:!1,eagerState:null,next:null},Pi(e)){if(t)throw Error(r(479))}else t=uc(e,a,u,2),t!==null&&Dt(t,e,2)}function Pi(e){var t=e.alternate;return e===ce||t!==null&&t===ce}function Uh(e,t){pl=Yi=!0;var a=e.pending;a===null?t.next=t:(t.next=a.next,a.next=t),e.pending=t}function Zh(e,t,a){if((a&4194048)!==0){var u=t.lanes;u&=e.pendingLanes,a|=u,t.lanes=a,Yf(e,a)}}var Wi={readContext:st,use:Xi,useCallback:qe,useContext:qe,useEffect:qe,useImperativeHandle:qe,useLayoutEffect:qe,useInsertionEffect:qe,useMemo:qe,useReducer:qe,useRef:qe,useState:qe,useDebugValue:qe,useDeferredValue:qe,useTransition:qe,useSyncExternalStore:qe,useId:qe,useHostTransitionStatus:qe,useFormState:qe,useActionState:qe,useOptimistic:qe,useMemoCache:qe,useCacheRefresh:qe},Bh={readContext:st,use:Xi,useCallback:function(e,t){return mt().memoizedState=[e,t===void 0?null:t],e},useContext:st,useEffect:bh,useImperativeHandle:function(e,t,a){a=a!=null?a.concat([e]):null,Ji(4194308,4,xh.bind(null,t,e),a)},useLayoutEffect:function(e,t){return Ji(4194308,4,e,t)},useInsertionEffect:function(e,t){Ji(4,2,e,t)},useMemo:function(e,t){var a=mt();t=t===void 0?null:t;var u=e();if(Na){Yn(!0);try{e()}finally{Yn(!1)}}return a.memoizedState=[u,t],u},useReducer:function(e,t,a){var u=mt();if(a!==void 0){var o=a(t);if(Na){Yn(!0);try{a(t)}finally{Yn(!1)}}}else o=t;return u.memoizedState=u.baseState=o,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:o},u.queue=e,e=e.dispatch=qy.bind(null,ce,e),[u.memoizedState,e]},useRef:function(e){var t=mt();return e={current:e},t.memoizedState=e},useState:function(e){e=Cc(e);var t=e.queue,a=Ch.bind(null,ce,t);return t.dispatch=a,[e.memoizedState,a]},useDebugValue:Zc,useDeferredValue:function(e,t){var a=mt();return Bc(a,e,t)},useTransition:function(){var e=Cc(!1);return e=wh.bind(null,ce,e.queue,!0,!1),mt().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,a){var u=ce,o=mt();if(ye){if(a===void 0)throw Error(r(407));a=a()}else{if(a=t(),we===null)throw Error(r(349));(he&124)!==0||lh(u,t,a)}o.memoizedState=a;var s={value:a,getSnapshot:t};return o.queue=s,bh(ih.bind(null,u,s,e),[e]),u.flags|=2048,_l(9,Ki(),uh.bind(null,u,s,a,t),null),a},useId:function(){var e=mt(),t=we.identifierPrefix;if(ye){var a=En,u=On;a=(u&~(1<<32-Et(u)-1)).toString(32)+a,t="«"+t+"R"+a,a=Gi++,0ne?(nt=W,W=null):nt=W.sibling;var ge=T(O,W,E[ne],C);if(ge===null){W===null&&(W=nt);break}e&&W&&ge.alternate===null&&t(O,W),S=s(ge,S,ne),se===null?Q=ge:se.sibling=ge,se=ge,W=nt}if(ne===E.length)return a(O,W),ye&&Ta(O,ne),Q;if(W===null){for(;nene?(nt=W,W=null):nt=W.sibling;var ha=T(O,W,ge.value,C);if(ha===null){W===null&&(W=nt);break}e&&W&&ha.alternate===null&&t(O,W),S=s(ha,S,ne),se===null?Q=ha:se.sibling=ha,se=ha,W=nt}if(ge.done)return a(O,W),ye&&Ta(O,ne),Q;if(W===null){for(;!ge.done;ne++,ge=E.next())ge=U(O,ge.value,C),ge!==null&&(S=s(ge,S,ne),se===null?Q=ge:se.sibling=ge,se=ge);return ye&&Ta(O,ne),Q}for(W=u(W);!ge.done;ne++,ge=E.next())ge=z(W,O,ne,ge.value,C),ge!==null&&(e&&ge.alternate!==null&&W.delete(ge.key===null?ne:ge.key),S=s(ge,S,ne),se===null?Q=ge:se.sibling=ge,se=ge);return e&&W.forEach(function(Y0){return t(O,Y0)}),ye&&Ta(O,ne),Q}function xe(O,S,E,C){if(typeof E=="object"&&E!==null&&E.type===H&&E.key===null&&(E=E.props.children),typeof E=="object"&&E!==null){switch(E.$$typeof){case R:e:{for(var Q=E.key;S!==null;){if(S.key===Q){if(Q=E.type,Q===H){if(S.tag===7){a(O,S.sibling),C=o(S,E.props.children),C.return=O,O=C;break e}}else if(S.elementType===Q||typeof Q=="object"&&Q!==null&&Q.$$typeof===Ye&&Hh(Q)===S.type){a(O,S.sibling),C=o(S,E.props),Eu(C,E),C.return=O,O=C;break e}a(O,S);break}else t(O,S);S=S.sibling}E.type===H?(C=xa(E.props.children,O.mode,C,E.key),C.return=O,O=C):(C=Ui(E.type,E.key,E.props,null,O.mode,C),Eu(C,E),C.return=O,O=C)}return h(O);case B:e:{for(Q=E.key;S!==null;){if(S.key===Q)if(S.tag===4&&S.stateNode.containerInfo===E.containerInfo&&S.stateNode.implementation===E.implementation){a(O,S.sibling),C=o(S,E.children||[]),C.return=O,O=C;break e}else{a(O,S);break}else t(O,S);S=S.sibling}C=oc(E,O.mode,C),C.return=O,O=C}return h(O);case Ye:return Q=E._init,E=Q(E._payload),xe(O,S,E,C)}if(ut(E))return ue(O,S,E,C);if(Ge(E)){if(Q=Ge(E),typeof Q!="function")throw Error(r(150));return E=Q.call(E),te(O,S,E,C)}if(typeof E.then=="function")return xe(O,S,Fi(E),C);if(E.$$typeof===G)return xe(O,S,Hi(O,E),C);Ii(O,E)}return typeof E=="string"&&E!==""||typeof E=="number"||typeof E=="bigint"?(E=""+E,S!==null&&S.tag===6?(a(O,S.sibling),C=o(S,E),C.return=O,O=C):(a(O,S),C=rc(E,O.mode,C),C.return=O,O=C),h(O)):a(O,S)}return function(O,S,E,C){try{Ou=0;var Q=xe(O,S,E,C);return yl=null,Q}catch(W){if(W===hu||W===$i)throw W;var se=At(29,W,null,O.mode);return se.lanes=C,se.return=O,se}finally{}}}var bl=kh(!0),$h=kh(!1),$t=Z(null),rn=null;function Fn(e){var t=e.alternate;V(Pe,Pe.current&1),V($t,e),rn===null&&(t===null||ml.current!==null||t.memoizedState!==null)&&(rn=e)}function qh(e){if(e.tag===22){if(V(Pe,Pe.current),V($t,e),rn===null){var t=e.alternate;t!==null&&t.memoizedState!==null&&(rn=e)}}else In()}function In(){V(Pe,Pe.current),V($t,$t.current)}function zn(e){X($t),rn===e&&(rn=null),X(Pe)}var Pe=Z(0);function er(e){for(var t=e;t!==null;){if(t.tag===13){var a=t.memoizedState;if(a!==null&&(a=a.dehydrated,a===null||a.data==="$?"||Ds(a)))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}function $c(e,t,a,u){t=e.memoizedState,a=a(u,t),a=a==null?t:y({},t,a),e.memoizedState=a,e.lanes===0&&(e.updateQueue.baseState=a)}var qc={enqueueSetState:function(e,t,a){e=e._reactInternals;var u=wt(),o=Jn(u);o.payload=t,a!=null&&(o.callback=a),t=Pn(e,o,u),t!==null&&(Dt(t,e,u),mu(t,e,u))},enqueueReplaceState:function(e,t,a){e=e._reactInternals;var u=wt(),o=Jn(u);o.tag=1,o.payload=t,a!=null&&(o.callback=a),t=Pn(e,o,u),t!==null&&(Dt(t,e,u),mu(t,e,u))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var a=wt(),u=Jn(a);u.tag=2,t!=null&&(u.callback=t),t=Pn(e,u,a),t!==null&&(Dt(t,e,a),mu(t,e,a))}};function Vh(e,t,a,u,o,s,h){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(u,s,h):t.prototype&&t.prototype.isPureReactComponent?!uu(a,u)||!uu(o,s):!0}function Yh(e,t,a,u){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(a,u),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(a,u),t.state!==e&&qc.enqueueReplaceState(t,t.state,null)}function ja(e,t){var a=t;if("ref"in t){a={};for(var u in t)u!=="ref"&&(a[u]=t[u])}if(e=e.defaultProps){a===t&&(a=y({},a));for(var o in e)a[o]===void 0&&(a[o]=e[o])}return a}var tr=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)};function Gh(e){tr(e)}function Xh(e){console.error(e)}function Qh(e){tr(e)}function nr(e,t){try{var a=e.onUncaughtError;a(t.value,{componentStack:t.stack})}catch(u){setTimeout(function(){throw u})}}function Kh(e,t,a){try{var u=e.onCaughtError;u(a.value,{componentStack:a.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(o){setTimeout(function(){throw o})}}function Vc(e,t,a){return a=Jn(a),a.tag=3,a.payload={element:null},a.callback=function(){nr(e,t)},a}function Jh(e){return e=Jn(e),e.tag=3,e}function Ph(e,t,a,u){var o=a.type.getDerivedStateFromError;if(typeof o=="function"){var s=u.value;e.payload=function(){return o(s)},e.callback=function(){Kh(t,a,u)}}var h=a.stateNode;h!==null&&typeof h.componentDidCatch=="function"&&(e.callback=function(){Kh(t,a,u),typeof o!="function"&&(ua===null?ua=new Set([this]):ua.add(this));var p=u.stack;this.componentDidCatch(u.value,{componentStack:p!==null?p:""})})}function Yy(e,t,a,u,o){if(a.flags|=32768,u!==null&&typeof u=="object"&&typeof u.then=="function"){if(t=a.alternate,t!==null&&su(t,a,o,!0),a=$t.current,a!==null){switch(a.tag){case 13:return rn===null?hs():a.alternate===null&&ke===0&&(ke=3),a.flags&=-257,a.flags|=65536,a.lanes=o,u===_c?a.flags|=16384:(t=a.updateQueue,t===null?a.updateQueue=new Set([u]):t.add(u),ms(e,u,o)),!1;case 22:return a.flags|=65536,u===_c?a.flags|=16384:(t=a.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([u])},a.updateQueue=t):(a=t.retryQueue,a===null?t.retryQueue=new Set([u]):a.add(u)),ms(e,u,o)),!1}throw Error(r(435,a.tag))}return ms(e,u,o),hs(),!1}if(ye)return t=$t.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=o,u!==fc&&(e=Error(r(422),{cause:u}),cu(Bt(e,a)))):(u!==fc&&(t=Error(r(423),{cause:u}),cu(Bt(t,a))),e=e.current.alternate,e.flags|=65536,o&=-o,e.lanes|=o,u=Bt(u,a),o=Vc(e.stateNode,u,o),Sc(e,o),ke!==4&&(ke=2)),!1;var s=Error(r(520),{cause:u});if(s=Bt(s,a),Du===null?Du=[s]:Du.push(s),ke!==4&&(ke=2),t===null)return!0;u=Bt(u,a),a=t;do{switch(a.tag){case 3:return a.flags|=65536,e=o&-o,a.lanes|=e,e=Vc(a.stateNode,u,e),Sc(a,e),!1;case 1:if(t=a.type,s=a.stateNode,(a.flags&128)===0&&(typeof t.getDerivedStateFromError=="function"||s!==null&&typeof s.componentDidCatch=="function"&&(ua===null||!ua.has(s))))return a.flags|=65536,o&=-o,a.lanes|=o,o=Jh(o),Ph(o,e,a,u),Sc(a,o),!1}a=a.return}while(a!==null);return!1}var Wh=Error(r(461)),et=!1;function it(e,t,a,u){t.child=e===null?$h(t,null,a,u):bl(t,e.child,a,u)}function Fh(e,t,a,u,o){a=a.render;var s=t.ref;if("ref"in u){var h={};for(var p in u)p!=="ref"&&(h[p]=u[p])}else h=u;return Da(t),u=Tc(e,t,a,h,s,o),p=zc(),e!==null&&!et?(Rc(e,t,o),Rn(e,t,o)):(ye&&p&&cc(t),t.flags|=1,it(e,t,u,o),t.child)}function Ih(e,t,a,u,o){if(e===null){var s=a.type;return typeof s=="function"&&!ic(s)&&s.defaultProps===void 0&&a.compare===null?(t.tag=15,t.type=s,ev(e,t,s,u,o)):(e=Ui(a.type,null,u,t,t.mode,o),e.ref=t.ref,e.return=t,t.child=e)}if(s=e.child,!Wc(e,o)){var h=s.memoizedProps;if(a=a.compare,a=a!==null?a:uu,a(h,u)&&e.ref===t.ref)return Rn(e,t,o)}return t.flags|=1,e=Sn(s,u),e.ref=t.ref,e.return=t,t.child=e}function ev(e,t,a,u,o){if(e!==null){var s=e.memoizedProps;if(uu(s,u)&&e.ref===t.ref)if(et=!1,t.pendingProps=u=s,Wc(e,o))(e.flags&131072)!==0&&(et=!0);else return t.lanes=e.lanes,Rn(e,t,o)}return Yc(e,t,a,u,o)}function tv(e,t,a){var u=t.pendingProps,o=u.children,s=e!==null?e.memoizedState:null;if(u.mode==="hidden"){if((t.flags&128)!==0){if(u=s!==null?s.baseLanes|a:a,e!==null){for(o=t.child=e.child,s=0;o!==null;)s=s|o.lanes|o.childLanes,o=o.sibling;t.childLanes=s&~u}else t.childLanes=0,t.child=null;return nv(e,t,u,a)}if((a&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&ki(t,s!==null?s.cachePool:null),s!==null?eh(t,s):Ec(),qh(t);else return t.lanes=t.childLanes=536870912,nv(e,t,s!==null?s.baseLanes|a:a,a)}else s!==null?(ki(t,s.cachePool),eh(t,s),In(),t.memoizedState=null):(e!==null&&ki(t,null),Ec(),In());return it(e,t,o,a),t.child}function nv(e,t,a,u){var o=gc();return o=o===null?null:{parent:Je._currentValue,pool:o},t.memoizedState={baseLanes:a,cachePool:o},e!==null&&ki(t,null),Ec(),qh(t),e!==null&&su(e,t,u,!0),null}function ar(e,t){var a=t.ref;if(a===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof a!="function"&&typeof a!="object")throw Error(r(284));(e===null||e.ref!==a)&&(t.flags|=4194816)}}function Yc(e,t,a,u,o){return Da(t),a=Tc(e,t,a,u,void 0,o),u=zc(),e!==null&&!et?(Rc(e,t,o),Rn(e,t,o)):(ye&&u&&cc(t),t.flags|=1,it(e,t,a,o),t.child)}function av(e,t,a,u,o,s){return Da(t),t.updateQueue=null,a=nh(t,u,a,o),th(e),u=zc(),e!==null&&!et?(Rc(e,t,s),Rn(e,t,s)):(ye&&u&&cc(t),t.flags|=1,it(e,t,a,s),t.child)}function lv(e,t,a,u,o){if(Da(t),t.stateNode===null){var s=sl,h=a.contextType;typeof h=="object"&&h!==null&&(s=st(h)),s=new a(u,s),t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,s.updater=qc,t.stateNode=s,s._reactInternals=t,s=t.stateNode,s.props=u,s.state=t.memoizedState,s.refs={},yc(t),h=a.contextType,s.context=typeof h=="object"&&h!==null?st(h):sl,s.state=t.memoizedState,h=a.getDerivedStateFromProps,typeof h=="function"&&($c(t,a,h,u),s.state=t.memoizedState),typeof a.getDerivedStateFromProps=="function"||typeof s.getSnapshotBeforeUpdate=="function"||typeof s.UNSAFE_componentWillMount!="function"&&typeof s.componentWillMount!="function"||(h=s.state,typeof s.componentWillMount=="function"&&s.componentWillMount(),typeof s.UNSAFE_componentWillMount=="function"&&s.UNSAFE_componentWillMount(),h!==s.state&&qc.enqueueReplaceState(s,s.state,null),gu(t,u,s,o),pu(),s.state=t.memoizedState),typeof s.componentDidMount=="function"&&(t.flags|=4194308),u=!0}else if(e===null){s=t.stateNode;var p=t.memoizedProps,_=ja(a,p);s.props=_;var x=s.context,N=a.contextType;h=sl,typeof N=="object"&&N!==null&&(h=st(N));var U=a.getDerivedStateFromProps;N=typeof U=="function"||typeof s.getSnapshotBeforeUpdate=="function",p=t.pendingProps!==p,N||typeof s.UNSAFE_componentWillReceiveProps!="function"&&typeof s.componentWillReceiveProps!="function"||(p||x!==h)&&Yh(t,s,u,h),Kn=!1;var T=t.memoizedState;s.state=T,gu(t,u,s,o),pu(),x=t.memoizedState,p||T!==x||Kn?(typeof U=="function"&&($c(t,a,U,u),x=t.memoizedState),(_=Kn||Vh(t,a,_,u,T,x,h))?(N||typeof s.UNSAFE_componentWillMount!="function"&&typeof s.componentWillMount!="function"||(typeof s.componentWillMount=="function"&&s.componentWillMount(),typeof s.UNSAFE_componentWillMount=="function"&&s.UNSAFE_componentWillMount()),typeof s.componentDidMount=="function"&&(t.flags|=4194308)):(typeof s.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=u,t.memoizedState=x),s.props=u,s.state=x,s.context=h,u=_):(typeof s.componentDidMount=="function"&&(t.flags|=4194308),u=!1)}else{s=t.stateNode,bc(e,t),h=t.memoizedProps,N=ja(a,h),s.props=N,U=t.pendingProps,T=s.context,x=a.contextType,_=sl,typeof x=="object"&&x!==null&&(_=st(x)),p=a.getDerivedStateFromProps,(x=typeof p=="function"||typeof s.getSnapshotBeforeUpdate=="function")||typeof s.UNSAFE_componentWillReceiveProps!="function"&&typeof s.componentWillReceiveProps!="function"||(h!==U||T!==_)&&Yh(t,s,u,_),Kn=!1,T=t.memoizedState,s.state=T,gu(t,u,s,o),pu();var z=t.memoizedState;h!==U||T!==z||Kn||e!==null&&e.dependencies!==null&&Li(e.dependencies)?(typeof p=="function"&&($c(t,a,p,u),z=t.memoizedState),(N=Kn||Vh(t,a,N,u,T,z,_)||e!==null&&e.dependencies!==null&&Li(e.dependencies))?(x||typeof s.UNSAFE_componentWillUpdate!="function"&&typeof s.componentWillUpdate!="function"||(typeof s.componentWillUpdate=="function"&&s.componentWillUpdate(u,z,_),typeof s.UNSAFE_componentWillUpdate=="function"&&s.UNSAFE_componentWillUpdate(u,z,_)),typeof s.componentDidUpdate=="function"&&(t.flags|=4),typeof s.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof s.componentDidUpdate!="function"||h===e.memoizedProps&&T===e.memoizedState||(t.flags|=4),typeof s.getSnapshotBeforeUpdate!="function"||h===e.memoizedProps&&T===e.memoizedState||(t.flags|=1024),t.memoizedProps=u,t.memoizedState=z),s.props=u,s.state=z,s.context=_,u=N):(typeof s.componentDidUpdate!="function"||h===e.memoizedProps&&T===e.memoizedState||(t.flags|=4),typeof s.getSnapshotBeforeUpdate!="function"||h===e.memoizedProps&&T===e.memoizedState||(t.flags|=1024),u=!1)}return s=u,ar(e,t),u=(t.flags&128)!==0,s||u?(s=t.stateNode,a=u&&typeof a.getDerivedStateFromError!="function"?null:s.render(),t.flags|=1,e!==null&&u?(t.child=bl(t,e.child,null,o),t.child=bl(t,null,a,o)):it(e,t,a,o),t.memoizedState=s.state,e=t.child):e=Rn(e,t,o),e}function uv(e,t,a,u){return ou(),t.flags|=256,it(e,t,a,u),t.child}var Gc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Xc(e){return{baseLanes:e,cachePool:Xd()}}function Qc(e,t,a){return e=e!==null?e.childLanes&~a:0,t&&(e|=qt),e}function iv(e,t,a){var u=t.pendingProps,o=!1,s=(t.flags&128)!==0,h;if((h=s)||(h=e!==null&&e.memoizedState===null?!1:(Pe.current&2)!==0),h&&(o=!0,t.flags&=-129),h=(t.flags&32)!==0,t.flags&=-33,e===null){if(ye){if(o?Fn(t):In(),ye){var p=He,_;if(_=p){e:{for(_=p,p=un;_.nodeType!==8;){if(!p){p=null;break e}if(_=Ft(_.nextSibling),_===null){p=null;break e}}p=_}p!==null?(t.memoizedState={dehydrated:p,treeContext:Aa!==null?{id:On,overflow:En}:null,retryLane:536870912,hydrationErrors:null},_=At(18,null,null,0),_.stateNode=p,_.return=t,t.child=_,dt=t,He=null,_=!0):_=!1}_||Ra(t)}if(p=t.memoizedState,p!==null&&(p=p.dehydrated,p!==null))return Ds(p)?t.lanes=32:t.lanes=536870912,null;zn(t)}return p=u.children,u=u.fallback,o?(In(),o=t.mode,p=lr({mode:"hidden",children:p},o),u=xa(u,o,a,null),p.return=t,u.return=t,p.sibling=u,t.child=p,o=t.child,o.memoizedState=Xc(a),o.childLanes=Qc(e,h,a),t.memoizedState=Gc,u):(Fn(t),Kc(t,p))}if(_=e.memoizedState,_!==null&&(p=_.dehydrated,p!==null)){if(s)t.flags&256?(Fn(t),t.flags&=-257,t=Jc(e,t,a)):t.memoizedState!==null?(In(),t.child=e.child,t.flags|=128,t=null):(In(),o=u.fallback,p=t.mode,u=lr({mode:"visible",children:u.children},p),o=xa(o,p,a,null),o.flags|=2,u.return=t,o.return=t,u.sibling=o,t.child=u,bl(t,e.child,null,a),u=t.child,u.memoizedState=Xc(a),u.childLanes=Qc(e,h,a),t.memoizedState=Gc,t=o);else if(Fn(t),Ds(p)){if(h=p.nextSibling&&p.nextSibling.dataset,h)var x=h.dgst;h=x,u=Error(r(419)),u.stack="",u.digest=h,cu({value:u,source:null,stack:null}),t=Jc(e,t,a)}else if(et||su(e,t,a,!1),h=(a&e.childLanes)!==0,et||h){if(h=we,h!==null&&(u=a&-a,u=(u&42)!==0?1:Mo(u),u=(u&(h.suspendedLanes|a))!==0?0:u,u!==0&&u!==_.retryLane))throw _.retryLane=u,cl(e,u),Dt(h,e,u),Wh;p.data==="$?"||hs(),t=Jc(e,t,a)}else p.data==="$?"?(t.flags|=192,t.child=e.child,t=null):(e=_.treeContext,He=Ft(p.nextSibling),dt=t,ye=!0,za=null,un=!1,e!==null&&(Ht[kt++]=On,Ht[kt++]=En,Ht[kt++]=Aa,On=e.id,En=e.overflow,Aa=t),t=Kc(t,u.children),t.flags|=4096);return t}return o?(In(),o=u.fallback,p=t.mode,_=e.child,x=_.sibling,u=Sn(_,{mode:"hidden",children:u.children}),u.subtreeFlags=_.subtreeFlags&65011712,x!==null?o=Sn(x,o):(o=xa(o,p,a,null),o.flags|=2),o.return=t,u.return=t,u.sibling=o,t.child=u,u=o,o=t.child,p=e.child.memoizedState,p===null?p=Xc(a):(_=p.cachePool,_!==null?(x=Je._currentValue,_=_.parent!==x?{parent:x,pool:x}:_):_=Xd(),p={baseLanes:p.baseLanes|a,cachePool:_}),o.memoizedState=p,o.childLanes=Qc(e,h,a),t.memoizedState=Gc,u):(Fn(t),a=e.child,e=a.sibling,a=Sn(a,{mode:"visible",children:u.children}),a.return=t,a.sibling=null,e!==null&&(h=t.deletions,h===null?(t.deletions=[e],t.flags|=16):h.push(e)),t.child=a,t.memoizedState=null,a)}function Kc(e,t){return t=lr({mode:"visible",children:t},e.mode),t.return=e,e.child=t}function lr(e,t){return e=At(22,e,null,t),e.lanes=0,e.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},e}function Jc(e,t,a){return bl(t,e.child,null,a),e=Kc(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function rv(e,t,a){e.lanes|=t;var u=e.alternate;u!==null&&(u.lanes|=t),hc(e.return,t,a)}function Pc(e,t,a,u,o){var s=e.memoizedState;s===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:u,tail:a,tailMode:o}:(s.isBackwards=t,s.rendering=null,s.renderingStartTime=0,s.last=u,s.tail=a,s.tailMode=o)}function ov(e,t,a){var u=t.pendingProps,o=u.revealOrder,s=u.tail;if(it(e,t,u.children,a),u=Pe.current,(u&2)!==0)u=u&1|2,t.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&rv(e,a,t);else if(e.tag===19)rv(e,a,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}u&=1}switch(V(Pe,u),o){case"forwards":for(a=t.child,o=null;a!==null;)e=a.alternate,e!==null&&er(e)===null&&(o=a),a=a.sibling;a=o,a===null?(o=t.child,t.child=null):(o=a.sibling,a.sibling=null),Pc(t,!1,o,a,s);break;case"backwards":for(a=null,o=t.child,t.child=null;o!==null;){if(e=o.alternate,e!==null&&er(e)===null){t.child=o;break}e=o.sibling,o.sibling=a,a=o,o=e}Pc(t,!0,a,null,s);break;case"together":Pc(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Rn(e,t,a){if(e!==null&&(t.dependencies=e.dependencies),la|=t.lanes,(a&t.childLanes)===0)if(e!==null){if(su(e,t,a,!1),(a&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(r(153));if(t.child!==null){for(e=t.child,a=Sn(e,e.pendingProps),t.child=a,a.return=t;e.sibling!==null;)e=e.sibling,a=a.sibling=Sn(e,e.pendingProps),a.return=t;a.sibling=null}return t.child}function Wc(e,t){return(e.lanes&t)!==0?!0:(e=e.dependencies,!!(e!==null&&Li(e)))}function Gy(e,t,a){switch(t.tag){case 3:Ne(t,t.stateNode.containerInfo),Qn(t,Je,e.memoizedState.cache),ou();break;case 27:case 5:To(t);break;case 4:Ne(t,t.stateNode.containerInfo);break;case 10:Qn(t,t.type,t.memoizedProps.value);break;case 13:var u=t.memoizedState;if(u!==null)return u.dehydrated!==null?(Fn(t),t.flags|=128,null):(a&t.child.childLanes)!==0?iv(e,t,a):(Fn(t),e=Rn(e,t,a),e!==null?e.sibling:null);Fn(t);break;case 19:var o=(e.flags&128)!==0;if(u=(a&t.childLanes)!==0,u||(su(e,t,a,!1),u=(a&t.childLanes)!==0),o){if(u)return ov(e,t,a);t.flags|=128}if(o=t.memoizedState,o!==null&&(o.rendering=null,o.tail=null,o.lastEffect=null),V(Pe,Pe.current),u)break;return null;case 22:case 23:return t.lanes=0,tv(e,t,a);case 24:Qn(t,Je,e.memoizedState.cache)}return Rn(e,t,a)}function cv(e,t,a){if(e!==null)if(e.memoizedProps!==t.pendingProps)et=!0;else{if(!Wc(e,a)&&(t.flags&128)===0)return et=!1,Gy(e,t,a);et=(e.flags&131072)!==0}else et=!1,ye&&(t.flags&1048576)!==0&&Hd(t,Bi,t.index);switch(t.lanes=0,t.tag){case 16:e:{e=t.pendingProps;var u=t.elementType,o=u._init;if(u=o(u._payload),t.type=u,typeof u=="function")ic(u)?(e=ja(u,e),t.tag=1,t=lv(null,t,u,e,a)):(t.tag=0,t=Yc(null,t,u,e,a));else{if(u!=null){if(o=u.$$typeof,o===I){t.tag=11,t=Fh(null,t,u,e,a);break e}else if(o===Re){t.tag=14,t=Ih(null,t,u,e,a);break e}}throw t=qn(u)||u,Error(r(306,t,""))}}return t;case 0:return Yc(e,t,t.type,t.pendingProps,a);case 1:return u=t.type,o=ja(u,t.pendingProps),lv(e,t,u,o,a);case 3:e:{if(Ne(t,t.stateNode.containerInfo),e===null)throw Error(r(387));u=t.pendingProps;var s=t.memoizedState;o=s.element,bc(e,t),gu(t,u,null,a);var h=t.memoizedState;if(u=h.cache,Qn(t,Je,u),u!==s.cache&&vc(t,[Je],a,!0),pu(),u=h.element,s.isDehydrated)if(s={element:u,isDehydrated:!1,cache:h.cache},t.updateQueue.baseState=s,t.memoizedState=s,t.flags&256){t=uv(e,t,u,a);break e}else if(u!==o){o=Bt(Error(r(424)),t),cu(o),t=uv(e,t,u,a);break e}else{switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName==="HTML"?e.ownerDocument.body:e}for(He=Ft(e.firstChild),dt=t,ye=!0,za=null,un=!0,a=$h(t,null,u,a),t.child=a;a;)a.flags=a.flags&-3|4096,a=a.sibling}else{if(ou(),u===o){t=Rn(e,t,a);break e}it(e,t,u,a)}t=t.child}return t;case 26:return ar(e,t),e===null?(a=hm(t.type,null,t.pendingProps,null))?t.memoizedState=a:ye||(a=t.type,e=t.pendingProps,u=_r(re.current).createElement(a),u[ct]=t,u[ht]=e,ot(u,a,e),Ie(u),t.stateNode=u):t.memoizedState=hm(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return To(t),e===null&&ye&&(u=t.stateNode=sm(t.type,t.pendingProps,re.current),dt=t,un=!0,o=He,oa(t.type)?(Ms=o,He=Ft(u.firstChild)):He=o),it(e,t,t.pendingProps.children,a),ar(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&ye&&((o=u=He)&&(u=y0(u,t.type,t.pendingProps,un),u!==null?(t.stateNode=u,dt=t,He=Ft(u.firstChild),un=!1,o=!0):o=!1),o||Ra(t)),To(t),o=t.type,s=t.pendingProps,h=e!==null?e.memoizedProps:null,u=s.children,zs(o,s)?u=null:h!==null&&zs(o,h)&&(t.flags|=32),t.memoizedState!==null&&(o=Tc(e,t,By,null,null,a),Hu._currentValue=o),ar(e,t),it(e,t,u,a),t.child;case 6:return e===null&&ye&&((e=a=He)&&(a=b0(a,t.pendingProps,un),a!==null?(t.stateNode=a,dt=t,He=null,e=!0):e=!1),e||Ra(t)),null;case 13:return iv(e,t,a);case 4:return Ne(t,t.stateNode.containerInfo),u=t.pendingProps,e===null?t.child=bl(t,null,u,a):it(e,t,u,a),t.child;case 11:return Fh(e,t,t.type,t.pendingProps,a);case 7:return it(e,t,t.pendingProps,a),t.child;case 8:return it(e,t,t.pendingProps.children,a),t.child;case 12:return it(e,t,t.pendingProps.children,a),t.child;case 10:return u=t.pendingProps,Qn(t,t.type,u.value),it(e,t,u.children,a),t.child;case 9:return o=t.type._context,u=t.pendingProps.children,Da(t),o=st(o),u=u(o),t.flags|=1,it(e,t,u,a),t.child;case 14:return Ih(e,t,t.type,t.pendingProps,a);case 15:return ev(e,t,t.type,t.pendingProps,a);case 19:return ov(e,t,a);case 31:return u=t.pendingProps,a=t.mode,u={mode:u.mode,children:u.children},e===null?(a=lr(u,a),a.ref=t.ref,t.child=a,a.return=t,t=a):(a=Sn(e.child,u),a.ref=t.ref,t.child=a,a.return=t,t=a),t;case 22:return tv(e,t,a);case 24:return Da(t),u=st(Je),e===null?(o=gc(),o===null&&(o=we,s=mc(),o.pooledCache=s,s.refCount++,s!==null&&(o.pooledCacheLanes|=a),o=s),t.memoizedState={parent:u,cache:o},yc(t),Qn(t,Je,o)):((e.lanes&a)!==0&&(bc(e,t),gu(t,null,null,a),pu()),o=e.memoizedState,s=t.memoizedState,o.parent!==u?(o={parent:u,cache:u},t.memoizedState=o,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=o),Qn(t,Je,u)):(u=s.cache,Qn(t,Je,u),u!==o.cache&&vc(t,[Je],a,!0))),it(e,t,t.pendingProps.children,a),t.child;case 29:throw t.pendingProps}throw Error(r(156,t.tag))}function wn(e){e.flags|=4}function sv(e,t){if(t.type!=="stylesheet"||(t.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!_m(t)){if(t=$t.current,t!==null&&((he&4194048)===he?rn!==null:(he&62914560)!==he&&(he&536870912)===0||t!==rn))throw vu=_c,Qd;e.flags|=8192}}function ur(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag!==22?qf():536870912,e.lanes|=t,xl|=t)}function xu(e,t){if(!ye)switch(e.tailMode){case"hidden":t=e.tail;for(var a=null;t!==null;)t.alternate!==null&&(a=t),t=t.sibling;a===null?e.tail=null:a.sibling=null;break;case"collapsed":a=e.tail;for(var u=null;a!==null;)a.alternate!==null&&(u=a),a=a.sibling;u===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:u.sibling=null}}function Ze(e){var t=e.alternate!==null&&e.alternate.child===e.child,a=0,u=0;if(t)for(var o=e.child;o!==null;)a|=o.lanes|o.childLanes,u|=o.subtreeFlags&65011712,u|=o.flags&65011712,o.return=e,o=o.sibling;else for(o=e.child;o!==null;)a|=o.lanes|o.childLanes,u|=o.subtreeFlags,u|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=u,e.childLanes=a,t}function Xy(e,t,a){var u=t.pendingProps;switch(sc(t),t.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ze(t),null;case 1:return Ze(t),null;case 3:return a=t.stateNode,u=null,e!==null&&(u=e.memoizedState.cache),t.memoizedState.cache!==u&&(t.flags|=2048),An(Je),Vn(),a.pendingContext&&(a.context=a.pendingContext,a.pendingContext=null),(e===null||e.child===null)&&(ru(t)?wn(t):e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,qd())),Ze(t),null;case 26:return a=t.memoizedState,e===null?(wn(t),a!==null?(Ze(t),sv(t,a)):(Ze(t),t.flags&=-16777217)):a?a!==e.memoizedState?(wn(t),Ze(t),sv(t,a)):(Ze(t),t.flags&=-16777217):(e.memoizedProps!==u&&wn(t),Ze(t),t.flags&=-16777217),null;case 27:pi(t),a=re.current;var o=t.type;if(e!==null&&t.stateNode!=null)e.memoizedProps!==u&&wn(t);else{if(!u){if(t.stateNode===null)throw Error(r(166));return Ze(t),null}e=ee.current,ru(t)?kd(t):(e=sm(o,u,a),t.stateNode=e,wn(t))}return Ze(t),null;case 5:if(pi(t),a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==u&&wn(t);else{if(!u){if(t.stateNode===null)throw Error(r(166));return Ze(t),null}if(e=ee.current,ru(t))kd(t);else{switch(o=_r(re.current),e){case 1:e=o.createElementNS("http://www.w3.org/2000/svg",a);break;case 2:e=o.createElementNS("http://www.w3.org/1998/Math/MathML",a);break;default:switch(a){case"svg":e=o.createElementNS("http://www.w3.org/2000/svg",a);break;case"math":e=o.createElementNS("http://www.w3.org/1998/Math/MathML",a);break;case"script":e=o.createElement("div"),e.innerHTML=" - + +