foxygit / RPA-Remisser Log in
commit 7a42847cc45c697243f1b9725991f8b94a74dbb6
Author:     Jens Kristoffersson <jenkr@vgregion.se>
AuthorDate: Tue Sep 8 15:32:52 2026 +0200
Commit:     Jens Kristoffersson <jenkr@vgregion.se>
CommitDate: Tue Sep 8 15:32:52 2026 +0200

    Subfloden (fas 3): flikar + call_flow-nod i canvasen

    - CanvasTabs (ny): flikrad Main + en per lokal subgraf. + lagger till, dubbelklick
      dop:er om, x tar bort (varnar om nagon call_flow pekar dit), och pa en
      subflow-flik en "Kor denna flik"-knapp.
    - App.tsx: activeGraph-state; Canvas remountas per flik (key). onCanvasChange
      skriver till main-grafen eller ratt subflow. runSubflow oppnar RunDialog seedad
      med subgrafens egna inputs och kor via api.runFlow(..., subflowId).
    - Canvas.tsx: tar nu {nodes,edges,start} + subflow/extern-flode-listor +
      onOpenSubflow/onOpenExternal (i stallet for hela flow).
    - CallFlowFields (ny): malvaljare (Detta flode / Andra floden) + in/ut-mappnings-
      editorer + Oppna-knapp. StepNode renderar den for call_flow-noder.
    - lib/api.ts: Flow.subflows, Subflow/CallArg/CallRet, api.runFlow(subflow),
      api.assist skickar subflows. lib/graph.ts: normalizeFlow normaliserar subflows.
      lib/stepops.ts: newNode("call_flow"). i18n + CSS.
    - Tester: normalizeFlow subflows, newNode call_flow. 22 vitest grona.
      webui/static ombyggt. Verifierat i webblasare: flikar, byte, call_flow-nod,
      inga konsolfel.
---
 webui/frontend/src/App.tsx                         | 142 ++++++++++++++++++---
 webui/frontend/src/components/CallFlowFields.tsx   | 137 ++++++++++++++++++++
 webui/frontend/src/components/Canvas.tsx           |  36 ++++--
 webui/frontend/src/components/CanvasTabs.tsx       |  79 ++++++++++++
 webui/frontend/src/components/StepNode.tsx         |  17 +++
 webui/frontend/src/lib/api.ts                      |  36 +++++-
 webui/frontend/src/lib/graph.test.ts               |  18 +++
 webui/frontend/src/lib/graph.ts                    |  29 ++++-
 webui/frontend/src/lib/i18n.ts                     |  38 ++++++
 webui/frontend/src/lib/stepops.test.ts             |   8 ++
 webui/frontend/src/lib/stepops.ts                  |   5 +
 webui/frontend/src/styles.css                      |  29 +++++
 webui/static/assets/index-BJzN-7yS.js              |  65 ++++++++++
 webui/static/assets/index-BqrbpfOv.js              |  65 ----------
 .../{index-tNGal5OM.css => index-xkFS8M7o.css}     |   2 +-
 webui/static/index.html                            |   4 +-
 16 files changed, 605 insertions(+), 105 deletions(-)

diff --git a/webui/frontend/src/App.tsx b/webui/frontend/src/App.tsx
index 41631ad..f4692cb 100644
--- a/webui/frontend/src/App.tsx
+++ b/webui/frontend/src/App.tsx
@@ -1,12 +1,14 @@
 import { useCallback, useEffect, useMemo, useRef, useState } from "react";
-import { ApiError, api, type Flow, type GraphEdge, type RunState, type Step } from "./lib/api";
+import { ApiError, api, type Flow, type GraphEdge, type RunState, type Step, type Subflow } from "./lib/api";
 import type { Schema } from "./lib/schema";
 import { makeT, type Lang } from "./lib/i18n";
 import { normalizeFlow } from "./lib/graph";
 import { newNode } from "./lib/stepops";
+import { uid } from "./lib/ids";
 import { flowHasRunParams } from "./lib/runvars";
 import { Header } from "./components/Header";
 import { Canvas, type CanvasHandle } from "./components/Canvas";
+import { CanvasTabs } from "./components/CanvasTabs";
 import { Palette } from "./components/Palette";
 import { RunPanel } from "./components/RunPanel";
 import { VarsPanel } from "./components/VarsPanel";
@@ -25,6 +27,7 @@ const EMPTY: Flow = {
   layout: {},
   inputs: [],
   input_sets: {},
+  subflows: [],
 };

 export default function App() {
@@ -40,6 +43,8 @@ export default function App() {
   const [inspectOpen, setInspectOpen] = useState(false);
   const [inputsEditorOpen, setInputsEditorOpen] = useState(false);
   const [runDialogOpen, setRunDialogOpen] = useState(false);
+  const [runSubflowId, setRunSubflowId] = useState<string | null>(null);
+  const [activeGraph, setActiveGraph] = useState<string>("main"); // "main" | subflowId
   const [selectedIds, setSelectedIds] = useState<string[]>([]);
   const [blocksRefreshKey, setBlocksRefreshKey] = useState(0);
   const [toast, setToast] = useState<string | null>(null);
@@ -89,16 +94,79 @@ export default function App() {
     const f = normalizeFlow(await api.getFlow(name));
     setCurrentName(name);
     setFlow(f);
+    setActiveGraph("main");
     setDirty(false);
     setReloadToken((n) => n + 1);
   }, []);

+  const subflows = flow.subflows ?? [];
+  const activeSub = activeGraph === "main" ? null : subflows.find((s) => s.id === activeGraph) ?? null;
+
+  const activeGraphSlice = useMemo(
+    () =>
+      activeSub
+        ? { nodes: activeSub.nodes, edges: activeSub.edges, start: activeSub.start }
+        : { nodes: flow.nodes, edges: flow.edges, start: flow.start },
+    [activeSub, flow.nodes, flow.edges, flow.start],
+  );
+
   const onCanvasChange = useCallback(
     (partial: { nodes: Step[]; edges: GraphEdge[]; start: string | null }) => {
-      setFlow((prev) => ({ ...prev, nodes: partial.nodes, edges: partial.edges, start: partial.start }));
+      setFlow((prev) => {
+        if (activeGraph === "main") {
+          return { ...prev, nodes: partial.nodes, edges: partial.edges, start: partial.start };
+        }
+        return {
+          ...prev,
+          subflows: (prev.subflows ?? []).map((s) =>
+            s.id === activeGraph ? { ...s, nodes: partial.nodes, edges: partial.edges, start: partial.start } : s,
+          ),
+        };
+      });
       setDirty(true);
     },
-    [],
+    [activeGraph],
+  );
+
+  const switchGraph = useCallback((key: string) => {
+    setActiveGraph(key);
+    setReloadToken((n) => n + 1); // remounta canvasen med rätt graf
+  }, []);
+
+  function addSubflow() {
+    const name = prompt(t("subflow_name_prompt"));
+    if (!name) return;
+    const sf: Subflow = { id: uid(), name: name.trim(), nodes: [], edges: [], start: null, inputs: [] };
+    setFlow((prev) => ({ ...prev, subflows: [...(prev.subflows ?? []), sf] }));
+    setDirty(true);
+    switchGraph(sf.id);
+  }
+
+  function renameSubflow(id: string, name: string) {
+    setFlow((prev) => ({
+      ...prev,
+      subflows: (prev.subflows ?? []).map((s) => (s.id === id ? { ...s, name } : s)),
+    }));
+    setDirty(true);
+  }
+
+  function deleteSubflow(id: string) {
+    const used = [flow, ...(flow.subflows ?? [])].some((g) =>
+      (g.nodes ?? []).some((n) => n.type === "call_flow" && n.target === "#" + id),
+    );
+    const msg = used ? t("subflow_in_use") : t("subflow_delete_confirm");
+    if (!confirm(msg)) return;
+    setFlow((prev) => ({ ...prev, subflows: (prev.subflows ?? []).filter((s) => s.id !== id) }));
+    setDirty(true);
+    switchGraph("main");
+  }
+
+  const openExternal = useCallback(
+    (name: string) => {
+      if (dirty && !confirm(t("leave_unsaved"))) return;
+      loadFlow(name);
+    },
+    [dirty, loadFlow, t],
   );

   // Lägg till via canvasens imperativa API → ingen remount, ingen viewport-tapp.
@@ -114,13 +182,13 @@ export default function App() {
   }, []);

   async function saveSelectionAsBlock() {
-    const chosen = flow.nodes.filter((s) => selectedIds.includes(s.id!));
+    const chosen = activeGraphSlice.nodes.filter((s) => selectedIds.includes(s.id!));
     if (chosen.length === 0) {
       setToast(t("block_select_first"));
       return;
     }
     const ids = new Set(chosen.map((n) => n.id));
-    const innerEdges = (flow.edges ?? []).filter((e) => ids.has(e.source) && ids.has(e.target));
+    const innerEdges = (activeGraphSlice.edges ?? []).filter((e) => ids.has(e.source) && ids.has(e.target));
     const name = prompt(t("block_name_prompt"));
     if (!name) return;
     const description = prompt(t("block_desc_prompt")) || "";
@@ -193,22 +261,37 @@ export default function App() {
     });
   }, []);

-  async function startRunWithVars(initialVars: Record<string, string>) {
+  async function startRunWithVars(initialVars: Record<string, string>, subflowId?: string | null) {
     if (!currentName) return;
     await save();
     stopPoll();
     setRun(null);
-    const { run_id } = await api.runFlow(currentName, closeMode, initialVars);
+    const { run_id } = await api.runFlow(currentName, closeMode, initialVars, subflowId ?? undefined);
     setRunId(run_id);
     poll(run_id);
   }

   function onClickRun() {
     if (!currentName) return;
+    setRunSubflowId(null);
     if (flowHasRunParams(flow)) setRunDialogOpen(true);
     else startRunWithVars({});
   }

+  function runSubflow(id: string) {
+    if (!currentName) return;
+    const sf = subflows.find((s) => s.id === id);
+    setRunSubflowId(id);
+    if ((sf?.inputs?.length ?? 0) > 0) setRunDialogOpen(true);
+    else startRunWithVars({}, id);
+  }
+
+  // Flödet som kördialogen jobbar mot (subgraf-inputs när en subflow-flik körs).
+  const runDialogFlow: Flow =
+    runSubflowId != null
+      ? { ...flow, inputs: subflows.find((s) => s.id === runSubflowId)?.inputs ?? [], input_sets: {} }
+      : flow;
+
   function saveValueSet(name: string, values: Record<string, string>) {
     setFlow((prev) => ({ ...prev, input_sets: { ...(prev.input_sets ?? {}), [name]: values } }));
     setDirty(true);
@@ -250,16 +333,35 @@ export default function App() {
           onAddStep={addStepType}
           onInsertBlock={insertBlock}
         />
-        <Canvas
-          ref={canvasRef}
-          key={reloadToken}
-          flow={flow}
-          schema={schema}
-          lang={lang}
-          t={t}
-          onChange={onCanvasChange}
-          onSelectionChange={setSelectedIds}
-        />
+        <div className="canvas-col">
+          <CanvasTabs
+            t={t}
+            subflows={subflows}
+            active={activeGraph}
+            running={run?.status === "running"}
+            onSelect={switchGraph}
+            onAdd={addSubflow}
+            onRename={renameSubflow}
+            onDelete={deleteSubflow}
+            onRunSubflow={runSubflow}
+          />
+          <Canvas
+            ref={canvasRef}
+            key={reloadToken + ":" + activeGraph}
+            graph={activeGraphSlice}
+            schema={schema}
+            lang={lang}
+            t={t}
+            subflowTargets={subflows
+              .filter((s) => s.id !== activeGraph)
+              .map((s) => ({ id: s.id, name: s.name }))}
+            externalFlows={flowNames.filter((n) => n !== currentName)}
+            onOpenSubflow={switchGraph}
+            onOpenExternal={openExternal}
+            onChange={onCanvasChange}
+            onSelectionChange={setSelectedIds}
+          />
+        </div>
         <aside className="side">
           <AssistPanel
             t={t}
@@ -316,10 +418,10 @@ export default function App() {
       <RunDialog
         open={runDialogOpen}
         t={t}
-        flow={flow}
-        flowName={currentName}
+        flow={runDialogFlow}
+        flowName={runSubflowId ? `${currentName}#${runSubflowId}` : currentName}
         onClose={() => setRunDialogOpen(false)}
-        onRun={startRunWithVars}
+        onRun={(vars) => startRunWithVars(vars, runSubflowId)}
         onSaveSet={saveValueSet}
       />

diff --git a/webui/frontend/src/components/CallFlowFields.tsx b/webui/frontend/src/components/CallFlowFields.tsx
new file mode 100644
index 0000000..f17ee24
--- /dev/null
+++ b/webui/frontend/src/components/CallFlowFields.tsx
@@ -0,0 +1,137 @@
+import type { CallArg, CallRet, Step } from "../lib/api";
+import type { T } from "../lib/i18n";
+
+interface Props {
+  step: Step;
+  t: T;
+  subflowTargets: { id: string; name: string }[];
+  externalFlows: string[];
+  onChange: (step: Step) => void;
+  onOpenSubflow: (id: string) => void;
+  onOpenExternal: (name: string) => void;
+}
+
+/** Editorn för call_flow: målväljare + in/ut-mappning. */
+export function CallFlowFields({
+  step,
+  t,
+  subflowTargets,
+  externalFlows,
+  onChange,
+  onOpenSubflow,
+  onOpenExternal,
+}: Props) {
+  const target = step.target ?? "";
+  const ins: CallArg[] = step.in ?? [];
+  const outs: CallRet[] = step.out ?? [];
+
+  const setIn = (i: number, patch: Partial<CallArg>) =>
+    onChange({ ...step, in: ins.map((r, j) => (j === i ? { ...r, ...patch } : r)) });
+  const setOut = (i: number, patch: Partial<CallRet>) =>
+    onChange({ ...step, out: outs.map((r, j) => (j === i ? { ...r, ...patch } : r)) });
+
+  const isLocal = target.startsWith("#");
+  const canOpen = isLocal
+    ? subflowTargets.some((s) => "#" + s.id === target)
+    : !!target && externalFlows.includes(target);
+
+  return (
+    <div className="callflow">
+      <label className="field">
+        <span>{t("callflow_target")}</span>
+        <div className="callflow-target">
+          <select value={target} onChange={(e) => onChange({ ...step, target: e.target.value })}>
+            <option value="">—</option>
+            {subflowTargets.length > 0 && (
+              <optgroup label={t("callflow_local")}>
+                {subflowTargets.map((s) => (
+                  <option key={s.id} value={"#" + s.id}>
+                    {s.name}
+                  </option>
+                ))}
+              </optgroup>
+            )}
+            {externalFlows.length > 0 && (
+              <optgroup label={t("callflow_external")}>
+                {externalFlows.map((n) => (
+                  <option key={n} value={n}>
+                    {n}
+                  </option>
+                ))}
+              </optgroup>
+            )}
+            {target && !canOpen && <option value={target}>{target}</option>}
+          </select>
+          <button
+            type="button"
+            className="secondary tiny"
+            disabled={!canOpen}
+            onClick={() => (isLocal ? onOpenSubflow(target.slice(1)) : onOpenExternal(target))}
+          >
+            {t("callflow_open")}
+          </button>
+        </div>
+      </label>
+
+      <div className="callflow-io">
+        <strong>{t("callflow_in")}</strong>
+        {ins.map((row, i) => (
+          <div className="io-row" key={i}>
+            <input
+              type="text"
+              placeholder={t("callflow_in_name")}
+              value={row.name}
+              onChange={(e) => setIn(i, { name: e.target.value })}
+            />
+            <span>=</span>
+            <input
+              type="text"
+              placeholder={t("callflow_in_value")}
+              value={row.value}
+              onChange={(e) => setIn(i, { value: e.target.value })}
+            />
+            <button className="danger tiny" onClick={() => onChange({ ...step, in: ins.filter((_, j) => j !== i) })}>
+              ✕
+            </button>
+          </div>
+        ))}
+        <button
+          className="secondary tiny"
+          onClick={() => onChange({ ...step, in: [...ins, { name: "", value: "" }] })}
+        >
+          {t("callflow_add_in")}
+        </button>
+      </div>
+
+      <div className="callflow-io">
+        <strong>{t("callflow_out")}</strong>
+        {outs.map((row, i) => (
+          <div className="io-row" key={i}>
+            <input
+              type="text"
+              placeholder={t("callflow_out_from")}
+              value={row.from}
+              onChange={(e) => setOut(i, { from: e.target.value })}
+            />
+            <span>→</span>
+            <input
+              type="text"
+              placeholder={t("callflow_out_to")}
+              value={row.to}
+              onChange={(e) => setOut(i, { to: e.target.value })}
+            />
+            <button className="danger tiny" onClick={() => onChange({ ...step, out: outs.filter((_, j) => j !== i) })}>
+              ✕
+            </button>
+          </div>
+        ))}
+        <button
+          className="secondary tiny"
+          onClick={() => onChange({ ...step, out: [...outs, { from: "", to: "" }] })}
+        >
+          {t("callflow_add_out")}
+        </button>
+      </div>
+    </div>
+  );
+}
diff --git a/webui/frontend/src/components/Canvas.tsx b/webui/frontend/src/components/Canvas.tsx
index 6e5f02a..4d1ac6e 100644
--- a/webui/frontend/src/components/Canvas.tsx
+++ b/webui/frontend/src/components/Canvas.tsx
@@ -25,7 +25,7 @@ import {
 } from "@xyflow/react";
 import "@xyflow/react/dist/style.css";

-import { api, type Flow, type GraphEdge, type Step } from "../lib/api";
+import { api, type GraphEdge, type Step } from "../lib/api";
 import type { Schema } from "../lib/schema";
 import type { Lang, T } from "../lib/i18n";
 import { autoLayout, normalizeFlow, pickStart, remapIds } from "../lib/graph";
@@ -36,11 +36,22 @@ import { DND_BLOCK, DND_STEP } from "./Palette";

 const nodeTypes = { step: StepNode };

+export interface CanvasGraph {
+  nodes: Step[];
+  edges: GraphEdge[];
+  start?: string | null;
+}
+
 interface Props {
-  flow: Flow;
+  graph: CanvasGraph;
   schema: Schema;
   lang: Lang;
   t: T;
+  /** lokala subgrafer (för call_flow-målväljaren) och externa flödesnamn */
+  subflowTargets: { id: string; name: string }[];
+  externalFlows: string[];
+  onOpenSubflow: (id: string) => void;
+  onOpenExternal: (name: string) => void;
   onChange: (partial: { nodes: Step[]; edges: GraphEdge[]; start: string | null }) => void;
   onSelectionChange: (ids: string[]) => void;
 }
@@ -61,16 +72,20 @@ export const Canvas = forwardRef<CanvasHandle, Props>(function Canvas(props, ref
 });

 function CanvasInner({
-  flow,
+  graph,
   schema,
   lang,
   t,
+  subflowTargets,
+  externalFlows,
+  onOpenSubflow,
+  onOpenExternal,
   onChange,
   onSelectionChange,
   innerRef,
 }: Props & { innerRef: ForwardedRef<CanvasHandle> }) {
   const rf = useReactFlow();
-  const seed = useMemo(() => normalizeFlow(flow), [flow]);
+  const seed = useMemo(() => normalizeFlow(graph), [graph]);
   const [nodes, setNodes] = useState<Step[]>(() => withPositions(seed.nodes, seed.edges));
   const [edges, setEdges] = useState<GraphEdge[]>(() => seed.edges);
   const firstEmit = useRef(true);
@@ -131,9 +146,13 @@ function CanvasInner({
           t,
           onChange: (s: Step) => updateNode(step.id!, s),
           onDelete: () => deleteNode(step.id!),
+          subflowTargets,
+          externalFlows,
+          onOpenSubflow,
+          onOpenExternal,
         },
       })),
-    [nodes, schema, lang, t, updateNode, deleteNode],
+    [nodes, schema, lang, t, updateNode, deleteNode, subflowTargets, externalFlows, onOpenSubflow, onOpenExternal],
   );

   const startId = useMemo(() => pickStart(nodes, edges), [nodes, edges]);
@@ -322,10 +341,9 @@ function CanvasInner({
 function withPositions(nodes: Step[], edges: GraphEdge[]): Step[] {
   if (nodes.length === 0) return [];
   const missing = nodes.some((n) => !n.position);
-  // Migrerade/gamla flöden ligger som en smal vertikal kolumn (gamla canvasen
-  // staplade allt på x≈0). I den nya fria grafen vill vi ha vänster→höger, så
-  // auto-placera när noderna knappt spretar i x-led. Ett flöde användaren dragit
-  // fritt har riktig x-spridning och lämnas orört.
+  // Migrerade/gamla flöden ligger som en smal vertikal kolumn med för tät
+  // radhöjd. Auto-placera (uppifrån och ner, med luft) när noderna knappt
+  // spretar i x-led. Ett flöde användaren dragit fritt lämnas orört.
   const xs = nodes.map((n) => n.position?.x ?? 0);
   const xSpread = Math.max(...xs) - Math.min(...xs);
   const looksLikeColumn = nodes.length > 3 && xSpread < 120;
diff --git a/webui/frontend/src/components/CanvasTabs.tsx b/webui/frontend/src/components/CanvasTabs.tsx
new file mode 100644
index 0000000..e6064a1
--- /dev/null
+++ b/webui/frontend/src/components/CanvasTabs.tsx
@@ -0,0 +1,79 @@
+import { useState } from "react";
+import type { Subflow } from "../lib/api";
+import type { T } from "../lib/i18n";
+
+interface Props {
+  t: T;
+  subflows: Subflow[];
+  active: string; // "main" | subflowId
+  running: boolean;
+  onSelect: (key: string) => void;
+  onAdd: () => void;
+  onRename: (id: string, name: string) => void;
+  onDelete: (id: string) => void;
+  onRunSubflow: (id: string) => void;
+}
+
+export function CanvasTabs({
+  t,
+  subflows,
+  active,
+  running,
+  onSelect,
+  onAdd,
+  onRename,
+  onDelete,
+  onRunSubflow,
+}: Props) {
+  const [editing, setEditing] = useState<string | null>(null);
+
+  return (
+    <div className="canvas-tabs">
+      <button className={"tab" + (active === "main" ? " on" : "")} onClick={() => onSelect("main")}>
+        {t("tab_main")}
+      </button>
+
+      {subflows.map((sf) => (
+        <div key={sf.id} className={"tab tab-sub" + (active === sf.id ? " on" : "")}>
+          {editing === sf.id ? (
+            <input
+              autoFocus
+              defaultValue={sf.name}
+              onBlur={(e) => {
+                onRename(sf.id, e.target.value.trim() || sf.name);
+                setEditing(null);
+              }}
+              onKeyDown={(e) => {
+                if (e.key === "Enter") (e.target as HTMLInputElement).blur();
+                if (e.key === "Escape") setEditing(null);
+              }}
+            />
+          ) : (
+            <button className="tab-label" onClick={() => onSelect(sf.id)} onDoubleClick={() => setEditing(sf.id)}>
+              {sf.name}
+            </button>
+          )}
+          {active === sf.id && (
+            <>
+              <button
+                className="tab-icon"
+                title={t("tab_run")}
+                disabled={running}
+                onClick={() => onRunSubflow(sf.id)}
+              >
+                ▶
+              </button>
+              <button className="tab-icon" title={t("remove")} onClick={() => onDelete(sf.id)}>
+                ✕
+              </button>
+            </>
+          )}
+        </div>
+      ))}
+
+      <button className="tab tab-add" title={t("tab_add")} onClick={onAdd}>
+        +
+      </button>
+    </div>
+  );
+}
diff --git a/webui/frontend/src/components/StepNode.tsx b/webui/frontend/src/components/StepNode.tsx
index 9b8a1ec..e0b1f86 100644
--- a/webui/frontend/src/components/StepNode.tsx
+++ b/webui/frontend/src/components/StepNode.tsx
@@ -8,6 +8,7 @@ import { handleLabel, nodeControl, outputHandles } from "../lib/handles";
 import { Fields } from "./Fields";
 import { ConditionEditor } from "./ConditionEditor";
 import { RowFieldsEditor } from "./RowFieldsEditor";
+import { CallFlowFields } from "./CallFlowFields";

 export interface StepNodeData {
   step: Step;
@@ -16,6 +17,10 @@ export interface StepNodeData {
   t: T;
   onChange: (step: Step) => void;
   onDelete: () => void;
+  subflowTargets?: { id: string; name: string }[];
+  externalFlows?: string[];
+  onOpenSubflow?: (id: string) => void;
+  onOpenExternal?: (name: string) => void;
   [k: string]: unknown;
 }

@@ -107,6 +112,18 @@ export function StepNode({ data }: NodeProps) {
           />
         )}

+        {step.type === "call_flow" && (
+          <CallFlowFields
+            step={step}
+            t={t}
+            subflowTargets={d.subflowTargets ?? []}
+            externalFlows={d.externalFlows ?? []}
+            onChange={d.onChange}
+            onOpenSubflow={d.onOpenSubflow ?? (() => {})}
+            onOpenExternal={d.onOpenExternal ?? (() => {})}
+          />
+        )}
+
         {ctrl === "if" && (
           <div className="branches nodrag">
             {branches.map((b, i) => (
diff --git a/webui/frontend/src/lib/api.ts b/webui/frontend/src/lib/api.ts
index b656401..a2ca66a 100644
--- a/webui/frontend/src/lib/api.ts
+++ b/webui/frontend/src/lib/api.ts
@@ -18,6 +18,27 @@ export interface Flow {
   layout?: Record<string, { x: number; y: number }>;
   inputs?: FlowInput[];
   input_sets?: Record<string, Record<string, string>>;
+  subflows?: Subflow[];
+}
+
+/** En lokal namngiven subgraf i samma flödesfil, anropbar med call_flow (target "#id"). */
+export interface Subflow {
+  id: string;
+  name: string;
+  nodes: Step[];
+  edges: GraphEdge[];
+  start?: string | null;
+  inputs?: FlowInput[];
+}
+
+export interface CallArg {
+  name: string;
+  value: string;
+}
+
+export interface CallRet {
+  from: string;
+  to: string;
 }

 /** En nod i grafen: platt (type + fältvärden), plus canvas-position. `if`-noder
@@ -31,6 +52,10 @@ export interface Step {
   position?: { x: number; y: number };
   branches?: Branch[];
   fields?: RowField[];
+  /** call_flow */
+  target?: string;
+  in?: CallArg[];
+  out?: CallRet[];
   [k: string]: unknown;
 }

@@ -71,6 +96,7 @@ export interface AssistResult {
   edges: GraphEdge[];
   start?: string | null;
   settings: Record<string, unknown>;
+  subflows?: Subflow[];
   explanation?: string;
 }

@@ -129,11 +155,16 @@ export const api = {
     }).then((r) => j<{ ok: boolean }>(r)),
   deleteFlow: (name: string) =>
     fetch(`/api/flows/${encodeURIComponent(name)}`, { method: "DELETE" }).then((r) => j<{ ok: boolean }>(r)),
-  runFlow: (name: string, closeMode: string, initialVars: Record<string, string> = {}) =>
+  runFlow: (
+    name: string,
+    closeMode: string,
+    initialVars: Record<string, string> = {},
+    subflow?: string,
+  ) =>
     fetch(`/api/flows/${encodeURIComponent(name)}/run`, {
       method: "POST",
       headers: { "Content-Type": "application/json" },
-      body: JSON.stringify({ close_mode: closeMode, initial_vars: initialVars }),
+      body: JSON.stringify({ close_mode: closeMode, initial_vars: initialVars, subflow: subflow ?? null }),
     }).then((r) => j<{ run_id: string }>(r)),
   assist: (name: string, instruction: string, flow: Flow) =>
     fetch(`/api/flows/${encodeURIComponent(name)}/assist`, {
@@ -145,6 +176,7 @@ export const api = {
         edges: flow.edges,
         start: flow.start ?? null,
         settings: flow.settings,
+        subflows: flow.subflows ?? [],
       }),
     }).then((r) => j<AssistResult>(r)),
   desktopWindows: () => fetch("/api/desktop/windows").then((r) => j<string[]>(r)),
diff --git a/webui/frontend/src/lib/graph.test.ts b/webui/frontend/src/lib/graph.test.ts
index efa2607..b7eb83a 100644
--- a/webui/frontend/src/lib/graph.test.ts
+++ b/webui/frontend/src/lib/graph.test.ts
@@ -36,6 +36,24 @@ describe("normalizeFlow", () => {
     expect(f.nodes.every((n) => !!n.id)).toBe(true);
     expect(f.nodes[0].id).not.toBe(f.nodes[1].id);
   });
+
+  it("normalizes subflows (id from name, node/edge ids)", () => {
+    const f = normalizeFlow({
+      nodes: [],
+      subflows: [
+        { name: "Hämta Bilagor", nodes: [{ type: "wait" }], edges: [] } as never,
+        { id: "keep", name: "K", nodes: [], edges: [] },
+      ],
+    });
+    expect(f.subflows).toHaveLength(2);
+    expect(f.subflows![0].id).toBe("h-mta-bilagor");
+    expect(f.subflows![0].nodes[0].id).toBeTruthy();
+    expect(f.subflows![1].id).toBe("keep");
+  });
+
+  it("always returns a subflows array", () => {
+    expect(normalizeFlow({ nodes: [] }).subflows).toEqual([]);
+  });
 });

 describe("pickStart", () => {
diff --git a/webui/frontend/src/lib/graph.ts b/webui/frontend/src/lib/graph.ts
index afc50cf..d873a27 100644
--- a/webui/frontend/src/lib/graph.ts
+++ b/webui/frontend/src/lib/graph.ts
@@ -2,7 +2,7 @@
 // så det finns ingen översättning kvar – bara normalisering, id-säkring, val av
 // startnod och en enkel auto-layout.

-import type { Flow, GraphEdge, Step } from "./api";
+import type { Flow, GraphEdge, Step, Subflow } from "./api";
 import { uid } from "./ids";

 export const Y_GAP = 230;
@@ -14,13 +14,29 @@ export function ensureNodeId(n: Step): Step {
   return n;
 }

-/** Fyll i alla nycklar + säkra id på noder/kanter. */
-export function normalizeFlow(f: Partial<Flow> | null | undefined): Flow {
-  const nodes = (f?.nodes ?? []).map((n) => ({ ...n, id: n.id ?? uid() }));
-  const known = new Set(nodes.map((n) => n.id));
-  const edges = (f?.edges ?? [])
+function normGraph(nodes: Step[] | undefined, edges: GraphEdge[] | undefined) {
+  const ns = (nodes ?? []).map((n) => ({ ...n, id: n.id ?? uid() }));
+  const known = new Set(ns.map((n) => n.id));
+  const es = (edges ?? [])
     .filter((e) => known.has(e.source) && known.has(e.target))
     .map((e) => ({ ...e, id: e.id ?? uid() }));
+  return { nodes: ns, edges: es };
+}
+
+let subCounter = 0;
+function slug(name: string): string {
+  const s = (name || "").toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
+  return s || `sub-${++subCounter}`;
+}
+
+/** Fyll i alla nycklar + säkra id på noder/kanter (även i subflöden). */
+export function normalizeFlow(f: Partial<Flow> | null | undefined): Flow {
+  const { nodes, edges } = normGraph(f?.nodes, f?.edges);
+  const subflows: Subflow[] = (f?.subflows ?? []).map((sf) => {
+    const g = normGraph(sf.nodes, sf.edges);
+    const name = sf.name || sf.id || "Subflöde";
+    return { id: sf.id || slug(name), name, nodes: g.nodes, edges: g.edges, start: sf.start ?? null, inputs: sf.inputs ?? [] };
+  });
   return {
     format: "graph",
     nodes,
@@ -30,6 +46,7 @@ export function normalizeFlow(f: Partial<Flow> | null | undefined): Flow {
     layout: f?.layout ?? {},
     inputs: f?.inputs ?? [],
     input_sets: f?.input_sets ?? {},
+    subflows,
   };
 }

diff --git a/webui/frontend/src/lib/i18n.ts b/webui/frontend/src/lib/i18n.ts
index 2768af3..0d13d7b 100644
--- a/webui/frontend/src/lib/i18n.ts
+++ b/webui/frontend/src/lib/i18n.ts
@@ -34,6 +34,25 @@ const STRINGS = {
     out_next: "next",
     start_node: "▶ start = top node",
     unknown_step: "Unknown step type",
+    tab_main: "Main",
+    tab_add: "New subflow",
+    tab_run: "Run this tab",
+    subflow_name_prompt: "Subflow name:",
+    subflow_delete_confirm: "Delete this subflow?",
+    subflow_in_use: "A call_flow node still targets this subflow. Delete anyway?",
+    leave_unsaved: "Discard unsaved changes and open the other flow?",
+    callflow_target: "Target",
+    callflow_local: "This file",
+    callflow_external: "Other flows",
+    callflow_open: "Open",
+    callflow_in: "Inputs →",
+    callflow_out: "Outputs ←",
+    callflow_in_name: "input name",
+    callflow_in_value: "value / {var}",
+    callflow_out_from: "subflow var",
+    callflow_out_to: "caller var",
+    callflow_add_in: "+ input",
+    callflow_add_out: "+ output",
     add_field: "+ Add column",
     column_name: "Column name",
     label_ph: "Label (optional)",
@@ -144,6 +163,25 @@ const STRINGS = {
     out_next: "nästa",
     start_node: "▶ start = översta noden",
     unknown_step: "Okänd stegtyp",
+    tab_main: "Main",
+    tab_add: "Nytt subflöde",
+    tab_run: "Kör denna flik",
+    subflow_name_prompt: "Subflödets namn:",
+    subflow_delete_confirm: "Ta bort det här subflödet?",
+    subflow_in_use: "En call_flow-nod pekar fortfarande på det här subflödet. Ta bort ändå?",
+    leave_unsaved: "Kasta osparade ändringar och öppna det andra flödet?",
+    callflow_target: "Mål",
+    callflow_local: "Detta flöde",
+    callflow_external: "Andra flöden",
+    callflow_open: "Öppna",
+    callflow_in: "Indata →",
+    callflow_out: "Utdata ←",
+    callflow_in_name: "indata-namn",
+    callflow_in_value: "värde / {var}",
+    callflow_out_from: "subflödets variabel",
+    callflow_out_to: "anroparens variabel",
+    callflow_add_in: "+ indata",
+    callflow_add_out: "+ utdata",
     add_field: "+ Lägg till kolumn",
     column_name: "Kolumnnamn",
     label_ph: "Etikett (valfri)",
diff --git a/webui/frontend/src/lib/stepops.test.ts b/webui/frontend/src/lib/stepops.test.ts
index c89fbce..466d1dd 100644
--- a/webui/frontend/src/lib/stepops.test.ts
+++ b/webui/frontend/src/lib/stepops.test.ts
@@ -12,6 +12,7 @@ const SCHEMA = {
     },
     { type: "if", category: "control", label_sv: "", label_en: "", control: "if", fields: [] },
     { type: "loop", category: "control", label_sv: "", label_en: "", control: "loop", fields: [] },
+    { type: "call_flow", category: "control", label_sv: "", label_en: "", fields: [{ key: "target", kind: "text", label_sv: "", label_en: "" }] },
     { type: "desktop_click", category: "desktop", label_sv: "", label_en: "", fields: [] },
   ],
   condition_kinds: [],
@@ -39,6 +40,13 @@ describe("newNode", () => {
   it("does not give a loop-node a steps array", () => {
     expect((newNode(SCHEMA, "loop") as Record<string, unknown>).steps).toBeUndefined();
   });
+
+  it("gives a call_flow node empty target/in/out", () => {
+    const n = newNode(SCHEMA, "call_flow");
+    expect(n.target).toBe("");
+    expect(n.in).toEqual([]);
+    expect(n.out).toEqual([]);
+  });
 });

 describe("retype", () => {
diff --git a/webui/frontend/src/lib/stepops.ts b/webui/frontend/src/lib/stepops.ts
index 635de46..b836a08 100644
--- a/webui/frontend/src/lib/stepops.ts
+++ b/webui/frontend/src/lib/stepops.ts
@@ -15,6 +15,11 @@ export function newNode(schema: Schema, type: string, position = { x: 0, y: 0 })
   }
   if (spec?.control === "if") node.branches = [newBranch()];
   if (type === "extract_row") node.fields = [{ name: "", by: "css", value: "" }];
+  if (type === "call_flow") {
+    node.target = "";
+    node.in = [];
+    node.out = [];
+  }
   return node;
 }

diff --git a/webui/frontend/src/styles.css b/webui/frontend/src/styles.css
index be40af5..f060175 100644
--- a/webui/frontend/src/styles.css
+++ b/webui/frontend/src/styles.css
@@ -149,6 +149,35 @@ dialog h2 ~ .fields { margin-bottom: 10px; }

 .canvas-panel { display: flex; gap: 6px; }

+/* --- Canvas-flikar (subflöden) --- */
+.canvas-col { display: flex; flex-direction: column; min-width: 0; min-height: 0; }
+.canvas-col .canvas { flex: 1; min-height: 0; }
+.canvas-tabs {
+  display: flex; align-items: stretch; gap: 2px;
+  padding: 4px 6px 0; background: var(--panel); border-bottom: 1px solid var(--border);
+  overflow-x: auto;
+}
+.canvas-tabs .tab {
+  display: flex; align-items: center; gap: 4px;
+  padding: 5px 10px; border: 1px solid var(--border); border-bottom: none;
+  border-radius: 6px 6px 0 0; background: var(--nest); color: var(--muted);
+  font-size: 12px; white-space: nowrap; cursor: pointer;
+}
+.canvas-tabs .tab.on { background: var(--bg); color: var(--text); font-weight: 600; }
+.canvas-tabs .tab-label { background: none; border: none; color: inherit; font: inherit; cursor: pointer; padding: 0; }
+.canvas-tabs .tab-icon { border: none; background: none; cursor: pointer; font-size: 11px; color: var(--muted); padding: 0 2px; }
+.canvas-tabs .tab-add { color: var(--accent); font-weight: 700; }
+.canvas-tabs .tab input { width: 100px; font: inherit; }
+
+/* --- call_flow-nod --- */
+.callflow { margin-top: 6px; display: flex; flex-direction: column; gap: 8px; }
+.callflow-target { display: flex; gap: 4px; align-items: center; }
+.callflow-target select { flex: 1; }
+.callflow-io { border-left: 3px solid var(--accent); padding: 4px 0 4px 8px; }
+.callflow-io strong { font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.04em; }
+.io-row { display: flex; align-items: center; gap: 4px; margin: 3px 0; }
+.io-row input { flex: 1; min-width: 0; }
+
 /* --- Nodes --- */
 .step-node {
   position: relative;
diff --git a/webui/static/assets/index-BJzN-7yS.js b/webui/static/assets/index-BJzN-7yS.js
new file mode 100644
index 0000000..93828b8
--- /dev/null
+++ b/webui/static/assets/index-BJzN-7yS.js
@@ -0,0 +1,65 @@
+(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))l(a);new MutationObserver(a=>{for(const u of a)if(u.type==="childList")for(const c of u.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&l(c)}).observe(document,{childList:!0,subtree:!0});function i(a){const u={};return a.integrity&&(u.integrity=a.integrity),a.referrerPolicy&&(u.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?u.credentials="include":a.crossOrigin==="anonymous"?u.credentials="omit":u.credentials="same-origin",u}function l(a){if(a.ep)return;a.ep=!0;const u=i(a);fetch(a.href,u)}})();function ph(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var xu={exports:{}},ii={},wu={exports:{}},Pe={};/**
+ * @license React
+ * react.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var Vd;function B0(){if(Vd)return Pe;Vd=1;var t=Symbol.for("react.element"),r=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),l=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),u=Symbol.for("react.provider"),c=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),m=Symbol.for("react.memo"),v=Symbol.for("react.lazy"),y=Symbol.iterator;function g(j){return j===null||typeof j!="object"?null:(j=y&&j[y]||j["@@iterator"],typeof j=="function"?j:null)}var w={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,C={};function E(j,L,ne){this.props=j,this.context=L,this.refs=C,this.updater=ne||w}E.prototype.isReactComponent={},E.prototype.setState=function(j,L){if(typeof j!="object"&&typeof j!="function"&&j!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,j,L,"setState")},E.prototype.forceUpdate=function(j){this.updater.enqueueForceUpdate(this,j,"forceUpdate")};function N(){}N.prototype=E.prototype;function I(j,L,ne){this.props=j,this.context=L,this.refs=C,this.updater=ne||w}var k=I.prototype=new N;k.constructor=I,_(k,E.prototype),k.isPureReactComponent=!0;var M=Array.isArray,F=Object.prototype.hasOwnProperty,$={current:null},V={key:!0,ref:!0,__self:!0,__source:!0};function W(j,L,ne){var Z,le={},fe=null,ue=null;if(L!=null)for(Z in L.ref!==void 0&&(ue=L.ref),L.key!==void 0&&(fe=""+L.key),L)F.call(L,Z)&&!V.hasOwnProperty(Z)&&(le[Z]=L[Z]);var Q=arguments.length-2;if(Q===1)le.children=ne;else if(1<Q){for(var ie=Array(Q),pe=0;pe<Q;pe++)ie[pe]=arguments[pe+2];le.children=ie}if(j&&j.defaultProps)for(Z in Q=j.defaultProps,Q)le[Z]===void 0&&(le[Z]=Q[Z]);return{$$typeof:t,type:j,key:fe,ref:ue,props:le,_owner:$.current}}function X(j,L){return{$$typeof:t,type:j.type,key:L,ref:j.ref,props:j.props,_owner:j._owner}}function ee(j){return typeof j=="object"&&j!==null&&j.$$typeof===t}function q(j){var L={"=":"=0",":":"=2"};return"$"+j.replace(/[=:]/g,function(ne){return L[ne]})}var te=/\/+/g;function J(j,L){return typeof j=="object"&&j!==null&&j.key!=null?q(""+j.key):L.toString(36)}function P(j,L,ne,Z,le){var fe=typeof j;(fe==="undefined"||fe==="boolean")&&(j=null);var ue=!1;if(j===null)ue=!0;else switch(fe){case"string":case"number":ue=!0;break;case"object":switch(j.$$typeof){case t:case r:ue=!0}}if(ue)return ue=j,le=le(ue),j=Z===""?"."+J(ue,0):Z,M(le)?(ne="",j!=null&&(ne=j.replace(te,"$&/")+"/"),P(le,L,ne,"",function(pe){return pe})):le!=null&&(ee(le)&&(le=X(le,ne+(!le.key||ue&&ue.key===le.key?"":(""+le.key).replace(te,"$&/")+"/")+j)),L.push(le)),1;if(ue=0,Z=Z===""?".":Z+":",M(j))for(var Q=0;Q<j.length;Q++){fe=j[Q];var ie=Z+J(fe,Q);ue+=P(fe,L,ne,ie,le)}else if(ie=g(j),typeof ie=="function")for(j=ie.call(j),Q=0;!(fe=j.next()).done;)fe=fe.value,ie=Z+J(fe,Q++),ue+=P(fe,L,ne,ie,le);else if(fe==="object")throw L=String(j),Error("Objects are not valid as a React child (found: "+(L==="[object Object]"?"object with keys {"+Object.keys(j).join(", ")+"}":L)+"). If you meant to render a collection of children, use an array instead.");return ue}function U(j,L,ne){if(j==null)return j;var Z=[],le=0;return P(j,Z,"","",function(fe){return L.call(ne,fe,le++)}),Z}function B(j){if(j._status===-1){var L=j._result;L=L(),L.then(function(ne){(j._status===0||j._status===-1)&&(j._status=1,j._result=ne)},function(ne){(j._status===0||j._status===-1)&&(j._status=2,j._result=ne)}),j._status===-1&&(j._status=0,j._result=L)}if(j._status===1)return j._result.default;throw j._result}var b={current:null},R={transition:null},z={ReactCurrentDispatcher:b,ReactCurrentBatchConfig:R,ReactCurrentOwner:$};function A(){throw Error("act(...) is not supported in production builds of React.")}return Pe.Children={map:U,forEach:function(j,L,ne){U(j,function(){L.apply(this,arguments)},ne)},count:function(j){var L=0;return U(j,function(){L++}),L},toArray:function(j){return U(j,function(L){return L})||[]},only:function(j){if(!ee(j))throw Error("React.Children.only expected to receive a single React element child.");return j}},Pe.Component=E,Pe.Fragment=i,Pe.Profiler=a,Pe.PureComponent=I,Pe.StrictMode=l,Pe.Suspense=h,Pe.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=z,Pe.act=A,Pe.cloneElement=function(j,L,ne){if(j==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+j+".");var Z=_({},j.props),le=j.key,fe=j.ref,ue=j._owner;if(L!=null){if(L.ref!==void 0&&(fe=L.ref,ue=$.current),L.key!==void 0&&(le=""+L.key),j.type&&j.type.defaultProps)var Q=j.type.defaultProps;for(ie in L)F.call(L,ie)&&!V.hasOwnProperty(ie)&&(Z[ie]=L[ie]===void 0&&Q!==void 0?Q[ie]:L[ie])}var ie=arguments.length-2;if(ie===1)Z.children=ne;else if(1<ie){Q=Array(ie);for(var pe=0;pe<ie;pe++)Q[pe]=arguments[pe+2];Z.children=Q}return{$$typeof:t,type:j.type,key:le,ref:fe,props:Z,_owner:ue}},Pe.createContext=function(j){return j={$$typeof:c,_currentValue:j,_currentValue2:j,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},j.Provider={$$typeof:u,_context:j},j.Consumer=j},Pe.createElement=W,Pe.createFactory=function(j){var L=W.bind(null,j);return L.type=j,L},Pe.createRef=function(){return{current:null}},Pe.forwardRef=function(j){return{$$typeof:d,render:j}},Pe.isValidElement=ee,Pe.lazy=function(j){return{$$typeof:v,_payload:{_status:-1,_result:j},_init:B}},Pe.memo=function(j,L){return{$$typeof:m,type:j,compare:L===void 0?null:L}},Pe.startTransition=function(j){var L=R.transition;R.transition={};try{j()}finally{R.transition=L}},Pe.unstable_act=A,Pe.useCallback=function(j,L){return b.current.useCallback(j,L)},Pe.useContext=function(j){return b.current.useContext(j)},Pe.useDebugValue=function(){},Pe.useDeferredValue=function(j){return b.current.useDeferredValue(j)},Pe.useEffect=function(j,L){return b.current.useEffect(j,L)},Pe.useId=function(){return b.current.useId()},Pe.useImperativeHandle=function(j,L,ne){return b.current.useImperativeHandle(j,L,ne)},Pe.useInsertionEffect=function(j,L){return b.current.useInsertionEffect(j,L)},Pe.useLayoutEffect=function(j,L){return b.current.useLayoutEffect(j,L)},Pe.useMemo=function(j,L){return b.current.useMemo(j,L)},Pe.useReducer=function(j,L,ne){return b.current.useReducer(j,L,ne)},Pe.useRef=function(j){return b.current.useRef(j)},Pe.useState=function(j){return b.current.useState(j)},Pe.useSyncExternalStore=function(j,L,ne){return b.current.useSyncExternalStore(j,L,ne)},Pe.useTransition=function(){return b.current.useTransition()},Pe.version="18.3.1",Pe}var Bd;function _i(){return Bd||(Bd=1,wu.exports=B0()),wu.exports}/**
+ * @license React
+ * react-jsx-runtime.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var Ud;function U0(){if(Ud)return ii;Ud=1;var t=_i(),r=Symbol.for("react.element"),i=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,a=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,u={key:!0,ref:!0,__self:!0,__source:!0};function c(d,h,m){var v,y={},g=null,w=null;m!==void 0&&(g=""+m),h.key!==void 0&&(g=""+h.key),h.ref!==void 0&&(w=h.ref);for(v in h)l.call(h,v)&&!u.hasOwnProperty(v)&&(y[v]=h[v]);if(d&&d.defaultProps)for(v in h=d.defaultProps,h)y[v]===void 0&&(y[v]=h[v]);return{$$typeof:r,type:d,key:g,ref:w,props:y,_owner:a.current}}return ii.Fragment=i,ii.jsx=c,ii.jsxs=c,ii}var Wd;function W0(){return Wd||(Wd=1,xu.exports=U0()),xu.exports}var x=W0(),D=_i();const hh=ph(D);var Us={},_u={exports:{}},Ct={},Su={exports:{}},ku={};/**
+ * @license React
+ * scheduler.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var Yd;function Y0(){return Yd||(Yd=1,(function(t){function r(R,z){var A=R.length;R.push(z);e:for(;0<A;){var j=A-1>>>1,L=R[j];if(0<a(L,z))R[j]=z,R[A]=L,A=j;else break e}}function i(R){return R.length===0?null:R[0]}function l(R){if(R.length===0)return null;var z=R[0],A=R.pop();if(A!==z){R[0]=A;e:for(var j=0,L=R.length,ne=L>>>1;j<ne;){var Z=2*(j+1)-1,le=R[Z],fe=Z+1,ue=R[fe];if(0>a(le,A))fe<L&&0>a(ue,le)?(R[j]=ue,R[fe]=A,j=fe):(R[j]=le,R[Z]=A,j=Z);else if(fe<L&&0>a(ue,A))R[j]=ue,R[fe]=A,j=fe;else break e}}return z}function a(R,z){var A=R.sortIndex-z.sortIndex;return A!==0?A:R.id-z.id}if(typeof performance=="object"&&typeof performance.now=="function"){var u=performance;t.unstable_now=function(){return u.now()}}else{var c=Date,d=c.now();t.unstable_now=function(){return c.now()-d}}var h=[],m=[],v=1,y=null,g=3,w=!1,_=!1,C=!1,E=typeof setTimeout=="function"?setTimeout:null,N=typeof clearTimeout=="function"?clearTimeout:null,I=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function k(R){for(var z=i(m);z!==null;){if(z.callback===null)l(m);else if(z.startTime<=R)l(m),z.sortIndex=z.expirationTime,r(h,z);else break;z=i(m)}}function M(R){if(C=!1,k(R),!_)if(i(h)!==null)_=!0,B(F);else{var z=i(m);z!==null&&b(M,z.startTime-R)}}function F(R,z){_=!1,C&&(C=!1,N(W),W=-1),w=!0;var A=g;try{for(k(z),y=i(h);y!==null&&(!(y.expirationTime>z)||R&&!q());){var j=y.callback;if(typeof j=="function"){y.callback=null,g=y.priorityLevel;var L=j(y.expirationTime<=z);z=t.unstable_now(),typeof L=="function"?y.callback=L:y===i(h)&&l(h),k(z)}else l(h);y=i(h)}if(y!==null)var ne=!0;else{var Z=i(m);Z!==null&&b(M,Z.startTime-z),ne=!1}return ne}finally{y=null,g=A,w=!1}}var $=!1,V=null,W=-1,X=5,ee=-1;function q(){return!(t.unstable_now()-ee<X)}function te(){if(V!==null){var R=t.unstable_now();ee=R;var z=!0;try{z=V(!0,R)}finally{z?J():($=!1,V=null)}}else $=!1}var J;if(typeof I=="function")J=function(){I(te)};else if(typeof MessageChannel<"u"){var P=new MessageChannel,U=P.port2;P.port1.onmessage=te,J=function(){U.postMessage(null)}}else J=function(){E(te,0)};function B(R){V=R,$||($=!0,J())}function b(R,z){W=E(function(){R(t.unstable_now())},z)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(R){R.callback=null},t.unstable_continueExecution=function(){_||w||(_=!0,B(F))},t.unstable_forceFrameRate=function(R){0>R||125<R?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):X=0<R?Math.floor(1e3/R):5},t.unstable_getCurrentPriorityLevel=function(){return g},t.unstable_getFirstCallbackNode=function(){return i(h)},t.unstable_next=function(R){switch(g){case 1:case 2:case 3:var z=3;break;default:z=g}var A=g;g=z;try{return R()}finally{g=A}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(R,z){switch(R){case 1:case 2:case 3:case 4:case 5:break;default:R=3}var A=g;g=R;try{return z()}finally{g=A}},t.unstable_scheduleCallback=function(R,z,A){var j=t.unstable_now();switch(typeof A=="object"&&A!==null?(A=A.delay,A=typeof A=="number"&&0<A?j+A:j):A=j,R){case 1:var L=-1;break;case 2:L=250;break;case 5:L=1073741823;break;case 4:L=1e4;break;default:L=5e3}return L=A+L,R={id:v++,callback:z,priorityLevel:R,startTime:A,expirationTime:L,sortIndex:-1},A>j?(R.sortIndex=A,r(m,R),i(h)===null&&R===i(m)&&(C?(N(W),W=-1):C=!0,b(M,A-j))):(R.sortIndex=L,r(h,R),_||w||(_=!0,B(F))),R},t.unstable_shouldYield=q,t.unstable_wrapCallback=function(R){var z=g;return function(){var A=g;g=z;try{return R.apply(this,arguments)}finally{g=A}}}})(ku)),ku}var Xd;function X0(){return Xd||(Xd=1,Su.exports=Y0()),Su.exports}/**
+ * @license React
+ * react-dom.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var Kd;function K0(){if(Kd)return Ct;Kd=1;var t=_i(),r=X0();function i(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,o=1;o<arguments.length;o++)n+="&args[]="+encodeURIComponent(arguments[o]);return"Minified React error #"+e+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var l=new Set,a={};function u(e,n){c(e,n),c(e+"Capture",n)}function c(e,n){for(a[e]=n,e=0;e<n.length;e++)l.add(n[e])}var d=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),h=Object.prototype.hasOwnProperty,m=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,v={},y={};function g(e){return h.call(y,e)?!0:h.call(v,e)?!1:m.test(e)?y[e]=!0:(v[e]=!0,!1)}function w(e,n,o,s){if(o!==null&&o.type===0)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return s?!1:o!==null?!o.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function _(e,n,o,s){if(n===null||typeof n>"u"||w(e,n,o,s))return!0;if(s)return!1;if(o!==null)switch(o.type){case 3:return!n;case 4:return n===!1;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}function C(e,n,o,s,f,p,S){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=s,this.attributeNamespace=f,this.mustUseProperty=o,this.propertyName=e,this.type=n,this.sanitizeURL=p,this.removeEmptyString=S}var E={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){E[e]=new C(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];E[n]=new C(n,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){E[e]=new C(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){E[e]=new C(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){E[e]=new C(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){E[e]=new C(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){E[e]=new C(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){E[e]=new C(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){E[e]=new C(e,5,!1,e.toLowerCase(),null,!1,!1)});var N=/[\-:]([a-z])/g;function I(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var n=e.replace(N,I);E[n]=new C(n,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var n=e.replace(N,I);E[n]=new C(n,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var n=e.replace(N,I);E[n]=new C(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){E[e]=new C(e,1,!1,e.toLowerCase(),null,!1,!1)}),E.xlinkHref=new C("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){E[e]=new C(e,1,!1,e.toLowerCase(),null,!0,!0)});function k(e,n,o,s){var f=E.hasOwnProperty(n)?E[n]:null;(f!==null?f.type!==0:s||!(2<n.length)||n[0]!=="o"&&n[0]!=="O"||n[1]!=="n"&&n[1]!=="N")&&(_(n,o,f,s)&&(o=null),s||f===null?g(n)&&(o===null?e.removeAttribute(n):e.setAttribute(n,""+o)):f.mustUseProperty?e[f.propertyName]=o===null?f.type===3?!1:"":o:(n=f.attributeName,s=f.attributeNamespace,o===null?e.removeAttribute(n):(f=f.type,o=f===3||f===4&&o===!0?"":""+o,s?e.setAttributeNS(s,n,o):e.setAttribute(n,o))))}var M=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,F=Symbol.for("react.element"),$=Symbol.for("react.portal"),V=Symbol.for("react.fragment"),W=Symbol.for("react.strict_mode"),X=Symbol.for("react.profiler"),ee=Symbol.for("react.provider"),q=Symbol.for("react.context"),te=Symbol.for("react.forward_ref"),J=Symbol.for("react.suspense"),P=Symbol.for("react.suspense_list"),U=Symbol.for("react.memo"),B=Symbol.for("react.lazy"),b=Symbol.for("react.offscreen"),R=Symbol.iterator;function z(e){return e===null||typeof e!="object"?null:(e=R&&e[R]||e["@@iterator"],typeof e=="function"?e:null)}var A=Object.assign,j;function L(e){if(j===void 0)try{throw Error()}catch(o){var n=o.stack.trim().match(/\n( *(at )?)/);j=n&&n[1]||""}return`
+`+j+e}var ne=!1;function Z(e,n){if(!e||ne)return"";ne=!0;var o=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(n)if(n=function(){throw Error()},Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(n,[])}catch(G){var s=G}Reflect.construct(e,[],n)}else{try{n.call()}catch(G){s=G}e.call(n.prototype)}else{try{throw Error()}catch(G){s=G}e()}}catch(G){if(G&&s&&typeof G.stack=="string"){for(var f=G.stack.split(`
+`),p=s.stack.split(`
+`),S=f.length-1,T=p.length-1;1<=S&&0<=T&&f[S]!==p[T];)T--;for(;1<=S&&0<=T;S--,T--)if(f[S]!==p[T]){if(S!==1||T!==1)do if(S--,T--,0>T||f[S]!==p[T]){var O=`
+`+f[S].replace(" at new "," at ");return e.displayName&&O.includes("<anonymous>")&&(O=O.replace("<anonymous>",e.displayName)),O}while(1<=S&&0<=T);break}}}finally{ne=!1,Error.prepareStackTrace=o}return(e=e?e.displayName||e.name:"")?L(e):""}function le(e){switch(e.tag){case 5:return L(e.type);case 16:return L("Lazy");case 13:return L("Suspense");case 19:return L("SuspenseList");case 0:case 2:case 15:return e=Z(e.type,!1),e;case 11:return e=Z(e.type.render,!1),e;case 1:return e=Z(e.type,!0),e;default:return""}}function fe(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case V:return"Fragment";case $:return"Portal";case X:return"Profiler";case W:return"StrictMode";case J:return"Suspense";case P:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case q:return(e.displayName||"Context")+".Consumer";case ee:return(e._context.displayName||"Context")+".Provider";case te:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case U:return n=e.displayName||null,n!==null?n:fe(e.type)||"Memo";case B:n=e._payload,e=e._init;try{return fe(e(n))}catch{}}return null}function ue(e){var n=e.type;switch(e.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=n.render,e=e.displayName||e.name||"",n.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return fe(n);case 8:return n===W?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n}return null}function Q(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function ie(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function pe(e){var n=ie(e)?"checked":"value",o=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),s=""+e[n];if(!e.hasOwnProperty(n)&&typeof o<"u"&&typeof o.get=="function"&&typeof o.set=="function"){var f=o.get,p=o.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return f.call(this)},set:function(S){s=""+S,p.call(this,S)}}),Object.defineProperty(e,n,{enumerable:o.enumerable}),{getValue:function(){return s},setValue:function(S){s=""+S},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function _e(e){e._valueTracker||(e._valueTracker=pe(e))}function xe(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var o=n.getValue(),s="";return e&&(s=ie(e)?e.checked?"true":"false":e.value),e=s,e!==o?(n.setValue(e),!0):!1}function Se(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}}function Ne(e,n){var o=n.checked;return A({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:o??e._wrapperState.initialChecked})}function je(e,n){var o=n.defaultValue==null?"":n.defaultValue,s=n.checked!=null?n.checked:n.defaultChecked;o=Q(n.value!=null?n.value:o),e._wrapperState={initialChecked:s,initialValue:o,controlled:n.type==="checkbox"||n.type==="radio"?n.checked!=null:n.value!=null}}function Ie(e,n){n=n.checked,n!=null&&k(e,"checked",n,!1)}function Te(e,n){Ie(e,n);var o=Q(n.value),s=n.type;if(o!=null)s==="number"?(o===0&&e.value===""||e.value!=o)&&(e.value=""+o):e.value!==""+o&&(e.value=""+o);else if(s==="submit"||s==="reset"){e.removeAttribute("value");return}n.hasOwnProperty("value")?ut(e,n.type,o):n.hasOwnProperty("defaultValue")&&ut(e,n.type,Q(n.defaultValue)),n.checked==null&&n.defaultChecked!=null&&(e.defaultChecked=!!n.defaultChecked)}function nt(e,n,o){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var s=n.type;if(!(s!=="submit"&&s!=="reset"||n.value!==void 0&&n.value!==null))return;n=""+e._wrapperState.initialValue,o||n===e.value||(e.value=n),e.defaultValue=n}o=e.name,o!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,o!==""&&(e.name=o)}function ut(e,n,o){(n!=="number"||Se(e.ownerDocument)!==e)&&(o==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+o&&(e.defaultValue=""+o))}var rt=Array.isArray;function qe(e,n,o,s){if(e=e.options,n){n={};for(var f=0;f<o.length;f++)n["$"+o[f]]=!0;for(o=0;o<e.length;o++)f=n.hasOwnProperty("$"+e[o].value),e[o].selected!==f&&(e[o].selected=f),f&&s&&(e[o].defaultSelected=!0)}else{for(o=""+Q(o),n=null,f=0;f<e.length;f++){if(e[f].value===o){e[f].selected=!0,s&&(e[f].defaultSelected=!0);return}n!==null||e[f].disabled||(n=e[f])}n!==null&&(n.selected=!0)}}function At(e,n){if(n.dangerouslySetInnerHTML!=null)throw Error(i(91));return A({},n,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function xt(e,n){var o=n.value;if(o==null){if(o=n.children,n=n.defaultValue,o!=null){if(n!=null)throw Error(i(92));if(rt(o)){if(1<o.length)throw Error(i(93));o=o[0]}n=o}n==null&&(n=""),o=n}e._wrapperState={initialValue:Q(o)}}function $t(e,n){var o=Q(n.value),s=Q(n.defaultValue);o!=null&&(o=""+o,o!==e.value&&(e.value=o),n.defaultValue==null&&e.defaultValue!==o&&(e.defaultValue=o)),s!=null&&(e.defaultValue=""+s)}function ct(e){var n=e.textContent;n===e._wrapperState.initialValue&&n!==""&&n!==null&&(e.value=n)}function wt(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function gt(e,n){return e==null||e==="http://www.w3.org/1999/xhtml"?wt(n):e==="http://www.w3.org/2000/svg"&&n==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var mt,ce=(function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(n,o,s,f){MSApp.execUnsafeLocalFunction(function(){return e(n,o,s,f)})}:e})(function(e,n){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=n;else{for(mt=mt||document.createElement("div"),mt.innerHTML="<svg>"+n.valueOf().toString()+"</svg>",n=mt.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}});function he(e,n){if(n){var o=e.firstChild;if(o&&o===e.lastChild&&o.nodeType===3){o.nodeValue=n;return}}e.textContent=n}var Me={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Xe=["Webkit","ms","Moz","O"];Object.keys(Me).forEach(function(e){Xe.forEach(function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1),Me[n]=Me[e]})});function jt(e,n,o){return n==null||typeof n=="boolean"||n===""?"":o||typeof n!="number"||n===0||Me.hasOwnProperty(e)&&Me[e]?(""+n).trim():n+"px"}function Ze(e,n){e=e.style;for(var o in n)if(n.hasOwnProperty(o)){var s=o.indexOf("--")===0,f=jt(o,n[o],s);o==="float"&&(o="cssFloat"),s?e.setProperty(o,f):e[o]=f}}var go=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function mo(e,n){if(n){if(go[e]&&(n.children!=null||n.dangerouslySetInnerHTML!=null))throw Error(i(137,e));if(n.dangerouslySetInnerHTML!=null){if(n.children!=null)throw Error(i(60));if(typeof n.dangerouslySetInnerHTML!="object"||!("__html"in n.dangerouslySetInnerHTML))throw Error(i(61))}if(n.style!=null&&typeof n.style!="object")throw Error(i(62))}}function yo(e,n){if(e.indexOf("-")===-1)return typeof n.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var vo=null;function xo(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var wo=null,Nn=null,Cn=null;function Pi(e){if(e=Uo(e)){if(typeof wo!="function")throw Error(i(280));var n=e.stateNode;n&&(n=is(n),wo(e.stateNode,e.type,n))}}function Ii(e){Nn?Cn?Cn.push(e):Cn=[e]:Nn=e}function Ti(){if(Nn){var e=Nn,n=Cn;if(Cn=Nn=null,Pi(e),n)for(e=0;e<n.length;e++)Pi(n[e])}}function Ri(e,n){return e(n)}function zi(){}var _o=!1;function bi(e,n,o){if(_o)return e(n,o);_o=!0;try{return Ri(e,n,o)}finally{_o=!1,(Nn!==null||Cn!==null)&&(zi(),Ti())}}function Zn(e,n){var o=e.stateNode;if(o===null)return null;var s=is(o);if(s===null)return null;o=s[n];e:switch(n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(s=!s.disabled)||(e=e.type,s=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!s;break e;default:e=!1}if(e)return null;if(o&&typeof o!="function")throw Error(i(231,n,typeof o));return o}var So=!1;if(d)try{var Jn={};Object.defineProperty(Jn,"passive",{get:function(){So=!0}}),window.addEventListener("test",Jn,Jn),window.removeEventListener("test",Jn,Jn)}catch{So=!1}function Pl(e,n,o,s,f,p,S,T,O){var G=Array.prototype.slice.call(arguments,3);try{n.apply(o,G)}catch(oe){this.onError(oe)}}var er=!1,Mr=null,jr=!1,ko=null,Il={onError:function(e){er=!0,Mr=e}};function Tl(e,n,o,s,f,p,S,T,O){er=!1,Mr=null,Pl.apply(Il,arguments)}function Rl(e,n,o,s,f,p,S,T,O){if(Tl.apply(this,arguments),er){if(er){var G=Mr;er=!1,Mr=null}else throw Error(i(198));jr||(jr=!0,ko=G)}}function on(e){var n=e,o=e;if(e.alternate)for(;n.return;)n=n.return;else{e=n;do n=e,(n.flags&4098)!==0&&(o=n.return),e=n.return;while(e)}return n.tag===3?o:null}function Eo(e){if(e.tag===13){var n=e.memoizedState;if(n===null&&(e=e.alternate,e!==null&&(n=e.memoizedState)),n!==null)return n.dehydrated}return null}function No(e){if(on(e)!==e)throw Error(i(188))}function zl(e){var n=e.alternate;if(!n){if(n=on(e),n===null)throw Error(i(188));return n!==e?null:e}for(var o=e,s=n;;){var f=o.return;if(f===null)break;var p=f.alternate;if(p===null){if(s=f.return,s!==null){o=s;continue}break}if(f.child===p.child){for(p=f.child;p;){if(p===o)return No(f),e;if(p===s)return No(f),n;p=p.sibling}throw Error(i(188))}if(o.return!==s.return)o=f,s=p;else{for(var S=!1,T=f.child;T;){if(T===o){S=!0,o=f,s=p;break}if(T===s){S=!0,s=f,o=p;break}T=T.sibling}if(!S){for(T=p.child;T;){if(T===o){S=!0,o=p,s=f;break}if(T===s){S=!0,s=p,o=f;break}T=T.sibling}if(!S)throw Error(i(189))}}if(o.alternate!==s)throw Error(i(190))}if(o.tag!==3)throw Error(i(188));return o.stateNode.current===o?e:n}function Li(e){return e=zl(e),e!==null?Di(e):null}function Di(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var n=Di(e);if(n!==null)return n;e=e.sibling}return null}var Ai=r.unstable_scheduleCallback,$i=r.unstable_cancelCallback,bl=r.unstable_shouldYield,Oi=r.unstable_requestPaint,Ve=r.unstable_now,Ll=r.unstable_getCurrentPriorityLevel,Co=r.unstable_ImmediatePriority,Fi=r.unstable_UserBlockingPriority,Pr=r.unstable_NormalPriority,Dl=r.unstable_LowPriority,Hi=r.unstable_IdlePriority,Ir=null,Pt=null;function Al(e){if(Pt&&typeof Pt.onCommitFiberRoot=="function")try{Pt.onCommitFiberRoot(Ir,e,void 0,(e.current.flags&128)===128)}catch{}}var It=Math.clz32?Math.clz32:Fl,$l=Math.log,Ol=Math.LN2;function Fl(e){return e>>>=0,e===0?32:31-($l(e)/Ol|0)|0}var Tr=64,Rr=4194304;function tr(e){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: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 e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function pn(e,n){var o=e.pendingLanes;if(o===0)return 0;var s=0,f=e.suspendedLanes,p=e.pingedLanes,S=o&268435455;if(S!==0){var T=S&~f;T!==0?s=tr(T):(p&=S,p!==0&&(s=tr(p)))}else S=o&~f,S!==0?s=tr(S):p!==0&&(s=tr(p));if(s===0)return 0;if(n!==0&&n!==s&&(n&f)===0&&(f=s&-s,p=n&-n,f>=p||f===16&&(p&4194240)!==0))return n;if((s&4)!==0&&(s|=o&16),n=e.entangledLanes,n!==0)for(e=e.entanglements,n&=s;0<n;)o=31-It(n),f=1<<o,s|=e[o],n&=~f;return s}function Hl(e,n){switch(e){case 1:case 2:case 4:return n+250;case 8:case 16:case 32:case 64: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 n+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Vi(e,n){for(var o=e.suspendedLanes,s=e.pingedLanes,f=e.expirationTimes,p=e.pendingLanes;0<p;){var S=31-It(p),T=1<<S,O=f[S];O===-1?((T&o)===0||(T&s)!==0)&&(f[S]=Hl(T,n)):O<=n&&(e.expiredLanes|=T),p&=~T}}function Mo(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function Bi(){var e=Tr;return Tr<<=1,(Tr&4194240)===0&&(Tr=64),e}function nr(e){for(var n=[],o=0;31>o;o++)n.push(e);return n}function rr(e,n,o){e.pendingLanes|=n,n!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,n=31-It(n),e[n]=o}function Vl(e,n){var o=e.pendingLanes&~n;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=n,e.mutableReadLanes&=n,e.entangledLanes&=n,n=e.entanglements;var s=e.eventTimes;for(e=e.expirationTimes;0<o;){var f=31-It(o),p=1<<f;n[f]=0,s[f]=-1,e[f]=-1,o&=~p}}function zr(e,n){var o=e.entangledLanes|=n;for(e=e.entanglements;o;){var s=31-It(o),f=1<<s;f&n|e[s]&n&&(e[s]|=n),o&=~f}}var Le=0;function xc(e){return e&=-e,1<e?4<e?(e&268435455)!==0?16:536870912:4:1}var wc,Bl,_c,Sc,kc,Ul=!1,Ui=[],Mn=null,jn=null,Pn=null,jo=new Map,Po=new Map,In=[],fm="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Ec(e,n){switch(e){case"focusin":case"focusout":Mn=null;break;case"dragenter":case"dragleave":jn=null;break;case"mouseover":case"mouseout":Pn=null;break;case"pointerover":case"pointerout":jo.delete(n.pointerId);break;case"gotpointercapture":case"lostpointercapture":Po.delete(n.pointerId)}}function Io(e,n,o,s,f,p){return e===null||e.nativeEvent!==p?(e={blockedOn:n,domEventName:o,eventSystemFlags:s,nativeEvent:p,targetContainers:[f]},n!==null&&(n=Uo(n),n!==null&&Bl(n)),e):(e.eventSystemFlags|=s,n=e.targetContainers,f!==null&&n.indexOf(f)===-1&&n.push(f),e)}function dm(e,n,o,s,f){switch(n){case"focusin":return Mn=Io(Mn,e,n,o,s,f),!0;case"dragenter":return jn=Io(jn,e,n,o,s,f),!0;case"mouseover":return Pn=Io(Pn,e,n,o,s,f),!0;case"pointerover":var p=f.pointerId;return jo.set(p,Io(jo.get(p)||null,e,n,o,s,f)),!0;case"gotpointercapture":return p=f.pointerId,Po.set(p,Io(Po.get(p)||null,e,n,o,s,f)),!0}return!1}function Nc(e){var n=or(e.target);if(n!==null){var o=on(n);if(o!==null){if(n=o.tag,n===13){if(n=Eo(o),n!==null){e.blockedOn=n,kc(e.priority,function(){_c(o)});return}}else if(n===3&&o.stateNode.current.memoizedState.isDehydrated){e.blockedOn=o.tag===3?o.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Wi(e){if(e.blockedOn!==null)return!1;for(var n=e.targetContainers;0<n.length;){var o=Yl(e.domEventName,e.eventSystemFlags,n[0],e.nativeEvent);if(o===null){o=e.nativeEvent;var s=new o.constructor(o.type,o);vo=s,o.target.dispatchEvent(s),vo=null}else return n=Uo(o),n!==null&&Bl(n),e.blockedOn=o,!1;n.shift()}return!0}function Cc(e,n,o){Wi(e)&&o.delete(n)}function pm(){Ul=!1,Mn!==null&&Wi(Mn)&&(Mn=null),jn!==null&&Wi(jn)&&(jn=null),Pn!==null&&Wi(Pn)&&(Pn=null),jo.forEach(Cc),Po.forEach(Cc)}function To(e,n){e.blockedOn===n&&(e.blockedOn=null,Ul||(Ul=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,pm)))}function Ro(e){function n(f){return To(f,e)}if(0<Ui.length){To(Ui[0],e);for(var o=1;o<Ui.length;o++){var s=Ui[o];s.blockedOn===e&&(s.blockedOn=null)}}for(Mn!==null&&To(Mn,e),jn!==null&&To(jn,e),Pn!==null&&To(Pn,e),jo.forEach(n),Po.forEach(n),o=0;o<In.length;o++)s=In[o],s.blockedOn===e&&(s.blockedOn=null);for(;0<In.length&&(o=In[0],o.blockedOn===null);)Nc(o),o.blockedOn===null&&In.shift()}var br=M.ReactCurrentBatchConfig,Yi=!0;function hm(e,n,o,s){var f=Le,p=br.transition;br.transition=null;try{Le=1,Wl(e,n,o,s)}finally{Le=f,br.transition=p}}function gm(e,n,o,s){var f=Le,p=br.transition;br.transition=null;try{Le=4,Wl(e,n,o,s)}finally{Le=f,br.transition=p}}function Wl(e,n,o,s){if(Yi){var f=Yl(e,n,o,s);if(f===null)ua(e,n,s,Xi,o),Ec(e,s);else if(dm(f,e,n,o,s))s.stopPropagation();else if(Ec(e,s),n&4&&-1<fm.indexOf(e)){for(;f!==null;){var p=Uo(f);if(p!==null&&wc(p),p=Yl(e,n,o,s),p===null&&ua(e,n,s,Xi,o),p===f)break;f=p}f!==null&&s.stopPropagation()}else ua(e,n,s,null,o)}}var Xi=null;function Yl(e,n,o,s){if(Xi=null,e=xo(s),e=or(e),e!==null)if(n=on(e),n===null)e=null;else if(o=n.tag,o===13){if(e=Eo(n),e!==null)return e;e=null}else if(o===3){if(n.stateNode.current.memoizedState.isDehydrated)return n.tag===3?n.stateNode.containerInfo:null;e=null}else n!==e&&(e=null);return Xi=e,null}function Mc(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Ll()){case Co:return 1;case Fi:return 4;case Pr:case Dl:return 16;case Hi:return 536870912;default:return 16}default:return 16}}var Tn=null,Xl=null,Ki=null;function jc(){if(Ki)return Ki;var e,n=Xl,o=n.length,s,f="value"in Tn?Tn.value:Tn.textContent,p=f.length;for(e=0;e<o&&n[e]===f[e];e++);var S=o-e;for(s=1;s<=S&&n[o-s]===f[p-s];s++);return Ki=f.slice(e,1<s?1-s:void 0)}function Qi(e){var n=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&n===13&&(e=13)):e=n,e===10&&(e=13),32<=e||e===13?e:0}function Gi(){return!0}function Pc(){return!1}function Tt(e){function n(o,s,f,p,S){this._reactName=o,this._targetInst=f,this.type=s,this.nativeEvent=p,this.target=S,this.currentTarget=null;for(var T in e)e.hasOwnProperty(T)&&(o=e[T],this[T]=o?o(p):p[T]);return this.isDefaultPrevented=(p.defaultPrevented!=null?p.defaultPrevented:p.returnValue===!1)?Gi:Pc,this.isPropagationStopped=Pc,this}return A(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var o=this.nativeEvent;o&&(o.preventDefault?o.preventDefault():typeof o.returnValue!="unknown"&&(o.returnValue=!1),this.isDefaultPrevented=Gi)},stopPropagation:function(){var o=this.nativeEvent;o&&(o.stopPropagation?o.stopPropagation():typeof o.cancelBubble!="unknown"&&(o.cancelBubble=!0),this.isPropagationStopped=Gi)},persist:function(){},isPersistent:Gi}),n}var Lr={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Kl=Tt(Lr),zo=A({},Lr,{view:0,detail:0}),mm=Tt(zo),Ql,Gl,bo,qi=A({},zo,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Zl,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==bo&&(bo&&e.type==="mousemove"?(Ql=e.screenX-bo.screenX,Gl=e.screenY-bo.screenY):Gl=Ql=0,bo=e),Ql)},movementY:function(e){return"movementY"in e?e.movementY:Gl}}),Ic=Tt(qi),ym=A({},qi,{dataTransfer:0}),vm=Tt(ym),xm=A({},zo,{relatedTarget:0}),ql=Tt(xm),wm=A({},Lr,{animationName:0,elapsedTime:0,pseudoElement:0}),_m=Tt(wm),Sm=A({},Lr,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),km=Tt(Sm),Em=A({},Lr,{data:0}),Tc=Tt(Em),Nm={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Cm={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Mm={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function jm(e){var n=this.nativeEvent;return n.getModifierState?n.getModifierState(e):(e=Mm[e])?!!n[e]:!1}function Zl(){return jm}var Pm=A({},zo,{key:function(e){if(e.key){var n=Nm[e.key]||e.key;if(n!=="Unidentified")return n}return e.type==="keypress"?(e=Qi(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Cm[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Zl,charCode:function(e){return e.type==="keypress"?Qi(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Qi(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),Im=Tt(Pm),Tm=A({},qi,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Rc=Tt(Tm),Rm=A({},zo,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Zl}),zm=Tt(Rm),bm=A({},Lr,{propertyName:0,elapsedTime:0,pseudoElement:0}),Lm=Tt(bm),Dm=A({},qi,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Am=Tt(Dm),$m=[9,13,27,32],Jl=d&&"CompositionEvent"in window,Lo=null;d&&"documentMode"in document&&(Lo=document.documentMode);var Om=d&&"TextEvent"in window&&!Lo,zc=d&&(!Jl||Lo&&8<Lo&&11>=Lo),bc=" ",Lc=!1;function Dc(e,n){switch(e){case"keyup":return $m.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Ac(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Dr=!1;function Fm(e,n){switch(e){case"compositionend":return Ac(n);case"keypress":return n.which!==32?null:(Lc=!0,bc);case"textInput":return e=n.data,e===bc&&Lc?null:e;default:return null}}function Hm(e,n){if(Dr)return e==="compositionend"||!Jl&&Dc(e,n)?(e=jc(),Ki=Xl=Tn=null,Dr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1<n.char.length)return n.char;if(n.which)return String.fromCharCode(n.which)}return null;case"compositionend":return zc&&n.locale!=="ko"?null:n.data;default:return null}}var Vm={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function $c(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n==="input"?!!Vm[e.type]:n==="textarea"}function Oc(e,n,o,s){Ii(s),n=ns(n,"onChange"),0<n.length&&(o=new Kl("onChange","change",null,o,s),e.push({event:o,listeners:n}))}var Do=null,Ao=null;function Bm(e){rf(e,0)}function Zi(e){var n=Hr(e);if(xe(n))return e}function Um(e,n){if(e==="change")return n}var Fc=!1;if(d){var ea;if(d){var ta="oninput"in document;if(!ta){var Hc=document.createElement("div");Hc.setAttribute("oninput","return;"),ta=typeof Hc.oninput=="function"}ea=ta}else ea=!1;Fc=ea&&(!document.documentMode||9<document.documentMode)}function Vc(){Do&&(Do.detachEvent("onpropertychange",Bc),Ao=Do=null)}function Bc(e){if(e.propertyName==="value"&&Zi(Ao)){var n=[];Oc(n,Ao,e,xo(e)),bi(Bm,n)}}function Wm(e,n,o){e==="focusin"?(Vc(),Do=n,Ao=o,Do.attachEvent("onpropertychange",Bc)):e==="focusout"&&Vc()}function Ym(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Zi(Ao)}function Xm(e,n){if(e==="click")return Zi(n)}function Km(e,n){if(e==="input"||e==="change")return Zi(n)}function Qm(e,n){return e===n&&(e!==0||1/e===1/n)||e!==e&&n!==n}var Wt=typeof Object.is=="function"?Object.is:Qm;function $o(e,n){if(Wt(e,n))return!0;if(typeof e!="object"||e===null||typeof n!="object"||n===null)return!1;var o=Object.keys(e),s=Object.keys(n);if(o.length!==s.length)return!1;for(s=0;s<o.length;s++){var f=o[s];if(!h.call(n,f)||!Wt(e[f],n[f]))return!1}return!0}function Uc(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Wc(e,n){var o=Uc(e);e=0;for(var s;o;){if(o.nodeType===3){if(s=e+o.textContent.length,e<=n&&s>=n)return{node:o,offset:n-e};e=s}e:{for(;o;){if(o.nextSibling){o=o.nextSibling;break e}o=o.parentNode}o=void 0}o=Uc(o)}}function Yc(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?Yc(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function Xc(){for(var e=window,n=Se();n instanceof e.HTMLIFrameElement;){try{var o=typeof n.contentWindow.location.href=="string"}catch{o=!1}if(o)e=n.contentWindow;else break;n=Se(e.document)}return n}function na(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}function Gm(e){var n=Xc(),o=e.focusedElem,s=e.selectionRange;if(n!==o&&o&&o.ownerDocument&&Yc(o.ownerDocument.documentElement,o)){if(s!==null&&na(o)){if(n=s.start,e=s.end,e===void 0&&(e=n),"selectionStart"in o)o.selectionStart=n,o.selectionEnd=Math.min(e,o.value.length);else if(e=(n=o.ownerDocument||document)&&n.defaultView||window,e.getSelection){e=e.getSelection();var f=o.textContent.length,p=Math.min(s.start,f);s=s.end===void 0?p:Math.min(s.end,f),!e.extend&&p>s&&(f=s,s=p,p=f),f=Wc(o,p);var S=Wc(o,s);f&&S&&(e.rangeCount!==1||e.anchorNode!==f.node||e.anchorOffset!==f.offset||e.focusNode!==S.node||e.focusOffset!==S.offset)&&(n=n.createRange(),n.setStart(f.node,f.offset),e.removeAllRanges(),p>s?(e.addRange(n),e.extend(S.node,S.offset)):(n.setEnd(S.node,S.offset),e.addRange(n)))}}for(n=[],e=o;e=e.parentNode;)e.nodeType===1&&n.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof o.focus=="function"&&o.focus(),o=0;o<n.length;o++)e=n[o],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var qm=d&&"documentMode"in document&&11>=document.documentMode,Ar=null,ra=null,Oo=null,oa=!1;function Kc(e,n,o){var s=o.window===o?o.document:o.nodeType===9?o:o.ownerDocument;oa||Ar==null||Ar!==Se(s)||(s=Ar,"selectionStart"in s&&na(s)?s={start:s.selectionStart,end:s.selectionEnd}:(s=(s.ownerDocument&&s.ownerDocument.defaultView||window).getSelection(),s={anchorNode:s.anchorNode,anchorOffset:s.anchorOffset,focusNode:s.focusNode,focusOffset:s.focusOffset}),Oo&&$o(Oo,s)||(Oo=s,s=ns(ra,"onSelect"),0<s.length&&(n=new Kl("onSelect","select",null,n,o),e.push({event:n,listeners:s}),n.target=Ar)))}function Ji(e,n){var o={};return o[e.toLowerCase()]=n.toLowerCase(),o["Webkit"+e]="webkit"+n,o["Moz"+e]="moz"+n,o}var $r={animationend:Ji("Animation","AnimationEnd"),animationiteration:Ji("Animation","AnimationIteration"),animationstart:Ji("Animation","AnimationStart"),transitionend:Ji("Transition","TransitionEnd")},ia={},Qc={};d&&(Qc=document.createElement("div").style,"AnimationEvent"in window||(delete $r.animationend.animation,delete $r.animationiteration.animation,delete $r.animationstart.animation),"TransitionEvent"in window||delete $r.transitionend.transition);function es(e){if(ia[e])return ia[e];if(!$r[e])return e;var n=$r[e],o;for(o in n)if(n.hasOwnProperty(o)&&o in Qc)return ia[e]=n[o];return e}var Gc=es("animationend"),qc=es("animationiteration"),Zc=es("animationstart"),Jc=es("transitionend"),ef=new Map,tf="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Rn(e,n){ef.set(e,n),u(n,[e])}for(var sa=0;sa<tf.length;sa++){var la=tf[sa],Zm=la.toLowerCase(),Jm=la[0].toUpperCase()+la.slice(1);Rn(Zm,"on"+Jm)}Rn(Gc,"onAnimationEnd"),Rn(qc,"onAnimationIteration"),Rn(Zc,"onAnimationStart"),Rn("dblclick","onDoubleClick"),Rn("focusin","onFocus"),Rn("focusout","onBlur"),Rn(Jc,"onTransitionEnd"),c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),u("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),u("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),u("onBeforeInput",["compositionend","keypress","textInput","paste"]),u("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Fo="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),e0=new Set("cancel close invalid load scroll toggle".split(" ").concat(Fo));function nf(e,n,o){var s=e.type||"unknown-event";e.currentTarget=o,Rl(s,n,void 0,e),e.currentTarget=null}function rf(e,n){n=(n&4)!==0;for(var o=0;o<e.length;o++){var s=e[o],f=s.event;s=s.listeners;e:{var p=void 0;if(n)for(var S=s.length-1;0<=S;S--){var T=s[S],O=T.instance,G=T.currentTarget;if(T=T.listener,O!==p&&f.isPropagationStopped())break e;nf(f,T,G),p=O}else for(S=0;S<s.length;S++){if(T=s[S],O=T.instance,G=T.currentTarget,T=T.listener,O!==p&&f.isPropagationStopped())break e;nf(f,T,G),p=O}}}if(jr)throw e=ko,jr=!1,ko=null,e}function Ae(e,n){var o=n[ga];o===void 0&&(o=n[ga]=new Set);var s=e+"__bubble";o.has(s)||(of(n,e,2,!1),o.add(s))}function aa(e,n,o){var s=0;n&&(s|=4),of(o,e,s,n)}var ts="_reactListening"+Math.random().toString(36).slice(2);function Ho(e){if(!e[ts]){e[ts]=!0,l.forEach(function(o){o!=="selectionchange"&&(e0.has(o)||aa(o,!1,e),aa(o,!0,e))});var n=e.nodeType===9?e:e.ownerDocument;n===null||n[ts]||(n[ts]=!0,aa("selectionchange",!1,n))}}function of(e,n,o,s){switch(Mc(n)){case 1:var f=hm;break;case 4:f=gm;break;default:f=Wl}o=f.bind(null,n,o,e),f=void 0,!So||n!=="touchstart"&&n!=="touchmove"&&n!=="wheel"||(f=!0),s?f!==void 0?e.addEventListener(n,o,{capture:!0,passive:f}):e.addEventListener(n,o,!0):f!==void 0?e.addEventListener(n,o,{passive:f}):e.addEventListener(n,o,!1)}function ua(e,n,o,s,f){var p=s;if((n&1)===0&&(n&2)===0&&s!==null)e:for(;;){if(s===null)return;var S=s.tag;if(S===3||S===4){var T=s.stateNode.containerInfo;if(T===f||T.nodeType===8&&T.parentNode===f)break;if(S===4)for(S=s.return;S!==null;){var O=S.tag;if((O===3||O===4)&&(O=S.stateNode.containerInfo,O===f||O.nodeType===8&&O.parentNode===f))return;S=S.return}for(;T!==null;){if(S=or(T),S===null)return;if(O=S.tag,O===5||O===6){s=p=S;continue e}T=T.parentNode}}s=s.return}bi(function(){var G=p,oe=xo(o),se=[];e:{var re=ef.get(e);if(re!==void 0){var de=Kl,me=e;switch(e){case"keypress":if(Qi(o)===0)break e;case"keydown":case"keyup":de=Im;break;case"focusin":me="focus",de=ql;break;case"focusout":me="blur",de=ql;break;case"beforeblur":case"afterblur":de=ql;break;case"click":if(o.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":de=Ic;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":de=vm;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":de=zm;break;case Gc:case qc:case Zc:de=_m;break;case Jc:de=Lm;break;case"scroll":de=mm;break;case"wheel":de=Am;break;case"copy":case"cut":case"paste":de=km;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":de=Rc}var ye=(n&4)!==0,Ke=!ye&&e==="scroll",Y=ye?re!==null?re+"Capture":null:re;ye=[];for(var H=G,K;H!==null;){K=H;var ae=K.stateNode;if(K.tag===5&&ae!==null&&(K=ae,Y!==null&&(ae=Zn(H,Y),ae!=null&&ye.push(Vo(H,ae,K)))),Ke)break;H=H.return}0<ye.length&&(re=new de(re,me,null,o,oe),se.push({event:re,listeners:ye}))}}if((n&7)===0){e:{if(re=e==="mouseover"||e==="pointerover",de=e==="mouseout"||e==="pointerout",re&&o!==vo&&(me=o.relatedTarget||o.fromElement)&&(or(me)||me[hn]))break e;if((de||re)&&(re=oe.window===oe?oe:(re=oe.ownerDocument)?re.defaultView||re.parentWindow:window,de?(me=o.relatedTarget||o.toElement,de=G,me=me?or(me):null,me!==null&&(Ke=on(me),me!==Ke||me.tag!==5&&me.tag!==6)&&(me=null)):(de=null,me=G),de!==me)){if(ye=Ic,ae="onMouseLeave",Y="onMouseEnter",H="mouse",(e==="pointerout"||e==="pointerover")&&(ye=Rc,ae="onPointerLeave",Y="onPointerEnter",H="pointer"),Ke=de==null?re:Hr(de),K=me==null?re:Hr(me),re=new ye(ae,H+"leave",de,o,oe),re.target=Ke,re.relatedTarget=K,ae=null,or(oe)===G&&(ye=new ye(Y,H+"enter",me,o,oe),ye.target=K,ye.relatedTarget=Ke,ae=ye),Ke=ae,de&&me)t:{for(ye=de,Y=me,H=0,K=ye;K;K=Or(K))H++;for(K=0,ae=Y;ae;ae=Or(ae))K++;for(;0<H-K;)ye=Or(ye),H--;for(;0<K-H;)Y=Or(Y),K--;for(;H--;){if(ye===Y||Y!==null&&ye===Y.alternate)break t;ye=Or(ye),Y=Or(Y)}ye=null}else ye=null;de!==null&&sf(se,re,de,ye,!1),me!==null&&Ke!==null&&sf(se,Ke,me,ye,!0)}}e:{if(re=G?Hr(G):window,de=re.nodeName&&re.nodeName.toLowerCase(),de==="select"||de==="input"&&re.type==="file")var ve=Um;else if($c(re))if(Fc)ve=Km;else{ve=Ym;var ke=Wm}else(de=re.nodeName)&&de.toLowerCase()==="input"&&(re.type==="checkbox"||re.type==="radio")&&(ve=Xm);if(ve&&(ve=ve(e,G))){Oc(se,ve,o,oe);break e}ke&&ke(e,re,G),e==="focusout"&&(ke=re._wrapperState)&&ke.controlled&&re.type==="number"&&ut(re,"number",re.value)}switch(ke=G?Hr(G):window,e){case"focusin":($c(ke)||ke.contentEditable==="true")&&(Ar=ke,ra=G,Oo=null);break;case"focusout":Oo=ra=Ar=null;break;case"mousedown":oa=!0;break;case"contextmenu":case"mouseup":case"dragend":oa=!1,Kc(se,o,oe);break;case"selectionchange":if(qm)break;case"keydown":case"keyup":Kc(se,o,oe)}var Ee;if(Jl)e:{switch(e){case"compositionstart":var Ce="onCompositionStart";break e;case"compositionend":Ce="onCompositionEnd";break e;case"compositionupdate":Ce="onCompositionUpdate";break e}Ce=void 0}else Dr?Dc(e,o)&&(Ce="onCompositionEnd"):e==="keydown"&&o.keyCode===229&&(Ce="onCompositionStart");Ce&&(zc&&o.locale!=="ko"&&(Dr||Ce!=="onCompositionStart"?Ce==="onCompositionEnd"&&Dr&&(Ee=jc()):(Tn=oe,Xl="value"in Tn?Tn.value:Tn.textContent,Dr=!0)),ke=ns(G,Ce),0<ke.length&&(Ce=new Tc(Ce,e,null,o,oe),se.push({event:Ce,listeners:ke}),Ee?Ce.data=Ee:(Ee=Ac(o),Ee!==null&&(Ce.data=Ee)))),(Ee=Om?Fm(e,o):Hm(e,o))&&(G=ns(G,"onBeforeInput"),0<G.length&&(oe=new Tc("onBeforeInput","beforeinput",null,o,oe),se.push({event:oe,listeners:G}),oe.data=Ee))}rf(se,n)})}function Vo(e,n,o){return{instance:e,listener:n,currentTarget:o}}function ns(e,n){for(var o=n+"Capture",s=[];e!==null;){var f=e,p=f.stateNode;f.tag===5&&p!==null&&(f=p,p=Zn(e,o),p!=null&&s.unshift(Vo(e,p,f)),p=Zn(e,n),p!=null&&s.push(Vo(e,p,f))),e=e.return}return s}function Or(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function sf(e,n,o,s,f){for(var p=n._reactName,S=[];o!==null&&o!==s;){var T=o,O=T.alternate,G=T.stateNode;if(O!==null&&O===s)break;T.tag===5&&G!==null&&(T=G,f?(O=Zn(o,p),O!=null&&S.unshift(Vo(o,O,T))):f||(O=Zn(o,p),O!=null&&S.push(Vo(o,O,T)))),o=o.return}S.length!==0&&e.push({event:n,listeners:S})}var t0=/\r\n?/g,n0=/\u0000|\uFFFD/g;function lf(e){return(typeof e=="string"?e:""+e).replace(t0,`
+`).replace(n0,"")}function rs(e,n,o){if(n=lf(n),lf(e)!==n&&o)throw Error(i(425))}function os(){}var ca=null,fa=null;function da(e,n){return e==="textarea"||e==="noscript"||typeof n.children=="string"||typeof n.children=="number"||typeof n.dangerouslySetInnerHTML=="object"&&n.dangerouslySetInnerHTML!==null&&n.dangerouslySetInnerHTML.__html!=null}var pa=typeof setTimeout=="function"?setTimeout:void 0,r0=typeof clearTimeout=="function"?clearTimeout:void 0,af=typeof Promise=="function"?Promise:void 0,o0=typeof queueMicrotask=="function"?queueMicrotask:typeof af<"u"?function(e){return af.resolve(null).then(e).catch(i0)}:pa;function i0(e){setTimeout(function(){throw e})}function ha(e,n){var o=n,s=0;do{var f=o.nextSibling;if(e.removeChild(o),f&&f.nodeType===8)if(o=f.data,o==="/$"){if(s===0){e.removeChild(f),Ro(n);return}s--}else o!=="$"&&o!=="$?"&&o!=="$!"||s++;o=f}while(o);Ro(n)}function zn(e){for(;e!=null;e=e.nextSibling){var n=e.nodeType;if(n===1||n===3)break;if(n===8){if(n=e.data,n==="$"||n==="$!"||n==="$?")break;if(n==="/$")return null}}return e}function uf(e){e=e.previousSibling;for(var n=0;e;){if(e.nodeType===8){var o=e.data;if(o==="$"||o==="$!"||o==="$?"){if(n===0)return e;n--}else o==="/$"&&n++}e=e.previousSibling}return null}var Fr=Math.random().toString(36).slice(2),sn="__reactFiber$"+Fr,Bo="__reactProps$"+Fr,hn="__reactContainer$"+Fr,ga="__reactEvents$"+Fr,s0="__reactListeners$"+Fr,l0="__reactHandles$"+Fr;function or(e){var n=e[sn];if(n)return n;for(var o=e.parentNode;o;){if(n=o[hn]||o[sn]){if(o=n.alternate,n.child!==null||o!==null&&o.child!==null)for(e=uf(e);e!==null;){if(o=e[sn])return o;e=uf(e)}return n}e=o,o=e.parentNode}return null}function Uo(e){return e=e[sn]||e[hn],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Hr(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(i(33))}function is(e){return e[Bo]||null}var ma=[],Vr=-1;function bn(e){return{current:e}}function $e(e){0>Vr||(e.current=ma[Vr],ma[Vr]=null,Vr--)}function De(e,n){Vr++,ma[Vr]=e.current,e.current=n}var Ln={},ft=bn(Ln),_t=bn(!1),ir=Ln;function Br(e,n){var o=e.type.contextTypes;if(!o)return Ln;var s=e.stateNode;if(s&&s.__reactInternalMemoizedUnmaskedChildContext===n)return s.__reactInternalMemoizedMaskedChildContext;var f={},p;for(p in o)f[p]=n[p];return s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=f),f}function St(e){return e=e.childContextTypes,e!=null}function ss(){$e(_t),$e(ft)}function cf(e,n,o){if(ft.current!==Ln)throw Error(i(168));De(ft,n),De(_t,o)}function ff(e,n,o){var s=e.stateNode;if(n=n.childContextTypes,typeof s.getChildContext!="function")return o;s=s.getChildContext();for(var f in s)if(!(f in n))throw Error(i(108,ue(e)||"Unknown",f));return A({},o,s)}function ls(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ln,ir=ft.current,De(ft,e),De(_t,_t.current),!0}function df(e,n,o){var s=e.stateNode;if(!s)throw Error(i(169));o?(e=ff(e,n,ir),s.__reactInternalMemoizedMergedChildContext=e,$e(_t),$e(ft),De(ft,e)):$e(_t),De(_t,o)}var gn=null,as=!1,ya=!1;function pf(e){gn===null?gn=[e]:gn.push(e)}function a0(e){as=!0,pf(e)}function Dn(){if(!ya&&gn!==null){ya=!0;var e=0,n=Le;try{var o=gn;for(Le=1;e<o.length;e++){var s=o[e];do s=s(!0);while(s!==null)}gn=null,as=!1}catch(f){throw gn!==null&&(gn=gn.slice(e+1)),Ai(Co,Dn),f}finally{Le=n,ya=!1}}return null}var Ur=[],Wr=0,us=null,cs=0,Ot=[],Ft=0,sr=null,mn=1,yn="";function lr(e,n){Ur[Wr++]=cs,Ur[Wr++]=us,us=e,cs=n}function hf(e,n,o){Ot[Ft++]=mn,Ot[Ft++]=yn,Ot[Ft++]=sr,sr=e;var s=mn;e=yn;var f=32-It(s)-1;s&=~(1<<f),o+=1;var p=32-It(n)+f;if(30<p){var S=f-f%5;p=(s&(1<<S)-1).toString(32),s>>=S,f-=S,mn=1<<32-It(n)+f|o<<f|s,yn=p+e}else mn=1<<p|o<<f|s,yn=e}function va(e){e.return!==null&&(lr(e,1),hf(e,1,0))}function xa(e){for(;e===us;)us=Ur[--Wr],Ur[Wr]=null,cs=Ur[--Wr],Ur[Wr]=null;for(;e===sr;)sr=Ot[--Ft],Ot[Ft]=null,yn=Ot[--Ft],Ot[Ft]=null,mn=Ot[--Ft],Ot[Ft]=null}var Rt=null,zt=null,Fe=!1,Yt=null;function gf(e,n){var o=Ut(5,null,null,0);o.elementType="DELETED",o.stateNode=n,o.return=e,n=e.deletions,n===null?(e.deletions=[o],e.flags|=16):n.push(o)}function mf(e,n){switch(e.tag){case 5:var o=e.type;return n=n.nodeType!==1||o.toLowerCase()!==n.nodeName.toLowerCase()?null:n,n!==null?(e.stateNode=n,Rt=e,zt=zn(n.firstChild),!0):!1;case 6:return n=e.pendingProps===""||n.nodeType!==3?null:n,n!==null?(e.stateNode=n,Rt=e,zt=null,!0):!1;case 13:return n=n.nodeType!==8?null:n,n!==null?(o=sr!==null?{id:mn,overflow:yn}:null,e.memoizedState={dehydrated:n,treeContext:o,retryLane:1073741824},o=Ut(18,null,null,0),o.stateNode=n,o.return=e,e.child=o,Rt=e,zt=null,!0):!1;default:return!1}}function wa(e){return(e.mode&1)!==0&&(e.flags&128)===0}function _a(e){if(Fe){var n=zt;if(n){var o=n;if(!mf(e,n)){if(wa(e))throw Error(i(418));n=zn(o.nextSibling);var s=Rt;n&&mf(e,n)?gf(s,o):(e.flags=e.flags&-4097|2,Fe=!1,Rt=e)}}else{if(wa(e))throw Error(i(418));e.flags=e.flags&-4097|2,Fe=!1,Rt=e}}}function yf(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;Rt=e}function fs(e){if(e!==Rt)return!1;if(!Fe)return yf(e),Fe=!0,!1;var n;if((n=e.tag!==3)&&!(n=e.tag!==5)&&(n=e.type,n=n!=="head"&&n!=="body"&&!da(e.type,e.memoizedProps)),n&&(n=zt)){if(wa(e))throw vf(),Error(i(418));for(;n;)gf(e,n),n=zn(n.nextSibling)}if(yf(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(i(317));e:{for(e=e.nextSibling,n=0;e;){if(e.nodeType===8){var o=e.data;if(o==="/$"){if(n===0){zt=zn(e.nextSibling);break e}n--}else o!=="$"&&o!=="$!"&&o!=="$?"||n++}e=e.nextSibling}zt=null}}else zt=Rt?zn(e.stateNode.nextSibling):null;return!0}function vf(){for(var e=zt;e;)e=zn(e.nextSibling)}function Yr(){zt=Rt=null,Fe=!1}function Sa(e){Yt===null?Yt=[e]:Yt.push(e)}var u0=M.ReactCurrentBatchConfig;function Wo(e,n,o){if(e=o.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(o._owner){if(o=o._owner,o){if(o.tag!==1)throw Error(i(309));var s=o.stateNode}if(!s)throw Error(i(147,e));var f=s,p=""+e;return n!==null&&n.ref!==null&&typeof n.ref=="function"&&n.ref._stringRef===p?n.ref:(n=function(S){var T=f.refs;S===null?delete T[p]:T[p]=S},n._stringRef=p,n)}if(typeof e!="string")throw Error(i(284));if(!o._owner)throw Error(i(290,e))}return e}function ds(e,n){throw e=Object.prototype.toString.call(n),Error(i(31,e==="[object Object]"?"object with keys {"+Object.keys(n).join(", ")+"}":e))}function xf(e){var n=e._init;return n(e._payload)}function wf(e){function n(Y,H){if(e){var K=Y.deletions;K===null?(Y.deletions=[H],Y.flags|=16):K.push(H)}}function o(Y,H){if(!e)return null;for(;H!==null;)n(Y,H),H=H.sibling;return null}function s(Y,H){for(Y=new Map;H!==null;)H.key!==null?Y.set(H.key,H):Y.set(H.index,H),H=H.sibling;return Y}function f(Y,H){return Y=Un(Y,H),Y.index=0,Y.sibling=null,Y}function p(Y,H,K){return Y.index=K,e?(K=Y.alternate,K!==null?(K=K.index,K<H?(Y.flags|=2,H):K):(Y.flags|=2,H)):(Y.flags|=1048576,H)}function S(Y){return e&&Y.alternate===null&&(Y.flags|=2),Y}function T(Y,H,K,ae){return H===null||H.tag!==6?(H=pu(K,Y.mode,ae),H.return=Y,H):(H=f(H,K),H.return=Y,H)}function O(Y,H,K,ae){var ve=K.type;return ve===V?oe(Y,H,K.props.children,ae,K.key):H!==null&&(H.elementType===ve||typeof ve=="object"&&ve!==null&&ve.$$typeof===B&&xf(ve)===H.type)?(ae=f(H,K.props),ae.ref=Wo(Y,H,K),ae.return=Y,ae):(ae=Ds(K.type,K.key,K.props,null,Y.mode,ae),ae.ref=Wo(Y,H,K),ae.return=Y,ae)}function G(Y,H,K,ae){return H===null||H.tag!==4||H.stateNode.containerInfo!==K.containerInfo||H.stateNode.implementation!==K.implementation?(H=hu(K,Y.mode,ae),H.return=Y,H):(H=f(H,K.children||[]),H.return=Y,H)}function oe(Y,H,K,ae,ve){return H===null||H.tag!==7?(H=gr(K,Y.mode,ae,ve),H.return=Y,H):(H=f(H,K),H.return=Y,H)}function se(Y,H,K){if(typeof H=="string"&&H!==""||typeof H=="number")return H=pu(""+H,Y.mode,K),H.return=Y,H;if(typeof H=="object"&&H!==null){switch(H.$$typeof){case F:return K=Ds(H.type,H.key,H.props,null,Y.mode,K),K.ref=Wo(Y,null,H),K.return=Y,K;case $:return H=hu(H,Y.mode,K),H.return=Y,H;case B:var ae=H._init;return se(Y,ae(H._payload),K)}if(rt(H)||z(H))return H=gr(H,Y.mode,K,null),H.return=Y,H;ds(Y,H)}return null}function re(Y,H,K,ae){var ve=H!==null?H.key:null;if(typeof K=="string"&&K!==""||typeof K=="number")return ve!==null?null:T(Y,H,""+K,ae);if(typeof K=="object"&&K!==null){switch(K.$$typeof){case F:return K.key===ve?O(Y,H,K,ae):null;case $:return K.key===ve?G(Y,H,K,ae):null;case B:return ve=K._init,re(Y,H,ve(K._payload),ae)}if(rt(K)||z(K))return ve!==null?null:oe(Y,H,K,ae,null);ds(Y,K)}return null}function de(Y,H,K,ae,ve){if(typeof ae=="string"&&ae!==""||typeof ae=="number")return Y=Y.get(K)||null,T(H,Y,""+ae,ve);if(typeof ae=="object"&&ae!==null){switch(ae.$$typeof){case F:return Y=Y.get(ae.key===null?K:ae.key)||null,O(H,Y,ae,ve);case $:return Y=Y.get(ae.key===null?K:ae.key)||null,G(H,Y,ae,ve);case B:var ke=ae._init;return de(Y,H,K,ke(ae._payload),ve)}if(rt(ae)||z(ae))return Y=Y.get(K)||null,oe(H,Y,ae,ve,null);ds(H,ae)}return null}function me(Y,H,K,ae){for(var ve=null,ke=null,Ee=H,Ce=H=0,st=null;Ee!==null&&Ce<K.length;Ce++){Ee.index>Ce?(st=Ee,Ee=null):st=Ee.sibling;var be=re(Y,Ee,K[Ce],ae);if(be===null){Ee===null&&(Ee=st);break}e&&Ee&&be.alternate===null&&n(Y,Ee),H=p(be,H,Ce),ke===null?ve=be:ke.sibling=be,ke=be,Ee=st}if(Ce===K.length)return o(Y,Ee),Fe&&lr(Y,Ce),ve;if(Ee===null){for(;Ce<K.length;Ce++)Ee=se(Y,K[Ce],ae),Ee!==null&&(H=p(Ee,H,Ce),ke===null?ve=Ee:ke.sibling=Ee,ke=Ee);return Fe&&lr(Y,Ce),ve}for(Ee=s(Y,Ee);Ce<K.length;Ce++)st=de(Ee,Y,Ce,K[Ce],ae),st!==null&&(e&&st.alternate!==null&&Ee.delete(st.key===null?Ce:st.key),H=p(st,H,Ce),ke===null?ve=st:ke.sibling=st,ke=st);return e&&Ee.forEach(function(Wn){return n(Y,Wn)}),Fe&&lr(Y,Ce),ve}function ye(Y,H,K,ae){var ve=z(K);if(typeof ve!="function")throw Error(i(150));if(K=ve.call(K),K==null)throw Error(i(151));for(var ke=ve=null,Ee=H,Ce=H=0,st=null,be=K.next();Ee!==null&&!be.done;Ce++,be=K.next()){Ee.index>Ce?(st=Ee,Ee=null):st=Ee.sibling;var Wn=re(Y,Ee,be.value,ae);if(Wn===null){Ee===null&&(Ee=st);break}e&&Ee&&Wn.alternate===null&&n(Y,Ee),H=p(Wn,H,Ce),ke===null?ve=Wn:ke.sibling=Wn,ke=Wn,Ee=st}if(be.done)return o(Y,Ee),Fe&&lr(Y,Ce),ve;if(Ee===null){for(;!be.done;Ce++,be=K.next())be=se(Y,be.value,ae),be!==null&&(H=p(be,H,Ce),ke===null?ve=be:ke.sibling=be,ke=be);return Fe&&lr(Y,Ce),ve}for(Ee=s(Y,Ee);!be.done;Ce++,be=K.next())be=de(Ee,Y,Ce,be.value,ae),be!==null&&(e&&be.alternate!==null&&Ee.delete(be.key===null?Ce:be.key),H=p(be,H,Ce),ke===null?ve=be:ke.sibling=be,ke=be);return e&&Ee.forEach(function(V0){return n(Y,V0)}),Fe&&lr(Y,Ce),ve}function Ke(Y,H,K,ae){if(typeof K=="object"&&K!==null&&K.type===V&&K.key===null&&(K=K.props.children),typeof K=="object"&&K!==null){switch(K.$$typeof){case F:e:{for(var ve=K.key,ke=H;ke!==null;){if(ke.key===ve){if(ve=K.type,ve===V){if(ke.tag===7){o(Y,ke.sibling),H=f(ke,K.props.children),H.return=Y,Y=H;break e}}else if(ke.elementType===ve||typeof ve=="object"&&ve!==null&&ve.$$typeof===B&&xf(ve)===ke.type){o(Y,ke.sibling),H=f(ke,K.props),H.ref=Wo(Y,ke,K),H.return=Y,Y=H;break e}o(Y,ke);break}else n(Y,ke);ke=ke.sibling}K.type===V?(H=gr(K.props.children,Y.mode,ae,K.key),H.return=Y,Y=H):(ae=Ds(K.type,K.key,K.props,null,Y.mode,ae),ae.ref=Wo(Y,H,K),ae.return=Y,Y=ae)}return S(Y);case $:e:{for(ke=K.key;H!==null;){if(H.key===ke)if(H.tag===4&&H.stateNode.containerInfo===K.containerInfo&&H.stateNode.implementation===K.implementation){o(Y,H.sibling),H=f(H,K.children||[]),H.return=Y,Y=H;break e}else{o(Y,H);break}else n(Y,H);H=H.sibling}H=hu(K,Y.mode,ae),H.return=Y,Y=H}return S(Y);case B:return ke=K._init,Ke(Y,H,ke(K._payload),ae)}if(rt(K))return me(Y,H,K,ae);if(z(K))return ye(Y,H,K,ae);ds(Y,K)}return typeof K=="string"&&K!==""||typeof K=="number"?(K=""+K,H!==null&&H.tag===6?(o(Y,H.sibling),H=f(H,K),H.return=Y,Y=H):(o(Y,H),H=pu(K,Y.mode,ae),H.return=Y,Y=H),S(Y)):o(Y,H)}return Ke}var Xr=wf(!0),_f=wf(!1),ps=bn(null),hs=null,Kr=null,ka=null;function Ea(){ka=Kr=hs=null}function Na(e){var n=ps.current;$e(ps),e._currentValue=n}function Ca(e,n,o){for(;e!==null;){var s=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,s!==null&&(s.childLanes|=n)):s!==null&&(s.childLanes&n)!==n&&(s.childLanes|=n),e===o)break;e=e.return}}function Qr(e,n){hs=e,ka=Kr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&n)!==0&&(kt=!0),e.firstContext=null)}function Ht(e){var n=e._currentValue;if(ka!==e)if(e={context:e,memoizedValue:n,next:null},Kr===null){if(hs===null)throw Error(i(308));Kr=e,hs.dependencies={lanes:0,firstContext:e}}else Kr=Kr.next=e;return n}var ar=null;function Ma(e){ar===null?ar=[e]:ar.push(e)}function Sf(e,n,o,s){var f=n.interleaved;return f===null?(o.next=o,Ma(n)):(o.next=f.next,f.next=o),n.interleaved=o,vn(e,s)}function vn(e,n){e.lanes|=n;var o=e.alternate;for(o!==null&&(o.lanes|=n),o=e,e=e.return;e!==null;)e.childLanes|=n,o=e.alternate,o!==null&&(o.childLanes|=n),o=e,e=e.return;return o.tag===3?o.stateNode:null}var An=!1;function ja(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function kf(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function xn(e,n){return{eventTime:e,lane:n,tag:0,payload:null,callback:null,next:null}}function $n(e,n,o){var s=e.updateQueue;if(s===null)return null;if(s=s.shared,(Re&2)!==0){var f=s.pending;return f===null?n.next=n:(n.next=f.next,f.next=n),s.pending=n,vn(e,o)}return f=s.interleaved,f===null?(n.next=n,Ma(s)):(n.next=f.next,f.next=n),s.interleaved=n,vn(e,o)}function gs(e,n,o){if(n=n.updateQueue,n!==null&&(n=n.shared,(o&4194240)!==0)){var s=n.lanes;s&=e.pendingLanes,o|=s,n.lanes=o,zr(e,o)}}function Ef(e,n){var o=e.updateQueue,s=e.alternate;if(s!==null&&(s=s.updateQueue,o===s)){var f=null,p=null;if(o=o.firstBaseUpdate,o!==null){do{var S={eventTime:o.eventTime,lane:o.lane,tag:o.tag,payload:o.payload,callback:o.callback,next:null};p===null?f=p=S:p=p.next=S,o=o.next}while(o!==null);p===null?f=p=n:p=p.next=n}else f=p=n;o={baseState:s.baseState,firstBaseUpdate:f,lastBaseUpdate:p,shared:s.shared,effects:s.effects},e.updateQueue=o;return}e=o.lastBaseUpdate,e===null?o.firstBaseUpdate=n:e.next=n,o.lastBaseUpdate=n}function ms(e,n,o,s){var f=e.updateQueue;An=!1;var p=f.firstBaseUpdate,S=f.lastBaseUpdate,T=f.shared.pending;if(T!==null){f.shared.pending=null;var O=T,G=O.next;O.next=null,S===null?p=G:S.next=G,S=O;var oe=e.alternate;oe!==null&&(oe=oe.updateQueue,T=oe.lastBaseUpdate,T!==S&&(T===null?oe.firstBaseUpdate=G:T.next=G,oe.lastBaseUpdate=O))}if(p!==null){var se=f.baseState;S=0,oe=G=O=null,T=p;do{var re=T.lane,de=T.eventTime;if((s&re)===re){oe!==null&&(oe=oe.next={eventTime:de,lane:0,tag:T.tag,payload:T.payload,callback:T.callback,next:null});e:{var me=e,ye=T;switch(re=n,de=o,ye.tag){case 1:if(me=ye.payload,typeof me=="function"){se=me.call(de,se,re);break e}se=me;break e;case 3:me.flags=me.flags&-65537|128;case 0:if(me=ye.payload,re=typeof me=="function"?me.call(de,se,re):me,re==null)break e;se=A({},se,re);break e;case 2:An=!0}}T.callback!==null&&T.lane!==0&&(e.flags|=64,re=f.effects,re===null?f.effects=[T]:re.push(T))}else de={eventTime:de,lane:re,tag:T.tag,payload:T.payload,callback:T.callback,next:null},oe===null?(G=oe=de,O=se):oe=oe.next=de,S|=re;if(T=T.next,T===null){if(T=f.shared.pending,T===null)break;re=T,T=re.next,re.next=null,f.lastBaseUpdate=re,f.shared.pending=null}}while(!0);if(oe===null&&(O=se),f.baseState=O,f.firstBaseUpdate=G,f.lastBaseUpdate=oe,n=f.shared.interleaved,n!==null){f=n;do S|=f.lane,f=f.next;while(f!==n)}else p===null&&(f.shared.lanes=0);fr|=S,e.lanes=S,e.memoizedState=se}}function Nf(e,n,o){if(e=n.effects,n.effects=null,e!==null)for(n=0;n<e.length;n++){var s=e[n],f=s.callback;if(f!==null){if(s.callback=null,s=o,typeof f!="function")throw Error(i(191,f));f.call(s)}}}var Yo={},ln=bn(Yo),Xo=bn(Yo),Ko=bn(Yo);function ur(e){if(e===Yo)throw Error(i(174));return e}function Pa(e,n){switch(De(Ko,n),De(Xo,e),De(ln,Yo),e=n.nodeType,e){case 9:case 11:n=(n=n.documentElement)?n.namespaceURI:gt(null,"");break;default:e=e===8?n.parentNode:n,n=e.namespaceURI||null,e=e.tagName,n=gt(n,e)}$e(ln),De(ln,n)}function Gr(){$e(ln),$e(Xo),$e(Ko)}function Cf(e){ur(Ko.current);var n=ur(ln.current),o=gt(n,e.type);n!==o&&(De(Xo,e),De(ln,o))}function Ia(e){Xo.current===e&&($e(ln),$e(Xo))}var Be=bn(0);function ys(e){for(var n=e;n!==null;){if(n.tag===13){var o=n.memoizedState;if(o!==null&&(o=o.dehydrated,o===null||o.data==="$?"||o.data==="$!"))return n}else if(n.tag===19&&n.memoizedProps.revealOrder!==void 0){if((n.flags&128)!==0)return n}else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var Ta=[];function Ra(){for(var e=0;e<Ta.length;e++)Ta[e]._workInProgressVersionPrimary=null;Ta.length=0}var vs=M.ReactCurrentDispatcher,za=M.ReactCurrentBatchConfig,cr=0,Ue=null,Je=null,ot=null,xs=!1,Qo=!1,Go=0,c0=0;function dt(){throw Error(i(321))}function ba(e,n){if(n===null)return!1;for(var o=0;o<n.length&&o<e.length;o++)if(!Wt(e[o],n[o]))return!1;return!0}function La(e,n,o,s,f,p){if(cr=p,Ue=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,vs.current=e===null||e.memoizedState===null?h0:g0,e=o(s,f),Qo){p=0;do{if(Qo=!1,Go=0,25<=p)throw Error(i(301));p+=1,ot=Je=null,n.updateQueue=null,vs.current=m0,e=o(s,f)}while(Qo)}if(vs.current=Ss,n=Je!==null&&Je.next!==null,cr=0,ot=Je=Ue=null,xs=!1,n)throw Error(i(300));return e}function Da(){var e=Go!==0;return Go=0,e}function an(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return ot===null?Ue.memoizedState=ot=e:ot=ot.next=e,ot}function Vt(){if(Je===null){var e=Ue.alternate;e=e!==null?e.memoizedState:null}else e=Je.next;var n=ot===null?Ue.memoizedState:ot.next;if(n!==null)ot=n,Je=e;else{if(e===null)throw Error(i(310));Je=e,e={memoizedState:Je.memoizedState,baseState:Je.baseState,baseQueue:Je.baseQueue,queue:Je.queue,next:null},ot===null?Ue.memoizedState=ot=e:ot=ot.next=e}return ot}function qo(e,n){return typeof n=="function"?n(e):n}function Aa(e){var n=Vt(),o=n.queue;if(o===null)throw Error(i(311));o.lastRenderedReducer=e;var s=Je,f=s.baseQueue,p=o.pending;if(p!==null){if(f!==null){var S=f.next;f.next=p.next,p.next=S}s.baseQueue=f=p,o.pending=null}if(f!==null){p=f.next,s=s.baseState;var T=S=null,O=null,G=p;do{var oe=G.lane;if((cr&oe)===oe)O!==null&&(O=O.next={lane:0,action:G.action,hasEagerState:G.hasEagerState,eagerState:G.eagerState,next:null}),s=G.hasEagerState?G.eagerState:e(s,G.action);else{var se={lane:oe,action:G.action,hasEagerState:G.hasEagerState,eagerState:G.eagerState,next:null};O===null?(T=O=se,S=s):O=O.next=se,Ue.lanes|=oe,fr|=oe}G=G.next}while(G!==null&&G!==p);O===null?S=s:O.next=T,Wt(s,n.memoizedState)||(kt=!0),n.memoizedState=s,n.baseState=S,n.baseQueue=O,o.lastRenderedState=s}if(e=o.interleaved,e!==null){f=e;do p=f.lane,Ue.lanes|=p,fr|=p,f=f.next;while(f!==e)}else f===null&&(o.lanes=0);return[n.memoizedState,o.dispatch]}function $a(e){var n=Vt(),o=n.queue;if(o===null)throw Error(i(311));o.lastRenderedReducer=e;var s=o.dispatch,f=o.pending,p=n.memoizedState;if(f!==null){o.pending=null;var S=f=f.next;do p=e(p,S.action),S=S.next;while(S!==f);Wt(p,n.memoizedState)||(kt=!0),n.memoizedState=p,n.baseQueue===null&&(n.baseState=p),o.lastRenderedState=p}return[p,s]}function Mf(){}function jf(e,n){var o=Ue,s=Vt(),f=n(),p=!Wt(s.memoizedState,f);if(p&&(s.memoizedState=f,kt=!0),s=s.queue,Oa(Tf.bind(null,o,s,e),[e]),s.getSnapshot!==n||p||ot!==null&&ot.memoizedState.tag&1){if(o.flags|=2048,Zo(9,If.bind(null,o,s,f,n),void 0,null),it===null)throw Error(i(349));(cr&30)!==0||Pf(o,n,f)}return f}function Pf(e,n,o){e.flags|=16384,e={getSnapshot:n,value:o},n=Ue.updateQueue,n===null?(n={lastEffect:null,stores:null},Ue.updateQueue=n,n.stores=[e]):(o=n.stores,o===null?n.stores=[e]:o.push(e))}function If(e,n,o,s){n.value=o,n.getSnapshot=s,Rf(n)&&zf(e)}function Tf(e,n,o){return o(function(){Rf(n)&&zf(e)})}function Rf(e){var n=e.getSnapshot;e=e.value;try{var o=n();return!Wt(e,o)}catch{return!0}}function zf(e){var n=vn(e,1);n!==null&&Gt(n,e,1,-1)}function bf(e){var n=an();return typeof e=="function"&&(e=e()),n.memoizedState=n.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:qo,lastRenderedState:e},n.queue=e,e=e.dispatch=p0.bind(null,Ue,e),[n.memoizedState,e]}function Zo(e,n,o,s){return e={tag:e,create:n,destroy:o,deps:s,next:null},n=Ue.updateQueue,n===null?(n={lastEffect:null,stores:null},Ue.updateQueue=n,n.lastEffect=e.next=e):(o=n.lastEffect,o===null?n.lastEffect=e.next=e:(s=o.next,o.next=e,e.next=s,n.lastEffect=e)),e}function Lf(){return Vt().memoizedState}function ws(e,n,o,s){var f=an();Ue.flags|=e,f.memoizedState=Zo(1|n,o,void 0,s===void 0?null:s)}function _s(e,n,o,s){var f=Vt();s=s===void 0?null:s;var p=void 0;if(Je!==null){var S=Je.memoizedState;if(p=S.destroy,s!==null&&ba(s,S.deps)){f.memoizedState=Zo(n,o,p,s);return}}Ue.flags|=e,f.memoizedState=Zo(1|n,o,p,s)}function Df(e,n){return ws(8390656,8,e,n)}function Oa(e,n){return _s(2048,8,e,n)}function Af(e,n){return _s(4,2,e,n)}function $f(e,n){return _s(4,4,e,n)}function Of(e,n){if(typeof n=="function")return e=e(),n(e),function(){n(null)};if(n!=null)return e=e(),n.current=e,function(){n.current=null}}function Ff(e,n,o){return o=o!=null?o.concat([e]):null,_s(4,4,Of.bind(null,n,e),o)}function Fa(){}function Hf(e,n){var o=Vt();n=n===void 0?null:n;var s=o.memoizedState;return s!==null&&n!==null&&ba(n,s[1])?s[0]:(o.memoizedState=[e,n],e)}function Vf(e,n){var o=Vt();n=n===void 0?null:n;var s=o.memoizedState;return s!==null&&n!==null&&ba(n,s[1])?s[0]:(e=e(),o.memoizedState=[e,n],e)}function Bf(e,n,o){return(cr&21)===0?(e.baseState&&(e.baseState=!1,kt=!0),e.memoizedState=o):(Wt(o,n)||(o=Bi(),Ue.lanes|=o,fr|=o,e.baseState=!0),n)}function f0(e,n){var o=Le;Le=o!==0&&4>o?o:4,e(!0);var s=za.transition;za.transition={};try{e(!1),n()}finally{Le=o,za.transition=s}}function Uf(){return Vt().memoizedState}function d0(e,n,o){var s=Vn(e);if(o={lane:s,action:o,hasEagerState:!1,eagerState:null,next:null},Wf(e))Yf(n,o);else if(o=Sf(e,n,o,s),o!==null){var f=vt();Gt(o,e,s,f),Xf(o,n,s)}}function p0(e,n,o){var s=Vn(e),f={lane:s,action:o,hasEagerState:!1,eagerState:null,next:null};if(Wf(e))Yf(n,f);else{var p=e.alternate;if(e.lanes===0&&(p===null||p.lanes===0)&&(p=n.lastRenderedReducer,p!==null))try{var S=n.lastRenderedState,T=p(S,o);if(f.hasEagerState=!0,f.eagerState=T,Wt(T,S)){var O=n.interleaved;O===null?(f.next=f,Ma(n)):(f.next=O.next,O.next=f),n.interleaved=f;return}}catch{}finally{}o=Sf(e,n,f,s),o!==null&&(f=vt(),Gt(o,e,s,f),Xf(o,n,s))}}function Wf(e){var n=e.alternate;return e===Ue||n!==null&&n===Ue}function Yf(e,n){Qo=xs=!0;var o=e.pending;o===null?n.next=n:(n.next=o.next,o.next=n),e.pending=n}function Xf(e,n,o){if((o&4194240)!==0){var s=n.lanes;s&=e.pendingLanes,o|=s,n.lanes=o,zr(e,o)}}var Ss={readContext:Ht,useCallback:dt,useContext:dt,useEffect:dt,useImperativeHandle:dt,useInsertionEffect:dt,useLayoutEffect:dt,useMemo:dt,useReducer:dt,useRef:dt,useState:dt,useDebugValue:dt,useDeferredValue:dt,useTransition:dt,useMutableSource:dt,useSyncExternalStore:dt,useId:dt,unstable_isNewReconciler:!1},h0={readContext:Ht,useCallback:function(e,n){return an().memoizedState=[e,n===void 0?null:n],e},useContext:Ht,useEffect:Df,useImperativeHandle:function(e,n,o){return o=o!=null?o.concat([e]):null,ws(4194308,4,Of.bind(null,n,e),o)},useLayoutEffect:function(e,n){return ws(4194308,4,e,n)},useInsertionEffect:function(e,n){return ws(4,2,e,n)},useMemo:function(e,n){var o=an();return n=n===void 0?null:n,e=e(),o.memoizedState=[e,n],e},useReducer:function(e,n,o){var s=an();return n=o!==void 0?o(n):n,s.memoizedState=s.baseState=n,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},s.queue=e,e=e.dispatch=d0.bind(null,Ue,e),[s.memoizedState,e]},useRef:function(e){var n=an();return e={current:e},n.memoizedState=e},useState:bf,useDebugValue:Fa,useDeferredValue:function(e){return an().memoizedState=e},useTransition:function(){var e=bf(!1),n=e[0];return e=f0.bind(null,e[1]),an().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,o){var s=Ue,f=an();if(Fe){if(o===void 0)throw Error(i(407));o=o()}else{if(o=n(),it===null)throw Error(i(349));(cr&30)!==0||Pf(s,n,o)}f.memoizedState=o;var p={value:o,getSnapshot:n};return f.queue=p,Df(Tf.bind(null,s,p,e),[e]),s.flags|=2048,Zo(9,If.bind(null,s,p,o,n),void 0,null),o},useId:function(){var e=an(),n=it.identifierPrefix;if(Fe){var o=yn,s=mn;o=(s&~(1<<32-It(s)-1)).toString(32)+o,n=":"+n+"R"+o,o=Go++,0<o&&(n+="H"+o.toString(32)),n+=":"}else o=c0++,n=":"+n+"r"+o.toString(32)+":";return e.memoizedState=n},unstable_isNewReconciler:!1},g0={readContext:Ht,useCallback:Hf,useContext:Ht,useEffect:Oa,useImperativeHandle:Ff,useInsertionEffect:Af,useLayoutEffect:$f,useMemo:Vf,useReducer:Aa,useRef:Lf,useState:function(){return Aa(qo)},useDebugValue:Fa,useDeferredValue:function(e){var n=Vt();return Bf(n,Je.memoizedState,e)},useTransition:function(){var e=Aa(qo)[0],n=Vt().memoizedState;return[e,n]},useMutableSource:Mf,useSyncExternalStore:jf,useId:Uf,unstable_isNewReconciler:!1},m0={readContext:Ht,useCallback:Hf,useContext:Ht,useEffect:Oa,useImperativeHandle:Ff,useInsertionEffect:Af,useLayoutEffect:$f,useMemo:Vf,useReducer:$a,useRef:Lf,useState:function(){return $a(qo)},useDebugValue:Fa,useDeferredValue:function(e){var n=Vt();return Je===null?n.memoizedState=e:Bf(n,Je.memoizedState,e)},useTransition:function(){var e=$a(qo)[0],n=Vt().memoizedState;return[e,n]},useMutableSource:Mf,useSyncExternalStore:jf,useId:Uf,unstable_isNewReconciler:!1};function Xt(e,n){if(e&&e.defaultProps){n=A({},n),e=e.defaultProps;for(var o in e)n[o]===void 0&&(n[o]=e[o]);return n}return n}function Ha(e,n,o,s){n=e.memoizedState,o=o(s,n),o=o==null?n:A({},n,o),e.memoizedState=o,e.lanes===0&&(e.updateQueue.baseState=o)}var ks={isMounted:function(e){return(e=e._reactInternals)?on(e)===e:!1},enqueueSetState:function(e,n,o){e=e._reactInternals;var s=vt(),f=Vn(e),p=xn(s,f);p.payload=n,o!=null&&(p.callback=o),n=$n(e,p,f),n!==null&&(Gt(n,e,f,s),gs(n,e,f))},enqueueReplaceState:function(e,n,o){e=e._reactInternals;var s=vt(),f=Vn(e),p=xn(s,f);p.tag=1,p.payload=n,o!=null&&(p.callback=o),n=$n(e,p,f),n!==null&&(Gt(n,e,f,s),gs(n,e,f))},enqueueForceUpdate:function(e,n){e=e._reactInternals;var o=vt(),s=Vn(e),f=xn(o,s);f.tag=2,n!=null&&(f.callback=n),n=$n(e,f,s),n!==null&&(Gt(n,e,s,o),gs(n,e,s))}};function Kf(e,n,o,s,f,p,S){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(s,p,S):n.prototype&&n.prototype.isPureReactComponent?!$o(o,s)||!$o(f,p):!0}function Qf(e,n,o){var s=!1,f=Ln,p=n.contextType;return typeof p=="object"&&p!==null?p=Ht(p):(f=St(n)?ir:ft.current,s=n.contextTypes,p=(s=s!=null)?Br(e,f):Ln),n=new n(o,p),e.memoizedState=n.state!==null&&n.state!==void 0?n.state:null,n.updater=ks,e.stateNode=n,n._reactInternals=e,s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=f,e.__reactInternalMemoizedMaskedChildContext=p),n}function Gf(e,n,o,s){e=n.state,typeof n.componentWillReceiveProps=="function"&&n.componentWillReceiveProps(o,s),typeof n.UNSAFE_componentWillReceiveProps=="function"&&n.UNSAFE_componentWillReceiveProps(o,s),n.state!==e&&ks.enqueueReplaceState(n,n.state,null)}function Va(e,n,o,s){var f=e.stateNode;f.props=o,f.state=e.memoizedState,f.refs={},ja(e);var p=n.contextType;typeof p=="object"&&p!==null?f.context=Ht(p):(p=St(n)?ir:ft.current,f.context=Br(e,p)),f.state=e.memoizedState,p=n.getDerivedStateFromProps,typeof p=="function"&&(Ha(e,n,p,o),f.state=e.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof f.getSnapshotBeforeUpdate=="function"||typeof f.UNSAFE_componentWillMount!="function"&&typeof f.componentWillMount!="function"||(n=f.state,typeof f.componentWillMount=="function"&&f.componentWillMount(),typeof f.UNSAFE_componentWillMount=="function"&&f.UNSAFE_componentWillMount(),n!==f.state&&ks.enqueueReplaceState(f,f.state,null),ms(e,o,f,s),f.state=e.memoizedState),typeof f.componentDidMount=="function"&&(e.flags|=4194308)}function qr(e,n){try{var o="",s=n;do o+=le(s),s=s.return;while(s);var f=o}catch(p){f=`
+Error generating stack: `+p.message+`
+`+p.stack}return{value:e,source:n,stack:f,digest:null}}function Ba(e,n,o){return{value:e,source:null,stack:o??null,digest:n??null}}function Ua(e,n){try{console.error(n.value)}catch(o){setTimeout(function(){throw o})}}var y0=typeof WeakMap=="function"?WeakMap:Map;function qf(e,n,o){o=xn(-1,o),o.tag=3,o.payload={element:null};var s=n.value;return o.callback=function(){Is||(Is=!0,iu=s),Ua(e,n)},o}function Zf(e,n,o){o=xn(-1,o),o.tag=3;var s=e.type.getDerivedStateFromError;if(typeof s=="function"){var f=n.value;o.payload=function(){return s(f)},o.callback=function(){Ua(e,n)}}var p=e.stateNode;return p!==null&&typeof p.componentDidCatch=="function"&&(o.callback=function(){Ua(e,n),typeof s!="function"&&(Fn===null?Fn=new Set([this]):Fn.add(this));var S=n.stack;this.componentDidCatch(n.value,{componentStack:S!==null?S:""})}),o}function Jf(e,n,o){var s=e.pingCache;if(s===null){s=e.pingCache=new y0;var f=new Set;s.set(n,f)}else f=s.get(n),f===void 0&&(f=new Set,s.set(n,f));f.has(o)||(f.add(o),e=T0.bind(null,e,n,o),n.then(e,e))}function ed(e){do{var n;if((n=e.tag===13)&&(n=e.memoizedState,n=n!==null?n.dehydrated!==null:!0),n)return e;e=e.return}while(e!==null);return null}function td(e,n,o,s,f){return(e.mode&1)===0?(e===n?e.flags|=65536:(e.flags|=128,o.flags|=131072,o.flags&=-52805,o.tag===1&&(o.alternate===null?o.tag=17:(n=xn(-1,1),n.tag=2,$n(o,n,1))),o.lanes|=1),e):(e.flags|=65536,e.lanes=f,e)}var v0=M.ReactCurrentOwner,kt=!1;function yt(e,n,o,s){n.child=e===null?_f(n,null,o,s):Xr(n,e.child,o,s)}function nd(e,n,o,s,f){o=o.render;var p=n.ref;return Qr(n,f),s=La(e,n,o,s,p,f),o=Da(),e!==null&&!kt?(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~f,wn(e,n,f)):(Fe&&o&&va(n),n.flags|=1,yt(e,n,s,f),n.child)}function rd(e,n,o,s,f){if(e===null){var p=o.type;return typeof p=="function"&&!du(p)&&p.defaultProps===void 0&&o.compare===null&&o.defaultProps===void 0?(n.tag=15,n.type=p,od(e,n,p,s,f)):(e=Ds(o.type,null,s,n,n.mode,f),e.ref=n.ref,e.return=n,n.child=e)}if(p=e.child,(e.lanes&f)===0){var S=p.memoizedProps;if(o=o.compare,o=o!==null?o:$o,o(S,s)&&e.ref===n.ref)return wn(e,n,f)}return n.flags|=1,e=Un(p,s),e.ref=n.ref,e.return=n,n.child=e}function od(e,n,o,s,f){if(e!==null){var p=e.memoizedProps;if($o(p,s)&&e.ref===n.ref)if(kt=!1,n.pendingProps=s=p,(e.lanes&f)!==0)(e.flags&131072)!==0&&(kt=!0);else return n.lanes=e.lanes,wn(e,n,f)}return Wa(e,n,o,s,f)}function id(e,n,o){var s=n.pendingProps,f=s.children,p=e!==null?e.memoizedState:null;if(s.mode==="hidden")if((n.mode&1)===0)n.memoizedState={baseLanes:0,cachePool:null,transitions:null},De(Jr,bt),bt|=o;else{if((o&1073741824)===0)return e=p!==null?p.baseLanes|o:o,n.lanes=n.childLanes=1073741824,n.memoizedState={baseLanes:e,cachePool:null,transitions:null},n.updateQueue=null,De(Jr,bt),bt|=e,null;n.memoizedState={baseLanes:0,cachePool:null,transitions:null},s=p!==null?p.baseLanes:o,De(Jr,bt),bt|=s}else p!==null?(s=p.baseLanes|o,n.memoizedState=null):s=o,De(Jr,bt),bt|=s;return yt(e,n,f,o),n.child}function sd(e,n){var o=n.ref;(e===null&&o!==null||e!==null&&e.ref!==o)&&(n.flags|=512,n.flags|=2097152)}function Wa(e,n,o,s,f){var p=St(o)?ir:ft.current;return p=Br(n,p),Qr(n,f),o=La(e,n,o,s,p,f),s=Da(),e!==null&&!kt?(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~f,wn(e,n,f)):(Fe&&s&&va(n),n.flags|=1,yt(e,n,o,f),n.child)}function ld(e,n,o,s,f){if(St(o)){var p=!0;ls(n)}else p=!1;if(Qr(n,f),n.stateNode===null)Ns(e,n),Qf(n,o,s),Va(n,o,s,f),s=!0;else if(e===null){var S=n.stateNode,T=n.memoizedProps;S.props=T;var O=S.context,G=o.contextType;typeof G=="object"&&G!==null?G=Ht(G):(G=St(o)?ir:ft.current,G=Br(n,G));var oe=o.getDerivedStateFromProps,se=typeof oe=="function"||typeof S.getSnapshotBeforeUpdate=="function";se||typeof S.UNSAFE_componentWillReceiveProps!="function"&&typeof S.componentWillReceiveProps!="function"||(T!==s||O!==G)&&Gf(n,S,s,G),An=!1;var re=n.memoizedState;S.state=re,ms(n,s,S,f),O=n.memoizedState,T!==s||re!==O||_t.current||An?(typeof oe=="function"&&(Ha(n,o,oe,s),O=n.memoizedState),(T=An||Kf(n,o,T,s,re,O,G))?(se||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"&&(n.flags|=4194308)):(typeof S.componentDidMount=="function"&&(n.flags|=4194308),n.memoizedProps=s,n.memoizedState=O),S.props=s,S.state=O,S.context=G,s=T):(typeof S.componentDidMount=="function"&&(n.flags|=4194308),s=!1)}else{S=n.stateNode,kf(e,n),T=n.memoizedProps,G=n.type===n.elementType?T:Xt(n.type,T),S.props=G,se=n.pendingProps,re=S.context,O=o.contextType,typeof O=="object"&&O!==null?O=Ht(O):(O=St(o)?ir:ft.current,O=Br(n,O));var de=o.getDerivedStateFromProps;(oe=typeof de=="function"||typeof S.getSnapshotBeforeUpdate=="function")||typeof S.UNSAFE_componentWillReceiveProps!="function"&&typeof S.componentWillReceiveProps!="function"||(T!==se||re!==O)&&Gf(n,S,s,O),An=!1,re=n.memoizedState,S.state=re,ms(n,s,S,f);var me=n.memoizedState;T!==se||re!==me||_t.current||An?(typeof de=="function"&&(Ha(n,o,de,s),me=n.memoizedState),(G=An||Kf(n,o,G,s,re,me,O)||!1)?(oe||typeof S.UNSAFE_componentWillUpdate!="function"&&typeof S.componentWillUpdate!="function"||(typeof S.componentWillUpdate=="function"&&S.componentWillUpdate(s,me,O),typeof S.UNSAFE_componentWillUpdate=="function"&&S.UNSAFE_componentWillUpdate(s,me,O)),typeof S.componentDidUpdate=="function"&&(n.flags|=4),typeof S.getSnapshotBeforeUpdate=="function"&&(n.flags|=1024)):(typeof S.componentDidUpdate!="function"||T===e.memoizedProps&&re===e.memoizedState||(n.flags|=4),typeof S.getSnapshotBeforeUpdate!="function"||T===e.memoizedProps&&re===e.memoizedState||(n.flags|=1024),n.memoizedProps=s,n.memoizedState=me),S.props=s,S.state=me,S.context=O,s=G):(typeof S.componentDidUpdate!="function"||T===e.memoizedProps&&re===e.memoizedState||(n.flags|=4),typeof S.getSnapshotBeforeUpdate!="function"||T===e.memoizedProps&&re===e.memoizedState||(n.flags|=1024),s=!1)}return Ya(e,n,o,s,p,f)}function Ya(e,n,o,s,f,p){sd(e,n);var S=(n.flags&128)!==0;if(!s&&!S)return f&&df(n,o,!1),wn(e,n,p);s=n.stateNode,v0.current=n;var T=S&&typeof o.getDerivedStateFromError!="function"?null:s.render();return n.flags|=1,e!==null&&S?(n.child=Xr(n,e.child,null,p),n.child=Xr(n,null,T,p)):yt(e,n,T,p),n.memoizedState=s.state,f&&df(n,o,!0),n.child}function ad(e){var n=e.stateNode;n.pendingContext?cf(e,n.pendingContext,n.pendingContext!==n.context):n.context&&cf(e,n.context,!1),Pa(e,n.containerInfo)}function ud(e,n,o,s,f){return Yr(),Sa(f),n.flags|=256,yt(e,n,o,s),n.child}var Xa={dehydrated:null,treeContext:null,retryLane:0};function Ka(e){return{baseLanes:e,cachePool:null,transitions:null}}function cd(e,n,o){var s=n.pendingProps,f=Be.current,p=!1,S=(n.flags&128)!==0,T;if((T=S)||(T=e!==null&&e.memoizedState===null?!1:(f&2)!==0),T?(p=!0,n.flags&=-129):(e===null||e.memoizedState!==null)&&(f|=1),De(Be,f&1),e===null)return _a(n),e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((n.mode&1)===0?n.lanes=1:e.data==="$!"?n.lanes=8:n.lanes=1073741824,null):(S=s.children,e=s.fallback,p?(s=n.mode,p=n.child,S={mode:"hidden",children:S},(s&1)===0&&p!==null?(p.childLanes=0,p.pendingProps=S):p=As(S,s,0,null),e=gr(e,s,o,null),p.return=n,e.return=n,p.sibling=e,n.child=p,n.child.memoizedState=Ka(o),n.memoizedState=Xa,e):Qa(n,S));if(f=e.memoizedState,f!==null&&(T=f.dehydrated,T!==null))return x0(e,n,S,s,T,f,o);if(p){p=s.fallback,S=n.mode,f=e.child,T=f.sibling;var O={mode:"hidden",children:s.children};return(S&1)===0&&n.child!==f?(s=n.child,s.childLanes=0,s.pendingProps=O,n.deletions=null):(s=Un(f,O),s.subtreeFlags=f.subtreeFlags&14680064),T!==null?p=Un(T,p):(p=gr(p,S,o,null),p.flags|=2),p.return=n,s.return=n,s.sibling=p,n.child=s,s=p,p=n.child,S=e.child.memoizedState,S=S===null?Ka(o):{baseLanes:S.baseLanes|o,cachePool:null,transitions:S.transitions},p.memoizedState=S,p.childLanes=e.childLanes&~o,n.memoizedState=Xa,s}return p=e.child,e=p.sibling,s=Un(p,{mode:"visible",children:s.children}),(n.mode&1)===0&&(s.lanes=o),s.return=n,s.sibling=null,e!==null&&(o=n.deletions,o===null?(n.deletions=[e],n.flags|=16):o.push(e)),n.child=s,n.memoizedState=null,s}function Qa(e,n){return n=As({mode:"visible",children:n},e.mode,0,null),n.return=e,e.child=n}function Es(e,n,o,s){return s!==null&&Sa(s),Xr(n,e.child,null,o),e=Qa(n,n.pendingProps.children),e.flags|=2,n.memoizedState=null,e}function x0(e,n,o,s,f,p,S){if(o)return n.flags&256?(n.flags&=-257,s=Ba(Error(i(422))),Es(e,n,S,s)):n.memoizedState!==null?(n.child=e.child,n.flags|=128,null):(p=s.fallback,f=n.mode,s=As({mode:"visible",children:s.children},f,0,null),p=gr(p,f,S,null),p.flags|=2,s.return=n,p.return=n,s.sibling=p,n.child=s,(n.mode&1)!==0&&Xr(n,e.child,null,S),n.child.memoizedState=Ka(S),n.memoizedState=Xa,p);if((n.mode&1)===0)return Es(e,n,S,null);if(f.data==="$!"){if(s=f.nextSibling&&f.nextSibling.dataset,s)var T=s.dgst;return s=T,p=Error(i(419)),s=Ba(p,s,void 0),Es(e,n,S,s)}if(T=(S&e.childLanes)!==0,kt||T){if(s=it,s!==null){switch(S&-S){case 4:f=2;break;case 16:f=8;break;case 64: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:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:f=32;break;case 536870912:f=268435456;break;default:f=0}f=(f&(s.suspendedLanes|S))!==0?0:f,f!==0&&f!==p.retryLane&&(p.retryLane=f,vn(e,f),Gt(s,e,f,-1))}return fu(),s=Ba(Error(i(421))),Es(e,n,S,s)}return f.data==="$?"?(n.flags|=128,n.child=e.child,n=R0.bind(null,e),f._reactRetry=n,null):(e=p.treeContext,zt=zn(f.nextSibling),Rt=n,Fe=!0,Yt=null,e!==null&&(Ot[Ft++]=mn,Ot[Ft++]=yn,Ot[Ft++]=sr,mn=e.id,yn=e.overflow,sr=n),n=Qa(n,s.children),n.flags|=4096,n)}function fd(e,n,o){e.lanes|=n;var s=e.alternate;s!==null&&(s.lanes|=n),Ca(e.return,n,o)}function Ga(e,n,o,s,f){var p=e.memoizedState;p===null?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:s,tail:o,tailMode:f}:(p.isBackwards=n,p.rendering=null,p.renderingStartTime=0,p.last=s,p.tail=o,p.tailMode=f)}function dd(e,n,o){var s=n.pendingProps,f=s.revealOrder,p=s.tail;if(yt(e,n,s.children,o),s=Be.current,(s&2)!==0)s=s&1|2,n.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=n.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&fd(e,o,n);else if(e.tag===19)fd(e,o,n);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===n)break e;for(;e.sibling===null;){if(e.return===null||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}s&=1}if(De(Be,s),(n.mode&1)===0)n.memoizedState=null;else switch(f){case"forwards":for(o=n.child,f=null;o!==null;)e=o.alternate,e!==null&&ys(e)===null&&(f=o),o=o.sibling;o=f,o===null?(f=n.child,n.child=null):(f=o.sibling,o.sibling=null),Ga(n,!1,f,o,p);break;case"backwards":for(o=null,f=n.child,n.child=null;f!==null;){if(e=f.alternate,e!==null&&ys(e)===null){n.child=f;break}e=f.sibling,f.sibling=o,o=f,f=e}Ga(n,!0,o,null,p);break;case"together":Ga(n,!1,null,null,void 0);break;default:n.memoizedState=null}return n.child}function Ns(e,n){(n.mode&1)===0&&e!==null&&(e.alternate=null,n.alternate=null,n.flags|=2)}function wn(e,n,o){if(e!==null&&(n.dependencies=e.dependencies),fr|=n.lanes,(o&n.childLanes)===0)return null;if(e!==null&&n.child!==e.child)throw Error(i(153));if(n.child!==null){for(e=n.child,o=Un(e,e.pendingProps),n.child=o,o.return=n;e.sibling!==null;)e=e.sibling,o=o.sibling=Un(e,e.pendingProps),o.return=n;o.sibling=null}return n.child}function w0(e,n,o){switch(n.tag){case 3:ad(n),Yr();break;case 5:Cf(n);break;case 1:St(n.type)&&ls(n);break;case 4:Pa(n,n.stateNode.containerInfo);break;case 10:var s=n.type._context,f=n.memoizedProps.value;De(ps,s._currentValue),s._currentValue=f;break;case 13:if(s=n.memoizedState,s!==null)return s.dehydrated!==null?(De(Be,Be.current&1),n.flags|=128,null):(o&n.child.childLanes)!==0?cd(e,n,o):(De(Be,Be.current&1),e=wn(e,n,o),e!==null?e.sibling:null);De(Be,Be.current&1);break;case 19:if(s=(o&n.childLanes)!==0,(e.flags&128)!==0){if(s)return dd(e,n,o);n.flags|=128}if(f=n.memoizedState,f!==null&&(f.rendering=null,f.tail=null,f.lastEffect=null),De(Be,Be.current),s)break;return null;case 22:case 23:return n.lanes=0,id(e,n,o)}return wn(e,n,o)}var pd,qa,hd,gd;pd=function(e,n){for(var o=n.child;o!==null;){if(o.tag===5||o.tag===6)e.appendChild(o.stateNode);else if(o.tag!==4&&o.child!==null){o.child.return=o,o=o.child;continue}if(o===n)break;for(;o.sibling===null;){if(o.return===null||o.return===n)return;o=o.return}o.sibling.return=o.return,o=o.sibling}},qa=function(){},hd=function(e,n,o,s){var f=e.memoizedProps;if(f!==s){e=n.stateNode,ur(ln.current);var p=null;switch(o){case"input":f=Ne(e,f),s=Ne(e,s),p=[];break;case"select":f=A({},f,{value:void 0}),s=A({},s,{value:void 0}),p=[];break;case"textarea":f=At(e,f),s=At(e,s),p=[];break;default:typeof f.onClick!="function"&&typeof s.onClick=="function"&&(e.onclick=os)}mo(o,s);var S;o=null;for(G in f)if(!s.hasOwnProperty(G)&&f.hasOwnProperty(G)&&f[G]!=null)if(G==="style"){var T=f[G];for(S in T)T.hasOwnProperty(S)&&(o||(o={}),o[S]="")}else G!=="dangerouslySetInnerHTML"&&G!=="children"&&G!=="suppressContentEditableWarning"&&G!=="suppressHydrationWarning"&&G!=="autoFocus"&&(a.hasOwnProperty(G)?p||(p=[]):(p=p||[]).push(G,null));for(G in s){var O=s[G];if(T=f!=null?f[G]:void 0,s.hasOwnProperty(G)&&O!==T&&(O!=null||T!=null))if(G==="style")if(T){for(S in T)!T.hasOwnProperty(S)||O&&O.hasOwnProperty(S)||(o||(o={}),o[S]="");for(S in O)O.hasOwnProperty(S)&&T[S]!==O[S]&&(o||(o={}),o[S]=O[S])}else o||(p||(p=[]),p.push(G,o)),o=O;else G==="dangerouslySetInnerHTML"?(O=O?O.__html:void 0,T=T?T.__html:void 0,O!=null&&T!==O&&(p=p||[]).push(G,O)):G==="children"?typeof O!="string"&&typeof O!="number"||(p=p||[]).push(G,""+O):G!=="suppressContentEditableWarning"&&G!=="suppressHydrationWarning"&&(a.hasOwnProperty(G)?(O!=null&&G==="onScroll"&&Ae("scroll",e),p||T===O||(p=[])):(p=p||[]).push(G,O))}o&&(p=p||[]).push("style",o);var G=p;(n.updateQueue=G)&&(n.flags|=4)}},gd=function(e,n,o,s){o!==s&&(n.flags|=4)};function Jo(e,n){if(!Fe)switch(e.tailMode){case"hidden":n=e.tail;for(var o=null;n!==null;)n.alternate!==null&&(o=n),n=n.sibling;o===null?e.tail=null:o.sibling=null;break;case"collapsed":o=e.tail;for(var s=null;o!==null;)o.alternate!==null&&(s=o),o=o.sibling;s===null?n||e.tail===null?e.tail=null:e.tail.sibling=null:s.sibling=null}}function pt(e){var n=e.alternate!==null&&e.alternate.child===e.child,o=0,s=0;if(n)for(var f=e.child;f!==null;)o|=f.lanes|f.childLanes,s|=f.subtreeFlags&14680064,s|=f.flags&14680064,f.return=e,f=f.sibling;else for(f=e.child;f!==null;)o|=f.lanes|f.childLanes,s|=f.subtreeFlags,s|=f.flags,f.return=e,f=f.sibling;return e.subtreeFlags|=s,e.childLanes=o,n}function _0(e,n,o){var s=n.pendingProps;switch(xa(n),n.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return pt(n),null;case 1:return St(n.type)&&ss(),pt(n),null;case 3:return s=n.stateNode,Gr(),$e(_t),$e(ft),Ra(),s.pendingContext&&(s.context=s.pendingContext,s.pendingContext=null),(e===null||e.child===null)&&(fs(n)?n.flags|=4:e===null||e.memoizedState.isDehydrated&&(n.flags&256)===0||(n.flags|=1024,Yt!==null&&(au(Yt),Yt=null))),qa(e,n),pt(n),null;case 5:Ia(n);var f=ur(Ko.current);if(o=n.type,e!==null&&n.stateNode!=null)hd(e,n,o,s,f),e.ref!==n.ref&&(n.flags|=512,n.flags|=2097152);else{if(!s){if(n.stateNode===null)throw Error(i(166));return pt(n),null}if(e=ur(ln.current),fs(n)){s=n.stateNode,o=n.type;var p=n.memoizedProps;switch(s[sn]=n,s[Bo]=p,e=(n.mode&1)!==0,o){case"dialog":Ae("cancel",s),Ae("close",s);break;case"iframe":case"object":case"embed":Ae("load",s);break;case"video":case"audio":for(f=0;f<Fo.length;f++)Ae(Fo[f],s);break;case"source":Ae("error",s);break;case"img":case"image":case"link":Ae("error",s),Ae("load",s);break;case"details":Ae("toggle",s);break;case"input":je(s,p),Ae("invalid",s);break;case"select":s._wrapperState={wasMultiple:!!p.multiple},Ae("invalid",s);break;case"textarea":xt(s,p),Ae("invalid",s)}mo(o,p),f=null;for(var S in p)if(p.hasOwnProperty(S)){var T=p[S];S==="children"?typeof T=="string"?s.textContent!==T&&(p.suppressHydrationWarning!==!0&&rs(s.textContent,T,e),f=["children",T]):typeof T=="number"&&s.textContent!==""+T&&(p.suppressHydrationWarning!==!0&&rs(s.textContent,T,e),f=["children",""+T]):a.hasOwnProperty(S)&&T!=null&&S==="onScroll"&&Ae("scroll",s)}switch(o){case"input":_e(s),nt(s,p,!0);break;case"textarea":_e(s),ct(s);break;case"select":case"option":break;default:typeof p.onClick=="function"&&(s.onclick=os)}s=f,n.updateQueue=s,s!==null&&(n.flags|=4)}else{S=f.nodeType===9?f:f.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=wt(o)),e==="http://www.w3.org/1999/xhtml"?o==="script"?(e=S.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof s.is=="string"?e=S.createElement(o,{is:s.is}):(e=S.createElement(o),o==="select"&&(S=e,s.multiple?S.multiple=!0:s.size&&(S.size=s.size))):e=S.createElementNS(e,o),e[sn]=n,e[Bo]=s,pd(e,n,!1,!1),n.stateNode=e;e:{switch(S=yo(o,s),o){case"dialog":Ae("cancel",e),Ae("close",e),f=s;break;case"iframe":case"object":case"embed":Ae("load",e),f=s;break;case"video":case"audio":for(f=0;f<Fo.length;f++)Ae(Fo[f],e);f=s;break;case"source":Ae("error",e),f=s;break;case"img":case"image":case"link":Ae("error",e),Ae("load",e),f=s;break;case"details":Ae("toggle",e),f=s;break;case"input":je(e,s),f=Ne(e,s),Ae("invalid",e);break;case"option":f=s;break;case"select":e._wrapperState={wasMultiple:!!s.multiple},f=A({},s,{value:void 0}),Ae("invalid",e);break;case"textarea":xt(e,s),f=At(e,s),Ae("invalid",e);break;default:f=s}mo(o,f),T=f;for(p in T)if(T.hasOwnProperty(p)){var O=T[p];p==="style"?Ze(e,O):p==="dangerouslySetInnerHTML"?(O=O?O.__html:void 0,O!=null&&ce(e,O)):p==="children"?typeof O=="string"?(o!=="textarea"||O!=="")&&he(e,O):typeof O=="number"&&he(e,""+O):p!=="suppressContentEditableWarning"&&p!=="suppressHydrationWarning"&&p!=="autoFocus"&&(a.hasOwnProperty(p)?O!=null&&p==="onScroll"&&Ae("scroll",e):O!=null&&k(e,p,O,S))}switch(o){case"input":_e(e),nt(e,s,!1);break;case"textarea":_e(e),ct(e);break;case"option":s.value!=null&&e.setAttribute("value",""+Q(s.value));break;case"select":e.multiple=!!s.multiple,p=s.value,p!=null?qe(e,!!s.multiple,p,!1):s.defaultValue!=null&&qe(e,!!s.multiple,s.defaultValue,!0);break;default:typeof f.onClick=="function"&&(e.onclick=os)}switch(o){case"button":case"input":case"select":case"textarea":s=!!s.autoFocus;break e;case"img":s=!0;break e;default:s=!1}}s&&(n.flags|=4)}n.ref!==null&&(n.flags|=512,n.flags|=2097152)}return pt(n),null;case 6:if(e&&n.stateNode!=null)gd(e,n,e.memoizedProps,s);else{if(typeof s!="string"&&n.stateNode===null)throw Error(i(166));if(o=ur(Ko.current),ur(ln.current),fs(n)){if(s=n.stateNode,o=n.memoizedProps,s[sn]=n,(p=s.nodeValue!==o)&&(e=Rt,e!==null))switch(e.tag){case 3:rs(s.nodeValue,o,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&rs(s.nodeValue,o,(e.mode&1)!==0)}p&&(n.flags|=4)}else s=(o.nodeType===9?o:o.ownerDocument).createTextNode(s),s[sn]=n,n.stateNode=s}return pt(n),null;case 13:if($e(Be),s=n.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(Fe&&zt!==null&&(n.mode&1)!==0&&(n.flags&128)===0)vf(),Yr(),n.flags|=98560,p=!1;else if(p=fs(n),s!==null&&s.dehydrated!==null){if(e===null){if(!p)throw Error(i(318));if(p=n.memoizedState,p=p!==null?p.dehydrated:null,!p)throw Error(i(317));p[sn]=n}else Yr(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;pt(n),p=!1}else Yt!==null&&(au(Yt),Yt=null),p=!0;if(!p)return n.flags&65536?n:null}return(n.flags&128)!==0?(n.lanes=o,n):(s=s!==null,s!==(e!==null&&e.memoizedState!==null)&&s&&(n.child.flags|=8192,(n.mode&1)!==0&&(e===null||(Be.current&1)!==0?et===0&&(et=3):fu())),n.updateQueue!==null&&(n.flags|=4),pt(n),null);case 4:return Gr(),qa(e,n),e===null&&Ho(n.stateNode.containerInfo),pt(n),null;case 10:return Na(n.type._context),pt(n),null;case 17:return St(n.type)&&ss(),pt(n),null;case 19:if($e(Be),p=n.memoizedState,p===null)return pt(n),null;if(s=(n.flags&128)!==0,S=p.rendering,S===null)if(s)Jo(p,!1);else{if(et!==0||e!==null&&(e.flags&128)!==0)for(e=n.child;e!==null;){if(S=ys(e),S!==null){for(n.flags|=128,Jo(p,!1),s=S.updateQueue,s!==null&&(n.updateQueue=s,n.flags|=4),n.subtreeFlags=0,s=o,o=n.child;o!==null;)p=o,e=s,p.flags&=14680066,S=p.alternate,S===null?(p.childLanes=0,p.lanes=e,p.child=null,p.subtreeFlags=0,p.memoizedProps=null,p.memoizedState=null,p.updateQueue=null,p.dependencies=null,p.stateNode=null):(p.childLanes=S.childLanes,p.lanes=S.lanes,p.child=S.child,p.subtreeFlags=0,p.deletions=null,p.memoizedProps=S.memoizedProps,p.memoizedState=S.memoizedState,p.updateQueue=S.updateQueue,p.type=S.type,e=S.dependencies,p.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),o=o.sibling;return De(Be,Be.current&1|2),n.child}e=e.sibling}p.tail!==null&&Ve()>eo&&(n.flags|=128,s=!0,Jo(p,!1),n.lanes=4194304)}else{if(!s)if(e=ys(S),e!==null){if(n.flags|=128,s=!0,o=e.updateQueue,o!==null&&(n.updateQueue=o,n.flags|=4),Jo(p,!0),p.tail===null&&p.tailMode==="hidden"&&!S.alternate&&!Fe)return pt(n),null}else 2*Ve()-p.renderingStartTime>eo&&o!==1073741824&&(n.flags|=128,s=!0,Jo(p,!1),n.lanes=4194304);p.isBackwards?(S.sibling=n.child,n.child=S):(o=p.last,o!==null?o.sibling=S:n.child=S,p.last=S)}return p.tail!==null?(n=p.tail,p.rendering=n,p.tail=n.sibling,p.renderingStartTime=Ve(),n.sibling=null,o=Be.current,De(Be,s?o&1|2:o&1),n):(pt(n),null);case 22:case 23:return cu(),s=n.memoizedState!==null,e!==null&&e.memoizedState!==null!==s&&(n.flags|=8192),s&&(n.mode&1)!==0?(bt&1073741824)!==0&&(pt(n),n.subtreeFlags&6&&(n.flags|=8192)):pt(n),null;case 24:return null;case 25:return null}throw Error(i(156,n.tag))}function S0(e,n){switch(xa(n),n.tag){case 1:return St(n.type)&&ss(),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return Gr(),$e(_t),$e(ft),Ra(),e=n.flags,(e&65536)!==0&&(e&128)===0?(n.flags=e&-65537|128,n):null;case 5:return Ia(n),null;case 13:if($e(Be),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(i(340));Yr()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return $e(Be),null;case 4:return Gr(),null;case 10:return Na(n.type._context),null;case 22:case 23:return cu(),null;case 24:return null;default:return null}}var Cs=!1,ht=!1,k0=typeof WeakSet=="function"?WeakSet:Set,ge=null;function Zr(e,n){var o=e.ref;if(o!==null)if(typeof o=="function")try{o(null)}catch(s){Ye(e,n,s)}else o.current=null}function Za(e,n,o){try{o()}catch(s){Ye(e,n,s)}}var md=!1;function E0(e,n){if(ca=Yi,e=Xc(),na(e)){if("selectionStart"in e)var o={start:e.selectionStart,end:e.selectionEnd};else e:{o=(o=e.ownerDocument)&&o.defaultView||window;var s=o.getSelection&&o.getSelection();if(s&&s.rangeCount!==0){o=s.anchorNode;var f=s.anchorOffset,p=s.focusNode;s=s.focusOffset;try{o.nodeType,p.nodeType}catch{o=null;break e}var S=0,T=-1,O=-1,G=0,oe=0,se=e,re=null;t:for(;;){for(var de;se!==o||f!==0&&se.nodeType!==3||(T=S+f),se!==p||s!==0&&se.nodeType!==3||(O=S+s),se.nodeType===3&&(S+=se.nodeValue.length),(de=se.firstChild)!==null;)re=se,se=de;for(;;){if(se===e)break t;if(re===o&&++G===f&&(T=S),re===p&&++oe===s&&(O=S),(de=se.nextSibling)!==null)break;se=re,re=se.parentNode}se=de}o=T===-1||O===-1?null:{start:T,end:O}}else o=null}o=o||{start:0,end:0}}else o=null;for(fa={focusedElem:e,selectionRange:o},Yi=!1,ge=n;ge!==null;)if(n=ge,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,ge=e;else for(;ge!==null;){n=ge;try{var me=n.alternate;if((n.flags&1024)!==0)switch(n.tag){case 0:case 11:case 15:break;case 1:if(me!==null){var ye=me.memoizedProps,Ke=me.memoizedState,Y=n.stateNode,H=Y.getSnapshotBeforeUpdate(n.elementType===n.type?ye:Xt(n.type,ye),Ke);Y.__reactInternalSnapshotBeforeUpdate=H}break;case 3:var K=n.stateNode.containerInfo;K.nodeType===1?K.textContent="":K.nodeType===9&&K.documentElement&&K.removeChild(K.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(i(163))}}catch(ae){Ye(n,n.return,ae)}if(e=n.sibling,e!==null){e.return=n.return,ge=e;break}ge=n.return}return me=md,md=!1,me}function ei(e,n,o){var s=n.updateQueue;if(s=s!==null?s.lastEffect:null,s!==null){var f=s=s.next;do{if((f.tag&e)===e){var p=f.destroy;f.destroy=void 0,p!==void 0&&Za(n,o,p)}f=f.next}while(f!==s)}}function Ms(e,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var o=n=n.next;do{if((o.tag&e)===e){var s=o.create;o.destroy=s()}o=o.next}while(o!==n)}}function Ja(e){var n=e.ref;if(n!==null){var o=e.stateNode;switch(e.tag){case 5:e=o;break;default:e=o}typeof n=="function"?n(e):n.current=e}}function yd(e){var n=e.alternate;n!==null&&(e.alternate=null,yd(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&(delete n[sn],delete n[Bo],delete n[ga],delete n[s0],delete n[l0])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function vd(e){return e.tag===5||e.tag===3||e.tag===4}function xd(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||vd(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function eu(e,n,o){var s=e.tag;if(s===5||s===6)e=e.stateNode,n?o.nodeType===8?o.parentNode.insertBefore(e,n):o.insertBefore(e,n):(o.nodeType===8?(n=o.parentNode,n.insertBefore(e,o)):(n=o,n.appendChild(e)),o=o._reactRootContainer,o!=null||n.onclick!==null||(n.onclick=os));else if(s!==4&&(e=e.child,e!==null))for(eu(e,n,o),e=e.sibling;e!==null;)eu(e,n,o),e=e.sibling}function tu(e,n,o){var s=e.tag;if(s===5||s===6)e=e.stateNode,n?o.insertBefore(e,n):o.appendChild(e);else if(s!==4&&(e=e.child,e!==null))for(tu(e,n,o),e=e.sibling;e!==null;)tu(e,n,o),e=e.sibling}var lt=null,Kt=!1;function On(e,n,o){for(o=o.child;o!==null;)wd(e,n,o),o=o.sibling}function wd(e,n,o){if(Pt&&typeof Pt.onCommitFiberUnmount=="function")try{Pt.onCommitFiberUnmount(Ir,o)}catch{}switch(o.tag){case 5:ht||Zr(o,n);case 6:var s=lt,f=Kt;lt=null,On(e,n,o),lt=s,Kt=f,lt!==null&&(Kt?(e=lt,o=o.stateNode,e.nodeType===8?e.parentNode.removeChild(o):e.removeChild(o)):lt.removeChild(o.stateNode));break;case 18:lt!==null&&(Kt?(e=lt,o=o.stateNode,e.nodeType===8?ha(e.parentNode,o):e.nodeType===1&&ha(e,o),Ro(e)):ha(lt,o.stateNode));break;case 4:s=lt,f=Kt,lt=o.stateNode.containerInfo,Kt=!0,On(e,n,o),lt=s,Kt=f;break;case 0:case 11:case 14:case 15:if(!ht&&(s=o.updateQueue,s!==null&&(s=s.lastEffect,s!==null))){f=s=s.next;do{var p=f,S=p.destroy;p=p.tag,S!==void 0&&((p&2)!==0||(p&4)!==0)&&Za(o,n,S),f=f.next}while(f!==s)}On(e,n,o);break;case 1:if(!ht&&(Zr(o,n),s=o.stateNode,typeof s.componentWillUnmount=="function"))try{s.props=o.memoizedProps,s.state=o.memoizedState,s.componentWillUnmount()}catch(T){Ye(o,n,T)}On(e,n,o);break;case 21:On(e,n,o);break;case 22:o.mode&1?(ht=(s=ht)||o.memoizedState!==null,On(e,n,o),ht=s):On(e,n,o);break;default:On(e,n,o)}}function _d(e){var n=e.updateQueue;if(n!==null){e.updateQueue=null;var o=e.stateNode;o===null&&(o=e.stateNode=new k0),n.forEach(function(s){var f=z0.bind(null,e,s);o.has(s)||(o.add(s),s.then(f,f))})}}function Qt(e,n){var o=n.deletions;if(o!==null)for(var s=0;s<o.length;s++){var f=o[s];try{var p=e,S=n,T=S;e:for(;T!==null;){switch(T.tag){case 5:lt=T.stateNode,Kt=!1;break e;case 3:lt=T.stateNode.containerInfo,Kt=!0;break e;case 4:lt=T.stateNode.containerInfo,Kt=!0;break e}T=T.return}if(lt===null)throw Error(i(160));wd(p,S,f),lt=null,Kt=!1;var O=f.alternate;O!==null&&(O.return=null),f.return=null}catch(G){Ye(f,n,G)}}if(n.subtreeFlags&12854)for(n=n.child;n!==null;)Sd(n,e),n=n.sibling}function Sd(e,n){var o=e.alternate,s=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(Qt(n,e),un(e),s&4){try{ei(3,e,e.return),Ms(3,e)}catch(ye){Ye(e,e.return,ye)}try{ei(5,e,e.return)}catch(ye){Ye(e,e.return,ye)}}break;case 1:Qt(n,e),un(e),s&512&&o!==null&&Zr(o,o.return);break;case 5:if(Qt(n,e),un(e),s&512&&o!==null&&Zr(o,o.return),e.flags&32){var f=e.stateNode;try{he(f,"")}catch(ye){Ye(e,e.return,ye)}}if(s&4&&(f=e.stateNode,f!=null)){var p=e.memoizedProps,S=o!==null?o.memoizedProps:p,T=e.type,O=e.updateQueue;if(e.updateQueue=null,O!==null)try{T==="input"&&p.type==="radio"&&p.name!=null&&Ie(f,p),yo(T,S);var G=yo(T,p);for(S=0;S<O.length;S+=2){var oe=O[S],se=O[S+1];oe==="style"?Ze(f,se):oe==="dangerouslySetInnerHTML"?ce(f,se):oe==="children"?he(f,se):k(f,oe,se,G)}switch(T){case"input":Te(f,p);break;case"textarea":$t(f,p);break;case"select":var re=f._wrapperState.wasMultiple;f._wrapperState.wasMultiple=!!p.multiple;var de=p.value;de!=null?qe(f,!!p.multiple,de,!1):re!==!!p.multiple&&(p.defaultValue!=null?qe(f,!!p.multiple,p.defaultValue,!0):qe(f,!!p.multiple,p.multiple?[]:"",!1))}f[Bo]=p}catch(ye){Ye(e,e.return,ye)}}break;case 6:if(Qt(n,e),un(e),s&4){if(e.stateNode===null)throw Error(i(162));f=e.stateNode,p=e.memoizedProps;try{f.nodeValue=p}catch(ye){Ye(e,e.return,ye)}}break;case 3:if(Qt(n,e),un(e),s&4&&o!==null&&o.memoizedState.isDehydrated)try{Ro(n.containerInfo)}catch(ye){Ye(e,e.return,ye)}break;case 4:Qt(n,e),un(e);break;case 13:Qt(n,e),un(e),f=e.child,f.flags&8192&&(p=f.memoizedState!==null,f.stateNode.isHidden=p,!p||f.alternate!==null&&f.alternate.memoizedState!==null||(ou=Ve())),s&4&&_d(e);break;case 22:if(oe=o!==null&&o.memoizedState!==null,e.mode&1?(ht=(G=ht)||oe,Qt(n,e),ht=G):Qt(n,e),un(e),s&8192){if(G=e.memoizedState!==null,(e.stateNode.isHidden=G)&&!oe&&(e.mode&1)!==0)for(ge=e,oe=e.child;oe!==null;){for(se=ge=oe;ge!==null;){switch(re=ge,de=re.child,re.tag){case 0:case 11:case 14:case 15:ei(4,re,re.return);break;case 1:Zr(re,re.return);var me=re.stateNode;if(typeof me.componentWillUnmount=="function"){s=re,o=re.return;try{n=s,me.props=n.memoizedProps,me.state=n.memoizedState,me.componentWillUnmount()}catch(ye){Ye(s,o,ye)}}break;case 5:Zr(re,re.return);break;case 22:if(re.memoizedState!==null){Nd(se);continue}}de!==null?(de.return=re,ge=de):Nd(se)}oe=oe.sibling}e:for(oe=null,se=e;;){if(se.tag===5){if(oe===null){oe=se;try{f=se.stateNode,G?(p=f.style,typeof p.setProperty=="function"?p.setProperty("display","none","important"):p.display="none"):(T=se.stateNode,O=se.memoizedProps.style,S=O!=null&&O.hasOwnProperty("display")?O.display:null,T.style.display=jt("display",S))}catch(ye){Ye(e,e.return,ye)}}}else if(se.tag===6){if(oe===null)try{se.stateNode.nodeValue=G?"":se.memoizedProps}catch(ye){Ye(e,e.return,ye)}}else if((se.tag!==22&&se.tag!==23||se.memoizedState===null||se===e)&&se.child!==null){se.child.return=se,se=se.child;continue}if(se===e)break e;for(;se.sibling===null;){if(se.return===null||se.return===e)break e;oe===se&&(oe=null),se=se.return}oe===se&&(oe=null),se.sibling.return=se.return,se=se.sibling}}break;case 19:Qt(n,e),un(e),s&4&&_d(e);break;case 21:break;default:Qt(n,e),un(e)}}function un(e){var n=e.flags;if(n&2){try{e:{for(var o=e.return;o!==null;){if(vd(o)){var s=o;break e}o=o.return}throw Error(i(160))}switch(s.tag){case 5:var f=s.stateNode;s.flags&32&&(he(f,""),s.flags&=-33);var p=xd(e);tu(e,p,f);break;case 3:case 4:var S=s.stateNode.containerInfo,T=xd(e);eu(e,T,S);break;default:throw Error(i(161))}}catch(O){Ye(e,e.return,O)}e.flags&=-3}n&4096&&(e.flags&=-4097)}function N0(e,n,o){ge=e,kd(e)}function kd(e,n,o){for(var s=(e.mode&1)!==0;ge!==null;){var f=ge,p=f.child;if(f.tag===22&&s){var S=f.memoizedState!==null||Cs;if(!S){var T=f.alternate,O=T!==null&&T.memoizedState!==null||ht;T=Cs;var G=ht;if(Cs=S,(ht=O)&&!G)for(ge=f;ge!==null;)S=ge,O=S.child,S.tag===22&&S.memoizedState!==null?Cd(f):O!==null?(O.return=S,ge=O):Cd(f);for(;p!==null;)ge=p,kd(p),p=p.sibling;ge=f,Cs=T,ht=G}Ed(e)}else(f.subtreeFlags&8772)!==0&&p!==null?(p.return=f,ge=p):Ed(e)}}function Ed(e){for(;ge!==null;){var n=ge;if((n.flags&8772)!==0){var o=n.alternate;try{if((n.flags&8772)!==0)switch(n.tag){case 0:case 11:case 15:ht||Ms(5,n);break;case 1:var s=n.stateNode;if(n.flags&4&&!ht)if(o===null)s.componentDidMount();else{var f=n.elementType===n.type?o.memoizedProps:Xt(n.type,o.memoizedProps);s.componentDidUpdate(f,o.memoizedState,s.__reactInternalSnapshotBeforeUpdate)}var p=n.updateQueue;p!==null&&Nf(n,p,s);break;case 3:var S=n.updateQueue;if(S!==null){if(o=null,n.child!==null)switch(n.child.tag){case 5:o=n.child.stateNode;break;case 1:o=n.child.stateNode}Nf(n,S,o)}break;case 5:var T=n.stateNode;if(o===null&&n.flags&4){o=T;var O=n.memoizedProps;switch(n.type){case"button":case"input":case"select":case"textarea":O.autoFocus&&o.focus();break;case"img":O.src&&(o.src=O.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(n.memoizedState===null){var G=n.alternate;if(G!==null){var oe=G.memoizedState;if(oe!==null){var se=oe.dehydrated;se!==null&&Ro(se)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(i(163))}ht||n.flags&512&&Ja(n)}catch(re){Ye(n,n.return,re)}}if(n===e){ge=null;break}if(o=n.sibling,o!==null){o.return=n.return,ge=o;break}ge=n.return}}function Nd(e){for(;ge!==null;){var n=ge;if(n===e){ge=null;break}var o=n.sibling;if(o!==null){o.return=n.return,ge=o;break}ge=n.return}}function Cd(e){for(;ge!==null;){var n=ge;try{switch(n.tag){case 0:case 11:case 15:var o=n.return;try{Ms(4,n)}catch(O){Ye(n,o,O)}break;case 1:var s=n.stateNode;if(typeof s.componentDidMount=="function"){var f=n.return;try{s.componentDidMount()}catch(O){Ye(n,f,O)}}var p=n.return;try{Ja(n)}catch(O){Ye(n,p,O)}break;case 5:var S=n.return;try{Ja(n)}catch(O){Ye(n,S,O)}}}catch(O){Ye(n,n.return,O)}if(n===e){ge=null;break}var T=n.sibling;if(T!==null){T.return=n.return,ge=T;break}ge=n.return}}var C0=Math.ceil,js=M.ReactCurrentDispatcher,nu=M.ReactCurrentOwner,Bt=M.ReactCurrentBatchConfig,Re=0,it=null,Qe=null,at=0,bt=0,Jr=bn(0),et=0,ti=null,fr=0,Ps=0,ru=0,ni=null,Et=null,ou=0,eo=1/0,_n=null,Is=!1,iu=null,Fn=null,Ts=!1,Hn=null,Rs=0,ri=0,su=null,zs=-1,bs=0;function vt(){return(Re&6)!==0?Ve():zs!==-1?zs:zs=Ve()}function Vn(e){return(e.mode&1)===0?1:(Re&2)!==0&&at!==0?at&-at:u0.transition!==null?(bs===0&&(bs=Bi()),bs):(e=Le,e!==0||(e=window.event,e=e===void 0?16:Mc(e.type)),e)}function Gt(e,n,o,s){if(50<ri)throw ri=0,su=null,Error(i(185));rr(e,o,s),((Re&2)===0||e!==it)&&(e===it&&((Re&2)===0&&(Ps|=o),et===4&&Bn(e,at)),Nt(e,s),o===1&&Re===0&&(n.mode&1)===0&&(eo=Ve()+500,as&&Dn()))}function Nt(e,n){var o=e.callbackNode;Vi(e,n);var s=pn(e,e===it?at:0);if(s===0)o!==null&&$i(o),e.callbackNode=null,e.callbackPriority=0;else if(n=s&-s,e.callbackPriority!==n){if(o!=null&&$i(o),n===1)e.tag===0?a0(jd.bind(null,e)):pf(jd.bind(null,e)),o0(function(){(Re&6)===0&&Dn()}),o=null;else{switch(xc(s)){case 1:o=Co;break;case 4:o=Fi;break;case 16:o=Pr;break;case 536870912:o=Hi;break;default:o=Pr}o=Dd(o,Md.bind(null,e))}e.callbackPriority=n,e.callbackNode=o}}function Md(e,n){if(zs=-1,bs=0,(Re&6)!==0)throw Error(i(327));var o=e.callbackNode;if(to()&&e.callbackNode!==o)return null;var s=pn(e,e===it?at:0);if(s===0)return null;if((s&30)!==0||(s&e.expiredLanes)!==0||n)n=Ls(e,s);else{n=s;var f=Re;Re|=2;var p=Id();(it!==e||at!==n)&&(_n=null,eo=Ve()+500,pr(e,n));do try{P0();break}catch(T){Pd(e,T)}while(!0);Ea(),js.current=p,Re=f,Qe!==null?n=0:(it=null,at=0,n=et)}if(n!==0){if(n===2&&(f=Mo(e),f!==0&&(s=f,n=lu(e,f))),n===1)throw o=ti,pr(e,0),Bn(e,s),Nt(e,Ve()),o;if(n===6)Bn(e,s);else{if(f=e.current.alternate,(s&30)===0&&!M0(f)&&(n=Ls(e,s),n===2&&(p=Mo(e),p!==0&&(s=p,n=lu(e,p))),n===1))throw o=ti,pr(e,0),Bn(e,s),Nt(e,Ve()),o;switch(e.finishedWork=f,e.finishedLanes=s,n){case 0:case 1:throw Error(i(345));case 2:hr(e,Et,_n);break;case 3:if(Bn(e,s),(s&130023424)===s&&(n=ou+500-Ve(),10<n)){if(pn(e,0)!==0)break;if(f=e.suspendedLanes,(f&s)!==s){vt(),e.pingedLanes|=e.suspendedLanes&f;break}e.timeoutHandle=pa(hr.bind(null,e,Et,_n),n);break}hr(e,Et,_n);break;case 4:if(Bn(e,s),(s&4194240)===s)break;for(n=e.eventTimes,f=-1;0<s;){var S=31-It(s);p=1<<S,S=n[S],S>f&&(f=S),s&=~p}if(s=f,s=Ve()-s,s=(120>s?120:480>s?480:1080>s?1080:1920>s?1920:3e3>s?3e3:4320>s?4320:1960*C0(s/1960))-s,10<s){e.timeoutHandle=pa(hr.bind(null,e,Et,_n),s);break}hr(e,Et,_n);break;case 5:hr(e,Et,_n);break;default:throw Error(i(329))}}}return Nt(e,Ve()),e.callbackNode===o?Md.bind(null,e):null}function lu(e,n){var o=ni;return e.current.memoizedState.isDehydrated&&(pr(e,n).flags|=256),e=Ls(e,n),e!==2&&(n=Et,Et=o,n!==null&&au(n)),e}function au(e){Et===null?Et=e:Et.push.apply(Et,e)}function M0(e){for(var n=e;;){if(n.flags&16384){var o=n.updateQueue;if(o!==null&&(o=o.stores,o!==null))for(var s=0;s<o.length;s++){var f=o[s],p=f.getSnapshot;f=f.value;try{if(!Wt(p(),f))return!1}catch{return!1}}}if(o=n.child,n.subtreeFlags&16384&&o!==null)o.return=n,n=o;else{if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return!0;n=n.return}n.sibling.return=n.return,n=n.sibling}}return!0}function Bn(e,n){for(n&=~ru,n&=~Ps,e.suspendedLanes|=n,e.pingedLanes&=~n,e=e.expirationTimes;0<n;){var o=31-It(n),s=1<<o;e[o]=-1,n&=~s}}function jd(e){if((Re&6)!==0)throw Error(i(327));to();var n=pn(e,0);if((n&1)===0)return Nt(e,Ve()),null;var o=Ls(e,n);if(e.tag!==0&&o===2){var s=Mo(e);s!==0&&(n=s,o=lu(e,s))}if(o===1)throw o=ti,pr(e,0),Bn(e,n),Nt(e,Ve()),o;if(o===6)throw Error(i(345));return e.finishedWork=e.current.alternate,e.finishedLanes=n,hr(e,Et,_n),Nt(e,Ve()),null}function uu(e,n){var o=Re;Re|=1;try{return e(n)}finally{Re=o,Re===0&&(eo=Ve()+500,as&&Dn())}}function dr(e){Hn!==null&&Hn.tag===0&&(Re&6)===0&&to();var n=Re;Re|=1;var o=Bt.transition,s=Le;try{if(Bt.transition=null,Le=1,e)return e()}finally{Le=s,Bt.transition=o,Re=n,(Re&6)===0&&Dn()}}function cu(){bt=Jr.current,$e(Jr)}function pr(e,n){e.finishedWork=null,e.finishedLanes=0;var o=e.timeoutHandle;if(o!==-1&&(e.timeoutHandle=-1,r0(o)),Qe!==null)for(o=Qe.return;o!==null;){var s=o;switch(xa(s),s.tag){case 1:s=s.type.childContextTypes,s!=null&&ss();break;case 3:Gr(),$e(_t),$e(ft),Ra();break;case 5:Ia(s);break;case 4:Gr();break;case 13:$e(Be);break;case 19:$e(Be);break;case 10:Na(s.type._context);break;case 22:case 23:cu()}o=o.return}if(it=e,Qe=e=Un(e.current,null),at=bt=n,et=0,ti=null,ru=Ps=fr=0,Et=ni=null,ar!==null){for(n=0;n<ar.length;n++)if(o=ar[n],s=o.interleaved,s!==null){o.interleaved=null;var f=s.next,p=o.pending;if(p!==null){var S=p.next;p.next=f,s.next=S}o.pending=s}ar=null}return e}function Pd(e,n){do{var o=Qe;try{if(Ea(),vs.current=Ss,xs){for(var s=Ue.memoizedState;s!==null;){var f=s.queue;f!==null&&(f.pending=null),s=s.next}xs=!1}if(cr=0,ot=Je=Ue=null,Qo=!1,Go=0,nu.current=null,o===null||o.return===null){et=1,ti=n,Qe=null;break}e:{var p=e,S=o.return,T=o,O=n;if(n=at,T.flags|=32768,O!==null&&typeof O=="object"&&typeof O.then=="function"){var G=O,oe=T,se=oe.tag;if((oe.mode&1)===0&&(se===0||se===11||se===15)){var re=oe.alternate;re?(oe.updateQueue=re.updateQueue,oe.memoizedState=re.memoizedState,oe.lanes=re.lanes):(oe.updateQueue=null,oe.memoizedState=null)}var de=ed(S);if(de!==null){de.flags&=-257,td(de,S,T,p,n),de.mode&1&&Jf(p,G,n),n=de,O=G;var me=n.updateQueue;if(me===null){var ye=new Set;ye.add(O),n.updateQueue=ye}else me.add(O);break e}else{if((n&1)===0){Jf(p,G,n),fu();break e}O=Error(i(426))}}else if(Fe&&T.mode&1){var Ke=ed(S);if(Ke!==null){(Ke.flags&65536)===0&&(Ke.flags|=256),td(Ke,S,T,p,n),Sa(qr(O,T));break e}}p=O=qr(O,T),et!==4&&(et=2),ni===null?ni=[p]:ni.push(p),p=S;do{switch(p.tag){case 3:p.flags|=65536,n&=-n,p.lanes|=n;var Y=qf(p,O,n);Ef(p,Y);break e;case 1:T=O;var H=p.type,K=p.stateNode;if((p.flags&128)===0&&(typeof H.getDerivedStateFromError=="function"||K!==null&&typeof K.componentDidCatch=="function"&&(Fn===null||!Fn.has(K)))){p.flags|=65536,n&=-n,p.lanes|=n;var ae=Zf(p,T,n);Ef(p,ae);break e}}p=p.return}while(p!==null)}Rd(o)}catch(ve){n=ve,Qe===o&&o!==null&&(Qe=o=o.return);continue}break}while(!0)}function Id(){var e=js.current;return js.current=Ss,e===null?Ss:e}function fu(){(et===0||et===3||et===2)&&(et=4),it===null||(fr&268435455)===0&&(Ps&268435455)===0||Bn(it,at)}function Ls(e,n){var o=Re;Re|=2;var s=Id();(it!==e||at!==n)&&(_n=null,pr(e,n));do try{j0();break}catch(f){Pd(e,f)}while(!0);if(Ea(),Re=o,js.current=s,Qe!==null)throw Error(i(261));return it=null,at=0,et}function j0(){for(;Qe!==null;)Td(Qe)}function P0(){for(;Qe!==null&&!bl();)Td(Qe)}function Td(e){var n=Ld(e.alternate,e,bt);e.memoizedProps=e.pendingProps,n===null?Rd(e):Qe=n,nu.current=null}function Rd(e){var n=e;do{var o=n.alternate;if(e=n.return,(n.flags&32768)===0){if(o=_0(o,n,bt),o!==null){Qe=o;return}}else{if(o=S0(o,n),o!==null){o.flags&=32767,Qe=o;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{et=6,Qe=null;return}}if(n=n.sibling,n!==null){Qe=n;return}Qe=n=e}while(n!==null);et===0&&(et=5)}function hr(e,n,o){var s=Le,f=Bt.transition;try{Bt.transition=null,Le=1,I0(e,n,o,s)}finally{Bt.transition=f,Le=s}return null}function I0(e,n,o,s){do to();while(Hn!==null);if((Re&6)!==0)throw Error(i(327));o=e.finishedWork;var f=e.finishedLanes;if(o===null)return null;if(e.finishedWork=null,e.finishedLanes=0,o===e.current)throw Error(i(177));e.callbackNode=null,e.callbackPriority=0;var p=o.lanes|o.childLanes;if(Vl(e,p),e===it&&(Qe=it=null,at=0),(o.subtreeFlags&2064)===0&&(o.flags&2064)===0||Ts||(Ts=!0,Dd(Pr,function(){return to(),null})),p=(o.flags&15990)!==0,(o.subtreeFlags&15990)!==0||p){p=Bt.transition,Bt.transition=null;var S=Le;Le=1;var T=Re;Re|=4,nu.current=null,E0(e,o),Sd(o,e),Gm(fa),Yi=!!ca,fa=ca=null,e.current=o,N0(o),Oi(),Re=T,Le=S,Bt.transition=p}else e.current=o;if(Ts&&(Ts=!1,Hn=e,Rs=f),p=e.pendingLanes,p===0&&(Fn=null),Al(o.stateNode),Nt(e,Ve()),n!==null)for(s=e.onRecoverableError,o=0;o<n.length;o++)f=n[o],s(f.value,{componentStack:f.stack,digest:f.digest});if(Is)throw Is=!1,e=iu,iu=null,e;return(Rs&1)!==0&&e.tag!==0&&to(),p=e.pendingLanes,(p&1)!==0?e===su?ri++:(ri=0,su=e):ri=0,Dn(),null}function to(){if(Hn!==null){var e=xc(Rs),n=Bt.transition,o=Le;try{if(Bt.transition=null,Le=16>e?16:e,Hn===null)var s=!1;else{if(e=Hn,Hn=null,Rs=0,(Re&6)!==0)throw Error(i(331));var f=Re;for(Re|=4,ge=e.current;ge!==null;){var p=ge,S=p.child;if((ge.flags&16)!==0){var T=p.deletions;if(T!==null){for(var O=0;O<T.length;O++){var G=T[O];for(ge=G;ge!==null;){var oe=ge;switch(oe.tag){case 0:case 11:case 15:ei(8,oe,p)}var se=oe.child;if(se!==null)se.return=oe,ge=se;else for(;ge!==null;){oe=ge;var re=oe.sibling,de=oe.return;if(yd(oe),oe===G){ge=null;break}if(re!==null){re.return=de,ge=re;break}ge=de}}}var me=p.alternate;if(me!==null){var ye=me.child;if(ye!==null){me.child=null;do{var Ke=ye.sibling;ye.sibling=null,ye=Ke}while(ye!==null)}}ge=p}}if((p.subtreeFlags&2064)!==0&&S!==null)S.return=p,ge=S;else e:for(;ge!==null;){if(p=ge,(p.flags&2048)!==0)switch(p.tag){case 0:case 11:case 15:ei(9,p,p.return)}var Y=p.sibling;if(Y!==null){Y.return=p.return,ge=Y;break e}ge=p.return}}var H=e.current;for(ge=H;ge!==null;){S=ge;var K=S.child;if((S.subtreeFlags&2064)!==0&&K!==null)K.return=S,ge=K;else e:for(S=H;ge!==null;){if(T=ge,(T.flags&2048)!==0)try{switch(T.tag){case 0:case 11:case 15:Ms(9,T)}}catch(ve){Ye(T,T.return,ve)}if(T===S){ge=null;break e}var ae=T.sibling;if(ae!==null){ae.return=T.return,ge=ae;break e}ge=T.return}}if(Re=f,Dn(),Pt&&typeof Pt.onPostCommitFiberRoot=="function")try{Pt.onPostCommitFiberRoot(Ir,e)}catch{}s=!0}return s}finally{Le=o,Bt.transition=n}}return!1}function zd(e,n,o){n=qr(o,n),n=qf(e,n,1),e=$n(e,n,1),n=vt(),e!==null&&(rr(e,1,n),Nt(e,n))}function Ye(e,n,o){if(e.tag===3)zd(e,e,o);else for(;n!==null;){if(n.tag===3){zd(n,e,o);break}else if(n.tag===1){var s=n.stateNode;if(typeof n.type.getDerivedStateFromError=="function"||typeof s.componentDidCatch=="function"&&(Fn===null||!Fn.has(s))){e=qr(o,e),e=Zf(n,e,1),n=$n(n,e,1),e=vt(),n!==null&&(rr(n,1,e),Nt(n,e));break}}n=n.return}}function T0(e,n,o){var s=e.pingCache;s!==null&&s.delete(n),n=vt(),e.pingedLanes|=e.suspendedLanes&o,it===e&&(at&o)===o&&(et===4||et===3&&(at&130023424)===at&&500>Ve()-ou?pr(e,0):ru|=o),Nt(e,n)}function bd(e,n){n===0&&((e.mode&1)===0?n=1:(n=Rr,Rr<<=1,(Rr&130023424)===0&&(Rr=4194304)));var o=vt();e=vn(e,n),e!==null&&(rr(e,n,o),Nt(e,o))}function R0(e){var n=e.memoizedState,o=0;n!==null&&(o=n.retryLane),bd(e,o)}function z0(e,n){var o=0;switch(e.tag){case 13:var s=e.stateNode,f=e.memoizedState;f!==null&&(o=f.retryLane);break;case 19:s=e.stateNode;break;default:throw Error(i(314))}s!==null&&s.delete(n),bd(e,o)}var Ld;Ld=function(e,n,o){if(e!==null)if(e.memoizedProps!==n.pendingProps||_t.current)kt=!0;else{if((e.lanes&o)===0&&(n.flags&128)===0)return kt=!1,w0(e,n,o);kt=(e.flags&131072)!==0}else kt=!1,Fe&&(n.flags&1048576)!==0&&hf(n,cs,n.index);switch(n.lanes=0,n.tag){case 2:var s=n.type;Ns(e,n),e=n.pendingProps;var f=Br(n,ft.current);Qr(n,o),f=La(null,n,s,e,f,o);var p=Da();return n.flags|=1,typeof f=="object"&&f!==null&&typeof f.render=="function"&&f.$$typeof===void 0?(n.tag=1,n.memoizedState=null,n.updateQueue=null,St(s)?(p=!0,ls(n)):p=!1,n.memoizedState=f.state!==null&&f.state!==void 0?f.state:null,ja(n),f.updater=ks,n.stateNode=f,f._reactInternals=n,Va(n,s,e,o),n=Ya(null,n,s,!0,p,o)):(n.tag=0,Fe&&p&&va(n),yt(null,n,f,o),n=n.child),n;case 16:s=n.elementType;e:{switch(Ns(e,n),e=n.pendingProps,f=s._init,s=f(s._payload),n.type=s,f=n.tag=L0(s),e=Xt(s,e),f){case 0:n=Wa(null,n,s,e,o);break e;case 1:n=ld(null,n,s,e,o);break e;case 11:n=nd(null,n,s,e,o);break e;case 14:n=rd(null,n,s,Xt(s.type,e),o);break e}throw Error(i(306,s,""))}return n;case 0:return s=n.type,f=n.pendingProps,f=n.elementType===s?f:Xt(s,f),Wa(e,n,s,f,o);case 1:return s=n.type,f=n.pendingProps,f=n.elementType===s?f:Xt(s,f),ld(e,n,s,f,o);case 3:e:{if(ad(n),e===null)throw Error(i(387));s=n.pendingProps,p=n.memoizedState,f=p.element,kf(e,n),ms(n,s,null,o);var S=n.memoizedState;if(s=S.element,p.isDehydrated)if(p={element:s,isDehydrated:!1,cache:S.cache,pendingSuspenseBoundaries:S.pendingSuspenseBoundaries,transitions:S.transitions},n.updateQueue.baseState=p,n.memoizedState=p,n.flags&256){f=qr(Error(i(423)),n),n=ud(e,n,s,o,f);break e}else if(s!==f){f=qr(Error(i(424)),n),n=ud(e,n,s,o,f);break e}else for(zt=zn(n.stateNode.containerInfo.firstChild),Rt=n,Fe=!0,Yt=null,o=_f(n,null,s,o),n.child=o;o;)o.flags=o.flags&-3|4096,o=o.sibling;else{if(Yr(),s===f){n=wn(e,n,o);break e}yt(e,n,s,o)}n=n.child}return n;case 5:return Cf(n),e===null&&_a(n),s=n.type,f=n.pendingProps,p=e!==null?e.memoizedProps:null,S=f.children,da(s,f)?S=null:p!==null&&da(s,p)&&(n.flags|=32),sd(e,n),yt(e,n,S,o),n.child;case 6:return e===null&&_a(n),null;case 13:return cd(e,n,o);case 4:return Pa(n,n.stateNode.containerInfo),s=n.pendingProps,e===null?n.child=Xr(n,null,s,o):yt(e,n,s,o),n.child;case 11:return s=n.type,f=n.pendingProps,f=n.elementType===s?f:Xt(s,f),nd(e,n,s,f,o);case 7:return yt(e,n,n.pendingProps,o),n.child;case 8:return yt(e,n,n.pendingProps.children,o),n.child;case 12:return yt(e,n,n.pendingProps.children,o),n.child;case 10:e:{if(s=n.type._context,f=n.pendingProps,p=n.memoizedProps,S=f.value,De(ps,s._currentValue),s._currentValue=S,p!==null)if(Wt(p.value,S)){if(p.children===f.children&&!_t.current){n=wn(e,n,o);break e}}else for(p=n.child,p!==null&&(p.return=n);p!==null;){var T=p.dependencies;if(T!==null){S=p.child;for(var O=T.firstContext;O!==null;){if(O.context===s){if(p.tag===1){O=xn(-1,o&-o),O.tag=2;var G=p.updateQueue;if(G!==null){G=G.shared;var oe=G.pending;oe===null?O.next=O:(O.next=oe.next,oe.next=O),G.pending=O}}p.lanes|=o,O=p.alternate,O!==null&&(O.lanes|=o),Ca(p.return,o,n),T.lanes|=o;break}O=O.next}}else if(p.tag===10)S=p.type===n.type?null:p.child;else if(p.tag===18){if(S=p.return,S===null)throw Error(i(341));S.lanes|=o,T=S.alternate,T!==null&&(T.lanes|=o),Ca(S,o,n),S=p.sibling}else S=p.child;if(S!==null)S.return=p;else for(S=p;S!==null;){if(S===n){S=null;break}if(p=S.sibling,p!==null){p.return=S.return,S=p;break}S=S.return}p=S}yt(e,n,f.children,o),n=n.child}return n;case 9:return f=n.type,s=n.pendingProps.children,Qr(n,o),f=Ht(f),s=s(f),n.flags|=1,yt(e,n,s,o),n.child;case 14:return s=n.type,f=Xt(s,n.pendingProps),f=Xt(s.type,f),rd(e,n,s,f,o);case 15:return od(e,n,n.type,n.pendingProps,o);case 17:return s=n.type,f=n.pendingProps,f=n.elementType===s?f:Xt(s,f),Ns(e,n),n.tag=1,St(s)?(e=!0,ls(n)):e=!1,Qr(n,o),Qf(n,s,f),Va(n,s,f,o),Ya(null,n,s,!0,e,o);case 19:return dd(e,n,o);case 22:return id(e,n,o)}throw Error(i(156,n.tag))};function Dd(e,n){return Ai(e,n)}function b0(e,n,o,s){this.tag=e,this.key=o,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=s,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ut(e,n,o,s){return new b0(e,n,o,s)}function du(e){return e=e.prototype,!(!e||!e.isReactComponent)}function L0(e){if(typeof e=="function")return du(e)?1:0;if(e!=null){if(e=e.$$typeof,e===te)return 11;if(e===U)return 14}return 2}function Un(e,n){var o=e.alternate;return o===null?(o=Ut(e.tag,n,e.key,e.mode),o.elementType=e.elementType,o.type=e.type,o.stateNode=e.stateNode,o.alternate=e,e.alternate=o):(o.pendingProps=n,o.type=e.type,o.flags=0,o.subtreeFlags=0,o.deletions=null),o.flags=e.flags&14680064,o.childLanes=e.childLanes,o.lanes=e.lanes,o.child=e.child,o.memoizedProps=e.memoizedProps,o.memoizedState=e.memoizedState,o.updateQueue=e.updateQueue,n=e.dependencies,o.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},o.sibling=e.sibling,o.index=e.index,o.ref=e.ref,o}function Ds(e,n,o,s,f,p){var S=2;if(s=e,typeof e=="function")du(e)&&(S=1);else if(typeof e=="string")S=5;else e:switch(e){case V:return gr(o.children,f,p,n);case W:S=8,f|=8;break;case X:return e=Ut(12,o,n,f|2),e.elementType=X,e.lanes=p,e;case J:return e=Ut(13,o,n,f),e.elementType=J,e.lanes=p,e;case P:return e=Ut(19,o,n,f),e.elementType=P,e.lanes=p,e;case b:return As(o,f,p,n);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case ee:S=10;break e;case q:S=9;break e;case te:S=11;break e;case U:S=14;break e;case B:S=16,s=null;break e}throw Error(i(130,e==null?e:typeof e,""))}return n=Ut(S,o,n,f),n.elementType=e,n.type=s,n.lanes=p,n}function gr(e,n,o,s){return e=Ut(7,e,s,n),e.lanes=o,e}function As(e,n,o,s){return e=Ut(22,e,s,n),e.elementType=b,e.lanes=o,e.stateNode={isHidden:!1},e}function pu(e,n,o){return e=Ut(6,e,null,n),e.lanes=o,e}function hu(e,n,o){return n=Ut(4,e.children!==null?e.children:[],e.key,n),n.lanes=o,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function D0(e,n,o,s,f){this.tag=n,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=nr(0),this.expirationTimes=nr(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=nr(0),this.identifierPrefix=s,this.onRecoverableError=f,this.mutableSourceEagerHydrationData=null}function gu(e,n,o,s,f,p,S,T,O){return e=new D0(e,n,o,T,O),n===1?(n=1,p===!0&&(n|=8)):n=0,p=Ut(3,null,null,n),e.current=p,p.stateNode=e,p.memoizedState={element:s,isDehydrated:o,cache:null,transitions:null,pendingSuspenseBoundaries:null},ja(p),e}function A0(e,n,o){var s=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:$,key:s==null?null:""+s,children:e,containerInfo:n,implementation:o}}function Ad(e){if(!e)return Ln;e=e._reactInternals;e:{if(on(e)!==e||e.tag!==1)throw Error(i(170));var n=e;do{switch(n.tag){case 3:n=n.stateNode.context;break e;case 1:if(St(n.type)){n=n.stateNode.__reactInternalMemoizedMergedChildContext;break e}}n=n.return}while(n!==null);throw Error(i(171))}if(e.tag===1){var o=e.type;if(St(o))return ff(e,o,n)}return n}function $d(e,n,o,s,f,p,S,T,O){return e=gu(o,s,!0,e,f,p,S,T,O),e.context=Ad(null),o=e.current,s=vt(),f=Vn(o),p=xn(s,f),p.callback=n??null,$n(o,p,f),e.current.lanes=f,rr(e,f,s),Nt(e,s),e}function $s(e,n,o,s){var f=n.current,p=vt(),S=Vn(f);return o=Ad(o),n.context===null?n.context=o:n.pendingContext=o,n=xn(p,S),n.payload={element:e},s=s===void 0?null:s,s!==null&&(n.callback=s),e=$n(f,n,S),e!==null&&(Gt(e,f,S,p),gs(e,f,S)),S}function Os(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function Od(e,n){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var o=e.retryLane;e.retryLane=o!==0&&o<n?o:n}}function mu(e,n){Od(e,n),(e=e.alternate)&&Od(e,n)}function $0(){return null}var Fd=typeof reportError=="function"?reportError:function(e){console.error(e)};function yu(e){this._internalRoot=e}Fs.prototype.render=yu.prototype.render=function(e){var n=this._internalRoot;if(n===null)throw Error(i(409));$s(e,n,null,null)},Fs.prototype.unmount=yu.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var n=e.containerInfo;dr(function(){$s(null,e,null,null)}),n[hn]=null}};function Fs(e){this._internalRoot=e}Fs.prototype.unstable_scheduleHydration=function(e){if(e){var n=Sc();e={blockedOn:null,target:e,priority:n};for(var o=0;o<In.length&&n!==0&&n<In[o].priority;o++);In.splice(o,0,e),o===0&&Nc(e)}};function vu(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function Hs(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function Hd(){}function O0(e,n,o,s,f){if(f){if(typeof s=="function"){var p=s;s=function(){var G=Os(S);p.call(G)}}var S=$d(n,s,e,0,null,!1,!1,"",Hd);return e._reactRootContainer=S,e[hn]=S.current,Ho(e.nodeType===8?e.parentNode:e),dr(),S}for(;f=e.lastChild;)e.removeChild(f);if(typeof s=="function"){var T=s;s=function(){var G=Os(O);T.call(G)}}var O=gu(e,0,!1,null,null,!1,!1,"",Hd);return e._reactRootContainer=O,e[hn]=O.current,Ho(e.nodeType===8?e.parentNode:e),dr(function(){$s(n,O,o,s)}),O}function Vs(e,n,o,s,f){var p=o._reactRootContainer;if(p){var S=p;if(typeof f=="function"){var T=f;f=function(){var O=Os(S);T.call(O)}}$s(n,S,e,f)}else S=O0(o,n,e,f,s);return Os(S)}wc=function(e){switch(e.tag){case 3:var n=e.stateNode;if(n.current.memoizedState.isDehydrated){var o=tr(n.pendingLanes);o!==0&&(zr(n,o|1),Nt(n,Ve()),(Re&6)===0&&(eo=Ve()+500,Dn()))}break;case 13:dr(function(){var s=vn(e,1);if(s!==null){var f=vt();Gt(s,e,1,f)}}),mu(e,1)}},Bl=function(e){if(e.tag===13){var n=vn(e,134217728);if(n!==null){var o=vt();Gt(n,e,134217728,o)}mu(e,134217728)}},_c=function(e){if(e.tag===13){var n=Vn(e),o=vn(e,n);if(o!==null){var s=vt();Gt(o,e,n,s)}mu(e,n)}},Sc=function(){return Le},kc=function(e,n){var o=Le;try{return Le=e,n()}finally{Le=o}},wo=function(e,n,o){switch(n){case"input":if(Te(e,o),n=o.name,o.type==="radio"&&n!=null){for(o=e;o.parentNode;)o=o.parentNode;for(o=o.querySelectorAll("input[name="+JSON.stringify(""+n)+'][type="radio"]'),n=0;n<o.length;n++){var s=o[n];if(s!==e&&s.form===e.form){var f=is(s);if(!f)throw Error(i(90));xe(s),Te(s,f)}}}break;case"textarea":$t(e,o);break;case"select":n=o.value,n!=null&&qe(e,!!o.multiple,n,!1)}},Ri=uu,zi=dr;var F0={usingClientEntryPoint:!1,Events:[Uo,Hr,is,Ii,Ti,uu]},oi={findFiberByHostInstance:or,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},H0={bundleType:oi.bundleType,version:oi.version,rendererPackageName:oi.rendererPackageName,rendererConfig:oi.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:M.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=Li(e),e===null?null:e.stateNode},findFiberByHostInstance:oi.findFiberByHostInstance||$0,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Bs=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Bs.isDisabled&&Bs.supportsFiber)try{Ir=Bs.inject(H0),Pt=Bs}catch{}}return Ct.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=F0,Ct.createPortal=function(e,n){var o=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!vu(n))throw Error(i(200));return A0(e,n,null,o)},Ct.createRoot=function(e,n){if(!vu(e))throw Error(i(299));var o=!1,s="",f=Fd;return n!=null&&(n.unstable_strictMode===!0&&(o=!0),n.identifierPrefix!==void 0&&(s=n.identifierPrefix),n.onRecoverableError!==void 0&&(f=n.onRecoverableError)),n=gu(e,1,!1,null,null,o,!1,s,f),e[hn]=n.current,Ho(e.nodeType===8?e.parentNode:e),new yu(n)},Ct.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var n=e._reactInternals;if(n===void 0)throw typeof e.render=="function"?Error(i(188)):(e=Object.keys(e).join(","),Error(i(268,e)));return e=Li(n),e=e===null?null:e.stateNode,e},Ct.flushSync=function(e){return dr(e)},Ct.hydrate=function(e,n,o){if(!Hs(n))throw Error(i(200));return Vs(null,e,n,!0,o)},Ct.hydrateRoot=function(e,n,o){if(!vu(e))throw Error(i(405));var s=o!=null&&o.hydratedSources||null,f=!1,p="",S=Fd;if(o!=null&&(o.unstable_strictMode===!0&&(f=!0),o.identifierPrefix!==void 0&&(p=o.identifierPrefix),o.onRecoverableError!==void 0&&(S=o.onRecoverableError)),n=$d(n,null,e,1,o??null,f,!1,p,S),e[hn]=n.current,Ho(e),s)for(e=0;e<s.length;e++)o=s[e],f=o._getVersion,f=f(o._source),n.mutableSourceEagerHydrationData==null?n.mutableSourceEagerHydrationData=[o,f]:n.mutableSourceEagerHydrationData.push(o,f);return new Fs(n)},Ct.render=function(e,n,o){if(!Hs(n))throw Error(i(200));return Vs(null,e,n,!1,o)},Ct.unmountComponentAtNode=function(e){if(!Hs(e))throw Error(i(40));return e._reactRootContainer?(dr(function(){Vs(null,null,e,!1,function(){e._reactRootContainer=null,e[hn]=null})}),!0):!1},Ct.unstable_batchedUpdates=uu,Ct.unstable_renderSubtreeIntoContainer=function(e,n,o,s){if(!Hs(o))throw Error(i(200));if(e==null||e._reactInternals===void 0)throw Error(i(38));return Vs(e,n,o,!1,s)},Ct.version="18.3.1-next-f1338f8080-20240426",Ct}var Qd;function gh(){if(Qd)return _u.exports;Qd=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(r){console.error(r)}}return t(),_u.exports=K0(),_u.exports}var Gd;function Q0(){if(Gd)return Us;Gd=1;var t=gh();return Us.createRoot=t.createRoot,Us.hydrateRoot=t.hydrateRoot,Us}var G0=Q0();async function tt(t){if(!t.ok){let r;try{r=(await t.json()).detail}catch{r=t.statusText}throw new qn(t.status,r)}return t.json()}class qn extends Error{constructor(r,i){super(typeof i=="string"?i:JSON.stringify(i)),this.status=r,this.detail=i}}const He={schema:()=>fetch("/api/step-schema").then(t=>tt(t)),listFlows:()=>fetch("/api/flows").then(t=>tt(t)),getFlow:t=>fetch(`/api/flows/${encodeURIComponent(t)}`).then(r=>tt(r)),saveFlow:(t,r)=>fetch(`/api/flows/${encodeURIComponent(t)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}).then(i=>tt(i)),deleteFlow:t=>fetch(`/api/flows/${encodeURIComponent(t)}`,{method:"DELETE"}).then(r=>tt(r)),runFlow:(t,r,i={},l)=>fetch(`/api/flows/${encodeURIComponent(t)}/run`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({close_mode:r,initial_vars:i,subflow:l??null})}).then(a=>tt(a)),assist:(t,r,i)=>fetch(`/api/flows/${encodeURIComponent(t)}/assist`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({instruction:r,nodes:i.nodes,edges:i.edges,start:i.start??null,settings:i.settings,subflows:i.subflows??[]})}).then(l=>tt(l)),desktopWindows:()=>fetch("/api/desktop/windows").then(t=>tt(t)),inspectWindow:t=>fetch("/api/desktop/inspect",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:t})}).then(r=>tt(r)),listBlocks:()=>fetch("/api/blocks").then(t=>tt(t)),getBlock:t=>fetch(`/api/blocks/${encodeURIComponent(t)}`).then(r=>tt(r)),saveBlock:(t,r)=>fetch(`/api/blocks/${encodeURIComponent(t)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}).then(i=>tt(i)),deleteBlock:t=>fetch(`/api/blocks/${encodeURIComponent(t)}`,{method:"DELETE"}).then(r=>tt(r)),listDesktopImages:()=>fetch("/api/desktop-images").then(t=>tt(t)),captureDesktopImage:t=>fetch("/api/desktop-images/capture",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})}).then(r=>tt(r)),deleteDesktopImage:t=>fetch(`/api/desktop-images/${encodeURIComponent(t)}`,{method:"DELETE"}).then(r=>tt(r)),desktopImageUrl:t=>`/api/desktop-images/${encodeURIComponent(t)}`,run:t=>fetch(`/api/runs/${t}`).then(r=>tt(r)),closeBrowser:t=>fetch(`/api/runs/${t}/close-browser`,{method:"POST"}).then(r=>tt(r)),showTrace:t=>fetch(`/api/runs/${t}/show-trace`,{method:"POST"}).then(r=>tt(r)),exportUrl:t=>`/api/flows/${encodeURIComponent(t)}/export`},qd={en:{app_title:"RPA Tool",page_title:"RPA Tool – flow builder",new_flow:"New flow",delete_flow:"Delete flow",save:"Save",saved:"Saved",unsaved:"Unsaved changes",run:"Run flow",close_browser:"Close browser",show_trace:"Show trace",wiki:"Wiki",settings:"⚙ Settings",export:"Export as script",close_always:"Close the browser",close_on_success:"Keep open on error",close_never:"Always keep open",add_step:"+ Add step",add_step_after:"Add step after",add_step_in:"+ Add step",add_branch:"+ Add branch",else_toggle:"…else (else)",remove:"Remove",remove_branch:"Remove",branch_if:"If",branch_else_if:"…else if",branch_case:"Branch {n}",out_next:"next",start_node:"▶ start = top node",unknown_step:"Unknown step type",tab_main:"Main",tab_add:"New subflow",tab_run:"Run this tab",subflow_name_prompt:"Subflow name:",subflow_delete_confirm:"Delete this subflow?",subflow_in_use:"A call_flow node still targets this subflow. Delete anyway?",leave_unsaved:"Discard unsaved changes and open the other flow?",callflow_target:"Target",callflow_local:"This file",callflow_external:"Other flows",callflow_open:"Open",callflow_in:"Inputs →",callflow_out:"Outputs ←",callflow_in_name:"input name",callflow_in_value:"value / {var}",callflow_out_from:"subflow var",callflow_out_to:"caller var",callflow_add_in:"+ input",callflow_add_out:"+ output",add_field:"+ Add column",column_name:"Column name",label_ph:"Label (optional)",on_error_stop:"On error: stop",on_error_continue:"On error: continue",enabled_title:"Enabled (unchecked = skipped when running)",move_up:"Move up",move_down:"Move down",run_log:"Run log",variables:"Variables",no_vars:"No variables yet.",vars_hint:"Click a name to see its content (filled in once the flow finishes).",assist_title:"AI assistant",assist_hint:"Describe in plain language what the flow should do. The suggestion replaces the canvas (unsaved) so you can review it before saving/running.",assist_ph:"e.g. Go to example.com, wait for login, list all links and save them as CSV",assist_btn:"Suggest changes",assist_working:"Thinking…",assist_applied:"Suggestion applied — review, then Save / Run flow.",assist_unavailable:"Set ANTHROPIC_API_KEY (or run `ant auth login`) and restart the server to use this.",assist_failed:"Could not generate a flow: {msg}",status_running:"Running…",status_done:"Done",status_error:"Error",condition:"Condition",new_flow_prompt:"Name of new flow:",delete_flow_confirm:'Delete the flow "{name}"?',settings_hint:"Saved with the flow, so they travel along when you export it as a standalone script.",cancel:"Cancel",fit_view:"Fit to view",relayout:"Auto-arrange",var_list:"list, {n} item(s)",var_object:"object",var_text:"text, {n} chars",save_failed:"Save failed: {msg}",menu:"Menu",menu_flow:"Flow",menu_view:"View",menu_run:"Run",menu_tools:"Tools",language:"Language",run_settings:"Run settings…",inspect_window:"Inspect window",inspect_hint:"Pick a running window to list its controls — use name / auto_id / control_type in the desktop steps.",inspect_pick:"Window",inspect_load:"Load controls",inspect_unavailable:"Windows only — pywinauto could not be loaded.",inspect_make_click:"New desktop_click",inspect_make_type:"New desktop_type",inspect_copy:"Copy selector",inspect_none:"No windows found.",palette:"Steps",palette_search:"Search…",palette_blocks:"Blocks",palette_toggle:"Show/hide the step palette",palette_click_add:"Click + (or double-click) to add, or drag onto the canvas",block_save_selection:"💾 Save selection as block",block_insert:"Insert",block_none:"No blocks yet. Select nodes on the canvas and save them as a block.",block_name_prompt:"Block name:",block_desc_prompt:"Short description (optional):",block_saved:"Block saved.",block_select_first:"Select one or more nodes on the canvas first.",change_type:"Change step type",run_params_menu:"Run parameters / inputs",runp_title:"Run parameters",runp_hint:"Fill in the flow's input variables, or pick a saved value set. Used as {name} in the steps.",runp_set:"Value set",runp_set_none:"(none)",runp_save_set:"💾 Save as set",runp_set_name_prompt:"Name for the value set:",runp_add_var:"+ Add variable",runp_var_name:"name",runp_var_value:"value",inputs_title:"Run parameters / inputs",inputs_hint:"Declare the variables the flow expects at run time. They appear in the run dialog and resolve as {name}.",inputs_add:"+ Add input",inputs_sets:"Saved value sets",inputs_set_rename:"Rename"},sv:{app_title:"RPA-verktyg",page_title:"RPA-verktyg – flödesbyggare",new_flow:"Nytt flöde",delete_flow:"Ta bort flöde",save:"Spara",saved:"Sparat",unsaved:"Osparade ändringar",run:"Kör flöde",close_browser:"Stäng webbläsare",show_trace:"Visa trace",wiki:"Wiki",settings:"⚙ Inställningar",export:"Exportera som script",close_always:"Stäng webbläsaren",close_on_success:"Håll öppen vid fel",close_never:"Håll alltid öppen",add_step:"+ Lägg till steg",add_step_after:"Lägg till steg efter",add_step_in:"+ Lägg till steg",add_branch:"+ Lägg till gren",else_toggle:"…annars (else)",remove:"Ta bort",remove_branch:"Ta bort",branch_if:"Om",branch_else_if:"…annars om",branch_case:"Gren {n}",out_next:"nästa",start_node:"▶ start = översta noden",unknown_step:"Okänd stegtyp",tab_main:"Main",tab_add:"Nytt subflöde",tab_run:"Kör denna flik",subflow_name_prompt:"Subflödets namn:",subflow_delete_confirm:"Ta bort det här subflödet?",subflow_in_use:"En call_flow-nod pekar fortfarande på det här subflödet. Ta bort ändå?",leave_unsaved:"Kasta osparade ändringar och öppna det andra flödet?",callflow_target:"Mål",callflow_local:"Detta flöde",callflow_external:"Andra flöden",callflow_open:"Öppna",callflow_in:"Indata →",callflow_out:"Utdata ←",callflow_in_name:"indata-namn",callflow_in_value:"värde / {var}",callflow_out_from:"subflödets variabel",callflow_out_to:"anroparens variabel",callflow_add_in:"+ indata",callflow_add_out:"+ utdata",add_field:"+ Lägg till kolumn",column_name:"Kolumnnamn",label_ph:"Etikett (valfri)",on_error_stop:"Vid fel: stanna",on_error_continue:"Vid fel: fortsätt",enabled_title:"Aktiverat (avbockad = hoppas över vid körning)",move_up:"Flytta upp",move_down:"Flytta ner",run_log:"Körlogg",variables:"Variabler",no_vars:"Inga variabler ännu.",vars_hint:"Klicka på ett namn för att se innehållet (fylls i när flödet är klart).",assist_title:"AI-assistent",assist_hint:"Beskriv i klartext vad flödet ska göra. Förslaget ersätter canvasen (osparat) så du kan granska det innan du sparar/kör.",assist_ph:"t.ex. Gå till example.com, vänta på inloggning, lista alla länkar och spara som CSV",assist_btn:"Föreslå ändringar",assist_working:"Tänker…",assist_applied:"Förslag infogat — granska, sedan Spara / Kör flöde.",assist_unavailable:"Sätt ANTHROPIC_API_KEY (eller kör `ant auth login`) och starta om servern för att använda detta.",assist_failed:"Kunde inte generera ett flöde: {msg}",status_running:"Kör…",status_done:"Klar",status_error:"Fel",condition:"Villkor",new_flow_prompt:"Namn på nytt flöde:",delete_flow_confirm:'Ta bort flödet "{name}"?',settings_hint:"Sparas med flödet, så de följer med om du exporterar det som ett fristående script.",cancel:"Avbryt",fit_view:"Anpassa till vy",relayout:"Autoplacera",var_list:"lista, {n} post(er)",var_object:"objekt",var_text:"text, {n} tecken",save_failed:"Kunde inte spara: {msg}",menu:"Meny",menu_flow:"Flöde",menu_view:"Visning",menu_run:"Körning",menu_tools:"Verktyg",language:"Språk",run_settings:"Körningsinställningar…",inspect_window:"Inspektera fönster",inspect_hint:"Välj ett körande fönster för att lista dess kontroller — använd name / auto_id / control_type i desktop-stegen.",inspect_pick:"Fönster",inspect_load:"Hämta kontroller",inspect_unavailable:"Bara Windows — pywinauto kunde inte laddas.",inspect_make_click:"Nytt desktop_click",inspect_make_type:"Nytt desktop_type",inspect_copy:"Kopiera selector",inspect_none:"Inga fönster hittades.",palette:"Steg",palette_search:"Sök…",palette_blocks:"Block",palette_toggle:"Visa/dölj steg-paletten",palette_click_add:"Klicka + (eller dubbelklicka) för att lägga till, eller dra till canvasen",block_save_selection:"💾 Spara markering som block",block_insert:"Infoga",block_none:"Inga block än. Markera noder på canvasen och spara dem som ett block.",block_name_prompt:"Blockets namn:",block_desc_prompt:"Kort beskrivning (valfri):",block_saved:"Blocket sparat.",block_select_first:"Markera en eller flera noder på canvasen först.",change_type:"Byt stegtyp",run_params_menu:"Kör-parametrar / indata",runp_title:"Kör-parametrar",runp_hint:"Fyll i flödets indata-variabler, eller välj ett sparat värde-set. Används som {name} i stegen.",runp_set:"Värde-set",runp_set_none:"(inget)",runp_save_set:"💾 Spara som set",runp_set_name_prompt:"Namn på värde-setet:",runp_add_var:"+ Lägg till variabel",runp_var_name:"namn",runp_var_value:"värde",inputs_title:"Kör-parametrar / indata",inputs_hint:"Deklarera vilka variabler flödet förväntar sig vid körning. De dyker upp i kördialogen och löses som {name}.",inputs_add:"+ Lägg till indata",inputs_sets:"Sparade värde-set",inputs_set_rename:"Döp om"}};function q0(t){return(r,i)=>{let l=qd[t][r]??qd.en[r]??r;if(i)for(const[a,u]of Object.entries(i))l=l.replace(`{${a}}`,String(u));return l}}function wr(){try{return crypto.randomUUID().slice(0,12)}catch{return Math.random().toString(36).slice(2,14)}}const Zd=230,Jd=380;function ep(t,r){const i=(t??[]).map(u=>({...u,id:u.id??wr()})),l=new Set(i.map(u=>u.id)),a=(r??[]).filter(u=>l.has(u.source)&&l.has(u.target)).map(u=>({...u,id:u.id??wr()}));return{nodes:i,edges:a}}let Z0=0;function J0(t){return(t||"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")||`sub-${++Z0}`}function el(t){const{nodes:r,edges:i}=ep(t==null?void 0:t.nodes,t==null?void 0:t.edges),l=((t==null?void 0:t.subflows)??[]).map(a=>{const u=ep(a.nodes,a.edges),c=a.name||a.id||"Subflöde";return{id:a.id||J0(c),name:c,nodes:u.nodes,edges:u.edges,start:a.start??null,inputs:a.inputs??[]}});return{format:"graph",nodes:r,edges:i,start:(t==null?void 0:t.start)??null,settings:(t==null?void 0:t.settings)??{},layout:(t==null?void 0:t.layout)??{},inputs:(t==null?void 0:t.inputs)??[],input_sets:(t==null?void 0:t.input_sets)??{},subflows:l}}function Ou(t,r){if(t.length===0)return null;const i=new Set(r.map(u=>u.target)),l=t.filter(u=>!i.has(u.id));return[...l.length?l:t].sort((u,c)=>{var d,h;return(((d=u.position)==null?void 0:d.y)??0)-(((h=c.position)==null?void 0:h.y)??0)})[0].id??null}function mh(t,r){const i=new Map;for(const v of r){const y=i.get(v.source)??[];y.push(v.target),i.set(v.source,y)}const l=Ou(t,r),a=new Map,u=l?[l]:[];for(l&&a.set(l,0);u.length;){const v=u.shift(),y=a.get(v);for(const g of i.get(v)??[])a.has(g)||(a.set(g,y+1),u.push(g))}const c=new Map,d=Math.max(0,...a.values()),h={};let m=0;for(const v of t){const y=a.get(v.id);if(y===void 0){h[v.id]={x:m++*Jd,y:(d+2)*Zd};continue}const g=c.get(y)??0;c.set(y,g+1),h[v.id]={x:g*Jd,y:y*Zd}}return h}function tp(t,r){const i=new Map,l=t.map(u=>{const c=wr();return i.set(u.id,c),{...u,id:c}}),a=r.filter(u=>i.has(u.source)&&i.has(u.target)).map(u=>({...u,id:wr(),source:i.get(u.source),target:i.get(u.target)}));return{nodes:l,edges:a}}function Fu(){return{condition:{kind:"element_exists"}}}function oo(t,r,i={x:0,y:0}){const l=t.step_types.find(u=>u.type===r),a={type:r,id:wr(),position:{...i}};for(const u of(l==null?void 0:l.fields)??[])u.default!==void 0&&u.default!==""&&(a[u.key]=u.default);return(l==null?void 0:l.control)==="if"&&(a.branches=[Fu()]),r==="extract_row"&&(a.fields=[{name:"",by:"css",value:""}]),r==="call_flow"&&(a.target="",a.in=[],a.out=[]),a}function ey(t,r,i){const l=oo(t,i,r.position??{x:0,y:0});return l.id=r.id,r.label&&(l.label=r.label),r.enabled===!1&&(l.enabled=!1),r.on_error==="continue"&&(l.on_error="continue"),l}function ty(t){return(t??"").split(",").map(r=>r.trim()).filter(Boolean)}function ny(t){const r={};for(const i of t)i.name&&i.default!=null&&i.default!==""&&(r[i.name]=String(i.default));return r}function np(t,r){const i={...t};for(const l of r){const a=l.name.trim();a&&(i[a]=l.value)}return i}function ry(t){var r;return(((r=t.inputs)==null?void 0:r.length)??0)>0||Object.keys(t.input_sets??{}).length>0}function oy(t){const{t:r}=t,[i,l]=D.useState(!1),a=D.useRef(null);D.useEffect(()=>{if(!i)return;const c=h=>{a.current&&!a.current.contains(h.target)&&l(!1)},d=h=>h.key==="Escape"&&l(!1);return document.addEventListener("mousedown",c),document.addEventListener("keydown",d),()=>{document.removeEventListener("mousedown",c),document.removeEventListener("keydown",d)}},[i]);const u=c=>()=>{l(!1),c()};return x.jsxs("div",{className:"menu-wrap",ref:a,children:[x.jsx("button",{className:"secondary",title:r("menu"),onClick:()=>l(c=>!c),children:"⚙"}),i&&x.jsxs("div",{className:"menu-popover",children:[x.jsx("div",{className:"menu-section",children:r("menu_flow")}),x.jsx("button",{className:"menu-item",onClick:u(t.onNew),children:r("new_flow")}),x.jsx("button",{className:"menu-item",onClick:u(t.onDelete),disabled:!t.currentName,children:r("delete_flow")}),x.jsx("a",{className:"menu-item",href:t.currentName?He.exportUrl(t.currentName):void 0,target:"_blank",rel:"noopener",onClick:()=>l(!1),children:r("export")}),x.jsx("div",{className:"menu-section",children:r("menu_run")}),x.jsxs("label",{className:"menu-item menu-field",children:[x.jsx("span",{children:r("menu_run")}),x.jsxs("select",{value:t.closeMode,onChange:c=>t.setCloseMode(c.target.value),children:[x.jsx("option",{value:"always",children:r("close_always")}),x.jsx("option",{value:"on_success",children:r("close_on_success")}),x.jsx("option",{value:"never",children:r("close_never")})]})]}),x.jsx("button",{className:"menu-item",onClick:u(t.onOpenSettings),children:r("run_settings")}),x.jsx("button",{className:"menu-item",onClick:u(t.onOpenInputs),children:r("run_params_menu")}),x.jsx("div",{className:"menu-section",children:r("menu_view")}),x.jsxs("label",{className:"menu-item menu-field",children:[x.jsx("span",{children:r("language")}),x.jsxs("select",{value:t.lang,onChange:c=>t.setLang(c.target.value),children:[x.jsx("option",{value:"en",children:"English"}),x.jsx("option",{value:"sv",children:"Svenska"})]})]}),x.jsx("div",{className:"menu-section",children:r("menu_tools")}),x.jsx("button",{className:"menu-item",onClick:u(t.onOpenInspect),children:r("inspect_window")}),x.jsx("a",{className:"menu-item",href:"/wiki",target:"_blank",rel:"noopener",onClick:()=>l(!1),children:r("wiki")})]})]})}function iy(t){const{t:r}=t;return x.jsxs("header",{children:[x.jsx("h1",{children:r("app_title")}),x.jsx("select",{value:t.currentName??"",onChange:i=>t.onSelect(i.target.value),children:t.flowNames.map(i=>x.jsx("option",{value:i,children:i},i))}),x.jsx("span",{className:"spacer"}),x.jsx("span",{className:"dirty-dot "+(t.dirty?"on":""),title:t.dirty?r("unsaved"):r("saved")}),x.jsx("button",{className:"secondary",onClick:t.onSave,children:r("save")}),x.jsx("button",{onClick:t.onRun,disabled:t.running||!t.currentName,children:r("run")}),x.jsx(oy,{t:r,lang:t.lang,setLang:t.setLang,closeMode:t.closeMode,setCloseMode:t.setCloseMode,currentName:t.currentName,onNew:t.onNew,onDelete:t.onDelete,onOpenSettings:t.onOpenSettings,onOpenInspect:t.onOpenInspect,onOpenInputs:t.onOpenInputs})]})}function Ge(t){if(typeof t=="string"||typeof t=="number")return""+t;let r="";if(Array.isArray(t))for(let i=0,l;i<t.length;i++)(l=Ge(t[i]))!==""&&(r+=(r&&" ")+l);else for(let i in t)t[i]&&(r+=(r&&" ")+i);return r}var sy={value:()=>{}};function yl(){for(var t=0,r=arguments.length,i={},l;t<r;++t){if(!(l=arguments[t]+"")||l in i||/[\s.]/.test(l))throw new Error("illegal type: "+l);i[l]=[]}return new tl(i)}function tl(t){this._=t}function ly(t,r){return t.trim().split(/^|\s+/).map(function(i){var l="",a=i.indexOf(".");if(a>=0&&(l=i.slice(a+1),i=i.slice(0,a)),i&&!r.hasOwnProperty(i))throw new Error("unknown type: "+i);return{type:i,name:l}})}tl.prototype=yl.prototype={constructor:tl,on:function(t,r){var i=this._,l=ly(t+"",i),a,u=-1,c=l.length;if(arguments.length<2){for(;++u<c;)if((a=(t=l[u]).type)&&(a=ay(i[a],t.name)))return a;return}if(r!=null&&typeof r!="function")throw new Error("invalid callback: "+r);for(;++u<c;)if(a=(t=l[u]).type)i[a]=rp(i[a],t.name,r);else if(r==null)for(a in i)i[a]=rp(i[a],t.name,null);return this},copy:function(){var t={},r=this._;for(var i in r)t[i]=r[i].slice();return new tl(t)},call:function(t,r){if((a=arguments.length-2)>0)for(var i=new Array(a),l=0,a,u;l<a;++l)i[l]=arguments[l+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(u=this._[t],l=0,a=u.length;l<a;++l)u[l].value.apply(r,i)},apply:function(t,r,i){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var l=this._[t],a=0,u=l.length;a<u;++a)l[a].value.apply(r,i)}};function ay(t,r){for(var i=0,l=t.length,a;i<l;++i)if((a=t[i]).name===r)return a.value}function rp(t,r,i){for(var l=0,a=t.length;l<a;++l)if(t[l].name===r){t[l]=sy,t=t.slice(0,l).concat(t.slice(l+1));break}return i!=null&&t.push({name:r,value:i}),t}var Hu="http://www.w3.org/1999/xhtml";const op={svg:"http://www.w3.org/2000/svg",xhtml:Hu,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function vl(t){var r=t+="",i=r.indexOf(":");return i>=0&&(r=t.slice(0,i))!=="xmlns"&&(t=t.slice(i+1)),op.hasOwnProperty(r)?{space:op[r],local:t}:t}function uy(t){return function(){var r=this.ownerDocument,i=this.namespaceURI;return i===Hu&&r.documentElement.namespaceURI===Hu?r.createElement(t):r.createElementNS(i,t)}}function cy(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function yh(t){var r=vl(t);return(r.local?cy:uy)(r)}function fy(){}function tc(t){return t==null?fy:function(){return this.querySelector(t)}}function dy(t){typeof t!="function"&&(t=tc(t));for(var r=this._groups,i=r.length,l=new Array(i),a=0;a<i;++a)for(var u=r[a],c=u.length,d=l[a]=new Array(c),h,m,v=0;v<c;++v)(h=u[v])&&(m=t.call(h,h.__data__,v,u))&&("__data__"in h&&(m.__data__=h.__data__),d[v]=m);return new Dt(l,this._parents)}function py(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function hy(){return[]}function vh(t){return t==null?hy:function(){return this.querySelectorAll(t)}}function gy(t){return function(){return py(t.apply(this,arguments))}}function my(t){typeof t=="function"?t=gy(t):t=vh(t);for(var r=this._groups,i=r.length,l=[],a=[],u=0;u<i;++u)for(var c=r[u],d=c.length,h,m=0;m<d;++m)(h=c[m])&&(l.push(t.call(h,h.__data__,m,c)),a.push(h));return new Dt(l,a)}function xh(t){return function(){return this.matches(t)}}function wh(t){return function(r){return r.matches(t)}}var yy=Array.prototype.find;function vy(t){return function(){return yy.call(this.children,t)}}function xy(){return this.firstElementChild}function wy(t){return this.select(t==null?xy:vy(typeof t=="function"?t:wh(t)))}var _y=Array.prototype.filter;function Sy(){return Array.from(this.children)}function ky(t){return function(){return _y.call(this.children,t)}}function Ey(t){return this.selectAll(t==null?Sy:ky(typeof t=="function"?t:wh(t)))}function Ny(t){typeof t!="function"&&(t=xh(t));for(var r=this._groups,i=r.length,l=new Array(i),a=0;a<i;++a)for(var u=r[a],c=u.length,d=l[a]=[],h,m=0;m<c;++m)(h=u[m])&&t.call(h,h.__data__,m,u)&&d.push(h);return new Dt(l,this._parents)}function _h(t){return new Array(t.length)}function Cy(){return new Dt(this._enter||this._groups.map(_h),this._parents)}function sl(t,r){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=r}sl.prototype={constructor:sl,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,r){return this._parent.insertBefore(t,r)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function My(t){return function(){return t}}function jy(t,r,i,l,a,u){for(var c=0,d,h=r.length,m=u.length;c<m;++c)(d=r[c])?(d.__data__=u[c],l[c]=d):i[c]=new sl(t,u[c]);for(;c<h;++c)(d=r[c])&&(a[c]=d)}function Py(t,r,i,l,a,u,c){var d,h,m=new Map,v=r.length,y=u.length,g=new Array(v),w;for(d=0;d<v;++d)(h=r[d])&&(g[d]=w=c.call(h,h.__data__,d,r)+"",m.has(w)?a[d]=h:m.set(w,h));for(d=0;d<y;++d)w=c.call(t,u[d],d,u)+"",(h=m.get(w))?(l[d]=h,h.__data__=u[d],m.delete(w)):i[d]=new sl(t,u[d]);for(d=0;d<v;++d)(h=r[d])&&m.get(g[d])===h&&(a[d]=h)}function Iy(t){return t.__data__}function Ty(t,r){if(!arguments.length)return Array.from(this,Iy);var i=r?Py:jy,l=this._parents,a=this._groups;typeof t!="function"&&(t=My(t));for(var u=a.length,c=new Array(u),d=new Array(u),h=new Array(u),m=0;m<u;++m){var v=l[m],y=a[m],g=y.length,w=Ry(t.call(v,v&&v.__data__,m,l)),_=w.length,C=d[m]=new Array(_),E=c[m]=new Array(_),N=h[m]=new Array(g);i(v,y,C,E,N,w,r);for(var I=0,k=0,M,F;I<_;++I)if(M=C[I]){for(I>=k&&(k=I+1);!(F=E[k])&&++k<_;);M._next=F||null}}return c=new Dt(c,l),c._enter=d,c._exit=h,c}function Ry(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function zy(){return new Dt(this._exit||this._groups.map(_h),this._parents)}function by(t,r,i){var l=this.enter(),a=this,u=this.exit();return typeof t=="function"?(l=t(l),l&&(l=l.selection())):l=l.append(t+""),r!=null&&(a=r(a),a&&(a=a.selection())),i==null?u.remove():i(u),l&&a?l.merge(a).order():a}function Ly(t){for(var r=t.selection?t.selection():t,i=this._groups,l=r._groups,a=i.length,u=l.length,c=Math.min(a,u),d=new Array(a),h=0;h<c;++h)for(var m=i[h],v=l[h],y=m.length,g=d[h]=new Array(y),w,_=0;_<y;++_)(w=m[_]||v[_])&&(g[_]=w);for(;h<a;++h)d[h]=i[h];return new Dt(d,this._parents)}function Dy(){for(var t=this._groups,r=-1,i=t.length;++r<i;)for(var l=t[r],a=l.length-1,u=l[a],c;--a>=0;)(c=l[a])&&(u&&c.compareDocumentPosition(u)^4&&u.parentNode.insertBefore(c,u),u=c);return this}function Ay(t){t||(t=$y);function r(y,g){return y&&g?t(y.__data__,g.__data__):!y-!g}for(var i=this._groups,l=i.length,a=new Array(l),u=0;u<l;++u){for(var c=i[u],d=c.length,h=a[u]=new Array(d),m,v=0;v<d;++v)(m=c[v])&&(h[v]=m);h.sort(r)}return new Dt(a,this._parents).order()}function $y(t,r){return t<r?-1:t>r?1:t>=r?0:NaN}function Oy(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function Fy(){return Array.from(this)}function Hy(){for(var t=this._groups,r=0,i=t.length;r<i;++r)for(var l=t[r],a=0,u=l.length;a<u;++a){var c=l[a];if(c)return c}return null}function Vy(){let t=0;for(const r of this)++t;return t}function By(){return!this.node()}function Uy(t){for(var r=this._groups,i=0,l=r.length;i<l;++i)for(var a=r[i],u=0,c=a.length,d;u<c;++u)(d=a[u])&&t.call(d,d.__data__,u,a);return this}function Wy(t){return function(){this.removeAttribute(t)}}function Yy(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Xy(t,r){return function(){this.setAttribute(t,r)}}function Ky(t,r){return function(){this.setAttributeNS(t.space,t.local,r)}}function Qy(t,r){return function(){var i=r.apply(this,arguments);i==null?this.removeAttribute(t):this.setAttribute(t,i)}}function Gy(t,r){return function(){var i=r.apply(this,arguments);i==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,i)}}function qy(t,r){var i=vl(t);if(arguments.length<2){var l=this.node();return i.local?l.getAttributeNS(i.space,i.local):l.getAttribute(i)}return this.each((r==null?i.local?Yy:Wy:typeof r=="function"?i.local?Gy:Qy:i.local?Ky:Xy)(i,r))}function Sh(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function Zy(t){return function(){this.style.removeProperty(t)}}function Jy(t,r,i){return function(){this.style.setProperty(t,r,i)}}function ev(t,r,i){return function(){var l=r.apply(this,arguments);l==null?this.style.removeProperty(t):this.style.setProperty(t,l,i)}}function tv(t,r,i){return arguments.length>1?this.each((r==null?Zy:typeof r=="function"?ev:Jy)(t,r,i??"")):lo(this.node(),t)}function lo(t,r){return t.style.getPropertyValue(r)||Sh(t).getComputedStyle(t,null).getPropertyValue(r)}function nv(t){return function(){delete this[t]}}function rv(t,r){return function(){this[t]=r}}function ov(t,r){return function(){var i=r.apply(this,arguments);i==null?delete this[t]:this[t]=i}}function iv(t,r){return arguments.length>1?this.each((r==null?nv:typeof r=="function"?ov:rv)(t,r)):this.node()[t]}function kh(t){return t.trim().split(/^|\s+/)}function nc(t){return t.classList||new Eh(t)}function Eh(t){this._node=t,this._names=kh(t.getAttribute("class")||"")}Eh.prototype={add:function(t){var r=this._names.indexOf(t);r<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var r=this._names.indexOf(t);r>=0&&(this._names.splice(r,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function Nh(t,r){for(var i=nc(t),l=-1,a=r.length;++l<a;)i.add(r[l])}function Ch(t,r){for(var i=nc(t),l=-1,a=r.length;++l<a;)i.remove(r[l])}function sv(t){return function(){Nh(this,t)}}function lv(t){return function(){Ch(this,t)}}function av(t,r){return function(){(r.apply(this,arguments)?Nh:Ch)(this,t)}}function uv(t,r){var i=kh(t+"");if(arguments.length<2){for(var l=nc(this.node()),a=-1,u=i.length;++a<u;)if(!l.contains(i[a]))return!1;return!0}return this.each((typeof r=="function"?av:r?sv:lv)(i,r))}function cv(){this.textContent=""}function fv(t){return function(){this.textContent=t}}function dv(t){return function(){var r=t.apply(this,arguments);this.textContent=r??""}}function pv(t){return arguments.length?this.each(t==null?cv:(typeof t=="function"?dv:fv)(t)):this.node().textContent}function hv(){this.innerHTML=""}function gv(t){return function(){this.innerHTML=t}}function mv(t){return function(){var r=t.apply(this,arguments);this.innerHTML=r??""}}function yv(t){return arguments.length?this.each(t==null?hv:(typeof t=="function"?mv:gv)(t)):this.node().innerHTML}function vv(){this.nextSibling&&this.parentNode.appendChild(this)}function xv(){return this.each(vv)}function wv(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function _v(){return this.each(wv)}function Sv(t){var r=typeof t=="function"?t:yh(t);return this.select(function(){return this.appendChild(r.apply(this,arguments))})}function kv(){return null}function Ev(t,r){var i=typeof t=="function"?t:yh(t),l=r==null?kv:typeof r=="function"?r:tc(r);return this.select(function(){return this.insertBefore(i.apply(this,arguments),l.apply(this,arguments)||null)})}function Nv(){var t=this.parentNode;t&&t.removeChild(this)}function Cv(){return this.each(Nv)}function Mv(){var t=this.cloneNode(!1),r=this.parentNode;return r?r.insertBefore(t,this.nextSibling):t}function jv(){var t=this.cloneNode(!0),r=this.parentNode;return r?r.insertBefore(t,this.nextSibling):t}function Pv(t){return this.select(t?jv:Mv)}function Iv(t){return arguments.length?this.property("__data__",t):this.node().__data__}function Tv(t){return function(r){t.call(this,r,this.__data__)}}function Rv(t){return t.trim().split(/^|\s+/).map(function(r){var i="",l=r.indexOf(".");return l>=0&&(i=r.slice(l+1),r=r.slice(0,l)),{type:r,name:i}})}function zv(t){return function(){var r=this.__on;if(r){for(var i=0,l=-1,a=r.length,u;i<a;++i)u=r[i],(!t.type||u.type===t.type)&&u.name===t.name?this.removeEventListener(u.type,u.listener,u.options):r[++l]=u;++l?r.length=l:delete this.__on}}}function bv(t,r,i){return function(){var l=this.__on,a,u=Tv(r);if(l){for(var c=0,d=l.length;c<d;++c)if((a=l[c]).type===t.type&&a.name===t.name){this.removeEventListener(a.type,a.listener,a.options),this.addEventListener(a.type,a.listener=u,a.options=i),a.value=r;return}}this.addEventListener(t.type,u,i),a={type:t.type,name:t.name,value:r,listener:u,options:i},l?l.push(a):this.__on=[a]}}function Lv(t,r,i){var l=Rv(t+""),a,u=l.length,c;if(arguments.length<2){var d=this.node().__on;if(d){for(var h=0,m=d.length,v;h<m;++h)for(a=0,v=d[h];a<u;++a)if((c=l[a]).type===v.type&&c.name===v.name)return v.value}return}for(d=r?bv:zv,a=0;a<u;++a)this.each(d(l[a],r,i));return this}function Mh(t,r,i){var l=Sh(t),a=l.CustomEvent;typeof a=="function"?a=new a(r,i):(a=l.document.createEvent("Event"),i?(a.initEvent(r,i.bubbles,i.cancelable),a.detail=i.detail):a.initEvent(r,!1,!1)),t.dispatchEvent(a)}function Dv(t,r){return function(){return Mh(this,t,r)}}function Av(t,r){return function(){return Mh(this,t,r.apply(this,arguments))}}function $v(t,r){return this.each((typeof r=="function"?Av:Dv)(t,r))}function*Ov(){for(var t=this._groups,r=0,i=t.length;r<i;++r)for(var l=t[r],a=0,u=l.length,c;a<u;++a)(c=l[a])&&(yield c)}var jh=[null];function Dt(t,r){this._groups=t,this._parents=r}function Si(){return new Dt([[document.documentElement]],jh)}function Fv(){return this}Dt.prototype=Si.prototype={constructor:Dt,select:dy,selectAll:my,selectChild:wy,selectChildren:Ey,filter:Ny,data:Ty,enter:Cy,exit:zy,join:by,merge:Ly,selection:Fv,order:Dy,sort:Ay,call:Oy,nodes:Fy,node:Hy,size:Vy,empty:By,each:Uy,attr:qy,style:tv,property:iv,classed:uv,text:pv,html:yv,raise:xv,lower:_v,append:Sv,insert:Ev,remove:Cv,clone:Pv,datum:Iv,on:Lv,dispatch:$v,[Symbol.iterator]:Ov};function Lt(t){return typeof t=="string"?new Dt([[document.querySelector(t)]],[document.documentElement]):new Dt([[t]],jh)}function Hv(t){let r;for(;r=t.sourceEvent;)t=r;return t}function qt(t,r){if(t=Hv(t),r===void 0&&(r=t.currentTarget),r){var i=r.ownerSVGElement||r;if(i.createSVGPoint){var l=i.createSVGPoint();return l.x=t.clientX,l.y=t.clientY,l=l.matrixTransform(r.getScreenCTM().inverse()),[l.x,l.y]}if(r.getBoundingClientRect){var a=r.getBoundingClientRect();return[t.clientX-a.left-r.clientLeft,t.clientY-a.top-r.clientTop]}}return[t.pageX,t.pageY]}const Vv={passive:!1},di={capture:!0,passive:!1};function Eu(t){t.stopImmediatePropagation()}function io(t){t.preventDefault(),t.stopImmediatePropagation()}function Ph(t){var r=t.document.documentElement,i=Lt(t).on("dragstart.drag",io,di);"onselectstart"in r?i.on("selectstart.drag",io,di):(r.__noselect=r.style.MozUserSelect,r.style.MozUserSelect="none")}function Ih(t,r){var i=t.document.documentElement,l=Lt(t).on("dragstart.drag",null);r&&(l.on("click.drag",io,di),setTimeout(function(){l.on("click.drag",null)},0)),"onselectstart"in i?l.on("selectstart.drag",null):(i.style.MozUserSelect=i.__noselect,delete i.__noselect)}const Ws=t=>()=>t;function Vu(t,{sourceEvent:r,subject:i,target:l,identifier:a,active:u,x:c,y:d,dx:h,dy:m,dispatch:v}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:r,enumerable:!0,configurable:!0},subject:{value:i,enumerable:!0,configurable:!0},target:{value:l,enumerable:!0,configurable:!0},identifier:{value:a,enumerable:!0,configurable:!0},active:{value:u,enumerable:!0,configurable:!0},x:{value:c,enumerable:!0,configurable:!0},y:{value:d,enumerable:!0,configurable:!0},dx:{value:h,enumerable:!0,configurable:!0},dy:{value:m,enumerable:!0,configurable:!0},_:{value:v}})}Vu.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};function Bv(t){return!t.ctrlKey&&!t.button}function Uv(){return this.parentNode}function Wv(t,r){return r??{x:t.x,y:t.y}}function Yv(){return navigator.maxTouchPoints||"ontouchstart"in this}function Th(){var t=Bv,r=Uv,i=Wv,l=Yv,a={},u=yl("start","drag","end"),c=0,d,h,m,v,y=0;function g(M){M.on("mousedown.drag",w).filter(l).on("touchstart.drag",E).on("touchmove.drag",N,Vv).on("touchend.drag touchcancel.drag",I).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function w(M,F){if(!(v||!t.call(this,M,F))){var $=k(this,r.call(this,M,F),M,F,"mouse");$&&(Lt(M.view).on("mousemove.drag",_,di).on("mouseup.drag",C,di),Ph(M.view),Eu(M),m=!1,d=M.clientX,h=M.clientY,$("start",M))}}function _(M){if(io(M),!m){var F=M.clientX-d,$=M.clientY-h;m=F*F+$*$>y}a.mouse("drag",M)}function C(M){Lt(M.view).on("mousemove.drag mouseup.drag",null),Ih(M.view,m),io(M),a.mouse("end",M)}function E(M,F){if(t.call(this,M,F)){var $=M.changedTouches,V=r.call(this,M,F),W=$.length,X,ee;for(X=0;X<W;++X)(ee=k(this,V,M,F,$[X].identifier,$[X]))&&(Eu(M),ee("start",M,$[X]))}}function N(M){var F=M.changedTouches,$=F.length,V,W;for(V=0;V<$;++V)(W=a[F[V].identifier])&&(io(M),W("drag",M,F[V]))}function I(M){var F=M.changedTouches,$=F.length,V,W;for(v&&clearTimeout(v),v=setTimeout(function(){v=null},500),V=0;V<$;++V)(W=a[F[V].identifier])&&(Eu(M),W("end",M,F[V]))}function k(M,F,$,V,W,X){var ee=u.copy(),q=qt(X||$,F),te,J,P;if((P=i.call(M,new Vu("beforestart",{sourceEvent:$,target:g,identifier:W,active:c,x:q[0],y:q[1],dx:0,dy:0,dispatch:ee}),V))!=null)return te=P.x-q[0]||0,J=P.y-q[1]||0,function U(B,b,R){var z=q,A;switch(B){case"start":a[W]=U,A=c++;break;case"end":delete a[W],--c;case"drag":q=qt(R||b,F),A=c;break}ee.call(B,M,new Vu(B,{sourceEvent:b,subject:P,target:g,identifier:W,active:A,x:q[0]+te,y:q[1]+J,dx:q[0]-z[0],dy:q[1]-z[1],dispatch:ee}),V)}}return g.filter=function(M){return arguments.length?(t=typeof M=="function"?M:Ws(!!M),g):t},g.container=function(M){return arguments.length?(r=typeof M=="function"?M:Ws(M),g):r},g.subject=function(M){return arguments.length?(i=typeof M=="function"?M:Ws(M),g):i},g.touchable=function(M){return arguments.length?(l=typeof M=="function"?M:Ws(!!M),g):l},g.on=function(){var M=u.on.apply(u,arguments);return M===u?g:M},g.clickDistance=function(M){return arguments.length?(y=(M=+M)*M,g):Math.sqrt(y)},g}function rc(t,r,i){t.prototype=r.prototype=i,i.constructor=t}function Rh(t,r){var i=Object.create(t.prototype);for(var l in r)i[l]=r[l];return i}function ki(){}var pi=.7,ll=1/pi,so="\\s*([+-]?\\d+)\\s*",hi="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",fn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Xv=/^#([0-9a-f]{3,8})$/,Kv=new RegExp(`^rgb\\(${so},${so},${so}\\)$`),Qv=new RegExp(`^rgb\\(${fn},${fn},${fn}\\)$`),Gv=new RegExp(`^rgba\\(${so},${so},${so},${hi}\\)$`),qv=new RegExp(`^rgba\\(${fn},${fn},${fn},${hi}\\)$`),Zv=new RegExp(`^hsl\\(${hi},${fn},${fn}\\)$`),Jv=new RegExp(`^hsla\\(${hi},${fn},${fn},${hi}\\)$`),ip={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};rc(ki,_r,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:sp,formatHex:sp,formatHex8:ex,formatHsl:tx,formatRgb:lp,toString:lp});function sp(){return this.rgb().formatHex()}function ex(){return this.rgb().formatHex8()}function tx(){return zh(this).formatHsl()}function lp(){return this.rgb().formatRgb()}function _r(t){var r,i;return t=(t+"").trim().toLowerCase(),(r=Xv.exec(t))?(i=r[1].length,r=parseInt(r[1],16),i===6?ap(r):i===3?new Mt(r>>8&15|r>>4&240,r>>4&15|r&240,(r&15)<<4|r&15,1):i===8?Ys(r>>24&255,r>>16&255,r>>8&255,(r&255)/255):i===4?Ys(r>>12&15|r>>8&240,r>>8&15|r>>4&240,r>>4&15|r&240,((r&15)<<4|r&15)/255):null):(r=Kv.exec(t))?new Mt(r[1],r[2],r[3],1):(r=Qv.exec(t))?new Mt(r[1]*255/100,r[2]*255/100,r[3]*255/100,1):(r=Gv.exec(t))?Ys(r[1],r[2],r[3],r[4]):(r=qv.exec(t))?Ys(r[1]*255/100,r[2]*255/100,r[3]*255/100,r[4]):(r=Zv.exec(t))?fp(r[1],r[2]/100,r[3]/100,1):(r=Jv.exec(t))?fp(r[1],r[2]/100,r[3]/100,r[4]):ip.hasOwnProperty(t)?ap(ip[t]):t==="transparent"?new Mt(NaN,NaN,NaN,0):null}function ap(t){return new Mt(t>>16&255,t>>8&255,t&255,1)}function Ys(t,r,i,l){return l<=0&&(t=r=i=NaN),new Mt(t,r,i,l)}function nx(t){return t instanceof ki||(t=_r(t)),t?(t=t.rgb(),new Mt(t.r,t.g,t.b,t.opacity)):new Mt}function Bu(t,r,i,l){return arguments.length===1?nx(t):new Mt(t,r,i,l??1)}function Mt(t,r,i,l){this.r=+t,this.g=+r,this.b=+i,this.opacity=+l}rc(Mt,Bu,Rh(ki,{brighter(t){return t=t==null?ll:Math.pow(ll,t),new Mt(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?pi:Math.pow(pi,t),new Mt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Mt(vr(this.r),vr(this.g),vr(this.b),al(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:up,formatHex:up,formatHex8:rx,formatRgb:cp,toString:cp}));function up(){return`#${yr(this.r)}${yr(this.g)}${yr(this.b)}`}function rx(){return`#${yr(this.r)}${yr(this.g)}${yr(this.b)}${yr((isNaN(this.opacity)?1:this.opacity)*255)}`}function cp(){const t=al(this.opacity);return`${t===1?"rgb(":"rgba("}${vr(this.r)}, ${vr(this.g)}, ${vr(this.b)}${t===1?")":`, ${t})`}`}function al(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function vr(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function yr(t){return t=vr(t),(t<16?"0":"")+t.toString(16)}function fp(t,r,i,l){return l<=0?t=r=i=NaN:i<=0||i>=1?t=r=NaN:r<=0&&(t=NaN),new Zt(t,r,i,l)}function zh(t){if(t instanceof Zt)return new Zt(t.h,t.s,t.l,t.opacity);if(t instanceof ki||(t=_r(t)),!t)return new Zt;if(t instanceof Zt)return t;t=t.rgb();var r=t.r/255,i=t.g/255,l=t.b/255,a=Math.min(r,i,l),u=Math.max(r,i,l),c=NaN,d=u-a,h=(u+a)/2;return d?(r===u?c=(i-l)/d+(i<l)*6:i===u?c=(l-r)/d+2:c=(r-i)/d+4,d/=h<.5?u+a:2-u-a,c*=60):d=h>0&&h<1?0:c,new Zt(c,d,h,t.opacity)}function ox(t,r,i,l){return arguments.length===1?zh(t):new Zt(t,r,i,l??1)}function Zt(t,r,i,l){this.h=+t,this.s=+r,this.l=+i,this.opacity=+l}rc(Zt,ox,Rh(ki,{brighter(t){return t=t==null?ll:Math.pow(ll,t),new Zt(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?pi:Math.pow(pi,t),new Zt(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,r=isNaN(t)||isNaN(this.s)?0:this.s,i=this.l,l=i+(i<.5?i:1-i)*r,a=2*i-l;return new Mt(Nu(t>=240?t-240:t+120,a,l),Nu(t,a,l),Nu(t<120?t+240:t-120,a,l),this.opacity)},clamp(){return new Zt(dp(this.h),Xs(this.s),Xs(this.l),al(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=al(this.opacity);return`${t===1?"hsl(":"hsla("}${dp(this.h)}, ${Xs(this.s)*100}%, ${Xs(this.l)*100}%${t===1?")":`, ${t})`}`}}));function dp(t){return t=(t||0)%360,t<0?t+360:t}function Xs(t){return Math.max(0,Math.min(1,t||0))}function Nu(t,r,i){return(t<60?r+(i-r)*t/60:t<180?i:t<240?r+(i-r)*(240-t)/60:r)*255}const oc=t=>()=>t;function ix(t,r){return function(i){return t+i*r}}function sx(t,r,i){return t=Math.pow(t,i),r=Math.pow(r,i)-t,i=1/i,function(l){return Math.pow(t+l*r,i)}}function lx(t){return(t=+t)==1?bh:function(r,i){return i-r?sx(r,i,t):oc(isNaN(r)?i:r)}}function bh(t,r){var i=r-t;return i?ix(t,i):oc(isNaN(t)?r:t)}const ul=(function t(r){var i=lx(r);function l(a,u){var c=i((a=Bu(a)).r,(u=Bu(u)).r),d=i(a.g,u.g),h=i(a.b,u.b),m=bh(a.opacity,u.opacity);return function(v){return a.r=c(v),a.g=d(v),a.b=h(v),a.opacity=m(v),a+""}}return l.gamma=t,l})(1);function ax(t,r){r||(r=[]);var i=t?Math.min(r.length,t.length):0,l=r.slice(),a;return function(u){for(a=0;a<i;++a)l[a]=t[a]*(1-u)+r[a]*u;return l}}function ux(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function cx(t,r){var i=r?r.length:0,l=t?Math.min(i,t.length):0,a=new Array(l),u=new Array(i),c;for(c=0;c<l;++c)a[c]=ci(t[c],r[c]);for(;c<i;++c)u[c]=r[c];return function(d){for(c=0;c<l;++c)u[c]=a[c](d);return u}}function fx(t,r){var i=new Date;return t=+t,r=+r,function(l){return i.setTime(t*(1-l)+r*l),i}}function cn(t,r){return t=+t,r=+r,function(i){return t*(1-i)+r*i}}function dx(t,r){var i={},l={},a;(t===null||typeof t!="object")&&(t={}),(r===null||typeof r!="object")&&(r={});for(a in r)a in t?i[a]=ci(t[a],r[a]):l[a]=r[a];return function(u){for(a in i)l[a]=i[a](u);return l}}var Uu=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Cu=new RegExp(Uu.source,"g");function px(t){return function(){return t}}function hx(t){return function(r){return t(r)+""}}function Lh(t,r){var i=Uu.lastIndex=Cu.lastIndex=0,l,a,u,c=-1,d=[],h=[];for(t=t+"",r=r+"";(l=Uu.exec(t))&&(a=Cu.exec(r));)(u=a.index)>i&&(u=r.slice(i,u),d[c]?d[c]+=u:d[++c]=u),(l=l[0])===(a=a[0])?d[c]?d[c]+=a:d[++c]=a:(d[++c]=null,h.push({i:c,x:cn(l,a)})),i=Cu.lastIndex;return i<r.length&&(u=r.slice(i),d[c]?d[c]+=u:d[++c]=u),d.length<2?h[0]?hx(h[0].x):px(r):(r=h.length,function(m){for(var v=0,y;v<r;++v)d[(y=h[v]).i]=y.x(m);return d.join("")})}function ci(t,r){var i=typeof r,l;return r==null||i==="boolean"?oc(r):(i==="number"?cn:i==="string"?(l=_r(r))?(r=l,ul):Lh:r instanceof _r?ul:r instanceof Date?fx:ux(r)?ax:Array.isArray(r)?cx:typeof r.valueOf!="function"&&typeof r.toString!="function"||isNaN(r)?dx:cn)(t,r)}var pp=180/Math.PI,Wu={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Dh(t,r,i,l,a,u){var c,d,h;return(c=Math.sqrt(t*t+r*r))&&(t/=c,r/=c),(h=t*i+r*l)&&(i-=t*h,l-=r*h),(d=Math.sqrt(i*i+l*l))&&(i/=d,l/=d,h/=d),t*l<r*i&&(t=-t,r=-r,h=-h,c=-c),{translateX:a,translateY:u,rotate:Math.atan2(r,t)*pp,skewX:Math.atan(h)*pp,scaleX:c,scaleY:d}}var Ks;function gx(t){const r=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return r.isIdentity?Wu:Dh(r.a,r.b,r.c,r.d,r.e,r.f)}function mx(t){return t==null||(Ks||(Ks=document.createElementNS("http://www.w3.org/2000/svg","g")),Ks.setAttribute("transform",t),!(t=Ks.transform.baseVal.consolidate()))?Wu:(t=t.matrix,Dh(t.a,t.b,t.c,t.d,t.e,t.f))}function Ah(t,r,i,l){function a(m){return m.length?m.pop()+" ":""}function u(m,v,y,g,w,_){if(m!==y||v!==g){var C=w.push("translate(",null,r,null,i);_.push({i:C-4,x:cn(m,y)},{i:C-2,x:cn(v,g)})}else(y||g)&&w.push("translate("+y+r+g+i)}function c(m,v,y,g){m!==v?(m-v>180?v+=360:v-m>180&&(m+=360),g.push({i:y.push(a(y)+"rotate(",null,l)-2,x:cn(m,v)})):v&&y.push(a(y)+"rotate("+v+l)}function d(m,v,y,g){m!==v?g.push({i:y.push(a(y)+"skewX(",null,l)-2,x:cn(m,v)}):v&&y.push(a(y)+"skewX("+v+l)}function h(m,v,y,g,w,_){if(m!==y||v!==g){var C=w.push(a(w)+"scale(",null,",",null,")");_.push({i:C-4,x:cn(m,y)},{i:C-2,x:cn(v,g)})}else(y!==1||g!==1)&&w.push(a(w)+"scale("+y+","+g+")")}return function(m,v){var y=[],g=[];return m=t(m),v=t(v),u(m.translateX,m.translateY,v.translateX,v.translateY,y,g),c(m.rotate,v.rotate,y,g),d(m.skewX,v.skewX,y,g),h(m.scaleX,m.scaleY,v.scaleX,v.scaleY,y,g),m=v=null,function(w){for(var _=-1,C=g.length,E;++_<C;)y[(E=g[_]).i]=E.x(w);return y.join("")}}}var yx=Ah(gx,"px, ","px)","deg)"),vx=Ah(mx,", ",")",")"),xx=1e-12;function hp(t){return((t=Math.exp(t))+1/t)/2}function wx(t){return((t=Math.exp(t))-1/t)/2}function _x(t){return((t=Math.exp(2*t))-1)/(t+1)}const nl=(function t(r,i,l){function a(u,c){var d=u[0],h=u[1],m=u[2],v=c[0],y=c[1],g=c[2],w=v-d,_=y-h,C=w*w+_*_,E,N;if(C<xx)N=Math.log(g/m)/r,E=function(V){return[d+V*w,h+V*_,m*Math.exp(r*V*N)]};else{var I=Math.sqrt(C),k=(g*g-m*m+l*C)/(2*m*i*I),M=(g*g-m*m-l*C)/(2*g*i*I),F=Math.log(Math.sqrt(k*k+1)-k),$=Math.log(Math.sqrt(M*M+1)-M);N=($-F)/r,E=function(V){var W=V*N,X=hp(F),ee=m/(i*I)*(X*_x(r*W+F)-wx(F));return[d+ee*w,h+ee*_,m*X/hp(r*W+F)]}}return E.duration=N*1e3*r/Math.SQRT2,E}return a.rho=function(u){var c=Math.max(.001,+u),d=c*c,h=d*d;return t(c,d,h)},a})(Math.SQRT2,2,4);var ao=0,ai=0,si=0,$h=1e3,cl,ui,fl=0,Sr=0,xl=0,gi=typeof performance=="object"&&performance.now?performance:Date,Oh=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function ic(){return Sr||(Oh(Sx),Sr=gi.now()+xl)}function Sx(){Sr=0}function dl(){this._call=this._time=this._next=null}dl.prototype=Fh.prototype={constructor:dl,restart:function(t,r,i){if(typeof t!="function")throw new TypeError("callback is not a function");i=(i==null?ic():+i)+(r==null?0:+r),!this._next&&ui!==this&&(ui?ui._next=this:cl=this,ui=this),this._call=t,this._time=i,Yu()},stop:function(){this._call&&(this._call=null,this._time=1/0,Yu())}};function Fh(t,r,i){var l=new dl;return l.restart(t,r,i),l}function kx(){ic(),++ao;for(var t=cl,r;t;)(r=Sr-t._time)>=0&&t._call.call(void 0,r),t=t._next;--ao}function gp(){Sr=(fl=gi.now())+xl,ao=ai=0;try{kx()}finally{ao=0,Nx(),Sr=0}}function Ex(){var t=gi.now(),r=t-fl;r>$h&&(xl-=r,fl=t)}function Nx(){for(var t,r=cl,i,l=1/0;r;)r._call?(l>r._time&&(l=r._time),t=r,r=r._next):(i=r._next,r._next=null,r=t?t._next=i:cl=i);ui=t,Yu(l)}function Yu(t){if(!ao){ai&&(ai=clearTimeout(ai));var r=t-Sr;r>24?(t<1/0&&(ai=setTimeout(gp,t-gi.now()-xl)),si&&(si=clearInterval(si))):(si||(fl=gi.now(),si=setInterval(Ex,$h)),ao=1,Oh(gp))}}function mp(t,r,i){var l=new dl;return r=r==null?0:+r,l.restart(a=>{l.stop(),t(a+r)},r,i),l}var Cx=yl("start","end","cancel","interrupt"),Mx=[],Hh=0,yp=1,Xu=2,rl=3,vp=4,Ku=5,ol=6;function wl(t,r,i,l,a,u){var c=t.__transition;if(!c)t.__transition={};else if(i in c)return;jx(t,i,{name:r,index:l,group:a,on:Cx,tween:Mx,time:u.time,delay:u.delay,duration:u.duration,ease:u.ease,timer:null,state:Hh})}function sc(t,r){var i=nn(t,r);if(i.state>Hh)throw new Error("too late; already scheduled");return i}function dn(t,r){var i=nn(t,r);if(i.state>rl)throw new Error("too late; already running");return i}function nn(t,r){var i=t.__transition;if(!i||!(i=i[r]))throw new Error("transition not found");return i}function jx(t,r,i){var l=t.__transition,a;l[r]=i,i.timer=Fh(u,0,i.time);function u(m){i.state=yp,i.timer.restart(c,i.delay,i.time),i.delay<=m&&c(m-i.delay)}function c(m){var v,y,g,w;if(i.state!==yp)return h();for(v in l)if(w=l[v],w.name===i.name){if(w.state===rl)return mp(c);w.state===vp?(w.state=ol,w.timer.stop(),w.on.call("interrupt",t,t.__data__,w.index,w.group),delete l[v]):+v<r&&(w.state=ol,w.timer.stop(),w.on.call("cancel",t,t.__data__,w.index,w.group),delete l[v])}if(mp(function(){i.state===rl&&(i.state=vp,i.timer.restart(d,i.delay,i.time),d(m))}),i.state=Xu,i.on.call("start",t,t.__data__,i.index,i.group),i.state===Xu){for(i.state=rl,a=new Array(g=i.tween.length),v=0,y=-1;v<g;++v)(w=i.tween[v].value.call(t,t.__data__,i.index,i.group))&&(a[++y]=w);a.length=y+1}}function d(m){for(var v=m<i.duration?i.ease.call(null,m/i.duration):(i.timer.restart(h),i.state=Ku,1),y=-1,g=a.length;++y<g;)a[y].call(t,v);i.state===Ku&&(i.on.call("end",t,t.__data__,i.index,i.group),h())}function h(){i.state=ol,i.timer.stop(),delete l[r];for(var m in l)return;delete t.__transition}}function il(t,r){var i=t.__transition,l,a,u=!0,c;if(i){r=r==null?null:r+"";for(c in i){if((l=i[c]).name!==r){u=!1;continue}a=l.state>Xu&&l.state<Ku,l.state=ol,l.timer.stop(),l.on.call(a?"interrupt":"cancel",t,t.__data__,l.index,l.group),delete i[c]}u&&delete t.__transition}}function Px(t){return this.each(function(){il(this,t)})}function Ix(t,r){var i,l;return function(){var a=dn(this,t),u=a.tween;if(u!==i){l=i=u;for(var c=0,d=l.length;c<d;++c)if(l[c].name===r){l=l.slice(),l.splice(c,1);break}}a.tween=l}}function Tx(t,r,i){var l,a;if(typeof i!="function")throw new Error;return function(){var u=dn(this,t),c=u.tween;if(c!==l){a=(l=c).slice();for(var d={name:r,value:i},h=0,m=a.length;h<m;++h)if(a[h].name===r){a[h]=d;break}h===m&&a.push(d)}u.tween=a}}function Rx(t,r){var i=this._id;if(t+="",arguments.length<2){for(var l=nn(this.node(),i).tween,a=0,u=l.length,c;a<u;++a)if((c=l[a]).name===t)return c.value;return null}return this.each((r==null?Ix:Tx)(i,t,r))}function lc(t,r,i){var l=t._id;return t.each(function(){var a=dn(this,l);(a.value||(a.value={}))[r]=i.apply(this,arguments)}),function(a){return nn(a,l).value[r]}}function Vh(t,r){var i;return(typeof r=="number"?cn:r instanceof _r?ul:(i=_r(r))?(r=i,ul):Lh)(t,r)}function zx(t){return function(){this.removeAttribute(t)}}function bx(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Lx(t,r,i){var l,a=i+"",u;return function(){var c=this.getAttribute(t);return c===a?null:c===l?u:u=r(l=c,i)}}function Dx(t,r,i){var l,a=i+"",u;return function(){var c=this.getAttributeNS(t.space,t.local);return c===a?null:c===l?u:u=r(l=c,i)}}function Ax(t,r,i){var l,a,u;return function(){var c,d=i(this),h;return d==null?void this.removeAttribute(t):(c=this.getAttribute(t),h=d+"",c===h?null:c===l&&h===a?u:(a=h,u=r(l=c,d)))}}function $x(t,r,i){var l,a,u;return function(){var c,d=i(this),h;return d==null?void this.removeAttributeNS(t.space,t.local):(c=this.getAttributeNS(t.space,t.local),h=d+"",c===h?null:c===l&&h===a?u:(a=h,u=r(l=c,d)))}}function Ox(t,r){var i=vl(t),l=i==="transform"?vx:Vh;return this.attrTween(t,typeof r=="function"?(i.local?$x:Ax)(i,l,lc(this,"attr."+t,r)):r==null?(i.local?bx:zx)(i):(i.local?Dx:Lx)(i,l,r))}function Fx(t,r){return function(i){this.setAttribute(t,r.call(this,i))}}function Hx(t,r){return function(i){this.setAttributeNS(t.space,t.local,r.call(this,i))}}function Vx(t,r){var i,l;function a(){var u=r.apply(this,arguments);return u!==l&&(i=(l=u)&&Hx(t,u)),i}return a._value=r,a}function Bx(t,r){var i,l;function a(){var u=r.apply(this,arguments);return u!==l&&(i=(l=u)&&Fx(t,u)),i}return a._value=r,a}function Ux(t,r){var i="attr."+t;if(arguments.length<2)return(i=this.tween(i))&&i._value;if(r==null)return this.tween(i,null);if(typeof r!="function")throw new Error;var l=vl(t);return this.tween(i,(l.local?Vx:Bx)(l,r))}function Wx(t,r){return function(){sc(this,t).delay=+r.apply(this,arguments)}}function Yx(t,r){return r=+r,function(){sc(this,t).delay=r}}function Xx(t){var r=this._id;return arguments.length?this.each((typeof t=="function"?Wx:Yx)(r,t)):nn(this.node(),r).delay}function Kx(t,r){return function(){dn(this,t).duration=+r.apply(this,arguments)}}function Qx(t,r){return r=+r,function(){dn(this,t).duration=r}}function Gx(t){var r=this._id;return arguments.length?this.each((typeof t=="function"?Kx:Qx)(r,t)):nn(this.node(),r).duration}function qx(t,r){if(typeof r!="function")throw new Error;return function(){dn(this,t).ease=r}}function Zx(t){var r=this._id;return arguments.length?this.each(qx(r,t)):nn(this.node(),r).ease}function Jx(t,r){return function(){var i=r.apply(this,arguments);if(typeof i!="function")throw new Error;dn(this,t).ease=i}}function ew(t){if(typeof t!="function")throw new Error;return this.each(Jx(this._id,t))}function tw(t){typeof t!="function"&&(t=xh(t));for(var r=this._groups,i=r.length,l=new Array(i),a=0;a<i;++a)for(var u=r[a],c=u.length,d=l[a]=[],h,m=0;m<c;++m)(h=u[m])&&t.call(h,h.__data__,m,u)&&d.push(h);return new En(l,this._parents,this._name,this._id)}function nw(t){if(t._id!==this._id)throw new Error;for(var r=this._groups,i=t._groups,l=r.length,a=i.length,u=Math.min(l,a),c=new Array(l),d=0;d<u;++d)for(var h=r[d],m=i[d],v=h.length,y=c[d]=new Array(v),g,w=0;w<v;++w)(g=h[w]||m[w])&&(y[w]=g);for(;d<l;++d)c[d]=r[d];return new En(c,this._parents,this._name,this._id)}function rw(t){return(t+"").trim().split(/^|\s+/).every(function(r){var i=r.indexOf(".");return i>=0&&(r=r.slice(0,i)),!r||r==="start"})}function ow(t,r,i){var l,a,u=rw(r)?sc:dn;return function(){var c=u(this,t),d=c.on;d!==l&&(a=(l=d).copy()).on(r,i),c.on=a}}function iw(t,r){var i=this._id;return arguments.length<2?nn(this.node(),i).on.on(t):this.each(ow(i,t,r))}function sw(t){return function(){var r=this.parentNode;for(var i in this.__transition)if(+i!==t)return;r&&r.removeChild(this)}}function lw(){return this.on("end.remove",sw(this._id))}function aw(t){var r=this._name,i=this._id;typeof t!="function"&&(t=tc(t));for(var l=this._groups,a=l.length,u=new Array(a),c=0;c<a;++c)for(var d=l[c],h=d.length,m=u[c]=new Array(h),v,y,g=0;g<h;++g)(v=d[g])&&(y=t.call(v,v.__data__,g,d))&&("__data__"in v&&(y.__data__=v.__data__),m[g]=y,wl(m[g],r,i,g,m,nn(v,i)));return new En(u,this._parents,r,i)}function uw(t){var r=this._name,i=this._id;typeof t!="function"&&(t=vh(t));for(var l=this._groups,a=l.length,u=[],c=[],d=0;d<a;++d)for(var h=l[d],m=h.length,v,y=0;y<m;++y)if(v=h[y]){for(var g=t.call(v,v.__data__,y,h),w,_=nn(v,i),C=0,E=g.length;C<E;++C)(w=g[C])&&wl(w,r,i,C,g,_);u.push(g),c.push(v)}return new En(u,c,r,i)}var cw=Si.prototype.constructor;function fw(){return new cw(this._groups,this._parents)}function dw(t,r){var i,l,a;return function(){var u=lo(this,t),c=(this.style.removeProperty(t),lo(this,t));return u===c?null:u===i&&c===l?a:a=r(i=u,l=c)}}function Bh(t){return function(){this.style.removeProperty(t)}}function pw(t,r,i){var l,a=i+"",u;return function(){var c=lo(this,t);return c===a?null:c===l?u:u=r(l=c,i)}}function hw(t,r,i){var l,a,u;return function(){var c=lo(this,t),d=i(this),h=d+"";return d==null&&(h=d=(this.style.removeProperty(t),lo(this,t))),c===h?null:c===l&&h===a?u:(a=h,u=r(l=c,d))}}function gw(t,r){var i,l,a,u="style."+r,c="end."+u,d;return function(){var h=dn(this,t),m=h.on,v=h.value[u]==null?d||(d=Bh(r)):void 0;(m!==i||a!==v)&&(l=(i=m).copy()).on(c,a=v),h.on=l}}function mw(t,r,i){var l=(t+="")=="transform"?yx:Vh;return r==null?this.styleTween(t,dw(t,l)).on("end.style."+t,Bh(t)):typeof r=="function"?this.styleTween(t,hw(t,l,lc(this,"style."+t,r))).each(gw(this._id,t)):this.styleTween(t,pw(t,l,r),i).on("end.style."+t,null)}function yw(t,r,i){return function(l){this.style.setProperty(t,r.call(this,l),i)}}function vw(t,r,i){var l,a;function u(){var c=r.apply(this,arguments);return c!==a&&(l=(a=c)&&yw(t,c,i)),l}return u._value=r,u}function xw(t,r,i){var l="style."+(t+="");if(arguments.length<2)return(l=this.tween(l))&&l._value;if(r==null)return this.tween(l,null);if(typeof r!="function")throw new Error;return this.tween(l,vw(t,r,i??""))}function ww(t){return function(){this.textContent=t}}function _w(t){return function(){var r=t(this);this.textContent=r??""}}function Sw(t){return this.tween("text",typeof t=="function"?_w(lc(this,"text",t)):ww(t==null?"":t+""))}function kw(t){return function(r){this.textContent=t.call(this,r)}}function Ew(t){var r,i;function l(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&kw(a)),r}return l._value=t,l}function Nw(t){var r="text";if(arguments.length<1)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!="function")throw new Error;return this.tween(r,Ew(t))}function Cw(){for(var t=this._name,r=this._id,i=Uh(),l=this._groups,a=l.length,u=0;u<a;++u)for(var c=l[u],d=c.length,h,m=0;m<d;++m)if(h=c[m]){var v=nn(h,r);wl(h,t,i,m,c,{time:v.time+v.delay+v.duration,delay:0,duration:v.duration,ease:v.ease})}return new En(l,this._parents,t,i)}function Mw(){var t,r,i=this,l=i._id,a=i.size();return new Promise(function(u,c){var d={value:c},h={value:function(){--a===0&&u()}};i.each(function(){var m=dn(this,l),v=m.on;v!==t&&(r=(t=v).copy(),r._.cancel.push(d),r._.interrupt.push(d),r._.end.push(h)),m.on=r}),a===0&&u()})}var jw=0;function En(t,r,i,l){this._groups=t,this._parents=r,this._name=i,this._id=l}function Uh(){return++jw}var Sn=Si.prototype;En.prototype={constructor:En,select:aw,selectAll:uw,selectChild:Sn.selectChild,selectChildren:Sn.selectChildren,filter:tw,merge:nw,selection:fw,transition:Cw,call:Sn.call,nodes:Sn.nodes,node:Sn.node,size:Sn.size,empty:Sn.empty,each:Sn.each,on:iw,attr:Ox,attrTween:Ux,style:mw,styleTween:xw,text:Sw,textTween:Nw,remove:lw,tween:Rx,delay:Xx,duration:Gx,ease:Zx,easeVarying:ew,end:Mw,[Symbol.iterator]:Sn[Symbol.iterator]};function Pw(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var Iw={time:null,delay:0,duration:250,ease:Pw};function Tw(t,r){for(var i;!(i=t.__transition)||!(i=i[r]);)if(!(t=t.parentNode))throw new Error(`transition ${r} not found`);return i}function Rw(t){var r,i;t instanceof En?(r=t._id,t=t._name):(r=Uh(),(i=Iw).time=ic(),t=t==null?null:t+"");for(var l=this._groups,a=l.length,u=0;u<a;++u)for(var c=l[u],d=c.length,h,m=0;m<d;++m)(h=c[m])&&wl(h,t,r,m,c,i||Tw(h,r));return new En(l,this._parents,t,r)}Si.prototype.interrupt=Px;Si.prototype.transition=Rw;const Qs=t=>()=>t;function zw(t,{sourceEvent:r,target:i,transform:l,dispatch:a}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:r,enumerable:!0,configurable:!0},target:{value:i,enumerable:!0,configurable:!0},transform:{value:l,enumerable:!0,configurable:!0},_:{value:a}})}function kn(t,r,i){this.k=t,this.x=r,this.y=i}kn.prototype={constructor:kn,scale:function(t){return t===1?this:new kn(this.k*t,this.x,this.y)},translate:function(t,r){return t===0&r===0?this:new kn(this.k,this.x+this.k*t,this.y+this.k*r)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var _l=new kn(1,0,0);Wh.prototype=kn.prototype;function Wh(t){for(;!t.__zoom;)if(!(t=t.parentNode))return _l;return t.__zoom}function Mu(t){t.stopImmediatePropagation()}function li(t){t.preventDefault(),t.stopImmediatePropagation()}function bw(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function Lw(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]):[[0,0],[t.clientWidth,t.clientHeight]]}function xp(){return this.__zoom||_l}function Dw(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function Aw(){return navigator.maxTouchPoints||"ontouchstart"in this}function $w(t,r,i){var l=t.invertX(r[0][0])-i[0][0],a=t.invertX(r[1][0])-i[1][0],u=t.invertY(r[0][1])-i[0][1],c=t.invertY(r[1][1])-i[1][1];return t.translate(a>l?(l+a)/2:Math.min(0,l)||Math.max(0,a),c>u?(u+c)/2:Math.min(0,u)||Math.max(0,c))}function Yh(){var t=bw,r=Lw,i=$w,l=Dw,a=Aw,u=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],d=250,h=nl,m=yl("start","zoom","end"),v,y,g,w=500,_=150,C=0,E=10;function N(P){P.property("__zoom",xp).on("wheel.zoom",W,{passive:!1}).on("mousedown.zoom",X).on("dblclick.zoom",ee).filter(a).on("touchstart.zoom",q).on("touchmove.zoom",te).on("touchend.zoom touchcancel.zoom",J).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}N.transform=function(P,U,B,b){var R=P.selection?P.selection():P;R.property("__zoom",xp),P!==R?F(P,U,B,b):R.interrupt().each(function(){$(this,arguments).event(b).start().zoom(null,typeof U=="function"?U.apply(this,arguments):U).end()})},N.scaleBy=function(P,U,B,b){N.scaleTo(P,function(){var R=this.__zoom.k,z=typeof U=="function"?U.apply(this,arguments):U;return R*z},B,b)},N.scaleTo=function(P,U,B,b){N.transform(P,function(){var R=r.apply(this,arguments),z=this.__zoom,A=B==null?M(R):typeof B=="function"?B.apply(this,arguments):B,j=z.invert(A),L=typeof U=="function"?U.apply(this,arguments):U;return i(k(I(z,L),A,j),R,c)},B,b)},N.translateBy=function(P,U,B,b){N.transform(P,function(){return i(this.__zoom.translate(typeof U=="function"?U.apply(this,arguments):U,typeof B=="function"?B.apply(this,arguments):B),r.apply(this,arguments),c)},null,b)},N.translateTo=function(P,U,B,b,R){N.transform(P,function(){var z=r.apply(this,arguments),A=this.__zoom,j=b==null?M(z):typeof b=="function"?b.apply(this,arguments):b;return i(_l.translate(j[0],j[1]).scale(A.k).translate(typeof U=="function"?-U.apply(this,arguments):-U,typeof B=="function"?-B.apply(this,arguments):-B),z,c)},b,R)};function I(P,U){return U=Math.max(u[0],Math.min(u[1],U)),U===P.k?P:new kn(U,P.x,P.y)}function k(P,U,B){var b=U[0]-B[0]*P.k,R=U[1]-B[1]*P.k;return b===P.x&&R===P.y?P:new kn(P.k,b,R)}function M(P){return[(+P[0][0]+ +P[1][0])/2,(+P[0][1]+ +P[1][1])/2]}function F(P,U,B,b){P.on("start.zoom",function(){$(this,arguments).event(b).start()}).on("interrupt.zoom end.zoom",function(){$(this,arguments).event(b).end()}).tween("zoom",function(){var R=this,z=arguments,A=$(R,z).event(b),j=r.apply(R,z),L=B==null?M(j):typeof B=="function"?B.apply(R,z):B,ne=Math.max(j[1][0]-j[0][0],j[1][1]-j[0][1]),Z=R.__zoom,le=typeof U=="function"?U.apply(R,z):U,fe=h(Z.invert(L).concat(ne/Z.k),le.invert(L).concat(ne/le.k));return function(ue){if(ue===1)ue=le;else{var Q=fe(ue),ie=ne/Q[2];ue=new kn(ie,L[0]-Q[0]*ie,L[1]-Q[1]*ie)}A.zoom(null,ue)}})}function $(P,U,B){return!B&&P.__zooming||new V(P,U)}function V(P,U){this.that=P,this.args=U,this.active=0,this.sourceEvent=null,this.extent=r.apply(P,U),this.taps=0}V.prototype={event:function(P){return P&&(this.sourceEvent=P),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(P,U){return this.mouse&&P!=="mouse"&&(this.mouse[1]=U.invert(this.mouse[0])),this.touch0&&P!=="touch"&&(this.touch0[1]=U.invert(this.touch0[0])),this.touch1&&P!=="touch"&&(this.touch1[1]=U.invert(this.touch1[0])),this.that.__zoom=U,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(P){var U=Lt(this.that).datum();m.call(P,this.that,new zw(P,{sourceEvent:this.sourceEvent,target:N,transform:this.that.__zoom,dispatch:m}),U)}};function W(P,...U){if(!t.apply(this,arguments))return;var B=$(this,U).event(P),b=this.__zoom,R=Math.max(u[0],Math.min(u[1],b.k*Math.pow(2,l.apply(this,arguments)))),z=qt(P);if(B.wheel)(B.mouse[0][0]!==z[0]||B.mouse[0][1]!==z[1])&&(B.mouse[1]=b.invert(B.mouse[0]=z)),clearTimeout(B.wheel);else{if(b.k===R)return;B.mouse=[z,b.invert(z)],il(this),B.start()}li(P),B.wheel=setTimeout(A,_),B.zoom("mouse",i(k(I(b,R),B.mouse[0],B.mouse[1]),B.extent,c));function A(){B.wheel=null,B.end()}}function X(P,...U){if(g||!t.apply(this,arguments))return;var B=P.currentTarget,b=$(this,U,!0).event(P),R=Lt(P.view).on("mousemove.zoom",L,!0).on("mouseup.zoom",ne,!0),z=qt(P,B),A=P.clientX,j=P.clientY;Ph(P.view),Mu(P),b.mouse=[z,this.__zoom.invert(z)],il(this),b.start();function L(Z){if(li(Z),!b.moved){var le=Z.clientX-A,fe=Z.clientY-j;b.moved=le*le+fe*fe>C}b.event(Z).zoom("mouse",i(k(b.that.__zoom,b.mouse[0]=qt(Z,B),b.mouse[1]),b.extent,c))}function ne(Z){R.on("mousemove.zoom mouseup.zoom",null),Ih(Z.view,b.moved),li(Z),b.event(Z).end()}}function ee(P,...U){if(t.apply(this,arguments)){var B=this.__zoom,b=qt(P.changedTouches?P.changedTouches[0]:P,this),R=B.invert(b),z=B.k*(P.shiftKey?.5:2),A=i(k(I(B,z),b,R),r.apply(this,U),c);li(P),d>0?Lt(this).transition().duration(d).call(F,A,b,P):Lt(this).call(N.transform,A,b,P)}}function q(P,...U){if(t.apply(this,arguments)){var B=P.touches,b=B.length,R=$(this,U,P.changedTouches.length===b).event(P),z,A,j,L;for(Mu(P),A=0;A<b;++A)j=B[A],L=qt(j,this),L=[L,this.__zoom.invert(L),j.identifier],R.touch0?!R.touch1&&R.touch0[2]!==L[2]&&(R.touch1=L,R.taps=0):(R.touch0=L,z=!0,R.taps=1+!!v);v&&(v=clearTimeout(v)),z&&(R.taps<2&&(y=L[0],v=setTimeout(function(){v=null},w)),il(this),R.start())}}function te(P,...U){if(this.__zooming){var B=$(this,U).event(P),b=P.changedTouches,R=b.length,z,A,j,L;for(li(P),z=0;z<R;++z)A=b[z],j=qt(A,this),B.touch0&&B.touch0[2]===A.identifier?B.touch0[0]=j:B.touch1&&B.touch1[2]===A.identifier&&(B.touch1[0]=j);if(A=B.that.__zoom,B.touch1){var ne=B.touch0[0],Z=B.touch0[1],le=B.touch1[0],fe=B.touch1[1],ue=(ue=le[0]-ne[0])*ue+(ue=le[1]-ne[1])*ue,Q=(Q=fe[0]-Z[0])*Q+(Q=fe[1]-Z[1])*Q;A=I(A,Math.sqrt(ue/Q)),j=[(ne[0]+le[0])/2,(ne[1]+le[1])/2],L=[(Z[0]+fe[0])/2,(Z[1]+fe[1])/2]}else if(B.touch0)j=B.touch0[0],L=B.touch0[1];else return;B.zoom("touch",i(k(A,j,L),B.extent,c))}}function J(P,...U){if(this.__zooming){var B=$(this,U).event(P),b=P.changedTouches,R=b.length,z,A;for(Mu(P),g&&clearTimeout(g),g=setTimeout(function(){g=null},w),z=0;z<R;++z)A=b[z],B.touch0&&B.touch0[2]===A.identifier?delete B.touch0:B.touch1&&B.touch1[2]===A.identifier&&delete B.touch1;if(B.touch1&&!B.touch0&&(B.touch0=B.touch1,delete B.touch1),B.touch0)B.touch0[1]=this.__zoom.invert(B.touch0[0]);else if(B.end(),B.taps===2&&(A=qt(A,this),Math.hypot(y[0]-A[0],y[1]-A[1])<E)){var j=Lt(this).on("dblclick.zoom");j&&j.apply(this,arguments)}}}return N.wheelDelta=function(P){return arguments.length?(l=typeof P=="function"?P:Qs(+P),N):l},N.filter=function(P){return arguments.length?(t=typeof P=="function"?P:Qs(!!P),N):t},N.touchable=function(P){return arguments.length?(a=typeof P=="function"?P:Qs(!!P),N):a},N.extent=function(P){return arguments.length?(r=typeof P=="function"?P:Qs([[+P[0][0],+P[0][1]],[+P[1][0],+P[1][1]]]),N):r},N.scaleExtent=function(P){return arguments.length?(u[0]=+P[0],u[1]=+P[1],N):[u[0],u[1]]},N.translateExtent=function(P){return arguments.length?(c[0][0]=+P[0][0],c[1][0]=+P[1][0],c[0][1]=+P[0][1],c[1][1]=+P[1][1],N):[[c[0][0],c[0][1]],[c[1][0],c[1][1]]]},N.constrain=function(P){return arguments.length?(i=P,N):i},N.duration=function(P){return arguments.length?(d=+P,N):d},N.interpolate=function(P){return arguments.length?(h=P,N):h},N.on=function(){var P=m.on.apply(m,arguments);return P===m?N:P},N.clickDistance=function(P){return arguments.length?(C=(P=+P)*P,N):Math.sqrt(C)},N.tapDistance=function(P){return arguments.length?(E=+P,N):E},N}const tn={error001:(t="react")=>`Seems like you have not used ${t==="svelte"?"SvelteFlowProvider":"ReactFlowProvider"} as an ancestor. Help: https://${t}flow.dev/error#001`,error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:t=>`Node type "${t}" not found. Using fallback type "default".`,error004:()=>"The parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:t=>`The old edge with id=${t} does not exist.`,error009:t=>`Marker type "${t}" doesn't exist.`,error008:(t,{id:r,sourceHandle:i,targetHandle:l})=>`Couldn't create edge for ${t} handle id: "${t==="source"?i:l}", edge id: ${r}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:t=>`Edge type "${t}" not found. Using fallback type "default".`,error012:t=>`Node with id "${t}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(t="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${t}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.",error016:t=>`Edge with id "${t}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},mi=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Xh=["Enter"," ","Escape"],Kh={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:t,x:r,y:i})=>`Moved selected node ${t}. New position, x: ${r}, y: ${i}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var uo;(function(t){t.Strict="strict",t.Loose="loose"})(uo||(uo={}));var xr;(function(t){t.Free="free",t.Vertical="vertical",t.Horizontal="horizontal"})(xr||(xr={}));var yi;(function(t){t.Partial="partial",t.Full="full"})(yi||(yi={}));const Qh={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Qn;(function(t){t.Bezier="default",t.Straight="straight",t.Step="step",t.SmoothStep="smoothstep",t.SimpleBezier="simplebezier"})(Qn||(Qn={}));var pl;(function(t){t.Arrow="arrow",t.ArrowClosed="arrowclosed"})(pl||(pl={}));var we;(function(t){t.Left="left",t.Top="top",t.Right="right",t.Bottom="bottom"})(we||(we={}));const wp={[we.Left]:we.Right,[we.Right]:we.Left,[we.Top]:we.Bottom,[we.Bottom]:we.Top},Gh=t=>!!t&&typeof t=="object"&&"id"in t&&"source"in t&&"target"in t,Ow=t=>!!t&&typeof t=="object"&&"id"in t&&"position"in t&&!("source"in t)&&!("target"in t),ac=t=>!!t&&typeof t=="object"&&"id"in t&&"internals"in t&&!("source"in t)&&!("target"in t),Ei=(t,r=[0,0])=>{const{width:i,height:l}=rn(t),a=t.origin??r,u=i*a[0],c=l*a[1];return{x:t.position.x-u,y:t.position.y-c}},Fw=(t,r={nodeOrigin:[0,0]})=>{if(t.length===0)return{x:0,y:0,width:0,height:0};let i=!1;const l=t.reduce((a,u)=>{const c=typeof u=="string";let d=!r.nodeLookup&&!c?u:void 0;return r.nodeLookup&&(d=c?r.nodeLookup.get(u):ac(u)?u:r.nodeLookup.get(u.id)),d?(i=!0,Sl(a,hl(d,r.nodeOrigin))):a},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return i?kl(l):{x:0,y:0,width:0,height:0}},Ni=(t,r={})=>{let i={x:1/0,y:1/0,x2:-1/0,y2:-1/0},l=!1;return t.forEach(a=>{(r.filter===void 0||r.filter(a))&&(i=Sl(i,hl(a)),l=!0)}),l?kl(i):{x:0,y:0,width:0,height:0}},uc=(t,r,[i,l,a]=[0,0,1],u=!1,c=!1)=>{const d=(r.x-i)/a,h=(r.y-l)/a,m=r.width/a,v=r.height/a,y=[];for(const g of t.values()){const{measured:w,selectable:_=!0,hidden:C=!1}=g;if(c&&!_||C)continue;const E=w.width??g.width??g.initialWidth??0,N=w.height??g.height??g.initialHeight??0,{x:I,y:k}=g.internals.positionAbsolute,M=eg(d,h,m,v,I,k,E,N),F=E*N,$=u&&M>0;(!g.internals.handleBounds||$||M>=F||g.dragging)&&y.push(g)}return y},Hw=(t,r)=>{const i=new Set;return t.forEach(l=>{i.add(l.id)}),r.filter(l=>i.has(l.source)||i.has(l.target))};function Vw(t,r){const i=new Map,l=r!=null&&r.nodes?new Set(r.nodes.map(a=>a.id)):null;return t.forEach(a=>{let u;if(r!=null&&r.includeHiddenNodes){const{width:c,height:d}=rn(a);u=c>0&&d>0}else u=!!(a.measured.width&&a.measured.height&&!a.hidden);u&&(!l||l.has(a.id))&&i.set(a.id,a)}),i}async function Bw({nodes:t,width:r,height:i,panZoom:l,minZoom:a,maxZoom:u},c){if(t.size===0)return!0;const d=Vw(t,c),h=Ni(d),m=fc(h,r,i,(c==null?void 0:c.minZoom)??a,(c==null?void 0:c.maxZoom)??u,(c==null?void 0:c.padding)??.1);return await l.setViewport(m,{duration:c==null?void 0:c.duration,ease:c==null?void 0:c.ease,interpolate:c==null?void 0:c.interpolate}),!0}function qh({nodeId:t,nextPosition:r,nodeLookup:i,nodeOrigin:l=[0,0],nodeExtent:a,onError:u}){const c=i.get(t),d=c.parentId?i.get(c.parentId):void 0,{x:h,y:m}=d?d.internals.positionAbsolute:{x:0,y:0},v=c.origin??l;let y=c.extent||a;if(c.extent==="parent"&&!c.expandParent)if(!d)u==null||u("005",tn.error005());else{const{width:w,height:_}=rn(d);w&&_&&(y=[[h,m],[h+w,m+_]])}else d&&Er(c.extent)&&(y=[[c.extent[0][0]+h,c.extent[0][1]+m],[c.extent[1][0]+h,c.extent[1][1]+m]]);const g=Er(y)?kr(r,y,c.measured):r;return(c.measured.width===void 0||c.measured.height===void 0)&&(u==null||u("015",tn.error015())),{position:{x:g.x-h+(c.measured.width??0)*v[0],y:g.y-m+(c.measured.height??0)*v[1]},positionAbsolute:g}}async function Uw({nodesToRemove:t=[],edgesToRemove:r=[],nodes:i,edges:l,onBeforeDelete:a}){const u=new Set(t.map(g=>g.id)),c=[];for(const g of i){if(g.deletable===!1)continue;const w=u.has(g.id),_=!w&&g.parentId&&c.find(C=>C.id===g.parentId);(w||_)&&c.push(g)}const d=new Set(r.map(g=>g.id)),h=l.filter(g=>g.deletable!==!1),v=Hw(c,h);for(const g of h)d.has(g.id)&&!v.find(_=>_.id===g.id)&&v.push(g);if(!a)return{edges:v,nodes:c};const y=await a({nodes:c,edges:v});return typeof y=="boolean"?y?{edges:v,nodes:c}:{edges:[],nodes:[]}:y}const co=(t,r=0,i=1)=>Math.min(Math.max(t,r),i),kr=(t={x:0,y:0},r,i)=>({x:co(t.x,r[0][0],r[1][0]-((i==null?void 0:i.width)??0)),y:co(t.y,r[0][1],r[1][1]-((i==null?void 0:i.height)??0))});function Zh(t,r,i){const{width:l,height:a}=rn(i),{x:u,y:c}=i.internals.positionAbsolute;return kr(t,[[u,c],[u+l,c+a]],r)}const _p=(t,r,i)=>t<r?co(Math.abs(t-r),1,r)/r:t>i?-co(Math.abs(t-i),1,r)/r:0,cc=(t,r,i=15,l=40)=>{const a=_p(t.x,l,r.width-l)*i,u=_p(t.y,l,r.height-l)*i;return[a,u]},Sl=(t,r)=>({x:Math.min(t.x,r.x),y:Math.min(t.y,r.y),x2:Math.max(t.x2,r.x2),y2:Math.max(t.y2,r.y2)}),Qu=({x:t,y:r,width:i,height:l})=>({x:t,y:r,x2:t+i,y2:r+l}),kl=({x:t,y:r,x2:i,y2:l})=>({x:t,y:r,width:i-t,height:l-r}),vi=(t,r=[0,0])=>{var a,u;const{x:i,y:l}=ac(t)?t.internals.positionAbsolute:Ei(t,r);return{x:i,y:l,width:((a=t.measured)==null?void 0:a.width)??t.width??t.initialWidth??0,height:((u=t.measured)==null?void 0:u.height)??t.height??t.initialHeight??0}},hl=(t,r=[0,0])=>{var a,u;const{x:i,y:l}=ac(t)?t.internals.positionAbsolute:Ei(t,r);return{x:i,y:l,x2:i+(((a=t.measured)==null?void 0:a.width)??t.width??t.initialWidth??0),y2:l+(((u=t.measured)==null?void 0:u.height)??t.height??t.initialHeight??0)}},Jh=(t,r)=>kl(Sl(Qu(t),Qu(r))),eg=(t,r,i,l,a,u,c,d)=>{const h=Math.max(0,Math.min(t+i,a+c)-Math.max(t,a)),m=Math.max(0,Math.min(r+l,u+d)-Math.max(r,u));return Math.ceil(h*m)},gl=(t,r)=>eg(t.x,t.y,t.width,t.height,r.x,r.y,r.width,r.height),Sp=t=>Jt(t.width)&&Jt(t.height)&&Jt(t.x)&&Jt(t.y),Jt=t=>!isNaN(t)&&isFinite(t),tg=(t,r)=>(i,l)=>{},Ci=(t,r=[1,1])=>({x:r[0]*Math.round(t.x/r[0]),y:r[1]*Math.round(t.y/r[1])}),Mi=({x:t,y:r},[i,l,a],u=!1,c=[1,1])=>{const d={x:(t-i)/a,y:(r-l)/a};return u?Ci(d,c):d},fo=({x:t,y:r},[i,l,a])=>({x:t*a+i,y:r*a+l});function no(t,r){if(typeof t=="number")return Math.floor((r-r/(1+t))*.5);if(typeof t=="string"&&t.endsWith("px")){const i=parseFloat(t);if(!Number.isNaN(i))return Math.floor(i)}if(typeof t=="string"&&t.endsWith("%")){const i=parseFloat(t);if(!Number.isNaN(i))return Math.floor(r*i*.01)}return console.error(`The padding value "${t}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function Ww(t,r,i){if(typeof t=="string"||typeof t=="number"){const l=no(t,i),a=no(t,r);return{top:l,right:a,bottom:l,left:a,x:a*2,y:l*2}}if(typeof t=="object"){const l=no(t.top??t.y??0,i),a=no(t.bottom??t.y??0,i),u=no(t.left??t.x??0,r),c=no(t.right??t.x??0,r);return{top:l,right:c,bottom:a,left:u,x:u+c,y:l+a}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function Yw(t,r,i,l,a,u){const{x:c,y:d}=fo(t,[r,i,l]),{x:h,y:m}=fo({x:t.x+t.width,y:t.y+t.height},[r,i,l]),v=a-h,y=u-m;return{left:Math.floor(c),top:Math.floor(d),right:Math.floor(v),bottom:Math.floor(y)}}const fc=(t,r,i,l,a,u)=>{const c=Ww(u,r,i),d=(r-c.x)/t.width,h=(i-c.y)/t.height,m=Math.min(d,h),v=co(m,l,a),y=t.x+t.width/2,g=t.y+t.height/2,w=r/2-y*v,_=i/2-g*v,C=Yw(t,w,_,v,r,i),E={left:Math.min(C.left-c.left,0),top:Math.min(C.top-c.top,0),right:Math.min(C.right-c.right,0),bottom:Math.min(C.bottom-c.bottom,0)};return{x:w-E.left+E.right,y:_-E.top+E.bottom,zoom:v}},xi=()=>{var t;return typeof navigator<"u"&&((t=navigator==null?void 0:navigator.userAgent)==null?void 0:t.indexOf("Mac"))>=0};function Er(t){return t!=null&&t!=="parent"}function rn(t){var r,i;return{width:((r=t.measured)==null?void 0:r.width)??t.width??t.initialWidth??0,height:((i=t.measured)==null?void 0:i.height)??t.height??t.initialHeight??0}}function ng(t){var r,i;return(((r=t.measured)==null?void 0:r.width)??t.width??t.initialWidth)!==void 0&&(((i=t.measured)==null?void 0:i.height)??t.height??t.initialHeight)!==void 0}function rg(t,r={width:0,height:0},i,l,a){const u={...t},c=l.get(i);if(c){const d=c.origin||a;u.x+=c.internals.positionAbsolute.x-(r.width??0)*d[0],u.y+=c.internals.positionAbsolute.y-(r.height??0)*d[1]}return u}function kp(t,r){if(t.size!==r.size)return!1;for(const i of t)if(!r.has(i))return!1;return!0}function Xw(){let t,r;return{promise:new Promise((l,a)=>{t=l,r=a}),resolve:t,reject:r}}function Kw(t){return{...Kh,...t||{}}}function og(t){return t===null?null:t?"valid":"invalid"}function fi(t,{snapGrid:r=[0,0],snapToGrid:i=!1,transform:l,containerBounds:a}){const{x:u,y:c}=en(t),d=Mi({x:u-((a==null?void 0:a.left)??0),y:c-((a==null?void 0:a.top)??0)},l),{x:h,y:m}=i?Ci(d,r):d;return{xSnapped:h,ySnapped:m,...d}}const dc=t=>({width:t.offsetWidth,height:t.offsetHeight}),ig=t=>{var r;return((r=t==null?void 0:t.getRootNode)==null?void 0:r.call(t))||(window==null?void 0:window.document)},Qw=["INPUT","SELECT","TEXTAREA"];function sg(t){var l,a;const r=((a=(l=t.composedPath)==null?void 0:l.call(t))==null?void 0:a[0])||t.target;return(r==null?void 0:r.nodeType)!==1?!1:Qw.includes(r.nodeName)||r.hasAttribute("contenteditable")||!!r.closest(".nokey")}const lg=t=>"clientX"in t,en=(t,r)=>{var u,c;const i=lg(t),l=i?t.clientX:(u=t.touches)==null?void 0:u[0].clientX,a=i?t.clientY:(c=t.touches)==null?void 0:c[0].clientY;return{x:l-((r==null?void 0:r.left)??0),y:a-((r==null?void 0:r.top)??0)}},Ep=(t,r,i,l,a)=>{const u=r.querySelectorAll(`.${t}`);return!u||!u.length?null:Array.from(u).map(c=>{const d=c.getBoundingClientRect();return{id:c.getAttribute("data-handleid"),type:t,nodeId:a,position:c.getAttribute("data-handlepos"),x:(d.left-i.left)/l,y:(d.top-i.top)/l,...dc(c)}})};function ag({sourceX:t,sourceY:r,targetX:i,targetY:l,sourceControlX:a,sourceControlY:u,targetControlX:c,targetControlY:d}){const h=t*.125+a*.375+c*.375+i*.125,m=r*.125+u*.375+d*.375+l*.125,v=Math.abs(h-t),y=Math.abs(m-r);return[h,m,v,y]}function Gs(t,r){return t>=0?.5*t:r*25*Math.sqrt(-t)}function Np({pos:t,x1:r,y1:i,x2:l,y2:a,c:u}){switch(t){case we.Left:return[r-Gs(r-l,u),i];case we.Right:return[r+Gs(l-r,u),i];case we.Top:return[r,i-Gs(i-a,u)];case we.Bottom:return[r,i+Gs(a-i,u)]}}function ug({sourceX:t,sourceY:r,sourcePosition:i=we.Bottom,targetX:l,targetY:a,targetPosition:u=we.Top,curvature:c=.25}){const[d,h]=Np({pos:i,x1:t,y1:r,x2:l,y2:a,c}),[m,v]=Np({pos:u,x1:l,y1:a,x2:t,y2:r,c}),[y,g,w,_]=ag({sourceX:t,sourceY:r,targetX:l,targetY:a,sourceControlX:d,sourceControlY:h,targetControlX:m,targetControlY:v});return[`M${t},${r} C${d},${h} ${m},${v} ${l},${a}`,y,g,w,_]}function cg({sourceX:t,sourceY:r,targetX:i,targetY:l}){const a=Math.abs(i-t)/2,u=i<t?i+a:i-a,c=Math.abs(l-r)/2,d=l<r?l+c:l-c;return[u,d,a,c]}function Gw({sourceNode:t,targetNode:r,selected:i=!1,zIndex:l=0,elevateOnSelect:a=!1,zIndexMode:u="basic"}){if(u==="manual")return l;const c=a&&i?l+1e3:l,d=Math.max(t.parentId||a&&t.selected?t.internals.z:0,r.parentId||a&&r.selected?r.internals.z:0);return c+d}function qw({sourceNode:t,targetNode:r,width:i,height:l,transform:a}){const u=Sl(hl(t),hl(r));u.x===u.x2&&(u.x2+=1),u.y===u.y2&&(u.y2+=1);const c={x:-a[0]/a[2],y:-a[1]/a[2],width:i/a[2],height:l/a[2]};return gl(c,kl(u))>0}const Zw=({source:t,sourceHandle:r,target:i,targetHandle:l})=>`xy-edge__${t}${r||""}-${i}${l||""}`,Jw=(t,r)=>r.some(i=>i.source===t.source&&i.target===t.target&&(i.sourceHandle===t.sourceHandle||!i.sourceHandle&&!t.sourceHandle)&&(i.targetHandle===t.targetHandle||!i.targetHandle&&!t.targetHandle)),e1=(t,r,i={})=>{var u;if(!t.source||!t.target)return(u=i.onError)==null||u.call(i,"006",tn.error006()),r;const l=i.getEdgeId||Zw;let a;return Gh(t)?a={...t}:a={...t,id:l(t)},Jw(a,r)?r:(a.sourceHandle===null&&delete a.sourceHandle,a.targetHandle===null&&delete a.targetHandle,r.concat(a))};function fg({sourceX:t,sourceY:r,targetX:i,targetY:l}){const[a,u,c,d]=cg({sourceX:t,sourceY:r,targetX:i,targetY:l});return[`M ${t},${r}L ${i},${l}`,a,u,c,d]}const Cp={[we.Left]:{x:-1,y:0},[we.Right]:{x:1,y:0},[we.Top]:{x:0,y:-1},[we.Bottom]:{x:0,y:1}},t1=({source:t,sourcePosition:r=we.Bottom,target:i})=>r===we.Left||r===we.Right?t.x<i.x?{x:1,y:0}:{x:-1,y:0}:t.y<i.y?{x:0,y:1}:{x:0,y:-1},Mp=(t,r)=>Math.sqrt(Math.pow(r.x-t.x,2)+Math.pow(r.y-t.y,2));function n1({source:t,sourcePosition:r=we.Bottom,target:i,targetPosition:l=we.Top,center:a,offset:u,stepPosition:c}){const d=Cp[r],h=Cp[l],m={x:t.x+d.x*u,y:t.y+d.y*u},v={x:i.x+h.x*u,y:i.y+h.y*u},y=t1({source:m,sourcePosition:r,target:v}),g=y.x!==0?"x":"y",w=y[g];let _=[],C,E;const N={x:0,y:0},I={x:0,y:0},[,,k,M]=cg({sourceX:t.x,sourceY:t.y,targetX:i.x,targetY:i.y});if(d[g]*h[g]===-1){g==="x"?(C=a.x??m.x+(v.x-m.x)*c,E=a.y??(m.y+v.y)/2):(C=a.x??(m.x+v.x)/2,E=a.y??m.y+(v.y-m.y)*c);const W=[{x:C,y:m.y},{x:C,y:v.y}],X=[{x:m.x,y:E},{x:v.x,y:E}];d[g]===w?_=g==="x"?W:X:_=g==="x"?X:W}else{const W=[{x:m.x,y:v.y}],X=[{x:v.x,y:m.y}];if(g==="x"?_=d.x===w?X:W:_=d.y===w?W:X,r===l){const P=Math.abs(t[g]-i[g]);if(P<=u){const U=Math.min(u-1,u-P);d[g]===w?N[g]=(m[g]>t[g]?-1:1)*U:I[g]=(v[g]>i[g]?-1:1)*U}}if(r!==l){const P=g==="x"?"y":"x",U=d[g]===h[P],B=m[P]>v[P],b=m[P]<v[P];(d[g]===1&&(!U&&B||U&&b)||d[g]!==1&&(!U&&b||U&&B))&&(_=g==="x"?W:X)}const ee={x:m.x+N.x,y:m.y+N.y},q={x:v.x+I.x,y:v.y+I.y},te=Math.max(Math.abs(ee.x-_[0].x),Math.abs(q.x-_[0].x)),J=Math.max(Math.abs(ee.y-_[0].y),Math.abs(q.y-_[0].y));te>=J?(C=(ee.x+q.x)/2,E=_[0].y):(C=_[0].x,E=(ee.y+q.y)/2)}const F={x:m.x+N.x,y:m.y+N.y},$={x:v.x+I.x,y:v.y+I.y};return[[t,...F.x!==_[0].x||F.y!==_[0].y?[F]:[],..._,...$.x!==_[_.length-1].x||$.y!==_[_.length-1].y?[$]:[],i],C,E,k,M]}function r1(t,r,i,l){const a=Math.min(Mp(t,r)/2,Mp(r,i)/2,l),{x:u,y:c}=r;if(t.x===u&&u===i.x||t.y===c&&c===i.y)return`L${u} ${c}`;if(t.y===c){const m=t.x<i.x?-1:1,v=t.y<i.y?1:-1;return`L ${u+a*m},${c}Q ${u},${c} ${u},${c+a*v}`}const d=t.x<i.x?1:-1,h=t.y<i.y?-1:1;return`L ${u},${c+a*h}Q ${u},${c} ${u+a*d},${c}`}function Gu({sourceX:t,sourceY:r,sourcePosition:i=we.Bottom,targetX:l,targetY:a,targetPosition:u=we.Top,borderRadius:c=5,centerX:d,centerY:h,offset:m=20,stepPosition:v=.5}){const[y,g,w,_,C]=n1({source:{x:t,y:r},sourcePosition:i,target:{x:l,y:a},targetPosition:u,center:{x:d,y:h},offset:m,stepPosition:v});let E=`M${y[0].x} ${y[0].y}`;for(let N=1;N<y.length-1;N++)E+=r1(y[N-1],y[N],y[N+1],c);return E+=`L${y[y.length-1].x} ${y[y.length-1].y}`,[E,g,w,_,C]}function jp(t){var r;return t&&!!(t.internals.handleBounds||(r=t.handles)!=null&&r.length)&&!!(t.measured.width||t.width||t.initialWidth)}function o1(t){var y;const{sourceNode:r,targetNode:i}=t;if(!jp(r)||!jp(i))return null;const l=r.internals.handleBounds||Pp(r.handles),a=i.internals.handleBounds||Pp(i.handles),u=Ip((l==null?void 0:l.source)??[],t.sourceHandle),c=Ip(t.connectionMode===uo.Strict?(a==null?void 0:a.target)??[]:((a==null?void 0:a.target)??[]).concat((a==null?void 0:a.source)??[]),t.targetHandle);if(!u||!c)return(y=t.onError)==null||y.call(t,"008",tn.error008(u?"target":"source",{id:t.id,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle})),null;const d=(u==null?void 0:u.position)||we.Bottom,h=(c==null?void 0:c.position)||we.Top,m=Nr(r,u,d),v=Nr(i,c,h);return{sourceX:m.x,sourceY:m.y,targetX:v.x,targetY:v.y,sourcePosition:d,targetPosition:h}}function Pp(t){if(!t)return null;const r=[],i=[];for(const l of t)l.width=l.width??1,l.height=l.height??1,l.type==="source"?r.push(l):l.type==="target"&&i.push(l);return{source:r,target:i}}function Nr(t,r,i=we.Left,l=!1){const a=((r==null?void 0:r.x)??0)+t.internals.positionAbsolute.x,u=((r==null?void 0:r.y)??0)+t.internals.positionAbsolute.y,{width:c,height:d}=r??rn(t);if(l)return{x:a+c/2,y:u+d/2};switch((r==null?void 0:r.position)??i){case we.Top:return{x:a+c/2,y:u};case we.Right:return{x:a+c,y:u+d/2};case we.Bottom:return{x:a+c/2,y:u+d};case we.Left:return{x:a,y:u+d/2}}}function Ip(t,r){return t&&(r?t.find(i=>i.id===r):t[0])||null}function qu(t,r){return t?typeof t=="string"?t:`${r?`${r}__`:""}${Object.keys(t).sort().map(l=>`${l}=${t[l]}`).join("&")}`:""}function i1(t,{id:r,defaultColor:i,defaultMarkerStart:l,defaultMarkerEnd:a}){const u=new Set;return t.reduce((c,d)=>([d.markerStart||l,d.markerEnd||a].forEach(h=>{if(h&&typeof h=="object"){const m=qu(h,r);u.has(m)||(c.push({id:m,color:h.color||i,...h}),u.add(m))}}),c),[]).sort((c,d)=>c.id.localeCompare(d.id))}const dg=1e3,s1=10,pc={nodeOrigin:[0,0],nodeExtent:mi,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},l1={...pc,checkEquality:!0};function hc(t,r){const i={...t};for(const l in r)r[l]!==void 0&&(i[l]=r[l]);return i}function a1(t,r,i){const l=hc(pc,i);for(const a of t.values())if(a.parentId)mc(a,t,r,l);else{const u=Ei(a,l.nodeOrigin),c=Er(a.extent)?a.extent:l.nodeExtent,d=kr(u,c,rn(a));a.internals.positionAbsolute=d}}function u1(t,r){if(!t.handles)return t.measured?r==null?void 0:r.internals.handleBounds:void 0;const i=[],l=[];for(const a of t.handles){const u={id:a.id,width:a.width??1,height:a.height??1,nodeId:t.id,x:a.x,y:a.y,position:a.position,type:a.type};a.type==="source"?i.push(u):a.type==="target"&&l.push(u)}return{source:i,target:l}}function gc(t){return t==="manual"}function Zu(t,r,i,l={}){var v,y;const a=hc(l1,l),u={i:0},c=new Map(r),d=a!=null&&a.elevateNodesOnSelect&&!gc(a.zIndexMode)?dg:0;let h=t.length>0,m=!1;r.clear(),i.clear();for(const g of t){let w=c.get(g.id);if(a.checkEquality&&g===(w==null?void 0:w.internals.userNode))r.set(g.id,w);else{const _=Ei(g,a.nodeOrigin),C=Er(g.extent)?g.extent:a.nodeExtent,E=kr(_,C,rn(g));w={...a.defaults,...g,measured:{width:(v=g.measured)==null?void 0:v.width,height:(y=g.measured)==null?void 0:y.height},internals:{positionAbsolute:E,handleBounds:u1(g,w),z:pg(g,d,a.zIndexMode),userNode:g}},r.set(g.id,w)}(w.measured===void 0||w.measured.width===void 0||w.measured.height===void 0)&&!w.hidden&&(h=!1),g.parentId&&mc(w,r,i,l,u),m||(m=g.selected??!1)}return{nodesInitialized:h,hasSelectedNodes:m}}function c1(t,r){if(!t.parentId)return;const i=r.get(t.parentId);i?i.set(t.id,t):r.set(t.parentId,new Map([[t.id,t]]))}function mc(t,r,i,l,a){const{elevateNodesOnSelect:u,nodeOrigin:c,nodeExtent:d,zIndexMode:h}=hc(pc,l),m=t.parentId,v=r.get(m);if(!v){console.warn(`Parent node ${m} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}c1(t,i),a&&!v.parentId&&v.internals.rootParentIndex===void 0&&h==="auto"&&(v.internals.rootParentIndex=++a.i,v.internals.z=v.internals.z+a.i*s1),a&&v.internals.rootParentIndex!==void 0&&(a.i=v.internals.rootParentIndex);const y=u&&!gc(h)?dg:0,{x:g,y:w,z:_}=f1(t,v,c,d,y,h),{positionAbsolute:C}=t.internals,E=g!==C.x||w!==C.y;(E||_!==t.internals.z)&&r.set(t.id,{...t,internals:{...t.internals,positionAbsolute:E?{x:g,y:w}:C,z:_}})}function pg(t,r,i){const l=Jt(t.zIndex)?t.zIndex:0;return gc(i)?l:l+(t.selected?r:0)}function f1(t,r,i,l,a,u){const{x:c,y:d}=r.internals.positionAbsolute,h=rn(t),m=Ei(t,i),v=Er(t.extent)?kr(m,t.extent,h):m;let y=kr({x:c+v.x,y:d+v.y},l,h);t.extent==="parent"&&(y=Zh(y,h,r));const g=pg(t,a,u),w=r.internals.z??0;return{x:y.x,y:y.y,z:w>=g?w+1:g}}function yc(t,r,i,l=[0,0]){var c;const a=[],u=new Map;for(const d of t){const h=r.get(d.parentId);if(!h)continue;const m=((c=u.get(d.parentId))==null?void 0:c.expandedRect)??vi(h),v=Jh(m,d.rect);u.set(d.parentId,{expandedRect:v,parent:h})}return u.size>0&&u.forEach(({expandedRect:d,parent:h},m)=>{var k;const v=h.internals.positionAbsolute,y=rn(h),g=h.origin??l,w=d.x<v.x?Math.round(Math.abs(v.x-d.x)):0,_=d.y<v.y?Math.round(Math.abs(v.y-d.y)):0,C=Math.max(y.width,Math.round(d.width)),E=Math.max(y.height,Math.round(d.height)),N=(C-y.width)*g[0],I=(E-y.height)*g[1];(w>0||_>0||N||I)&&(a.push({id:m,type:"position",position:{x:h.position.x-w+N,y:h.position.y-_+I}}),(k=i.get(m))==null||k.forEach(M=>{t.some(F=>F.id===M.id)||a.push({id:M.id,type:"position",position:{x:M.position.x+w,y:M.position.y+_}})})),(y.width<d.width||y.height<d.height||w||_)&&a.push({id:m,type:"dimensions",setAttributes:!0,dimensions:{width:C+(w?g[0]*w-N:0),height:E+(_?g[1]*_-I:0)}})}),a}function d1(t,r,i,l,a,u,c){const d=l==null?void 0:l.querySelector(".xyflow__viewport");let h=!1;if(!d)return{changes:[],updatedInternals:h};const m=[],v=window.getComputedStyle(d),{m22:y}=new window.DOMMatrixReadOnly(v.transform),g=[];for(const w of t.values()){const _=r.get(w.id);if(!_)continue;if(_.hidden){r.set(_.id,{..._,internals:{..._.internals,handleBounds:void 0}}),h=!0;continue}const C=dc(w.nodeElement),E=_.measured.width!==C.width||_.measured.height!==C.height;if(!!(C.width&&C.height&&(E||!_.internals.handleBounds||w.force))){const I=w.nodeElement.getBoundingClientRect(),k=Er(_.extent)?_.extent:u;let{positionAbsolute:M}=_.internals;if(_.parentId&&_.extent==="parent"){const $=r.get(_.parentId);$&&(M=Zh(M,C,$))}else k&&(M=kr(M,k,C));const F={..._,measured:C,internals:{..._.internals,positionAbsolute:M,handleBounds:{source:Ep("source",w.nodeElement,I,y,_.id),target:Ep("target",w.nodeElement,I,y,_.id)}}};r.set(_.id,F),_.parentId&&mc(F,r,i,{nodeOrigin:a,zIndexMode:c}),h=!0,E&&(m.push({id:_.id,type:"dimensions",dimensions:C}),_.expandParent&&_.parentId&&g.push({id:_.id,parentId:_.parentId,rect:vi(F,a)}))}}if(g.length>0){const w=yc(g,r,i,a);m.push(...w)}return{changes:m,updatedInternals:h}}async function p1({delta:t,panZoom:r,transform:i,translateExtent:l,width:a,height:u}){if(!r||!t.x&&!t.y)return!1;const c=await r.setViewportConstrained({x:i[0]+t.x,y:i[1]+t.y,zoom:i[2]},[[0,0],[a,u]],l);return!!c&&(c.x!==i[0]||c.y!==i[1]||c.k!==i[2])}function Tp(t,r,i,l,a,u){let c=a;const d=l.get(c)||new Map;l.set(c,d.set(i,r)),c=`${a}-${t}`;const h=l.get(c)||new Map;if(l.set(c,h.set(i,r)),u){c=`${a}-${t}-${u}`;const m=l.get(c)||new Map;l.set(c,m.set(i,r))}}function hg(t,r,i){t.clear(),r.clear();for(const l of i){const{source:a,target:u,sourceHandle:c=null,targetHandle:d=null}=l,h={edgeId:l.id,source:a,target:u,sourceHandle:c,targetHandle:d},m=`${a}-${c}--${u}-${d}`,v=`${u}-${d}--${a}-${c}`;Tp("source",h,v,t,a,c),Tp("target",h,m,t,u,d),r.set(l.id,l)}}function gg(t,r){if(!t.parentId)return!1;const i=r.get(t.parentId);return i?i.selected?!0:gg(i,r):!1}function Rp(t,r,i){var a;let l=t;do{if((a=l==null?void 0:l.matches)!=null&&a.call(l,r))return!0;if(l===i)return!1;l=l==null?void 0:l.parentElement}while(l);return!1}function h1(t,r,i,l){const a=new Map;for(const[u,c]of t)if((c.selected||c.id===l)&&(!c.parentId||!gg(c,t))&&(c.draggable||r&&typeof c.draggable>"u")){const d=t.get(u);d&&a.set(u,{id:u,position:d.position||{x:0,y:0},distance:{x:i.x-d.internals.positionAbsolute.x,y:i.y-d.internals.positionAbsolute.y},extent:d.extent,parentId:d.parentId,origin:d.origin,expandParent:d.expandParent,internals:{positionAbsolute:d.internals.positionAbsolute||{x:0,y:0}},measured:{width:d.measured.width??0,height:d.measured.height??0}})}return a}function ju({nodeId:t,dragItems:r,nodeLookup:i,dragging:l=!0}){var c,d,h;const a=[];for(const[m,v]of r){const y=(c=i.get(m))==null?void 0:c.internals.userNode;y&&a.push({...y,position:v.position,dragging:l})}if(!t)return[a[0],a];const u=(d=i.get(t))==null?void 0:d.internals.userNode;return[u?{...u,position:((h=r.get(t))==null?void 0:h.position)||u.position,dragging:l}:a[0],a]}function g1({dragItems:t,snapGrid:r,x:i,y:l}){const a=t.values().next().value;if(!a)return null;const u={x:i-a.distance.x,y:l-a.distance.y},c=Ci(u,r);return{x:c.x-u.x,y:c.y-u.y}}function m1({onNodeMouseDown:t,getStoreItems:r,onDragStart:i,onDrag:l,onDragStop:a}){let u={x:null,y:null},c=0,d=new Map,h=!1,m={x:0,y:0},v=null,y=!1,g=null,w=!1,_=!1,C=null;function E({noDragClassName:I,handleSelector:k,domNode:M,isSelectable:F,nodeId:$,nodeClickDistance:V=0}){g=Lt(M);function W({x:te,y:J}){const{nodeLookup:P,nodeExtent:U,snapGrid:B,snapToGrid:b,nodeOrigin:R,onNodeDrag:z,onSelectionDrag:A,onError:j,updateNodePositions:L}=r();u={x:te,y:J};let ne=!1;const Z=d.size>1,le=Z&&U?Qu(Ni(d)):null,fe=Z&&b?g1({dragItems:d,snapGrid:B,x:te,y:J}):null;for(const[ue,Q]of d){if(!P.has(ue))continue;let ie={x:te-Q.distance.x,y:J-Q.distance.y};b&&(ie=fe?{x:Math.round(ie.x+fe.x),y:Math.round(ie.y+fe.y)}:Ci(ie,B));let pe=null;if(Z&&U&&!Q.extent&&le){const{positionAbsolute:Se}=Q.internals,Ne=Se.x-le.x+U[0][0],je=Se.x+Q.measured.width-le.x2+U[1][0],Ie=Se.y-le.y+U[0][1],Te=Se.y+Q.measured.height-le.y2+U[1][1];pe=[[Ne,Ie],[je,Te]]}const{position:_e,positionAbsolute:xe}=qh({nodeId:ue,nextPosition:ie,nodeLookup:P,nodeExtent:pe||U,nodeOrigin:R,onError:j});ne=ne||Q.position.x!==_e.x||Q.position.y!==_e.y,Q.position=_e,Q.internals.positionAbsolute=xe}if(_=_||ne,!!ne&&(L(d,!0),C&&(l||z||!$&&A))){const[ue,Q]=ju({nodeId:$,dragItems:d,nodeLookup:P});l==null||l(C,d,ue,Q),z==null||z(C,ue,Q),$||A==null||A(C,Q)}}async function X(){if(!v)return;const{transform:te,panBy:J,autoPanSpeed:P,autoPanOnNodeDrag:U}=r();if(!U){h=!1,cancelAnimationFrame(c);return}const[B,b]=cc(m,v,P);(B!==0||b!==0)&&(u.x=(u.x??0)-B/te[2],u.y=(u.y??0)-b/te[2],await J({x:B,y:b})&&W(u)),c=requestAnimationFrame(X)}function ee(te){var Z;const{nodeLookup:J,multiSelectionActive:P,nodesDraggable:U,transform:B,snapGrid:b,snapToGrid:R,selectNodesOnDrag:z,onNodeDragStart:A,onSelectionDragStart:j,unselectNodesAndEdges:L}=r();y=!0,(!z||!F)&&!P&&$&&((Z=J.get($))!=null&&Z.selected||L()),F&&z&&$&&(t==null||t($));const ne=fi(te.sourceEvent,{transform:B,snapGrid:b,snapToGrid:R,containerBounds:v});if(u=ne,d=h1(J,U,ne,$),d.size>0&&(i||A||!$&&j)){const[le,fe]=ju({nodeId:$,dragItems:d,nodeLookup:J});i==null||i(te.sourceEvent,d,le,fe),A==null||A(te.sourceEvent,le,fe),$||j==null||j(te.sourceEvent,fe)}}const q=Th().clickDistance(V).on("start",te=>{const{domNode:J,nodeDragThreshold:P,transform:U,snapGrid:B,snapToGrid:b}=r();v=(J==null?void 0:J.getBoundingClientRect())||null,w=!1,_=!1,C=te.sourceEvent,P===0&&ee(te),u=fi(te.sourceEvent,{transform:U,snapGrid:B,snapToGrid:b,containerBounds:v}),m=en(te.sourceEvent,v)}).on("drag",te=>{const{autoPanOnNodeDrag:J,transform:P,snapGrid:U,snapToGrid:B,nodeDragThreshold:b,nodeLookup:R}=r(),z=fi(te.sourceEvent,{transform:P,snapGrid:U,snapToGrid:B,containerBounds:v});if(C=te.sourceEvent,(te.sourceEvent.type==="touchmove"&&te.sourceEvent.touches.length>1||$&&!R.has($))&&(w=!0),!w){if(!h&&J&&y&&(h=!0,X()),!y){const A=en(te.sourceEvent,v),j=A.x-m.x,L=A.y-m.y;Math.sqrt(j*j+L*L)>b&&ee(te)}(u.x!==z.xSnapped||u.y!==z.ySnapped)&&d&&y&&(m=en(te.sourceEvent,v),W(z))}}).on("end",te=>{if(!y||w){w&&d.size>0&&r().updateNodePositions(d,!1);return}if(h=!1,y=!1,cancelAnimationFrame(c),d.size>0){const{nodeLookup:J,updateNodePositions:P,onNodeDragStop:U,onSelectionDragStop:B}=r();if(_&&(P(d,!1),_=!1),a||U||!$&&B){const[b,R]=ju({nodeId:$,dragItems:d,nodeLookup:J,dragging:!1});a==null||a(te.sourceEvent,d,b,R),U==null||U(te.sourceEvent,b,R),$||B==null||B(te.sourceEvent,R)}}}).filter(te=>{const J=te.target;return!te.button&&(!I||!Rp(J,`.${I}`,M))&&(!k||Rp(J,k,M))});g.call(q)}function N(){g==null||g.on(".drag",null)}return{update:E,destroy:N}}function y1(t,r,i){const l=[],a={x:t.x-i,y:t.y-i,width:i*2,height:i*2};for(const u of r.values())gl(a,vi(u))>0&&l.push(u);return l}const v1=250;function x1(t,r,i,l){var d,h;let a=[],u=1/0;const c=y1(t,i,r+v1);for(const m of c){const v=[...((d=m.internals.handleBounds)==null?void 0:d.source)??[],...((h=m.internals.handleBounds)==null?void 0:h.target)??[]];for(const y of v){if(l.nodeId===y.nodeId&&l.type===y.type&&l.id===y.id)continue;const{x:g,y:w}=Nr(m,y,y.position,!0),_=Math.sqrt(Math.pow(g-t.x,2)+Math.pow(w-t.y,2));_>r||(_<u?(a=[{...y,x:g,y:w}],u=_):_===u&&a.push({...y,x:g,y:w}))}}if(!a.length)return null;if(a.length>1){const m=l.type==="source"?"target":"source";return a.find(v=>v.type===m)??a[0]}return a[0]}function mg(t,r,i,l,a,u=!1){var m,v,y;const c=l.get(t);if(!c)return null;const d=a==="strict"?(m=c.internals.handleBounds)==null?void 0:m[r]:[...((v=c.internals.handleBounds)==null?void 0:v.source)??[],...((y=c.internals.handleBounds)==null?void 0:y.target)??[]],h=(i?d==null?void 0:d.find(g=>g.id===i):d==null?void 0:d[0])??null;return h&&u?{...h,...Nr(c,h,h.position,!0)}:h}function yg(t,r){return t||(r!=null&&r.classList.contains("target")?"target":r!=null&&r.classList.contains("source")?"source":null)}function w1(t,r){let i=null;return r?i=!0:t&&!r&&(i=!1),i}const vg=()=>!0;function _1(t,{connectionMode:r,connectionRadius:i,handleId:l,nodeId:a,edgeUpdaterType:u,isTarget:c,domNode:d,nodeLookup:h,lib:m,autoPanOnConnect:v,flowId:y,panBy:g,cancelConnection:w,onConnectStart:_,onConnect:C,onConnectEnd:E,isValidConnection:N=vg,onReconnectEnd:I,updateConnection:k,getTransform:M,getFromHandle:F,autoPanSpeed:$,dragThreshold:V=1,handleDomNode:W}){const X=ig(t.target);let ee=0,q;const{x:te,y:J}=en(t),P=yg(u,W),U=d==null?void 0:d.getBoundingClientRect();let B=!1;if(!U||!P)return;const b=mg(a,P,l,h,r);if(!b)return;let R=en(t,U),z=!1,A=null,j=!1,L=null;function ne(){if(!v||!U)return;const[_e,xe]=cc(R,U,$);g({x:_e,y:xe}),ee=requestAnimationFrame(ne)}const Z={...b,nodeId:a,type:P,position:b.position},le=h.get(a);let ue={inProgress:!0,isValid:null,from:Nr(le,Z,we.Left,!0),fromHandle:Z,fromPosition:Z.position,fromNode:le,to:R,toHandle:null,toPosition:wp[Z.position],toNode:null,pointer:R};function Q(){B=!0,k(ue),_==null||_(t,{nodeId:a,handleId:l,handleType:P})}V===0&&Q();function ie(_e){if(!B){const{x:Te,y:nt}=en(_e),ut=Te-te,rt=nt-J;if(!(ut*ut+rt*rt>V*V))return;Q()}if(!F()||!Z){pe(_e);return}const xe=M();R=en(_e,U),q=x1(Mi(R,xe,!1,[1,1]),i,h,Z),z||(ne(),z=!0);const Se=xg(_e,{handle:q,connectionMode:r,fromNodeId:a,fromHandleId:l,fromType:c?"target":"source",isValidConnection:N,doc:X,lib:m,flowId:y,nodeLookup:h});L=Se.handleDomNode,A=Se.connection,j=w1(!!q,Se.isValid);const Ne=h.get(a),je=Ne?Nr(Ne,Z,we.Left,!0):ue.from,Ie={...ue,from:je,isValid:j,to:Se.toHandle&&j?fo({x:Se.toHandle.x,y:Se.toHandle.y},xe):R,toHandle:Se.toHandle,toPosition:j&&Se.toHandle?Se.toHandle.position:wp[Z.position],toNode:Se.toHandle?h.get(Se.toHandle.nodeId):null,pointer:R};k(Ie),ue=Ie}function pe(_e){if(!("touches"in _e&&_e.touches.length>0)){if(B){(q||L)&&A&&j&&(C==null||C(A));const{inProgress:xe,...Se}=ue,Ne={...Se,toPosition:ue.toHandle?ue.toPosition:null};E==null||E(_e,Ne),u&&(I==null||I(_e,Ne))}w(),cancelAnimationFrame(ee),z=!1,j=!1,A=null,L=null,X.removeEventListener("mousemove",ie),X.removeEventListener("mouseup",pe),X.removeEventListener("touchmove",ie),X.removeEventListener("touchend",pe)}}X.addEventListener("mousemove",ie),X.addEventListener("mouseup",pe),X.addEventListener("touchmove",ie),X.addEventListener("touchend",pe)}function xg(t,{handle:r,connectionMode:i,fromNodeId:l,fromHandleId:a,fromType:u,doc:c,lib:d,flowId:h,isValidConnection:m=vg,nodeLookup:v}){const y=u==="target",g=r?c.querySelector(`.${d}-flow__handle[data-id="${h}-${r==null?void 0:r.nodeId}-${r==null?void 0:r.id}-${r==null?void 0:r.type}"]`):null,{x:w,y:_}=en(t),C=c.elementFromPoint(w,_),E=C!=null&&C.classList.contains(`${d}-flow__handle`)?C:g,N={handleDomNode:E,isValid:!1,connection:null,toHandle:null};if(E){const I=yg(void 0,E),k=E.getAttribute("data-nodeid"),M=E.getAttribute("data-handleid"),F=E.classList.contains("connectable"),$=E.classList.contains("connectableend");if(!k||!I)return N;const V={source:y?k:l,sourceHandle:y?M:a,target:y?l:k,targetHandle:y?a:M};N.connection=V;const X=F&&$&&(i===uo.Strict?y&&I==="source"||!y&&I==="target":k!==l||M!==a);N.isValid=X&&m(V),N.toHandle=mg(k,I,M,v,i,!0)}return N}const Ju={onPointerDown:_1,isValid:xg};function S1({domNode:t,panZoom:r,getTransform:i,getViewScale:l}){const a=Lt(t);function u({translateExtent:d,width:h,height:m,zoomStep:v=1,pannable:y=!0,zoomable:g=!0,inversePan:w=!1}){const _=k=>{if(k.sourceEvent.type!=="wheel"||!r)return;const M=i(),F=k.sourceEvent.ctrlKey&&xi()?10:1,$=-k.sourceEvent.deltaY*(k.sourceEvent.deltaMode===1?.05:k.sourceEvent.deltaMode?1:.002)*v,V=M[2]*Math.pow(2,$*F);r.scaleTo(V)};let C=[0,0];const E=k=>{(k.sourceEvent.type==="mousedown"||k.sourceEvent.type==="touchstart")&&(C=[k.sourceEvent.clientX??k.sourceEvent.touches[0].clientX,k.sourceEvent.clientY??k.sourceEvent.touches[0].clientY])},N=k=>{const M=i();if(k.sourceEvent.type!=="mousemove"&&k.sourceEvent.type!=="touchmove"||!r)return;const F=[k.sourceEvent.clientX??k.sourceEvent.touches[0].clientX,k.sourceEvent.clientY??k.sourceEvent.touches[0].clientY],$=[F[0]-C[0],F[1]-C[1]];C=F;const V=l()*Math.max(M[2],Math.log(M[2]))*(w?-1:1),W={x:M[0]-$[0]*V,y:M[1]-$[1]*V},X=[[0,0],[h,m]];r.setViewportConstrained({x:W.x,y:W.y,zoom:M[2]},X,d)},I=Yh().on("start",E).on("zoom",y?N:null).on("zoom.wheel",g?_:null);a.call(I,{})}function c(){a.on("zoom",null)}return{update:u,destroy:c,pointer:qt}}const El=t=>({x:t.x,y:t.y,zoom:t.k}),Pu=({x:t,y:r,zoom:i})=>_l.translate(t,r).scale(i),Kn=(t,r)=>t.target.closest(`.${r}`),wg=(t,r)=>r===2&&Array.isArray(t)&&t.includes(2),k1=t=>((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2,Iu=(t,r=0,i=k1,l=()=>{})=>{const a=typeof r=="number"&&r>0;return a||l(),a?t.transition().duration(r).ease(i).on("end",l):t},_g=t=>{const r=t.ctrlKey&&xi()?10:1;return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*r};function E1({zoomPanValues:t,noWheelClassName:r,d3Selection:i,d3Zoom:l,panOnScrollMode:a,panOnScrollSpeed:u,zoomOnPinch:c,onPanZoomStart:d,onPanZoom:h,onPanZoomEnd:m}){return v=>{if(Kn(v,r))return v.ctrlKey&&v.preventDefault(),!1;v.preventDefault(),v.stopImmediatePropagation();const y=i.property("__zoom").k||1;if(v.ctrlKey&&c){const E=qt(v),N=_g(v),I=y*Math.pow(2,N);l.scaleTo(i,I,E,v);return}const g=v.deltaMode===1?20:1;let w=a===xr.Vertical?0:v.deltaX*g,_=a===xr.Horizontal?0:v.deltaY*g;!xi()&&v.shiftKey&&a!==xr.Vertical&&(w=v.deltaY*g,_=0),l.translateBy(i,-(w/y)*u,-(_/y)*u,{internal:!0});const C=El(i.property("__zoom"));clearTimeout(t.panScrollTimeout),t.isPanScrolling?h==null||h(v,C):(t.isPanScrolling=!0,d==null||d(v,C)),t.panScrollTimeout=setTimeout(()=>{m==null||m(v,C),t.isPanScrolling=!1},150)}}function N1({noWheelClassName:t,preventScrolling:r,d3ZoomHandler:i}){return function(l,a){const u=l.type==="wheel",c=!r&&u&&!l.ctrlKey,d=Kn(l,t);if(l.ctrlKey&&u&&d&&l.preventDefault(),c||d)return null;l.preventDefault(),i.call(this,l,a)}}function C1({zoomPanValues:t,onDraggingChange:r,onPanZoomStart:i}){return l=>{var u,c,d;if((u=l.sourceEvent)!=null&&u.internal)return;const a=El(l.transform);t.mouseButton=((c=l.sourceEvent)==null?void 0:c.button)||0,t.isZoomingOrPanning=!0,t.prevViewport=a,((d=l.sourceEvent)==null?void 0:d.type)==="mousedown"&&r(!0),i&&(i==null||i(l.sourceEvent,a))}}function M1({zoomPanValues:t,panOnDrag:r,onPaneContextMenu:i,onTransformChange:l,onPanZoom:a}){return u=>{var c,d;t.usedRightMouseButton=!!(i&&wg(r,t.mouseButton??0)),(c=u.sourceEvent)!=null&&c.sync||l([u.transform.x,u.transform.y,u.transform.k]),a&&!((d=u.sourceEvent)!=null&&d.internal)&&(a==null||a(u.sourceEvent,El(u.transform)))}}function j1({zoomPanValues:t,panOnDrag:r,panOnScroll:i,onDraggingChange:l,onPanZoomEnd:a,onPaneContextMenu:u}){return c=>{var d;if(!((d=c.sourceEvent)!=null&&d.internal)&&(t.isZoomingOrPanning=!1,u&&wg(r,t.mouseButton??0)&&!t.usedRightMouseButton&&c.sourceEvent&&u(c.sourceEvent),t.usedRightMouseButton=!1,l(!1),a)){const h=El(c.transform);t.prevViewport=h,clearTimeout(t.timerId),t.timerId=setTimeout(()=>{a==null||a(c.sourceEvent,h)},i?150:0)}}}function P1({panActivationKeyPressed:t,zoomActivationKeyPressed:r,zoomOnScroll:i,zoomOnPinch:l,panOnDrag:a,panOnScroll:u,zoomOnDoubleClick:c,userSelectionActive:d,noWheelClassName:h,noPanClassName:m,lib:v,connectionInProgress:y}){return g=>{var N;const w=r||i,_=l&&g.ctrlKey,C=g.type==="wheel";if(g.button===1&&g.type==="mousedown"&&(Kn(g,`${v}-flow__node`)||Kn(g,`${v}-flow__edge`)||Kn(g,`${v}-flow__selection`)||Kn(g,`${v}-flow__nodesselection`)))return!0;if(!a&&!w&&!u&&!c&&!l||d||y&&!C||Kn(g,h)&&C||Kn(g,m)&&(!C||u&&C&&!r)||!l&&g.ctrlKey&&C)return!1;if(!l&&g.type==="touchstart"&&((N=g.touches)==null?void 0:N.length)>1)return g.preventDefault(),!1;if(!w&&!u&&!_&&C||!a&&(g.type==="mousedown"||g.type==="touchstart")||Array.isArray(a)&&!a.includes(g.button)&&g.type==="mousedown")return!1;const E=Array.isArray(a)&&a.includes(g.button)||!g.button||g.button<=1;return(!g.ctrlKey||C||t)&&E}}function I1({domNode:t,minZoom:r,maxZoom:i,translateExtent:l,viewport:a,onPanZoom:u,onPanZoomStart:c,onPanZoomEnd:d,onDraggingChange:h}){const m={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},v=t.getBoundingClientRect();let y=[[0,0],[v.width,v.height]];const g=typeof ResizeObserver<"u"?new ResizeObserver(J=>{const P=J[0];P&&(y=[[0,0],[P.contentRect.width,P.contentRect.height]])}):null;g==null||g.observe(t);const w=Yh().extent(()=>y).scaleExtent([r,i]).translateExtent(l),_=Lt(t).call(w);M({x:a.x,y:a.y,zoom:co(a.zoom,r,i)},[[0,0],[v.width,v.height]],l);const C=_.on("wheel.zoom"),E=_.on("dblclick.zoom");w.wheelDelta(_g);async function N(J,P){return _?new Promise(U=>{w==null||w.interpolate((P==null?void 0:P.interpolate)==="linear"?ci:nl).transform(Iu(_,P==null?void 0:P.duration,P==null?void 0:P.ease,()=>U(!0)),J)}):!1}function I({noWheelClassName:J,noPanClassName:P,onPaneContextMenu:U,userSelectionActive:B,panOnScroll:b,panOnDrag:R,panOnScrollMode:z,panOnScrollSpeed:A,preventScrolling:j,zoomOnPinch:L,zoomOnScroll:ne,zoomOnDoubleClick:Z,panActivationKeyPressed:le=!1,zoomActivationKeyPressed:fe,lib:ue,onTransformChange:Q,connectionInProgress:ie,paneClickDistance:pe,selectionOnDrag:_e}){B&&!m.isZoomingOrPanning&&k();const xe=b&&!fe&&!B;w.clickDistance(_e?1/0:!Jt(pe)||pe<0?0:pe);const Se=xe?E1({zoomPanValues:m,noWheelClassName:J,d3Selection:_,d3Zoom:w,panOnScrollMode:z,panOnScrollSpeed:A,zoomOnPinch:L,onPanZoomStart:c,onPanZoom:u,onPanZoomEnd:d}):N1({noWheelClassName:J,preventScrolling:j,d3ZoomHandler:C});_.on("wheel.zoom",Se,{passive:!1});const Ne=C1({zoomPanValues:m,onDraggingChange:h,onPanZoomStart:c});w.on("start",Ne);const je=M1({zoomPanValues:m,panOnDrag:R,onPaneContextMenu:!!U,onPanZoom:u,onTransformChange:Q});w.on("zoom",je);const Ie=j1({zoomPanValues:m,panOnDrag:R,panOnScroll:b,onPaneContextMenu:U,onPanZoomEnd:d,onDraggingChange:h});w.on("end",Ie);const Te=P1({panActivationKeyPressed:le,zoomActivationKeyPressed:fe,panOnDrag:R,zoomOnScroll:ne,panOnScroll:b,zoomOnDoubleClick:Z,zoomOnPinch:L,userSelectionActive:B,noPanClassName:P,noWheelClassName:J,lib:ue,connectionInProgress:ie});w.filter(Te),Z?_.on("dblclick.zoom",E):_.on("dblclick.zoom",null)}function k(){w.on("zoom",null)}async function M(J,P,U){const B=Pu(J),b=w==null?void 0:w.constrain()(B,P,U);return b&&await N(b),b}async function F(J,P){const U=Pu(J);return await N(U,P),U}function $(J){if(_){const P=Pu(J),U=_.property("__zoom");(U.k!==J.zoom||U.x!==J.x||U.y!==J.y)&&(w==null||w.transform(_,P,null,{sync:!0}))}}function V(){const J=_?Wh(_.node()):{x:0,y:0,k:1};return{x:J.x,y:J.y,zoom:J.k}}async function W(J,P){return _?new Promise(U=>{w==null||w.interpolate((P==null?void 0:P.interpolate)==="linear"?ci:nl).scaleTo(Iu(_,P==null?void 0:P.duration,P==null?void 0:P.ease,()=>U(!0)),J)}):!1}async function X(J,P){return _?new Promise(U=>{w==null||w.interpolate((P==null?void 0:P.interpolate)==="linear"?ci:nl).scaleBy(Iu(_,P==null?void 0:P.duration,P==null?void 0:P.ease,()=>U(!0)),J)}):!1}function ee(J){w==null||w.scaleExtent(J)}function q(J){w==null||w.translateExtent(J)}function te(J){const P=!Jt(J)||J<0?0:J;w==null||w.clickDistance(P)}return{update:I,destroy:k,setViewport:F,setViewportConstrained:M,getViewport:V,scaleTo:W,scaleBy:X,setScaleExtent:ee,setTranslateExtent:q,syncViewport:$,setClickDistance:te}}var po;(function(t){t.Line="line",t.Handle="handle"})(po||(po={}));function T1({width:t,prevWidth:r,height:i,prevHeight:l,affectsX:a,affectsY:u}){const c=t-r,d=i-l,h=[c>0?1:c<0?-1:0,d>0?1:d<0?-1:0];return c&&a&&(h[0]=h[0]*-1),d&&u&&(h[1]=h[1]*-1),h}function zp(t){const r=t.includes("right")||t.includes("left"),i=t.includes("bottom")||t.includes("top"),l=t.includes("left"),a=t.includes("top");return{isHorizontal:r,isVertical:i,affectsX:l,affectsY:a}}function Yn(t,r){return Math.max(0,r-t)}function Xn(t,r){return Math.max(0,t-r)}function qs(t,r,i){return Math.max(0,r-t,t-i)}function bp(t,r){return t?!r:r}function R1(t,r,i,l,a,u,c,d){let{affectsX:h,affectsY:m}=r;const{isHorizontal:v,isVertical:y}=r,g=v&&y,{xSnapped:w,ySnapped:_}=i,{minWidth:C,maxWidth:E,minHeight:N,maxHeight:I}=l,{x:k,y:M,width:F,height:$,aspectRatio:V}=t;let W=Math.floor(v?w-t.pointerX:0),X=Math.floor(y?_-t.pointerY:0);const ee=F+(h?-W:W),q=$+(m?-X:X),te=-u[0]*F,J=-u[1]*$;let P=qs(ee,C,E),U=qs(q,N,I);if(c){let R=0,z=0;h&&W<0?R=Yn(k+W+te,c[0][0]):!h&&W>0&&(R=Xn(k+ee+te,c[1][0])),m&&X<0?z=Yn(M+X+J,c[0][1]):!m&&X>0&&(z=Xn(M+q+J,c[1][1])),P=Math.max(P,R),U=Math.max(U,z)}if(d){let R=0,z=0;h&&W>0?R=Xn(k+W,d[0][0]):!h&&W<0&&(R=Yn(k+ee,d[1][0])),m&&X>0?z=Xn(M+X,d[0][1]):!m&&X<0&&(z=Yn(M+q,d[1][1])),P=Math.max(P,R),U=Math.max(U,z)}if(a){if(v){const R=qs(ee/V,N,I)*V;if(P=Math.max(P,R),c){let z=0;!h&&!m||h&&!m&&g?z=Xn(M+J+ee/V,c[1][1])*V:z=Yn(M+J+(h?W:-W)/V,c[0][1])*V,P=Math.max(P,z)}if(d){let z=0;!h&&!m||h&&!m&&g?z=Yn(M+ee/V,d[1][1])*V:z=Xn(M+(h?W:-W)/V,d[0][1])*V,P=Math.max(P,z)}}if(y){const R=qs(q*V,C,E)/V;if(U=Math.max(U,R),c){let z=0;!h&&!m||m&&!h&&g?z=Xn(k+q*V+te,c[1][0])/V:z=Yn(k+(m?X:-X)*V+te,c[0][0])/V,U=Math.max(U,z)}if(d){let z=0;!h&&!m||m&&!h&&g?z=Yn(k+q*V,d[1][0])/V:z=Xn(k+(m?X:-X)*V,d[0][0])/V,U=Math.max(U,z)}}}X=X+(X<0?U:-U),W=W+(W<0?P:-P),a&&(g?ee>q*V?X=(bp(h,m)?-W:W)/V:W=(bp(h,m)?-X:X)*V:v?(X=W/V,m=h):(W=X*V,h=m));const B=h?k+W:k,b=m?M+X:M;return{width:F+(h?-W:W),height:$+(m?-X:X),x:u[0]*W*(h?-1:1)+B,y:u[1]*X*(m?-1:1)+b}}const Sg={width:0,height:0,x:0,y:0},z1={...Sg,pointerX:0,pointerY:0,aspectRatio:1};function b1(t,r,i){const l=r.position.x+t.position.x,a=r.position.y+t.position.y,u=t.measured.width??0,c=t.measured.height??0,d=i[0]*u,h=i[1]*c;return[[l-d,a-h],[l+u-d,a+c-h]]}function L1({domNode:t,nodeId:r,getStoreItems:i,onChange:l,onEnd:a}){const u=Lt(t);let c={controlDirection:zp("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function d({controlPosition:m,boundaries:v,keepAspectRatio:y,resizeDirection:g,onResizeStart:w,onResize:_,onResizeEnd:C,shouldResize:E}){let N={...Sg},I={...z1};c={boundaries:v,resizeDirection:g,keepAspectRatio:y,controlDirection:zp(m)};let k,M=null,F=[],$,V,W,X=!1;const ee=Th().on("start",q=>{const{nodeLookup:te,transform:J,snapGrid:P,snapToGrid:U,nodeOrigin:B,paneDomNode:b}=i();if(k=te.get(r),!k)return;M=(b==null?void 0:b.getBoundingClientRect())??null;const{xSnapped:R,ySnapped:z}=fi(q.sourceEvent,{transform:J,snapGrid:P,snapToGrid:U,containerBounds:M});N={width:k.measured.width??0,height:k.measured.height??0,x:k.position.x??0,y:k.position.y??0},I={...N,pointerX:R,pointerY:z,aspectRatio:N.width/N.height},$=void 0,V=Er(k.extent)?k.extent:void 0,k.parentId&&(k.extent==="parent"||k.expandParent)&&($=te.get(k.parentId)),$&&k.extent==="parent"&&(V=[[0,0],[$.measured.width,$.measured.height]]),F=[],W=void 0;for(const[A,j]of te)if(j.parentId===r&&(F.push({id:A,position:{...j.position},extent:j.extent}),j.extent==="parent"||j.expandParent)){const L=b1(j,k,j.origin??B);W?W=[[Math.min(L[0][0],W[0][0]),Math.min(L[0][1],W[0][1])],[Math.max(L[1][0],W[1][0]),Math.max(L[1][1],W[1][1])]]:W=L}w==null||w(q,{...N})}).on("drag",q=>{const{transform:te,snapGrid:J,snapToGrid:P,nodeOrigin:U}=i(),B=fi(q.sourceEvent,{transform:te,snapGrid:J,snapToGrid:P,containerBounds:M}),b=[];if(!k)return;const{x:R,y:z,width:A,height:j}=N,L={},ne=k.origin??U,{width:Z,height:le,x:fe,y:ue}=R1(I,c.controlDirection,B,c.boundaries,c.keepAspectRatio,ne,V,W),Q=Z!==A,ie=le!==j,pe=fe!==R&&Q,_e=ue!==z&&ie;if(!pe&&!_e&&!Q&&!ie)return;if((pe||_e||ne[0]===1||ne[1]===1)&&(L.x=pe?fe:N.x,L.y=_e?ue:N.y,N.x=L.x,N.y=L.y,F.length>0)){const je=fe-R,Ie=ue-z;for(const Te of F)Te.position={x:Te.position.x-je+ne[0]*(Z-A),y:Te.position.y-Ie+ne[1]*(le-j)},b.push(Te)}if((Q||ie)&&(L.width=Q&&(!c.resizeDirection||c.resizeDirection==="horizontal")?Z:N.width,L.height=ie&&(!c.resizeDirection||c.resizeDirection==="vertical")?le:N.height,N.width=L.width,N.height=L.height),$&&k.expandParent){const je=ne[0]*(L.width??0);L.x&&L.x<je&&(N.x=je,I.x=I.x-(L.x-je));const Ie=ne[1]*(L.height??0);L.y&&L.y<Ie&&(N.y=Ie,I.y=I.y-(L.y-Ie))}const xe=T1({width:N.width,prevWidth:A,height:N.height,prevHeight:j,affectsX:c.controlDirection.affectsX,affectsY:c.controlDirection.affectsY}),Se={...N,direction:xe};(E==null?void 0:E(q,Se))!==!1&&(X=!0,_==null||_(q,Se),l(L,b))}).on("end",q=>{X&&(C==null||C(q,{...N}),a==null||a({...N}),X=!1)});u.call(ee)}function h(){u.on(".drag",null)}return{update:d,destroy:h}}var Tu={exports:{}},Ru={},zu={exports:{}},bu={};/**
+ * @license React
+ * use-sync-external-store-shim.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 Lp;function D1(){if(Lp)return bu;Lp=1;var t=_i();function r(y,g){return y===g&&(y!==0||1/y===1/g)||y!==y&&g!==g}var i=typeof Object.is=="function"?Object.is:r,l=t.useState,a=t.useEffect,u=t.useLayoutEffect,c=t.useDebugValue;function d(y,g){var w=g(),_=l({inst:{value:w,getSnapshot:g}}),C=_[0].inst,E=_[1];return u(function(){C.value=w,C.getSnapshot=g,h(C)&&E({inst:C})},[y,w,g]),a(function(){return h(C)&&E({inst:C}),y(function(){h(C)&&E({inst:C})})},[y]),c(w),w}function h(y){var g=y.getSnapshot;y=y.value;try{var w=g();return!i(y,w)}catch{return!0}}function m(y,g){return g()}var v=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?m:d;return bu.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:v,bu}var Dp;function A1(){return Dp||(Dp=1,zu.exports=D1()),zu.exports}/**
+ * @license React
+ * use-sync-external-store-shim/with-selector.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 Ap;function $1(){if(Ap)return Ru;Ap=1;var t=_i(),r=A1();function i(m,v){return m===v&&(m!==0||1/m===1/v)||m!==m&&v!==v}var l=typeof Object.is=="function"?Object.is:i,a=r.useSyncExternalStore,u=t.useRef,c=t.useEffect,d=t.useMemo,h=t.useDebugValue;return Ru.useSyncExternalStoreWithSelector=function(m,v,y,g,w){var _=u(null);if(_.current===null){var C={hasValue:!1,value:null};_.current=C}else C=_.current;_=d(function(){function N($){if(!I){if(I=!0,k=$,$=g($),w!==void 0&&C.hasValue){var V=C.value;if(w(V,$))return M=V}return M=$}if(V=M,l(k,$))return V;var W=g($);return w!==void 0&&w(V,W)?(k=$,V):(k=$,M=W)}var I=!1,k,M,F=y===void 0?null:y;return[function(){return N(v())},F===null?void 0:function(){return N(F())}]},[v,y,g,w]);var E=a(m,_[0],_[1]);return c(function(){C.hasValue=!0,C.value=E},[E]),h(E),E},Ru}var $p;function O1(){return $p||($p=1,Tu.exports=$1()),Tu.exports}var F1=O1();const H1=ph(F1),V1={},Op=t=>{let r;const i=new Set,l=(v,y)=>{const g=typeof v=="function"?v(r):v;if(!Object.is(g,r)){const w=r;r=y??(typeof g!="object"||g===null)?g:Object.assign({},r,g),i.forEach(_=>_(r,w))}},a=()=>r,h={setState:l,getState:a,getInitialState:()=>m,subscribe:v=>(i.add(v),()=>i.delete(v)),destroy:()=>{(V1?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),i.clear()}},m=r=t(l,a,h);return h},B1=t=>t?Op(t):Op,{useDebugValue:U1}=hh,{useSyncExternalStoreWithSelector:W1}=H1,Y1=t=>t;function kg(t,r=Y1,i){const l=W1(t.subscribe,t.getState,t.getServerState||t.getInitialState,r,i);return U1(l),l}const Fp=(t,r)=>{const i=B1(t),l=(a,u=r)=>kg(i,a,u);return Object.assign(l,i),l},X1=(t,r)=>t?Fp(t,r):Fp;function We(t,r){if(Object.is(t,r))return!0;if(typeof t!="object"||t===null||typeof r!="object"||r===null)return!1;if(t instanceof Map&&r instanceof Map){if(t.size!==r.size)return!1;for(const[l,a]of t)if(!Object.is(a,r.get(l)))return!1;return!0}if(t instanceof Set&&r instanceof Set){if(t.size!==r.size)return!1;for(const l of t)if(!r.has(l))return!1;return!0}const i=Object.keys(t);if(i.length!==Object.keys(r).length)return!1;for(const l of i)if(!Object.prototype.hasOwnProperty.call(r,l)||!Object.is(t[l],r[l]))return!1;return!0}gh();const Nl=D.createContext(null),K1=Nl.Provider,Eg=tn.error001("react");function ze(t,r){const i=D.useContext(Nl);if(i===null)throw new Error(Eg);return kg(i,t,r)}function Oe(){const t=D.useContext(Nl);if(t===null)throw new Error(Eg);return D.useMemo(()=>({getState:t.getState,setState:t.setState,subscribe:t.subscribe}),[t])}const Hp={display:"none"},Q1={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Ng="react-flow__node-desc",Cg="react-flow__edge-desc",G1="react-flow__aria-live",q1=t=>t.ariaLiveMessage,Z1=t=>t.ariaLabelConfig;function J1({rfId:t}){const r=ze(q1);return x.jsx("div",{id:`${G1}-${t}`,"aria-live":"assertive","aria-atomic":"true",style:Q1,children:r})}function e_({rfId:t,disableKeyboardA11y:r}){const i=ze(Z1);return x.jsxs(x.Fragment,{children:[x.jsx("div",{id:`${Ng}-${t}`,style:Hp,children:r?i["node.a11yDescription.default"]:i["node.a11yDescription.keyboardDisabled"]}),x.jsx("div",{id:`${Cg}-${t}`,style:Hp,children:i["edge.a11yDescription.default"]}),!r&&x.jsx(J1,{rfId:t})]})}const ji=D.forwardRef(({position:t="top-left",children:r,className:i,style:l,...a},u)=>{const c=`${t}`.split("-");return x.jsx("div",{className:Ge(["react-flow__panel",i,...c]),style:l,ref:u,...a,children:r})});ji.displayName="Panel";const Vp="https://reactflow.dev?utm_source=attribution";function t_({proOptions:t,position:r="bottom-right"}){return D.useEffect(()=>{},[]),t!=null&&t.hideAttribution?null:x.jsx(ji,{position:r,className:"react-flow__attribution","data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${Vp}`,children:x.jsx("a",{href:Vp,target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const n_=t=>{const r=[],i=[];for(const[,l]of t.nodeLookup)l.selected&&r.push(l.internals.userNode);for(const[,l]of t.edgeLookup)l.selected&&i.push(l);return{selectedNodes:r,selectedEdges:i}},Zs=t=>t.id;function r_(t,r){return We(t.selectedNodes.map(Zs),r.selectedNodes.map(Zs))&&We(t.selectedEdges.map(Zs),r.selectedEdges.map(Zs))}function o_({onSelectionChange:t}){const r=Oe(),{selectedNodes:i,selectedEdges:l}=ze(n_,r_);return D.useEffect(()=>{const a={nodes:i,edges:l};t==null||t(a),r.getState().onSelectionChangeHandlers.forEach(u=>u(a))},[i,l,t]),null}const i_=t=>!!t.onSelectionChangeHandlers;function s_({onSelectionChange:t}){const r=ze(i_);return t||r?x.jsx(o_,{onSelectionChange:t}):null}const Mg=[0,0],l_={x:0,y:0,zoom:1},a_=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode"],Bp=[...a_,"rfId"],u_=t=>({setNodes:t.setNodes,setEdges:t.setEdges,setMinZoom:t.setMinZoom,setMaxZoom:t.setMaxZoom,setTranslateExtent:t.setTranslateExtent,setNodeExtent:t.setNodeExtent,reset:t.reset,setDefaultNodesAndEdges:t.setDefaultNodesAndEdges}),Up={translateExtent:mi,nodeOrigin:Mg,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function c_(t){const{setNodes:r,setEdges:i,setMinZoom:l,setMaxZoom:a,setTranslateExtent:u,setNodeExtent:c,reset:d,setDefaultNodesAndEdges:h}=ze(u_,We),m=Oe();D.useEffect(()=>(h(t.defaultNodes,t.defaultEdges),()=>{v.current=Up,d()}),[]);const v=D.useRef(Up);return D.useEffect(()=>{for(const y of Bp){const g=t[y],w=v.current[y];g!==w&&(typeof t[y]>"u"||(y==="nodes"?r(g):y==="edges"?i(g):y==="minZoom"?l(g):y==="maxZoom"?a(g):y==="translateExtent"?u(g):y==="nodeExtent"?c(g):y==="ariaLabelConfig"?m.setState({ariaLabelConfig:Kw(g)}):y==="fitView"?m.setState({fitViewQueued:g}):y==="fitViewOptions"?m.setState({fitViewOptions:g}):m.setState({[y]:g})))}v.current=t},Bp.map(y=>t[y])),null}function Wp(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function f_(t){var l;const[r,i]=D.useState(t==="system"?null:t);return D.useEffect(()=>{if(t!=="system"){i(t);return}const a=Wp(),u=()=>i(a!=null&&a.matches?"dark":"light");return u(),a==null||a.addEventListener("change",u),()=>{a==null||a.removeEventListener("change",u)}},[t]),r!==null?r:(l=Wp())!=null&&l.matches?"dark":"light"}const Yp=typeof document<"u"?document:null;function wi(t=null,r={target:Yp,actInsideInputWithModifier:!0}){const[i,l]=D.useState(!1),a=D.useRef(!1),u=D.useRef(new Set([])),[c,d]=D.useMemo(()=>{if(t!==null){const m=(Array.isArray(t)?t:[t]).filter(y=>typeof y=="string").map(y=>y.replace(/\+/g,`
+`).replace(`
+
+`,`
++`).split(`
+`)),v=m.reduce((y,g)=>y.concat(...g),[]);return[m,v]}return[[],[]]},[t]);return D.useEffect(()=>{const h=(r==null?void 0:r.target)??Yp,m=(r==null?void 0:r.actInsideInputWithModifier)??!0;if(t!==null){const v=w=>{var E,N;if(a.current=w.ctrlKey||w.metaKey||w.shiftKey||w.altKey,(!a.current||a.current&&!m)&&sg(w))return!1;const C=Kp(w.code,d);if(u.current.add(w[C]),Xp(c,u.current,!1)){const I=((N=(E=w.composedPath)==null?void 0:E.call(w))==null?void 0:N[0])||w.target,k=(I==null?void 0:I.nodeName)==="BUTTON"||(I==null?void 0:I.nodeName)==="A";r.preventDefault!==!1&&(a.current||!k)&&w.preventDefault(),l(!0)}},y=w=>{const _=Kp(w.code,d);Xp(c,u.current,!0)?(l(!1),u.current.clear()):u.current.delete(w[_]),w.key==="Meta"&&u.current.clear(),a.current=!1},g=()=>{u.current.clear(),l(!1)};return h==null||h.addEventListener("keydown",v),h==null||h.addEventListener("keyup",y),window.addEventListener("blur",g),window.addEventListener("contextmenu",g),()=>{h==null||h.removeEventListener("keydown",v),h==null||h.removeEventListener("keyup",y),window.removeEventListener("blur",g),window.removeEventListener("contextmenu",g)}}},[t,l]),i}function Xp(t,r,i){return t.filter(l=>i||l.length===r.size).some(l=>l.every(a=>r.has(a)))}function Kp(t,r){return r.includes(t)?"code":"key"}const d_=()=>{const t=Oe();return D.useMemo(()=>({zoomIn:async r=>{const{panZoom:i}=t.getState();return i?i.scaleBy(1.2,r):!1},zoomOut:async r=>{const{panZoom:i}=t.getState();return i?i.scaleBy(1/1.2,r):!1},zoomTo:async(r,i)=>{const{panZoom:l}=t.getState();return l?l.scaleTo(r,i):!1},getZoom:()=>t.getState().transform[2],setViewport:async(r,i)=>{const{transform:[l,a,u],panZoom:c}=t.getState();return c?(await c.setViewport({x:r.x??l,y:r.y??a,zoom:r.zoom??u},i),!0):!1},getViewport:()=>{const[r,i,l]=t.getState().transform;return{x:r,y:i,zoom:l}},setCenter:async(r,i,l)=>t.getState().setCenter(r,i,l),fitBounds:async(r,i)=>{const{width:l,height:a,minZoom:u,maxZoom:c,panZoom:d}=t.getState(),h=fc(r,l,a,u,c,(i==null?void 0:i.padding)??.1);return d?(await d.setViewport(h,{duration:i==null?void 0:i.duration,ease:i==null?void 0:i.ease,interpolate:i==null?void 0:i.interpolate}),!0):!1},screenToFlowPosition:(r,i={})=>{const{transform:l,snapGrid:a,snapToGrid:u,domNode:c}=t.getState();if(!c)return r;const{x:d,y:h}=c.getBoundingClientRect(),m={x:r.x-d,y:r.y-h},v=i.snapGrid??a,y=i.snapToGrid??u;return Mi(m,l,y,v)},flowToScreenPosition:r=>{const{transform:i,domNode:l}=t.getState();if(!l)return r;const{x:a,y:u}=l.getBoundingClientRect(),c=fo(r,i);return{x:c.x+a,y:c.y+u}}}),[])};function jg(t,r){const i=[],l=new Map,a=[];for(const u of t)if(u.type==="add"){a.push(u);continue}else if(u.type==="remove"||u.type==="replace")l.set(u.id,[u]);else{const c=l.get(u.id);c?c.push(u):l.set(u.id,[u])}for(const u of r){const c=l.get(u.id);if(!c){i.push(u);continue}if(c[0].type==="remove")continue;if(c[0].type==="replace"){i.push({...c[0].item});continue}const d={...u};for(const h of c)p_(h,d);i.push(d)}return a.length&&a.forEach(u=>{u.index!==void 0?i.splice(u.index,0,{...u.item}):i.push({...u.item})}),i}function p_(t,r){switch(t.type){case"select":{r.selected=t.selected;break}case"position":{typeof t.position<"u"&&(r.position=t.position),typeof t.dragging<"u"&&(r.dragging=t.dragging);break}case"dimensions":{typeof t.dimensions<"u"&&(r.measured={...t.dimensions},t.setAttributes&&((t.setAttributes===!0||t.setAttributes==="width")&&(r.width=t.dimensions.width),(t.setAttributes===!0||t.setAttributes==="height")&&(r.height=t.dimensions.height))),typeof t.resizing=="boolean"&&(r.resizing=t.resizing);break}}}function h_(t,r){return jg(t,r)}function g_(t,r){return jg(t,r)}function mr(t,r){return{id:t,type:"select",selected:r}}function ro(t,r=new Set,i=!1){const l=[];for(const[a,u]of t){const c=r.has(a);!(u.selected===void 0&&!c)&&u.selected!==c&&(i&&(u.selected=c),l.push(mr(u.id,c)))}return l}function Qp({items:t=[],lookup:r}){var a;const i=[],l=new Map(t.map(u=>[u.id,u]));for(const[u,c]of t.entries()){const d=r.get(c.id),h=((a=d==null?void 0:d.internals)==null?void 0:a.userNode)??d;h!==void 0&&h!==c&&i.push({id:c.id,item:c,type:"replace"}),h===void 0&&i.push({item:c,type:"add",index:u})}for(const[u]of r)l.get(u)===void 0&&i.push({id:u,type:"remove"});return i}function Gp(t){return{id:t.id,type:"remove"}}const m_=tg();function y_(t,r,i={}){return e1(t,r,{...i,onError:i.onError??m_})}const qp=t=>Ow(t),v_=t=>Gh(t);function Pg(t){return D.forwardRef(t)}const Ig=typeof window<"u"?D.useLayoutEffect:D.useEffect;function Zp(t){const[r,i]=D.useState(BigInt(0)),[l]=D.useState(()=>x_(()=>i(a=>a+BigInt(1))));return Ig(()=>{const a=l.get();a.length&&(t(a),l.reset())},[r]),l}function x_(t){let r=[];return{get:()=>r,reset:()=>{r=[]},push:i=>{r.push(i),t()}}}const Tg=D.createContext(null);function w_({children:t}){const r=Oe(),i=D.useCallback(d=>{const{nodes:h=[],setNodes:m,hasDefaultNodes:v,onNodesChange:y,nodeLookup:g,fitViewQueued:w,onNodesChangeMiddlewareMap:_}=r.getState();let C=h;for(const N of d)C=typeof N=="function"?N(C):N;let E=Qp({items:C,lookup:g});for(const N of _.values())E=N(E);v&&m(C),E.length>0?y==null||y(E):w&&window.requestAnimationFrame(()=>{const{fitViewQueued:N,nodes:I,setNodes:k}=r.getState();N&&k(I)})},[]),l=Zp(i),a=D.useCallback(d=>{const{edges:h=[],setEdges:m,hasDefaultEdges:v,onEdgesChange:y,edgeLookup:g}=r.getState();let w=h;for(const _ of d)w=typeof _=="function"?_(w):_;v?m(w):y&&y(Qp({items:w,lookup:g}))},[]),u=Zp(a),c=D.useMemo(()=>({nodeQueue:l,edgeQueue:u}),[]);return x.jsx(Tg.Provider,{value:c,children:t})}function __(){const t=D.useContext(Tg);if(!t)throw new Error("useBatchContext must be used within a BatchProvider");return t}const S_=t=>!!t.panZoom;function Cl(){const t=d_(),r=Oe(),i=__(),l=ze(S_),a=D.useMemo(()=>{const u=y=>r.getState().nodeLookup.get(y),c=y=>{i.nodeQueue.push(y)},d=y=>{i.edgeQueue.push(y)},h=y=>{var N,I;const{nodeLookup:g,nodeOrigin:w}=r.getState(),_=qp(y)?y:g.get(y.id),C=_.parentId?rg(_.position,_.measured,_.parentId,g,w):_.position,E={..._,position:C,width:((N=_.measured)==null?void 0:N.width)??_.width,height:((I=_.measured)==null?void 0:I.height)??_.height};return vi(E)},m=(y,g,w={replace:!1})=>{c(_=>_.map(C=>{if(C.id===y){const E=typeof g=="function"?g(C):g;return w.replace&&qp(E)?E:{...C,...E}}return C}))},v=(y,g,w={replace:!1})=>{d(_=>_.map(C=>{if(C.id===y){const E=typeof g=="function"?g(C):g;return w.replace&&v_(E)?E:{...C,...E}}return C}))};return{getNodes:()=>r.getState().nodes.map(y=>({...y})),getNode:y=>{var g;return(g=u(y))==null?void 0:g.internals.userNode},getInternalNode:u,getEdges:()=>{const{edges:y=[]}=r.getState();return y.map(g=>({...g}))},getEdge:y=>r.getState().edgeLookup.get(y),setNodes:c,setEdges:d,addNodes:y=>{const g=Array.isArray(y)?y:[y];i.nodeQueue.push(w=>[...w,...g])},addEdges:y=>{const g=Array.isArray(y)?y:[y];i.edgeQueue.push(w=>[...w,...g])},toObject:()=>{const{nodes:y=[],edges:g=[],transform:w}=r.getState(),[_,C,E]=w;return{nodes:y.map(N=>({...N})),edges:g.map(N=>({...N})),viewport:{x:_,y:C,zoom:E}}},deleteElements:async({nodes:y=[],edges:g=[]})=>{const{nodes:w,edges:_,onNodesDelete:C,onEdgesDelete:E,triggerNodeChanges:N,triggerEdgeChanges:I,onDelete:k,onBeforeDelete:M}=r.getState(),{nodes:F,edges:$}=await Uw({nodesToRemove:y,edgesToRemove:g,nodes:w,edges:_,onBeforeDelete:M}),V=$.length>0,W=F.length>0;if(V){const X=$.map(Gp);E==null||E($),I(X)}if(W){const X=F.map(Gp);C==null||C(F),N(X)}return(W||V)&&(k==null||k({nodes:F,edges:$})),{deletedNodes:F,deletedEdges:$}},getIntersectingNodes:(y,g=!0,w)=>{const _=Sp(y),C=_?y:h(y),E=w!==void 0;return C?(w||r.getState().nodes).filter(N=>{const I=r.getState().nodeLookup.get(N.id);if(I&&!_&&(N.id===y.id||!I.internals.positionAbsolute))return!1;const k=vi(E?N:I),M=gl(k,C);return g&&M>0||M>=k.width*k.height||M>=C.width*C.height}):[]},isNodeIntersecting:(y,g,w=!0)=>{const C=Sp(y)?y:h(y);if(!C)return!1;const E=gl(C,g);return w&&E>0||E>=g.width*g.height||E>=C.width*C.height},updateNode:m,updateNodeData:(y,g,w={replace:!1})=>{m(y,_=>{const C=typeof g=="function"?g(_):g;return w.replace?{..._,data:C}:{..._,data:{..._.data,...C}}},w)},updateEdge:v,updateEdgeData:(y,g,w={replace:!1})=>{v(y,_=>{const C=typeof g=="function"?g(_):g;return w.replace?{..._,data:C}:{..._,data:{..._.data,...C}}},w)},getNodesBounds:y=>{const{nodeLookup:g,nodeOrigin:w}=r.getState();return Fw(y,{nodeLookup:g,nodeOrigin:w})},getHandleConnections:({type:y,id:g,nodeId:w})=>{var _;return Array.from(((_=r.getState().connectionLookup.get(`${w}-${y}${g?`-${g}`:""}`))==null?void 0:_.values())??[])},getNodeConnections:({type:y,handleId:g,nodeId:w})=>{var _;return Array.from(((_=r.getState().connectionLookup.get(`${w}${y?g?`-${y}-${g}`:`-${y}`:""}`))==null?void 0:_.values())??[])},fitView:async y=>{const g=r.getState().fitViewResolver??Xw();return r.setState({fitViewQueued:!0,fitViewOptions:y,fitViewResolver:g}),i.nodeQueue.push(w=>[...w]),g.promise}}},[]);return D.useMemo(()=>({...a,...t,viewportInitialized:l}),[l])}const Jp=t=>t.selected,k_=typeof window<"u"?window:void 0;function E_({deleteKeyCode:t,multiSelectionKeyCode:r}){const i=Oe(),{deleteElements:l}=Cl(),a=wi(t,{actInsideInputWithModifier:!1}),u=wi(r,{target:k_});D.useEffect(()=>{if(a){const{edges:c,nodes:d}=i.getState();l({nodes:d.filter(Jp),edges:c.filter(Jp)}),i.setState({nodesSelectionActive:!1})}},[a]),D.useEffect(()=>{i.setState({multiSelectionActive:u})},[u])}function N_(t){const r=Oe();D.useEffect(()=>{const i=()=>{var a,u,c,d;if(!t.current||!(((u=(a=t.current).checkVisibility)==null?void 0:u.call(a))??!0))return!1;const l=dc(t.current);(l.height===0||l.width===0)&&((d=(c=r.getState()).onError)==null||d.call(c,"004",tn.error004())),r.setState({width:l.width||500,height:l.height||500})};if(t.current){i(),window.addEventListener("resize",i);const l=new ResizeObserver(()=>i());return l.observe(t.current),()=>{window.removeEventListener("resize",i),l&&t.current&&l.unobserve(t.current)}}},[])}const Ml={position:"absolute",width:"100%",height:"100%",top:0,left:0},C_=t=>({userSelectionActive:t.userSelectionActive,lib:t.lib,connectionInProgress:t.connection.inProgress});function M_({onPaneContextMenu:t,zoomOnScroll:r=!0,zoomOnPinch:i=!0,panOnScroll:l=!1,panActivationKeyPressed:a,panOnScrollSpeed:u=.5,panOnScrollMode:c=xr.Free,zoomOnDoubleClick:d=!0,panOnDrag:h=!0,defaultViewport:m,translateExtent:v,minZoom:y,maxZoom:g,zoomActivationKeyCode:w,preventScrolling:_=!0,children:C,noWheelClassName:E,noPanClassName:N,onViewportChange:I,isControlledViewport:k,paneClickDistance:M,selectionOnDrag:F}){const $=Oe(),V=D.useRef(null),{userSelectionActive:W,lib:X,connectionInProgress:ee}=ze(C_,We),q=wi(w),te=D.useRef();N_(V);const J=D.useCallback(P=>{I==null||I({x:P[0],y:P[1],zoom:P[2]}),k||$.setState({transform:P})},[I,k]);return D.useEffect(()=>{if(V.current){te.current=I1({domNode:V.current,minZoom:y,maxZoom:g,translateExtent:v,viewport:m,onDraggingChange:b=>$.setState(R=>R.paneDragging===b?R:{paneDragging:b}),onPanZoomStart:(b,R)=>{const{onViewportChangeStart:z,onMoveStart:A}=$.getState();A==null||A(b,R),z==null||z(R)},onPanZoom:(b,R)=>{const{onViewportChange:z,onMove:A}=$.getState();A==null||A(b,R),z==null||z(R)},onPanZoomEnd:(b,R)=>{const{onViewportChangeEnd:z,onMoveEnd:A}=$.getState();A==null||A(b,R),z==null||z(R)}});const{x:P,y:U,zoom:B}=te.current.getViewport();return $.setState({panZoom:te.current,transform:[P,U,B],domNode:V.current.closest(".react-flow")}),()=>{var b;(b=te.current)==null||b.destroy()}}},[]),D.useEffect(()=>{var P;(P=te.current)==null||P.update({onPaneContextMenu:t,zoomOnScroll:r,zoomOnPinch:i,panOnScroll:l,panActivationKeyPressed:a,panOnScrollSpeed:u,panOnScrollMode:c,zoomOnDoubleClick:d,panOnDrag:h,zoomActivationKeyPressed:q,preventScrolling:_,noPanClassName:N,userSelectionActive:W,noWheelClassName:E,lib:X,onTransformChange:J,connectionInProgress:ee,selectionOnDrag:F,paneClickDistance:M})},[t,r,i,l,a,u,c,d,h,q,_,N,W,E,X,J,ee,F,M]),x.jsx("div",{className:"react-flow__renderer",ref:V,style:Ml,children:C})}const j_=t=>({userSelectionActive:t.userSelectionActive,userSelectionRect:t.userSelectionRect});function P_(){const{userSelectionActive:t,userSelectionRect:r}=ze(j_,We);return t&&r?x.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:r.width,height:r.height,transform:`translate(${r.x}px, ${r.y}px)`}}):null}const Lu=(t,r)=>i=>{i.target===r.current&&(t==null||t(i))},I_=t=>({userSelectionActive:t.userSelectionActive,elementsSelectable:t.elementsSelectable,dragging:t.paneDragging,panBy:t.panBy,autoPanSpeed:t.autoPanSpeed});function T_({isSelecting:t,selectionKeyPressed:r,selectionMode:i=yi.Full,panOnDrag:l,autoPanOnSelection:a,paneClickDistance:u,selectionOnDrag:c,onSelectionStart:d,onSelectionEnd:h,onPaneClick:m,onPaneContextMenu:v,onPaneScroll:y,onPaneMouseEnter:g,onPaneMouseMove:w,onPaneMouseLeave:_,children:C}){const E=D.useRef(0),N=Oe(),{userSelectionActive:I,elementsSelectable:k,dragging:M,panBy:F,autoPanSpeed:$}=ze(I_,We),V=k&&(t||I),W=D.useRef(null),X=D.useRef(),ee=D.useRef(new Set),q=D.useRef(new Set),te=D.useRef(!1),J=D.useRef(!1),P=D.useRef({x:0,y:0}),U=D.useRef(!1),B=Q=>{if(J.current||te.current||N.getState().connection.inProgress){J.current=!1,te.current=!1;return}m==null||m(Q),N.getState().resetSelectedElements(),N.setState({nodesSelectionActive:!1})},b=Q=>{if(Array.isArray(l)&&(l!=null&&l.includes(2))){Q.preventDefault();return}v==null||v(Q)},R=y?Q=>y(Q):void 0,z=Q=>{J.current&&(Q.stopPropagation(),J.current=!1)},A=Q=>{var Te,nt;if(Q.pointerType==="touch"&&l!==!1&&!r)return;const{domNode:ie,transform:pe}=N.getState();if(X.current=ie==null?void 0:ie.getBoundingClientRect(),!X.current)return;const _e=Q.target===W.current;if(!_e&&!!Q.target.closest(".nokey")||!t||!(c&&_e||r)||Q.button!==0||!Q.isPrimary)return;(nt=(Te=Q.target)==null?void 0:Te.setPointerCapture)==null||nt.call(Te,Q.pointerId),J.current=!1;const{x:Ne,y:je}=en(Q.nativeEvent,X.current),Ie=Mi({x:Ne,y:je},pe);N.setState({userSelectionRect:{width:0,height:0,startX:Ie.x,startY:Ie.y,x:Ne,y:je}}),_e||(Q.stopPropagation(),Q.preventDefault())};function j(Q,ie){const{userSelectionRect:pe}=N.getState();if(!pe)return;const{transform:_e,nodeLookup:xe,edgeLookup:Se,connectionLookup:Ne,triggerNodeChanges:je,triggerEdgeChanges:Ie,defaultEdgeOptions:Te}=N.getState(),nt={x:pe.startX,y:pe.startY},{x:ut,y:rt}=fo(nt,_e),qe={startX:nt.x,startY:nt.y,x:Q<ut?Q:ut,y:ie<rt?ie:rt,width:Math.abs(Q-ut),height:Math.abs(ie-rt)},At=ee.current,xt=q.current;ee.current=new Set(uc(xe,qe,_e,i===yi.Partial,!0).map(ct=>ct.id)),q.current=new Set;const $t=(Te==null?void 0:Te.selectable)??!0;for(const ct of ee.current){const wt=Ne.get(ct);if(wt)for(const{edgeId:gt}of wt.values()){const mt=Se.get(gt);mt&&(mt.selectable??$t)&&q.current.add(gt)}}if(!kp(At,ee.current)){const ct=ro(xe,ee.current,!0);je(ct)}if(!kp(xt,q.current)){const ct=ro(Se,q.current);Ie(ct)}N.setState({userSelectionRect:qe,userSelectionActive:!0,nodesSelectionActive:!1})}function L(){if(!a||!X.current)return;const[Q,ie]=cc(P.current,X.current,$);F({x:Q,y:ie}).then(pe=>{if(!J.current||!pe){E.current=requestAnimationFrame(L);return}const{x:_e,y:xe}=P.current;j(_e,xe),E.current=requestAnimationFrame(L)})}const ne=()=>{cancelAnimationFrame(E.current),E.current=0,U.current=!1};D.useEffect(()=>()=>ne(),[]);const Z=Q=>{const{userSelectionRect:ie,transform:pe,resetSelectedElements:_e}=N.getState();if(!X.current||!ie)return;const{x:xe,y:Se}=en(Q.nativeEvent,X.current);P.current={x:xe,y:Se};const Ne=fo({x:ie.startX,y:ie.startY},pe);if(!J.current){const je=r?0:u;if(Math.hypot(xe-Ne.x,Se-Ne.y)<=je)return;_e(),d==null||d(Q)}J.current=!0,U.current||(L(),U.current=!0),j(xe,Se)},le=Q=>{var ie,pe;if(!V){Q.target===W.current&&N.getState().connection.inProgress&&(te.current=!0);return}Q.button===0&&((pe=(ie=Q.target)==null?void 0:ie.releasePointerCapture)==null||pe.call(ie,Q.pointerId),!I&&Q.target===W.current&&N.getState().userSelectionRect&&(B==null||B(Q)),N.setState({userSelectionActive:!1,userSelectionRect:null}),J.current&&(h==null||h(Q),N.setState({nodesSelectionActive:ee.current.size>0})),ne())},fe=Q=>{var ie,pe;(pe=(ie=Q.target)==null?void 0:ie.releasePointerCapture)==null||pe.call(ie,Q.pointerId),ne()},ue=l===!0||Array.isArray(l)&&l.includes(0);return x.jsxs("div",{className:Ge(["react-flow__pane",{draggable:ue,dragging:M,selection:t}]),onClick:V?void 0:Lu(B,W),onContextMenu:Lu(b,W),onWheel:Lu(R,W),onPointerEnter:V?void 0:g,onPointerMove:V?Z:w,onPointerUp:le,onPointerCancel:V?fe:void 0,onPointerDownCapture:V?A:void 0,onClickCapture:V?z:void 0,onPointerLeave:_,ref:W,style:Ml,children:[C,x.jsx(P_,{})]})}function ec({id:t,store:r,unselect:i=!1,nodeRef:l}){const{addSelectedNodes:a,unselectNodesAndEdges:u,multiSelectionActive:c,nodeLookup:d,onError:h}=r.getState(),m=d.get(t);if(!m){h==null||h("012",tn.error012(t));return}r.setState({nodesSelectionActive:!1}),m.selected?(i||m.selected&&c)&&(u({nodes:[m],edges:[]}),requestAnimationFrame(()=>{var v;return(v=l==null?void 0:l.current)==null?void 0:v.blur()})):a([t])}function Rg({nodeRef:t,disabled:r=!1,noDragClassName:i,handleSelector:l,nodeId:a,isSelectable:u,nodeClickDistance:c}){const d=Oe(),[h,m]=D.useState(!1),v=D.useRef();return D.useEffect(()=>{if(!r)return v.current=m1({getStoreItems:()=>d.getState(),onNodeMouseDown:y=>{ec({id:y,store:d,nodeRef:t})},onDragStart:()=>{m(!0)},onDragStop:()=>{m(!1)}}),()=>{var y;(y=v.current)==null||y.destroy(),v.current=void 0}},[r,d,t]),D.useEffect(()=>{r||!t.current||!v.current||v.current.update({noDragClassName:i,handleSelector:l,domNode:t.current,isSelectable:u,nodeId:a,nodeClickDistance:c})},[i,l,r,u,t,a,c]),h}const R_=t=>r=>r.selected&&(r.draggable||t&&typeof r.draggable>"u");function zg(){const t=Oe();return D.useCallback(i=>{const{nodeExtent:l,snapToGrid:a,snapGrid:u,nodesDraggable:c,onError:d,updateNodePositions:h,nodeLookup:m,nodeOrigin:v}=t.getState(),y=new Map,g=R_(c),w=a?u[0]:5,_=a?u[1]:5,C=i.direction.x*w*i.factor,E=i.direction.y*_*i.factor;for(const[,N]of m){if(!g(N))continue;let I={x:N.internals.positionAbsolute.x+C,y:N.internals.positionAbsolute.y+E};a&&(I=Ci(I,u));const{position:k,positionAbsolute:M}=qh({nodeId:N.id,nextPosition:I,nodeLookup:m,nodeExtent:l,nodeOrigin:v,onError:d});N.position=k,N.internals.positionAbsolute=M,y.set(N.id,N)}h(y)},[])}const vc=D.createContext(null),z_=vc.Provider;vc.Consumer;const bg=()=>D.useContext(vc),b_=t=>({connectOnClick:t.connectOnClick,noPanClassName:t.noPanClassName,rfId:t.rfId}),Lg=D.createContext(null);function L_({children:t}){const r=ze(b_,We);return x.jsx(Lg.Provider,{value:r,children:t})}function D_(){const t=D.useContext(Lg);if(!t)throw new Error("useHandleConfig must be used within a HandleConfigProvider");return t}const A_={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},$_=(t,r,i)=>l=>{const{connectionClickStartHandle:a,connectionMode:u,connection:c}=l,{fromHandle:d,toHandle:h,isValid:m}=c;if(!d&&!a)return A_;const v=(h==null?void 0:h.nodeId)===t&&(h==null?void 0:h.id)===r&&(h==null?void 0:h.type)===i;return{connectingFrom:(d==null?void 0:d.nodeId)===t&&(d==null?void 0:d.id)===r&&(d==null?void 0:d.type)===i,connectingTo:v,clickConnecting:(a==null?void 0:a.nodeId)===t&&(a==null?void 0:a.id)===r&&(a==null?void 0:a.type)===i,isPossibleEndHandle:u===uo.Strict?(d==null?void 0:d.type)!==i:t!==(d==null?void 0:d.nodeId)||r!==(d==null?void 0:d.id),connectionInProcess:!!d,clickConnectionInProcess:!!a,valid:v&&m}};function O_({type:t="source",position:r=we.Top,isValidConnection:i,isConnectable:l=!0,isConnectableStart:a=!0,isConnectableEnd:u=!0,id:c,onConnect:d,children:h,className:m,onMouseDown:v,onTouchStart:y,...g},w){var U,B;const _=c||null,C=t==="target",E=Oe(),N=bg(),{connectOnClick:I,noPanClassName:k,rfId:M}=D_(),{connectingFrom:F,connectingTo:$,clickConnecting:V,isPossibleEndHandle:W,connectionInProcess:X,clickConnectionInProcess:ee,valid:q}=ze($_(N,_,t),We);N||(B=(U=E.getState()).onError)==null||B.call(U,"010",tn.error010());const te=b=>{const{defaultEdgeOptions:R,onConnect:z,hasDefaultEdges:A}=E.getState(),j={...R,...b};if(A){const{edges:L,setEdges:ne,onError:Z}=E.getState();ne(y_(j,L,{onError:Z}))}z==null||z(j),d==null||d(j)},J=b=>{if(!N)return;const R=lg(b.nativeEvent);if(a&&(R&&b.button===0||!R)){const z=E.getState();Ju.onPointerDown(b.nativeEvent,{handleDomNode:b.currentTarget,autoPanOnConnect:z.autoPanOnConnect,connectionMode:z.connectionMode,connectionRadius:z.connectionRadius,domNode:z.domNode,nodeLookup:z.nodeLookup,lib:z.lib,isTarget:C,handleId:_,nodeId:N,flowId:z.rfId,panBy:z.panBy,cancelConnection:z.cancelConnection,onConnectStart:z.onConnectStart,onConnectEnd:(...A)=>{var j,L;return(L=(j=E.getState()).onConnectEnd)==null?void 0:L.call(j,...A)},updateConnection:z.updateConnection,onConnect:te,isValidConnection:i||((...A)=>{var j,L;return((L=(j=E.getState()).isValidConnection)==null?void 0:L.call(j,...A))??!0}),getTransform:()=>E.getState().transform,getFromHandle:()=>E.getState().connection.fromHandle,autoPanSpeed:z.autoPanSpeed,dragThreshold:z.connectionDragThreshold})}R?v==null||v(b):y==null||y(b)},P=b=>{const{onClickConnectStart:R,onClickConnectEnd:z,connectionClickStartHandle:A,connectionMode:j,isValidConnection:L,lib:ne,rfId:Z,nodeLookup:le,connection:fe}=E.getState();if(!N||!A&&!a)return;if(!A){R==null||R(b.nativeEvent,{nodeId:N,handleId:_,handleType:t}),E.setState({connectionClickStartHandle:{nodeId:N,type:t,id:_}});return}const ue=ig(b.target),Q=i||L,{connection:ie,isValid:pe}=Ju.isValid(b.nativeEvent,{handle:{nodeId:N,id:_,type:t},connectionMode:j,fromNodeId:A.nodeId,fromHandleId:A.id||null,fromType:A.type,isValidConnection:Q,flowId:Z,doc:ue,lib:ne,nodeLookup:le});pe&&ie&&te(ie);const _e=structuredClone(fe);delete _e.inProgress,_e.toPosition=_e.toHandle?_e.toHandle.position:null,z==null||z(b,_e),E.setState({connectionClickStartHandle:null})};return x.jsx("div",{"data-handleid":_,"data-nodeid":N,"data-handlepos":r,"data-id":`${M}-${N}-${_}-${t}`,className:Ge(["react-flow__handle",`react-flow__handle-${r}`,"nodrag",k,m,{source:!C,target:C,connectable:l,connectablestart:a,connectableend:u,clickconnecting:V,connectingfrom:F,connectingto:$,valid:q,connectionindicator:l&&(!X||W)&&(X||ee?u:a)}]),onMouseDown:J,onTouchStart:J,onClick:I?P:void 0,ref:w,...g,children:h})}const ho=D.memo(Pg(O_));function F_({data:t,isConnectable:r,sourcePosition:i=we.Bottom}){return x.jsxs(x.Fragment,{children:[t==null?void 0:t.label,x.jsx(ho,{type:"source",position:i,isConnectable:r})]})}function H_({data:t,isConnectable:r,targetPosition:i=we.Top,sourcePosition:l=we.Bottom}){return x.jsxs(x.Fragment,{children:[x.jsx(ho,{type:"target",position:i,isConnectable:r}),t==null?void 0:t.label,x.jsx(ho,{type:"source",position:l,isConnectable:r})]})}function V_(){return null}function B_({data:t,isConnectable:r,targetPosition:i=we.Top}){return x.jsxs(x.Fragment,{children:[x.jsx(ho,{type:"target",position:i,isConnectable:r}),t==null?void 0:t.label]})}const ml={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},eh={input:F_,default:H_,output:B_,group:V_};function U_(t){var r,i,l,a;return t.internals.handleBounds===void 0?{width:t.width??t.initialWidth??((r=t.style)==null?void 0:r.width),height:t.height??t.initialHeight??((i=t.style)==null?void 0:i.height)}:{width:t.width??((l=t.style)==null?void 0:l.width),height:t.height??((a=t.style)==null?void 0:a.height)}}const W_=t=>{const{width:r,height:i,x:l,y:a}=Ni(t.nodeLookup,{filter:u=>!!u.selected});return{width:Jt(r)?r:null,height:Jt(i)?i:null,userSelectionActive:t.userSelectionActive,transformString:`translate(${t.transform[0]}px,${t.transform[1]}px) scale(${t.transform[2]}) translate(${l}px,${a}px)`}};function Y_({onSelectionContextMenu:t,noPanClassName:r,disableKeyboardA11y:i}){const l=Oe(),{width:a,height:u,transformString:c,userSelectionActive:d}=ze(W_,We),h=zg(),m=D.useRef(null);D.useEffect(()=>{var w;i||(w=m.current)==null||w.focus({preventScroll:!0})},[i]);const v=!d&&a!==null&&u!==null;if(Rg({nodeRef:m,disabled:!v}),!v)return null;const y=t?w=>{const _=l.getState().nodes.filter(C=>C.selected);t(w,_)}:void 0,g=w=>{Object.prototype.hasOwnProperty.call(ml,w.key)&&(w.preventDefault(),h({direction:ml[w.key],factor:w.shiftKey?4:1}))};return x.jsx("div",{className:Ge(["react-flow__nodesselection","react-flow__container",r]),style:{transform:c},children:x.jsx("div",{ref:m,className:"react-flow__nodesselection-rect",onContextMenu:y,tabIndex:i?void 0:-1,onKeyDown:i?void 0:g,style:{width:a,height:u}})})}const th=typeof window<"u"?window:void 0,X_=t=>({nodesSelectionActive:t.nodesSelectionActive,userSelectionActive:t.userSelectionActive});function Dg({children:t,onPaneClick:r,onPaneMouseEnter:i,onPaneMouseMove:l,onPaneMouseLeave:a,onPaneContextMenu:u,onPaneScroll:c,paneClickDistance:d,deleteKeyCode:h,selectionKeyCode:m,selectionOnDrag:v,selectionMode:y,onSelectionStart:g,onSelectionEnd:w,multiSelectionKeyCode:_,panActivationKeyCode:C,zoomActivationKeyCode:E,elementsSelectable:N,zoomOnScroll:I,zoomOnPinch:k,panOnScroll:M,panOnScrollSpeed:F,panOnScrollMode:$,zoomOnDoubleClick:V,panOnDrag:W,autoPanOnSelection:X,defaultViewport:ee,translateExtent:q,minZoom:te,maxZoom:J,preventScrolling:P,onSelectionContextMenu:U,noWheelClassName:B,noPanClassName:b,disableKeyboardA11y:R,onViewportChange:z,isControlledViewport:A}){const{nodesSelectionActive:j,userSelectionActive:L}=ze(X_,We),ne=wi(m,{target:th}),Z=wi(C,{target:th}),le=Z||W,fe=Z||M,ue=v&&le!==!0,Q=ne||L||ue;return E_({deleteKeyCode:h,multiSelectionKeyCode:_}),x.jsx(M_,{onPaneContextMenu:u,elementsSelectable:N,zoomOnScroll:I,zoomOnPinch:k,panOnScroll:fe,panActivationKeyPressed:Z,panOnScrollSpeed:F,panOnScrollMode:$,zoomOnDoubleClick:V,panOnDrag:!ne&&le,defaultViewport:ee,translateExtent:q,minZoom:te,maxZoom:J,zoomActivationKeyCode:E,preventScrolling:P,noWheelClassName:B,noPanClassName:b,onViewportChange:z,isControlledViewport:A,paneClickDistance:d,selectionOnDrag:ue,children:x.jsxs(T_,{onSelectionStart:g,onSelectionEnd:w,onPaneClick:r,onPaneMouseEnter:i,onPaneMouseMove:l,onPaneMouseLeave:a,onPaneContextMenu:u,onPaneScroll:c,panOnDrag:le,autoPanOnSelection:X,isSelecting:!!Q,selectionMode:y,selectionKeyPressed:ne,paneClickDistance:d,selectionOnDrag:ue,children:[t,j&&x.jsx(Y_,{onSelectionContextMenu:U,noPanClassName:b,disableKeyboardA11y:R})]})})}Dg.displayName="FlowRenderer";const K_=D.memo(Dg),Q_=t=>r=>t?uc(r.nodeLookup,{x:0,y:0,width:r.width,height:r.height},r.transform,!0).map(i=>i.id):Array.from(r.nodeLookup.keys());function G_(t){return ze(D.useCallback(Q_(t),[t]),We)}const q_=t=>t.updateNodeInternals;function Z_(){const t=ze(q_),[r]=D.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(i=>{const l=new Map;i.forEach(a=>{const u=a.target.getAttribute("data-id");l.set(u,{id:u,nodeElement:a.target,force:!0})}),t(l)}));return D.useEffect(()=>()=>{r==null||r.disconnect()},[r]),r}function J_({node:t,nodeType:r,hasDimensions:i,resizeObserver:l}){const a=Oe(),u=D.useRef(null),c=D.useRef(null),d=D.useRef(t.sourcePosition),h=D.useRef(t.targetPosition),m=D.useRef(r),v=i&&!!t.internals.handleBounds;return D.useEffect(()=>{u.current&&!t.hidden&&(!v||c.current!==u.current)&&(c.current&&(l==null||l.unobserve(c.current)),l==null||l.observe(u.current),c.current=u.current)},[v,t.hidden]),D.useEffect(()=>()=>{c.current&&(l==null||l.unobserve(c.current),c.current=null)},[]),D.useEffect(()=>{if(u.current){const y=m.current!==r,g=d.current!==t.sourcePosition,w=h.current!==t.targetPosition;(y||g||w)&&(m.current=r,d.current=t.sourcePosition,h.current=t.targetPosition,a.getState().updateNodeInternals(new Map([[t.id,{id:t.id,nodeElement:u.current,force:!0}]])))}},[t.id,r,t.sourcePosition,t.targetPosition]),u}function eS({id:t,onClick:r,onMouseEnter:i,onMouseMove:l,onMouseLeave:a,onContextMenu:u,onDoubleClick:c,nodesDraggable:d,elementsSelectable:h,nodesConnectable:m,nodesFocusable:v,resizeObserver:y,noDragClassName:g,noPanClassName:w,disableKeyboardA11y:_,rfId:C,nodeTypes:E,nodeClickDistance:N,onError:I}){const{node:k,internals:M,isParent:F}=ze(Q=>{const ie=Q.nodeLookup.get(t),pe=Q.parentLookup.has(t);return{node:ie,internals:ie.internals,isParent:pe}},We);let $=k.type||"default",V=(E==null?void 0:E[$])||eh[$];V===void 0&&(I==null||I("003",tn.error003($)),$="default",V=(E==null?void 0:E.default)||eh.default);const W=!!(k.draggable||d&&typeof k.draggable>"u"),X=!!(k.selectable||h&&typeof k.selectable>"u"),ee=!!(k.connectable||m&&typeof k.connectable>"u"),q=!!(k.focusable||v&&typeof k.focusable>"u"),te=Oe(),J=ng(k),P=J_({node:k,nodeType:$,hasDimensions:J,resizeObserver:y}),U=Rg({nodeRef:P,disabled:k.hidden||!W,noDragClassName:g,handleSelector:k.dragHandle,nodeId:t,isSelectable:X,nodeClickDistance:N}),B=zg();if(k.hidden)return null;const b=rn(k),R=U_(k),z=X||W||r||i||l||a,A=i?Q=>i(Q,{...M.userNode}):void 0,j=l?Q=>l(Q,{...M.userNode}):void 0,L=a?Q=>a(Q,{...M.userNode}):void 0,ne=u?Q=>u(Q,{...M.userNode}):void 0,Z=c?Q=>c(Q,{...M.userNode}):void 0,le=Q=>{const{selectNodesOnDrag:ie,nodeDragThreshold:pe}=te.getState();X&&(!ie||!W||pe>0)&&ec({id:t,store:te,nodeRef:P}),r&&r(Q,{...M.userNode})},fe=Q=>{if(!(sg(Q.nativeEvent)||_)){if(Xh.includes(Q.key)&&X){const ie=Q.key==="Escape";ec({id:t,store:te,unselect:ie,nodeRef:P})}else if(W&&k.selected&&Object.prototype.hasOwnProperty.call(ml,Q.key)){Q.preventDefault();const{ariaLabelConfig:ie}=te.getState();te.setState({ariaLiveMessage:ie["node.a11yDescription.ariaLiveMessage"]({direction:Q.key.replace("Arrow","").toLowerCase(),x:~~M.positionAbsolute.x,y:~~M.positionAbsolute.y})}),B({direction:ml[Q.key],factor:Q.shiftKey?4:1})}}},ue=()=>{var Ne;if(_||!((Ne=P.current)!=null&&Ne.matches(":focus-visible")))return;const{transform:Q,width:ie,height:pe,autoPanOnNodeFocus:_e,setCenter:xe}=te.getState();if(!_e)return;uc(new Map([[t,k]]),{x:0,y:0,width:ie,height:pe},Q,!0).length>0||xe(k.position.x+b.width/2,k.position.y+b.height/2,{zoom:Q[2]})};return x.jsx("div",{className:Ge(["react-flow__node",`react-flow__node-${$}`,{[w]:W},k.className,{selected:k.selected,selectable:X,parent:F,draggable:W,dragging:U}]),ref:P,style:{zIndex:M.z,transform:`translate(${M.positionAbsolute.x}px,${M.positionAbsolute.y}px)`,pointerEvents:z?"all":"none",visibility:J?"visible":"hidden",...k.style,...R},"data-id":t,"data-testid":`rf__node-${t}`,onMouseEnter:A,onMouseMove:j,onMouseLeave:L,onContextMenu:ne,onClick:le,onDoubleClick:Z,onKeyDown:q?fe:void 0,tabIndex:q?0:void 0,onFocus:q?ue:void 0,role:k.ariaRole??(q?"group":void 0),"aria-roledescription":"node","aria-describedby":_?void 0:`${Ng}-${C}`,"aria-label":k.ariaLabel,...k.domAttributes,children:x.jsx(z_,{value:t,children:x.jsx(V,{id:t,data:k.data,type:$,positionAbsoluteX:M.positionAbsolute.x,positionAbsoluteY:M.positionAbsolute.y,selected:k.selected??!1,selectable:X,draggable:W,deletable:k.deletable??!0,isConnectable:ee,sourcePosition:k.sourcePosition,targetPosition:k.targetPosition,dragging:U,dragHandle:k.dragHandle,zIndex:M.z,parentId:k.parentId,...b})})})}var tS=D.memo(eS);const nS=t=>({nodesConnectable:t.nodesConnectable,nodesFocusable:t.nodesFocusable,elementsSelectable:t.elementsSelectable,onError:t.onError});function Ag(t){const{nodesConnectable:r,nodesFocusable:i,elementsSelectable:l,onError:a}=ze(nS,We),u=G_(t.onlyRenderVisibleElements),c=Z_();return x.jsx("div",{className:"react-flow__nodes",style:Ml,children:u.map(d=>x.jsx(tS,{id:d,nodeTypes:t.nodeTypes,nodeExtent:t.nodeExtent,onClick:t.onNodeClick,onMouseEnter:t.onNodeMouseEnter,onMouseMove:t.onNodeMouseMove,onMouseLeave:t.onNodeMouseLeave,onContextMenu:t.onNodeContextMenu,onDoubleClick:t.onNodeDoubleClick,noDragClassName:t.noDragClassName,noPanClassName:t.noPanClassName,rfId:t.rfId,disableKeyboardA11y:t.disableKeyboardA11y,resizeObserver:c,nodesDraggable:t.nodesDraggable??!0,nodesConnectable:r,nodesFocusable:i,elementsSelectable:l,nodeClickDistance:t.nodeClickDistance,onError:a},d))})}Ag.displayName="NodeRenderer";const rS=D.memo(Ag);function oS(t){return ze(D.useCallback(i=>{if(!t)return i.edges.map(a=>a.id);const l=[];if(i.width&&i.height)for(const a of i.edges){const u=i.nodeLookup.get(a.source),c=i.nodeLookup.get(a.target);u&&c&&qw({sourceNode:u,targetNode:c,width:i.width,height:i.height,transform:i.transform})&&l.push(a.id)}return l},[t]),We)}const iS=({color:t="none",strokeWidth:r=1})=>{const i={strokeWidth:r,...t&&{stroke:t}};return x.jsx("polyline",{className:"arrow",style:i,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},sS=({color:t="none",strokeWidth:r=1})=>{const i={strokeWidth:r,...t&&{stroke:t,fill:t}};return x.jsx("polyline",{className:"arrowclosed",style:i,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},nh={[pl.Arrow]:iS,[pl.ArrowClosed]:sS};function lS(t){const r=Oe();return D.useMemo(()=>{var a,u;return Object.prototype.hasOwnProperty.call(nh,t)?nh[t]:((u=(a=r.getState()).onError)==null||u.call(a,"009",tn.error009(t)),null)},[t])}const aS=({id:t,type:r,color:i,width:l=12.5,height:a=12.5,markerUnits:u="strokeWidth",strokeWidth:c,orient:d="auto-start-reverse"})=>{const h=lS(r);return h?x.jsx("marker",{className:"react-flow__arrowhead",id:t,markerWidth:`${l}`,markerHeight:`${a}`,viewBox:"-10 -10 20 20",markerUnits:u,orient:d,refX:"0",refY:"0",children:x.jsx(h,{color:i,strokeWidth:c})}):null},$g=({defaultColor:t,rfId:r})=>{const i=ze(u=>u.edges),l=ze(u=>u.defaultEdgeOptions),a=D.useMemo(()=>i1(i,{id:r,defaultColor:t,defaultMarkerStart:l==null?void 0:l.markerStart,defaultMarkerEnd:l==null?void 0:l.markerEnd}),[i,l,r,t]);return a.length?x.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:x.jsx("defs",{children:a.map(u=>x.jsx(aS,{id:u.id,type:u.type,color:u.color,width:u.width,height:u.height,markerUnits:u.markerUnits,strokeWidth:u.strokeWidth,orient:u.orient},u.id))})}):null};$g.displayName="MarkerDefinitions";var uS=D.memo($g);function Og({x:t,y:r,label:i,labelStyle:l,labelShowBg:a=!0,labelBgStyle:u,labelBgPadding:c=[2,4],labelBgBorderRadius:d=2,children:h,className:m,...v}){const[y,g]=D.useState({x:1,y:0,width:0,height:0}),w=Ge(["react-flow__edge-textwrapper",m]),_=D.useRef(null);return D.useEffect(()=>{if(_.current){const C=_.current.getBBox();g({x:C.x,y:C.y,width:C.width,height:C.height})}},[i]),i?x.jsxs("g",{transform:`translate(${t-y.width/2} ${r-y.height/2})`,className:w,visibility:y.width?"visible":"hidden",...v,children:[a&&x.jsx("rect",{width:y.width+2*c[0],x:-c[0],y:-c[1],height:y.height+2*c[1],className:"react-flow__edge-textbg",style:u,rx:d,ry:d}),x.jsx("text",{className:"react-flow__edge-text",y:y.height/2,dy:"0.3em",ref:_,style:l,children:i}),h]}):null}Og.displayName="EdgeText";const cS=D.memo(Og);function jl({path:t,labelX:r,labelY:i,label:l,labelStyle:a,labelShowBg:u,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:h,interactionWidth:m=20,...v}){return x.jsxs(x.Fragment,{children:[x.jsx("path",{...v,d:t,fill:"none",className:Ge(["react-flow__edge-path",v.className])}),m?x.jsx("path",{d:t,fill:"none",strokeOpacity:0,strokeWidth:m,className:"react-flow__edge-interaction"}):null,l&&Jt(r)&&Jt(i)?x.jsx(cS,{x:r,y:i,label:l,labelStyle:a,labelShowBg:u,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:h}):null]})}function rh({pos:t,x1:r,y1:i,x2:l,y2:a}){return t===we.Left||t===we.Right?[.5*(r+l),i]:[r,.5*(i+a)]}function Fg({sourceX:t,sourceY:r,sourcePosition:i=we.Bottom,targetX:l,targetY:a,targetPosition:u=we.Top}){const[c,d]=rh({pos:i,x1:t,y1:r,x2:l,y2:a}),[h,m]=rh({pos:u,x1:l,y1:a,x2:t,y2:r}),[v,y,g,w]=ag({sourceX:t,sourceY:r,targetX:l,targetY:a,sourceControlX:c,sourceControlY:d,targetControlX:h,targetControlY:m});return[`M${t},${r} C${c},${d} ${h},${m} ${l},${a}`,v,y,g,w]}function Hg(t){return D.memo(({id:r,sourceX:i,sourceY:l,targetX:a,targetY:u,sourcePosition:c,targetPosition:d,label:h,labelStyle:m,labelShowBg:v,labelBgStyle:y,labelBgPadding:g,labelBgBorderRadius:w,style:_,markerEnd:C,markerStart:E,interactionWidth:N})=>{const[I,k,M]=Fg({sourceX:i,sourceY:l,sourcePosition:c,targetX:a,targetY:u,targetPosition:d}),F=t.isInternal?void 0:r;return x.jsx(jl,{id:F,path:I,labelX:k,labelY:M,label:h,labelStyle:m,labelShowBg:v,labelBgStyle:y,labelBgPadding:g,labelBgBorderRadius:w,style:_,markerEnd:C,markerStart:E,interactionWidth:N})})}const fS=Hg({isInternal:!1}),Vg=Hg({isInternal:!0});fS.displayName="SimpleBezierEdge";Vg.displayName="SimpleBezierEdgeInternal";function Bg(t){return D.memo(({id:r,sourceX:i,sourceY:l,targetX:a,targetY:u,label:c,labelStyle:d,labelShowBg:h,labelBgStyle:m,labelBgPadding:v,labelBgBorderRadius:y,style:g,sourcePosition:w=we.Bottom,targetPosition:_=we.Top,markerEnd:C,markerStart:E,pathOptions:N,interactionWidth:I})=>{const[k,M,F]=Gu({sourceX:i,sourceY:l,sourcePosition:w,targetX:a,targetY:u,targetPosition:_,borderRadius:N==null?void 0:N.borderRadius,offset:N==null?void 0:N.offset,stepPosition:N==null?void 0:N.stepPosition}),$=t.isInternal?void 0:r;return x.jsx(jl,{id:$,path:k,labelX:M,labelY:F,label:c,labelStyle:d,labelShowBg:h,labelBgStyle:m,labelBgPadding:v,labelBgBorderRadius:y,style:g,markerEnd:C,markerStart:E,interactionWidth:I})})}const Ug=Bg({isInternal:!1}),Wg=Bg({isInternal:!0});Ug.displayName="SmoothStepEdge";Wg.displayName="SmoothStepEdgeInternal";function Yg(t){return D.memo(({id:r,...i})=>{var a;const l=t.isInternal?void 0:r;return x.jsx(Ug,{...i,id:l,pathOptions:D.useMemo(()=>{var u;return{borderRadius:0,offset:(u=i.pathOptions)==null?void 0:u.offset}},[(a=i.pathOptions)==null?void 0:a.offset])})})}const dS=Yg({isInternal:!1}),Xg=Yg({isInternal:!0});dS.displayName="StepEdge";Xg.displayName="StepEdgeInternal";function Kg(t){return D.memo(({id:r,sourceX:i,sourceY:l,targetX:a,targetY:u,label:c,labelStyle:d,labelShowBg:h,labelBgStyle:m,labelBgPadding:v,labelBgBorderRadius:y,style:g,markerEnd:w,markerStart:_,interactionWidth:C})=>{const[E,N,I]=fg({sourceX:i,sourceY:l,targetX:a,targetY:u}),k=t.isInternal?void 0:r;return x.jsx(jl,{id:k,path:E,labelX:N,labelY:I,label:c,labelStyle:d,labelShowBg:h,labelBgStyle:m,labelBgPadding:v,labelBgBorderRadius:y,style:g,markerEnd:w,markerStart:_,interactionWidth:C})})}const pS=Kg({isInternal:!1}),Qg=Kg({isInternal:!0});pS.displayName="StraightEdge";Qg.displayName="StraightEdgeInternal";function Gg(t){return D.memo(({id:r,sourceX:i,sourceY:l,targetX:a,targetY:u,sourcePosition:c=we.Bottom,targetPosition:d=we.Top,label:h,labelStyle:m,labelShowBg:v,labelBgStyle:y,labelBgPadding:g,labelBgBorderRadius:w,style:_,markerEnd:C,markerStart:E,pathOptions:N,interactionWidth:I})=>{const[k,M,F]=ug({sourceX:i,sourceY:l,sourcePosition:c,targetX:a,targetY:u,targetPosition:d,curvature:N==null?void 0:N.curvature}),$=t.isInternal?void 0:r;return x.jsx(jl,{id:$,path:k,labelX:M,labelY:F,label:h,labelStyle:m,labelShowBg:v,labelBgStyle:y,labelBgPadding:g,labelBgBorderRadius:w,style:_,markerEnd:C,markerStart:E,interactionWidth:I})})}const hS=Gg({isInternal:!1}),qg=Gg({isInternal:!0});hS.displayName="BezierEdge";qg.displayName="BezierEdgeInternal";const oh={default:qg,straight:Qg,step:Xg,smoothstep:Wg,simplebezier:Vg},ih={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},gS=(t,r,i)=>i===we.Left?t-r:i===we.Right?t+r:t,mS=(t,r,i)=>i===we.Top?t-r:i===we.Bottom?t+r:t,sh="react-flow__edgeupdater";function lh({position:t,centerX:r,centerY:i,radius:l=10,onMouseDown:a,onMouseEnter:u,onMouseOut:c,type:d}){return x.jsx("circle",{onMouseDown:a,onMouseEnter:u,onMouseOut:c,className:Ge([sh,`${sh}-${d}`]),cx:gS(r,l,t),cy:mS(i,l,t),r:l,stroke:"transparent",fill:"transparent"})}function yS({isReconnectable:t,reconnectRadius:r,edge:i,sourceX:l,sourceY:a,targetX:u,targetY:c,sourcePosition:d,targetPosition:h,onReconnect:m,onReconnectStart:v,onReconnectEnd:y,setReconnecting:g,setUpdateHover:w}){const _=Oe(),C=(M,F)=>{if(M.button!==0)return;const{autoPanOnConnect:$,domNode:V,connectionMode:W,connectionRadius:X,lib:ee,onConnectStart:q,cancelConnection:te,nodeLookup:J,rfId:P,panBy:U,updateConnection:B}=_.getState(),b=F.type==="target",R=(j,L)=>{g(!1),y==null||y(j,i,F.type,L)},z=j=>m==null?void 0:m(i,j),A=(j,L)=>{g(!0),v==null||v(M,i,F.type),q==null||q(j,L)};Ju.onPointerDown(M.nativeEvent,{autoPanOnConnect:$,connectionMode:W,connectionRadius:X,domNode:V,handleId:F.id,nodeId:F.nodeId,nodeLookup:J,isTarget:b,edgeUpdaterType:F.type,lib:ee,flowId:P,cancelConnection:te,panBy:U,isValidConnection:(...j)=>{var L,ne;return((ne=(L=_.getState()).isValidConnection)==null?void 0:ne.call(L,...j))??!0},onConnect:z,onConnectStart:A,onConnectEnd:(...j)=>{var L,ne;return(ne=(L=_.getState()).onConnectEnd)==null?void 0:ne.call(L,...j)},onReconnectEnd:R,updateConnection:B,getTransform:()=>_.getState().transform,getFromHandle:()=>_.getState().connection.fromHandle,dragThreshold:_.getState().connectionDragThreshold,handleDomNode:M.currentTarget})},E=M=>C(M,{nodeId:i.target,id:i.targetHandle??null,type:"target"}),N=M=>C(M,{nodeId:i.source,id:i.sourceHandle??null,type:"source"}),I=()=>w(!0),k=()=>w(!1);return x.jsxs(x.Fragment,{children:[(t===!0||t==="source")&&x.jsx(lh,{position:d,centerX:l,centerY:a,radius:r,onMouseDown:E,onMouseEnter:I,onMouseOut:k,type:"source"}),(t===!0||t==="target")&&x.jsx(lh,{position:h,centerX:u,centerY:c,radius:r,onMouseDown:N,onMouseEnter:I,onMouseOut:k,type:"target"})]})}function vS({id:t,edgesFocusable:r,edgesReconnectable:i,elementsSelectable:l,onClick:a,onDoubleClick:u,onContextMenu:c,onMouseEnter:d,onMouseMove:h,onMouseLeave:m,reconnectRadius:v,onReconnect:y,onReconnectStart:g,onReconnectEnd:w,rfId:_,edgeTypes:C,noPanClassName:E,onError:N,disableKeyboardA11y:I}){let k=ze(xe=>xe.edgeLookup.get(t));const M=ze(xe=>xe.defaultEdgeOptions);k=M?{...M,...k}:k;let F=k.type||"default",$=(C==null?void 0:C[F])||oh[F];$===void 0&&(N==null||N("011",tn.error011(F)),F="default",$=(C==null?void 0:C.default)||oh.default);const V=!!(k.focusable||r&&typeof k.focusable>"u"),W=typeof y<"u"&&(k.reconnectable||i&&typeof k.reconnectable>"u"),X=!!(k.selectable||l&&typeof k.selectable>"u"),ee=D.useRef(null),[q,te]=D.useState(!1),[J,P]=D.useState(!1),U=Oe(),{zIndex:B=k.zIndex,sourceX:b,sourceY:R,targetX:z,targetY:A,sourcePosition:j,targetPosition:L}=ze(D.useCallback(xe=>{const Se=xe.nodeLookup.get(k.source),Ne=xe.nodeLookup.get(k.target);if(!Se||!Ne)return ih;const je=o1({id:t,sourceNode:Se,targetNode:Ne,sourceHandle:k.sourceHandle||null,targetHandle:k.targetHandle||null,connectionMode:xe.connectionMode,onError:N}),Ie=Gw({selected:k.selected,zIndex:k.zIndex,sourceNode:Se,targetNode:Ne,elevateOnSelect:xe.elevateEdgesOnSelect,zIndexMode:xe.zIndexMode});return{...je||ih,zIndex:Ie}},[k.source,k.target,k.sourceHandle,k.targetHandle,k.selected,k.zIndex,N]),We),ne=D.useMemo(()=>k.markerStart?`url('#${qu(k.markerStart,_)}')`:void 0,[k.markerStart,_]),Z=D.useMemo(()=>k.markerEnd?`url('#${qu(k.markerEnd,_)}')`:void 0,[k.markerEnd,_]);if(k.hidden||b===null||R===null||z===null||A===null)return null;const le=xe=>{var Ie;const{addSelectedEdges:Se,unselectNodesAndEdges:Ne,multiSelectionActive:je}=U.getState();X&&(U.setState({nodesSelectionActive:!1}),k.selected&&je?(Ne({nodes:[],edges:[k]}),(Ie=ee.current)==null||Ie.blur()):Se([t])),a&&a(xe,k)},fe=u?xe=>{u(xe,{...k})}:void 0,ue=c?xe=>{c(xe,{...k})}:void 0,Q=d?xe=>{d(xe,{...k})}:void 0,ie=h?xe=>{h(xe,{...k})}:void 0,pe=m?xe=>{m(xe,{...k})}:void 0,_e=xe=>{var Se;if(!I&&Xh.includes(xe.key)&&X){const{unselectNodesAndEdges:Ne,addSelectedEdges:je}=U.getState();xe.key==="Escape"?((Se=ee.current)==null||Se.blur(),Ne({edges:[k]})):je([t])}};return x.jsx("svg",{style:{zIndex:B},children:x.jsxs("g",{className:Ge(["react-flow__edge",`react-flow__edge-${F}`,k.className,E,{selected:k.selected,animated:k.animated,inactive:!X&&!a,updating:q,selectable:X}]),onClick:le,onDoubleClick:fe,onContextMenu:ue,onMouseEnter:Q,onMouseMove:ie,onMouseLeave:pe,onKeyDown:V?_e:void 0,tabIndex:V?0:void 0,role:k.ariaRole??(V?"group":"img"),"aria-roledescription":"edge","data-id":t,"data-testid":`rf__edge-${t}`,"aria-label":k.ariaLabel===null?void 0:k.ariaLabel||`Edge from ${k.source} to ${k.target}`,"aria-describedby":V?`${Cg}-${_}`:void 0,ref:ee,...k.domAttributes,children:[!J&&x.jsx($,{id:t,source:k.source,target:k.target,type:k.type,selected:k.selected,animated:k.animated,selectable:X,deletable:k.deletable??!0,label:k.label,labelStyle:k.labelStyle,labelShowBg:k.labelShowBg,labelBgStyle:k.labelBgStyle,labelBgPadding:k.labelBgPadding,labelBgBorderRadius:k.labelBgBorderRadius,sourceX:b,sourceY:R,targetX:z,targetY:A,sourcePosition:j,targetPosition:L,data:k.data,style:k.style,sourceHandleId:k.sourceHandle,targetHandleId:k.targetHandle,markerStart:ne,markerEnd:Z,pathOptions:"pathOptions"in k?k.pathOptions:void 0,interactionWidth:k.interactionWidth}),W&&x.jsx(yS,{edge:k,isReconnectable:W,reconnectRadius:v,onReconnect:y,onReconnectStart:g,onReconnectEnd:w,sourceX:b,sourceY:R,targetX:z,targetY:A,sourcePosition:j,targetPosition:L,setUpdateHover:te,setReconnecting:P})]})})}var xS=D.memo(vS);const wS=t=>({edgesFocusable:t.edgesFocusable,edgesReconnectable:t.edgesReconnectable,elementsSelectable:t.elementsSelectable,connectionMode:t.connectionMode,onError:t.onError});function Zg({defaultMarkerColor:t,onlyRenderVisibleElements:r,rfId:i,edgeTypes:l,noPanClassName:a,onReconnect:u,onEdgeContextMenu:c,onEdgeMouseEnter:d,onEdgeMouseMove:h,onEdgeMouseLeave:m,onEdgeClick:v,reconnectRadius:y,onEdgeDoubleClick:g,onReconnectStart:w,onReconnectEnd:_,disableKeyboardA11y:C}){const{edgesFocusable:E,edgesReconnectable:N,elementsSelectable:I,onError:k}=ze(wS,We),M=oS(r);return x.jsxs("div",{className:"react-flow__edges",children:[x.jsx(uS,{defaultColor:t,rfId:i}),M.map(F=>x.jsx(xS,{id:F,edgesFocusable:E,edgesReconnectable:N,elementsSelectable:I,noPanClassName:a,onReconnect:u,onContextMenu:c,onMouseEnter:d,onMouseMove:h,onMouseLeave:m,onClick:v,reconnectRadius:y,onDoubleClick:g,onReconnectStart:w,onReconnectEnd:_,rfId:i,onError:k,edgeTypes:l,disableKeyboardA11y:C},F))]})}Zg.displayName="EdgeRenderer";const _S=D.memo(Zg),ah=t=>`translate(${t[0]}px,${t[1]}px) scale(${t[2]})`;function SS({children:t}){const r=Oe(),i=D.useRef(null),[l]=D.useState(()=>r.getState().transform);return Ig(()=>{let a=null;const u=()=>{const c=r.getState().transform;a&&c[0]===a[0]&&c[1]===a[1]&&c[2]===a[2]||(a=c,i.current&&(i.current.style.transform=ah(c)))};return u(),r.subscribe(u)},[r]),x.jsx("div",{ref:i,className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:ah(l)},children:t})}function kS(t){const r=Cl(),i=D.useRef(!1);D.useEffect(()=>{!i.current&&r.viewportInitialized&&t&&(setTimeout(()=>t(r),1),i.current=!0)},[t,r.viewportInitialized])}const ES=t=>{var r;return(r=t.panZoom)==null?void 0:r.syncViewport};function NS(t){const r=ze(ES),i=Oe();return D.useEffect(()=>{t&&(r==null||r(t),i.setState({transform:[t.x,t.y,t.zoom]}))},[t,r]),null}function CS(t){return t.connection.inProgress?{...t.connection,to:Mi(t.connection.to,t.transform)}:{...t.connection}}function MS(t){return CS}function jS(t){const r=MS();return ze(r,We)}const PS=t=>({nodesConnectable:t.nodesConnectable,isValid:t.connection.isValid,inProgress:t.connection.inProgress,width:t.width,height:t.height});function IS({containerStyle:t,style:r,type:i,component:l}){const{nodesConnectable:a,width:u,height:c,isValid:d,inProgress:h}=ze(PS,We);return!(u&&a&&h)?null:x.jsx("svg",{style:t,width:u,height:c,className:"react-flow__connectionline react-flow__container",children:x.jsx("g",{className:Ge(["react-flow__connection",og(d)]),children:x.jsx(Jg,{style:r,type:i,CustomComponent:l,isValid:d})})})}const Jg=({style:t,type:r=Qn.Bezier,CustomComponent:i,isValid:l})=>{const{inProgress:a,from:u,fromNode:c,fromHandle:d,fromPosition:h,to:m,toNode:v,toHandle:y,toPosition:g,pointer:w}=jS();if(!a)return;if(i)return x.jsx(i,{connectionLineType:r,connectionLineStyle:t,fromNode:c,fromHandle:d,fromX:u.x,fromY:u.y,toX:m.x,toY:m.y,fromPosition:h,toPosition:g,connectionStatus:og(l),toNode:v,toHandle:y,pointer:w});let _="";const C={sourceX:u.x,sourceY:u.y,sourcePosition:h,targetX:m.x,targetY:m.y,targetPosition:g};switch(r){case Qn.Bezier:[_]=ug(C);break;case Qn.SimpleBezier:[_]=Fg(C);break;case Qn.Step:[_]=Gu({...C,borderRadius:0});break;case Qn.SmoothStep:[_]=Gu(C);break;default:[_]=fg(C)}return x.jsx("path",{d:_,fill:"none",className:"react-flow__connection-path",style:t})};Jg.displayName="ConnectionLine";const TS={};function uh(t=TS){D.useRef(t),Oe(),D.useEffect(()=>{},[t])}function RS(){Oe(),D.useRef(!1),D.useEffect(()=>{},[])}function em({nodeTypes:t,edgeTypes:r,onInit:i,onNodeClick:l,onEdgeClick:a,onNodeDoubleClick:u,onEdgeDoubleClick:c,onNodeMouseEnter:d,onNodeMouseMove:h,onNodeMouseLeave:m,onNodeContextMenu:v,onSelectionContextMenu:y,onSelectionStart:g,onSelectionEnd:w,connectionLineType:_,connectionLineStyle:C,connectionLineComponent:E,connectionLineContainerStyle:N,selectionKeyCode:I,selectionOnDrag:k,selectionMode:M,multiSelectionKeyCode:F,panActivationKeyCode:$,zoomActivationKeyCode:V,deleteKeyCode:W,onlyRenderVisibleElements:X,elementsSelectable:ee,defaultViewport:q,translateExtent:te,minZoom:J,maxZoom:P,preventScrolling:U,defaultMarkerColor:B,zoomOnScroll:b,zoomOnPinch:R,panOnScroll:z,panOnScrollSpeed:A,panOnScrollMode:j,zoomOnDoubleClick:L,panOnDrag:ne,autoPanOnSelection:Z,onPaneClick:le,onPaneMouseEnter:fe,onPaneMouseMove:ue,onPaneMouseLeave:Q,onPaneScroll:ie,onPaneContextMenu:pe,paneClickDistance:_e,nodeClickDistance:xe,onEdgeContextMenu:Se,onEdgeMouseEnter:Ne,onEdgeMouseMove:je,onEdgeMouseLeave:Ie,reconnectRadius:Te,onReconnect:nt,onReconnectStart:ut,onReconnectEnd:rt,noDragClassName:qe,noWheelClassName:At,noPanClassName:xt,disableKeyboardA11y:$t,nodeExtent:ct,rfId:wt,viewport:gt,onViewportChange:mt,nodesDraggable:ce}){return uh(t),uh(r),RS(),kS(i),NS(gt),x.jsx(K_,{onPaneClick:le,onPaneMouseEnter:fe,onPaneMouseMove:ue,onPaneMouseLeave:Q,onPaneContextMenu:pe,onPaneScroll:ie,paneClickDistance:_e,deleteKeyCode:W,selectionKeyCode:I,selectionOnDrag:k,selectionMode:M,onSelectionStart:g,onSelectionEnd:w,multiSelectionKeyCode:F,panActivationKeyCode:$,zoomActivationKeyCode:V,elementsSelectable:ee,zoomOnScroll:b,zoomOnPinch:R,zoomOnDoubleClick:L,panOnScroll:z,panOnScrollSpeed:A,panOnScrollMode:j,panOnDrag:ne,autoPanOnSelection:Z,defaultViewport:q,translateExtent:te,minZoom:J,maxZoom:P,onSelectionContextMenu:y,preventScrolling:U,noDragClassName:qe,noWheelClassName:At,noPanClassName:xt,disableKeyboardA11y:$t,onViewportChange:mt,isControlledViewport:!!gt,children:x.jsxs(SS,{children:[x.jsx(_S,{edgeTypes:r,onEdgeClick:a,onEdgeDoubleClick:c,onReconnect:nt,onReconnectStart:ut,onReconnectEnd:rt,onlyRenderVisibleElements:X,onEdgeContextMenu:Se,onEdgeMouseEnter:Ne,onEdgeMouseMove:je,onEdgeMouseLeave:Ie,reconnectRadius:Te,defaultMarkerColor:B,noPanClassName:xt,disableKeyboardA11y:$t,rfId:wt}),x.jsx(IS,{style:C,type:_,component:E,containerStyle:N}),x.jsx("div",{className:"react-flow__edgelabel-renderer"}),x.jsx(rS,{nodeTypes:t,onNodeClick:l,onNodeDoubleClick:u,onNodeMouseEnter:d,onNodeMouseMove:h,onNodeMouseLeave:m,onNodeContextMenu:v,nodeClickDistance:xe,onlyRenderVisibleElements:X,noPanClassName:xt,noDragClassName:qe,disableKeyboardA11y:$t,nodeExtent:ct,rfId:wt,nodesDraggable:ce}),x.jsx("div",{className:"react-flow__viewport-portal"})]})})}em.displayName="GraphView";const zS=D.memo(em),bS=tg(),ch=({nodes:t,edges:r,defaultNodes:i,defaultEdges:l,width:a,height:u,fitView:c,fitViewOptions:d,minZoom:h=.5,maxZoom:m=2,nodeOrigin:v,nodeExtent:y,zIndexMode:g="basic"}={})=>{const w=new Map,_=new Map,C=new Map,E=new Map,N=l??r??[],I=i??t??[],k=v??[0,0],M=y??mi;hg(C,E,N);const{nodesInitialized:F}=Zu(I,w,_,{nodeOrigin:k,nodeExtent:M,zIndexMode:g});let $=[0,0,1];if(c&&a&&u){const V=Ni(w,{filter:q=>!!((q.width||q.initialWidth)&&(q.height||q.initialHeight))}),{x:W,y:X,zoom:ee}=fc(V,a,u,h,m,(d==null?void 0:d.padding)??.1);$=[W,X,ee]}return{rfId:"1",width:a??0,height:u??0,transform:$,nodes:I,nodesInitialized:F,nodeLookup:w,parentLookup:_,edges:N,edgeLookup:E,connectionLookup:C,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:i!==void 0,hasDefaultEdges:l!==void 0,panZoom:null,minZoom:h,maxZoom:m,translateExtent:mi,nodeExtent:M,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:uo.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:k,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:c??!1,fitViewOptions:d,fitViewResolver:null,connection:{...Qh},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:bS,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:Kh,zIndexMode:g,defaultEdgeOptions:void 0,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map,onNodesDelete:void 0,onEdgesDelete:void 0,onDelete:void 0,onBeforeDelete:void 0,onViewportChangeStart:void 0,onViewportChange:void 0,onViewportChangeEnd:void 0,onNodeDragStart:void 0,onNodeDrag:void 0,onNodeDragStop:void 0,onSelectionDragStart:void 0,onSelectionDrag:void 0,onSelectionDragStop:void 0,onMoveStart:void 0,onMove:void 0,onMoveEnd:void 0,onConnect:void 0,onConnectStart:void 0,onConnectEnd:void 0,onClickConnectStart:void 0,onClickConnectEnd:void 0}},LS=({nodes:t,edges:r,defaultNodes:i,defaultEdges:l,width:a,height:u,fitView:c,fitViewOptions:d,minZoom:h,maxZoom:m,nodeOrigin:v,nodeExtent:y,zIndexMode:g})=>X1((w,_)=>{async function C(){const{nodeLookup:E,panZoom:N,fitViewOptions:I,fitViewResolver:k,width:M,height:F,minZoom:$,maxZoom:V}=_();N&&(await Bw({nodes:E,width:M,height:F,panZoom:N,minZoom:$,maxZoom:V},I),k==null||k.resolve(!0),w({fitViewResolver:null}))}return{...ch({nodes:t,edges:r,width:a,height:u,fitView:c,fitViewOptions:d,minZoom:h,maxZoom:m,nodeOrigin:v,nodeExtent:y,defaultNodes:i,defaultEdges:l,zIndexMode:g}),setNodes:E=>{const{nodeLookup:N,parentLookup:I,nodeOrigin:k,nodeExtent:M,elevateNodesOnSelect:F,fitViewQueued:$,zIndexMode:V,nodesSelectionActive:W}=_(),{nodesInitialized:X,hasSelectedNodes:ee}=Zu(E,N,I,{nodeOrigin:k,nodeExtent:M,elevateNodesOnSelect:F,checkEquality:!0,zIndexMode:V}),q=W&&ee;$&&X?(C(),w({nodes:E,nodesInitialized:X,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:q})):w({nodes:E,nodesInitialized:X,nodesSelectionActive:q})},setEdges:E=>{const{connectionLookup:N,edgeLookup:I}=_();hg(N,I,E),w({edges:E})},setDefaultNodesAndEdges:(E,N)=>{if(E){const{setNodes:I}=_();I(E),w({hasDefaultNodes:!0})}if(N){const{setEdges:I}=_();I(N),w({hasDefaultEdges:!0})}},updateNodeInternals:E=>{const{triggerNodeChanges:N,nodeLookup:I,parentLookup:k,domNode:M,nodeOrigin:F,nodeExtent:$,debug:V,fitViewQueued:W,zIndexMode:X}=_(),{changes:ee,updatedInternals:q}=d1(E,I,k,M,F,$,X);q&&(a1(I,k,{nodeOrigin:F,nodeExtent:$,zIndexMode:X}),W?(C(),w({fitViewQueued:!1,fitViewOptions:void 0})):w({}),(ee==null?void 0:ee.length)>0&&(V&&console.log("React Flow: trigger node changes",ee),N==null||N(ee)))},updateNodePositions:(E,N=!1)=>{const I=[];let k=[];const{nodeLookup:M,triggerNodeChanges:F,connection:$,updateConnection:V,onNodesChangeMiddlewareMap:W}=_();for(const[X,ee]of E){const q=M.get(X),te=!!(q!=null&&q.expandParent&&(q!=null&&q.parentId)&&(ee!=null&&ee.position)),J={id:X,type:"position",position:te?{x:Math.max(0,ee.position.x),y:Math.max(0,ee.position.y)}:ee.position,dragging:N};if(q&&$.inProgress&&$.fromNode.id===q.id){const P=Nr(q,$.fromHandle,we.Left,!0);V({...$,from:P})}te&&q.parentId&&I.push({id:X,parentId:q.parentId,rect:{...ee.internals.positionAbsolute,width:ee.measured.width??0,height:ee.measured.height??0}}),k.push(J)}if(I.length>0){const{parentLookup:X,nodeOrigin:ee}=_(),q=yc(I,M,X,ee);k.push(...q)}for(const X of W.values())k=X(k);F(k)},triggerNodeChanges:E=>{const{onNodesChange:N,setNodes:I,nodes:k,hasDefaultNodes:M,debug:F}=_();if(E!=null&&E.length){if(M){const $=h_(E,k);I($)}F&&console.log("React Flow: trigger node changes",E),N==null||N(E)}},triggerEdgeChanges:E=>{const{onEdgesChange:N,setEdges:I,edges:k,hasDefaultEdges:M,debug:F}=_();if(E!=null&&E.length){if(M){const $=g_(E,k);I($)}F&&console.log("React Flow: trigger edge changes",E),N==null||N(E)}},addSelectedNodes:E=>{const{multiSelectionActive:N,edgeLookup:I,nodeLookup:k,triggerNodeChanges:M,triggerEdgeChanges:F}=_();if(N){const $=E.map(V=>mr(V,!0));M($);return}M(ro(k,new Set([...E]),!0)),F(ro(I))},addSelectedEdges:E=>{const{multiSelectionActive:N,edgeLookup:I,nodeLookup:k,triggerNodeChanges:M,triggerEdgeChanges:F}=_();if(N){const $=E.map(V=>mr(V,!0));F($);return}F(ro(I,new Set([...E]))),M(ro(k,new Set,!0))},unselectNodesAndEdges:({nodes:E,edges:N}={})=>{const{edges:I,nodes:k,nodeLookup:M,triggerNodeChanges:F,triggerEdgeChanges:$}=_(),V=E||k,W=N||I,X=[];for(const q of V){if(!q.selected)continue;const te=M.get(q.id);te&&(te.selected=!1),X.push(mr(q.id,!1))}const ee=[];for(const q of W)q.selected&&ee.push(mr(q.id,!1));F(X),$(ee)},setMinZoom:E=>{const{panZoom:N,maxZoom:I}=_();N==null||N.setScaleExtent([E,I]),w({minZoom:E})},setMaxZoom:E=>{const{panZoom:N,minZoom:I}=_();N==null||N.setScaleExtent([I,E]),w({maxZoom:E})},setTranslateExtent:E=>{var N;(N=_().panZoom)==null||N.setTranslateExtent(E),w({translateExtent:E})},resetSelectedElements:()=>{const{edges:E,nodes:N,triggerNodeChanges:I,triggerEdgeChanges:k,elementsSelectable:M}=_();if(!M)return;const F=N.reduce((V,W)=>W.selected?[...V,mr(W.id,!1)]:V,[]),$=E.reduce((V,W)=>W.selected?[...V,mr(W.id,!1)]:V,[]);I(F),k($)},setNodeExtent:E=>{const{nodes:N,nodeLookup:I,parentLookup:k,nodeOrigin:M,elevateNodesOnSelect:F,nodeExtent:$,zIndexMode:V}=_();E[0][0]===$[0][0]&&E[0][1]===$[0][1]&&E[1][0]===$[1][0]&&E[1][1]===$[1][1]||(Zu(N,I,k,{nodeOrigin:M,nodeExtent:E,elevateNodesOnSelect:F,checkEquality:!1,zIndexMode:V}),w({nodeExtent:E}))},panBy:E=>{const{transform:N,width:I,height:k,panZoom:M,translateExtent:F}=_();return p1({delta:E,panZoom:M,transform:N,translateExtent:F,width:I,height:k})},setCenter:async(E,N,I)=>{const{width:k,height:M,maxZoom:F,panZoom:$}=_();if(!$)return!1;const V=typeof(I==null?void 0:I.zoom)<"u"?I.zoom:F;return await $.setViewport({x:k/2-E*V,y:M/2-N*V,zoom:V},{duration:I==null?void 0:I.duration,ease:I==null?void 0:I.ease,interpolate:I==null?void 0:I.interpolate}),!0},cancelConnection:()=>{w({connection:{...Qh}})},updateConnection:E=>{w({connection:E})},reset:()=>w({...ch()})}},Object.is);function tm({initialNodes:t,initialEdges:r,defaultNodes:i,defaultEdges:l,initialWidth:a,initialHeight:u,initialMinZoom:c,initialMaxZoom:d,initialFitViewOptions:h,fitView:m,nodeOrigin:v,nodeExtent:y,zIndexMode:g,children:w}){const[_]=D.useState(()=>LS({nodes:t,edges:r,defaultNodes:i,defaultEdges:l,width:a,height:u,fitView:m,minZoom:c,maxZoom:d,fitViewOptions:h,nodeOrigin:v,nodeExtent:y,zIndexMode:g}));return x.jsx(K1,{value:_,children:x.jsx(w_,{children:x.jsx(L_,{children:w})})})}function DS({children:t,nodes:r,edges:i,defaultNodes:l,defaultEdges:a,width:u,height:c,fitView:d,fitViewOptions:h,minZoom:m,maxZoom:v,nodeOrigin:y,nodeExtent:g,zIndexMode:w}){return D.useContext(Nl)?x.jsx(x.Fragment,{children:t}):x.jsx(tm,{initialNodes:r,initialEdges:i,defaultNodes:l,defaultEdges:a,initialWidth:u,initialHeight:c,fitView:d,initialFitViewOptions:h,initialMinZoom:m,initialMaxZoom:v,nodeOrigin:y,nodeExtent:g,zIndexMode:w,children:t})}const AS={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function $S({nodes:t,edges:r,defaultNodes:i,defaultEdges:l,className:a,nodeTypes:u,edgeTypes:c,onNodeClick:d,onEdgeClick:h,onInit:m,onMove:v,onMoveStart:y,onMoveEnd:g,onConnect:w,onConnectStart:_,onConnectEnd:C,onClickConnectStart:E,onClickConnectEnd:N,onNodeMouseEnter:I,onNodeMouseMove:k,onNodeMouseLeave:M,onNodeContextMenu:F,onNodeDoubleClick:$,onNodeDragStart:V,onNodeDrag:W,onNodeDragStop:X,onNodesDelete:ee,onEdgesDelete:q,onDelete:te,onSelectionChange:J,onSelectionDragStart:P,onSelectionDrag:U,onSelectionDragStop:B,onSelectionContextMenu:b,onSelectionStart:R,onSelectionEnd:z,onBeforeDelete:A,connectionMode:j,connectionLineType:L=Qn.Bezier,connectionLineStyle:ne,connectionLineComponent:Z,connectionLineContainerStyle:le,deleteKeyCode:fe="Backspace",selectionKeyCode:ue="Shift",selectionOnDrag:Q=!1,selectionMode:ie=yi.Full,panActivationKeyCode:pe="Space",multiSelectionKeyCode:_e=xi()?"Meta":"Control",zoomActivationKeyCode:xe=xi()?"Meta":"Control",snapToGrid:Se,snapGrid:Ne,onlyRenderVisibleElements:je=!1,selectNodesOnDrag:Ie,nodesDraggable:Te,autoPanOnNodeFocus:nt,nodesConnectable:ut,nodesFocusable:rt,nodeOrigin:qe=Mg,edgesFocusable:At,edgesReconnectable:xt,elementsSelectable:$t=!0,defaultViewport:ct=l_,minZoom:wt=.5,maxZoom:gt=2,translateExtent:mt=mi,preventScrolling:ce=!0,nodeExtent:he,defaultMarkerColor:Me="#b1b1b7",zoomOnScroll:Xe=!0,zoomOnPinch:jt=!0,panOnScroll:Ze=!1,panOnScrollSpeed:go=.5,panOnScrollMode:mo=xr.Free,zoomOnDoubleClick:yo=!0,panOnDrag:vo=!0,onPaneClick:xo,onPaneMouseEnter:wo,onPaneMouseMove:Nn,onPaneMouseLeave:Cn,onPaneScroll:Pi,onPaneContextMenu:Ii,paneClickDistance:Ti=1,nodeClickDistance:Ri=0,children:zi,onReconnect:_o,onReconnectStart:bi,onReconnectEnd:Zn,onEdgeContextMenu:So,onEdgeDoubleClick:Jn,onEdgeMouseEnter:Pl,onEdgeMouseMove:er,onEdgeMouseLeave:Mr,reconnectRadius:jr=10,onNodesChange:ko,onEdgesChange:Il,noDragClassName:Tl="nodrag",noWheelClassName:Rl="nowheel",noPanClassName:on="nopan",fitView:Eo,fitViewOptions:No,connectOnClick:zl,attributionPosition:Li,proOptions:Di,defaultEdgeOptions:Ai,elevateNodesOnSelect:$i=!0,elevateEdgesOnSelect:bl=!1,disableKeyboardA11y:Oi=!1,autoPanOnConnect:Ve,autoPanOnNodeDrag:Ll,autoPanOnSelection:Co=!0,autoPanSpeed:Fi,connectionRadius:Pr,isValidConnection:Dl,onError:Hi,style:Ir,id:Pt,nodeDragThreshold:Al,connectionDragThreshold:It,viewport:$l,onViewportChange:Ol,width:Fl,height:Tr,colorMode:Rr="light",debug:tr,onScroll:pn,ariaLabelConfig:Hl,zIndexMode:Vi="basic",...Mo},Bi){const nr=Pt||"1",rr=f_(Rr),Vl=D.useCallback(zr=>{zr.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),pn==null||pn(zr)},[pn]);return x.jsx("div",{"data-testid":"rf__wrapper",...Mo,onScroll:Vl,style:{...Ir,...AS},ref:Bi,className:Ge(["react-flow",a,rr]),id:Pt,role:"application",children:x.jsxs(DS,{nodes:t,edges:r,width:Fl,height:Tr,fitView:Eo,fitViewOptions:No,minZoom:wt,maxZoom:gt,nodeOrigin:qe,nodeExtent:he,zIndexMode:Vi,children:[x.jsx(c_,{nodes:t,edges:r,defaultNodes:i,defaultEdges:l,onConnect:w,onConnectStart:_,onConnectEnd:C,onClickConnectStart:E,onClickConnectEnd:N,nodesDraggable:Te,autoPanOnNodeFocus:nt,nodesConnectable:ut,nodesFocusable:rt,edgesFocusable:At,edgesReconnectable:xt,elementsSelectable:$t,elevateNodesOnSelect:$i,elevateEdgesOnSelect:bl,minZoom:wt,maxZoom:gt,nodeExtent:he,onNodesChange:ko,onEdgesChange:Il,snapToGrid:Se,snapGrid:Ne,connectionMode:j,translateExtent:mt,connectOnClick:zl,defaultEdgeOptions:Ai,fitView:Eo,fitViewOptions:No,onNodesDelete:ee,onEdgesDelete:q,onDelete:te,onNodeDragStart:V,onNodeDrag:W,onNodeDragStop:X,onSelectionDrag:U,onSelectionDragStart:P,onSelectionDragStop:B,onMove:v,onMoveStart:y,onMoveEnd:g,noPanClassName:on,nodeOrigin:qe,rfId:nr,autoPanOnConnect:Ve,autoPanOnNodeDrag:Ll,autoPanSpeed:Fi,onError:Hi,connectionRadius:Pr,isValidConnection:Dl,selectNodesOnDrag:Ie,nodeDragThreshold:Al,connectionDragThreshold:It,onBeforeDelete:A,debug:tr,ariaLabelConfig:Hl,zIndexMode:Vi}),x.jsx(zS,{onInit:m,onNodeClick:d,onEdgeClick:h,onNodeMouseEnter:I,onNodeMouseMove:k,onNodeMouseLeave:M,onNodeContextMenu:F,onNodeDoubleClick:$,nodeTypes:u,edgeTypes:c,connectionLineType:L,connectionLineStyle:ne,connectionLineComponent:Z,connectionLineContainerStyle:le,selectionKeyCode:ue,selectionOnDrag:Q,selectionMode:ie,deleteKeyCode:fe,multiSelectionKeyCode:_e,panActivationKeyCode:pe,zoomActivationKeyCode:xe,onlyRenderVisibleElements:je,defaultViewport:ct,translateExtent:mt,minZoom:wt,maxZoom:gt,preventScrolling:ce,zoomOnScroll:Xe,zoomOnPinch:jt,zoomOnDoubleClick:yo,panOnScroll:Ze,panOnScrollSpeed:go,panOnScrollMode:mo,panOnDrag:vo,autoPanOnSelection:Co,onPaneClick:xo,onPaneMouseEnter:wo,onPaneMouseMove:Nn,onPaneMouseLeave:Cn,onPaneScroll:Pi,onPaneContextMenu:Ii,paneClickDistance:Ti,nodeClickDistance:Ri,onSelectionContextMenu:b,onSelectionStart:R,onSelectionEnd:z,onReconnect:_o,onReconnectStart:bi,onReconnectEnd:Zn,onEdgeContextMenu:So,onEdgeDoubleClick:Jn,onEdgeMouseEnter:Pl,onEdgeMouseMove:er,onEdgeMouseLeave:Mr,reconnectRadius:jr,defaultMarkerColor:Me,noDragClassName:Tl,noWheelClassName:Rl,noPanClassName:on,rfId:nr,disableKeyboardA11y:Oi,nodeExtent:he,viewport:$l,onViewportChange:Ol,nodesDraggable:Te}),x.jsx(s_,{onSelectionChange:J}),zi,x.jsx(t_,{proOptions:Di,position:Li}),x.jsx(e_,{rfId:nr,disableKeyboardA11y:Oi})]})})}var OS=Pg($S);function FS({dimensions:t,lineWidth:r,variant:i,className:l}){return x.jsx("path",{strokeWidth:r,d:`M${t[0]/2} 0 V${t[1]} M0 ${t[1]/2} H${t[0]}`,className:Ge(["react-flow__background-pattern",i,l])})}function HS({radius:t,className:r}){return x.jsx("circle",{cx:t,cy:t,r:t,className:Ge(["react-flow__background-pattern","dots",r])})}var Gn;(function(t){t.Lines="lines",t.Dots="dots",t.Cross="cross"})(Gn||(Gn={}));const VS={[Gn.Dots]:1,[Gn.Lines]:1,[Gn.Cross]:6},BS=t=>({transform:t.transform,patternId:`pattern-${t.rfId}`});function nm({id:t,variant:r=Gn.Dots,gap:i=20,size:l,lineWidth:a=1,offset:u=0,color:c,bgColor:d,style:h,className:m,patternClassName:v}){const y=D.useRef(null),{transform:g,patternId:w}=ze(BS,We),_=l||VS[r],C=r===Gn.Dots,E=r===Gn.Cross,N=Array.isArray(i)?i:[i,i],I=[N[0]*g[2]||1,N[1]*g[2]||1],k=_*g[2],M=Array.isArray(u)?u:[u,u],F=E?[k,k]:I,$=[M[0]*g[2]+F[0]/2,M[1]*g[2]+F[1]/2],V=`${w}${t||""}`;return x.jsxs("svg",{className:Ge(["react-flow__background",m]),style:{...h,...Ml,"--xy-background-color-props":d,"--xy-background-pattern-color-props":c},ref:y,"data-testid":"rf__background",children:[x.jsx("pattern",{id:V,x:g[0]%I[0],y:g[1]%I[1],width:I[0],height:I[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${$[0]},-${$[1]})`,children:C?x.jsx(HS,{radius:k/2,className:v}):x.jsx(FS,{dimensions:F,lineWidth:a,variant:r,className:v})}),x.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${V})`})]})}nm.displayName="Background";const US=D.memo(nm);function WS(){return x.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:x.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function YS(){return x.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:x.jsx("path",{d:"M0 0h32v4.2H0z"})})}function XS(){return x.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:x.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function KS(){return x.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:x.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function QS(){return x.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:x.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function Js({children:t,className:r,...i}){return x.jsx("button",{type:"button",className:Ge(["react-flow__controls-button",r]),...i,children:t})}const GS=t=>({isInteractive:t.nodesDraggable||t.nodesConnectable||t.elementsSelectable,minZoomReached:t.transform[2]<=t.minZoom,maxZoomReached:t.transform[2]>=t.maxZoom,ariaLabelConfig:t.ariaLabelConfig});function rm({style:t,showZoom:r=!0,showFitView:i=!0,showInteractive:l=!0,fitViewOptions:a,onZoomIn:u,onZoomOut:c,onFitView:d,onInteractiveChange:h,className:m,children:v,position:y="bottom-left",orientation:g="vertical","aria-label":w}){const _=Oe(),{isInteractive:C,minZoomReached:E,maxZoomReached:N,ariaLabelConfig:I}=ze(GS,We),{zoomIn:k,zoomOut:M,fitView:F}=Cl(),$=()=>{k(),u==null||u()},V=()=>{M(),c==null||c()},W=()=>{F(a),d==null||d()},X=()=>{_.setState({nodesDraggable:!C,nodesConnectable:!C,elementsSelectable:!C}),h==null||h(!C)},ee=g==="horizontal"?"horizontal":"vertical";return x.jsxs(ji,{className:Ge(["react-flow__controls",ee,m]),position:y,style:t,"data-testid":"rf__controls","aria-label":w??I["controls.ariaLabel"],children:[r&&x.jsxs(x.Fragment,{children:[x.jsx(Js,{onClick:$,className:"react-flow__controls-zoomin",title:I["controls.zoomIn.ariaLabel"],"aria-label":I["controls.zoomIn.ariaLabel"],disabled:N,children:x.jsx(WS,{})}),x.jsx(Js,{onClick:V,className:"react-flow__controls-zoomout",title:I["controls.zoomOut.ariaLabel"],"aria-label":I["controls.zoomOut.ariaLabel"],disabled:E,children:x.jsx(YS,{})})]}),i&&x.jsx(Js,{className:"react-flow__controls-fitview",onClick:W,title:I["controls.fitView.ariaLabel"],"aria-label":I["controls.fitView.ariaLabel"],children:x.jsx(XS,{})}),l&&x.jsx(Js,{className:"react-flow__controls-interactive",onClick:X,title:I["controls.interactive.ariaLabel"],"aria-label":I["controls.interactive.ariaLabel"],children:C?x.jsx(QS,{}):x.jsx(KS,{})}),v]})}rm.displayName="Controls";const qS=D.memo(rm);function ZS({id:t,x:r,y:i,width:l,height:a,style:u,color:c,strokeColor:d,strokeWidth:h,className:m,borderRadius:v,shapeRendering:y,selected:g,onClick:w}){const{background:_,backgroundColor:C}=u||{},E=c||_||C;return x.jsx("rect",{className:Ge(["react-flow__minimap-node",{selected:g},m]),x:r,y:i,rx:v,ry:v,width:l,height:a,style:{fill:E,stroke:d,strokeWidth:h},shapeRendering:y,onClick:w?N=>w(N,t):void 0})}const JS=D.memo(ZS),ek=t=>t.nodes.map(r=>r.id),Du=t=>t instanceof Function?t:()=>t;function tk({nodeStrokeColor:t,nodeColor:r,nodeClassName:i="",nodeBorderRadius:l=5,nodeStrokeWidth:a,nodeComponent:u=JS,onClick:c}){const d=ze(ek,We),h=Du(r),m=Du(t),v=Du(i),y=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return x.jsx(x.Fragment,{children:d.map(g=>x.jsx(rk,{id:g,nodeColorFunc:h,nodeStrokeColorFunc:m,nodeClassNameFunc:v,nodeBorderRadius:l,nodeStrokeWidth:a,NodeComponent:u,onClick:c,shapeRendering:y},g))})}function nk({id:t,nodeColorFunc:r,nodeStrokeColorFunc:i,nodeClassNameFunc:l,nodeBorderRadius:a,nodeStrokeWidth:u,shapeRendering:c,NodeComponent:d,onClick:h}){const{node:m,x:v,y,width:g,height:w}=ze(_=>{const C=_.nodeLookup.get(t);if(!C)return{node:void 0,x:0,y:0,width:0,height:0};const E=C.internals.userNode,{x:N,y:I}=C.internals.positionAbsolute,{width:k,height:M}=rn(E);return{node:E,x:N,y:I,width:k,height:M}},We);return!m||m.hidden||!ng(m)?null:x.jsx(d,{x:v,y,width:g,height:w,style:m.style,selected:!!m.selected,className:l(m),color:r(m),borderRadius:a,strokeColor:i(m),strokeWidth:u,shapeRendering:c,onClick:h,id:m.id})}const rk=D.memo(nk);var ok=D.memo(tk);const ik=200,sk=150,lk=t=>!t.hidden,ak=t=>{const r={x:-t.transform[0]/t.transform[2],y:-t.transform[1]/t.transform[2],width:t.width/t.transform[2],height:t.height/t.transform[2]};let i=!1;for(const l of t.nodeLookup.values())if(!l.hidden){i=!0;break}return{viewBB:r,boundingRect:i?Jh(Ni(t.nodeLookup,{filter:lk}),r):r,rfId:t.rfId,panZoom:t.panZoom,translateExtent:t.translateExtent,flowWidth:t.width,flowHeight:t.height,ariaLabelConfig:t.ariaLabelConfig}},fh=(t,r)=>t.x===r.x&&t.y===r.y&&t.width===r.width&&t.height===r.height,uk=(t,r)=>fh(t.viewBB,r.viewBB)&&fh(t.boundingRect,r.boundingRect)&&t.rfId===r.rfId&&t.panZoom===r.panZoom&&t.translateExtent===r.translateExtent&&t.flowWidth===r.flowWidth&&t.flowHeight===r.flowHeight&&t.ariaLabelConfig===r.ariaLabelConfig,ck="react-flow__minimap-desc";function om({style:t,className:r,nodeStrokeColor:i,nodeColor:l,nodeClassName:a="",nodeBorderRadius:u=5,nodeStrokeWidth:c,nodeComponent:d,bgColor:h,maskColor:m,maskStrokeColor:v,maskStrokeWidth:y,position:g="bottom-right",onClick:w,onNodeClick:_,pannable:C=!1,zoomable:E=!1,ariaLabel:N,inversePan:I,zoomStep:k=1,offsetScale:M=5}){const F=Oe(),$=D.useRef(null),{boundingRect:V,panZoom:W,viewBB:X,rfId:ee,translateExtent:q,flowWidth:te,flowHeight:J,ariaLabelConfig:P}=ze(ak,uk),U=(t==null?void 0:t.width)??ik,B=(t==null?void 0:t.height)??sk,b=V.width/U,R=V.height/B,z=Math.max(b,R),A=z*U,j=z*B,L=M*z,ne=V.x-(A-V.width)/2-L,Z=V.y-(j-V.height)/2-L,le=A+L*2,fe=j+L*2,ue=`${ck}-${ee}`,Q=D.useRef(0),ie=D.useRef();Q.current=z,D.useEffect(()=>{const Ne=F.getState().panZoom;if($.current&&Ne)return ie.current=S1({domNode:$.current,panZoom:Ne,getTransform:()=>F.getState().transform,getViewScale:()=>Q.current}),()=>{var je;(je=ie.current)==null||je.destroy()}},[W]),D.useEffect(()=>{var Ne;(Ne=ie.current)==null||Ne.update({translateExtent:q,width:te,height:J,inversePan:I,pannable:C,zoomStep:k,zoomable:E})},[C,E,I,k,q,te,J]);const pe=w?Ne=>{var Te;const[je,Ie]=((Te=ie.current)==null?void 0:Te.pointer(Ne))||[0,0];w(Ne,{x:je,y:Ie})}:void 0,_e=D.useCallback((Ne,je)=>{const Ie=F.getState().nodeLookup.get(je).internals.userNode;_==null||_(Ne,Ie)},[_]),xe=_?_e:void 0,Se=N??P["minimap.ariaLabel"];return x.jsx(ji,{position:g,style:{...t,"--xy-minimap-background-color-props":typeof h=="string"?h:void 0,"--xy-minimap-mask-background-color-props":typeof m=="string"?m:void 0,"--xy-minimap-mask-stroke-color-props":typeof v=="string"?v:void 0,"--xy-minimap-mask-stroke-width-props":typeof y=="number"?y*z:void 0,"--xy-minimap-node-background-color-props":typeof l=="string"?l:void 0,"--xy-minimap-node-stroke-color-props":typeof i=="string"?i:void 0,"--xy-minimap-node-stroke-width-props":typeof c=="number"?c:void 0},className:Ge(["react-flow__minimap",r]),"data-testid":"rf__minimap",children:x.jsxs("svg",{width:U,height:B,viewBox:`${ne} ${Z} ${le} ${fe}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":ue,ref:$,onClick:pe,children:[Se&&x.jsx("title",{id:ue,children:Se}),x.jsx(ok,{onClick:xe,nodeColor:l,nodeStrokeColor:i,nodeBorderRadius:u,nodeClassName:a,nodeStrokeWidth:c,nodeComponent:d}),x.jsx("path",{className:"react-flow__minimap-mask",d:`M${ne-L},${Z-L}h${le+L*2}v${fe+L*2}h${-le-L*2}z
+        M${X.x},${X.y}h${X.width}v${X.height}h${-X.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}om.displayName="MiniMap";const fk=D.memo(om),dk=t=>r=>t?`${Math.max(1/r.transform[2],1)}`:void 0,pk={[po.Line]:"right",[po.Handle]:"bottom-right"};function hk({nodeId:t,position:r,variant:i=po.Handle,className:l,style:a=void 0,children:u,color:c,minWidth:d=10,minHeight:h=10,maxWidth:m=Number.MAX_VALUE,maxHeight:v=Number.MAX_VALUE,keepAspectRatio:y=!1,resizeDirection:g,autoScale:w=!0,shouldResize:_,onResizeStart:C,onResize:E,onResizeEnd:N}){const I=bg(),k=typeof t=="string"?t:I,M=Oe(),F=D.useRef(null),$=i===po.Handle,V=ze(D.useCallback(dk($&&w),[$,w]),We),W=D.useRef(null),X=r??pk[i];D.useEffect(()=>{if(!(!F.current||!k))return W.current||(W.current=L1({domNode:F.current,nodeId:k,getStoreItems:()=>{const{nodeLookup:q,transform:te,snapGrid:J,snapToGrid:P,nodeOrigin:U,domNode:B}=M.getState();return{nodeLookup:q,transform:te,snapGrid:J,snapToGrid:P,nodeOrigin:U,paneDomNode:B}},onChange:(q,te)=>{const{triggerNodeChanges:J,nodeLookup:P,parentLookup:U,nodeOrigin:B}=M.getState(),b=[],R={x:q.x,y:q.y},z=P.get(k);if(z&&z.expandParent&&z.parentId){const A=z.origin??B,j=q.width??z.measured.width??0,L=q.height??z.measured.height??0,ne={id:z.id,parentId:z.parentId,rect:{width:j,height:L,...rg({x:q.x??z.position.x,y:q.y??z.position.y},{width:j,height:L},z.parentId,P,A)}},Z=yc([ne],P,U,B);b.push(...Z),R.x=q.x?Math.max(A[0]*j,q.x):void 0,R.y=q.y?Math.max(A[1]*L,q.y):void 0}if(R.x!==void 0&&R.y!==void 0){const A={id:k,type:"position",position:{...R}};b.push(A)}if(q.width!==void 0&&q.height!==void 0){const j={id:k,type:"dimensions",resizing:!0,setAttributes:g?g==="horizontal"?"width":"height":!0,dimensions:{width:q.width,height:q.height}};b.push(j)}for(const A of te){const j={...A,type:"position"};b.push(j)}J(b)},onEnd:({width:q,height:te})=>{const J={id:k,type:"dimensions",resizing:!1,dimensions:{width:q,height:te}};M.getState().triggerNodeChanges([J])}})),W.current.update({controlPosition:X,boundaries:{minWidth:d,minHeight:h,maxWidth:m,maxHeight:v},keepAspectRatio:y,resizeDirection:g,onResizeStart:C,onResize:E,onResizeEnd:N,shouldResize:_}),()=>{var q;(q=W.current)==null||q.destroy()}},[X,d,h,m,v,y,C,E,N,_]);const ee=X.split("-");return x.jsx("div",{className:Ge(["react-flow__resize-control","nodrag",...ee,i,l]),ref:F,style:{...a,scale:V,...c&&{[$?"backgroundColor":"borderColor"]:c}},children:u})}D.memo(hk);function im(t,r){var i;return(i=t.step_types.find(l=>l.type===r))==null?void 0:i.control}function sm(t,r){var l;const i=im(t,r.type);if(i==="if"){const a=Math.max(1,((l=r.branches)==null?void 0:l.length)??1);return[...Array.from({length:a},(u,c)=>`case${c}`),"else"]}return i==="loop"?["each","done"]:["out"]}const dh={out:"",each:"varje",done:"klar",else:"annars"};function lm(t){return t in dh?dh[t]:t.startsWith("case")?`gren ${Number(t.slice(4))+1}`:t}function gk(t,r){return t.condition_kinds.find(i=>i.kind===r)}function Cr(t,r){return r==="sv"?t.label_sv:t.label_en}function mk({label:t,value:r,onChange:i}){const[l,a]=D.useState([]),[u,c]=D.useState(!1),[d,h]=D.useState(null),m=()=>He.listDesktopImages().then(a).catch(()=>{});D.useEffect(()=>{m()},[]);async function v(){const g=r.replace(/\.png$/i,"")||`bild ${l.length+1}`,w=window.prompt("Namn på referensbilden:",g);if(w!==null){c(!0),h(null);try{const _=await He.captureDesktopImage(w.trim());i(_.name),await m()}catch(_){h(_ instanceof qn?String(_.detail):String(_))}finally{c(!1)}}}const y=r&&l.includes(r);return x.jsxs("label",{className:"field image-field",children:[x.jsx("span",{children:t}),x.jsxs("div",{className:"image-field-row",children:[x.jsx("input",{type:"text",list:"desktop-images",value:r??"",placeholder:"filnamn.png",onChange:g=>i(g.target.value)}),x.jsx("datalist",{id:"desktop-images",children:l.map(g=>x.jsx("option",{value:g},g))}),x.jsx("button",{type:"button",className:"secondary tiny",disabled:u,onClick:v,children:u?"…":"📷 Fånga"})]}),y&&x.jsx("img",{className:"image-field-preview",src:He.desktopImageUrl(r),alt:r}),d&&x.jsx("span",{className:"assist-msg error",children:d})]})}function am({values:t,fields:r,lang:i,showScope:l,onChange:a}){const u=r.filter(c=>c.kind==="field_list"?!1:c.key==="scope"?!!l:!0);return u.length===0?null:x.jsx("div",{className:"fields",children:u.map(c=>x.jsx(yk,{field:c,value:t[c.key],lang:i,onChange:d=>a({[c.key]:d})},c.key))})}function yk({field:t,value:r,lang:i,onChange:l}){var d;const a=Cr(t,i),u=t.help??a;if(t.kind==="image")return x.jsx(mk,{label:a,value:String(r??""),onChange:l});let c;return t.kind==="select"?c=x.jsx("select",{value:String(r??t.default??((d=t.options)==null?void 0:d[0])??""),title:u,onChange:h=>l(h.target.value),children:(t.options??[]).map(h=>x.jsx("option",{value:h,children:h===""?"—":h},h))}):t.kind==="bool"?c=x.jsx("input",{type:"checkbox",checked:r===!0||r==="true",title:u,onChange:h=>l(h.target.checked)}):t.kind==="number"?c=x.jsx("input",{type:"number",value:r==null?"":String(r),title:u,onChange:h=>l(h.target.value===""?void 0:Number(h.target.value))}):c=x.jsx("input",{type:"text",value:r==null?"":String(r),title:u,onChange:h=>l(h.target.value)}),x.jsxs("label",{className:"field"+(t.kind==="bool"?" field-bool":""),children:[x.jsx("span",{children:a}),c]})}function vk({condition:t,schema:r,lang:i,t:l,showScope:a,onChange:u}){const c=gk(r,t.kind);return x.jsxs("div",{className:"condition",children:[x.jsxs("label",{className:"field",children:[x.jsx("span",{children:l("condition")}),x.jsx("select",{value:t.kind,onChange:d=>u({kind:d.target.value}),children:r.condition_kinds.map(d=>x.jsx("option",{value:d.kind,children:Cr(d,i)},d.kind))})]}),c&&x.jsx(am,{values:t,fields:c.fields,lang:i,showScope:a,onChange:d=>u({...t,...d})})]})}function xk({fields:t,t:r,onChange:i}){const l=(a,u)=>i(t.map((c,d)=>d===a?{...c,...u}:c));return x.jsxs("div",{className:"row-fields",children:[t.map((a,u)=>x.jsxs("div",{className:"row-field",children:[x.jsxs("div",{className:"row-field-head",children:[x.jsx("input",{type:"text",placeholder:r("column_name"),value:a.name,onChange:c=>l(u,{name:c.target.value})}),x.jsx("button",{className:"danger",onClick:()=>i(t.filter((c,d)=>d!==u)),children:r("remove")})]}),x.jsxs("div",{className:"fields",children:[x.jsxs("label",{className:"field",children:[x.jsx("span",{children:"by"}),x.jsx("select",{value:a.by??"css",onChange:c=>l(u,{by:c.target.value}),children:["text","css","role"].map(c=>x.jsx("option",{children:c},c))})]}),x.jsxs("label",{className:"field",children:[x.jsx("span",{children:"value"}),x.jsx("input",{type:"text",value:a.value??"",onChange:c=>l(u,{value:c.target.value})})]}),x.jsxs("label",{className:"field",children:[x.jsx("span",{children:"role"}),x.jsx("input",{type:"text",value:a.role??"",onChange:c=>l(u,{role:c.target.value})})]})]})]},u)),x.jsx("button",{className:"secondary",onClick:()=>i([...t,{name:"",by:"css",value:""}]),children:r("add_field")})]})}function wk({step:t,t:r,subflowTargets:i,externalFlows:l,onChange:a,onOpenSubflow:u,onOpenExternal:c}){const d=t.target??"",h=t.in??[],m=t.out??[],v=(_,C)=>a({...t,in:h.map((E,N)=>N===_?{...E,...C}:E)}),y=(_,C)=>a({...t,out:m.map((E,N)=>N===_?{...E,...C}:E)}),g=d.startsWith("#"),w=g?i.some(_=>"#"+_.id===d):!!d&&l.includes(d);return x.jsxs("div",{className:"callflow",children:[x.jsxs("label",{className:"field",children:[x.jsx("span",{children:r("callflow_target")}),x.jsxs("div",{className:"callflow-target",children:[x.jsxs("select",{value:d,onChange:_=>a({...t,target:_.target.value}),children:[x.jsx("option",{value:"",children:"—"}),i.length>0&&x.jsx("optgroup",{label:r("callflow_local"),children:i.map(_=>x.jsx("option",{value:"#"+_.id,children:_.name},_.id))}),l.length>0&&x.jsx("optgroup",{label:r("callflow_external"),children:l.map(_=>x.jsx("option",{value:_,children:_},_))}),d&&!w&&x.jsx("option",{value:d,children:d})]}),x.jsx("button",{type:"button",className:"secondary tiny",disabled:!w,onClick:()=>g?u(d.slice(1)):c(d),children:r("callflow_open")})]})]}),x.jsxs("div",{className:"callflow-io",children:[x.jsx("strong",{children:r("callflow_in")}),h.map((_,C)=>x.jsxs("div",{className:"io-row",children:[x.jsx("input",{type:"text",placeholder:r("callflow_in_name"),value:_.name,onChange:E=>v(C,{name:E.target.value})}),x.jsx("span",{children:"="}),x.jsx("input",{type:"text",placeholder:r("callflow_in_value"),value:_.value,onChange:E=>v(C,{value:E.target.value})}),x.jsx("button",{className:"danger tiny",onClick:()=>a({...t,in:h.filter((E,N)=>N!==C)}),children:"✕"})]},C)),x.jsx("button",{className:"secondary tiny",onClick:()=>a({...t,in:[...h,{name:"",value:""}]}),children:r("callflow_add_in")})]}),x.jsxs("div",{className:"callflow-io",children:[x.jsx("strong",{children:r("callflow_out")}),m.map((_,C)=>x.jsxs("div",{className:"io-row",children:[x.jsx("input",{type:"text",placeholder:r("callflow_out_from"),value:_.from,onChange:E=>y(C,{from:E.target.value})}),x.jsx("span",{children:"→"}),x.jsx("input",{type:"text",placeholder:r("callflow_out_to"),value:_.to,onChange:E=>y(C,{to:E.target.value})}),x.jsx("button",{className:"danger tiny",onClick:()=>a({...t,out:m.filter((E,N)=>N!==C)}),children:"✕"})]},C)),x.jsx("button",{className:"secondary tiny",onClick:()=>a({...t,out:[...m,{from:"",to:""}]}),children:r("callflow_add_out")})]})]})}function _k({data:t}){const r=t,{step:i,schema:l,lang:a,t:u}=r,c=l.step_types.find(g=>g.type===i.type),d=im(l,i.type),h=sm(l,i),m=g=>{const w={...i};for(const[_,C]of Object.entries(g))C===void 0||C===""?delete w[_]:w[_]=C;r.onChange(w)},v=i.branches??[Fu()],y=(g,w)=>r.onChange({...i,branches:v.map((_,C)=>C===g?w:_)});return x.jsxs("div",{className:"step-node cat-"+((c==null?void 0:c.category)??"x")+(i.enabled===!1?" disabled":""),children:[x.jsx(ho,{type:"target",position:we.Top,id:"in"}),x.jsxs("div",{className:"node-head",children:[x.jsx("input",{type:"checkbox",className:"nodrag",checked:i.enabled!==!1,title:u("enabled_title"),onChange:g=>r.onChange({...i,enabled:g.target.checked?void 0:!1})}),x.jsx("select",{className:"nodrag type-select",value:i.type,onChange:g=>r.onChange(ey(l,i,g.target.value)),children:l.step_types.map(g=>x.jsx("option",{value:g.type,children:Cr(g,a)},g.type))}),x.jsx("span",{className:"spacer"}),x.jsx("button",{className:"danger nodrag",onClick:r.onDelete,children:"✕"})]}),x.jsxs("div",{className:"node-subhead",children:[x.jsx("input",{type:"text",className:"nodrag label-input",placeholder:u("label_ph"),value:i.label??"",onChange:g=>r.onChange({...i,label:g.target.value||void 0})}),x.jsxs("select",{className:"nodrag",value:i.on_error==="continue"?"continue":"stop",onChange:g=>r.onChange({...i,on_error:g.target.value==="continue"?"continue":void 0}),children:[x.jsx("option",{value:"stop",children:u("on_error_stop")}),x.jsx("option",{value:"continue",children:u("on_error_continue")})]})]}),x.jsxs("div",{className:"node-body nodrag",children:[!c&&x.jsxs("div",{className:"hint",children:[u("unknown_step"),": ",i.type]}),c&&x.jsx(am,{values:i,fields:c.fields,lang:a,showScope:d==="loop"||i.type==="extract_row",onChange:m}),i.type==="extract_row"&&x.jsx(xk,{fields:i.fields??[],lang:a,t:u,onChange:g=>r.onChange({...i,fields:g})}),i.type==="call_flow"&&x.jsx(wk,{step:i,t:u,subflowTargets:r.subflowTargets??[],externalFlows:r.externalFlows??[],onChange:r.onChange,onOpenSubflow:r.onOpenSubflow??(()=>{}),onOpenExternal:r.onOpenExternal??(()=>{})}),d==="if"&&x.jsxs("div",{className:"branches nodrag",children:[v.map((g,w)=>x.jsxs("div",{className:"branch",children:[x.jsxs("div",{className:"branch-head",children:[x.jsx("strong",{children:u("branch_case",{n:w+1})}),v.length>1&&x.jsx("button",{className:"danger tiny",onClick:()=>r.onChange({...i,branches:v.filter((_,C)=>C!==w)}),children:u("remove_branch")})]}),x.jsx(vk,{condition:g.condition,schema:l,lang:a,t:u,showScope:!0,onChange:_=>y(w,{condition:_})})]},w)),x.jsx("button",{className:"secondary tiny",onClick:()=>r.onChange({...i,branches:[...v,Fu()]}),children:u("add_branch")})]})]}),x.jsx("div",{className:"node-outs",children:h.map((g,w)=>x.jsxs("div",{className:"out-col",children:[x.jsx("span",{className:"out-label",children:lm(g)||u("out_next")}),x.jsx(ho,{type:"source",position:we.Bottom,id:g,style:{left:`${(w+.5)/h.length*100}%`}})]},g))})]})}const um="application/rpa-step",cm="application/rpa-block",Sk=["navigation","interaction","data","control","files","desktop"],kk={navigation:{sv:"Navigering",en:"Navigation"},interaction:{sv:"Interaktion",en:"Interaction"},data:{sv:"Data / variabler",en:"Data / variables"},control:{sv:"Kontrollflöde",en:"Control flow"},files:{sv:"Filer",en:"Files"},desktop:{sv:"Desktop (Windows)",en:"Desktop (Windows)"}};function Ek({schema:t,lang:r,t:i,blocksRefreshKey:l,onSaveSelectionAsBlock:a,onAddStep:u,onInsertBlock:c}){const[d,h]=D.useState("steps"),[m,v]=D.useState(""),[y,g]=D.useState(new Set),[w,_]=D.useState([]);D.useEffect(()=>{He.listBlocks().then(_).catch(()=>_([]))},[l]);const C=D.useMemo(()=>{var I;const E=m.trim().toLowerCase(),N={};for(const k of t.step_types){const M=Cr(k,r).toLowerCase();E&&!M.includes(E)&&!k.type.includes(E)||(N[I=k.category]??(N[I]=[])).push(k)}return Sk.filter(k=>{var M;return(M=N[k])==null?void 0:M.length}).map(k=>({cat:k,steps:N[k]}))},[t,r,m]);return x.jsxs("div",{className:"palette",children:[x.jsxs("div",{className:"palette-tabs",children:[x.jsx("button",{className:d==="steps"?"on":"",onClick:()=>h("steps"),children:i("palette")}),x.jsx("button",{className:d==="blocks"?"on":"",onClick:()=>h("blocks"),children:i("palette_blocks")})]}),d==="steps"&&x.jsxs(x.Fragment,{children:[x.jsx("input",{className:"palette-search",placeholder:i("palette_search"),value:m,onChange:E=>v(E.target.value)}),x.jsx("div",{className:"palette-scroll",children:C.map(({cat:E,steps:N})=>{var k;const I=y.has(E)&&!m;return x.jsxs("div",{className:"palette-group",children:[x.jsxs("button",{className:"palette-group-head",onClick:()=>g(M=>{const F=new Set(M);return F.has(E)?F.delete(E):F.add(E),F}),children:[I?"▸":"▾"," ",((k=kk[E])==null?void 0:k[r])??E]}),!I&&N.map(M=>x.jsxs("div",{className:"palette-item cat-"+M.category,draggable:!0,title:(M.help??"")+"  ·  "+i("palette_click_add"),onDragStart:F=>{F.dataTransfer.setData(um,M.type),F.dataTransfer.setData("text/plain",M.type),F.dataTransfer.effectAllowed="copy"},onDoubleClick:()=>u(M.type),children:[Cr(M,r),x.jsx("button",{className:"palette-add",title:i("palette_click_add"),onClick:()=>u(M.type),children:"+"})]},M.type))]},E)})})]}),d==="blocks"&&x.jsxs("div",{className:"palette-scroll",children:[x.jsx("button",{className:"secondary palette-save-block",onClick:a,children:i("block_save_selection")}),w.length===0&&x.jsx("p",{className:"hint",children:i("block_none")}),w.map(E=>x.jsxs("div",{className:"palette-block",draggable:!0,title:E.description,onDragStart:N=>{N.dataTransfer.setData(cm,E.name),N.dataTransfer.setData("text/plain",E.name),N.dataTransfer.effectAllowed="copy"},onDoubleClick:()=>c(E.name),children:[x.jsxs("div",{className:"palette-block-name",children:[E.name,x.jsx("button",{className:"palette-add",title:i("block_insert"),onClick:()=>c(E.name),children:i("block_insert")})]}),x.jsx("div",{className:"hint",children:E.description||`${E.step_count} steg`})]},E.name))]})]})}const Nk={step:_k},Ck=D.forwardRef(function(r,i){return x.jsx(tm,{children:x.jsx(Mk,{...r,innerRef:i})})});function Mk({graph:t,schema:r,lang:i,t:l,subflowTargets:a,externalFlows:u,onOpenSubflow:c,onOpenExternal:d,onChange:h,onSelectionChange:m,innerRef:v}){const y=Cl(),g=D.useMemo(()=>el(t),[t]),[w,_]=D.useState(()=>jk(g.nodes,g.edges)),[C,E]=D.useState(()=>g.edges),N=D.useRef(!0);D.useEffect(()=>{if(N.current){N.current=!1;return}h({nodes:w,edges:C,start:Ou(w,C)})},[w,C,h]);const I=D.useCallback((b,R)=>_(z=>z.map(A=>A.id===b?R:A)),[]),k=D.useCallback(b=>{_(R=>R.filter(z=>z.id!==b)),E(R=>R.filter(z=>z.source!==b&&z.target!==b))},[]),M=D.useCallback(()=>{window.setTimeout(()=>y.fitView({duration:300,padding:.15}),60)},[y]);D.useImperativeHandle(v,()=>({addNode:b=>{_(R=>[...R,Au(b,R)]),M()},addNodeType:b=>{_(R=>[...R,Au(oo(r,b),R)]),M()},insertGraph:(b,R)=>{const z=tp(b,R);_(A=>[...A,...z.nodes.map((j,L)=>({...j,position:Pk(A,L,j.position)}))]),E(A=>[...A,...z.edges]),M()}}),[r,M]);const F=D.useMemo(()=>w.map(b=>({id:b.id,type:"step",position:b.position??{x:0,y:0},data:{step:b,schema:r,lang:i,t:l,onChange:R=>I(b.id,R),onDelete:()=>k(b.id),subflowTargets:a,externalFlows:u,onOpenSubflow:c,onOpenExternal:d}})),[w,r,i,l,I,k,a,u,c,d]),$=D.useMemo(()=>Ou(w,C),[w,C]),V=D.useMemo(()=>C.map(b=>{const R=b.sourceHandle&&b.sourceHandle!=="out"?b.sourceHandle:void 0;return{id:b.id,source:b.source,target:b.target,sourceHandle:b.sourceHandle??null,targetHandle:b.targetHandle??null,label:R?lm(R):void 0,animated:b.sourceHandle==="each",style:b.sourceHandle==="each"?{stroke:"#8a3ffc"}:void 0}}),[C]),W=D.useCallback(b=>{_(R=>{let z=R;for(const A of b){if(A.type==="position"&&A.position&&A.dragging){z===R&&(z=[...R]);const j=z.findIndex(L=>L.id===A.id);j>=0&&(z[j]={...z[j],position:{x:Math.round(A.position.x),y:Math.round(A.position.y)}})}A.type==="remove"&&(z=z.filter(j=>j.id!==A.id))}return z})},[]),X=D.useCallback(b=>{const R=b.filter(z=>z.type==="remove").map(z=>z.id);R.length&&E(z=>z.filter(A=>!R.includes(A.id)))},[]),ee=D.useCallback(b=>{if(!b.source||!b.target||b.source===b.target||(b.targetHandle??"in")!=="in")return!1;const z=b.sourceHandle??"out",A=w.find(j=>j.id===b.source);return!(!A||!sm(r,A).includes(z)||C.some(j=>j.source===b.source&&(j.sourceHandle??"out")===z))},[w,C,r]),q=D.useCallback(b=>{ee(b)&&E(R=>[...R,{id:`e-${Math.random().toString(36).slice(2,10)}`,source:b.source,target:b.target,sourceHandle:b.sourceHandle??"out",targetHandle:"in"}])},[ee]),te=D.useRef(""),J=D.useCallback(({nodes:b})=>{const R=b.map(z=>z.id).sort().join(",");R!==te.current&&(te.current=R,m(R?R.split(","):[]))},[m]),P=D.useCallback(b=>{b.preventDefault(),b.dataTransfer.dropEffect="copy"},[]),U=D.useCallback(async b=>{var j;b.preventDefault();const R=b.dataTransfer.getData(um),z=b.dataTransfer.getData(cm);let A={x:0,y:0};try{A=y.screenToFlowPosition({x:b.clientX,y:b.clientY})}catch{}if(R){_(L=>[...L,oo(r,R,{x:Math.round(A.x),y:Math.round(A.y)})]);return}if(z)try{const L=await He.getBlock(z),ne=tp(L.nodes??[],L.edges??[]),Z=((j=ne.nodes[0])==null?void 0:j.position)??{x:0,y:0};_(le=>[...le,...ne.nodes.map(fe=>{var ue,Q;return{...fe,position:{x:Math.round(A.x+((((ue=fe.position)==null?void 0:ue.x)??0)-Z.x)),y:Math.round(A.y+((((Q=fe.position)==null?void 0:Q.y)??0)-Z.y))}}})]),E(le=>[...le,...ne.edges])}catch{}},[y,r]),B=D.useCallback(()=>{_(b=>{const R=mh(b,C);return b.map(z=>({...z,position:R[z.id]??z.position}))}),M()},[C,M]);return x.jsx("div",{className:"canvas",children:x.jsxs(OS,{nodes:F,edges:V,nodeTypes:Nk,onNodesChange:W,onEdgesChange:X,onConnect:q,isValidConnection:ee,onSelectionChange:J,onDragOver:P,onDrop:U,nodesConnectable:!0,fitView:!0,minZoom:.2,proOptions:{hideAttribution:!0},children:[x.jsx(US,{}),x.jsx(fk,{pannable:!0,zoomable:!0}),x.jsx(qS,{}),x.jsxs(ji,{position:"top-left",className:"canvas-panel",children:[x.jsx("button",{className:"secondary",onClick:()=>{_(b=>[...b,Au(oo(r,"goto"),b)]),M()},children:l("add_step")}),x.jsx("button",{className:"secondary",onClick:B,children:l("relayout")}),$&&x.jsx("span",{className:"canvas-start-hint",children:l("start_node")})]})]})})}function jk(t,r){if(t.length===0)return[];const i=t.some(c=>!c.position),l=t.map(c=>{var d;return((d=c.position)==null?void 0:d.x)??0}),a=Math.max(...l)-Math.min(...l),u=t.length>3&&a<120;if(i||u){const c=mh(t,r);return t.map(d=>({...d,position:c[d.id]??d.position??{x:0,y:0}}))}return t.map(c=>({...c}))}function Au(t,r){if(t.position)return t;if(r.length===0)return{...t,position:{x:0,y:0}};const i=r[r.length-1].position??{x:0},l=r.reduce((a,u)=>{var c;return Math.max(a,((c=u.position)==null?void 0:c.y)??0)},0);return{...t,position:{x:i.x,y:l+230}}}function Pk(t,r,i){const l=t.reduce((u,c)=>{var d;return Math.max(u,((d=c.position)==null?void 0:d.y)??0)},0),a=t.length?l+230:0;return{x:(i==null?void 0:i.x)??0,y:a+r*230}}function Ik({t,subflows:r,active:i,running:l,onSelect:a,onAdd:u,onRename:c,onDelete:d,onRunSubflow:h}){const[m,v]=D.useState(null);return x.jsxs("div",{className:"canvas-tabs",children:[x.jsx("button",{className:"tab"+(i==="main"?" on":""),onClick:()=>a("main"),children:t("tab_main")}),r.map(y=>x.jsxs("div",{className:"tab tab-sub"+(i===y.id?" on":""),children:[m===y.id?x.jsx("input",{autoFocus:!0,defaultValue:y.name,onBlur:g=>{c(y.id,g.target.value.trim()||y.name),v(null)},onKeyDown:g=>{g.key==="Enter"&&g.target.blur(),g.key==="Escape"&&v(null)}}):x.jsx("button",{className:"tab-label",onClick:()=>a(y.id),onDoubleClick:()=>v(y.id),children:y.name}),i===y.id&&x.jsxs(x.Fragment,{children:[x.jsx("button",{className:"tab-icon",title:t("tab_run"),disabled:l,onClick:()=>h(y.id),children:"▶"}),x.jsx("button",{className:"tab-icon",title:t("remove"),onClick:()=>d(y.id),children:"✕"})]})]},y.id)),x.jsx("button",{className:"tab tab-add",title:t("tab_add"),onClick:u,children:"+"})]})}function Tk({t,runId:r,run:i}){const l=D.useRef(null);D.useEffect(()=>{l.current&&(l.current.scrollTop=l.current.scrollHeight)},[i==null?void 0:i.logs]);const a=i==null?void 0:i.status;return x.jsxs("div",{className:"panel",children:[x.jsxs("div",{className:"panel-head",children:[x.jsx("strong",{children:t("run_log")}),a&&x.jsx("span",{className:"badge badge-"+a,children:t(a==="running"?"status_running":a==="done"?"status_done":"status_error")}),x.jsx("span",{className:"spacer"}),(i==null?void 0:i.browser_open)&&r&&x.jsx("button",{className:"secondary",onClick:()=>He.closeBrowser(r),children:t("close_browser")}),(i==null?void 0:i.trace_ready)&&r&&x.jsx("button",{className:"secondary",onClick:()=>He.showTrace(r),children:t("show_trace")})]}),x.jsx("pre",{className:"log",ref:l,children:((i==null?void 0:i.logs)??[]).join(`
+`)})]})}function Rk(t,r){return Array.isArray(r)?t("var_list",{n:r.length}):r&&typeof r=="object"?t("var_object"):typeof r=="string"?t("var_text",{n:r.length}):typeof r}function zk({t,vars:r}){const[i,l]=D.useState(new Set),a=Object.keys(r??{});return x.jsxs("div",{className:"panel",children:[x.jsx("strong",{children:t("variables")}),x.jsx("p",{className:"hint",children:t("vars_hint")}),a.length===0&&x.jsx("p",{className:"hint",children:t("no_vars")}),a.map(u=>{const c=i.has(u),d=r[u];return x.jsxs("div",{className:"var-row",children:[x.jsxs("div",{className:"var-head",onClick:()=>l(h=>{const m=new Set(h);return m.has(u)?m.delete(u):m.add(u),m}),children:[u," ",x.jsxs("span",{className:"hint",children:["(",Rk(t,d),")"]})]}),c&&x.jsx("pre",{className:"var-value",children:typeof d=="string"?d:JSON.stringify(d,null,2)})]},u)})]})}function bk({t,currentName:r,flow:i,onApply:l}){const[a,u]=D.useState(""),[c,d]=D.useState(!1),[h,m]=D.useState(null);async function v(){if(!(!a.trim()||!r)){d(!0),m(null);try{const y=await He.assist(r,a.trim(),i);l({nodes:y.nodes,edges:y.edges,start:y.start??null,settings:y.settings}),m({text:t("assist_applied")+(y.explanation?`
+
+`+y.explanation:""),error:!1})}catch(y){if(y instanceof qn&&y.status===501)m({text:t("assist_unavailable"),error:!0});else{const g=y instanceof qn?String(y.detail):String(y);m({text:t("assist_failed",{msg:g}),error:!0})}}finally{d(!1)}}}return x.jsxs("div",{className:"panel",children:[x.jsx("strong",{children:t("assist_title")}),x.jsx("p",{className:"hint",children:t("assist_hint")}),x.jsx("textarea",{rows:3,placeholder:t("assist_ph"),value:a,onChange:y=>u(y.target.value)}),x.jsx("button",{onClick:v,disabled:c||!r,children:t(c?"assist_working":"assist_btn")}),h&&x.jsx("p",{className:"assist-msg"+(h.error?" error":""),children:h.text})]})}function Lk({open:t,schema:r,lang:i,t:l,settings:a,onClose:u,onSave:c}){const d=D.useRef(null);D.useEffect(()=>{const m=d.current;m&&(t&&!m.open&&m.showModal(),!t&&m.open&&m.close())},[t]);function h(m){m.preventDefault();const v=m.currentTarget,y={};for(const g of r.settings){const w=v.elements.namedItem(g.key);w&&(g.kind==="bool"?y[g.key]=w.checked:g.kind==="number"?y[g.key]=Number(w.value)||Number(g.default)||0:y[g.key]=w.value||String(g.default))}c(y)}return x.jsx("dialog",{ref:d,onClose:u,children:x.jsxs("form",{onSubmit:h,method:"dialog",children:[x.jsx("h2",{children:l("settings")}),x.jsx("p",{className:"hint",children:l("settings_hint")}),x.jsx("div",{className:"fields",children:r.settings.map(m=>x.jsxs("label",{className:"field"+(m.kind==="bool"?" field-bool":""),children:[x.jsx("span",{children:Cr(m,i)}),m.kind==="bool"?x.jsx("input",{type:"checkbox",name:m.key,defaultChecked:a[m.key]===!0}):x.jsx("input",{type:m.kind==="number"?"number":"text",name:m.key,defaultValue:String(a[m.key]??m.default)})]},m.key))}),x.jsxs("div",{className:"dialog-actions",children:[x.jsx("button",{type:"button",className:"secondary",onClick:u,children:l("cancel")}),x.jsx("button",{type:"submit",children:l("save")})]})]})})}function Dk({open:t,t:r,onClose:i,onCreateStep:l}){const a=D.useRef(null),[u,c]=D.useState([]),[d,h]=D.useState(""),[m,v]=D.useState([]),[y,g]=D.useState(null),[w,_]=D.useState(!1);D.useEffect(()=>{const I=a.current;I&&(t&&!I.open&&(I.showModal(),g(null),v([]),He.desktopWindows().then(k=>{c(k),k.length&&h(k[0])}).catch(k=>g(k instanceof qn&&k.status===501?r("inspect_unavailable"):String(k)))),!t&&I.open&&I.close())},[t,r]);async function C(){if(d){_(!0),g(null);try{v(await He.inspectWindow(d))}catch(I){g(I instanceof qn?String(I.detail):String(I))}finally{_(!1)}}}function E(I){return I.auto_id?{by:"auto_id",value:I.auto_id}:I.name?{by:"name",value:I.name}:I.class_name?{by:"class_name",value:I.class_name}:{by:"name",value:""}}function N(I,k){const M=E(I),F={type:k,id:wr(),by:M.by,value:M.value};I.control_type&&(F.control_type=I.control_type),k==="desktop_type"&&(F.text=""),l(F)}return x.jsxs("dialog",{ref:a,onClose:i,className:"inspect-dialog",children:[x.jsx("h2",{children:r("inspect_window")}),x.jsx("p",{className:"hint",children:r("inspect_hint")}),x.jsxs("div",{className:"inspect-controls",children:[x.jsxs("select",{value:d,onChange:I=>h(I.target.value),children:[u.length===0&&x.jsx("option",{value:"",children:r("inspect_none")}),u.map(I=>x.jsx("option",{value:I,children:I},I))]}),x.jsx("button",{onClick:C,disabled:w||!d,children:w?"…":r("inspect_load")}),x.jsx("span",{className:"spacer"}),x.jsx("button",{type:"button",className:"secondary",onClick:i,children:r("cancel")})]}),y&&x.jsx("p",{className:"assist-msg error",children:y}),m.length>0&&x.jsx("div",{className:"inspect-table",children:m.map((I,k)=>{const M=E(I);return x.jsxs("div",{className:"inspect-row",style:{paddingLeft:8+I.depth*14},children:[x.jsx("code",{className:"inspect-ct",children:I.control_type||"?"}),x.jsx("span",{className:"inspect-name",children:I.name||x.jsx("em",{children:"—"})}),I.auto_id&&x.jsxs("code",{className:"inspect-aid",children:["#",I.auto_id]}),x.jsx("span",{className:"spacer"}),x.jsx("button",{className:"secondary tiny",title:`${M.by}=${M.value}`,onClick:()=>{var F;return(F=navigator.clipboard)==null?void 0:F.writeText(`${M.by}=${M.value}`)},children:r("inspect_copy")}),x.jsx("button",{className:"secondary tiny",onClick:()=>N(I,"desktop_click"),children:r("inspect_make_click")}),x.jsx("button",{className:"secondary tiny",onClick:()=>N(I,"desktop_type"),children:r("inspect_make_type")})]},k)})})]})}function Ak({open:t,t:r,flow:i,flowName:l,onRun:a,onSaveSet:u,onClose:c}){const d=D.useRef(null),h=D.useMemo(()=>i.inputs??[],[i.inputs]),m=i.input_sets??{},v=Object.keys(m),[y,g]=D.useState(""),[w,_]=D.useState({}),[C,E]=D.useState([]);D.useEffect(()=>{const M=d.current;if(M){if(t&&!M.open){M.showModal();let F=ny(h);try{const $=JSON.parse(localStorage.getItem("rpa_runvars_"+l)||"{}");F={...F,...$}}catch{}_(F),g(""),E([])}!t&&M.open&&M.close()}},[t,h,l]);function N(M){g(M),M&&m[M]&&_(F=>({...F,...m[M]}))}function I(){const M=np(w,C);try{localStorage.setItem("rpa_runvars_"+l,JSON.stringify(M))}catch{}a(M),c()}function k(){const M=prompt(r("runp_set_name_prompt"));M&&u(M,np(w,C))}return x.jsxs("dialog",{ref:d,onClose:c,children:[x.jsx("h2",{children:r("runp_title")}),x.jsx("p",{className:"hint",children:r("runp_hint")}),v.length>0&&x.jsxs("label",{className:"field",children:[x.jsx("span",{children:r("runp_set")}),x.jsxs("select",{value:y,onChange:M=>N(M.target.value),children:[x.jsx("option",{value:"",children:r("runp_set_none")}),v.map(M=>x.jsx("option",{value:M,children:M},M))]})]}),x.jsx("div",{className:"fields",children:h.map(M=>{const F=ty(M.options),$=w[M.name]??"";return x.jsxs("label",{className:"field",title:M.description,children:[x.jsx("span",{children:M.label||M.name}),F.length>0?x.jsxs("select",{value:$,onChange:V=>_(W=>({...W,[M.name]:V.target.value})),children:[!F.includes($)&&x.jsx("option",{value:$,children:$||"—"}),F.map(V=>x.jsx("option",{value:V,children:V},V))]}):x.jsx("input",{type:"text",value:$,onChange:V=>_(W=>({...W,[M.name]:V.target.value}))})]},M.name)})}),x.jsxs("div",{className:"adhoc",children:[C.map((M,F)=>x.jsxs("div",{className:"adhoc-row",children:[x.jsx("input",{type:"text",placeholder:r("runp_var_name"),value:M.name,onChange:$=>E(V=>V.map((W,X)=>X===F?{...W,name:$.target.value}:W))}),x.jsx("input",{type:"text",placeholder:r("runp_var_value"),value:M.value,onChange:$=>E(V=>V.map((W,X)=>X===F?{...W,value:$.target.value}:W))}),x.jsx("button",{className:"danger tiny",onClick:()=>E($=>$.filter((V,W)=>W!==F)),children:"✕"})]},F)),x.jsx("button",{className:"secondary tiny",onClick:()=>E(M=>[...M,{name:"",value:""}]),children:r("runp_add_var")})]}),x.jsxs("div",{className:"dialog-actions",children:[x.jsx("button",{type:"button",className:"secondary",onClick:k,children:r("runp_save_set")}),x.jsx("span",{className:"spacer"}),x.jsx("button",{type:"button",className:"secondary",onClick:c,children:r("cancel")}),x.jsx("button",{type:"button",onClick:I,children:r("run")})]})]})}function $k({open:t,t:r,lang:i,schema:l,flow:a,onChange:u,onClose:c}){const d=D.useRef(null),[h,m]=D.useState([]),[v,y]=D.useState({});D.useEffect(()=>{const C=d.current;C&&(t&&!C.open&&(C.showModal(),m((a.inputs??[]).map(E=>({...E}))),y({...a.input_sets??{}})),!t&&C.open&&C.close())},[t,a.inputs,a.input_sets]);const g=l.input_fields??[];function w(C,E){m(N=>N.map((I,k)=>k===C?{...I,...E}:I))}function _(){const C=h.filter(E=>(E.name??"").trim());u({inputs:C,input_sets:v}),c()}return x.jsxs("dialog",{ref:d,onClose:c,children:[x.jsx("h2",{children:r("inputs_title")}),x.jsx("p",{className:"hint",children:r("inputs_hint")}),x.jsxs("div",{className:"inputs-list",children:[h.map((C,E)=>x.jsxs("div",{className:"input-row",children:[x.jsx("div",{className:"fields",children:g.map(N=>x.jsxs("label",{className:"field",title:N.help,children:[x.jsx("span",{children:Cr(N,i)}),x.jsx("input",{type:"text",value:String(C[N.key]??""),onChange:I=>w(E,{[N.key]:I.target.value})})]},N.key))}),x.jsx("button",{className:"danger tiny",onClick:()=>m(N=>N.filter((I,k)=>k!==E)),children:r("remove")})]},E)),x.jsx("button",{className:"secondary",onClick:()=>m(C=>[...C,{name:""}]),children:r("inputs_add")})]}),Object.keys(v).length>0&&x.jsxs(x.Fragment,{children:[x.jsx("strong",{className:"inputs-sets-title",children:r("inputs_sets")}),Object.entries(v).map(([C,E])=>x.jsxs("div",{className:"set-row",children:[x.jsxs("span",{children:[C," ",x.jsxs("span",{className:"hint",children:["(",Object.keys(E).length,")"]})]}),x.jsx("span",{className:"spacer"}),x.jsx("button",{className:"secondary tiny",onClick:()=>{const N=prompt(r("inputs_set_rename"),C);N&&N!==C&&y(({[C]:I,...k})=>({...k,[N]:I}))},children:r("inputs_set_rename")}),x.jsx("button",{className:"danger tiny",onClick:()=>y(({[C]:N,...I})=>I),children:r("remove")})]},C))]}),x.jsxs("div",{className:"dialog-actions",children:[x.jsx("button",{type:"button",className:"secondary",onClick:c,children:r("cancel")}),x.jsx("button",{type:"button",onClick:_,children:r("save")})]})]})}const $u={format:"graph",nodes:[],edges:[],start:null,settings:{},layout:{},inputs:[],input_sets:{},subflows:[]};function Ok(){var mt;const[t,r]=D.useState(null),[i,l]=D.useState(()=>localStorage.getItem("rpa_lang")||"en"),[a,u]=D.useState(()=>localStorage.getItem("rpa_close_mode")||"always"),[c,d]=D.useState([]),[h,m]=D.useState(null),[v,y]=D.useState($u),[g,w]=D.useState(!1),[_,C]=D.useState(0),[E,N]=D.useState(!1),[I,k]=D.useState(!1),[M,F]=D.useState(!1),[$,V]=D.useState(!1),[W,X]=D.useState(null),[ee,q]=D.useState("main"),[te,J]=D.useState([]),[P,U]=D.useState(0),[B,b]=D.useState(null),[R,z]=D.useState(null),[A,j]=D.useState(null),L=D.useRef(null),ne=D.useRef(null),Z=D.useMemo(()=>q0(i),[i]);D.useEffect(()=>{localStorage.setItem("rpa_lang",i),document.title=Z("page_title")},[i]),D.useEffect(()=>localStorage.setItem("rpa_close_mode",a),[a]),D.useEffect(()=>{(async()=>{const ce=await He.schema();r(ce);const he=await He.listFlows();if(d(he),he.length)await le(he[0]);else{const Me=oo(ce,"goto",{x:0,y:0});Me.url="https://www.1177.se/";const Xe=oo(ce,"wait_for_login",{x:300,y:0}),jt=el({nodes:[Me,Xe],edges:[{id:"e0",source:Me.id,target:Xe.id,sourceHandle:"out",targetHandle:"in"}],start:Me.id});m("standard"),y(jt),w(!0),C(Ze=>Ze+1)}})()},[]);const le=D.useCallback(async ce=>{const he=el(await He.getFlow(ce));m(ce),y(he),q("main"),w(!1),C(Me=>Me+1)},[]),fe=v.subflows??[],ue=ee==="main"?null:fe.find(ce=>ce.id===ee)??null,Q=D.useMemo(()=>ue?{nodes:ue.nodes,edges:ue.edges,start:ue.start}:{nodes:v.nodes,edges:v.edges,start:v.start},[ue,v.nodes,v.edges,v.start]),ie=D.useCallback(ce=>{y(he=>ee==="main"?{...he,nodes:ce.nodes,edges:ce.edges,start:ce.start}:{...he,subflows:(he.subflows??[]).map(Me=>Me.id===ee?{...Me,nodes:ce.nodes,edges:ce.edges,start:ce.start}:Me)}),w(!0)},[ee]),pe=D.useCallback(ce=>{q(ce),C(he=>he+1)},[]);function _e(){const ce=prompt(Z("subflow_name_prompt"));if(!ce)return;const he={id:wr(),name:ce.trim(),nodes:[],edges:[],start:null,inputs:[]};y(Me=>({...Me,subflows:[...Me.subflows??[],he]})),w(!0),pe(he.id)}function xe(ce,he){y(Me=>({...Me,subflows:(Me.subflows??[]).map(Xe=>Xe.id===ce?{...Xe,name:he}:Xe)})),w(!0)}function Se(ce){const he=[v,...v.subflows??[]].some(Xe=>(Xe.nodes??[]).some(jt=>jt.type==="call_flow"&&jt.target==="#"+ce)),Me=Z(he?"subflow_in_use":"subflow_delete_confirm");confirm(Me)&&(y(Xe=>({...Xe,subflows:(Xe.subflows??[]).filter(jt=>jt.id!==ce)})),w(!0),pe("main"))}const Ne=D.useCallback(ce=>{g&&!confirm(Z("leave_unsaved"))||le(ce)},[g,le,Z]),je=D.useCallback(ce=>{var he;return(he=ne.current)==null?void 0:he.addNodeType(ce)},[]),Ie=D.useCallback(async ce=>{var he;try{const Me=await He.getBlock(ce);(he=ne.current)==null||he.insertGraph(Me.nodes??[],Me.edges??[])}catch{}},[]);async function Te(){const ce=Q.nodes.filter(Ze=>te.includes(Ze.id));if(ce.length===0){b(Z("block_select_first"));return}const he=new Set(ce.map(Ze=>Ze.id)),Me=(Q.edges??[]).filter(Ze=>he.has(Ze.source)&&he.has(Ze.target)),Xe=prompt(Z("block_name_prompt"));if(!Xe)return;const jt=prompt(Z("block_desc_prompt"))||"";try{await He.saveBlock(Xe,{name:Xe,description:jt,nodes:ce,edges:Me,settings:{}}),U(Ze=>Ze+1),b(Z("block_saved"))}catch(Ze){const go=Ze instanceof qn?JSON.stringify(Ze.detail):String(Ze);b(Z("save_failed",{msg:go}))}}const nt=D.useCallback(async()=>{if(!h)return!1;try{await He.saveFlow(h,v),w(!1);const ce=await He.listFlows();return d(ce),!0}catch(ce){const he=ce instanceof qn?JSON.stringify(ce.detail):String(ce);return b(Z("save_failed",{msg:he})),!1}},[h,v,Z]);async function ut(){const ce=prompt(Z("new_flow_prompt"));if(!ce||!t)return;const he={...$u};m(ce),y(he),C(Me=>Me+1);try{await He.saveFlow(ce,he),d(await He.listFlows()),w(!1)}catch{w(!0)}}async function rt(){if(!h||!confirm(Z("delete_flow_confirm",{name:h})))return;await He.deleteFlow(h);const ce=await He.listFlows();d(ce),ce.length?await le(ce[0]):(m(null),y($u),C(he=>he+1))}const qe=()=>{L.current&&window.clearTimeout(L.current),L.current=null},At=D.useCallback(ce=>{He.run(ce).then(he=>{j(he),(he.status==="running"||he.browser_open)&&(L.current=window.setTimeout(()=>At(ce),1e3))})},[]);async function xt(ce,he){if(!h)return;await nt(),qe(),j(null);const{run_id:Me}=await He.runFlow(h,a,ce,he??void 0);z(Me),At(Me)}function $t(){h&&(X(null),ry(v)?V(!0):xt({}))}function ct(ce){var Me;if(!h)return;const he=fe.find(Xe=>Xe.id===ce);X(ce),(((Me=he==null?void 0:he.inputs)==null?void 0:Me.length)??0)>0?V(!0):xt({},ce)}const wt=W!=null?{...v,inputs:((mt=fe.find(ce=>ce.id===W))==null?void 0:mt.inputs)??[],input_sets:{}}:v;function gt(ce,he){y(Me=>({...Me,input_sets:{...Me.input_sets??{},[ce]:he}})),w(!0)}return D.useEffect(()=>qe,[]),t?x.jsxs("div",{className:"app",children:[x.jsx(iy,{t:Z,lang:i,setLang:l,flowNames:c,currentName:h,onSelect:le,onNew:ut,onDelete:rt,onSave:nt,onRun:$t,dirty:g,running:(A==null?void 0:A.status)==="running",closeMode:a,setCloseMode:u,onOpenSettings:()=>N(!0),onOpenInspect:()=>k(!0),onOpenInputs:()=>F(!0)}),x.jsxs("main",{children:[x.jsx(Ek,{schema:t,lang:i,t:Z,blocksRefreshKey:P,onSaveSelectionAsBlock:Te,onAddStep:je,onInsertBlock:Ie}),x.jsxs("div",{className:"canvas-col",children:[x.jsx(Ik,{t:Z,subflows:fe,active:ee,running:(A==null?void 0:A.status)==="running",onSelect:pe,onAdd:_e,onRename:xe,onDelete:Se,onRunSubflow:ct}),x.jsx(Ck,{ref:ne,graph:Q,schema:t,lang:i,t:Z,subflowTargets:fe.filter(ce=>ce.id!==ee).map(ce=>({id:ce.id,name:ce.name})),externalFlows:c.filter(ce=>ce!==h),onOpenSubflow:pe,onOpenExternal:Ne,onChange:ie,onSelectionChange:J},_+":"+ee)]}),x.jsxs("aside",{className:"side",children:[x.jsx(bk,{t:Z,currentName:h,flow:v,onApply:ce=>{y(he=>el({...ce,inputs:he.inputs,input_sets:he.input_sets})),w(!0),C(he=>he+1)}}),x.jsx(Tk,{t:Z,runId:R,run:A}),x.jsx(zk,{t:Z,vars:(A==null?void 0:A.vars)??{}})]})]}),x.jsx(Lk,{open:E,schema:t,lang:i,t:Z,settings:v.settings,onClose:()=>N(!1),onSave:ce=>{y(he=>({...he,settings:ce})),w(!0),N(!1)}}),x.jsx(Dk,{open:I,t:Z,onClose:()=>k(!1),onCreateStep:ce=>{var he;(he=ne.current)==null||he.addNode(ce),k(!1)}}),x.jsx($k,{open:M,t:Z,lang:i,schema:t,flow:v,onClose:()=>F(!1),onChange:({inputs:ce,input_sets:he})=>{y(Me=>({...Me,inputs:ce,input_sets:he})),w(!0)}}),x.jsx(Ak,{open:$,t:Z,flow:wt,flowName:W?`${h}#${W}`:h,onClose:()=>V(!1),onRun:ce=>xt(ce,W),onSaveSet:gt}),B&&x.jsx("div",{className:"toast",onClick:()=>b(null),children:B})]}):x.jsx("div",{className:"loading",children:"…"})}G0.createRoot(document.getElementById("root")).render(x.jsx(hh.StrictMode,{children:x.jsx(Ok,{})}));
diff --git a/webui/static/assets/index-BqrbpfOv.js b/webui/static/assets/index-BqrbpfOv.js
deleted file mode 100644
index d4d35eb..0000000
--- a/webui/static/assets/index-BqrbpfOv.js
+++ /dev/null
@@ -1,65 +0,0 @@
-(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))l(a);new MutationObserver(a=>{for(const u of a)if(u.type==="childList")for(const c of u.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&l(c)}).observe(document,{childList:!0,subtree:!0});function i(a){const u={};return a.integrity&&(u.integrity=a.integrity),a.referrerPolicy&&(u.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?u.credentials="include":a.crossOrigin==="anonymous"?u.credentials="omit":u.credentials="same-origin",u}function l(a){if(a.ep)return;a.ep=!0;const u=i(a);fetch(a.href,u)}})();function dh(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var xu={exports:{}},ti={},wu={exports:{}},je={};/**
- * @license React
- * react.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */var Vd;function V0(){if(Vd)return je;Vd=1;var t=Symbol.for("react.element"),r=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),l=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),u=Symbol.for("react.provider"),c=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),m=Symbol.for("react.memo"),v=Symbol.for("react.lazy"),y=Symbol.iterator;function g(P){return P===null||typeof P!="object"?null:(P=y&&P[y]||P["@@iterator"],typeof P=="function"?P:null)}var x={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},S=Object.assign,j={};function E(P,L,ee){this.props=P,this.context=L,this.refs=j,this.updater=ee||x}E.prototype.isReactComponent={},E.prototype.setState=function(P,L){if(typeof P!="object"&&typeof P!="function"&&P!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,P,L,"setState")},E.prototype.forceUpdate=function(P){this.updater.enqueueForceUpdate(this,P,"forceUpdate")};function N(){}N.prototype=E.prototype;function I(P,L,ee){this.props=P,this.context=L,this.refs=j,this.updater=ee||x}var k=I.prototype=new N;k.constructor=I,S(k,E.prototype),k.isPureReactComponent=!0;var M=Array.isArray,F=Object.prototype.hasOwnProperty,D={current:null},W={key:!0,ref:!0,__self:!0,__source:!0};function Y(P,L,ee){var te,ue={},de=null,fe=null;if(L!=null)for(te in L.ref!==void 0&&(fe=L.ref),L.key!==void 0&&(de=""+L.key),L)F.call(L,te)&&!W.hasOwnProperty(te)&&(ue[te]=L[te]);var G=arguments.length-2;if(G===1)ue.children=ee;else if(1<G){for(var ie=Array(G),he=0;he<G;he++)ie[he]=arguments[he+2];ue.children=ie}if(P&&P.defaultProps)for(te in G=P.defaultProps,G)ue[te]===void 0&&(ue[te]=G[te]);return{$$typeof:t,type:P,key:de,ref:fe,props:ue,_owner:D.current}}function K(P,L){return{$$typeof:t,type:P.type,key:L,ref:P.ref,props:P.props,_owner:P._owner}}function ne(P){return typeof P=="object"&&P!==null&&P.$$typeof===t}function Z(P){var L={"=":"=0",":":"=2"};return"$"+P.replace(/[=:]/g,function(ee){return L[ee]})}var J=/\/+/g;function V(P,L){return typeof P=="object"&&P!==null&&P.key!=null?Z(""+P.key):L.toString(36)}function C(P,L,ee,te,ue){var de=typeof P;(de==="undefined"||de==="boolean")&&(P=null);var fe=!1;if(P===null)fe=!0;else switch(de){case"string":case"number":fe=!0;break;case"object":switch(P.$$typeof){case t:case r:fe=!0}}if(fe)return fe=P,ue=ue(fe),P=te===""?"."+V(fe,0):te,M(ue)?(ee="",P!=null&&(ee=P.replace(J,"$&/")+"/"),C(ue,L,ee,"",function(he){return he})):ue!=null&&(ne(ue)&&(ue=K(ue,ee+(!ue.key||fe&&fe.key===ue.key?"":(""+ue.key).replace(J,"$&/")+"/")+P)),L.push(ue)),1;if(fe=0,te=te===""?".":te+":",M(P))for(var G=0;G<P.length;G++){de=P[G];var ie=te+V(de,G);fe+=C(de,L,ee,ie,ue)}else if(ie=g(P),typeof ie=="function")for(P=ie.call(P),G=0;!(de=P.next()).done;)de=de.value,ie=te+V(de,G++),fe+=C(de,L,ee,ie,ue);else if(de==="object")throw L=String(P),Error("Objects are not valid as a React child (found: "+(L==="[object Object]"?"object with keys {"+Object.keys(P).join(", ")+"}":L)+"). If you meant to render a collection of children, use an array instead.");return fe}function b(P,L,ee){if(P==null)return P;var te=[],ue=0;return C(P,te,"","",function(de){return L.call(ee,de,ue++)}),te}function $(P){if(P._status===-1){var L=P._result;L=L(),L.then(function(ee){(P._status===0||P._status===-1)&&(P._status=1,P._result=ee)},function(ee){(P._status===0||P._status===-1)&&(P._status=2,P._result=ee)}),P._status===-1&&(P._status=0,P._result=L)}if(P._status===1)return P._result.default;throw P._result}var U={current:null},z={transition:null},A={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:z,ReactCurrentOwner:D};function H(){throw Error("act(...) is not supported in production builds of React.")}return je.Children={map:b,forEach:function(P,L,ee){b(P,function(){L.apply(this,arguments)},ee)},count:function(P){var L=0;return b(P,function(){L++}),L},toArray:function(P){return b(P,function(L){return L})||[]},only:function(P){if(!ne(P))throw Error("React.Children.only expected to receive a single React element child.");return P}},je.Component=E,je.Fragment=i,je.Profiler=a,je.PureComponent=I,je.StrictMode=l,je.Suspense=h,je.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=A,je.act=H,je.cloneElement=function(P,L,ee){if(P==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+P+".");var te=S({},P.props),ue=P.key,de=P.ref,fe=P._owner;if(L!=null){if(L.ref!==void 0&&(de=L.ref,fe=D.current),L.key!==void 0&&(ue=""+L.key),P.type&&P.type.defaultProps)var G=P.type.defaultProps;for(ie in L)F.call(L,ie)&&!W.hasOwnProperty(ie)&&(te[ie]=L[ie]===void 0&&G!==void 0?G[ie]:L[ie])}var ie=arguments.length-2;if(ie===1)te.children=ee;else if(1<ie){G=Array(ie);for(var he=0;he<ie;he++)G[he]=arguments[he+2];te.children=G}return{$$typeof:t,type:P.type,key:ue,ref:de,props:te,_owner:fe}},je.createContext=function(P){return P={$$typeof:c,_currentValue:P,_currentValue2:P,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},P.Provider={$$typeof:u,_context:P},P.Consumer=P},je.createElement=Y,je.createFactory=function(P){var L=Y.bind(null,P);return L.type=P,L},je.createRef=function(){return{current:null}},je.forwardRef=function(P){return{$$typeof:d,render:P}},je.isValidElement=ne,je.lazy=function(P){return{$$typeof:v,_payload:{_status:-1,_result:P},_init:$}},je.memo=function(P,L){return{$$typeof:m,type:P,compare:L===void 0?null:L}},je.startTransition=function(P){var L=z.transition;z.transition={};try{P()}finally{z.transition=L}},je.unstable_act=H,je.useCallback=function(P,L){return U.current.useCallback(P,L)},je.useContext=function(P){return U.current.useContext(P)},je.useDebugValue=function(){},je.useDeferredValue=function(P){return U.current.useDeferredValue(P)},je.useEffect=function(P,L){return U.current.useEffect(P,L)},je.useId=function(){return U.current.useId()},je.useImperativeHandle=function(P,L,ee){return U.current.useImperativeHandle(P,L,ee)},je.useInsertionEffect=function(P,L){return U.current.useInsertionEffect(P,L)},je.useLayoutEffect=function(P,L){return U.current.useLayoutEffect(P,L)},je.useMemo=function(P,L){return U.current.useMemo(P,L)},je.useReducer=function(P,L,ee){return U.current.useReducer(P,L,ee)},je.useRef=function(P){return U.current.useRef(P)},je.useState=function(P){return U.current.useState(P)},je.useSyncExternalStore=function(P,L,ee){return U.current.useSyncExternalStore(P,L,ee)},je.useTransition=function(){return U.current.useTransition()},je.version="18.3.1",je}var Bd;function yi(){return Bd||(Bd=1,wu.exports=V0()),wu.exports}/**
- * @license React
- * react-jsx-runtime.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */var Ud;function B0(){if(Ud)return ti;Ud=1;var t=yi(),r=Symbol.for("react.element"),i=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,a=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,u={key:!0,ref:!0,__self:!0,__source:!0};function c(d,h,m){var v,y={},g=null,x=null;m!==void 0&&(g=""+m),h.key!==void 0&&(g=""+h.key),h.ref!==void 0&&(x=h.ref);for(v in h)l.call(h,v)&&!u.hasOwnProperty(v)&&(y[v]=h[v]);if(d&&d.defaultProps)for(v in h=d.defaultProps,h)y[v]===void 0&&(y[v]=h[v]);return{$$typeof:r,type:d,key:g,ref:x,props:y,_owner:a.current}}return ti.Fragment=i,ti.jsx=c,ti.jsxs=c,ti}var Wd;function U0(){return Wd||(Wd=1,xu.exports=B0()),xu.exports}var w=U0(),R=yi();const ph=dh(R);var Vs={},_u={exports:{}},yt={},Su={exports:{}},ku={};/**
- * @license React
- * scheduler.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */var Yd;function W0(){return Yd||(Yd=1,(function(t){function r(z,A){var H=z.length;z.push(A);e:for(;0<H;){var P=H-1>>>1,L=z[P];if(0<a(L,A))z[P]=A,z[H]=L,H=P;else break e}}function i(z){return z.length===0?null:z[0]}function l(z){if(z.length===0)return null;var A=z[0],H=z.pop();if(H!==A){z[0]=H;e:for(var P=0,L=z.length,ee=L>>>1;P<ee;){var te=2*(P+1)-1,ue=z[te],de=te+1,fe=z[de];if(0>a(ue,H))de<L&&0>a(fe,ue)?(z[P]=fe,z[de]=H,P=de):(z[P]=ue,z[te]=H,P=te);else if(de<L&&0>a(fe,H))z[P]=fe,z[de]=H,P=de;else break e}}return A}function a(z,A){var H=z.sortIndex-A.sortIndex;return H!==0?H:z.id-A.id}if(typeof performance=="object"&&typeof performance.now=="function"){var u=performance;t.unstable_now=function(){return u.now()}}else{var c=Date,d=c.now();t.unstable_now=function(){return c.now()-d}}var h=[],m=[],v=1,y=null,g=3,x=!1,S=!1,j=!1,E=typeof setTimeout=="function"?setTimeout:null,N=typeof clearTimeout=="function"?clearTimeout:null,I=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function k(z){for(var A=i(m);A!==null;){if(A.callback===null)l(m);else if(A.startTime<=z)l(m),A.sortIndex=A.expirationTime,r(h,A);else break;A=i(m)}}function M(z){if(j=!1,k(z),!S)if(i(h)!==null)S=!0,$(F);else{var A=i(m);A!==null&&U(M,A.startTime-z)}}function F(z,A){S=!1,j&&(j=!1,N(Y),Y=-1),x=!0;var H=g;try{for(k(A),y=i(h);y!==null&&(!(y.expirationTime>A)||z&&!Z());){var P=y.callback;if(typeof P=="function"){y.callback=null,g=y.priorityLevel;var L=P(y.expirationTime<=A);A=t.unstable_now(),typeof L=="function"?y.callback=L:y===i(h)&&l(h),k(A)}else l(h);y=i(h)}if(y!==null)var ee=!0;else{var te=i(m);te!==null&&U(M,te.startTime-A),ee=!1}return ee}finally{y=null,g=H,x=!1}}var D=!1,W=null,Y=-1,K=5,ne=-1;function Z(){return!(t.unstable_now()-ne<K)}function J(){if(W!==null){var z=t.unstable_now();ne=z;var A=!0;try{A=W(!0,z)}finally{A?V():(D=!1,W=null)}}else D=!1}var V;if(typeof I=="function")V=function(){I(J)};else if(typeof MessageChannel<"u"){var C=new MessageChannel,b=C.port2;C.port1.onmessage=J,V=function(){b.postMessage(null)}}else V=function(){E(J,0)};function $(z){W=z,D||(D=!0,V())}function U(z,A){Y=E(function(){z(t.unstable_now())},A)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(z){z.callback=null},t.unstable_continueExecution=function(){S||x||(S=!0,$(F))},t.unstable_forceFrameRate=function(z){0>z||125<z?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):K=0<z?Math.floor(1e3/z):5},t.unstable_getCurrentPriorityLevel=function(){return g},t.unstable_getFirstCallbackNode=function(){return i(h)},t.unstable_next=function(z){switch(g){case 1:case 2:case 3:var A=3;break;default:A=g}var H=g;g=A;try{return z()}finally{g=H}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(z,A){switch(z){case 1:case 2:case 3:case 4:case 5:break;default:z=3}var H=g;g=z;try{return A()}finally{g=H}},t.unstable_scheduleCallback=function(z,A,H){var P=t.unstable_now();switch(typeof H=="object"&&H!==null?(H=H.delay,H=typeof H=="number"&&0<H?P+H:P):H=P,z){case 1:var L=-1;break;case 2:L=250;break;case 5:L=1073741823;break;case 4:L=1e4;break;default:L=5e3}return L=H+L,z={id:v++,callback:A,priorityLevel:z,startTime:H,expirationTime:L,sortIndex:-1},H>P?(z.sortIndex=H,r(m,z),i(h)===null&&z===i(m)&&(j?(N(Y),Y=-1):j=!0,U(M,H-P))):(z.sortIndex=L,r(h,z),S||x||(S=!0,$(F))),z},t.unstable_shouldYield=Z,t.unstable_wrapCallback=function(z){var A=g;return function(){var H=g;g=A;try{return z.apply(this,arguments)}finally{g=H}}}})(ku)),ku}var Xd;function Y0(){return Xd||(Xd=1,Su.exports=W0()),Su.exports}/**
- * @license React
- * react-dom.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */var Kd;function X0(){if(Kd)return yt;Kd=1;var t=yi(),r=Y0();function i(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,o=1;o<arguments.length;o++)n+="&args[]="+encodeURIComponent(arguments[o]);return"Minified React error #"+e+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var l=new Set,a={};function u(e,n){c(e,n),c(e+"Capture",n)}function c(e,n){for(a[e]=n,e=0;e<n.length;e++)l.add(n[e])}var d=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),h=Object.prototype.hasOwnProperty,m=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,v={},y={};function g(e){return h.call(y,e)?!0:h.call(v,e)?!1:m.test(e)?y[e]=!0:(v[e]=!0,!1)}function x(e,n,o,s){if(o!==null&&o.type===0)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return s?!1:o!==null?!o.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function S(e,n,o,s){if(n===null||typeof n>"u"||x(e,n,o,s))return!0;if(s)return!1;if(o!==null)switch(o.type){case 3:return!n;case 4:return n===!1;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}function j(e,n,o,s,f,p,_){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=s,this.attributeNamespace=f,this.mustUseProperty=o,this.propertyName=e,this.type=n,this.sanitizeURL=p,this.removeEmptyString=_}var E={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){E[e]=new j(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];E[n]=new j(n,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){E[e]=new j(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){E[e]=new j(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){E[e]=new j(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){E[e]=new j(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){E[e]=new j(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){E[e]=new j(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){E[e]=new j(e,5,!1,e.toLowerCase(),null,!1,!1)});var N=/[\-:]([a-z])/g;function I(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var n=e.replace(N,I);E[n]=new j(n,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var n=e.replace(N,I);E[n]=new j(n,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var n=e.replace(N,I);E[n]=new j(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){E[e]=new j(e,1,!1,e.toLowerCase(),null,!1,!1)}),E.xlinkHref=new j("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){E[e]=new j(e,1,!1,e.toLowerCase(),null,!0,!0)});function k(e,n,o,s){var f=E.hasOwnProperty(n)?E[n]:null;(f!==null?f.type!==0:s||!(2<n.length)||n[0]!=="o"&&n[0]!=="O"||n[1]!=="n"&&n[1]!=="N")&&(S(n,o,f,s)&&(o=null),s||f===null?g(n)&&(o===null?e.removeAttribute(n):e.setAttribute(n,""+o)):f.mustUseProperty?e[f.propertyName]=o===null?f.type===3?!1:"":o:(n=f.attributeName,s=f.attributeNamespace,o===null?e.removeAttribute(n):(f=f.type,o=f===3||f===4&&o===!0?"":""+o,s?e.setAttributeNS(s,n,o):e.setAttribute(n,o))))}var M=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,F=Symbol.for("react.element"),D=Symbol.for("react.portal"),W=Symbol.for("react.fragment"),Y=Symbol.for("react.strict_mode"),K=Symbol.for("react.profiler"),ne=Symbol.for("react.provider"),Z=Symbol.for("react.context"),J=Symbol.for("react.forward_ref"),V=Symbol.for("react.suspense"),C=Symbol.for("react.suspense_list"),b=Symbol.for("react.memo"),$=Symbol.for("react.lazy"),U=Symbol.for("react.offscreen"),z=Symbol.iterator;function A(e){return e===null||typeof e!="object"?null:(e=z&&e[z]||e["@@iterator"],typeof e=="function"?e:null)}var H=Object.assign,P;function L(e){if(P===void 0)try{throw Error()}catch(o){var n=o.stack.trim().match(/\n( *(at )?)/);P=n&&n[1]||""}return`
-`+P+e}var ee=!1;function te(e,n){if(!e||ee)return"";ee=!0;var o=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(n)if(n=function(){throw Error()},Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(n,[])}catch(q){var s=q}Reflect.construct(e,[],n)}else{try{n.call()}catch(q){s=q}e.call(n.prototype)}else{try{throw Error()}catch(q){s=q}e()}}catch(q){if(q&&s&&typeof q.stack=="string"){for(var f=q.stack.split(`
-`),p=s.stack.split(`
-`),_=f.length-1,T=p.length-1;1<=_&&0<=T&&f[_]!==p[T];)T--;for(;1<=_&&0<=T;_--,T--)if(f[_]!==p[T]){if(_!==1||T!==1)do if(_--,T--,0>T||f[_]!==p[T]){var O=`
-`+f[_].replace(" at new "," at ");return e.displayName&&O.includes("<anonymous>")&&(O=O.replace("<anonymous>",e.displayName)),O}while(1<=_&&0<=T);break}}}finally{ee=!1,Error.prepareStackTrace=o}return(e=e?e.displayName||e.name:"")?L(e):""}function ue(e){switch(e.tag){case 5:return L(e.type);case 16:return L("Lazy");case 13:return L("Suspense");case 19:return L("SuspenseList");case 0:case 2:case 15:return e=te(e.type,!1),e;case 11:return e=te(e.type.render,!1),e;case 1:return e=te(e.type,!0),e;default:return""}}function de(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case W:return"Fragment";case D:return"Portal";case K:return"Profiler";case Y:return"StrictMode";case V:return"Suspense";case C:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Z:return(e.displayName||"Context")+".Consumer";case ne:return(e._context.displayName||"Context")+".Provider";case J:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case b:return n=e.displayName||null,n!==null?n:de(e.type)||"Memo";case $:n=e._payload,e=e._init;try{return de(e(n))}catch{}}return null}function fe(e){var n=e.type;switch(e.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=n.render,e=e.displayName||e.name||"",n.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return de(n);case 8:return n===Y?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n}return null}function G(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function ie(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function he(e){var n=ie(e)?"checked":"value",o=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),s=""+e[n];if(!e.hasOwnProperty(n)&&typeof o<"u"&&typeof o.get=="function"&&typeof o.set=="function"){var f=o.get,p=o.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return f.call(this)},set:function(_){s=""+_,p.call(this,_)}}),Object.defineProperty(e,n,{enumerable:o.enumerable}),{getValue:function(){return s},setValue:function(_){s=""+_},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function we(e){e._valueTracker||(e._valueTracker=he(e))}function xe(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var o=n.getValue(),s="";return e&&(s=ie(e)?e.checked?"true":"false":e.value),e=s,e!==o?(n.setValue(e),!0):!1}function Se(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}}function se(e,n){var o=n.checked;return H({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:o??e._wrapperState.initialChecked})}function ce(e,n){var o=n.defaultValue==null?"":n.defaultValue,s=n.checked!=null?n.checked:n.defaultChecked;o=G(n.value!=null?n.value:o),e._wrapperState={initialChecked:s,initialValue:o,controlled:n.type==="checkbox"||n.type==="radio"?n.checked!=null:n.value!=null}}function ke(e,n){n=n.checked,n!=null&&k(e,"checked",n,!1)}function Me(e,n){ke(e,n);var o=G(n.value),s=n.type;if(o!=null)s==="number"?(o===0&&e.value===""||e.value!=o)&&(e.value=""+o):e.value!==""+o&&(e.value=""+o);else if(s==="submit"||s==="reset"){e.removeAttribute("value");return}n.hasOwnProperty("value")?Re(e,n.type,o):n.hasOwnProperty("defaultValue")&&Re(e,n.type,G(n.defaultValue)),n.checked==null&&n.defaultChecked!=null&&(e.defaultChecked=!!n.defaultChecked)}function Ke(e,n,o){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var s=n.type;if(!(s!=="submit"&&s!=="reset"||n.value!==void 0&&n.value!==null))return;n=""+e._wrapperState.initialValue,o||n===e.value||(e.value=n),e.defaultValue=n}o=e.name,o!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,o!==""&&(e.name=o)}function Re(e,n,o){(n!=="number"||Se(e.ownerDocument)!==e)&&(o==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+o&&(e.defaultValue=""+o))}var Ze=Array.isArray;function ot(e,n,o,s){if(e=e.options,n){n={};for(var f=0;f<o.length;f++)n["$"+o[f]]=!0;for(o=0;o<e.length;o++)f=n.hasOwnProperty("$"+e[o].value),e[o].selected!==f&&(e[o].selected=f),f&&s&&(e[o].defaultSelected=!0)}else{for(o=""+G(o),n=null,f=0;f<e.length;f++){if(e[f].value===o){e[f].selected=!0,s&&(e[f].defaultSelected=!0);return}n!==null||e[f].disabled||(n=e[f])}n!==null&&(n.selected=!0)}}function sn(e,n){if(n.dangerouslySetInnerHTML!=null)throw Error(i(91));return H({},n,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function Qt(e,n){var o=n.value;if(o==null){if(o=n.children,n=n.defaultValue,o!=null){if(n!=null)throw Error(i(92));if(Ze(o)){if(1<o.length)throw Error(i(93));o=o[0]}n=o}n==null&&(n=""),o=n}e._wrapperState={initialValue:G(o)}}function Gt(e,n){var o=G(n.value),s=G(n.defaultValue);o!=null&&(o=""+o,o!==e.value&&(e.value=o),n.defaultValue==null&&e.defaultValue!==o&&(e.defaultValue=o)),s!=null&&(e.defaultValue=""+s)}function ft(e){var n=e.textContent;n===e._wrapperState.initialValue&&n!==""&&n!==null&&(e.value=n)}function jt(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function xt(e,n){return e==null||e==="http://www.w3.org/1999/xhtml"?jt(n):e==="http://www.w3.org/2000/svg"&&n==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var Pt,Sr=(function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(n,o,s,f){MSApp.execUnsafeLocalFunction(function(){return e(n,o,s,f)})}:e})(function(e,n){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=n;else{for(Pt=Pt||document.createElement("div"),Pt.innerHTML="<svg>"+n.valueOf().toString()+"</svg>",n=Pt.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}});function ln(e,n){if(n){var o=e.firstChild;if(o&&o===e.lastChild&&o.nodeType===3){o.nodeValue=n;return}}e.textContent=n}var Xn={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Ml=["Webkit","ms","Moz","O"];Object.keys(Xn).forEach(function(e){Ml.forEach(function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1),Xn[n]=Xn[e]})});function Ni(e,n,o){return n==null||typeof n=="boolean"||n===""?"":o||typeof n!="number"||n===0||Xn.hasOwnProperty(e)&&Xn[e]?(""+n).trim():n+"px"}function Ci(e,n){e=e.style;for(var o in n)if(n.hasOwnProperty(o)){var s=o.indexOf("--")===0,f=Ni(o,n[o],s);o==="float"&&(o="cssFloat"),s?e.setProperty(o,f):e[o]=f}}var jl=H({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function fo(e,n){if(n){if(jl[e]&&(n.children!=null||n.dangerouslySetInnerHTML!=null))throw Error(i(137,e));if(n.dangerouslySetInnerHTML!=null){if(n.children!=null)throw Error(i(60));if(typeof n.dangerouslySetInnerHTML!="object"||!("__html"in n.dangerouslySetInnerHTML))throw Error(i(61))}if(n.style!=null&&typeof n.style!="object")throw Error(i(62))}}function po(e,n){if(e.indexOf("-")===-1)return typeof n.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var ho=null;function go(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var mo=null,wn=null,_n=null;function Mi(e){if(e=Fo(e)){if(typeof mo!="function")throw Error(i(280));var n=e.stateNode;n&&(n=rs(n),mo(e.stateNode,e.type,n))}}function ji(e){wn?_n?_n.push(e):_n=[e]:wn=e}function Pi(){if(wn){var e=wn,n=_n;if(_n=wn=null,Mi(e),n)for(e=0;e<n.length;e++)Mi(n[e])}}function Ii(e,n){return e(n)}function Ti(){}var yo=!1;function Ri(e,n,o){if(yo)return e(n,o);yo=!0;try{return Ii(e,n,o)}finally{yo=!1,(wn!==null||_n!==null)&&(Ti(),Pi())}}function Kn(e,n){var o=e.stateNode;if(o===null)return null;var s=rs(o);if(s===null)return null;o=s[n];e:switch(n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(s=!s.disabled)||(e=e.type,s=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!s;break e;default:e=!1}if(e)return null;if(o&&typeof o!="function")throw Error(i(231,n,typeof o));return o}var vo=!1;if(d)try{var Qn={};Object.defineProperty(Qn,"passive",{get:function(){vo=!0}}),window.addEventListener("test",Qn,Qn),window.removeEventListener("test",Qn,Qn)}catch{vo=!1}function Pl(e,n,o,s,f,p,_,T,O){var q=Array.prototype.slice.call(arguments,3);try{n.apply(o,q)}catch(oe){this.onError(oe)}}var Gn=!1,kr=null,Er=!1,xo=null,Il={onError:function(e){Gn=!0,kr=e}};function Tl(e,n,o,s,f,p,_,T,O){Gn=!1,kr=null,Pl.apply(Il,arguments)}function Rl(e,n,o,s,f,p,_,T,O){if(Tl.apply(this,arguments),Gn){if(Gn){var q=kr;Gn=!1,kr=null}else throw Error(i(198));Er||(Er=!0,xo=q)}}function qt(e){var n=e,o=e;if(e.alternate)for(;n.return;)n=n.return;else{e=n;do n=e,(n.flags&4098)!==0&&(o=n.return),e=n.return;while(e)}return n.tag===3?o:null}function wo(e){if(e.tag===13){var n=e.memoizedState;if(n===null&&(e=e.alternate,e!==null&&(n=e.memoizedState)),n!==null)return n.dehydrated}return null}function _o(e){if(qt(e)!==e)throw Error(i(188))}function zl(e){var n=e.alternate;if(!n){if(n=qt(e),n===null)throw Error(i(188));return n!==e?null:e}for(var o=e,s=n;;){var f=o.return;if(f===null)break;var p=f.alternate;if(p===null){if(s=f.return,s!==null){o=s;continue}break}if(f.child===p.child){for(p=f.child;p;){if(p===o)return _o(f),e;if(p===s)return _o(f),n;p=p.sibling}throw Error(i(188))}if(o.return!==s.return)o=f,s=p;else{for(var _=!1,T=f.child;T;){if(T===o){_=!0,o=f,s=p;break}if(T===s){_=!0,s=f,o=p;break}T=T.sibling}if(!_){for(T=p.child;T;){if(T===o){_=!0,o=p,s=f;break}if(T===s){_=!0,s=p,o=f;break}T=T.sibling}if(!_)throw Error(i(189))}}if(o.alternate!==s)throw Error(i(190))}if(o.tag!==3)throw Error(i(188));return o.stateNode.current===o?e:n}function zi(e){return e=zl(e),e!==null?Li(e):null}function Li(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var n=Li(e);if(n!==null)return n;e=e.sibling}return null}var Ai=r.unstable_scheduleCallback,Di=r.unstable_cancelCallback,Ll=r.unstable_shouldYield,$i=r.unstable_requestPaint,Fe=r.unstable_now,Al=r.unstable_getCurrentPriorityLevel,So=r.unstable_ImmediatePriority,bi=r.unstable_UserBlockingPriority,Nr=r.unstable_NormalPriority,Dl=r.unstable_LowPriority,Oi=r.unstable_IdlePriority,Cr=null,wt=null;function $l(e){if(wt&&typeof wt.onCommitFiberRoot=="function")try{wt.onCommitFiberRoot(Cr,e,void 0,(e.current.flags&128)===128)}catch{}}var _t=Math.clz32?Math.clz32:Fl,bl=Math.log,Ol=Math.LN2;function Fl(e){return e>>>=0,e===0?32:31-(bl(e)/Ol|0)|0}var Mr=64,jr=4194304;function qn(e){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: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 e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function an(e,n){var o=e.pendingLanes;if(o===0)return 0;var s=0,f=e.suspendedLanes,p=e.pingedLanes,_=o&268435455;if(_!==0){var T=_&~f;T!==0?s=qn(T):(p&=_,p!==0&&(s=qn(p)))}else _=o&~f,_!==0?s=qn(_):p!==0&&(s=qn(p));if(s===0)return 0;if(n!==0&&n!==s&&(n&f)===0&&(f=s&-s,p=n&-n,f>=p||f===16&&(p&4194240)!==0))return n;if((s&4)!==0&&(s|=o&16),n=e.entangledLanes,n!==0)for(e=e.entanglements,n&=s;0<n;)o=31-_t(n),f=1<<o,s|=e[o],n&=~f;return s}function Hl(e,n){switch(e){case 1:case 2:case 4:return n+250;case 8:case 16:case 32:case 64: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 n+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Fi(e,n){for(var o=e.suspendedLanes,s=e.pingedLanes,f=e.expirationTimes,p=e.pendingLanes;0<p;){var _=31-_t(p),T=1<<_,O=f[_];O===-1?((T&o)===0||(T&s)!==0)&&(f[_]=Hl(T,n)):O<=n&&(e.expiredLanes|=T),p&=~T}}function ko(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function Hi(){var e=Mr;return Mr<<=1,(Mr&4194240)===0&&(Mr=64),e}function Zn(e){for(var n=[],o=0;31>o;o++)n.push(e);return n}function Jn(e,n,o){e.pendingLanes|=n,n!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,n=31-_t(n),e[n]=o}function Vl(e,n){var o=e.pendingLanes&~n;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=n,e.mutableReadLanes&=n,e.entangledLanes&=n,n=e.entanglements;var s=e.eventTimes;for(e=e.expirationTimes;0<o;){var f=31-_t(o),p=1<<f;n[f]=0,s[f]=-1,e[f]=-1,o&=~p}}function Pr(e,n){var o=e.entangledLanes|=n;for(e=e.entanglements;o;){var s=31-_t(o),f=1<<s;f&n|e[s]&n&&(e[s]|=n),o&=~f}}var ze=0;function xc(e){return e&=-e,1<e?4<e?(e&268435455)!==0?16:536870912:4:1}var wc,Bl,_c,Sc,kc,Ul=!1,Vi=[],Sn=null,kn=null,En=null,Eo=new Map,No=new Map,Nn=[],cm="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Ec(e,n){switch(e){case"focusin":case"focusout":Sn=null;break;case"dragenter":case"dragleave":kn=null;break;case"mouseover":case"mouseout":En=null;break;case"pointerover":case"pointerout":Eo.delete(n.pointerId);break;case"gotpointercapture":case"lostpointercapture":No.delete(n.pointerId)}}function Co(e,n,o,s,f,p){return e===null||e.nativeEvent!==p?(e={blockedOn:n,domEventName:o,eventSystemFlags:s,nativeEvent:p,targetContainers:[f]},n!==null&&(n=Fo(n),n!==null&&Bl(n)),e):(e.eventSystemFlags|=s,n=e.targetContainers,f!==null&&n.indexOf(f)===-1&&n.push(f),e)}function fm(e,n,o,s,f){switch(n){case"focusin":return Sn=Co(Sn,e,n,o,s,f),!0;case"dragenter":return kn=Co(kn,e,n,o,s,f),!0;case"mouseover":return En=Co(En,e,n,o,s,f),!0;case"pointerover":var p=f.pointerId;return Eo.set(p,Co(Eo.get(p)||null,e,n,o,s,f)),!0;case"gotpointercapture":return p=f.pointerId,No.set(p,Co(No.get(p)||null,e,n,o,s,f)),!0}return!1}function Nc(e){var n=er(e.target);if(n!==null){var o=qt(n);if(o!==null){if(n=o.tag,n===13){if(n=wo(o),n!==null){e.blockedOn=n,kc(e.priority,function(){_c(o)});return}}else if(n===3&&o.stateNode.current.memoizedState.isDehydrated){e.blockedOn=o.tag===3?o.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Bi(e){if(e.blockedOn!==null)return!1;for(var n=e.targetContainers;0<n.length;){var o=Yl(e.domEventName,e.eventSystemFlags,n[0],e.nativeEvent);if(o===null){o=e.nativeEvent;var s=new o.constructor(o.type,o);ho=s,o.target.dispatchEvent(s),ho=null}else return n=Fo(o),n!==null&&Bl(n),e.blockedOn=o,!1;n.shift()}return!0}function Cc(e,n,o){Bi(e)&&o.delete(n)}function dm(){Ul=!1,Sn!==null&&Bi(Sn)&&(Sn=null),kn!==null&&Bi(kn)&&(kn=null),En!==null&&Bi(En)&&(En=null),Eo.forEach(Cc),No.forEach(Cc)}function Mo(e,n){e.blockedOn===n&&(e.blockedOn=null,Ul||(Ul=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,dm)))}function jo(e){function n(f){return Mo(f,e)}if(0<Vi.length){Mo(Vi[0],e);for(var o=1;o<Vi.length;o++){var s=Vi[o];s.blockedOn===e&&(s.blockedOn=null)}}for(Sn!==null&&Mo(Sn,e),kn!==null&&Mo(kn,e),En!==null&&Mo(En,e),Eo.forEach(n),No.forEach(n),o=0;o<Nn.length;o++)s=Nn[o],s.blockedOn===e&&(s.blockedOn=null);for(;0<Nn.length&&(o=Nn[0],o.blockedOn===null);)Nc(o),o.blockedOn===null&&Nn.shift()}var Ir=M.ReactCurrentBatchConfig,Ui=!0;function pm(e,n,o,s){var f=ze,p=Ir.transition;Ir.transition=null;try{ze=1,Wl(e,n,o,s)}finally{ze=f,Ir.transition=p}}function hm(e,n,o,s){var f=ze,p=Ir.transition;Ir.transition=null;try{ze=4,Wl(e,n,o,s)}finally{ze=f,Ir.transition=p}}function Wl(e,n,o,s){if(Ui){var f=Yl(e,n,o,s);if(f===null)ua(e,n,s,Wi,o),Ec(e,s);else if(fm(f,e,n,o,s))s.stopPropagation();else if(Ec(e,s),n&4&&-1<cm.indexOf(e)){for(;f!==null;){var p=Fo(f);if(p!==null&&wc(p),p=Yl(e,n,o,s),p===null&&ua(e,n,s,Wi,o),p===f)break;f=p}f!==null&&s.stopPropagation()}else ua(e,n,s,null,o)}}var Wi=null;function Yl(e,n,o,s){if(Wi=null,e=go(s),e=er(e),e!==null)if(n=qt(e),n===null)e=null;else if(o=n.tag,o===13){if(e=wo(n),e!==null)return e;e=null}else if(o===3){if(n.stateNode.current.memoizedState.isDehydrated)return n.tag===3?n.stateNode.containerInfo:null;e=null}else n!==e&&(e=null);return Wi=e,null}function Mc(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Al()){case So:return 1;case bi:return 4;case Nr:case Dl:return 16;case Oi:return 536870912;default:return 16}default:return 16}}var Cn=null,Xl=null,Yi=null;function jc(){if(Yi)return Yi;var e,n=Xl,o=n.length,s,f="value"in Cn?Cn.value:Cn.textContent,p=f.length;for(e=0;e<o&&n[e]===f[e];e++);var _=o-e;for(s=1;s<=_&&n[o-s]===f[p-s];s++);return Yi=f.slice(e,1<s?1-s:void 0)}function Xi(e){var n=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&n===13&&(e=13)):e=n,e===10&&(e=13),32<=e||e===13?e:0}function Ki(){return!0}function Pc(){return!1}function St(e){function n(o,s,f,p,_){this._reactName=o,this._targetInst=f,this.type=s,this.nativeEvent=p,this.target=_,this.currentTarget=null;for(var T in e)e.hasOwnProperty(T)&&(o=e[T],this[T]=o?o(p):p[T]);return this.isDefaultPrevented=(p.defaultPrevented!=null?p.defaultPrevented:p.returnValue===!1)?Ki:Pc,this.isPropagationStopped=Pc,this}return H(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var o=this.nativeEvent;o&&(o.preventDefault?o.preventDefault():typeof o.returnValue!="unknown"&&(o.returnValue=!1),this.isDefaultPrevented=Ki)},stopPropagation:function(){var o=this.nativeEvent;o&&(o.stopPropagation?o.stopPropagation():typeof o.cancelBubble!="unknown"&&(o.cancelBubble=!0),this.isPropagationStopped=Ki)},persist:function(){},isPersistent:Ki}),n}var Tr={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Kl=St(Tr),Po=H({},Tr,{view:0,detail:0}),gm=St(Po),Ql,Gl,Io,Qi=H({},Po,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Zl,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==Io&&(Io&&e.type==="mousemove"?(Ql=e.screenX-Io.screenX,Gl=e.screenY-Io.screenY):Gl=Ql=0,Io=e),Ql)},movementY:function(e){return"movementY"in e?e.movementY:Gl}}),Ic=St(Qi),mm=H({},Qi,{dataTransfer:0}),ym=St(mm),vm=H({},Po,{relatedTarget:0}),ql=St(vm),xm=H({},Tr,{animationName:0,elapsedTime:0,pseudoElement:0}),wm=St(xm),_m=H({},Tr,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Sm=St(_m),km=H({},Tr,{data:0}),Tc=St(km),Em={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Nm={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Cm={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Mm(e){var n=this.nativeEvent;return n.getModifierState?n.getModifierState(e):(e=Cm[e])?!!n[e]:!1}function Zl(){return Mm}var jm=H({},Po,{key:function(e){if(e.key){var n=Em[e.key]||e.key;if(n!=="Unidentified")return n}return e.type==="keypress"?(e=Xi(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Nm[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Zl,charCode:function(e){return e.type==="keypress"?Xi(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Xi(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),Pm=St(jm),Im=H({},Qi,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Rc=St(Im),Tm=H({},Po,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Zl}),Rm=St(Tm),zm=H({},Tr,{propertyName:0,elapsedTime:0,pseudoElement:0}),Lm=St(zm),Am=H({},Qi,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Dm=St(Am),$m=[9,13,27,32],Jl=d&&"CompositionEvent"in window,To=null;d&&"documentMode"in document&&(To=document.documentMode);var bm=d&&"TextEvent"in window&&!To,zc=d&&(!Jl||To&&8<To&&11>=To),Lc=" ",Ac=!1;function Dc(e,n){switch(e){case"keyup":return $m.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $c(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Rr=!1;function Om(e,n){switch(e){case"compositionend":return $c(n);case"keypress":return n.which!==32?null:(Ac=!0,Lc);case"textInput":return e=n.data,e===Lc&&Ac?null:e;default:return null}}function Fm(e,n){if(Rr)return e==="compositionend"||!Jl&&Dc(e,n)?(e=jc(),Yi=Xl=Cn=null,Rr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1<n.char.length)return n.char;if(n.which)return String.fromCharCode(n.which)}return null;case"compositionend":return zc&&n.locale!=="ko"?null:n.data;default:return null}}var Hm={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function bc(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n==="input"?!!Hm[e.type]:n==="textarea"}function Oc(e,n,o,s){ji(s),n=es(n,"onChange"),0<n.length&&(o=new Kl("onChange","change",null,o,s),e.push({event:o,listeners:n}))}var Ro=null,zo=null;function Vm(e){rf(e,0)}function Gi(e){var n=$r(e);if(xe(n))return e}function Bm(e,n){if(e==="change")return n}var Fc=!1;if(d){var ea;if(d){var ta="oninput"in document;if(!ta){var Hc=document.createElement("div");Hc.setAttribute("oninput","return;"),ta=typeof Hc.oninput=="function"}ea=ta}else ea=!1;Fc=ea&&(!document.documentMode||9<document.documentMode)}function Vc(){Ro&&(Ro.detachEvent("onpropertychange",Bc),zo=Ro=null)}function Bc(e){if(e.propertyName==="value"&&Gi(zo)){var n=[];Oc(n,zo,e,go(e)),Ri(Vm,n)}}function Um(e,n,o){e==="focusin"?(Vc(),Ro=n,zo=o,Ro.attachEvent("onpropertychange",Bc)):e==="focusout"&&Vc()}function Wm(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Gi(zo)}function Ym(e,n){if(e==="click")return Gi(n)}function Xm(e,n){if(e==="input"||e==="change")return Gi(n)}function Km(e,n){return e===n&&(e!==0||1/e===1/n)||e!==e&&n!==n}var Dt=typeof Object.is=="function"?Object.is:Km;function Lo(e,n){if(Dt(e,n))return!0;if(typeof e!="object"||e===null||typeof n!="object"||n===null)return!1;var o=Object.keys(e),s=Object.keys(n);if(o.length!==s.length)return!1;for(s=0;s<o.length;s++){var f=o[s];if(!h.call(n,f)||!Dt(e[f],n[f]))return!1}return!0}function Uc(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Wc(e,n){var o=Uc(e);e=0;for(var s;o;){if(o.nodeType===3){if(s=e+o.textContent.length,e<=n&&s>=n)return{node:o,offset:n-e};e=s}e:{for(;o;){if(o.nextSibling){o=o.nextSibling;break e}o=o.parentNode}o=void 0}o=Uc(o)}}function Yc(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?Yc(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function Xc(){for(var e=window,n=Se();n instanceof e.HTMLIFrameElement;){try{var o=typeof n.contentWindow.location.href=="string"}catch{o=!1}if(o)e=n.contentWindow;else break;n=Se(e.document)}return n}function na(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}function Qm(e){var n=Xc(),o=e.focusedElem,s=e.selectionRange;if(n!==o&&o&&o.ownerDocument&&Yc(o.ownerDocument.documentElement,o)){if(s!==null&&na(o)){if(n=s.start,e=s.end,e===void 0&&(e=n),"selectionStart"in o)o.selectionStart=n,o.selectionEnd=Math.min(e,o.value.length);else if(e=(n=o.ownerDocument||document)&&n.defaultView||window,e.getSelection){e=e.getSelection();var f=o.textContent.length,p=Math.min(s.start,f);s=s.end===void 0?p:Math.min(s.end,f),!e.extend&&p>s&&(f=s,s=p,p=f),f=Wc(o,p);var _=Wc(o,s);f&&_&&(e.rangeCount!==1||e.anchorNode!==f.node||e.anchorOffset!==f.offset||e.focusNode!==_.node||e.focusOffset!==_.offset)&&(n=n.createRange(),n.setStart(f.node,f.offset),e.removeAllRanges(),p>s?(e.addRange(n),e.extend(_.node,_.offset)):(n.setEnd(_.node,_.offset),e.addRange(n)))}}for(n=[],e=o;e=e.parentNode;)e.nodeType===1&&n.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof o.focus=="function"&&o.focus(),o=0;o<n.length;o++)e=n[o],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var Gm=d&&"documentMode"in document&&11>=document.documentMode,zr=null,ra=null,Ao=null,oa=!1;function Kc(e,n,o){var s=o.window===o?o.document:o.nodeType===9?o:o.ownerDocument;oa||zr==null||zr!==Se(s)||(s=zr,"selectionStart"in s&&na(s)?s={start:s.selectionStart,end:s.selectionEnd}:(s=(s.ownerDocument&&s.ownerDocument.defaultView||window).getSelection(),s={anchorNode:s.anchorNode,anchorOffset:s.anchorOffset,focusNode:s.focusNode,focusOffset:s.focusOffset}),Ao&&Lo(Ao,s)||(Ao=s,s=es(ra,"onSelect"),0<s.length&&(n=new Kl("onSelect","select",null,n,o),e.push({event:n,listeners:s}),n.target=zr)))}function qi(e,n){var o={};return o[e.toLowerCase()]=n.toLowerCase(),o["Webkit"+e]="webkit"+n,o["Moz"+e]="moz"+n,o}var Lr={animationend:qi("Animation","AnimationEnd"),animationiteration:qi("Animation","AnimationIteration"),animationstart:qi("Animation","AnimationStart"),transitionend:qi("Transition","TransitionEnd")},ia={},Qc={};d&&(Qc=document.createElement("div").style,"AnimationEvent"in window||(delete Lr.animationend.animation,delete Lr.animationiteration.animation,delete Lr.animationstart.animation),"TransitionEvent"in window||delete Lr.transitionend.transition);function Zi(e){if(ia[e])return ia[e];if(!Lr[e])return e;var n=Lr[e],o;for(o in n)if(n.hasOwnProperty(o)&&o in Qc)return ia[e]=n[o];return e}var Gc=Zi("animationend"),qc=Zi("animationiteration"),Zc=Zi("animationstart"),Jc=Zi("transitionend"),ef=new Map,tf="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Mn(e,n){ef.set(e,n),u(n,[e])}for(var sa=0;sa<tf.length;sa++){var la=tf[sa],qm=la.toLowerCase(),Zm=la[0].toUpperCase()+la.slice(1);Mn(qm,"on"+Zm)}Mn(Gc,"onAnimationEnd"),Mn(qc,"onAnimationIteration"),Mn(Zc,"onAnimationStart"),Mn("dblclick","onDoubleClick"),Mn("focusin","onFocus"),Mn("focusout","onBlur"),Mn(Jc,"onTransitionEnd"),c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),u("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),u("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),u("onBeforeInput",["compositionend","keypress","textInput","paste"]),u("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Do="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Jm=new Set("cancel close invalid load scroll toggle".split(" ").concat(Do));function nf(e,n,o){var s=e.type||"unknown-event";e.currentTarget=o,Rl(s,n,void 0,e),e.currentTarget=null}function rf(e,n){n=(n&4)!==0;for(var o=0;o<e.length;o++){var s=e[o],f=s.event;s=s.listeners;e:{var p=void 0;if(n)for(var _=s.length-1;0<=_;_--){var T=s[_],O=T.instance,q=T.currentTarget;if(T=T.listener,O!==p&&f.isPropagationStopped())break e;nf(f,T,q),p=O}else for(_=0;_<s.length;_++){if(T=s[_],O=T.instance,q=T.currentTarget,T=T.listener,O!==p&&f.isPropagationStopped())break e;nf(f,T,q),p=O}}}if(Er)throw e=xo,Er=!1,xo=null,e}function Ae(e,n){var o=n[ga];o===void 0&&(o=n[ga]=new Set);var s=e+"__bubble";o.has(s)||(of(n,e,2,!1),o.add(s))}function aa(e,n,o){var s=0;n&&(s|=4),of(o,e,s,n)}var Ji="_reactListening"+Math.random().toString(36).slice(2);function $o(e){if(!e[Ji]){e[Ji]=!0,l.forEach(function(o){o!=="selectionchange"&&(Jm.has(o)||aa(o,!1,e),aa(o,!0,e))});var n=e.nodeType===9?e:e.ownerDocument;n===null||n[Ji]||(n[Ji]=!0,aa("selectionchange",!1,n))}}function of(e,n,o,s){switch(Mc(n)){case 1:var f=pm;break;case 4:f=hm;break;default:f=Wl}o=f.bind(null,n,o,e),f=void 0,!vo||n!=="touchstart"&&n!=="touchmove"&&n!=="wheel"||(f=!0),s?f!==void 0?e.addEventListener(n,o,{capture:!0,passive:f}):e.addEventListener(n,o,!0):f!==void 0?e.addEventListener(n,o,{passive:f}):e.addEventListener(n,o,!1)}function ua(e,n,o,s,f){var p=s;if((n&1)===0&&(n&2)===0&&s!==null)e:for(;;){if(s===null)return;var _=s.tag;if(_===3||_===4){var T=s.stateNode.containerInfo;if(T===f||T.nodeType===8&&T.parentNode===f)break;if(_===4)for(_=s.return;_!==null;){var O=_.tag;if((O===3||O===4)&&(O=_.stateNode.containerInfo,O===f||O.nodeType===8&&O.parentNode===f))return;_=_.return}for(;T!==null;){if(_=er(T),_===null)return;if(O=_.tag,O===5||O===6){s=p=_;continue e}T=T.parentNode}}s=s.return}Ri(function(){var q=p,oe=go(o),le=[];e:{var re=ef.get(e);if(re!==void 0){var pe=Kl,me=e;switch(e){case"keypress":if(Xi(o)===0)break e;case"keydown":case"keyup":pe=Pm;break;case"focusin":me="focus",pe=ql;break;case"focusout":me="blur",pe=ql;break;case"beforeblur":case"afterblur":pe=ql;break;case"click":if(o.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":pe=Ic;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":pe=ym;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":pe=Rm;break;case Gc:case qc:case Zc:pe=wm;break;case Jc:pe=Lm;break;case"scroll":pe=gm;break;case"wheel":pe=Dm;break;case"copy":case"cut":case"paste":pe=Sm;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":pe=Rc}var ye=(n&4)!==0,We=!ye&&e==="scroll",X=ye?re!==null?re+"Capture":null:re;ye=[];for(var B=q,Q;B!==null;){Q=B;var ae=Q.stateNode;if(Q.tag===5&&ae!==null&&(Q=ae,X!==null&&(ae=Kn(B,X),ae!=null&&ye.push(bo(B,ae,Q)))),We)break;B=B.return}0<ye.length&&(re=new pe(re,me,null,o,oe),le.push({event:re,listeners:ye}))}}if((n&7)===0){e:{if(re=e==="mouseover"||e==="pointerover",pe=e==="mouseout"||e==="pointerout",re&&o!==ho&&(me=o.relatedTarget||o.fromElement)&&(er(me)||me[un]))break e;if((pe||re)&&(re=oe.window===oe?oe:(re=oe.ownerDocument)?re.defaultView||re.parentWindow:window,pe?(me=o.relatedTarget||o.toElement,pe=q,me=me?er(me):null,me!==null&&(We=qt(me),me!==We||me.tag!==5&&me.tag!==6)&&(me=null)):(pe=null,me=q),pe!==me)){if(ye=Ic,ae="onMouseLeave",X="onMouseEnter",B="mouse",(e==="pointerout"||e==="pointerover")&&(ye=Rc,ae="onPointerLeave",X="onPointerEnter",B="pointer"),We=pe==null?re:$r(pe),Q=me==null?re:$r(me),re=new ye(ae,B+"leave",pe,o,oe),re.target=We,re.relatedTarget=Q,ae=null,er(oe)===q&&(ye=new ye(X,B+"enter",me,o,oe),ye.target=Q,ye.relatedTarget=We,ae=ye),We=ae,pe&&me)t:{for(ye=pe,X=me,B=0,Q=ye;Q;Q=Ar(Q))B++;for(Q=0,ae=X;ae;ae=Ar(ae))Q++;for(;0<B-Q;)ye=Ar(ye),B--;for(;0<Q-B;)X=Ar(X),Q--;for(;B--;){if(ye===X||X!==null&&ye===X.alternate)break t;ye=Ar(ye),X=Ar(X)}ye=null}else ye=null;pe!==null&&sf(le,re,pe,ye,!1),me!==null&&We!==null&&sf(le,We,me,ye,!0)}}e:{if(re=q?$r(q):window,pe=re.nodeName&&re.nodeName.toLowerCase(),pe==="select"||pe==="input"&&re.type==="file")var ve=Bm;else if(bc(re))if(Fc)ve=Xm;else{ve=Wm;var Ee=Um}else(pe=re.nodeName)&&pe.toLowerCase()==="input"&&(re.type==="checkbox"||re.type==="radio")&&(ve=Ym);if(ve&&(ve=ve(e,q))){Oc(le,ve,o,oe);break e}Ee&&Ee(e,re,q),e==="focusout"&&(Ee=re._wrapperState)&&Ee.controlled&&re.type==="number"&&Re(re,"number",re.value)}switch(Ee=q?$r(q):window,e){case"focusin":(bc(Ee)||Ee.contentEditable==="true")&&(zr=Ee,ra=q,Ao=null);break;case"focusout":Ao=ra=zr=null;break;case"mousedown":oa=!0;break;case"contextmenu":case"mouseup":case"dragend":oa=!1,Kc(le,o,oe);break;case"selectionchange":if(Gm)break;case"keydown":case"keyup":Kc(le,o,oe)}var Ne;if(Jl)e:{switch(e){case"compositionstart":var Ce="onCompositionStart";break e;case"compositionend":Ce="onCompositionEnd";break e;case"compositionupdate":Ce="onCompositionUpdate";break e}Ce=void 0}else Rr?Dc(e,o)&&(Ce="onCompositionEnd"):e==="keydown"&&o.keyCode===229&&(Ce="onCompositionStart");Ce&&(zc&&o.locale!=="ko"&&(Rr||Ce!=="onCompositionStart"?Ce==="onCompositionEnd"&&Rr&&(Ne=jc()):(Cn=oe,Xl="value"in Cn?Cn.value:Cn.textContent,Rr=!0)),Ee=es(q,Ce),0<Ee.length&&(Ce=new Tc(Ce,e,null,o,oe),le.push({event:Ce,listeners:Ee}),Ne?Ce.data=Ne:(Ne=$c(o),Ne!==null&&(Ce.data=Ne)))),(Ne=bm?Om(e,o):Fm(e,o))&&(q=es(q,"onBeforeInput"),0<q.length&&(oe=new Tc("onBeforeInput","beforeinput",null,o,oe),le.push({event:oe,listeners:q}),oe.data=Ne))}rf(le,n)})}function bo(e,n,o){return{instance:e,listener:n,currentTarget:o}}function es(e,n){for(var o=n+"Capture",s=[];e!==null;){var f=e,p=f.stateNode;f.tag===5&&p!==null&&(f=p,p=Kn(e,o),p!=null&&s.unshift(bo(e,p,f)),p=Kn(e,n),p!=null&&s.push(bo(e,p,f))),e=e.return}return s}function Ar(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function sf(e,n,o,s,f){for(var p=n._reactName,_=[];o!==null&&o!==s;){var T=o,O=T.alternate,q=T.stateNode;if(O!==null&&O===s)break;T.tag===5&&q!==null&&(T=q,f?(O=Kn(o,p),O!=null&&_.unshift(bo(o,O,T))):f||(O=Kn(o,p),O!=null&&_.push(bo(o,O,T)))),o=o.return}_.length!==0&&e.push({event:n,listeners:_})}var e0=/\r\n?/g,t0=/\u0000|\uFFFD/g;function lf(e){return(typeof e=="string"?e:""+e).replace(e0,`
-`).replace(t0,"")}function ts(e,n,o){if(n=lf(n),lf(e)!==n&&o)throw Error(i(425))}function ns(){}var ca=null,fa=null;function da(e,n){return e==="textarea"||e==="noscript"||typeof n.children=="string"||typeof n.children=="number"||typeof n.dangerouslySetInnerHTML=="object"&&n.dangerouslySetInnerHTML!==null&&n.dangerouslySetInnerHTML.__html!=null}var pa=typeof setTimeout=="function"?setTimeout:void 0,n0=typeof clearTimeout=="function"?clearTimeout:void 0,af=typeof Promise=="function"?Promise:void 0,r0=typeof queueMicrotask=="function"?queueMicrotask:typeof af<"u"?function(e){return af.resolve(null).then(e).catch(o0)}:pa;function o0(e){setTimeout(function(){throw e})}function ha(e,n){var o=n,s=0;do{var f=o.nextSibling;if(e.removeChild(o),f&&f.nodeType===8)if(o=f.data,o==="/$"){if(s===0){e.removeChild(f),jo(n);return}s--}else o!=="$"&&o!=="$?"&&o!=="$!"||s++;o=f}while(o);jo(n)}function jn(e){for(;e!=null;e=e.nextSibling){var n=e.nodeType;if(n===1||n===3)break;if(n===8){if(n=e.data,n==="$"||n==="$!"||n==="$?")break;if(n==="/$")return null}}return e}function uf(e){e=e.previousSibling;for(var n=0;e;){if(e.nodeType===8){var o=e.data;if(o==="$"||o==="$!"||o==="$?"){if(n===0)return e;n--}else o==="/$"&&n++}e=e.previousSibling}return null}var Dr=Math.random().toString(36).slice(2),Zt="__reactFiber$"+Dr,Oo="__reactProps$"+Dr,un="__reactContainer$"+Dr,ga="__reactEvents$"+Dr,i0="__reactListeners$"+Dr,s0="__reactHandles$"+Dr;function er(e){var n=e[Zt];if(n)return n;for(var o=e.parentNode;o;){if(n=o[un]||o[Zt]){if(o=n.alternate,n.child!==null||o!==null&&o.child!==null)for(e=uf(e);e!==null;){if(o=e[Zt])return o;e=uf(e)}return n}e=o,o=e.parentNode}return null}function Fo(e){return e=e[Zt]||e[un],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function $r(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(i(33))}function rs(e){return e[Oo]||null}var ma=[],br=-1;function Pn(e){return{current:e}}function De(e){0>br||(e.current=ma[br],ma[br]=null,br--)}function Le(e,n){br++,ma[br]=e.current,e.current=n}var In={},it=Pn(In),dt=Pn(!1),tr=In;function Or(e,n){var o=e.type.contextTypes;if(!o)return In;var s=e.stateNode;if(s&&s.__reactInternalMemoizedUnmaskedChildContext===n)return s.__reactInternalMemoizedMaskedChildContext;var f={},p;for(p in o)f[p]=n[p];return s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=f),f}function pt(e){return e=e.childContextTypes,e!=null}function os(){De(dt),De(it)}function cf(e,n,o){if(it.current!==In)throw Error(i(168));Le(it,n),Le(dt,o)}function ff(e,n,o){var s=e.stateNode;if(n=n.childContextTypes,typeof s.getChildContext!="function")return o;s=s.getChildContext();for(var f in s)if(!(f in n))throw Error(i(108,fe(e)||"Unknown",f));return H({},o,s)}function is(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||In,tr=it.current,Le(it,e),Le(dt,dt.current),!0}function df(e,n,o){var s=e.stateNode;if(!s)throw Error(i(169));o?(e=ff(e,n,tr),s.__reactInternalMemoizedMergedChildContext=e,De(dt),De(it),Le(it,e)):De(dt),Le(dt,o)}var cn=null,ss=!1,ya=!1;function pf(e){cn===null?cn=[e]:cn.push(e)}function l0(e){ss=!0,pf(e)}function Tn(){if(!ya&&cn!==null){ya=!0;var e=0,n=ze;try{var o=cn;for(ze=1;e<o.length;e++){var s=o[e];do s=s(!0);while(s!==null)}cn=null,ss=!1}catch(f){throw cn!==null&&(cn=cn.slice(e+1)),Ai(So,Tn),f}finally{ze=n,ya=!1}}return null}var Fr=[],Hr=0,ls=null,as=0,It=[],Tt=0,nr=null,fn=1,dn="";function rr(e,n){Fr[Hr++]=as,Fr[Hr++]=ls,ls=e,as=n}function hf(e,n,o){It[Tt++]=fn,It[Tt++]=dn,It[Tt++]=nr,nr=e;var s=fn;e=dn;var f=32-_t(s)-1;s&=~(1<<f),o+=1;var p=32-_t(n)+f;if(30<p){var _=f-f%5;p=(s&(1<<_)-1).toString(32),s>>=_,f-=_,fn=1<<32-_t(n)+f|o<<f|s,dn=p+e}else fn=1<<p|o<<f|s,dn=e}function va(e){e.return!==null&&(rr(e,1),hf(e,1,0))}function xa(e){for(;e===ls;)ls=Fr[--Hr],Fr[Hr]=null,as=Fr[--Hr],Fr[Hr]=null;for(;e===nr;)nr=It[--Tt],It[Tt]=null,dn=It[--Tt],It[Tt]=null,fn=It[--Tt],It[Tt]=null}var kt=null,Et=null,be=!1,$t=null;function gf(e,n){var o=At(5,null,null,0);o.elementType="DELETED",o.stateNode=n,o.return=e,n=e.deletions,n===null?(e.deletions=[o],e.flags|=16):n.push(o)}function mf(e,n){switch(e.tag){case 5:var o=e.type;return n=n.nodeType!==1||o.toLowerCase()!==n.nodeName.toLowerCase()?null:n,n!==null?(e.stateNode=n,kt=e,Et=jn(n.firstChild),!0):!1;case 6:return n=e.pendingProps===""||n.nodeType!==3?null:n,n!==null?(e.stateNode=n,kt=e,Et=null,!0):!1;case 13:return n=n.nodeType!==8?null:n,n!==null?(o=nr!==null?{id:fn,overflow:dn}:null,e.memoizedState={dehydrated:n,treeContext:o,retryLane:1073741824},o=At(18,null,null,0),o.stateNode=n,o.return=e,e.child=o,kt=e,Et=null,!0):!1;default:return!1}}function wa(e){return(e.mode&1)!==0&&(e.flags&128)===0}function _a(e){if(be){var n=Et;if(n){var o=n;if(!mf(e,n)){if(wa(e))throw Error(i(418));n=jn(o.nextSibling);var s=kt;n&&mf(e,n)?gf(s,o):(e.flags=e.flags&-4097|2,be=!1,kt=e)}}else{if(wa(e))throw Error(i(418));e.flags=e.flags&-4097|2,be=!1,kt=e}}}function yf(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;kt=e}function us(e){if(e!==kt)return!1;if(!be)return yf(e),be=!0,!1;var n;if((n=e.tag!==3)&&!(n=e.tag!==5)&&(n=e.type,n=n!=="head"&&n!=="body"&&!da(e.type,e.memoizedProps)),n&&(n=Et)){if(wa(e))throw vf(),Error(i(418));for(;n;)gf(e,n),n=jn(n.nextSibling)}if(yf(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(i(317));e:{for(e=e.nextSibling,n=0;e;){if(e.nodeType===8){var o=e.data;if(o==="/$"){if(n===0){Et=jn(e.nextSibling);break e}n--}else o!=="$"&&o!=="$!"&&o!=="$?"||n++}e=e.nextSibling}Et=null}}else Et=kt?jn(e.stateNode.nextSibling):null;return!0}function vf(){for(var e=Et;e;)e=jn(e.nextSibling)}function Vr(){Et=kt=null,be=!1}function Sa(e){$t===null?$t=[e]:$t.push(e)}var a0=M.ReactCurrentBatchConfig;function Ho(e,n,o){if(e=o.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(o._owner){if(o=o._owner,o){if(o.tag!==1)throw Error(i(309));var s=o.stateNode}if(!s)throw Error(i(147,e));var f=s,p=""+e;return n!==null&&n.ref!==null&&typeof n.ref=="function"&&n.ref._stringRef===p?n.ref:(n=function(_){var T=f.refs;_===null?delete T[p]:T[p]=_},n._stringRef=p,n)}if(typeof e!="string")throw Error(i(284));if(!o._owner)throw Error(i(290,e))}return e}function cs(e,n){throw e=Object.prototype.toString.call(n),Error(i(31,e==="[object Object]"?"object with keys {"+Object.keys(n).join(", ")+"}":e))}function xf(e){var n=e._init;return n(e._payload)}function wf(e){function n(X,B){if(e){var Q=X.deletions;Q===null?(X.deletions=[B],X.flags|=16):Q.push(B)}}function o(X,B){if(!e)return null;for(;B!==null;)n(X,B),B=B.sibling;return null}function s(X,B){for(X=new Map;B!==null;)B.key!==null?X.set(B.key,B):X.set(B.index,B),B=B.sibling;return X}function f(X,B){return X=On(X,B),X.index=0,X.sibling=null,X}function p(X,B,Q){return X.index=Q,e?(Q=X.alternate,Q!==null?(Q=Q.index,Q<B?(X.flags|=2,B):Q):(X.flags|=2,B)):(X.flags|=1048576,B)}function _(X){return e&&X.alternate===null&&(X.flags|=2),X}function T(X,B,Q,ae){return B===null||B.tag!==6?(B=pu(Q,X.mode,ae),B.return=X,B):(B=f(B,Q),B.return=X,B)}function O(X,B,Q,ae){var ve=Q.type;return ve===W?oe(X,B,Q.props.children,ae,Q.key):B!==null&&(B.elementType===ve||typeof ve=="object"&&ve!==null&&ve.$$typeof===$&&xf(ve)===B.type)?(ae=f(B,Q.props),ae.ref=Ho(X,B,Q),ae.return=X,ae):(ae=Ls(Q.type,Q.key,Q.props,null,X.mode,ae),ae.ref=Ho(X,B,Q),ae.return=X,ae)}function q(X,B,Q,ae){return B===null||B.tag!==4||B.stateNode.containerInfo!==Q.containerInfo||B.stateNode.implementation!==Q.implementation?(B=hu(Q,X.mode,ae),B.return=X,B):(B=f(B,Q.children||[]),B.return=X,B)}function oe(X,B,Q,ae,ve){return B===null||B.tag!==7?(B=fr(Q,X.mode,ae,ve),B.return=X,B):(B=f(B,Q),B.return=X,B)}function le(X,B,Q){if(typeof B=="string"&&B!==""||typeof B=="number")return B=pu(""+B,X.mode,Q),B.return=X,B;if(typeof B=="object"&&B!==null){switch(B.$$typeof){case F:return Q=Ls(B.type,B.key,B.props,null,X.mode,Q),Q.ref=Ho(X,null,B),Q.return=X,Q;case D:return B=hu(B,X.mode,Q),B.return=X,B;case $:var ae=B._init;return le(X,ae(B._payload),Q)}if(Ze(B)||A(B))return B=fr(B,X.mode,Q,null),B.return=X,B;cs(X,B)}return null}function re(X,B,Q,ae){var ve=B!==null?B.key:null;if(typeof Q=="string"&&Q!==""||typeof Q=="number")return ve!==null?null:T(X,B,""+Q,ae);if(typeof Q=="object"&&Q!==null){switch(Q.$$typeof){case F:return Q.key===ve?O(X,B,Q,ae):null;case D:return Q.key===ve?q(X,B,Q,ae):null;case $:return ve=Q._init,re(X,B,ve(Q._payload),ae)}if(Ze(Q)||A(Q))return ve!==null?null:oe(X,B,Q,ae,null);cs(X,Q)}return null}function pe(X,B,Q,ae,ve){if(typeof ae=="string"&&ae!==""||typeof ae=="number")return X=X.get(Q)||null,T(B,X,""+ae,ve);if(typeof ae=="object"&&ae!==null){switch(ae.$$typeof){case F:return X=X.get(ae.key===null?Q:ae.key)||null,O(B,X,ae,ve);case D:return X=X.get(ae.key===null?Q:ae.key)||null,q(B,X,ae,ve);case $:var Ee=ae._init;return pe(X,B,Q,Ee(ae._payload),ve)}if(Ze(ae)||A(ae))return X=X.get(Q)||null,oe(B,X,ae,ve,null);cs(B,ae)}return null}function me(X,B,Q,ae){for(var ve=null,Ee=null,Ne=B,Ce=B=0,tt=null;Ne!==null&&Ce<Q.length;Ce++){Ne.index>Ce?(tt=Ne,Ne=null):tt=Ne.sibling;var Te=re(X,Ne,Q[Ce],ae);if(Te===null){Ne===null&&(Ne=tt);break}e&&Ne&&Te.alternate===null&&n(X,Ne),B=p(Te,B,Ce),Ee===null?ve=Te:Ee.sibling=Te,Ee=Te,Ne=tt}if(Ce===Q.length)return o(X,Ne),be&&rr(X,Ce),ve;if(Ne===null){for(;Ce<Q.length;Ce++)Ne=le(X,Q[Ce],ae),Ne!==null&&(B=p(Ne,B,Ce),Ee===null?ve=Ne:Ee.sibling=Ne,Ee=Ne);return be&&rr(X,Ce),ve}for(Ne=s(X,Ne);Ce<Q.length;Ce++)tt=pe(Ne,X,Ce,Q[Ce],ae),tt!==null&&(e&&tt.alternate!==null&&Ne.delete(tt.key===null?Ce:tt.key),B=p(tt,B,Ce),Ee===null?ve=tt:Ee.sibling=tt,Ee=tt);return e&&Ne.forEach(function(Fn){return n(X,Fn)}),be&&rr(X,Ce),ve}function ye(X,B,Q,ae){var ve=A(Q);if(typeof ve!="function")throw Error(i(150));if(Q=ve.call(Q),Q==null)throw Error(i(151));for(var Ee=ve=null,Ne=B,Ce=B=0,tt=null,Te=Q.next();Ne!==null&&!Te.done;Ce++,Te=Q.next()){Ne.index>Ce?(tt=Ne,Ne=null):tt=Ne.sibling;var Fn=re(X,Ne,Te.value,ae);if(Fn===null){Ne===null&&(Ne=tt);break}e&&Ne&&Fn.alternate===null&&n(X,Ne),B=p(Fn,B,Ce),Ee===null?ve=Fn:Ee.sibling=Fn,Ee=Fn,Ne=tt}if(Te.done)return o(X,Ne),be&&rr(X,Ce),ve;if(Ne===null){for(;!Te.done;Ce++,Te=Q.next())Te=le(X,Te.value,ae),Te!==null&&(B=p(Te,B,Ce),Ee===null?ve=Te:Ee.sibling=Te,Ee=Te);return be&&rr(X,Ce),ve}for(Ne=s(X,Ne);!Te.done;Ce++,Te=Q.next())Te=pe(Ne,X,Ce,Te.value,ae),Te!==null&&(e&&Te.alternate!==null&&Ne.delete(Te.key===null?Ce:Te.key),B=p(Te,B,Ce),Ee===null?ve=Te:Ee.sibling=Te,Ee=Te);return e&&Ne.forEach(function(H0){return n(X,H0)}),be&&rr(X,Ce),ve}function We(X,B,Q,ae){if(typeof Q=="object"&&Q!==null&&Q.type===W&&Q.key===null&&(Q=Q.props.children),typeof Q=="object"&&Q!==null){switch(Q.$$typeof){case F:e:{for(var ve=Q.key,Ee=B;Ee!==null;){if(Ee.key===ve){if(ve=Q.type,ve===W){if(Ee.tag===7){o(X,Ee.sibling),B=f(Ee,Q.props.children),B.return=X,X=B;break e}}else if(Ee.elementType===ve||typeof ve=="object"&&ve!==null&&ve.$$typeof===$&&xf(ve)===Ee.type){o(X,Ee.sibling),B=f(Ee,Q.props),B.ref=Ho(X,Ee,Q),B.return=X,X=B;break e}o(X,Ee);break}else n(X,Ee);Ee=Ee.sibling}Q.type===W?(B=fr(Q.props.children,X.mode,ae,Q.key),B.return=X,X=B):(ae=Ls(Q.type,Q.key,Q.props,null,X.mode,ae),ae.ref=Ho(X,B,Q),ae.return=X,X=ae)}return _(X);case D:e:{for(Ee=Q.key;B!==null;){if(B.key===Ee)if(B.tag===4&&B.stateNode.containerInfo===Q.containerInfo&&B.stateNode.implementation===Q.implementation){o(X,B.sibling),B=f(B,Q.children||[]),B.return=X,X=B;break e}else{o(X,B);break}else n(X,B);B=B.sibling}B=hu(Q,X.mode,ae),B.return=X,X=B}return _(X);case $:return Ee=Q._init,We(X,B,Ee(Q._payload),ae)}if(Ze(Q))return me(X,B,Q,ae);if(A(Q))return ye(X,B,Q,ae);cs(X,Q)}return typeof Q=="string"&&Q!==""||typeof Q=="number"?(Q=""+Q,B!==null&&B.tag===6?(o(X,B.sibling),B=f(B,Q),B.return=X,X=B):(o(X,B),B=pu(Q,X.mode,ae),B.return=X,X=B),_(X)):o(X,B)}return We}var Br=wf(!0),_f=wf(!1),fs=Pn(null),ds=null,Ur=null,ka=null;function Ea(){ka=Ur=ds=null}function Na(e){var n=fs.current;De(fs),e._currentValue=n}function Ca(e,n,o){for(;e!==null;){var s=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,s!==null&&(s.childLanes|=n)):s!==null&&(s.childLanes&n)!==n&&(s.childLanes|=n),e===o)break;e=e.return}}function Wr(e,n){ds=e,ka=Ur=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&n)!==0&&(ht=!0),e.firstContext=null)}function Rt(e){var n=e._currentValue;if(ka!==e)if(e={context:e,memoizedValue:n,next:null},Ur===null){if(ds===null)throw Error(i(308));Ur=e,ds.dependencies={lanes:0,firstContext:e}}else Ur=Ur.next=e;return n}var or=null;function Ma(e){or===null?or=[e]:or.push(e)}function Sf(e,n,o,s){var f=n.interleaved;return f===null?(o.next=o,Ma(n)):(o.next=f.next,f.next=o),n.interleaved=o,pn(e,s)}function pn(e,n){e.lanes|=n;var o=e.alternate;for(o!==null&&(o.lanes|=n),o=e,e=e.return;e!==null;)e.childLanes|=n,o=e.alternate,o!==null&&(o.childLanes|=n),o=e,e=e.return;return o.tag===3?o.stateNode:null}var Rn=!1;function ja(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function kf(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function hn(e,n){return{eventTime:e,lane:n,tag:0,payload:null,callback:null,next:null}}function zn(e,n,o){var s=e.updateQueue;if(s===null)return null;if(s=s.shared,(Pe&2)!==0){var f=s.pending;return f===null?n.next=n:(n.next=f.next,f.next=n),s.pending=n,pn(e,o)}return f=s.interleaved,f===null?(n.next=n,Ma(s)):(n.next=f.next,f.next=n),s.interleaved=n,pn(e,o)}function ps(e,n,o){if(n=n.updateQueue,n!==null&&(n=n.shared,(o&4194240)!==0)){var s=n.lanes;s&=e.pendingLanes,o|=s,n.lanes=o,Pr(e,o)}}function Ef(e,n){var o=e.updateQueue,s=e.alternate;if(s!==null&&(s=s.updateQueue,o===s)){var f=null,p=null;if(o=o.firstBaseUpdate,o!==null){do{var _={eventTime:o.eventTime,lane:o.lane,tag:o.tag,payload:o.payload,callback:o.callback,next:null};p===null?f=p=_:p=p.next=_,o=o.next}while(o!==null);p===null?f=p=n:p=p.next=n}else f=p=n;o={baseState:s.baseState,firstBaseUpdate:f,lastBaseUpdate:p,shared:s.shared,effects:s.effects},e.updateQueue=o;return}e=o.lastBaseUpdate,e===null?o.firstBaseUpdate=n:e.next=n,o.lastBaseUpdate=n}function hs(e,n,o,s){var f=e.updateQueue;Rn=!1;var p=f.firstBaseUpdate,_=f.lastBaseUpdate,T=f.shared.pending;if(T!==null){f.shared.pending=null;var O=T,q=O.next;O.next=null,_===null?p=q:_.next=q,_=O;var oe=e.alternate;oe!==null&&(oe=oe.updateQueue,T=oe.lastBaseUpdate,T!==_&&(T===null?oe.firstBaseUpdate=q:T.next=q,oe.lastBaseUpdate=O))}if(p!==null){var le=f.baseState;_=0,oe=q=O=null,T=p;do{var re=T.lane,pe=T.eventTime;if((s&re)===re){oe!==null&&(oe=oe.next={eventTime:pe,lane:0,tag:T.tag,payload:T.payload,callback:T.callback,next:null});e:{var me=e,ye=T;switch(re=n,pe=o,ye.tag){case 1:if(me=ye.payload,typeof me=="function"){le=me.call(pe,le,re);break e}le=me;break e;case 3:me.flags=me.flags&-65537|128;case 0:if(me=ye.payload,re=typeof me=="function"?me.call(pe,le,re):me,re==null)break e;le=H({},le,re);break e;case 2:Rn=!0}}T.callback!==null&&T.lane!==0&&(e.flags|=64,re=f.effects,re===null?f.effects=[T]:re.push(T))}else pe={eventTime:pe,lane:re,tag:T.tag,payload:T.payload,callback:T.callback,next:null},oe===null?(q=oe=pe,O=le):oe=oe.next=pe,_|=re;if(T=T.next,T===null){if(T=f.shared.pending,T===null)break;re=T,T=re.next,re.next=null,f.lastBaseUpdate=re,f.shared.pending=null}}while(!0);if(oe===null&&(O=le),f.baseState=O,f.firstBaseUpdate=q,f.lastBaseUpdate=oe,n=f.shared.interleaved,n!==null){f=n;do _|=f.lane,f=f.next;while(f!==n)}else p===null&&(f.shared.lanes=0);lr|=_,e.lanes=_,e.memoizedState=le}}function Nf(e,n,o){if(e=n.effects,n.effects=null,e!==null)for(n=0;n<e.length;n++){var s=e[n],f=s.callback;if(f!==null){if(s.callback=null,s=o,typeof f!="function")throw Error(i(191,f));f.call(s)}}}var Vo={},Jt=Pn(Vo),Bo=Pn(Vo),Uo=Pn(Vo);function ir(e){if(e===Vo)throw Error(i(174));return e}function Pa(e,n){switch(Le(Uo,n),Le(Bo,e),Le(Jt,Vo),e=n.nodeType,e){case 9:case 11:n=(n=n.documentElement)?n.namespaceURI:xt(null,"");break;default:e=e===8?n.parentNode:n,n=e.namespaceURI||null,e=e.tagName,n=xt(n,e)}De(Jt),Le(Jt,n)}function Yr(){De(Jt),De(Bo),De(Uo)}function Cf(e){ir(Uo.current);var n=ir(Jt.current),o=xt(n,e.type);n!==o&&(Le(Bo,e),Le(Jt,o))}function Ia(e){Bo.current===e&&(De(Jt),De(Bo))}var He=Pn(0);function gs(e){for(var n=e;n!==null;){if(n.tag===13){var o=n.memoizedState;if(o!==null&&(o=o.dehydrated,o===null||o.data==="$?"||o.data==="$!"))return n}else if(n.tag===19&&n.memoizedProps.revealOrder!==void 0){if((n.flags&128)!==0)return n}else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var Ta=[];function Ra(){for(var e=0;e<Ta.length;e++)Ta[e]._workInProgressVersionPrimary=null;Ta.length=0}var ms=M.ReactCurrentDispatcher,za=M.ReactCurrentBatchConfig,sr=0,Ve=null,Qe=null,Je=null,ys=!1,Wo=!1,Yo=0,u0=0;function st(){throw Error(i(321))}function La(e,n){if(n===null)return!1;for(var o=0;o<n.length&&o<e.length;o++)if(!Dt(e[o],n[o]))return!1;return!0}function Aa(e,n,o,s,f,p){if(sr=p,Ve=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,ms.current=e===null||e.memoizedState===null?p0:h0,e=o(s,f),Wo){p=0;do{if(Wo=!1,Yo=0,25<=p)throw Error(i(301));p+=1,Je=Qe=null,n.updateQueue=null,ms.current=g0,e=o(s,f)}while(Wo)}if(ms.current=ws,n=Qe!==null&&Qe.next!==null,sr=0,Je=Qe=Ve=null,ys=!1,n)throw Error(i(300));return e}function Da(){var e=Yo!==0;return Yo=0,e}function en(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Je===null?Ve.memoizedState=Je=e:Je=Je.next=e,Je}function zt(){if(Qe===null){var e=Ve.alternate;e=e!==null?e.memoizedState:null}else e=Qe.next;var n=Je===null?Ve.memoizedState:Je.next;if(n!==null)Je=n,Qe=e;else{if(e===null)throw Error(i(310));Qe=e,e={memoizedState:Qe.memoizedState,baseState:Qe.baseState,baseQueue:Qe.baseQueue,queue:Qe.queue,next:null},Je===null?Ve.memoizedState=Je=e:Je=Je.next=e}return Je}function Xo(e,n){return typeof n=="function"?n(e):n}function $a(e){var n=zt(),o=n.queue;if(o===null)throw Error(i(311));o.lastRenderedReducer=e;var s=Qe,f=s.baseQueue,p=o.pending;if(p!==null){if(f!==null){var _=f.next;f.next=p.next,p.next=_}s.baseQueue=f=p,o.pending=null}if(f!==null){p=f.next,s=s.baseState;var T=_=null,O=null,q=p;do{var oe=q.lane;if((sr&oe)===oe)O!==null&&(O=O.next={lane:0,action:q.action,hasEagerState:q.hasEagerState,eagerState:q.eagerState,next:null}),s=q.hasEagerState?q.eagerState:e(s,q.action);else{var le={lane:oe,action:q.action,hasEagerState:q.hasEagerState,eagerState:q.eagerState,next:null};O===null?(T=O=le,_=s):O=O.next=le,Ve.lanes|=oe,lr|=oe}q=q.next}while(q!==null&&q!==p);O===null?_=s:O.next=T,Dt(s,n.memoizedState)||(ht=!0),n.memoizedState=s,n.baseState=_,n.baseQueue=O,o.lastRenderedState=s}if(e=o.interleaved,e!==null){f=e;do p=f.lane,Ve.lanes|=p,lr|=p,f=f.next;while(f!==e)}else f===null&&(o.lanes=0);return[n.memoizedState,o.dispatch]}function ba(e){var n=zt(),o=n.queue;if(o===null)throw Error(i(311));o.lastRenderedReducer=e;var s=o.dispatch,f=o.pending,p=n.memoizedState;if(f!==null){o.pending=null;var _=f=f.next;do p=e(p,_.action),_=_.next;while(_!==f);Dt(p,n.memoizedState)||(ht=!0),n.memoizedState=p,n.baseQueue===null&&(n.baseState=p),o.lastRenderedState=p}return[p,s]}function Mf(){}function jf(e,n){var o=Ve,s=zt(),f=n(),p=!Dt(s.memoizedState,f);if(p&&(s.memoizedState=f,ht=!0),s=s.queue,Oa(Tf.bind(null,o,s,e),[e]),s.getSnapshot!==n||p||Je!==null&&Je.memoizedState.tag&1){if(o.flags|=2048,Ko(9,If.bind(null,o,s,f,n),void 0,null),et===null)throw Error(i(349));(sr&30)!==0||Pf(o,n,f)}return f}function Pf(e,n,o){e.flags|=16384,e={getSnapshot:n,value:o},n=Ve.updateQueue,n===null?(n={lastEffect:null,stores:null},Ve.updateQueue=n,n.stores=[e]):(o=n.stores,o===null?n.stores=[e]:o.push(e))}function If(e,n,o,s){n.value=o,n.getSnapshot=s,Rf(n)&&zf(e)}function Tf(e,n,o){return o(function(){Rf(n)&&zf(e)})}function Rf(e){var n=e.getSnapshot;e=e.value;try{var o=n();return!Dt(e,o)}catch{return!0}}function zf(e){var n=pn(e,1);n!==null&&Ht(n,e,1,-1)}function Lf(e){var n=en();return typeof e=="function"&&(e=e()),n.memoizedState=n.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Xo,lastRenderedState:e},n.queue=e,e=e.dispatch=d0.bind(null,Ve,e),[n.memoizedState,e]}function Ko(e,n,o,s){return e={tag:e,create:n,destroy:o,deps:s,next:null},n=Ve.updateQueue,n===null?(n={lastEffect:null,stores:null},Ve.updateQueue=n,n.lastEffect=e.next=e):(o=n.lastEffect,o===null?n.lastEffect=e.next=e:(s=o.next,o.next=e,e.next=s,n.lastEffect=e)),e}function Af(){return zt().memoizedState}function vs(e,n,o,s){var f=en();Ve.flags|=e,f.memoizedState=Ko(1|n,o,void 0,s===void 0?null:s)}function xs(e,n,o,s){var f=zt();s=s===void 0?null:s;var p=void 0;if(Qe!==null){var _=Qe.memoizedState;if(p=_.destroy,s!==null&&La(s,_.deps)){f.memoizedState=Ko(n,o,p,s);return}}Ve.flags|=e,f.memoizedState=Ko(1|n,o,p,s)}function Df(e,n){return vs(8390656,8,e,n)}function Oa(e,n){return xs(2048,8,e,n)}function $f(e,n){return xs(4,2,e,n)}function bf(e,n){return xs(4,4,e,n)}function Of(e,n){if(typeof n=="function")return e=e(),n(e),function(){n(null)};if(n!=null)return e=e(),n.current=e,function(){n.current=null}}function Ff(e,n,o){return o=o!=null?o.concat([e]):null,xs(4,4,Of.bind(null,n,e),o)}function Fa(){}function Hf(e,n){var o=zt();n=n===void 0?null:n;var s=o.memoizedState;return s!==null&&n!==null&&La(n,s[1])?s[0]:(o.memoizedState=[e,n],e)}function Vf(e,n){var o=zt();n=n===void 0?null:n;var s=o.memoizedState;return s!==null&&n!==null&&La(n,s[1])?s[0]:(e=e(),o.memoizedState=[e,n],e)}function Bf(e,n,o){return(sr&21)===0?(e.baseState&&(e.baseState=!1,ht=!0),e.memoizedState=o):(Dt(o,n)||(o=Hi(),Ve.lanes|=o,lr|=o,e.baseState=!0),n)}function c0(e,n){var o=ze;ze=o!==0&&4>o?o:4,e(!0);var s=za.transition;za.transition={};try{e(!1),n()}finally{ze=o,za.transition=s}}function Uf(){return zt().memoizedState}function f0(e,n,o){var s=$n(e);if(o={lane:s,action:o,hasEagerState:!1,eagerState:null,next:null},Wf(e))Yf(n,o);else if(o=Sf(e,n,o,s),o!==null){var f=ct();Ht(o,e,s,f),Xf(o,n,s)}}function d0(e,n,o){var s=$n(e),f={lane:s,action:o,hasEagerState:!1,eagerState:null,next:null};if(Wf(e))Yf(n,f);else{var p=e.alternate;if(e.lanes===0&&(p===null||p.lanes===0)&&(p=n.lastRenderedReducer,p!==null))try{var _=n.lastRenderedState,T=p(_,o);if(f.hasEagerState=!0,f.eagerState=T,Dt(T,_)){var O=n.interleaved;O===null?(f.next=f,Ma(n)):(f.next=O.next,O.next=f),n.interleaved=f;return}}catch{}finally{}o=Sf(e,n,f,s),o!==null&&(f=ct(),Ht(o,e,s,f),Xf(o,n,s))}}function Wf(e){var n=e.alternate;return e===Ve||n!==null&&n===Ve}function Yf(e,n){Wo=ys=!0;var o=e.pending;o===null?n.next=n:(n.next=o.next,o.next=n),e.pending=n}function Xf(e,n,o){if((o&4194240)!==0){var s=n.lanes;s&=e.pendingLanes,o|=s,n.lanes=o,Pr(e,o)}}var ws={readContext:Rt,useCallback:st,useContext:st,useEffect:st,useImperativeHandle:st,useInsertionEffect:st,useLayoutEffect:st,useMemo:st,useReducer:st,useRef:st,useState:st,useDebugValue:st,useDeferredValue:st,useTransition:st,useMutableSource:st,useSyncExternalStore:st,useId:st,unstable_isNewReconciler:!1},p0={readContext:Rt,useCallback:function(e,n){return en().memoizedState=[e,n===void 0?null:n],e},useContext:Rt,useEffect:Df,useImperativeHandle:function(e,n,o){return o=o!=null?o.concat([e]):null,vs(4194308,4,Of.bind(null,n,e),o)},useLayoutEffect:function(e,n){return vs(4194308,4,e,n)},useInsertionEffect:function(e,n){return vs(4,2,e,n)},useMemo:function(e,n){var o=en();return n=n===void 0?null:n,e=e(),o.memoizedState=[e,n],e},useReducer:function(e,n,o){var s=en();return n=o!==void 0?o(n):n,s.memoizedState=s.baseState=n,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},s.queue=e,e=e.dispatch=f0.bind(null,Ve,e),[s.memoizedState,e]},useRef:function(e){var n=en();return e={current:e},n.memoizedState=e},useState:Lf,useDebugValue:Fa,useDeferredValue:function(e){return en().memoizedState=e},useTransition:function(){var e=Lf(!1),n=e[0];return e=c0.bind(null,e[1]),en().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,o){var s=Ve,f=en();if(be){if(o===void 0)throw Error(i(407));o=o()}else{if(o=n(),et===null)throw Error(i(349));(sr&30)!==0||Pf(s,n,o)}f.memoizedState=o;var p={value:o,getSnapshot:n};return f.queue=p,Df(Tf.bind(null,s,p,e),[e]),s.flags|=2048,Ko(9,If.bind(null,s,p,o,n),void 0,null),o},useId:function(){var e=en(),n=et.identifierPrefix;if(be){var o=dn,s=fn;o=(s&~(1<<32-_t(s)-1)).toString(32)+o,n=":"+n+"R"+o,o=Yo++,0<o&&(n+="H"+o.toString(32)),n+=":"}else o=u0++,n=":"+n+"r"+o.toString(32)+":";return e.memoizedState=n},unstable_isNewReconciler:!1},h0={readContext:Rt,useCallback:Hf,useContext:Rt,useEffect:Oa,useImperativeHandle:Ff,useInsertionEffect:$f,useLayoutEffect:bf,useMemo:Vf,useReducer:$a,useRef:Af,useState:function(){return $a(Xo)},useDebugValue:Fa,useDeferredValue:function(e){var n=zt();return Bf(n,Qe.memoizedState,e)},useTransition:function(){var e=$a(Xo)[0],n=zt().memoizedState;return[e,n]},useMutableSource:Mf,useSyncExternalStore:jf,useId:Uf,unstable_isNewReconciler:!1},g0={readContext:Rt,useCallback:Hf,useContext:Rt,useEffect:Oa,useImperativeHandle:Ff,useInsertionEffect:$f,useLayoutEffect:bf,useMemo:Vf,useReducer:ba,useRef:Af,useState:function(){return ba(Xo)},useDebugValue:Fa,useDeferredValue:function(e){var n=zt();return Qe===null?n.memoizedState=e:Bf(n,Qe.memoizedState,e)},useTransition:function(){var e=ba(Xo)[0],n=zt().memoizedState;return[e,n]},useMutableSource:Mf,useSyncExternalStore:jf,useId:Uf,unstable_isNewReconciler:!1};function bt(e,n){if(e&&e.defaultProps){n=H({},n),e=e.defaultProps;for(var o in e)n[o]===void 0&&(n[o]=e[o]);return n}return n}function Ha(e,n,o,s){n=e.memoizedState,o=o(s,n),o=o==null?n:H({},n,o),e.memoizedState=o,e.lanes===0&&(e.updateQueue.baseState=o)}var _s={isMounted:function(e){return(e=e._reactInternals)?qt(e)===e:!1},enqueueSetState:function(e,n,o){e=e._reactInternals;var s=ct(),f=$n(e),p=hn(s,f);p.payload=n,o!=null&&(p.callback=o),n=zn(e,p,f),n!==null&&(Ht(n,e,f,s),ps(n,e,f))},enqueueReplaceState:function(e,n,o){e=e._reactInternals;var s=ct(),f=$n(e),p=hn(s,f);p.tag=1,p.payload=n,o!=null&&(p.callback=o),n=zn(e,p,f),n!==null&&(Ht(n,e,f,s),ps(n,e,f))},enqueueForceUpdate:function(e,n){e=e._reactInternals;var o=ct(),s=$n(e),f=hn(o,s);f.tag=2,n!=null&&(f.callback=n),n=zn(e,f,s),n!==null&&(Ht(n,e,s,o),ps(n,e,s))}};function Kf(e,n,o,s,f,p,_){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(s,p,_):n.prototype&&n.prototype.isPureReactComponent?!Lo(o,s)||!Lo(f,p):!0}function Qf(e,n,o){var s=!1,f=In,p=n.contextType;return typeof p=="object"&&p!==null?p=Rt(p):(f=pt(n)?tr:it.current,s=n.contextTypes,p=(s=s!=null)?Or(e,f):In),n=new n(o,p),e.memoizedState=n.state!==null&&n.state!==void 0?n.state:null,n.updater=_s,e.stateNode=n,n._reactInternals=e,s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=f,e.__reactInternalMemoizedMaskedChildContext=p),n}function Gf(e,n,o,s){e=n.state,typeof n.componentWillReceiveProps=="function"&&n.componentWillReceiveProps(o,s),typeof n.UNSAFE_componentWillReceiveProps=="function"&&n.UNSAFE_componentWillReceiveProps(o,s),n.state!==e&&_s.enqueueReplaceState(n,n.state,null)}function Va(e,n,o,s){var f=e.stateNode;f.props=o,f.state=e.memoizedState,f.refs={},ja(e);var p=n.contextType;typeof p=="object"&&p!==null?f.context=Rt(p):(p=pt(n)?tr:it.current,f.context=Or(e,p)),f.state=e.memoizedState,p=n.getDerivedStateFromProps,typeof p=="function"&&(Ha(e,n,p,o),f.state=e.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof f.getSnapshotBeforeUpdate=="function"||typeof f.UNSAFE_componentWillMount!="function"&&typeof f.componentWillMount!="function"||(n=f.state,typeof f.componentWillMount=="function"&&f.componentWillMount(),typeof f.UNSAFE_componentWillMount=="function"&&f.UNSAFE_componentWillMount(),n!==f.state&&_s.enqueueReplaceState(f,f.state,null),hs(e,o,f,s),f.state=e.memoizedState),typeof f.componentDidMount=="function"&&(e.flags|=4194308)}function Xr(e,n){try{var o="",s=n;do o+=ue(s),s=s.return;while(s);var f=o}catch(p){f=`
-Error generating stack: `+p.message+`
-`+p.stack}return{value:e,source:n,stack:f,digest:null}}function Ba(e,n,o){return{value:e,source:null,stack:o??null,digest:n??null}}function Ua(e,n){try{console.error(n.value)}catch(o){setTimeout(function(){throw o})}}var m0=typeof WeakMap=="function"?WeakMap:Map;function qf(e,n,o){o=hn(-1,o),o.tag=3,o.payload={element:null};var s=n.value;return o.callback=function(){js||(js=!0,iu=s),Ua(e,n)},o}function Zf(e,n,o){o=hn(-1,o),o.tag=3;var s=e.type.getDerivedStateFromError;if(typeof s=="function"){var f=n.value;o.payload=function(){return s(f)},o.callback=function(){Ua(e,n)}}var p=e.stateNode;return p!==null&&typeof p.componentDidCatch=="function"&&(o.callback=function(){Ua(e,n),typeof s!="function"&&(An===null?An=new Set([this]):An.add(this));var _=n.stack;this.componentDidCatch(n.value,{componentStack:_!==null?_:""})}),o}function Jf(e,n,o){var s=e.pingCache;if(s===null){s=e.pingCache=new m0;var f=new Set;s.set(n,f)}else f=s.get(n),f===void 0&&(f=new Set,s.set(n,f));f.has(o)||(f.add(o),e=I0.bind(null,e,n,o),n.then(e,e))}function ed(e){do{var n;if((n=e.tag===13)&&(n=e.memoizedState,n=n!==null?n.dehydrated!==null:!0),n)return e;e=e.return}while(e!==null);return null}function td(e,n,o,s,f){return(e.mode&1)===0?(e===n?e.flags|=65536:(e.flags|=128,o.flags|=131072,o.flags&=-52805,o.tag===1&&(o.alternate===null?o.tag=17:(n=hn(-1,1),n.tag=2,zn(o,n,1))),o.lanes|=1),e):(e.flags|=65536,e.lanes=f,e)}var y0=M.ReactCurrentOwner,ht=!1;function ut(e,n,o,s){n.child=e===null?_f(n,null,o,s):Br(n,e.child,o,s)}function nd(e,n,o,s,f){o=o.render;var p=n.ref;return Wr(n,f),s=Aa(e,n,o,s,p,f),o=Da(),e!==null&&!ht?(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~f,gn(e,n,f)):(be&&o&&va(n),n.flags|=1,ut(e,n,s,f),n.child)}function rd(e,n,o,s,f){if(e===null){var p=o.type;return typeof p=="function"&&!du(p)&&p.defaultProps===void 0&&o.compare===null&&o.defaultProps===void 0?(n.tag=15,n.type=p,od(e,n,p,s,f)):(e=Ls(o.type,null,s,n,n.mode,f),e.ref=n.ref,e.return=n,n.child=e)}if(p=e.child,(e.lanes&f)===0){var _=p.memoizedProps;if(o=o.compare,o=o!==null?o:Lo,o(_,s)&&e.ref===n.ref)return gn(e,n,f)}return n.flags|=1,e=On(p,s),e.ref=n.ref,e.return=n,n.child=e}function od(e,n,o,s,f){if(e!==null){var p=e.memoizedProps;if(Lo(p,s)&&e.ref===n.ref)if(ht=!1,n.pendingProps=s=p,(e.lanes&f)!==0)(e.flags&131072)!==0&&(ht=!0);else return n.lanes=e.lanes,gn(e,n,f)}return Wa(e,n,o,s,f)}function id(e,n,o){var s=n.pendingProps,f=s.children,p=e!==null?e.memoizedState:null;if(s.mode==="hidden")if((n.mode&1)===0)n.memoizedState={baseLanes:0,cachePool:null,transitions:null},Le(Qr,Nt),Nt|=o;else{if((o&1073741824)===0)return e=p!==null?p.baseLanes|o:o,n.lanes=n.childLanes=1073741824,n.memoizedState={baseLanes:e,cachePool:null,transitions:null},n.updateQueue=null,Le(Qr,Nt),Nt|=e,null;n.memoizedState={baseLanes:0,cachePool:null,transitions:null},s=p!==null?p.baseLanes:o,Le(Qr,Nt),Nt|=s}else p!==null?(s=p.baseLanes|o,n.memoizedState=null):s=o,Le(Qr,Nt),Nt|=s;return ut(e,n,f,o),n.child}function sd(e,n){var o=n.ref;(e===null&&o!==null||e!==null&&e.ref!==o)&&(n.flags|=512,n.flags|=2097152)}function Wa(e,n,o,s,f){var p=pt(o)?tr:it.current;return p=Or(n,p),Wr(n,f),o=Aa(e,n,o,s,p,f),s=Da(),e!==null&&!ht?(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~f,gn(e,n,f)):(be&&s&&va(n),n.flags|=1,ut(e,n,o,f),n.child)}function ld(e,n,o,s,f){if(pt(o)){var p=!0;is(n)}else p=!1;if(Wr(n,f),n.stateNode===null)ks(e,n),Qf(n,o,s),Va(n,o,s,f),s=!0;else if(e===null){var _=n.stateNode,T=n.memoizedProps;_.props=T;var O=_.context,q=o.contextType;typeof q=="object"&&q!==null?q=Rt(q):(q=pt(o)?tr:it.current,q=Or(n,q));var oe=o.getDerivedStateFromProps,le=typeof oe=="function"||typeof _.getSnapshotBeforeUpdate=="function";le||typeof _.UNSAFE_componentWillReceiveProps!="function"&&typeof _.componentWillReceiveProps!="function"||(T!==s||O!==q)&&Gf(n,_,s,q),Rn=!1;var re=n.memoizedState;_.state=re,hs(n,s,_,f),O=n.memoizedState,T!==s||re!==O||dt.current||Rn?(typeof oe=="function"&&(Ha(n,o,oe,s),O=n.memoizedState),(T=Rn||Kf(n,o,T,s,re,O,q))?(le||typeof _.UNSAFE_componentWillMount!="function"&&typeof _.componentWillMount!="function"||(typeof _.componentWillMount=="function"&&_.componentWillMount(),typeof _.UNSAFE_componentWillMount=="function"&&_.UNSAFE_componentWillMount()),typeof _.componentDidMount=="function"&&(n.flags|=4194308)):(typeof _.componentDidMount=="function"&&(n.flags|=4194308),n.memoizedProps=s,n.memoizedState=O),_.props=s,_.state=O,_.context=q,s=T):(typeof _.componentDidMount=="function"&&(n.flags|=4194308),s=!1)}else{_=n.stateNode,kf(e,n),T=n.memoizedProps,q=n.type===n.elementType?T:bt(n.type,T),_.props=q,le=n.pendingProps,re=_.context,O=o.contextType,typeof O=="object"&&O!==null?O=Rt(O):(O=pt(o)?tr:it.current,O=Or(n,O));var pe=o.getDerivedStateFromProps;(oe=typeof pe=="function"||typeof _.getSnapshotBeforeUpdate=="function")||typeof _.UNSAFE_componentWillReceiveProps!="function"&&typeof _.componentWillReceiveProps!="function"||(T!==le||re!==O)&&Gf(n,_,s,O),Rn=!1,re=n.memoizedState,_.state=re,hs(n,s,_,f);var me=n.memoizedState;T!==le||re!==me||dt.current||Rn?(typeof pe=="function"&&(Ha(n,o,pe,s),me=n.memoizedState),(q=Rn||Kf(n,o,q,s,re,me,O)||!1)?(oe||typeof _.UNSAFE_componentWillUpdate!="function"&&typeof _.componentWillUpdate!="function"||(typeof _.componentWillUpdate=="function"&&_.componentWillUpdate(s,me,O),typeof _.UNSAFE_componentWillUpdate=="function"&&_.UNSAFE_componentWillUpdate(s,me,O)),typeof _.componentDidUpdate=="function"&&(n.flags|=4),typeof _.getSnapshotBeforeUpdate=="function"&&(n.flags|=1024)):(typeof _.componentDidUpdate!="function"||T===e.memoizedProps&&re===e.memoizedState||(n.flags|=4),typeof _.getSnapshotBeforeUpdate!="function"||T===e.memoizedProps&&re===e.memoizedState||(n.flags|=1024),n.memoizedProps=s,n.memoizedState=me),_.props=s,_.state=me,_.context=O,s=q):(typeof _.componentDidUpdate!="function"||T===e.memoizedProps&&re===e.memoizedState||(n.flags|=4),typeof _.getSnapshotBeforeUpdate!="function"||T===e.memoizedProps&&re===e.memoizedState||(n.flags|=1024),s=!1)}return Ya(e,n,o,s,p,f)}function Ya(e,n,o,s,f,p){sd(e,n);var _=(n.flags&128)!==0;if(!s&&!_)return f&&df(n,o,!1),gn(e,n,p);s=n.stateNode,y0.current=n;var T=_&&typeof o.getDerivedStateFromError!="function"?null:s.render();return n.flags|=1,e!==null&&_?(n.child=Br(n,e.child,null,p),n.child=Br(n,null,T,p)):ut(e,n,T,p),n.memoizedState=s.state,f&&df(n,o,!0),n.child}function ad(e){var n=e.stateNode;n.pendingContext?cf(e,n.pendingContext,n.pendingContext!==n.context):n.context&&cf(e,n.context,!1),Pa(e,n.containerInfo)}function ud(e,n,o,s,f){return Vr(),Sa(f),n.flags|=256,ut(e,n,o,s),n.child}var Xa={dehydrated:null,treeContext:null,retryLane:0};function Ka(e){return{baseLanes:e,cachePool:null,transitions:null}}function cd(e,n,o){var s=n.pendingProps,f=He.current,p=!1,_=(n.flags&128)!==0,T;if((T=_)||(T=e!==null&&e.memoizedState===null?!1:(f&2)!==0),T?(p=!0,n.flags&=-129):(e===null||e.memoizedState!==null)&&(f|=1),Le(He,f&1),e===null)return _a(n),e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((n.mode&1)===0?n.lanes=1:e.data==="$!"?n.lanes=8:n.lanes=1073741824,null):(_=s.children,e=s.fallback,p?(s=n.mode,p=n.child,_={mode:"hidden",children:_},(s&1)===0&&p!==null?(p.childLanes=0,p.pendingProps=_):p=As(_,s,0,null),e=fr(e,s,o,null),p.return=n,e.return=n,p.sibling=e,n.child=p,n.child.memoizedState=Ka(o),n.memoizedState=Xa,e):Qa(n,_));if(f=e.memoizedState,f!==null&&(T=f.dehydrated,T!==null))return v0(e,n,_,s,T,f,o);if(p){p=s.fallback,_=n.mode,f=e.child,T=f.sibling;var O={mode:"hidden",children:s.children};return(_&1)===0&&n.child!==f?(s=n.child,s.childLanes=0,s.pendingProps=O,n.deletions=null):(s=On(f,O),s.subtreeFlags=f.subtreeFlags&14680064),T!==null?p=On(T,p):(p=fr(p,_,o,null),p.flags|=2),p.return=n,s.return=n,s.sibling=p,n.child=s,s=p,p=n.child,_=e.child.memoizedState,_=_===null?Ka(o):{baseLanes:_.baseLanes|o,cachePool:null,transitions:_.transitions},p.memoizedState=_,p.childLanes=e.childLanes&~o,n.memoizedState=Xa,s}return p=e.child,e=p.sibling,s=On(p,{mode:"visible",children:s.children}),(n.mode&1)===0&&(s.lanes=o),s.return=n,s.sibling=null,e!==null&&(o=n.deletions,o===null?(n.deletions=[e],n.flags|=16):o.push(e)),n.child=s,n.memoizedState=null,s}function Qa(e,n){return n=As({mode:"visible",children:n},e.mode,0,null),n.return=e,e.child=n}function Ss(e,n,o,s){return s!==null&&Sa(s),Br(n,e.child,null,o),e=Qa(n,n.pendingProps.children),e.flags|=2,n.memoizedState=null,e}function v0(e,n,o,s,f,p,_){if(o)return n.flags&256?(n.flags&=-257,s=Ba(Error(i(422))),Ss(e,n,_,s)):n.memoizedState!==null?(n.child=e.child,n.flags|=128,null):(p=s.fallback,f=n.mode,s=As({mode:"visible",children:s.children},f,0,null),p=fr(p,f,_,null),p.flags|=2,s.return=n,p.return=n,s.sibling=p,n.child=s,(n.mode&1)!==0&&Br(n,e.child,null,_),n.child.memoizedState=Ka(_),n.memoizedState=Xa,p);if((n.mode&1)===0)return Ss(e,n,_,null);if(f.data==="$!"){if(s=f.nextSibling&&f.nextSibling.dataset,s)var T=s.dgst;return s=T,p=Error(i(419)),s=Ba(p,s,void 0),Ss(e,n,_,s)}if(T=(_&e.childLanes)!==0,ht||T){if(s=et,s!==null){switch(_&-_){case 4:f=2;break;case 16:f=8;break;case 64: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:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:f=32;break;case 536870912:f=268435456;break;default:f=0}f=(f&(s.suspendedLanes|_))!==0?0:f,f!==0&&f!==p.retryLane&&(p.retryLane=f,pn(e,f),Ht(s,e,f,-1))}return fu(),s=Ba(Error(i(421))),Ss(e,n,_,s)}return f.data==="$?"?(n.flags|=128,n.child=e.child,n=T0.bind(null,e),f._reactRetry=n,null):(e=p.treeContext,Et=jn(f.nextSibling),kt=n,be=!0,$t=null,e!==null&&(It[Tt++]=fn,It[Tt++]=dn,It[Tt++]=nr,fn=e.id,dn=e.overflow,nr=n),n=Qa(n,s.children),n.flags|=4096,n)}function fd(e,n,o){e.lanes|=n;var s=e.alternate;s!==null&&(s.lanes|=n),Ca(e.return,n,o)}function Ga(e,n,o,s,f){var p=e.memoizedState;p===null?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:s,tail:o,tailMode:f}:(p.isBackwards=n,p.rendering=null,p.renderingStartTime=0,p.last=s,p.tail=o,p.tailMode=f)}function dd(e,n,o){var s=n.pendingProps,f=s.revealOrder,p=s.tail;if(ut(e,n,s.children,o),s=He.current,(s&2)!==0)s=s&1|2,n.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=n.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&fd(e,o,n);else if(e.tag===19)fd(e,o,n);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===n)break e;for(;e.sibling===null;){if(e.return===null||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}s&=1}if(Le(He,s),(n.mode&1)===0)n.memoizedState=null;else switch(f){case"forwards":for(o=n.child,f=null;o!==null;)e=o.alternate,e!==null&&gs(e)===null&&(f=o),o=o.sibling;o=f,o===null?(f=n.child,n.child=null):(f=o.sibling,o.sibling=null),Ga(n,!1,f,o,p);break;case"backwards":for(o=null,f=n.child,n.child=null;f!==null;){if(e=f.alternate,e!==null&&gs(e)===null){n.child=f;break}e=f.sibling,f.sibling=o,o=f,f=e}Ga(n,!0,o,null,p);break;case"together":Ga(n,!1,null,null,void 0);break;default:n.memoizedState=null}return n.child}function ks(e,n){(n.mode&1)===0&&e!==null&&(e.alternate=null,n.alternate=null,n.flags|=2)}function gn(e,n,o){if(e!==null&&(n.dependencies=e.dependencies),lr|=n.lanes,(o&n.childLanes)===0)return null;if(e!==null&&n.child!==e.child)throw Error(i(153));if(n.child!==null){for(e=n.child,o=On(e,e.pendingProps),n.child=o,o.return=n;e.sibling!==null;)e=e.sibling,o=o.sibling=On(e,e.pendingProps),o.return=n;o.sibling=null}return n.child}function x0(e,n,o){switch(n.tag){case 3:ad(n),Vr();break;case 5:Cf(n);break;case 1:pt(n.type)&&is(n);break;case 4:Pa(n,n.stateNode.containerInfo);break;case 10:var s=n.type._context,f=n.memoizedProps.value;Le(fs,s._currentValue),s._currentValue=f;break;case 13:if(s=n.memoizedState,s!==null)return s.dehydrated!==null?(Le(He,He.current&1),n.flags|=128,null):(o&n.child.childLanes)!==0?cd(e,n,o):(Le(He,He.current&1),e=gn(e,n,o),e!==null?e.sibling:null);Le(He,He.current&1);break;case 19:if(s=(o&n.childLanes)!==0,(e.flags&128)!==0){if(s)return dd(e,n,o);n.flags|=128}if(f=n.memoizedState,f!==null&&(f.rendering=null,f.tail=null,f.lastEffect=null),Le(He,He.current),s)break;return null;case 22:case 23:return n.lanes=0,id(e,n,o)}return gn(e,n,o)}var pd,qa,hd,gd;pd=function(e,n){for(var o=n.child;o!==null;){if(o.tag===5||o.tag===6)e.appendChild(o.stateNode);else if(o.tag!==4&&o.child!==null){o.child.return=o,o=o.child;continue}if(o===n)break;for(;o.sibling===null;){if(o.return===null||o.return===n)return;o=o.return}o.sibling.return=o.return,o=o.sibling}},qa=function(){},hd=function(e,n,o,s){var f=e.memoizedProps;if(f!==s){e=n.stateNode,ir(Jt.current);var p=null;switch(o){case"input":f=se(e,f),s=se(e,s),p=[];break;case"select":f=H({},f,{value:void 0}),s=H({},s,{value:void 0}),p=[];break;case"textarea":f=sn(e,f),s=sn(e,s),p=[];break;default:typeof f.onClick!="function"&&typeof s.onClick=="function"&&(e.onclick=ns)}fo(o,s);var _;o=null;for(q in f)if(!s.hasOwnProperty(q)&&f.hasOwnProperty(q)&&f[q]!=null)if(q==="style"){var T=f[q];for(_ in T)T.hasOwnProperty(_)&&(o||(o={}),o[_]="")}else q!=="dangerouslySetInnerHTML"&&q!=="children"&&q!=="suppressContentEditableWarning"&&q!=="suppressHydrationWarning"&&q!=="autoFocus"&&(a.hasOwnProperty(q)?p||(p=[]):(p=p||[]).push(q,null));for(q in s){var O=s[q];if(T=f!=null?f[q]:void 0,s.hasOwnProperty(q)&&O!==T&&(O!=null||T!=null))if(q==="style")if(T){for(_ in T)!T.hasOwnProperty(_)||O&&O.hasOwnProperty(_)||(o||(o={}),o[_]="");for(_ in O)O.hasOwnProperty(_)&&T[_]!==O[_]&&(o||(o={}),o[_]=O[_])}else o||(p||(p=[]),p.push(q,o)),o=O;else q==="dangerouslySetInnerHTML"?(O=O?O.__html:void 0,T=T?T.__html:void 0,O!=null&&T!==O&&(p=p||[]).push(q,O)):q==="children"?typeof O!="string"&&typeof O!="number"||(p=p||[]).push(q,""+O):q!=="suppressContentEditableWarning"&&q!=="suppressHydrationWarning"&&(a.hasOwnProperty(q)?(O!=null&&q==="onScroll"&&Ae("scroll",e),p||T===O||(p=[])):(p=p||[]).push(q,O))}o&&(p=p||[]).push("style",o);var q=p;(n.updateQueue=q)&&(n.flags|=4)}},gd=function(e,n,o,s){o!==s&&(n.flags|=4)};function Qo(e,n){if(!be)switch(e.tailMode){case"hidden":n=e.tail;for(var o=null;n!==null;)n.alternate!==null&&(o=n),n=n.sibling;o===null?e.tail=null:o.sibling=null;break;case"collapsed":o=e.tail;for(var s=null;o!==null;)o.alternate!==null&&(s=o),o=o.sibling;s===null?n||e.tail===null?e.tail=null:e.tail.sibling=null:s.sibling=null}}function lt(e){var n=e.alternate!==null&&e.alternate.child===e.child,o=0,s=0;if(n)for(var f=e.child;f!==null;)o|=f.lanes|f.childLanes,s|=f.subtreeFlags&14680064,s|=f.flags&14680064,f.return=e,f=f.sibling;else for(f=e.child;f!==null;)o|=f.lanes|f.childLanes,s|=f.subtreeFlags,s|=f.flags,f.return=e,f=f.sibling;return e.subtreeFlags|=s,e.childLanes=o,n}function w0(e,n,o){var s=n.pendingProps;switch(xa(n),n.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return lt(n),null;case 1:return pt(n.type)&&os(),lt(n),null;case 3:return s=n.stateNode,Yr(),De(dt),De(it),Ra(),s.pendingContext&&(s.context=s.pendingContext,s.pendingContext=null),(e===null||e.child===null)&&(us(n)?n.flags|=4:e===null||e.memoizedState.isDehydrated&&(n.flags&256)===0||(n.flags|=1024,$t!==null&&(au($t),$t=null))),qa(e,n),lt(n),null;case 5:Ia(n);var f=ir(Uo.current);if(o=n.type,e!==null&&n.stateNode!=null)hd(e,n,o,s,f),e.ref!==n.ref&&(n.flags|=512,n.flags|=2097152);else{if(!s){if(n.stateNode===null)throw Error(i(166));return lt(n),null}if(e=ir(Jt.current),us(n)){s=n.stateNode,o=n.type;var p=n.memoizedProps;switch(s[Zt]=n,s[Oo]=p,e=(n.mode&1)!==0,o){case"dialog":Ae("cancel",s),Ae("close",s);break;case"iframe":case"object":case"embed":Ae("load",s);break;case"video":case"audio":for(f=0;f<Do.length;f++)Ae(Do[f],s);break;case"source":Ae("error",s);break;case"img":case"image":case"link":Ae("error",s),Ae("load",s);break;case"details":Ae("toggle",s);break;case"input":ce(s,p),Ae("invalid",s);break;case"select":s._wrapperState={wasMultiple:!!p.multiple},Ae("invalid",s);break;case"textarea":Qt(s,p),Ae("invalid",s)}fo(o,p),f=null;for(var _ in p)if(p.hasOwnProperty(_)){var T=p[_];_==="children"?typeof T=="string"?s.textContent!==T&&(p.suppressHydrationWarning!==!0&&ts(s.textContent,T,e),f=["children",T]):typeof T=="number"&&s.textContent!==""+T&&(p.suppressHydrationWarning!==!0&&ts(s.textContent,T,e),f=["children",""+T]):a.hasOwnProperty(_)&&T!=null&&_==="onScroll"&&Ae("scroll",s)}switch(o){case"input":we(s),Ke(s,p,!0);break;case"textarea":we(s),ft(s);break;case"select":case"option":break;default:typeof p.onClick=="function"&&(s.onclick=ns)}s=f,n.updateQueue=s,s!==null&&(n.flags|=4)}else{_=f.nodeType===9?f:f.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=jt(o)),e==="http://www.w3.org/1999/xhtml"?o==="script"?(e=_.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof s.is=="string"?e=_.createElement(o,{is:s.is}):(e=_.createElement(o),o==="select"&&(_=e,s.multiple?_.multiple=!0:s.size&&(_.size=s.size))):e=_.createElementNS(e,o),e[Zt]=n,e[Oo]=s,pd(e,n,!1,!1),n.stateNode=e;e:{switch(_=po(o,s),o){case"dialog":Ae("cancel",e),Ae("close",e),f=s;break;case"iframe":case"object":case"embed":Ae("load",e),f=s;break;case"video":case"audio":for(f=0;f<Do.length;f++)Ae(Do[f],e);f=s;break;case"source":Ae("error",e),f=s;break;case"img":case"image":case"link":Ae("error",e),Ae("load",e),f=s;break;case"details":Ae("toggle",e),f=s;break;case"input":ce(e,s),f=se(e,s),Ae("invalid",e);break;case"option":f=s;break;case"select":e._wrapperState={wasMultiple:!!s.multiple},f=H({},s,{value:void 0}),Ae("invalid",e);break;case"textarea":Qt(e,s),f=sn(e,s),Ae("invalid",e);break;default:f=s}fo(o,f),T=f;for(p in T)if(T.hasOwnProperty(p)){var O=T[p];p==="style"?Ci(e,O):p==="dangerouslySetInnerHTML"?(O=O?O.__html:void 0,O!=null&&Sr(e,O)):p==="children"?typeof O=="string"?(o!=="textarea"||O!=="")&&ln(e,O):typeof O=="number"&&ln(e,""+O):p!=="suppressContentEditableWarning"&&p!=="suppressHydrationWarning"&&p!=="autoFocus"&&(a.hasOwnProperty(p)?O!=null&&p==="onScroll"&&Ae("scroll",e):O!=null&&k(e,p,O,_))}switch(o){case"input":we(e),Ke(e,s,!1);break;case"textarea":we(e),ft(e);break;case"option":s.value!=null&&e.setAttribute("value",""+G(s.value));break;case"select":e.multiple=!!s.multiple,p=s.value,p!=null?ot(e,!!s.multiple,p,!1):s.defaultValue!=null&&ot(e,!!s.multiple,s.defaultValue,!0);break;default:typeof f.onClick=="function"&&(e.onclick=ns)}switch(o){case"button":case"input":case"select":case"textarea":s=!!s.autoFocus;break e;case"img":s=!0;break e;default:s=!1}}s&&(n.flags|=4)}n.ref!==null&&(n.flags|=512,n.flags|=2097152)}return lt(n),null;case 6:if(e&&n.stateNode!=null)gd(e,n,e.memoizedProps,s);else{if(typeof s!="string"&&n.stateNode===null)throw Error(i(166));if(o=ir(Uo.current),ir(Jt.current),us(n)){if(s=n.stateNode,o=n.memoizedProps,s[Zt]=n,(p=s.nodeValue!==o)&&(e=kt,e!==null))switch(e.tag){case 3:ts(s.nodeValue,o,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&ts(s.nodeValue,o,(e.mode&1)!==0)}p&&(n.flags|=4)}else s=(o.nodeType===9?o:o.ownerDocument).createTextNode(s),s[Zt]=n,n.stateNode=s}return lt(n),null;case 13:if(De(He),s=n.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(be&&Et!==null&&(n.mode&1)!==0&&(n.flags&128)===0)vf(),Vr(),n.flags|=98560,p=!1;else if(p=us(n),s!==null&&s.dehydrated!==null){if(e===null){if(!p)throw Error(i(318));if(p=n.memoizedState,p=p!==null?p.dehydrated:null,!p)throw Error(i(317));p[Zt]=n}else Vr(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;lt(n),p=!1}else $t!==null&&(au($t),$t=null),p=!0;if(!p)return n.flags&65536?n:null}return(n.flags&128)!==0?(n.lanes=o,n):(s=s!==null,s!==(e!==null&&e.memoizedState!==null)&&s&&(n.child.flags|=8192,(n.mode&1)!==0&&(e===null||(He.current&1)!==0?Ge===0&&(Ge=3):fu())),n.updateQueue!==null&&(n.flags|=4),lt(n),null);case 4:return Yr(),qa(e,n),e===null&&$o(n.stateNode.containerInfo),lt(n),null;case 10:return Na(n.type._context),lt(n),null;case 17:return pt(n.type)&&os(),lt(n),null;case 19:if(De(He),p=n.memoizedState,p===null)return lt(n),null;if(s=(n.flags&128)!==0,_=p.rendering,_===null)if(s)Qo(p,!1);else{if(Ge!==0||e!==null&&(e.flags&128)!==0)for(e=n.child;e!==null;){if(_=gs(e),_!==null){for(n.flags|=128,Qo(p,!1),s=_.updateQueue,s!==null&&(n.updateQueue=s,n.flags|=4),n.subtreeFlags=0,s=o,o=n.child;o!==null;)p=o,e=s,p.flags&=14680066,_=p.alternate,_===null?(p.childLanes=0,p.lanes=e,p.child=null,p.subtreeFlags=0,p.memoizedProps=null,p.memoizedState=null,p.updateQueue=null,p.dependencies=null,p.stateNode=null):(p.childLanes=_.childLanes,p.lanes=_.lanes,p.child=_.child,p.subtreeFlags=0,p.deletions=null,p.memoizedProps=_.memoizedProps,p.memoizedState=_.memoizedState,p.updateQueue=_.updateQueue,p.type=_.type,e=_.dependencies,p.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),o=o.sibling;return Le(He,He.current&1|2),n.child}e=e.sibling}p.tail!==null&&Fe()>Gr&&(n.flags|=128,s=!0,Qo(p,!1),n.lanes=4194304)}else{if(!s)if(e=gs(_),e!==null){if(n.flags|=128,s=!0,o=e.updateQueue,o!==null&&(n.updateQueue=o,n.flags|=4),Qo(p,!0),p.tail===null&&p.tailMode==="hidden"&&!_.alternate&&!be)return lt(n),null}else 2*Fe()-p.renderingStartTime>Gr&&o!==1073741824&&(n.flags|=128,s=!0,Qo(p,!1),n.lanes=4194304);p.isBackwards?(_.sibling=n.child,n.child=_):(o=p.last,o!==null?o.sibling=_:n.child=_,p.last=_)}return p.tail!==null?(n=p.tail,p.rendering=n,p.tail=n.sibling,p.renderingStartTime=Fe(),n.sibling=null,o=He.current,Le(He,s?o&1|2:o&1),n):(lt(n),null);case 22:case 23:return cu(),s=n.memoizedState!==null,e!==null&&e.memoizedState!==null!==s&&(n.flags|=8192),s&&(n.mode&1)!==0?(Nt&1073741824)!==0&&(lt(n),n.subtreeFlags&6&&(n.flags|=8192)):lt(n),null;case 24:return null;case 25:return null}throw Error(i(156,n.tag))}function _0(e,n){switch(xa(n),n.tag){case 1:return pt(n.type)&&os(),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return Yr(),De(dt),De(it),Ra(),e=n.flags,(e&65536)!==0&&(e&128)===0?(n.flags=e&-65537|128,n):null;case 5:return Ia(n),null;case 13:if(De(He),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(i(340));Vr()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return De(He),null;case 4:return Yr(),null;case 10:return Na(n.type._context),null;case 22:case 23:return cu(),null;case 24:return null;default:return null}}var Es=!1,at=!1,S0=typeof WeakSet=="function"?WeakSet:Set,ge=null;function Kr(e,n){var o=e.ref;if(o!==null)if(typeof o=="function")try{o(null)}catch(s){Ue(e,n,s)}else o.current=null}function Za(e,n,o){try{o()}catch(s){Ue(e,n,s)}}var md=!1;function k0(e,n){if(ca=Ui,e=Xc(),na(e)){if("selectionStart"in e)var o={start:e.selectionStart,end:e.selectionEnd};else e:{o=(o=e.ownerDocument)&&o.defaultView||window;var s=o.getSelection&&o.getSelection();if(s&&s.rangeCount!==0){o=s.anchorNode;var f=s.anchorOffset,p=s.focusNode;s=s.focusOffset;try{o.nodeType,p.nodeType}catch{o=null;break e}var _=0,T=-1,O=-1,q=0,oe=0,le=e,re=null;t:for(;;){for(var pe;le!==o||f!==0&&le.nodeType!==3||(T=_+f),le!==p||s!==0&&le.nodeType!==3||(O=_+s),le.nodeType===3&&(_+=le.nodeValue.length),(pe=le.firstChild)!==null;)re=le,le=pe;for(;;){if(le===e)break t;if(re===o&&++q===f&&(T=_),re===p&&++oe===s&&(O=_),(pe=le.nextSibling)!==null)break;le=re,re=le.parentNode}le=pe}o=T===-1||O===-1?null:{start:T,end:O}}else o=null}o=o||{start:0,end:0}}else o=null;for(fa={focusedElem:e,selectionRange:o},Ui=!1,ge=n;ge!==null;)if(n=ge,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,ge=e;else for(;ge!==null;){n=ge;try{var me=n.alternate;if((n.flags&1024)!==0)switch(n.tag){case 0:case 11:case 15:break;case 1:if(me!==null){var ye=me.memoizedProps,We=me.memoizedState,X=n.stateNode,B=X.getSnapshotBeforeUpdate(n.elementType===n.type?ye:bt(n.type,ye),We);X.__reactInternalSnapshotBeforeUpdate=B}break;case 3:var Q=n.stateNode.containerInfo;Q.nodeType===1?Q.textContent="":Q.nodeType===9&&Q.documentElement&&Q.removeChild(Q.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(i(163))}}catch(ae){Ue(n,n.return,ae)}if(e=n.sibling,e!==null){e.return=n.return,ge=e;break}ge=n.return}return me=md,md=!1,me}function Go(e,n,o){var s=n.updateQueue;if(s=s!==null?s.lastEffect:null,s!==null){var f=s=s.next;do{if((f.tag&e)===e){var p=f.destroy;f.destroy=void 0,p!==void 0&&Za(n,o,p)}f=f.next}while(f!==s)}}function Ns(e,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var o=n=n.next;do{if((o.tag&e)===e){var s=o.create;o.destroy=s()}o=o.next}while(o!==n)}}function Ja(e){var n=e.ref;if(n!==null){var o=e.stateNode;switch(e.tag){case 5:e=o;break;default:e=o}typeof n=="function"?n(e):n.current=e}}function yd(e){var n=e.alternate;n!==null&&(e.alternate=null,yd(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&(delete n[Zt],delete n[Oo],delete n[ga],delete n[i0],delete n[s0])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function vd(e){return e.tag===5||e.tag===3||e.tag===4}function xd(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||vd(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function eu(e,n,o){var s=e.tag;if(s===5||s===6)e=e.stateNode,n?o.nodeType===8?o.parentNode.insertBefore(e,n):o.insertBefore(e,n):(o.nodeType===8?(n=o.parentNode,n.insertBefore(e,o)):(n=o,n.appendChild(e)),o=o._reactRootContainer,o!=null||n.onclick!==null||(n.onclick=ns));else if(s!==4&&(e=e.child,e!==null))for(eu(e,n,o),e=e.sibling;e!==null;)eu(e,n,o),e=e.sibling}function tu(e,n,o){var s=e.tag;if(s===5||s===6)e=e.stateNode,n?o.insertBefore(e,n):o.appendChild(e);else if(s!==4&&(e=e.child,e!==null))for(tu(e,n,o),e=e.sibling;e!==null;)tu(e,n,o),e=e.sibling}var nt=null,Ot=!1;function Ln(e,n,o){for(o=o.child;o!==null;)wd(e,n,o),o=o.sibling}function wd(e,n,o){if(wt&&typeof wt.onCommitFiberUnmount=="function")try{wt.onCommitFiberUnmount(Cr,o)}catch{}switch(o.tag){case 5:at||Kr(o,n);case 6:var s=nt,f=Ot;nt=null,Ln(e,n,o),nt=s,Ot=f,nt!==null&&(Ot?(e=nt,o=o.stateNode,e.nodeType===8?e.parentNode.removeChild(o):e.removeChild(o)):nt.removeChild(o.stateNode));break;case 18:nt!==null&&(Ot?(e=nt,o=o.stateNode,e.nodeType===8?ha(e.parentNode,o):e.nodeType===1&&ha(e,o),jo(e)):ha(nt,o.stateNode));break;case 4:s=nt,f=Ot,nt=o.stateNode.containerInfo,Ot=!0,Ln(e,n,o),nt=s,Ot=f;break;case 0:case 11:case 14:case 15:if(!at&&(s=o.updateQueue,s!==null&&(s=s.lastEffect,s!==null))){f=s=s.next;do{var p=f,_=p.destroy;p=p.tag,_!==void 0&&((p&2)!==0||(p&4)!==0)&&Za(o,n,_),f=f.next}while(f!==s)}Ln(e,n,o);break;case 1:if(!at&&(Kr(o,n),s=o.stateNode,typeof s.componentWillUnmount=="function"))try{s.props=o.memoizedProps,s.state=o.memoizedState,s.componentWillUnmount()}catch(T){Ue(o,n,T)}Ln(e,n,o);break;case 21:Ln(e,n,o);break;case 22:o.mode&1?(at=(s=at)||o.memoizedState!==null,Ln(e,n,o),at=s):Ln(e,n,o);break;default:Ln(e,n,o)}}function _d(e){var n=e.updateQueue;if(n!==null){e.updateQueue=null;var o=e.stateNode;o===null&&(o=e.stateNode=new S0),n.forEach(function(s){var f=R0.bind(null,e,s);o.has(s)||(o.add(s),s.then(f,f))})}}function Ft(e,n){var o=n.deletions;if(o!==null)for(var s=0;s<o.length;s++){var f=o[s];try{var p=e,_=n,T=_;e:for(;T!==null;){switch(T.tag){case 5:nt=T.stateNode,Ot=!1;break e;case 3:nt=T.stateNode.containerInfo,Ot=!0;break e;case 4:nt=T.stateNode.containerInfo,Ot=!0;break e}T=T.return}if(nt===null)throw Error(i(160));wd(p,_,f),nt=null,Ot=!1;var O=f.alternate;O!==null&&(O.return=null),f.return=null}catch(q){Ue(f,n,q)}}if(n.subtreeFlags&12854)for(n=n.child;n!==null;)Sd(n,e),n=n.sibling}function Sd(e,n){var o=e.alternate,s=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(Ft(n,e),tn(e),s&4){try{Go(3,e,e.return),Ns(3,e)}catch(ye){Ue(e,e.return,ye)}try{Go(5,e,e.return)}catch(ye){Ue(e,e.return,ye)}}break;case 1:Ft(n,e),tn(e),s&512&&o!==null&&Kr(o,o.return);break;case 5:if(Ft(n,e),tn(e),s&512&&o!==null&&Kr(o,o.return),e.flags&32){var f=e.stateNode;try{ln(f,"")}catch(ye){Ue(e,e.return,ye)}}if(s&4&&(f=e.stateNode,f!=null)){var p=e.memoizedProps,_=o!==null?o.memoizedProps:p,T=e.type,O=e.updateQueue;if(e.updateQueue=null,O!==null)try{T==="input"&&p.type==="radio"&&p.name!=null&&ke(f,p),po(T,_);var q=po(T,p);for(_=0;_<O.length;_+=2){var oe=O[_],le=O[_+1];oe==="style"?Ci(f,le):oe==="dangerouslySetInnerHTML"?Sr(f,le):oe==="children"?ln(f,le):k(f,oe,le,q)}switch(T){case"input":Me(f,p);break;case"textarea":Gt(f,p);break;case"select":var re=f._wrapperState.wasMultiple;f._wrapperState.wasMultiple=!!p.multiple;var pe=p.value;pe!=null?ot(f,!!p.multiple,pe,!1):re!==!!p.multiple&&(p.defaultValue!=null?ot(f,!!p.multiple,p.defaultValue,!0):ot(f,!!p.multiple,p.multiple?[]:"",!1))}f[Oo]=p}catch(ye){Ue(e,e.return,ye)}}break;case 6:if(Ft(n,e),tn(e),s&4){if(e.stateNode===null)throw Error(i(162));f=e.stateNode,p=e.memoizedProps;try{f.nodeValue=p}catch(ye){Ue(e,e.return,ye)}}break;case 3:if(Ft(n,e),tn(e),s&4&&o!==null&&o.memoizedState.isDehydrated)try{jo(n.containerInfo)}catch(ye){Ue(e,e.return,ye)}break;case 4:Ft(n,e),tn(e);break;case 13:Ft(n,e),tn(e),f=e.child,f.flags&8192&&(p=f.memoizedState!==null,f.stateNode.isHidden=p,!p||f.alternate!==null&&f.alternate.memoizedState!==null||(ou=Fe())),s&4&&_d(e);break;case 22:if(oe=o!==null&&o.memoizedState!==null,e.mode&1?(at=(q=at)||oe,Ft(n,e),at=q):Ft(n,e),tn(e),s&8192){if(q=e.memoizedState!==null,(e.stateNode.isHidden=q)&&!oe&&(e.mode&1)!==0)for(ge=e,oe=e.child;oe!==null;){for(le=ge=oe;ge!==null;){switch(re=ge,pe=re.child,re.tag){case 0:case 11:case 14:case 15:Go(4,re,re.return);break;case 1:Kr(re,re.return);var me=re.stateNode;if(typeof me.componentWillUnmount=="function"){s=re,o=re.return;try{n=s,me.props=n.memoizedProps,me.state=n.memoizedState,me.componentWillUnmount()}catch(ye){Ue(s,o,ye)}}break;case 5:Kr(re,re.return);break;case 22:if(re.memoizedState!==null){Nd(le);continue}}pe!==null?(pe.return=re,ge=pe):Nd(le)}oe=oe.sibling}e:for(oe=null,le=e;;){if(le.tag===5){if(oe===null){oe=le;try{f=le.stateNode,q?(p=f.style,typeof p.setProperty=="function"?p.setProperty("display","none","important"):p.display="none"):(T=le.stateNode,O=le.memoizedProps.style,_=O!=null&&O.hasOwnProperty("display")?O.display:null,T.style.display=Ni("display",_))}catch(ye){Ue(e,e.return,ye)}}}else if(le.tag===6){if(oe===null)try{le.stateNode.nodeValue=q?"":le.memoizedProps}catch(ye){Ue(e,e.return,ye)}}else if((le.tag!==22&&le.tag!==23||le.memoizedState===null||le===e)&&le.child!==null){le.child.return=le,le=le.child;continue}if(le===e)break e;for(;le.sibling===null;){if(le.return===null||le.return===e)break e;oe===le&&(oe=null),le=le.return}oe===le&&(oe=null),le.sibling.return=le.return,le=le.sibling}}break;case 19:Ft(n,e),tn(e),s&4&&_d(e);break;case 21:break;default:Ft(n,e),tn(e)}}function tn(e){var n=e.flags;if(n&2){try{e:{for(var o=e.return;o!==null;){if(vd(o)){var s=o;break e}o=o.return}throw Error(i(160))}switch(s.tag){case 5:var f=s.stateNode;s.flags&32&&(ln(f,""),s.flags&=-33);var p=xd(e);tu(e,p,f);break;case 3:case 4:var _=s.stateNode.containerInfo,T=xd(e);eu(e,T,_);break;default:throw Error(i(161))}}catch(O){Ue(e,e.return,O)}e.flags&=-3}n&4096&&(e.flags&=-4097)}function E0(e,n,o){ge=e,kd(e)}function kd(e,n,o){for(var s=(e.mode&1)!==0;ge!==null;){var f=ge,p=f.child;if(f.tag===22&&s){var _=f.memoizedState!==null||Es;if(!_){var T=f.alternate,O=T!==null&&T.memoizedState!==null||at;T=Es;var q=at;if(Es=_,(at=O)&&!q)for(ge=f;ge!==null;)_=ge,O=_.child,_.tag===22&&_.memoizedState!==null?Cd(f):O!==null?(O.return=_,ge=O):Cd(f);for(;p!==null;)ge=p,kd(p),p=p.sibling;ge=f,Es=T,at=q}Ed(e)}else(f.subtreeFlags&8772)!==0&&p!==null?(p.return=f,ge=p):Ed(e)}}function Ed(e){for(;ge!==null;){var n=ge;if((n.flags&8772)!==0){var o=n.alternate;try{if((n.flags&8772)!==0)switch(n.tag){case 0:case 11:case 15:at||Ns(5,n);break;case 1:var s=n.stateNode;if(n.flags&4&&!at)if(o===null)s.componentDidMount();else{var f=n.elementType===n.type?o.memoizedProps:bt(n.type,o.memoizedProps);s.componentDidUpdate(f,o.memoizedState,s.__reactInternalSnapshotBeforeUpdate)}var p=n.updateQueue;p!==null&&Nf(n,p,s);break;case 3:var _=n.updateQueue;if(_!==null){if(o=null,n.child!==null)switch(n.child.tag){case 5:o=n.child.stateNode;break;case 1:o=n.child.stateNode}Nf(n,_,o)}break;case 5:var T=n.stateNode;if(o===null&&n.flags&4){o=T;var O=n.memoizedProps;switch(n.type){case"button":case"input":case"select":case"textarea":O.autoFocus&&o.focus();break;case"img":O.src&&(o.src=O.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(n.memoizedState===null){var q=n.alternate;if(q!==null){var oe=q.memoizedState;if(oe!==null){var le=oe.dehydrated;le!==null&&jo(le)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(i(163))}at||n.flags&512&&Ja(n)}catch(re){Ue(n,n.return,re)}}if(n===e){ge=null;break}if(o=n.sibling,o!==null){o.return=n.return,ge=o;break}ge=n.return}}function Nd(e){for(;ge!==null;){var n=ge;if(n===e){ge=null;break}var o=n.sibling;if(o!==null){o.return=n.return,ge=o;break}ge=n.return}}function Cd(e){for(;ge!==null;){var n=ge;try{switch(n.tag){case 0:case 11:case 15:var o=n.return;try{Ns(4,n)}catch(O){Ue(n,o,O)}break;case 1:var s=n.stateNode;if(typeof s.componentDidMount=="function"){var f=n.return;try{s.componentDidMount()}catch(O){Ue(n,f,O)}}var p=n.return;try{Ja(n)}catch(O){Ue(n,p,O)}break;case 5:var _=n.return;try{Ja(n)}catch(O){Ue(n,_,O)}}}catch(O){Ue(n,n.return,O)}if(n===e){ge=null;break}var T=n.sibling;if(T!==null){T.return=n.return,ge=T;break}ge=n.return}}var N0=Math.ceil,Cs=M.ReactCurrentDispatcher,nu=M.ReactCurrentOwner,Lt=M.ReactCurrentBatchConfig,Pe=0,et=null,Ye=null,rt=0,Nt=0,Qr=Pn(0),Ge=0,qo=null,lr=0,Ms=0,ru=0,Zo=null,gt=null,ou=0,Gr=1/0,mn=null,js=!1,iu=null,An=null,Ps=!1,Dn=null,Is=0,Jo=0,su=null,Ts=-1,Rs=0;function ct(){return(Pe&6)!==0?Fe():Ts!==-1?Ts:Ts=Fe()}function $n(e){return(e.mode&1)===0?1:(Pe&2)!==0&&rt!==0?rt&-rt:a0.transition!==null?(Rs===0&&(Rs=Hi()),Rs):(e=ze,e!==0||(e=window.event,e=e===void 0?16:Mc(e.type)),e)}function Ht(e,n,o,s){if(50<Jo)throw Jo=0,su=null,Error(i(185));Jn(e,o,s),((Pe&2)===0||e!==et)&&(e===et&&((Pe&2)===0&&(Ms|=o),Ge===4&&bn(e,rt)),mt(e,s),o===1&&Pe===0&&(n.mode&1)===0&&(Gr=Fe()+500,ss&&Tn()))}function mt(e,n){var o=e.callbackNode;Fi(e,n);var s=an(e,e===et?rt:0);if(s===0)o!==null&&Di(o),e.callbackNode=null,e.callbackPriority=0;else if(n=s&-s,e.callbackPriority!==n){if(o!=null&&Di(o),n===1)e.tag===0?l0(jd.bind(null,e)):pf(jd.bind(null,e)),r0(function(){(Pe&6)===0&&Tn()}),o=null;else{switch(xc(s)){case 1:o=So;break;case 4:o=bi;break;case 16:o=Nr;break;case 536870912:o=Oi;break;default:o=Nr}o=Dd(o,Md.bind(null,e))}e.callbackPriority=n,e.callbackNode=o}}function Md(e,n){if(Ts=-1,Rs=0,(Pe&6)!==0)throw Error(i(327));var o=e.callbackNode;if(qr()&&e.callbackNode!==o)return null;var s=an(e,e===et?rt:0);if(s===0)return null;if((s&30)!==0||(s&e.expiredLanes)!==0||n)n=zs(e,s);else{n=s;var f=Pe;Pe|=2;var p=Id();(et!==e||rt!==n)&&(mn=null,Gr=Fe()+500,ur(e,n));do try{j0();break}catch(T){Pd(e,T)}while(!0);Ea(),Cs.current=p,Pe=f,Ye!==null?n=0:(et=null,rt=0,n=Ge)}if(n!==0){if(n===2&&(f=ko(e),f!==0&&(s=f,n=lu(e,f))),n===1)throw o=qo,ur(e,0),bn(e,s),mt(e,Fe()),o;if(n===6)bn(e,s);else{if(f=e.current.alternate,(s&30)===0&&!C0(f)&&(n=zs(e,s),n===2&&(p=ko(e),p!==0&&(s=p,n=lu(e,p))),n===1))throw o=qo,ur(e,0),bn(e,s),mt(e,Fe()),o;switch(e.finishedWork=f,e.finishedLanes=s,n){case 0:case 1:throw Error(i(345));case 2:cr(e,gt,mn);break;case 3:if(bn(e,s),(s&130023424)===s&&(n=ou+500-Fe(),10<n)){if(an(e,0)!==0)break;if(f=e.suspendedLanes,(f&s)!==s){ct(),e.pingedLanes|=e.suspendedLanes&f;break}e.timeoutHandle=pa(cr.bind(null,e,gt,mn),n);break}cr(e,gt,mn);break;case 4:if(bn(e,s),(s&4194240)===s)break;for(n=e.eventTimes,f=-1;0<s;){var _=31-_t(s);p=1<<_,_=n[_],_>f&&(f=_),s&=~p}if(s=f,s=Fe()-s,s=(120>s?120:480>s?480:1080>s?1080:1920>s?1920:3e3>s?3e3:4320>s?4320:1960*N0(s/1960))-s,10<s){e.timeoutHandle=pa(cr.bind(null,e,gt,mn),s);break}cr(e,gt,mn);break;case 5:cr(e,gt,mn);break;default:throw Error(i(329))}}}return mt(e,Fe()),e.callbackNode===o?Md.bind(null,e):null}function lu(e,n){var o=Zo;return e.current.memoizedState.isDehydrated&&(ur(e,n).flags|=256),e=zs(e,n),e!==2&&(n=gt,gt=o,n!==null&&au(n)),e}function au(e){gt===null?gt=e:gt.push.apply(gt,e)}function C0(e){for(var n=e;;){if(n.flags&16384){var o=n.updateQueue;if(o!==null&&(o=o.stores,o!==null))for(var s=0;s<o.length;s++){var f=o[s],p=f.getSnapshot;f=f.value;try{if(!Dt(p(),f))return!1}catch{return!1}}}if(o=n.child,n.subtreeFlags&16384&&o!==null)o.return=n,n=o;else{if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return!0;n=n.return}n.sibling.return=n.return,n=n.sibling}}return!0}function bn(e,n){for(n&=~ru,n&=~Ms,e.suspendedLanes|=n,e.pingedLanes&=~n,e=e.expirationTimes;0<n;){var o=31-_t(n),s=1<<o;e[o]=-1,n&=~s}}function jd(e){if((Pe&6)!==0)throw Error(i(327));qr();var n=an(e,0);if((n&1)===0)return mt(e,Fe()),null;var o=zs(e,n);if(e.tag!==0&&o===2){var s=ko(e);s!==0&&(n=s,o=lu(e,s))}if(o===1)throw o=qo,ur(e,0),bn(e,n),mt(e,Fe()),o;if(o===6)throw Error(i(345));return e.finishedWork=e.current.alternate,e.finishedLanes=n,cr(e,gt,mn),mt(e,Fe()),null}function uu(e,n){var o=Pe;Pe|=1;try{return e(n)}finally{Pe=o,Pe===0&&(Gr=Fe()+500,ss&&Tn())}}function ar(e){Dn!==null&&Dn.tag===0&&(Pe&6)===0&&qr();var n=Pe;Pe|=1;var o=Lt.transition,s=ze;try{if(Lt.transition=null,ze=1,e)return e()}finally{ze=s,Lt.transition=o,Pe=n,(Pe&6)===0&&Tn()}}function cu(){Nt=Qr.current,De(Qr)}function ur(e,n){e.finishedWork=null,e.finishedLanes=0;var o=e.timeoutHandle;if(o!==-1&&(e.timeoutHandle=-1,n0(o)),Ye!==null)for(o=Ye.return;o!==null;){var s=o;switch(xa(s),s.tag){case 1:s=s.type.childContextTypes,s!=null&&os();break;case 3:Yr(),De(dt),De(it),Ra();break;case 5:Ia(s);break;case 4:Yr();break;case 13:De(He);break;case 19:De(He);break;case 10:Na(s.type._context);break;case 22:case 23:cu()}o=o.return}if(et=e,Ye=e=On(e.current,null),rt=Nt=n,Ge=0,qo=null,ru=Ms=lr=0,gt=Zo=null,or!==null){for(n=0;n<or.length;n++)if(o=or[n],s=o.interleaved,s!==null){o.interleaved=null;var f=s.next,p=o.pending;if(p!==null){var _=p.next;p.next=f,s.next=_}o.pending=s}or=null}return e}function Pd(e,n){do{var o=Ye;try{if(Ea(),ms.current=ws,ys){for(var s=Ve.memoizedState;s!==null;){var f=s.queue;f!==null&&(f.pending=null),s=s.next}ys=!1}if(sr=0,Je=Qe=Ve=null,Wo=!1,Yo=0,nu.current=null,o===null||o.return===null){Ge=1,qo=n,Ye=null;break}e:{var p=e,_=o.return,T=o,O=n;if(n=rt,T.flags|=32768,O!==null&&typeof O=="object"&&typeof O.then=="function"){var q=O,oe=T,le=oe.tag;if((oe.mode&1)===0&&(le===0||le===11||le===15)){var re=oe.alternate;re?(oe.updateQueue=re.updateQueue,oe.memoizedState=re.memoizedState,oe.lanes=re.lanes):(oe.updateQueue=null,oe.memoizedState=null)}var pe=ed(_);if(pe!==null){pe.flags&=-257,td(pe,_,T,p,n),pe.mode&1&&Jf(p,q,n),n=pe,O=q;var me=n.updateQueue;if(me===null){var ye=new Set;ye.add(O),n.updateQueue=ye}else me.add(O);break e}else{if((n&1)===0){Jf(p,q,n),fu();break e}O=Error(i(426))}}else if(be&&T.mode&1){var We=ed(_);if(We!==null){(We.flags&65536)===0&&(We.flags|=256),td(We,_,T,p,n),Sa(Xr(O,T));break e}}p=O=Xr(O,T),Ge!==4&&(Ge=2),Zo===null?Zo=[p]:Zo.push(p),p=_;do{switch(p.tag){case 3:p.flags|=65536,n&=-n,p.lanes|=n;var X=qf(p,O,n);Ef(p,X);break e;case 1:T=O;var B=p.type,Q=p.stateNode;if((p.flags&128)===0&&(typeof B.getDerivedStateFromError=="function"||Q!==null&&typeof Q.componentDidCatch=="function"&&(An===null||!An.has(Q)))){p.flags|=65536,n&=-n,p.lanes|=n;var ae=Zf(p,T,n);Ef(p,ae);break e}}p=p.return}while(p!==null)}Rd(o)}catch(ve){n=ve,Ye===o&&o!==null&&(Ye=o=o.return);continue}break}while(!0)}function Id(){var e=Cs.current;return Cs.current=ws,e===null?ws:e}function fu(){(Ge===0||Ge===3||Ge===2)&&(Ge=4),et===null||(lr&268435455)===0&&(Ms&268435455)===0||bn(et,rt)}function zs(e,n){var o=Pe;Pe|=2;var s=Id();(et!==e||rt!==n)&&(mn=null,ur(e,n));do try{M0();break}catch(f){Pd(e,f)}while(!0);if(Ea(),Pe=o,Cs.current=s,Ye!==null)throw Error(i(261));return et=null,rt=0,Ge}function M0(){for(;Ye!==null;)Td(Ye)}function j0(){for(;Ye!==null&&!Ll();)Td(Ye)}function Td(e){var n=Ad(e.alternate,e,Nt);e.memoizedProps=e.pendingProps,n===null?Rd(e):Ye=n,nu.current=null}function Rd(e){var n=e;do{var o=n.alternate;if(e=n.return,(n.flags&32768)===0){if(o=w0(o,n,Nt),o!==null){Ye=o;return}}else{if(o=_0(o,n),o!==null){o.flags&=32767,Ye=o;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{Ge=6,Ye=null;return}}if(n=n.sibling,n!==null){Ye=n;return}Ye=n=e}while(n!==null);Ge===0&&(Ge=5)}function cr(e,n,o){var s=ze,f=Lt.transition;try{Lt.transition=null,ze=1,P0(e,n,o,s)}finally{Lt.transition=f,ze=s}return null}function P0(e,n,o,s){do qr();while(Dn!==null);if((Pe&6)!==0)throw Error(i(327));o=e.finishedWork;var f=e.finishedLanes;if(o===null)return null;if(e.finishedWork=null,e.finishedLanes=0,o===e.current)throw Error(i(177));e.callbackNode=null,e.callbackPriority=0;var p=o.lanes|o.childLanes;if(Vl(e,p),e===et&&(Ye=et=null,rt=0),(o.subtreeFlags&2064)===0&&(o.flags&2064)===0||Ps||(Ps=!0,Dd(Nr,function(){return qr(),null})),p=(o.flags&15990)!==0,(o.subtreeFlags&15990)!==0||p){p=Lt.transition,Lt.transition=null;var _=ze;ze=1;var T=Pe;Pe|=4,nu.current=null,k0(e,o),Sd(o,e),Qm(fa),Ui=!!ca,fa=ca=null,e.current=o,E0(o),$i(),Pe=T,ze=_,Lt.transition=p}else e.current=o;if(Ps&&(Ps=!1,Dn=e,Is=f),p=e.pendingLanes,p===0&&(An=null),$l(o.stateNode),mt(e,Fe()),n!==null)for(s=e.onRecoverableError,o=0;o<n.length;o++)f=n[o],s(f.value,{componentStack:f.stack,digest:f.digest});if(js)throw js=!1,e=iu,iu=null,e;return(Is&1)!==0&&e.tag!==0&&qr(),p=e.pendingLanes,(p&1)!==0?e===su?Jo++:(Jo=0,su=e):Jo=0,Tn(),null}function qr(){if(Dn!==null){var e=xc(Is),n=Lt.transition,o=ze;try{if(Lt.transition=null,ze=16>e?16:e,Dn===null)var s=!1;else{if(e=Dn,Dn=null,Is=0,(Pe&6)!==0)throw Error(i(331));var f=Pe;for(Pe|=4,ge=e.current;ge!==null;){var p=ge,_=p.child;if((ge.flags&16)!==0){var T=p.deletions;if(T!==null){for(var O=0;O<T.length;O++){var q=T[O];for(ge=q;ge!==null;){var oe=ge;switch(oe.tag){case 0:case 11:case 15:Go(8,oe,p)}var le=oe.child;if(le!==null)le.return=oe,ge=le;else for(;ge!==null;){oe=ge;var re=oe.sibling,pe=oe.return;if(yd(oe),oe===q){ge=null;break}if(re!==null){re.return=pe,ge=re;break}ge=pe}}}var me=p.alternate;if(me!==null){var ye=me.child;if(ye!==null){me.child=null;do{var We=ye.sibling;ye.sibling=null,ye=We}while(ye!==null)}}ge=p}}if((p.subtreeFlags&2064)!==0&&_!==null)_.return=p,ge=_;else e:for(;ge!==null;){if(p=ge,(p.flags&2048)!==0)switch(p.tag){case 0:case 11:case 15:Go(9,p,p.return)}var X=p.sibling;if(X!==null){X.return=p.return,ge=X;break e}ge=p.return}}var B=e.current;for(ge=B;ge!==null;){_=ge;var Q=_.child;if((_.subtreeFlags&2064)!==0&&Q!==null)Q.return=_,ge=Q;else e:for(_=B;ge!==null;){if(T=ge,(T.flags&2048)!==0)try{switch(T.tag){case 0:case 11:case 15:Ns(9,T)}}catch(ve){Ue(T,T.return,ve)}if(T===_){ge=null;break e}var ae=T.sibling;if(ae!==null){ae.return=T.return,ge=ae;break e}ge=T.return}}if(Pe=f,Tn(),wt&&typeof wt.onPostCommitFiberRoot=="function")try{wt.onPostCommitFiberRoot(Cr,e)}catch{}s=!0}return s}finally{ze=o,Lt.transition=n}}return!1}function zd(e,n,o){n=Xr(o,n),n=qf(e,n,1),e=zn(e,n,1),n=ct(),e!==null&&(Jn(e,1,n),mt(e,n))}function Ue(e,n,o){if(e.tag===3)zd(e,e,o);else for(;n!==null;){if(n.tag===3){zd(n,e,o);break}else if(n.tag===1){var s=n.stateNode;if(typeof n.type.getDerivedStateFromError=="function"||typeof s.componentDidCatch=="function"&&(An===null||!An.has(s))){e=Xr(o,e),e=Zf(n,e,1),n=zn(n,e,1),e=ct(),n!==null&&(Jn(n,1,e),mt(n,e));break}}n=n.return}}function I0(e,n,o){var s=e.pingCache;s!==null&&s.delete(n),n=ct(),e.pingedLanes|=e.suspendedLanes&o,et===e&&(rt&o)===o&&(Ge===4||Ge===3&&(rt&130023424)===rt&&500>Fe()-ou?ur(e,0):ru|=o),mt(e,n)}function Ld(e,n){n===0&&((e.mode&1)===0?n=1:(n=jr,jr<<=1,(jr&130023424)===0&&(jr=4194304)));var o=ct();e=pn(e,n),e!==null&&(Jn(e,n,o),mt(e,o))}function T0(e){var n=e.memoizedState,o=0;n!==null&&(o=n.retryLane),Ld(e,o)}function R0(e,n){var o=0;switch(e.tag){case 13:var s=e.stateNode,f=e.memoizedState;f!==null&&(o=f.retryLane);break;case 19:s=e.stateNode;break;default:throw Error(i(314))}s!==null&&s.delete(n),Ld(e,o)}var Ad;Ad=function(e,n,o){if(e!==null)if(e.memoizedProps!==n.pendingProps||dt.current)ht=!0;else{if((e.lanes&o)===0&&(n.flags&128)===0)return ht=!1,x0(e,n,o);ht=(e.flags&131072)!==0}else ht=!1,be&&(n.flags&1048576)!==0&&hf(n,as,n.index);switch(n.lanes=0,n.tag){case 2:var s=n.type;ks(e,n),e=n.pendingProps;var f=Or(n,it.current);Wr(n,o),f=Aa(null,n,s,e,f,o);var p=Da();return n.flags|=1,typeof f=="object"&&f!==null&&typeof f.render=="function"&&f.$$typeof===void 0?(n.tag=1,n.memoizedState=null,n.updateQueue=null,pt(s)?(p=!0,is(n)):p=!1,n.memoizedState=f.state!==null&&f.state!==void 0?f.state:null,ja(n),f.updater=_s,n.stateNode=f,f._reactInternals=n,Va(n,s,e,o),n=Ya(null,n,s,!0,p,o)):(n.tag=0,be&&p&&va(n),ut(null,n,f,o),n=n.child),n;case 16:s=n.elementType;e:{switch(ks(e,n),e=n.pendingProps,f=s._init,s=f(s._payload),n.type=s,f=n.tag=L0(s),e=bt(s,e),f){case 0:n=Wa(null,n,s,e,o);break e;case 1:n=ld(null,n,s,e,o);break e;case 11:n=nd(null,n,s,e,o);break e;case 14:n=rd(null,n,s,bt(s.type,e),o);break e}throw Error(i(306,s,""))}return n;case 0:return s=n.type,f=n.pendingProps,f=n.elementType===s?f:bt(s,f),Wa(e,n,s,f,o);case 1:return s=n.type,f=n.pendingProps,f=n.elementType===s?f:bt(s,f),ld(e,n,s,f,o);case 3:e:{if(ad(n),e===null)throw Error(i(387));s=n.pendingProps,p=n.memoizedState,f=p.element,kf(e,n),hs(n,s,null,o);var _=n.memoizedState;if(s=_.element,p.isDehydrated)if(p={element:s,isDehydrated:!1,cache:_.cache,pendingSuspenseBoundaries:_.pendingSuspenseBoundaries,transitions:_.transitions},n.updateQueue.baseState=p,n.memoizedState=p,n.flags&256){f=Xr(Error(i(423)),n),n=ud(e,n,s,o,f);break e}else if(s!==f){f=Xr(Error(i(424)),n),n=ud(e,n,s,o,f);break e}else for(Et=jn(n.stateNode.containerInfo.firstChild),kt=n,be=!0,$t=null,o=_f(n,null,s,o),n.child=o;o;)o.flags=o.flags&-3|4096,o=o.sibling;else{if(Vr(),s===f){n=gn(e,n,o);break e}ut(e,n,s,o)}n=n.child}return n;case 5:return Cf(n),e===null&&_a(n),s=n.type,f=n.pendingProps,p=e!==null?e.memoizedProps:null,_=f.children,da(s,f)?_=null:p!==null&&da(s,p)&&(n.flags|=32),sd(e,n),ut(e,n,_,o),n.child;case 6:return e===null&&_a(n),null;case 13:return cd(e,n,o);case 4:return Pa(n,n.stateNode.containerInfo),s=n.pendingProps,e===null?n.child=Br(n,null,s,o):ut(e,n,s,o),n.child;case 11:return s=n.type,f=n.pendingProps,f=n.elementType===s?f:bt(s,f),nd(e,n,s,f,o);case 7:return ut(e,n,n.pendingProps,o),n.child;case 8:return ut(e,n,n.pendingProps.children,o),n.child;case 12:return ut(e,n,n.pendingProps.children,o),n.child;case 10:e:{if(s=n.type._context,f=n.pendingProps,p=n.memoizedProps,_=f.value,Le(fs,s._currentValue),s._currentValue=_,p!==null)if(Dt(p.value,_)){if(p.children===f.children&&!dt.current){n=gn(e,n,o);break e}}else for(p=n.child,p!==null&&(p.return=n);p!==null;){var T=p.dependencies;if(T!==null){_=p.child;for(var O=T.firstContext;O!==null;){if(O.context===s){if(p.tag===1){O=hn(-1,o&-o),O.tag=2;var q=p.updateQueue;if(q!==null){q=q.shared;var oe=q.pending;oe===null?O.next=O:(O.next=oe.next,oe.next=O),q.pending=O}}p.lanes|=o,O=p.alternate,O!==null&&(O.lanes|=o),Ca(p.return,o,n),T.lanes|=o;break}O=O.next}}else if(p.tag===10)_=p.type===n.type?null:p.child;else if(p.tag===18){if(_=p.return,_===null)throw Error(i(341));_.lanes|=o,T=_.alternate,T!==null&&(T.lanes|=o),Ca(_,o,n),_=p.sibling}else _=p.child;if(_!==null)_.return=p;else for(_=p;_!==null;){if(_===n){_=null;break}if(p=_.sibling,p!==null){p.return=_.return,_=p;break}_=_.return}p=_}ut(e,n,f.children,o),n=n.child}return n;case 9:return f=n.type,s=n.pendingProps.children,Wr(n,o),f=Rt(f),s=s(f),n.flags|=1,ut(e,n,s,o),n.child;case 14:return s=n.type,f=bt(s,n.pendingProps),f=bt(s.type,f),rd(e,n,s,f,o);case 15:return od(e,n,n.type,n.pendingProps,o);case 17:return s=n.type,f=n.pendingProps,f=n.elementType===s?f:bt(s,f),ks(e,n),n.tag=1,pt(s)?(e=!0,is(n)):e=!1,Wr(n,o),Qf(n,s,f),Va(n,s,f,o),Ya(null,n,s,!0,e,o);case 19:return dd(e,n,o);case 22:return id(e,n,o)}throw Error(i(156,n.tag))};function Dd(e,n){return Ai(e,n)}function z0(e,n,o,s){this.tag=e,this.key=o,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=s,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function At(e,n,o,s){return new z0(e,n,o,s)}function du(e){return e=e.prototype,!(!e||!e.isReactComponent)}function L0(e){if(typeof e=="function")return du(e)?1:0;if(e!=null){if(e=e.$$typeof,e===J)return 11;if(e===b)return 14}return 2}function On(e,n){var o=e.alternate;return o===null?(o=At(e.tag,n,e.key,e.mode),o.elementType=e.elementType,o.type=e.type,o.stateNode=e.stateNode,o.alternate=e,e.alternate=o):(o.pendingProps=n,o.type=e.type,o.flags=0,o.subtreeFlags=0,o.deletions=null),o.flags=e.flags&14680064,o.childLanes=e.childLanes,o.lanes=e.lanes,o.child=e.child,o.memoizedProps=e.memoizedProps,o.memoizedState=e.memoizedState,o.updateQueue=e.updateQueue,n=e.dependencies,o.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},o.sibling=e.sibling,o.index=e.index,o.ref=e.ref,o}function Ls(e,n,o,s,f,p){var _=2;if(s=e,typeof e=="function")du(e)&&(_=1);else if(typeof e=="string")_=5;else e:switch(e){case W:return fr(o.children,f,p,n);case Y:_=8,f|=8;break;case K:return e=At(12,o,n,f|2),e.elementType=K,e.lanes=p,e;case V:return e=At(13,o,n,f),e.elementType=V,e.lanes=p,e;case C:return e=At(19,o,n,f),e.elementType=C,e.lanes=p,e;case U:return As(o,f,p,n);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case ne:_=10;break e;case Z:_=9;break e;case J:_=11;break e;case b:_=14;break e;case $:_=16,s=null;break e}throw Error(i(130,e==null?e:typeof e,""))}return n=At(_,o,n,f),n.elementType=e,n.type=s,n.lanes=p,n}function fr(e,n,o,s){return e=At(7,e,s,n),e.lanes=o,e}function As(e,n,o,s){return e=At(22,e,s,n),e.elementType=U,e.lanes=o,e.stateNode={isHidden:!1},e}function pu(e,n,o){return e=At(6,e,null,n),e.lanes=o,e}function hu(e,n,o){return n=At(4,e.children!==null?e.children:[],e.key,n),n.lanes=o,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function A0(e,n,o,s,f){this.tag=n,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Zn(0),this.expirationTimes=Zn(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Zn(0),this.identifierPrefix=s,this.onRecoverableError=f,this.mutableSourceEagerHydrationData=null}function gu(e,n,o,s,f,p,_,T,O){return e=new A0(e,n,o,T,O),n===1?(n=1,p===!0&&(n|=8)):n=0,p=At(3,null,null,n),e.current=p,p.stateNode=e,p.memoizedState={element:s,isDehydrated:o,cache:null,transitions:null,pendingSuspenseBoundaries:null},ja(p),e}function D0(e,n,o){var s=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:D,key:s==null?null:""+s,children:e,containerInfo:n,implementation:o}}function $d(e){if(!e)return In;e=e._reactInternals;e:{if(qt(e)!==e||e.tag!==1)throw Error(i(170));var n=e;do{switch(n.tag){case 3:n=n.stateNode.context;break e;case 1:if(pt(n.type)){n=n.stateNode.__reactInternalMemoizedMergedChildContext;break e}}n=n.return}while(n!==null);throw Error(i(171))}if(e.tag===1){var o=e.type;if(pt(o))return ff(e,o,n)}return n}function bd(e,n,o,s,f,p,_,T,O){return e=gu(o,s,!0,e,f,p,_,T,O),e.context=$d(null),o=e.current,s=ct(),f=$n(o),p=hn(s,f),p.callback=n??null,zn(o,p,f),e.current.lanes=f,Jn(e,f,s),mt(e,s),e}function Ds(e,n,o,s){var f=n.current,p=ct(),_=$n(f);return o=$d(o),n.context===null?n.context=o:n.pendingContext=o,n=hn(p,_),n.payload={element:e},s=s===void 0?null:s,s!==null&&(n.callback=s),e=zn(f,n,_),e!==null&&(Ht(e,f,_,p),ps(e,f,_)),_}function $s(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function Od(e,n){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var o=e.retryLane;e.retryLane=o!==0&&o<n?o:n}}function mu(e,n){Od(e,n),(e=e.alternate)&&Od(e,n)}function $0(){return null}var Fd=typeof reportError=="function"?reportError:function(e){console.error(e)};function yu(e){this._internalRoot=e}bs.prototype.render=yu.prototype.render=function(e){var n=this._internalRoot;if(n===null)throw Error(i(409));Ds(e,n,null,null)},bs.prototype.unmount=yu.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var n=e.containerInfo;ar(function(){Ds(null,e,null,null)}),n[un]=null}};function bs(e){this._internalRoot=e}bs.prototype.unstable_scheduleHydration=function(e){if(e){var n=Sc();e={blockedOn:null,target:e,priority:n};for(var o=0;o<Nn.length&&n!==0&&n<Nn[o].priority;o++);Nn.splice(o,0,e),o===0&&Nc(e)}};function vu(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function Os(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function Hd(){}function b0(e,n,o,s,f){if(f){if(typeof s=="function"){var p=s;s=function(){var q=$s(_);p.call(q)}}var _=bd(n,s,e,0,null,!1,!1,"",Hd);return e._reactRootContainer=_,e[un]=_.current,$o(e.nodeType===8?e.parentNode:e),ar(),_}for(;f=e.lastChild;)e.removeChild(f);if(typeof s=="function"){var T=s;s=function(){var q=$s(O);T.call(q)}}var O=gu(e,0,!1,null,null,!1,!1,"",Hd);return e._reactRootContainer=O,e[un]=O.current,$o(e.nodeType===8?e.parentNode:e),ar(function(){Ds(n,O,o,s)}),O}function Fs(e,n,o,s,f){var p=o._reactRootContainer;if(p){var _=p;if(typeof f=="function"){var T=f;f=function(){var O=$s(_);T.call(O)}}Ds(n,_,e,f)}else _=b0(o,n,e,f,s);return $s(_)}wc=function(e){switch(e.tag){case 3:var n=e.stateNode;if(n.current.memoizedState.isDehydrated){var o=qn(n.pendingLanes);o!==0&&(Pr(n,o|1),mt(n,Fe()),(Pe&6)===0&&(Gr=Fe()+500,Tn()))}break;case 13:ar(function(){var s=pn(e,1);if(s!==null){var f=ct();Ht(s,e,1,f)}}),mu(e,1)}},Bl=function(e){if(e.tag===13){var n=pn(e,134217728);if(n!==null){var o=ct();Ht(n,e,134217728,o)}mu(e,134217728)}},_c=function(e){if(e.tag===13){var n=$n(e),o=pn(e,n);if(o!==null){var s=ct();Ht(o,e,n,s)}mu(e,n)}},Sc=function(){return ze},kc=function(e,n){var o=ze;try{return ze=e,n()}finally{ze=o}},mo=function(e,n,o){switch(n){case"input":if(Me(e,o),n=o.name,o.type==="radio"&&n!=null){for(o=e;o.parentNode;)o=o.parentNode;for(o=o.querySelectorAll("input[name="+JSON.stringify(""+n)+'][type="radio"]'),n=0;n<o.length;n++){var s=o[n];if(s!==e&&s.form===e.form){var f=rs(s);if(!f)throw Error(i(90));xe(s),Me(s,f)}}}break;case"textarea":Gt(e,o);break;case"select":n=o.value,n!=null&&ot(e,!!o.multiple,n,!1)}},Ii=uu,Ti=ar;var O0={usingClientEntryPoint:!1,Events:[Fo,$r,rs,ji,Pi,uu]},ei={findFiberByHostInstance:er,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},F0={bundleType:ei.bundleType,version:ei.version,rendererPackageName:ei.rendererPackageName,rendererConfig:ei.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:M.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=zi(e),e===null?null:e.stateNode},findFiberByHostInstance:ei.findFiberByHostInstance||$0,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Hs=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Hs.isDisabled&&Hs.supportsFiber)try{Cr=Hs.inject(F0),wt=Hs}catch{}}return yt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=O0,yt.createPortal=function(e,n){var o=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!vu(n))throw Error(i(200));return D0(e,n,null,o)},yt.createRoot=function(e,n){if(!vu(e))throw Error(i(299));var o=!1,s="",f=Fd;return n!=null&&(n.unstable_strictMode===!0&&(o=!0),n.identifierPrefix!==void 0&&(s=n.identifierPrefix),n.onRecoverableError!==void 0&&(f=n.onRecoverableError)),n=gu(e,1,!1,null,null,o,!1,s,f),e[un]=n.current,$o(e.nodeType===8?e.parentNode:e),new yu(n)},yt.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var n=e._reactInternals;if(n===void 0)throw typeof e.render=="function"?Error(i(188)):(e=Object.keys(e).join(","),Error(i(268,e)));return e=zi(n),e=e===null?null:e.stateNode,e},yt.flushSync=function(e){return ar(e)},yt.hydrate=function(e,n,o){if(!Os(n))throw Error(i(200));return Fs(null,e,n,!0,o)},yt.hydrateRoot=function(e,n,o){if(!vu(e))throw Error(i(405));var s=o!=null&&o.hydratedSources||null,f=!1,p="",_=Fd;if(o!=null&&(o.unstable_strictMode===!0&&(f=!0),o.identifierPrefix!==void 0&&(p=o.identifierPrefix),o.onRecoverableError!==void 0&&(_=o.onRecoverableError)),n=bd(n,null,e,1,o??null,f,!1,p,_),e[un]=n.current,$o(e),s)for(e=0;e<s.length;e++)o=s[e],f=o._getVersion,f=f(o._source),n.mutableSourceEagerHydrationData==null?n.mutableSourceEagerHydrationData=[o,f]:n.mutableSourceEagerHydrationData.push(o,f);return new bs(n)},yt.render=function(e,n,o){if(!Os(n))throw Error(i(200));return Fs(null,e,n,!1,o)},yt.unmountComponentAtNode=function(e){if(!Os(e))throw Error(i(40));return e._reactRootContainer?(ar(function(){Fs(null,null,e,!1,function(){e._reactRootContainer=null,e[un]=null})}),!0):!1},yt.unstable_batchedUpdates=uu,yt.unstable_renderSubtreeIntoContainer=function(e,n,o,s){if(!Os(o))throw Error(i(200));if(e==null||e._reactInternals===void 0)throw Error(i(38));return Fs(e,n,o,!1,s)},yt.version="18.3.1-next-f1338f8080-20240426",yt}var Qd;function hh(){if(Qd)return _u.exports;Qd=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(r){console.error(r)}}return t(),_u.exports=X0(),_u.exports}var Gd;function K0(){if(Gd)return Vs;Gd=1;var t=hh();return Vs.createRoot=t.createRoot,Vs.hydrateRoot=t.hydrateRoot,Vs}var Q0=K0();async function qe(t){if(!t.ok){let r;try{r=(await t.json()).detail}catch{r=t.statusText}throw new Yn(t.status,r)}return t.json()}class Yn extends Error{constructor(r,i){super(typeof i=="string"?i:JSON.stringify(i)),this.status=r,this.detail=i}}const Oe={schema:()=>fetch("/api/step-schema").then(t=>qe(t)),listFlows:()=>fetch("/api/flows").then(t=>qe(t)),getFlow:t=>fetch(`/api/flows/${encodeURIComponent(t)}`).then(r=>qe(r)),saveFlow:(t,r)=>fetch(`/api/flows/${encodeURIComponent(t)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}).then(i=>qe(i)),deleteFlow:t=>fetch(`/api/flows/${encodeURIComponent(t)}`,{method:"DELETE"}).then(r=>qe(r)),runFlow:(t,r,i={})=>fetch(`/api/flows/${encodeURIComponent(t)}/run`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({close_mode:r,initial_vars:i})}).then(l=>qe(l)),assist:(t,r,i)=>fetch(`/api/flows/${encodeURIComponent(t)}/assist`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({instruction:r,nodes:i.nodes,edges:i.edges,start:i.start??null,settings:i.settings})}).then(l=>qe(l)),desktopWindows:()=>fetch("/api/desktop/windows").then(t=>qe(t)),inspectWindow:t=>fetch("/api/desktop/inspect",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:t})}).then(r=>qe(r)),listBlocks:()=>fetch("/api/blocks").then(t=>qe(t)),getBlock:t=>fetch(`/api/blocks/${encodeURIComponent(t)}`).then(r=>qe(r)),saveBlock:(t,r)=>fetch(`/api/blocks/${encodeURIComponent(t)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}).then(i=>qe(i)),deleteBlock:t=>fetch(`/api/blocks/${encodeURIComponent(t)}`,{method:"DELETE"}).then(r=>qe(r)),listDesktopImages:()=>fetch("/api/desktop-images").then(t=>qe(t)),captureDesktopImage:t=>fetch("/api/desktop-images/capture",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})}).then(r=>qe(r)),deleteDesktopImage:t=>fetch(`/api/desktop-images/${encodeURIComponent(t)}`,{method:"DELETE"}).then(r=>qe(r)),desktopImageUrl:t=>`/api/desktop-images/${encodeURIComponent(t)}`,run:t=>fetch(`/api/runs/${t}`).then(r=>qe(r)),closeBrowser:t=>fetch(`/api/runs/${t}/close-browser`,{method:"POST"}).then(r=>qe(r)),showTrace:t=>fetch(`/api/runs/${t}/show-trace`,{method:"POST"}).then(r=>qe(r)),exportUrl:t=>`/api/flows/${encodeURIComponent(t)}/export`},qd={en:{app_title:"RPA Tool",page_title:"RPA Tool – flow builder",new_flow:"New flow",delete_flow:"Delete flow",save:"Save",saved:"Saved",unsaved:"Unsaved changes",run:"Run flow",close_browser:"Close browser",show_trace:"Show trace",wiki:"Wiki",settings:"⚙ Settings",export:"Export as script",close_always:"Close the browser",close_on_success:"Keep open on error",close_never:"Always keep open",add_step:"+ Add step",add_step_after:"Add step after",add_step_in:"+ Add step",add_branch:"+ Add branch",else_toggle:"…else (else)",remove:"Remove",remove_branch:"Remove",branch_if:"If",branch_else_if:"…else if",branch_case:"Branch {n}",out_next:"next",start_node:"▶ start = top node",unknown_step:"Unknown step type",add_field:"+ Add column",column_name:"Column name",label_ph:"Label (optional)",on_error_stop:"On error: stop",on_error_continue:"On error: continue",enabled_title:"Enabled (unchecked = skipped when running)",move_up:"Move up",move_down:"Move down",run_log:"Run log",variables:"Variables",no_vars:"No variables yet.",vars_hint:"Click a name to see its content (filled in once the flow finishes).",assist_title:"AI assistant",assist_hint:"Describe in plain language what the flow should do. The suggestion replaces the canvas (unsaved) so you can review it before saving/running.",assist_ph:"e.g. Go to example.com, wait for login, list all links and save them as CSV",assist_btn:"Suggest changes",assist_working:"Thinking…",assist_applied:"Suggestion applied — review, then Save / Run flow.",assist_unavailable:"Set ANTHROPIC_API_KEY (or run `ant auth login`) and restart the server to use this.",assist_failed:"Could not generate a flow: {msg}",status_running:"Running…",status_done:"Done",status_error:"Error",condition:"Condition",new_flow_prompt:"Name of new flow:",delete_flow_confirm:'Delete the flow "{name}"?',settings_hint:"Saved with the flow, so they travel along when you export it as a standalone script.",cancel:"Cancel",fit_view:"Fit to view",relayout:"Auto-arrange",var_list:"list, {n} item(s)",var_object:"object",var_text:"text, {n} chars",save_failed:"Save failed: {msg}",menu:"Menu",menu_flow:"Flow",menu_view:"View",menu_run:"Run",menu_tools:"Tools",language:"Language",run_settings:"Run settings…",inspect_window:"Inspect window",inspect_hint:"Pick a running window to list its controls — use name / auto_id / control_type in the desktop steps.",inspect_pick:"Window",inspect_load:"Load controls",inspect_unavailable:"Windows only — pywinauto could not be loaded.",inspect_make_click:"New desktop_click",inspect_make_type:"New desktop_type",inspect_copy:"Copy selector",inspect_none:"No windows found.",palette:"Steps",palette_search:"Search…",palette_blocks:"Blocks",palette_toggle:"Show/hide the step palette",palette_click_add:"Click + (or double-click) to add, or drag onto the canvas",block_save_selection:"💾 Save selection as block",block_insert:"Insert",block_none:"No blocks yet. Select nodes on the canvas and save them as a block.",block_name_prompt:"Block name:",block_desc_prompt:"Short description (optional):",block_saved:"Block saved.",block_select_first:"Select one or more nodes on the canvas first.",change_type:"Change step type",run_params_menu:"Run parameters / inputs",runp_title:"Run parameters",runp_hint:"Fill in the flow's input variables, or pick a saved value set. Used as {name} in the steps.",runp_set:"Value set",runp_set_none:"(none)",runp_save_set:"💾 Save as set",runp_set_name_prompt:"Name for the value set:",runp_add_var:"+ Add variable",runp_var_name:"name",runp_var_value:"value",inputs_title:"Run parameters / inputs",inputs_hint:"Declare the variables the flow expects at run time. They appear in the run dialog and resolve as {name}.",inputs_add:"+ Add input",inputs_sets:"Saved value sets",inputs_set_rename:"Rename"},sv:{app_title:"RPA-verktyg",page_title:"RPA-verktyg – flödesbyggare",new_flow:"Nytt flöde",delete_flow:"Ta bort flöde",save:"Spara",saved:"Sparat",unsaved:"Osparade ändringar",run:"Kör flöde",close_browser:"Stäng webbläsare",show_trace:"Visa trace",wiki:"Wiki",settings:"⚙ Inställningar",export:"Exportera som script",close_always:"Stäng webbläsaren",close_on_success:"Håll öppen vid fel",close_never:"Håll alltid öppen",add_step:"+ Lägg till steg",add_step_after:"Lägg till steg efter",add_step_in:"+ Lägg till steg",add_branch:"+ Lägg till gren",else_toggle:"…annars (else)",remove:"Ta bort",remove_branch:"Ta bort",branch_if:"Om",branch_else_if:"…annars om",branch_case:"Gren {n}",out_next:"nästa",start_node:"▶ start = översta noden",unknown_step:"Okänd stegtyp",add_field:"+ Lägg till kolumn",column_name:"Kolumnnamn",label_ph:"Etikett (valfri)",on_error_stop:"Vid fel: stanna",on_error_continue:"Vid fel: fortsätt",enabled_title:"Aktiverat (avbockad = hoppas över vid körning)",move_up:"Flytta upp",move_down:"Flytta ner",run_log:"Körlogg",variables:"Variabler",no_vars:"Inga variabler ännu.",vars_hint:"Klicka på ett namn för att se innehållet (fylls i när flödet är klart).",assist_title:"AI-assistent",assist_hint:"Beskriv i klartext vad flödet ska göra. Förslaget ersätter canvasen (osparat) så du kan granska det innan du sparar/kör.",assist_ph:"t.ex. Gå till example.com, vänta på inloggning, lista alla länkar och spara som CSV",assist_btn:"Föreslå ändringar",assist_working:"Tänker…",assist_applied:"Förslag infogat — granska, sedan Spara / Kör flöde.",assist_unavailable:"Sätt ANTHROPIC_API_KEY (eller kör `ant auth login`) och starta om servern för att använda detta.",assist_failed:"Kunde inte generera ett flöde: {msg}",status_running:"Kör…",status_done:"Klar",status_error:"Fel",condition:"Villkor",new_flow_prompt:"Namn på nytt flöde:",delete_flow_confirm:'Ta bort flödet "{name}"?',settings_hint:"Sparas med flödet, så de följer med om du exporterar det som ett fristående script.",cancel:"Avbryt",fit_view:"Anpassa till vy",relayout:"Autoplacera",var_list:"lista, {n} post(er)",var_object:"objekt",var_text:"text, {n} tecken",save_failed:"Kunde inte spara: {msg}",menu:"Meny",menu_flow:"Flöde",menu_view:"Visning",menu_run:"Körning",menu_tools:"Verktyg",language:"Språk",run_settings:"Körningsinställningar…",inspect_window:"Inspektera fönster",inspect_hint:"Välj ett körande fönster för att lista dess kontroller — använd name / auto_id / control_type i desktop-stegen.",inspect_pick:"Fönster",inspect_load:"Hämta kontroller",inspect_unavailable:"Bara Windows — pywinauto kunde inte laddas.",inspect_make_click:"Nytt desktop_click",inspect_make_type:"Nytt desktop_type",inspect_copy:"Kopiera selector",inspect_none:"Inga fönster hittades.",palette:"Steg",palette_search:"Sök…",palette_blocks:"Block",palette_toggle:"Visa/dölj steg-paletten",palette_click_add:"Klicka + (eller dubbelklicka) för att lägga till, eller dra till canvasen",block_save_selection:"💾 Spara markering som block",block_insert:"Infoga",block_none:"Inga block än. Markera noder på canvasen och spara dem som ett block.",block_name_prompt:"Blockets namn:",block_desc_prompt:"Kort beskrivning (valfri):",block_saved:"Blocket sparat.",block_select_first:"Markera en eller flera noder på canvasen först.",change_type:"Byt stegtyp",run_params_menu:"Kör-parametrar / indata",runp_title:"Kör-parametrar",runp_hint:"Fyll i flödets indata-variabler, eller välj ett sparat värde-set. Används som {name} i stegen.",runp_set:"Värde-set",runp_set_none:"(inget)",runp_save_set:"💾 Spara som set",runp_set_name_prompt:"Namn på värde-setet:",runp_add_var:"+ Lägg till variabel",runp_var_name:"namn",runp_var_value:"värde",inputs_title:"Kör-parametrar / indata",inputs_hint:"Deklarera vilka variabler flödet förväntar sig vid körning. De dyker upp i kördialogen och löses som {name}.",inputs_add:"+ Lägg till indata",inputs_sets:"Sparade värde-set",inputs_set_rename:"Döp om"}};function G0(t){return(r,i)=>{let l=qd[t][r]??qd.en[r]??r;if(i)for(const[a,u]of Object.entries(i))l=l.replace(`{${a}}`,String(u));return l}}function ro(){try{return crypto.randomUUID().slice(0,12)}catch{return Math.random().toString(36).slice(2,14)}}const Zd=230,Jd=380;function Zs(t){const r=((t==null?void 0:t.nodes)??[]).map(a=>({...a,id:a.id??ro()})),i=new Set(r.map(a=>a.id)),l=((t==null?void 0:t.edges)??[]).filter(a=>i.has(a.source)&&i.has(a.target)).map(a=>({...a,id:a.id??ro()}));return{format:"graph",nodes:r,edges:l,start:(t==null?void 0:t.start)??null,settings:(t==null?void 0:t.settings)??{},layout:(t==null?void 0:t.layout)??{},inputs:(t==null?void 0:t.inputs)??[],input_sets:(t==null?void 0:t.input_sets)??{}}}function Ou(t,r){if(t.length===0)return null;const i=new Set(r.map(u=>u.target)),l=t.filter(u=>!i.has(u.id));return[...l.length?l:t].sort((u,c)=>{var d,h;return(((d=u.position)==null?void 0:d.y)??0)-(((h=c.position)==null?void 0:h.y)??0)})[0].id??null}function gh(t,r){const i=new Map;for(const v of r){const y=i.get(v.source)??[];y.push(v.target),i.set(v.source,y)}const l=Ou(t,r),a=new Map,u=l?[l]:[];for(l&&a.set(l,0);u.length;){const v=u.shift(),y=a.get(v);for(const g of i.get(v)??[])a.has(g)||(a.set(g,y+1),u.push(g))}const c=new Map,d=Math.max(0,...a.values()),h={};let m=0;for(const v of t){const y=a.get(v.id);if(y===void 0){h[v.id]={x:m++*Jd,y:(d+2)*Zd};continue}const g=c.get(y)??0;c.set(y,g+1),h[v.id]={x:g*Jd,y:y*Zd}}return h}function ep(t,r){const i=new Map,l=t.map(u=>{const c=ro();return i.set(u.id,c),{...u,id:c}}),a=r.filter(u=>i.has(u.source)&&i.has(u.target)).map(u=>({...u,id:ro(),source:i.get(u.source),target:i.get(u.target)}));return{nodes:l,edges:a}}function Fu(){return{condition:{kind:"element_exists"}}}function eo(t,r,i={x:0,y:0}){const l=t.step_types.find(u=>u.type===r),a={type:r,id:ro(),position:{...i}};for(const u of(l==null?void 0:l.fields)??[])u.default!==void 0&&u.default!==""&&(a[u.key]=u.default);return(l==null?void 0:l.control)==="if"&&(a.branches=[Fu()]),r==="extract_row"&&(a.fields=[{name:"",by:"css",value:""}]),a}function q0(t,r,i){const l=eo(t,i,r.position??{x:0,y:0});return l.id=r.id,r.label&&(l.label=r.label),r.enabled===!1&&(l.enabled=!1),r.on_error==="continue"&&(l.on_error="continue"),l}function Z0(t){return(t??"").split(",").map(r=>r.trim()).filter(Boolean)}function J0(t){const r={};for(const i of t)i.name&&i.default!=null&&i.default!==""&&(r[i.name]=String(i.default));return r}function tp(t,r){const i={...t};for(const l of r){const a=l.name.trim();a&&(i[a]=l.value)}return i}function ey(t){var r;return(((r=t.inputs)==null?void 0:r.length)??0)>0||Object.keys(t.input_sets??{}).length>0}function ty(t){const{t:r}=t,[i,l]=R.useState(!1),a=R.useRef(null);R.useEffect(()=>{if(!i)return;const c=h=>{a.current&&!a.current.contains(h.target)&&l(!1)},d=h=>h.key==="Escape"&&l(!1);return document.addEventListener("mousedown",c),document.addEventListener("keydown",d),()=>{document.removeEventListener("mousedown",c),document.removeEventListener("keydown",d)}},[i]);const u=c=>()=>{l(!1),c()};return w.jsxs("div",{className:"menu-wrap",ref:a,children:[w.jsx("button",{className:"secondary",title:r("menu"),onClick:()=>l(c=>!c),children:"⚙"}),i&&w.jsxs("div",{className:"menu-popover",children:[w.jsx("div",{className:"menu-section",children:r("menu_flow")}),w.jsx("button",{className:"menu-item",onClick:u(t.onNew),children:r("new_flow")}),w.jsx("button",{className:"menu-item",onClick:u(t.onDelete),disabled:!t.currentName,children:r("delete_flow")}),w.jsx("a",{className:"menu-item",href:t.currentName?Oe.exportUrl(t.currentName):void 0,target:"_blank",rel:"noopener",onClick:()=>l(!1),children:r("export")}),w.jsx("div",{className:"menu-section",children:r("menu_run")}),w.jsxs("label",{className:"menu-item menu-field",children:[w.jsx("span",{children:r("menu_run")}),w.jsxs("select",{value:t.closeMode,onChange:c=>t.setCloseMode(c.target.value),children:[w.jsx("option",{value:"always",children:r("close_always")}),w.jsx("option",{value:"on_success",children:r("close_on_success")}),w.jsx("option",{value:"never",children:r("close_never")})]})]}),w.jsx("button",{className:"menu-item",onClick:u(t.onOpenSettings),children:r("run_settings")}),w.jsx("button",{className:"menu-item",onClick:u(t.onOpenInputs),children:r("run_params_menu")}),w.jsx("div",{className:"menu-section",children:r("menu_view")}),w.jsxs("label",{className:"menu-item menu-field",children:[w.jsx("span",{children:r("language")}),w.jsxs("select",{value:t.lang,onChange:c=>t.setLang(c.target.value),children:[w.jsx("option",{value:"en",children:"English"}),w.jsx("option",{value:"sv",children:"Svenska"})]})]}),w.jsx("div",{className:"menu-section",children:r("menu_tools")}),w.jsx("button",{className:"menu-item",onClick:u(t.onOpenInspect),children:r("inspect_window")}),w.jsx("a",{className:"menu-item",href:"/wiki",target:"_blank",rel:"noopener",onClick:()=>l(!1),children:r("wiki")})]})]})}function ny(t){const{t:r}=t;return w.jsxs("header",{children:[w.jsx("h1",{children:r("app_title")}),w.jsx("select",{value:t.currentName??"",onChange:i=>t.onSelect(i.target.value),children:t.flowNames.map(i=>w.jsx("option",{value:i,children:i},i))}),w.jsx("span",{className:"spacer"}),w.jsx("span",{className:"dirty-dot "+(t.dirty?"on":""),title:t.dirty?r("unsaved"):r("saved")}),w.jsx("button",{className:"secondary",onClick:t.onSave,children:r("save")}),w.jsx("button",{onClick:t.onRun,disabled:t.running||!t.currentName,children:r("run")}),w.jsx(ty,{t:r,lang:t.lang,setLang:t.setLang,closeMode:t.closeMode,setCloseMode:t.setCloseMode,currentName:t.currentName,onNew:t.onNew,onDelete:t.onDelete,onOpenSettings:t.onOpenSettings,onOpenInspect:t.onOpenInspect,onOpenInputs:t.onOpenInputs})]})}function Xe(t){if(typeof t=="string"||typeof t=="number")return""+t;let r="";if(Array.isArray(t))for(let i=0,l;i<t.length;i++)(l=Xe(t[i]))!==""&&(r+=(r&&" ")+l);else for(let i in t)t[i]&&(r+=(r&&" ")+i);return r}var ry={value:()=>{}};function gl(){for(var t=0,r=arguments.length,i={},l;t<r;++t){if(!(l=arguments[t]+"")||l in i||/[\s.]/.test(l))throw new Error("illegal type: "+l);i[l]=[]}return new Js(i)}function Js(t){this._=t}function oy(t,r){return t.trim().split(/^|\s+/).map(function(i){var l="",a=i.indexOf(".");if(a>=0&&(l=i.slice(a+1),i=i.slice(0,a)),i&&!r.hasOwnProperty(i))throw new Error("unknown type: "+i);return{type:i,name:l}})}Js.prototype=gl.prototype={constructor:Js,on:function(t,r){var i=this._,l=oy(t+"",i),a,u=-1,c=l.length;if(arguments.length<2){for(;++u<c;)if((a=(t=l[u]).type)&&(a=iy(i[a],t.name)))return a;return}if(r!=null&&typeof r!="function")throw new Error("invalid callback: "+r);for(;++u<c;)if(a=(t=l[u]).type)i[a]=np(i[a],t.name,r);else if(r==null)for(a in i)i[a]=np(i[a],t.name,null);return this},copy:function(){var t={},r=this._;for(var i in r)t[i]=r[i].slice();return new Js(t)},call:function(t,r){if((a=arguments.length-2)>0)for(var i=new Array(a),l=0,a,u;l<a;++l)i[l]=arguments[l+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(u=this._[t],l=0,a=u.length;l<a;++l)u[l].value.apply(r,i)},apply:function(t,r,i){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var l=this._[t],a=0,u=l.length;a<u;++a)l[a].value.apply(r,i)}};function iy(t,r){for(var i=0,l=t.length,a;i<l;++i)if((a=t[i]).name===r)return a.value}function np(t,r,i){for(var l=0,a=t.length;l<a;++l)if(t[l].name===r){t[l]=ry,t=t.slice(0,l).concat(t.slice(l+1));break}return i!=null&&t.push({name:r,value:i}),t}var Hu="http://www.w3.org/1999/xhtml";const rp={svg:"http://www.w3.org/2000/svg",xhtml:Hu,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function ml(t){var r=t+="",i=r.indexOf(":");return i>=0&&(r=t.slice(0,i))!=="xmlns"&&(t=t.slice(i+1)),rp.hasOwnProperty(r)?{space:rp[r],local:t}:t}function sy(t){return function(){var r=this.ownerDocument,i=this.namespaceURI;return i===Hu&&r.documentElement.namespaceURI===Hu?r.createElement(t):r.createElementNS(i,t)}}function ly(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function mh(t){var r=ml(t);return(r.local?ly:sy)(r)}function ay(){}function tc(t){return t==null?ay:function(){return this.querySelector(t)}}function uy(t){typeof t!="function"&&(t=tc(t));for(var r=this._groups,i=r.length,l=new Array(i),a=0;a<i;++a)for(var u=r[a],c=u.length,d=l[a]=new Array(c),h,m,v=0;v<c;++v)(h=u[v])&&(m=t.call(h,h.__data__,v,u))&&("__data__"in h&&(m.__data__=h.__data__),d[v]=m);return new Mt(l,this._parents)}function cy(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function fy(){return[]}function yh(t){return t==null?fy:function(){return this.querySelectorAll(t)}}function dy(t){return function(){return cy(t.apply(this,arguments))}}function py(t){typeof t=="function"?t=dy(t):t=yh(t);for(var r=this._groups,i=r.length,l=[],a=[],u=0;u<i;++u)for(var c=r[u],d=c.length,h,m=0;m<d;++m)(h=c[m])&&(l.push(t.call(h,h.__data__,m,c)),a.push(h));return new Mt(l,a)}function vh(t){return function(){return this.matches(t)}}function xh(t){return function(r){return r.matches(t)}}var hy=Array.prototype.find;function gy(t){return function(){return hy.call(this.children,t)}}function my(){return this.firstElementChild}function yy(t){return this.select(t==null?my:gy(typeof t=="function"?t:xh(t)))}var vy=Array.prototype.filter;function xy(){return Array.from(this.children)}function wy(t){return function(){return vy.call(this.children,t)}}function _y(t){return this.selectAll(t==null?xy:wy(typeof t=="function"?t:xh(t)))}function Sy(t){typeof t!="function"&&(t=vh(t));for(var r=this._groups,i=r.length,l=new Array(i),a=0;a<i;++a)for(var u=r[a],c=u.length,d=l[a]=[],h,m=0;m<c;++m)(h=u[m])&&t.call(h,h.__data__,m,u)&&d.push(h);return new Mt(l,this._parents)}function wh(t){return new Array(t.length)}function ky(){return new Mt(this._enter||this._groups.map(wh),this._parents)}function ol(t,r){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=r}ol.prototype={constructor:ol,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,r){return this._parent.insertBefore(t,r)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function Ey(t){return function(){return t}}function Ny(t,r,i,l,a,u){for(var c=0,d,h=r.length,m=u.length;c<m;++c)(d=r[c])?(d.__data__=u[c],l[c]=d):i[c]=new ol(t,u[c]);for(;c<h;++c)(d=r[c])&&(a[c]=d)}function Cy(t,r,i,l,a,u,c){var d,h,m=new Map,v=r.length,y=u.length,g=new Array(v),x;for(d=0;d<v;++d)(h=r[d])&&(g[d]=x=c.call(h,h.__data__,d,r)+"",m.has(x)?a[d]=h:m.set(x,h));for(d=0;d<y;++d)x=c.call(t,u[d],d,u)+"",(h=m.get(x))?(l[d]=h,h.__data__=u[d],m.delete(x)):i[d]=new ol(t,u[d]);for(d=0;d<v;++d)(h=r[d])&&m.get(g[d])===h&&(a[d]=h)}function My(t){return t.__data__}function jy(t,r){if(!arguments.length)return Array.from(this,My);var i=r?Cy:Ny,l=this._parents,a=this._groups;typeof t!="function"&&(t=Ey(t));for(var u=a.length,c=new Array(u),d=new Array(u),h=new Array(u),m=0;m<u;++m){var v=l[m],y=a[m],g=y.length,x=Py(t.call(v,v&&v.__data__,m,l)),S=x.length,j=d[m]=new Array(S),E=c[m]=new Array(S),N=h[m]=new Array(g);i(v,y,j,E,N,x,r);for(var I=0,k=0,M,F;I<S;++I)if(M=j[I]){for(I>=k&&(k=I+1);!(F=E[k])&&++k<S;);M._next=F||null}}return c=new Mt(c,l),c._enter=d,c._exit=h,c}function Py(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function Iy(){return new Mt(this._exit||this._groups.map(wh),this._parents)}function Ty(t,r,i){var l=this.enter(),a=this,u=this.exit();return typeof t=="function"?(l=t(l),l&&(l=l.selection())):l=l.append(t+""),r!=null&&(a=r(a),a&&(a=a.selection())),i==null?u.remove():i(u),l&&a?l.merge(a).order():a}function Ry(t){for(var r=t.selection?t.selection():t,i=this._groups,l=r._groups,a=i.length,u=l.length,c=Math.min(a,u),d=new Array(a),h=0;h<c;++h)for(var m=i[h],v=l[h],y=m.length,g=d[h]=new Array(y),x,S=0;S<y;++S)(x=m[S]||v[S])&&(g[S]=x);for(;h<a;++h)d[h]=i[h];return new Mt(d,this._parents)}function zy(){for(var t=this._groups,r=-1,i=t.length;++r<i;)for(var l=t[r],a=l.length-1,u=l[a],c;--a>=0;)(c=l[a])&&(u&&c.compareDocumentPosition(u)^4&&u.parentNode.insertBefore(c,u),u=c);return this}function Ly(t){t||(t=Ay);function r(y,g){return y&&g?t(y.__data__,g.__data__):!y-!g}for(var i=this._groups,l=i.length,a=new Array(l),u=0;u<l;++u){for(var c=i[u],d=c.length,h=a[u]=new Array(d),m,v=0;v<d;++v)(m=c[v])&&(h[v]=m);h.sort(r)}return new Mt(a,this._parents).order()}function Ay(t,r){return t<r?-1:t>r?1:t>=r?0:NaN}function Dy(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function $y(){return Array.from(this)}function by(){for(var t=this._groups,r=0,i=t.length;r<i;++r)for(var l=t[r],a=0,u=l.length;a<u;++a){var c=l[a];if(c)return c}return null}function Oy(){let t=0;for(const r of this)++t;return t}function Fy(){return!this.node()}function Hy(t){for(var r=this._groups,i=0,l=r.length;i<l;++i)for(var a=r[i],u=0,c=a.length,d;u<c;++u)(d=a[u])&&t.call(d,d.__data__,u,a);return this}function Vy(t){return function(){this.removeAttribute(t)}}function By(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Uy(t,r){return function(){this.setAttribute(t,r)}}function Wy(t,r){return function(){this.setAttributeNS(t.space,t.local,r)}}function Yy(t,r){return function(){var i=r.apply(this,arguments);i==null?this.removeAttribute(t):this.setAttribute(t,i)}}function Xy(t,r){return function(){var i=r.apply(this,arguments);i==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,i)}}function Ky(t,r){var i=ml(t);if(arguments.length<2){var l=this.node();return i.local?l.getAttributeNS(i.space,i.local):l.getAttribute(i)}return this.each((r==null?i.local?By:Vy:typeof r=="function"?i.local?Xy:Yy:i.local?Wy:Uy)(i,r))}function _h(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function Qy(t){return function(){this.style.removeProperty(t)}}function Gy(t,r,i){return function(){this.style.setProperty(t,r,i)}}function qy(t,r,i){return function(){var l=r.apply(this,arguments);l==null?this.style.removeProperty(t):this.style.setProperty(t,l,i)}}function Zy(t,r,i){return arguments.length>1?this.each((r==null?Qy:typeof r=="function"?qy:Gy)(t,r,i??"")):oo(this.node(),t)}function oo(t,r){return t.style.getPropertyValue(r)||_h(t).getComputedStyle(t,null).getPropertyValue(r)}function Jy(t){return function(){delete this[t]}}function ev(t,r){return function(){this[t]=r}}function tv(t,r){return function(){var i=r.apply(this,arguments);i==null?delete this[t]:this[t]=i}}function nv(t,r){return arguments.length>1?this.each((r==null?Jy:typeof r=="function"?tv:ev)(t,r)):this.node()[t]}function Sh(t){return t.trim().split(/^|\s+/)}function nc(t){return t.classList||new kh(t)}function kh(t){this._node=t,this._names=Sh(t.getAttribute("class")||"")}kh.prototype={add:function(t){var r=this._names.indexOf(t);r<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var r=this._names.indexOf(t);r>=0&&(this._names.splice(r,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function Eh(t,r){for(var i=nc(t),l=-1,a=r.length;++l<a;)i.add(r[l])}function Nh(t,r){for(var i=nc(t),l=-1,a=r.length;++l<a;)i.remove(r[l])}function rv(t){return function(){Eh(this,t)}}function ov(t){return function(){Nh(this,t)}}function iv(t,r){return function(){(r.apply(this,arguments)?Eh:Nh)(this,t)}}function sv(t,r){var i=Sh(t+"");if(arguments.length<2){for(var l=nc(this.node()),a=-1,u=i.length;++a<u;)if(!l.contains(i[a]))return!1;return!0}return this.each((typeof r=="function"?iv:r?rv:ov)(i,r))}function lv(){this.textContent=""}function av(t){return function(){this.textContent=t}}function uv(t){return function(){var r=t.apply(this,arguments);this.textContent=r??""}}function cv(t){return arguments.length?this.each(t==null?lv:(typeof t=="function"?uv:av)(t)):this.node().textContent}function fv(){this.innerHTML=""}function dv(t){return function(){this.innerHTML=t}}function pv(t){return function(){var r=t.apply(this,arguments);this.innerHTML=r??""}}function hv(t){return arguments.length?this.each(t==null?fv:(typeof t=="function"?pv:dv)(t)):this.node().innerHTML}function gv(){this.nextSibling&&this.parentNode.appendChild(this)}function mv(){return this.each(gv)}function yv(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function vv(){return this.each(yv)}function xv(t){var r=typeof t=="function"?t:mh(t);return this.select(function(){return this.appendChild(r.apply(this,arguments))})}function wv(){return null}function _v(t,r){var i=typeof t=="function"?t:mh(t),l=r==null?wv:typeof r=="function"?r:tc(r);return this.select(function(){return this.insertBefore(i.apply(this,arguments),l.apply(this,arguments)||null)})}function Sv(){var t=this.parentNode;t&&t.removeChild(this)}function kv(){return this.each(Sv)}function Ev(){var t=this.cloneNode(!1),r=this.parentNode;return r?r.insertBefore(t,this.nextSibling):t}function Nv(){var t=this.cloneNode(!0),r=this.parentNode;return r?r.insertBefore(t,this.nextSibling):t}function Cv(t){return this.select(t?Nv:Ev)}function Mv(t){return arguments.length?this.property("__data__",t):this.node().__data__}function jv(t){return function(r){t.call(this,r,this.__data__)}}function Pv(t){return t.trim().split(/^|\s+/).map(function(r){var i="",l=r.indexOf(".");return l>=0&&(i=r.slice(l+1),r=r.slice(0,l)),{type:r,name:i}})}function Iv(t){return function(){var r=this.__on;if(r){for(var i=0,l=-1,a=r.length,u;i<a;++i)u=r[i],(!t.type||u.type===t.type)&&u.name===t.name?this.removeEventListener(u.type,u.listener,u.options):r[++l]=u;++l?r.length=l:delete this.__on}}}function Tv(t,r,i){return function(){var l=this.__on,a,u=jv(r);if(l){for(var c=0,d=l.length;c<d;++c)if((a=l[c]).type===t.type&&a.name===t.name){this.removeEventListener(a.type,a.listener,a.options),this.addEventListener(a.type,a.listener=u,a.options=i),a.value=r;return}}this.addEventListener(t.type,u,i),a={type:t.type,name:t.name,value:r,listener:u,options:i},l?l.push(a):this.__on=[a]}}function Rv(t,r,i){var l=Pv(t+""),a,u=l.length,c;if(arguments.length<2){var d=this.node().__on;if(d){for(var h=0,m=d.length,v;h<m;++h)for(a=0,v=d[h];a<u;++a)if((c=l[a]).type===v.type&&c.name===v.name)return v.value}return}for(d=r?Tv:Iv,a=0;a<u;++a)this.each(d(l[a],r,i));return this}function Ch(t,r,i){var l=_h(t),a=l.CustomEvent;typeof a=="function"?a=new a(r,i):(a=l.document.createEvent("Event"),i?(a.initEvent(r,i.bubbles,i.cancelable),a.detail=i.detail):a.initEvent(r,!1,!1)),t.dispatchEvent(a)}function zv(t,r){return function(){return Ch(this,t,r)}}function Lv(t,r){return function(){return Ch(this,t,r.apply(this,arguments))}}function Av(t,r){return this.each((typeof r=="function"?Lv:zv)(t,r))}function*Dv(){for(var t=this._groups,r=0,i=t.length;r<i;++r)for(var l=t[r],a=0,u=l.length,c;a<u;++a)(c=l[a])&&(yield c)}var Mh=[null];function Mt(t,r){this._groups=t,this._parents=r}function vi(){return new Mt([[document.documentElement]],Mh)}function $v(){return this}Mt.prototype=vi.prototype={constructor:Mt,select:uy,selectAll:py,selectChild:yy,selectChildren:_y,filter:Sy,data:jy,enter:ky,exit:Iy,join:Ty,merge:Ry,selection:$v,order:zy,sort:Ly,call:Dy,nodes:$y,node:by,size:Oy,empty:Fy,each:Hy,attr:Ky,style:Zy,property:nv,classed:sv,text:cv,html:hv,raise:mv,lower:vv,append:xv,insert:_v,remove:kv,clone:Cv,datum:Mv,on:Rv,dispatch:Av,[Symbol.iterator]:Dv};function Ct(t){return typeof t=="string"?new Mt([[document.querySelector(t)]],[document.documentElement]):new Mt([[t]],Mh)}function bv(t){let r;for(;r=t.sourceEvent;)t=r;return t}function Vt(t,r){if(t=bv(t),r===void 0&&(r=t.currentTarget),r){var i=r.ownerSVGElement||r;if(i.createSVGPoint){var l=i.createSVGPoint();return l.x=t.clientX,l.y=t.clientY,l=l.matrixTransform(r.getScreenCTM().inverse()),[l.x,l.y]}if(r.getBoundingClientRect){var a=r.getBoundingClientRect();return[t.clientX-a.left-r.clientLeft,t.clientY-a.top-r.clientTop]}}return[t.pageX,t.pageY]}const Ov={passive:!1},ai={capture:!0,passive:!1};function Eu(t){t.stopImmediatePropagation()}function to(t){t.preventDefault(),t.stopImmediatePropagation()}function jh(t){var r=t.document.documentElement,i=Ct(t).on("dragstart.drag",to,ai);"onselectstart"in r?i.on("selectstart.drag",to,ai):(r.__noselect=r.style.MozUserSelect,r.style.MozUserSelect="none")}function Ph(t,r){var i=t.document.documentElement,l=Ct(t).on("dragstart.drag",null);r&&(l.on("click.drag",to,ai),setTimeout(function(){l.on("click.drag",null)},0)),"onselectstart"in i?l.on("selectstart.drag",null):(i.style.MozUserSelect=i.__noselect,delete i.__noselect)}const Bs=t=>()=>t;function Vu(t,{sourceEvent:r,subject:i,target:l,identifier:a,active:u,x:c,y:d,dx:h,dy:m,dispatch:v}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:r,enumerable:!0,configurable:!0},subject:{value:i,enumerable:!0,configurable:!0},target:{value:l,enumerable:!0,configurable:!0},identifier:{value:a,enumerable:!0,configurable:!0},active:{value:u,enumerable:!0,configurable:!0},x:{value:c,enumerable:!0,configurable:!0},y:{value:d,enumerable:!0,configurable:!0},dx:{value:h,enumerable:!0,configurable:!0},dy:{value:m,enumerable:!0,configurable:!0},_:{value:v}})}Vu.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};function Fv(t){return!t.ctrlKey&&!t.button}function Hv(){return this.parentNode}function Vv(t,r){return r??{x:t.x,y:t.y}}function Bv(){return navigator.maxTouchPoints||"ontouchstart"in this}function Ih(){var t=Fv,r=Hv,i=Vv,l=Bv,a={},u=gl("start","drag","end"),c=0,d,h,m,v,y=0;function g(M){M.on("mousedown.drag",x).filter(l).on("touchstart.drag",E).on("touchmove.drag",N,Ov).on("touchend.drag touchcancel.drag",I).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function x(M,F){if(!(v||!t.call(this,M,F))){var D=k(this,r.call(this,M,F),M,F,"mouse");D&&(Ct(M.view).on("mousemove.drag",S,ai).on("mouseup.drag",j,ai),jh(M.view),Eu(M),m=!1,d=M.clientX,h=M.clientY,D("start",M))}}function S(M){if(to(M),!m){var F=M.clientX-d,D=M.clientY-h;m=F*F+D*D>y}a.mouse("drag",M)}function j(M){Ct(M.view).on("mousemove.drag mouseup.drag",null),Ph(M.view,m),to(M),a.mouse("end",M)}function E(M,F){if(t.call(this,M,F)){var D=M.changedTouches,W=r.call(this,M,F),Y=D.length,K,ne;for(K=0;K<Y;++K)(ne=k(this,W,M,F,D[K].identifier,D[K]))&&(Eu(M),ne("start",M,D[K]))}}function N(M){var F=M.changedTouches,D=F.length,W,Y;for(W=0;W<D;++W)(Y=a[F[W].identifier])&&(to(M),Y("drag",M,F[W]))}function I(M){var F=M.changedTouches,D=F.length,W,Y;for(v&&clearTimeout(v),v=setTimeout(function(){v=null},500),W=0;W<D;++W)(Y=a[F[W].identifier])&&(Eu(M),Y("end",M,F[W]))}function k(M,F,D,W,Y,K){var ne=u.copy(),Z=Vt(K||D,F),J,V,C;if((C=i.call(M,new Vu("beforestart",{sourceEvent:D,target:g,identifier:Y,active:c,x:Z[0],y:Z[1],dx:0,dy:0,dispatch:ne}),W))!=null)return J=C.x-Z[0]||0,V=C.y-Z[1]||0,function b($,U,z){var A=Z,H;switch($){case"start":a[Y]=b,H=c++;break;case"end":delete a[Y],--c;case"drag":Z=Vt(z||U,F),H=c;break}ne.call($,M,new Vu($,{sourceEvent:U,subject:C,target:g,identifier:Y,active:H,x:Z[0]+J,y:Z[1]+V,dx:Z[0]-A[0],dy:Z[1]-A[1],dispatch:ne}),W)}}return g.filter=function(M){return arguments.length?(t=typeof M=="function"?M:Bs(!!M),g):t},g.container=function(M){return arguments.length?(r=typeof M=="function"?M:Bs(M),g):r},g.subject=function(M){return arguments.length?(i=typeof M=="function"?M:Bs(M),g):i},g.touchable=function(M){return arguments.length?(l=typeof M=="function"?M:Bs(!!M),g):l},g.on=function(){var M=u.on.apply(u,arguments);return M===u?g:M},g.clickDistance=function(M){return arguments.length?(y=(M=+M)*M,g):Math.sqrt(y)},g}function rc(t,r,i){t.prototype=r.prototype=i,i.constructor=t}function Th(t,r){var i=Object.create(t.prototype);for(var l in r)i[l]=r[l];return i}function xi(){}var ui=.7,il=1/ui,no="\\s*([+-]?\\d+)\\s*",ci="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",rn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Uv=/^#([0-9a-f]{3,8})$/,Wv=new RegExp(`^rgb\\(${no},${no},${no}\\)$`),Yv=new RegExp(`^rgb\\(${rn},${rn},${rn}\\)$`),Xv=new RegExp(`^rgba\\(${no},${no},${no},${ci}\\)$`),Kv=new RegExp(`^rgba\\(${rn},${rn},${rn},${ci}\\)$`),Qv=new RegExp(`^hsl\\(${ci},${rn},${rn}\\)$`),Gv=new RegExp(`^hsla\\(${ci},${rn},${rn},${ci}\\)$`),op={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};rc(xi,mr,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:ip,formatHex:ip,formatHex8:qv,formatHsl:Zv,formatRgb:sp,toString:sp});function ip(){return this.rgb().formatHex()}function qv(){return this.rgb().formatHex8()}function Zv(){return Rh(this).formatHsl()}function sp(){return this.rgb().formatRgb()}function mr(t){var r,i;return t=(t+"").trim().toLowerCase(),(r=Uv.exec(t))?(i=r[1].length,r=parseInt(r[1],16),i===6?lp(r):i===3?new vt(r>>8&15|r>>4&240,r>>4&15|r&240,(r&15)<<4|r&15,1):i===8?Us(r>>24&255,r>>16&255,r>>8&255,(r&255)/255):i===4?Us(r>>12&15|r>>8&240,r>>8&15|r>>4&240,r>>4&15|r&240,((r&15)<<4|r&15)/255):null):(r=Wv.exec(t))?new vt(r[1],r[2],r[3],1):(r=Yv.exec(t))?new vt(r[1]*255/100,r[2]*255/100,r[3]*255/100,1):(r=Xv.exec(t))?Us(r[1],r[2],r[3],r[4]):(r=Kv.exec(t))?Us(r[1]*255/100,r[2]*255/100,r[3]*255/100,r[4]):(r=Qv.exec(t))?cp(r[1],r[2]/100,r[3]/100,1):(r=Gv.exec(t))?cp(r[1],r[2]/100,r[3]/100,r[4]):op.hasOwnProperty(t)?lp(op[t]):t==="transparent"?new vt(NaN,NaN,NaN,0):null}function lp(t){return new vt(t>>16&255,t>>8&255,t&255,1)}function Us(t,r,i,l){return l<=0&&(t=r=i=NaN),new vt(t,r,i,l)}function Jv(t){return t instanceof xi||(t=mr(t)),t?(t=t.rgb(),new vt(t.r,t.g,t.b,t.opacity)):new vt}function Bu(t,r,i,l){return arguments.length===1?Jv(t):new vt(t,r,i,l??1)}function vt(t,r,i,l){this.r=+t,this.g=+r,this.b=+i,this.opacity=+l}rc(vt,Bu,Th(xi,{brighter(t){return t=t==null?il:Math.pow(il,t),new vt(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?ui:Math.pow(ui,t),new vt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new vt(hr(this.r),hr(this.g),hr(this.b),sl(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:ap,formatHex:ap,formatHex8:ex,formatRgb:up,toString:up}));function ap(){return`#${pr(this.r)}${pr(this.g)}${pr(this.b)}`}function ex(){return`#${pr(this.r)}${pr(this.g)}${pr(this.b)}${pr((isNaN(this.opacity)?1:this.opacity)*255)}`}function up(){const t=sl(this.opacity);return`${t===1?"rgb(":"rgba("}${hr(this.r)}, ${hr(this.g)}, ${hr(this.b)}${t===1?")":`, ${t})`}`}function sl(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function hr(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function pr(t){return t=hr(t),(t<16?"0":"")+t.toString(16)}function cp(t,r,i,l){return l<=0?t=r=i=NaN:i<=0||i>=1?t=r=NaN:r<=0&&(t=NaN),new Bt(t,r,i,l)}function Rh(t){if(t instanceof Bt)return new Bt(t.h,t.s,t.l,t.opacity);if(t instanceof xi||(t=mr(t)),!t)return new Bt;if(t instanceof Bt)return t;t=t.rgb();var r=t.r/255,i=t.g/255,l=t.b/255,a=Math.min(r,i,l),u=Math.max(r,i,l),c=NaN,d=u-a,h=(u+a)/2;return d?(r===u?c=(i-l)/d+(i<l)*6:i===u?c=(l-r)/d+2:c=(r-i)/d+4,d/=h<.5?u+a:2-u-a,c*=60):d=h>0&&h<1?0:c,new Bt(c,d,h,t.opacity)}function tx(t,r,i,l){return arguments.length===1?Rh(t):new Bt(t,r,i,l??1)}function Bt(t,r,i,l){this.h=+t,this.s=+r,this.l=+i,this.opacity=+l}rc(Bt,tx,Th(xi,{brighter(t){return t=t==null?il:Math.pow(il,t),new Bt(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?ui:Math.pow(ui,t),new Bt(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,r=isNaN(t)||isNaN(this.s)?0:this.s,i=this.l,l=i+(i<.5?i:1-i)*r,a=2*i-l;return new vt(Nu(t>=240?t-240:t+120,a,l),Nu(t,a,l),Nu(t<120?t+240:t-120,a,l),this.opacity)},clamp(){return new Bt(fp(this.h),Ws(this.s),Ws(this.l),sl(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=sl(this.opacity);return`${t===1?"hsl(":"hsla("}${fp(this.h)}, ${Ws(this.s)*100}%, ${Ws(this.l)*100}%${t===1?")":`, ${t})`}`}}));function fp(t){return t=(t||0)%360,t<0?t+360:t}function Ws(t){return Math.max(0,Math.min(1,t||0))}function Nu(t,r,i){return(t<60?r+(i-r)*t/60:t<180?i:t<240?r+(i-r)*(240-t)/60:r)*255}const oc=t=>()=>t;function nx(t,r){return function(i){return t+i*r}}function rx(t,r,i){return t=Math.pow(t,i),r=Math.pow(r,i)-t,i=1/i,function(l){return Math.pow(t+l*r,i)}}function ox(t){return(t=+t)==1?zh:function(r,i){return i-r?rx(r,i,t):oc(isNaN(r)?i:r)}}function zh(t,r){var i=r-t;return i?nx(t,i):oc(isNaN(t)?r:t)}const ll=(function t(r){var i=ox(r);function l(a,u){var c=i((a=Bu(a)).r,(u=Bu(u)).r),d=i(a.g,u.g),h=i(a.b,u.b),m=zh(a.opacity,u.opacity);return function(v){return a.r=c(v),a.g=d(v),a.b=h(v),a.opacity=m(v),a+""}}return l.gamma=t,l})(1);function ix(t,r){r||(r=[]);var i=t?Math.min(r.length,t.length):0,l=r.slice(),a;return function(u){for(a=0;a<i;++a)l[a]=t[a]*(1-u)+r[a]*u;return l}}function sx(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function lx(t,r){var i=r?r.length:0,l=t?Math.min(i,t.length):0,a=new Array(l),u=new Array(i),c;for(c=0;c<l;++c)a[c]=si(t[c],r[c]);for(;c<i;++c)u[c]=r[c];return function(d){for(c=0;c<l;++c)u[c]=a[c](d);return u}}function ax(t,r){var i=new Date;return t=+t,r=+r,function(l){return i.setTime(t*(1-l)+r*l),i}}function nn(t,r){return t=+t,r=+r,function(i){return t*(1-i)+r*i}}function ux(t,r){var i={},l={},a;(t===null||typeof t!="object")&&(t={}),(r===null||typeof r!="object")&&(r={});for(a in r)a in t?i[a]=si(t[a],r[a]):l[a]=r[a];return function(u){for(a in i)l[a]=i[a](u);return l}}var Uu=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Cu=new RegExp(Uu.source,"g");function cx(t){return function(){return t}}function fx(t){return function(r){return t(r)+""}}function Lh(t,r){var i=Uu.lastIndex=Cu.lastIndex=0,l,a,u,c=-1,d=[],h=[];for(t=t+"",r=r+"";(l=Uu.exec(t))&&(a=Cu.exec(r));)(u=a.index)>i&&(u=r.slice(i,u),d[c]?d[c]+=u:d[++c]=u),(l=l[0])===(a=a[0])?d[c]?d[c]+=a:d[++c]=a:(d[++c]=null,h.push({i:c,x:nn(l,a)})),i=Cu.lastIndex;return i<r.length&&(u=r.slice(i),d[c]?d[c]+=u:d[++c]=u),d.length<2?h[0]?fx(h[0].x):cx(r):(r=h.length,function(m){for(var v=0,y;v<r;++v)d[(y=h[v]).i]=y.x(m);return d.join("")})}function si(t,r){var i=typeof r,l;return r==null||i==="boolean"?oc(r):(i==="number"?nn:i==="string"?(l=mr(r))?(r=l,ll):Lh:r instanceof mr?ll:r instanceof Date?ax:sx(r)?ix:Array.isArray(r)?lx:typeof r.valueOf!="function"&&typeof r.toString!="function"||isNaN(r)?ux:nn)(t,r)}var dp=180/Math.PI,Wu={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Ah(t,r,i,l,a,u){var c,d,h;return(c=Math.sqrt(t*t+r*r))&&(t/=c,r/=c),(h=t*i+r*l)&&(i-=t*h,l-=r*h),(d=Math.sqrt(i*i+l*l))&&(i/=d,l/=d,h/=d),t*l<r*i&&(t=-t,r=-r,h=-h,c=-c),{translateX:a,translateY:u,rotate:Math.atan2(r,t)*dp,skewX:Math.atan(h)*dp,scaleX:c,scaleY:d}}var Ys;function dx(t){const r=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return r.isIdentity?Wu:Ah(r.a,r.b,r.c,r.d,r.e,r.f)}function px(t){return t==null||(Ys||(Ys=document.createElementNS("http://www.w3.org/2000/svg","g")),Ys.setAttribute("transform",t),!(t=Ys.transform.baseVal.consolidate()))?Wu:(t=t.matrix,Ah(t.a,t.b,t.c,t.d,t.e,t.f))}function Dh(t,r,i,l){function a(m){return m.length?m.pop()+" ":""}function u(m,v,y,g,x,S){if(m!==y||v!==g){var j=x.push("translate(",null,r,null,i);S.push({i:j-4,x:nn(m,y)},{i:j-2,x:nn(v,g)})}else(y||g)&&x.push("translate("+y+r+g+i)}function c(m,v,y,g){m!==v?(m-v>180?v+=360:v-m>180&&(m+=360),g.push({i:y.push(a(y)+"rotate(",null,l)-2,x:nn(m,v)})):v&&y.push(a(y)+"rotate("+v+l)}function d(m,v,y,g){m!==v?g.push({i:y.push(a(y)+"skewX(",null,l)-2,x:nn(m,v)}):v&&y.push(a(y)+"skewX("+v+l)}function h(m,v,y,g,x,S){if(m!==y||v!==g){var j=x.push(a(x)+"scale(",null,",",null,")");S.push({i:j-4,x:nn(m,y)},{i:j-2,x:nn(v,g)})}else(y!==1||g!==1)&&x.push(a(x)+"scale("+y+","+g+")")}return function(m,v){var y=[],g=[];return m=t(m),v=t(v),u(m.translateX,m.translateY,v.translateX,v.translateY,y,g),c(m.rotate,v.rotate,y,g),d(m.skewX,v.skewX,y,g),h(m.scaleX,m.scaleY,v.scaleX,v.scaleY,y,g),m=v=null,function(x){for(var S=-1,j=g.length,E;++S<j;)y[(E=g[S]).i]=E.x(x);return y.join("")}}}var hx=Dh(dx,"px, ","px)","deg)"),gx=Dh(px,", ",")",")"),mx=1e-12;function pp(t){return((t=Math.exp(t))+1/t)/2}function yx(t){return((t=Math.exp(t))-1/t)/2}function vx(t){return((t=Math.exp(2*t))-1)/(t+1)}const el=(function t(r,i,l){function a(u,c){var d=u[0],h=u[1],m=u[2],v=c[0],y=c[1],g=c[2],x=v-d,S=y-h,j=x*x+S*S,E,N;if(j<mx)N=Math.log(g/m)/r,E=function(W){return[d+W*x,h+W*S,m*Math.exp(r*W*N)]};else{var I=Math.sqrt(j),k=(g*g-m*m+l*j)/(2*m*i*I),M=(g*g-m*m-l*j)/(2*g*i*I),F=Math.log(Math.sqrt(k*k+1)-k),D=Math.log(Math.sqrt(M*M+1)-M);N=(D-F)/r,E=function(W){var Y=W*N,K=pp(F),ne=m/(i*I)*(K*vx(r*Y+F)-yx(F));return[d+ne*x,h+ne*S,m*K/pp(r*Y+F)]}}return E.duration=N*1e3*r/Math.SQRT2,E}return a.rho=function(u){var c=Math.max(.001,+u),d=c*c,h=d*d;return t(c,d,h)},a})(Math.SQRT2,2,4);var io=0,oi=0,ni=0,$h=1e3,al,ii,ul=0,yr=0,yl=0,fi=typeof performance=="object"&&performance.now?performance:Date,bh=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function ic(){return yr||(bh(xx),yr=fi.now()+yl)}function xx(){yr=0}function cl(){this._call=this._time=this._next=null}cl.prototype=Oh.prototype={constructor:cl,restart:function(t,r,i){if(typeof t!="function")throw new TypeError("callback is not a function");i=(i==null?ic():+i)+(r==null?0:+r),!this._next&&ii!==this&&(ii?ii._next=this:al=this,ii=this),this._call=t,this._time=i,Yu()},stop:function(){this._call&&(this._call=null,this._time=1/0,Yu())}};function Oh(t,r,i){var l=new cl;return l.restart(t,r,i),l}function wx(){ic(),++io;for(var t=al,r;t;)(r=yr-t._time)>=0&&t._call.call(void 0,r),t=t._next;--io}function hp(){yr=(ul=fi.now())+yl,io=oi=0;try{wx()}finally{io=0,Sx(),yr=0}}function _x(){var t=fi.now(),r=t-ul;r>$h&&(yl-=r,ul=t)}function Sx(){for(var t,r=al,i,l=1/0;r;)r._call?(l>r._time&&(l=r._time),t=r,r=r._next):(i=r._next,r._next=null,r=t?t._next=i:al=i);ii=t,Yu(l)}function Yu(t){if(!io){oi&&(oi=clearTimeout(oi));var r=t-yr;r>24?(t<1/0&&(oi=setTimeout(hp,t-fi.now()-yl)),ni&&(ni=clearInterval(ni))):(ni||(ul=fi.now(),ni=setInterval(_x,$h)),io=1,bh(hp))}}function gp(t,r,i){var l=new cl;return r=r==null?0:+r,l.restart(a=>{l.stop(),t(a+r)},r,i),l}var kx=gl("start","end","cancel","interrupt"),Ex=[],Fh=0,mp=1,Xu=2,tl=3,yp=4,Ku=5,nl=6;function vl(t,r,i,l,a,u){var c=t.__transition;if(!c)t.__transition={};else if(i in c)return;Nx(t,i,{name:r,index:l,group:a,on:kx,tween:Ex,time:u.time,delay:u.delay,duration:u.duration,ease:u.ease,timer:null,state:Fh})}function sc(t,r){var i=Xt(t,r);if(i.state>Fh)throw new Error("too late; already scheduled");return i}function on(t,r){var i=Xt(t,r);if(i.state>tl)throw new Error("too late; already running");return i}function Xt(t,r){var i=t.__transition;if(!i||!(i=i[r]))throw new Error("transition not found");return i}function Nx(t,r,i){var l=t.__transition,a;l[r]=i,i.timer=Oh(u,0,i.time);function u(m){i.state=mp,i.timer.restart(c,i.delay,i.time),i.delay<=m&&c(m-i.delay)}function c(m){var v,y,g,x;if(i.state!==mp)return h();for(v in l)if(x=l[v],x.name===i.name){if(x.state===tl)return gp(c);x.state===yp?(x.state=nl,x.timer.stop(),x.on.call("interrupt",t,t.__data__,x.index,x.group),delete l[v]):+v<r&&(x.state=nl,x.timer.stop(),x.on.call("cancel",t,t.__data__,x.index,x.group),delete l[v])}if(gp(function(){i.state===tl&&(i.state=yp,i.timer.restart(d,i.delay,i.time),d(m))}),i.state=Xu,i.on.call("start",t,t.__data__,i.index,i.group),i.state===Xu){for(i.state=tl,a=new Array(g=i.tween.length),v=0,y=-1;v<g;++v)(x=i.tween[v].value.call(t,t.__data__,i.index,i.group))&&(a[++y]=x);a.length=y+1}}function d(m){for(var v=m<i.duration?i.ease.call(null,m/i.duration):(i.timer.restart(h),i.state=Ku,1),y=-1,g=a.length;++y<g;)a[y].call(t,v);i.state===Ku&&(i.on.call("end",t,t.__data__,i.index,i.group),h())}function h(){i.state=nl,i.timer.stop(),delete l[r];for(var m in l)return;delete t.__transition}}function rl(t,r){var i=t.__transition,l,a,u=!0,c;if(i){r=r==null?null:r+"";for(c in i){if((l=i[c]).name!==r){u=!1;continue}a=l.state>Xu&&l.state<Ku,l.state=nl,l.timer.stop(),l.on.call(a?"interrupt":"cancel",t,t.__data__,l.index,l.group),delete i[c]}u&&delete t.__transition}}function Cx(t){return this.each(function(){rl(this,t)})}function Mx(t,r){var i,l;return function(){var a=on(this,t),u=a.tween;if(u!==i){l=i=u;for(var c=0,d=l.length;c<d;++c)if(l[c].name===r){l=l.slice(),l.splice(c,1);break}}a.tween=l}}function jx(t,r,i){var l,a;if(typeof i!="function")throw new Error;return function(){var u=on(this,t),c=u.tween;if(c!==l){a=(l=c).slice();for(var d={name:r,value:i},h=0,m=a.length;h<m;++h)if(a[h].name===r){a[h]=d;break}h===m&&a.push(d)}u.tween=a}}function Px(t,r){var i=this._id;if(t+="",arguments.length<2){for(var l=Xt(this.node(),i).tween,a=0,u=l.length,c;a<u;++a)if((c=l[a]).name===t)return c.value;return null}return this.each((r==null?Mx:jx)(i,t,r))}function lc(t,r,i){var l=t._id;return t.each(function(){var a=on(this,l);(a.value||(a.value={}))[r]=i.apply(this,arguments)}),function(a){return Xt(a,l).value[r]}}function Hh(t,r){var i;return(typeof r=="number"?nn:r instanceof mr?ll:(i=mr(r))?(r=i,ll):Lh)(t,r)}function Ix(t){return function(){this.removeAttribute(t)}}function Tx(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Rx(t,r,i){var l,a=i+"",u;return function(){var c=this.getAttribute(t);return c===a?null:c===l?u:u=r(l=c,i)}}function zx(t,r,i){var l,a=i+"",u;return function(){var c=this.getAttributeNS(t.space,t.local);return c===a?null:c===l?u:u=r(l=c,i)}}function Lx(t,r,i){var l,a,u;return function(){var c,d=i(this),h;return d==null?void this.removeAttribute(t):(c=this.getAttribute(t),h=d+"",c===h?null:c===l&&h===a?u:(a=h,u=r(l=c,d)))}}function Ax(t,r,i){var l,a,u;return function(){var c,d=i(this),h;return d==null?void this.removeAttributeNS(t.space,t.local):(c=this.getAttributeNS(t.space,t.local),h=d+"",c===h?null:c===l&&h===a?u:(a=h,u=r(l=c,d)))}}function Dx(t,r){var i=ml(t),l=i==="transform"?gx:Hh;return this.attrTween(t,typeof r=="function"?(i.local?Ax:Lx)(i,l,lc(this,"attr."+t,r)):r==null?(i.local?Tx:Ix)(i):(i.local?zx:Rx)(i,l,r))}function $x(t,r){return function(i){this.setAttribute(t,r.call(this,i))}}function bx(t,r){return function(i){this.setAttributeNS(t.space,t.local,r.call(this,i))}}function Ox(t,r){var i,l;function a(){var u=r.apply(this,arguments);return u!==l&&(i=(l=u)&&bx(t,u)),i}return a._value=r,a}function Fx(t,r){var i,l;function a(){var u=r.apply(this,arguments);return u!==l&&(i=(l=u)&&$x(t,u)),i}return a._value=r,a}function Hx(t,r){var i="attr."+t;if(arguments.length<2)return(i=this.tween(i))&&i._value;if(r==null)return this.tween(i,null);if(typeof r!="function")throw new Error;var l=ml(t);return this.tween(i,(l.local?Ox:Fx)(l,r))}function Vx(t,r){return function(){sc(this,t).delay=+r.apply(this,arguments)}}function Bx(t,r){return r=+r,function(){sc(this,t).delay=r}}function Ux(t){var r=this._id;return arguments.length?this.each((typeof t=="function"?Vx:Bx)(r,t)):Xt(this.node(),r).delay}function Wx(t,r){return function(){on(this,t).duration=+r.apply(this,arguments)}}function Yx(t,r){return r=+r,function(){on(this,t).duration=r}}function Xx(t){var r=this._id;return arguments.length?this.each((typeof t=="function"?Wx:Yx)(r,t)):Xt(this.node(),r).duration}function Kx(t,r){if(typeof r!="function")throw new Error;return function(){on(this,t).ease=r}}function Qx(t){var r=this._id;return arguments.length?this.each(Kx(r,t)):Xt(this.node(),r).ease}function Gx(t,r){return function(){var i=r.apply(this,arguments);if(typeof i!="function")throw new Error;on(this,t).ease=i}}function qx(t){if(typeof t!="function")throw new Error;return this.each(Gx(this._id,t))}function Zx(t){typeof t!="function"&&(t=vh(t));for(var r=this._groups,i=r.length,l=new Array(i),a=0;a<i;++a)for(var u=r[a],c=u.length,d=l[a]=[],h,m=0;m<c;++m)(h=u[m])&&t.call(h,h.__data__,m,u)&&d.push(h);return new xn(l,this._parents,this._name,this._id)}function Jx(t){if(t._id!==this._id)throw new Error;for(var r=this._groups,i=t._groups,l=r.length,a=i.length,u=Math.min(l,a),c=new Array(l),d=0;d<u;++d)for(var h=r[d],m=i[d],v=h.length,y=c[d]=new Array(v),g,x=0;x<v;++x)(g=h[x]||m[x])&&(y[x]=g);for(;d<l;++d)c[d]=r[d];return new xn(c,this._parents,this._name,this._id)}function ew(t){return(t+"").trim().split(/^|\s+/).every(function(r){var i=r.indexOf(".");return i>=0&&(r=r.slice(0,i)),!r||r==="start"})}function tw(t,r,i){var l,a,u=ew(r)?sc:on;return function(){var c=u(this,t),d=c.on;d!==l&&(a=(l=d).copy()).on(r,i),c.on=a}}function nw(t,r){var i=this._id;return arguments.length<2?Xt(this.node(),i).on.on(t):this.each(tw(i,t,r))}function rw(t){return function(){var r=this.parentNode;for(var i in this.__transition)if(+i!==t)return;r&&r.removeChild(this)}}function ow(){return this.on("end.remove",rw(this._id))}function iw(t){var r=this._name,i=this._id;typeof t!="function"&&(t=tc(t));for(var l=this._groups,a=l.length,u=new Array(a),c=0;c<a;++c)for(var d=l[c],h=d.length,m=u[c]=new Array(h),v,y,g=0;g<h;++g)(v=d[g])&&(y=t.call(v,v.__data__,g,d))&&("__data__"in v&&(y.__data__=v.__data__),m[g]=y,vl(m[g],r,i,g,m,Xt(v,i)));return new xn(u,this._parents,r,i)}function sw(t){var r=this._name,i=this._id;typeof t!="function"&&(t=yh(t));for(var l=this._groups,a=l.length,u=[],c=[],d=0;d<a;++d)for(var h=l[d],m=h.length,v,y=0;y<m;++y)if(v=h[y]){for(var g=t.call(v,v.__data__,y,h),x,S=Xt(v,i),j=0,E=g.length;j<E;++j)(x=g[j])&&vl(x,r,i,j,g,S);u.push(g),c.push(v)}return new xn(u,c,r,i)}var lw=vi.prototype.constructor;function aw(){return new lw(this._groups,this._parents)}function uw(t,r){var i,l,a;return function(){var u=oo(this,t),c=(this.style.removeProperty(t),oo(this,t));return u===c?null:u===i&&c===l?a:a=r(i=u,l=c)}}function Vh(t){return function(){this.style.removeProperty(t)}}function cw(t,r,i){var l,a=i+"",u;return function(){var c=oo(this,t);return c===a?null:c===l?u:u=r(l=c,i)}}function fw(t,r,i){var l,a,u;return function(){var c=oo(this,t),d=i(this),h=d+"";return d==null&&(h=d=(this.style.removeProperty(t),oo(this,t))),c===h?null:c===l&&h===a?u:(a=h,u=r(l=c,d))}}function dw(t,r){var i,l,a,u="style."+r,c="end."+u,d;return function(){var h=on(this,t),m=h.on,v=h.value[u]==null?d||(d=Vh(r)):void 0;(m!==i||a!==v)&&(l=(i=m).copy()).on(c,a=v),h.on=l}}function pw(t,r,i){var l=(t+="")=="transform"?hx:Hh;return r==null?this.styleTween(t,uw(t,l)).on("end.style."+t,Vh(t)):typeof r=="function"?this.styleTween(t,fw(t,l,lc(this,"style."+t,r))).each(dw(this._id,t)):this.styleTween(t,cw(t,l,r),i).on("end.style."+t,null)}function hw(t,r,i){return function(l){this.style.setProperty(t,r.call(this,l),i)}}function gw(t,r,i){var l,a;function u(){var c=r.apply(this,arguments);return c!==a&&(l=(a=c)&&hw(t,c,i)),l}return u._value=r,u}function mw(t,r,i){var l="style."+(t+="");if(arguments.length<2)return(l=this.tween(l))&&l._value;if(r==null)return this.tween(l,null);if(typeof r!="function")throw new Error;return this.tween(l,gw(t,r,i??""))}function yw(t){return function(){this.textContent=t}}function vw(t){return function(){var r=t(this);this.textContent=r??""}}function xw(t){return this.tween("text",typeof t=="function"?vw(lc(this,"text",t)):yw(t==null?"":t+""))}function ww(t){return function(r){this.textContent=t.call(this,r)}}function _w(t){var r,i;function l(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&ww(a)),r}return l._value=t,l}function Sw(t){var r="text";if(arguments.length<1)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!="function")throw new Error;return this.tween(r,_w(t))}function kw(){for(var t=this._name,r=this._id,i=Bh(),l=this._groups,a=l.length,u=0;u<a;++u)for(var c=l[u],d=c.length,h,m=0;m<d;++m)if(h=c[m]){var v=Xt(h,r);vl(h,t,i,m,c,{time:v.time+v.delay+v.duration,delay:0,duration:v.duration,ease:v.ease})}return new xn(l,this._parents,t,i)}function Ew(){var t,r,i=this,l=i._id,a=i.size();return new Promise(function(u,c){var d={value:c},h={value:function(){--a===0&&u()}};i.each(function(){var m=on(this,l),v=m.on;v!==t&&(r=(t=v).copy(),r._.cancel.push(d),r._.interrupt.push(d),r._.end.push(h)),m.on=r}),a===0&&u()})}var Nw=0;function xn(t,r,i,l){this._groups=t,this._parents=r,this._name=i,this._id=l}function Bh(){return++Nw}var yn=vi.prototype;xn.prototype={constructor:xn,select:iw,selectAll:sw,selectChild:yn.selectChild,selectChildren:yn.selectChildren,filter:Zx,merge:Jx,selection:aw,transition:kw,call:yn.call,nodes:yn.nodes,node:yn.node,size:yn.size,empty:yn.empty,each:yn.each,on:nw,attr:Dx,attrTween:Hx,style:pw,styleTween:mw,text:xw,textTween:Sw,remove:ow,tween:Px,delay:Ux,duration:Xx,ease:Qx,easeVarying:qx,end:Ew,[Symbol.iterator]:yn[Symbol.iterator]};function Cw(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var Mw={time:null,delay:0,duration:250,ease:Cw};function jw(t,r){for(var i;!(i=t.__transition)||!(i=i[r]);)if(!(t=t.parentNode))throw new Error(`transition ${r} not found`);return i}function Pw(t){var r,i;t instanceof xn?(r=t._id,t=t._name):(r=Bh(),(i=Mw).time=ic(),t=t==null?null:t+"");for(var l=this._groups,a=l.length,u=0;u<a;++u)for(var c=l[u],d=c.length,h,m=0;m<d;++m)(h=c[m])&&vl(h,t,r,m,c,i||jw(h,r));return new xn(l,this._parents,t,r)}vi.prototype.interrupt=Cx;vi.prototype.transition=Pw;const Xs=t=>()=>t;function Iw(t,{sourceEvent:r,target:i,transform:l,dispatch:a}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:r,enumerable:!0,configurable:!0},target:{value:i,enumerable:!0,configurable:!0},transform:{value:l,enumerable:!0,configurable:!0},_:{value:a}})}function vn(t,r,i){this.k=t,this.x=r,this.y=i}vn.prototype={constructor:vn,scale:function(t){return t===1?this:new vn(this.k*t,this.x,this.y)},translate:function(t,r){return t===0&r===0?this:new vn(this.k,this.x+this.k*t,this.y+this.k*r)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var xl=new vn(1,0,0);Uh.prototype=vn.prototype;function Uh(t){for(;!t.__zoom;)if(!(t=t.parentNode))return xl;return t.__zoom}function Mu(t){t.stopImmediatePropagation()}function ri(t){t.preventDefault(),t.stopImmediatePropagation()}function Tw(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function Rw(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]):[[0,0],[t.clientWidth,t.clientHeight]]}function vp(){return this.__zoom||xl}function zw(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function Lw(){return navigator.maxTouchPoints||"ontouchstart"in this}function Aw(t,r,i){var l=t.invertX(r[0][0])-i[0][0],a=t.invertX(r[1][0])-i[1][0],u=t.invertY(r[0][1])-i[0][1],c=t.invertY(r[1][1])-i[1][1];return t.translate(a>l?(l+a)/2:Math.min(0,l)||Math.max(0,a),c>u?(u+c)/2:Math.min(0,u)||Math.max(0,c))}function Wh(){var t=Tw,r=Rw,i=Aw,l=zw,a=Lw,u=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],d=250,h=el,m=gl("start","zoom","end"),v,y,g,x=500,S=150,j=0,E=10;function N(C){C.property("__zoom",vp).on("wheel.zoom",Y,{passive:!1}).on("mousedown.zoom",K).on("dblclick.zoom",ne).filter(a).on("touchstart.zoom",Z).on("touchmove.zoom",J).on("touchend.zoom touchcancel.zoom",V).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}N.transform=function(C,b,$,U){var z=C.selection?C.selection():C;z.property("__zoom",vp),C!==z?F(C,b,$,U):z.interrupt().each(function(){D(this,arguments).event(U).start().zoom(null,typeof b=="function"?b.apply(this,arguments):b).end()})},N.scaleBy=function(C,b,$,U){N.scaleTo(C,function(){var z=this.__zoom.k,A=typeof b=="function"?b.apply(this,arguments):b;return z*A},$,U)},N.scaleTo=function(C,b,$,U){N.transform(C,function(){var z=r.apply(this,arguments),A=this.__zoom,H=$==null?M(z):typeof $=="function"?$.apply(this,arguments):$,P=A.invert(H),L=typeof b=="function"?b.apply(this,arguments):b;return i(k(I(A,L),H,P),z,c)},$,U)},N.translateBy=function(C,b,$,U){N.transform(C,function(){return i(this.__zoom.translate(typeof b=="function"?b.apply(this,arguments):b,typeof $=="function"?$.apply(this,arguments):$),r.apply(this,arguments),c)},null,U)},N.translateTo=function(C,b,$,U,z){N.transform(C,function(){var A=r.apply(this,arguments),H=this.__zoom,P=U==null?M(A):typeof U=="function"?U.apply(this,arguments):U;return i(xl.translate(P[0],P[1]).scale(H.k).translate(typeof b=="function"?-b.apply(this,arguments):-b,typeof $=="function"?-$.apply(this,arguments):-$),A,c)},U,z)};function I(C,b){return b=Math.max(u[0],Math.min(u[1],b)),b===C.k?C:new vn(b,C.x,C.y)}function k(C,b,$){var U=b[0]-$[0]*C.k,z=b[1]-$[1]*C.k;return U===C.x&&z===C.y?C:new vn(C.k,U,z)}function M(C){return[(+C[0][0]+ +C[1][0])/2,(+C[0][1]+ +C[1][1])/2]}function F(C,b,$,U){C.on("start.zoom",function(){D(this,arguments).event(U).start()}).on("interrupt.zoom end.zoom",function(){D(this,arguments).event(U).end()}).tween("zoom",function(){var z=this,A=arguments,H=D(z,A).event(U),P=r.apply(z,A),L=$==null?M(P):typeof $=="function"?$.apply(z,A):$,ee=Math.max(P[1][0]-P[0][0],P[1][1]-P[0][1]),te=z.__zoom,ue=typeof b=="function"?b.apply(z,A):b,de=h(te.invert(L).concat(ee/te.k),ue.invert(L).concat(ee/ue.k));return function(fe){if(fe===1)fe=ue;else{var G=de(fe),ie=ee/G[2];fe=new vn(ie,L[0]-G[0]*ie,L[1]-G[1]*ie)}H.zoom(null,fe)}})}function D(C,b,$){return!$&&C.__zooming||new W(C,b)}function W(C,b){this.that=C,this.args=b,this.active=0,this.sourceEvent=null,this.extent=r.apply(C,b),this.taps=0}W.prototype={event:function(C){return C&&(this.sourceEvent=C),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(C,b){return this.mouse&&C!=="mouse"&&(this.mouse[1]=b.invert(this.mouse[0])),this.touch0&&C!=="touch"&&(this.touch0[1]=b.invert(this.touch0[0])),this.touch1&&C!=="touch"&&(this.touch1[1]=b.invert(this.touch1[0])),this.that.__zoom=b,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(C){var b=Ct(this.that).datum();m.call(C,this.that,new Iw(C,{sourceEvent:this.sourceEvent,target:N,transform:this.that.__zoom,dispatch:m}),b)}};function Y(C,...b){if(!t.apply(this,arguments))return;var $=D(this,b).event(C),U=this.__zoom,z=Math.max(u[0],Math.min(u[1],U.k*Math.pow(2,l.apply(this,arguments)))),A=Vt(C);if($.wheel)($.mouse[0][0]!==A[0]||$.mouse[0][1]!==A[1])&&($.mouse[1]=U.invert($.mouse[0]=A)),clearTimeout($.wheel);else{if(U.k===z)return;$.mouse=[A,U.invert(A)],rl(this),$.start()}ri(C),$.wheel=setTimeout(H,S),$.zoom("mouse",i(k(I(U,z),$.mouse[0],$.mouse[1]),$.extent,c));function H(){$.wheel=null,$.end()}}function K(C,...b){if(g||!t.apply(this,arguments))return;var $=C.currentTarget,U=D(this,b,!0).event(C),z=Ct(C.view).on("mousemove.zoom",L,!0).on("mouseup.zoom",ee,!0),A=Vt(C,$),H=C.clientX,P=C.clientY;jh(C.view),Mu(C),U.mouse=[A,this.__zoom.invert(A)],rl(this),U.start();function L(te){if(ri(te),!U.moved){var ue=te.clientX-H,de=te.clientY-P;U.moved=ue*ue+de*de>j}U.event(te).zoom("mouse",i(k(U.that.__zoom,U.mouse[0]=Vt(te,$),U.mouse[1]),U.extent,c))}function ee(te){z.on("mousemove.zoom mouseup.zoom",null),Ph(te.view,U.moved),ri(te),U.event(te).end()}}function ne(C,...b){if(t.apply(this,arguments)){var $=this.__zoom,U=Vt(C.changedTouches?C.changedTouches[0]:C,this),z=$.invert(U),A=$.k*(C.shiftKey?.5:2),H=i(k(I($,A),U,z),r.apply(this,b),c);ri(C),d>0?Ct(this).transition().duration(d).call(F,H,U,C):Ct(this).call(N.transform,H,U,C)}}function Z(C,...b){if(t.apply(this,arguments)){var $=C.touches,U=$.length,z=D(this,b,C.changedTouches.length===U).event(C),A,H,P,L;for(Mu(C),H=0;H<U;++H)P=$[H],L=Vt(P,this),L=[L,this.__zoom.invert(L),P.identifier],z.touch0?!z.touch1&&z.touch0[2]!==L[2]&&(z.touch1=L,z.taps=0):(z.touch0=L,A=!0,z.taps=1+!!v);v&&(v=clearTimeout(v)),A&&(z.taps<2&&(y=L[0],v=setTimeout(function(){v=null},x)),rl(this),z.start())}}function J(C,...b){if(this.__zooming){var $=D(this,b).event(C),U=C.changedTouches,z=U.length,A,H,P,L;for(ri(C),A=0;A<z;++A)H=U[A],P=Vt(H,this),$.touch0&&$.touch0[2]===H.identifier?$.touch0[0]=P:$.touch1&&$.touch1[2]===H.identifier&&($.touch1[0]=P);if(H=$.that.__zoom,$.touch1){var ee=$.touch0[0],te=$.touch0[1],ue=$.touch1[0],de=$.touch1[1],fe=(fe=ue[0]-ee[0])*fe+(fe=ue[1]-ee[1])*fe,G=(G=de[0]-te[0])*G+(G=de[1]-te[1])*G;H=I(H,Math.sqrt(fe/G)),P=[(ee[0]+ue[0])/2,(ee[1]+ue[1])/2],L=[(te[0]+de[0])/2,(te[1]+de[1])/2]}else if($.touch0)P=$.touch0[0],L=$.touch0[1];else return;$.zoom("touch",i(k(H,P,L),$.extent,c))}}function V(C,...b){if(this.__zooming){var $=D(this,b).event(C),U=C.changedTouches,z=U.length,A,H;for(Mu(C),g&&clearTimeout(g),g=setTimeout(function(){g=null},x),A=0;A<z;++A)H=U[A],$.touch0&&$.touch0[2]===H.identifier?delete $.touch0:$.touch1&&$.touch1[2]===H.identifier&&delete $.touch1;if($.touch1&&!$.touch0&&($.touch0=$.touch1,delete $.touch1),$.touch0)$.touch0[1]=this.__zoom.invert($.touch0[0]);else if($.end(),$.taps===2&&(H=Vt(H,this),Math.hypot(y[0]-H[0],y[1]-H[1])<E)){var P=Ct(this).on("dblclick.zoom");P&&P.apply(this,arguments)}}}return N.wheelDelta=function(C){return arguments.length?(l=typeof C=="function"?C:Xs(+C),N):l},N.filter=function(C){return arguments.length?(t=typeof C=="function"?C:Xs(!!C),N):t},N.touchable=function(C){return arguments.length?(a=typeof C=="function"?C:Xs(!!C),N):a},N.extent=function(C){return arguments.length?(r=typeof C=="function"?C:Xs([[+C[0][0],+C[0][1]],[+C[1][0],+C[1][1]]]),N):r},N.scaleExtent=function(C){return arguments.length?(u[0]=+C[0],u[1]=+C[1],N):[u[0],u[1]]},N.translateExtent=function(C){return arguments.length?(c[0][0]=+C[0][0],c[1][0]=+C[1][0],c[0][1]=+C[0][1],c[1][1]=+C[1][1],N):[[c[0][0],c[0][1]],[c[1][0],c[1][1]]]},N.constrain=function(C){return arguments.length?(i=C,N):i},N.duration=function(C){return arguments.length?(d=+C,N):d},N.interpolate=function(C){return arguments.length?(h=C,N):h},N.on=function(){var C=m.on.apply(m,arguments);return C===m?N:C},N.clickDistance=function(C){return arguments.length?(j=(C=+C)*C,N):Math.sqrt(j)},N.tapDistance=function(C){return arguments.length?(E=+C,N):E},N}const Yt={error001:(t="react")=>`Seems like you have not used ${t==="svelte"?"SvelteFlowProvider":"ReactFlowProvider"} as an ancestor. Help: https://${t}flow.dev/error#001`,error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:t=>`Node type "${t}" not found. Using fallback type "default".`,error004:()=>"The parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:t=>`The old edge with id=${t} does not exist.`,error009:t=>`Marker type "${t}" doesn't exist.`,error008:(t,{id:r,sourceHandle:i,targetHandle:l})=>`Couldn't create edge for ${t} handle id: "${t==="source"?i:l}", edge id: ${r}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:t=>`Edge type "${t}" not found. Using fallback type "default".`,error012:t=>`Node with id "${t}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(t="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${t}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.",error016:t=>`Edge with id "${t}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},di=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Yh=["Enter"," ","Escape"],Xh={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:t,x:r,y:i})=>`Moved selected node ${t}. New position, x: ${r}, y: ${i}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var so;(function(t){t.Strict="strict",t.Loose="loose"})(so||(so={}));var gr;(function(t){t.Free="free",t.Vertical="vertical",t.Horizontal="horizontal"})(gr||(gr={}));var pi;(function(t){t.Partial="partial",t.Full="full"})(pi||(pi={}));const Kh={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Un;(function(t){t.Bezier="default",t.Straight="straight",t.Step="step",t.SmoothStep="smoothstep",t.SimpleBezier="simplebezier"})(Un||(Un={}));var fl;(function(t){t.Arrow="arrow",t.ArrowClosed="arrowclosed"})(fl||(fl={}));var _e;(function(t){t.Left="left",t.Top="top",t.Right="right",t.Bottom="bottom"})(_e||(_e={}));const xp={[_e.Left]:_e.Right,[_e.Right]:_e.Left,[_e.Top]:_e.Bottom,[_e.Bottom]:_e.Top},Qh=t=>!!t&&typeof t=="object"&&"id"in t&&"source"in t&&"target"in t,Dw=t=>!!t&&typeof t=="object"&&"id"in t&&"position"in t&&!("source"in t)&&!("target"in t),ac=t=>!!t&&typeof t=="object"&&"id"in t&&"internals"in t&&!("source"in t)&&!("target"in t),wi=(t,r=[0,0])=>{const{width:i,height:l}=Kt(t),a=t.origin??r,u=i*a[0],c=l*a[1];return{x:t.position.x-u,y:t.position.y-c}},$w=(t,r={nodeOrigin:[0,0]})=>{if(t.length===0)return{x:0,y:0,width:0,height:0};let i=!1;const l=t.reduce((a,u)=>{const c=typeof u=="string";let d=!r.nodeLookup&&!c?u:void 0;return r.nodeLookup&&(d=c?r.nodeLookup.get(u):ac(u)?u:r.nodeLookup.get(u.id)),d?(i=!0,wl(a,dl(d,r.nodeOrigin))):a},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return i?_l(l):{x:0,y:0,width:0,height:0}},_i=(t,r={})=>{let i={x:1/0,y:1/0,x2:-1/0,y2:-1/0},l=!1;return t.forEach(a=>{(r.filter===void 0||r.filter(a))&&(i=wl(i,dl(a)),l=!0)}),l?_l(i):{x:0,y:0,width:0,height:0}},uc=(t,r,[i,l,a]=[0,0,1],u=!1,c=!1)=>{const d=(r.x-i)/a,h=(r.y-l)/a,m=r.width/a,v=r.height/a,y=[];for(const g of t.values()){const{measured:x,selectable:S=!0,hidden:j=!1}=g;if(c&&!S||j)continue;const E=x.width??g.width??g.initialWidth??0,N=x.height??g.height??g.initialHeight??0,{x:I,y:k}=g.internals.positionAbsolute,M=Jh(d,h,m,v,I,k,E,N),F=E*N,D=u&&M>0;(!g.internals.handleBounds||D||M>=F||g.dragging)&&y.push(g)}return y},bw=(t,r)=>{const i=new Set;return t.forEach(l=>{i.add(l.id)}),r.filter(l=>i.has(l.source)||i.has(l.target))};function Ow(t,r){const i=new Map,l=r!=null&&r.nodes?new Set(r.nodes.map(a=>a.id)):null;return t.forEach(a=>{let u;if(r!=null&&r.includeHiddenNodes){const{width:c,height:d}=Kt(a);u=c>0&&d>0}else u=!!(a.measured.width&&a.measured.height&&!a.hidden);u&&(!l||l.has(a.id))&&i.set(a.id,a)}),i}async function Fw({nodes:t,width:r,height:i,panZoom:l,minZoom:a,maxZoom:u},c){if(t.size===0)return!0;const d=Ow(t,c),h=_i(d),m=fc(h,r,i,(c==null?void 0:c.minZoom)??a,(c==null?void 0:c.maxZoom)??u,(c==null?void 0:c.padding)??.1);return await l.setViewport(m,{duration:c==null?void 0:c.duration,ease:c==null?void 0:c.ease,interpolate:c==null?void 0:c.interpolate}),!0}function Gh({nodeId:t,nextPosition:r,nodeLookup:i,nodeOrigin:l=[0,0],nodeExtent:a,onError:u}){const c=i.get(t),d=c.parentId?i.get(c.parentId):void 0,{x:h,y:m}=d?d.internals.positionAbsolute:{x:0,y:0},v=c.origin??l;let y=c.extent||a;if(c.extent==="parent"&&!c.expandParent)if(!d)u==null||u("005",Yt.error005());else{const{width:x,height:S}=Kt(d);x&&S&&(y=[[h,m],[h+x,m+S]])}else d&&xr(c.extent)&&(y=[[c.extent[0][0]+h,c.extent[0][1]+m],[c.extent[1][0]+h,c.extent[1][1]+m]]);const g=xr(y)?vr(r,y,c.measured):r;return(c.measured.width===void 0||c.measured.height===void 0)&&(u==null||u("015",Yt.error015())),{position:{x:g.x-h+(c.measured.width??0)*v[0],y:g.y-m+(c.measured.height??0)*v[1]},positionAbsolute:g}}async function Hw({nodesToRemove:t=[],edgesToRemove:r=[],nodes:i,edges:l,onBeforeDelete:a}){const u=new Set(t.map(g=>g.id)),c=[];for(const g of i){if(g.deletable===!1)continue;const x=u.has(g.id),S=!x&&g.parentId&&c.find(j=>j.id===g.parentId);(x||S)&&c.push(g)}const d=new Set(r.map(g=>g.id)),h=l.filter(g=>g.deletable!==!1),v=bw(c,h);for(const g of h)d.has(g.id)&&!v.find(S=>S.id===g.id)&&v.push(g);if(!a)return{edges:v,nodes:c};const y=await a({nodes:c,edges:v});return typeof y=="boolean"?y?{edges:v,nodes:c}:{edges:[],nodes:[]}:y}const lo=(t,r=0,i=1)=>Math.min(Math.max(t,r),i),vr=(t={x:0,y:0},r,i)=>({x:lo(t.x,r[0][0],r[1][0]-((i==null?void 0:i.width)??0)),y:lo(t.y,r[0][1],r[1][1]-((i==null?void 0:i.height)??0))});function qh(t,r,i){const{width:l,height:a}=Kt(i),{x:u,y:c}=i.internals.positionAbsolute;return vr(t,[[u,c],[u+l,c+a]],r)}const wp=(t,r,i)=>t<r?lo(Math.abs(t-r),1,r)/r:t>i?-lo(Math.abs(t-i),1,r)/r:0,cc=(t,r,i=15,l=40)=>{const a=wp(t.x,l,r.width-l)*i,u=wp(t.y,l,r.height-l)*i;return[a,u]},wl=(t,r)=>({x:Math.min(t.x,r.x),y:Math.min(t.y,r.y),x2:Math.max(t.x2,r.x2),y2:Math.max(t.y2,r.y2)}),Qu=({x:t,y:r,width:i,height:l})=>({x:t,y:r,x2:t+i,y2:r+l}),_l=({x:t,y:r,x2:i,y2:l})=>({x:t,y:r,width:i-t,height:l-r}),hi=(t,r=[0,0])=>{var a,u;const{x:i,y:l}=ac(t)?t.internals.positionAbsolute:wi(t,r);return{x:i,y:l,width:((a=t.measured)==null?void 0:a.width)??t.width??t.initialWidth??0,height:((u=t.measured)==null?void 0:u.height)??t.height??t.initialHeight??0}},dl=(t,r=[0,0])=>{var a,u;const{x:i,y:l}=ac(t)?t.internals.positionAbsolute:wi(t,r);return{x:i,y:l,x2:i+(((a=t.measured)==null?void 0:a.width)??t.width??t.initialWidth??0),y2:l+(((u=t.measured)==null?void 0:u.height)??t.height??t.initialHeight??0)}},Zh=(t,r)=>_l(wl(Qu(t),Qu(r))),Jh=(t,r,i,l,a,u,c,d)=>{const h=Math.max(0,Math.min(t+i,a+c)-Math.max(t,a)),m=Math.max(0,Math.min(r+l,u+d)-Math.max(r,u));return Math.ceil(h*m)},pl=(t,r)=>Jh(t.x,t.y,t.width,t.height,r.x,r.y,r.width,r.height),_p=t=>Ut(t.width)&&Ut(t.height)&&Ut(t.x)&&Ut(t.y),Ut=t=>!isNaN(t)&&isFinite(t),eg=(t,r)=>(i,l)=>{},Si=(t,r=[1,1])=>({x:r[0]*Math.round(t.x/r[0]),y:r[1]*Math.round(t.y/r[1])}),ki=({x:t,y:r},[i,l,a],u=!1,c=[1,1])=>{const d={x:(t-i)/a,y:(r-l)/a};return u?Si(d,c):d},ao=({x:t,y:r},[i,l,a])=>({x:t*a+i,y:r*a+l});function Zr(t,r){if(typeof t=="number")return Math.floor((r-r/(1+t))*.5);if(typeof t=="string"&&t.endsWith("px")){const i=parseFloat(t);if(!Number.isNaN(i))return Math.floor(i)}if(typeof t=="string"&&t.endsWith("%")){const i=parseFloat(t);if(!Number.isNaN(i))return Math.floor(r*i*.01)}return console.error(`The padding value "${t}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function Vw(t,r,i){if(typeof t=="string"||typeof t=="number"){const l=Zr(t,i),a=Zr(t,r);return{top:l,right:a,bottom:l,left:a,x:a*2,y:l*2}}if(typeof t=="object"){const l=Zr(t.top??t.y??0,i),a=Zr(t.bottom??t.y??0,i),u=Zr(t.left??t.x??0,r),c=Zr(t.right??t.x??0,r);return{top:l,right:c,bottom:a,left:u,x:u+c,y:l+a}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function Bw(t,r,i,l,a,u){const{x:c,y:d}=ao(t,[r,i,l]),{x:h,y:m}=ao({x:t.x+t.width,y:t.y+t.height},[r,i,l]),v=a-h,y=u-m;return{left:Math.floor(c),top:Math.floor(d),right:Math.floor(v),bottom:Math.floor(y)}}const fc=(t,r,i,l,a,u)=>{const c=Vw(u,r,i),d=(r-c.x)/t.width,h=(i-c.y)/t.height,m=Math.min(d,h),v=lo(m,l,a),y=t.x+t.width/2,g=t.y+t.height/2,x=r/2-y*v,S=i/2-g*v,j=Bw(t,x,S,v,r,i),E={left:Math.min(j.left-c.left,0),top:Math.min(j.top-c.top,0),right:Math.min(j.right-c.right,0),bottom:Math.min(j.bottom-c.bottom,0)};return{x:x-E.left+E.right,y:S-E.top+E.bottom,zoom:v}},gi=()=>{var t;return typeof navigator<"u"&&((t=navigator==null?void 0:navigator.userAgent)==null?void 0:t.indexOf("Mac"))>=0};function xr(t){return t!=null&&t!=="parent"}function Kt(t){var r,i;return{width:((r=t.measured)==null?void 0:r.width)??t.width??t.initialWidth??0,height:((i=t.measured)==null?void 0:i.height)??t.height??t.initialHeight??0}}function tg(t){var r,i;return(((r=t.measured)==null?void 0:r.width)??t.width??t.initialWidth)!==void 0&&(((i=t.measured)==null?void 0:i.height)??t.height??t.initialHeight)!==void 0}function ng(t,r={width:0,height:0},i,l,a){const u={...t},c=l.get(i);if(c){const d=c.origin||a;u.x+=c.internals.positionAbsolute.x-(r.width??0)*d[0],u.y+=c.internals.positionAbsolute.y-(r.height??0)*d[1]}return u}function Sp(t,r){if(t.size!==r.size)return!1;for(const i of t)if(!r.has(i))return!1;return!0}function Uw(){let t,r;return{promise:new Promise((l,a)=>{t=l,r=a}),resolve:t,reject:r}}function Ww(t){return{...Xh,...t||{}}}function rg(t){return t===null?null:t?"valid":"invalid"}function li(t,{snapGrid:r=[0,0],snapToGrid:i=!1,transform:l,containerBounds:a}){const{x:u,y:c}=Wt(t),d=ki({x:u-((a==null?void 0:a.left)??0),y:c-((a==null?void 0:a.top)??0)},l),{x:h,y:m}=i?Si(d,r):d;return{xSnapped:h,ySnapped:m,...d}}const dc=t=>({width:t.offsetWidth,height:t.offsetHeight}),og=t=>{var r;return((r=t==null?void 0:t.getRootNode)==null?void 0:r.call(t))||(window==null?void 0:window.document)},Yw=["INPUT","SELECT","TEXTAREA"];function ig(t){var l,a;const r=((a=(l=t.composedPath)==null?void 0:l.call(t))==null?void 0:a[0])||t.target;return(r==null?void 0:r.nodeType)!==1?!1:Yw.includes(r.nodeName)||r.hasAttribute("contenteditable")||!!r.closest(".nokey")}const sg=t=>"clientX"in t,Wt=(t,r)=>{var u,c;const i=sg(t),l=i?t.clientX:(u=t.touches)==null?void 0:u[0].clientX,a=i?t.clientY:(c=t.touches)==null?void 0:c[0].clientY;return{x:l-((r==null?void 0:r.left)??0),y:a-((r==null?void 0:r.top)??0)}},kp=(t,r,i,l,a)=>{const u=r.querySelectorAll(`.${t}`);return!u||!u.length?null:Array.from(u).map(c=>{const d=c.getBoundingClientRect();return{id:c.getAttribute("data-handleid"),type:t,nodeId:a,position:c.getAttribute("data-handlepos"),x:(d.left-i.left)/l,y:(d.top-i.top)/l,...dc(c)}})};function lg({sourceX:t,sourceY:r,targetX:i,targetY:l,sourceControlX:a,sourceControlY:u,targetControlX:c,targetControlY:d}){const h=t*.125+a*.375+c*.375+i*.125,m=r*.125+u*.375+d*.375+l*.125,v=Math.abs(h-t),y=Math.abs(m-r);return[h,m,v,y]}function Ks(t,r){return t>=0?.5*t:r*25*Math.sqrt(-t)}function Ep({pos:t,x1:r,y1:i,x2:l,y2:a,c:u}){switch(t){case _e.Left:return[r-Ks(r-l,u),i];case _e.Right:return[r+Ks(l-r,u),i];case _e.Top:return[r,i-Ks(i-a,u)];case _e.Bottom:return[r,i+Ks(a-i,u)]}}function ag({sourceX:t,sourceY:r,sourcePosition:i=_e.Bottom,targetX:l,targetY:a,targetPosition:u=_e.Top,curvature:c=.25}){const[d,h]=Ep({pos:i,x1:t,y1:r,x2:l,y2:a,c}),[m,v]=Ep({pos:u,x1:l,y1:a,x2:t,y2:r,c}),[y,g,x,S]=lg({sourceX:t,sourceY:r,targetX:l,targetY:a,sourceControlX:d,sourceControlY:h,targetControlX:m,targetControlY:v});return[`M${t},${r} C${d},${h} ${m},${v} ${l},${a}`,y,g,x,S]}function ug({sourceX:t,sourceY:r,targetX:i,targetY:l}){const a=Math.abs(i-t)/2,u=i<t?i+a:i-a,c=Math.abs(l-r)/2,d=l<r?l+c:l-c;return[u,d,a,c]}function Xw({sourceNode:t,targetNode:r,selected:i=!1,zIndex:l=0,elevateOnSelect:a=!1,zIndexMode:u="basic"}){if(u==="manual")return l;const c=a&&i?l+1e3:l,d=Math.max(t.parentId||a&&t.selected?t.internals.z:0,r.parentId||a&&r.selected?r.internals.z:0);return c+d}function Kw({sourceNode:t,targetNode:r,width:i,height:l,transform:a}){const u=wl(dl(t),dl(r));u.x===u.x2&&(u.x2+=1),u.y===u.y2&&(u.y2+=1);const c={x:-a[0]/a[2],y:-a[1]/a[2],width:i/a[2],height:l/a[2]};return pl(c,_l(u))>0}const Qw=({source:t,sourceHandle:r,target:i,targetHandle:l})=>`xy-edge__${t}${r||""}-${i}${l||""}`,Gw=(t,r)=>r.some(i=>i.source===t.source&&i.target===t.target&&(i.sourceHandle===t.sourceHandle||!i.sourceHandle&&!t.sourceHandle)&&(i.targetHandle===t.targetHandle||!i.targetHandle&&!t.targetHandle)),qw=(t,r,i={})=>{var u;if(!t.source||!t.target)return(u=i.onError)==null||u.call(i,"006",Yt.error006()),r;const l=i.getEdgeId||Qw;let a;return Qh(t)?a={...t}:a={...t,id:l(t)},Gw(a,r)?r:(a.sourceHandle===null&&delete a.sourceHandle,a.targetHandle===null&&delete a.targetHandle,r.concat(a))};function cg({sourceX:t,sourceY:r,targetX:i,targetY:l}){const[a,u,c,d]=ug({sourceX:t,sourceY:r,targetX:i,targetY:l});return[`M ${t},${r}L ${i},${l}`,a,u,c,d]}const Np={[_e.Left]:{x:-1,y:0},[_e.Right]:{x:1,y:0},[_e.Top]:{x:0,y:-1},[_e.Bottom]:{x:0,y:1}},Zw=({source:t,sourcePosition:r=_e.Bottom,target:i})=>r===_e.Left||r===_e.Right?t.x<i.x?{x:1,y:0}:{x:-1,y:0}:t.y<i.y?{x:0,y:1}:{x:0,y:-1},Cp=(t,r)=>Math.sqrt(Math.pow(r.x-t.x,2)+Math.pow(r.y-t.y,2));function Jw({source:t,sourcePosition:r=_e.Bottom,target:i,targetPosition:l=_e.Top,center:a,offset:u,stepPosition:c}){const d=Np[r],h=Np[l],m={x:t.x+d.x*u,y:t.y+d.y*u},v={x:i.x+h.x*u,y:i.y+h.y*u},y=Zw({source:m,sourcePosition:r,target:v}),g=y.x!==0?"x":"y",x=y[g];let S=[],j,E;const N={x:0,y:0},I={x:0,y:0},[,,k,M]=ug({sourceX:t.x,sourceY:t.y,targetX:i.x,targetY:i.y});if(d[g]*h[g]===-1){g==="x"?(j=a.x??m.x+(v.x-m.x)*c,E=a.y??(m.y+v.y)/2):(j=a.x??(m.x+v.x)/2,E=a.y??m.y+(v.y-m.y)*c);const Y=[{x:j,y:m.y},{x:j,y:v.y}],K=[{x:m.x,y:E},{x:v.x,y:E}];d[g]===x?S=g==="x"?Y:K:S=g==="x"?K:Y}else{const Y=[{x:m.x,y:v.y}],K=[{x:v.x,y:m.y}];if(g==="x"?S=d.x===x?K:Y:S=d.y===x?Y:K,r===l){const C=Math.abs(t[g]-i[g]);if(C<=u){const b=Math.min(u-1,u-C);d[g]===x?N[g]=(m[g]>t[g]?-1:1)*b:I[g]=(v[g]>i[g]?-1:1)*b}}if(r!==l){const C=g==="x"?"y":"x",b=d[g]===h[C],$=m[C]>v[C],U=m[C]<v[C];(d[g]===1&&(!b&&$||b&&U)||d[g]!==1&&(!b&&U||b&&$))&&(S=g==="x"?Y:K)}const ne={x:m.x+N.x,y:m.y+N.y},Z={x:v.x+I.x,y:v.y+I.y},J=Math.max(Math.abs(ne.x-S[0].x),Math.abs(Z.x-S[0].x)),V=Math.max(Math.abs(ne.y-S[0].y),Math.abs(Z.y-S[0].y));J>=V?(j=(ne.x+Z.x)/2,E=S[0].y):(j=S[0].x,E=(ne.y+Z.y)/2)}const F={x:m.x+N.x,y:m.y+N.y},D={x:v.x+I.x,y:v.y+I.y};return[[t,...F.x!==S[0].x||F.y!==S[0].y?[F]:[],...S,...D.x!==S[S.length-1].x||D.y!==S[S.length-1].y?[D]:[],i],j,E,k,M]}function e1(t,r,i,l){const a=Math.min(Cp(t,r)/2,Cp(r,i)/2,l),{x:u,y:c}=r;if(t.x===u&&u===i.x||t.y===c&&c===i.y)return`L${u} ${c}`;if(t.y===c){const m=t.x<i.x?-1:1,v=t.y<i.y?1:-1;return`L ${u+a*m},${c}Q ${u},${c} ${u},${c+a*v}`}const d=t.x<i.x?1:-1,h=t.y<i.y?-1:1;return`L ${u},${c+a*h}Q ${u},${c} ${u+a*d},${c}`}function Gu({sourceX:t,sourceY:r,sourcePosition:i=_e.Bottom,targetX:l,targetY:a,targetPosition:u=_e.Top,borderRadius:c=5,centerX:d,centerY:h,offset:m=20,stepPosition:v=.5}){const[y,g,x,S,j]=Jw({source:{x:t,y:r},sourcePosition:i,target:{x:l,y:a},targetPosition:u,center:{x:d,y:h},offset:m,stepPosition:v});let E=`M${y[0].x} ${y[0].y}`;for(let N=1;N<y.length-1;N++)E+=e1(y[N-1],y[N],y[N+1],c);return E+=`L${y[y.length-1].x} ${y[y.length-1].y}`,[E,g,x,S,j]}function Mp(t){var r;return t&&!!(t.internals.handleBounds||(r=t.handles)!=null&&r.length)&&!!(t.measured.width||t.width||t.initialWidth)}function t1(t){var y;const{sourceNode:r,targetNode:i}=t;if(!Mp(r)||!Mp(i))return null;const l=r.internals.handleBounds||jp(r.handles),a=i.internals.handleBounds||jp(i.handles),u=Pp((l==null?void 0:l.source)??[],t.sourceHandle),c=Pp(t.connectionMode===so.Strict?(a==null?void 0:a.target)??[]:((a==null?void 0:a.target)??[]).concat((a==null?void 0:a.source)??[]),t.targetHandle);if(!u||!c)return(y=t.onError)==null||y.call(t,"008",Yt.error008(u?"target":"source",{id:t.id,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle})),null;const d=(u==null?void 0:u.position)||_e.Bottom,h=(c==null?void 0:c.position)||_e.Top,m=wr(r,u,d),v=wr(i,c,h);return{sourceX:m.x,sourceY:m.y,targetX:v.x,targetY:v.y,sourcePosition:d,targetPosition:h}}function jp(t){if(!t)return null;const r=[],i=[];for(const l of t)l.width=l.width??1,l.height=l.height??1,l.type==="source"?r.push(l):l.type==="target"&&i.push(l);return{source:r,target:i}}function wr(t,r,i=_e.Left,l=!1){const a=((r==null?void 0:r.x)??0)+t.internals.positionAbsolute.x,u=((r==null?void 0:r.y)??0)+t.internals.positionAbsolute.y,{width:c,height:d}=r??Kt(t);if(l)return{x:a+c/2,y:u+d/2};switch((r==null?void 0:r.position)??i){case _e.Top:return{x:a+c/2,y:u};case _e.Right:return{x:a+c,y:u+d/2};case _e.Bottom:return{x:a+c/2,y:u+d};case _e.Left:return{x:a,y:u+d/2}}}function Pp(t,r){return t&&(r?t.find(i=>i.id===r):t[0])||null}function qu(t,r){return t?typeof t=="string"?t:`${r?`${r}__`:""}${Object.keys(t).sort().map(l=>`${l}=${t[l]}`).join("&")}`:""}function n1(t,{id:r,defaultColor:i,defaultMarkerStart:l,defaultMarkerEnd:a}){const u=new Set;return t.reduce((c,d)=>([d.markerStart||l,d.markerEnd||a].forEach(h=>{if(h&&typeof h=="object"){const m=qu(h,r);u.has(m)||(c.push({id:m,color:h.color||i,...h}),u.add(m))}}),c),[]).sort((c,d)=>c.id.localeCompare(d.id))}const fg=1e3,r1=10,pc={nodeOrigin:[0,0],nodeExtent:di,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},o1={...pc,checkEquality:!0};function hc(t,r){const i={...t};for(const l in r)r[l]!==void 0&&(i[l]=r[l]);return i}function i1(t,r,i){const l=hc(pc,i);for(const a of t.values())if(a.parentId)mc(a,t,r,l);else{const u=wi(a,l.nodeOrigin),c=xr(a.extent)?a.extent:l.nodeExtent,d=vr(u,c,Kt(a));a.internals.positionAbsolute=d}}function s1(t,r){if(!t.handles)return t.measured?r==null?void 0:r.internals.handleBounds:void 0;const i=[],l=[];for(const a of t.handles){const u={id:a.id,width:a.width??1,height:a.height??1,nodeId:t.id,x:a.x,y:a.y,position:a.position,type:a.type};a.type==="source"?i.push(u):a.type==="target"&&l.push(u)}return{source:i,target:l}}function gc(t){return t==="manual"}function Zu(t,r,i,l={}){var v,y;const a=hc(o1,l),u={i:0},c=new Map(r),d=a!=null&&a.elevateNodesOnSelect&&!gc(a.zIndexMode)?fg:0;let h=t.length>0,m=!1;r.clear(),i.clear();for(const g of t){let x=c.get(g.id);if(a.checkEquality&&g===(x==null?void 0:x.internals.userNode))r.set(g.id,x);else{const S=wi(g,a.nodeOrigin),j=xr(g.extent)?g.extent:a.nodeExtent,E=vr(S,j,Kt(g));x={...a.defaults,...g,measured:{width:(v=g.measured)==null?void 0:v.width,height:(y=g.measured)==null?void 0:y.height},internals:{positionAbsolute:E,handleBounds:s1(g,x),z:dg(g,d,a.zIndexMode),userNode:g}},r.set(g.id,x)}(x.measured===void 0||x.measured.width===void 0||x.measured.height===void 0)&&!x.hidden&&(h=!1),g.parentId&&mc(x,r,i,l,u),m||(m=g.selected??!1)}return{nodesInitialized:h,hasSelectedNodes:m}}function l1(t,r){if(!t.parentId)return;const i=r.get(t.parentId);i?i.set(t.id,t):r.set(t.parentId,new Map([[t.id,t]]))}function mc(t,r,i,l,a){const{elevateNodesOnSelect:u,nodeOrigin:c,nodeExtent:d,zIndexMode:h}=hc(pc,l),m=t.parentId,v=r.get(m);if(!v){console.warn(`Parent node ${m} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}l1(t,i),a&&!v.parentId&&v.internals.rootParentIndex===void 0&&h==="auto"&&(v.internals.rootParentIndex=++a.i,v.internals.z=v.internals.z+a.i*r1),a&&v.internals.rootParentIndex!==void 0&&(a.i=v.internals.rootParentIndex);const y=u&&!gc(h)?fg:0,{x:g,y:x,z:S}=a1(t,v,c,d,y,h),{positionAbsolute:j}=t.internals,E=g!==j.x||x!==j.y;(E||S!==t.internals.z)&&r.set(t.id,{...t,internals:{...t.internals,positionAbsolute:E?{x:g,y:x}:j,z:S}})}function dg(t,r,i){const l=Ut(t.zIndex)?t.zIndex:0;return gc(i)?l:l+(t.selected?r:0)}function a1(t,r,i,l,a,u){const{x:c,y:d}=r.internals.positionAbsolute,h=Kt(t),m=wi(t,i),v=xr(t.extent)?vr(m,t.extent,h):m;let y=vr({x:c+v.x,y:d+v.y},l,h);t.extent==="parent"&&(y=qh(y,h,r));const g=dg(t,a,u),x=r.internals.z??0;return{x:y.x,y:y.y,z:x>=g?x+1:g}}function yc(t,r,i,l=[0,0]){var c;const a=[],u=new Map;for(const d of t){const h=r.get(d.parentId);if(!h)continue;const m=((c=u.get(d.parentId))==null?void 0:c.expandedRect)??hi(h),v=Zh(m,d.rect);u.set(d.parentId,{expandedRect:v,parent:h})}return u.size>0&&u.forEach(({expandedRect:d,parent:h},m)=>{var k;const v=h.internals.positionAbsolute,y=Kt(h),g=h.origin??l,x=d.x<v.x?Math.round(Math.abs(v.x-d.x)):0,S=d.y<v.y?Math.round(Math.abs(v.y-d.y)):0,j=Math.max(y.width,Math.round(d.width)),E=Math.max(y.height,Math.round(d.height)),N=(j-y.width)*g[0],I=(E-y.height)*g[1];(x>0||S>0||N||I)&&(a.push({id:m,type:"position",position:{x:h.position.x-x+N,y:h.position.y-S+I}}),(k=i.get(m))==null||k.forEach(M=>{t.some(F=>F.id===M.id)||a.push({id:M.id,type:"position",position:{x:M.position.x+x,y:M.position.y+S}})})),(y.width<d.width||y.height<d.height||x||S)&&a.push({id:m,type:"dimensions",setAttributes:!0,dimensions:{width:j+(x?g[0]*x-N:0),height:E+(S?g[1]*S-I:0)}})}),a}function u1(t,r,i,l,a,u,c){const d=l==null?void 0:l.querySelector(".xyflow__viewport");let h=!1;if(!d)return{changes:[],updatedInternals:h};const m=[],v=window.getComputedStyle(d),{m22:y}=new window.DOMMatrixReadOnly(v.transform),g=[];for(const x of t.values()){const S=r.get(x.id);if(!S)continue;if(S.hidden){r.set(S.id,{...S,internals:{...S.internals,handleBounds:void 0}}),h=!0;continue}const j=dc(x.nodeElement),E=S.measured.width!==j.width||S.measured.height!==j.height;if(!!(j.width&&j.height&&(E||!S.internals.handleBounds||x.force))){const I=x.nodeElement.getBoundingClientRect(),k=xr(S.extent)?S.extent:u;let{positionAbsolute:M}=S.internals;if(S.parentId&&S.extent==="parent"){const D=r.get(S.parentId);D&&(M=qh(M,j,D))}else k&&(M=vr(M,k,j));const F={...S,measured:j,internals:{...S.internals,positionAbsolute:M,handleBounds:{source:kp("source",x.nodeElement,I,y,S.id),target:kp("target",x.nodeElement,I,y,S.id)}}};r.set(S.id,F),S.parentId&&mc(F,r,i,{nodeOrigin:a,zIndexMode:c}),h=!0,E&&(m.push({id:S.id,type:"dimensions",dimensions:j}),S.expandParent&&S.parentId&&g.push({id:S.id,parentId:S.parentId,rect:hi(F,a)}))}}if(g.length>0){const x=yc(g,r,i,a);m.push(...x)}return{changes:m,updatedInternals:h}}async function c1({delta:t,panZoom:r,transform:i,translateExtent:l,width:a,height:u}){if(!r||!t.x&&!t.y)return!1;const c=await r.setViewportConstrained({x:i[0]+t.x,y:i[1]+t.y,zoom:i[2]},[[0,0],[a,u]],l);return!!c&&(c.x!==i[0]||c.y!==i[1]||c.k!==i[2])}function Ip(t,r,i,l,a,u){let c=a;const d=l.get(c)||new Map;l.set(c,d.set(i,r)),c=`${a}-${t}`;const h=l.get(c)||new Map;if(l.set(c,h.set(i,r)),u){c=`${a}-${t}-${u}`;const m=l.get(c)||new Map;l.set(c,m.set(i,r))}}function pg(t,r,i){t.clear(),r.clear();for(const l of i){const{source:a,target:u,sourceHandle:c=null,targetHandle:d=null}=l,h={edgeId:l.id,source:a,target:u,sourceHandle:c,targetHandle:d},m=`${a}-${c}--${u}-${d}`,v=`${u}-${d}--${a}-${c}`;Ip("source",h,v,t,a,c),Ip("target",h,m,t,u,d),r.set(l.id,l)}}function hg(t,r){if(!t.parentId)return!1;const i=r.get(t.parentId);return i?i.selected?!0:hg(i,r):!1}function Tp(t,r,i){var a;let l=t;do{if((a=l==null?void 0:l.matches)!=null&&a.call(l,r))return!0;if(l===i)return!1;l=l==null?void 0:l.parentElement}while(l);return!1}function f1(t,r,i,l){const a=new Map;for(const[u,c]of t)if((c.selected||c.id===l)&&(!c.parentId||!hg(c,t))&&(c.draggable||r&&typeof c.draggable>"u")){const d=t.get(u);d&&a.set(u,{id:u,position:d.position||{x:0,y:0},distance:{x:i.x-d.internals.positionAbsolute.x,y:i.y-d.internals.positionAbsolute.y},extent:d.extent,parentId:d.parentId,origin:d.origin,expandParent:d.expandParent,internals:{positionAbsolute:d.internals.positionAbsolute||{x:0,y:0}},measured:{width:d.measured.width??0,height:d.measured.height??0}})}return a}function ju({nodeId:t,dragItems:r,nodeLookup:i,dragging:l=!0}){var c,d,h;const a=[];for(const[m,v]of r){const y=(c=i.get(m))==null?void 0:c.internals.userNode;y&&a.push({...y,position:v.position,dragging:l})}if(!t)return[a[0],a];const u=(d=i.get(t))==null?void 0:d.internals.userNode;return[u?{...u,position:((h=r.get(t))==null?void 0:h.position)||u.position,dragging:l}:a[0],a]}function d1({dragItems:t,snapGrid:r,x:i,y:l}){const a=t.values().next().value;if(!a)return null;const u={x:i-a.distance.x,y:l-a.distance.y},c=Si(u,r);return{x:c.x-u.x,y:c.y-u.y}}function p1({onNodeMouseDown:t,getStoreItems:r,onDragStart:i,onDrag:l,onDragStop:a}){let u={x:null,y:null},c=0,d=new Map,h=!1,m={x:0,y:0},v=null,y=!1,g=null,x=!1,S=!1,j=null;function E({noDragClassName:I,handleSelector:k,domNode:M,isSelectable:F,nodeId:D,nodeClickDistance:W=0}){g=Ct(M);function Y({x:J,y:V}){const{nodeLookup:C,nodeExtent:b,snapGrid:$,snapToGrid:U,nodeOrigin:z,onNodeDrag:A,onSelectionDrag:H,onError:P,updateNodePositions:L}=r();u={x:J,y:V};let ee=!1;const te=d.size>1,ue=te&&b?Qu(_i(d)):null,de=te&&U?d1({dragItems:d,snapGrid:$,x:J,y:V}):null;for(const[fe,G]of d){if(!C.has(fe))continue;let ie={x:J-G.distance.x,y:V-G.distance.y};U&&(ie=de?{x:Math.round(ie.x+de.x),y:Math.round(ie.y+de.y)}:Si(ie,$));let he=null;if(te&&b&&!G.extent&&ue){const{positionAbsolute:Se}=G.internals,se=Se.x-ue.x+b[0][0],ce=Se.x+G.measured.width-ue.x2+b[1][0],ke=Se.y-ue.y+b[0][1],Me=Se.y+G.measured.height-ue.y2+b[1][1];he=[[se,ke],[ce,Me]]}const{position:we,positionAbsolute:xe}=Gh({nodeId:fe,nextPosition:ie,nodeLookup:C,nodeExtent:he||b,nodeOrigin:z,onError:P});ee=ee||G.position.x!==we.x||G.position.y!==we.y,G.position=we,G.internals.positionAbsolute=xe}if(S=S||ee,!!ee&&(L(d,!0),j&&(l||A||!D&&H))){const[fe,G]=ju({nodeId:D,dragItems:d,nodeLookup:C});l==null||l(j,d,fe,G),A==null||A(j,fe,G),D||H==null||H(j,G)}}async function K(){if(!v)return;const{transform:J,panBy:V,autoPanSpeed:C,autoPanOnNodeDrag:b}=r();if(!b){h=!1,cancelAnimationFrame(c);return}const[$,U]=cc(m,v,C);($!==0||U!==0)&&(u.x=(u.x??0)-$/J[2],u.y=(u.y??0)-U/J[2],await V({x:$,y:U})&&Y(u)),c=requestAnimationFrame(K)}function ne(J){var te;const{nodeLookup:V,multiSelectionActive:C,nodesDraggable:b,transform:$,snapGrid:U,snapToGrid:z,selectNodesOnDrag:A,onNodeDragStart:H,onSelectionDragStart:P,unselectNodesAndEdges:L}=r();y=!0,(!A||!F)&&!C&&D&&((te=V.get(D))!=null&&te.selected||L()),F&&A&&D&&(t==null||t(D));const ee=li(J.sourceEvent,{transform:$,snapGrid:U,snapToGrid:z,containerBounds:v});if(u=ee,d=f1(V,b,ee,D),d.size>0&&(i||H||!D&&P)){const[ue,de]=ju({nodeId:D,dragItems:d,nodeLookup:V});i==null||i(J.sourceEvent,d,ue,de),H==null||H(J.sourceEvent,ue,de),D||P==null||P(J.sourceEvent,de)}}const Z=Ih().clickDistance(W).on("start",J=>{const{domNode:V,nodeDragThreshold:C,transform:b,snapGrid:$,snapToGrid:U}=r();v=(V==null?void 0:V.getBoundingClientRect())||null,x=!1,S=!1,j=J.sourceEvent,C===0&&ne(J),u=li(J.sourceEvent,{transform:b,snapGrid:$,snapToGrid:U,containerBounds:v}),m=Wt(J.sourceEvent,v)}).on("drag",J=>{const{autoPanOnNodeDrag:V,transform:C,snapGrid:b,snapToGrid:$,nodeDragThreshold:U,nodeLookup:z}=r(),A=li(J.sourceEvent,{transform:C,snapGrid:b,snapToGrid:$,containerBounds:v});if(j=J.sourceEvent,(J.sourceEvent.type==="touchmove"&&J.sourceEvent.touches.length>1||D&&!z.has(D))&&(x=!0),!x){if(!h&&V&&y&&(h=!0,K()),!y){const H=Wt(J.sourceEvent,v),P=H.x-m.x,L=H.y-m.y;Math.sqrt(P*P+L*L)>U&&ne(J)}(u.x!==A.xSnapped||u.y!==A.ySnapped)&&d&&y&&(m=Wt(J.sourceEvent,v),Y(A))}}).on("end",J=>{if(!y||x){x&&d.size>0&&r().updateNodePositions(d,!1);return}if(h=!1,y=!1,cancelAnimationFrame(c),d.size>0){const{nodeLookup:V,updateNodePositions:C,onNodeDragStop:b,onSelectionDragStop:$}=r();if(S&&(C(d,!1),S=!1),a||b||!D&&$){const[U,z]=ju({nodeId:D,dragItems:d,nodeLookup:V,dragging:!1});a==null||a(J.sourceEvent,d,U,z),b==null||b(J.sourceEvent,U,z),D||$==null||$(J.sourceEvent,z)}}}).filter(J=>{const V=J.target;return!J.button&&(!I||!Tp(V,`.${I}`,M))&&(!k||Tp(V,k,M))});g.call(Z)}function N(){g==null||g.on(".drag",null)}return{update:E,destroy:N}}function h1(t,r,i){const l=[],a={x:t.x-i,y:t.y-i,width:i*2,height:i*2};for(const u of r.values())pl(a,hi(u))>0&&l.push(u);return l}const g1=250;function m1(t,r,i,l){var d,h;let a=[],u=1/0;const c=h1(t,i,r+g1);for(const m of c){const v=[...((d=m.internals.handleBounds)==null?void 0:d.source)??[],...((h=m.internals.handleBounds)==null?void 0:h.target)??[]];for(const y of v){if(l.nodeId===y.nodeId&&l.type===y.type&&l.id===y.id)continue;const{x:g,y:x}=wr(m,y,y.position,!0),S=Math.sqrt(Math.pow(g-t.x,2)+Math.pow(x-t.y,2));S>r||(S<u?(a=[{...y,x:g,y:x}],u=S):S===u&&a.push({...y,x:g,y:x}))}}if(!a.length)return null;if(a.length>1){const m=l.type==="source"?"target":"source";return a.find(v=>v.type===m)??a[0]}return a[0]}function gg(t,r,i,l,a,u=!1){var m,v,y;const c=l.get(t);if(!c)return null;const d=a==="strict"?(m=c.internals.handleBounds)==null?void 0:m[r]:[...((v=c.internals.handleBounds)==null?void 0:v.source)??[],...((y=c.internals.handleBounds)==null?void 0:y.target)??[]],h=(i?d==null?void 0:d.find(g=>g.id===i):d==null?void 0:d[0])??null;return h&&u?{...h,...wr(c,h,h.position,!0)}:h}function mg(t,r){return t||(r!=null&&r.classList.contains("target")?"target":r!=null&&r.classList.contains("source")?"source":null)}function y1(t,r){let i=null;return r?i=!0:t&&!r&&(i=!1),i}const yg=()=>!0;function v1(t,{connectionMode:r,connectionRadius:i,handleId:l,nodeId:a,edgeUpdaterType:u,isTarget:c,domNode:d,nodeLookup:h,lib:m,autoPanOnConnect:v,flowId:y,panBy:g,cancelConnection:x,onConnectStart:S,onConnect:j,onConnectEnd:E,isValidConnection:N=yg,onReconnectEnd:I,updateConnection:k,getTransform:M,getFromHandle:F,autoPanSpeed:D,dragThreshold:W=1,handleDomNode:Y}){const K=og(t.target);let ne=0,Z;const{x:J,y:V}=Wt(t),C=mg(u,Y),b=d==null?void 0:d.getBoundingClientRect();let $=!1;if(!b||!C)return;const U=gg(a,C,l,h,r);if(!U)return;let z=Wt(t,b),A=!1,H=null,P=!1,L=null;function ee(){if(!v||!b)return;const[we,xe]=cc(z,b,D);g({x:we,y:xe}),ne=requestAnimationFrame(ee)}const te={...U,nodeId:a,type:C,position:U.position},ue=h.get(a);let fe={inProgress:!0,isValid:null,from:wr(ue,te,_e.Left,!0),fromHandle:te,fromPosition:te.position,fromNode:ue,to:z,toHandle:null,toPosition:xp[te.position],toNode:null,pointer:z};function G(){$=!0,k(fe),S==null||S(t,{nodeId:a,handleId:l,handleType:C})}W===0&&G();function ie(we){if(!$){const{x:Me,y:Ke}=Wt(we),Re=Me-J,Ze=Ke-V;if(!(Re*Re+Ze*Ze>W*W))return;G()}if(!F()||!te){he(we);return}const xe=M();z=Wt(we,b),Z=m1(ki(z,xe,!1,[1,1]),i,h,te),A||(ee(),A=!0);const Se=vg(we,{handle:Z,connectionMode:r,fromNodeId:a,fromHandleId:l,fromType:c?"target":"source",isValidConnection:N,doc:K,lib:m,flowId:y,nodeLookup:h});L=Se.handleDomNode,H=Se.connection,P=y1(!!Z,Se.isValid);const se=h.get(a),ce=se?wr(se,te,_e.Left,!0):fe.from,ke={...fe,from:ce,isValid:P,to:Se.toHandle&&P?ao({x:Se.toHandle.x,y:Se.toHandle.y},xe):z,toHandle:Se.toHandle,toPosition:P&&Se.toHandle?Se.toHandle.position:xp[te.position],toNode:Se.toHandle?h.get(Se.toHandle.nodeId):null,pointer:z};k(ke),fe=ke}function he(we){if(!("touches"in we&&we.touches.length>0)){if($){(Z||L)&&H&&P&&(j==null||j(H));const{inProgress:xe,...Se}=fe,se={...Se,toPosition:fe.toHandle?fe.toPosition:null};E==null||E(we,se),u&&(I==null||I(we,se))}x(),cancelAnimationFrame(ne),A=!1,P=!1,H=null,L=null,K.removeEventListener("mousemove",ie),K.removeEventListener("mouseup",he),K.removeEventListener("touchmove",ie),K.removeEventListener("touchend",he)}}K.addEventListener("mousemove",ie),K.addEventListener("mouseup",he),K.addEventListener("touchmove",ie),K.addEventListener("touchend",he)}function vg(t,{handle:r,connectionMode:i,fromNodeId:l,fromHandleId:a,fromType:u,doc:c,lib:d,flowId:h,isValidConnection:m=yg,nodeLookup:v}){const y=u==="target",g=r?c.querySelector(`.${d}-flow__handle[data-id="${h}-${r==null?void 0:r.nodeId}-${r==null?void 0:r.id}-${r==null?void 0:r.type}"]`):null,{x,y:S}=Wt(t),j=c.elementFromPoint(x,S),E=j!=null&&j.classList.contains(`${d}-flow__handle`)?j:g,N={handleDomNode:E,isValid:!1,connection:null,toHandle:null};if(E){const I=mg(void 0,E),k=E.getAttribute("data-nodeid"),M=E.getAttribute("data-handleid"),F=E.classList.contains("connectable"),D=E.classList.contains("connectableend");if(!k||!I)return N;const W={source:y?k:l,sourceHandle:y?M:a,target:y?l:k,targetHandle:y?a:M};N.connection=W;const K=F&&D&&(i===so.Strict?y&&I==="source"||!y&&I==="target":k!==l||M!==a);N.isValid=K&&m(W),N.toHandle=gg(k,I,M,v,i,!0)}return N}const Ju={onPointerDown:v1,isValid:vg};function x1({domNode:t,panZoom:r,getTransform:i,getViewScale:l}){const a=Ct(t);function u({translateExtent:d,width:h,height:m,zoomStep:v=1,pannable:y=!0,zoomable:g=!0,inversePan:x=!1}){const S=k=>{if(k.sourceEvent.type!=="wheel"||!r)return;const M=i(),F=k.sourceEvent.ctrlKey&&gi()?10:1,D=-k.sourceEvent.deltaY*(k.sourceEvent.deltaMode===1?.05:k.sourceEvent.deltaMode?1:.002)*v,W=M[2]*Math.pow(2,D*F);r.scaleTo(W)};let j=[0,0];const E=k=>{(k.sourceEvent.type==="mousedown"||k.sourceEvent.type==="touchstart")&&(j=[k.sourceEvent.clientX??k.sourceEvent.touches[0].clientX,k.sourceEvent.clientY??k.sourceEvent.touches[0].clientY])},N=k=>{const M=i();if(k.sourceEvent.type!=="mousemove"&&k.sourceEvent.type!=="touchmove"||!r)return;const F=[k.sourceEvent.clientX??k.sourceEvent.touches[0].clientX,k.sourceEvent.clientY??k.sourceEvent.touches[0].clientY],D=[F[0]-j[0],F[1]-j[1]];j=F;const W=l()*Math.max(M[2],Math.log(M[2]))*(x?-1:1),Y={x:M[0]-D[0]*W,y:M[1]-D[1]*W},K=[[0,0],[h,m]];r.setViewportConstrained({x:Y.x,y:Y.y,zoom:M[2]},K,d)},I=Wh().on("start",E).on("zoom",y?N:null).on("zoom.wheel",g?S:null);a.call(I,{})}function c(){a.on("zoom",null)}return{update:u,destroy:c,pointer:Vt}}const Sl=t=>({x:t.x,y:t.y,zoom:t.k}),Pu=({x:t,y:r,zoom:i})=>xl.translate(t,r).scale(i),Bn=(t,r)=>t.target.closest(`.${r}`),xg=(t,r)=>r===2&&Array.isArray(t)&&t.includes(2),w1=t=>((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2,Iu=(t,r=0,i=w1,l=()=>{})=>{const a=typeof r=="number"&&r>0;return a||l(),a?t.transition().duration(r).ease(i).on("end",l):t},wg=t=>{const r=t.ctrlKey&&gi()?10:1;return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*r};function _1({zoomPanValues:t,noWheelClassName:r,d3Selection:i,d3Zoom:l,panOnScrollMode:a,panOnScrollSpeed:u,zoomOnPinch:c,onPanZoomStart:d,onPanZoom:h,onPanZoomEnd:m}){return v=>{if(Bn(v,r))return v.ctrlKey&&v.preventDefault(),!1;v.preventDefault(),v.stopImmediatePropagation();const y=i.property("__zoom").k||1;if(v.ctrlKey&&c){const E=Vt(v),N=wg(v),I=y*Math.pow(2,N);l.scaleTo(i,I,E,v);return}const g=v.deltaMode===1?20:1;let x=a===gr.Vertical?0:v.deltaX*g,S=a===gr.Horizontal?0:v.deltaY*g;!gi()&&v.shiftKey&&a!==gr.Vertical&&(x=v.deltaY*g,S=0),l.translateBy(i,-(x/y)*u,-(S/y)*u,{internal:!0});const j=Sl(i.property("__zoom"));clearTimeout(t.panScrollTimeout),t.isPanScrolling?h==null||h(v,j):(t.isPanScrolling=!0,d==null||d(v,j)),t.panScrollTimeout=setTimeout(()=>{m==null||m(v,j),t.isPanScrolling=!1},150)}}function S1({noWheelClassName:t,preventScrolling:r,d3ZoomHandler:i}){return function(l,a){const u=l.type==="wheel",c=!r&&u&&!l.ctrlKey,d=Bn(l,t);if(l.ctrlKey&&u&&d&&l.preventDefault(),c||d)return null;l.preventDefault(),i.call(this,l,a)}}function k1({zoomPanValues:t,onDraggingChange:r,onPanZoomStart:i}){return l=>{var u,c,d;if((u=l.sourceEvent)!=null&&u.internal)return;const a=Sl(l.transform);t.mouseButton=((c=l.sourceEvent)==null?void 0:c.button)||0,t.isZoomingOrPanning=!0,t.prevViewport=a,((d=l.sourceEvent)==null?void 0:d.type)==="mousedown"&&r(!0),i&&(i==null||i(l.sourceEvent,a))}}function E1({zoomPanValues:t,panOnDrag:r,onPaneContextMenu:i,onTransformChange:l,onPanZoom:a}){return u=>{var c,d;t.usedRightMouseButton=!!(i&&xg(r,t.mouseButton??0)),(c=u.sourceEvent)!=null&&c.sync||l([u.transform.x,u.transform.y,u.transform.k]),a&&!((d=u.sourceEvent)!=null&&d.internal)&&(a==null||a(u.sourceEvent,Sl(u.transform)))}}function N1({zoomPanValues:t,panOnDrag:r,panOnScroll:i,onDraggingChange:l,onPanZoomEnd:a,onPaneContextMenu:u}){return c=>{var d;if(!((d=c.sourceEvent)!=null&&d.internal)&&(t.isZoomingOrPanning=!1,u&&xg(r,t.mouseButton??0)&&!t.usedRightMouseButton&&c.sourceEvent&&u(c.sourceEvent),t.usedRightMouseButton=!1,l(!1),a)){const h=Sl(c.transform);t.prevViewport=h,clearTimeout(t.timerId),t.timerId=setTimeout(()=>{a==null||a(c.sourceEvent,h)},i?150:0)}}}function C1({panActivationKeyPressed:t,zoomActivationKeyPressed:r,zoomOnScroll:i,zoomOnPinch:l,panOnDrag:a,panOnScroll:u,zoomOnDoubleClick:c,userSelectionActive:d,noWheelClassName:h,noPanClassName:m,lib:v,connectionInProgress:y}){return g=>{var N;const x=r||i,S=l&&g.ctrlKey,j=g.type==="wheel";if(g.button===1&&g.type==="mousedown"&&(Bn(g,`${v}-flow__node`)||Bn(g,`${v}-flow__edge`)||Bn(g,`${v}-flow__selection`)||Bn(g,`${v}-flow__nodesselection`)))return!0;if(!a&&!x&&!u&&!c&&!l||d||y&&!j||Bn(g,h)&&j||Bn(g,m)&&(!j||u&&j&&!r)||!l&&g.ctrlKey&&j)return!1;if(!l&&g.type==="touchstart"&&((N=g.touches)==null?void 0:N.length)>1)return g.preventDefault(),!1;if(!x&&!u&&!S&&j||!a&&(g.type==="mousedown"||g.type==="touchstart")||Array.isArray(a)&&!a.includes(g.button)&&g.type==="mousedown")return!1;const E=Array.isArray(a)&&a.includes(g.button)||!g.button||g.button<=1;return(!g.ctrlKey||j||t)&&E}}function M1({domNode:t,minZoom:r,maxZoom:i,translateExtent:l,viewport:a,onPanZoom:u,onPanZoomStart:c,onPanZoomEnd:d,onDraggingChange:h}){const m={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},v=t.getBoundingClientRect();let y=[[0,0],[v.width,v.height]];const g=typeof ResizeObserver<"u"?new ResizeObserver(V=>{const C=V[0];C&&(y=[[0,0],[C.contentRect.width,C.contentRect.height]])}):null;g==null||g.observe(t);const x=Wh().extent(()=>y).scaleExtent([r,i]).translateExtent(l),S=Ct(t).call(x);M({x:a.x,y:a.y,zoom:lo(a.zoom,r,i)},[[0,0],[v.width,v.height]],l);const j=S.on("wheel.zoom"),E=S.on("dblclick.zoom");x.wheelDelta(wg);async function N(V,C){return S?new Promise(b=>{x==null||x.interpolate((C==null?void 0:C.interpolate)==="linear"?si:el).transform(Iu(S,C==null?void 0:C.duration,C==null?void 0:C.ease,()=>b(!0)),V)}):!1}function I({noWheelClassName:V,noPanClassName:C,onPaneContextMenu:b,userSelectionActive:$,panOnScroll:U,panOnDrag:z,panOnScrollMode:A,panOnScrollSpeed:H,preventScrolling:P,zoomOnPinch:L,zoomOnScroll:ee,zoomOnDoubleClick:te,panActivationKeyPressed:ue=!1,zoomActivationKeyPressed:de,lib:fe,onTransformChange:G,connectionInProgress:ie,paneClickDistance:he,selectionOnDrag:we}){$&&!m.isZoomingOrPanning&&k();const xe=U&&!de&&!$;x.clickDistance(we?1/0:!Ut(he)||he<0?0:he);const Se=xe?_1({zoomPanValues:m,noWheelClassName:V,d3Selection:S,d3Zoom:x,panOnScrollMode:A,panOnScrollSpeed:H,zoomOnPinch:L,onPanZoomStart:c,onPanZoom:u,onPanZoomEnd:d}):S1({noWheelClassName:V,preventScrolling:P,d3ZoomHandler:j});S.on("wheel.zoom",Se,{passive:!1});const se=k1({zoomPanValues:m,onDraggingChange:h,onPanZoomStart:c});x.on("start",se);const ce=E1({zoomPanValues:m,panOnDrag:z,onPaneContextMenu:!!b,onPanZoom:u,onTransformChange:G});x.on("zoom",ce);const ke=N1({zoomPanValues:m,panOnDrag:z,panOnScroll:U,onPaneContextMenu:b,onPanZoomEnd:d,onDraggingChange:h});x.on("end",ke);const Me=C1({panActivationKeyPressed:ue,zoomActivationKeyPressed:de,panOnDrag:z,zoomOnScroll:ee,panOnScroll:U,zoomOnDoubleClick:te,zoomOnPinch:L,userSelectionActive:$,noPanClassName:C,noWheelClassName:V,lib:fe,connectionInProgress:ie});x.filter(Me),te?S.on("dblclick.zoom",E):S.on("dblclick.zoom",null)}function k(){x.on("zoom",null)}async function M(V,C,b){const $=Pu(V),U=x==null?void 0:x.constrain()($,C,b);return U&&await N(U),U}async function F(V,C){const b=Pu(V);return await N(b,C),b}function D(V){if(S){const C=Pu(V),b=S.property("__zoom");(b.k!==V.zoom||b.x!==V.x||b.y!==V.y)&&(x==null||x.transform(S,C,null,{sync:!0}))}}function W(){const V=S?Uh(S.node()):{x:0,y:0,k:1};return{x:V.x,y:V.y,zoom:V.k}}async function Y(V,C){return S?new Promise(b=>{x==null||x.interpolate((C==null?void 0:C.interpolate)==="linear"?si:el).scaleTo(Iu(S,C==null?void 0:C.duration,C==null?void 0:C.ease,()=>b(!0)),V)}):!1}async function K(V,C){return S?new Promise(b=>{x==null||x.interpolate((C==null?void 0:C.interpolate)==="linear"?si:el).scaleBy(Iu(S,C==null?void 0:C.duration,C==null?void 0:C.ease,()=>b(!0)),V)}):!1}function ne(V){x==null||x.scaleExtent(V)}function Z(V){x==null||x.translateExtent(V)}function J(V){const C=!Ut(V)||V<0?0:V;x==null||x.clickDistance(C)}return{update:I,destroy:k,setViewport:F,setViewportConstrained:M,getViewport:W,scaleTo:Y,scaleBy:K,setScaleExtent:ne,setTranslateExtent:Z,syncViewport:D,setClickDistance:J}}var uo;(function(t){t.Line="line",t.Handle="handle"})(uo||(uo={}));function j1({width:t,prevWidth:r,height:i,prevHeight:l,affectsX:a,affectsY:u}){const c=t-r,d=i-l,h=[c>0?1:c<0?-1:0,d>0?1:d<0?-1:0];return c&&a&&(h[0]=h[0]*-1),d&&u&&(h[1]=h[1]*-1),h}function Rp(t){const r=t.includes("right")||t.includes("left"),i=t.includes("bottom")||t.includes("top"),l=t.includes("left"),a=t.includes("top");return{isHorizontal:r,isVertical:i,affectsX:l,affectsY:a}}function Hn(t,r){return Math.max(0,r-t)}function Vn(t,r){return Math.max(0,t-r)}function Qs(t,r,i){return Math.max(0,r-t,t-i)}function zp(t,r){return t?!r:r}function P1(t,r,i,l,a,u,c,d){let{affectsX:h,affectsY:m}=r;const{isHorizontal:v,isVertical:y}=r,g=v&&y,{xSnapped:x,ySnapped:S}=i,{minWidth:j,maxWidth:E,minHeight:N,maxHeight:I}=l,{x:k,y:M,width:F,height:D,aspectRatio:W}=t;let Y=Math.floor(v?x-t.pointerX:0),K=Math.floor(y?S-t.pointerY:0);const ne=F+(h?-Y:Y),Z=D+(m?-K:K),J=-u[0]*F,V=-u[1]*D;let C=Qs(ne,j,E),b=Qs(Z,N,I);if(c){let z=0,A=0;h&&Y<0?z=Hn(k+Y+J,c[0][0]):!h&&Y>0&&(z=Vn(k+ne+J,c[1][0])),m&&K<0?A=Hn(M+K+V,c[0][1]):!m&&K>0&&(A=Vn(M+Z+V,c[1][1])),C=Math.max(C,z),b=Math.max(b,A)}if(d){let z=0,A=0;h&&Y>0?z=Vn(k+Y,d[0][0]):!h&&Y<0&&(z=Hn(k+ne,d[1][0])),m&&K>0?A=Vn(M+K,d[0][1]):!m&&K<0&&(A=Hn(M+Z,d[1][1])),C=Math.max(C,z),b=Math.max(b,A)}if(a){if(v){const z=Qs(ne/W,N,I)*W;if(C=Math.max(C,z),c){let A=0;!h&&!m||h&&!m&&g?A=Vn(M+V+ne/W,c[1][1])*W:A=Hn(M+V+(h?Y:-Y)/W,c[0][1])*W,C=Math.max(C,A)}if(d){let A=0;!h&&!m||h&&!m&&g?A=Hn(M+ne/W,d[1][1])*W:A=Vn(M+(h?Y:-Y)/W,d[0][1])*W,C=Math.max(C,A)}}if(y){const z=Qs(Z*W,j,E)/W;if(b=Math.max(b,z),c){let A=0;!h&&!m||m&&!h&&g?A=Vn(k+Z*W+J,c[1][0])/W:A=Hn(k+(m?K:-K)*W+J,c[0][0])/W,b=Math.max(b,A)}if(d){let A=0;!h&&!m||m&&!h&&g?A=Hn(k+Z*W,d[1][0])/W:A=Vn(k+(m?K:-K)*W,d[0][0])/W,b=Math.max(b,A)}}}K=K+(K<0?b:-b),Y=Y+(Y<0?C:-C),a&&(g?ne>Z*W?K=(zp(h,m)?-Y:Y)/W:Y=(zp(h,m)?-K:K)*W:v?(K=Y/W,m=h):(Y=K*W,h=m));const $=h?k+Y:k,U=m?M+K:M;return{width:F+(h?-Y:Y),height:D+(m?-K:K),x:u[0]*Y*(h?-1:1)+$,y:u[1]*K*(m?-1:1)+U}}const _g={width:0,height:0,x:0,y:0},I1={..._g,pointerX:0,pointerY:0,aspectRatio:1};function T1(t,r,i){const l=r.position.x+t.position.x,a=r.position.y+t.position.y,u=t.measured.width??0,c=t.measured.height??0,d=i[0]*u,h=i[1]*c;return[[l-d,a-h],[l+u-d,a+c-h]]}function R1({domNode:t,nodeId:r,getStoreItems:i,onChange:l,onEnd:a}){const u=Ct(t);let c={controlDirection:Rp("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function d({controlPosition:m,boundaries:v,keepAspectRatio:y,resizeDirection:g,onResizeStart:x,onResize:S,onResizeEnd:j,shouldResize:E}){let N={..._g},I={...I1};c={boundaries:v,resizeDirection:g,keepAspectRatio:y,controlDirection:Rp(m)};let k,M=null,F=[],D,W,Y,K=!1;const ne=Ih().on("start",Z=>{const{nodeLookup:J,transform:V,snapGrid:C,snapToGrid:b,nodeOrigin:$,paneDomNode:U}=i();if(k=J.get(r),!k)return;M=(U==null?void 0:U.getBoundingClientRect())??null;const{xSnapped:z,ySnapped:A}=li(Z.sourceEvent,{transform:V,snapGrid:C,snapToGrid:b,containerBounds:M});N={width:k.measured.width??0,height:k.measured.height??0,x:k.position.x??0,y:k.position.y??0},I={...N,pointerX:z,pointerY:A,aspectRatio:N.width/N.height},D=void 0,W=xr(k.extent)?k.extent:void 0,k.parentId&&(k.extent==="parent"||k.expandParent)&&(D=J.get(k.parentId)),D&&k.extent==="parent"&&(W=[[0,0],[D.measured.width,D.measured.height]]),F=[],Y=void 0;for(const[H,P]of J)if(P.parentId===r&&(F.push({id:H,position:{...P.position},extent:P.extent}),P.extent==="parent"||P.expandParent)){const L=T1(P,k,P.origin??$);Y?Y=[[Math.min(L[0][0],Y[0][0]),Math.min(L[0][1],Y[0][1])],[Math.max(L[1][0],Y[1][0]),Math.max(L[1][1],Y[1][1])]]:Y=L}x==null||x(Z,{...N})}).on("drag",Z=>{const{transform:J,snapGrid:V,snapToGrid:C,nodeOrigin:b}=i(),$=li(Z.sourceEvent,{transform:J,snapGrid:V,snapToGrid:C,containerBounds:M}),U=[];if(!k)return;const{x:z,y:A,width:H,height:P}=N,L={},ee=k.origin??b,{width:te,height:ue,x:de,y:fe}=P1(I,c.controlDirection,$,c.boundaries,c.keepAspectRatio,ee,W,Y),G=te!==H,ie=ue!==P,he=de!==z&&G,we=fe!==A&&ie;if(!he&&!we&&!G&&!ie)return;if((he||we||ee[0]===1||ee[1]===1)&&(L.x=he?de:N.x,L.y=we?fe:N.y,N.x=L.x,N.y=L.y,F.length>0)){const ce=de-z,ke=fe-A;for(const Me of F)Me.position={x:Me.position.x-ce+ee[0]*(te-H),y:Me.position.y-ke+ee[1]*(ue-P)},U.push(Me)}if((G||ie)&&(L.width=G&&(!c.resizeDirection||c.resizeDirection==="horizontal")?te:N.width,L.height=ie&&(!c.resizeDirection||c.resizeDirection==="vertical")?ue:N.height,N.width=L.width,N.height=L.height),D&&k.expandParent){const ce=ee[0]*(L.width??0);L.x&&L.x<ce&&(N.x=ce,I.x=I.x-(L.x-ce));const ke=ee[1]*(L.height??0);L.y&&L.y<ke&&(N.y=ke,I.y=I.y-(L.y-ke))}const xe=j1({width:N.width,prevWidth:H,height:N.height,prevHeight:P,affectsX:c.controlDirection.affectsX,affectsY:c.controlDirection.affectsY}),Se={...N,direction:xe};(E==null?void 0:E(Z,Se))!==!1&&(K=!0,S==null||S(Z,Se),l(L,U))}).on("end",Z=>{K&&(j==null||j(Z,{...N}),a==null||a({...N}),K=!1)});u.call(ne)}function h(){u.on(".drag",null)}return{update:d,destroy:h}}var Tu={exports:{}},Ru={},zu={exports:{}},Lu={};/**
- * @license React
- * use-sync-external-store-shim.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 Lp;function z1(){if(Lp)return Lu;Lp=1;var t=yi();function r(y,g){return y===g&&(y!==0||1/y===1/g)||y!==y&&g!==g}var i=typeof Object.is=="function"?Object.is:r,l=t.useState,a=t.useEffect,u=t.useLayoutEffect,c=t.useDebugValue;function d(y,g){var x=g(),S=l({inst:{value:x,getSnapshot:g}}),j=S[0].inst,E=S[1];return u(function(){j.value=x,j.getSnapshot=g,h(j)&&E({inst:j})},[y,x,g]),a(function(){return h(j)&&E({inst:j}),y(function(){h(j)&&E({inst:j})})},[y]),c(x),x}function h(y){var g=y.getSnapshot;y=y.value;try{var x=g();return!i(y,x)}catch{return!0}}function m(y,g){return g()}var v=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?m:d;return Lu.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:v,Lu}var Ap;function L1(){return Ap||(Ap=1,zu.exports=z1()),zu.exports}/**
- * @license React
- * use-sync-external-store-shim/with-selector.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 Dp;function A1(){if(Dp)return Ru;Dp=1;var t=yi(),r=L1();function i(m,v){return m===v&&(m!==0||1/m===1/v)||m!==m&&v!==v}var l=typeof Object.is=="function"?Object.is:i,a=r.useSyncExternalStore,u=t.useRef,c=t.useEffect,d=t.useMemo,h=t.useDebugValue;return Ru.useSyncExternalStoreWithSelector=function(m,v,y,g,x){var S=u(null);if(S.current===null){var j={hasValue:!1,value:null};S.current=j}else j=S.current;S=d(function(){function N(D){if(!I){if(I=!0,k=D,D=g(D),x!==void 0&&j.hasValue){var W=j.value;if(x(W,D))return M=W}return M=D}if(W=M,l(k,D))return W;var Y=g(D);return x!==void 0&&x(W,Y)?(k=D,W):(k=D,M=Y)}var I=!1,k,M,F=y===void 0?null:y;return[function(){return N(v())},F===null?void 0:function(){return N(F())}]},[v,y,g,x]);var E=a(m,S[0],S[1]);return c(function(){j.hasValue=!0,j.value=E},[E]),h(E),E},Ru}var $p;function D1(){return $p||($p=1,Tu.exports=A1()),Tu.exports}var $1=D1();const b1=dh($1),O1={},bp=t=>{let r;const i=new Set,l=(v,y)=>{const g=typeof v=="function"?v(r):v;if(!Object.is(g,r)){const x=r;r=y??(typeof g!="object"||g===null)?g:Object.assign({},r,g),i.forEach(S=>S(r,x))}},a=()=>r,h={setState:l,getState:a,getInitialState:()=>m,subscribe:v=>(i.add(v),()=>i.delete(v)),destroy:()=>{(O1?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),i.clear()}},m=r=t(l,a,h);return h},F1=t=>t?bp(t):bp,{useDebugValue:H1}=ph,{useSyncExternalStoreWithSelector:V1}=b1,B1=t=>t;function Sg(t,r=B1,i){const l=V1(t.subscribe,t.getState,t.getServerState||t.getInitialState,r,i);return H1(l),l}const Op=(t,r)=>{const i=F1(t),l=(a,u=r)=>Sg(i,a,u);return Object.assign(l,i),l},U1=(t,r)=>t?Op(t,r):Op;function Be(t,r){if(Object.is(t,r))return!0;if(typeof t!="object"||t===null||typeof r!="object"||r===null)return!1;if(t instanceof Map&&r instanceof Map){if(t.size!==r.size)return!1;for(const[l,a]of t)if(!Object.is(a,r.get(l)))return!1;return!0}if(t instanceof Set&&r instanceof Set){if(t.size!==r.size)return!1;for(const l of t)if(!r.has(l))return!1;return!0}const i=Object.keys(t);if(i.length!==Object.keys(r).length)return!1;for(const l of i)if(!Object.prototype.hasOwnProperty.call(r,l)||!Object.is(t[l],r[l]))return!1;return!0}hh();const kl=R.createContext(null),W1=kl.Provider,kg=Yt.error001("react");function Ie(t,r){const i=R.useContext(kl);if(i===null)throw new Error(kg);return Sg(i,t,r)}function $e(){const t=R.useContext(kl);if(t===null)throw new Error(kg);return R.useMemo(()=>({getState:t.getState,setState:t.setState,subscribe:t.subscribe}),[t])}const Fp={display:"none"},Y1={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Eg="react-flow__node-desc",Ng="react-flow__edge-desc",X1="react-flow__aria-live",K1=t=>t.ariaLiveMessage,Q1=t=>t.ariaLabelConfig;function G1({rfId:t}){const r=Ie(K1);return w.jsx("div",{id:`${X1}-${t}`,"aria-live":"assertive","aria-atomic":"true",style:Y1,children:r})}function q1({rfId:t,disableKeyboardA11y:r}){const i=Ie(Q1);return w.jsxs(w.Fragment,{children:[w.jsx("div",{id:`${Eg}-${t}`,style:Fp,children:r?i["node.a11yDescription.default"]:i["node.a11yDescription.keyboardDisabled"]}),w.jsx("div",{id:`${Ng}-${t}`,style:Fp,children:i["edge.a11yDescription.default"]}),!r&&w.jsx(G1,{rfId:t})]})}const Ei=R.forwardRef(({position:t="top-left",children:r,className:i,style:l,...a},u)=>{const c=`${t}`.split("-");return w.jsx("div",{className:Xe(["react-flow__panel",i,...c]),style:l,ref:u,...a,children:r})});Ei.displayName="Panel";const Hp="https://reactflow.dev?utm_source=attribution";function Z1({proOptions:t,position:r="bottom-right"}){return R.useEffect(()=>{},[]),t!=null&&t.hideAttribution?null:w.jsx(Ei,{position:r,className:"react-flow__attribution","data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${Hp}`,children:w.jsx("a",{href:Hp,target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const J1=t=>{const r=[],i=[];for(const[,l]of t.nodeLookup)l.selected&&r.push(l.internals.userNode);for(const[,l]of t.edgeLookup)l.selected&&i.push(l);return{selectedNodes:r,selectedEdges:i}},Gs=t=>t.id;function e_(t,r){return Be(t.selectedNodes.map(Gs),r.selectedNodes.map(Gs))&&Be(t.selectedEdges.map(Gs),r.selectedEdges.map(Gs))}function t_({onSelectionChange:t}){const r=$e(),{selectedNodes:i,selectedEdges:l}=Ie(J1,e_);return R.useEffect(()=>{const a={nodes:i,edges:l};t==null||t(a),r.getState().onSelectionChangeHandlers.forEach(u=>u(a))},[i,l,t]),null}const n_=t=>!!t.onSelectionChangeHandlers;function r_({onSelectionChange:t}){const r=Ie(n_);return t||r?w.jsx(t_,{onSelectionChange:t}):null}const Cg=[0,0],o_={x:0,y:0,zoom:1},i_=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode"],Vp=[...i_,"rfId"],s_=t=>({setNodes:t.setNodes,setEdges:t.setEdges,setMinZoom:t.setMinZoom,setMaxZoom:t.setMaxZoom,setTranslateExtent:t.setTranslateExtent,setNodeExtent:t.setNodeExtent,reset:t.reset,setDefaultNodesAndEdges:t.setDefaultNodesAndEdges}),Bp={translateExtent:di,nodeOrigin:Cg,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function l_(t){const{setNodes:r,setEdges:i,setMinZoom:l,setMaxZoom:a,setTranslateExtent:u,setNodeExtent:c,reset:d,setDefaultNodesAndEdges:h}=Ie(s_,Be),m=$e();R.useEffect(()=>(h(t.defaultNodes,t.defaultEdges),()=>{v.current=Bp,d()}),[]);const v=R.useRef(Bp);return R.useEffect(()=>{for(const y of Vp){const g=t[y],x=v.current[y];g!==x&&(typeof t[y]>"u"||(y==="nodes"?r(g):y==="edges"?i(g):y==="minZoom"?l(g):y==="maxZoom"?a(g):y==="translateExtent"?u(g):y==="nodeExtent"?c(g):y==="ariaLabelConfig"?m.setState({ariaLabelConfig:Ww(g)}):y==="fitView"?m.setState({fitViewQueued:g}):y==="fitViewOptions"?m.setState({fitViewOptions:g}):m.setState({[y]:g})))}v.current=t},Vp.map(y=>t[y])),null}function Up(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function a_(t){var l;const[r,i]=R.useState(t==="system"?null:t);return R.useEffect(()=>{if(t!=="system"){i(t);return}const a=Up(),u=()=>i(a!=null&&a.matches?"dark":"light");return u(),a==null||a.addEventListener("change",u),()=>{a==null||a.removeEventListener("change",u)}},[t]),r!==null?r:(l=Up())!=null&&l.matches?"dark":"light"}const Wp=typeof document<"u"?document:null;function mi(t=null,r={target:Wp,actInsideInputWithModifier:!0}){const[i,l]=R.useState(!1),a=R.useRef(!1),u=R.useRef(new Set([])),[c,d]=R.useMemo(()=>{if(t!==null){const m=(Array.isArray(t)?t:[t]).filter(y=>typeof y=="string").map(y=>y.replace(/\+/g,`
-`).replace(`
-
-`,`
-+`).split(`
-`)),v=m.reduce((y,g)=>y.concat(...g),[]);return[m,v]}return[[],[]]},[t]);return R.useEffect(()=>{const h=(r==null?void 0:r.target)??Wp,m=(r==null?void 0:r.actInsideInputWithModifier)??!0;if(t!==null){const v=x=>{var E,N;if(a.current=x.ctrlKey||x.metaKey||x.shiftKey||x.altKey,(!a.current||a.current&&!m)&&ig(x))return!1;const j=Xp(x.code,d);if(u.current.add(x[j]),Yp(c,u.current,!1)){const I=((N=(E=x.composedPath)==null?void 0:E.call(x))==null?void 0:N[0])||x.target,k=(I==null?void 0:I.nodeName)==="BUTTON"||(I==null?void 0:I.nodeName)==="A";r.preventDefault!==!1&&(a.current||!k)&&x.preventDefault(),l(!0)}},y=x=>{const S=Xp(x.code,d);Yp(c,u.current,!0)?(l(!1),u.current.clear()):u.current.delete(x[S]),x.key==="Meta"&&u.current.clear(),a.current=!1},g=()=>{u.current.clear(),l(!1)};return h==null||h.addEventListener("keydown",v),h==null||h.addEventListener("keyup",y),window.addEventListener("blur",g),window.addEventListener("contextmenu",g),()=>{h==null||h.removeEventListener("keydown",v),h==null||h.removeEventListener("keyup",y),window.removeEventListener("blur",g),window.removeEventListener("contextmenu",g)}}},[t,l]),i}function Yp(t,r,i){return t.filter(l=>i||l.length===r.size).some(l=>l.every(a=>r.has(a)))}function Xp(t,r){return r.includes(t)?"code":"key"}const u_=()=>{const t=$e();return R.useMemo(()=>({zoomIn:async r=>{const{panZoom:i}=t.getState();return i?i.scaleBy(1.2,r):!1},zoomOut:async r=>{const{panZoom:i}=t.getState();return i?i.scaleBy(1/1.2,r):!1},zoomTo:async(r,i)=>{const{panZoom:l}=t.getState();return l?l.scaleTo(r,i):!1},getZoom:()=>t.getState().transform[2],setViewport:async(r,i)=>{const{transform:[l,a,u],panZoom:c}=t.getState();return c?(await c.setViewport({x:r.x??l,y:r.y??a,zoom:r.zoom??u},i),!0):!1},getViewport:()=>{const[r,i,l]=t.getState().transform;return{x:r,y:i,zoom:l}},setCenter:async(r,i,l)=>t.getState().setCenter(r,i,l),fitBounds:async(r,i)=>{const{width:l,height:a,minZoom:u,maxZoom:c,panZoom:d}=t.getState(),h=fc(r,l,a,u,c,(i==null?void 0:i.padding)??.1);return d?(await d.setViewport(h,{duration:i==null?void 0:i.duration,ease:i==null?void 0:i.ease,interpolate:i==null?void 0:i.interpolate}),!0):!1},screenToFlowPosition:(r,i={})=>{const{transform:l,snapGrid:a,snapToGrid:u,domNode:c}=t.getState();if(!c)return r;const{x:d,y:h}=c.getBoundingClientRect(),m={x:r.x-d,y:r.y-h},v=i.snapGrid??a,y=i.snapToGrid??u;return ki(m,l,y,v)},flowToScreenPosition:r=>{const{transform:i,domNode:l}=t.getState();if(!l)return r;const{x:a,y:u}=l.getBoundingClientRect(),c=ao(r,i);return{x:c.x+a,y:c.y+u}}}),[])};function Mg(t,r){const i=[],l=new Map,a=[];for(const u of t)if(u.type==="add"){a.push(u);continue}else if(u.type==="remove"||u.type==="replace")l.set(u.id,[u]);else{const c=l.get(u.id);c?c.push(u):l.set(u.id,[u])}for(const u of r){const c=l.get(u.id);if(!c){i.push(u);continue}if(c[0].type==="remove")continue;if(c[0].type==="replace"){i.push({...c[0].item});continue}const d={...u};for(const h of c)c_(h,d);i.push(d)}return a.length&&a.forEach(u=>{u.index!==void 0?i.splice(u.index,0,{...u.item}):i.push({...u.item})}),i}function c_(t,r){switch(t.type){case"select":{r.selected=t.selected;break}case"position":{typeof t.position<"u"&&(r.position=t.position),typeof t.dragging<"u"&&(r.dragging=t.dragging);break}case"dimensions":{typeof t.dimensions<"u"&&(r.measured={...t.dimensions},t.setAttributes&&((t.setAttributes===!0||t.setAttributes==="width")&&(r.width=t.dimensions.width),(t.setAttributes===!0||t.setAttributes==="height")&&(r.height=t.dimensions.height))),typeof t.resizing=="boolean"&&(r.resizing=t.resizing);break}}}function f_(t,r){return Mg(t,r)}function d_(t,r){return Mg(t,r)}function dr(t,r){return{id:t,type:"select",selected:r}}function Jr(t,r=new Set,i=!1){const l=[];for(const[a,u]of t){const c=r.has(a);!(u.selected===void 0&&!c)&&u.selected!==c&&(i&&(u.selected=c),l.push(dr(u.id,c)))}return l}function Kp({items:t=[],lookup:r}){var a;const i=[],l=new Map(t.map(u=>[u.id,u]));for(const[u,c]of t.entries()){const d=r.get(c.id),h=((a=d==null?void 0:d.internals)==null?void 0:a.userNode)??d;h!==void 0&&h!==c&&i.push({id:c.id,item:c,type:"replace"}),h===void 0&&i.push({item:c,type:"add",index:u})}for(const[u]of r)l.get(u)===void 0&&i.push({id:u,type:"remove"});return i}function Qp(t){return{id:t.id,type:"remove"}}const p_=eg();function h_(t,r,i={}){return qw(t,r,{...i,onError:i.onError??p_})}const Gp=t=>Dw(t),g_=t=>Qh(t);function jg(t){return R.forwardRef(t)}const Pg=typeof window<"u"?R.useLayoutEffect:R.useEffect;function qp(t){const[r,i]=R.useState(BigInt(0)),[l]=R.useState(()=>m_(()=>i(a=>a+BigInt(1))));return Pg(()=>{const a=l.get();a.length&&(t(a),l.reset())},[r]),l}function m_(t){let r=[];return{get:()=>r,reset:()=>{r=[]},push:i=>{r.push(i),t()}}}const Ig=R.createContext(null);function y_({children:t}){const r=$e(),i=R.useCallback(d=>{const{nodes:h=[],setNodes:m,hasDefaultNodes:v,onNodesChange:y,nodeLookup:g,fitViewQueued:x,onNodesChangeMiddlewareMap:S}=r.getState();let j=h;for(const N of d)j=typeof N=="function"?N(j):N;let E=Kp({items:j,lookup:g});for(const N of S.values())E=N(E);v&&m(j),E.length>0?y==null||y(E):x&&window.requestAnimationFrame(()=>{const{fitViewQueued:N,nodes:I,setNodes:k}=r.getState();N&&k(I)})},[]),l=qp(i),a=R.useCallback(d=>{const{edges:h=[],setEdges:m,hasDefaultEdges:v,onEdgesChange:y,edgeLookup:g}=r.getState();let x=h;for(const S of d)x=typeof S=="function"?S(x):S;v?m(x):y&&y(Kp({items:x,lookup:g}))},[]),u=qp(a),c=R.useMemo(()=>({nodeQueue:l,edgeQueue:u}),[]);return w.jsx(Ig.Provider,{value:c,children:t})}function v_(){const t=R.useContext(Ig);if(!t)throw new Error("useBatchContext must be used within a BatchProvider");return t}const x_=t=>!!t.panZoom;function El(){const t=u_(),r=$e(),i=v_(),l=Ie(x_),a=R.useMemo(()=>{const u=y=>r.getState().nodeLookup.get(y),c=y=>{i.nodeQueue.push(y)},d=y=>{i.edgeQueue.push(y)},h=y=>{var N,I;const{nodeLookup:g,nodeOrigin:x}=r.getState(),S=Gp(y)?y:g.get(y.id),j=S.parentId?ng(S.position,S.measured,S.parentId,g,x):S.position,E={...S,position:j,width:((N=S.measured)==null?void 0:N.width)??S.width,height:((I=S.measured)==null?void 0:I.height)??S.height};return hi(E)},m=(y,g,x={replace:!1})=>{c(S=>S.map(j=>{if(j.id===y){const E=typeof g=="function"?g(j):g;return x.replace&&Gp(E)?E:{...j,...E}}return j}))},v=(y,g,x={replace:!1})=>{d(S=>S.map(j=>{if(j.id===y){const E=typeof g=="function"?g(j):g;return x.replace&&g_(E)?E:{...j,...E}}return j}))};return{getNodes:()=>r.getState().nodes.map(y=>({...y})),getNode:y=>{var g;return(g=u(y))==null?void 0:g.internals.userNode},getInternalNode:u,getEdges:()=>{const{edges:y=[]}=r.getState();return y.map(g=>({...g}))},getEdge:y=>r.getState().edgeLookup.get(y),setNodes:c,setEdges:d,addNodes:y=>{const g=Array.isArray(y)?y:[y];i.nodeQueue.push(x=>[...x,...g])},addEdges:y=>{const g=Array.isArray(y)?y:[y];i.edgeQueue.push(x=>[...x,...g])},toObject:()=>{const{nodes:y=[],edges:g=[],transform:x}=r.getState(),[S,j,E]=x;return{nodes:y.map(N=>({...N})),edges:g.map(N=>({...N})),viewport:{x:S,y:j,zoom:E}}},deleteElements:async({nodes:y=[],edges:g=[]})=>{const{nodes:x,edges:S,onNodesDelete:j,onEdgesDelete:E,triggerNodeChanges:N,triggerEdgeChanges:I,onDelete:k,onBeforeDelete:M}=r.getState(),{nodes:F,edges:D}=await Hw({nodesToRemove:y,edgesToRemove:g,nodes:x,edges:S,onBeforeDelete:M}),W=D.length>0,Y=F.length>0;if(W){const K=D.map(Qp);E==null||E(D),I(K)}if(Y){const K=F.map(Qp);j==null||j(F),N(K)}return(Y||W)&&(k==null||k({nodes:F,edges:D})),{deletedNodes:F,deletedEdges:D}},getIntersectingNodes:(y,g=!0,x)=>{const S=_p(y),j=S?y:h(y),E=x!==void 0;return j?(x||r.getState().nodes).filter(N=>{const I=r.getState().nodeLookup.get(N.id);if(I&&!S&&(N.id===y.id||!I.internals.positionAbsolute))return!1;const k=hi(E?N:I),M=pl(k,j);return g&&M>0||M>=k.width*k.height||M>=j.width*j.height}):[]},isNodeIntersecting:(y,g,x=!0)=>{const j=_p(y)?y:h(y);if(!j)return!1;const E=pl(j,g);return x&&E>0||E>=g.width*g.height||E>=j.width*j.height},updateNode:m,updateNodeData:(y,g,x={replace:!1})=>{m(y,S=>{const j=typeof g=="function"?g(S):g;return x.replace?{...S,data:j}:{...S,data:{...S.data,...j}}},x)},updateEdge:v,updateEdgeData:(y,g,x={replace:!1})=>{v(y,S=>{const j=typeof g=="function"?g(S):g;return x.replace?{...S,data:j}:{...S,data:{...S.data,...j}}},x)},getNodesBounds:y=>{const{nodeLookup:g,nodeOrigin:x}=r.getState();return $w(y,{nodeLookup:g,nodeOrigin:x})},getHandleConnections:({type:y,id:g,nodeId:x})=>{var S;return Array.from(((S=r.getState().connectionLookup.get(`${x}-${y}${g?`-${g}`:""}`))==null?void 0:S.values())??[])},getNodeConnections:({type:y,handleId:g,nodeId:x})=>{var S;return Array.from(((S=r.getState().connectionLookup.get(`${x}${y?g?`-${y}-${g}`:`-${y}`:""}`))==null?void 0:S.values())??[])},fitView:async y=>{const g=r.getState().fitViewResolver??Uw();return r.setState({fitViewQueued:!0,fitViewOptions:y,fitViewResolver:g}),i.nodeQueue.push(x=>[...x]),g.promise}}},[]);return R.useMemo(()=>({...a,...t,viewportInitialized:l}),[l])}const Zp=t=>t.selected,w_=typeof window<"u"?window:void 0;function __({deleteKeyCode:t,multiSelectionKeyCode:r}){const i=$e(),{deleteElements:l}=El(),a=mi(t,{actInsideInputWithModifier:!1}),u=mi(r,{target:w_});R.useEffect(()=>{if(a){const{edges:c,nodes:d}=i.getState();l({nodes:d.filter(Zp),edges:c.filter(Zp)}),i.setState({nodesSelectionActive:!1})}},[a]),R.useEffect(()=>{i.setState({multiSelectionActive:u})},[u])}function S_(t){const r=$e();R.useEffect(()=>{const i=()=>{var a,u,c,d;if(!t.current||!(((u=(a=t.current).checkVisibility)==null?void 0:u.call(a))??!0))return!1;const l=dc(t.current);(l.height===0||l.width===0)&&((d=(c=r.getState()).onError)==null||d.call(c,"004",Yt.error004())),r.setState({width:l.width||500,height:l.height||500})};if(t.current){i(),window.addEventListener("resize",i);const l=new ResizeObserver(()=>i());return l.observe(t.current),()=>{window.removeEventListener("resize",i),l&&t.current&&l.unobserve(t.current)}}},[])}const Nl={position:"absolute",width:"100%",height:"100%",top:0,left:0},k_=t=>({userSelectionActive:t.userSelectionActive,lib:t.lib,connectionInProgress:t.connection.inProgress});function E_({onPaneContextMenu:t,zoomOnScroll:r=!0,zoomOnPinch:i=!0,panOnScroll:l=!1,panActivationKeyPressed:a,panOnScrollSpeed:u=.5,panOnScrollMode:c=gr.Free,zoomOnDoubleClick:d=!0,panOnDrag:h=!0,defaultViewport:m,translateExtent:v,minZoom:y,maxZoom:g,zoomActivationKeyCode:x,preventScrolling:S=!0,children:j,noWheelClassName:E,noPanClassName:N,onViewportChange:I,isControlledViewport:k,paneClickDistance:M,selectionOnDrag:F}){const D=$e(),W=R.useRef(null),{userSelectionActive:Y,lib:K,connectionInProgress:ne}=Ie(k_,Be),Z=mi(x),J=R.useRef();S_(W);const V=R.useCallback(C=>{I==null||I({x:C[0],y:C[1],zoom:C[2]}),k||D.setState({transform:C})},[I,k]);return R.useEffect(()=>{if(W.current){J.current=M1({domNode:W.current,minZoom:y,maxZoom:g,translateExtent:v,viewport:m,onDraggingChange:U=>D.setState(z=>z.paneDragging===U?z:{paneDragging:U}),onPanZoomStart:(U,z)=>{const{onViewportChangeStart:A,onMoveStart:H}=D.getState();H==null||H(U,z),A==null||A(z)},onPanZoom:(U,z)=>{const{onViewportChange:A,onMove:H}=D.getState();H==null||H(U,z),A==null||A(z)},onPanZoomEnd:(U,z)=>{const{onViewportChangeEnd:A,onMoveEnd:H}=D.getState();H==null||H(U,z),A==null||A(z)}});const{x:C,y:b,zoom:$}=J.current.getViewport();return D.setState({panZoom:J.current,transform:[C,b,$],domNode:W.current.closest(".react-flow")}),()=>{var U;(U=J.current)==null||U.destroy()}}},[]),R.useEffect(()=>{var C;(C=J.current)==null||C.update({onPaneContextMenu:t,zoomOnScroll:r,zoomOnPinch:i,panOnScroll:l,panActivationKeyPressed:a,panOnScrollSpeed:u,panOnScrollMode:c,zoomOnDoubleClick:d,panOnDrag:h,zoomActivationKeyPressed:Z,preventScrolling:S,noPanClassName:N,userSelectionActive:Y,noWheelClassName:E,lib:K,onTransformChange:V,connectionInProgress:ne,selectionOnDrag:F,paneClickDistance:M})},[t,r,i,l,a,u,c,d,h,Z,S,N,Y,E,K,V,ne,F,M]),w.jsx("div",{className:"react-flow__renderer",ref:W,style:Nl,children:j})}const N_=t=>({userSelectionActive:t.userSelectionActive,userSelectionRect:t.userSelectionRect});function C_(){const{userSelectionActive:t,userSelectionRect:r}=Ie(N_,Be);return t&&r?w.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:r.width,height:r.height,transform:`translate(${r.x}px, ${r.y}px)`}}):null}const Au=(t,r)=>i=>{i.target===r.current&&(t==null||t(i))},M_=t=>({userSelectionActive:t.userSelectionActive,elementsSelectable:t.elementsSelectable,dragging:t.paneDragging,panBy:t.panBy,autoPanSpeed:t.autoPanSpeed});function j_({isSelecting:t,selectionKeyPressed:r,selectionMode:i=pi.Full,panOnDrag:l,autoPanOnSelection:a,paneClickDistance:u,selectionOnDrag:c,onSelectionStart:d,onSelectionEnd:h,onPaneClick:m,onPaneContextMenu:v,onPaneScroll:y,onPaneMouseEnter:g,onPaneMouseMove:x,onPaneMouseLeave:S,children:j}){const E=R.useRef(0),N=$e(),{userSelectionActive:I,elementsSelectable:k,dragging:M,panBy:F,autoPanSpeed:D}=Ie(M_,Be),W=k&&(t||I),Y=R.useRef(null),K=R.useRef(),ne=R.useRef(new Set),Z=R.useRef(new Set),J=R.useRef(!1),V=R.useRef(!1),C=R.useRef({x:0,y:0}),b=R.useRef(!1),$=G=>{if(V.current||J.current||N.getState().connection.inProgress){V.current=!1,J.current=!1;return}m==null||m(G),N.getState().resetSelectedElements(),N.setState({nodesSelectionActive:!1})},U=G=>{if(Array.isArray(l)&&(l!=null&&l.includes(2))){G.preventDefault();return}v==null||v(G)},z=y?G=>y(G):void 0,A=G=>{V.current&&(G.stopPropagation(),V.current=!1)},H=G=>{var Me,Ke;if(G.pointerType==="touch"&&l!==!1&&!r)return;const{domNode:ie,transform:he}=N.getState();if(K.current=ie==null?void 0:ie.getBoundingClientRect(),!K.current)return;const we=G.target===Y.current;if(!we&&!!G.target.closest(".nokey")||!t||!(c&&we||r)||G.button!==0||!G.isPrimary)return;(Ke=(Me=G.target)==null?void 0:Me.setPointerCapture)==null||Ke.call(Me,G.pointerId),V.current=!1;const{x:se,y:ce}=Wt(G.nativeEvent,K.current),ke=ki({x:se,y:ce},he);N.setState({userSelectionRect:{width:0,height:0,startX:ke.x,startY:ke.y,x:se,y:ce}}),we||(G.stopPropagation(),G.preventDefault())};function P(G,ie){const{userSelectionRect:he}=N.getState();if(!he)return;const{transform:we,nodeLookup:xe,edgeLookup:Se,connectionLookup:se,triggerNodeChanges:ce,triggerEdgeChanges:ke,defaultEdgeOptions:Me}=N.getState(),Ke={x:he.startX,y:he.startY},{x:Re,y:Ze}=ao(Ke,we),ot={startX:Ke.x,startY:Ke.y,x:G<Re?G:Re,y:ie<Ze?ie:Ze,width:Math.abs(G-Re),height:Math.abs(ie-Ze)},sn=ne.current,Qt=Z.current;ne.current=new Set(uc(xe,ot,we,i===pi.Partial,!0).map(ft=>ft.id)),Z.current=new Set;const Gt=(Me==null?void 0:Me.selectable)??!0;for(const ft of ne.current){const jt=se.get(ft);if(jt)for(const{edgeId:xt}of jt.values()){const Pt=Se.get(xt);Pt&&(Pt.selectable??Gt)&&Z.current.add(xt)}}if(!Sp(sn,ne.current)){const ft=Jr(xe,ne.current,!0);ce(ft)}if(!Sp(Qt,Z.current)){const ft=Jr(Se,Z.current);ke(ft)}N.setState({userSelectionRect:ot,userSelectionActive:!0,nodesSelectionActive:!1})}function L(){if(!a||!K.current)return;const[G,ie]=cc(C.current,K.current,D);F({x:G,y:ie}).then(he=>{if(!V.current||!he){E.current=requestAnimationFrame(L);return}const{x:we,y:xe}=C.current;P(we,xe),E.current=requestAnimationFrame(L)})}const ee=()=>{cancelAnimationFrame(E.current),E.current=0,b.current=!1};R.useEffect(()=>()=>ee(),[]);const te=G=>{const{userSelectionRect:ie,transform:he,resetSelectedElements:we}=N.getState();if(!K.current||!ie)return;const{x:xe,y:Se}=Wt(G.nativeEvent,K.current);C.current={x:xe,y:Se};const se=ao({x:ie.startX,y:ie.startY},he);if(!V.current){const ce=r?0:u;if(Math.hypot(xe-se.x,Se-se.y)<=ce)return;we(),d==null||d(G)}V.current=!0,b.current||(L(),b.current=!0),P(xe,Se)},ue=G=>{var ie,he;if(!W){G.target===Y.current&&N.getState().connection.inProgress&&(J.current=!0);return}G.button===0&&((he=(ie=G.target)==null?void 0:ie.releasePointerCapture)==null||he.call(ie,G.pointerId),!I&&G.target===Y.current&&N.getState().userSelectionRect&&($==null||$(G)),N.setState({userSelectionActive:!1,userSelectionRect:null}),V.current&&(h==null||h(G),N.setState({nodesSelectionActive:ne.current.size>0})),ee())},de=G=>{var ie,he;(he=(ie=G.target)==null?void 0:ie.releasePointerCapture)==null||he.call(ie,G.pointerId),ee()},fe=l===!0||Array.isArray(l)&&l.includes(0);return w.jsxs("div",{className:Xe(["react-flow__pane",{draggable:fe,dragging:M,selection:t}]),onClick:W?void 0:Au($,Y),onContextMenu:Au(U,Y),onWheel:Au(z,Y),onPointerEnter:W?void 0:g,onPointerMove:W?te:x,onPointerUp:ue,onPointerCancel:W?de:void 0,onPointerDownCapture:W?H:void 0,onClickCapture:W?A:void 0,onPointerLeave:S,ref:Y,style:Nl,children:[j,w.jsx(C_,{})]})}function ec({id:t,store:r,unselect:i=!1,nodeRef:l}){const{addSelectedNodes:a,unselectNodesAndEdges:u,multiSelectionActive:c,nodeLookup:d,onError:h}=r.getState(),m=d.get(t);if(!m){h==null||h("012",Yt.error012(t));return}r.setState({nodesSelectionActive:!1}),m.selected?(i||m.selected&&c)&&(u({nodes:[m],edges:[]}),requestAnimationFrame(()=>{var v;return(v=l==null?void 0:l.current)==null?void 0:v.blur()})):a([t])}function Tg({nodeRef:t,disabled:r=!1,noDragClassName:i,handleSelector:l,nodeId:a,isSelectable:u,nodeClickDistance:c}){const d=$e(),[h,m]=R.useState(!1),v=R.useRef();return R.useEffect(()=>{if(!r)return v.current=p1({getStoreItems:()=>d.getState(),onNodeMouseDown:y=>{ec({id:y,store:d,nodeRef:t})},onDragStart:()=>{m(!0)},onDragStop:()=>{m(!1)}}),()=>{var y;(y=v.current)==null||y.destroy(),v.current=void 0}},[r,d,t]),R.useEffect(()=>{r||!t.current||!v.current||v.current.update({noDragClassName:i,handleSelector:l,domNode:t.current,isSelectable:u,nodeId:a,nodeClickDistance:c})},[i,l,r,u,t,a,c]),h}const P_=t=>r=>r.selected&&(r.draggable||t&&typeof r.draggable>"u");function Rg(){const t=$e();return R.useCallback(i=>{const{nodeExtent:l,snapToGrid:a,snapGrid:u,nodesDraggable:c,onError:d,updateNodePositions:h,nodeLookup:m,nodeOrigin:v}=t.getState(),y=new Map,g=P_(c),x=a?u[0]:5,S=a?u[1]:5,j=i.direction.x*x*i.factor,E=i.direction.y*S*i.factor;for(const[,N]of m){if(!g(N))continue;let I={x:N.internals.positionAbsolute.x+j,y:N.internals.positionAbsolute.y+E};a&&(I=Si(I,u));const{position:k,positionAbsolute:M}=Gh({nodeId:N.id,nextPosition:I,nodeLookup:m,nodeExtent:l,nodeOrigin:v,onError:d});N.position=k,N.internals.positionAbsolute=M,y.set(N.id,N)}h(y)},[])}const vc=R.createContext(null),I_=vc.Provider;vc.Consumer;const zg=()=>R.useContext(vc),T_=t=>({connectOnClick:t.connectOnClick,noPanClassName:t.noPanClassName,rfId:t.rfId}),Lg=R.createContext(null);function R_({children:t}){const r=Ie(T_,Be);return w.jsx(Lg.Provider,{value:r,children:t})}function z_(){const t=R.useContext(Lg);if(!t)throw new Error("useHandleConfig must be used within a HandleConfigProvider");return t}const L_={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},A_=(t,r,i)=>l=>{const{connectionClickStartHandle:a,connectionMode:u,connection:c}=l,{fromHandle:d,toHandle:h,isValid:m}=c;if(!d&&!a)return L_;const v=(h==null?void 0:h.nodeId)===t&&(h==null?void 0:h.id)===r&&(h==null?void 0:h.type)===i;return{connectingFrom:(d==null?void 0:d.nodeId)===t&&(d==null?void 0:d.id)===r&&(d==null?void 0:d.type)===i,connectingTo:v,clickConnecting:(a==null?void 0:a.nodeId)===t&&(a==null?void 0:a.id)===r&&(a==null?void 0:a.type)===i,isPossibleEndHandle:u===so.Strict?(d==null?void 0:d.type)!==i:t!==(d==null?void 0:d.nodeId)||r!==(d==null?void 0:d.id),connectionInProcess:!!d,clickConnectionInProcess:!!a,valid:v&&m}};function D_({type:t="source",position:r=_e.Top,isValidConnection:i,isConnectable:l=!0,isConnectableStart:a=!0,isConnectableEnd:u=!0,id:c,onConnect:d,children:h,className:m,onMouseDown:v,onTouchStart:y,...g},x){var b,$;const S=c||null,j=t==="target",E=$e(),N=zg(),{connectOnClick:I,noPanClassName:k,rfId:M}=z_(),{connectingFrom:F,connectingTo:D,clickConnecting:W,isPossibleEndHandle:Y,connectionInProcess:K,clickConnectionInProcess:ne,valid:Z}=Ie(A_(N,S,t),Be);N||($=(b=E.getState()).onError)==null||$.call(b,"010",Yt.error010());const J=U=>{const{defaultEdgeOptions:z,onConnect:A,hasDefaultEdges:H}=E.getState(),P={...z,...U};if(H){const{edges:L,setEdges:ee,onError:te}=E.getState();ee(h_(P,L,{onError:te}))}A==null||A(P),d==null||d(P)},V=U=>{if(!N)return;const z=sg(U.nativeEvent);if(a&&(z&&U.button===0||!z)){const A=E.getState();Ju.onPointerDown(U.nativeEvent,{handleDomNode:U.currentTarget,autoPanOnConnect:A.autoPanOnConnect,connectionMode:A.connectionMode,connectionRadius:A.connectionRadius,domNode:A.domNode,nodeLookup:A.nodeLookup,lib:A.lib,isTarget:j,handleId:S,nodeId:N,flowId:A.rfId,panBy:A.panBy,cancelConnection:A.cancelConnection,onConnectStart:A.onConnectStart,onConnectEnd:(...H)=>{var P,L;return(L=(P=E.getState()).onConnectEnd)==null?void 0:L.call(P,...H)},updateConnection:A.updateConnection,onConnect:J,isValidConnection:i||((...H)=>{var P,L;return((L=(P=E.getState()).isValidConnection)==null?void 0:L.call(P,...H))??!0}),getTransform:()=>E.getState().transform,getFromHandle:()=>E.getState().connection.fromHandle,autoPanSpeed:A.autoPanSpeed,dragThreshold:A.connectionDragThreshold})}z?v==null||v(U):y==null||y(U)},C=U=>{const{onClickConnectStart:z,onClickConnectEnd:A,connectionClickStartHandle:H,connectionMode:P,isValidConnection:L,lib:ee,rfId:te,nodeLookup:ue,connection:de}=E.getState();if(!N||!H&&!a)return;if(!H){z==null||z(U.nativeEvent,{nodeId:N,handleId:S,handleType:t}),E.setState({connectionClickStartHandle:{nodeId:N,type:t,id:S}});return}const fe=og(U.target),G=i||L,{connection:ie,isValid:he}=Ju.isValid(U.nativeEvent,{handle:{nodeId:N,id:S,type:t},connectionMode:P,fromNodeId:H.nodeId,fromHandleId:H.id||null,fromType:H.type,isValidConnection:G,flowId:te,doc:fe,lib:ee,nodeLookup:ue});he&&ie&&J(ie);const we=structuredClone(de);delete we.inProgress,we.toPosition=we.toHandle?we.toHandle.position:null,A==null||A(U,we),E.setState({connectionClickStartHandle:null})};return w.jsx("div",{"data-handleid":S,"data-nodeid":N,"data-handlepos":r,"data-id":`${M}-${N}-${S}-${t}`,className:Xe(["react-flow__handle",`react-flow__handle-${r}`,"nodrag",k,m,{source:!j,target:j,connectable:l,connectablestart:a,connectableend:u,clickconnecting:W,connectingfrom:F,connectingto:D,valid:Z,connectionindicator:l&&(!K||Y)&&(K||ne?u:a)}]),onMouseDown:V,onTouchStart:V,onClick:I?C:void 0,ref:x,...g,children:h})}const co=R.memo(jg(D_));function $_({data:t,isConnectable:r,sourcePosition:i=_e.Bottom}){return w.jsxs(w.Fragment,{children:[t==null?void 0:t.label,w.jsx(co,{type:"source",position:i,isConnectable:r})]})}function b_({data:t,isConnectable:r,targetPosition:i=_e.Top,sourcePosition:l=_e.Bottom}){return w.jsxs(w.Fragment,{children:[w.jsx(co,{type:"target",position:i,isConnectable:r}),t==null?void 0:t.label,w.jsx(co,{type:"source",position:l,isConnectable:r})]})}function O_(){return null}function F_({data:t,isConnectable:r,targetPosition:i=_e.Top}){return w.jsxs(w.Fragment,{children:[w.jsx(co,{type:"target",position:i,isConnectable:r}),t==null?void 0:t.label]})}const hl={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},Jp={input:$_,default:b_,output:F_,group:O_};function H_(t){var r,i,l,a;return t.internals.handleBounds===void 0?{width:t.width??t.initialWidth??((r=t.style)==null?void 0:r.width),height:t.height??t.initialHeight??((i=t.style)==null?void 0:i.height)}:{width:t.width??((l=t.style)==null?void 0:l.width),height:t.height??((a=t.style)==null?void 0:a.height)}}const V_=t=>{const{width:r,height:i,x:l,y:a}=_i(t.nodeLookup,{filter:u=>!!u.selected});return{width:Ut(r)?r:null,height:Ut(i)?i:null,userSelectionActive:t.userSelectionActive,transformString:`translate(${t.transform[0]}px,${t.transform[1]}px) scale(${t.transform[2]}) translate(${l}px,${a}px)`}};function B_({onSelectionContextMenu:t,noPanClassName:r,disableKeyboardA11y:i}){const l=$e(),{width:a,height:u,transformString:c,userSelectionActive:d}=Ie(V_,Be),h=Rg(),m=R.useRef(null);R.useEffect(()=>{var x;i||(x=m.current)==null||x.focus({preventScroll:!0})},[i]);const v=!d&&a!==null&&u!==null;if(Tg({nodeRef:m,disabled:!v}),!v)return null;const y=t?x=>{const S=l.getState().nodes.filter(j=>j.selected);t(x,S)}:void 0,g=x=>{Object.prototype.hasOwnProperty.call(hl,x.key)&&(x.preventDefault(),h({direction:hl[x.key],factor:x.shiftKey?4:1}))};return w.jsx("div",{className:Xe(["react-flow__nodesselection","react-flow__container",r]),style:{transform:c},children:w.jsx("div",{ref:m,className:"react-flow__nodesselection-rect",onContextMenu:y,tabIndex:i?void 0:-1,onKeyDown:i?void 0:g,style:{width:a,height:u}})})}const eh=typeof window<"u"?window:void 0,U_=t=>({nodesSelectionActive:t.nodesSelectionActive,userSelectionActive:t.userSelectionActive});function Ag({children:t,onPaneClick:r,onPaneMouseEnter:i,onPaneMouseMove:l,onPaneMouseLeave:a,onPaneContextMenu:u,onPaneScroll:c,paneClickDistance:d,deleteKeyCode:h,selectionKeyCode:m,selectionOnDrag:v,selectionMode:y,onSelectionStart:g,onSelectionEnd:x,multiSelectionKeyCode:S,panActivationKeyCode:j,zoomActivationKeyCode:E,elementsSelectable:N,zoomOnScroll:I,zoomOnPinch:k,panOnScroll:M,panOnScrollSpeed:F,panOnScrollMode:D,zoomOnDoubleClick:W,panOnDrag:Y,autoPanOnSelection:K,defaultViewport:ne,translateExtent:Z,minZoom:J,maxZoom:V,preventScrolling:C,onSelectionContextMenu:b,noWheelClassName:$,noPanClassName:U,disableKeyboardA11y:z,onViewportChange:A,isControlledViewport:H}){const{nodesSelectionActive:P,userSelectionActive:L}=Ie(U_,Be),ee=mi(m,{target:eh}),te=mi(j,{target:eh}),ue=te||Y,de=te||M,fe=v&&ue!==!0,G=ee||L||fe;return __({deleteKeyCode:h,multiSelectionKeyCode:S}),w.jsx(E_,{onPaneContextMenu:u,elementsSelectable:N,zoomOnScroll:I,zoomOnPinch:k,panOnScroll:de,panActivationKeyPressed:te,panOnScrollSpeed:F,panOnScrollMode:D,zoomOnDoubleClick:W,panOnDrag:!ee&&ue,defaultViewport:ne,translateExtent:Z,minZoom:J,maxZoom:V,zoomActivationKeyCode:E,preventScrolling:C,noWheelClassName:$,noPanClassName:U,onViewportChange:A,isControlledViewport:H,paneClickDistance:d,selectionOnDrag:fe,children:w.jsxs(j_,{onSelectionStart:g,onSelectionEnd:x,onPaneClick:r,onPaneMouseEnter:i,onPaneMouseMove:l,onPaneMouseLeave:a,onPaneContextMenu:u,onPaneScroll:c,panOnDrag:ue,autoPanOnSelection:K,isSelecting:!!G,selectionMode:y,selectionKeyPressed:ee,paneClickDistance:d,selectionOnDrag:fe,children:[t,P&&w.jsx(B_,{onSelectionContextMenu:b,noPanClassName:U,disableKeyboardA11y:z})]})})}Ag.displayName="FlowRenderer";const W_=R.memo(Ag),Y_=t=>r=>t?uc(r.nodeLookup,{x:0,y:0,width:r.width,height:r.height},r.transform,!0).map(i=>i.id):Array.from(r.nodeLookup.keys());function X_(t){return Ie(R.useCallback(Y_(t),[t]),Be)}const K_=t=>t.updateNodeInternals;function Q_(){const t=Ie(K_),[r]=R.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(i=>{const l=new Map;i.forEach(a=>{const u=a.target.getAttribute("data-id");l.set(u,{id:u,nodeElement:a.target,force:!0})}),t(l)}));return R.useEffect(()=>()=>{r==null||r.disconnect()},[r]),r}function G_({node:t,nodeType:r,hasDimensions:i,resizeObserver:l}){const a=$e(),u=R.useRef(null),c=R.useRef(null),d=R.useRef(t.sourcePosition),h=R.useRef(t.targetPosition),m=R.useRef(r),v=i&&!!t.internals.handleBounds;return R.useEffect(()=>{u.current&&!t.hidden&&(!v||c.current!==u.current)&&(c.current&&(l==null||l.unobserve(c.current)),l==null||l.observe(u.current),c.current=u.current)},[v,t.hidden]),R.useEffect(()=>()=>{c.current&&(l==null||l.unobserve(c.current),c.current=null)},[]),R.useEffect(()=>{if(u.current){const y=m.current!==r,g=d.current!==t.sourcePosition,x=h.current!==t.targetPosition;(y||g||x)&&(m.current=r,d.current=t.sourcePosition,h.current=t.targetPosition,a.getState().updateNodeInternals(new Map([[t.id,{id:t.id,nodeElement:u.current,force:!0}]])))}},[t.id,r,t.sourcePosition,t.targetPosition]),u}function q_({id:t,onClick:r,onMouseEnter:i,onMouseMove:l,onMouseLeave:a,onContextMenu:u,onDoubleClick:c,nodesDraggable:d,elementsSelectable:h,nodesConnectable:m,nodesFocusable:v,resizeObserver:y,noDragClassName:g,noPanClassName:x,disableKeyboardA11y:S,rfId:j,nodeTypes:E,nodeClickDistance:N,onError:I}){const{node:k,internals:M,isParent:F}=Ie(G=>{const ie=G.nodeLookup.get(t),he=G.parentLookup.has(t);return{node:ie,internals:ie.internals,isParent:he}},Be);let D=k.type||"default",W=(E==null?void 0:E[D])||Jp[D];W===void 0&&(I==null||I("003",Yt.error003(D)),D="default",W=(E==null?void 0:E.default)||Jp.default);const Y=!!(k.draggable||d&&typeof k.draggable>"u"),K=!!(k.selectable||h&&typeof k.selectable>"u"),ne=!!(k.connectable||m&&typeof k.connectable>"u"),Z=!!(k.focusable||v&&typeof k.focusable>"u"),J=$e(),V=tg(k),C=G_({node:k,nodeType:D,hasDimensions:V,resizeObserver:y}),b=Tg({nodeRef:C,disabled:k.hidden||!Y,noDragClassName:g,handleSelector:k.dragHandle,nodeId:t,isSelectable:K,nodeClickDistance:N}),$=Rg();if(k.hidden)return null;const U=Kt(k),z=H_(k),A=K||Y||r||i||l||a,H=i?G=>i(G,{...M.userNode}):void 0,P=l?G=>l(G,{...M.userNode}):void 0,L=a?G=>a(G,{...M.userNode}):void 0,ee=u?G=>u(G,{...M.userNode}):void 0,te=c?G=>c(G,{...M.userNode}):void 0,ue=G=>{const{selectNodesOnDrag:ie,nodeDragThreshold:he}=J.getState();K&&(!ie||!Y||he>0)&&ec({id:t,store:J,nodeRef:C}),r&&r(G,{...M.userNode})},de=G=>{if(!(ig(G.nativeEvent)||S)){if(Yh.includes(G.key)&&K){const ie=G.key==="Escape";ec({id:t,store:J,unselect:ie,nodeRef:C})}else if(Y&&k.selected&&Object.prototype.hasOwnProperty.call(hl,G.key)){G.preventDefault();const{ariaLabelConfig:ie}=J.getState();J.setState({ariaLiveMessage:ie["node.a11yDescription.ariaLiveMessage"]({direction:G.key.replace("Arrow","").toLowerCase(),x:~~M.positionAbsolute.x,y:~~M.positionAbsolute.y})}),$({direction:hl[G.key],factor:G.shiftKey?4:1})}}},fe=()=>{var se;if(S||!((se=C.current)!=null&&se.matches(":focus-visible")))return;const{transform:G,width:ie,height:he,autoPanOnNodeFocus:we,setCenter:xe}=J.getState();if(!we)return;uc(new Map([[t,k]]),{x:0,y:0,width:ie,height:he},G,!0).length>0||xe(k.position.x+U.width/2,k.position.y+U.height/2,{zoom:G[2]})};return w.jsx("div",{className:Xe(["react-flow__node",`react-flow__node-${D}`,{[x]:Y},k.className,{selected:k.selected,selectable:K,parent:F,draggable:Y,dragging:b}]),ref:C,style:{zIndex:M.z,transform:`translate(${M.positionAbsolute.x}px,${M.positionAbsolute.y}px)`,pointerEvents:A?"all":"none",visibility:V?"visible":"hidden",...k.style,...z},"data-id":t,"data-testid":`rf__node-${t}`,onMouseEnter:H,onMouseMove:P,onMouseLeave:L,onContextMenu:ee,onClick:ue,onDoubleClick:te,onKeyDown:Z?de:void 0,tabIndex:Z?0:void 0,onFocus:Z?fe:void 0,role:k.ariaRole??(Z?"group":void 0),"aria-roledescription":"node","aria-describedby":S?void 0:`${Eg}-${j}`,"aria-label":k.ariaLabel,...k.domAttributes,children:w.jsx(I_,{value:t,children:w.jsx(W,{id:t,data:k.data,type:D,positionAbsoluteX:M.positionAbsolute.x,positionAbsoluteY:M.positionAbsolute.y,selected:k.selected??!1,selectable:K,draggable:Y,deletable:k.deletable??!0,isConnectable:ne,sourcePosition:k.sourcePosition,targetPosition:k.targetPosition,dragging:b,dragHandle:k.dragHandle,zIndex:M.z,parentId:k.parentId,...U})})})}var Z_=R.memo(q_);const J_=t=>({nodesConnectable:t.nodesConnectable,nodesFocusable:t.nodesFocusable,elementsSelectable:t.elementsSelectable,onError:t.onError});function Dg(t){const{nodesConnectable:r,nodesFocusable:i,elementsSelectable:l,onError:a}=Ie(J_,Be),u=X_(t.onlyRenderVisibleElements),c=Q_();return w.jsx("div",{className:"react-flow__nodes",style:Nl,children:u.map(d=>w.jsx(Z_,{id:d,nodeTypes:t.nodeTypes,nodeExtent:t.nodeExtent,onClick:t.onNodeClick,onMouseEnter:t.onNodeMouseEnter,onMouseMove:t.onNodeMouseMove,onMouseLeave:t.onNodeMouseLeave,onContextMenu:t.onNodeContextMenu,onDoubleClick:t.onNodeDoubleClick,noDragClassName:t.noDragClassName,noPanClassName:t.noPanClassName,rfId:t.rfId,disableKeyboardA11y:t.disableKeyboardA11y,resizeObserver:c,nodesDraggable:t.nodesDraggable??!0,nodesConnectable:r,nodesFocusable:i,elementsSelectable:l,nodeClickDistance:t.nodeClickDistance,onError:a},d))})}Dg.displayName="NodeRenderer";const eS=R.memo(Dg);function tS(t){return Ie(R.useCallback(i=>{if(!t)return i.edges.map(a=>a.id);const l=[];if(i.width&&i.height)for(const a of i.edges){const u=i.nodeLookup.get(a.source),c=i.nodeLookup.get(a.target);u&&c&&Kw({sourceNode:u,targetNode:c,width:i.width,height:i.height,transform:i.transform})&&l.push(a.id)}return l},[t]),Be)}const nS=({color:t="none",strokeWidth:r=1})=>{const i={strokeWidth:r,...t&&{stroke:t}};return w.jsx("polyline",{className:"arrow",style:i,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},rS=({color:t="none",strokeWidth:r=1})=>{const i={strokeWidth:r,...t&&{stroke:t,fill:t}};return w.jsx("polyline",{className:"arrowclosed",style:i,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},th={[fl.Arrow]:nS,[fl.ArrowClosed]:rS};function oS(t){const r=$e();return R.useMemo(()=>{var a,u;return Object.prototype.hasOwnProperty.call(th,t)?th[t]:((u=(a=r.getState()).onError)==null||u.call(a,"009",Yt.error009(t)),null)},[t])}const iS=({id:t,type:r,color:i,width:l=12.5,height:a=12.5,markerUnits:u="strokeWidth",strokeWidth:c,orient:d="auto-start-reverse"})=>{const h=oS(r);return h?w.jsx("marker",{className:"react-flow__arrowhead",id:t,markerWidth:`${l}`,markerHeight:`${a}`,viewBox:"-10 -10 20 20",markerUnits:u,orient:d,refX:"0",refY:"0",children:w.jsx(h,{color:i,strokeWidth:c})}):null},$g=({defaultColor:t,rfId:r})=>{const i=Ie(u=>u.edges),l=Ie(u=>u.defaultEdgeOptions),a=R.useMemo(()=>n1(i,{id:r,defaultColor:t,defaultMarkerStart:l==null?void 0:l.markerStart,defaultMarkerEnd:l==null?void 0:l.markerEnd}),[i,l,r,t]);return a.length?w.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:w.jsx("defs",{children:a.map(u=>w.jsx(iS,{id:u.id,type:u.type,color:u.color,width:u.width,height:u.height,markerUnits:u.markerUnits,strokeWidth:u.strokeWidth,orient:u.orient},u.id))})}):null};$g.displayName="MarkerDefinitions";var sS=R.memo($g);function bg({x:t,y:r,label:i,labelStyle:l,labelShowBg:a=!0,labelBgStyle:u,labelBgPadding:c=[2,4],labelBgBorderRadius:d=2,children:h,className:m,...v}){const[y,g]=R.useState({x:1,y:0,width:0,height:0}),x=Xe(["react-flow__edge-textwrapper",m]),S=R.useRef(null);return R.useEffect(()=>{if(S.current){const j=S.current.getBBox();g({x:j.x,y:j.y,width:j.width,height:j.height})}},[i]),i?w.jsxs("g",{transform:`translate(${t-y.width/2} ${r-y.height/2})`,className:x,visibility:y.width?"visible":"hidden",...v,children:[a&&w.jsx("rect",{width:y.width+2*c[0],x:-c[0],y:-c[1],height:y.height+2*c[1],className:"react-flow__edge-textbg",style:u,rx:d,ry:d}),w.jsx("text",{className:"react-flow__edge-text",y:y.height/2,dy:"0.3em",ref:S,style:l,children:i}),h]}):null}bg.displayName="EdgeText";const lS=R.memo(bg);function Cl({path:t,labelX:r,labelY:i,label:l,labelStyle:a,labelShowBg:u,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:h,interactionWidth:m=20,...v}){return w.jsxs(w.Fragment,{children:[w.jsx("path",{...v,d:t,fill:"none",className:Xe(["react-flow__edge-path",v.className])}),m?w.jsx("path",{d:t,fill:"none",strokeOpacity:0,strokeWidth:m,className:"react-flow__edge-interaction"}):null,l&&Ut(r)&&Ut(i)?w.jsx(lS,{x:r,y:i,label:l,labelStyle:a,labelShowBg:u,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:h}):null]})}function nh({pos:t,x1:r,y1:i,x2:l,y2:a}){return t===_e.Left||t===_e.Right?[.5*(r+l),i]:[r,.5*(i+a)]}function Og({sourceX:t,sourceY:r,sourcePosition:i=_e.Bottom,targetX:l,targetY:a,targetPosition:u=_e.Top}){const[c,d]=nh({pos:i,x1:t,y1:r,x2:l,y2:a}),[h,m]=nh({pos:u,x1:l,y1:a,x2:t,y2:r}),[v,y,g,x]=lg({sourceX:t,sourceY:r,targetX:l,targetY:a,sourceControlX:c,sourceControlY:d,targetControlX:h,targetControlY:m});return[`M${t},${r} C${c},${d} ${h},${m} ${l},${a}`,v,y,g,x]}function Fg(t){return R.memo(({id:r,sourceX:i,sourceY:l,targetX:a,targetY:u,sourcePosition:c,targetPosition:d,label:h,labelStyle:m,labelShowBg:v,labelBgStyle:y,labelBgPadding:g,labelBgBorderRadius:x,style:S,markerEnd:j,markerStart:E,interactionWidth:N})=>{const[I,k,M]=Og({sourceX:i,sourceY:l,sourcePosition:c,targetX:a,targetY:u,targetPosition:d}),F=t.isInternal?void 0:r;return w.jsx(Cl,{id:F,path:I,labelX:k,labelY:M,label:h,labelStyle:m,labelShowBg:v,labelBgStyle:y,labelBgPadding:g,labelBgBorderRadius:x,style:S,markerEnd:j,markerStart:E,interactionWidth:N})})}const aS=Fg({isInternal:!1}),Hg=Fg({isInternal:!0});aS.displayName="SimpleBezierEdge";Hg.displayName="SimpleBezierEdgeInternal";function Vg(t){return R.memo(({id:r,sourceX:i,sourceY:l,targetX:a,targetY:u,label:c,labelStyle:d,labelShowBg:h,labelBgStyle:m,labelBgPadding:v,labelBgBorderRadius:y,style:g,sourcePosition:x=_e.Bottom,targetPosition:S=_e.Top,markerEnd:j,markerStart:E,pathOptions:N,interactionWidth:I})=>{const[k,M,F]=Gu({sourceX:i,sourceY:l,sourcePosition:x,targetX:a,targetY:u,targetPosition:S,borderRadius:N==null?void 0:N.borderRadius,offset:N==null?void 0:N.offset,stepPosition:N==null?void 0:N.stepPosition}),D=t.isInternal?void 0:r;return w.jsx(Cl,{id:D,path:k,labelX:M,labelY:F,label:c,labelStyle:d,labelShowBg:h,labelBgStyle:m,labelBgPadding:v,labelBgBorderRadius:y,style:g,markerEnd:j,markerStart:E,interactionWidth:I})})}const Bg=Vg({isInternal:!1}),Ug=Vg({isInternal:!0});Bg.displayName="SmoothStepEdge";Ug.displayName="SmoothStepEdgeInternal";function Wg(t){return R.memo(({id:r,...i})=>{var a;const l=t.isInternal?void 0:r;return w.jsx(Bg,{...i,id:l,pathOptions:R.useMemo(()=>{var u;return{borderRadius:0,offset:(u=i.pathOptions)==null?void 0:u.offset}},[(a=i.pathOptions)==null?void 0:a.offset])})})}const uS=Wg({isInternal:!1}),Yg=Wg({isInternal:!0});uS.displayName="StepEdge";Yg.displayName="StepEdgeInternal";function Xg(t){return R.memo(({id:r,sourceX:i,sourceY:l,targetX:a,targetY:u,label:c,labelStyle:d,labelShowBg:h,labelBgStyle:m,labelBgPadding:v,labelBgBorderRadius:y,style:g,markerEnd:x,markerStart:S,interactionWidth:j})=>{const[E,N,I]=cg({sourceX:i,sourceY:l,targetX:a,targetY:u}),k=t.isInternal?void 0:r;return w.jsx(Cl,{id:k,path:E,labelX:N,labelY:I,label:c,labelStyle:d,labelShowBg:h,labelBgStyle:m,labelBgPadding:v,labelBgBorderRadius:y,style:g,markerEnd:x,markerStart:S,interactionWidth:j})})}const cS=Xg({isInternal:!1}),Kg=Xg({isInternal:!0});cS.displayName="StraightEdge";Kg.displayName="StraightEdgeInternal";function Qg(t){return R.memo(({id:r,sourceX:i,sourceY:l,targetX:a,targetY:u,sourcePosition:c=_e.Bottom,targetPosition:d=_e.Top,label:h,labelStyle:m,labelShowBg:v,labelBgStyle:y,labelBgPadding:g,labelBgBorderRadius:x,style:S,markerEnd:j,markerStart:E,pathOptions:N,interactionWidth:I})=>{const[k,M,F]=ag({sourceX:i,sourceY:l,sourcePosition:c,targetX:a,targetY:u,targetPosition:d,curvature:N==null?void 0:N.curvature}),D=t.isInternal?void 0:r;return w.jsx(Cl,{id:D,path:k,labelX:M,labelY:F,label:h,labelStyle:m,labelShowBg:v,labelBgStyle:y,labelBgPadding:g,labelBgBorderRadius:x,style:S,markerEnd:j,markerStart:E,interactionWidth:I})})}const fS=Qg({isInternal:!1}),Gg=Qg({isInternal:!0});fS.displayName="BezierEdge";Gg.displayName="BezierEdgeInternal";const rh={default:Gg,straight:Kg,step:Yg,smoothstep:Ug,simplebezier:Hg},oh={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},dS=(t,r,i)=>i===_e.Left?t-r:i===_e.Right?t+r:t,pS=(t,r,i)=>i===_e.Top?t-r:i===_e.Bottom?t+r:t,ih="react-flow__edgeupdater";function sh({position:t,centerX:r,centerY:i,radius:l=10,onMouseDown:a,onMouseEnter:u,onMouseOut:c,type:d}){return w.jsx("circle",{onMouseDown:a,onMouseEnter:u,onMouseOut:c,className:Xe([ih,`${ih}-${d}`]),cx:dS(r,l,t),cy:pS(i,l,t),r:l,stroke:"transparent",fill:"transparent"})}function hS({isReconnectable:t,reconnectRadius:r,edge:i,sourceX:l,sourceY:a,targetX:u,targetY:c,sourcePosition:d,targetPosition:h,onReconnect:m,onReconnectStart:v,onReconnectEnd:y,setReconnecting:g,setUpdateHover:x}){const S=$e(),j=(M,F)=>{if(M.button!==0)return;const{autoPanOnConnect:D,domNode:W,connectionMode:Y,connectionRadius:K,lib:ne,onConnectStart:Z,cancelConnection:J,nodeLookup:V,rfId:C,panBy:b,updateConnection:$}=S.getState(),U=F.type==="target",z=(P,L)=>{g(!1),y==null||y(P,i,F.type,L)},A=P=>m==null?void 0:m(i,P),H=(P,L)=>{g(!0),v==null||v(M,i,F.type),Z==null||Z(P,L)};Ju.onPointerDown(M.nativeEvent,{autoPanOnConnect:D,connectionMode:Y,connectionRadius:K,domNode:W,handleId:F.id,nodeId:F.nodeId,nodeLookup:V,isTarget:U,edgeUpdaterType:F.type,lib:ne,flowId:C,cancelConnection:J,panBy:b,isValidConnection:(...P)=>{var L,ee;return((ee=(L=S.getState()).isValidConnection)==null?void 0:ee.call(L,...P))??!0},onConnect:A,onConnectStart:H,onConnectEnd:(...P)=>{var L,ee;return(ee=(L=S.getState()).onConnectEnd)==null?void 0:ee.call(L,...P)},onReconnectEnd:z,updateConnection:$,getTransform:()=>S.getState().transform,getFromHandle:()=>S.getState().connection.fromHandle,dragThreshold:S.getState().connectionDragThreshold,handleDomNode:M.currentTarget})},E=M=>j(M,{nodeId:i.target,id:i.targetHandle??null,type:"target"}),N=M=>j(M,{nodeId:i.source,id:i.sourceHandle??null,type:"source"}),I=()=>x(!0),k=()=>x(!1);return w.jsxs(w.Fragment,{children:[(t===!0||t==="source")&&w.jsx(sh,{position:d,centerX:l,centerY:a,radius:r,onMouseDown:E,onMouseEnter:I,onMouseOut:k,type:"source"}),(t===!0||t==="target")&&w.jsx(sh,{position:h,centerX:u,centerY:c,radius:r,onMouseDown:N,onMouseEnter:I,onMouseOut:k,type:"target"})]})}function gS({id:t,edgesFocusable:r,edgesReconnectable:i,elementsSelectable:l,onClick:a,onDoubleClick:u,onContextMenu:c,onMouseEnter:d,onMouseMove:h,onMouseLeave:m,reconnectRadius:v,onReconnect:y,onReconnectStart:g,onReconnectEnd:x,rfId:S,edgeTypes:j,noPanClassName:E,onError:N,disableKeyboardA11y:I}){let k=Ie(xe=>xe.edgeLookup.get(t));const M=Ie(xe=>xe.defaultEdgeOptions);k=M?{...M,...k}:k;let F=k.type||"default",D=(j==null?void 0:j[F])||rh[F];D===void 0&&(N==null||N("011",Yt.error011(F)),F="default",D=(j==null?void 0:j.default)||rh.default);const W=!!(k.focusable||r&&typeof k.focusable>"u"),Y=typeof y<"u"&&(k.reconnectable||i&&typeof k.reconnectable>"u"),K=!!(k.selectable||l&&typeof k.selectable>"u"),ne=R.useRef(null),[Z,J]=R.useState(!1),[V,C]=R.useState(!1),b=$e(),{zIndex:$=k.zIndex,sourceX:U,sourceY:z,targetX:A,targetY:H,sourcePosition:P,targetPosition:L}=Ie(R.useCallback(xe=>{const Se=xe.nodeLookup.get(k.source),se=xe.nodeLookup.get(k.target);if(!Se||!se)return oh;const ce=t1({id:t,sourceNode:Se,targetNode:se,sourceHandle:k.sourceHandle||null,targetHandle:k.targetHandle||null,connectionMode:xe.connectionMode,onError:N}),ke=Xw({selected:k.selected,zIndex:k.zIndex,sourceNode:Se,targetNode:se,elevateOnSelect:xe.elevateEdgesOnSelect,zIndexMode:xe.zIndexMode});return{...ce||oh,zIndex:ke}},[k.source,k.target,k.sourceHandle,k.targetHandle,k.selected,k.zIndex,N]),Be),ee=R.useMemo(()=>k.markerStart?`url('#${qu(k.markerStart,S)}')`:void 0,[k.markerStart,S]),te=R.useMemo(()=>k.markerEnd?`url('#${qu(k.markerEnd,S)}')`:void 0,[k.markerEnd,S]);if(k.hidden||U===null||z===null||A===null||H===null)return null;const ue=xe=>{var ke;const{addSelectedEdges:Se,unselectNodesAndEdges:se,multiSelectionActive:ce}=b.getState();K&&(b.setState({nodesSelectionActive:!1}),k.selected&&ce?(se({nodes:[],edges:[k]}),(ke=ne.current)==null||ke.blur()):Se([t])),a&&a(xe,k)},de=u?xe=>{u(xe,{...k})}:void 0,fe=c?xe=>{c(xe,{...k})}:void 0,G=d?xe=>{d(xe,{...k})}:void 0,ie=h?xe=>{h(xe,{...k})}:void 0,he=m?xe=>{m(xe,{...k})}:void 0,we=xe=>{var Se;if(!I&&Yh.includes(xe.key)&&K){const{unselectNodesAndEdges:se,addSelectedEdges:ce}=b.getState();xe.key==="Escape"?((Se=ne.current)==null||Se.blur(),se({edges:[k]})):ce([t])}};return w.jsx("svg",{style:{zIndex:$},children:w.jsxs("g",{className:Xe(["react-flow__edge",`react-flow__edge-${F}`,k.className,E,{selected:k.selected,animated:k.animated,inactive:!K&&!a,updating:Z,selectable:K}]),onClick:ue,onDoubleClick:de,onContextMenu:fe,onMouseEnter:G,onMouseMove:ie,onMouseLeave:he,onKeyDown:W?we:void 0,tabIndex:W?0:void 0,role:k.ariaRole??(W?"group":"img"),"aria-roledescription":"edge","data-id":t,"data-testid":`rf__edge-${t}`,"aria-label":k.ariaLabel===null?void 0:k.ariaLabel||`Edge from ${k.source} to ${k.target}`,"aria-describedby":W?`${Ng}-${S}`:void 0,ref:ne,...k.domAttributes,children:[!V&&w.jsx(D,{id:t,source:k.source,target:k.target,type:k.type,selected:k.selected,animated:k.animated,selectable:K,deletable:k.deletable??!0,label:k.label,labelStyle:k.labelStyle,labelShowBg:k.labelShowBg,labelBgStyle:k.labelBgStyle,labelBgPadding:k.labelBgPadding,labelBgBorderRadius:k.labelBgBorderRadius,sourceX:U,sourceY:z,targetX:A,targetY:H,sourcePosition:P,targetPosition:L,data:k.data,style:k.style,sourceHandleId:k.sourceHandle,targetHandleId:k.targetHandle,markerStart:ee,markerEnd:te,pathOptions:"pathOptions"in k?k.pathOptions:void 0,interactionWidth:k.interactionWidth}),Y&&w.jsx(hS,{edge:k,isReconnectable:Y,reconnectRadius:v,onReconnect:y,onReconnectStart:g,onReconnectEnd:x,sourceX:U,sourceY:z,targetX:A,targetY:H,sourcePosition:P,targetPosition:L,setUpdateHover:J,setReconnecting:C})]})})}var mS=R.memo(gS);const yS=t=>({edgesFocusable:t.edgesFocusable,edgesReconnectable:t.edgesReconnectable,elementsSelectable:t.elementsSelectable,connectionMode:t.connectionMode,onError:t.onError});function qg({defaultMarkerColor:t,onlyRenderVisibleElements:r,rfId:i,edgeTypes:l,noPanClassName:a,onReconnect:u,onEdgeContextMenu:c,onEdgeMouseEnter:d,onEdgeMouseMove:h,onEdgeMouseLeave:m,onEdgeClick:v,reconnectRadius:y,onEdgeDoubleClick:g,onReconnectStart:x,onReconnectEnd:S,disableKeyboardA11y:j}){const{edgesFocusable:E,edgesReconnectable:N,elementsSelectable:I,onError:k}=Ie(yS,Be),M=tS(r);return w.jsxs("div",{className:"react-flow__edges",children:[w.jsx(sS,{defaultColor:t,rfId:i}),M.map(F=>w.jsx(mS,{id:F,edgesFocusable:E,edgesReconnectable:N,elementsSelectable:I,noPanClassName:a,onReconnect:u,onContextMenu:c,onMouseEnter:d,onMouseMove:h,onMouseLeave:m,onClick:v,reconnectRadius:y,onDoubleClick:g,onReconnectStart:x,onReconnectEnd:S,rfId:i,onError:k,edgeTypes:l,disableKeyboardA11y:j},F))]})}qg.displayName="EdgeRenderer";const vS=R.memo(qg),lh=t=>`translate(${t[0]}px,${t[1]}px) scale(${t[2]})`;function xS({children:t}){const r=$e(),i=R.useRef(null),[l]=R.useState(()=>r.getState().transform);return Pg(()=>{let a=null;const u=()=>{const c=r.getState().transform;a&&c[0]===a[0]&&c[1]===a[1]&&c[2]===a[2]||(a=c,i.current&&(i.current.style.transform=lh(c)))};return u(),r.subscribe(u)},[r]),w.jsx("div",{ref:i,className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:lh(l)},children:t})}function wS(t){const r=El(),i=R.useRef(!1);R.useEffect(()=>{!i.current&&r.viewportInitialized&&t&&(setTimeout(()=>t(r),1),i.current=!0)},[t,r.viewportInitialized])}const _S=t=>{var r;return(r=t.panZoom)==null?void 0:r.syncViewport};function SS(t){const r=Ie(_S),i=$e();return R.useEffect(()=>{t&&(r==null||r(t),i.setState({transform:[t.x,t.y,t.zoom]}))},[t,r]),null}function kS(t){return t.connection.inProgress?{...t.connection,to:ki(t.connection.to,t.transform)}:{...t.connection}}function ES(t){return kS}function NS(t){const r=ES();return Ie(r,Be)}const CS=t=>({nodesConnectable:t.nodesConnectable,isValid:t.connection.isValid,inProgress:t.connection.inProgress,width:t.width,height:t.height});function MS({containerStyle:t,style:r,type:i,component:l}){const{nodesConnectable:a,width:u,height:c,isValid:d,inProgress:h}=Ie(CS,Be);return!(u&&a&&h)?null:w.jsx("svg",{style:t,width:u,height:c,className:"react-flow__connectionline react-flow__container",children:w.jsx("g",{className:Xe(["react-flow__connection",rg(d)]),children:w.jsx(Zg,{style:r,type:i,CustomComponent:l,isValid:d})})})}const Zg=({style:t,type:r=Un.Bezier,CustomComponent:i,isValid:l})=>{const{inProgress:a,from:u,fromNode:c,fromHandle:d,fromPosition:h,to:m,toNode:v,toHandle:y,toPosition:g,pointer:x}=NS();if(!a)return;if(i)return w.jsx(i,{connectionLineType:r,connectionLineStyle:t,fromNode:c,fromHandle:d,fromX:u.x,fromY:u.y,toX:m.x,toY:m.y,fromPosition:h,toPosition:g,connectionStatus:rg(l),toNode:v,toHandle:y,pointer:x});let S="";const j={sourceX:u.x,sourceY:u.y,sourcePosition:h,targetX:m.x,targetY:m.y,targetPosition:g};switch(r){case Un.Bezier:[S]=ag(j);break;case Un.SimpleBezier:[S]=Og(j);break;case Un.Step:[S]=Gu({...j,borderRadius:0});break;case Un.SmoothStep:[S]=Gu(j);break;default:[S]=cg(j)}return w.jsx("path",{d:S,fill:"none",className:"react-flow__connection-path",style:t})};Zg.displayName="ConnectionLine";const jS={};function ah(t=jS){R.useRef(t),$e(),R.useEffect(()=>{},[t])}function PS(){$e(),R.useRef(!1),R.useEffect(()=>{},[])}function Jg({nodeTypes:t,edgeTypes:r,onInit:i,onNodeClick:l,onEdgeClick:a,onNodeDoubleClick:u,onEdgeDoubleClick:c,onNodeMouseEnter:d,onNodeMouseMove:h,onNodeMouseLeave:m,onNodeContextMenu:v,onSelectionContextMenu:y,onSelectionStart:g,onSelectionEnd:x,connectionLineType:S,connectionLineStyle:j,connectionLineComponent:E,connectionLineContainerStyle:N,selectionKeyCode:I,selectionOnDrag:k,selectionMode:M,multiSelectionKeyCode:F,panActivationKeyCode:D,zoomActivationKeyCode:W,deleteKeyCode:Y,onlyRenderVisibleElements:K,elementsSelectable:ne,defaultViewport:Z,translateExtent:J,minZoom:V,maxZoom:C,preventScrolling:b,defaultMarkerColor:$,zoomOnScroll:U,zoomOnPinch:z,panOnScroll:A,panOnScrollSpeed:H,panOnScrollMode:P,zoomOnDoubleClick:L,panOnDrag:ee,autoPanOnSelection:te,onPaneClick:ue,onPaneMouseEnter:de,onPaneMouseMove:fe,onPaneMouseLeave:G,onPaneScroll:ie,onPaneContextMenu:he,paneClickDistance:we,nodeClickDistance:xe,onEdgeContextMenu:Se,onEdgeMouseEnter:se,onEdgeMouseMove:ce,onEdgeMouseLeave:ke,reconnectRadius:Me,onReconnect:Ke,onReconnectStart:Re,onReconnectEnd:Ze,noDragClassName:ot,noWheelClassName:sn,noPanClassName:Qt,disableKeyboardA11y:Gt,nodeExtent:ft,rfId:jt,viewport:xt,onViewportChange:Pt,nodesDraggable:Sr}){return ah(t),ah(r),PS(),wS(i),SS(xt),w.jsx(W_,{onPaneClick:ue,onPaneMouseEnter:de,onPaneMouseMove:fe,onPaneMouseLeave:G,onPaneContextMenu:he,onPaneScroll:ie,paneClickDistance:we,deleteKeyCode:Y,selectionKeyCode:I,selectionOnDrag:k,selectionMode:M,onSelectionStart:g,onSelectionEnd:x,multiSelectionKeyCode:F,panActivationKeyCode:D,zoomActivationKeyCode:W,elementsSelectable:ne,zoomOnScroll:U,zoomOnPinch:z,zoomOnDoubleClick:L,panOnScroll:A,panOnScrollSpeed:H,panOnScrollMode:P,panOnDrag:ee,autoPanOnSelection:te,defaultViewport:Z,translateExtent:J,minZoom:V,maxZoom:C,onSelectionContextMenu:y,preventScrolling:b,noDragClassName:ot,noWheelClassName:sn,noPanClassName:Qt,disableKeyboardA11y:Gt,onViewportChange:Pt,isControlledViewport:!!xt,children:w.jsxs(xS,{children:[w.jsx(vS,{edgeTypes:r,onEdgeClick:a,onEdgeDoubleClick:c,onReconnect:Ke,onReconnectStart:Re,onReconnectEnd:Ze,onlyRenderVisibleElements:K,onEdgeContextMenu:Se,onEdgeMouseEnter:se,onEdgeMouseMove:ce,onEdgeMouseLeave:ke,reconnectRadius:Me,defaultMarkerColor:$,noPanClassName:Qt,disableKeyboardA11y:Gt,rfId:jt}),w.jsx(MS,{style:j,type:S,component:E,containerStyle:N}),w.jsx("div",{className:"react-flow__edgelabel-renderer"}),w.jsx(eS,{nodeTypes:t,onNodeClick:l,onNodeDoubleClick:u,onNodeMouseEnter:d,onNodeMouseMove:h,onNodeMouseLeave:m,onNodeContextMenu:v,nodeClickDistance:xe,onlyRenderVisibleElements:K,noPanClassName:Qt,noDragClassName:ot,disableKeyboardA11y:Gt,nodeExtent:ft,rfId:jt,nodesDraggable:Sr}),w.jsx("div",{className:"react-flow__viewport-portal"})]})})}Jg.displayName="GraphView";const IS=R.memo(Jg),TS=eg(),uh=({nodes:t,edges:r,defaultNodes:i,defaultEdges:l,width:a,height:u,fitView:c,fitViewOptions:d,minZoom:h=.5,maxZoom:m=2,nodeOrigin:v,nodeExtent:y,zIndexMode:g="basic"}={})=>{const x=new Map,S=new Map,j=new Map,E=new Map,N=l??r??[],I=i??t??[],k=v??[0,0],M=y??di;pg(j,E,N);const{nodesInitialized:F}=Zu(I,x,S,{nodeOrigin:k,nodeExtent:M,zIndexMode:g});let D=[0,0,1];if(c&&a&&u){const W=_i(x,{filter:Z=>!!((Z.width||Z.initialWidth)&&(Z.height||Z.initialHeight))}),{x:Y,y:K,zoom:ne}=fc(W,a,u,h,m,(d==null?void 0:d.padding)??.1);D=[Y,K,ne]}return{rfId:"1",width:a??0,height:u??0,transform:D,nodes:I,nodesInitialized:F,nodeLookup:x,parentLookup:S,edges:N,edgeLookup:E,connectionLookup:j,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:i!==void 0,hasDefaultEdges:l!==void 0,panZoom:null,minZoom:h,maxZoom:m,translateExtent:di,nodeExtent:M,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:so.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:k,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:c??!1,fitViewOptions:d,fitViewResolver:null,connection:{...Kh},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:TS,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:Xh,zIndexMode:g,defaultEdgeOptions:void 0,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map,onNodesDelete:void 0,onEdgesDelete:void 0,onDelete:void 0,onBeforeDelete:void 0,onViewportChangeStart:void 0,onViewportChange:void 0,onViewportChangeEnd:void 0,onNodeDragStart:void 0,onNodeDrag:void 0,onNodeDragStop:void 0,onSelectionDragStart:void 0,onSelectionDrag:void 0,onSelectionDragStop:void 0,onMoveStart:void 0,onMove:void 0,onMoveEnd:void 0,onConnect:void 0,onConnectStart:void 0,onConnectEnd:void 0,onClickConnectStart:void 0,onClickConnectEnd:void 0}},RS=({nodes:t,edges:r,defaultNodes:i,defaultEdges:l,width:a,height:u,fitView:c,fitViewOptions:d,minZoom:h,maxZoom:m,nodeOrigin:v,nodeExtent:y,zIndexMode:g})=>U1((x,S)=>{async function j(){const{nodeLookup:E,panZoom:N,fitViewOptions:I,fitViewResolver:k,width:M,height:F,minZoom:D,maxZoom:W}=S();N&&(await Fw({nodes:E,width:M,height:F,panZoom:N,minZoom:D,maxZoom:W},I),k==null||k.resolve(!0),x({fitViewResolver:null}))}return{...uh({nodes:t,edges:r,width:a,height:u,fitView:c,fitViewOptions:d,minZoom:h,maxZoom:m,nodeOrigin:v,nodeExtent:y,defaultNodes:i,defaultEdges:l,zIndexMode:g}),setNodes:E=>{const{nodeLookup:N,parentLookup:I,nodeOrigin:k,nodeExtent:M,elevateNodesOnSelect:F,fitViewQueued:D,zIndexMode:W,nodesSelectionActive:Y}=S(),{nodesInitialized:K,hasSelectedNodes:ne}=Zu(E,N,I,{nodeOrigin:k,nodeExtent:M,elevateNodesOnSelect:F,checkEquality:!0,zIndexMode:W}),Z=Y&&ne;D&&K?(j(),x({nodes:E,nodesInitialized:K,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:Z})):x({nodes:E,nodesInitialized:K,nodesSelectionActive:Z})},setEdges:E=>{const{connectionLookup:N,edgeLookup:I}=S();pg(N,I,E),x({edges:E})},setDefaultNodesAndEdges:(E,N)=>{if(E){const{setNodes:I}=S();I(E),x({hasDefaultNodes:!0})}if(N){const{setEdges:I}=S();I(N),x({hasDefaultEdges:!0})}},updateNodeInternals:E=>{const{triggerNodeChanges:N,nodeLookup:I,parentLookup:k,domNode:M,nodeOrigin:F,nodeExtent:D,debug:W,fitViewQueued:Y,zIndexMode:K}=S(),{changes:ne,updatedInternals:Z}=u1(E,I,k,M,F,D,K);Z&&(i1(I,k,{nodeOrigin:F,nodeExtent:D,zIndexMode:K}),Y?(j(),x({fitViewQueued:!1,fitViewOptions:void 0})):x({}),(ne==null?void 0:ne.length)>0&&(W&&console.log("React Flow: trigger node changes",ne),N==null||N(ne)))},updateNodePositions:(E,N=!1)=>{const I=[];let k=[];const{nodeLookup:M,triggerNodeChanges:F,connection:D,updateConnection:W,onNodesChangeMiddlewareMap:Y}=S();for(const[K,ne]of E){const Z=M.get(K),J=!!(Z!=null&&Z.expandParent&&(Z!=null&&Z.parentId)&&(ne!=null&&ne.position)),V={id:K,type:"position",position:J?{x:Math.max(0,ne.position.x),y:Math.max(0,ne.position.y)}:ne.position,dragging:N};if(Z&&D.inProgress&&D.fromNode.id===Z.id){const C=wr(Z,D.fromHandle,_e.Left,!0);W({...D,from:C})}J&&Z.parentId&&I.push({id:K,parentId:Z.parentId,rect:{...ne.internals.positionAbsolute,width:ne.measured.width??0,height:ne.measured.height??0}}),k.push(V)}if(I.length>0){const{parentLookup:K,nodeOrigin:ne}=S(),Z=yc(I,M,K,ne);k.push(...Z)}for(const K of Y.values())k=K(k);F(k)},triggerNodeChanges:E=>{const{onNodesChange:N,setNodes:I,nodes:k,hasDefaultNodes:M,debug:F}=S();if(E!=null&&E.length){if(M){const D=f_(E,k);I(D)}F&&console.log("React Flow: trigger node changes",E),N==null||N(E)}},triggerEdgeChanges:E=>{const{onEdgesChange:N,setEdges:I,edges:k,hasDefaultEdges:M,debug:F}=S();if(E!=null&&E.length){if(M){const D=d_(E,k);I(D)}F&&console.log("React Flow: trigger edge changes",E),N==null||N(E)}},addSelectedNodes:E=>{const{multiSelectionActive:N,edgeLookup:I,nodeLookup:k,triggerNodeChanges:M,triggerEdgeChanges:F}=S();if(N){const D=E.map(W=>dr(W,!0));M(D);return}M(Jr(k,new Set([...E]),!0)),F(Jr(I))},addSelectedEdges:E=>{const{multiSelectionActive:N,edgeLookup:I,nodeLookup:k,triggerNodeChanges:M,triggerEdgeChanges:F}=S();if(N){const D=E.map(W=>dr(W,!0));F(D);return}F(Jr(I,new Set([...E]))),M(Jr(k,new Set,!0))},unselectNodesAndEdges:({nodes:E,edges:N}={})=>{const{edges:I,nodes:k,nodeLookup:M,triggerNodeChanges:F,triggerEdgeChanges:D}=S(),W=E||k,Y=N||I,K=[];for(const Z of W){if(!Z.selected)continue;const J=M.get(Z.id);J&&(J.selected=!1),K.push(dr(Z.id,!1))}const ne=[];for(const Z of Y)Z.selected&&ne.push(dr(Z.id,!1));F(K),D(ne)},setMinZoom:E=>{const{panZoom:N,maxZoom:I}=S();N==null||N.setScaleExtent([E,I]),x({minZoom:E})},setMaxZoom:E=>{const{panZoom:N,minZoom:I}=S();N==null||N.setScaleExtent([I,E]),x({maxZoom:E})},setTranslateExtent:E=>{var N;(N=S().panZoom)==null||N.setTranslateExtent(E),x({translateExtent:E})},resetSelectedElements:()=>{const{edges:E,nodes:N,triggerNodeChanges:I,triggerEdgeChanges:k,elementsSelectable:M}=S();if(!M)return;const F=N.reduce((W,Y)=>Y.selected?[...W,dr(Y.id,!1)]:W,[]),D=E.reduce((W,Y)=>Y.selected?[...W,dr(Y.id,!1)]:W,[]);I(F),k(D)},setNodeExtent:E=>{const{nodes:N,nodeLookup:I,parentLookup:k,nodeOrigin:M,elevateNodesOnSelect:F,nodeExtent:D,zIndexMode:W}=S();E[0][0]===D[0][0]&&E[0][1]===D[0][1]&&E[1][0]===D[1][0]&&E[1][1]===D[1][1]||(Zu(N,I,k,{nodeOrigin:M,nodeExtent:E,elevateNodesOnSelect:F,checkEquality:!1,zIndexMode:W}),x({nodeExtent:E}))},panBy:E=>{const{transform:N,width:I,height:k,panZoom:M,translateExtent:F}=S();return c1({delta:E,panZoom:M,transform:N,translateExtent:F,width:I,height:k})},setCenter:async(E,N,I)=>{const{width:k,height:M,maxZoom:F,panZoom:D}=S();if(!D)return!1;const W=typeof(I==null?void 0:I.zoom)<"u"?I.zoom:F;return await D.setViewport({x:k/2-E*W,y:M/2-N*W,zoom:W},{duration:I==null?void 0:I.duration,ease:I==null?void 0:I.ease,interpolate:I==null?void 0:I.interpolate}),!0},cancelConnection:()=>{x({connection:{...Kh}})},updateConnection:E=>{x({connection:E})},reset:()=>x({...uh()})}},Object.is);function em({initialNodes:t,initialEdges:r,defaultNodes:i,defaultEdges:l,initialWidth:a,initialHeight:u,initialMinZoom:c,initialMaxZoom:d,initialFitViewOptions:h,fitView:m,nodeOrigin:v,nodeExtent:y,zIndexMode:g,children:x}){const[S]=R.useState(()=>RS({nodes:t,edges:r,defaultNodes:i,defaultEdges:l,width:a,height:u,fitView:m,minZoom:c,maxZoom:d,fitViewOptions:h,nodeOrigin:v,nodeExtent:y,zIndexMode:g}));return w.jsx(W1,{value:S,children:w.jsx(y_,{children:w.jsx(R_,{children:x})})})}function zS({children:t,nodes:r,edges:i,defaultNodes:l,defaultEdges:a,width:u,height:c,fitView:d,fitViewOptions:h,minZoom:m,maxZoom:v,nodeOrigin:y,nodeExtent:g,zIndexMode:x}){return R.useContext(kl)?w.jsx(w.Fragment,{children:t}):w.jsx(em,{initialNodes:r,initialEdges:i,defaultNodes:l,defaultEdges:a,initialWidth:u,initialHeight:c,fitView:d,initialFitViewOptions:h,initialMinZoom:m,initialMaxZoom:v,nodeOrigin:y,nodeExtent:g,zIndexMode:x,children:t})}const LS={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function AS({nodes:t,edges:r,defaultNodes:i,defaultEdges:l,className:a,nodeTypes:u,edgeTypes:c,onNodeClick:d,onEdgeClick:h,onInit:m,onMove:v,onMoveStart:y,onMoveEnd:g,onConnect:x,onConnectStart:S,onConnectEnd:j,onClickConnectStart:E,onClickConnectEnd:N,onNodeMouseEnter:I,onNodeMouseMove:k,onNodeMouseLeave:M,onNodeContextMenu:F,onNodeDoubleClick:D,onNodeDragStart:W,onNodeDrag:Y,onNodeDragStop:K,onNodesDelete:ne,onEdgesDelete:Z,onDelete:J,onSelectionChange:V,onSelectionDragStart:C,onSelectionDrag:b,onSelectionDragStop:$,onSelectionContextMenu:U,onSelectionStart:z,onSelectionEnd:A,onBeforeDelete:H,connectionMode:P,connectionLineType:L=Un.Bezier,connectionLineStyle:ee,connectionLineComponent:te,connectionLineContainerStyle:ue,deleteKeyCode:de="Backspace",selectionKeyCode:fe="Shift",selectionOnDrag:G=!1,selectionMode:ie=pi.Full,panActivationKeyCode:he="Space",multiSelectionKeyCode:we=gi()?"Meta":"Control",zoomActivationKeyCode:xe=gi()?"Meta":"Control",snapToGrid:Se,snapGrid:se,onlyRenderVisibleElements:ce=!1,selectNodesOnDrag:ke,nodesDraggable:Me,autoPanOnNodeFocus:Ke,nodesConnectable:Re,nodesFocusable:Ze,nodeOrigin:ot=Cg,edgesFocusable:sn,edgesReconnectable:Qt,elementsSelectable:Gt=!0,defaultViewport:ft=o_,minZoom:jt=.5,maxZoom:xt=2,translateExtent:Pt=di,preventScrolling:Sr=!0,nodeExtent:ln,defaultMarkerColor:Xn="#b1b1b7",zoomOnScroll:Ml=!0,zoomOnPinch:Ni=!0,panOnScroll:Ci=!1,panOnScrollSpeed:jl=.5,panOnScrollMode:fo=gr.Free,zoomOnDoubleClick:po=!0,panOnDrag:ho=!0,onPaneClick:go,onPaneMouseEnter:mo,onPaneMouseMove:wn,onPaneMouseLeave:_n,onPaneScroll:Mi,onPaneContextMenu:ji,paneClickDistance:Pi=1,nodeClickDistance:Ii=0,children:Ti,onReconnect:yo,onReconnectStart:Ri,onReconnectEnd:Kn,onEdgeContextMenu:vo,onEdgeDoubleClick:Qn,onEdgeMouseEnter:Pl,onEdgeMouseMove:Gn,onEdgeMouseLeave:kr,reconnectRadius:Er=10,onNodesChange:xo,onEdgesChange:Il,noDragClassName:Tl="nodrag",noWheelClassName:Rl="nowheel",noPanClassName:qt="nopan",fitView:wo,fitViewOptions:_o,connectOnClick:zl,attributionPosition:zi,proOptions:Li,defaultEdgeOptions:Ai,elevateNodesOnSelect:Di=!0,elevateEdgesOnSelect:Ll=!1,disableKeyboardA11y:$i=!1,autoPanOnConnect:Fe,autoPanOnNodeDrag:Al,autoPanOnSelection:So=!0,autoPanSpeed:bi,connectionRadius:Nr,isValidConnection:Dl,onError:Oi,style:Cr,id:wt,nodeDragThreshold:$l,connectionDragThreshold:_t,viewport:bl,onViewportChange:Ol,width:Fl,height:Mr,colorMode:jr="light",debug:qn,onScroll:an,ariaLabelConfig:Hl,zIndexMode:Fi="basic",...ko},Hi){const Zn=wt||"1",Jn=a_(jr),Vl=R.useCallback(Pr=>{Pr.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),an==null||an(Pr)},[an]);return w.jsx("div",{"data-testid":"rf__wrapper",...ko,onScroll:Vl,style:{...Cr,...LS},ref:Hi,className:Xe(["react-flow",a,Jn]),id:wt,role:"application",children:w.jsxs(zS,{nodes:t,edges:r,width:Fl,height:Mr,fitView:wo,fitViewOptions:_o,minZoom:jt,maxZoom:xt,nodeOrigin:ot,nodeExtent:ln,zIndexMode:Fi,children:[w.jsx(l_,{nodes:t,edges:r,defaultNodes:i,defaultEdges:l,onConnect:x,onConnectStart:S,onConnectEnd:j,onClickConnectStart:E,onClickConnectEnd:N,nodesDraggable:Me,autoPanOnNodeFocus:Ke,nodesConnectable:Re,nodesFocusable:Ze,edgesFocusable:sn,edgesReconnectable:Qt,elementsSelectable:Gt,elevateNodesOnSelect:Di,elevateEdgesOnSelect:Ll,minZoom:jt,maxZoom:xt,nodeExtent:ln,onNodesChange:xo,onEdgesChange:Il,snapToGrid:Se,snapGrid:se,connectionMode:P,translateExtent:Pt,connectOnClick:zl,defaultEdgeOptions:Ai,fitView:wo,fitViewOptions:_o,onNodesDelete:ne,onEdgesDelete:Z,onDelete:J,onNodeDragStart:W,onNodeDrag:Y,onNodeDragStop:K,onSelectionDrag:b,onSelectionDragStart:C,onSelectionDragStop:$,onMove:v,onMoveStart:y,onMoveEnd:g,noPanClassName:qt,nodeOrigin:ot,rfId:Zn,autoPanOnConnect:Fe,autoPanOnNodeDrag:Al,autoPanSpeed:bi,onError:Oi,connectionRadius:Nr,isValidConnection:Dl,selectNodesOnDrag:ke,nodeDragThreshold:$l,connectionDragThreshold:_t,onBeforeDelete:H,debug:qn,ariaLabelConfig:Hl,zIndexMode:Fi}),w.jsx(IS,{onInit:m,onNodeClick:d,onEdgeClick:h,onNodeMouseEnter:I,onNodeMouseMove:k,onNodeMouseLeave:M,onNodeContextMenu:F,onNodeDoubleClick:D,nodeTypes:u,edgeTypes:c,connectionLineType:L,connectionLineStyle:ee,connectionLineComponent:te,connectionLineContainerStyle:ue,selectionKeyCode:fe,selectionOnDrag:G,selectionMode:ie,deleteKeyCode:de,multiSelectionKeyCode:we,panActivationKeyCode:he,zoomActivationKeyCode:xe,onlyRenderVisibleElements:ce,defaultViewport:ft,translateExtent:Pt,minZoom:jt,maxZoom:xt,preventScrolling:Sr,zoomOnScroll:Ml,zoomOnPinch:Ni,zoomOnDoubleClick:po,panOnScroll:Ci,panOnScrollSpeed:jl,panOnScrollMode:fo,panOnDrag:ho,autoPanOnSelection:So,onPaneClick:go,onPaneMouseEnter:mo,onPaneMouseMove:wn,onPaneMouseLeave:_n,onPaneScroll:Mi,onPaneContextMenu:ji,paneClickDistance:Pi,nodeClickDistance:Ii,onSelectionContextMenu:U,onSelectionStart:z,onSelectionEnd:A,onReconnect:yo,onReconnectStart:Ri,onReconnectEnd:Kn,onEdgeContextMenu:vo,onEdgeDoubleClick:Qn,onEdgeMouseEnter:Pl,onEdgeMouseMove:Gn,onEdgeMouseLeave:kr,reconnectRadius:Er,defaultMarkerColor:Xn,noDragClassName:Tl,noWheelClassName:Rl,noPanClassName:qt,rfId:Zn,disableKeyboardA11y:$i,nodeExtent:ln,viewport:bl,onViewportChange:Ol,nodesDraggable:Me}),w.jsx(r_,{onSelectionChange:V}),Ti,w.jsx(Z1,{proOptions:Li,position:zi}),w.jsx(q1,{rfId:Zn,disableKeyboardA11y:$i})]})})}var DS=jg(AS);function $S({dimensions:t,lineWidth:r,variant:i,className:l}){return w.jsx("path",{strokeWidth:r,d:`M${t[0]/2} 0 V${t[1]} M0 ${t[1]/2} H${t[0]}`,className:Xe(["react-flow__background-pattern",i,l])})}function bS({radius:t,className:r}){return w.jsx("circle",{cx:t,cy:t,r:t,className:Xe(["react-flow__background-pattern","dots",r])})}var Wn;(function(t){t.Lines="lines",t.Dots="dots",t.Cross="cross"})(Wn||(Wn={}));const OS={[Wn.Dots]:1,[Wn.Lines]:1,[Wn.Cross]:6},FS=t=>({transform:t.transform,patternId:`pattern-${t.rfId}`});function tm({id:t,variant:r=Wn.Dots,gap:i=20,size:l,lineWidth:a=1,offset:u=0,color:c,bgColor:d,style:h,className:m,patternClassName:v}){const y=R.useRef(null),{transform:g,patternId:x}=Ie(FS,Be),S=l||OS[r],j=r===Wn.Dots,E=r===Wn.Cross,N=Array.isArray(i)?i:[i,i],I=[N[0]*g[2]||1,N[1]*g[2]||1],k=S*g[2],M=Array.isArray(u)?u:[u,u],F=E?[k,k]:I,D=[M[0]*g[2]+F[0]/2,M[1]*g[2]+F[1]/2],W=`${x}${t||""}`;return w.jsxs("svg",{className:Xe(["react-flow__background",m]),style:{...h,...Nl,"--xy-background-color-props":d,"--xy-background-pattern-color-props":c},ref:y,"data-testid":"rf__background",children:[w.jsx("pattern",{id:W,x:g[0]%I[0],y:g[1]%I[1],width:I[0],height:I[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${D[0]},-${D[1]})`,children:j?w.jsx(bS,{radius:k/2,className:v}):w.jsx($S,{dimensions:F,lineWidth:a,variant:r,className:v})}),w.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${W})`})]})}tm.displayName="Background";const HS=R.memo(tm);function VS(){return w.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:w.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function BS(){return w.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:w.jsx("path",{d:"M0 0h32v4.2H0z"})})}function US(){return w.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:w.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function WS(){return w.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:w.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function YS(){return w.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:w.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function qs({children:t,className:r,...i}){return w.jsx("button",{type:"button",className:Xe(["react-flow__controls-button",r]),...i,children:t})}const XS=t=>({isInteractive:t.nodesDraggable||t.nodesConnectable||t.elementsSelectable,minZoomReached:t.transform[2]<=t.minZoom,maxZoomReached:t.transform[2]>=t.maxZoom,ariaLabelConfig:t.ariaLabelConfig});function nm({style:t,showZoom:r=!0,showFitView:i=!0,showInteractive:l=!0,fitViewOptions:a,onZoomIn:u,onZoomOut:c,onFitView:d,onInteractiveChange:h,className:m,children:v,position:y="bottom-left",orientation:g="vertical","aria-label":x}){const S=$e(),{isInteractive:j,minZoomReached:E,maxZoomReached:N,ariaLabelConfig:I}=Ie(XS,Be),{zoomIn:k,zoomOut:M,fitView:F}=El(),D=()=>{k(),u==null||u()},W=()=>{M(),c==null||c()},Y=()=>{F(a),d==null||d()},K=()=>{S.setState({nodesDraggable:!j,nodesConnectable:!j,elementsSelectable:!j}),h==null||h(!j)},ne=g==="horizontal"?"horizontal":"vertical";return w.jsxs(Ei,{className:Xe(["react-flow__controls",ne,m]),position:y,style:t,"data-testid":"rf__controls","aria-label":x??I["controls.ariaLabel"],children:[r&&w.jsxs(w.Fragment,{children:[w.jsx(qs,{onClick:D,className:"react-flow__controls-zoomin",title:I["controls.zoomIn.ariaLabel"],"aria-label":I["controls.zoomIn.ariaLabel"],disabled:N,children:w.jsx(VS,{})}),w.jsx(qs,{onClick:W,className:"react-flow__controls-zoomout",title:I["controls.zoomOut.ariaLabel"],"aria-label":I["controls.zoomOut.ariaLabel"],disabled:E,children:w.jsx(BS,{})})]}),i&&w.jsx(qs,{className:"react-flow__controls-fitview",onClick:Y,title:I["controls.fitView.ariaLabel"],"aria-label":I["controls.fitView.ariaLabel"],children:w.jsx(US,{})}),l&&w.jsx(qs,{className:"react-flow__controls-interactive",onClick:K,title:I["controls.interactive.ariaLabel"],"aria-label":I["controls.interactive.ariaLabel"],children:j?w.jsx(YS,{}):w.jsx(WS,{})}),v]})}nm.displayName="Controls";const KS=R.memo(nm);function QS({id:t,x:r,y:i,width:l,height:a,style:u,color:c,strokeColor:d,strokeWidth:h,className:m,borderRadius:v,shapeRendering:y,selected:g,onClick:x}){const{background:S,backgroundColor:j}=u||{},E=c||S||j;return w.jsx("rect",{className:Xe(["react-flow__minimap-node",{selected:g},m]),x:r,y:i,rx:v,ry:v,width:l,height:a,style:{fill:E,stroke:d,strokeWidth:h},shapeRendering:y,onClick:x?N=>x(N,t):void 0})}const GS=R.memo(QS),qS=t=>t.nodes.map(r=>r.id),Du=t=>t instanceof Function?t:()=>t;function ZS({nodeStrokeColor:t,nodeColor:r,nodeClassName:i="",nodeBorderRadius:l=5,nodeStrokeWidth:a,nodeComponent:u=GS,onClick:c}){const d=Ie(qS,Be),h=Du(r),m=Du(t),v=Du(i),y=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return w.jsx(w.Fragment,{children:d.map(g=>w.jsx(ek,{id:g,nodeColorFunc:h,nodeStrokeColorFunc:m,nodeClassNameFunc:v,nodeBorderRadius:l,nodeStrokeWidth:a,NodeComponent:u,onClick:c,shapeRendering:y},g))})}function JS({id:t,nodeColorFunc:r,nodeStrokeColorFunc:i,nodeClassNameFunc:l,nodeBorderRadius:a,nodeStrokeWidth:u,shapeRendering:c,NodeComponent:d,onClick:h}){const{node:m,x:v,y,width:g,height:x}=Ie(S=>{const j=S.nodeLookup.get(t);if(!j)return{node:void 0,x:0,y:0,width:0,height:0};const E=j.internals.userNode,{x:N,y:I}=j.internals.positionAbsolute,{width:k,height:M}=Kt(E);return{node:E,x:N,y:I,width:k,height:M}},Be);return!m||m.hidden||!tg(m)?null:w.jsx(d,{x:v,y,width:g,height:x,style:m.style,selected:!!m.selected,className:l(m),color:r(m),borderRadius:a,strokeColor:i(m),strokeWidth:u,shapeRendering:c,onClick:h,id:m.id})}const ek=R.memo(JS);var tk=R.memo(ZS);const nk=200,rk=150,ok=t=>!t.hidden,ik=t=>{const r={x:-t.transform[0]/t.transform[2],y:-t.transform[1]/t.transform[2],width:t.width/t.transform[2],height:t.height/t.transform[2]};let i=!1;for(const l of t.nodeLookup.values())if(!l.hidden){i=!0;break}return{viewBB:r,boundingRect:i?Zh(_i(t.nodeLookup,{filter:ok}),r):r,rfId:t.rfId,panZoom:t.panZoom,translateExtent:t.translateExtent,flowWidth:t.width,flowHeight:t.height,ariaLabelConfig:t.ariaLabelConfig}},ch=(t,r)=>t.x===r.x&&t.y===r.y&&t.width===r.width&&t.height===r.height,sk=(t,r)=>ch(t.viewBB,r.viewBB)&&ch(t.boundingRect,r.boundingRect)&&t.rfId===r.rfId&&t.panZoom===r.panZoom&&t.translateExtent===r.translateExtent&&t.flowWidth===r.flowWidth&&t.flowHeight===r.flowHeight&&t.ariaLabelConfig===r.ariaLabelConfig,lk="react-flow__minimap-desc";function rm({style:t,className:r,nodeStrokeColor:i,nodeColor:l,nodeClassName:a="",nodeBorderRadius:u=5,nodeStrokeWidth:c,nodeComponent:d,bgColor:h,maskColor:m,maskStrokeColor:v,maskStrokeWidth:y,position:g="bottom-right",onClick:x,onNodeClick:S,pannable:j=!1,zoomable:E=!1,ariaLabel:N,inversePan:I,zoomStep:k=1,offsetScale:M=5}){const F=$e(),D=R.useRef(null),{boundingRect:W,panZoom:Y,viewBB:K,rfId:ne,translateExtent:Z,flowWidth:J,flowHeight:V,ariaLabelConfig:C}=Ie(ik,sk),b=(t==null?void 0:t.width)??nk,$=(t==null?void 0:t.height)??rk,U=W.width/b,z=W.height/$,A=Math.max(U,z),H=A*b,P=A*$,L=M*A,ee=W.x-(H-W.width)/2-L,te=W.y-(P-W.height)/2-L,ue=H+L*2,de=P+L*2,fe=`${lk}-${ne}`,G=R.useRef(0),ie=R.useRef();G.current=A,R.useEffect(()=>{const se=F.getState().panZoom;if(D.current&&se)return ie.current=x1({domNode:D.current,panZoom:se,getTransform:()=>F.getState().transform,getViewScale:()=>G.current}),()=>{var ce;(ce=ie.current)==null||ce.destroy()}},[Y]),R.useEffect(()=>{var se;(se=ie.current)==null||se.update({translateExtent:Z,width:J,height:V,inversePan:I,pannable:j,zoomStep:k,zoomable:E})},[j,E,I,k,Z,J,V]);const he=x?se=>{var Me;const[ce,ke]=((Me=ie.current)==null?void 0:Me.pointer(se))||[0,0];x(se,{x:ce,y:ke})}:void 0,we=R.useCallback((se,ce)=>{const ke=F.getState().nodeLookup.get(ce).internals.userNode;S==null||S(se,ke)},[S]),xe=S?we:void 0,Se=N??C["minimap.ariaLabel"];return w.jsx(Ei,{position:g,style:{...t,"--xy-minimap-background-color-props":typeof h=="string"?h:void 0,"--xy-minimap-mask-background-color-props":typeof m=="string"?m:void 0,"--xy-minimap-mask-stroke-color-props":typeof v=="string"?v:void 0,"--xy-minimap-mask-stroke-width-props":typeof y=="number"?y*A:void 0,"--xy-minimap-node-background-color-props":typeof l=="string"?l:void 0,"--xy-minimap-node-stroke-color-props":typeof i=="string"?i:void 0,"--xy-minimap-node-stroke-width-props":typeof c=="number"?c:void 0},className:Xe(["react-flow__minimap",r]),"data-testid":"rf__minimap",children:w.jsxs("svg",{width:b,height:$,viewBox:`${ee} ${te} ${ue} ${de}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":fe,ref:D,onClick:he,children:[Se&&w.jsx("title",{id:fe,children:Se}),w.jsx(tk,{onClick:xe,nodeColor:l,nodeStrokeColor:i,nodeBorderRadius:u,nodeClassName:a,nodeStrokeWidth:c,nodeComponent:d}),w.jsx("path",{className:"react-flow__minimap-mask",d:`M${ee-L},${te-L}h${ue+L*2}v${de+L*2}h${-ue-L*2}z
-        M${K.x},${K.y}h${K.width}v${K.height}h${-K.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}rm.displayName="MiniMap";const ak=R.memo(rm),uk=t=>r=>t?`${Math.max(1/r.transform[2],1)}`:void 0,ck={[uo.Line]:"right",[uo.Handle]:"bottom-right"};function fk({nodeId:t,position:r,variant:i=uo.Handle,className:l,style:a=void 0,children:u,color:c,minWidth:d=10,minHeight:h=10,maxWidth:m=Number.MAX_VALUE,maxHeight:v=Number.MAX_VALUE,keepAspectRatio:y=!1,resizeDirection:g,autoScale:x=!0,shouldResize:S,onResizeStart:j,onResize:E,onResizeEnd:N}){const I=zg(),k=typeof t=="string"?t:I,M=$e(),F=R.useRef(null),D=i===uo.Handle,W=Ie(R.useCallback(uk(D&&x),[D,x]),Be),Y=R.useRef(null),K=r??ck[i];R.useEffect(()=>{if(!(!F.current||!k))return Y.current||(Y.current=R1({domNode:F.current,nodeId:k,getStoreItems:()=>{const{nodeLookup:Z,transform:J,snapGrid:V,snapToGrid:C,nodeOrigin:b,domNode:$}=M.getState();return{nodeLookup:Z,transform:J,snapGrid:V,snapToGrid:C,nodeOrigin:b,paneDomNode:$}},onChange:(Z,J)=>{const{triggerNodeChanges:V,nodeLookup:C,parentLookup:b,nodeOrigin:$}=M.getState(),U=[],z={x:Z.x,y:Z.y},A=C.get(k);if(A&&A.expandParent&&A.parentId){const H=A.origin??$,P=Z.width??A.measured.width??0,L=Z.height??A.measured.height??0,ee={id:A.id,parentId:A.parentId,rect:{width:P,height:L,...ng({x:Z.x??A.position.x,y:Z.y??A.position.y},{width:P,height:L},A.parentId,C,H)}},te=yc([ee],C,b,$);U.push(...te),z.x=Z.x?Math.max(H[0]*P,Z.x):void 0,z.y=Z.y?Math.max(H[1]*L,Z.y):void 0}if(z.x!==void 0&&z.y!==void 0){const H={id:k,type:"position",position:{...z}};U.push(H)}if(Z.width!==void 0&&Z.height!==void 0){const P={id:k,type:"dimensions",resizing:!0,setAttributes:g?g==="horizontal"?"width":"height":!0,dimensions:{width:Z.width,height:Z.height}};U.push(P)}for(const H of J){const P={...H,type:"position"};U.push(P)}V(U)},onEnd:({width:Z,height:J})=>{const V={id:k,type:"dimensions",resizing:!1,dimensions:{width:Z,height:J}};M.getState().triggerNodeChanges([V])}})),Y.current.update({controlPosition:K,boundaries:{minWidth:d,minHeight:h,maxWidth:m,maxHeight:v},keepAspectRatio:y,resizeDirection:g,onResizeStart:j,onResize:E,onResizeEnd:N,shouldResize:S}),()=>{var Z;(Z=Y.current)==null||Z.destroy()}},[K,d,h,m,v,y,j,E,N,S]);const ne=K.split("-");return w.jsx("div",{className:Xe(["react-flow__resize-control","nodrag",...ne,i,l]),ref:F,style:{...a,scale:W,...c&&{[D?"backgroundColor":"borderColor"]:c}},children:u})}R.memo(fk);function om(t,r){var i;return(i=t.step_types.find(l=>l.type===r))==null?void 0:i.control}function im(t,r){var l;const i=om(t,r.type);if(i==="if"){const a=Math.max(1,((l=r.branches)==null?void 0:l.length)??1);return[...Array.from({length:a},(u,c)=>`case${c}`),"else"]}return i==="loop"?["each","done"]:["out"]}const fh={out:"",each:"varje",done:"klar",else:"annars"};function sm(t){return t in fh?fh[t]:t.startsWith("case")?`gren ${Number(t.slice(4))+1}`:t}function dk(t,r){return t.condition_kinds.find(i=>i.kind===r)}function _r(t,r){return r==="sv"?t.label_sv:t.label_en}function pk({label:t,value:r,onChange:i}){const[l,a]=R.useState([]),[u,c]=R.useState(!1),[d,h]=R.useState(null),m=()=>Oe.listDesktopImages().then(a).catch(()=>{});R.useEffect(()=>{m()},[]);async function v(){const g=r.replace(/\.png$/i,"")||`bild ${l.length+1}`,x=window.prompt("Namn på referensbilden:",g);if(x!==null){c(!0),h(null);try{const S=await Oe.captureDesktopImage(x.trim());i(S.name),await m()}catch(S){h(S instanceof Yn?String(S.detail):String(S))}finally{c(!1)}}}const y=r&&l.includes(r);return w.jsxs("label",{className:"field image-field",children:[w.jsx("span",{children:t}),w.jsxs("div",{className:"image-field-row",children:[w.jsx("input",{type:"text",list:"desktop-images",value:r??"",placeholder:"filnamn.png",onChange:g=>i(g.target.value)}),w.jsx("datalist",{id:"desktop-images",children:l.map(g=>w.jsx("option",{value:g},g))}),w.jsx("button",{type:"button",className:"secondary tiny",disabled:u,onClick:v,children:u?"…":"📷 Fånga"})]}),y&&w.jsx("img",{className:"image-field-preview",src:Oe.desktopImageUrl(r),alt:r}),d&&w.jsx("span",{className:"assist-msg error",children:d})]})}function lm({values:t,fields:r,lang:i,showScope:l,onChange:a}){const u=r.filter(c=>c.kind==="field_list"?!1:c.key==="scope"?!!l:!0);return u.length===0?null:w.jsx("div",{className:"fields",children:u.map(c=>w.jsx(hk,{field:c,value:t[c.key],lang:i,onChange:d=>a({[c.key]:d})},c.key))})}function hk({field:t,value:r,lang:i,onChange:l}){var d;const a=_r(t,i),u=t.help??a;if(t.kind==="image")return w.jsx(pk,{label:a,value:String(r??""),onChange:l});let c;return t.kind==="select"?c=w.jsx("select",{value:String(r??t.default??((d=t.options)==null?void 0:d[0])??""),title:u,onChange:h=>l(h.target.value),children:(t.options??[]).map(h=>w.jsx("option",{value:h,children:h===""?"—":h},h))}):t.kind==="bool"?c=w.jsx("input",{type:"checkbox",checked:r===!0||r==="true",title:u,onChange:h=>l(h.target.checked)}):t.kind==="number"?c=w.jsx("input",{type:"number",value:r==null?"":String(r),title:u,onChange:h=>l(h.target.value===""?void 0:Number(h.target.value))}):c=w.jsx("input",{type:"text",value:r==null?"":String(r),title:u,onChange:h=>l(h.target.value)}),w.jsxs("label",{className:"field"+(t.kind==="bool"?" field-bool":""),children:[w.jsx("span",{children:a}),c]})}function gk({condition:t,schema:r,lang:i,t:l,showScope:a,onChange:u}){const c=dk(r,t.kind);return w.jsxs("div",{className:"condition",children:[w.jsxs("label",{className:"field",children:[w.jsx("span",{children:l("condition")}),w.jsx("select",{value:t.kind,onChange:d=>u({kind:d.target.value}),children:r.condition_kinds.map(d=>w.jsx("option",{value:d.kind,children:_r(d,i)},d.kind))})]}),c&&w.jsx(lm,{values:t,fields:c.fields,lang:i,showScope:a,onChange:d=>u({...t,...d})})]})}function mk({fields:t,t:r,onChange:i}){const l=(a,u)=>i(t.map((c,d)=>d===a?{...c,...u}:c));return w.jsxs("div",{className:"row-fields",children:[t.map((a,u)=>w.jsxs("div",{className:"row-field",children:[w.jsxs("div",{className:"row-field-head",children:[w.jsx("input",{type:"text",placeholder:r("column_name"),value:a.name,onChange:c=>l(u,{name:c.target.value})}),w.jsx("button",{className:"danger",onClick:()=>i(t.filter((c,d)=>d!==u)),children:r("remove")})]}),w.jsxs("div",{className:"fields",children:[w.jsxs("label",{className:"field",children:[w.jsx("span",{children:"by"}),w.jsx("select",{value:a.by??"css",onChange:c=>l(u,{by:c.target.value}),children:["text","css","role"].map(c=>w.jsx("option",{children:c},c))})]}),w.jsxs("label",{className:"field",children:[w.jsx("span",{children:"value"}),w.jsx("input",{type:"text",value:a.value??"",onChange:c=>l(u,{value:c.target.value})})]}),w.jsxs("label",{className:"field",children:[w.jsx("span",{children:"role"}),w.jsx("input",{type:"text",value:a.role??"",onChange:c=>l(u,{role:c.target.value})})]})]})]},u)),w.jsx("button",{className:"secondary",onClick:()=>i([...t,{name:"",by:"css",value:""}]),children:r("add_field")})]})}function yk({data:t}){const r=t,{step:i,schema:l,lang:a,t:u}=r,c=l.step_types.find(g=>g.type===i.type),d=om(l,i.type),h=im(l,i),m=g=>{const x={...i};for(const[S,j]of Object.entries(g))j===void 0||j===""?delete x[S]:x[S]=j;r.onChange(x)},v=i.branches??[Fu()],y=(g,x)=>r.onChange({...i,branches:v.map((S,j)=>j===g?x:S)});return w.jsxs("div",{className:"step-node cat-"+((c==null?void 0:c.category)??"x")+(i.enabled===!1?" disabled":""),children:[w.jsx(co,{type:"target",position:_e.Top,id:"in"}),w.jsxs("div",{className:"node-head",children:[w.jsx("input",{type:"checkbox",className:"nodrag",checked:i.enabled!==!1,title:u("enabled_title"),onChange:g=>r.onChange({...i,enabled:g.target.checked?void 0:!1})}),w.jsx("select",{className:"nodrag type-select",value:i.type,onChange:g=>r.onChange(q0(l,i,g.target.value)),children:l.step_types.map(g=>w.jsx("option",{value:g.type,children:_r(g,a)},g.type))}),w.jsx("span",{className:"spacer"}),w.jsx("button",{className:"danger nodrag",onClick:r.onDelete,children:"✕"})]}),w.jsxs("div",{className:"node-subhead",children:[w.jsx("input",{type:"text",className:"nodrag label-input",placeholder:u("label_ph"),value:i.label??"",onChange:g=>r.onChange({...i,label:g.target.value||void 0})}),w.jsxs("select",{className:"nodrag",value:i.on_error==="continue"?"continue":"stop",onChange:g=>r.onChange({...i,on_error:g.target.value==="continue"?"continue":void 0}),children:[w.jsx("option",{value:"stop",children:u("on_error_stop")}),w.jsx("option",{value:"continue",children:u("on_error_continue")})]})]}),w.jsxs("div",{className:"node-body nodrag",children:[!c&&w.jsxs("div",{className:"hint",children:[u("unknown_step"),": ",i.type]}),c&&w.jsx(lm,{values:i,fields:c.fields,lang:a,showScope:d==="loop"||i.type==="extract_row",onChange:m}),i.type==="extract_row"&&w.jsx(mk,{fields:i.fields??[],lang:a,t:u,onChange:g=>r.onChange({...i,fields:g})}),d==="if"&&w.jsxs("div",{className:"branches nodrag",children:[v.map((g,x)=>w.jsxs("div",{className:"branch",children:[w.jsxs("div",{className:"branch-head",children:[w.jsx("strong",{children:u("branch_case",{n:x+1})}),v.length>1&&w.jsx("button",{className:"danger tiny",onClick:()=>r.onChange({...i,branches:v.filter((S,j)=>j!==x)}),children:u("remove_branch")})]}),w.jsx(gk,{condition:g.condition,schema:l,lang:a,t:u,showScope:!0,onChange:S=>y(x,{condition:S})})]},x)),w.jsx("button",{className:"secondary tiny",onClick:()=>r.onChange({...i,branches:[...v,Fu()]}),children:u("add_branch")})]})]}),w.jsx("div",{className:"node-outs",children:h.map((g,x)=>w.jsxs("div",{className:"out-col",children:[w.jsx("span",{className:"out-label",children:sm(g)||u("out_next")}),w.jsx(co,{type:"source",position:_e.Bottom,id:g,style:{left:`${(x+.5)/h.length*100}%`}})]},g))})]})}const am="application/rpa-step",um="application/rpa-block",vk=["navigation","interaction","data","control","files","desktop"],xk={navigation:{sv:"Navigering",en:"Navigation"},interaction:{sv:"Interaktion",en:"Interaction"},data:{sv:"Data / variabler",en:"Data / variables"},control:{sv:"Kontrollflöde",en:"Control flow"},files:{sv:"Filer",en:"Files"},desktop:{sv:"Desktop (Windows)",en:"Desktop (Windows)"}};function wk({schema:t,lang:r,t:i,blocksRefreshKey:l,onSaveSelectionAsBlock:a,onAddStep:u,onInsertBlock:c}){const[d,h]=R.useState("steps"),[m,v]=R.useState(""),[y,g]=R.useState(new Set),[x,S]=R.useState([]);R.useEffect(()=>{Oe.listBlocks().then(S).catch(()=>S([]))},[l]);const j=R.useMemo(()=>{var I;const E=m.trim().toLowerCase(),N={};for(const k of t.step_types){const M=_r(k,r).toLowerCase();E&&!M.includes(E)&&!k.type.includes(E)||(N[I=k.category]??(N[I]=[])).push(k)}return vk.filter(k=>{var M;return(M=N[k])==null?void 0:M.length}).map(k=>({cat:k,steps:N[k]}))},[t,r,m]);return w.jsxs("div",{className:"palette",children:[w.jsxs("div",{className:"palette-tabs",children:[w.jsx("button",{className:d==="steps"?"on":"",onClick:()=>h("steps"),children:i("palette")}),w.jsx("button",{className:d==="blocks"?"on":"",onClick:()=>h("blocks"),children:i("palette_blocks")})]}),d==="steps"&&w.jsxs(w.Fragment,{children:[w.jsx("input",{className:"palette-search",placeholder:i("palette_search"),value:m,onChange:E=>v(E.target.value)}),w.jsx("div",{className:"palette-scroll",children:j.map(({cat:E,steps:N})=>{var k;const I=y.has(E)&&!m;return w.jsxs("div",{className:"palette-group",children:[w.jsxs("button",{className:"palette-group-head",onClick:()=>g(M=>{const F=new Set(M);return F.has(E)?F.delete(E):F.add(E),F}),children:[I?"▸":"▾"," ",((k=xk[E])==null?void 0:k[r])??E]}),!I&&N.map(M=>w.jsxs("div",{className:"palette-item cat-"+M.category,draggable:!0,title:(M.help??"")+"  ·  "+i("palette_click_add"),onDragStart:F=>{F.dataTransfer.setData(am,M.type),F.dataTransfer.setData("text/plain",M.type),F.dataTransfer.effectAllowed="copy"},onDoubleClick:()=>u(M.type),children:[_r(M,r),w.jsx("button",{className:"palette-add",title:i("palette_click_add"),onClick:()=>u(M.type),children:"+"})]},M.type))]},E)})})]}),d==="blocks"&&w.jsxs("div",{className:"palette-scroll",children:[w.jsx("button",{className:"secondary palette-save-block",onClick:a,children:i("block_save_selection")}),x.length===0&&w.jsx("p",{className:"hint",children:i("block_none")}),x.map(E=>w.jsxs("div",{className:"palette-block",draggable:!0,title:E.description,onDragStart:N=>{N.dataTransfer.setData(um,E.name),N.dataTransfer.setData("text/plain",E.name),N.dataTransfer.effectAllowed="copy"},onDoubleClick:()=>c(E.name),children:[w.jsxs("div",{className:"palette-block-name",children:[E.name,w.jsx("button",{className:"palette-add",title:i("block_insert"),onClick:()=>c(E.name),children:i("block_insert")})]}),w.jsx("div",{className:"hint",children:E.description||`${E.step_count} steg`})]},E.name))]})]})}const _k={step:yk},Sk=R.forwardRef(function(r,i){return w.jsx(em,{children:w.jsx(kk,{...r,innerRef:i})})});function kk({flow:t,schema:r,lang:i,t:l,onChange:a,onSelectionChange:u,innerRef:c}){const d=El(),h=R.useMemo(()=>Zs(t),[t]),[m,v]=R.useState(()=>Ek(h.nodes,h.edges)),[y,g]=R.useState(()=>h.edges),x=R.useRef(!0);R.useEffect(()=>{if(x.current){x.current=!1;return}a({nodes:m,edges:y,start:Ou(m,y)})},[m,y,a]);const S=R.useCallback((V,C)=>v(b=>b.map($=>$.id===V?C:$)),[]),j=R.useCallback(V=>{v(C=>C.filter(b=>b.id!==V)),g(C=>C.filter(b=>b.source!==V&&b.target!==V))},[]),E=R.useCallback(()=>{window.setTimeout(()=>d.fitView({duration:300,padding:.15}),60)},[d]);R.useImperativeHandle(c,()=>({addNode:V=>{v(C=>[...C,$u(V,C)]),E()},addNodeType:V=>{v(C=>[...C,$u(eo(r,V),C)]),E()},insertGraph:(V,C)=>{const b=ep(V,C);v($=>[...$,...b.nodes.map((U,z)=>({...U,position:Nk($,z,U.position)}))]),g($=>[...$,...b.edges]),E()}}),[r,E]);const N=R.useMemo(()=>m.map(V=>({id:V.id,type:"step",position:V.position??{x:0,y:0},data:{step:V,schema:r,lang:i,t:l,onChange:C=>S(V.id,C),onDelete:()=>j(V.id)}})),[m,r,i,l,S,j]),I=R.useMemo(()=>Ou(m,y),[m,y]),k=R.useMemo(()=>y.map(V=>{const C=V.sourceHandle&&V.sourceHandle!=="out"?V.sourceHandle:void 0;return{id:V.id,source:V.source,target:V.target,sourceHandle:V.sourceHandle??null,targetHandle:V.targetHandle??null,label:C?sm(C):void 0,animated:V.sourceHandle==="each",style:V.sourceHandle==="each"?{stroke:"#8a3ffc"}:void 0}}),[y]),M=R.useCallback(V=>{v(C=>{let b=C;for(const $ of V){if($.type==="position"&&$.position&&$.dragging){b===C&&(b=[...C]);const U=b.findIndex(z=>z.id===$.id);U>=0&&(b[U]={...b[U],position:{x:Math.round($.position.x),y:Math.round($.position.y)}})}$.type==="remove"&&(b=b.filter(U=>U.id!==$.id))}return b})},[]),F=R.useCallback(V=>{const C=V.filter(b=>b.type==="remove").map(b=>b.id);C.length&&g(b=>b.filter($=>!C.includes($.id)))},[]),D=R.useCallback(V=>{if(!V.source||!V.target||V.source===V.target||(V.targetHandle??"in")!=="in")return!1;const b=V.sourceHandle??"out",$=m.find(U=>U.id===V.source);return!(!$||!im(r,$).includes(b)||y.some(U=>U.source===V.source&&(U.sourceHandle??"out")===b))},[m,y,r]),W=R.useCallback(V=>{D(V)&&g(C=>[...C,{id:`e-${Math.random().toString(36).slice(2,10)}`,source:V.source,target:V.target,sourceHandle:V.sourceHandle??"out",targetHandle:"in"}])},[D]),Y=R.useRef(""),K=R.useCallback(({nodes:V})=>{const C=V.map(b=>b.id).sort().join(",");C!==Y.current&&(Y.current=C,u(C?C.split(","):[]))},[u]),ne=R.useCallback(V=>{V.preventDefault(),V.dataTransfer.dropEffect="copy"},[]),Z=R.useCallback(async V=>{var U;V.preventDefault();const C=V.dataTransfer.getData(am),b=V.dataTransfer.getData(um);let $={x:0,y:0};try{$=d.screenToFlowPosition({x:V.clientX,y:V.clientY})}catch{}if(C){v(z=>[...z,eo(r,C,{x:Math.round($.x),y:Math.round($.y)})]);return}if(b)try{const z=await Oe.getBlock(b),A=ep(z.nodes??[],z.edges??[]),H=((U=A.nodes[0])==null?void 0:U.position)??{x:0,y:0};v(P=>[...P,...A.nodes.map(L=>{var ee,te;return{...L,position:{x:Math.round($.x+((((ee=L.position)==null?void 0:ee.x)??0)-H.x)),y:Math.round($.y+((((te=L.position)==null?void 0:te.y)??0)-H.y))}}})]),g(P=>[...P,...A.edges])}catch{}},[d,r]),J=R.useCallback(()=>{v(V=>{const C=gh(V,y);return V.map(b=>({...b,position:C[b.id]??b.position}))}),E()},[y,E]);return w.jsx("div",{className:"canvas",children:w.jsxs(DS,{nodes:N,edges:k,nodeTypes:_k,onNodesChange:M,onEdgesChange:F,onConnect:W,isValidConnection:D,onSelectionChange:K,onDragOver:ne,onDrop:Z,nodesConnectable:!0,fitView:!0,minZoom:.2,proOptions:{hideAttribution:!0},children:[w.jsx(HS,{}),w.jsx(ak,{pannable:!0,zoomable:!0}),w.jsx(KS,{}),w.jsxs(Ei,{position:"top-left",className:"canvas-panel",children:[w.jsx("button",{className:"secondary",onClick:()=>{v(V=>[...V,$u(eo(r,"goto"),V)]),E()},children:l("add_step")}),w.jsx("button",{className:"secondary",onClick:J,children:l("relayout")}),I&&w.jsx("span",{className:"canvas-start-hint",children:l("start_node")})]})]})})}function Ek(t,r){if(t.length===0)return[];const i=t.some(c=>!c.position),l=t.map(c=>{var d;return((d=c.position)==null?void 0:d.x)??0}),a=Math.max(...l)-Math.min(...l),u=t.length>3&&a<120;if(i||u){const c=gh(t,r);return t.map(d=>({...d,position:c[d.id]??d.position??{x:0,y:0}}))}return t.map(c=>({...c}))}function $u(t,r){if(t.position)return t;if(r.length===0)return{...t,position:{x:0,y:0}};const i=r[r.length-1].position??{x:0},l=r.reduce((a,u)=>{var c;return Math.max(a,((c=u.position)==null?void 0:c.y)??0)},0);return{...t,position:{x:i.x,y:l+230}}}function Nk(t,r,i){const l=t.reduce((u,c)=>{var d;return Math.max(u,((d=c.position)==null?void 0:d.y)??0)},0),a=t.length?l+230:0;return{x:(i==null?void 0:i.x)??0,y:a+r*230}}function Ck({t,runId:r,run:i}){const l=R.useRef(null);R.useEffect(()=>{l.current&&(l.current.scrollTop=l.current.scrollHeight)},[i==null?void 0:i.logs]);const a=i==null?void 0:i.status;return w.jsxs("div",{className:"panel",children:[w.jsxs("div",{className:"panel-head",children:[w.jsx("strong",{children:t("run_log")}),a&&w.jsx("span",{className:"badge badge-"+a,children:t(a==="running"?"status_running":a==="done"?"status_done":"status_error")}),w.jsx("span",{className:"spacer"}),(i==null?void 0:i.browser_open)&&r&&w.jsx("button",{className:"secondary",onClick:()=>Oe.closeBrowser(r),children:t("close_browser")}),(i==null?void 0:i.trace_ready)&&r&&w.jsx("button",{className:"secondary",onClick:()=>Oe.showTrace(r),children:t("show_trace")})]}),w.jsx("pre",{className:"log",ref:l,children:((i==null?void 0:i.logs)??[]).join(`
-`)})]})}function Mk(t,r){return Array.isArray(r)?t("var_list",{n:r.length}):r&&typeof r=="object"?t("var_object"):typeof r=="string"?t("var_text",{n:r.length}):typeof r}function jk({t,vars:r}){const[i,l]=R.useState(new Set),a=Object.keys(r??{});return w.jsxs("div",{className:"panel",children:[w.jsx("strong",{children:t("variables")}),w.jsx("p",{className:"hint",children:t("vars_hint")}),a.length===0&&w.jsx("p",{className:"hint",children:t("no_vars")}),a.map(u=>{const c=i.has(u),d=r[u];return w.jsxs("div",{className:"var-row",children:[w.jsxs("div",{className:"var-head",onClick:()=>l(h=>{const m=new Set(h);return m.has(u)?m.delete(u):m.add(u),m}),children:[u," ",w.jsxs("span",{className:"hint",children:["(",Mk(t,d),")"]})]}),c&&w.jsx("pre",{className:"var-value",children:typeof d=="string"?d:JSON.stringify(d,null,2)})]},u)})]})}function Pk({t,currentName:r,flow:i,onApply:l}){const[a,u]=R.useState(""),[c,d]=R.useState(!1),[h,m]=R.useState(null);async function v(){if(!(!a.trim()||!r)){d(!0),m(null);try{const y=await Oe.assist(r,a.trim(),i);l({nodes:y.nodes,edges:y.edges,start:y.start??null,settings:y.settings}),m({text:t("assist_applied")+(y.explanation?`
-
-`+y.explanation:""),error:!1})}catch(y){if(y instanceof Yn&&y.status===501)m({text:t("assist_unavailable"),error:!0});else{const g=y instanceof Yn?String(y.detail):String(y);m({text:t("assist_failed",{msg:g}),error:!0})}}finally{d(!1)}}}return w.jsxs("div",{className:"panel",children:[w.jsx("strong",{children:t("assist_title")}),w.jsx("p",{className:"hint",children:t("assist_hint")}),w.jsx("textarea",{rows:3,placeholder:t("assist_ph"),value:a,onChange:y=>u(y.target.value)}),w.jsx("button",{onClick:v,disabled:c||!r,children:t(c?"assist_working":"assist_btn")}),h&&w.jsx("p",{className:"assist-msg"+(h.error?" error":""),children:h.text})]})}function Ik({open:t,schema:r,lang:i,t:l,settings:a,onClose:u,onSave:c}){const d=R.useRef(null);R.useEffect(()=>{const m=d.current;m&&(t&&!m.open&&m.showModal(),!t&&m.open&&m.close())},[t]);function h(m){m.preventDefault();const v=m.currentTarget,y={};for(const g of r.settings){const x=v.elements.namedItem(g.key);x&&(g.kind==="bool"?y[g.key]=x.checked:g.kind==="number"?y[g.key]=Number(x.value)||Number(g.default)||0:y[g.key]=x.value||String(g.default))}c(y)}return w.jsx("dialog",{ref:d,onClose:u,children:w.jsxs("form",{onSubmit:h,method:"dialog",children:[w.jsx("h2",{children:l("settings")}),w.jsx("p",{className:"hint",children:l("settings_hint")}),w.jsx("div",{className:"fields",children:r.settings.map(m=>w.jsxs("label",{className:"field"+(m.kind==="bool"?" field-bool":""),children:[w.jsx("span",{children:_r(m,i)}),m.kind==="bool"?w.jsx("input",{type:"checkbox",name:m.key,defaultChecked:a[m.key]===!0}):w.jsx("input",{type:m.kind==="number"?"number":"text",name:m.key,defaultValue:String(a[m.key]??m.default)})]},m.key))}),w.jsxs("div",{className:"dialog-actions",children:[w.jsx("button",{type:"button",className:"secondary",onClick:u,children:l("cancel")}),w.jsx("button",{type:"submit",children:l("save")})]})]})})}function Tk({open:t,t:r,onClose:i,onCreateStep:l}){const a=R.useRef(null),[u,c]=R.useState([]),[d,h]=R.useState(""),[m,v]=R.useState([]),[y,g]=R.useState(null),[x,S]=R.useState(!1);R.useEffect(()=>{const I=a.current;I&&(t&&!I.open&&(I.showModal(),g(null),v([]),Oe.desktopWindows().then(k=>{c(k),k.length&&h(k[0])}).catch(k=>g(k instanceof Yn&&k.status===501?r("inspect_unavailable"):String(k)))),!t&&I.open&&I.close())},[t,r]);async function j(){if(d){S(!0),g(null);try{v(await Oe.inspectWindow(d))}catch(I){g(I instanceof Yn?String(I.detail):String(I))}finally{S(!1)}}}function E(I){return I.auto_id?{by:"auto_id",value:I.auto_id}:I.name?{by:"name",value:I.name}:I.class_name?{by:"class_name",value:I.class_name}:{by:"name",value:""}}function N(I,k){const M=E(I),F={type:k,id:ro(),by:M.by,value:M.value};I.control_type&&(F.control_type=I.control_type),k==="desktop_type"&&(F.text=""),l(F)}return w.jsxs("dialog",{ref:a,onClose:i,className:"inspect-dialog",children:[w.jsx("h2",{children:r("inspect_window")}),w.jsx("p",{className:"hint",children:r("inspect_hint")}),w.jsxs("div",{className:"inspect-controls",children:[w.jsxs("select",{value:d,onChange:I=>h(I.target.value),children:[u.length===0&&w.jsx("option",{value:"",children:r("inspect_none")}),u.map(I=>w.jsx("option",{value:I,children:I},I))]}),w.jsx("button",{onClick:j,disabled:x||!d,children:x?"…":r("inspect_load")}),w.jsx("span",{className:"spacer"}),w.jsx("button",{type:"button",className:"secondary",onClick:i,children:r("cancel")})]}),y&&w.jsx("p",{className:"assist-msg error",children:y}),m.length>0&&w.jsx("div",{className:"inspect-table",children:m.map((I,k)=>{const M=E(I);return w.jsxs("div",{className:"inspect-row",style:{paddingLeft:8+I.depth*14},children:[w.jsx("code",{className:"inspect-ct",children:I.control_type||"?"}),w.jsx("span",{className:"inspect-name",children:I.name||w.jsx("em",{children:"—"})}),I.auto_id&&w.jsxs("code",{className:"inspect-aid",children:["#",I.auto_id]}),w.jsx("span",{className:"spacer"}),w.jsx("button",{className:"secondary tiny",title:`${M.by}=${M.value}`,onClick:()=>{var F;return(F=navigator.clipboard)==null?void 0:F.writeText(`${M.by}=${M.value}`)},children:r("inspect_copy")}),w.jsx("button",{className:"secondary tiny",onClick:()=>N(I,"desktop_click"),children:r("inspect_make_click")}),w.jsx("button",{className:"secondary tiny",onClick:()=>N(I,"desktop_type"),children:r("inspect_make_type")})]},k)})})]})}function Rk({open:t,t:r,flow:i,flowName:l,onRun:a,onSaveSet:u,onClose:c}){const d=R.useRef(null),h=R.useMemo(()=>i.inputs??[],[i.inputs]),m=i.input_sets??{},v=Object.keys(m),[y,g]=R.useState(""),[x,S]=R.useState({}),[j,E]=R.useState([]);R.useEffect(()=>{const M=d.current;if(M){if(t&&!M.open){M.showModal();let F=J0(h);try{const D=JSON.parse(localStorage.getItem("rpa_runvars_"+l)||"{}");F={...F,...D}}catch{}S(F),g(""),E([])}!t&&M.open&&M.close()}},[t,h,l]);function N(M){g(M),M&&m[M]&&S(F=>({...F,...m[M]}))}function I(){const M=tp(x,j);try{localStorage.setItem("rpa_runvars_"+l,JSON.stringify(M))}catch{}a(M),c()}function k(){const M=prompt(r("runp_set_name_prompt"));M&&u(M,tp(x,j))}return w.jsxs("dialog",{ref:d,onClose:c,children:[w.jsx("h2",{children:r("runp_title")}),w.jsx("p",{className:"hint",children:r("runp_hint")}),v.length>0&&w.jsxs("label",{className:"field",children:[w.jsx("span",{children:r("runp_set")}),w.jsxs("select",{value:y,onChange:M=>N(M.target.value),children:[w.jsx("option",{value:"",children:r("runp_set_none")}),v.map(M=>w.jsx("option",{value:M,children:M},M))]})]}),w.jsx("div",{className:"fields",children:h.map(M=>{const F=Z0(M.options),D=x[M.name]??"";return w.jsxs("label",{className:"field",title:M.description,children:[w.jsx("span",{children:M.label||M.name}),F.length>0?w.jsxs("select",{value:D,onChange:W=>S(Y=>({...Y,[M.name]:W.target.value})),children:[!F.includes(D)&&w.jsx("option",{value:D,children:D||"—"}),F.map(W=>w.jsx("option",{value:W,children:W},W))]}):w.jsx("input",{type:"text",value:D,onChange:W=>S(Y=>({...Y,[M.name]:W.target.value}))})]},M.name)})}),w.jsxs("div",{className:"adhoc",children:[j.map((M,F)=>w.jsxs("div",{className:"adhoc-row",children:[w.jsx("input",{type:"text",placeholder:r("runp_var_name"),value:M.name,onChange:D=>E(W=>W.map((Y,K)=>K===F?{...Y,name:D.target.value}:Y))}),w.jsx("input",{type:"text",placeholder:r("runp_var_value"),value:M.value,onChange:D=>E(W=>W.map((Y,K)=>K===F?{...Y,value:D.target.value}:Y))}),w.jsx("button",{className:"danger tiny",onClick:()=>E(D=>D.filter((W,Y)=>Y!==F)),children:"✕"})]},F)),w.jsx("button",{className:"secondary tiny",onClick:()=>E(M=>[...M,{name:"",value:""}]),children:r("runp_add_var")})]}),w.jsxs("div",{className:"dialog-actions",children:[w.jsx("button",{type:"button",className:"secondary",onClick:k,children:r("runp_save_set")}),w.jsx("span",{className:"spacer"}),w.jsx("button",{type:"button",className:"secondary",onClick:c,children:r("cancel")}),w.jsx("button",{type:"button",onClick:I,children:r("run")})]})]})}function zk({open:t,t:r,lang:i,schema:l,flow:a,onChange:u,onClose:c}){const d=R.useRef(null),[h,m]=R.useState([]),[v,y]=R.useState({});R.useEffect(()=>{const j=d.current;j&&(t&&!j.open&&(j.showModal(),m((a.inputs??[]).map(E=>({...E}))),y({...a.input_sets??{}})),!t&&j.open&&j.close())},[t,a.inputs,a.input_sets]);const g=l.input_fields??[];function x(j,E){m(N=>N.map((I,k)=>k===j?{...I,...E}:I))}function S(){const j=h.filter(E=>(E.name??"").trim());u({inputs:j,input_sets:v}),c()}return w.jsxs("dialog",{ref:d,onClose:c,children:[w.jsx("h2",{children:r("inputs_title")}),w.jsx("p",{className:"hint",children:r("inputs_hint")}),w.jsxs("div",{className:"inputs-list",children:[h.map((j,E)=>w.jsxs("div",{className:"input-row",children:[w.jsx("div",{className:"fields",children:g.map(N=>w.jsxs("label",{className:"field",title:N.help,children:[w.jsx("span",{children:_r(N,i)}),w.jsx("input",{type:"text",value:String(j[N.key]??""),onChange:I=>x(E,{[N.key]:I.target.value})})]},N.key))}),w.jsx("button",{className:"danger tiny",onClick:()=>m(N=>N.filter((I,k)=>k!==E)),children:r("remove")})]},E)),w.jsx("button",{className:"secondary",onClick:()=>m(j=>[...j,{name:""}]),children:r("inputs_add")})]}),Object.keys(v).length>0&&w.jsxs(w.Fragment,{children:[w.jsx("strong",{className:"inputs-sets-title",children:r("inputs_sets")}),Object.entries(v).map(([j,E])=>w.jsxs("div",{className:"set-row",children:[w.jsxs("span",{children:[j," ",w.jsxs("span",{className:"hint",children:["(",Object.keys(E).length,")"]})]}),w.jsx("span",{className:"spacer"}),w.jsx("button",{className:"secondary tiny",onClick:()=>{const N=prompt(r("inputs_set_rename"),j);N&&N!==j&&y(({[j]:I,...k})=>({...k,[N]:I}))},children:r("inputs_set_rename")}),w.jsx("button",{className:"danger tiny",onClick:()=>y(({[j]:N,...I})=>I),children:r("remove")})]},j))]}),w.jsxs("div",{className:"dialog-actions",children:[w.jsx("button",{type:"button",className:"secondary",onClick:c,children:r("cancel")}),w.jsx("button",{type:"button",onClick:S,children:r("save")})]})]})}const bu={format:"graph",nodes:[],edges:[],start:null,settings:{},layout:{},inputs:[],input_sets:{}};function Lk(){const[t,r]=R.useState(null),[i,l]=R.useState(()=>localStorage.getItem("rpa_lang")||"en"),[a,u]=R.useState(()=>localStorage.getItem("rpa_close_mode")||"always"),[c,d]=R.useState([]),[h,m]=R.useState(null),[v,y]=R.useState(bu),[g,x]=R.useState(!1),[S,j]=R.useState(0),[E,N]=R.useState(!1),[I,k]=R.useState(!1),[M,F]=R.useState(!1),[D,W]=R.useState(!1),[Y,K]=R.useState([]),[ne,Z]=R.useState(0),[J,V]=R.useState(null),[C,b]=R.useState(null),[$,U]=R.useState(null),z=R.useRef(null),A=R.useRef(null),H=R.useMemo(()=>G0(i),[i]);R.useEffect(()=>{localStorage.setItem("rpa_lang",i),document.title=H("page_title")},[i]),R.useEffect(()=>localStorage.setItem("rpa_close_mode",a),[a]),R.useEffect(()=>{(async()=>{const se=await Oe.schema();r(se);const ce=await Oe.listFlows();if(d(ce),ce.length)await P(ce[0]);else{const ke=eo(se,"goto",{x:0,y:0});ke.url="https://www.1177.se/";const Me=eo(se,"wait_for_login",{x:300,y:0}),Ke=Zs({nodes:[ke,Me],edges:[{id:"e0",source:ke.id,target:Me.id,sourceHandle:"out",targetHandle:"in"}],start:ke.id});m("standard"),y(Ke),x(!0),j(Re=>Re+1)}})()},[]);const P=R.useCallback(async se=>{const ce=Zs(await Oe.getFlow(se));m(se),y(ce),x(!1),j(ke=>ke+1)},[]),L=R.useCallback(se=>{y(ce=>({...ce,nodes:se.nodes,edges:se.edges,start:se.start})),x(!0)},[]),ee=R.useCallback(se=>{var ce;return(ce=A.current)==null?void 0:ce.addNodeType(se)},[]),te=R.useCallback(async se=>{var ce;try{const ke=await Oe.getBlock(se);(ce=A.current)==null||ce.insertGraph(ke.nodes??[],ke.edges??[])}catch{}},[]);async function ue(){const se=v.nodes.filter(Re=>Y.includes(Re.id));if(se.length===0){V(H("block_select_first"));return}const ce=new Set(se.map(Re=>Re.id)),ke=(v.edges??[]).filter(Re=>ce.has(Re.source)&&ce.has(Re.target)),Me=prompt(H("block_name_prompt"));if(!Me)return;const Ke=prompt(H("block_desc_prompt"))||"";try{await Oe.saveBlock(Me,{name:Me,description:Ke,nodes:se,edges:ke,settings:{}}),Z(Re=>Re+1),V(H("block_saved"))}catch(Re){const Ze=Re instanceof Yn?JSON.stringify(Re.detail):String(Re);V(H("save_failed",{msg:Ze}))}}const de=R.useCallback(async()=>{if(!h)return!1;try{await Oe.saveFlow(h,v),x(!1);const se=await Oe.listFlows();return d(se),!0}catch(se){const ce=se instanceof Yn?JSON.stringify(se.detail):String(se);return V(H("save_failed",{msg:ce})),!1}},[h,v,H]);async function fe(){const se=prompt(H("new_flow_prompt"));if(!se||!t)return;const ce={...bu};m(se),y(ce),j(ke=>ke+1);try{await Oe.saveFlow(se,ce),d(await Oe.listFlows()),x(!1)}catch{x(!0)}}async function G(){if(!h||!confirm(H("delete_flow_confirm",{name:h})))return;await Oe.deleteFlow(h);const se=await Oe.listFlows();d(se),se.length?await P(se[0]):(m(null),y(bu),j(ce=>ce+1))}const ie=()=>{z.current&&window.clearTimeout(z.current),z.current=null},he=R.useCallback(se=>{Oe.run(se).then(ce=>{U(ce),(ce.status==="running"||ce.browser_open)&&(z.current=window.setTimeout(()=>he(se),1e3))})},[]);async function we(se){if(!h)return;await de(),ie(),U(null);const{run_id:ce}=await Oe.runFlow(h,a,se);b(ce),he(ce)}function xe(){h&&(ey(v)?W(!0):we({}))}function Se(se,ce){y(ke=>({...ke,input_sets:{...ke.input_sets??{},[se]:ce}})),x(!0)}return R.useEffect(()=>ie,[]),t?w.jsxs("div",{className:"app",children:[w.jsx(ny,{t:H,lang:i,setLang:l,flowNames:c,currentName:h,onSelect:P,onNew:fe,onDelete:G,onSave:de,onRun:xe,dirty:g,running:($==null?void 0:$.status)==="running",closeMode:a,setCloseMode:u,onOpenSettings:()=>N(!0),onOpenInspect:()=>k(!0),onOpenInputs:()=>F(!0)}),w.jsxs("main",{children:[w.jsx(wk,{schema:t,lang:i,t:H,blocksRefreshKey:ne,onSaveSelectionAsBlock:ue,onAddStep:ee,onInsertBlock:te}),w.jsx(Sk,{ref:A,flow:v,schema:t,lang:i,t:H,onChange:L,onSelectionChange:K},S),w.jsxs("aside",{className:"side",children:[w.jsx(Pk,{t:H,currentName:h,flow:v,onApply:se=>{y(ce=>Zs({...se,inputs:ce.inputs,input_sets:ce.input_sets})),x(!0),j(ce=>ce+1)}}),w.jsx(Ck,{t:H,runId:C,run:$}),w.jsx(jk,{t:H,vars:($==null?void 0:$.vars)??{}})]})]}),w.jsx(Ik,{open:E,schema:t,lang:i,t:H,settings:v.settings,onClose:()=>N(!1),onSave:se=>{y(ce=>({...ce,settings:se})),x(!0),N(!1)}}),w.jsx(Tk,{open:I,t:H,onClose:()=>k(!1),onCreateStep:se=>{var ce;(ce=A.current)==null||ce.addNode(se),k(!1)}}),w.jsx(zk,{open:M,t:H,lang:i,schema:t,flow:v,onClose:()=>F(!1),onChange:({inputs:se,input_sets:ce})=>{y(ke=>({...ke,inputs:se,input_sets:ce})),x(!0)}}),w.jsx(Rk,{open:D,t:H,flow:v,flowName:h,onClose:()=>W(!1),onRun:we,onSaveSet:Se}),J&&w.jsx("div",{className:"toast",onClick:()=>V(null),children:J})]}):w.jsx("div",{className:"loading",children:"…"})}Q0.createRoot(document.getElementById("root")).render(w.jsx(ph.StrictMode,{children:w.jsx(Lk,{})}));
diff --git a/webui/static/assets/index-tNGal5OM.css b/webui/static/assets/index-xkFS8M7o.css
similarity index 80%
rename from webui/static/assets/index-tNGal5OM.css
rename to webui/static/assets/index-xkFS8M7o.css
index c390998..f717e17 100644
--- a/webui/static/assets/index-tNGal5OM.css
+++ b/webui/static/assets/index-xkFS8M7o.css
@@ -1 +1 @@
-.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}:root{color-scheme:light dark;--bg: #f5f5f7;--panel: #ffffff;--border: #d8d8dd;--text: #1c1c1e;--muted: #6b6b70;--accent: #2f6fed;--accent-text: #ffffff;--danger: #d1453b;--nest: #eef2fb}@media(prefers-color-scheme:dark){:root{--bg: #1c1c1e;--panel: #2a2a2d;--border: #444448;--text: #f2f2f3;--muted: #9a9a9e;--nest: #232b3d}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}.app{display:flex;flex-direction:column;height:100%}.loading{display:grid;place-items:center;height:100%;color:var(--muted)}select,input,button,textarea,a.secondary{font:inherit;padding:6px 9px;border-radius:6px;border:1px solid var(--border);background:var(--panel);color:var(--text)}textarea{width:100%;resize:vertical}button{cursor:pointer;background:var(--accent);color:var(--accent-text);border:none}button.secondary,a.secondary{background:transparent;color:var(--text);border:1px solid var(--border);text-decoration:none;display:inline-flex;align-items:center}button.danger{background:var(--danger);color:#fff}button.icon{padding:2px 7px;background:transparent;color:var(--text);border:1px solid var(--border)}button.tiny{padding:1px 8px;font-size:12px}button:disabled{opacity:.4;cursor:not-allowed}header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;background:var(--panel);border-bottom:1px solid var(--border)}header h1{font-size:15px;margin:0 10px 0 0;white-space:nowrap}.spacer{flex:1}.dirty-dot{width:9px;height:9px;border-radius:50%;background:var(--border)}.dirty-dot.on{background:#f5b942}main{flex:1;display:grid;grid-template-columns:210px minmax(0,1fr) 360px;min-height:0}.canvas{position:relative;min-width:0}.side{border-left:1px solid var(--border);background:var(--bg);overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:12px}.menu-wrap{position:relative}.menu-popover{position:absolute;right:0;top:calc(100% + 6px);z-index:50;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 6px 24px #0000002e;padding:6px;min-width:220px;display:flex;flex-direction:column;gap:2px}.menu-section{font-size:11px;color:var(--muted);padding:6px 8px 2px;text-transform:uppercase;letter-spacing:.04em}.menu-item{display:flex;align-items:center;justify-content:space-between;gap:8px;background:transparent;color:var(--text);border:none;text-align:left;padding:7px 8px;border-radius:6px;font:inherit;text-decoration:none}.menu-item:hover:not(:disabled){background:var(--nest)}.menu-field select{padding:3px 6px}.palette{border-right:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;min-height:0}.palette-tabs{display:flex;border-bottom:1px solid var(--border)}.palette-tabs button{flex:1;background:transparent;color:var(--muted);border:none;border-bottom:2px solid transparent;padding:8px 6px;font:inherit;border-radius:0}.palette-tabs button.on{color:var(--text);border-bottom-color:var(--accent)}.palette-search{margin:8px}.palette-scroll{overflow-y:auto;padding:0 8px 12px;flex:1}.palette-group-head{width:100%;text-align:left;background:transparent;color:var(--muted);border:none;padding:8px 2px 4px;font-size:11px;text-transform:uppercase;letter-spacing:.03em}.palette-item,.palette-block{border:1px solid var(--border);border-radius:6px;padding:6px 8px;margin-bottom:4px;background:var(--bg);font-size:12px;cursor:grab;display:flex;align-items:center;justify-content:space-between;gap:6px}.palette-item:hover,.palette-block:hover{border-color:var(--accent)}.palette-add{flex:0 0 auto;padding:0 6px;line-height:1.6;font-size:11px;background:transparent;color:var(--accent);border:1px solid var(--border);border-radius:4px;opacity:0;transition:opacity .1s}.palette-item:hover .palette-add,.palette-block:hover .palette-add{opacity:1}.palette-block{flex-direction:column;align-items:stretch}.palette-block-name{display:flex;align-items:center;justify-content:space-between;font-weight:600}.palette-item.cat-control{border-left:3px solid #8a63d2}.palette-item.cat-files{border-left:3px solid #3aa757}.palette-item.cat-desktop{border-left:3px solid #d98a2b}.palette-block-name{font-weight:600}.palette-save-block{width:100%;margin:8px 0}.step-node select.type-select{max-width:150px;font-size:12px;padding:3px 6px}.drop-hover{outline:2px dashed var(--accent);outline-offset:2px;border-radius:6px}.inspect-dialog{width:min(760px,94vw)}.inspect-controls{display:flex;gap:8px;align-items:center;margin:8px 0}.inspect-controls select{flex:1}.inspect-table{max-height:50vh;overflow:auto;border:1px solid var(--border);border-radius:6px}.inspect-row{display:flex;align-items:center;gap:8px;padding:4px 8px;border-bottom:1px solid var(--border);font-size:12px}.inspect-row:hover{background:var(--nest)}.inspect-ct{color:var(--accent)}.inspect-name{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inspect-aid{color:var(--muted)}.adhoc{margin:10px 0}.adhoc-row{display:flex;gap:6px;margin-bottom:6px}.adhoc-row input{flex:1}.inputs-list{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.input-row{border:1px solid var(--border);border-radius:6px;padding:8px;display:flex;gap:8px;align-items:flex-start}.input-row .fields{flex:1}.inputs-sets-title{display:block;margin:10px 0 6px;font-size:13px}.set-row{display:flex;align-items:center;gap:6px;padding:6px 4px;border-bottom:1px solid var(--border);font-size:13px}dialog h2~.fields{margin-bottom:10px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px}.panel-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.hint{color:var(--muted);font-size:12px;margin:4px 0}.canvas-panel{display:flex;gap:6px}.step-node{position:relative;width:340px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:8px 10px;font-size:13px;box-shadow:0 1px 3px #00000014}.node-outs{margin-top:10px;display:flex;justify-content:space-around;gap:8px}.out-col{display:flex;flex-direction:column;align-items:center;gap:2px;position:relative}.out-label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.branches{margin-top:8px}.canvas-start-hint{font-size:11px;color:var(--muted);align-self:center}.step-node.disabled{opacity:.5}.step-node.cat-control{border-color:#8a63d2}.step-node.cat-files{border-color:#3aa757}.step-node.cat-desktop{border-color:#d98a2b}.node-head,.node-subhead,.mini-head{display:flex;align-items:center;gap:6px}.node-subhead{margin-top:6px}.node-body{margin-top:8px}.type-select{font-weight:600}.label-input{width:110px}.add-after{position:absolute;left:50%;bottom:-12px;transform:translate(-50%);width:22px;height:22px;border-radius:50%;padding:0;line-height:1;background:var(--panel);color:var(--accent);border:1px solid var(--accent)}.fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;margin-top:6px}.field{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--muted)}.field span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.field input,.field select{width:100%;color:var(--text)}.field-bool{flex-direction:row;align-items:center}.field-bool input{width:auto}.nested{margin-top:8px;padding:8px;border-left:3px solid var(--accent);border-radius:6px;background:var(--nest)}.nested-steps{display:flex;flex-direction:column;gap:6px}.mini-card{border:1px solid var(--border);border-radius:6px;padding:6px;background:var(--panel)}.mini-card.disabled{opacity:.5}.branch{border:1px dashed var(--border);border-radius:6px;padding:6px;margin-bottom:6px}.branch-head{display:flex;align-items:center;gap:6px;margin-bottom:4px}.else-toggle{display:flex;flex-direction:row;align-items:center;gap:6px;border-style:solid}.condition{margin:4px 0}.row-field{border:1px dashed var(--border);border-radius:6px;padding:6px;margin-bottom:6px}.row-field-head{display:flex;gap:6px;margin-bottom:4px}.badge{padding:2px 8px;border-radius:999px;font-size:12px}.badge-running{background:#f5b942;color:#222}.badge-done{background:#3aa757;color:#fff}.badge-error{background:var(--danger);color:#fff}.log{background:#111114;color:#d6d6d8;border-radius:8px;padding:10px;font-family:ui-monospace,Consolas,monospace;font-size:12px;height:320px;overflow-y:auto;white-space:pre-wrap;margin:0}.var-row{border:1px solid var(--border);border-radius:6px;margin-bottom:6px;overflow:hidden}.var-head{padding:6px 9px;cursor:pointer;font-family:ui-monospace,Consolas,monospace;font-size:12px;background:var(--bg)}.var-head:hover{background:var(--nest)}.var-value{margin:0;padding:8px 9px;background:#111114;color:#d6d6d8;font-family:ui-monospace,Consolas,monospace;font-size:12px;max-height:240px;overflow:auto;white-space:pre-wrap}.assist-msg{font-size:12px;white-space:pre-wrap;margin-top:6px}.assist-msg.error{color:var(--danger)}.image-field{grid-column:1 / -1}.image-field-row{display:flex;gap:6px;align-items:center}.image-field-row input{flex:1}.image-field-preview{margin-top:4px;max-height:120px;border:1px solid var(--border);border-radius:4px;background:#fff}dialog{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:20px;width:min(520px,92vw)}dialog::backdrop{background:#0006}dialog h2{margin:0 0 4px;font-size:16px}.dialog-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}.toast{position:fixed;bottom:16px;left:50%;transform:translate(-50%);background:var(--danger);color:#fff;padding:10px 16px;border-radius:8px;cursor:pointer;max-width:80vw;font-size:13px}.react-flow__attribution{display:none}
+.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}:root{color-scheme:light dark;--bg: #f5f5f7;--panel: #ffffff;--border: #d8d8dd;--text: #1c1c1e;--muted: #6b6b70;--accent: #2f6fed;--accent-text: #ffffff;--danger: #d1453b;--nest: #eef2fb}@media(prefers-color-scheme:dark){:root{--bg: #1c1c1e;--panel: #2a2a2d;--border: #444448;--text: #f2f2f3;--muted: #9a9a9e;--nest: #232b3d}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}.app{display:flex;flex-direction:column;height:100%}.loading{display:grid;place-items:center;height:100%;color:var(--muted)}select,input,button,textarea,a.secondary{font:inherit;padding:6px 9px;border-radius:6px;border:1px solid var(--border);background:var(--panel);color:var(--text)}textarea{width:100%;resize:vertical}button{cursor:pointer;background:var(--accent);color:var(--accent-text);border:none}button.secondary,a.secondary{background:transparent;color:var(--text);border:1px solid var(--border);text-decoration:none;display:inline-flex;align-items:center}button.danger{background:var(--danger);color:#fff}button.icon{padding:2px 7px;background:transparent;color:var(--text);border:1px solid var(--border)}button.tiny{padding:1px 8px;font-size:12px}button:disabled{opacity:.4;cursor:not-allowed}header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;background:var(--panel);border-bottom:1px solid var(--border)}header h1{font-size:15px;margin:0 10px 0 0;white-space:nowrap}.spacer{flex:1}.dirty-dot{width:9px;height:9px;border-radius:50%;background:var(--border)}.dirty-dot.on{background:#f5b942}main{flex:1;display:grid;grid-template-columns:210px minmax(0,1fr) 360px;min-height:0}.canvas{position:relative;min-width:0}.side{border-left:1px solid var(--border);background:var(--bg);overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:12px}.menu-wrap{position:relative}.menu-popover{position:absolute;right:0;top:calc(100% + 6px);z-index:50;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 6px 24px #0000002e;padding:6px;min-width:220px;display:flex;flex-direction:column;gap:2px}.menu-section{font-size:11px;color:var(--muted);padding:6px 8px 2px;text-transform:uppercase;letter-spacing:.04em}.menu-item{display:flex;align-items:center;justify-content:space-between;gap:8px;background:transparent;color:var(--text);border:none;text-align:left;padding:7px 8px;border-radius:6px;font:inherit;text-decoration:none}.menu-item:hover:not(:disabled){background:var(--nest)}.menu-field select{padding:3px 6px}.palette{border-right:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;min-height:0}.palette-tabs{display:flex;border-bottom:1px solid var(--border)}.palette-tabs button{flex:1;background:transparent;color:var(--muted);border:none;border-bottom:2px solid transparent;padding:8px 6px;font:inherit;border-radius:0}.palette-tabs button.on{color:var(--text);border-bottom-color:var(--accent)}.palette-search{margin:8px}.palette-scroll{overflow-y:auto;padding:0 8px 12px;flex:1}.palette-group-head{width:100%;text-align:left;background:transparent;color:var(--muted);border:none;padding:8px 2px 4px;font-size:11px;text-transform:uppercase;letter-spacing:.03em}.palette-item,.palette-block{border:1px solid var(--border);border-radius:6px;padding:6px 8px;margin-bottom:4px;background:var(--bg);font-size:12px;cursor:grab;display:flex;align-items:center;justify-content:space-between;gap:6px}.palette-item:hover,.palette-block:hover{border-color:var(--accent)}.palette-add{flex:0 0 auto;padding:0 6px;line-height:1.6;font-size:11px;background:transparent;color:var(--accent);border:1px solid var(--border);border-radius:4px;opacity:0;transition:opacity .1s}.palette-item:hover .palette-add,.palette-block:hover .palette-add{opacity:1}.palette-block{flex-direction:column;align-items:stretch}.palette-block-name{display:flex;align-items:center;justify-content:space-between;font-weight:600}.palette-item.cat-control{border-left:3px solid #8a63d2}.palette-item.cat-files{border-left:3px solid #3aa757}.palette-item.cat-desktop{border-left:3px solid #d98a2b}.palette-block-name{font-weight:600}.palette-save-block{width:100%;margin:8px 0}.step-node select.type-select{max-width:150px;font-size:12px;padding:3px 6px}.drop-hover{outline:2px dashed var(--accent);outline-offset:2px;border-radius:6px}.inspect-dialog{width:min(760px,94vw)}.inspect-controls{display:flex;gap:8px;align-items:center;margin:8px 0}.inspect-controls select{flex:1}.inspect-table{max-height:50vh;overflow:auto;border:1px solid var(--border);border-radius:6px}.inspect-row{display:flex;align-items:center;gap:8px;padding:4px 8px;border-bottom:1px solid var(--border);font-size:12px}.inspect-row:hover{background:var(--nest)}.inspect-ct{color:var(--accent)}.inspect-name{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inspect-aid{color:var(--muted)}.adhoc{margin:10px 0}.adhoc-row{display:flex;gap:6px;margin-bottom:6px}.adhoc-row input{flex:1}.inputs-list{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.input-row{border:1px solid var(--border);border-radius:6px;padding:8px;display:flex;gap:8px;align-items:flex-start}.input-row .fields{flex:1}.inputs-sets-title{display:block;margin:10px 0 6px;font-size:13px}.set-row{display:flex;align-items:center;gap:6px;padding:6px 4px;border-bottom:1px solid var(--border);font-size:13px}dialog h2~.fields{margin-bottom:10px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px}.panel-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.hint{color:var(--muted);font-size:12px;margin:4px 0}.canvas-panel{display:flex;gap:6px}.canvas-col{display:flex;flex-direction:column;min-width:0;min-height:0}.canvas-col .canvas{flex:1;min-height:0}.canvas-tabs{display:flex;align-items:stretch;gap:2px;padding:4px 6px 0;background:var(--panel);border-bottom:1px solid var(--border);overflow-x:auto}.canvas-tabs .tab{display:flex;align-items:center;gap:4px;padding:5px 10px;border:1px solid var(--border);border-bottom:none;border-radius:6px 6px 0 0;background:var(--nest);color:var(--muted);font-size:12px;white-space:nowrap;cursor:pointer}.canvas-tabs .tab.on{background:var(--bg);color:var(--text);font-weight:600}.canvas-tabs .tab-label{background:none;border:none;color:inherit;font:inherit;cursor:pointer;padding:0}.canvas-tabs .tab-icon{border:none;background:none;cursor:pointer;font-size:11px;color:var(--muted);padding:0 2px}.canvas-tabs .tab-add{color:var(--accent);font-weight:700}.canvas-tabs .tab input{width:100px;font:inherit}.callflow{margin-top:6px;display:flex;flex-direction:column;gap:8px}.callflow-target{display:flex;gap:4px;align-items:center}.callflow-target select{flex:1}.callflow-io{border-left:3px solid var(--accent);padding:4px 0 4px 8px}.callflow-io strong{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.io-row{display:flex;align-items:center;gap:4px;margin:3px 0}.io-row input{flex:1;min-width:0}.step-node{position:relative;width:340px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:8px 10px;font-size:13px;box-shadow:0 1px 3px #00000014}.node-outs{margin-top:10px;display:flex;justify-content:space-around;gap:8px}.out-col{display:flex;flex-direction:column;align-items:center;gap:2px;position:relative}.out-label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.branches{margin-top:8px}.canvas-start-hint{font-size:11px;color:var(--muted);align-self:center}.step-node.disabled{opacity:.5}.step-node.cat-control{border-color:#8a63d2}.step-node.cat-files{border-color:#3aa757}.step-node.cat-desktop{border-color:#d98a2b}.node-head,.node-subhead,.mini-head{display:flex;align-items:center;gap:6px}.node-subhead{margin-top:6px}.node-body{margin-top:8px}.type-select{font-weight:600}.label-input{width:110px}.add-after{position:absolute;left:50%;bottom:-12px;transform:translate(-50%);width:22px;height:22px;border-radius:50%;padding:0;line-height:1;background:var(--panel);color:var(--accent);border:1px solid var(--accent)}.fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;margin-top:6px}.field{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--muted)}.field span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.field input,.field select{width:100%;color:var(--text)}.field-bool{flex-direction:row;align-items:center}.field-bool input{width:auto}.nested{margin-top:8px;padding:8px;border-left:3px solid var(--accent);border-radius:6px;background:var(--nest)}.nested-steps{display:flex;flex-direction:column;gap:6px}.mini-card{border:1px solid var(--border);border-radius:6px;padding:6px;background:var(--panel)}.mini-card.disabled{opacity:.5}.branch{border:1px dashed var(--border);border-radius:6px;padding:6px;margin-bottom:6px}.branch-head{display:flex;align-items:center;gap:6px;margin-bottom:4px}.else-toggle{display:flex;flex-direction:row;align-items:center;gap:6px;border-style:solid}.condition{margin:4px 0}.row-field{border:1px dashed var(--border);border-radius:6px;padding:6px;margin-bottom:6px}.row-field-head{display:flex;gap:6px;margin-bottom:4px}.badge{padding:2px 8px;border-radius:999px;font-size:12px}.badge-running{background:#f5b942;color:#222}.badge-done{background:#3aa757;color:#fff}.badge-error{background:var(--danger);color:#fff}.log{background:#111114;color:#d6d6d8;border-radius:8px;padding:10px;font-family:ui-monospace,Consolas,monospace;font-size:12px;height:320px;overflow-y:auto;white-space:pre-wrap;margin:0}.var-row{border:1px solid var(--border);border-radius:6px;margin-bottom:6px;overflow:hidden}.var-head{padding:6px 9px;cursor:pointer;font-family:ui-monospace,Consolas,monospace;font-size:12px;background:var(--bg)}.var-head:hover{background:var(--nest)}.var-value{margin:0;padding:8px 9px;background:#111114;color:#d6d6d8;font-family:ui-monospace,Consolas,monospace;font-size:12px;max-height:240px;overflow:auto;white-space:pre-wrap}.assist-msg{font-size:12px;white-space:pre-wrap;margin-top:6px}.assist-msg.error{color:var(--danger)}.image-field{grid-column:1 / -1}.image-field-row{display:flex;gap:6px;align-items:center}.image-field-row input{flex:1}.image-field-preview{margin-top:4px;max-height:120px;border:1px solid var(--border);border-radius:4px;background:#fff}dialog{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:20px;width:min(520px,92vw)}dialog::backdrop{background:#0006}dialog h2{margin:0 0 4px;font-size:16px}.dialog-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}.toast{position:fixed;bottom:16px;left:50%;transform:translate(-50%);background:var(--danger);color:#fff;padding:10px 16px;border-radius:8px;cursor:pointer;max-width:80vw;font-size:13px}.react-flow__attribution{display:none}
diff --git a/webui/static/index.html b/webui/static/index.html
index 182c161..77bd513 100644
--- a/webui/static/index.html
+++ b/webui/static/index.html
@@ -4,8 +4,8 @@
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <title>RPA Tool – flow builder</title>
-    <script type="module" crossorigin src="/assets/index-BqrbpfOv.js"></script>
-    <link rel="stylesheet" crossorigin href="/assets/index-tNGal5OM.css">
+    <script type="module" crossorigin src="/assets/index-BJzN-7yS.js"></script>
+    <link rel="stylesheet" crossorigin href="/assets/index-xkFS8M7o.css">
   </head>
   <body>
     <div id="root"></div>