agent-dag 1.33.137 → 1.33.138

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -58,7 +58,7 @@ Error generating stack: `+w.message+`
58
58
  `)}function uv(e,n,r){const i=(n??r)-e;if(i<1e3)return`${Math.max(0,i)}ms`;const o=Math.floor(i/1e3);if(o<60)return`${o}s`;const l=Math.floor(o/60),u=o%60;return`${l}m ${String(u).padStart(2,"0")}s`}function yO({data:e,selected:n}){var p;const r=e.now??Date.now(),i=["agent-node",`state-${e.state}`,e.synthetic?"synthetic":"",n?"selected":""].filter(Boolean).join(" "),o=e.tools.filter(h=>!h.endedAt).length,l=Lv(e.sessionId),u=((p=e.context)==null?void 0:p.currentContextTokens)??0,c=e.kind==="root"&&u>0;return m.jsxs("div",{className:i,style:{"--session-hue":l},children:[m.jsx("span",{className:"accent-stripe"}),m.jsx(so,{type:"target",position:Ae.Left,style:{background:"transparent",border:"none"}}),m.jsxs("div",{className:"head",children:[m.jsxs("div",{className:"title",children:[m.jsx(wO,{state:e.state}),m.jsx("span",{className:"label",title:e.cwd,children:e.label}),e.synthetic&&m.jsx("span",{className:"synth-tag",title:"No SessionStart captured — synthesised",children:"?"})]}),m.jsxs("div",{className:"head-right",children:[c&&e.onOpenContext&&m.jsx(gO,{currentContextTokens:u,modelId:e.model,contextWindow:e.contextWindow,onClick:()=>e.onOpenContext(e.sessionId)}),m.jsx("div",{className:"time",title:`Started ${new Date(e.startedAt).toLocaleTimeString()}`,children:uv(e.startedAt,e.endedAt,r)})]})]}),m.jsxs("div",{className:"sub",children:[e.kind==="root"?"session":"subagent",e.childCount>0&&m.jsxs("span",{className:"spawn-badge",title:`${e.childCount} subagents spawned`,children:["→ ",e.childCount]}),e.cwdBasename&&e.kind==="subagent"?` · ${e.cwdBasename}`:"",e.model&&m.jsx("span",{className:"model-chip",title:e.model,children:ii(e.model)})]}),e.waiting&&m.jsx(xO,{waiting:e.waiting,now:r}),e.tools.length>0&&m.jsx(bO,{tools:e.tools,now:r}),m.jsxs("div",{className:"meta",children:[m.jsxs("span",{children:[m.jsx("b",{children:e.toolCount})," tools"]}),o>0&&m.jsxs("span",{className:"inflight-meta",children:[m.jsx("b",{children:o})," in-flight"]}),e.usage.inputTokens+e.usage.outputTokens>0&&m.jsxs("span",{className:"tokens-meta",title:`in:${e.usage.inputTokens} out:${e.usage.outputTokens} cache-r:${e.usage.cacheReadTokens} cache-c:${e.usage.cacheCreateTokens}${(e.usage.reasoningOutputTokens??0)>0?` reasoning:${e.usage.reasoningOutputTokens}`:""}`,children:[m.jsx("b",{children:_O(e.usage.inputTokens+e.usage.outputTokens)})," tok"]}),e.model&&qv(e.model)&&(()=>{const h=ln(e.usage,e.model);if(h.total<=0)return null;const f=Math.max(0,((e.endedAt??r)-e.startedAt)/1e3),g=e.state==="active"?cu(h.total,f):null,y=vO(e.usage,e.model)+(g?`
59
59
  burn: ${g}`:"");return m.jsxs("span",{className:"cost-meta",title:y,children:[m.jsx("b",{children:ze(h.total)}),g&&m.jsx("span",{className:"cost-rate",children:g})]})})()]}),m.jsx(so,{type:"source",position:Ae.Right,style:{background:"transparent",border:"none"}})]})}function wO({state:e}){const n=e==="active"?"live":e==="done"?"done":"err";return m.jsx("span",{className:`state-pill state-${e}`,children:n})}function $v(e){return e.message?e.message:e.kind==="permission"?"Needs your permission":"Waiting for your input"}function xO({waiting:e,now:n}){const r=e.kind==="permission",i=$v(e);return m.jsxs("div",{className:r?"waiting-row permission":"waiting-row idle",title:`${i}
60
60
  Blocked for ${uv(e.since,void 0,n)} — the answer goes in the terminal, not here.`,children:[r?m.jsx("span",{className:"ap-pulse","aria-hidden":!0}):m.jsx("span",{className:"waiting-dot","aria-hidden":!0}),m.jsx("span",{className:"waiting-said",children:i}),m.jsx("b",{children:uv(e.since,void 0,n)})]})}function _O(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}function bO({tools:e,now:n}){const l=new Array(24).fill(0);let u=0;for(const y of e){const x=n-y.startedAt;if(x<0||x>=6e4)continue;const N=23-Math.floor(x/2500);N>=0&&N<24&&(l[N]+=1,u+=1)}const c=Math.max(1,...l),p=132,h=14,f=p/24,g=c/(2500/1e3);return m.jsxs("div",{className:"tool-spark-row",title:`${u} tool calls in last 60s · peak ${g.toFixed(1)}/s`,children:[m.jsx("svg",{className:"tool-spark",width:p,height:h,viewBox:`0 0 ${p} ${h}`,"aria-hidden":!0,children:l.map((y,x)=>{const N=y===0?1.5:Math.max(1.5,y/c*h),_=x===23&&y>0,b=`tool-spark-bar${y>0?" active":""}${_?" latest":""}`;return m.jsx("rect",{x:x*f+.4,y:h-N,width:Math.max(.5,f-1),height:N,rx:.8,className:b},x)})}),m.jsx("span",{className:"tool-spark-label",children:"60s"})]})}function ii(e){const n=e.replace(/^anthropic\./,"").replace(/[-_]\d{8}(?!\d)/,""),r=n.match(/^claude[-_](opus|sonnet|haiku|fable|mythos)[-_](\d+(?:[-_.]\d+)*)/i);if(r){const l=r[1][0].toUpperCase()+r[1].slice(1).toLowerCase(),u=r[2].replace(/[-_]/g,".");return`${l} ${u}`}const i=n.match(/^gpt[-_](\d+(?:[-_.]\d+)*)[-_]codex\b/i);if(i)return`GPT-${i[1].replace(/[-_]/g,".")} Codex`;const o=n.match(/^gpt[-_](\d+(?:[-_.]\d+)*)/i);return o?`GPT-${o[1].replace(/[-_]/g,".")}`:e}function bx(e){if(e==null)return"(none)";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function SO(e){if(e.endedAt==null)return"in-flight…";const n=e.endedAt-e.startedAt;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(2)}s`}function kO({tool:e,onClose:n}){ao(n);const r=e.endedAt==null?"inflight":e.ok===!1?"err":"done";return m.jsx("div",{className:"modal-backdrop",onClick:n,role:"presentation",children:m.jsxs("div",{className:"modal",onClick:i=>i.stopPropagation(),role:"dialog","aria-modal":"true","aria-labelledby":"tool-modal-title",children:[m.jsxs("header",{className:"modal-head",children:[m.jsxs("div",{className:"modal-title",children:[m.jsx("span",{className:`status-dot ${r}`}),m.jsx("span",{id:"tool-modal-title",className:"modal-tool-name",children:e.name}),m.jsxs("span",{className:"modal-tool-id",title:e.id,children:[e.id.slice(0,12),"…"]})]}),m.jsxs("div",{className:"modal-actions",children:[m.jsx("span",{className:"modal-dur",children:SO(e)}),m.jsx("button",{className:"btn icon-btn",onClick:n,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})]})]}),m.jsxs("section",{className:"modal-body",children:[e.trimmed&&m.jsx("div",{className:"modal-section",children:m.jsx("p",{className:"modal-note",children:"Full payloads for this call were released to keep memory bounded — only the previews below are still held."})}),m.jsxs("div",{className:"modal-section",children:[m.jsx("h4",{children:"Input"}),m.jsx("pre",{children:bx(e.input??e.inputPreview)})]}),m.jsxs("div",{className:"modal-section",children:[m.jsxs("h4",{children:["Response ",r==="err"&&m.jsx("span",{className:"err-tag",children:"error"})]}),m.jsx("pre",{children:e.endedAt==null?"(waiting…)":bx(e.response??e.errorPreview)})]})]})]})})}const Bl=18,Sx=26,EO=12;function NO(e){return CO(e.nodeInternals.values())}function CO(e){const n=new Map;for(const o of e){if(o.type!=="agent")continue;const l=o.data;if(!(l!=null&&l.sessionId)||l.exitAt!=null||o.width==null||o.height==null)continue;const u=o.position.x,c=o.position.y,p=u+o.width,h=c+o.height,f=n.get(l.sessionId);f?(f.minX=Math.min(f.minX,u),f.minY=Math.min(f.minY,c),f.maxX=Math.max(f.maxX,p),f.maxY=Math.max(f.maxY,h),l.kind==="root"&&(f.label=kx(l)??f.label)):n.set(l.sessionId,{minX:u,minY:c,maxX:p,maxY:h,label:kx(l)??l.sessionId})}const r=new Map;for(const o of n.values())r.set(o.label,(r.get(o.label)??0)+1);const i=[];for(const[o,l]of n){const c=(r.get(l.label)??0)>1?`${l.label} · ${jO(o)}`:l.label;i.push({sessionId:o,label:c,x:l.minX-Bl,y:l.minY-Bl-Sx,w:l.maxX-l.minX+Bl*2,h:l.maxY-l.minY+Bl*2+Sx})}return i}function jO(e){const n=e.match(/[a-zA-Z0-9]{4}/);return n?n[0]:e.slice(0,4)}function kx(e){if(e.kind==="root")return e.label}function TO(){const{x:e,y:n,zoom:r}=qN(),i=wa(),o=Ke(NO,RO);if(o.length<=1)return null;const l=u=>{try{const c=i.getNodes().filter(p=>{const h=p.data;return(h==null?void 0:h.sessionId)===u});if(c.length===0)return;i.fitView({padding:.3,duration:500,nodes:c})}catch{}};return m.jsx("div",{className:"session-clusters",children:o.map(u=>{const c=Lv(u.sessionId),p={position:"absolute",left:u.x*r+e,top:u.y*r+n,width:u.w*r,height:u.h*r,"--session-hue":c},h={position:"absolute",left:u.x*r+e+16*r,top:(u.y-EO)*r+n,transform:`scale(${Math.min(1,r)})`,transformOrigin:"left top","--session-hue":c};return m.jsxs(ue.Fragment,{children:[m.jsx("div",{className:"cluster-card",style:p,"aria-hidden":!0}),m.jsx("button",{type:"button",className:"cluster-label",style:h,title:`Fit view to ${u.label} · drag the wrapper to move the whole session`,onClick:()=>l(u.sessionId),children:u.label})]},u.sessionId)})})}function RO(e,n){if(e.length!==n.length)return!1;for(let r=0;r<e.length;r++){const i=e[r],o=n[r];if(i.sessionId!==o.sessionId||i.label!==o.label||i.x!==o.x||i.y!==o.y||i.w!==o.w||i.h!==o.h)return!1}return!0}function AO({data:e}){return m.jsx("div",{className:"session-group-handle",style:{width:(e==null?void 0:e.w)??0,height:(e==null?void 0:e.h)??0}})}const XN=600,IO=4,MO=36,cv=16,PO=60,OO=6,Ex=220,Nx=96,LO=28,qO={Read:"file",Write:"file",Edit:"file",MultiEdit:"file",Glob:"file",Grep:"file",LS:"file",NotebookEdit:"file",Bash:"shell",PowerShell:"shell",shell:"shell",exec_command:"shell",shell_command:"shell",write_stdin:"shell",wait:"shell",apply_patch:"file",update_plan:"task",WebFetch:"web",WebSearch:"web",Task:"agent",Agent:"agent",TodoWrite:"task",TaskCreate:"task",TaskUpdate:"task",TaskList:"task",TaskGet:"task",TaskOutput:"task",TaskStop:"task",EnterPlanMode:"plan",ExitPlanMode:"plan",AskUserQuestion:"plan",Skill:"plan",Workflow:"plan",ScheduleWakeup:"other",CronCreate:"other",CronList:"other",CronDelete:"other",Monitor:"other",PushNotification:"other",RemoteTrigger:"other",ToolSearch:"other"};function $O(e){return e.startsWith("mcp__")?"mcp":qO[e]??"other"}const DO={Read:"📖",Write:"💾",Edit:"✏️",MultiEdit:"🔧",Glob:"🗺️",Grep:"🔎",Bash:"⚡",PowerShell:"💻",shell:"⚡",exec_command:"⚡",shell_command:"⚡",write_stdin:"💻",wait:"⏳",apply_patch:"🩹",update_plan:"📋",LS:"📂",Task:"🤖",Agent:"🤖",TodoWrite:"📋",TaskCreate:"📋",TaskUpdate:"📝",TaskList:"🗂️",TaskGet:"🗂️",TaskOutput:"📤",TaskStop:"🛑",WebFetch:"🌐",WebSearch:"🔭",ToolSearch:"🧰",NotebookEdit:"📓",EnterPlanMode:"🧭",ExitPlanMode:"🏁",AskUserQuestion:"❓",ScheduleWakeup:"⏰",CronCreate:"⏰",CronList:"📅",CronDelete:"🗑️",Skill:"🎯",Workflow:"🎬",Monitor:"📡",PushNotification:"🔔",RemoteTrigger:"📡"};function Cx(e){return e.startsWith("mcp__")?"🔌":DO[e]??"✨"}const FO={git:"🐙",gh:"🐙",glab:"🐙",npm:"📦",pnpm:"📦",yarn:"📦",bun:"📦",brew:"🍺",node:"🟢",deno:"🟢",python:"🐍",python3:"🐍",py:"🐍",pip:"🐍",pip3:"🐍",uv:"🐍",ruby:"💎",bundle:"💎",gem:"💎",cargo:"🦀",rustc:"🦀",rustup:"🦀",go:"🐹",docker:"🐳","docker-compose":"🐳",podman:"🐳",kubectl:"☸️",helm:"☸️",k9s:"☸️",grep:"🔎",rg:"🔎",ag:"🔎",ack:"🔎",find:"🔍",fd:"🔍",locate:"🔍",which:"🔍",ls:"📂",dir:"📂",tree:"📂",cat:"📄",head:"📄",tail:"📄",less:"📄",more:"📄",bat:"📄",cp:"📋",mv:"✂️",rm:"🗑️",rmdir:"🗑️",mkdir:"📁",touch:"📁",sed:"✏️",awk:"✏️",tr:"✏️",curl:"🌐",wget:"🌐",http:"🌐",httpie:"🌐",ssh:"🔐",scp:"🔐",rsync:"🔐",ping:"📡",make:"🔨",cmake:"🔨",ninja:"🔨",bazel:"🔨",just:"🔨",terraform:"🏗️",ansible:"📕",pulumi:"🏗️",ps:"📊",top:"📊",htop:"📊",btm:"📊",kill:"💀",pkill:"💀",systemctl:"⚙️",service:"⚙️",tar:"🗜️",zip:"🗜️",unzip:"🗜️",gzip:"🗜️","7z":"🗜️",vim:"📝",nvim:"📝",nano:"📝",emacs:"📝",code:"📝",jq:"🪺",yq:"🪺",echo:"💬",printf:"💬",ffmpeg:"🎞️",ffprobe:"🎞️",imagemagick:"🖼️",convert:"🖼️","Get-ChildItem":"📂","Get-Content":"📄","Set-Content":"💾","Out-File":"💾","Add-Content":"💾","Set-Location":"📍","Get-Location":"📍","Get-Process":"📊","Start-Process":"▶️","Stop-Process":"💀","Invoke-WebRequest":"🌐","Invoke-RestMethod":"🌐","New-Item":"📁","Remove-Item":"🗑️","Copy-Item":"📋","Move-Item":"✂️","Test-Path":"🔍","Where-Object":"🔎","ForEach-Object":"🔁","Select-Object":"🎯","Measure-Object":"📊","Get-Service":"⚙️","Restart-Service":"⚙️","ConvertTo-Json":"🪺","ConvertFrom-Json":"🪺"};function QN(e){if(!e)return null;let n=e.trim();if(!n)return null;const r=n.match(/^(?:bash|sh|zsh|fish|powershell|pwsh)(?:\.exe)?\s+(?:-c|-Command|-NoProfile|-NonInteractive|\s)+["']([^"']+)["']/i);if(r)return QN(r[1]);for(;;){const l=n.match(/^([A-Z_][A-Z0-9_]*=\S*)\s+/);if(!l)break;n=n.slice(l[0].length)}n=n.replace(/^sudo(?:\s+-\S+)*\s+/,""),n=n.replace(/^(?:time|nohup|xargs)\s+/,"");const i=n.match(/^([^\s|;&<>(]+)/);if(!i)return null;let o=i[1];return o=o.replace(/^.*[/\\]/,""),o=o.replace(/\.(exe|cmd|bat|ps1)$/i,""),o||null}function zO(e){if(typeof e=="string")return e;if(!e||typeof e!="object")return null;const n=e;if(typeof n.cmd=="string")return n.cmd;if(typeof n.command=="string")return n.command;if(Array.isArray(n.command)&&n.command.every(r=>typeof r=="string")){const r=n.command;if(/powershell|cmd|bash|sh(\.exe)?$/i.test(r[0]??"")){const i=r.findIndex(o=>/^(-Command|-c)$/i.test(o));if(i>=0&&i+1<r.length)return r[i+1]}return r.join(" ")}return typeof n.script=="string"?n.script:null}const BO=new Set(["Bash","PowerShell","shell","exec_command","shell_command","write_stdin","wait"]),UO=new Set(["shell","exec_command","shell_command","write_stdin","wait","apply_patch","update_plan"]);function HO(e,n){return UO.has(e)||e.startsWith("mcp__")?Math.max(Nx,34+n.length*7.5):Nx}function WO(e,n){if(!BO.has(e))return null;const r=zO(n);if(!r)return null;const i=QN(r);return i?{emoji:FO[i]??"⚙️",label:i,category:"shell",detail:r}:null}const VO=new Set(["Read","Write","Edit","MultiEdit","NotebookEdit","LS","Glob","apply_patch"]),jx={ts:"🟦",tsx:"🟦",d:"🟦",js:"🟨",jsx:"🟨",mjs:"🟨",cjs:"🟨",py:"🐍",pyi:"🐍",ipynb:"📓",rs:"🦀",go:"🐹",rb:"💎",erb:"💎",java:"☕",kt:"☕",scala:"☕",gradle:"☕",cs:"🔷",fs:"🔷",php:"🐘",swift:"🦅",c:"🇨",cpp:"🇨",cc:"🇨",h:"🇨",hpp:"🇨",md:"📝",mdx:"📝",rst:"📝",json:"🪺",json5:"🪺",jsonl:"🪺",yaml:"⚙️",yml:"⚙️",toml:"⚙️",ini:"⚙️",conf:"⚙️",cfg:"⚙️",xml:"📰",html:"🌐",htm:"🌐",vue:"🌐",svelte:"🌐",css:"🎨",scss:"🎨",sass:"🎨",less:"🎨",sh:"⚡",bash:"⚡",zsh:"⚡",fish:"⚡",ps1:"⚡",txt:"📄",log:"📄",out:"📄",csv:"📊",tsv:"📊",xlsx:"📊",xls:"📊",pdf:"📕",png:"🖼️",jpg:"🖼️",jpeg:"🖼️",gif:"🖼️",webp:"🖼️",svg:"🖼️",ico:"🖼️",mp4:"🎬",mov:"🎬",avi:"🎬",mkv:"🎬",webm:"🎬",mp3:"🎵",wav:"🎵",ogg:"🎵",flac:"🎵",zip:"🗜️",tar:"🗜️",gz:"🗜️",bz2:"🗜️","7z":"🗜️",xz:"🗜️",rar:"🗜️",env:"🔐",lock:"🔐",pem:"🔐",key:"🔐",crt:"🔐",sql:"🗄️",db:"🗄️",sqlite:"🗄️",parquet:"🗄️"},Tx={dockerfile:"🐳",makefile:"🔨",rakefile:"💎","package.json":"📦","pnpm-lock.yaml":"📦","yarn.lock":"📦","cargo.toml":"🦀","cargo.lock":"🦀","go.mod":"🐹","go.sum":"🐹","pyproject.toml":"🐍","requirements.txt":"🐍","readme.md":"📖",readme:"📖",license:"📜",".gitignore":"🐙",".gitattributes":"🐙",".env":"🔐",".dockerignore":"🐳"};function GO(e){const r=e.replace(/\\/g,"/").replace(/\/+$/,""),i=r.lastIndexOf("/");return i>=0?r.slice(i+1):r}function YO(e){const n=e.toLowerCase();if(Tx[n])return Tx[n];if(n.startsWith("dockerfile."))return"🐳";if(/\.(test|spec)\.[a-z]+$/.test(n))return"🧪";const r=n.lastIndexOf(".");if(r>0&&r<n.length-1){const i=n.slice(r+1);if(jx[i])return jx[i]}return"📄"}function KO(e,n){if(!n||typeof n!="object")return null;const r=n;if(e==="apply_patch"&&typeof r.patch=="string"){const i=r.patch.match(/^\*\*\* (?:Update|Add|Delete) File: (.+)$/m);return i?i[1].trim():null}return typeof r.file_path=="string"?r.file_path:typeof r.notebook_path=="string"?r.notebook_path:typeof r.path=="string"?r.path:e==="Glob"&&typeof r.pattern=="string"?r.pattern:null}function XO(e,n){if(!VO.has(e))return null;const r=KO(e,n);if(!r)return null;const i=GO(r);return i?{emoji:e==="LS"?"📂":YO(i),label:i,category:"file",detail:r}:null}const ZN={github:{emoji:"🐙",name:"GitHub"},git:{emoji:"🐙",name:"Git"},gitlab:{emoji:"🦊",name:"GitLab"},slack:{emoji:"💬",name:"Slack"},discord:{emoji:"💬",name:"Discord"},linear:{emoji:"📐",name:"Linear"},jira:{emoji:"🅹",name:"Jira"},atlassian:{emoji:"🅰️",name:"Atlassian"},notion:{emoji:"📓",name:"Notion"},asana:{emoji:"📋",name:"Asana"},intercom:{emoji:"💬",name:"Intercom"},figma:{emoji:"🎨",name:"Figma"},gmail:{emoji:"📧",name:"Gmail"},calendar:{emoji:"📅",name:"Calendar"},drive:{emoji:"☁️",name:"Drive"},zoom:{emoji:"📹",name:"Zoom"},spotify:{emoji:"🎵",name:"Spotify"},youtube:{emoji:"📺",name:"YouTube"},ccd_session:{emoji:"📡",name:"Session"},ccd_directory:{emoji:"📂",name:"Directory"},ccd_session_mgmt:{emoji:"📡",name:"Sessions"},mcp_registry:{emoji:"🧰",name:"Registry"},"computer-use":{emoji:"🖱️",name:"Computer"},"claude-in-chrome":{emoji:"🌐",name:"Chrome"},"claude-preview":{emoji:"👀",name:"Preview"},"scheduled-tasks":{emoji:"⏰",name:"Scheduler"},visualize:{emoji:"🎨",name:"Visualize"},"plugin-design-asana":{emoji:"📋",name:"Asana"},"plugin-design-atlassian":{emoji:"🅰️",name:"Atlassian"},"plugin-design-figma":{emoji:"🎨",name:"Figma"},"plugin-design-intercom":{emoji:"💬",name:"Intercom"},"plugin-design-linear":{emoji:"📐",name:"Linear"},"plugin-design-notion":{emoji:"📓",name:"Notion"},"plugin-design-slack":{emoji:"💬",name:"Slack"}};function JN(e){if(!e.startsWith("mcp__"))return null;const n=e.slice(5),r=n.indexOf("__");return r<=0?{server:n,method:""}:{server:n.slice(0,r),method:n.slice(r+2)}}function QO(e){let n=5381;for(let r=0;r<e.length;r++)n=(n<<5)+n^e.charCodeAt(r);return Math.abs(n)%360}function ZO(e,n){const r=JN(e);if(!r)return null;const{server:i,method:o}=r;if(!o)return null;const l=ZN[i.toLowerCase()];return{emoji:(l==null?void 0:l.emoji)??"🔌",label:o,category:"mcp",detail:l?`${l.name} · ${o}`:`${i} · ${o}`}}function JO(e,n){return WO(e,n)??XO(e,n)??ZO(e)}const e3={shell:"Shell",exec_command:"Shell",shell_command:"Shell",write_stdin:"stdin",wait:"wait",apply_patch:"Edit",update_plan:"Plan"};function t3(e){const n=JN(e);if(n){const i=ZN[n.server.toLowerCase()];return i?{emoji:i.emoji,label:i.name}:{emoji:"🔌",label:n.server,hue:QO(n.server)}}const r=e3[e];return r?{emoji:Cx(e),label:r}:{emoji:Cx(e),label:e}}function n3(e){return e.endedAt==null?"inflight":e.ok===!1?"err":"done"}function r3(e,n,r){if(r==null)return 1;const i=n-r;return i<0?1:Math.max(0,1-i/XN)}function s3(e,n){const r=[],i=new Set;for(let o=e.length-1;o>=0&&r.length<n;o--){const l=e[o];i.has(l.id)||(i.add(l.id),r.push(l))}return r.reverse()}function i3(e,n,r,i,o,l){const u=[];for(const c of e.values()){if(!n.has(c.id)||c.exitAt!=null&&l-c.exitAt>XN)continue;const p=i.get(c.id)??r.get(c.id);if(!p)continue;const h=s3(c.tools,IO);if(h.length===0)continue;const f=c.exitAt??null,g=o.get(c.id),y=Math.max((g==null?void 0:g.width)??Ex,Ex),x=(g==null?void 0:g.height)??130,N=p.x,_=p.y,S=N+y,b=_+x/2;h.forEach((k,E)=>{const C=E*MO,R=N+y+PO,M=_+OO+C,L=r3(k,l,f),U=k.inputPreview??"",O=n3(k),P=L<.999,F=t3(k.name);u.push({id:`${c.id}::${k.id}`,toolId:k.id,agentId:c.id,toolName:k.name,name:F.label,emoji:F.emoji,status:O,category:$O(k.name),mcpHue:F.hue,inputPreview:U,fade:L,fading:P,worldX:R,worldY:M,anchorX:S,anchorY:b,spawnDx:S-R,spawnDy:b-(M+cv)});const G=JO(k.name,k.input);if(G){const q=HO(k.name,F.label),T=R+q+LO,Q=M,z=R+q,ne=M+cv;u.push({id:`sub:${c.id}::${k.id}`,toolId:k.id,agentId:c.id,toolName:k.name,name:G.label,emoji:G.emoji,isSub:!0,status:O,category:G.category,inputPreview:G.detail??U,fade:L,fading:P,worldX:T,worldY:Q,anchorX:z,anchorY:ne,spawnDx:z-T,spawnDy:0})}})}return u}function o3({agents:e,visibleAgentIds:n,positions:r,pinned:i,measured:o,dimUnmatched:l,spotlight:u,hiddenCategories:c,now:p,onOpenTool:h}){const f=i3(e,n,r,i,o,p),g=c&&c.size>0?f.filter(y=>!c.has(y.category)):f;return m.jsx(a3,{bursts:g,dimUnmatched:l,spotlight:u,onOpenTool:h})}function a3({bursts:e,dimUnmatched:n,spotlight:r,onOpenTool:i}){const{x:o,y:l,zoom:u}=qN();return m.jsxs("div",{className:"tool-bursts-layer","aria-hidden":!0,children:[m.jsx("svg",{className:"tool-bursts-svg",children:e.map(c=>{const p=c.anchorX*u+o,h=c.anchorY*u+l,f=(c.worldX+6)*u+o,g=(c.worldY+cv)*u+l,y=p+(f-p)*.55,x=n!=null&&!n.has(c.agentId),N=r!=null&&!r.has(c.agentId),_=c.fade*(x||N?.14:1);return m.jsx("path",{d:`M ${p} ${h} Q ${y} ${h}, ${f} ${g}`,className:`tool-conn status-${c.status}${c.fading?" fading":""}`,opacity:_},`l:${c.id}`)})}),e.map(c=>{const p=c.worldX*u+o,h=c.worldY*u+l,f={left:`${p}px`,top:`${h}px`,transform:`scale(${u})`,transformOrigin:"left top","--spawn-dx":`${c.spawnDx}px`,"--spawn-dy":`${c.spawnDy}px`},g=c.isSub?`${c.toolName} · ${c.name}`:c.toolName,y=c.inputPreview?`${g} · ${c.inputPreview}`:g,x=i!=null,N=c.mcpHue!=null?{"--mcp-hue":c.mcpHue}:{},_=n!=null&&!n.has(c.agentId),S=r!=null&&!r.has(c.agentId),b=_||S?" dim":"";return m.jsx("div",{className:"tool-burst-wrap",style:f,children:m.jsxs("div",{className:`tool-burst cat-${c.category}${c.mcpHue!=null?" mcp-hue":""} status-${c.status}${c.fading?" fading":""}${x?" clickable":""}${c.isSub?" sub":""}${b}`,style:N,title:y,role:x?"button":void 0,tabIndex:x?0:void 0,"aria-label":x?`Open ${c.toolName} ${c.status==="inflight"?"in flight":c.status} — click for details`:void 0,onClick:x?()=>i(c.toolId):void 0,onKeyDown:x?k=>{(k.key==="Enter"||k.key===" ")&&(k.preventDefault(),i(c.toolId))}:void 0,children:[m.jsx("span",{className:"tb-emoji",children:c.emoji}),m.jsx("span",{className:"tb-name",children:c.name}),c.status==="inflight"&&m.jsx("span",{className:"tb-spin"}),c.status==="done"&&m.jsx("span",{className:"tb-mark done",children:"✓"}),c.status==="err"&&m.jsx("span",{className:"tb-mark err",children:"×"})]})},c.id)})]})}function l3({state:e,sessionId:n,onClose:r}){const i=A.useMemo(()=>c3(e,n),[e,n]),o=A.useRef(null);return ao(r,{focusRef:o}),i?m.jsx("div",{className:"modal-backdrop",onClick:r,role:"presentation",children:m.jsxs("div",{className:"modal session-summary",onClick:l=>l.stopPropagation(),role:"dialog","aria-modal":"true","aria-labelledby":"ss-title",children:[m.jsxs("div",{className:"modal-head",children:[m.jsxs("div",{className:"modal-title",children:[m.jsx("span",{className:"state-pill state-done","aria-hidden":!0,children:"done"}),m.jsx("span",{id:"ss-title",className:"modal-tool-name",title:i.cwd??i.sessionId,children:i.label}),m.jsxs("span",{className:"modal-tool-id",children:["· ",i.sessionId.slice(0,8)]})]}),m.jsxs("div",{className:"modal-actions",children:[m.jsx("span",{className:"modal-dur",title:"Total wall time",children:i.durationLabel}),m.jsx("button",{type:"button",ref:o,className:"btn",onClick:r,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})]})]}),m.jsxs("div",{className:"modal-body",children:[m.jsxs("section",{className:"ss-hero",children:[m.jsxs("div",{className:"ss-hero-left",children:[m.jsx("div",{className:"ss-cost-label",children:"total spend"}),m.jsx("div",{className:"ss-cost",children:ze(i.cost.total)}),i.modelChips.length>0&&m.jsx("div",{className:"ss-models",children:i.modelChips.map(l=>m.jsx("span",{className:"model-chip",title:l,children:ii(l)},l))})]}),m.jsx("div",{className:"ss-hero-right",children:i.cost.total>0&&m.jsxs(m.Fragment,{children:[m.jsx(u3,{cost:i.cost}),m.jsxs("div",{className:"ss-cost-legend",children:[m.jsxs("span",{className:"ssl ssl-in",children:["input ",m.jsx("b",{children:ze(i.cost.input)})]}),m.jsxs("span",{className:"ssl ssl-out",children:["output ",m.jsx("b",{children:ze(i.cost.output)})]}),m.jsxs("span",{className:"ssl ssl-cr",children:["cache r ",m.jsx("b",{children:ze(i.cost.cacheRead)})]}),m.jsxs("span",{className:"ssl ssl-cw",children:["cache w ",m.jsx("b",{children:ze(i.cost.cacheWrite)})]})]})]})})]}),m.jsxs("section",{className:"ss-stats",children:[m.jsx(Vi,{label:"agents",value:i.agentCount}),m.jsx(Vi,{label:"subagents",value:i.subagentCount}),m.jsx(Vi,{label:"tool calls",value:i.toolCount}),m.jsx(Vi,{label:"prompts",value:i.promptCount}),m.jsx(Vi,{label:"tokens",value:i.tokensSum.toLocaleString()}),i.errCount>0&&m.jsx(Vi,{label:"errors",value:i.errCount,tone:"err"})]}),i.topTools.length>0&&m.jsxs("section",{className:"modal-section",children:[m.jsx("h4",{children:"Most-used tools"}),m.jsx("div",{className:"ss-top-tools",children:i.topTools.map(([l,u])=>m.jsxs("div",{className:"ss-tt",children:[m.jsx("span",{className:"ss-tt-name",children:l}),m.jsx("span",{className:"ss-tt-bar",children:m.jsx("span",{className:"ss-tt-bar-fill",style:{width:`${u/i.topTools[0][1]*100}%`}})}),m.jsx("span",{className:"ss-tt-count",children:u})]},l))})]}),i.firstPrompt&&m.jsxs("section",{className:"modal-section",children:[m.jsx("h4",{children:"Opening prompt"}),m.jsx("div",{className:"ss-prompt",children:i.firstPrompt})]})]})]})}):null}function Vi({label:e,value:n,tone:r}){return m.jsxs("div",{className:`ss-stat${r?` tone-${r}`:""}`,children:[m.jsx("div",{className:"ss-stat-value",children:n}),m.jsx("div",{className:"ss-stat-label",children:e})]})}function u3({cost:e}){const n=e.total;if(n<=0)return null;const r=(i,o,l)=>{if(i<=0)return null;const u=i/n*100;return m.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${ze(i)} (${u.toFixed(0)}%)`},o)};return m.jsxs("div",{className:"cost-bar cost-bar-lg","aria-label":"Cost breakdown",children:[r(e.input,"cb-input","input"),r(e.output,"cb-output","output"),r(e.cacheRead,"cb-cache-r","cache read"),r(e.cacheWrite,"cb-cache-w","cache write")]})}function c3(e,n){const r=e.agents.get(n);if(!r)return null;const i=[];for(const E of e.agents.values())E.sessionId===n&&i.push(E);if(i.length===0)return null;const o={input:0,output:0,cacheRead:0,cacheWrite:0,total:0},l=new Set,u=new Map;let c=0,p=0,h=0,f=0,g=0,y,x=1/0,N=0;for(const E of i){const C=ln(E.usage,E.model);o.input+=C.input,o.output+=C.output,o.cacheRead+=C.cacheRead,o.cacheWrite+=C.cacheWrite,o.total+=C.total,E.model&&l.add(E.model),E.kind==="subagent"&&g++,p+=E.prompts.length,!y&&E.prompts.length>0&&(y=E.prompts[0].text),h+=E.usage.inputTokens+E.usage.outputTokens,c+=E.toolCount,x=Math.min(x,E.startedAt),N=Math.max(N,E.endedAt??Date.now());for(const R of E.tools)u.set(R.name,(u.get(R.name)??0)+1),R.ok===!1&&f++}const _=Math.max(0,N-x),S=Math.floor(_/1e3),b=S<60?`${S}s`:S<3600?`${Math.floor(S/60)}m ${String(S%60).padStart(2,"0")}s`:`${Math.floor(S/3600)}h ${Math.floor(S%3600/60)}m`,k=Array.from(u.entries()).sort((E,C)=>C[1]-E[1]).slice(0,5);return{sessionId:n,label:r.label||r.cwdBasename||"session",cwd:r.cwd,durationLabel:b,cost:o,modelChips:Array.from(l),agentCount:i.length,subagentCount:g,toolCount:c,promptCount:p,tokensSum:h,errCount:f,topTools:k,firstPrompt:y}}function Rx(e){return e.waiting?e.waiting.kind==="permission"?0:1:e.state==="active"?2:3}function d3(e,n){const r=[];for(const i of e.agents.values()){if(i.kind!=="root")continue;let o=i.toolCount,l=ln(i.usage,i.model).total,u=i.endedAt??i.startedAt;for(const c of e.agents.values()){if(c.sessionId!==i.sessionId||c.kind==="root")continue;o+=c.toolCount,l+=ln(c.usage,c.model).total;const p=c.endedAt??c.startedAt;p>u&&(u=p)}r.push({sessionId:i.sessionId,label:i.label||i.cwdBasename||"session",cwdBasename:i.cwdBasename,state:i.state,waiting:i.waiting,modelId:i.model,toolCount:o,cost:l,startedAt:i.startedAt,lastActivity:u})}return r.sort((i,o)=>{const l=Rx(i),u=Rx(o);return l!==u?l-u:i.waiting&&o.waiting?i.waiting.since-o.waiting.since:o.lastActivity-i.lastActivity}),r}function Ax(e,n,r){const i=(n??r)-e;if(i<1e3)return"<1s";const o=Math.floor(i/1e3);if(o<60)return`${o}s`;const l=Math.floor(o/60);return l<60?`${l}m`:`${Math.floor(l/60)}h ${l%60}m`}function f3({state:e,now:n,selectedIds:r,onSelect:i,onClose:o}){const l=A.useMemo(()=>d3(e),[e,e.lastSeq,n]),u=l.filter(p=>p.state==="active").length,c=l.filter(p=>p.waiting).length;return m.jsxs("aside",{className:"session-list","aria-label":"Sessions",children:[m.jsxs("div",{className:"sl-header",children:[m.jsxs("h3",{children:["Sessions ",m.jsx("span",{className:"sl-count",children:l.length})]}),c>0&&m.jsxs("span",{className:"sl-waiting-count",children:[c," waiting"]}),u>0&&m.jsxs("span",{className:"sl-live-count",children:[u," live"]}),m.jsx("button",{className:"btn icon-btn sl-close",onClick:o,title:"Hide sidebar (L)","aria-label":"Hide session list",children:"‹"})]}),m.jsxs("div",{className:"sl-rows",children:[l.length===0&&m.jsx("div",{className:"sl-empty",children:"No sessions yet."}),l.map(p=>{const h=r.has(p.sessionId);return m.jsxs("button",{type:"button",className:`sl-row state-${p.state}${h?" selected":""}`,onClick:()=>i(p.sessionId),title:`Focus ${p.label}`,children:[m.jsx("span",{className:`sl-dot state-${p.state}`,"aria-hidden":!0}),m.jsxs("div",{className:"sl-row-body",children:[m.jsxs("div",{className:"sl-row-head",children:[m.jsx("span",{className:"sl-label",children:p.label}),p.modelId&&m.jsx("span",{className:"model-chip",title:p.modelId,children:ii(p.modelId)})]}),m.jsxs("div",{className:"sl-row-meta",children:[m.jsxs("span",{title:"tool calls",children:[m.jsx("b",{children:p.toolCount})," tools"]}),p.cost>0&&m.jsx("span",{className:"sl-cost",title:"total spend",children:m.jsx("b",{children:ze(p.cost)})}),p.waiting?m.jsxs("span",{className:"sl-waiting",title:`${$v(p.waiting)}
61
- Blocked since ${new Date(p.waiting.since).toLocaleTimeString()} · started ${new Date(p.startedAt).toLocaleString()}`,children:["waiting ",Ax(p.waiting.since,void 0,n)]}):m.jsx("span",{className:"sl-elapsed",title:`Started ${new Date(p.startedAt).toLocaleString()}`,children:Ax(p.startedAt,p.state==="active"?void 0:p.lastActivity,n)})]})]})]},p.sessionId)})]})]})}const Jn="ccdeck";function Ft(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:e<1e9?`${(e/1e6).toFixed(2)}M`:`${(e/1e9).toFixed(2)}B`}function Ix(e,n){if(!e)return null;const r=n-Math.floor(e/1e3);return r<10?"just now":r<60?`${r}s ago`:r<3600?`${Math.floor(r/60)}m ago`:`${Math.floor(r/3600)}h ago`}function h3(e){return e==="claude-swap"?"Read from claude-swap's last collection — costs no request against your usage-endpoint budget":e==="api"?"Fetched from Anthropic's usage endpoint, at most once every 5 minutes":e==="cli"?"Parsed from `claude /usage`, at most once every 5 minutes":"Last update"}function p3({cost:e}){const n=e.total;if(n<=0)return null;const r=(i,o,l)=>{if(i<=0)return null;const u=i/n*100;return m.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${ze(i)} (${u.toFixed(0)}%)`},o)};return m.jsxs("div",{className:"cost-bar","aria-label":"Cost breakdown",children:[r(e.input,"cb-input","input"),r(e.output,"cb-output","output"),r(e.cacheRead,"cb-cache-r","cache read"),r(e.cacheWrite,"cb-cache-w","cache write")]})}function m3(e,n){const r=e-n;if(r<=0)return null;const i=Math.floor(r/3600),o=Math.floor(r%3600/60);if(i>23){const l=Math.floor(r/86400),u=Math.floor(r%86400/3600);return`${l}d ${u}h`}return i>0?`${i}h ${o}m`:`${o}m`}function g3(e,n,r,i){const o=Math.max(0,n-i),l=Math.max(0,r-o);if(l<120)return null;const u=Math.min(100,l/r*100),c=e-u;if(Math.abs(c)<3)return{label:"on pace",color:"var(--ok)",expectedPct:u,isDeficit:!1};if(c>0){const p=100-e,h=l>0?e/l:0,f=h>0?p/h:1/0,g={label:`${Math.round(c)}% ahead`,color:"var(--warn)",expectedPct:u,isDeficit:!0};if(f<o&&f<86400){const y=Math.floor(f/3600),x=Math.floor(f%3600/60);g.runsOutIn=y>0?`${y}h ${x}m`:`${x}m`}return g}return{label:`${Math.round(-c)}% reserve`,color:"var(--ok)",expectedPct:u,isDeficit:!1}}function Qs({pct:e,label:n,reset:r,resetAt:i,windowSec:o,limitReached:l,nowSec:u}){const c=Math.min(100,Math.max(0,e)),h=l||c>=90?"var(--err)":c>=70?"var(--warn)":"var(--accent)",f=c===0?"< 1%":`${c}%`,g=c===0?2:c,y=i?m3(i,u):null,x=i&&o?g3(c,i,o,u):null;return m.jsxs("div",{className:"qb-row",children:[m.jsxs("div",{className:"qb-meta",children:[m.jsxs("span",{className:"qb-label",children:[n,l&&m.jsx("span",{className:"qb-limit-badge",title:"Rate limit reached",children:"⛔"})]}),m.jsx("span",{className:"qb-pct",style:{color:h},children:f})]}),m.jsxs("div",{className:"qb-track",children:[m.jsx("div",{className:"qb-fill",style:{width:`${g}%`,background:h,opacity:c===0?.4:1}}),x&&m.jsx("div",{className:"qb-pace-marker",style:{left:`${x.expectedPct}%`,background:x.isDeficit?"var(--err)":"var(--ok)"},title:`To last until reset, stay near ${Math.round(x.expectedPct)}% by now`})]}),m.jsxs("div",{className:"qb-reset-row",children:[y?m.jsxs("span",{className:"qb-reset",children:["resets in ",y]}):r?m.jsxs("span",{className:"qb-reset",children:["resets ",r]}):null,x&&m.jsx("span",{className:"qb-pace",style:{color:x.color},children:x.runsOutIn?`runs out in ${x.runsOutIn}`:x.label})]})]})}const v3=6e4;function y3(){const[e,n]=A.useState(null),[r,i]=A.useState(!1),o=A.useRef(null),l=async(c=!1)=>{c&&i(!0);try{const h=await fetch(c?"/api/quota?refresh=1":"/api/quota");h.ok&&n(await h.json())}catch{}finally{c&&i(!1)}};return A.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),v3),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{quota:e,loading:r,refresh:()=>l(!0)}}function w3(e){switch(e){case"no_token":return"Run codex login to authenticate.";case"api_key_mode":return"API-key login — ChatGPT quota is only available for codex login.";case"refresh_rejected":return"Codex session expired — run codex login.";case"refresh_failed":return"Couldn't refresh the Codex token — click ↻ to retry.";default:return"ChatGPT API unreachable — click ↻ to retry."}}const eC=6e4;function x3(){const[e,n]=A.useState(null),[r,i]=A.useState(!1),o=A.useRef(null),l=async(c=!1)=>{c&&i(!0);try{const h=await fetch(c?"/api/codex-quota?refresh=1":"/api/codex-quota");h.ok&&n(await h.json())}catch{}finally{c&&i(!1)}};return A.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),eC),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{data:e,loading:r,refresh:()=>l(!0)}}function _3(){const[e,n]=A.useState(null),r=A.useRef(null),i=async()=>{try{const o=await fetch("/api/codex-usage");o.ok&&n(await o.json())}catch{}};return A.useEffect(()=>(i(),r.current=window.setInterval(i,eC),()=>{r.current!=null&&window.clearInterval(r.current)}),[]),{data:e}}function b3({state:e,now:n,onClose:r}){var L,U;const{quota:i,loading:o,refresh:l}=y3(),{data:u,loading:c,refresh:p}=x3(),{data:h}=_3(),[f,g]=A.useState(()=>Math.floor(Date.now()/1e3));A.useEffect(()=>{const O=window.setInterval(()=>g(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(O)},[]);const{byModel:y,totalCost:x,totalTokens:N,burnRate:_}=A.useMemo(()=>{const O=new Map,P={total:0,input:0,output:0,cacheRead:0,cacheWrite:0};let F=0,G=0,q=0,T=0;for(const $ of e.agents.values()){const K=$.model??"__unknown__",I=ln($.usage,$.model),H=O.get(K);H?(H.inputTokens+=$.usage.inputTokens,H.outputTokens+=$.usage.outputTokens,H.cacheReadTokens+=$.usage.cacheReadTokens,H.cacheCreateTokens+=$.usage.cacheCreateTokens,H.cost.total+=I.total,H.cost.input+=I.input,H.cost.output+=I.output,H.cost.cacheRead+=I.cacheRead,H.cost.cacheWrite+=I.cacheWrite,H.agentCount++):O.set(K,{model:K,inputTokens:$.usage.inputTokens,outputTokens:$.usage.outputTokens,cacheReadTokens:$.usage.cacheReadTokens,cacheCreateTokens:$.usage.cacheCreateTokens,cost:{...I},agentCount:1}),P.total+=I.total,P.input+=I.input,P.output+=I.output,P.cacheRead+=I.cacheRead,P.cacheWrite+=I.cacheWrite,F+=$.usage.inputTokens,G+=$.usage.outputTokens,q+=$.usage.cacheReadTokens,T+=$.usage.cacheCreateTokens}const Q=Array.from(O.values()).sort(($,K)=>K.cost.total-$.cost.total);let z=0,ne=0;for(const $ of e.agents.values()){if($.state!=="active")continue;const K=ln($.usage,$.model);z+=K.total,ne=Math.max(ne,(($.endedAt??n)-$.startedAt)/1e3)}const Z=ne>0?cu(z,ne):null;return{byModel:Q,totalCost:P,totalTokens:{in:F,out:G,cacheR:q,cacheC:T},burnRate:Z}},[e,e.lastSeq,n]),S=A.useMemo(()=>{const O=[];for(const P of e.agents.values()){if(P.kind!=="root")continue;let F=ln(P.usage,P.model).total,G=P.usage.inputTokens,q=P.usage.outputTokens;for(const T of e.agents.values())T.sessionId!==P.sessionId||T.kind==="root"||(F+=ln(T.usage,T.model).total,G+=T.usage.inputTokens,q+=T.usage.outputTokens);O.push({sessionId:P.sessionId,label:P.label||P.cwdBasename||"session",state:P.state,cost:F,inputTokens:G,outputTokens:q})}return O.sort((P,F)=>F.cost-P.cost).slice(0,12)},[e,e.lastSeq]),b=x.total>0,k=N.in+N.out,E=o||c,C=Ix(i==null?void 0:i.fetchedAt,f),R=Ix(u==null?void 0:u.fetchedAt,f),M=()=>{l(),p()};return m.jsxs("div",{className:"usage-panel","aria-label":"Usage",children:[m.jsxs("div",{className:"up-header",children:[m.jsx("h3",{children:"Usage"}),_&&m.jsx("span",{className:"up-rate",children:_}),m.jsxs("div",{className:"up-header-right",children:[m.jsx("button",{type:"button",className:"btn up-refresh-btn",onClick:M,disabled:E,title:"Refresh Claude + Codex quota",children:E?"…":"↻"}),m.jsx("button",{type:"button",className:"btn icon-btn up-close",onClick:r,"aria-label":"Close usage panel",title:"Close (U)",children:"×"})]})]}),m.jsxs("section",{className:"up-section up-quota-section",children:[m.jsxs("h4",{className:"up-section-title",children:["Claude quota",C&&!o&&m.jsx("span",{className:"up-section-age",title:h3(i==null?void 0:i.source),children:C})]}),i!=null&&i.ok?m.jsxs("div",{className:"up-quota-bars",children:[i.session5hPct!=null&&m.jsx(Qs,{label:"5-hour window",pct:i.session5hPct,reset:i.session5hReset,resetAt:i.session5hResetAt,windowSec:i.session5hWindowSec,nowSec:f}),i.week7dPct!=null&&m.jsx(Qs,{label:"7-day window",pct:i.week7dPct,reset:i.week7dReset,resetAt:i.week7dResetAt,windowSec:i.week7dWindowSec,nowSec:f}),i.weekSonnetPct!=null&&m.jsx(Qs,{label:"Sonnet (7d)",pct:i.weekSonnetPct,nowSec:f}),i.weekOpusPct!=null&&m.jsx(Qs,{label:"Opus (7d)",pct:i.weekOpusPct,nowSec:f})]}):(i==null?void 0:i.ok)===!1?m.jsxs("div",{className:"up-quota-na",children:[m.jsx("span",{children:"Quota unavailable."}),m.jsxs("span",{className:"up-quota-hint",children:["Run ",m.jsx("code",{children:"/usage"})," in a claude session, then click ↻"]})]}):m.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),m.jsxs("section",{className:"up-section up-quota-section",children:[m.jsxs("h4",{className:"up-section-title",children:["Codex quota",(u==null?void 0:u.ok)&&u.planLabel&&m.jsx("span",{className:"up-plan-badge",children:u.planLabel}),R&&!c&&m.jsx("span",{className:"up-section-age",title:"Fetched from the Codex usage endpoint",children:R})]}),u!=null&&u.ok?m.jsxs("div",{className:"up-quota-bars",children:[(L=u.windows)==null?void 0:L.map(O=>m.jsx(Qs,{label:O.label,pct:O.pct,reset:O.reset??void 0,resetAt:O.resetAt??void 0,windowSec:O.windowSec??void 0,limitReached:u.limitReached&&O.pct>=100,nowSec:f},O.id)),(U=u.extraWindows)==null?void 0:U.map(O=>m.jsx(Qs,{label:O.label,pct:O.pct,reset:O.reset??void 0,resetAt:O.resetAt??void 0,windowSec:O.windowSec??void 0,nowSec:f},O.id)),u.creditLimit&&m.jsx(Qs,{label:`spend cap · $${Math.round(u.creditLimit.used)} of $${Math.round(u.creditLimit.limit)}`,pct:u.creditLimit.usedPct,reset:u.creditLimit.reset??void 0,resetAt:u.creditLimit.resetAt??void 0,limitReached:u.spendControlReached,nowSec:f}),(h==null?void 0:h.ok)&&h.window7d&&h.window7d.sessionCount>0&&m.jsxs("div",{className:"up-quota-sub",children:[Ft(h.window7d.totalTokens)," tokens · ",h.window7d.sessionCount," session",h.window7d.sessionCount!==1?"s":""," (7d)"]}),u.creditsBalance&&!u.creditsUnlimited&&m.jsxs("div",{className:"up-quota-sub up-credits",children:["credits: $",u.creditsBalance,u.overageReached&&" · overage limit reached"]}),u.creditsUnlimited&&m.jsx("div",{className:"up-quota-sub up-credits",children:"credits: unlimited"}),u.resetCredits&&u.resetCredits.availableCount>0&&m.jsxs("div",{className:"up-quota-sub up-reset-credits",title:`Redeem in the Codex CLI or ChatGPT — ${Jn} only reports them`,children:[u.resetCredits.availableCount," rate-limit reset",u.resetCredits.availableCount!==1?"s":""," available",u.resetCredits.nextExpiryAt&&` · expires ${new Date(u.resetCredits.nextExpiryAt).toLocaleDateString("en-US",{month:"short",day:"numeric"})}`]}),u.promo&&m.jsx("div",{className:"up-quota-sub",children:u.promo}),u.partial&&m.jsx("div",{className:"up-quota-sub up-quota-hint",children:"Partial data — OpenAI returned limits this build doesn't recognise."})]}):(u==null?void 0:u.ok)===!1?m.jsxs("div",{className:"up-quota-na",children:[m.jsx("span",{children:"Quota unavailable."}),m.jsx("span",{className:"up-quota-hint",children:w3(u.reason)})]}):m.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),b?m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"up-total",children:[m.jsx("span",{className:"up-total-value",children:ze(x.total)}),m.jsx("span",{className:"up-total-label",children:"total spend"})]}),m.jsx(p3,{cost:x}),k>0&&m.jsxs("div",{className:"up-tokens-row",children:[m.jsxs("span",{className:"up-tok",children:[m.jsx("span",{className:"up-k",children:"in"}),Ft(N.in)]}),m.jsxs("span",{className:"up-tok",children:[m.jsx("span",{className:"up-k",children:"out"}),Ft(N.out)]}),N.cacheR>0&&m.jsxs("span",{className:"up-tok",children:[m.jsx("span",{className:"up-k",children:"cache r"}),Ft(N.cacheR)]}),N.cacheC>0&&m.jsxs("span",{className:"up-tok",children:[m.jsx("span",{className:"up-k",children:"cache c"}),Ft(N.cacheC)]})]}),y.filter(O=>O.cost.total>0).length>0&&m.jsxs("section",{className:"up-section",children:[m.jsx("h4",{className:"up-section-title",children:"By model"}),m.jsxs("table",{className:"up-table",children:[m.jsx("thead",{children:m.jsxs("tr",{children:[m.jsx("th",{children:"Model"}),m.jsx("th",{children:"Tokens"}),m.jsx("th",{children:"Cost"})]})}),m.jsx("tbody",{children:y.filter(O=>O.cost.total>0).map(O=>m.jsxs("tr",{children:[m.jsx("td",{className:"up-model-name",title:O.model,children:ii(O.model)}),m.jsx("td",{className:"up-num",children:Ft(O.inputTokens+O.outputTokens)}),m.jsx("td",{className:"up-num up-cost-val",children:ze(O.cost.total)})]},O.model))})]})]}),S.filter(O=>O.cost>0).length>0&&m.jsxs("section",{className:"up-section",children:[m.jsx("h4",{className:"up-section-title",children:"By session"}),m.jsx("div",{className:"up-sessions",children:S.filter(O=>O.cost>0).map(O=>m.jsxs("div",{className:"up-session-row",children:[m.jsx("span",{className:`sl-dot state-${O.state}`,"aria-hidden":!0}),m.jsx("span",{className:"up-session-label",children:O.label}),m.jsx("span",{className:"up-session-tokens",children:Ft(O.inputTokens+O.outputTokens)}),m.jsx("span",{className:"up-session-cost",children:ze(O.cost)})]},O.sessionId))})]})]}):k>0?m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"up-tokens-row",children:[m.jsxs("span",{className:"up-tok",children:[m.jsx("span",{className:"up-k",children:"in"}),Ft(N.in)]}),m.jsxs("span",{className:"up-tok",children:[m.jsx("span",{className:"up-k",children:"out"}),Ft(N.out)]})]}),m.jsx("div",{className:"up-hint",children:"Cost appears once a known model is detected."})]}):m.jsxs("div",{className:"up-empty",children:["No usage data yet.",m.jsx("br",{}),"Start a Claude Code or Codex session."]})]})}const Mx=18,S3=1100,Gi=(e,n)=>{const r=Math.sin(e*12.9898+n*78.233)*43758.5453;return r-Math.floor(r)},k3=Array.from({length:Mx},(e,n)=>{const r=-72+144*n/(Mx-1)+(Gi(n,1)-.5)*9,i=(r-90)*(Math.PI/180),o=(54+32*Math.cos(r*Math.PI/180))*(.74+Gi(n,2)*.52);return{dx:Math.cos(i)*o,dy:Math.sin(i)*o,rot:(n%2?1:-1)*(100+Gi(n,3)*260),delay:Math.round(Gi(n,4)*90),dur:760+Math.round(Gi(n,5)*260),scale:.8+Gi(n,6)*.45,hue:n%4,round:n%3===0}});function Px({anchor:e,lifetimeMs:n=S3}){var l;const[r,i]=A.useState(null),o=typeof window<"u"&&((l=window.matchMedia)==null?void 0:l.call(window,"(prefers-reduced-motion: reduce)").matches);return A.useEffect(()=>{if(o)return;const u=e.current;if(!u)return;const c=u.getBoundingClientRect();i({x:c.left+c.width/2,y:c.top+c.height/2});const p=window.setTimeout(()=>i(null),n);return()=>window.clearTimeout(p)},[e,n,o]),o||!r?null:CI.createPortal(m.jsx("div",{className:"confetti",style:{left:`${r.x}px`,top:`${r.y}px`},"aria-hidden":!0,children:k3.map((u,c)=>m.jsx("span",{className:`confetti-bit${u.round?" round":""}`,"data-hue":u.hue,style:{"--dx":`${u.dx.toFixed(1)}px`,"--dy":`${u.dy.toFixed(1)}px`,"--rot":`${u.rot}deg`,"--s":u.scale.toFixed(2),animationDelay:`${u.delay}ms`,animationDuration:`${u.dur}ms, ${u.dur}ms`}},c))}),document.body)}const tC=new Set(["awaiting_url","awaiting_code","registering"]);function E3(e){return e!=null&&tC.has(e)}function nC(e){return e!=null&&e!=="done"&&!tC.has(e)}const N3="the sign-in ended before it finished — the deck restarted, or it was cancelled in another tab",C3="the sign-in did not complete";function j3({state:e,serverError:n,localError:r}){const i=e==="idle";return{title:i?"Sign-in ended":"Sign-in failed",message:r||n||(i?N3:C3)}}const T3="done";function R3(){let e=!1;return{shouldAnnounce(n){return n!==T3?(e=!1,!1):e?!1:(e=!0,!0)}}}const Ox={already_running:"a sign-in is already in progress",no_url:"the claude CLI did not offer a sign-in link — is it installed?",not_waiting:"that sign-in is no longer waiting for a code",not_prompted:"the CLI has not asked for a code yet",code_rejected:"that code was not accepted — copy it again from the browser",no_verdict:"the claude CLI has not answered — try the code again",empty_code:"paste the code from the browser first",login_failed:"the code was not accepted",no_identity:"signed in, but the CLI still reports nobody logged in",add_failed:"signed in, but claude-swap could not record the account",not_a_share:"that does not look like a shared account — it should start with ccdeck1:",corrupt:"that share is incomplete — copy the whole thing",wrong_version:`that share was made by a newer ${Jn}`,expired:"that share has expired — make a new one",import_failed:"claude-swap refused the import"},Lx={no_cswap:"claude-swap could not be run — it is not on this deck's PATH. Set AGENTS_DECK_CSWAP to its full path",timeout:"claude-swap took too long and was stopped — try again",switch_failed:"claude-swap refused the switch",bad_account:"that is not an account claude-swap has",unknown_setting:"claude-swap has no such setting",out_of_range:"that value is outside what the setting allows",bad_value:"claude-swap does not accept that value",set_failed:"claude-swap refused the change",command_failed:"claude-swap refused the command"},A3=`claude-swap could not read the login keychain — start ${Jn} from a Terminal window rather than a background service`;function dv(e,n){return(e==null?void 0:e.reason)!=="no_cswap"&&/keychain/i.test(io(e))?A3:e!=null&&e.reason&&Lx[e.reason]?Lx[e.reason]:(e==null?void 0:e.reason)||n}function io(e){return((e==null?void 0:e.output)||(e==null?void 0:e.detail)||(e==null?void 0:e.error)||"").trim()}const qx={no_install:"ccusage is not installed, and AGENTS_DECK_NO_INSTALL=1 forbids fetching it — unset that variable and restart the deck, or install ccusage yourself",timeout:"ccusage took more than 90 seconds and was stopped — a narrower range usually finishes",bad_output:"ccusage ran but printed no usage data — try again, and run ccusage daily --json in a terminal if it keeps happening",run_failed:"ccusage could not report usage — try again",unreachable:"the deck did not answer — check it is still running, then try again"},I3="ccusage could not be started — npx is not on this deck's PATH. Install Node's npm/npx, or put ccusage on PATH yourself";function M3(e){return/\bnpx\b/i.test(e)&&/(command not found|not found|not recognized|ENOENT)/i.test(e)}function P3(e,n){return M3(io(e))?I3:e!=null&&e.reason&&qx[e.reason]?qx[e.reason]:(e==null?void 0:e.reason)||n}function Jl(e,n){return e!=null&&e.detail?e.detail:e!=null&&e.error&&nC(e.state)?e.error:e!=null&&e.reason&&Ox[e.reason]?Ox[e.reason]:e!=null&&e.error?e.error:(e==null?void 0:e.reason)||n}const O3=1500;async function Ul(e){return(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).json().catch(()=>null)}const fv=ue.forwardRef((e,n)=>m.jsxs("svg",{className:"aa-mark",viewBox:"0 0 44 44","aria-hidden":!0,ref:n,children:[m.jsx("circle",{className:"aa-mark-ring",cx:"22",cy:"22",r:"20"}),m.jsx("path",{className:"aa-mark-tick",d:"M13.5 22.5 L19.5 28.5 L31 17"})]}));fv.displayName="SuccessMark";function L3({onClose:e,onChanged:n}){const[r,i]=A.useState("login"),[o,l]=A.useState(null),[u,c]=A.useState(""),[p,h]=A.useState(""),[f,g]=A.useState(!1),[y,x]=A.useState(null),[N,_]=A.useState(null),S=A.useRef(!1),b=A.useRef(null),k=A.useRef(null),E=A.useRef(null),C=A.useCallback(()=>{S.current&&Ul({action:"login-cancel"}).catch(()=>{}),e()},[e]);ao(C);const R=A.useCallback(async()=>{g(!0),x(null),S.current=!0;const q=await Ul({action:"login"}).catch(()=>null);if(g(!1),!(q!=null&&q.ok)){x(Jl(q,"could not start the sign-in"));return}l(q)},[]);A.useEffect(()=>{if(!E3(o==null?void 0:o.state))return;const q=window.setInterval(async()=>{try{const T=await fetch("/api/claude-accounts/login");T.ok&&l(await T.json())}catch{}},O3);return()=>window.clearInterval(q)},[o]);const M=A.useRef(n);M.current=n;const L=A.useRef(R3());A.useEffect(()=>{var q;(o==null?void 0:o.state)==="awaiting_code"&&((q=b.current)==null||q.focus()),L.current.shouldAnnounce(o==null?void 0:o.state)&&M.current()},[o==null?void 0:o.state]),A.useEffect(()=>{var q;r==="paste"&&((q=k.current)==null||q.focus())},[r]);const U=A.useCallback(async()=>{var T;g(!0),x(null);const q=await Ul({action:"login-code",code:u}).catch(()=>null);if(g(!1),!(q!=null&&q.ok)){x(Jl(q,"the code was not accepted")),q!=null&&q.state&&l(q),(T=b.current)==null||T.select();return}c(""),l(q)},[u,o]),O=A.useCallback(async()=>{g(!0),x(null);const q=await Ul({action:"import",blob:p}).catch(()=>null);if(g(!1),!(q!=null&&q.ok)){x(Jl(q,"the import failed"));return}h(""),_({added:q.added===!0,num:q.num??null,email:q.email??null}),n()},[p,n]),P=(o==null?void 0:o.state)==="done"?o.account:null,F=nC(o==null?void 0:o.state)||!!(y&&S.current&&!f),G=j3({state:o==null?void 0:o.state,serverError:o==null?void 0:o.error,localError:y});return m.jsx("div",{className:"modal-backdrop",onClick:C,role:"presentation",children:m.jsxs("div",{className:"modal aa-modal",onClick:q=>q.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":"Add a Claude account",children:[m.jsxs("header",{className:"modal-head",children:[m.jsx("div",{className:"modal-title",children:m.jsxs("span",{className:"aa-tabs",role:"tablist",children:[m.jsx("button",{type:"button",role:"tab","aria-selected":r==="login",className:`aa-tab${r==="login"?" on":""}`,onClick:()=>i("login"),children:"Sign in"}),m.jsx("button",{type:"button",role:"tab","aria-selected":r==="paste",className:`aa-tab${r==="paste"?" on":""}`,onClick:()=>i("paste"),children:"Paste a share"})]})}),m.jsx("div",{className:"modal-actions",children:m.jsx("button",{type:"button",className:"btn icon-btn",onClick:C,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})})]}),m.jsx("section",{className:"modal-body aa-body",children:r==="login"?P?m.jsxs("div",{className:"aa-done",children:[m.jsx(fv,{ref:E}),m.jsx(Px,{anchor:E}),m.jsx("h4",{children:P.added?`Account ${P.num} added`:"Credentials refreshed"}),m.jsxs("p",{className:"aa-note",children:[m.jsx("strong",{children:P.email}),P.added?" is in the rotation. The account you were using is still active.":" was already managed, so its stored credentials were replaced."]}),m.jsx("button",{type:"button",className:"btn primary",onClick:e,children:"Done"})]}):(o==null?void 0:o.state)==="awaiting_code"||(o==null?void 0:o.state)==="registering"?m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"aa-step",children:[m.jsx("h4",{children:"1 · Approve in the browser"}),m.jsx("p",{className:"aa-note",children:"A tab should have opened. If not, use this link:"}),m.jsx("a",{className:"aa-link",href:o.url??"#",target:"_blank",rel:"noreferrer noopener",children:o.url})]}),m.jsxs("div",{className:"aa-step",children:[m.jsx("h4",{children:"2 · Paste the code it gives you"}),m.jsxs("div",{className:"aa-field",children:[m.jsx("input",{ref:b,type:"text",value:u,onChange:q=>c(q.target.value),onKeyDown:q=>{q.key==="Enter"&&u.trim()&&!f&&U()},placeholder:"paste the code here",spellCheck:!1,autoComplete:"off","aria-label":"Sign-in code",disabled:o.state==="registering"}),m.jsx("button",{type:"button",className:"btn primary",disabled:f||!u.trim()||o.state==="registering",onClick:U,children:o.state==="registering"?"registering…":"Continue"})]}),(y||o.error)&&m.jsx("p",{className:"aa-err",children:y??o.error}),m.jsx("p",{className:"aa-note",children:"The code goes straight to the claude CLI on this machine. It is never stored or sent anywhere else."})]})]}):F?m.jsxs("div",{className:"aa-step",children:[m.jsx("h4",{children:G.title}),m.jsx("p",{className:"aa-err",children:G.message}),m.jsx("button",{type:"button",className:"btn",onClick:()=>{S.current=!1,l(null),x(null),R()},children:"Try again"})]}):f||S.current?m.jsx("div",{className:"aa-step",children:m.jsx("p",{className:"aa-note",children:"Asking the claude CLI for a sign-in link…"})}):m.jsxs("div",{className:"aa-step aa-primer",children:[m.jsx("h4",{children:"Sign in to Anthropic"}),m.jsx("p",{className:"aa-note",children:"Opens a browser tab where you approve the sign-in, then asks for the code it shows you. claude-swap records the account when it completes, and the account you are using now stays active."}),m.jsx("div",{className:"aa-actions",children:m.jsx("button",{type:"button",className:"btn primary",onClick:R,disabled:f,children:"Open the sign-in page"})})]}):N?m.jsxs("div",{className:"aa-done",children:[m.jsx(fv,{ref:E}),N.added&&m.jsx(Px,{anchor:E}),m.jsx("h4",{children:N.added?`Account ${N.num} imported`:"Already here"}),m.jsx("p",{className:"aa-note",children:N.added?m.jsxs(m.Fragment,{children:[N.email?m.jsx("strong",{children:N.email}):"That account"," is in the rotation now. Nothing changed on the deck you copied it from."]}):"This deck already holds that account, so nothing changed."}),m.jsxs("div",{className:"aa-actions",children:[m.jsx("button",{type:"button",className:"btn primary",onClick:e,children:"Done"}),m.jsx("button",{type:"button",className:"btn",onClick:()=>_(null),children:"Import another"})]})]}):m.jsxs("div",{className:"aa-step",children:[m.jsx("h4",{children:"Paste an account shared from another deck"}),m.jsxs("div",{className:"aa-field",children:[m.jsx("input",{ref:k,type:"text",value:p,onChange:q=>h(q.target.value),onKeyDown:q=>{q.key==="Enter"&&p.trim()&&!f&&O()},placeholder:"ccdeck1:…",spellCheck:!1,autoComplete:"off","aria-label":"Shared account"}),m.jsx("button",{type:"button",className:"btn primary",disabled:f||!p.trim(),onClick:O,children:f?"importing…":"Import"})]}),y&&m.jsx("p",{className:"aa-err",children:y}),m.jsxs("p",{className:"aa-note",children:["Use ",m.jsx("strong",{children:"share"})," on an account in the other deck. A share carries a live login and expires ten minutes after it is made."]})]})})]})})}function q3(e,n){const r=new Set(e),i=e.length?Math.max(...e):0;return[...new Set([...e,i+1])].sort((o,l)=>o-l).map(o=>{const l=o===n?"here":r.has(o)?"swap":"free";return{slot:o,kind:l,label:l==="here"?`slot ${o}`:`slot ${o} · ${l}`}})}function $3(e,n,r){if(!(r!=null&&r.ok))return null;const i=Number.isInteger(r.to)?r.to:null;if(i==null)return{menuFor:null,confirmRemove:null,shareFor:null,swapNote:null};const o=r.swapped===!0&&i!==n;return{menuFor:e.menuFor===n?i:o&&e.menuFor===i?n:e.menuFor,confirmRemove:null,shareFor:null,swapNote:o?{at:i,displaced:n}:null}}function D3(e,n){const r=e.trim();return{alias:r,commit:r!==(n??"").trim()}}const F3=Object.freeze({text:"couldn't reach the deck server",reload:!0});async function $x(e){return e.ok?{ok:!0,status:e.status,body:null}:{ok:!1,status:e.status,body:await e.json().catch(()=>null)}}function z3(e){const n=e.find(i=>!i.ok);if(!n)return null;const r=io(n.body);return{text:dv(n.body,`the deck server answered ${n.status}`),...r?{raw:r}:{},reload:!0}}function Dx(e,n){return n?e!=null&&e.reload&&e.text===n.text&&e.raw===n.raw?e:n:e!=null&&e.reload?null:e}const Fx=15e3,B3=8e3,U3=1800,H3=3e4,W3=[70,80,85,90,95];function V3(e,n){const r=e-n;if(r<=0)return null;const i=Math.floor(r/86400),o=Math.floor(r%86400/3600),l=Math.floor(r%3600/60);return i>0?`${i}d ${o}h`:o>0?`${o}h ${l}m`:`${l}m`}function zx(e,n){const r=n-Math.floor(e/1e3);return r<60?"just now":r<3600?`${Math.floor(r/60)}m ago`:r<86400?`${Math.floor(r/3600)}h ago`:`${Math.floor(r/86400)}d ago`}function G3(e,n){if(!e)return"";const r=Math.floor(e/1e3)-n;return r<=0?" · due":r<60?` · next in ${r}s`:` · next in ${Math.round(r/60)}m`}function Y3(e){switch(e){case"invalid_grant":case"no_refresh_token":return{text:"login expired",hint:"claude-swap's stored login for this account was rejected and cannot be refreshed. Signing in again replaces it — the account keeps its slot, its alias and its history.",fixable:!0};case"http-401":return{text:"re-login needed",hint:"Anthropic refused this account's token.",fixable:!0};case"http-429":return{text:"rate limited",hint:"Anthropic is throttling requests for this account. It clears on its own.",fixable:!1};case"transient":return{text:"temporary error",hint:"A network or server hiccup while reading usage. The next collection retries.",fixable:!1};case"timeout":return{text:"timed out",hint:"Reading this account's usage took too long. The next collection retries.",fixable:!1};case"network":return{text:"unreachable",hint:"Could not reach Anthropic to read this account's usage.",fixable:!1};default:return{text:e,hint:`claude-swap reported "${e}" for this account.`,fixable:!1}}}function K3({lane:e,nowSec:n}){const r=Math.min(100,Math.max(0,e.pct)),i=r>=90?"var(--err)":r>=70?"var(--warn)":"var(--accent)",o=e.resetAt?V3(e.resetAt,n):null;return m.jsxs("div",{className:"ap-lane",children:[m.jsx("span",{className:"ap-lane-label",children:e.label}),m.jsx("div",{className:"ap-lane-track",children:m.jsx("div",{className:"ap-lane-fill",style:{width:`${r===0?1.5:r}%`,background:i,opacity:r===0?.4:1}})}),m.jsxs("span",{className:"ap-lane-pct",style:{color:i},children:[r,"%"]}),m.jsx("span",{className:"ap-lane-reset",children:o?`resets ${o}`:""})]})}async function X3(e){var r;let n=!1;try{n=await Promise.race([((r=navigator.clipboard)==null?void 0:r.writeText(e).then(()=>!0))??Promise.resolve(!1),new Promise(i=>window.setTimeout(()=>i(!1),500))])}catch{n=!1}if(n)return!0;try{const i=document.createElement("textarea");i.value=e,i.setAttribute("readonly",""),i.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(i),i.select(),n=document.execCommand("copy"),i.remove()}catch{n=!1}return n}function Q3(e,n){const r=Math.round(e/1e3)-n;return r<=0?{text:"expired",tone:"gone"}:r<60?{text:`expires in ${r}s`,tone:"soon"}:{text:`expires in ${Math.round(r/60)}m`,tone:"ok"}}function Z3({onClose:e}){var re,le,fe;const[n,r]=A.useState(null),[i,o]=A.useState(null),[l,u]=A.useState(null),[c,p]=A.useState(!1),[h,f]=A.useState(null),[g,y]=A.useState(null),[x,N]=A.useState(()=>Math.floor(Date.now()/1e3)),_=A.useRef(null),[S,b]=A.useState(null),[k,E]=A.useState(!1),[C,R]=A.useState(""),[M,L]=A.useState(null),[U,O]=A.useState(null),[P,F]=A.useState(null),[G,q]=A.useState(!1),[T,Q]=A.useState(null),z=A.useCallback(async(te=!1)=>{te&&p(!0);const ce=new AbortController,Ce=window.setTimeout(()=>ce.abort(),H3);try{const[ve,Re]=await Promise.all([fetch(`/api/claude-accounts${te?"?refresh=1":""}`,{signal:ce.signal}),fetch("/api/cswap-auto",{signal:ce.signal})]);ve.ok&&r(await ve.json()),Re.ok&&o(await Re.json());const ye=z3([await $x(ve),await $x(Re)]);y(ke=>Dx(ke,ye))}catch{y(ve=>Dx(ve,F3))}finally{window.clearTimeout(Ce),te&&p(!1)}},[]),ne=A.useCallback(async(te,ce)=>{u(ce),y(null);try{const ve=await(await fetch("/api/cswap-auto",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(te)})).json().catch(()=>null);return ve!=null&&ve.ok||y({text:dv(ve,"command failed"),raw:io(ve)}),ve}catch{return y({text:"server unreachable"}),null}finally{u(null)}},[]),Z=A.useCallback(async(te,ce)=>{u(ce),y(null);try{const ve=await(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(te)})).json().catch(()=>null);return ve!=null&&ve.ok||y({text:Jl(ve,"command failed")}),ve}catch{return y({text:"server unreachable"}),null}finally{u(null)}},[]);A.useEffect(()=>(z(!0),_.current=window.setInterval(()=>z(!1),Fx),()=>{_.current!=null&&window.clearInterval(_.current)}),[z]),A.useEffect(()=>{const te=window.setInterval(()=>N(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(te)},[]);const $=((re=i==null?void 0:i.settings["autoswitch.threshold"])==null?void 0:re.value)??"90",K=(le=n==null?void 0:n.accounts)==null?void 0:le.find(te=>te.active),I=K!=null&&K.lanes.length?Math.max(...K.lanes.map(te=>te.pct)):null,H=I!=null&&I>=Number($)-15,X=async te=>{f(te),y(null);try{const Ce=await(await fetch("/api/claude-accounts/switch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({account:te})})).json().catch(()=>null);Ce!=null&&Ce.ok||y({text:dv(Ce,"the switch failed"),raw:io(Ce)}),await z(!0)}catch{y({text:"server unreachable"})}finally{f(null)}},B=async(te,ce)=>{const{commit:Ce,alias:ve}=D3(C,ce);if(Ce){const Re=await Z({action:"alias",account:te,alias:ve},`alias-${te}`);if(await z(!0),!(Re!=null&&Re.ok))return;R(ve)}L(te),window.setTimeout(()=>L(Re=>Re===te?null:Re),U3)},J=async(te,ce)=>{const Ce=await Z({action:"move",account:te,slot:ce},`move-${te}`),ve=$3({menuFor:S,shareFor:(P==null?void 0:P.num)??null},te,Ce);if(await z(!0),ve){b(ve.menuFor),O(ve.confirmRemove),ve.shareFor==null&&(F(null),q(!1)),Q(ve.swapNote);const Re=ve.swapNote;Re&&window.setTimeout(()=>Q(ye=>ye===Re?null:ye),B3)}};return m.jsxs("div",{className:"accounts-panel","aria-label":"Claude accounts",children:[m.jsxs("div",{className:"ap-header",children:[m.jsx("h3",{children:"Accounts"}),m.jsxs("div",{className:"ap-header-right",children:[m.jsx("button",{type:"button",className:"btn ap-add",onClick:()=>E(!0),title:"Sign in to another Claude account, or paste one shared from another deck",children:"+"}),m.jsx("button",{type:"button",className:"btn ap-refresh",onClick:()=>z(!0),disabled:c,"aria-label":"Reload accounts",title:"Reload from claude-swap",children:c?"…":"↻"}),m.jsx("button",{type:"button",className:"btn icon-btn",onClick:e,"aria-label":"Close accounts panel",title:"Close (A)",children:"×"})]})]}),n==null?g?m.jsxs("div",{className:"ap-empty",role:"alert",children:[m.jsx("span",{title:g.raw||void 0,children:g.text}),m.jsxs("span",{className:"ap-hint",children:["No accounts have arrived, so there is nothing to show yet. The panel keeps trying every ",Fx/1e3," seconds."]}),m.jsx("button",{type:"button",className:"ap-fix",disabled:c,onClick:()=>z(!0),children:c?"trying…":"try again"})]}):m.jsx("div",{className:"ap-empty",children:"Checking…"}):n.ok?m.jsxs(m.Fragment,{children:[(fe=n.accounts)==null?void 0:fe.map(te=>m.jsxs("div",{className:`ap-account${te.active?" active":""}${te.disabled?" disabled":""}`,children:[m.jsxs("div",{className:"ap-account-head",children:[m.jsx("span",{className:"ap-num",children:te.num}),te.alias&&m.jsx("span",{className:"ap-alias",children:te.alias}),m.jsx("span",{className:"ap-email",title:te.org??void 0,children:te.email}),m.jsx("button",{type:"button",className:`ap-more${S===te.num?" on":""}`,"aria-label":`Manage account ${te.num}`,"aria-expanded":S===te.num,"aria-controls":S===te.num?`ap-manage-${te.num}`:void 0,title:"Share, rename, move, remove",onClick:()=>{b(S===te.num?null:te.num),R(te.alias??""),O(null),F(null),q(!1),Q(null),L(null)},children:"⋯"}),te.active?m.jsx("span",{className:"ap-badge-active",children:"● active"}):m.jsx("button",{type:"button",className:"btn ap-switch",disabled:h!=null||te.disabled,onClick:()=>X(te.num),title:te.disabled?"Held out of rotation":`Switch to ${te.alias??te.email}`,children:h===te.num?"…":"switch"})]}),te.lanes.length>0?te.lanes.map(ce=>m.jsx(K3,{lane:ce,nowSec:x},ce.id)):m.jsx("div",{className:"ap-hint",children:"No usage recorded yet."}),m.jsxs("div",{className:"ap-meta",children:[te.error&&(()=>{const ce=Y3(te.error);return m.jsxs(m.Fragment,{children:[m.jsx("span",{className:"ap-err",title:ce.hint,children:ce.text}),ce.fixable&&m.jsx("button",{type:"button",className:"ap-fix",onClick:()=>E(!0),title:"Open the sign-in dialog. Signing in as this account replaces its stored login in place.",children:"sign in again"})]})})(),((i==null?void 0:i.enabled)||(i==null?void 0:i.external))&&!te.active&&m.jsx("button",{type:"button",className:"ap-rotate",disabled:l!=null,onClick:()=>ne({action:"account",account:te.num,enabled:te.disabled},`rot-${te.num}`).then(()=>z(!0)),title:te.disabled?"Return this account to auto-rotation":"Hold this account out of auto-rotation",children:te.disabled?"held out":"in rotation"}),te.fetchedAt?m.jsxs("span",{className:`ap-age${te.stale?" ap-stale":""}`,title:"When claude-swap last read this account's usage, and when it plans to read it again. It sets that interval itself — 3 minutes at the fastest, wider while an account is recovering from a rate limit — and every surface, including `cswap watch`, follows the same plan.",children:["collected ",zx(te.fetchedAt,x),G3(te.nextAt,x)]}):m.jsx("span",{className:"ap-age ap-stale",title:"claude-swap has not read this account yet",children:"never collected"})]}),S===te.num&&m.jsxs("div",{className:"ap-manage",id:`ap-manage-${te.num}`,role:"group","aria-label":`Manage account ${te.num}`,children:[m.jsxs("div",{className:"ap-manage-name",children:[m.jsx("label",{className:"ap-vh",htmlFor:`ap-alias-${te.num}`,children:"Alias"}),m.jsx("input",{id:`ap-alias-${te.num}`,className:"ap-manage-input",type:"text",value:C,onChange:ce=>R(ce.target.value),onKeyDown:ce=>{ce.key==="Enter"&&B(te.num,te.alias)},placeholder:"e.g. work",spellCheck:!1,autoFocus:!0}),m.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,onClick:()=>B(te.num,te.alias),title:"A short name to show instead of the email",children:M===te.num?"saved":"save"})]}),m.jsxs("div",{className:"ap-manage-acts",children:[m.jsx("label",{className:"ap-vh",htmlFor:`ap-slot-${te.num}`,children:"Slot"}),m.jsx("span",{className:"ap-field",children:m.jsx("select",{id:`ap-slot-${te.num}`,value:String(te.num),disabled:l!=null,onChange:ce=>J(te.num,Number(ce.target.value)),children:q3((n.accounts??[]).map(ce=>ce.num),te.num).map(ce=>m.jsx("option",{value:ce.slot,children:ce.label},ce.slot))})}),m.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,title:`Copy this account to another ${Jn}. The share carries a live login and expires in 10 minutes.`,onClick:async()=>{q(!1);const ce=await Z({action:"share",account:te.num},`share-${te.num}`);ce!=null&&ce.ok&&F({num:te.num,blob:ce.blob,expiresAt:ce.expiresAt})},children:"share"}),m.jsx("button",{type:"button",className:`ap-manage-btn danger${U===te.num?" armed":""}`,disabled:l!=null,title:U===te.num?"This deletes the stored credentials for this account":"Remove this account from claude-swap",onClick:()=>{if(U!==te.num){O(te.num),window.setTimeout(()=>O(ce=>ce===te.num?null:ce),4e3);return}O(null),Z({action:"remove",account:te.num},`rm-${te.num}`).then(()=>{b(null),z(!0)})},children:U===te.num?"confirm":"remove"})]}),(T==null?void 0:T.at)===te.num&&(()=>{var ve;const ce=(ve=n.accounts)==null?void 0:ve.find(Re=>Re.num===T.displaced),Ce=(ce==null?void 0:ce.alias)??(ce==null?void 0:ce.email)??"the account that was there";return m.jsxs("span",{className:"ap-manage-hint ap-manage-swap",title:`Slot ${T.at} was taken, so the two accounts traded places: ${Ce} now holds slot ${T.displaced}.`,children:["swapped with slot ",T.displaced]})})(),(P==null?void 0:P.num)===te.num&&(()=>{const ce=Q3(P.expiresAt,x),Ce=ce.tone==="gone";return m.jsxs("div",{className:`ap-share${Ce?" expired":""}`,children:[m.jsx("code",{className:"ap-share-blob",children:P.blob}),m.jsxs("div",{className:"ap-share-foot",children:[m.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,onClick:async()=>{if(Ce){q(!1);const ve=await Z({action:"share",account:te.num},`share-${te.num}`);ve!=null&&ve.ok&&F({num:te.num,blob:ve.blob,expiresAt:ve.expiresAt});return}await X3(P.blob)&&(q(!0),window.setTimeout(()=>q(!1),1800))},children:Ce?"make a new share":G?"copied":"copy"}),m.jsxs("span",{className:"ap-manage-hint",children:["carries a live login · ",m.jsx("span",{className:`ap-share-expiry ${ce.tone}`,children:ce.text})]})]})]})})()]})]},te.num)),(i==null?void 0:i.ok)&&m.jsxs("div",{className:"ap-auto",children:[m.jsxs("div",{className:"ap-auto-head",children:[m.jsx("span",{className:"ap-auto-title",children:"Auto-switch"}),m.jsxs("span",{className:"ap-auto-ctl",children:[I!=null&&m.jsxs("span",{className:`ap-auto-now${H?" near":""}`,children:[Math.round(I),"%"]}),m.jsx("span",{className:"ap-field",title:"Switch once the active account passes this much of its limit",children:m.jsx("select",{"aria-label":"Switch threshold",value:$,disabled:l!=null,onChange:te=>ne({action:"setting",key:"autoswitch.threshold",value:te.target.value},"threshold").then(()=>z(!0)),children:W3.map(te=>m.jsxs("option",{value:te,children:[te,"%"]},te))})}),m.jsxs("button",{type:"button",className:`ap-auto-state${i.enabled?" live":""}`,role:"switch","aria-checked":i.enabled,disabled:l!=null,onClick:()=>ne({action:"enable",enabled:!i.enabled},"enable").then(()=>z(!0)),title:i.enabled?"Stop switching accounts automatically":"Switch accounts automatically when the active one nears its limit",children:[m.jsx("i",{className:i.enabled?"ap-pulse":"ap-dot","aria-hidden":!0}),i.enabled?"on":"off"]})]})]}),i.external&&m.jsxs("p",{className:"ap-auto-note",children:[m.jsx("i",{className:"ap-pulse","aria-hidden":!0})," A ",m.jsx("code",{children:"cswap auto"})," loop in your terminal is doing the switching. The deck stands down while it runs",i.enabled?" — this toggle takes over when you stop it.":"."]}),i.lastTick&&m.jsx("div",{className:"ap-auto-foot",children:m.jsxs("span",{className:"ap-auto-result",children:["checked ",zx(i.lastTick.at,x)]})})]}),g&&m.jsxs("div",{className:"ap-failure",role:"alert",children:[m.jsx("span",{className:"ap-failure-text",title:g.raw||void 0,children:g.text}),m.jsx("button",{type:"button",className:"ap-failure-x",onClick:()=>y(null),"aria-label":"Dismiss this message",title:"Dismiss",children:"×"})]}),m.jsx("p",{className:"ap-footnote",title:"Anthropic's usage endpoint allows roughly 28–30 requests per hour per account, shared by every tool on this machine — polling it from here would rate-limit your account. So the deck never fetches: it asks claude-swap to collect while this panel is open, at most once every three minutes, and claude-swap decides whether that touches the network at all.",children:"Collected by claude-swap while this panel is open."})]}):m.jsx("div",{className:"ap-empty",children:n.reason==="no_cswap"?m.jsxs(m.Fragment,{children:[m.jsx("span",{children:"claude-swap isn't installed."}),m.jsx("span",{className:"ap-hint",children:"This panel reads the account store claude-swap keeps — without it there is nothing to show. It is a separate tool, published on PyPI, so it does not come with this package."}),n.hint&&m.jsx("code",{className:"ap-cmd",children:n.hint}),m.jsxs("span",{className:"ap-hint",children:["Then add an account with the ",m.jsx("strong",{children:"+"})," button above."]})]}):n.reason==="no_accounts"?m.jsxs(m.Fragment,{children:[m.jsx("span",{children:"No accounts added yet."}),m.jsxs("span",{className:"ap-hint",children:["claude-swap is installed but has nothing in its store. Use the ",m.jsx("strong",{children:"+"})," above to sign one in, or to paste one shared from another deck."]})]}):m.jsxs(m.Fragment,{children:[m.jsx("span",{children:"Couldn't read the account store."}),m.jsxs("span",{className:"ap-hint",children:["claude-swap is installed, but its store could not be read",n.reason?` (${n.reason})`:"","."]})]})}),k&&m.jsx(L3,{onClose:()=>E(!1),onChanged:()=>z(!0)})]})}const J3=3e4;function eL({bundle:e,running:n,lastTried:r}){return!n||e===n?!1:r!==n}function tL({bundle:e,running:n,pending:r,lastTried:i}){return n?eL({bundle:e,running:n,lastTried:i})?"reload":r==null||r&&r!==n?"wait":"confirm":"wait"}function nL(e){return!e||e.state!=="failed"?null:`${typeof e.at=="number"?e.at:0}:${e.error??""}`}function rL({asked:e,reported:n}){return n?n!==e:!1}function sL(e){const n=e.thresholdMs??J3;return!e.enabled||e.kind!=="restart"||!e.canRestart?{idleSince:null,restart:!1}:e.busy?{idleSince:null,restart:!1}:e.idleSince==null?{idleSince:e.now,restart:!1}:e.now<e.idleSince?{idleSince:e.now,restart:!1}:{idleSince:e.idleSince,restart:e.now-e.idleSince>=n}}function iL(e){return e.ctrlKey||e.metaKey||e.altKey}const oL=new Set(["button","checkbox","color","file","image","radio","range","reset","submit"]),aL=new Set(["INPUT","TEXTAREA","SELECT","OPTION","BUTTON","SUMMARY","A"]),lL=new Set(["button","checkbox","combobox","link","listbox","menu","menubar","menuitem","menuitemcheckbox","menuitemradio","option","radio","searchbox","slider","spinbutton","switch","tab","textbox","treeitem"]);function rC(e){return typeof e.tagName=="string"?e.tagName.toUpperCase():""}function sC(e){if(!e)return!1;if(e.isContentEditable)return!0;const n=rC(e);return n==="TEXTAREA"?!0:n!=="INPUT"?!1:!oL.has(String(e.type??"text").toLowerCase())}function uL(e){if(!e)return!1;if(sC(e)||aL.has(rC(e)))return!0;const n=typeof e.role=="string"?e.role.trim().toLowerCase():"";return n!==""&&n.split(/\s+/).some(r=>lL.has(r))}function cL({agentCount:e,onConfirm:n,onCancel:r}){const i=A.useRef(null);ao(r,{focusRef:i,layer:lO});const o=e===0?"This deletes the server's event log":`This removes ${e===1?"the one agent":`all ${e} agents`} on the canvas and deletes the server's event log`;return m.jsx("div",{className:"modal-backdrop",onClick:r,role:"presentation",children:m.jsxs("div",{className:"modal clear-confirm",onClick:l=>l.stopPropagation(),role:"dialog","aria-modal":"true","aria-labelledby":"clear-confirm-title",children:[m.jsxs("header",{className:"modal-head",children:[m.jsxs("div",{className:"modal-title",children:[m.jsx("span",{className:"status-dot err","aria-hidden":!0}),m.jsx("span",{id:"clear-confirm-title",className:"modal-tool-name",children:"Clear the deck?"})]}),m.jsx("div",{className:"modal-actions",children:m.jsx("button",{type:"button",className:"btn icon-btn",onClick:r,"aria-label":"Cancel (Esc)",title:"Cancel (Esc)",children:"×"})})]}),m.jsxs("section",{className:"modal-body",children:[m.jsxs("p",{className:"modal-note",children:[o," — the file a restarted deck replays to rebuild what you see. Layout, pins and selection go with it. This cannot be undone."]}),m.jsxs("div",{className:"cc-actions",children:[m.jsx("button",{type:"button",ref:i,className:"btn",onClick:r,children:"Cancel"}),m.jsx("button",{type:"button",className:"btn danger",onClick:n,children:"Clear everything"})]})]})]})})}function dL(e,n){return e==="confirmation"?n.confirmOpen?"clear":"ignore":n.modalOpen||n.confirmOpen?"ignore":"confirm"}function Hl(e,n){if(n.size!==0)for(const r of Array.from(e.keys()))n.has(r)||e.delete(r)}function fL(e){const n=new Set;for(const r of e)n.add(r.id),n.add(`group:${r.sessionId}`);return n}function iC(e,n,r){return!n.has(e)||r.has(e)}function hL(e,n,r,i){return!n.has(e)&&iC(e,r,i)}function pL(e,n,r){const i={x:0,y:0};return n.set(e,i),r.add(e),i}function mL(e,n,r,i){r.set(e,n),i.delete(e)}const gL=40,vL=120;function yL(e,n){let r=null,i=0,o=Number.NEGATIVE_INFINITY;const l=()=>{r=null,o=n.now(),e()},u=()=>{r!=null&&(n.clearTimeout(r),r=null)},c=(p,h,f)=>{if(r!=null){if(i<=p)return;u()}const g=Math.min(f,Math.max(0,p-h));i=p,r=n.setTimeout(l,g)};return{live(p=gL){const h=n.now(),f=Math.max(o+p,h);if(f<=h){u(),l();return}c(f,h,p)},replay(p=vL){u(),i=n.now()+p,r=n.setTimeout(l,p)},flush(){u(),l()},cancel(){u()}}}function wL(){let e=!1,n=[];return{get paused(){return e},get size(){return n.length},accept(r){return e?(n.push(r),!1):!0},setPaused(r){if(e=r,r||n.length===0)return[];const i=n;return n=[],i}}}const xL="1",Bx="agent-dag.schema",_L=["agent-dag.layout","agent-dag.viewport"];function oC(e){if(typeof window>"u")return null;try{return window.localStorage.getItem(e)}catch{return null}}function bL(e,n=xL){let r=null;try{r=e.getItem(Bx)}catch{return[]}if(r===n)return[];const i=[];if(r!==null)for(const o of _L)try{e.getItem(o)!==null&&(e.removeItem(o),i.push(o))}catch{}try{e.setItem(Bx,n)}catch{}return i}const aC="agent-dag.theme";function SL(e){return e==="light"?"light":"dark"}function kL(){return SL(oC(aC))}function EL(){let e=0;return{begin(){const n=++e;return()=>n===e},cancel(){e++}}}function NL(e,n=new Date){return new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate()-(e-1))).toISOString().slice(0,10).replace(/-/g,"")}function CL(e){return!e.answer||e.answer.range!==e.want?{phase:"busy",stale:!1}:e.answer.ok?{phase:e.answer.days>0?"chart":"empty",stale:e.loading}:{phase:"error",stale:e.loading}}function Wl(e){const n=e.toLowerCase();return n.includes("opus")?"#c4b5fd":n.includes("sonnet")?"#7dd3fc":n.includes("haiku")?"#86efac":n.includes("gpt-5")||n.includes("gpt5")?"#fcd34d":n.includes("gpt")?"#fca5a5":n.includes("gemini")?"#a5b4fc":n.includes("codex")?"#fdba74":"#94a3b8"}const jL=[7,14,30,90];function TL(e){const[n,r]=A.useState(null),[i,o]=A.useState(!1),l=A.useRef(EL()).current,u=(c=!1)=>{const p=l.begin(),h=e;o(!0);const g=`/api/ccusage?since=${NL(h)}${c?"&refresh=1":""}`;fetch(g).then(y=>y.json()).then(y=>{p()&&r({range:h,resp:y})}).catch(()=>{p()&&r({range:h,resp:{ok:!1,reason:"unreachable"}})}).finally(()=>{p()&&o(!1)})};return A.useEffect(()=>(u(!1),()=>l.cancel()),[e]),{landed:n,loading:i,reload:()=>u(!0)}}function RL({onClose:e}){var k,E,C;const[n,r]=A.useState(30),[i,o]=A.useState(null),{landed:l,loading:u,reload:c}=TL(n);ao(e);const p=CL({loading:u,want:n,answer:l&&{range:l.range,ok:l.resp.ok===!0,days:((k=l.resp.days)==null?void 0:k.length)??0}}),h=p.phase==="chart"?l.resp.days??[]:[],f=A.useMemo(()=>h.reduce((R,M)=>Math.max(R,M.totalCost),0),[h]),{totalCost:g,totalTok:y,inOut:x,cacheRead:N,modelCosts:_}=A.useMemo(()=>{let R=0,M=0,L=0,U=0;const O=new Map;for(const P of h){R+=P.totalCost,M+=P.totalTokens,L+=P.inputTokens+P.outputTokens,U+=P.cacheReadTokens;for(const F of P.modelBreakdowns)O.set(F.modelName,(O.get(F.modelName)??0)+F.cost)}return{totalCost:R,totalTok:M,inOut:L,cacheRead:U,modelCosts:O}},[h]),S=A.useMemo(()=>Array.from(_.entries()).sort((R,M)=>M[1]-R[1]),[_]),b=i?h.find(R=>R.period===i)??null:null;return m.jsx("div",{className:"uh-backdrop",onClick:e,role:"presentation",children:m.jsxs("div",{className:"uh-modal",onClick:R=>R.stopPropagation(),role:"dialog","aria-label":"Usage history",children:[m.jsxs("header",{className:"uh-head",children:[m.jsxs("div",{className:"uh-titlewrap",children:[m.jsx("div",{className:"uh-title",children:"Usage history"}),m.jsx("div",{className:"uh-sub",children:"via ccusage · local Claude / Codex logs"})]}),m.jsx("div",{className:"uh-range",role:"tablist","aria-label":"Range",children:jL.map(R=>m.jsxs("button",{role:"tab","aria-selected":n===R,className:`uh-range-btn${n===R?" on":""}`,onClick:()=>{r(R),o(null)},children:[R,"d"]},R))}),m.jsx("button",{className:"btn icon-btn uh-reload",onClick:c,disabled:u,title:"Re-run ccusage","aria-label":"Reload",children:u?"…":"↻"}),m.jsx("button",{className:"uh-close",onClick:e,"aria-label":"Close",children:"×"})]}),p.phase==="busy"?m.jsx("div",{className:"uh-status","aria-busy":"true",children:l?"running ccusage…":"running ccusage… (first run downloads the package)"}):p.phase==="error"?m.jsxs("div",{className:"uh-status uh-err",title:io(l.resp)||void 0,children:[P3(l.resp,"ccusage did not report usage"),m.jsx("div",{children:m.jsx("button",{className:"btn uh-retry",onClick:c,disabled:u,children:u?"trying…":"Try again"})})]}):p.phase==="empty"?m.jsx("div",{className:`uh-status${p.stale?" uh-stale":""}`,"aria-busy":p.stale||void 0,children:"no usage in this range"}):m.jsxs("div",{className:p.stale?"uh-stale":void 0,"aria-busy":p.stale||void 0,children:[m.jsxs("div",{className:"uh-totals",children:[m.jsx(Vl,{label:"total cost",val:ze(g),accent:!0}),m.jsx(Vl,{label:"tokens",val:Ft(y)}),m.jsx(Vl,{label:"input+output",val:Ft(x)}),m.jsx(Vl,{label:"cache reads",val:Ft(N)})]}),m.jsx("div",{className:"uh-chart",role:"img","aria-label":"Daily cost by model",children:h.map(R=>{const M=f>0?R.totalCost/f*100:0,L=R.period===i;return m.jsxs("button",{className:`uh-bar-col${L?" sel":""}`,onClick:()=>o(L?null:R.period),title:`${R.period} · ${ze(R.totalCost)}`,style:{flexBasis:`${100/h.length}%`},children:[m.jsx("div",{className:"uh-bar",style:{height:`${Math.max(M,R.totalCost>0?2:0)}%`},children:R.modelBreakdowns.slice().sort((U,O)=>O.cost-U.cost).map(U=>{const O=R.totalCost>0?U.cost/R.totalCost*100:0;return m.jsx("div",{className:"uh-bar-seg",style:{height:`${O}%`,background:Wl(U.modelName)}},U.modelName)})}),m.jsx("span",{className:"uh-bar-label",children:R.period.slice(5)})]},R.period)})}),m.jsx("div",{className:"uh-legend",children:S.map(([R,M])=>m.jsxs("span",{className:"uh-legend-item",children:[m.jsx("span",{className:"uh-legend-dot",style:{background:Wl(R)}}),ii(R)," ",m.jsx("span",{className:"uh-legend-cost",children:ze(M)})]},R))}),b&&m.jsxs("div",{className:"uh-detail",children:[m.jsxs("div",{className:"uh-detail-head",children:[m.jsx("span",{className:"uh-detail-date",children:b.period}),m.jsx("span",{className:"uh-detail-cost",children:ze(b.totalCost)}),(C=(E=b.metadata)==null?void 0:E.agents)!=null&&C.length?m.jsx("span",{className:"uh-detail-agents",children:b.metadata.agents.join(" · ")}):null]}),m.jsxs("div",{className:"uh-detail-mini",children:[m.jsx(Gl,{label:"input",val:Ft(b.inputTokens)}),m.jsx(Gl,{label:"output",val:Ft(b.outputTokens)}),m.jsx(Gl,{label:"cache write",val:Ft(b.cacheCreationTokens)}),m.jsx(Gl,{label:"cache read",val:Ft(b.cacheReadTokens)})]}),m.jsx("div",{className:"uh-detail-models",children:b.modelBreakdowns.slice().sort((R,M)=>M.cost-R.cost).map(R=>{const M=b.totalCost>0?R.cost/b.totalCost*100:0;return m.jsxs("div",{className:"uh-model-row",children:[m.jsxs("span",{className:"uh-model-name",children:[m.jsx("span",{className:"uh-legend-dot",style:{background:Wl(R.modelName)}}),ii(R.modelName)]}),m.jsx("span",{className:"uh-model-bar",children:m.jsx("span",{className:"uh-model-bar-fill",style:{width:`${M}%`,background:Wl(R.modelName)}})}),m.jsx("span",{className:"uh-model-cost",children:ze(R.cost)})]},R.modelName)})})]})]})]})})}function Vl({label:e,val:n,accent:r}){return m.jsxs("div",{className:"uh-stat",children:[m.jsx("span",{className:`uh-stat-val${r?" accent":""}`,children:n}),m.jsx("span",{className:"uh-stat-label",children:e})]})}function Gl({label:e,val:n}){return m.jsxs("div",{className:"uh-ministat",children:[m.jsx("span",{className:"uh-ministat-val",children:n}),m.jsx("span",{className:"uh-ministat-label",children:e})]})}function Dv(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Ed,Ux;function AL(){if(Ux)return Ed;Ux=1;function e(){this.__data__=[],this.size=0}return Ed=e,Ed}var Nd,Hx;function lo(){if(Hx)return Nd;Hx=1;function e(n,r){return n===r||n!==n&&r!==r}return Nd=e,Nd}var Cd,Wx;function xu(){if(Wx)return Cd;Wx=1;var e=lo();function n(r,i){for(var o=r.length;o--;)if(e(r[o][0],i))return o;return-1}return Cd=n,Cd}var jd,Vx;function IL(){if(Vx)return jd;Vx=1;var e=xu(),n=Array.prototype,r=n.splice;function i(o){var l=this.__data__,u=e(l,o);if(u<0)return!1;var c=l.length-1;return u==c?l.pop():r.call(l,u,1),--this.size,!0}return jd=i,jd}var Td,Gx;function ML(){if(Gx)return Td;Gx=1;var e=xu();function n(r){var i=this.__data__,o=e(i,r);return o<0?void 0:i[o][1]}return Td=n,Td}var Rd,Yx;function PL(){if(Yx)return Rd;Yx=1;var e=xu();function n(r){return e(this.__data__,r)>-1}return Rd=n,Rd}var Ad,Kx;function OL(){if(Kx)return Ad;Kx=1;var e=xu();function n(r,i){var o=this.__data__,l=e(o,r);return l<0?(++this.size,o.push([r,i])):o[l][1]=i,this}return Ad=n,Ad}var Id,Xx;function _u(){if(Xx)return Id;Xx=1;var e=AL(),n=IL(),r=ML(),i=PL(),o=OL();function l(u){var c=-1,p=u==null?0:u.length;for(this.clear();++c<p;){var h=u[c];this.set(h[0],h[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=i,l.prototype.set=o,Id=l,Id}var Md,Qx;function LL(){if(Qx)return Md;Qx=1;var e=_u();function n(){this.__data__=new e,this.size=0}return Md=n,Md}var Pd,Zx;function qL(){if(Zx)return Pd;Zx=1;function e(n){var r=this.__data__,i=r.delete(n);return this.size=r.size,i}return Pd=e,Pd}var Od,Jx;function $L(){if(Jx)return Od;Jx=1;function e(n){return this.__data__.get(n)}return Od=e,Od}var Ld,e_;function DL(){if(e_)return Ld;e_=1;function e(n){return this.__data__.has(n)}return Ld=e,Ld}var qd,t_;function lC(){if(t_)return qd;t_=1;var e=typeof Rl=="object"&&Rl&&Rl.Object===Object&&Rl;return qd=e,qd}var $d,n_;function rr(){if(n_)return $d;n_=1;var e=lC(),n=typeof self=="object"&&self&&self.Object===Object&&self,r=e||n||Function("return this")();return $d=r,$d}var Dd,r_;function uo(){if(r_)return Dd;r_=1;var e=rr(),n=e.Symbol;return Dd=n,Dd}var Fd,s_;function FL(){if(s_)return Fd;s_=1;var e=uo(),n=Object.prototype,r=n.hasOwnProperty,i=n.toString,o=e?e.toStringTag:void 0;function l(u){var c=r.call(u,o),p=u[o];try{u[o]=void 0;var h=!0}catch{}var f=i.call(u);return h&&(c?u[o]=p:delete u[o]),f}return Fd=l,Fd}var zd,i_;function zL(){if(i_)return zd;i_=1;var e=Object.prototype,n=e.toString;function r(i){return n.call(i)}return zd=r,zd}var Bd,o_;function oi(){if(o_)return Bd;o_=1;var e=uo(),n=FL(),r=zL(),i="[object Null]",o="[object Undefined]",l=e?e.toStringTag:void 0;function u(c){return c==null?c===void 0?o:i:l&&l in Object(c)?n(c):r(c)}return Bd=u,Bd}var Ud,a_;function Pn(){if(a_)return Ud;a_=1;function e(n){var r=typeof n;return n!=null&&(r=="object"||r=="function")}return Ud=e,Ud}var Hd,l_;function xa(){if(l_)return Hd;l_=1;var e=oi(),n=Pn(),r="[object AsyncFunction]",i="[object Function]",o="[object GeneratorFunction]",l="[object Proxy]";function u(c){if(!n(c))return!1;var p=e(c);return p==i||p==o||p==r||p==l}return Hd=u,Hd}var Wd,u_;function BL(){if(u_)return Wd;u_=1;var e=rr(),n=e["__core-js_shared__"];return Wd=n,Wd}var Vd,c_;function UL(){if(c_)return Vd;c_=1;var e=BL(),n=(function(){var i=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""})();function r(i){return!!n&&n in i}return Vd=r,Vd}var Gd,d_;function uC(){if(d_)return Gd;d_=1;var e=Function.prototype,n=e.toString;function r(i){if(i!=null){try{return n.call(i)}catch{}try{return i+""}catch{}}return""}return Gd=r,Gd}var Yd,f_;function HL(){if(f_)return Yd;f_=1;var e=xa(),n=UL(),r=Pn(),i=uC(),o=/[\\^$.*+?()[\]{}|]/g,l=/^\[object .+?Constructor\]$/,u=Function.prototype,c=Object.prototype,p=u.toString,h=c.hasOwnProperty,f=RegExp("^"+p.call(h).replace(o,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function g(y){if(!r(y)||n(y))return!1;var x=e(y)?f:l;return x.test(i(y))}return Yd=g,Yd}var Kd,h_;function WL(){if(h_)return Kd;h_=1;function e(n,r){return n==null?void 0:n[r]}return Kd=e,Kd}var Xd,p_;function ai(){if(p_)return Xd;p_=1;var e=HL(),n=WL();function r(i,o){var l=n(i,o);return e(l)?l:void 0}return Xd=r,Xd}var Qd,m_;function Fv(){if(m_)return Qd;m_=1;var e=ai(),n=rr(),r=e(n,"Map");return Qd=r,Qd}var Zd,g_;function bu(){if(g_)return Zd;g_=1;var e=ai(),n=e(Object,"create");return Zd=n,Zd}var Jd,v_;function VL(){if(v_)return Jd;v_=1;var e=bu();function n(){this.__data__=e?e(null):{},this.size=0}return Jd=n,Jd}var ef,y_;function GL(){if(y_)return ef;y_=1;function e(n){var r=this.has(n)&&delete this.__data__[n];return this.size-=r?1:0,r}return ef=e,ef}var tf,w_;function YL(){if(w_)return tf;w_=1;var e=bu(),n="__lodash_hash_undefined__",r=Object.prototype,i=r.hasOwnProperty;function o(l){var u=this.__data__;if(e){var c=u[l];return c===n?void 0:c}return i.call(u,l)?u[l]:void 0}return tf=o,tf}var nf,x_;function KL(){if(x_)return nf;x_=1;var e=bu(),n=Object.prototype,r=n.hasOwnProperty;function i(o){var l=this.__data__;return e?l[o]!==void 0:r.call(l,o)}return nf=i,nf}var rf,__;function XL(){if(__)return rf;__=1;var e=bu(),n="__lodash_hash_undefined__";function r(i,o){var l=this.__data__;return this.size+=this.has(i)?0:1,l[i]=e&&o===void 0?n:o,this}return rf=r,rf}var sf,b_;function QL(){if(b_)return sf;b_=1;var e=VL(),n=GL(),r=YL(),i=KL(),o=XL();function l(u){var c=-1,p=u==null?0:u.length;for(this.clear();++c<p;){var h=u[c];this.set(h[0],h[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=i,l.prototype.set=o,sf=l,sf}var of,S_;function ZL(){if(S_)return of;S_=1;var e=QL(),n=_u(),r=Fv();function i(){this.size=0,this.__data__={hash:new e,map:new(r||n),string:new e}}return of=i,of}var af,k_;function JL(){if(k_)return af;k_=1;function e(n){var r=typeof n;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?n!=="__proto__":n===null}return af=e,af}var lf,E_;function Su(){if(E_)return lf;E_=1;var e=JL();function n(r,i){var o=r.__data__;return e(i)?o[typeof i=="string"?"string":"hash"]:o.map}return lf=n,lf}var uf,N_;function eq(){if(N_)return uf;N_=1;var e=Su();function n(r){var i=e(this,r).delete(r);return this.size-=i?1:0,i}return uf=n,uf}var cf,C_;function tq(){if(C_)return cf;C_=1;var e=Su();function n(r){return e(this,r).get(r)}return cf=n,cf}var df,j_;function nq(){if(j_)return df;j_=1;var e=Su();function n(r){return e(this,r).has(r)}return df=n,df}var ff,T_;function rq(){if(T_)return ff;T_=1;var e=Su();function n(r,i){var o=e(this,r),l=o.size;return o.set(r,i),this.size+=o.size==l?0:1,this}return ff=n,ff}var hf,R_;function zv(){if(R_)return hf;R_=1;var e=ZL(),n=eq(),r=tq(),i=nq(),o=rq();function l(u){var c=-1,p=u==null?0:u.length;for(this.clear();++c<p;){var h=u[c];this.set(h[0],h[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=i,l.prototype.set=o,hf=l,hf}var pf,A_;function sq(){if(A_)return pf;A_=1;var e=_u(),n=Fv(),r=zv(),i=200;function o(l,u){var c=this.__data__;if(c instanceof e){var p=c.__data__;if(!n||p.length<i-1)return p.push([l,u]),this.size=++c.size,this;c=this.__data__=new r(p)}return c.set(l,u),this.size=c.size,this}return pf=o,pf}var mf,I_;function ku(){if(I_)return mf;I_=1;var e=_u(),n=LL(),r=qL(),i=$L(),o=DL(),l=sq();function u(c){var p=this.__data__=new e(c);this.size=p.size}return u.prototype.clear=n,u.prototype.delete=r,u.prototype.get=i,u.prototype.has=o,u.prototype.set=l,mf=u,mf}var gf,M_;function Bv(){if(M_)return gf;M_=1;function e(n,r){for(var i=-1,o=n==null?0:n.length;++i<o&&r(n[i],i,n)!==!1;);return n}return gf=e,gf}var vf,P_;function cC(){if(P_)return vf;P_=1;var e=ai(),n=(function(){try{var r=e(Object,"defineProperty");return r({},"",{}),r}catch{}})();return vf=n,vf}var yf,O_;function Eu(){if(O_)return yf;O_=1;var e=cC();function n(r,i,o){i=="__proto__"&&e?e(r,i,{configurable:!0,enumerable:!0,value:o,writable:!0}):r[i]=o}return yf=n,yf}var wf,L_;function Nu(){if(L_)return wf;L_=1;var e=Eu(),n=lo(),r=Object.prototype,i=r.hasOwnProperty;function o(l,u,c){var p=l[u];(!(i.call(l,u)&&n(p,c))||c===void 0&&!(u in l))&&e(l,u,c)}return wf=o,wf}var xf,q_;function _a(){if(q_)return xf;q_=1;var e=Nu(),n=Eu();function r(i,o,l,u){var c=!l;l||(l={});for(var p=-1,h=o.length;++p<h;){var f=o[p],g=u?u(l[f],i[f],f,l,i):void 0;g===void 0&&(g=i[f]),c?n(l,f,g):e(l,f,g)}return l}return xf=r,xf}var _f,$_;function iq(){if($_)return _f;$_=1;function e(n,r){for(var i=-1,o=Array(n);++i<n;)o[i]=r(i);return o}return _f=e,_f}var bf,D_;function yr(){if(D_)return bf;D_=1;function e(n){return n!=null&&typeof n=="object"}return bf=e,bf}var Sf,F_;function oq(){if(F_)return Sf;F_=1;var e=oi(),n=yr(),r="[object Arguments]";function i(o){return n(o)&&e(o)==r}return Sf=i,Sf}var kf,z_;function ba(){if(z_)return kf;z_=1;var e=oq(),n=yr(),r=Object.prototype,i=r.hasOwnProperty,o=r.propertyIsEnumerable,l=e((function(){return arguments})())?e:function(u){return n(u)&&i.call(u,"callee")&&!o.call(u,"callee")};return kf=l,kf}var Ef,B_;function St(){if(B_)return Ef;B_=1;var e=Array.isArray;return Ef=e,Ef}var na={exports:{}},Nf,U_;function aq(){if(U_)return Nf;U_=1;function e(){return!1}return Nf=e,Nf}na.exports;var H_;function co(){return H_||(H_=1,(function(e,n){var r=rr(),i=aq(),o=n&&!n.nodeType&&n,l=o&&!0&&e&&!e.nodeType&&e,u=l&&l.exports===o,c=u?r.Buffer:void 0,p=c?c.isBuffer:void 0,h=p||i;e.exports=h})(na,na.exports)),na.exports}var Cf,W_;function Cu(){if(W_)return Cf;W_=1;var e=9007199254740991,n=/^(?:0|[1-9]\d*)$/;function r(i,o){var l=typeof i;return o=o??e,!!o&&(l=="number"||l!="symbol"&&n.test(i))&&i>-1&&i%1==0&&i<o}return Cf=r,Cf}var jf,V_;function Uv(){if(V_)return jf;V_=1;var e=9007199254740991;function n(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=e}return jf=n,jf}var Tf,G_;function lq(){if(G_)return Tf;G_=1;var e=oi(),n=Uv(),r=yr(),i="[object Arguments]",o="[object Array]",l="[object Boolean]",u="[object Date]",c="[object Error]",p="[object Function]",h="[object Map]",f="[object Number]",g="[object Object]",y="[object RegExp]",x="[object Set]",N="[object String]",_="[object WeakMap]",S="[object ArrayBuffer]",b="[object DataView]",k="[object Float32Array]",E="[object Float64Array]",C="[object Int8Array]",R="[object Int16Array]",M="[object Int32Array]",L="[object Uint8Array]",U="[object Uint8ClampedArray]",O="[object Uint16Array]",P="[object Uint32Array]",F={};F[k]=F[E]=F[C]=F[R]=F[M]=F[L]=F[U]=F[O]=F[P]=!0,F[i]=F[o]=F[S]=F[l]=F[b]=F[u]=F[c]=F[p]=F[h]=F[f]=F[g]=F[y]=F[x]=F[N]=F[_]=!1;function G(q){return r(q)&&n(q.length)&&!!F[e(q)]}return Tf=G,Tf}var Rf,Y_;function ju(){if(Y_)return Rf;Y_=1;function e(n){return function(r){return n(r)}}return Rf=e,Rf}var ra={exports:{}};ra.exports;var K_;function Hv(){return K_||(K_=1,(function(e,n){var r=lC(),i=n&&!n.nodeType&&n,o=i&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===i,u=l&&r.process,c=(function(){try{var p=o&&o.require&&o.require("util").types;return p||u&&u.binding&&u.binding("util")}catch{}})();e.exports=c})(ra,ra.exports)),ra.exports}var Af,X_;function Sa(){if(X_)return Af;X_=1;var e=lq(),n=ju(),r=Hv(),i=r&&r.isTypedArray,o=i?n(i):e;return Af=o,Af}var If,Q_;function dC(){if(Q_)return If;Q_=1;var e=iq(),n=ba(),r=St(),i=co(),o=Cu(),l=Sa(),u=Object.prototype,c=u.hasOwnProperty;function p(h,f){var g=r(h),y=!g&&n(h),x=!g&&!y&&i(h),N=!g&&!y&&!x&&l(h),_=g||y||x||N,S=_?e(h.length,String):[],b=S.length;for(var k in h)(f||c.call(h,k))&&!(_&&(k=="length"||x&&(k=="offset"||k=="parent")||N&&(k=="buffer"||k=="byteLength"||k=="byteOffset")||o(k,b)))&&S.push(k);return S}return If=p,If}var Mf,Z_;function Tu(){if(Z_)return Mf;Z_=1;var e=Object.prototype;function n(r){var i=r&&r.constructor,o=typeof i=="function"&&i.prototype||e;return r===o}return Mf=n,Mf}var Pf,J_;function fC(){if(J_)return Pf;J_=1;function e(n,r){return function(i){return n(r(i))}}return Pf=e,Pf}var Of,e1;function uq(){if(e1)return Of;e1=1;var e=fC(),n=e(Object.keys,Object);return Of=n,Of}var Lf,t1;function Wv(){if(t1)return Lf;t1=1;var e=Tu(),n=uq(),r=Object.prototype,i=r.hasOwnProperty;function o(l){if(!e(l))return n(l);var u=[];for(var c in Object(l))i.call(l,c)&&c!="constructor"&&u.push(c);return u}return Lf=o,Lf}var qf,n1;function Dr(){if(n1)return qf;n1=1;var e=xa(),n=Uv();function r(i){return i!=null&&n(i.length)&&!e(i)}return qf=r,qf}var $f,r1;function vs(){if(r1)return $f;r1=1;var e=dC(),n=Wv(),r=Dr();function i(o){return r(o)?e(o):n(o)}return $f=i,$f}var Df,s1;function cq(){if(s1)return Df;s1=1;var e=_a(),n=vs();function r(i,o){return i&&e(o,n(o),i)}return Df=r,Df}var Ff,i1;function dq(){if(i1)return Ff;i1=1;function e(n){var r=[];if(n!=null)for(var i in Object(n))r.push(i);return r}return Ff=e,Ff}var zf,o1;function fq(){if(o1)return zf;o1=1;var e=Pn(),n=Tu(),r=dq(),i=Object.prototype,o=i.hasOwnProperty;function l(u){if(!e(u))return r(u);var c=n(u),p=[];for(var h in u)h=="constructor"&&(c||!o.call(u,h))||p.push(h);return p}return zf=l,zf}var Bf,a1;function li(){if(a1)return Bf;a1=1;var e=dC(),n=fq(),r=Dr();function i(o){return r(o)?e(o,!0):n(o)}return Bf=i,Bf}var Uf,l1;function hq(){if(l1)return Uf;l1=1;var e=_a(),n=li();function r(i,o){return i&&e(o,n(o),i)}return Uf=r,Uf}var sa={exports:{}};sa.exports;var u1;function hC(){return u1||(u1=1,(function(e,n){var r=rr(),i=n&&!n.nodeType&&n,o=i&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===i,u=l?r.Buffer:void 0,c=u?u.allocUnsafe:void 0;function p(h,f){if(f)return h.slice();var g=h.length,y=c?c(g):new h.constructor(g);return h.copy(y),y}e.exports=p})(sa,sa.exports)),sa.exports}var Hf,c1;function pC(){if(c1)return Hf;c1=1;function e(n,r){var i=-1,o=n.length;for(r||(r=Array(o));++i<o;)r[i]=n[i];return r}return Hf=e,Hf}var Wf,d1;function mC(){if(d1)return Wf;d1=1;function e(n,r){for(var i=-1,o=n==null?0:n.length,l=0,u=[];++i<o;){var c=n[i];r(c,i,n)&&(u[l++]=c)}return u}return Wf=e,Wf}var Vf,f1;function gC(){if(f1)return Vf;f1=1;function e(){return[]}return Vf=e,Vf}var Gf,h1;function Vv(){if(h1)return Gf;h1=1;var e=mC(),n=gC(),r=Object.prototype,i=r.propertyIsEnumerable,o=Object.getOwnPropertySymbols,l=o?function(u){return u==null?[]:(u=Object(u),e(o(u),function(c){return i.call(u,c)}))}:n;return Gf=l,Gf}var Yf,p1;function pq(){if(p1)return Yf;p1=1;var e=_a(),n=Vv();function r(i,o){return e(i,n(i),o)}return Yf=r,Yf}var Kf,m1;function Gv(){if(m1)return Kf;m1=1;function e(n,r){for(var i=-1,o=r.length,l=n.length;++i<o;)n[l+i]=r[i];return n}return Kf=e,Kf}var Xf,g1;function Ru(){if(g1)return Xf;g1=1;var e=fC(),n=e(Object.getPrototypeOf,Object);return Xf=n,Xf}var Qf,v1;function vC(){if(v1)return Qf;v1=1;var e=Gv(),n=Ru(),r=Vv(),i=gC(),o=Object.getOwnPropertySymbols,l=o?function(u){for(var c=[];u;)e(c,r(u)),u=n(u);return c}:i;return Qf=l,Qf}var Zf,y1;function mq(){if(y1)return Zf;y1=1;var e=_a(),n=vC();function r(i,o){return e(i,n(i),o)}return Zf=r,Zf}var Jf,w1;function yC(){if(w1)return Jf;w1=1;var e=Gv(),n=St();function r(i,o,l){var u=o(i);return n(i)?u:e(u,l(i))}return Jf=r,Jf}var eh,x1;function wC(){if(x1)return eh;x1=1;var e=yC(),n=Vv(),r=vs();function i(o){return e(o,r,n)}return eh=i,eh}var th,_1;function gq(){if(_1)return th;_1=1;var e=yC(),n=vC(),r=li();function i(o){return e(o,r,n)}return th=i,th}var nh,b1;function vq(){if(b1)return nh;b1=1;var e=ai(),n=rr(),r=e(n,"DataView");return nh=r,nh}var rh,S1;function yq(){if(S1)return rh;S1=1;var e=ai(),n=rr(),r=e(n,"Promise");return rh=r,rh}var sh,k1;function xC(){if(k1)return sh;k1=1;var e=ai(),n=rr(),r=e(n,"Set");return sh=r,sh}var ih,E1;function wq(){if(E1)return ih;E1=1;var e=ai(),n=rr(),r=e(n,"WeakMap");return ih=r,ih}var oh,N1;function fo(){if(N1)return oh;N1=1;var e=vq(),n=Fv(),r=yq(),i=xC(),o=wq(),l=oi(),u=uC(),c="[object Map]",p="[object Object]",h="[object Promise]",f="[object Set]",g="[object WeakMap]",y="[object DataView]",x=u(e),N=u(n),_=u(r),S=u(i),b=u(o),k=l;return(e&&k(new e(new ArrayBuffer(1)))!=y||n&&k(new n)!=c||r&&k(r.resolve())!=h||i&&k(new i)!=f||o&&k(new o)!=g)&&(k=function(E){var C=l(E),R=C==p?E.constructor:void 0,M=R?u(R):"";if(M)switch(M){case x:return y;case N:return c;case _:return h;case S:return f;case b:return g}return C}),oh=k,oh}var ah,C1;function xq(){if(C1)return ah;C1=1;var e=Object.prototype,n=e.hasOwnProperty;function r(i){var o=i.length,l=new i.constructor(o);return o&&typeof i[0]=="string"&&n.call(i,"index")&&(l.index=i.index,l.input=i.input),l}return ah=r,ah}var lh,j1;function _C(){if(j1)return lh;j1=1;var e=rr(),n=e.Uint8Array;return lh=n,lh}var uh,T1;function Yv(){if(T1)return uh;T1=1;var e=_C();function n(r){var i=new r.constructor(r.byteLength);return new e(i).set(new e(r)),i}return uh=n,uh}var ch,R1;function _q(){if(R1)return ch;R1=1;var e=Yv();function n(r,i){var o=i?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.byteLength)}return ch=n,ch}var dh,A1;function bq(){if(A1)return dh;A1=1;var e=/\w*$/;function n(r){var i=new r.constructor(r.source,e.exec(r));return i.lastIndex=r.lastIndex,i}return dh=n,dh}var fh,I1;function Sq(){if(I1)return fh;I1=1;var e=uo(),n=e?e.prototype:void 0,r=n?n.valueOf:void 0;function i(o){return r?Object(r.call(o)):{}}return fh=i,fh}var hh,M1;function bC(){if(M1)return hh;M1=1;var e=Yv();function n(r,i){var o=i?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.length)}return hh=n,hh}var ph,P1;function kq(){if(P1)return ph;P1=1;var e=Yv(),n=_q(),r=bq(),i=Sq(),o=bC(),l="[object Boolean]",u="[object Date]",c="[object Map]",p="[object Number]",h="[object RegExp]",f="[object Set]",g="[object String]",y="[object Symbol]",x="[object ArrayBuffer]",N="[object DataView]",_="[object Float32Array]",S="[object Float64Array]",b="[object Int8Array]",k="[object Int16Array]",E="[object Int32Array]",C="[object Uint8Array]",R="[object Uint8ClampedArray]",M="[object Uint16Array]",L="[object Uint32Array]";function U(O,P,F){var G=O.constructor;switch(P){case x:return e(O);case l:case u:return new G(+O);case N:return n(O,F);case _:case S:case b:case k:case E:case C:case R:case M:case L:return o(O,F);case c:return new G;case p:case g:return new G(O);case h:return r(O);case f:return new G;case y:return i(O)}}return ph=U,ph}var mh,O1;function SC(){if(O1)return mh;O1=1;var e=Pn(),n=Object.create,r=(function(){function i(){}return function(o){if(!e(o))return{};if(n)return n(o);i.prototype=o;var l=new i;return i.prototype=void 0,l}})();return mh=r,mh}var gh,L1;function kC(){if(L1)return gh;L1=1;var e=SC(),n=Ru(),r=Tu();function i(o){return typeof o.constructor=="function"&&!r(o)?e(n(o)):{}}return gh=i,gh}var vh,q1;function Eq(){if(q1)return vh;q1=1;var e=fo(),n=yr(),r="[object Map]";function i(o){return n(o)&&e(o)==r}return vh=i,vh}var yh,$1;function Nq(){if($1)return yh;$1=1;var e=Eq(),n=ju(),r=Hv(),i=r&&r.isMap,o=i?n(i):e;return yh=o,yh}var wh,D1;function Cq(){if(D1)return wh;D1=1;var e=fo(),n=yr(),r="[object Set]";function i(o){return n(o)&&e(o)==r}return wh=i,wh}var xh,F1;function jq(){if(F1)return xh;F1=1;var e=Cq(),n=ju(),r=Hv(),i=r&&r.isSet,o=i?n(i):e;return xh=o,xh}var _h,z1;function EC(){if(z1)return _h;z1=1;var e=ku(),n=Bv(),r=Nu(),i=cq(),o=hq(),l=hC(),u=pC(),c=pq(),p=mq(),h=wC(),f=gq(),g=fo(),y=xq(),x=kq(),N=kC(),_=St(),S=co(),b=Nq(),k=Pn(),E=jq(),C=vs(),R=li(),M=1,L=2,U=4,O="[object Arguments]",P="[object Array]",F="[object Boolean]",G="[object Date]",q="[object Error]",T="[object Function]",Q="[object GeneratorFunction]",z="[object Map]",ne="[object Number]",Z="[object Object]",$="[object RegExp]",K="[object Set]",I="[object String]",H="[object Symbol]",X="[object WeakMap]",B="[object ArrayBuffer]",J="[object DataView]",re="[object Float32Array]",le="[object Float64Array]",fe="[object Int8Array]",te="[object Int16Array]",ce="[object Int32Array]",Ce="[object Uint8Array]",ve="[object Uint8ClampedArray]",Re="[object Uint16Array]",ye="[object Uint32Array]",ke={};ke[O]=ke[P]=ke[B]=ke[J]=ke[F]=ke[G]=ke[re]=ke[le]=ke[fe]=ke[te]=ke[ce]=ke[z]=ke[ne]=ke[Z]=ke[$]=ke[K]=ke[I]=ke[H]=ke[Ce]=ke[ve]=ke[Re]=ke[ye]=!0,ke[q]=ke[T]=ke[X]=!1;function Ge(we,_e,Be,Ye,at,nt){var Fe,Qe=_e&M,ht=_e&L,kt=_e&U;if(Be&&(Fe=at?Be(we,Ye,at,nt):Be(we)),Fe!==void 0)return Fe;if(!k(we))return we;var rt=_(we);if(rt){if(Fe=y(we),!Qe)return u(we,Fe)}else{var wt=g(we),Yt=wt==T||wt==Q;if(S(we))return l(we,Qe);if(wt==Z||wt==O||Yt&&!at){if(Fe=ht||Yt?{}:N(we),!Qe)return ht?p(we,o(Fe,we)):c(we,i(Fe,we))}else{if(!ke[wt])return at?we:{};Fe=x(we,wt,Qe)}}nt||(nt=new e);var Lt=nt.get(we);if(Lt)return Lt;nt.set(we,Fe),E(we)?we.forEach(function(st){Fe.add(Ge(st,_e,Be,st,we,nt))}):b(we)&&we.forEach(function(st,xt){Fe.set(xt,Ge(st,_e,Be,xt,we,nt))});var Je=kt?ht?f:h:ht?R:C,Et=rt?void 0:Je(we);return n(Et||we,function(st,xt){Et&&(xt=st,st=we[xt]),r(Fe,xt,Ge(st,_e,Be,xt,we,nt))}),Fe}return _h=Ge,_h}var bh,B1;function Tq(){if(B1)return bh;B1=1;var e=EC(),n=4;function r(i){return e(i,n)}return bh=r,bh}var Sh,U1;function Kv(){if(U1)return Sh;U1=1;function e(n){return function(){return n}}return Sh=e,Sh}var kh,H1;function Rq(){if(H1)return kh;H1=1;function e(n){return function(r,i,o){for(var l=-1,u=Object(r),c=o(r),p=c.length;p--;){var h=c[n?p:++l];if(i(u[h],h,u)===!1)break}return r}}return kh=e,kh}var Eh,W1;function Xv(){if(W1)return Eh;W1=1;var e=Rq(),n=e();return Eh=n,Eh}var Nh,V1;function Qv(){if(V1)return Nh;V1=1;var e=Xv(),n=vs();function r(i,o){return i&&e(i,o,n)}return Nh=r,Nh}var Ch,G1;function Aq(){if(G1)return Ch;G1=1;var e=Dr();function n(r,i){return function(o,l){if(o==null)return o;if(!e(o))return r(o,l);for(var u=o.length,c=i?u:-1,p=Object(o);(i?c--:++c<u)&&l(p[c],c,p)!==!1;);return o}}return Ch=n,Ch}var jh,Y1;function Au(){if(Y1)return jh;Y1=1;var e=Qv(),n=Aq(),r=n(e);return jh=r,jh}var Th,K1;function ui(){if(K1)return Th;K1=1;function e(n){return n}return Th=e,Th}var Rh,X1;function NC(){if(X1)return Rh;X1=1;var e=ui();function n(r){return typeof r=="function"?r:e}return Rh=n,Rh}var Ah,Q1;function CC(){if(Q1)return Ah;Q1=1;var e=Bv(),n=Au(),r=NC(),i=St();function o(l,u){var c=i(l)?e:n;return c(l,r(u))}return Ah=o,Ah}var Ih,Z1;function jC(){return Z1||(Z1=1,Ih=CC()),Ih}var Mh,J1;function Iq(){if(J1)return Mh;J1=1;var e=Au();function n(r,i){var o=[];return e(r,function(l,u,c){i(l,u,c)&&o.push(l)}),o}return Mh=n,Mh}var Ph,eb;function Mq(){if(eb)return Ph;eb=1;var e="__lodash_hash_undefined__";function n(r){return this.__data__.set(r,e),this}return Ph=n,Ph}var Oh,tb;function Pq(){if(tb)return Oh;tb=1;function e(n){return this.__data__.has(n)}return Oh=e,Oh}var Lh,nb;function TC(){if(nb)return Lh;nb=1;var e=zv(),n=Mq(),r=Pq();function i(o){var l=-1,u=o==null?0:o.length;for(this.__data__=new e;++l<u;)this.add(o[l])}return i.prototype.add=i.prototype.push=n,i.prototype.has=r,Lh=i,Lh}var qh,rb;function Oq(){if(rb)return qh;rb=1;function e(n,r){for(var i=-1,o=n==null?0:n.length;++i<o;)if(r(n[i],i,n))return!0;return!1}return qh=e,qh}var $h,sb;function RC(){if(sb)return $h;sb=1;function e(n,r){return n.has(r)}return $h=e,$h}var Dh,ib;function AC(){if(ib)return Dh;ib=1;var e=TC(),n=Oq(),r=RC(),i=1,o=2;function l(u,c,p,h,f,g){var y=p&i,x=u.length,N=c.length;if(x!=N&&!(y&&N>x))return!1;var _=g.get(u),S=g.get(c);if(_&&S)return _==c&&S==u;var b=-1,k=!0,E=p&o?new e:void 0;for(g.set(u,c),g.set(c,u);++b<x;){var C=u[b],R=c[b];if(h)var M=y?h(R,C,b,c,u,g):h(C,R,b,u,c,g);if(M!==void 0){if(M)continue;k=!1;break}if(E){if(!n(c,function(L,U){if(!r(E,U)&&(C===L||f(C,L,p,h,g)))return E.push(U)})){k=!1;break}}else if(!(C===R||f(C,R,p,h,g))){k=!1;break}}return g.delete(u),g.delete(c),k}return Dh=l,Dh}var Fh,ob;function Lq(){if(ob)return Fh;ob=1;function e(n){var r=-1,i=Array(n.size);return n.forEach(function(o,l){i[++r]=[l,o]}),i}return Fh=e,Fh}var zh,ab;function Zv(){if(ab)return zh;ab=1;function e(n){var r=-1,i=Array(n.size);return n.forEach(function(o){i[++r]=o}),i}return zh=e,zh}var Bh,lb;function qq(){if(lb)return Bh;lb=1;var e=uo(),n=_C(),r=lo(),i=AC(),o=Lq(),l=Zv(),u=1,c=2,p="[object Boolean]",h="[object Date]",f="[object Error]",g="[object Map]",y="[object Number]",x="[object RegExp]",N="[object Set]",_="[object String]",S="[object Symbol]",b="[object ArrayBuffer]",k="[object DataView]",E=e?e.prototype:void 0,C=E?E.valueOf:void 0;function R(M,L,U,O,P,F,G){switch(U){case k:if(M.byteLength!=L.byteLength||M.byteOffset!=L.byteOffset)return!1;M=M.buffer,L=L.buffer;case b:return!(M.byteLength!=L.byteLength||!F(new n(M),new n(L)));case p:case h:case y:return r(+M,+L);case f:return M.name==L.name&&M.message==L.message;case x:case _:return M==L+"";case g:var q=o;case N:var T=O&u;if(q||(q=l),M.size!=L.size&&!T)return!1;var Q=G.get(M);if(Q)return Q==L;O|=c,G.set(M,L);var z=i(q(M),q(L),O,P,F,G);return G.delete(M),z;case S:if(C)return C.call(M)==C.call(L)}return!1}return Bh=R,Bh}var Uh,ub;function $q(){if(ub)return Uh;ub=1;var e=wC(),n=1,r=Object.prototype,i=r.hasOwnProperty;function o(l,u,c,p,h,f){var g=c&n,y=e(l),x=y.length,N=e(u),_=N.length;if(x!=_&&!g)return!1;for(var S=x;S--;){var b=y[S];if(!(g?b in u:i.call(u,b)))return!1}var k=f.get(l),E=f.get(u);if(k&&E)return k==u&&E==l;var C=!0;f.set(l,u),f.set(u,l);for(var R=g;++S<x;){b=y[S];var M=l[b],L=u[b];if(p)var U=g?p(L,M,b,u,l,f):p(M,L,b,l,u,f);if(!(U===void 0?M===L||h(M,L,c,p,f):U)){C=!1;break}R||(R=b=="constructor")}if(C&&!R){var O=l.constructor,P=u.constructor;O!=P&&"constructor"in l&&"constructor"in u&&!(typeof O=="function"&&O instanceof O&&typeof P=="function"&&P instanceof P)&&(C=!1)}return f.delete(l),f.delete(u),C}return Uh=o,Uh}var Hh,cb;function Dq(){if(cb)return Hh;cb=1;var e=ku(),n=AC(),r=qq(),i=$q(),o=fo(),l=St(),u=co(),c=Sa(),p=1,h="[object Arguments]",f="[object Array]",g="[object Object]",y=Object.prototype,x=y.hasOwnProperty;function N(_,S,b,k,E,C){var R=l(_),M=l(S),L=R?f:o(_),U=M?f:o(S);L=L==h?g:L,U=U==h?g:U;var O=L==g,P=U==g,F=L==U;if(F&&u(_)){if(!u(S))return!1;R=!0,O=!1}if(F&&!O)return C||(C=new e),R||c(_)?n(_,S,b,k,E,C):r(_,S,L,b,k,E,C);if(!(b&p)){var G=O&&x.call(_,"__wrapped__"),q=P&&x.call(S,"__wrapped__");if(G||q){var T=G?_.value():_,Q=q?S.value():S;return C||(C=new e),E(T,Q,b,k,C)}}return F?(C||(C=new e),i(_,S,b,k,E,C)):!1}return Hh=N,Hh}var Wh,db;function IC(){if(db)return Wh;db=1;var e=Dq(),n=yr();function r(i,o,l,u,c){return i===o?!0:i==null||o==null||!n(i)&&!n(o)?i!==i&&o!==o:e(i,o,l,u,r,c)}return Wh=r,Wh}var Vh,fb;function Fq(){if(fb)return Vh;fb=1;var e=ku(),n=IC(),r=1,i=2;function o(l,u,c,p){var h=c.length,f=h,g=!p;if(l==null)return!f;for(l=Object(l);h--;){var y=c[h];if(g&&y[2]?y[1]!==l[y[0]]:!(y[0]in l))return!1}for(;++h<f;){y=c[h];var x=y[0],N=l[x],_=y[1];if(g&&y[2]){if(N===void 0&&!(x in l))return!1}else{var S=new e;if(p)var b=p(N,_,x,l,u,S);if(!(b===void 0?n(_,N,r|i,p,S):b))return!1}}return!0}return Vh=o,Vh}var Gh,hb;function MC(){if(hb)return Gh;hb=1;var e=Pn();function n(r){return r===r&&!e(r)}return Gh=n,Gh}var Yh,pb;function zq(){if(pb)return Yh;pb=1;var e=MC(),n=vs();function r(i){for(var o=n(i),l=o.length;l--;){var u=o[l],c=i[u];o[l]=[u,c,e(c)]}return o}return Yh=r,Yh}var Kh,mb;function PC(){if(mb)return Kh;mb=1;function e(n,r){return function(i){return i==null?!1:i[n]===r&&(r!==void 0||n in Object(i))}}return Kh=e,Kh}var Xh,gb;function Bq(){if(gb)return Xh;gb=1;var e=Fq(),n=zq(),r=PC();function i(o){var l=n(o);return l.length==1&&l[0][2]?r(l[0][0],l[0][1]):function(u){return u===o||e(u,o,l)}}return Xh=i,Xh}var Qh,vb;function ho(){if(vb)return Qh;vb=1;var e=oi(),n=yr(),r="[object Symbol]";function i(o){return typeof o=="symbol"||n(o)&&e(o)==r}return Qh=i,Qh}var Zh,yb;function Jv(){if(yb)return Zh;yb=1;var e=St(),n=ho(),r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;function o(l,u){if(e(l))return!1;var c=typeof l;return c=="number"||c=="symbol"||c=="boolean"||l==null||n(l)?!0:i.test(l)||!r.test(l)||u!=null&&l in Object(u)}return Zh=o,Zh}var Jh,wb;function Uq(){if(wb)return Jh;wb=1;var e=zv(),n="Expected a function";function r(i,o){if(typeof i!="function"||o!=null&&typeof o!="function")throw new TypeError(n);var l=function(){var u=arguments,c=o?o.apply(this,u):u[0],p=l.cache;if(p.has(c))return p.get(c);var h=i.apply(this,u);return l.cache=p.set(c,h)||p,h};return l.cache=new(r.Cache||e),l}return r.Cache=e,Jh=r,Jh}var ep,xb;function Hq(){if(xb)return ep;xb=1;var e=Uq(),n=500;function r(i){var o=e(i,function(u){return l.size===n&&l.clear(),u}),l=o.cache;return o}return ep=r,ep}var tp,_b;function Wq(){if(_b)return tp;_b=1;var e=Hq(),n=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,r=/\\(\\)?/g,i=e(function(o){var l=[];return o.charCodeAt(0)===46&&l.push(""),o.replace(n,function(u,c,p,h){l.push(p?h.replace(r,"$1"):c||u)}),l});return tp=i,tp}var np,bb;function Iu(){if(bb)return np;bb=1;function e(n,r){for(var i=-1,o=n==null?0:n.length,l=Array(o);++i<o;)l[i]=r(n[i],i,n);return l}return np=e,np}var rp,Sb;function Vq(){if(Sb)return rp;Sb=1;var e=uo(),n=Iu(),r=St(),i=ho(),o=e?e.prototype:void 0,l=o?o.toString:void 0;function u(c){if(typeof c=="string")return c;if(r(c))return n(c,u)+"";if(i(c))return l?l.call(c):"";var p=c+"";return p=="0"&&1/c==-1/0?"-0":p}return rp=u,rp}var sp,kb;function OC(){if(kb)return sp;kb=1;var e=Vq();function n(r){return r==null?"":e(r)}return sp=n,sp}var ip,Eb;function Mu(){if(Eb)return ip;Eb=1;var e=St(),n=Jv(),r=Wq(),i=OC();function o(l,u){return e(l)?l:n(l,u)?[l]:r(i(l))}return ip=o,ip}var op,Nb;function ka(){if(Nb)return op;Nb=1;var e=ho();function n(r){if(typeof r=="string"||e(r))return r;var i=r+"";return i=="0"&&1/r==-1/0?"-0":i}return op=n,op}var ap,Cb;function Pu(){if(Cb)return ap;Cb=1;var e=Mu(),n=ka();function r(i,o){o=e(o,i);for(var l=0,u=o.length;i!=null&&l<u;)i=i[n(o[l++])];return l&&l==u?i:void 0}return ap=r,ap}var lp,jb;function Gq(){if(jb)return lp;jb=1;var e=Pu();function n(r,i,o){var l=r==null?void 0:e(r,i);return l===void 0?o:l}return lp=n,lp}var up,Tb;function Yq(){if(Tb)return up;Tb=1;function e(n,r){return n!=null&&r in Object(n)}return up=e,up}var cp,Rb;function LC(){if(Rb)return cp;Rb=1;var e=Mu(),n=ba(),r=St(),i=Cu(),o=Uv(),l=ka();function u(c,p,h){p=e(p,c);for(var f=-1,g=p.length,y=!1;++f<g;){var x=l(p[f]);if(!(y=c!=null&&h(c,x)))break;c=c[x]}return y||++f!=g?y:(g=c==null?0:c.length,!!g&&o(g)&&i(x,g)&&(r(c)||n(c)))}return cp=u,cp}var dp,Ab;function qC(){if(Ab)return dp;Ab=1;var e=Yq(),n=LC();function r(i,o){return i!=null&&n(i,o,e)}return dp=r,dp}var fp,Ib;function Kq(){if(Ib)return fp;Ib=1;var e=IC(),n=Gq(),r=qC(),i=Jv(),o=MC(),l=PC(),u=ka(),c=1,p=2;function h(f,g){return i(f)&&o(g)?l(u(f),g):function(y){var x=n(y,f);return x===void 0&&x===g?r(y,f):e(g,x,c|p)}}return fp=h,fp}var hp,Mb;function $C(){if(Mb)return hp;Mb=1;function e(n){return function(r){return r==null?void 0:r[n]}}return hp=e,hp}var pp,Pb;function Xq(){if(Pb)return pp;Pb=1;var e=Pu();function n(r){return function(i){return e(i,r)}}return pp=n,pp}var mp,Ob;function Qq(){if(Ob)return mp;Ob=1;var e=$C(),n=Xq(),r=Jv(),i=ka();function o(l){return r(l)?e(i(l)):n(l)}return mp=o,mp}var gp,Lb;function Fr(){if(Lb)return gp;Lb=1;var e=Bq(),n=Kq(),r=ui(),i=St(),o=Qq();function l(u){return typeof u=="function"?u:u==null?r:typeof u=="object"?i(u)?n(u[0],u[1]):e(u):o(u)}return gp=l,gp}var vp,qb;function DC(){if(qb)return vp;qb=1;var e=mC(),n=Iq(),r=Fr(),i=St();function o(l,u){var c=i(l)?e:n;return c(l,r(u,3))}return vp=o,vp}var yp,$b;function Zq(){if($b)return yp;$b=1;var e=Object.prototype,n=e.hasOwnProperty;function r(i,o){return i!=null&&n.call(i,o)}return yp=r,yp}var wp,Db;function FC(){if(Db)return wp;Db=1;var e=Zq(),n=LC();function r(i,o){return i!=null&&n(i,o,e)}return wp=r,wp}var xp,Fb;function Jq(){if(Fb)return xp;Fb=1;var e=Wv(),n=fo(),r=ba(),i=St(),o=Dr(),l=co(),u=Tu(),c=Sa(),p="[object Map]",h="[object Set]",f=Object.prototype,g=f.hasOwnProperty;function y(x){if(x==null)return!0;if(o(x)&&(i(x)||typeof x=="string"||typeof x.splice=="function"||l(x)||c(x)||r(x)))return!x.length;var N=n(x);if(N==p||N==h)return!x.size;if(u(x))return!e(x).length;for(var _ in x)if(g.call(x,_))return!1;return!0}return xp=y,xp}var _p,zb;function zC(){if(zb)return _p;zb=1;function e(n){return n===void 0}return _p=e,_p}var bp,Bb;function BC(){if(Bb)return bp;Bb=1;var e=Au(),n=Dr();function r(i,o){var l=-1,u=n(i)?Array(i.length):[];return e(i,function(c,p,h){u[++l]=o(c,p,h)}),u}return bp=r,bp}var Sp,Ub;function UC(){if(Ub)return Sp;Ub=1;var e=Iu(),n=Fr(),r=BC(),i=St();function o(l,u){var c=i(l)?e:r;return c(l,n(u,3))}return Sp=o,Sp}var kp,Hb;function e$(){if(Hb)return kp;Hb=1;function e(n,r,i,o){var l=-1,u=n==null?0:n.length;for(o&&u&&(i=n[++l]);++l<u;)i=r(i,n[l],l,n);return i}return kp=e,kp}var Ep,Wb;function t$(){if(Wb)return Ep;Wb=1;function e(n,r,i,o,l){return l(n,function(u,c,p){i=o?(o=!1,u):r(i,u,c,p)}),i}return Ep=e,Ep}var Np,Vb;function HC(){if(Vb)return Np;Vb=1;var e=e$(),n=Au(),r=Fr(),i=t$(),o=St();function l(u,c,p){var h=o(u)?e:i,f=arguments.length<3;return h(u,r(c,4),p,f,n)}return Np=l,Np}var Cp,Gb;function n$(){if(Gb)return Cp;Gb=1;var e=oi(),n=St(),r=yr(),i="[object String]";function o(l){return typeof l=="string"||!n(l)&&r(l)&&e(l)==i}return Cp=o,Cp}var jp,Yb;function r$(){if(Yb)return jp;Yb=1;var e=$C(),n=e("length");return jp=n,jp}var Tp,Kb;function s$(){if(Kb)return Tp;Kb=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",i="\\u20d0-\\u20ff",o=n+r+i,l="\\ufe0e\\ufe0f",u="\\u200d",c=RegExp("["+u+e+o+l+"]");function p(h){return c.test(h)}return Tp=p,Tp}var Rp,Xb;function i$(){if(Xb)return Rp;Xb=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",i="\\u20d0-\\u20ff",o=n+r+i,l="\\ufe0e\\ufe0f",u="["+e+"]",c="["+o+"]",p="\\ud83c[\\udffb-\\udfff]",h="(?:"+c+"|"+p+")",f="[^"+e+"]",g="(?:\\ud83c[\\udde6-\\uddff]){2}",y="[\\ud800-\\udbff][\\udc00-\\udfff]",x="\\u200d",N=h+"?",_="["+l+"]?",S="(?:"+x+"(?:"+[f,g,y].join("|")+")"+_+N+")*",b=_+N+S,k="(?:"+[f+c+"?",c,g,y,u].join("|")+")",E=RegExp(p+"(?="+p+")|"+k+b,"g");function C(R){for(var M=E.lastIndex=0;E.test(R);)++M;return M}return Rp=C,Rp}var Ap,Qb;function o$(){if(Qb)return Ap;Qb=1;var e=r$(),n=s$(),r=i$();function i(o){return n(o)?r(o):e(o)}return Ap=i,Ap}var Ip,Zb;function a$(){if(Zb)return Ip;Zb=1;var e=Wv(),n=fo(),r=Dr(),i=n$(),o=o$(),l="[object Map]",u="[object Set]";function c(p){if(p==null)return 0;if(r(p))return i(p)?o(p):p.length;var h=n(p);return h==l||h==u?p.size:e(p).length}return Ip=c,Ip}var Mp,Jb;function l$(){if(Jb)return Mp;Jb=1;var e=Bv(),n=SC(),r=Qv(),i=Fr(),o=Ru(),l=St(),u=co(),c=xa(),p=Pn(),h=Sa();function f(g,y,x){var N=l(g),_=N||u(g)||h(g);if(y=i(y,4),x==null){var S=g&&g.constructor;_?x=N?new S:[]:p(g)?x=c(S)?n(o(g)):{}:x={}}return(_?e:r)(g,function(b,k,E){return y(x,b,k,E)}),x}return Mp=f,Mp}var Pp,eS;function u$(){if(eS)return Pp;eS=1;var e=uo(),n=ba(),r=St(),i=e?e.isConcatSpreadable:void 0;function o(l){return r(l)||n(l)||!!(i&&l&&l[i])}return Pp=o,Pp}var Op,tS;function ey(){if(tS)return Op;tS=1;var e=Gv(),n=u$();function r(i,o,l,u,c){var p=-1,h=i.length;for(l||(l=n),c||(c=[]);++p<h;){var f=i[p];o>0&&l(f)?o>1?r(f,o-1,l,u,c):e(c,f):u||(c[c.length]=f)}return c}return Op=r,Op}var Lp,nS;function c$(){if(nS)return Lp;nS=1;function e(n,r,i){switch(i.length){case 0:return n.call(r);case 1:return n.call(r,i[0]);case 2:return n.call(r,i[0],i[1]);case 3:return n.call(r,i[0],i[1],i[2])}return n.apply(r,i)}return Lp=e,Lp}var qp,rS;function WC(){if(rS)return qp;rS=1;var e=c$(),n=Math.max;function r(i,o,l){return o=n(o===void 0?i.length-1:o,0),function(){for(var u=arguments,c=-1,p=n(u.length-o,0),h=Array(p);++c<p;)h[c]=u[o+c];c=-1;for(var f=Array(o+1);++c<o;)f[c]=u[c];return f[o]=l(h),e(i,this,f)}}return qp=r,qp}var $p,sS;function d$(){if(sS)return $p;sS=1;var e=Kv(),n=cC(),r=ui(),i=n?function(o,l){return n(o,"toString",{configurable:!0,enumerable:!1,value:e(l),writable:!0})}:r;return $p=i,$p}var Dp,iS;function f$(){if(iS)return Dp;iS=1;var e=800,n=16,r=Date.now;function i(o){var l=0,u=0;return function(){var c=r(),p=n-(c-u);if(u=c,p>0){if(++l>=e)return arguments[0]}else l=0;return o.apply(void 0,arguments)}}return Dp=i,Dp}var Fp,oS;function VC(){if(oS)return Fp;oS=1;var e=d$(),n=f$(),r=n(e);return Fp=r,Fp}var zp,aS;function Ou(){if(aS)return zp;aS=1;var e=ui(),n=WC(),r=VC();function i(o,l){return r(n(o,l,e),o+"")}return zp=i,zp}var Bp,lS;function GC(){if(lS)return Bp;lS=1;function e(n,r,i,o){for(var l=n.length,u=i+(o?1:-1);o?u--:++u<l;)if(r(n[u],u,n))return u;return-1}return Bp=e,Bp}var Up,uS;function h$(){if(uS)return Up;uS=1;function e(n){return n!==n}return Up=e,Up}var Hp,cS;function p$(){if(cS)return Hp;cS=1;function e(n,r,i){for(var o=i-1,l=n.length;++o<l;)if(n[o]===r)return o;return-1}return Hp=e,Hp}var Wp,dS;function m$(){if(dS)return Wp;dS=1;var e=GC(),n=h$(),r=p$();function i(o,l,u){return l===l?r(o,l,u):e(o,n,u)}return Wp=i,Wp}var Vp,fS;function g$(){if(fS)return Vp;fS=1;var e=m$();function n(r,i){var o=r==null?0:r.length;return!!o&&e(r,i,0)>-1}return Vp=n,Vp}var Gp,hS;function v$(){if(hS)return Gp;hS=1;function e(n,r,i){for(var o=-1,l=n==null?0:n.length;++o<l;)if(i(r,n[o]))return!0;return!1}return Gp=e,Gp}var Yp,pS;function y$(){if(pS)return Yp;pS=1;function e(){}return Yp=e,Yp}var Kp,mS;function w$(){if(mS)return Kp;mS=1;var e=xC(),n=y$(),r=Zv(),i=1/0,o=e&&1/r(new e([,-0]))[1]==i?function(l){return new e(l)}:n;return Kp=o,Kp}var Xp,gS;function x$(){if(gS)return Xp;gS=1;var e=TC(),n=g$(),r=v$(),i=RC(),o=w$(),l=Zv(),u=200;function c(p,h,f){var g=-1,y=n,x=p.length,N=!0,_=[],S=_;if(f)N=!1,y=r;else if(x>=u){var b=h?null:o(p);if(b)return l(b);N=!1,y=i,S=new e}else S=h?[]:_;e:for(;++g<x;){var k=p[g],E=h?h(k):k;if(k=f||k!==0?k:0,N&&E===E){for(var C=S.length;C--;)if(S[C]===E)continue e;h&&S.push(E),_.push(k)}else y(S,E,f)||(S!==_&&S.push(E),_.push(k))}return _}return Xp=c,Xp}var Qp,vS;function YC(){if(vS)return Qp;vS=1;var e=Dr(),n=yr();function r(i){return n(i)&&e(i)}return Qp=r,Qp}var Zp,yS;function _$(){if(yS)return Zp;yS=1;var e=ey(),n=Ou(),r=x$(),i=YC(),o=n(function(l){return r(e(l,1,i,!0))});return Zp=o,Zp}var Jp,wS;function b$(){if(wS)return Jp;wS=1;var e=Iu();function n(r,i){return e(i,function(o){return r[o]})}return Jp=n,Jp}var em,xS;function KC(){if(xS)return em;xS=1;var e=b$(),n=vs();function r(i){return i==null?[]:e(i,n(i))}return em=r,em}var tm,_S;function On(){if(_S)return tm;_S=1;var e;if(typeof Dv=="function")try{e={clone:Tq(),constant:Kv(),each:jC(),filter:DC(),has:FC(),isArray:St(),isEmpty:Jq(),isFunction:xa(),isUndefined:zC(),keys:vs(),map:UC(),reduce:HC(),size:a$(),transform:l$(),union:_$(),values:KC()}}catch{}return e||(e=window._),tm=e,tm}var nm,bS;function ty(){if(bS)return nm;bS=1;var e=On();nm=o;var n="\0",r="\0",i="";function o(f){this._isDirected=e.has(f,"directed")?f.directed:!0,this._isMultigraph=e.has(f,"multigraph")?f.multigraph:!1,this._isCompound=e.has(f,"compound")?f.compound:!1,this._label=void 0,this._defaultNodeLabelFn=e.constant(void 0),this._defaultEdgeLabelFn=e.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[r]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}o.prototype._nodeCount=0,o.prototype._edgeCount=0,o.prototype.isDirected=function(){return this._isDirected},o.prototype.isMultigraph=function(){return this._isMultigraph},o.prototype.isCompound=function(){return this._isCompound},o.prototype.setGraph=function(f){return this._label=f,this},o.prototype.graph=function(){return this._label},o.prototype.setDefaultNodeLabel=function(f){return e.isFunction(f)||(f=e.constant(f)),this._defaultNodeLabelFn=f,this},o.prototype.nodeCount=function(){return this._nodeCount},o.prototype.nodes=function(){return e.keys(this._nodes)},o.prototype.sources=function(){var f=this;return e.filter(this.nodes(),function(g){return e.isEmpty(f._in[g])})},o.prototype.sinks=function(){var f=this;return e.filter(this.nodes(),function(g){return e.isEmpty(f._out[g])})},o.prototype.setNodes=function(f,g){var y=arguments,x=this;return e.each(f,function(N){y.length>1?x.setNode(N,g):x.setNode(N)}),this},o.prototype.setNode=function(f,g){return e.has(this._nodes,f)?(arguments.length>1&&(this._nodes[f]=g),this):(this._nodes[f]=arguments.length>1?g:this._defaultNodeLabelFn(f),this._isCompound&&(this._parent[f]=r,this._children[f]={},this._children[r][f]=!0),this._in[f]={},this._preds[f]={},this._out[f]={},this._sucs[f]={},++this._nodeCount,this)},o.prototype.node=function(f){return this._nodes[f]},o.prototype.hasNode=function(f){return e.has(this._nodes,f)},o.prototype.removeNode=function(f){var g=this;if(e.has(this._nodes,f)){var y=function(x){g.removeEdge(g._edgeObjs[x])};delete this._nodes[f],this._isCompound&&(this._removeFromParentsChildList(f),delete this._parent[f],e.each(this.children(f),function(x){g.setParent(x)}),delete this._children[f]),e.each(e.keys(this._in[f]),y),delete this._in[f],delete this._preds[f],e.each(e.keys(this._out[f]),y),delete this._out[f],delete this._sucs[f],--this._nodeCount}return this},o.prototype.setParent=function(f,g){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(e.isUndefined(g))g=r;else{g+="";for(var y=g;!e.isUndefined(y);y=this.parent(y))if(y===f)throw new Error("Setting "+g+" as parent of "+f+" would create a cycle");this.setNode(g)}return this.setNode(f),this._removeFromParentsChildList(f),this._parent[f]=g,this._children[g][f]=!0,this},o.prototype._removeFromParentsChildList=function(f){delete this._children[this._parent[f]][f]},o.prototype.parent=function(f){if(this._isCompound){var g=this._parent[f];if(g!==r)return g}},o.prototype.children=function(f){if(e.isUndefined(f)&&(f=r),this._isCompound){var g=this._children[f];if(g)return e.keys(g)}else{if(f===r)return this.nodes();if(this.hasNode(f))return[]}},o.prototype.predecessors=function(f){var g=this._preds[f];if(g)return e.keys(g)},o.prototype.successors=function(f){var g=this._sucs[f];if(g)return e.keys(g)},o.prototype.neighbors=function(f){var g=this.predecessors(f);if(g)return e.union(g,this.successors(f))},o.prototype.isLeaf=function(f){var g;return this.isDirected()?g=this.successors(f):g=this.neighbors(f),g.length===0},o.prototype.filterNodes=function(f){var g=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});g.setGraph(this.graph());var y=this;e.each(this._nodes,function(_,S){f(S)&&g.setNode(S,_)}),e.each(this._edgeObjs,function(_){g.hasNode(_.v)&&g.hasNode(_.w)&&g.setEdge(_,y.edge(_))});var x={};function N(_){var S=y.parent(_);return S===void 0||g.hasNode(S)?(x[_]=S,S):S in x?x[S]:N(S)}return this._isCompound&&e.each(g.nodes(),function(_){g.setParent(_,N(_))}),g},o.prototype.setDefaultEdgeLabel=function(f){return e.isFunction(f)||(f=e.constant(f)),this._defaultEdgeLabelFn=f,this},o.prototype.edgeCount=function(){return this._edgeCount},o.prototype.edges=function(){return e.values(this._edgeObjs)},o.prototype.setPath=function(f,g){var y=this,x=arguments;return e.reduce(f,function(N,_){return x.length>1?y.setEdge(N,_,g):y.setEdge(N,_),_}),this},o.prototype.setEdge=function(){var f,g,y,x,N=!1,_=arguments[0];typeof _=="object"&&_!==null&&"v"in _?(f=_.v,g=_.w,y=_.name,arguments.length===2&&(x=arguments[1],N=!0)):(f=_,g=arguments[1],y=arguments[3],arguments.length>2&&(x=arguments[2],N=!0)),f=""+f,g=""+g,e.isUndefined(y)||(y=""+y);var S=c(this._isDirected,f,g,y);if(e.has(this._edgeLabels,S))return N&&(this._edgeLabels[S]=x),this;if(!e.isUndefined(y)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(f),this.setNode(g),this._edgeLabels[S]=N?x:this._defaultEdgeLabelFn(f,g,y);var b=p(this._isDirected,f,g,y);return f=b.v,g=b.w,Object.freeze(b),this._edgeObjs[S]=b,l(this._preds[g],f),l(this._sucs[f],g),this._in[g][S]=b,this._out[f][S]=b,this._edgeCount++,this},o.prototype.edge=function(f,g,y){var x=arguments.length===1?h(this._isDirected,arguments[0]):c(this._isDirected,f,g,y);return this._edgeLabels[x]},o.prototype.hasEdge=function(f,g,y){var x=arguments.length===1?h(this._isDirected,arguments[0]):c(this._isDirected,f,g,y);return e.has(this._edgeLabels,x)},o.prototype.removeEdge=function(f,g,y){var x=arguments.length===1?h(this._isDirected,arguments[0]):c(this._isDirected,f,g,y),N=this._edgeObjs[x];return N&&(f=N.v,g=N.w,delete this._edgeLabels[x],delete this._edgeObjs[x],u(this._preds[g],f),u(this._sucs[f],g),delete this._in[g][x],delete this._out[f][x],this._edgeCount--),this},o.prototype.inEdges=function(f,g){var y=this._in[f];if(y){var x=e.values(y);return g?e.filter(x,function(N){return N.v===g}):x}},o.prototype.outEdges=function(f,g){var y=this._out[f];if(y){var x=e.values(y);return g?e.filter(x,function(N){return N.w===g}):x}},o.prototype.nodeEdges=function(f,g){var y=this.inEdges(f,g);if(y)return y.concat(this.outEdges(f,g))};function l(f,g){f[g]?f[g]++:f[g]=1}function u(f,g){--f[g]||delete f[g]}function c(f,g,y,x){var N=""+g,_=""+y;if(!f&&N>_){var S=N;N=_,_=S}return N+i+_+i+(e.isUndefined(x)?n:x)}function p(f,g,y,x){var N=""+g,_=""+y;if(!f&&N>_){var S=N;N=_,_=S}var b={v:N,w:_};return x&&(b.name=x),b}function h(f,g){return c(f,g.v,g.w,g.name)}return nm}var rm,SS;function S$(){return SS||(SS=1,rm="2.1.8"),rm}var sm,kS;function k$(){return kS||(kS=1,sm={Graph:ty(),version:S$()}),sm}var im,ES;function E$(){if(ES)return im;ES=1;var e=On(),n=ty();im={write:r,read:l};function r(u){var c={options:{directed:u.isDirected(),multigraph:u.isMultigraph(),compound:u.isCompound()},nodes:i(u),edges:o(u)};return e.isUndefined(u.graph())||(c.value=e.clone(u.graph())),c}function i(u){return e.map(u.nodes(),function(c){var p=u.node(c),h=u.parent(c),f={v:c};return e.isUndefined(p)||(f.value=p),e.isUndefined(h)||(f.parent=h),f})}function o(u){return e.map(u.edges(),function(c){var p=u.edge(c),h={v:c.v,w:c.w};return e.isUndefined(c.name)||(h.name=c.name),e.isUndefined(p)||(h.value=p),h})}function l(u){var c=new n(u.options).setGraph(u.value);return e.each(u.nodes,function(p){c.setNode(p.v,p.value),p.parent&&c.setParent(p.v,p.parent)}),e.each(u.edges,function(p){c.setEdge({v:p.v,w:p.w,name:p.name},p.value)}),c}return im}var om,NS;function N$(){if(NS)return om;NS=1;var e=On();om=n;function n(r){var i={},o=[],l;function u(c){e.has(i,c)||(i[c]=!0,l.push(c),e.each(r.successors(c),u),e.each(r.predecessors(c),u))}return e.each(r.nodes(),function(c){l=[],u(c),l.length&&o.push(l)}),o}return om}var am,CS;function XC(){if(CS)return am;CS=1;var e=On();am=n;function n(){this._arr=[],this._keyIndices={}}return n.prototype.size=function(){return this._arr.length},n.prototype.keys=function(){return this._arr.map(function(r){return r.key})},n.prototype.has=function(r){return e.has(this._keyIndices,r)},n.prototype.priority=function(r){var i=this._keyIndices[r];if(i!==void 0)return this._arr[i].priority},n.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key},n.prototype.add=function(r,i){var o=this._keyIndices;if(r=String(r),!e.has(o,r)){var l=this._arr,u=l.length;return o[r]=u,l.push({key:r,priority:i}),this._decrease(u),!0}return!1},n.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var r=this._arr.pop();return delete this._keyIndices[r.key],this._heapify(0),r.key},n.prototype.decrease=function(r,i){var o=this._keyIndices[r];if(i>this._arr[o].priority)throw new Error("New priority is greater than current priority. Key: "+r+" Old: "+this._arr[o].priority+" New: "+i);this._arr[o].priority=i,this._decrease(o)},n.prototype._heapify=function(r){var i=this._arr,o=2*r,l=o+1,u=r;o<i.length&&(u=i[o].priority<i[u].priority?o:u,l<i.length&&(u=i[l].priority<i[u].priority?l:u),u!==r&&(this._swap(r,u),this._heapify(u)))},n.prototype._decrease=function(r){for(var i=this._arr,o=i[r].priority,l;r!==0&&(l=r>>1,!(i[l].priority<o));)this._swap(r,l),r=l},n.prototype._swap=function(r,i){var o=this._arr,l=this._keyIndices,u=o[r],c=o[i];o[r]=c,o[i]=u,l[c.key]=r,l[u.key]=i},am}var lm,jS;function QC(){if(jS)return lm;jS=1;var e=On(),n=XC();lm=i;var r=e.constant(1);function i(l,u,c,p){return o(l,String(u),c||r,p||function(h){return l.outEdges(h)})}function o(l,u,c,p){var h={},f=new n,g,y,x=function(N){var _=N.v!==g?N.v:N.w,S=h[_],b=c(N),k=y.distance+b;if(b<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+N+" Weight: "+b);k<S.distance&&(S.distance=k,S.predecessor=g,f.decrease(_,k))};for(l.nodes().forEach(function(N){var _=N===u?0:Number.POSITIVE_INFINITY;h[N]={distance:_},f.add(N,_)});f.size()>0&&(g=f.removeMin(),y=h[g],y.distance!==Number.POSITIVE_INFINITY);)p(g).forEach(x);return h}return lm}var um,TS;function C$(){if(TS)return um;TS=1;var e=QC(),n=On();um=r;function r(i,o,l){return n.transform(i.nodes(),function(u,c){u[c]=e(i,c,o,l)},{})}return um}var cm,RS;function ZC(){if(RS)return cm;RS=1;var e=On();cm=n;function n(r){var i=0,o=[],l={},u=[];function c(p){var h=l[p]={onStack:!0,lowlink:i,index:i++};if(o.push(p),r.successors(p).forEach(function(y){e.has(l,y)?l[y].onStack&&(h.lowlink=Math.min(h.lowlink,l[y].index)):(c(y),h.lowlink=Math.min(h.lowlink,l[y].lowlink))}),h.lowlink===h.index){var f=[],g;do g=o.pop(),l[g].onStack=!1,f.push(g);while(p!==g);u.push(f)}}return r.nodes().forEach(function(p){e.has(l,p)||c(p)}),u}return cm}var dm,AS;function j$(){if(AS)return dm;AS=1;var e=On(),n=ZC();dm=r;function r(i){return e.filter(n(i),function(o){return o.length>1||o.length===1&&i.hasEdge(o[0],o[0])})}return dm}var fm,IS;function T$(){if(IS)return fm;IS=1;var e=On();fm=r;var n=e.constant(1);function r(o,l,u){return i(o,l||n,u||function(c){return o.outEdges(c)})}function i(o,l,u){var c={},p=o.nodes();return p.forEach(function(h){c[h]={},c[h][h]={distance:0},p.forEach(function(f){h!==f&&(c[h][f]={distance:Number.POSITIVE_INFINITY})}),u(h).forEach(function(f){var g=f.v===h?f.w:f.v,y=l(f);c[h][g]={distance:y,predecessor:h}})}),p.forEach(function(h){var f=c[h];p.forEach(function(g){var y=c[g];p.forEach(function(x){var N=y[h],_=f[x],S=y[x],b=N.distance+_.distance;b<S.distance&&(S.distance=b,S.predecessor=_.predecessor)})})}),c}return fm}var hm,MS;function JC(){if(MS)return hm;MS=1;var e=On();hm=n,n.CycleException=r;function n(i){var o={},l={},u=[];function c(p){if(e.has(l,p))throw new r;e.has(o,p)||(l[p]=!0,o[p]=!0,e.each(i.predecessors(p),c),delete l[p],u.push(p))}if(e.each(i.sinks(),c),e.size(o)!==i.nodeCount())throw new r;return u}function r(){}return r.prototype=new Error,hm}var pm,PS;function R$(){if(PS)return pm;PS=1;var e=JC();pm=n;function n(r){try{e(r)}catch(i){if(i instanceof e.CycleException)return!1;throw i}return!0}return pm}var mm,OS;function ej(){if(OS)return mm;OS=1;var e=On();mm=n;function n(i,o,l){e.isArray(o)||(o=[o]);var u=(i.isDirected()?i.successors:i.neighbors).bind(i),c=[],p={};return e.each(o,function(h){if(!i.hasNode(h))throw new Error("Graph does not have node: "+h);r(i,h,l==="post",p,u,c)}),c}function r(i,o,l,u,c,p){e.has(u,o)||(u[o]=!0,l||p.push(o),e.each(c(o),function(h){r(i,h,l,u,c,p)}),l&&p.push(o))}return mm}var gm,LS;function A$(){if(LS)return gm;LS=1;var e=ej();gm=n;function n(r,i){return e(r,i,"post")}return gm}var vm,qS;function I$(){if(qS)return vm;qS=1;var e=ej();vm=n;function n(r,i){return e(r,i,"pre")}return vm}var ym,$S;function M$(){if($S)return ym;$S=1;var e=On(),n=ty(),r=XC();ym=i;function i(o,l){var u=new n,c={},p=new r,h;function f(y){var x=y.v===h?y.w:y.v,N=p.priority(x);if(N!==void 0){var _=l(y);_<N&&(c[x]=h,p.decrease(x,_))}}if(o.nodeCount()===0)return u;e.each(o.nodes(),function(y){p.add(y,Number.POSITIVE_INFINITY),u.setNode(y)}),p.decrease(o.nodes()[0],0);for(var g=!1;p.size()>0;){if(h=p.removeMin(),e.has(c,h))u.setEdge(h,c[h]);else{if(g)throw new Error("Input graph is not connected: "+o);g=!0}o.nodeEdges(h).forEach(f)}return u}return ym}var wm,DS;function P$(){return DS||(DS=1,wm={components:N$(),dijkstra:QC(),dijkstraAll:C$(),findCycles:j$(),floydWarshall:T$(),isAcyclic:R$(),postorder:A$(),preorder:I$(),prim:M$(),tarjan:ZC(),topsort:JC()}),wm}var xm,FS;function O$(){if(FS)return xm;FS=1;var e=k$();return xm={Graph:e.Graph,json:E$(),alg:P$(),version:e.version},xm}var _m,zS;function tr(){if(zS)return _m;zS=1;var e;if(typeof Dv=="function")try{e=O$()}catch{}return e||(e=window.graphlib),_m=e,_m}var bm,BS;function L$(){if(BS)return bm;BS=1;var e=EC(),n=1,r=4;function i(o){return e(o,n|r)}return bm=i,bm}var Sm,US;function Lu(){if(US)return Sm;US=1;var e=lo(),n=Dr(),r=Cu(),i=Pn();function o(l,u,c){if(!i(c))return!1;var p=typeof u;return(p=="number"?n(c)&&r(u,c.length):p=="string"&&u in c)?e(c[u],l):!1}return Sm=o,Sm}var km,HS;function q$(){if(HS)return km;HS=1;var e=Ou(),n=lo(),r=Lu(),i=li(),o=Object.prototype,l=o.hasOwnProperty,u=e(function(c,p){c=Object(c);var h=-1,f=p.length,g=f>2?p[2]:void 0;for(g&&r(p[0],p[1],g)&&(f=1);++h<f;)for(var y=p[h],x=i(y),N=-1,_=x.length;++N<_;){var S=x[N],b=c[S];(b===void 0||n(b,o[S])&&!l.call(c,S))&&(c[S]=y[S])}return c});return km=u,km}var Em,WS;function $$(){if(WS)return Em;WS=1;var e=Fr(),n=Dr(),r=vs();function i(o){return function(l,u,c){var p=Object(l);if(!n(l)){var h=e(u,3);l=r(l),u=function(g){return h(p[g],g,p)}}var f=o(l,u,c);return f>-1?p[h?l[f]:f]:void 0}}return Em=i,Em}var Nm,VS;function D$(){if(VS)return Nm;VS=1;var e=/\s/;function n(r){for(var i=r.length;i--&&e.test(r.charAt(i)););return i}return Nm=n,Nm}var Cm,GS;function F$(){if(GS)return Cm;GS=1;var e=D$(),n=/^\s+/;function r(i){return i&&i.slice(0,e(i)+1).replace(n,"")}return Cm=r,Cm}var jm,YS;function z$(){if(YS)return jm;YS=1;var e=F$(),n=Pn(),r=ho(),i=NaN,o=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt;function p(h){if(typeof h=="number")return h;if(r(h))return i;if(n(h)){var f=typeof h.valueOf=="function"?h.valueOf():h;h=n(f)?f+"":f}if(typeof h!="string")return h===0?h:+h;h=e(h);var g=l.test(h);return g||u.test(h)?c(h.slice(2),g?2:8):o.test(h)?i:+h}return jm=p,jm}var Tm,KS;function tj(){if(KS)return Tm;KS=1;var e=z$(),n=1/0,r=17976931348623157e292;function i(o){if(!o)return o===0?o:0;if(o=e(o),o===n||o===-n){var l=o<0?-1:1;return l*r}return o===o?o:0}return Tm=i,Tm}var Rm,XS;function B$(){if(XS)return Rm;XS=1;var e=tj();function n(r){var i=e(r),o=i%1;return i===i?o?i-o:i:0}return Rm=n,Rm}var Am,QS;function U$(){if(QS)return Am;QS=1;var e=GC(),n=Fr(),r=B$(),i=Math.max;function o(l,u,c){var p=l==null?0:l.length;if(!p)return-1;var h=c==null?0:r(c);return h<0&&(h=i(p+h,0)),e(l,n(u,3),h)}return Am=o,Am}var Im,ZS;function H$(){if(ZS)return Im;ZS=1;var e=$$(),n=U$(),r=e(n);return Im=r,Im}var Mm,JS;function nj(){if(JS)return Mm;JS=1;var e=ey();function n(r){var i=r==null?0:r.length;return i?e(r,1):[]}return Mm=n,Mm}var Pm,ek;function W$(){if(ek)return Pm;ek=1;var e=Xv(),n=NC(),r=li();function i(o,l){return o==null?o:e(o,n(l),r)}return Pm=i,Pm}var Om,tk;function V$(){if(tk)return Om;tk=1;function e(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}return Om=e,Om}var Lm,nk;function G$(){if(nk)return Lm;nk=1;var e=Eu(),n=Qv(),r=Fr();function i(o,l){var u={};return l=r(l,3),n(o,function(c,p,h){e(u,p,l(c,p,h))}),u}return Lm=i,Lm}var qm,rk;function ny(){if(rk)return qm;rk=1;var e=ho();function n(r,i,o){for(var l=-1,u=r.length;++l<u;){var c=r[l],p=i(c);if(p!=null&&(h===void 0?p===p&&!e(p):o(p,h)))var h=p,f=c}return f}return qm=n,qm}var $m,sk;function Y$(){if(sk)return $m;sk=1;function e(n,r){return n>r}return $m=e,$m}var Dm,ik;function K$(){if(ik)return Dm;ik=1;var e=ny(),n=Y$(),r=ui();function i(o){return o&&o.length?e(o,r,n):void 0}return Dm=i,Dm}var Fm,ok;function rj(){if(ok)return Fm;ok=1;var e=Eu(),n=lo();function r(i,o,l){(l!==void 0&&!n(i[o],l)||l===void 0&&!(o in i))&&e(i,o,l)}return Fm=r,Fm}var zm,ak;function X$(){if(ak)return zm;ak=1;var e=oi(),n=Ru(),r=yr(),i="[object Object]",o=Function.prototype,l=Object.prototype,u=o.toString,c=l.hasOwnProperty,p=u.call(Object);function h(f){if(!r(f)||e(f)!=i)return!1;var g=n(f);if(g===null)return!0;var y=c.call(g,"constructor")&&g.constructor;return typeof y=="function"&&y instanceof y&&u.call(y)==p}return zm=h,zm}var Bm,lk;function sj(){if(lk)return Bm;lk=1;function e(n,r){if(!(r==="constructor"&&typeof n[r]=="function")&&r!="__proto__")return n[r]}return Bm=e,Bm}var Um,uk;function Q$(){if(uk)return Um;uk=1;var e=_a(),n=li();function r(i){return e(i,n(i))}return Um=r,Um}var Hm,ck;function Z$(){if(ck)return Hm;ck=1;var e=rj(),n=hC(),r=bC(),i=pC(),o=kC(),l=ba(),u=St(),c=YC(),p=co(),h=xa(),f=Pn(),g=X$(),y=Sa(),x=sj(),N=Q$();function _(S,b,k,E,C,R,M){var L=x(S,k),U=x(b,k),O=M.get(U);if(O){e(S,k,O);return}var P=R?R(L,U,k+"",S,b,M):void 0,F=P===void 0;if(F){var G=u(U),q=!G&&p(U),T=!G&&!q&&y(U);P=U,G||q||T?u(L)?P=L:c(L)?P=i(L):q?(F=!1,P=n(U,!0)):T?(F=!1,P=r(U,!0)):P=[]:g(U)||l(U)?(P=L,l(L)?P=N(L):(!f(L)||h(L))&&(P=o(U))):F=!1}F&&(M.set(U,P),C(P,U,E,R,M),M.delete(U)),e(S,k,P)}return Hm=_,Hm}var Wm,dk;function J$(){if(dk)return Wm;dk=1;var e=ku(),n=rj(),r=Xv(),i=Z$(),o=Pn(),l=li(),u=sj();function c(p,h,f,g,y){p!==h&&r(h,function(x,N){if(y||(y=new e),o(x))i(p,h,N,f,c,g,y);else{var _=g?g(u(p,N),x,N+"",p,h,y):void 0;_===void 0&&(_=x),n(p,N,_)}},l)}return Wm=c,Wm}var Vm,fk;function e4(){if(fk)return Vm;fk=1;var e=Ou(),n=Lu();function r(i){return e(function(o,l){var u=-1,c=l.length,p=c>1?l[c-1]:void 0,h=c>2?l[2]:void 0;for(p=i.length>3&&typeof p=="function"?(c--,p):void 0,h&&n(l[0],l[1],h)&&(p=c<3?void 0:p,c=1),o=Object(o);++u<c;){var f=l[u];f&&i(o,f,u,p)}return o})}return Vm=r,Vm}var Gm,hk;function t4(){if(hk)return Gm;hk=1;var e=J$(),n=e4(),r=n(function(i,o,l){e(i,o,l)});return Gm=r,Gm}var Ym,pk;function ij(){if(pk)return Ym;pk=1;function e(n,r){return n<r}return Ym=e,Ym}var Km,mk;function n4(){if(mk)return Km;mk=1;var e=ny(),n=ij(),r=ui();function i(o){return o&&o.length?e(o,r,n):void 0}return Km=i,Km}var Xm,gk;function r4(){if(gk)return Xm;gk=1;var e=ny(),n=Fr(),r=ij();function i(o,l){return o&&o.length?e(o,n(l,2),r):void 0}return Xm=i,Xm}var Qm,vk;function s4(){if(vk)return Qm;vk=1;var e=rr(),n=function(){return e.Date.now()};return Qm=n,Qm}var Zm,yk;function i4(){if(yk)return Zm;yk=1;var e=Nu(),n=Mu(),r=Cu(),i=Pn(),o=ka();function l(u,c,p,h){if(!i(u))return u;c=n(c,u);for(var f=-1,g=c.length,y=g-1,x=u;x!=null&&++f<g;){var N=o(c[f]),_=p;if(N==="__proto__"||N==="constructor"||N==="prototype")return u;if(f!=y){var S=x[N];_=h?h(S,N,x):void 0,_===void 0&&(_=i(S)?S:r(c[f+1])?[]:{})}e(x,N,_),x=x[N]}return u}return Zm=l,Zm}var Jm,wk;function o4(){if(wk)return Jm;wk=1;var e=Pu(),n=i4(),r=Mu();function i(o,l,u){for(var c=-1,p=l.length,h={};++c<p;){var f=l[c],g=e(o,f);u(g,f)&&n(h,r(f,o),g)}return h}return Jm=i,Jm}var eg,xk;function a4(){if(xk)return eg;xk=1;var e=o4(),n=qC();function r(i,o){return e(i,o,function(l,u){return n(i,u)})}return eg=r,eg}var tg,_k;function l4(){if(_k)return tg;_k=1;var e=nj(),n=WC(),r=VC();function i(o){return r(n(o,void 0,e),o+"")}return tg=i,tg}var ng,bk;function u4(){if(bk)return ng;bk=1;var e=a4(),n=l4(),r=n(function(i,o){return i==null?{}:e(i,o)});return ng=r,ng}var rg,Sk;function c4(){if(Sk)return rg;Sk=1;var e=Math.ceil,n=Math.max;function r(i,o,l,u){for(var c=-1,p=n(e((o-i)/(l||1)),0),h=Array(p);p--;)h[u?p:++c]=i,i+=l;return h}return rg=r,rg}var sg,kk;function d4(){if(kk)return sg;kk=1;var e=c4(),n=Lu(),r=tj();function i(o){return function(l,u,c){return c&&typeof c!="number"&&n(l,u,c)&&(u=c=void 0),l=r(l),u===void 0?(u=l,l=0):u=r(u),c=c===void 0?l<u?1:-1:r(c),e(l,u,c,o)}}return sg=i,sg}var ig,Ek;function f4(){if(Ek)return ig;Ek=1;var e=d4(),n=e();return ig=n,ig}var og,Nk;function h4(){if(Nk)return og;Nk=1;function e(n,r){var i=n.length;for(n.sort(r);i--;)n[i]=n[i].value;return n}return og=e,og}var ag,Ck;function p4(){if(Ck)return ag;Ck=1;var e=ho();function n(r,i){if(r!==i){var o=r!==void 0,l=r===null,u=r===r,c=e(r),p=i!==void 0,h=i===null,f=i===i,g=e(i);if(!h&&!g&&!c&&r>i||c&&p&&f&&!h&&!g||l&&p&&f||!o&&f||!u)return 1;if(!l&&!c&&!g&&r<i||g&&o&&u&&!l&&!c||h&&o&&u||!p&&u||!f)return-1}return 0}return ag=n,ag}var lg,jk;function m4(){if(jk)return lg;jk=1;var e=p4();function n(r,i,o){for(var l=-1,u=r.criteria,c=i.criteria,p=u.length,h=o.length;++l<p;){var f=e(u[l],c[l]);if(f){if(l>=h)return f;var g=o[l];return f*(g=="desc"?-1:1)}}return r.index-i.index}return lg=n,lg}var ug,Tk;function g4(){if(Tk)return ug;Tk=1;var e=Iu(),n=Pu(),r=Fr(),i=BC(),o=h4(),l=ju(),u=m4(),c=ui(),p=St();function h(f,g,y){g.length?g=e(g,function(_){return p(_)?function(S){return n(S,_.length===1?_[0]:_)}:_}):g=[c];var x=-1;g=e(g,l(r));var N=i(f,function(_,S,b){var k=e(g,function(E){return E(_)});return{criteria:k,index:++x,value:_}});return o(N,function(_,S){return u(_,S,y)})}return ug=h,ug}var cg,Rk;function v4(){if(Rk)return cg;Rk=1;var e=ey(),n=g4(),r=Ou(),i=Lu(),o=r(function(l,u){if(l==null)return[];var c=u.length;return c>1&&i(l,u[0],u[1])?u=[]:c>2&&i(u[0],u[1],u[2])&&(u=[u[0]]),n(l,e(u,1),[])});return cg=o,cg}var dg,Ak;function y4(){if(Ak)return dg;Ak=1;var e=OC(),n=0;function r(i){var o=++n;return e(i)+o}return dg=r,dg}var fg,Ik;function w4(){if(Ik)return fg;Ik=1;function e(n,r,i){for(var o=-1,l=n.length,u=r.length,c={};++o<l;){var p=o<u?r[o]:void 0;i(c,n[o],p)}return c}return fg=e,fg}var hg,Mk;function x4(){if(Mk)return hg;Mk=1;var e=Nu(),n=w4();function r(i,o){return n(i||[],o||[],e)}return hg=r,hg}var pg,Pk;function ct(){if(Pk)return pg;Pk=1;var e;if(typeof Dv=="function")try{e={cloneDeep:L$(),constant:Kv(),defaults:q$(),each:jC(),filter:DC(),find:H$(),flatten:nj(),forEach:CC(),forIn:W$(),has:FC(),isUndefined:zC(),last:V$(),map:UC(),mapValues:G$(),max:K$(),merge:t4(),min:n4(),minBy:r4(),now:s4(),pick:u4(),range:f4(),reduce:HC(),sortBy:v4(),uniqueId:y4(),values:KC(),zipObject:x4()}}catch{}return e||(e=window._),pg=e,pg}var mg,Ok;function _4(){if(Ok)return mg;Ok=1,mg=e;function e(){var i={};i._next=i._prev=i,this._sentinel=i}e.prototype.dequeue=function(){var i=this._sentinel,o=i._prev;if(o!==i)return n(o),o},e.prototype.enqueue=function(i){var o=this._sentinel;i._prev&&i._next&&n(i),i._next=o._next,o._next._prev=i,o._next=i,i._prev=o},e.prototype.toString=function(){for(var i=[],o=this._sentinel,l=o._prev;l!==o;)i.push(JSON.stringify(l,r)),l=l._prev;return"["+i.join(", ")+"]"};function n(i){i._prev._next=i._next,i._next._prev=i._prev,delete i._next,delete i._prev}function r(i,o){if(i!=="_next"&&i!=="_prev")return o}return mg}var gg,Lk;function b4(){if(Lk)return gg;Lk=1;var e=ct(),n=tr().Graph,r=_4();gg=o;var i=e.constant(1);function o(h,f){if(h.nodeCount()<=1)return[];var g=c(h,f||i),y=l(g.graph,g.buckets,g.zeroIdx);return e.flatten(e.map(y,function(x){return h.outEdges(x.v,x.w)}),!0)}function l(h,f,g){for(var y=[],x=f[f.length-1],N=f[0],_;h.nodeCount();){for(;_=N.dequeue();)u(h,f,g,_);for(;_=x.dequeue();)u(h,f,g,_);if(h.nodeCount()){for(var S=f.length-2;S>0;--S)if(_=f[S].dequeue(),_){y=y.concat(u(h,f,g,_,!0));break}}}return y}function u(h,f,g,y,x){var N=x?[]:void 0;return e.forEach(h.inEdges(y.v),function(_){var S=h.edge(_),b=h.node(_.v);x&&N.push({v:_.v,w:_.w}),b.out-=S,p(f,g,b)}),e.forEach(h.outEdges(y.v),function(_){var S=h.edge(_),b=_.w,k=h.node(b);k.in-=S,p(f,g,k)}),h.removeNode(y.v),N}function c(h,f){var g=new n,y=0,x=0;e.forEach(h.nodes(),function(S){g.setNode(S,{v:S,in:0,out:0})}),e.forEach(h.edges(),function(S){var b=g.edge(S.v,S.w)||0,k=f(S),E=b+k;g.setEdge(S.v,S.w,E),x=Math.max(x,g.node(S.v).out+=k),y=Math.max(y,g.node(S.w).in+=k)});var N=e.range(x+y+3).map(function(){return new r}),_=y+1;return e.forEach(g.nodes(),function(S){p(N,_,g.node(S))}),{graph:g,buckets:N,zeroIdx:_}}function p(h,f,g){g.out?g.in?h[g.out-g.in+f].enqueue(g):h[h.length-1].enqueue(g):h[0].enqueue(g)}return gg}var vg,qk;function S4(){if(qk)return vg;qk=1;var e=ct(),n=b4();vg={run:r,undo:o};function r(l){var u=l.graph().acyclicer==="greedy"?n(l,c(l)):i(l);e.forEach(u,function(p){var h=l.edge(p);l.removeEdge(p),h.forwardName=p.name,h.reversed=!0,l.setEdge(p.w,p.v,h,e.uniqueId("rev"))});function c(p){return function(h){return p.edge(h).weight}}}function i(l){var u=[],c={},p={};function h(f){e.has(p,f)||(p[f]=!0,c[f]=!0,e.forEach(l.outEdges(f),function(g){e.has(c,g.w)?u.push(g):h(g.w)}),delete c[f])}return e.forEach(l.nodes(),h),u}function o(l){e.forEach(l.edges(),function(u){var c=l.edge(u);if(c.reversed){l.removeEdge(u);var p=c.forwardName;delete c.reversed,delete c.forwardName,l.setEdge(u.w,u.v,c,p)}})}return vg}var yg,$k;function un(){if($k)return yg;$k=1;var e=ct(),n=tr().Graph;yg={addDummyNode:r,simplify:i,asNonCompoundGraph:o,successorWeights:l,predecessorWeights:u,intersectRect:c,buildLayerMatrix:p,normalizeRanks:h,removeEmptyRanks:f,addBorderNode:g,maxRank:y,partition:x,time:N,notime:_};function r(S,b,k,E){var C;do C=e.uniqueId(E);while(S.hasNode(C));return k.dummy=b,S.setNode(C,k),C}function i(S){var b=new n().setGraph(S.graph());return e.forEach(S.nodes(),function(k){b.setNode(k,S.node(k))}),e.forEach(S.edges(),function(k){var E=b.edge(k.v,k.w)||{weight:0,minlen:1},C=S.edge(k);b.setEdge(k.v,k.w,{weight:E.weight+C.weight,minlen:Math.max(E.minlen,C.minlen)})}),b}function o(S){var b=new n({multigraph:S.isMultigraph()}).setGraph(S.graph());return e.forEach(S.nodes(),function(k){S.children(k).length||b.setNode(k,S.node(k))}),e.forEach(S.edges(),function(k){b.setEdge(k,S.edge(k))}),b}function l(S){var b=e.map(S.nodes(),function(k){var E={};return e.forEach(S.outEdges(k),function(C){E[C.w]=(E[C.w]||0)+S.edge(C).weight}),E});return e.zipObject(S.nodes(),b)}function u(S){var b=e.map(S.nodes(),function(k){var E={};return e.forEach(S.inEdges(k),function(C){E[C.v]=(E[C.v]||0)+S.edge(C).weight}),E});return e.zipObject(S.nodes(),b)}function c(S,b){var k=S.x,E=S.y,C=b.x-k,R=b.y-E,M=S.width/2,L=S.height/2;if(!C&&!R)throw new Error("Not possible to find intersection inside of the rectangle");var U,O;return Math.abs(R)*M>Math.abs(C)*L?(R<0&&(L=-L),U=L*C/R,O=L):(C<0&&(M=-M),U=M,O=M*R/C),{x:k+U,y:E+O}}function p(S){var b=e.map(e.range(y(S)+1),function(){return[]});return e.forEach(S.nodes(),function(k){var E=S.node(k),C=E.rank;e.isUndefined(C)||(b[C][E.order]=k)}),b}function h(S){var b=e.min(e.map(S.nodes(),function(k){return S.node(k).rank}));e.forEach(S.nodes(),function(k){var E=S.node(k);e.has(E,"rank")&&(E.rank-=b)})}function f(S){var b=e.min(e.map(S.nodes(),function(R){return S.node(R).rank})),k=[];e.forEach(S.nodes(),function(R){var M=S.node(R).rank-b;k[M]||(k[M]=[]),k[M].push(R)});var E=0,C=S.graph().nodeRankFactor;e.forEach(k,function(R,M){e.isUndefined(R)&&M%C!==0?--E:E&&e.forEach(R,function(L){S.node(L).rank+=E})})}function g(S,b,k,E){var C={width:0,height:0};return arguments.length>=4&&(C.rank=k,C.order=E),r(S,"border",C,b)}function y(S){return e.max(e.map(S.nodes(),function(b){var k=S.node(b).rank;if(!e.isUndefined(k))return k}))}function x(S,b){var k={lhs:[],rhs:[]};return e.forEach(S,function(E){b(E)?k.lhs.push(E):k.rhs.push(E)}),k}function N(S,b){var k=e.now();try{return b()}finally{console.log(S+" time: "+(e.now()-k)+"ms")}}function _(S,b){return b()}return yg}var wg,Dk;function k4(){if(Dk)return wg;Dk=1;var e=ct(),n=un();wg={run:r,undo:o};function r(l){l.graph().dummyChains=[],e.forEach(l.edges(),function(u){i(l,u)})}function i(l,u){var c=u.v,p=l.node(c).rank,h=u.w,f=l.node(h).rank,g=u.name,y=l.edge(u),x=y.labelRank;if(f!==p+1){l.removeEdge(u);var N,_,S;for(S=0,++p;p<f;++S,++p)y.points=[],_={width:0,height:0,edgeLabel:y,edgeObj:u,rank:p},N=n.addDummyNode(l,"edge",_,"_d"),p===x&&(_.width=y.width,_.height=y.height,_.dummy="edge-label",_.labelpos=y.labelpos),l.setEdge(c,N,{weight:y.weight},g),S===0&&l.graph().dummyChains.push(N),c=N;l.setEdge(c,h,{weight:y.weight},g)}}function o(l){e.forEach(l.graph().dummyChains,function(u){var c=l.node(u),p=c.edgeLabel,h;for(l.setEdge(c.edgeObj,p);c.dummy;)h=l.successors(u)[0],l.removeNode(u),p.points.push({x:c.x,y:c.y}),c.dummy==="edge-label"&&(p.x=c.x,p.y=c.y,p.width=c.width,p.height=c.height),u=h,c=l.node(u)})}return wg}var xg,Fk;function du(){if(Fk)return xg;Fk=1;var e=ct();xg={longestPath:n,slack:r};function n(i){var o={};function l(u){var c=i.node(u);if(e.has(o,u))return c.rank;o[u]=!0;var p=e.min(e.map(i.outEdges(u),function(h){return l(h.w)-i.edge(h).minlen}));return(p===Number.POSITIVE_INFINITY||p===void 0||p===null)&&(p=0),c.rank=p}e.forEach(i.sources(),l)}function r(i,o){return i.node(o.w).rank-i.node(o.v).rank-i.edge(o).minlen}return xg}var _g,zk;function oj(){if(zk)return _g;zk=1;var e=ct(),n=tr().Graph,r=du().slack;_g=i;function i(c){var p=new n({directed:!1}),h=c.nodes()[0],f=c.nodeCount();p.setNode(h,{});for(var g,y;o(p,c)<f;)g=l(p,c),y=p.hasNode(g.v)?r(c,g):-r(c,g),u(p,c,y);return p}function o(c,p){function h(f){e.forEach(p.nodeEdges(f),function(g){var y=g.v,x=f===y?g.w:y;!c.hasNode(x)&&!r(p,g)&&(c.setNode(x,{}),c.setEdge(f,x,{}),h(x))})}return e.forEach(c.nodes(),h),c.nodeCount()}function l(c,p){return e.minBy(p.edges(),function(h){if(c.hasNode(h.v)!==c.hasNode(h.w))return r(p,h)})}function u(c,p,h){e.forEach(c.nodes(),function(f){p.node(f).rank+=h})}return _g}var bg,Bk;function E4(){if(Bk)return bg;Bk=1;var e=ct(),n=oj(),r=du().slack,i=du().longestPath,o=tr().alg.preorder,l=tr().alg.postorder,u=un().simplify;bg=c,c.initLowLimValues=g,c.initCutValues=p,c.calcCutValue=f,c.leaveEdge=x,c.enterEdge=N,c.exchangeEdges=_;function c(E){E=u(E),i(E);var C=n(E);g(C),p(C,E);for(var R,M;R=x(C);)M=N(C,E,R),_(C,E,R,M)}function p(E,C){var R=l(E,E.nodes());R=R.slice(0,R.length-1),e.forEach(R,function(M){h(E,C,M)})}function h(E,C,R){var M=E.node(R),L=M.parent;E.edge(R,L).cutvalue=f(E,C,R)}function f(E,C,R){var M=E.node(R),L=M.parent,U=!0,O=C.edge(R,L),P=0;return O||(U=!1,O=C.edge(L,R)),P=O.weight,e.forEach(C.nodeEdges(R),function(F){var G=F.v===R,q=G?F.w:F.v;if(q!==L){var T=G===U,Q=C.edge(F).weight;if(P+=T?Q:-Q,b(E,R,q)){var z=E.edge(R,q).cutvalue;P+=T?-z:z}}}),P}function g(E,C){arguments.length<2&&(C=E.nodes()[0]),y(E,{},1,C)}function y(E,C,R,M,L){var U=R,O=E.node(M);return C[M]=!0,e.forEach(E.neighbors(M),function(P){e.has(C,P)||(R=y(E,C,R,P,M))}),O.low=U,O.lim=R++,L?O.parent=L:delete O.parent,R}function x(E){return e.find(E.edges(),function(C){return E.edge(C).cutvalue<0})}function N(E,C,R){var M=R.v,L=R.w;C.hasEdge(M,L)||(M=R.w,L=R.v);var U=E.node(M),O=E.node(L),P=U,F=!1;U.lim>O.lim&&(P=O,F=!0);var G=e.filter(C.edges(),function(q){return F===k(E,E.node(q.v),P)&&F!==k(E,E.node(q.w),P)});return e.minBy(G,function(q){return r(C,q)})}function _(E,C,R,M){var L=R.v,U=R.w;E.removeEdge(L,U),E.setEdge(M.v,M.w,{}),g(E),p(E,C),S(E,C)}function S(E,C){var R=e.find(E.nodes(),function(L){return!C.node(L).parent}),M=o(E,R);M=M.slice(1),e.forEach(M,function(L){var U=E.node(L).parent,O=C.edge(L,U),P=!1;O||(O=C.edge(U,L),P=!0),C.node(L).rank=C.node(U).rank+(P?O.minlen:-O.minlen)})}function b(E,C,R){return E.hasEdge(C,R)}function k(E,C,R){return R.low<=C.lim&&C.lim<=R.lim}return bg}var Sg,Uk;function N4(){if(Uk)return Sg;Uk=1;var e=du(),n=e.longestPath,r=oj(),i=E4();Sg=o;function o(p){switch(p.graph().ranker){case"network-simplex":c(p);break;case"tight-tree":u(p);break;case"longest-path":l(p);break;default:c(p)}}var l=n;function u(p){n(p),r(p)}function c(p){i(p)}return Sg}var kg,Hk;function C4(){if(Hk)return kg;Hk=1;var e=ct();kg=n;function n(o){var l=i(o);e.forEach(o.graph().dummyChains,function(u){for(var c=o.node(u),p=c.edgeObj,h=r(o,l,p.v,p.w),f=h.path,g=h.lca,y=0,x=f[y],N=!0;u!==p.w;){if(c=o.node(u),N){for(;(x=f[y])!==g&&o.node(x).maxRank<c.rank;)y++;x===g&&(N=!1)}if(!N){for(;y<f.length-1&&o.node(x=f[y+1]).minRank<=c.rank;)y++;x=f[y]}o.setParent(u,x),u=o.successors(u)[0]}})}function r(o,l,u,c){var p=[],h=[],f=Math.min(l[u].low,l[c].low),g=Math.max(l[u].lim,l[c].lim),y,x;y=u;do y=o.parent(y),p.push(y);while(y&&(l[y].low>f||g>l[y].lim));for(x=y,y=c;(y=o.parent(y))!==x;)h.push(y);return{path:p.concat(h.reverse()),lca:x}}function i(o){var l={},u=0;function c(p){var h=u;e.forEach(o.children(p),c),l[p]={low:h,lim:u++}}return e.forEach(o.children(),c),l}return kg}var Eg,Wk;function j4(){if(Wk)return Eg;Wk=1;var e=ct(),n=un();Eg={run:r,cleanup:u};function r(c){var p=n.addDummyNode(c,"root",{},"_root"),h=o(c),f=e.max(e.values(h))-1,g=2*f+1;c.graph().nestingRoot=p,e.forEach(c.edges(),function(x){c.edge(x).minlen*=g});var y=l(c)+1;e.forEach(c.children(),function(x){i(c,p,g,y,f,h,x)}),c.graph().nodeRankFactor=g}function i(c,p,h,f,g,y,x){var N=c.children(x);if(!N.length){x!==p&&c.setEdge(p,x,{weight:0,minlen:h});return}var _=n.addBorderNode(c,"_bt"),S=n.addBorderNode(c,"_bb"),b=c.node(x);c.setParent(_,x),b.borderTop=_,c.setParent(S,x),b.borderBottom=S,e.forEach(N,function(k){i(c,p,h,f,g,y,k);var E=c.node(k),C=E.borderTop?E.borderTop:k,R=E.borderBottom?E.borderBottom:k,M=E.borderTop?f:2*f,L=C!==R?1:g-y[x]+1;c.setEdge(_,C,{weight:M,minlen:L,nestingEdge:!0}),c.setEdge(R,S,{weight:M,minlen:L,nestingEdge:!0})}),c.parent(x)||c.setEdge(p,_,{weight:0,minlen:g+y[x]})}function o(c){var p={};function h(f,g){var y=c.children(f);y&&y.length&&e.forEach(y,function(x){h(x,g+1)}),p[f]=g}return e.forEach(c.children(),function(f){h(f,1)}),p}function l(c){return e.reduce(c.edges(),function(p,h){return p+c.edge(h).weight},0)}function u(c){var p=c.graph();c.removeNode(p.nestingRoot),delete p.nestingRoot,e.forEach(c.edges(),function(h){var f=c.edge(h);f.nestingEdge&&c.removeEdge(h)})}return Eg}var Ng,Vk;function T4(){if(Vk)return Ng;Vk=1;var e=ct(),n=un();Ng=r;function r(o){function l(u){var c=o.children(u),p=o.node(u);if(c.length&&e.forEach(c,l),e.has(p,"minRank")){p.borderLeft=[],p.borderRight=[];for(var h=p.minRank,f=p.maxRank+1;h<f;++h)i(o,"borderLeft","_bl",u,p,h),i(o,"borderRight","_br",u,p,h)}}e.forEach(o.children(),l)}function i(o,l,u,c,p,h){var f={width:0,height:0,rank:h,borderType:l},g=p[l][h-1],y=n.addDummyNode(o,"border",f,u);p[l][h]=y,o.setParent(y,c),g&&o.setEdge(g,y,{weight:1})}return Ng}var Cg,Gk;function R4(){if(Gk)return Cg;Gk=1;var e=ct();Cg={adjust:n,undo:r};function n(h){var f=h.graph().rankdir.toLowerCase();(f==="lr"||f==="rl")&&i(h)}function r(h){var f=h.graph().rankdir.toLowerCase();(f==="bt"||f==="rl")&&l(h),(f==="lr"||f==="rl")&&(c(h),i(h))}function i(h){e.forEach(h.nodes(),function(f){o(h.node(f))}),e.forEach(h.edges(),function(f){o(h.edge(f))})}function o(h){var f=h.width;h.width=h.height,h.height=f}function l(h){e.forEach(h.nodes(),function(f){u(h.node(f))}),e.forEach(h.edges(),function(f){var g=h.edge(f);e.forEach(g.points,u),e.has(g,"y")&&u(g)})}function u(h){h.y=-h.y}function c(h){e.forEach(h.nodes(),function(f){p(h.node(f))}),e.forEach(h.edges(),function(f){var g=h.edge(f);e.forEach(g.points,p),e.has(g,"x")&&p(g)})}function p(h){var f=h.x;h.x=h.y,h.y=f}return Cg}var jg,Yk;function A4(){if(Yk)return jg;Yk=1;var e=ct();jg=n;function n(r){var i={},o=e.filter(r.nodes(),function(h){return!r.children(h).length}),l=e.max(e.map(o,function(h){return r.node(h).rank})),u=e.map(e.range(l+1),function(){return[]});function c(h){if(!e.has(i,h)){i[h]=!0;var f=r.node(h);u[f.rank].push(h),e.forEach(r.successors(h),c)}}var p=e.sortBy(o,function(h){return r.node(h).rank});return e.forEach(p,c),u}return jg}var Tg,Kk;function I4(){if(Kk)return Tg;Kk=1;var e=ct();Tg=n;function n(i,o){for(var l=0,u=1;u<o.length;++u)l+=r(i,o[u-1],o[u]);return l}function r(i,o,l){for(var u=e.zipObject(l,e.map(l,function(y,x){return x})),c=e.flatten(e.map(o,function(y){return e.sortBy(e.map(i.outEdges(y),function(x){return{pos:u[x.w],weight:i.edge(x).weight}}),"pos")}),!0),p=1;p<l.length;)p<<=1;var h=2*p-1;p-=1;var f=e.map(new Array(h),function(){return 0}),g=0;return e.forEach(c.forEach(function(y){var x=y.pos+p;f[x]+=y.weight;for(var N=0;x>0;)x%2&&(N+=f[x+1]),x=x-1>>1,f[x]+=y.weight;g+=y.weight*N})),g}return Tg}var Rg,Xk;function M4(){if(Xk)return Rg;Xk=1;var e=ct();Rg=n;function n(r,i){return e.map(i,function(o){var l=r.inEdges(o);if(l.length){var u=e.reduce(l,function(c,p){var h=r.edge(p),f=r.node(p.v);return{sum:c.sum+h.weight*f.order,weight:c.weight+h.weight}},{sum:0,weight:0});return{v:o,barycenter:u.sum/u.weight,weight:u.weight}}else return{v:o}})}return Rg}var Ag,Qk;function P4(){if(Qk)return Ag;Qk=1;var e=ct();Ag=n;function n(o,l){var u={};e.forEach(o,function(p,h){var f=u[p.v]={indegree:0,in:[],out:[],vs:[p.v],i:h};e.isUndefined(p.barycenter)||(f.barycenter=p.barycenter,f.weight=p.weight)}),e.forEach(l.edges(),function(p){var h=u[p.v],f=u[p.w];!e.isUndefined(h)&&!e.isUndefined(f)&&(f.indegree++,h.out.push(u[p.w]))});var c=e.filter(u,function(p){return!p.indegree});return r(c)}function r(o){var l=[];function u(h){return function(f){f.merged||(e.isUndefined(f.barycenter)||e.isUndefined(h.barycenter)||f.barycenter>=h.barycenter)&&i(h,f)}}function c(h){return function(f){f.in.push(h),--f.indegree===0&&o.push(f)}}for(;o.length;){var p=o.pop();l.push(p),e.forEach(p.in.reverse(),u(p)),e.forEach(p.out,c(p))}return e.map(e.filter(l,function(h){return!h.merged}),function(h){return e.pick(h,["vs","i","barycenter","weight"])})}function i(o,l){var u=0,c=0;o.weight&&(u+=o.barycenter*o.weight,c+=o.weight),l.weight&&(u+=l.barycenter*l.weight,c+=l.weight),o.vs=l.vs.concat(o.vs),o.barycenter=u/c,o.weight=c,o.i=Math.min(l.i,o.i),l.merged=!0}return Ag}var Ig,Zk;function O4(){if(Zk)return Ig;Zk=1;var e=ct(),n=un();Ig=r;function r(l,u){var c=n.partition(l,function(_){return e.has(_,"barycenter")}),p=c.lhs,h=e.sortBy(c.rhs,function(_){return-_.i}),f=[],g=0,y=0,x=0;p.sort(o(!!u)),x=i(f,h,x),e.forEach(p,function(_){x+=_.vs.length,f.push(_.vs),g+=_.barycenter*_.weight,y+=_.weight,x=i(f,h,x)});var N={vs:e.flatten(f,!0)};return y&&(N.barycenter=g/y,N.weight=y),N}function i(l,u,c){for(var p;u.length&&(p=e.last(u)).i<=c;)u.pop(),l.push(p.vs),c++;return c}function o(l){return function(u,c){return u.barycenter<c.barycenter?-1:u.barycenter>c.barycenter?1:l?c.i-u.i:u.i-c.i}}return Ig}var Mg,Jk;function L4(){if(Jk)return Mg;Jk=1;var e=ct(),n=M4(),r=P4(),i=O4();Mg=o;function o(c,p,h,f){var g=c.children(p),y=c.node(p),x=y?y.borderLeft:void 0,N=y?y.borderRight:void 0,_={};x&&(g=e.filter(g,function(R){return R!==x&&R!==N}));var S=n(c,g);e.forEach(S,function(R){if(c.children(R.v).length){var M=o(c,R.v,h,f);_[R.v]=M,e.has(M,"barycenter")&&u(R,M)}});var b=r(S,h);l(b,_);var k=i(b,f);if(x&&(k.vs=e.flatten([x,k.vs,N],!0),c.predecessors(x).length)){var E=c.node(c.predecessors(x)[0]),C=c.node(c.predecessors(N)[0]);e.has(k,"barycenter")||(k.barycenter=0,k.weight=0),k.barycenter=(k.barycenter*k.weight+E.order+C.order)/(k.weight+2),k.weight+=2}return k}function l(c,p){e.forEach(c,function(h){h.vs=e.flatten(h.vs.map(function(f){return p[f]?p[f].vs:f}),!0)})}function u(c,p){e.isUndefined(c.barycenter)?(c.barycenter=p.barycenter,c.weight=p.weight):(c.barycenter=(c.barycenter*c.weight+p.barycenter*p.weight)/(c.weight+p.weight),c.weight+=p.weight)}return Mg}var Pg,eE;function q4(){if(eE)return Pg;eE=1;var e=ct(),n=tr().Graph;Pg=r;function r(o,l,u){var c=i(o),p=new n({compound:!0}).setGraph({root:c}).setDefaultNodeLabel(function(h){return o.node(h)});return e.forEach(o.nodes(),function(h){var f=o.node(h),g=o.parent(h);(f.rank===l||f.minRank<=l&&l<=f.maxRank)&&(p.setNode(h),p.setParent(h,g||c),e.forEach(o[u](h),function(y){var x=y.v===h?y.w:y.v,N=p.edge(x,h),_=e.isUndefined(N)?0:N.weight;p.setEdge(x,h,{weight:o.edge(y).weight+_})}),e.has(f,"minRank")&&p.setNode(h,{borderLeft:f.borderLeft[l],borderRight:f.borderRight[l]}))}),p}function i(o){for(var l;o.hasNode(l=e.uniqueId("_root")););return l}return Pg}var Og,tE;function $4(){if(tE)return Og;tE=1;var e=ct();Og=n;function n(r,i,o){var l={},u;e.forEach(o,function(c){for(var p=r.parent(c),h,f;p;){if(h=r.parent(p),h?(f=l[h],l[h]=p):(f=u,u=p),f&&f!==p){i.setEdge(f,p);return}p=h}})}return Og}var Lg,nE;function D4(){if(nE)return Lg;nE=1;var e=ct(),n=A4(),r=I4(),i=L4(),o=q4(),l=$4(),u=tr().Graph,c=un();Lg=p;function p(y){var x=c.maxRank(y),N=h(y,e.range(1,x+1),"inEdges"),_=h(y,e.range(x-1,-1,-1),"outEdges"),S=n(y);g(y,S);for(var b=Number.POSITIVE_INFINITY,k,E=0,C=0;C<4;++E,++C){f(E%2?N:_,E%4>=2),S=c.buildLayerMatrix(y);var R=r(y,S);R<b&&(C=0,k=e.cloneDeep(S),b=R)}g(y,k)}function h(y,x,N){return e.map(x,function(_){return o(y,_,N)})}function f(y,x){var N=new u;e.forEach(y,function(_){var S=_.graph().root,b=i(_,S,N,x);e.forEach(b.vs,function(k,E){_.node(k).order=E}),l(_,N,b.vs)})}function g(y,x){e.forEach(x,function(N){e.forEach(N,function(_,S){y.node(_).order=S})})}return Lg}var qg,rE;function F4(){if(rE)return qg;rE=1;var e=ct(),n=tr().Graph,r=un();qg={positionX:N,findType1Conflicts:i,findType2Conflicts:o,addConflict:u,hasConflict:c,verticalAlignment:p,horizontalCompaction:h,alignCoordinates:y,findSmallestWidthAlignment:g,balance:x};function i(b,k){var E={};function C(R,M){var L=0,U=0,O=R.length,P=e.last(M);return e.forEach(M,function(F,G){var q=l(b,F),T=q?b.node(q).order:O;(q||F===P)&&(e.forEach(M.slice(U,G+1),function(Q){e.forEach(b.predecessors(Q),function(z){var ne=b.node(z),Z=ne.order;(Z<L||T<Z)&&!(ne.dummy&&b.node(Q).dummy)&&u(E,z,Q)})}),U=G+1,L=T)}),M}return e.reduce(k,C),E}function o(b,k){var E={};function C(M,L,U,O,P){var F;e.forEach(e.range(L,U),function(G){F=M[G],b.node(F).dummy&&e.forEach(b.predecessors(F),function(q){var T=b.node(q);T.dummy&&(T.order<O||T.order>P)&&u(E,q,F)})})}function R(M,L){var U=-1,O,P=0;return e.forEach(L,function(F,G){if(b.node(F).dummy==="border"){var q=b.predecessors(F);q.length&&(O=b.node(q[0]).order,C(L,P,G,U,O),P=G,U=O)}C(L,P,L.length,O,M.length)}),L}return e.reduce(k,R),E}function l(b,k){if(b.node(k).dummy)return e.find(b.predecessors(k),function(E){return b.node(E).dummy})}function u(b,k,E){if(k>E){var C=k;k=E,E=C}var R=b[k];R||(b[k]=R={}),R[E]=!0}function c(b,k,E){if(k>E){var C=k;k=E,E=C}return e.has(b[k],E)}function p(b,k,E,C){var R={},M={},L={};return e.forEach(k,function(U){e.forEach(U,function(O,P){R[O]=O,M[O]=O,L[O]=P})}),e.forEach(k,function(U){var O=-1;e.forEach(U,function(P){var F=C(P);if(F.length){F=e.sortBy(F,function(z){return L[z]});for(var G=(F.length-1)/2,q=Math.floor(G),T=Math.ceil(G);q<=T;++q){var Q=F[q];M[P]===P&&O<L[Q]&&!c(E,P,Q)&&(M[Q]=P,M[P]=R[P]=R[Q],O=L[Q])}}})}),{root:R,align:M}}function h(b,k,E,C,R){var M={},L=f(b,k,E,R),U=R?"borderLeft":"borderRight";function O(G,q){for(var T=L.nodes(),Q=T.pop(),z={};Q;)z[Q]?G(Q):(z[Q]=!0,T.push(Q),T=T.concat(q(Q))),Q=T.pop()}function P(G){M[G]=L.inEdges(G).reduce(function(q,T){return Math.max(q,M[T.v]+L.edge(T))},0)}function F(G){var q=L.outEdges(G).reduce(function(Q,z){return Math.min(Q,M[z.w]-L.edge(z))},Number.POSITIVE_INFINITY),T=b.node(G);q!==Number.POSITIVE_INFINITY&&T.borderType!==U&&(M[G]=Math.max(M[G],q))}return O(P,L.predecessors.bind(L)),O(F,L.successors.bind(L)),e.forEach(C,function(G){M[G]=M[E[G]]}),M}function f(b,k,E,C){var R=new n,M=b.graph(),L=_(M.nodesep,M.edgesep,C);return e.forEach(k,function(U){var O;e.forEach(U,function(P){var F=E[P];if(R.setNode(F),O){var G=E[O],q=R.edge(G,F);R.setEdge(G,F,Math.max(L(b,P,O),q||0))}O=P})}),R}function g(b,k){return e.minBy(e.values(k),function(E){var C=Number.NEGATIVE_INFINITY,R=Number.POSITIVE_INFINITY;return e.forIn(E,function(M,L){var U=S(b,L)/2;C=Math.max(M+U,C),R=Math.min(M-U,R)}),C-R})}function y(b,k){var E=e.values(k),C=e.min(E),R=e.max(E);e.forEach(["u","d"],function(M){e.forEach(["l","r"],function(L){var U=M+L,O=b[U],P;if(O!==k){var F=e.values(O);P=L==="l"?C-e.min(F):R-e.max(F),P&&(b[U]=e.mapValues(O,function(G){return G+P}))}})})}function x(b,k){return e.mapValues(b.ul,function(E,C){if(k)return b[k.toLowerCase()][C];var R=e.sortBy(e.map(b,C));return(R[1]+R[2])/2})}function N(b){var k=r.buildLayerMatrix(b),E=e.merge(i(b,k),o(b,k)),C={},R;e.forEach(["u","d"],function(L){R=L==="u"?k:e.values(k).reverse(),e.forEach(["l","r"],function(U){U==="r"&&(R=e.map(R,function(G){return e.values(G).reverse()}));var O=(L==="u"?b.predecessors:b.successors).bind(b),P=p(b,R,E,O),F=h(b,R,P.root,P.align,U==="r");U==="r"&&(F=e.mapValues(F,function(G){return-G})),C[L+U]=F})});var M=g(b,C);return y(C,M),x(C,b.graph().align)}function _(b,k,E){return function(C,R,M){var L=C.node(R),U=C.node(M),O=0,P;if(O+=L.width/2,e.has(L,"labelpos"))switch(L.labelpos.toLowerCase()){case"l":P=-L.width/2;break;case"r":P=L.width/2;break}if(P&&(O+=E?P:-P),P=0,O+=(L.dummy?k:b)/2,O+=(U.dummy?k:b)/2,O+=U.width/2,e.has(U,"labelpos"))switch(U.labelpos.toLowerCase()){case"l":P=U.width/2;break;case"r":P=-U.width/2;break}return P&&(O+=E?P:-P),P=0,O}}function S(b,k){return b.node(k).width}return qg}var $g,sE;function z4(){if(sE)return $g;sE=1;var e=ct(),n=un(),r=F4().positionX;$g=i;function i(l){l=n.asNonCompoundGraph(l),o(l),e.forEach(r(l),function(u,c){l.node(c).x=u})}function o(l){var u=n.buildLayerMatrix(l),c=l.graph().ranksep,p=0;e.forEach(u,function(h){var f=e.max(e.map(h,function(g){return l.node(g).height}));e.forEach(h,function(g){l.node(g).y=p+f/2}),p+=f+c})}return $g}var Dg,iE;function B4(){if(iE)return Dg;iE=1;var e=ct(),n=S4(),r=k4(),i=N4(),o=un().normalizeRanks,l=C4(),u=un().removeEmptyRanks,c=j4(),p=T4(),h=R4(),f=D4(),g=z4(),y=un(),x=tr().Graph;Dg=N;function N(B,J){var re=J&&J.debugTiming?y.time:y.notime;re("layout",function(){var le=re(" buildLayoutGraph",function(){return O(B)});re(" runLayout",function(){_(le,re)}),re(" updateInputGraph",function(){S(B,le)})})}function _(B,J){J(" makeSpaceForEdgeLabels",function(){P(B)}),J(" removeSelfEdges",function(){$(B)}),J(" acyclic",function(){n.run(B)}),J(" nestingGraph.run",function(){c.run(B)}),J(" rank",function(){i(y.asNonCompoundGraph(B))}),J(" injectEdgeLabelProxies",function(){F(B)}),J(" removeEmptyRanks",function(){u(B)}),J(" nestingGraph.cleanup",function(){c.cleanup(B)}),J(" normalizeRanks",function(){o(B)}),J(" assignRankMinMax",function(){G(B)}),J(" removeEdgeLabelProxies",function(){q(B)}),J(" normalize.run",function(){r.run(B)}),J(" parentDummyChains",function(){l(B)}),J(" addBorderSegments",function(){p(B)}),J(" order",function(){f(B)}),J(" insertSelfEdges",function(){K(B)}),J(" adjustCoordinateSystem",function(){h.adjust(B)}),J(" position",function(){g(B)}),J(" positionSelfEdges",function(){I(B)}),J(" removeBorderNodes",function(){Z(B)}),J(" normalize.undo",function(){r.undo(B)}),J(" fixupEdgeLabelCoords",function(){z(B)}),J(" undoCoordinateSystem",function(){h.undo(B)}),J(" translateGraph",function(){T(B)}),J(" assignNodeIntersects",function(){Q(B)}),J(" reversePoints",function(){ne(B)}),J(" acyclic.undo",function(){n.undo(B)})}function S(B,J){e.forEach(B.nodes(),function(re){var le=B.node(re),fe=J.node(re);le&&(le.x=fe.x,le.y=fe.y,J.children(re).length&&(le.width=fe.width,le.height=fe.height))}),e.forEach(B.edges(),function(re){var le=B.edge(re),fe=J.edge(re);le.points=fe.points,e.has(fe,"x")&&(le.x=fe.x,le.y=fe.y)}),B.graph().width=J.graph().width,B.graph().height=J.graph().height}var b=["nodesep","edgesep","ranksep","marginx","marginy"],k={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},E=["acyclicer","ranker","rankdir","align"],C=["width","height"],R={width:0,height:0},M=["minlen","weight","width","height","labeloffset"],L={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},U=["labelpos"];function O(B){var J=new x({multigraph:!0,compound:!0}),re=X(B.graph());return J.setGraph(e.merge({},k,H(re,b),e.pick(re,E))),e.forEach(B.nodes(),function(le){var fe=X(B.node(le));J.setNode(le,e.defaults(H(fe,C),R)),J.setParent(le,B.parent(le))}),e.forEach(B.edges(),function(le){var fe=X(B.edge(le));J.setEdge(le,e.merge({},L,H(fe,M),e.pick(fe,U)))}),J}function P(B){var J=B.graph();J.ranksep/=2,e.forEach(B.edges(),function(re){var le=B.edge(re);le.minlen*=2,le.labelpos.toLowerCase()!=="c"&&(J.rankdir==="TB"||J.rankdir==="BT"?le.width+=le.labeloffset:le.height+=le.labeloffset)})}function F(B){e.forEach(B.edges(),function(J){var re=B.edge(J);if(re.width&&re.height){var le=B.node(J.v),fe=B.node(J.w),te={rank:(fe.rank-le.rank)/2+le.rank,e:J};y.addDummyNode(B,"edge-proxy",te,"_ep")}})}function G(B){var J=0;e.forEach(B.nodes(),function(re){var le=B.node(re);le.borderTop&&(le.minRank=B.node(le.borderTop).rank,le.maxRank=B.node(le.borderBottom).rank,J=e.max(J,le.maxRank))}),B.graph().maxRank=J}function q(B){e.forEach(B.nodes(),function(J){var re=B.node(J);re.dummy==="edge-proxy"&&(B.edge(re.e).labelRank=re.rank,B.removeNode(J))})}function T(B){var J=Number.POSITIVE_INFINITY,re=0,le=Number.POSITIVE_INFINITY,fe=0,te=B.graph(),ce=te.marginx||0,Ce=te.marginy||0;function ve(Re){var ye=Re.x,ke=Re.y,Ge=Re.width,we=Re.height;J=Math.min(J,ye-Ge/2),re=Math.max(re,ye+Ge/2),le=Math.min(le,ke-we/2),fe=Math.max(fe,ke+we/2)}e.forEach(B.nodes(),function(Re){ve(B.node(Re))}),e.forEach(B.edges(),function(Re){var ye=B.edge(Re);e.has(ye,"x")&&ve(ye)}),J-=ce,le-=Ce,e.forEach(B.nodes(),function(Re){var ye=B.node(Re);ye.x-=J,ye.y-=le}),e.forEach(B.edges(),function(Re){var ye=B.edge(Re);e.forEach(ye.points,function(ke){ke.x-=J,ke.y-=le}),e.has(ye,"x")&&(ye.x-=J),e.has(ye,"y")&&(ye.y-=le)}),te.width=re-J+ce,te.height=fe-le+Ce}function Q(B){e.forEach(B.edges(),function(J){var re=B.edge(J),le=B.node(J.v),fe=B.node(J.w),te,ce;re.points?(te=re.points[0],ce=re.points[re.points.length-1]):(re.points=[],te=fe,ce=le),re.points.unshift(y.intersectRect(le,te)),re.points.push(y.intersectRect(fe,ce))})}function z(B){e.forEach(B.edges(),function(J){var re=B.edge(J);if(e.has(re,"x"))switch((re.labelpos==="l"||re.labelpos==="r")&&(re.width-=re.labeloffset),re.labelpos){case"l":re.x-=re.width/2+re.labeloffset;break;case"r":re.x+=re.width/2+re.labeloffset;break}})}function ne(B){e.forEach(B.edges(),function(J){var re=B.edge(J);re.reversed&&re.points.reverse()})}function Z(B){e.forEach(B.nodes(),function(J){if(B.children(J).length){var re=B.node(J),le=B.node(re.borderTop),fe=B.node(re.borderBottom),te=B.node(e.last(re.borderLeft)),ce=B.node(e.last(re.borderRight));re.width=Math.abs(ce.x-te.x),re.height=Math.abs(fe.y-le.y),re.x=te.x+re.width/2,re.y=le.y+re.height/2}}),e.forEach(B.nodes(),function(J){B.node(J).dummy==="border"&&B.removeNode(J)})}function $(B){e.forEach(B.edges(),function(J){if(J.v===J.w){var re=B.node(J.v);re.selfEdges||(re.selfEdges=[]),re.selfEdges.push({e:J,label:B.edge(J)}),B.removeEdge(J)}})}function K(B){var J=y.buildLayerMatrix(B);e.forEach(J,function(re){var le=0;e.forEach(re,function(fe,te){var ce=B.node(fe);ce.order=te+le,e.forEach(ce.selfEdges,function(Ce){y.addDummyNode(B,"selfedge",{width:Ce.label.width,height:Ce.label.height,rank:ce.rank,order:te+ ++le,e:Ce.e,label:Ce.label},"_se")}),delete ce.selfEdges})})}function I(B){e.forEach(B.nodes(),function(J){var re=B.node(J);if(re.dummy==="selfedge"){var le=B.node(re.e.v),fe=le.x+le.width/2,te=le.y,ce=re.x-fe,Ce=le.height/2;B.setEdge(re.e,re.label),B.removeNode(J),re.label.points=[{x:fe+2*ce/3,y:te-Ce},{x:fe+5*ce/6,y:te-Ce},{x:fe+ce,y:te},{x:fe+5*ce/6,y:te+Ce},{x:fe+2*ce/3,y:te+Ce}],re.label.x=re.x,re.label.y=re.y}})}function H(B,J){return e.mapValues(e.pick(B,J),Number)}function X(B){var J={};return e.forEach(B,function(re,le){J[le.toLowerCase()]=re}),J}return Dg}var Fg,oE;function U4(){if(oE)return Fg;oE=1;var e=ct(),n=un(),r=tr().Graph;Fg={debugOrdering:i};function i(o){var l=n.buildLayerMatrix(o),u=new r({compound:!0,multigraph:!0}).setGraph({});return e.forEach(o.nodes(),function(c){u.setNode(c,{label:c}),u.setParent(c,"layer"+o.node(c).rank)}),e.forEach(o.edges(),function(c){u.setEdge(c.v,c.w,{},c.name)}),e.forEach(l,function(c,p){var h="layer"+p;u.setNode(h,{rank:"same"}),e.reduce(c,function(f,g){return u.setEdge(f,g,{style:"invis"}),g})}),u}return Fg}var zg,aE;function H4(){return aE||(aE=1,zg="0.8.5"),zg}var Bg,lE;function W4(){return lE||(lE=1,Bg={graphlib:tr(),layout:B4(),debug:U4(),util:{time:un().time,notime:un().notime},version:H4()}),Bg}var V4=W4();const uE=vv(V4),oo=240,fu=130,eo=74,qu=72,cE=eo+qu;function G4(e,n){var i;let r=oo;for(const o of e)r=Math.max(r,((i=n.get(o.id))==null?void 0:i.width)??oo);return r}const aj=420,Y4=2;function ha(e){var r;return((r=e.data)==null?void 0:r.sessionId)??"_default"}function K4(e,n){return((n==null?void 0:n.get(e))??0)>0?aj:0}function X4(e,n){const r=(n==null?void 0:n.get(e))??0;return r>0?6+r*36:0}function pa(e,n,r){const i=n.get(e);return{w:((i==null?void 0:i.width)??oo)+K4(e,r),h:Math.max((i==null?void 0:i.height)??fu,X4(e,r))}}function Q4(e){return[...e.keys()].sort().map(n=>`${n}:${e.get(n)}`).join("|")}function Z4(e,n,r,i,o,l){const u=new uE.graphlib.Graph;u.setDefaultEdgeLabel(()=>({})),u.setGraph({rankdir:r,marginx:0,marginy:0,nodesep:70,ranksep:160,edgesep:30});const c=e.filter(b=>!o.has(b)),p=new Set(c);for(const b of c){const{w:k,h:E}=pa(b,i,l);u.setNode(b,{width:k,height:E})}for(const b of n)p.has(b.source)&&p.has(b.target)&&u.setEdge(b.source,b.target);uE.layout(u);const h=new Map;let f=1/0,g=1/0,y=-1/0,x=-1/0;for(const b of c){const k=u.node(b);if(!k)continue;const E=i.get(b),C=(E==null?void 0:E.width)??oo,R=(E==null?void 0:E.height)??fu,M=pa(b,i,l),L=k.x-M.w/2,U=k.y-M.h/2;h.set(b,{x:L,y:U}),L<f&&(f=L),U<g&&(g=U),L+C>y&&(y=L+C),U+R>x&&(x=U+R)}if(Number.isFinite(f)&&Number.isFinite(g))for(const[b,k]of h)h.set(b,{x:k.x-f,y:k.y-g});const N=Number.isFinite(y)?y-f:0,_=Number.isFinite(x)?x-g:0;let S=null;for(const b of e){const k=o.get(b);if(!k)continue;const E=i.get(b),C=(E==null?void 0:E.width)??oo,R=(E==null?void 0:E.height)??fu;S=S===null?{minX:k.x,minY:k.y,maxX:k.x+C,maxY:k.y+R}:{minX:Math.min(S.minX,k.x),minY:Math.min(S.minY,k.y),maxX:Math.max(S.maxX,k.x+C),maxY:Math.max(S.maxY,k.y+R)}}return{positions:h,width:N,height:_,pinnedBox:S}}function J4(e,n,r={}){const i=r.direction??"LR",o=r.pinned??new Map,l=r.measured??new Map,u=r.lanes,c=new Map;for(const b of e){const k=ha(b),E=c.get(k);E?E.push(b.id):c.set(k,[b.id])}const h=Array.from(c.keys()).sort().map(b=>({sid:b,...Z4(c.get(b),n,i,l,o,u)})),f=G4(e,l),g=r.availableHeight&&r.availableHeight>0?r.availableHeight:Number.POSITIVE_INFINITY,y=b=>{const k=[[]];let E=0;for(const C of h)k.length<b&&E>0&&E+C.height>g&&(k.push([]),E=0),k[k.length-1].push(C),E+=C.height+cE;return k},x=b=>b.reduce((k,E)=>Math.max(k,E.width),0)+aj;let N=y(r.availableWidth?Y4:1);N.length>1&&N.reduce((k,E)=>k+x(E),0)+f*(N.length-1)>(r.availableWidth??0)&&(N=y(1));const _=new Map;let S=0;for(const b of N){const k=x(b);let E=0;for(const{positions:C,height:R,pinnedBox:M}of b){for(const[U,O]of C)_.set(U,{x:O.x+S,y:O.y+E});let L=E+R;M&&M.maxY>L&&M.minX<S+k&&S<M.maxX&&(L=M.maxY),E=L+cE}S+=k+f}return e.map(b=>{const k=o.get(b.id);if(k)return{...b,position:k};const E=_.get(b.id);return E?{...b,position:E}:b})}function eD(e,n,r,i,o){const u=eo+qu,c=60,p=x=>pa(x,i,o),h=new Map(e.map(x=>[x.id,ha(x)])),f=[],g=e.map(x=>({id:x.id,pos:r.get(x.id)??n.get(x.id)})).filter(x=>x.pos!=null).sort((x,N)=>x.pos.y-N.pos.y||x.pos.x-N.pos.x||x.id.localeCompare(N.id)),y=[];for(const{id:x,pos:N}of g){const{w:_,h:S}=p(x),b=h.get(x)??"_default";if(r.has(x)){f.push({x:N.x,y:N.y,w:_,h:S,sid:b});continue}let k=N.y;for(let E=0;E<f.length+1;E++){const C=f.find(R=>{const M=R.sid===b?24:c,L=R.sid===b?24:u;return N.x<R.x+R.w+M&&R.x<N.x+_+M&&k<R.y+R.h+L&&R.y<k+S+L});if(!C)break;k=C.y+C.h+(C.sid===b?24:u)}k!==N.y&&(n.set(x,{x:N.x,y:k}),y.push(x)),f.push({x:N.x,y:k,w:_,h:S,sid:b})}return y}function tD(e,n,r,i,o,l){const u=_=>pa(_,i,l),c=_=>r.get(_)??n.get(_),p=new Map;for(const _ of e){if(!c(_.id))continue;const S=ha(_),b=p.get(S);b?b.push(_):p.set(S,[_])}const h=new Set;for(const[_,S]of p)S.every(b=>o.has(b.id)&&!r.has(b.id))&&h.add(_);const f=new Map,g=[];for(const _ of e){const S=c(_.id);if(!S)continue;const{w:b,h:k}=u(_.id),E=ha(_);h.has(E)?(f.get(E)??f.set(E,[]).get(E)).push(_):g.push({x:S.x,y:S.y,w:b,h:k})}if(f.size===0)return[];const y=eo+qu,x=(_,S,b,k)=>g.some(E=>_<E.x+E.w+eo&&E.x<_+b+eo&&S<E.y+E.h+y&&E.y<S+k+y),N=[];for(const _ of[...f.keys()].sort()){const S=f.get(_);let b=1/0,k=1/0,E=-1/0,C=-1/0;for(const F of S){const G=c(F.id),{w:q,h:T}=u(F.id);b=Math.min(b,G.x),k=Math.min(k,G.y),E=Math.max(E,G.x+q),C=Math.max(C,G.y+T)}const R=E-b,M=C-k,L=[...new Set(g.map(F=>Math.round(F.x)))].sort((F,G)=>F-G),U=L.length?L:[b],O=[0,...g.map(F=>F.y+F.h+y)].sort((F,G)=>F-G);let P=null;e:for(const F of U)for(const G of O){if(G>=k)break;if(!x(F,G,R,M)){P={x:F,y:G};break e}}if(P){const F=P.x-b,G=P.y-k;for(const q of S){const T=c(q.id);n.set(q.id,{x:T.x+F,y:T.y+G})}N.push(_)}for(const F of S){const G=c(F.id),{w:q,h:T}=u(F.id);g.push({x:G.x,y:G.y,w:q,h:T})}}return N}function nD(e,n,r,i,o,l=!1,u){const h=eo+qu+1,f=8,g=1.75,y=200,x=.7,N=.01,_=P=>pa(P,i,u),S=P=>r.get(P)??n.get(P),b=new Map;for(const P of e){if(!S(P.id))continue;const F=ha(P),G=b.get(F);G?G.push(P):b.set(F,[P])}const k=[],E=new Set,C=new Set,R=o.size===0;for(const P of[...b.keys()].sort()){const F=b.get(P);let G=1/0,q=1/0,T=-1/0,Q=-1/0,z=!1;for(const K of F){const I=S(K.id),{w:H,h:X}=_(K.id);G=Math.min(G,I.x),q=Math.min(q,I.y),T=Math.max(T,I.x+H),Q=Math.max(Q,I.y+X),r.has(K.id)&&(z=!0)}const ne=T-G,Z=Q-q;C.add(P);const $=o.get(P);$&&(ne>$.w+f||Z>$.h+f)&&E.add(P),o.set(P,{w:ne,h:Z}),k.push({sid:P,members:F.map(K=>K.id),x:G,y:q,w:ne,h:Z,anchored:z,mass:1})}for(const P of[...o.keys()])C.has(P)||o.delete(P);if(l||R)return[];let M=!1;for(let P=0;P<k.length&&!M;P++)for(let F=P+1;F<k.length;F++){const G=k[P],q=k[F];if(!(G.anchored&&q.anchored)&&Math.abs(G.x+G.w/2-(q.x+q.w/2))<(G.w+q.w)/2+61&&Math.abs(G.y+G.h/2-(q.y+q.h/2))<(G.h+q.h)/2+h){M=!0;break}}if(E.size===0&&!M)return[];if(E.size>0)for(const P of k)E.has(P.sid)&&(P.mass=8);else for(const P of k)P.mass=Math.max(1,P.w*P.h/(oo*fu));const L=new Map(k.map(P=>[P.sid,P.x])),U=new Map(k.map(P=>[P.sid,P.y]));for(let P=0;P<y;P++){const F=new Map,G=new Map;let q=0;for(let T=0;T<k.length;T++)for(let Q=T+1;Q<k.length;Q++){const z=k[T],ne=k[Q];if(z.anchored&&ne.anchored)continue;const Z=z.x+z.w/2,$=z.y+z.h/2,K=ne.x+ne.w/2,I=ne.y+ne.h/2,H=(z.w+ne.w)/2+61-Math.abs(Z-K),X=(z.h+ne.h)/2+h-Math.abs($-I);if(H<=0||X<=0)continue;const B=(Fe,Qe)=>!Fe.anchored&&!(Qe<0&&Fe.x<=0),J=(Fe,Qe)=>!Fe.anchored&&!(Qe<0&&Fe.y<=0),re=(Fe,Qe,ht)=>{const kt=Fe===Qe,rt=kt?z.sid<ne.sid?-1:1:Math.sign(Fe-Qe);return ht(z,rt)||ht(ne,-rt)?rt:kt&&(ht(z,-rt)||ht(ne,rt))?-rt:0},le=re(Z,K,B),fe=re($,I,J),te=le!==0,ce=fe!==0;if(!te&&!ce)continue;const Ce=te&&(!ce||H*g<X),[ve,Re,ye,ke]=Ce?[le,H,F,B]:[fe,X,G,J],Ge=ke(z,ve),we=ke(ne,-ve),_e=z.mass,Be=ne.mass,Ye=Ge?we?Be/(_e+Be):1:0,at=we?Ge?_e/(_e+Be):1:0,nt=Re*x;ye.set(z.sid,(ye.get(z.sid)??0)+ve*nt*Ye),ye.set(ne.sid,(ye.get(ne.sid)??0)-ve*nt*at),q+=nt}for(const T of k)T.anchored||(T.x=Math.max(0,T.x+(F.get(T.sid)??0)),T.y=Math.max(0,T.y+(G.get(T.sid)??0)));if(q<N)break}const O=[];for(const P of k){const F=P.x-L.get(P.sid),G=P.y-U.get(P.sid);if(!(Math.abs(F)<1&&Math.abs(G)<1)){for(const q of P.members){if(r.has(q))continue;const T=n.get(q);T&&n.set(q,{x:T.x+F,y:T.y+G})}O.push(P.sid)}}return O}const rD=600;function hv(e,n){return!(e.exitAt!=null&&n-e.exitAt>rD||e.kind==="root"&&e.state==="done"&&e.tools.length===0&&e.endedAt!=null&&e.endedAt-e.startedAt<3e3)}function sD(e,n){const r=new Set;for(const i of e.agents.values())hv(i,n)&&r.add(i.id);return r}function iD(e,n,r=0){return e.right+r>n.left&&e.left-r<n.right&&e.bottom+r>n.top&&e.top-r<n.bottom}function oD(e,n,r=0){if(!e)return!1;for(const i of n)if(iD(e,i,r))return!0;return!1}const lj="sessionGroup";function aD(e,n){var i;if(e.type===lj)return"transparent";const r=(i=e.data)==null?void 0:i.state;return n(r==="err"?"--err":r==="active"?"--inflight":"--ok")}const lD="Update checks are off (AGENTS_DECK_NO_UPDATE_CHECK=1).";function uD(e){if(e.checkDisabled)return lD;if(e.checking)return"Asking npm for the newest release…";const n=e.latest?`npm has v${e.latest}`:e.latestPending?`npm's latest tag names v${e.latestPending}, which it cannot serve yet`:"npm not reached yet",r=e.checkedAgo?` · checked ${e.checkedAgo}`:"";return`${n}${r} · re-checked periodically · click to check npm now`}function cD(e){const n=`Version v${e.running}`;return e.checkDisabled?`${n}, update checks are off`:e.checking?`${n}, checking npm for a newer release`:`${n}, check npm for a newer release`}function dD(e){if(e==null)return{kind:"unknown",lead:"No data yet. Start a Claude Code or Codex session — it appears here as soon as its first hook fires.",workspace:null,tail:""};const n=e.trim();return n===""?{kind:"machine",lead:"No data yet. Start a Claude Code or Codex session anywhere on this machine — this deck is unscoped and captures every workspace.",workspace:null,tail:""}:{kind:"scoped",lead:"No data yet. This deck only captures sessions running under",workspace:n,tail:" — start one there, or restart it without --workspace/--scope to watch the whole machine."}}function uj(e){const n=Math.max(0,Math.floor(e));return`${n} event${n===1?"":"s"}`}function fD(e){return e.connected?e.paused?{tone:"paused",label:"paused",title:e.held>0?`Connected — ${uj(e.held)} held until you resume (Space)`:"Connected — updates held until you resume (Space)"}:{tone:"live",label:"live",title:"Receiving events"}:{tone:"dead",label:"offline",title:e.paused?"SSE disconnected — and the canvas is paused, so resuming will not bring events back until it reconnects":"SSE disconnected"}}function hD(e){return e.paused?e.held<=0?{label:"Resume",title:"Nothing has arrived since you paused. Resume to follow the canvas again (Space)"}:{label:`Resume · ${e.held} held`,title:`${uj(e.held)} arrived while paused and will be applied in order when you resume (Space)`}:{label:"Pause",title:"Pause live updates — events keep arriving and are applied when you resume (Space)"}}function cj(e,n){return e!==""&&n>0}function pD(e,n,r){return e===""?{active:!1,matched:n,total:r,count:null,empty:!1,message:null,dim:!1}:{active:!0,matched:n,total:r,count:`${n} of ${r}`,empty:n===0,message:n===0?`No agents match “${e}”`:null,dim:cj(e,n)}}function pv(e){const n=Math.max(0,Math.floor(e/1e3));return n<60?"just now":n<3600?`${Math.floor(n/60)}m ago`:n<86400?`${Math.floor(n/3600)}h ago`:`${Math.floor(n/86400)}d ago`}function mD(e,n){return e.getFullYear()===n.getFullYear()&&e.getMonth()===n.getMonth()&&e.getDate()===n.getDate()}function gD(e,n,r){const i=new Date(e),o=pv(n-e);return{label:mD(i,new Date(n))?o:`${o} · ${i.toLocaleDateString(r,{month:"short",day:"numeric"})}`,title:i.toLocaleString(r,{dateStyle:"medium",timeStyle:"medium"})}}function Jo(e){return typeof window>"u"?"":getComputedStyle(document.documentElement).getPropertyValue(e).trim()||""}const vD={agent:yO,sessionGroup:AO},yD=420,Yl=18,wD=9e4,xD=200,_D=5*6e4,bD=6,SD=2*6e4,ry="agent-dag.layout",sy="agent-dag.viewport",dj="agent-dag.summariesDismissed",fj="agent-dag.sessionListOpen",hj="agent-dag.detailOpen",pj="agent-dag.usagePanelOpen",dE="agent-dag.accountsPanelOpen",fE="agent-dag.versionNoticeDismissed",kD=15*6e4,hE={git_checkout:"this deck runs from a git checkout — pull instead:",npx:"npx runs from a cache that cannot be upgraded in place — run:",not_writable:"the install directory is not writable by this user — run:",opted_out:"installs are off (AGENTS_DECK_NO_INSTALL=1) — run:"},pE="agent-dag.autoRestart",mE="agent-dag.bundleReloadedFor";function ED(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(fj)==="1"}catch{return!1}}function ND(e){if(!(typeof window>"u"))try{window.localStorage.setItem(fj,e?"1":"0")}catch{}}function CD(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(hj)==="1"}catch{return!1}}function jD(e){if(!(typeof window>"u"))try{window.localStorage.setItem(hj,e?"1":"0")}catch{}}function TD(){const e=oC(pj);return e===null?!0:e==="1"}function RD(e){if(!(typeof window>"u"))try{window.localStorage.setItem(pj,e?"1":"0")}catch{}}function AD(){if(typeof window>"u")return new Set;try{const e=window.localStorage.getItem(dj);if(!e)return new Set;const n=JSON.parse(e);return new Set(Array.isArray(n)?n.filter(r=>typeof r=="string"):[])}catch{return new Set}}function gE(e){if(!(typeof window>"u"))try{const n=Array.from(e),r=n.length>200?n.slice(-200):n;window.localStorage.setItem(dj,JSON.stringify(r))}catch{}}function ID(){const e={positions:[],pins:[]};if(typeof window>"u")return e;try{const n=window.localStorage.getItem(ry);if(!n)return e;const r=JSON.parse(n);if(!("v"in r)){const o=Object.entries(r).filter(([,l])=>l&&typeof l.x=="number"&&typeof l.y=="number");return{positions:o,pins:o.map(([l])=>l)}}return{positions:Object.entries(r.positions??{}).filter(([,o])=>o&&typeof o.x=="number"&&typeof o.y=="number"),pins:Array.isArray(r.pins)?r.pins:[]}}catch{return e}}function Ug(e,n){if(!(typeof window>"u"))try{const r={};for(const[i,o]of e)r[i]=o;for(const[i,o]of n)r[i]=o;window.localStorage.setItem(ry,JSON.stringify({v:2,positions:r,pins:Array.from(n.keys())}))}catch{}}function MD(){if(typeof window>"u")return null;try{const e=window.localStorage.getItem(sy);if(!e)return null;const n=JSON.parse(e);return typeof(n==null?void 0:n.x)!="number"||typeof(n==null?void 0:n.y)!="number"||typeof(n==null?void 0:n.zoom)!="number"?null:n}catch{return null}}function PD(e){if(!(typeof window>"u"))try{window.localStorage.setItem(sy,JSON.stringify(e))}catch{}}function vE(){if(!(typeof window>"u")){try{window.localStorage.removeItem(ry)}catch{}try{window.localStorage.removeItem(sy)}catch{}}}function OD(e,n){const r=e.agents.get(n);if(!r)return;const i=[];for(const f of e.agents.values())f.sessionId===n&&i.push(f);const o={schemaVersion:1,exportedAt:new Date().toISOString(),sessionId:n,label:r.label,cwd:r.cwd,startedAt:r.startedAt,endedAt:r.endedAt,model:r.model,agents:i.map(f=>({id:f.id,kind:f.kind,label:f.label,parentId:f.parentId,state:f.state,startedAt:f.startedAt,endedAt:f.endedAt,model:f.model,cwd:f.cwd,usage:f.usage,prompts:f.prompts,tools:f.tools.map(g=>({id:g.id,name:g.name,inputPreview:g.inputPreview,startedAt:g.startedAt,endedAt:g.endedAt,ok:g.ok,errorPreview:g.errorPreview,usage:g.usage}))}))},l=JSON.stringify(o,null,2),u=new Blob([l],{type:"application/json"}),c=URL.createObjectURL(u),p=document.createElement("a"),h=(r.label||"session").replace(/[^a-z0-9._-]/gi,"_");p.href=c,p.download=`${Jn}-${h}-${n.slice(0,8)}.json`,document.body.appendChild(p),p.click(),document.body.removeChild(p),setTimeout(()=>URL.revokeObjectURL(c),1e3)}const mv={file:"📁",shell:"⚡",web:"🌐",agent:"🤖",task:"📋",plan:"🧭",mcp:"🔌",other:"✨"},gv={file:"file",shell:"shell",web:"web",agent:"agent",task:"task",plan:"plan",mcp:"mcp",other:"other"},LD={Read:"file",Write:"file",Edit:"file",MultiEdit:"file",Glob:"file",Grep:"file",LS:"file",NotebookEdit:"file",Bash:"shell",PowerShell:"shell",shell:"shell",exec_command:"shell",shell_command:"shell",write_stdin:"shell",wait:"shell",apply_patch:"file",update_plan:"task",WebFetch:"web",WebSearch:"web",Task:"agent",Agent:"agent",TodoWrite:"task",TaskCreate:"task",TaskUpdate:"task",TaskList:"task",TaskGet:"task",TaskOutput:"task",TaskStop:"task",EnterPlanMode:"plan",ExitPlanMode:"plan",AskUserQuestion:"plan",Skill:"plan",Workflow:"plan"};function mj(e){return e.startsWith("mcp__")?"mcp":LD[e]??"other"}function gj(e,n){var i,o,l;if(!n)return!0;const r=n.toLowerCase();if(e.label.toLowerCase().includes(r)||(i=e.cwd)!=null&&i.toLowerCase().includes(r)||(o=e.cwdBasename)!=null&&o.toLowerCase().includes(r)||e.sessionId.toLowerCase().includes(r)||(l=e.firstPrompt)!=null&&l.toLowerCase().includes(r))return!0;for(const u of e.tools)if(u.name.toLowerCase().includes(r))return!0;return!1}function qD(e,n){if(!n)return null;const r=new Set([n]);let i=n;for(;i;){const l=e.agents.get(i);if(!(l!=null&&l.parentId)||r.has(l.parentId))break;r.add(l.parentId),i=l.parentId}let o=!0;for(;o;){o=!1;for(const l of e.agents.values())l.parentId&&r.has(l.parentId)&&!r.has(l.id)&&(r.add(l.id),o=!0)}return r}function $D(e,n,r,i,o,l,u,c,p,h,f,g,y,x,N,_,S,b,k){const E=[],C=[],R=new Set;if(l)for(const q of e.agents.values())b.has(q.id)&&gj(q,l)&&R.add(q.id);const M=cj(l,R.size);for(const q of e.agents.values()){if(!b.has(q.id))continue;const T=M&&!R.has(q.id),Q=q.exitAt!=null,z=S!=null&&!S.has(q.id),ne=[T?"rf-dim":"",Q?"rf-exiting":"",z?"rf-spotlit-out":""].filter(Boolean).join(" ")||void 0,Z=u.get(q.id);if(E.push({id:q.id,type:"agent",position:{x:0,y:0},data:{...q,now:n,onOpenContext:k},className:ne,...Z?{width:Z.width,height:Z.height}:null}),q.parentId&&b.has(q.parentId)){const $=Lv(q.sessionId),K=l&&!R.has(q.id)&&!R.has(q.parentId),I=Q,H=_.size>0&&(_.has(q.id)||_.has(q.parentId)),X=S!=null&&!S.has(q.id)&&!S.has(q.parentId),B=q.state==="active"?2:1.5,J=H?B+1.5:B,re=K||I?.2:X?.12:1,le=["sess-edge",q.state==="active"?"sess-live":"sess-idle",I?"rf-edge-exiting":"",H?"rf-edge-selected":""].filter(Boolean).join(" ");C.push({id:`e:${q.parentId}->${q.id}`,source:q.parentId,target:q.id,animated:(q.state==="active"||H)&&!K&&!I,type:"smoothstep",style:{"--session-hue":$,strokeWidth:J,opacity:re,transition:"opacity 500ms ease, stroke-width 200ms ease"},className:le})}}const L=new Map;for(const q of e.agents.values())q.tools.length>0&&L.set(q.id,Math.min(4,q.tools.length));const U=`${x}#lanes:${Q4(L)}`,O=E.filter(q=>hL(q.id,o,g,y));if(O.length>0||U!==N.current){if(O.length>0){const q=J4(E,C,{direction:"LR",pinned:o,measured:u,availableWidth:r,availableHeight:i,lanes:L});for(const T of q)iC(T.id,g,y)&&mL(T.id,T.position,g,y);tD(E,g,o,u,new Set(O.map(T=>T.id)),L)}eD(E,g,o,u,L),N.current=U}const P=nD(E,g,o,u,c,!h||f,L);P.length>0&&p(P),Hl(g,e.agents),Hl(y,e.agents),Hl(o,e.agents),Hl(u,fL(e.agents.values()));const F=[];let G=!1;for(const q of E){let T=o.get(q.id)??g.get(q.id);T||(T=pL(q.id,g,y),G=!0),F.push({...q,position:T})}return G&&(N.current=""),{nodes:F,edges:C}}function DD(){return m.jsx(Pv,{children:m.jsx(FD,{})})}function FD(){var Er,xi,Kr,Oa;const e=wa(),n=A.useRef(ov()),[,r]=A.useState(0),i=A.useCallback(()=>r(W=>W+1),[]),[o,l]=A.useState(()=>new Set),[u,c]=A.useState(null),[p,h]=A.useState(null),f=A.useCallback((W,V)=>{l(ae=>{if(!V)return new Set([W]);const de=new Set(ae);return de.has(W)?de.delete(W):de.add(W),de}),c(ae=>V&&ae===W?ae:W)},[]),g=A.useCallback(()=>{l(new Set),c(null)},[]),[y,x]=A.useState(null),[N,_]=A.useState(null),S=A.useCallback(W=>_(W),[]),[b,k]=A.useState(!1),E=A.useRef(AD()),[C,R]=A.useState(ED);A.useEffect(()=>{ND(C)},[C]);const[M,L]=A.useState(CD);A.useEffect(()=>{jD(M)},[M]);const[U,O]=A.useState(TD);A.useEffect(()=>{RD(U)},[U]);const[P,F]=A.useState(()=>{try{const W=window.localStorage.getItem(dE);return W===null?!0:W==="1"}catch{return!0}});A.useEffect(()=>{try{window.localStorage.setItem(dE,P?"1":"0")}catch{}},[P]);const[G,q]=A.useState(null),[T,Q]=A.useState(!1),[z,ne]=A.useState(0),[Z,$]=A.useState(0);A.useEffect(()=>{fetch("/api/sound-hook").then(W=>W.ok?W.json():null).then(W=>{W!=null&&W.ok&&(q(W.enabled===!0),ne((W.foreign??[]).filter(V=>V.worksHere).length),$(typeof W.parked=="number"?W.parked:0))}).catch(()=>{})},[]);const K=A.useCallback(async()=>{Q(!0);try{const V=await(await fetch("/api/sound-hook",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:!G})})).json().catch(()=>null);V!=null&&V.ok&&q(V.enabled===!0),fetch("/api/sound-hook").then(ae=>ae.ok?ae.json():null).then(ae=>{ae!=null&&ae.ok&&(ne((ae.foreign??[]).filter(de=>de.worksHere).length),$(typeof ae.parked=="number"?ae.parked:0))}).catch(()=>{})}catch{}finally{Q(!1)}},[G]),[I,H]=A.useState(!1),[X,B]=A.useState(null),[J,re]=A.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem(fE)??""}catch{return""}}),[le,fe]=A.useState(!1),te=A.useRef(0),[ce,Ce]=A.useState(!1),ve=A.useCallback((W=!1)=>{W&&(te.current=Date.now(),Ce(!0)),fetch(W?"/api/version?refresh=1":"/api/version").then(V=>V.ok?V.json():null).then(V=>{V&&B(V)}).catch(()=>{}).finally(()=>{W&&Ce(!1)})},[]),Re=A.useCallback(()=>{ve(Date.now()-te.current>=kD)},[ve]);A.useEffect(()=>{ve();const W=window.setInterval(Re,5*6e4),V=()=>{document.visibilityState==="visible"&&Re()};return document.addEventListener("visibilitychange",V),()=>{window.clearInterval(W),document.removeEventListener("visibilitychange",V)}},[ve,Re]),A.useEffect(()=>{I&&ve()},[I,ve]);const ye=(X==null?void 0:X.notice)??null,[ke,Ge]=A.useState(null);A.useEffect(()=>{let W=!1;return fetch("/api/health").then(V=>V.ok?V.json():null).then(V=>{W||!V||typeof V.workspace!="string"||Ge(V.workspace)}).catch(()=>{}),()=>{W=!0}},[I]);const we=ye?`${ye.kind}:${ye.to}`:"",_e=ye!=null&&J!==we,Be=A.useCallback(()=>{if(!ye)return;const W=J===we?"":we;re(W);try{window.localStorage.setItem(fE,W)}catch{}},[ye,we,J]),Ye=((Er=X==null?void 0:X.upgrade)==null?void 0:Er.state)??"idle",at=nL(X==null?void 0:X.upgrade),nt=A.useCallback(async()=>{try{await fetch("/api/upgrade",{method:"POST"})}catch{}ve()},[ve]);A.useEffect(()=>{if(Ye!=="running")return;const W=window.setInterval(ve,3e3);return()=>window.clearInterval(W)},[Ye,ve]);const Fe=A.useCallback(async()=>{var ae;const W=X==null?void 0:X.command;if(!W)return;let V=!1;try{V=await Promise.race([((ae=navigator.clipboard)==null?void 0:ae.writeText(W).then(()=>!0))??Promise.resolve(!1),new Promise(de=>window.setTimeout(()=>de(!1),500))])}catch{V=!1}if(!V)try{const de=document.createElement("textarea");de.value=W,de.setAttribute("readonly",""),de.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(de),de.select(),V=document.execCommand("copy"),de.remove()}catch{V=!1}V&&(fe(!0),window.setTimeout(()=>fe(!1),1600))},[X==null?void 0:X.command]),Qe=A.useCallback(()=>{R(W=>(W||F(!1),!W))},[]),ht=A.useCallback(()=>{F(W=>(W||R(!1),!W))},[]),[kt,rt]=A.useState(!1),[wt,Yt]=A.useState(0),Lt=A.useRef(null),[Je,Et]=A.useState(!1),st=A.useRef(null),[xt,mn]=A.useState(0),At=A.useRef(wL()),[It,Ln]=A.useState(!1),qn=A.useCallback(()=>{const W=At.current,V=W.setPaused(!W.paused);for(const ae of V)n.current=wx(n.current,ae);Ln(W.paused)},[]),[Ze,gn]=A.useState(Date.now()),[Kt,vn]=A.useState(()=>{if(typeof window>"u")return!0;try{return window.localStorage.getItem(pE)!=="0"}catch{return!0}}),ci=A.useCallback(()=>{vn(W=>{const V=!W;try{window.localStorage.setItem(pE,V?"1":"0")}catch{}return V})},[]),[yn,wr]=A.useState(!1),[di,ys]=A.useState("restart"),[ws,sr]=A.useState(null),wn=A.useRef(!1),ir=A.useRef(null),fi=A.useRef(0),xn=A.useCallback(async W=>{if(wn.current)return;const V=(W==null?void 0:W.upgrade)===!0;wn.current=!0,ir.current=at;const ae=++fi.current;ys(V?"npx":"restart"),wr(!0);try{window.sessionStorage.setItem("agent-dag.restartPending",(ye==null?void 0:ye.to)??"")}catch{}try{await fetch("/api/restart",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({upgrade:V})})}catch{}window.setTimeout(()=>{if(fi.current===ae&&wn.current){wn.current=!1,wr(!1);try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}}},V?18e4:3e4)},[ye==null?void 0:ye.to,at]),xr=A.useRef(null);A.useEffect(()=>{let W=!1;for(const ae of n.current.agents.values())if(ae.state==="active"){W=!0;break}const V=sL({enabled:Kt,kind:ye==null?void 0:ye.kind,canRestart:(X==null?void 0:X.canRestart)===!0,busy:W,idleSince:xr.current,now:Ze});xr.current=V.idleSince,V.restart&&xn()},[Kt,ye==null?void 0:ye.kind,X==null?void 0:X.canRestart,Ze,xn]),A.useEffect(()=>{const W=X==null?void 0:X.running;let V=null,ae=null;try{V=window.sessionStorage.getItem("agent-dag.restartPending"),ae=window.sessionStorage.getItem(mE)}catch{return}const de=tL({bundle:"1.33.137",running:W,pending:V,lastTried:ae});if(de==="reload"){try{window.sessionStorage.setItem(mE,W??"")}catch{return}window.location.reload();return}if(de!=="confirm")return;try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}wn.current=!1,wr(!1),sr(W??null);const xe=window.setTimeout(()=>sr(null),6e3);return()=>window.clearTimeout(xe)},[X==null?void 0:X.running]),A.useEffect(()=>{if(yn&&rL({asked:ir.current,reported:at})){try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}wn.current=!1,wr(!1)}},[yn,at]);const or=A.useRef(ID()).current;A.useRef(!1);const Nt=A.useRef(new Map(or.positions.filter(([W])=>or.pins.includes(W)))),zr=A.useRef(null),Br=A.useState(()=>MD())[0],[Xt,cn]=A.useState(""),[xs,hi]=A.useState(()=>new Set),[_r,_s]=A.useState(kL),[bs,pi]=A.useState(!1),Ur=A.useRef(null);A.useEffect(()=>{document.documentElement.dataset.theme=_r;try{window.localStorage.setItem(aC,_r)}catch{}},[_r]),A.useEffect(()=>{if(!Br)return;const W=window.setTimeout(()=>{try{e.setViewport(Br,{duration:0})}catch{}},60);return()=>window.clearTimeout(W)},[e,Br]);const Ss=A.useRef(!0);A.useEffect(()=>{const W=new EventSource("/events"),V=yL(i,{now:()=>Date.now(),setTimeout:(ae,de)=>window.setTimeout(ae,de),clearTimeout:ae=>window.clearTimeout(ae)});return W.addEventListener("open",()=>{H(!0),pi(!0)}),W.addEventListener("error",()=>H(!1)),W.addEventListener("replay-end",()=>{Ss.current=!1,V.flush()}),W.addEventListener("hook",ae=>{try{const de=JSON.parse(ae.data);if(!At.current.accept(de))return;n.current=wx(n.current,de),de.replay===!0||Ss.current||Date.now()-de.receivedAt>3e4?V.replay():V.live()}catch{}}),()=>{W.close(),V.cancel()}},[i]),A.useEffect(()=>{const W=setInterval(()=>{const V=Date.now();gn(V);let ae=QP(n.current,V,wD);KP(n.current,V,xD,_D)&&(ae=!0),XP(n.current,V,bD,SD)&&(ae=!0),ae&&i()},250);return()=>clearInterval(W)},[i]);const ks=A.useRef(null),Ve=A.useRef(0),po=420,Bt=A.useCallback((W=500)=>{try{const Ne=document.querySelector(".canvas-wrap"),Ie=Array.from(document.querySelectorAll(".react-flow__node")).filter(pt=>pt.offsetWidth>0);if(!Ne||Ie.length===0)return;const De=Ne.getBoundingClientRect(),He=e.getViewport();if(!Number.isFinite(He.zoom)||He.zoom<=0)return;const Xe=pt=>(pt-De.left-He.x)/He.zoom,lt=pt=>(pt-De.top-He.y)/He.zoom,kn=Ie.map(pt=>pt.getBoundingClientRect()),$s=Math.min(...kn.map(pt=>Xe(pt.left))),_o=Math.max(...kn.map(pt=>Xe(pt.right))),Xr=Math.min(...kn.map(pt=>lt(pt.top))),bo=Math.max(...kn.map(pt=>lt(pt.bottom))),La=_o-$s,_i=bo-Xr;if(!(La>0&&_i>0))return;const Un=Math.max(.2,Math.min(1,(De.width-160)/(La+po)*.86,(De.height-160)/_i*.86));e.setViewport({x:80-$s*Un,y:Math.max(80,(De.height-_i*Un)/2)-Xr*Un,zoom:Un},{duration:W}),Ve.current=Date.now(),window.setTimeout(()=>{try{const pt={x:80-$s*Un,y:Math.max(80,(De.height-_i*Un)/2)-Xr*Un,zoom:Un},qa=e.getViewport();(Math.abs(qa.zoom-Un)>.01||Math.abs(qa.x-pt.x)>2)&&e.setViewport(pt,{duration:0})}catch{}},W+60)}catch{}},[e]),Hr=A.useRef(""),ar=A.useRef(null),Es=A.useRef(0),br=A.useCallback(()=>{Es.current=Date.now()},[]),lr="agent-dag.autoFitDisabled",_t=A.useRef((()=>{if(typeof window>"u")return!1;try{return window.localStorage.getItem(lr)==="1"}catch{return!1}})()),[Wr,Jt]=A.useState(_t.current),Ea=A.useCallback(()=>{if(!_t.current){_t.current=!0,Jt(!0);try{window.localStorage.setItem(lr,"1")}catch{}}},[]),$u=A.useCallback(()=>{_t.current=!1,Jt(!1);try{window.localStorage.removeItem(lr)}catch{}Bt(400)},[e,Bt]);A.useEffect(()=>{const W=setInterval(()=>{if(_t.current||Date.now()-Es.current<800)return;const V=n.current,ae=Date.now(),de=[];for(const Xe of V.agents.values())hv(Xe,ae)&&de.push({id:Xe.id});if(de.length===0)return;const xe=e.getViewport(),Ne=window.innerWidth-360,Ie=window.innerHeight-52;let De=!1,He=!1;for(const{id:Xe}of de){const lt=$n.current.get(Xe),kn=Nt.current.get(Xe)??Ut.current.get(Xe);if(!lt||!kn)continue;He=!0;const $s=kn.x*xe.zoom+xe.x,_o=kn.y*xe.zoom+xe.y,Xr=(kn.x+lt.width)*xe.zoom+xe.x,bo=(kn.y+lt.height)*xe.zoom+xe.y;if(Xr>0&&$s<Ne&&bo>0&&_o<Ie){De=!0;break}}He&&!De&&Bt(600)},1500);return()=>clearInterval(W)},[e]);const mo=A.useRef(!1),$n=A.useRef(new Map),Ns=A.useRef(0),Cs=A.useCallback(W=>{const V=$n.current;let ae=!1;for(const de of W.nodeInternals.values()){const xe=de.width,Ne=de.height;if(xe==null||Ne==null)continue;const Ie=V.get(de.id);Ie?(Math.abs(Ie.height-Ne)>4||Math.abs(Ie.width-xe)>4)&&(V.set(de.id,{width:xe,height:Ne}),ae=!0):(V.set(de.id,{width:xe,height:Ne}),ae=!0)}return ae&&(Ns.current+=1),Ns.current},[]),js=Ke(Cs),[Na,Du]=A.useState(0);A.useEffect(()=>{let W=0;const V=()=>{const de=$n.current;let xe=!1;for(const Ne of document.querySelectorAll(".react-flow__node[data-id]")){const Ie=Ne.getAttribute("data-id");if(!Ie)continue;const De=Ne.offsetWidth,He=Ne.offsetHeight;if(!De||!He)continue;const Xe=de.get(Ie);(!Xe||Math.abs(Xe.width-De)>4||Math.abs(Xe.height-He)>4)&&(de.set(Ie,{width:De,height:He}),xe=!0)}xe&&Du(Ne=>Ne+1)};if(mo.current)return;let ae=0;return document.visibilityState==="hidden"?ae=window.setTimeout(V,32):W=requestAnimationFrame(V),()=>{cancelAnimationFrame(W),window.clearTimeout(ae)}});const Ut=A.useRef(new Map(or.positions)),Ca=A.useRef(new Set),Ts=A.useRef(""),_n=A.useMemo(()=>{const W=[];for(const V of n.current.agents.values())hv(V,Ze)&&W.push(V.id+(V.parentId?`>${V.parentId}`:""));return W.sort(),`${W.join("|")}#sv${js}.${Na}`},[n.current,n.current.lastSeq,Ze,js,Na]),Rs=A.useRef(null);A.useEffect(()=>(Rs.current!=null&&window.clearTimeout(Rs.current),Rs.current=window.setTimeout(()=>{Ug(Ut.current,Nt.current)},1500),()=>{Rs.current!=null&&window.clearTimeout(Rs.current)}),[_n]),A.useEffect(()=>{if(Hr.current===_n)return;const W=Hr.current;if(Hr.current=_n,!W||_t.current)return;Date.now()-Ve.current>1200&&Bt(400),ks.current&&window.clearTimeout(ks.current),ks.current=window.setTimeout(()=>{_t.current||Bt(500)},280)},[_n,e,Bt]);const As=A.useMemo(()=>{if(o.size===0)return null;const W=new Set;for(const V of o){const ae=qD(n.current,V);if(ae)for(const de of ae)W.add(de)}return W.size>0?W:null},[n.current,n.current.lastSeq,o]),$e=A.useMemo(()=>sD(n.current,Ze),[n.current,n.current.lastSeq,Ze]),go=A.useRef(null),[Is,mi]=A.useState({w:0,h:0});A.useEffect(()=>{const W=go.current;if(!W||typeof ResizeObserver>"u")return;const V=new ResizeObserver(ae=>{var xe;const de=(xe=ae[0])==null?void 0:xe.contentRect;de&&mi(Ne=>Math.abs(Ne.w-de.width)>40||Math.abs(Ne.h-de.height)>40?{w:de.width,h:de.height}:Ne)});return V.observe(W),mi({w:W.clientWidth,h:W.clientHeight}),()=>V.disconnect()},[]);const ja=A.useRef(new Map),[vo,Ta]=A.useState(!1);A.useEffect(()=>{const W=window.setTimeout(()=>Ta(!0),2500);return()=>window.clearTimeout(W)},[]);const[yo,Vr]=A.useState(!1),qt=A.useRef(null),[bn,Dn]=A.useState(!1),Ms=A.useCallback(()=>{qt.current&&(window.clearTimeout(qt.current),qt.current=null),Vr(!1)},[]),Ps=A.useCallback(W=>{W.length!==0&&queueMicrotask(()=>{Vr(!0),qt.current&&window.clearTimeout(qt.current),qt.current=window.setTimeout(()=>Vr(!1),yD+80)})},[]);A.useEffect(()=>()=>{qt.current&&window.clearTimeout(qt.current)},[]);const Fn=Is.w>0?Is.w*.92:0,Ra=Is.h>0?Is.h:0,{nodes:zn,edges:Os}=A.useMemo(()=>$D(n.current,Ze,Fn,Ra,Nt.current,Xt,$n.current,ja.current,Ps,vo,bn,Ut.current,Ca.current,_n,Ts,o,As,$e,S),[n.current,n.current.lastSeq,Ze,Fn,Ra,vo,bn,Xt,_n,o,As,$e,S,wt]),Aa=A.useMemo(()=>{const W=new Map;for(const ae of zn){const de=ae.data;if(!(de!=null&&de.sessionId)||de.exitAt!=null)continue;const xe=ae.width,Ne=ae.height;if(xe==null||Ne==null)continue;const Ie=ae.position.x,De=ae.position.y,He=Ie+xe,Xe=De+Ne,lt=W.get(de.sessionId);lt?(lt.minX=Math.min(lt.minX,Ie),lt.minY=Math.min(lt.minY,De),lt.maxX=Math.max(lt.maxX,He),lt.maxY=Math.max(lt.maxY,Xe)):W.set(de.sessionId,{minX:Ie,minY:De,maxX:He,maxY:Xe})}const V=[];for(const[ae,de]of W){const xe=de.maxX-de.minX+Yl*2,Ne=de.maxY-de.minY+Yl*2;V.push({id:`group:${ae}`,type:lj,position:{x:de.minX-Yl,y:de.minY-Yl},data:{sessionId:ae,w:xe,h:Ne},width:xe,height:Ne,style:{width:xe,height:Ne},zIndex:-1,draggable:!0,selectable:!1,focusable:!1,deletable:!1,connectable:!1})}return V},[zn,Ze]),Ia=A.useMemo(()=>{const W=[...Aa,...zn],V=st.current;return!V||V.size===0?W:W.map(ae=>{const de=V.get(ae.id);return de?{...ae,position:de}:ae})},[Aa,zn,xt]),ur=A.useMemo(()=>{if(!Xt)return null;const W=new Set;for(const V of n.current.agents.values())$e.has(V.id)&&gj(V,Xt)&&W.add(V.id);return W},[n.current,n.current.lastSeq,Xt,$e]),cr=A.useMemo(()=>pD(Xt,(ur==null?void 0:ur.size)??0,$e.size),[Xt,ur,$e]),gi=A.useMemo(()=>{const W=new Set;for(const V of n.current.agents.values())for(const ae of V.tools)W.add(mj(ae.name));return Object.keys(mv).filter(V=>W.has(V))},[n.current,n.current.lastSeq]);A.useEffect(()=>{if(gi.length<=1){Et(!1);return}let W=0;const V=()=>{const ae=Lt.current;if(ae&&!document.hidden){const de=ae.getBoundingClientRect(),xe=Array.from(document.querySelectorAll(".react-flow__node, .tool-burst")).map(Ie=>Ie.getBoundingClientRect()),Ne=oD(de,xe,8);Et(Ie=>Ie===Ne?Ie:Ne)}W=window.setTimeout(V,300)};return V(),()=>window.clearTimeout(W)},[gi.length]);const Bn=A.useMemo(()=>{const W=new Map;for(const ae of n.current.agents.values())for(const de of ae.tools){if(!de.name.startsWith("mcp__"))continue;const xe=de.name.slice(5),Ne=xe.indexOf("__"),Ie=Ne>0?xe.slice(0,Ne):xe;W.set(Ie,(W.get(Ie)??0)+1)}const V=[];for(const[ae,de]of W){let xe=5381;for(let Ne=0;Ne<ae.length;Ne++)xe=(xe<<5)+xe^ae.charCodeAt(Ne);V.push({server:ae,count:de,hue:Math.abs(xe)%360})}return V.sort((ae,de)=>de.count-ae.count),V},[n.current,n.current.lastSeq]),Ls=A.useCallback(W=>{hi(V=>{const ae=new Set(V);return ae.has(W)?ae.delete(W):ae.add(W),ae})},[]),vt=u?n.current.agents.get(u):null,Gr=p?Array.from(n.current.agents.values()).flatMap(W=>W.tools).find(W=>W.id===p)??null:null,Ma=A.useCallback(async()=>{try{await fetch("/api/clear",{method:"POST"})}catch{}n.current=ov(),Nt.current.clear(),$n.current.clear(),Ut.current.clear(),Ts.current="",vE(),g(),i()},[i,g]),Pa=A.useRef(b);Pa.current=b;const vi=A.useRef(!1);vi.current=Gr!=null||kt||N!=null||y!=null;const Sr=A.useCallback(W=>{const V=dL(W,{confirmOpen:Pa.current,modalOpen:vi.current});V==="confirm"?k(!0):V==="clear"&&(k(!1),Ma())},[Ma]),qs=A.useCallback(()=>{Nt.current.clear(),Ut.current.clear(),Ts.current="",vE(),i(),window.setTimeout(()=>Bt(500),80)},[i,e,Bt]),wo=A.useCallback(()=>Bt(500),[Bt]),Sn=A.useRef(zn);Sn.current=zn;const yi=A.useRef(u);yi.current=u;const Yr=A.useCallback(W=>{const V=Sn.current;if(V.length===0)return;const ae=V.slice().sort((De,He)=>De.position.y-He.position.y||De.position.x-He.position.x),de=yi.current,xe=de?ae.findIndex(De=>De.id===de):-1;let Ne;xe===-1?Ne=W===1?0:ae.length-1:Ne=(xe+W+ae.length)%ae.length;const Ie=ae[Ne];Ie&&(f(Ie.id,!1),window.setTimeout(()=>{try{e.fitView({padding:.35,duration:350,nodes:[Ie]})}catch{}Ve.current=Date.now()},30))},[f,e]),xo=A.useCallback(W=>{f(W,!1),window.setTimeout(()=>{try{const V=Sn.current.find(ae=>ae.id===W);V&&e.fitView({padding:.3,duration:500,nodes:[V]}),Ve.current=Date.now()}catch{}},60)},[f,e]);A.useEffect(()=>{const W=V=>{var xe,Ne;const ae=V.target,de={tagName:ae==null?void 0:ae.tagName,isContentEditable:ae==null?void 0:ae.isContentEditable,role:(xe=ae==null?void 0:ae.getAttribute)==null?void 0:xe.call(ae,"role"),type:ae==null?void 0:ae.type};if(V.key==="Escape"){const Ie=cO({overlayOpen:lv.depth()>0,typing:sC(de)});Ie==="dismiss"?lv.dismissTop():Ie==="blur"?ae==null||ae.blur():g();return}if(!uL(de)&&!iL(V)){if(V.key==="/"){V.preventDefault(),(Ne=Ur.current)==null||Ne.focus();return}V.key===" "&&(V.preventDefault(),qn()),(V.key==="c"||V.key==="C")&&Sr("shortcut"),(V.key==="r"||V.key==="R")&&qs(),(V.key==="f"||V.key==="F")&&wo(),(V.key==="l"||V.key==="L")&&Qe(),(V.key==="h"||V.key==="H")&&rt(Ie=>!Ie),(V.key==="u"||V.key==="U")&&O(Ie=>!Ie),(V.key==="a"||V.key==="A")&&ht(),(V.key==="j"||V.key==="J")&&Yr(1),(V.key==="k"||V.key==="K")&&Yr(-1),(V.key==="t"||V.key==="T")&&_s(Ie=>Ie==="dark"?"light":"dark")}};return window.addEventListener("keydown",W),()=>window.removeEventListener("keydown",W)},[Sr,qs,wo,g,Yr,qn]);const dr=n.current.agents.size,wi=new Set(Array.from(n.current.agents.values()).map(W=>W.sessionId)).size,kr=A.useMemo(()=>{const W=[];for(const V of n.current.agents.values())V.kind==="root"&&V.waiting&&W.push({id:V.id,label:V.label,waiting:V.waiting});return W.sort((V,ae)=>V.waiting.since-ae.waiting.since)},[n.current,n.current.lastSeq]),et=A.useMemo(()=>{let W=0,V=0,ae=0,de=0,xe=0,Ne=0,Ie=0,De=0,He=0;for(const Xe of n.current.agents.values()){W+=Xe.usage.inputTokens,V+=Xe.usage.outputTokens,ae+=Xe.usage.cacheReadTokens,de+=Xe.usage.cacheCreateTokens;const lt=ln(Xe.usage,Xe.model);xe+=lt.total,Ne+=lt.input,Ie+=lt.output,De+=lt.cacheRead,He+=lt.cacheWrite}return{inT:W,outT:V,cacheR:ae,cacheC:de,sum:W+V,cost:{total:xe,input:Ne,output:Ie,cacheRead:De,cacheWrite:He}}},[n.current,n.current.lastSeq]);return m.jsxs("div",{className:"app",children:[m.jsxs("header",{className:"topbar",children:[m.jsxs("div",{className:"brand",children:[m.jsx("span",{className:"logo"}),Jn,ye?m.jsxs("button",{type:"button",className:"v stale",onClick:Be,title:ye.kind==="restart"?`Running v${ye.from}; v${ye.to} is installed on disk. Restart to pick it up.`:`Running v${ye.from}; v${ye.to} is on npm.`,children:["v",ye.from,m.jsx("span",{className:"v-dot","aria-hidden":!0})]}):(()=>{const W={running:(X==null?void 0:X.running)??"1.33.137",latest:X==null?void 0:X.latest,latestPending:X==null?void 0:X.latestPending,checkedAgo:X!=null&&X.checkedAt?pv(Ze-X.checkedAt):null,checkDisabled:X==null?void 0:X.checkDisabled,checking:ce};return m.jsxs("button",{type:"button",className:ce?"v checking":"v",onClick:()=>ve(!0),"aria-busy":ce||void 0,"aria-label":cD(W),title:uD(W),children:["v",W.running]})})()]}),vt&&(()=>{const W=ln(vt.usage,vt.model),V=Math.max(0,((vt.endedAt??Ze)-vt.startedAt)/1e3),ae=vt.state==="active"?cu(W.total,V):null,de=o.size-1;return m.jsxs("button",{type:"button",className:"selected-ribbon",title:`Fit view to ${vt.label}`,onClick:()=>{try{const xe=zn.find(Ne=>Ne.id===vt.id);xe&&e.fitView({padding:.35,duration:500,nodes:[xe]}),Ve.current=Date.now()}catch{}},children:[m.jsx("span",{className:`state-pill state-${vt.state}`,children:vt.state==="active"?"live":vt.state}),m.jsx("span",{className:"selected-label",children:vt.label}),W.total>0&&m.jsxs("span",{className:"selected-cost",children:[ze(W.total),ae?m.jsxs("span",{className:"selected-rate",children:[" · ",ae]}):null]}),de>0&&m.jsxs("span",{className:"selected-extra",children:["+",de]}),m.jsx("span",{role:"button","aria-label":"Deselect",className:"selected-close",onClick:xe=>{xe.stopPropagation(),g()},children:"×"})]})})(),m.jsxs("div",{className:"actions",children:[m.jsxs("div",{className:"search",children:[m.jsx("span",{className:"search-icon","aria-hidden":!0,children:"⌕"}),m.jsx("input",{ref:Ur,type:"text",placeholder:"Search agents, cwd, tools…",value:Xt,onChange:W=>cn(W.target.value),spellCheck:!1,"aria-label":"Filter the graph"}),Xt?m.jsx("button",{className:"search-clear","aria-label":"Clear search",onClick:()=>cn(""),children:"×"}):m.jsx("kbd",{className:"search-kbd","aria-hidden":!0,children:"/"}),cr.count&&m.jsx("span",{className:`search-count${cr.empty?" none":""}`,"aria-live":"polite",title:`${cr.count} agents on the canvas match “${Xt}”`,children:cr.count})]}),m.jsxs("span",{className:"status",role:"status",children:[(()=>{const W=fD({connected:I,paused:It,held:At.current.size});return m.jsx("span",{className:`pill ${W.tone}`,title:W.title,children:W.label})})(),m.jsxs("span",{className:"stat",title:"Distinct CC sessions",children:[m.jsx("span",{className:"count",children:wi}),m.jsx("span",{className:"lbl",children:"sessions"})]}),m.jsxs("span",{className:"stat",title:"Total agents (root + subagents)",children:[m.jsx("span",{className:"count",children:dr}),m.jsx("span",{className:"lbl",children:"agents"})]}),m.jsxs("span",{className:"stat",title:"Total hook events received",children:[m.jsx("span",{className:"count",children:n.current.totalEvents}),m.jsx("span",{className:"lbl",children:"events"})]}),et.sum>0&&m.jsxs("span",{className:"stat",title:`in:${et.inT.toLocaleString()} out:${et.outT.toLocaleString()} cache-r:${et.cacheR.toLocaleString()} cache-c:${et.cacheC.toLocaleString()}`,children:[m.jsx("span",{className:"count",children:Ft(et.sum)}),m.jsx("span",{className:"lbl",children:"tokens"})]}),Bn.length>0&&m.jsxs("span",{className:"stat mcp-legend",title:`MCP servers seen this session:
61
+ Blocked since ${new Date(p.waiting.since).toLocaleTimeString()} · started ${new Date(p.startedAt).toLocaleString()}`,children:["waiting ",Ax(p.waiting.since,void 0,n)]}):m.jsx("span",{className:"sl-elapsed",title:`Started ${new Date(p.startedAt).toLocaleString()}`,children:Ax(p.startedAt,p.state==="active"?void 0:p.lastActivity,n)})]})]})]},p.sessionId)})]})]})}const Jn="ccdeck";function Ft(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:e<1e9?`${(e/1e6).toFixed(2)}M`:`${(e/1e9).toFixed(2)}B`}function Ix(e,n){if(!e)return null;const r=n-Math.floor(e/1e3);return r<10?"just now":r<60?`${r}s ago`:r<3600?`${Math.floor(r/60)}m ago`:`${Math.floor(r/3600)}h ago`}function h3(e){return e==="claude-swap"?"Read from claude-swap's last collection — costs no request against your usage-endpoint budget":e==="api"?"Fetched from Anthropic's usage endpoint, at most once every 5 minutes":e==="cli"?"Parsed from `claude /usage`, at most once every 5 minutes":"Last update"}function p3({cost:e}){const n=e.total;if(n<=0)return null;const r=(i,o,l)=>{if(i<=0)return null;const u=i/n*100;return m.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${ze(i)} (${u.toFixed(0)}%)`},o)};return m.jsxs("div",{className:"cost-bar","aria-label":"Cost breakdown",children:[r(e.input,"cb-input","input"),r(e.output,"cb-output","output"),r(e.cacheRead,"cb-cache-r","cache read"),r(e.cacheWrite,"cb-cache-w","cache write")]})}function m3(e,n){const r=e-n;if(r<=0)return null;const i=Math.floor(r/3600),o=Math.floor(r%3600/60);if(i>23){const l=Math.floor(r/86400),u=Math.floor(r%86400/3600);return`${l}d ${u}h`}return i>0?`${i}h ${o}m`:`${o}m`}function g3(e,n,r,i){const o=Math.max(0,n-i),l=Math.max(0,r-o);if(l<120)return null;const u=Math.min(100,l/r*100),c=e-u;if(Math.abs(c)<3)return{label:"on pace",color:"var(--ok)",expectedPct:u,isDeficit:!1};if(c>0){const p=100-e,h=l>0?e/l:0,f=h>0?p/h:1/0,g={label:`${Math.round(c)}% ahead`,color:"var(--warn)",expectedPct:u,isDeficit:!0};if(f<o&&f<86400){const y=Math.floor(f/3600),x=Math.floor(f%3600/60);g.runsOutIn=y>0?`${y}h ${x}m`:`${x}m`}return g}return{label:`${Math.round(-c)}% reserve`,color:"var(--ok)",expectedPct:u,isDeficit:!1}}function Qs({pct:e,label:n,reset:r,resetAt:i,windowSec:o,limitReached:l,nowSec:u}){const c=Math.min(100,Math.max(0,e)),h=l||c>=90?"var(--err)":c>=70?"var(--warn)":"var(--accent)",f=c===0?"< 1%":`${c}%`,g=c===0?2:c,y=i?m3(i,u):null,x=i&&o?g3(c,i,o,u):null;return m.jsxs("div",{className:"qb-row",children:[m.jsxs("div",{className:"qb-meta",children:[m.jsxs("span",{className:"qb-label",children:[n,l&&m.jsx("span",{className:"qb-limit-badge",title:"Rate limit reached",children:"⛔"})]}),m.jsx("span",{className:"qb-pct",style:{color:h},children:f})]}),m.jsxs("div",{className:"qb-track",children:[m.jsx("div",{className:"qb-fill",style:{width:`${g}%`,background:h,opacity:c===0?.4:1}}),x&&m.jsx("div",{className:"qb-pace-marker",style:{left:`${x.expectedPct}%`,background:x.isDeficit?"var(--err)":"var(--ok)"},title:`To last until reset, stay near ${Math.round(x.expectedPct)}% by now`})]}),m.jsxs("div",{className:"qb-reset-row",children:[y?m.jsxs("span",{className:"qb-reset",children:["resets in ",y]}):r?m.jsxs("span",{className:"qb-reset",children:["resets ",r]}):null,x&&m.jsx("span",{className:"qb-pace",style:{color:x.color},children:x.runsOutIn?`runs out in ${x.runsOutIn}`:x.label})]})]})}const v3=6e4;function y3(){const[e,n]=A.useState(null),[r,i]=A.useState(!1),o=A.useRef(null),l=async(c=!1)=>{c&&i(!0);try{const h=await fetch(c?"/api/quota?refresh=1":"/api/quota");h.ok&&n(await h.json())}catch{}finally{c&&i(!1)}};return A.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),v3),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{quota:e,loading:r,refresh:()=>l(!0)}}function w3(e){switch(e){case"no_token":return"Run codex login to authenticate.";case"api_key_mode":return"API-key login — ChatGPT quota is only available for codex login.";case"refresh_rejected":return"Codex session expired — run codex login.";case"refresh_failed":return"Couldn't refresh the Codex token — click ↻ to retry.";default:return"ChatGPT API unreachable — click ↻ to retry."}}const eC=6e4;function x3(){const[e,n]=A.useState(null),[r,i]=A.useState(!1),o=A.useRef(null),l=async(c=!1)=>{c&&i(!0);try{const h=await fetch(c?"/api/codex-quota?refresh=1":"/api/codex-quota");h.ok&&n(await h.json())}catch{}finally{c&&i(!1)}};return A.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),eC),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{data:e,loading:r,refresh:()=>l(!0)}}function _3(){const[e,n]=A.useState(null),r=A.useRef(null),i=async()=>{try{const o=await fetch("/api/codex-usage");o.ok&&n(await o.json())}catch{}};return A.useEffect(()=>(i(),r.current=window.setInterval(i,eC),()=>{r.current!=null&&window.clearInterval(r.current)}),[]),{data:e}}function b3({state:e,now:n,onClose:r}){var L,U;const{quota:i,loading:o,refresh:l}=y3(),{data:u,loading:c,refresh:p}=x3(),{data:h}=_3(),[f,g]=A.useState(()=>Math.floor(Date.now()/1e3));A.useEffect(()=>{const O=window.setInterval(()=>g(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(O)},[]);const{byModel:y,totalCost:x,totalTokens:N,burnRate:_}=A.useMemo(()=>{const O=new Map,P={total:0,input:0,output:0,cacheRead:0,cacheWrite:0};let F=0,G=0,q=0,T=0;for(const $ of e.agents.values()){const K=$.model??"__unknown__",I=ln($.usage,$.model),H=O.get(K);H?(H.inputTokens+=$.usage.inputTokens,H.outputTokens+=$.usage.outputTokens,H.cacheReadTokens+=$.usage.cacheReadTokens,H.cacheCreateTokens+=$.usage.cacheCreateTokens,H.cost.total+=I.total,H.cost.input+=I.input,H.cost.output+=I.output,H.cost.cacheRead+=I.cacheRead,H.cost.cacheWrite+=I.cacheWrite,H.agentCount++):O.set(K,{model:K,inputTokens:$.usage.inputTokens,outputTokens:$.usage.outputTokens,cacheReadTokens:$.usage.cacheReadTokens,cacheCreateTokens:$.usage.cacheCreateTokens,cost:{...I},agentCount:1}),P.total+=I.total,P.input+=I.input,P.output+=I.output,P.cacheRead+=I.cacheRead,P.cacheWrite+=I.cacheWrite,F+=$.usage.inputTokens,G+=$.usage.outputTokens,q+=$.usage.cacheReadTokens,T+=$.usage.cacheCreateTokens}const Q=Array.from(O.values()).sort(($,K)=>K.cost.total-$.cost.total);let z=0,ne=0;for(const $ of e.agents.values()){if($.state!=="active")continue;const K=ln($.usage,$.model);z+=K.total,ne=Math.max(ne,(($.endedAt??n)-$.startedAt)/1e3)}const Z=ne>0?cu(z,ne):null;return{byModel:Q,totalCost:P,totalTokens:{in:F,out:G,cacheR:q,cacheC:T},burnRate:Z}},[e,e.lastSeq,n]),S=A.useMemo(()=>{const O=[];for(const P of e.agents.values()){if(P.kind!=="root")continue;let F=ln(P.usage,P.model).total,G=P.usage.inputTokens,q=P.usage.outputTokens;for(const T of e.agents.values())T.sessionId!==P.sessionId||T.kind==="root"||(F+=ln(T.usage,T.model).total,G+=T.usage.inputTokens,q+=T.usage.outputTokens);O.push({sessionId:P.sessionId,label:P.label||P.cwdBasename||"session",state:P.state,cost:F,inputTokens:G,outputTokens:q})}return O.sort((P,F)=>F.cost-P.cost).slice(0,12)},[e,e.lastSeq]),b=x.total>0,k=N.in+N.out,E=o||c,C=Ix(i==null?void 0:i.fetchedAt,f),R=Ix(u==null?void 0:u.fetchedAt,f),M=()=>{l(),p()};return m.jsxs("div",{className:"usage-panel","aria-label":"Usage",children:[m.jsxs("div",{className:"up-header",children:[m.jsx("h3",{children:"Usage"}),_&&m.jsx("span",{className:"up-rate",children:_}),m.jsxs("div",{className:"up-header-right",children:[m.jsx("button",{type:"button",className:"btn up-refresh-btn",onClick:M,disabled:E,title:"Refresh Claude + Codex quota",children:E?"…":"↻"}),m.jsx("button",{type:"button",className:"btn icon-btn up-close",onClick:r,"aria-label":"Close usage panel",title:"Close (U)",children:"×"})]})]}),m.jsxs("section",{className:"up-section up-quota-section",children:[m.jsxs("h4",{className:"up-section-title",children:["Claude quota",C&&!o&&m.jsx("span",{className:"up-section-age",title:h3(i==null?void 0:i.source),children:C})]}),i!=null&&i.ok?m.jsxs("div",{className:"up-quota-bars",children:[i.session5hPct!=null&&m.jsx(Qs,{label:"5-hour window",pct:i.session5hPct,reset:i.session5hReset,resetAt:i.session5hResetAt,windowSec:i.session5hWindowSec,nowSec:f}),i.week7dPct!=null&&m.jsx(Qs,{label:"7-day window",pct:i.week7dPct,reset:i.week7dReset,resetAt:i.week7dResetAt,windowSec:i.week7dWindowSec,nowSec:f}),i.weekSonnetPct!=null&&m.jsx(Qs,{label:"Sonnet (7d)",pct:i.weekSonnetPct,nowSec:f}),i.weekOpusPct!=null&&m.jsx(Qs,{label:"Opus (7d)",pct:i.weekOpusPct,nowSec:f})]}):(i==null?void 0:i.ok)===!1?m.jsxs("div",{className:"up-quota-na",children:[m.jsx("span",{children:"Quota unavailable."}),m.jsxs("span",{className:"up-quota-hint",children:["Run ",m.jsx("code",{children:"/usage"})," in a claude session, then click ↻"]})]}):m.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),m.jsxs("section",{className:"up-section up-quota-section",children:[m.jsxs("h4",{className:"up-section-title",children:["Codex quota",(u==null?void 0:u.ok)&&u.planLabel&&m.jsx("span",{className:"up-plan-badge",children:u.planLabel}),R&&!c&&m.jsx("span",{className:"up-section-age",title:"Fetched from the Codex usage endpoint",children:R})]}),u!=null&&u.ok?m.jsxs("div",{className:"up-quota-bars",children:[(L=u.windows)==null?void 0:L.map(O=>m.jsx(Qs,{label:O.label,pct:O.pct,reset:O.reset??void 0,resetAt:O.resetAt??void 0,windowSec:O.windowSec??void 0,limitReached:u.limitReached&&O.pct>=100,nowSec:f},O.id)),(U=u.extraWindows)==null?void 0:U.map(O=>m.jsx(Qs,{label:O.label,pct:O.pct,reset:O.reset??void 0,resetAt:O.resetAt??void 0,windowSec:O.windowSec??void 0,nowSec:f},O.id)),u.creditLimit&&m.jsx(Qs,{label:`spend cap · $${Math.round(u.creditLimit.used)} of $${Math.round(u.creditLimit.limit)}`,pct:u.creditLimit.usedPct,reset:u.creditLimit.reset??void 0,resetAt:u.creditLimit.resetAt??void 0,limitReached:u.spendControlReached,nowSec:f}),(h==null?void 0:h.ok)&&h.window7d&&h.window7d.sessionCount>0&&m.jsxs("div",{className:"up-quota-sub",children:[Ft(h.window7d.totalTokens)," tokens · ",h.window7d.sessionCount," session",h.window7d.sessionCount!==1?"s":""," (7d)"]}),u.creditsBalance&&!u.creditsUnlimited&&m.jsxs("div",{className:"up-quota-sub up-credits",children:["credits: $",u.creditsBalance,u.overageReached&&" · overage limit reached"]}),u.creditsUnlimited&&m.jsx("div",{className:"up-quota-sub up-credits",children:"credits: unlimited"}),u.resetCredits&&u.resetCredits.availableCount>0&&m.jsxs("div",{className:"up-quota-sub up-reset-credits",title:`Redeem in the Codex CLI or ChatGPT — ${Jn} only reports them`,children:[u.resetCredits.availableCount," rate-limit reset",u.resetCredits.availableCount!==1?"s":""," available",u.resetCredits.nextExpiryAt&&` · expires ${new Date(u.resetCredits.nextExpiryAt).toLocaleDateString("en-US",{month:"short",day:"numeric"})}`]}),u.promo&&m.jsx("div",{className:"up-quota-sub",children:u.promo}),u.partial&&m.jsx("div",{className:"up-quota-sub up-quota-hint",children:"Partial data — OpenAI returned limits this build doesn't recognise."})]}):(u==null?void 0:u.ok)===!1?m.jsxs("div",{className:"up-quota-na",children:[m.jsx("span",{children:"Quota unavailable."}),m.jsx("span",{className:"up-quota-hint",children:w3(u.reason)})]}):m.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),b?m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"up-total",children:[m.jsx("span",{className:"up-total-value",children:ze(x.total)}),m.jsx("span",{className:"up-total-label",children:"total spend"})]}),m.jsx(p3,{cost:x}),k>0&&m.jsxs("div",{className:"up-tokens-row",children:[m.jsxs("span",{className:"up-tok",children:[m.jsx("span",{className:"up-k",children:"in"}),Ft(N.in)]}),m.jsxs("span",{className:"up-tok",children:[m.jsx("span",{className:"up-k",children:"out"}),Ft(N.out)]}),N.cacheR>0&&m.jsxs("span",{className:"up-tok",children:[m.jsx("span",{className:"up-k",children:"cache r"}),Ft(N.cacheR)]}),N.cacheC>0&&m.jsxs("span",{className:"up-tok",children:[m.jsx("span",{className:"up-k",children:"cache c"}),Ft(N.cacheC)]})]}),y.filter(O=>O.cost.total>0).length>0&&m.jsxs("section",{className:"up-section",children:[m.jsx("h4",{className:"up-section-title",children:"By model"}),m.jsxs("table",{className:"up-table",children:[m.jsx("thead",{children:m.jsxs("tr",{children:[m.jsx("th",{children:"Model"}),m.jsx("th",{children:"Tokens"}),m.jsx("th",{children:"Cost"})]})}),m.jsx("tbody",{children:y.filter(O=>O.cost.total>0).map(O=>m.jsxs("tr",{children:[m.jsx("td",{className:"up-model-name",title:O.model,children:ii(O.model)}),m.jsx("td",{className:"up-num",children:Ft(O.inputTokens+O.outputTokens)}),m.jsx("td",{className:"up-num up-cost-val",children:ze(O.cost.total)})]},O.model))})]})]}),S.filter(O=>O.cost>0).length>0&&m.jsxs("section",{className:"up-section",children:[m.jsx("h4",{className:"up-section-title",children:"By session"}),m.jsx("div",{className:"up-sessions",children:S.filter(O=>O.cost>0).map(O=>m.jsxs("div",{className:"up-session-row",children:[m.jsx("span",{className:`sl-dot state-${O.state}`,"aria-hidden":!0}),m.jsx("span",{className:"up-session-label",children:O.label}),m.jsx("span",{className:"up-session-tokens",children:Ft(O.inputTokens+O.outputTokens)}),m.jsx("span",{className:"up-session-cost",children:ze(O.cost)})]},O.sessionId))})]})]}):k>0?m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"up-tokens-row",children:[m.jsxs("span",{className:"up-tok",children:[m.jsx("span",{className:"up-k",children:"in"}),Ft(N.in)]}),m.jsxs("span",{className:"up-tok",children:[m.jsx("span",{className:"up-k",children:"out"}),Ft(N.out)]})]}),m.jsx("div",{className:"up-hint",children:"Cost appears once a known model is detected."})]}):m.jsxs("div",{className:"up-empty",children:["No usage data yet.",m.jsx("br",{}),"Start a Claude Code or Codex session."]})]})}const Mx=18,S3=1100,Gi=(e,n)=>{const r=Math.sin(e*12.9898+n*78.233)*43758.5453;return r-Math.floor(r)},k3=Array.from({length:Mx},(e,n)=>{const r=-72+144*n/(Mx-1)+(Gi(n,1)-.5)*9,i=(r-90)*(Math.PI/180),o=(54+32*Math.cos(r*Math.PI/180))*(.74+Gi(n,2)*.52);return{dx:Math.cos(i)*o,dy:Math.sin(i)*o,rot:(n%2?1:-1)*(100+Gi(n,3)*260),delay:Math.round(Gi(n,4)*90),dur:760+Math.round(Gi(n,5)*260),scale:.8+Gi(n,6)*.45,hue:n%4,round:n%3===0}});function Px({anchor:e,lifetimeMs:n=S3}){var l;const[r,i]=A.useState(null),o=typeof window<"u"&&((l=window.matchMedia)==null?void 0:l.call(window,"(prefers-reduced-motion: reduce)").matches);return A.useEffect(()=>{if(o)return;const u=e.current;if(!u)return;const c=u.getBoundingClientRect();i({x:c.left+c.width/2,y:c.top+c.height/2});const p=window.setTimeout(()=>i(null),n);return()=>window.clearTimeout(p)},[e,n,o]),o||!r?null:CI.createPortal(m.jsx("div",{className:"confetti",style:{left:`${r.x}px`,top:`${r.y}px`},"aria-hidden":!0,children:k3.map((u,c)=>m.jsx("span",{className:`confetti-bit${u.round?" round":""}`,"data-hue":u.hue,style:{"--dx":`${u.dx.toFixed(1)}px`,"--dy":`${u.dy.toFixed(1)}px`,"--rot":`${u.rot}deg`,"--s":u.scale.toFixed(2),animationDelay:`${u.delay}ms`,animationDuration:`${u.dur}ms, ${u.dur}ms`}},c))}),document.body)}const tC=new Set(["awaiting_url","awaiting_code","registering"]);function E3(e){return e!=null&&tC.has(e)}function nC(e){return e!=null&&e!=="done"&&!tC.has(e)}const N3="the sign-in ended before it finished — the deck restarted, or it was cancelled in another tab",C3="the sign-in did not complete";function j3({state:e,serverError:n,localError:r}){const i=e==="idle";return{title:i?"Sign-in ended":"Sign-in failed",message:r||n||(i?N3:C3)}}const T3="done";function R3(){let e=!1;return{shouldAnnounce(n){return n!==T3?(e=!1,!1):e?!1:(e=!0,!0)}}}const Ox={already_running:"a sign-in is already in progress",no_url:"the claude CLI did not offer a sign-in link — is it installed?",not_waiting:"that sign-in is no longer waiting for a code",not_prompted:"the CLI has not asked for a code yet",code_rejected:"that code was not accepted — copy it again from the browser",no_verdict:"the claude CLI has not answered — try the code again",empty_code:"paste the code from the browser first",login_failed:"the code was not accepted",no_identity:"signed in, but the CLI still reports nobody logged in",add_failed:"signed in, but claude-swap could not record the account",not_a_share:"that does not look like a shared account — it should start with ccdeck1:",corrupt:"that share is incomplete — copy the whole thing",wrong_version:`that share was made by a newer ${Jn}`,expired:"that share has expired — make a new one",import_failed:"claude-swap refused the import"},Lx={no_cswap:"claude-swap could not be run — it is not on this deck's PATH. Set AGENTS_DECK_CSWAP to its full path",timeout:"claude-swap took too long and was stopped — try again",switch_failed:"claude-swap refused the switch",bad_account:"that is not an account claude-swap has",unknown_setting:"claude-swap has no such setting",out_of_range:"that value is outside what the setting allows",bad_value:"claude-swap does not accept that value",set_failed:"claude-swap refused the change",command_failed:"claude-swap refused the command"},A3=`claude-swap could not read the login keychain — start ${Jn} from a Terminal window rather than a background service`;function dv(e,n){return(e==null?void 0:e.reason)!=="no_cswap"&&/keychain/i.test(io(e))?A3:e!=null&&e.reason&&Lx[e.reason]?Lx[e.reason]:(e==null?void 0:e.reason)||n}function io(e){return((e==null?void 0:e.output)||(e==null?void 0:e.detail)||(e==null?void 0:e.error)||"").trim()}const qx={no_install:"ccusage is not installed, and AGENTS_DECK_NO_INSTALL=1 forbids fetching it — unset that variable and restart the deck, or install ccusage yourself",timeout:"ccusage took more than 90 seconds and was stopped — a narrower range usually finishes",bad_output:"ccusage ran but printed no usage data — try again, and run ccusage daily --json in a terminal if it keeps happening",run_failed:"ccusage could not report usage — try again",unreachable:"the deck did not answer — check it is still running, then try again"},I3="ccusage could not be started — npx is not on this deck's PATH. Install Node's npm/npx, or put ccusage on PATH yourself";function M3(e){return/\bnpx\b/i.test(e)&&/(command not found|not found|not recognized|ENOENT)/i.test(e)}function P3(e,n){return M3(io(e))?I3:e!=null&&e.reason&&qx[e.reason]?qx[e.reason]:(e==null?void 0:e.reason)||n}function Jl(e,n){return e!=null&&e.detail?e.detail:e!=null&&e.error&&nC(e.state)?e.error:e!=null&&e.reason&&Ox[e.reason]?Ox[e.reason]:e!=null&&e.error?e.error:(e==null?void 0:e.reason)||n}const O3=1500;async function Ul(e){return(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).json().catch(()=>null)}const fv=ue.forwardRef((e,n)=>m.jsxs("svg",{className:"aa-mark",viewBox:"0 0 44 44","aria-hidden":!0,ref:n,children:[m.jsx("circle",{className:"aa-mark-ring",cx:"22",cy:"22",r:"20"}),m.jsx("path",{className:"aa-mark-tick",d:"M13.5 22.5 L19.5 28.5 L31 17"})]}));fv.displayName="SuccessMark";function L3({onClose:e,onChanged:n}){const[r,i]=A.useState("login"),[o,l]=A.useState(null),[u,c]=A.useState(""),[p,h]=A.useState(""),[f,g]=A.useState(!1),[y,x]=A.useState(null),[N,_]=A.useState(null),S=A.useRef(!1),b=A.useRef(null),k=A.useRef(null),E=A.useRef(null),C=A.useCallback(()=>{S.current&&Ul({action:"login-cancel"}).catch(()=>{}),e()},[e]);ao(C);const R=A.useCallback(async()=>{g(!0),x(null),S.current=!0;const q=await Ul({action:"login"}).catch(()=>null);if(g(!1),!(q!=null&&q.ok)){x(Jl(q,"could not start the sign-in"));return}l(q)},[]);A.useEffect(()=>{if(!E3(o==null?void 0:o.state))return;const q=window.setInterval(async()=>{try{const T=await fetch("/api/claude-accounts/login");T.ok&&l(await T.json())}catch{}},O3);return()=>window.clearInterval(q)},[o]);const M=A.useRef(n);M.current=n;const L=A.useRef(R3());A.useEffect(()=>{var q;(o==null?void 0:o.state)==="awaiting_code"&&((q=b.current)==null||q.focus()),L.current.shouldAnnounce(o==null?void 0:o.state)&&M.current()},[o==null?void 0:o.state]),A.useEffect(()=>{var q;r==="paste"&&((q=k.current)==null||q.focus())},[r]);const U=A.useCallback(async()=>{var T;g(!0),x(null);const q=await Ul({action:"login-code",code:u}).catch(()=>null);if(g(!1),!(q!=null&&q.ok)){x(Jl(q,"the code was not accepted")),q!=null&&q.state&&l(q),(T=b.current)==null||T.select();return}c(""),l(q)},[u,o]),O=A.useCallback(async()=>{g(!0),x(null);const q=await Ul({action:"import",blob:p}).catch(()=>null);if(g(!1),!(q!=null&&q.ok)){x(Jl(q,"the import failed"));return}h(""),_({added:q.added===!0,num:q.num??null,email:q.email??null}),n()},[p,n]),P=(o==null?void 0:o.state)==="done"?o.account:null,F=nC(o==null?void 0:o.state)||!!(y&&S.current&&!f),G=j3({state:o==null?void 0:o.state,serverError:o==null?void 0:o.error,localError:y});return m.jsx("div",{className:"modal-backdrop",onClick:C,role:"presentation",children:m.jsxs("div",{className:"modal aa-modal",onClick:q=>q.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":"Add a Claude account",children:[m.jsxs("header",{className:"modal-head",children:[m.jsx("div",{className:"modal-title",children:m.jsxs("span",{className:"aa-tabs",role:"tablist",children:[m.jsx("button",{type:"button",role:"tab","aria-selected":r==="login",className:`aa-tab${r==="login"?" on":""}`,onClick:()=>i("login"),children:"Sign in"}),m.jsx("button",{type:"button",role:"tab","aria-selected":r==="paste",className:`aa-tab${r==="paste"?" on":""}`,onClick:()=>i("paste"),children:"Paste a share"})]})}),m.jsx("div",{className:"modal-actions",children:m.jsx("button",{type:"button",className:"btn icon-btn",onClick:C,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})})]}),m.jsx("section",{className:"modal-body aa-body",children:r==="login"?P?m.jsxs("div",{className:"aa-done",children:[m.jsx(fv,{ref:E}),m.jsx(Px,{anchor:E}),m.jsx("h4",{children:P.added?`Account ${P.num} added`:"Credentials refreshed"}),m.jsxs("p",{className:"aa-note",children:[m.jsx("strong",{children:P.email}),P.added?" is in the rotation. The account you were using is still active.":" was already managed, so its stored credentials were replaced."]}),m.jsx("button",{type:"button",className:"btn primary",onClick:e,children:"Done"})]}):(o==null?void 0:o.state)==="awaiting_code"||(o==null?void 0:o.state)==="registering"?m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"aa-step",children:[m.jsx("h4",{children:"1 · Approve in the browser"}),m.jsx("p",{className:"aa-note",children:"A tab should have opened. If not, use this link:"}),m.jsx("a",{className:"aa-link",href:o.url??"#",target:"_blank",rel:"noreferrer noopener",children:o.url})]}),m.jsxs("div",{className:"aa-step",children:[m.jsx("h4",{children:"2 · Paste the code it gives you"}),m.jsxs("div",{className:"aa-field",children:[m.jsx("input",{ref:b,type:"text",value:u,onChange:q=>c(q.target.value),onKeyDown:q=>{q.key==="Enter"&&u.trim()&&!f&&U()},placeholder:"paste the code here",spellCheck:!1,autoComplete:"off","aria-label":"Sign-in code",disabled:o.state==="registering"}),m.jsx("button",{type:"button",className:"btn primary",disabled:f||!u.trim()||o.state==="registering",onClick:U,children:o.state==="registering"?"registering…":"Continue"})]}),(y||o.error)&&m.jsx("p",{className:"aa-err",children:y??o.error}),m.jsx("p",{className:"aa-note",children:"The code goes straight to the claude CLI on this machine. It is never stored or sent anywhere else."})]})]}):F?m.jsxs("div",{className:"aa-step",children:[m.jsx("h4",{children:G.title}),m.jsx("p",{className:"aa-err",children:G.message}),m.jsx("button",{type:"button",className:"btn",onClick:()=>{S.current=!1,l(null),x(null),R()},children:"Try again"})]}):f||S.current?m.jsx("div",{className:"aa-step",children:m.jsx("p",{className:"aa-note",children:"Asking the claude CLI for a sign-in link…"})}):m.jsxs("div",{className:"aa-step aa-primer",children:[m.jsx("h4",{children:"Sign in to Anthropic"}),m.jsx("p",{className:"aa-note",children:"Opens a browser tab where you approve the sign-in, then asks for the code it shows you. claude-swap records the account when it completes, and the account you are using now stays active."}),m.jsx("div",{className:"aa-actions",children:m.jsx("button",{type:"button",className:"btn primary",onClick:R,disabled:f,children:"Open the sign-in page"})})]}):N?m.jsxs("div",{className:"aa-done",children:[m.jsx(fv,{ref:E}),N.added&&m.jsx(Px,{anchor:E}),m.jsx("h4",{children:N.added?`Account ${N.num} imported`:"Already here"}),m.jsx("p",{className:"aa-note",children:N.added?m.jsxs(m.Fragment,{children:[N.email?m.jsx("strong",{children:N.email}):"That account"," is in the rotation now. Nothing changed on the deck you copied it from."]}):"This deck already holds that account, so nothing changed."}),m.jsxs("div",{className:"aa-actions",children:[m.jsx("button",{type:"button",className:"btn primary",onClick:e,children:"Done"}),m.jsx("button",{type:"button",className:"btn",onClick:()=>_(null),children:"Import another"})]})]}):m.jsxs("div",{className:"aa-step",children:[m.jsx("h4",{children:"Paste an account shared from another deck"}),m.jsxs("div",{className:"aa-field",children:[m.jsx("input",{ref:k,type:"text",value:p,onChange:q=>h(q.target.value),onKeyDown:q=>{q.key==="Enter"&&p.trim()&&!f&&O()},placeholder:"ccdeck1:…",spellCheck:!1,autoComplete:"off","aria-label":"Shared account"}),m.jsx("button",{type:"button",className:"btn primary",disabled:f||!p.trim(),onClick:O,children:f?"importing…":"Import"})]}),y&&m.jsx("p",{className:"aa-err",children:y}),m.jsxs("p",{className:"aa-note",children:["Use ",m.jsx("strong",{children:"share"})," on an account in the other deck. A share carries a live login and expires ten minutes after it is made."]})]})})]})})}function q3(e,n){const r=new Set(e),i=e.length?Math.max(...e):0;return[...new Set([...e,i+1])].sort((o,l)=>o-l).map(o=>{const l=o===n?"here":r.has(o)?"swap":"free";return{slot:o,kind:l,label:l==="here"?`slot ${o}`:`slot ${o} · ${l}`}})}function $3(e,n,r){if(!(r!=null&&r.ok))return null;const i=Number.isInteger(r.to)?r.to:null;if(i==null)return{menuFor:null,confirmRemove:null,shareFor:null,swapNote:null};const o=r.swapped===!0&&i!==n;return{menuFor:e.menuFor===n?i:o&&e.menuFor===i?n:e.menuFor,confirmRemove:null,shareFor:null,swapNote:o?{at:i,displaced:n}:null}}function D3(e,n){const r=e.trim();return{alias:r,commit:r!==(n??"").trim()}}const F3=Object.freeze({text:"couldn't reach the deck server",reload:!0});async function $x(e){return e.ok?{ok:!0,status:e.status,body:null}:{ok:!1,status:e.status,body:await e.json().catch(()=>null)}}function z3(e){const n=e.find(i=>!i.ok);if(!n)return null;const r=io(n.body);return{text:dv(n.body,`the deck server answered ${n.status}`),...r?{raw:r}:{},reload:!0}}function Dx(e,n){return n?e!=null&&e.reload&&e.text===n.text&&e.raw===n.raw?e:n:e!=null&&e.reload?null:e}const Fx=15e3,B3=8e3,U3=1800,H3=3e4,W3=[70,80,85,90,95];function V3(e,n){const r=e-n;if(r<=0)return null;const i=Math.floor(r/86400),o=Math.floor(r%86400/3600),l=Math.floor(r%3600/60);return i>0?`${i}d ${o}h`:o>0?`${o}h ${l}m`:`${l}m`}function zx(e,n){const r=n-Math.floor(e/1e3);return r<60?"just now":r<3600?`${Math.floor(r/60)}m ago`:r<86400?`${Math.floor(r/3600)}h ago`:`${Math.floor(r/86400)}d ago`}function G3(e,n){if(!e)return"";const r=Math.floor(e/1e3)-n;return r<=0?" · due":r<60?` · next in ${r}s`:` · next in ${Math.round(r/60)}m`}function Y3(e){switch(e){case"invalid_grant":case"no_refresh_token":return{text:"login expired",hint:"claude-swap's stored login for this account was rejected and cannot be refreshed. Signing in again replaces it — the account keeps its slot, its alias and its history.",fixable:!0};case"http-401":return{text:"re-login needed",hint:"Anthropic refused this account's token.",fixable:!0};case"http-429":return{text:"rate limited",hint:"Anthropic is throttling requests for this account. It clears on its own.",fixable:!1};case"transient":return{text:"temporary error",hint:"A network or server hiccup while reading usage. The next collection retries.",fixable:!1};case"timeout":return{text:"timed out",hint:"Reading this account's usage took too long. The next collection retries.",fixable:!1};case"network":return{text:"unreachable",hint:"Could not reach Anthropic to read this account's usage.",fixable:!1};default:return{text:e,hint:`claude-swap reported "${e}" for this account.`,fixable:!1}}}function K3({lane:e,nowSec:n}){const r=Math.min(100,Math.max(0,e.pct)),i=r>=90?"var(--err)":r>=70?"var(--warn)":"var(--accent)",o=e.resetAt?V3(e.resetAt,n):null;return m.jsxs("div",{className:"ap-lane",children:[m.jsx("span",{className:"ap-lane-label",children:e.label}),m.jsx("div",{className:"ap-lane-track",children:m.jsx("div",{className:"ap-lane-fill",style:{width:`${r===0?1.5:r}%`,background:i,opacity:r===0?.4:1}})}),m.jsxs("span",{className:"ap-lane-pct",style:{color:i},children:[r,"%"]}),m.jsx("span",{className:"ap-lane-reset",children:o?`resets ${o}`:""})]})}async function X3(e){var r;let n=!1;try{n=await Promise.race([((r=navigator.clipboard)==null?void 0:r.writeText(e).then(()=>!0))??Promise.resolve(!1),new Promise(i=>window.setTimeout(()=>i(!1),500))])}catch{n=!1}if(n)return!0;try{const i=document.createElement("textarea");i.value=e,i.setAttribute("readonly",""),i.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(i),i.select(),n=document.execCommand("copy"),i.remove()}catch{n=!1}return n}function Q3(e,n){const r=Math.round(e/1e3)-n;return r<=0?{text:"expired",tone:"gone"}:r<60?{text:`expires in ${r}s`,tone:"soon"}:{text:`expires in ${Math.round(r/60)}m`,tone:"ok"}}function Z3({onClose:e}){var re,le,fe;const[n,r]=A.useState(null),[i,o]=A.useState(null),[l,u]=A.useState(null),[c,p]=A.useState(!1),[h,f]=A.useState(null),[g,y]=A.useState(null),[x,N]=A.useState(()=>Math.floor(Date.now()/1e3)),_=A.useRef(null),[S,b]=A.useState(null),[k,E]=A.useState(!1),[C,R]=A.useState(""),[M,L]=A.useState(null),[U,O]=A.useState(null),[P,F]=A.useState(null),[G,q]=A.useState(!1),[T,Q]=A.useState(null),z=A.useCallback(async(te=!1)=>{te&&p(!0);const ce=new AbortController,Ce=window.setTimeout(()=>ce.abort(),H3);try{const[ve,Re]=await Promise.all([fetch(`/api/claude-accounts${te?"?refresh=1":""}`,{signal:ce.signal}),fetch("/api/cswap-auto",{signal:ce.signal})]);ve.ok&&r(await ve.json()),Re.ok&&o(await Re.json());const ye=z3([await $x(ve),await $x(Re)]);y(ke=>Dx(ke,ye))}catch{y(ve=>Dx(ve,F3))}finally{window.clearTimeout(Ce),te&&p(!1)}},[]),ne=A.useCallback(async(te,ce)=>{u(ce),y(null);try{const ve=await(await fetch("/api/cswap-auto",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(te)})).json().catch(()=>null);return ve!=null&&ve.ok||y({text:dv(ve,"command failed"),raw:io(ve)}),ve}catch{return y({text:"server unreachable"}),null}finally{u(null)}},[]),Z=A.useCallback(async(te,ce)=>{u(ce),y(null);try{const ve=await(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(te)})).json().catch(()=>null);return ve!=null&&ve.ok||y({text:Jl(ve,"command failed")}),ve}catch{return y({text:"server unreachable"}),null}finally{u(null)}},[]);A.useEffect(()=>(z(!0),_.current=window.setInterval(()=>z(!1),Fx),()=>{_.current!=null&&window.clearInterval(_.current)}),[z]),A.useEffect(()=>{const te=window.setInterval(()=>N(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(te)},[]);const $=((re=i==null?void 0:i.settings["autoswitch.threshold"])==null?void 0:re.value)??"90",K=(le=n==null?void 0:n.accounts)==null?void 0:le.find(te=>te.active),I=K!=null&&K.lanes.length?Math.max(...K.lanes.map(te=>te.pct)):null,H=I!=null&&I>=Number($)-15,X=async te=>{f(te),y(null);try{const Ce=await(await fetch("/api/claude-accounts/switch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({account:te})})).json().catch(()=>null);Ce!=null&&Ce.ok||y({text:dv(Ce,"the switch failed"),raw:io(Ce)}),await z(!0)}catch{y({text:"server unreachable"})}finally{f(null)}},B=async(te,ce)=>{const{commit:Ce,alias:ve}=D3(C,ce);if(Ce){const Re=await Z({action:"alias",account:te,alias:ve},`alias-${te}`);if(await z(!0),!(Re!=null&&Re.ok))return;R(ve)}L(te),window.setTimeout(()=>L(Re=>Re===te?null:Re),U3)},J=async(te,ce)=>{const Ce=await Z({action:"move",account:te,slot:ce},`move-${te}`),ve=$3({menuFor:S,shareFor:(P==null?void 0:P.num)??null},te,Ce);if(await z(!0),ve){b(ve.menuFor),O(ve.confirmRemove),ve.shareFor==null&&(F(null),q(!1)),Q(ve.swapNote);const Re=ve.swapNote;Re&&window.setTimeout(()=>Q(ye=>ye===Re?null:ye),B3)}};return m.jsxs("div",{className:"accounts-panel","aria-label":"Claude accounts",children:[m.jsxs("div",{className:"ap-header",children:[m.jsx("h3",{children:"Accounts"}),m.jsxs("div",{className:"ap-header-right",children:[m.jsx("button",{type:"button",className:"btn ap-add",onClick:()=>E(!0),title:"Sign in to another Claude account, or paste one shared from another deck",children:"+"}),m.jsx("button",{type:"button",className:"btn ap-refresh",onClick:()=>z(!0),disabled:c,"aria-label":"Reload accounts",title:"Reload from claude-swap",children:c?"…":"↻"}),m.jsx("button",{type:"button",className:"btn icon-btn",onClick:e,"aria-label":"Close accounts panel",title:"Close (A)",children:"×"})]})]}),n==null?g?m.jsxs("div",{className:"ap-empty",role:"alert",children:[m.jsx("span",{title:g.raw||void 0,children:g.text}),m.jsxs("span",{className:"ap-hint",children:["No accounts have arrived, so there is nothing to show yet. The panel keeps trying every ",Fx/1e3," seconds."]}),m.jsx("button",{type:"button",className:"ap-fix",disabled:c,onClick:()=>z(!0),children:c?"trying…":"try again"})]}):m.jsx("div",{className:"ap-empty",children:"Checking…"}):n.ok?m.jsxs(m.Fragment,{children:[(fe=n.accounts)==null?void 0:fe.map(te=>m.jsxs("div",{className:`ap-account${te.active?" active":""}${te.disabled?" disabled":""}`,children:[m.jsxs("div",{className:"ap-account-head",children:[m.jsx("span",{className:"ap-num",children:te.num}),te.alias&&m.jsx("span",{className:"ap-alias",children:te.alias}),m.jsx("span",{className:"ap-email",title:te.org??void 0,children:te.email}),m.jsx("button",{type:"button",className:`ap-more${S===te.num?" on":""}`,"aria-label":`Manage account ${te.num}`,"aria-expanded":S===te.num,"aria-controls":S===te.num?`ap-manage-${te.num}`:void 0,title:"Share, rename, move, remove",onClick:()=>{b(S===te.num?null:te.num),R(te.alias??""),O(null),F(null),q(!1),Q(null),L(null)},children:"⋯"}),te.active?m.jsx("span",{className:"ap-badge-active",children:"● active"}):m.jsx("button",{type:"button",className:"btn ap-switch",disabled:h!=null||te.disabled,onClick:()=>X(te.num),title:te.disabled?"Held out of rotation":`Switch to ${te.alias??te.email}`,children:h===te.num?"…":"switch"})]}),te.lanes.length>0?te.lanes.map(ce=>m.jsx(K3,{lane:ce,nowSec:x},ce.id)):m.jsx("div",{className:"ap-hint",children:"No usage recorded yet."}),m.jsxs("div",{className:"ap-meta",children:[te.error&&(()=>{const ce=Y3(te.error);return m.jsxs(m.Fragment,{children:[m.jsx("span",{className:"ap-err",title:ce.hint,children:ce.text}),ce.fixable&&m.jsx("button",{type:"button",className:"ap-fix",onClick:()=>E(!0),title:"Open the sign-in dialog. Signing in as this account replaces its stored login in place.",children:"sign in again"})]})})(),((i==null?void 0:i.enabled)||(i==null?void 0:i.external))&&!te.active&&m.jsx("button",{type:"button",className:"ap-rotate",disabled:l!=null,onClick:()=>ne({action:"account",account:te.num,enabled:te.disabled},`rot-${te.num}`).then(()=>z(!0)),title:te.disabled?"Return this account to auto-rotation":"Hold this account out of auto-rotation",children:te.disabled?"held out":"in rotation"}),te.fetchedAt?m.jsxs("span",{className:`ap-age${te.stale?" ap-stale":""}`,title:"When claude-swap last read this account's usage, and when it plans to read it again. It sets that interval itself — 3 minutes at the fastest, wider while an account is recovering from a rate limit — and every surface, including `cswap watch`, follows the same plan.",children:["collected ",zx(te.fetchedAt,x),G3(te.nextAt,x)]}):m.jsx("span",{className:"ap-age ap-stale",title:"claude-swap has not read this account yet",children:"never collected"})]}),S===te.num&&m.jsxs("div",{className:"ap-manage",id:`ap-manage-${te.num}`,role:"group","aria-label":`Manage account ${te.num}`,children:[m.jsxs("div",{className:"ap-manage-name",children:[m.jsx("label",{className:"ap-vh",htmlFor:`ap-alias-${te.num}`,children:"Alias"}),m.jsx("input",{id:`ap-alias-${te.num}`,className:"ap-manage-input",type:"text",value:C,onChange:ce=>R(ce.target.value),onKeyDown:ce=>{ce.key==="Enter"&&B(te.num,te.alias)},placeholder:"e.g. work",spellCheck:!1,autoFocus:!0}),m.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,onClick:()=>B(te.num,te.alias),title:"A short name to show instead of the email",children:M===te.num?"saved":"save"})]}),m.jsxs("div",{className:"ap-manage-acts",children:[m.jsx("label",{className:"ap-vh",htmlFor:`ap-slot-${te.num}`,children:"Slot"}),m.jsx("span",{className:"ap-field",children:m.jsx("select",{id:`ap-slot-${te.num}`,value:String(te.num),disabled:l!=null,onChange:ce=>J(te.num,Number(ce.target.value)),children:q3((n.accounts??[]).map(ce=>ce.num),te.num).map(ce=>m.jsx("option",{value:ce.slot,children:ce.label},ce.slot))})}),m.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,title:`Copy this account to another ${Jn}. The share carries a live login and expires in 10 minutes.`,onClick:async()=>{q(!1);const ce=await Z({action:"share",account:te.num},`share-${te.num}`);ce!=null&&ce.ok&&F({num:te.num,blob:ce.blob,expiresAt:ce.expiresAt})},children:"share"}),m.jsx("button",{type:"button",className:`ap-manage-btn danger${U===te.num?" armed":""}`,disabled:l!=null,title:U===te.num?"This deletes the stored credentials for this account":"Remove this account from claude-swap",onClick:()=>{if(U!==te.num){O(te.num),window.setTimeout(()=>O(ce=>ce===te.num?null:ce),4e3);return}O(null),Z({action:"remove",account:te.num},`rm-${te.num}`).then(()=>{b(null),z(!0)})},children:U===te.num?"confirm":"remove"})]}),(T==null?void 0:T.at)===te.num&&(()=>{var ve;const ce=(ve=n.accounts)==null?void 0:ve.find(Re=>Re.num===T.displaced),Ce=(ce==null?void 0:ce.alias)??(ce==null?void 0:ce.email)??"the account that was there";return m.jsxs("span",{className:"ap-manage-hint ap-manage-swap",title:`Slot ${T.at} was taken, so the two accounts traded places: ${Ce} now holds slot ${T.displaced}.`,children:["swapped with slot ",T.displaced]})})(),(P==null?void 0:P.num)===te.num&&(()=>{const ce=Q3(P.expiresAt,x),Ce=ce.tone==="gone";return m.jsxs("div",{className:`ap-share${Ce?" expired":""}`,children:[m.jsx("code",{className:"ap-share-blob",children:P.blob}),m.jsxs("div",{className:"ap-share-foot",children:[m.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,onClick:async()=>{if(Ce){q(!1);const ve=await Z({action:"share",account:te.num},`share-${te.num}`);ve!=null&&ve.ok&&F({num:te.num,blob:ve.blob,expiresAt:ve.expiresAt});return}await X3(P.blob)&&(q(!0),window.setTimeout(()=>q(!1),1800))},children:Ce?"make a new share":G?"copied":"copy"}),m.jsxs("span",{className:"ap-manage-hint",children:["carries a live login · ",m.jsx("span",{className:`ap-share-expiry ${ce.tone}`,children:ce.text})]})]})]})})()]})]},te.num)),(i==null?void 0:i.ok)&&m.jsxs("div",{className:"ap-auto",children:[m.jsxs("div",{className:"ap-auto-head",children:[m.jsx("span",{className:"ap-auto-title",children:"Auto-switch"}),m.jsxs("span",{className:"ap-auto-ctl",children:[I!=null&&m.jsxs("span",{className:`ap-auto-now${H?" near":""}`,children:[Math.round(I),"%"]}),m.jsx("span",{className:"ap-field",title:"Switch once the active account passes this much of its limit",children:m.jsx("select",{"aria-label":"Switch threshold",value:$,disabled:l!=null,onChange:te=>ne({action:"setting",key:"autoswitch.threshold",value:te.target.value},"threshold").then(()=>z(!0)),children:W3.map(te=>m.jsxs("option",{value:te,children:[te,"%"]},te))})}),m.jsxs("button",{type:"button",className:`ap-auto-state${i.enabled?" live":""}`,role:"switch","aria-checked":i.enabled,disabled:l!=null,onClick:()=>ne({action:"enable",enabled:!i.enabled},"enable").then(()=>z(!0)),title:i.enabled?"Stop switching accounts automatically":"Switch accounts automatically when the active one nears its limit",children:[m.jsx("i",{className:i.enabled?"ap-pulse":"ap-dot","aria-hidden":!0}),i.enabled?"on":"off"]})]})]}),i.external&&m.jsxs("p",{className:"ap-auto-note",children:[m.jsx("i",{className:"ap-pulse","aria-hidden":!0})," A ",m.jsx("code",{children:"cswap auto"})," loop in your terminal is doing the switching. The deck stands down while it runs",i.enabled?" — this toggle takes over when you stop it.":"."]}),i.lastTick&&m.jsx("div",{className:"ap-auto-foot",children:m.jsxs("span",{className:"ap-auto-result",children:["checked ",zx(i.lastTick.at,x)]})})]}),g&&m.jsxs("div",{className:"ap-failure",role:"alert",children:[m.jsx("span",{className:"ap-failure-text",title:g.raw||void 0,children:g.text}),m.jsx("button",{type:"button",className:"ap-failure-x",onClick:()=>y(null),"aria-label":"Dismiss this message",title:"Dismiss",children:"×"})]}),m.jsx("p",{className:"ap-footnote",title:"Anthropic's usage endpoint allows roughly 28–30 requests per hour per account, shared by every tool on this machine — polling it from here would rate-limit your account. So the deck never fetches: it asks claude-swap to collect while this panel is open, at most once every three minutes, and claude-swap decides whether that touches the network at all.",children:"Collected by claude-swap while this panel is open."})]}):m.jsx("div",{className:"ap-empty",children:n.reason==="no_cswap"?m.jsxs(m.Fragment,{children:[m.jsx("span",{children:"claude-swap isn't installed."}),m.jsx("span",{className:"ap-hint",children:"This panel reads the account store claude-swap keeps — without it there is nothing to show. It is a separate tool, published on PyPI, so it does not come with this package."}),n.hint&&m.jsx("code",{className:"ap-cmd",children:n.hint}),m.jsxs("span",{className:"ap-hint",children:["Then add an account with the ",m.jsx("strong",{children:"+"})," button above."]})]}):n.reason==="no_accounts"?m.jsxs(m.Fragment,{children:[m.jsx("span",{children:"No accounts added yet."}),m.jsxs("span",{className:"ap-hint",children:["claude-swap is installed but has nothing in its store. Use the ",m.jsx("strong",{children:"+"})," above to sign one in, or to paste one shared from another deck."]})]}):m.jsxs(m.Fragment,{children:[m.jsx("span",{children:"Couldn't read the account store."}),m.jsxs("span",{className:"ap-hint",children:["claude-swap is installed, but its store could not be read",n.reason?` (${n.reason})`:"","."]})]})}),k&&m.jsx(L3,{onClose:()=>E(!1),onChanged:()=>z(!0)})]})}const J3=3e4;function eL({bundle:e,running:n,lastTried:r}){return!n||e===n?!1:r!==n}function tL({bundle:e,running:n,pending:r,lastTried:i}){return n?eL({bundle:e,running:n,lastTried:i})?"reload":r==null||r&&r!==n?"wait":"confirm":"wait"}function nL(e){return!e||e.state!=="failed"?null:`${typeof e.at=="number"?e.at:0}:${e.error??""}`}function rL({asked:e,reported:n}){return n?n!==e:!1}function sL(e){const n=e.thresholdMs??J3;return!e.enabled||e.kind!=="restart"||!e.canRestart?{idleSince:null,restart:!1}:e.busy?{idleSince:null,restart:!1}:e.idleSince==null?{idleSince:e.now,restart:!1}:e.now<e.idleSince?{idleSince:e.now,restart:!1}:{idleSince:e.idleSince,restart:e.now-e.idleSince>=n}}function iL(e){return e.ctrlKey||e.metaKey||e.altKey}const oL=new Set(["button","checkbox","color","file","image","radio","range","reset","submit"]),aL=new Set(["INPUT","TEXTAREA","SELECT","OPTION","BUTTON","SUMMARY","A"]),lL=new Set(["button","checkbox","combobox","link","listbox","menu","menubar","menuitem","menuitemcheckbox","menuitemradio","option","radio","searchbox","slider","spinbutton","switch","tab","textbox","treeitem"]);function rC(e){return typeof e.tagName=="string"?e.tagName.toUpperCase():""}function sC(e){if(!e)return!1;if(e.isContentEditable)return!0;const n=rC(e);return n==="TEXTAREA"?!0:n!=="INPUT"?!1:!oL.has(String(e.type??"text").toLowerCase())}function uL(e){if(!e)return!1;if(sC(e)||aL.has(rC(e)))return!0;const n=typeof e.role=="string"?e.role.trim().toLowerCase():"";return n!==""&&n.split(/\s+/).some(r=>lL.has(r))}function cL({agentCount:e,onConfirm:n,onCancel:r}){const i=A.useRef(null);ao(r,{focusRef:i,layer:lO});const o=e===0?"This deletes the server's event log":`This removes ${e===1?"the one agent":`all ${e} agents`} on the canvas and deletes the server's event log`;return m.jsx("div",{className:"modal-backdrop",onClick:r,role:"presentation",children:m.jsxs("div",{className:"modal clear-confirm",onClick:l=>l.stopPropagation(),role:"dialog","aria-modal":"true","aria-labelledby":"clear-confirm-title",children:[m.jsxs("header",{className:"modal-head",children:[m.jsxs("div",{className:"modal-title",children:[m.jsx("span",{className:"status-dot err","aria-hidden":!0}),m.jsx("span",{id:"clear-confirm-title",className:"modal-tool-name",children:"Clear the deck?"})]}),m.jsx("div",{className:"modal-actions",children:m.jsx("button",{type:"button",className:"btn icon-btn",onClick:r,"aria-label":"Cancel (Esc)",title:"Cancel (Esc)",children:"×"})})]}),m.jsxs("section",{className:"modal-body",children:[m.jsxs("p",{className:"modal-note",children:[o," — the file a restarted deck replays to rebuild what you see. Layout, pins and selection go with it. This cannot be undone."]}),m.jsxs("div",{className:"cc-actions",children:[m.jsx("button",{type:"button",ref:i,className:"btn",onClick:r,children:"Cancel"}),m.jsx("button",{type:"button",className:"btn danger",onClick:n,children:"Clear everything"})]})]})]})})}function dL(e,n){return e==="confirmation"?n.confirmOpen?"clear":"ignore":n.modalOpen||n.confirmOpen?"ignore":"confirm"}function Hl(e,n){if(n.size!==0)for(const r of Array.from(e.keys()))n.has(r)||e.delete(r)}function fL(e){const n=new Set;for(const r of e)n.add(r.id),n.add(`group:${r.sessionId}`);return n}function iC(e,n,r){return!n.has(e)||r.has(e)}function hL(e,n,r,i){return!n.has(e)&&iC(e,r,i)}function pL(e,n,r){const i={x:0,y:0};return n.set(e,i),r.add(e),i}function mL(e,n,r,i){r.set(e,n),i.delete(e)}const gL=40,vL=120;function yL(e,n){let r=null,i=0,o=Number.NEGATIVE_INFINITY;const l=()=>{r=null,o=n.now(),e()},u=()=>{r!=null&&(n.clearTimeout(r),r=null)},c=(p,h,f)=>{if(r!=null){if(i<=p)return;u()}const g=Math.min(f,Math.max(0,p-h));i=p,r=n.setTimeout(l,g)};return{live(p=gL){const h=n.now(),f=Math.max(o+p,h);if(f<=h){u(),l();return}c(f,h,p)},replay(p=vL){u(),i=n.now()+p,r=n.setTimeout(l,p)},flush(){u(),l()},cancel(){u()}}}function wL(){let e=!1,n=[];return{get paused(){return e},get size(){return n.length},accept(r){return e?(n.push(r),!1):!0},setPaused(r){if(e=r,r||n.length===0)return[];const i=n;return n=[],i}}}const xL="1",Bx="agent-dag.schema",_L=["agent-dag.layout","agent-dag.viewport"];function oC(e){if(typeof window>"u")return null;try{return window.localStorage.getItem(e)}catch{return null}}function bL(e,n=xL){let r=null;try{r=e.getItem(Bx)}catch{return[]}if(r===n)return[];const i=[];if(r!==null)for(const o of _L)try{e.getItem(o)!==null&&(e.removeItem(o),i.push(o))}catch{}try{e.setItem(Bx,n)}catch{}return i}const aC="agent-dag.theme";function SL(e){return e==="light"?"light":"dark"}function kL(){return SL(oC(aC))}function EL(){let e=0;return{begin(){const n=++e;return()=>n===e},cancel(){e++}}}function NL(e,n=new Date){return new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate()-(e-1))).toISOString().slice(0,10).replace(/-/g,"")}function CL(e){return!e.answer||e.answer.range!==e.want?{phase:"busy",stale:!1}:e.answer.ok?{phase:e.answer.days>0?"chart":"empty",stale:e.loading}:{phase:"error",stale:e.loading}}function Wl(e){const n=e.toLowerCase();return n.includes("opus")?"#c4b5fd":n.includes("sonnet")?"#7dd3fc":n.includes("haiku")?"#86efac":n.includes("gpt-5")||n.includes("gpt5")?"#fcd34d":n.includes("gpt")?"#fca5a5":n.includes("gemini")?"#a5b4fc":n.includes("codex")?"#fdba74":"#94a3b8"}const jL=[7,14,30,90];function TL(e){const[n,r]=A.useState(null),[i,o]=A.useState(!1),l=A.useRef(EL()).current,u=(c=!1)=>{const p=l.begin(),h=e;o(!0);const g=`/api/ccusage?since=${NL(h)}${c?"&refresh=1":""}`;fetch(g).then(y=>y.json()).then(y=>{p()&&r({range:h,resp:y})}).catch(()=>{p()&&r({range:h,resp:{ok:!1,reason:"unreachable"}})}).finally(()=>{p()&&o(!1)})};return A.useEffect(()=>(u(!1),()=>l.cancel()),[e]),{landed:n,loading:i,reload:()=>u(!0)}}function RL({onClose:e}){var k,E,C;const[n,r]=A.useState(30),[i,o]=A.useState(null),{landed:l,loading:u,reload:c}=TL(n);ao(e);const p=CL({loading:u,want:n,answer:l&&{range:l.range,ok:l.resp.ok===!0,days:((k=l.resp.days)==null?void 0:k.length)??0}}),h=p.phase==="chart"?l.resp.days??[]:[],f=A.useMemo(()=>h.reduce((R,M)=>Math.max(R,M.totalCost),0),[h]),{totalCost:g,totalTok:y,inOut:x,cacheRead:N,modelCosts:_}=A.useMemo(()=>{let R=0,M=0,L=0,U=0;const O=new Map;for(const P of h){R+=P.totalCost,M+=P.totalTokens,L+=P.inputTokens+P.outputTokens,U+=P.cacheReadTokens;for(const F of P.modelBreakdowns)O.set(F.modelName,(O.get(F.modelName)??0)+F.cost)}return{totalCost:R,totalTok:M,inOut:L,cacheRead:U,modelCosts:O}},[h]),S=A.useMemo(()=>Array.from(_.entries()).sort((R,M)=>M[1]-R[1]),[_]),b=i?h.find(R=>R.period===i)??null:null;return m.jsx("div",{className:"uh-backdrop",onClick:e,role:"presentation",children:m.jsxs("div",{className:"uh-modal",onClick:R=>R.stopPropagation(),role:"dialog","aria-label":"Usage history",children:[m.jsxs("header",{className:"uh-head",children:[m.jsxs("div",{className:"uh-titlewrap",children:[m.jsx("div",{className:"uh-title",children:"Usage history"}),m.jsx("div",{className:"uh-sub",children:"via ccusage · local Claude / Codex logs"})]}),m.jsx("div",{className:"uh-range",role:"tablist","aria-label":"Range",children:jL.map(R=>m.jsxs("button",{role:"tab","aria-selected":n===R,className:`uh-range-btn${n===R?" on":""}`,onClick:()=>{r(R),o(null)},children:[R,"d"]},R))}),m.jsx("button",{className:"btn icon-btn uh-reload",onClick:c,disabled:u,title:"Re-run ccusage","aria-label":"Reload",children:u?"…":"↻"}),m.jsx("button",{className:"uh-close",onClick:e,"aria-label":"Close",children:"×"})]}),p.phase==="busy"?m.jsx("div",{className:"uh-status","aria-busy":"true",children:l?"running ccusage…":"running ccusage… (first run downloads the package)"}):p.phase==="error"?m.jsxs("div",{className:"uh-status uh-err",title:io(l.resp)||void 0,children:[P3(l.resp,"ccusage did not report usage"),m.jsx("div",{children:m.jsx("button",{className:"btn uh-retry",onClick:c,disabled:u,children:u?"trying…":"Try again"})})]}):p.phase==="empty"?m.jsx("div",{className:`uh-status${p.stale?" uh-stale":""}`,"aria-busy":p.stale||void 0,children:"no usage in this range"}):m.jsxs("div",{className:p.stale?"uh-stale":void 0,"aria-busy":p.stale||void 0,children:[m.jsxs("div",{className:"uh-totals",children:[m.jsx(Vl,{label:"total cost",val:ze(g),accent:!0}),m.jsx(Vl,{label:"tokens",val:Ft(y)}),m.jsx(Vl,{label:"input+output",val:Ft(x)}),m.jsx(Vl,{label:"cache reads",val:Ft(N)})]}),m.jsx("div",{className:"uh-chart",role:"img","aria-label":"Daily cost by model",children:h.map(R=>{const M=f>0?R.totalCost/f*100:0,L=R.period===i;return m.jsxs("button",{className:`uh-bar-col${L?" sel":""}`,onClick:()=>o(L?null:R.period),title:`${R.period} · ${ze(R.totalCost)}`,style:{flexBasis:`${100/h.length}%`},children:[m.jsx("div",{className:"uh-bar",style:{height:`${Math.max(M,R.totalCost>0?2:0)}%`},children:R.modelBreakdowns.slice().sort((U,O)=>O.cost-U.cost).map(U=>{const O=R.totalCost>0?U.cost/R.totalCost*100:0;return m.jsx("div",{className:"uh-bar-seg",style:{height:`${O}%`,background:Wl(U.modelName)}},U.modelName)})}),m.jsx("span",{className:"uh-bar-label",children:R.period.slice(5)})]},R.period)})}),m.jsx("div",{className:"uh-legend",children:S.map(([R,M])=>m.jsxs("span",{className:"uh-legend-item",children:[m.jsx("span",{className:"uh-legend-dot",style:{background:Wl(R)}}),ii(R)," ",m.jsx("span",{className:"uh-legend-cost",children:ze(M)})]},R))}),b&&m.jsxs("div",{className:"uh-detail",children:[m.jsxs("div",{className:"uh-detail-head",children:[m.jsx("span",{className:"uh-detail-date",children:b.period}),m.jsx("span",{className:"uh-detail-cost",children:ze(b.totalCost)}),(C=(E=b.metadata)==null?void 0:E.agents)!=null&&C.length?m.jsx("span",{className:"uh-detail-agents",children:b.metadata.agents.join(" · ")}):null]}),m.jsxs("div",{className:"uh-detail-mini",children:[m.jsx(Gl,{label:"input",val:Ft(b.inputTokens)}),m.jsx(Gl,{label:"output",val:Ft(b.outputTokens)}),m.jsx(Gl,{label:"cache write",val:Ft(b.cacheCreationTokens)}),m.jsx(Gl,{label:"cache read",val:Ft(b.cacheReadTokens)})]}),m.jsx("div",{className:"uh-detail-models",children:b.modelBreakdowns.slice().sort((R,M)=>M.cost-R.cost).map(R=>{const M=b.totalCost>0?R.cost/b.totalCost*100:0;return m.jsxs("div",{className:"uh-model-row",children:[m.jsxs("span",{className:"uh-model-name",children:[m.jsx("span",{className:"uh-legend-dot",style:{background:Wl(R.modelName)}}),ii(R.modelName)]}),m.jsx("span",{className:"uh-model-bar",children:m.jsx("span",{className:"uh-model-bar-fill",style:{width:`${M}%`,background:Wl(R.modelName)}})}),m.jsx("span",{className:"uh-model-cost",children:ze(R.cost)})]},R.modelName)})})]})]})]})})}function Vl({label:e,val:n,accent:r}){return m.jsxs("div",{className:"uh-stat",children:[m.jsx("span",{className:`uh-stat-val${r?" accent":""}`,children:n}),m.jsx("span",{className:"uh-stat-label",children:e})]})}function Gl({label:e,val:n}){return m.jsxs("div",{className:"uh-ministat",children:[m.jsx("span",{className:"uh-ministat-val",children:n}),m.jsx("span",{className:"uh-ministat-label",children:e})]})}function Dv(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Ed,Ux;function AL(){if(Ux)return Ed;Ux=1;function e(){this.__data__=[],this.size=0}return Ed=e,Ed}var Nd,Hx;function lo(){if(Hx)return Nd;Hx=1;function e(n,r){return n===r||n!==n&&r!==r}return Nd=e,Nd}var Cd,Wx;function xu(){if(Wx)return Cd;Wx=1;var e=lo();function n(r,i){for(var o=r.length;o--;)if(e(r[o][0],i))return o;return-1}return Cd=n,Cd}var jd,Vx;function IL(){if(Vx)return jd;Vx=1;var e=xu(),n=Array.prototype,r=n.splice;function i(o){var l=this.__data__,u=e(l,o);if(u<0)return!1;var c=l.length-1;return u==c?l.pop():r.call(l,u,1),--this.size,!0}return jd=i,jd}var Td,Gx;function ML(){if(Gx)return Td;Gx=1;var e=xu();function n(r){var i=this.__data__,o=e(i,r);return o<0?void 0:i[o][1]}return Td=n,Td}var Rd,Yx;function PL(){if(Yx)return Rd;Yx=1;var e=xu();function n(r){return e(this.__data__,r)>-1}return Rd=n,Rd}var Ad,Kx;function OL(){if(Kx)return Ad;Kx=1;var e=xu();function n(r,i){var o=this.__data__,l=e(o,r);return l<0?(++this.size,o.push([r,i])):o[l][1]=i,this}return Ad=n,Ad}var Id,Xx;function _u(){if(Xx)return Id;Xx=1;var e=AL(),n=IL(),r=ML(),i=PL(),o=OL();function l(u){var c=-1,p=u==null?0:u.length;for(this.clear();++c<p;){var h=u[c];this.set(h[0],h[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=i,l.prototype.set=o,Id=l,Id}var Md,Qx;function LL(){if(Qx)return Md;Qx=1;var e=_u();function n(){this.__data__=new e,this.size=0}return Md=n,Md}var Pd,Zx;function qL(){if(Zx)return Pd;Zx=1;function e(n){var r=this.__data__,i=r.delete(n);return this.size=r.size,i}return Pd=e,Pd}var Od,Jx;function $L(){if(Jx)return Od;Jx=1;function e(n){return this.__data__.get(n)}return Od=e,Od}var Ld,e_;function DL(){if(e_)return Ld;e_=1;function e(n){return this.__data__.has(n)}return Ld=e,Ld}var qd,t_;function lC(){if(t_)return qd;t_=1;var e=typeof Rl=="object"&&Rl&&Rl.Object===Object&&Rl;return qd=e,qd}var $d,n_;function rr(){if(n_)return $d;n_=1;var e=lC(),n=typeof self=="object"&&self&&self.Object===Object&&self,r=e||n||Function("return this")();return $d=r,$d}var Dd,r_;function uo(){if(r_)return Dd;r_=1;var e=rr(),n=e.Symbol;return Dd=n,Dd}var Fd,s_;function FL(){if(s_)return Fd;s_=1;var e=uo(),n=Object.prototype,r=n.hasOwnProperty,i=n.toString,o=e?e.toStringTag:void 0;function l(u){var c=r.call(u,o),p=u[o];try{u[o]=void 0;var h=!0}catch{}var f=i.call(u);return h&&(c?u[o]=p:delete u[o]),f}return Fd=l,Fd}var zd,i_;function zL(){if(i_)return zd;i_=1;var e=Object.prototype,n=e.toString;function r(i){return n.call(i)}return zd=r,zd}var Bd,o_;function oi(){if(o_)return Bd;o_=1;var e=uo(),n=FL(),r=zL(),i="[object Null]",o="[object Undefined]",l=e?e.toStringTag:void 0;function u(c){return c==null?c===void 0?o:i:l&&l in Object(c)?n(c):r(c)}return Bd=u,Bd}var Ud,a_;function Pn(){if(a_)return Ud;a_=1;function e(n){var r=typeof n;return n!=null&&(r=="object"||r=="function")}return Ud=e,Ud}var Hd,l_;function xa(){if(l_)return Hd;l_=1;var e=oi(),n=Pn(),r="[object AsyncFunction]",i="[object Function]",o="[object GeneratorFunction]",l="[object Proxy]";function u(c){if(!n(c))return!1;var p=e(c);return p==i||p==o||p==r||p==l}return Hd=u,Hd}var Wd,u_;function BL(){if(u_)return Wd;u_=1;var e=rr(),n=e["__core-js_shared__"];return Wd=n,Wd}var Vd,c_;function UL(){if(c_)return Vd;c_=1;var e=BL(),n=(function(){var i=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""})();function r(i){return!!n&&n in i}return Vd=r,Vd}var Gd,d_;function uC(){if(d_)return Gd;d_=1;var e=Function.prototype,n=e.toString;function r(i){if(i!=null){try{return n.call(i)}catch{}try{return i+""}catch{}}return""}return Gd=r,Gd}var Yd,f_;function HL(){if(f_)return Yd;f_=1;var e=xa(),n=UL(),r=Pn(),i=uC(),o=/[\\^$.*+?()[\]{}|]/g,l=/^\[object .+?Constructor\]$/,u=Function.prototype,c=Object.prototype,p=u.toString,h=c.hasOwnProperty,f=RegExp("^"+p.call(h).replace(o,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function g(y){if(!r(y)||n(y))return!1;var x=e(y)?f:l;return x.test(i(y))}return Yd=g,Yd}var Kd,h_;function WL(){if(h_)return Kd;h_=1;function e(n,r){return n==null?void 0:n[r]}return Kd=e,Kd}var Xd,p_;function ai(){if(p_)return Xd;p_=1;var e=HL(),n=WL();function r(i,o){var l=n(i,o);return e(l)?l:void 0}return Xd=r,Xd}var Qd,m_;function Fv(){if(m_)return Qd;m_=1;var e=ai(),n=rr(),r=e(n,"Map");return Qd=r,Qd}var Zd,g_;function bu(){if(g_)return Zd;g_=1;var e=ai(),n=e(Object,"create");return Zd=n,Zd}var Jd,v_;function VL(){if(v_)return Jd;v_=1;var e=bu();function n(){this.__data__=e?e(null):{},this.size=0}return Jd=n,Jd}var ef,y_;function GL(){if(y_)return ef;y_=1;function e(n){var r=this.has(n)&&delete this.__data__[n];return this.size-=r?1:0,r}return ef=e,ef}var tf,w_;function YL(){if(w_)return tf;w_=1;var e=bu(),n="__lodash_hash_undefined__",r=Object.prototype,i=r.hasOwnProperty;function o(l){var u=this.__data__;if(e){var c=u[l];return c===n?void 0:c}return i.call(u,l)?u[l]:void 0}return tf=o,tf}var nf,x_;function KL(){if(x_)return nf;x_=1;var e=bu(),n=Object.prototype,r=n.hasOwnProperty;function i(o){var l=this.__data__;return e?l[o]!==void 0:r.call(l,o)}return nf=i,nf}var rf,__;function XL(){if(__)return rf;__=1;var e=bu(),n="__lodash_hash_undefined__";function r(i,o){var l=this.__data__;return this.size+=this.has(i)?0:1,l[i]=e&&o===void 0?n:o,this}return rf=r,rf}var sf,b_;function QL(){if(b_)return sf;b_=1;var e=VL(),n=GL(),r=YL(),i=KL(),o=XL();function l(u){var c=-1,p=u==null?0:u.length;for(this.clear();++c<p;){var h=u[c];this.set(h[0],h[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=i,l.prototype.set=o,sf=l,sf}var of,S_;function ZL(){if(S_)return of;S_=1;var e=QL(),n=_u(),r=Fv();function i(){this.size=0,this.__data__={hash:new e,map:new(r||n),string:new e}}return of=i,of}var af,k_;function JL(){if(k_)return af;k_=1;function e(n){var r=typeof n;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?n!=="__proto__":n===null}return af=e,af}var lf,E_;function Su(){if(E_)return lf;E_=1;var e=JL();function n(r,i){var o=r.__data__;return e(i)?o[typeof i=="string"?"string":"hash"]:o.map}return lf=n,lf}var uf,N_;function eq(){if(N_)return uf;N_=1;var e=Su();function n(r){var i=e(this,r).delete(r);return this.size-=i?1:0,i}return uf=n,uf}var cf,C_;function tq(){if(C_)return cf;C_=1;var e=Su();function n(r){return e(this,r).get(r)}return cf=n,cf}var df,j_;function nq(){if(j_)return df;j_=1;var e=Su();function n(r){return e(this,r).has(r)}return df=n,df}var ff,T_;function rq(){if(T_)return ff;T_=1;var e=Su();function n(r,i){var o=e(this,r),l=o.size;return o.set(r,i),this.size+=o.size==l?0:1,this}return ff=n,ff}var hf,R_;function zv(){if(R_)return hf;R_=1;var e=ZL(),n=eq(),r=tq(),i=nq(),o=rq();function l(u){var c=-1,p=u==null?0:u.length;for(this.clear();++c<p;){var h=u[c];this.set(h[0],h[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=i,l.prototype.set=o,hf=l,hf}var pf,A_;function sq(){if(A_)return pf;A_=1;var e=_u(),n=Fv(),r=zv(),i=200;function o(l,u){var c=this.__data__;if(c instanceof e){var p=c.__data__;if(!n||p.length<i-1)return p.push([l,u]),this.size=++c.size,this;c=this.__data__=new r(p)}return c.set(l,u),this.size=c.size,this}return pf=o,pf}var mf,I_;function ku(){if(I_)return mf;I_=1;var e=_u(),n=LL(),r=qL(),i=$L(),o=DL(),l=sq();function u(c){var p=this.__data__=new e(c);this.size=p.size}return u.prototype.clear=n,u.prototype.delete=r,u.prototype.get=i,u.prototype.has=o,u.prototype.set=l,mf=u,mf}var gf,M_;function Bv(){if(M_)return gf;M_=1;function e(n,r){for(var i=-1,o=n==null?0:n.length;++i<o&&r(n[i],i,n)!==!1;);return n}return gf=e,gf}var vf,P_;function cC(){if(P_)return vf;P_=1;var e=ai(),n=(function(){try{var r=e(Object,"defineProperty");return r({},"",{}),r}catch{}})();return vf=n,vf}var yf,O_;function Eu(){if(O_)return yf;O_=1;var e=cC();function n(r,i,o){i=="__proto__"&&e?e(r,i,{configurable:!0,enumerable:!0,value:o,writable:!0}):r[i]=o}return yf=n,yf}var wf,L_;function Nu(){if(L_)return wf;L_=1;var e=Eu(),n=lo(),r=Object.prototype,i=r.hasOwnProperty;function o(l,u,c){var p=l[u];(!(i.call(l,u)&&n(p,c))||c===void 0&&!(u in l))&&e(l,u,c)}return wf=o,wf}var xf,q_;function _a(){if(q_)return xf;q_=1;var e=Nu(),n=Eu();function r(i,o,l,u){var c=!l;l||(l={});for(var p=-1,h=o.length;++p<h;){var f=o[p],g=u?u(l[f],i[f],f,l,i):void 0;g===void 0&&(g=i[f]),c?n(l,f,g):e(l,f,g)}return l}return xf=r,xf}var _f,$_;function iq(){if($_)return _f;$_=1;function e(n,r){for(var i=-1,o=Array(n);++i<n;)o[i]=r(i);return o}return _f=e,_f}var bf,D_;function yr(){if(D_)return bf;D_=1;function e(n){return n!=null&&typeof n=="object"}return bf=e,bf}var Sf,F_;function oq(){if(F_)return Sf;F_=1;var e=oi(),n=yr(),r="[object Arguments]";function i(o){return n(o)&&e(o)==r}return Sf=i,Sf}var kf,z_;function ba(){if(z_)return kf;z_=1;var e=oq(),n=yr(),r=Object.prototype,i=r.hasOwnProperty,o=r.propertyIsEnumerable,l=e((function(){return arguments})())?e:function(u){return n(u)&&i.call(u,"callee")&&!o.call(u,"callee")};return kf=l,kf}var Ef,B_;function St(){if(B_)return Ef;B_=1;var e=Array.isArray;return Ef=e,Ef}var na={exports:{}},Nf,U_;function aq(){if(U_)return Nf;U_=1;function e(){return!1}return Nf=e,Nf}na.exports;var H_;function co(){return H_||(H_=1,(function(e,n){var r=rr(),i=aq(),o=n&&!n.nodeType&&n,l=o&&!0&&e&&!e.nodeType&&e,u=l&&l.exports===o,c=u?r.Buffer:void 0,p=c?c.isBuffer:void 0,h=p||i;e.exports=h})(na,na.exports)),na.exports}var Cf,W_;function Cu(){if(W_)return Cf;W_=1;var e=9007199254740991,n=/^(?:0|[1-9]\d*)$/;function r(i,o){var l=typeof i;return o=o??e,!!o&&(l=="number"||l!="symbol"&&n.test(i))&&i>-1&&i%1==0&&i<o}return Cf=r,Cf}var jf,V_;function Uv(){if(V_)return jf;V_=1;var e=9007199254740991;function n(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=e}return jf=n,jf}var Tf,G_;function lq(){if(G_)return Tf;G_=1;var e=oi(),n=Uv(),r=yr(),i="[object Arguments]",o="[object Array]",l="[object Boolean]",u="[object Date]",c="[object Error]",p="[object Function]",h="[object Map]",f="[object Number]",g="[object Object]",y="[object RegExp]",x="[object Set]",N="[object String]",_="[object WeakMap]",S="[object ArrayBuffer]",b="[object DataView]",k="[object Float32Array]",E="[object Float64Array]",C="[object Int8Array]",R="[object Int16Array]",M="[object Int32Array]",L="[object Uint8Array]",U="[object Uint8ClampedArray]",O="[object Uint16Array]",P="[object Uint32Array]",F={};F[k]=F[E]=F[C]=F[R]=F[M]=F[L]=F[U]=F[O]=F[P]=!0,F[i]=F[o]=F[S]=F[l]=F[b]=F[u]=F[c]=F[p]=F[h]=F[f]=F[g]=F[y]=F[x]=F[N]=F[_]=!1;function G(q){return r(q)&&n(q.length)&&!!F[e(q)]}return Tf=G,Tf}var Rf,Y_;function ju(){if(Y_)return Rf;Y_=1;function e(n){return function(r){return n(r)}}return Rf=e,Rf}var ra={exports:{}};ra.exports;var K_;function Hv(){return K_||(K_=1,(function(e,n){var r=lC(),i=n&&!n.nodeType&&n,o=i&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===i,u=l&&r.process,c=(function(){try{var p=o&&o.require&&o.require("util").types;return p||u&&u.binding&&u.binding("util")}catch{}})();e.exports=c})(ra,ra.exports)),ra.exports}var Af,X_;function Sa(){if(X_)return Af;X_=1;var e=lq(),n=ju(),r=Hv(),i=r&&r.isTypedArray,o=i?n(i):e;return Af=o,Af}var If,Q_;function dC(){if(Q_)return If;Q_=1;var e=iq(),n=ba(),r=St(),i=co(),o=Cu(),l=Sa(),u=Object.prototype,c=u.hasOwnProperty;function p(h,f){var g=r(h),y=!g&&n(h),x=!g&&!y&&i(h),N=!g&&!y&&!x&&l(h),_=g||y||x||N,S=_?e(h.length,String):[],b=S.length;for(var k in h)(f||c.call(h,k))&&!(_&&(k=="length"||x&&(k=="offset"||k=="parent")||N&&(k=="buffer"||k=="byteLength"||k=="byteOffset")||o(k,b)))&&S.push(k);return S}return If=p,If}var Mf,Z_;function Tu(){if(Z_)return Mf;Z_=1;var e=Object.prototype;function n(r){var i=r&&r.constructor,o=typeof i=="function"&&i.prototype||e;return r===o}return Mf=n,Mf}var Pf,J_;function fC(){if(J_)return Pf;J_=1;function e(n,r){return function(i){return n(r(i))}}return Pf=e,Pf}var Of,e1;function uq(){if(e1)return Of;e1=1;var e=fC(),n=e(Object.keys,Object);return Of=n,Of}var Lf,t1;function Wv(){if(t1)return Lf;t1=1;var e=Tu(),n=uq(),r=Object.prototype,i=r.hasOwnProperty;function o(l){if(!e(l))return n(l);var u=[];for(var c in Object(l))i.call(l,c)&&c!="constructor"&&u.push(c);return u}return Lf=o,Lf}var qf,n1;function Dr(){if(n1)return qf;n1=1;var e=xa(),n=Uv();function r(i){return i!=null&&n(i.length)&&!e(i)}return qf=r,qf}var $f,r1;function vs(){if(r1)return $f;r1=1;var e=dC(),n=Wv(),r=Dr();function i(o){return r(o)?e(o):n(o)}return $f=i,$f}var Df,s1;function cq(){if(s1)return Df;s1=1;var e=_a(),n=vs();function r(i,o){return i&&e(o,n(o),i)}return Df=r,Df}var Ff,i1;function dq(){if(i1)return Ff;i1=1;function e(n){var r=[];if(n!=null)for(var i in Object(n))r.push(i);return r}return Ff=e,Ff}var zf,o1;function fq(){if(o1)return zf;o1=1;var e=Pn(),n=Tu(),r=dq(),i=Object.prototype,o=i.hasOwnProperty;function l(u){if(!e(u))return r(u);var c=n(u),p=[];for(var h in u)h=="constructor"&&(c||!o.call(u,h))||p.push(h);return p}return zf=l,zf}var Bf,a1;function li(){if(a1)return Bf;a1=1;var e=dC(),n=fq(),r=Dr();function i(o){return r(o)?e(o,!0):n(o)}return Bf=i,Bf}var Uf,l1;function hq(){if(l1)return Uf;l1=1;var e=_a(),n=li();function r(i,o){return i&&e(o,n(o),i)}return Uf=r,Uf}var sa={exports:{}};sa.exports;var u1;function hC(){return u1||(u1=1,(function(e,n){var r=rr(),i=n&&!n.nodeType&&n,o=i&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===i,u=l?r.Buffer:void 0,c=u?u.allocUnsafe:void 0;function p(h,f){if(f)return h.slice();var g=h.length,y=c?c(g):new h.constructor(g);return h.copy(y),y}e.exports=p})(sa,sa.exports)),sa.exports}var Hf,c1;function pC(){if(c1)return Hf;c1=1;function e(n,r){var i=-1,o=n.length;for(r||(r=Array(o));++i<o;)r[i]=n[i];return r}return Hf=e,Hf}var Wf,d1;function mC(){if(d1)return Wf;d1=1;function e(n,r){for(var i=-1,o=n==null?0:n.length,l=0,u=[];++i<o;){var c=n[i];r(c,i,n)&&(u[l++]=c)}return u}return Wf=e,Wf}var Vf,f1;function gC(){if(f1)return Vf;f1=1;function e(){return[]}return Vf=e,Vf}var Gf,h1;function Vv(){if(h1)return Gf;h1=1;var e=mC(),n=gC(),r=Object.prototype,i=r.propertyIsEnumerable,o=Object.getOwnPropertySymbols,l=o?function(u){return u==null?[]:(u=Object(u),e(o(u),function(c){return i.call(u,c)}))}:n;return Gf=l,Gf}var Yf,p1;function pq(){if(p1)return Yf;p1=1;var e=_a(),n=Vv();function r(i,o){return e(i,n(i),o)}return Yf=r,Yf}var Kf,m1;function Gv(){if(m1)return Kf;m1=1;function e(n,r){for(var i=-1,o=r.length,l=n.length;++i<o;)n[l+i]=r[i];return n}return Kf=e,Kf}var Xf,g1;function Ru(){if(g1)return Xf;g1=1;var e=fC(),n=e(Object.getPrototypeOf,Object);return Xf=n,Xf}var Qf,v1;function vC(){if(v1)return Qf;v1=1;var e=Gv(),n=Ru(),r=Vv(),i=gC(),o=Object.getOwnPropertySymbols,l=o?function(u){for(var c=[];u;)e(c,r(u)),u=n(u);return c}:i;return Qf=l,Qf}var Zf,y1;function mq(){if(y1)return Zf;y1=1;var e=_a(),n=vC();function r(i,o){return e(i,n(i),o)}return Zf=r,Zf}var Jf,w1;function yC(){if(w1)return Jf;w1=1;var e=Gv(),n=St();function r(i,o,l){var u=o(i);return n(i)?u:e(u,l(i))}return Jf=r,Jf}var eh,x1;function wC(){if(x1)return eh;x1=1;var e=yC(),n=Vv(),r=vs();function i(o){return e(o,r,n)}return eh=i,eh}var th,_1;function gq(){if(_1)return th;_1=1;var e=yC(),n=vC(),r=li();function i(o){return e(o,r,n)}return th=i,th}var nh,b1;function vq(){if(b1)return nh;b1=1;var e=ai(),n=rr(),r=e(n,"DataView");return nh=r,nh}var rh,S1;function yq(){if(S1)return rh;S1=1;var e=ai(),n=rr(),r=e(n,"Promise");return rh=r,rh}var sh,k1;function xC(){if(k1)return sh;k1=1;var e=ai(),n=rr(),r=e(n,"Set");return sh=r,sh}var ih,E1;function wq(){if(E1)return ih;E1=1;var e=ai(),n=rr(),r=e(n,"WeakMap");return ih=r,ih}var oh,N1;function fo(){if(N1)return oh;N1=1;var e=vq(),n=Fv(),r=yq(),i=xC(),o=wq(),l=oi(),u=uC(),c="[object Map]",p="[object Object]",h="[object Promise]",f="[object Set]",g="[object WeakMap]",y="[object DataView]",x=u(e),N=u(n),_=u(r),S=u(i),b=u(o),k=l;return(e&&k(new e(new ArrayBuffer(1)))!=y||n&&k(new n)!=c||r&&k(r.resolve())!=h||i&&k(new i)!=f||o&&k(new o)!=g)&&(k=function(E){var C=l(E),R=C==p?E.constructor:void 0,M=R?u(R):"";if(M)switch(M){case x:return y;case N:return c;case _:return h;case S:return f;case b:return g}return C}),oh=k,oh}var ah,C1;function xq(){if(C1)return ah;C1=1;var e=Object.prototype,n=e.hasOwnProperty;function r(i){var o=i.length,l=new i.constructor(o);return o&&typeof i[0]=="string"&&n.call(i,"index")&&(l.index=i.index,l.input=i.input),l}return ah=r,ah}var lh,j1;function _C(){if(j1)return lh;j1=1;var e=rr(),n=e.Uint8Array;return lh=n,lh}var uh,T1;function Yv(){if(T1)return uh;T1=1;var e=_C();function n(r){var i=new r.constructor(r.byteLength);return new e(i).set(new e(r)),i}return uh=n,uh}var ch,R1;function _q(){if(R1)return ch;R1=1;var e=Yv();function n(r,i){var o=i?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.byteLength)}return ch=n,ch}var dh,A1;function bq(){if(A1)return dh;A1=1;var e=/\w*$/;function n(r){var i=new r.constructor(r.source,e.exec(r));return i.lastIndex=r.lastIndex,i}return dh=n,dh}var fh,I1;function Sq(){if(I1)return fh;I1=1;var e=uo(),n=e?e.prototype:void 0,r=n?n.valueOf:void 0;function i(o){return r?Object(r.call(o)):{}}return fh=i,fh}var hh,M1;function bC(){if(M1)return hh;M1=1;var e=Yv();function n(r,i){var o=i?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.length)}return hh=n,hh}var ph,P1;function kq(){if(P1)return ph;P1=1;var e=Yv(),n=_q(),r=bq(),i=Sq(),o=bC(),l="[object Boolean]",u="[object Date]",c="[object Map]",p="[object Number]",h="[object RegExp]",f="[object Set]",g="[object String]",y="[object Symbol]",x="[object ArrayBuffer]",N="[object DataView]",_="[object Float32Array]",S="[object Float64Array]",b="[object Int8Array]",k="[object Int16Array]",E="[object Int32Array]",C="[object Uint8Array]",R="[object Uint8ClampedArray]",M="[object Uint16Array]",L="[object Uint32Array]";function U(O,P,F){var G=O.constructor;switch(P){case x:return e(O);case l:case u:return new G(+O);case N:return n(O,F);case _:case S:case b:case k:case E:case C:case R:case M:case L:return o(O,F);case c:return new G;case p:case g:return new G(O);case h:return r(O);case f:return new G;case y:return i(O)}}return ph=U,ph}var mh,O1;function SC(){if(O1)return mh;O1=1;var e=Pn(),n=Object.create,r=(function(){function i(){}return function(o){if(!e(o))return{};if(n)return n(o);i.prototype=o;var l=new i;return i.prototype=void 0,l}})();return mh=r,mh}var gh,L1;function kC(){if(L1)return gh;L1=1;var e=SC(),n=Ru(),r=Tu();function i(o){return typeof o.constructor=="function"&&!r(o)?e(n(o)):{}}return gh=i,gh}var vh,q1;function Eq(){if(q1)return vh;q1=1;var e=fo(),n=yr(),r="[object Map]";function i(o){return n(o)&&e(o)==r}return vh=i,vh}var yh,$1;function Nq(){if($1)return yh;$1=1;var e=Eq(),n=ju(),r=Hv(),i=r&&r.isMap,o=i?n(i):e;return yh=o,yh}var wh,D1;function Cq(){if(D1)return wh;D1=1;var e=fo(),n=yr(),r="[object Set]";function i(o){return n(o)&&e(o)==r}return wh=i,wh}var xh,F1;function jq(){if(F1)return xh;F1=1;var e=Cq(),n=ju(),r=Hv(),i=r&&r.isSet,o=i?n(i):e;return xh=o,xh}var _h,z1;function EC(){if(z1)return _h;z1=1;var e=ku(),n=Bv(),r=Nu(),i=cq(),o=hq(),l=hC(),u=pC(),c=pq(),p=mq(),h=wC(),f=gq(),g=fo(),y=xq(),x=kq(),N=kC(),_=St(),S=co(),b=Nq(),k=Pn(),E=jq(),C=vs(),R=li(),M=1,L=2,U=4,O="[object Arguments]",P="[object Array]",F="[object Boolean]",G="[object Date]",q="[object Error]",T="[object Function]",Q="[object GeneratorFunction]",z="[object Map]",ne="[object Number]",Z="[object Object]",$="[object RegExp]",K="[object Set]",I="[object String]",H="[object Symbol]",X="[object WeakMap]",B="[object ArrayBuffer]",J="[object DataView]",re="[object Float32Array]",le="[object Float64Array]",fe="[object Int8Array]",te="[object Int16Array]",ce="[object Int32Array]",Ce="[object Uint8Array]",ve="[object Uint8ClampedArray]",Re="[object Uint16Array]",ye="[object Uint32Array]",ke={};ke[O]=ke[P]=ke[B]=ke[J]=ke[F]=ke[G]=ke[re]=ke[le]=ke[fe]=ke[te]=ke[ce]=ke[z]=ke[ne]=ke[Z]=ke[$]=ke[K]=ke[I]=ke[H]=ke[Ce]=ke[ve]=ke[Re]=ke[ye]=!0,ke[q]=ke[T]=ke[X]=!1;function Ge(we,_e,Be,Ye,at,nt){var Fe,Qe=_e&M,ht=_e&L,kt=_e&U;if(Be&&(Fe=at?Be(we,Ye,at,nt):Be(we)),Fe!==void 0)return Fe;if(!k(we))return we;var rt=_(we);if(rt){if(Fe=y(we),!Qe)return u(we,Fe)}else{var wt=g(we),Yt=wt==T||wt==Q;if(S(we))return l(we,Qe);if(wt==Z||wt==O||Yt&&!at){if(Fe=ht||Yt?{}:N(we),!Qe)return ht?p(we,o(Fe,we)):c(we,i(Fe,we))}else{if(!ke[wt])return at?we:{};Fe=x(we,wt,Qe)}}nt||(nt=new e);var Lt=nt.get(we);if(Lt)return Lt;nt.set(we,Fe),E(we)?we.forEach(function(st){Fe.add(Ge(st,_e,Be,st,we,nt))}):b(we)&&we.forEach(function(st,xt){Fe.set(xt,Ge(st,_e,Be,xt,we,nt))});var Je=kt?ht?f:h:ht?R:C,Et=rt?void 0:Je(we);return n(Et||we,function(st,xt){Et&&(xt=st,st=we[xt]),r(Fe,xt,Ge(st,_e,Be,xt,we,nt))}),Fe}return _h=Ge,_h}var bh,B1;function Tq(){if(B1)return bh;B1=1;var e=EC(),n=4;function r(i){return e(i,n)}return bh=r,bh}var Sh,U1;function Kv(){if(U1)return Sh;U1=1;function e(n){return function(){return n}}return Sh=e,Sh}var kh,H1;function Rq(){if(H1)return kh;H1=1;function e(n){return function(r,i,o){for(var l=-1,u=Object(r),c=o(r),p=c.length;p--;){var h=c[n?p:++l];if(i(u[h],h,u)===!1)break}return r}}return kh=e,kh}var Eh,W1;function Xv(){if(W1)return Eh;W1=1;var e=Rq(),n=e();return Eh=n,Eh}var Nh,V1;function Qv(){if(V1)return Nh;V1=1;var e=Xv(),n=vs();function r(i,o){return i&&e(i,o,n)}return Nh=r,Nh}var Ch,G1;function Aq(){if(G1)return Ch;G1=1;var e=Dr();function n(r,i){return function(o,l){if(o==null)return o;if(!e(o))return r(o,l);for(var u=o.length,c=i?u:-1,p=Object(o);(i?c--:++c<u)&&l(p[c],c,p)!==!1;);return o}}return Ch=n,Ch}var jh,Y1;function Au(){if(Y1)return jh;Y1=1;var e=Qv(),n=Aq(),r=n(e);return jh=r,jh}var Th,K1;function ui(){if(K1)return Th;K1=1;function e(n){return n}return Th=e,Th}var Rh,X1;function NC(){if(X1)return Rh;X1=1;var e=ui();function n(r){return typeof r=="function"?r:e}return Rh=n,Rh}var Ah,Q1;function CC(){if(Q1)return Ah;Q1=1;var e=Bv(),n=Au(),r=NC(),i=St();function o(l,u){var c=i(l)?e:n;return c(l,r(u))}return Ah=o,Ah}var Ih,Z1;function jC(){return Z1||(Z1=1,Ih=CC()),Ih}var Mh,J1;function Iq(){if(J1)return Mh;J1=1;var e=Au();function n(r,i){var o=[];return e(r,function(l,u,c){i(l,u,c)&&o.push(l)}),o}return Mh=n,Mh}var Ph,eb;function Mq(){if(eb)return Ph;eb=1;var e="__lodash_hash_undefined__";function n(r){return this.__data__.set(r,e),this}return Ph=n,Ph}var Oh,tb;function Pq(){if(tb)return Oh;tb=1;function e(n){return this.__data__.has(n)}return Oh=e,Oh}var Lh,nb;function TC(){if(nb)return Lh;nb=1;var e=zv(),n=Mq(),r=Pq();function i(o){var l=-1,u=o==null?0:o.length;for(this.__data__=new e;++l<u;)this.add(o[l])}return i.prototype.add=i.prototype.push=n,i.prototype.has=r,Lh=i,Lh}var qh,rb;function Oq(){if(rb)return qh;rb=1;function e(n,r){for(var i=-1,o=n==null?0:n.length;++i<o;)if(r(n[i],i,n))return!0;return!1}return qh=e,qh}var $h,sb;function RC(){if(sb)return $h;sb=1;function e(n,r){return n.has(r)}return $h=e,$h}var Dh,ib;function AC(){if(ib)return Dh;ib=1;var e=TC(),n=Oq(),r=RC(),i=1,o=2;function l(u,c,p,h,f,g){var y=p&i,x=u.length,N=c.length;if(x!=N&&!(y&&N>x))return!1;var _=g.get(u),S=g.get(c);if(_&&S)return _==c&&S==u;var b=-1,k=!0,E=p&o?new e:void 0;for(g.set(u,c),g.set(c,u);++b<x;){var C=u[b],R=c[b];if(h)var M=y?h(R,C,b,c,u,g):h(C,R,b,u,c,g);if(M!==void 0){if(M)continue;k=!1;break}if(E){if(!n(c,function(L,U){if(!r(E,U)&&(C===L||f(C,L,p,h,g)))return E.push(U)})){k=!1;break}}else if(!(C===R||f(C,R,p,h,g))){k=!1;break}}return g.delete(u),g.delete(c),k}return Dh=l,Dh}var Fh,ob;function Lq(){if(ob)return Fh;ob=1;function e(n){var r=-1,i=Array(n.size);return n.forEach(function(o,l){i[++r]=[l,o]}),i}return Fh=e,Fh}var zh,ab;function Zv(){if(ab)return zh;ab=1;function e(n){var r=-1,i=Array(n.size);return n.forEach(function(o){i[++r]=o}),i}return zh=e,zh}var Bh,lb;function qq(){if(lb)return Bh;lb=1;var e=uo(),n=_C(),r=lo(),i=AC(),o=Lq(),l=Zv(),u=1,c=2,p="[object Boolean]",h="[object Date]",f="[object Error]",g="[object Map]",y="[object Number]",x="[object RegExp]",N="[object Set]",_="[object String]",S="[object Symbol]",b="[object ArrayBuffer]",k="[object DataView]",E=e?e.prototype:void 0,C=E?E.valueOf:void 0;function R(M,L,U,O,P,F,G){switch(U){case k:if(M.byteLength!=L.byteLength||M.byteOffset!=L.byteOffset)return!1;M=M.buffer,L=L.buffer;case b:return!(M.byteLength!=L.byteLength||!F(new n(M),new n(L)));case p:case h:case y:return r(+M,+L);case f:return M.name==L.name&&M.message==L.message;case x:case _:return M==L+"";case g:var q=o;case N:var T=O&u;if(q||(q=l),M.size!=L.size&&!T)return!1;var Q=G.get(M);if(Q)return Q==L;O|=c,G.set(M,L);var z=i(q(M),q(L),O,P,F,G);return G.delete(M),z;case S:if(C)return C.call(M)==C.call(L)}return!1}return Bh=R,Bh}var Uh,ub;function $q(){if(ub)return Uh;ub=1;var e=wC(),n=1,r=Object.prototype,i=r.hasOwnProperty;function o(l,u,c,p,h,f){var g=c&n,y=e(l),x=y.length,N=e(u),_=N.length;if(x!=_&&!g)return!1;for(var S=x;S--;){var b=y[S];if(!(g?b in u:i.call(u,b)))return!1}var k=f.get(l),E=f.get(u);if(k&&E)return k==u&&E==l;var C=!0;f.set(l,u),f.set(u,l);for(var R=g;++S<x;){b=y[S];var M=l[b],L=u[b];if(p)var U=g?p(L,M,b,u,l,f):p(M,L,b,l,u,f);if(!(U===void 0?M===L||h(M,L,c,p,f):U)){C=!1;break}R||(R=b=="constructor")}if(C&&!R){var O=l.constructor,P=u.constructor;O!=P&&"constructor"in l&&"constructor"in u&&!(typeof O=="function"&&O instanceof O&&typeof P=="function"&&P instanceof P)&&(C=!1)}return f.delete(l),f.delete(u),C}return Uh=o,Uh}var Hh,cb;function Dq(){if(cb)return Hh;cb=1;var e=ku(),n=AC(),r=qq(),i=$q(),o=fo(),l=St(),u=co(),c=Sa(),p=1,h="[object Arguments]",f="[object Array]",g="[object Object]",y=Object.prototype,x=y.hasOwnProperty;function N(_,S,b,k,E,C){var R=l(_),M=l(S),L=R?f:o(_),U=M?f:o(S);L=L==h?g:L,U=U==h?g:U;var O=L==g,P=U==g,F=L==U;if(F&&u(_)){if(!u(S))return!1;R=!0,O=!1}if(F&&!O)return C||(C=new e),R||c(_)?n(_,S,b,k,E,C):r(_,S,L,b,k,E,C);if(!(b&p)){var G=O&&x.call(_,"__wrapped__"),q=P&&x.call(S,"__wrapped__");if(G||q){var T=G?_.value():_,Q=q?S.value():S;return C||(C=new e),E(T,Q,b,k,C)}}return F?(C||(C=new e),i(_,S,b,k,E,C)):!1}return Hh=N,Hh}var Wh,db;function IC(){if(db)return Wh;db=1;var e=Dq(),n=yr();function r(i,o,l,u,c){return i===o?!0:i==null||o==null||!n(i)&&!n(o)?i!==i&&o!==o:e(i,o,l,u,r,c)}return Wh=r,Wh}var Vh,fb;function Fq(){if(fb)return Vh;fb=1;var e=ku(),n=IC(),r=1,i=2;function o(l,u,c,p){var h=c.length,f=h,g=!p;if(l==null)return!f;for(l=Object(l);h--;){var y=c[h];if(g&&y[2]?y[1]!==l[y[0]]:!(y[0]in l))return!1}for(;++h<f;){y=c[h];var x=y[0],N=l[x],_=y[1];if(g&&y[2]){if(N===void 0&&!(x in l))return!1}else{var S=new e;if(p)var b=p(N,_,x,l,u,S);if(!(b===void 0?n(_,N,r|i,p,S):b))return!1}}return!0}return Vh=o,Vh}var Gh,hb;function MC(){if(hb)return Gh;hb=1;var e=Pn();function n(r){return r===r&&!e(r)}return Gh=n,Gh}var Yh,pb;function zq(){if(pb)return Yh;pb=1;var e=MC(),n=vs();function r(i){for(var o=n(i),l=o.length;l--;){var u=o[l],c=i[u];o[l]=[u,c,e(c)]}return o}return Yh=r,Yh}var Kh,mb;function PC(){if(mb)return Kh;mb=1;function e(n,r){return function(i){return i==null?!1:i[n]===r&&(r!==void 0||n in Object(i))}}return Kh=e,Kh}var Xh,gb;function Bq(){if(gb)return Xh;gb=1;var e=Fq(),n=zq(),r=PC();function i(o){var l=n(o);return l.length==1&&l[0][2]?r(l[0][0],l[0][1]):function(u){return u===o||e(u,o,l)}}return Xh=i,Xh}var Qh,vb;function ho(){if(vb)return Qh;vb=1;var e=oi(),n=yr(),r="[object Symbol]";function i(o){return typeof o=="symbol"||n(o)&&e(o)==r}return Qh=i,Qh}var Zh,yb;function Jv(){if(yb)return Zh;yb=1;var e=St(),n=ho(),r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;function o(l,u){if(e(l))return!1;var c=typeof l;return c=="number"||c=="symbol"||c=="boolean"||l==null||n(l)?!0:i.test(l)||!r.test(l)||u!=null&&l in Object(u)}return Zh=o,Zh}var Jh,wb;function Uq(){if(wb)return Jh;wb=1;var e=zv(),n="Expected a function";function r(i,o){if(typeof i!="function"||o!=null&&typeof o!="function")throw new TypeError(n);var l=function(){var u=arguments,c=o?o.apply(this,u):u[0],p=l.cache;if(p.has(c))return p.get(c);var h=i.apply(this,u);return l.cache=p.set(c,h)||p,h};return l.cache=new(r.Cache||e),l}return r.Cache=e,Jh=r,Jh}var ep,xb;function Hq(){if(xb)return ep;xb=1;var e=Uq(),n=500;function r(i){var o=e(i,function(u){return l.size===n&&l.clear(),u}),l=o.cache;return o}return ep=r,ep}var tp,_b;function Wq(){if(_b)return tp;_b=1;var e=Hq(),n=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,r=/\\(\\)?/g,i=e(function(o){var l=[];return o.charCodeAt(0)===46&&l.push(""),o.replace(n,function(u,c,p,h){l.push(p?h.replace(r,"$1"):c||u)}),l});return tp=i,tp}var np,bb;function Iu(){if(bb)return np;bb=1;function e(n,r){for(var i=-1,o=n==null?0:n.length,l=Array(o);++i<o;)l[i]=r(n[i],i,n);return l}return np=e,np}var rp,Sb;function Vq(){if(Sb)return rp;Sb=1;var e=uo(),n=Iu(),r=St(),i=ho(),o=e?e.prototype:void 0,l=o?o.toString:void 0;function u(c){if(typeof c=="string")return c;if(r(c))return n(c,u)+"";if(i(c))return l?l.call(c):"";var p=c+"";return p=="0"&&1/c==-1/0?"-0":p}return rp=u,rp}var sp,kb;function OC(){if(kb)return sp;kb=1;var e=Vq();function n(r){return r==null?"":e(r)}return sp=n,sp}var ip,Eb;function Mu(){if(Eb)return ip;Eb=1;var e=St(),n=Jv(),r=Wq(),i=OC();function o(l,u){return e(l)?l:n(l,u)?[l]:r(i(l))}return ip=o,ip}var op,Nb;function ka(){if(Nb)return op;Nb=1;var e=ho();function n(r){if(typeof r=="string"||e(r))return r;var i=r+"";return i=="0"&&1/r==-1/0?"-0":i}return op=n,op}var ap,Cb;function Pu(){if(Cb)return ap;Cb=1;var e=Mu(),n=ka();function r(i,o){o=e(o,i);for(var l=0,u=o.length;i!=null&&l<u;)i=i[n(o[l++])];return l&&l==u?i:void 0}return ap=r,ap}var lp,jb;function Gq(){if(jb)return lp;jb=1;var e=Pu();function n(r,i,o){var l=r==null?void 0:e(r,i);return l===void 0?o:l}return lp=n,lp}var up,Tb;function Yq(){if(Tb)return up;Tb=1;function e(n,r){return n!=null&&r in Object(n)}return up=e,up}var cp,Rb;function LC(){if(Rb)return cp;Rb=1;var e=Mu(),n=ba(),r=St(),i=Cu(),o=Uv(),l=ka();function u(c,p,h){p=e(p,c);for(var f=-1,g=p.length,y=!1;++f<g;){var x=l(p[f]);if(!(y=c!=null&&h(c,x)))break;c=c[x]}return y||++f!=g?y:(g=c==null?0:c.length,!!g&&o(g)&&i(x,g)&&(r(c)||n(c)))}return cp=u,cp}var dp,Ab;function qC(){if(Ab)return dp;Ab=1;var e=Yq(),n=LC();function r(i,o){return i!=null&&n(i,o,e)}return dp=r,dp}var fp,Ib;function Kq(){if(Ib)return fp;Ib=1;var e=IC(),n=Gq(),r=qC(),i=Jv(),o=MC(),l=PC(),u=ka(),c=1,p=2;function h(f,g){return i(f)&&o(g)?l(u(f),g):function(y){var x=n(y,f);return x===void 0&&x===g?r(y,f):e(g,x,c|p)}}return fp=h,fp}var hp,Mb;function $C(){if(Mb)return hp;Mb=1;function e(n){return function(r){return r==null?void 0:r[n]}}return hp=e,hp}var pp,Pb;function Xq(){if(Pb)return pp;Pb=1;var e=Pu();function n(r){return function(i){return e(i,r)}}return pp=n,pp}var mp,Ob;function Qq(){if(Ob)return mp;Ob=1;var e=$C(),n=Xq(),r=Jv(),i=ka();function o(l){return r(l)?e(i(l)):n(l)}return mp=o,mp}var gp,Lb;function Fr(){if(Lb)return gp;Lb=1;var e=Bq(),n=Kq(),r=ui(),i=St(),o=Qq();function l(u){return typeof u=="function"?u:u==null?r:typeof u=="object"?i(u)?n(u[0],u[1]):e(u):o(u)}return gp=l,gp}var vp,qb;function DC(){if(qb)return vp;qb=1;var e=mC(),n=Iq(),r=Fr(),i=St();function o(l,u){var c=i(l)?e:n;return c(l,r(u,3))}return vp=o,vp}var yp,$b;function Zq(){if($b)return yp;$b=1;var e=Object.prototype,n=e.hasOwnProperty;function r(i,o){return i!=null&&n.call(i,o)}return yp=r,yp}var wp,Db;function FC(){if(Db)return wp;Db=1;var e=Zq(),n=LC();function r(i,o){return i!=null&&n(i,o,e)}return wp=r,wp}var xp,Fb;function Jq(){if(Fb)return xp;Fb=1;var e=Wv(),n=fo(),r=ba(),i=St(),o=Dr(),l=co(),u=Tu(),c=Sa(),p="[object Map]",h="[object Set]",f=Object.prototype,g=f.hasOwnProperty;function y(x){if(x==null)return!0;if(o(x)&&(i(x)||typeof x=="string"||typeof x.splice=="function"||l(x)||c(x)||r(x)))return!x.length;var N=n(x);if(N==p||N==h)return!x.size;if(u(x))return!e(x).length;for(var _ in x)if(g.call(x,_))return!1;return!0}return xp=y,xp}var _p,zb;function zC(){if(zb)return _p;zb=1;function e(n){return n===void 0}return _p=e,_p}var bp,Bb;function BC(){if(Bb)return bp;Bb=1;var e=Au(),n=Dr();function r(i,o){var l=-1,u=n(i)?Array(i.length):[];return e(i,function(c,p,h){u[++l]=o(c,p,h)}),u}return bp=r,bp}var Sp,Ub;function UC(){if(Ub)return Sp;Ub=1;var e=Iu(),n=Fr(),r=BC(),i=St();function o(l,u){var c=i(l)?e:r;return c(l,n(u,3))}return Sp=o,Sp}var kp,Hb;function e$(){if(Hb)return kp;Hb=1;function e(n,r,i,o){var l=-1,u=n==null?0:n.length;for(o&&u&&(i=n[++l]);++l<u;)i=r(i,n[l],l,n);return i}return kp=e,kp}var Ep,Wb;function t$(){if(Wb)return Ep;Wb=1;function e(n,r,i,o,l){return l(n,function(u,c,p){i=o?(o=!1,u):r(i,u,c,p)}),i}return Ep=e,Ep}var Np,Vb;function HC(){if(Vb)return Np;Vb=1;var e=e$(),n=Au(),r=Fr(),i=t$(),o=St();function l(u,c,p){var h=o(u)?e:i,f=arguments.length<3;return h(u,r(c,4),p,f,n)}return Np=l,Np}var Cp,Gb;function n$(){if(Gb)return Cp;Gb=1;var e=oi(),n=St(),r=yr(),i="[object String]";function o(l){return typeof l=="string"||!n(l)&&r(l)&&e(l)==i}return Cp=o,Cp}var jp,Yb;function r$(){if(Yb)return jp;Yb=1;var e=$C(),n=e("length");return jp=n,jp}var Tp,Kb;function s$(){if(Kb)return Tp;Kb=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",i="\\u20d0-\\u20ff",o=n+r+i,l="\\ufe0e\\ufe0f",u="\\u200d",c=RegExp("["+u+e+o+l+"]");function p(h){return c.test(h)}return Tp=p,Tp}var Rp,Xb;function i$(){if(Xb)return Rp;Xb=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",i="\\u20d0-\\u20ff",o=n+r+i,l="\\ufe0e\\ufe0f",u="["+e+"]",c="["+o+"]",p="\\ud83c[\\udffb-\\udfff]",h="(?:"+c+"|"+p+")",f="[^"+e+"]",g="(?:\\ud83c[\\udde6-\\uddff]){2}",y="[\\ud800-\\udbff][\\udc00-\\udfff]",x="\\u200d",N=h+"?",_="["+l+"]?",S="(?:"+x+"(?:"+[f,g,y].join("|")+")"+_+N+")*",b=_+N+S,k="(?:"+[f+c+"?",c,g,y,u].join("|")+")",E=RegExp(p+"(?="+p+")|"+k+b,"g");function C(R){for(var M=E.lastIndex=0;E.test(R);)++M;return M}return Rp=C,Rp}var Ap,Qb;function o$(){if(Qb)return Ap;Qb=1;var e=r$(),n=s$(),r=i$();function i(o){return n(o)?r(o):e(o)}return Ap=i,Ap}var Ip,Zb;function a$(){if(Zb)return Ip;Zb=1;var e=Wv(),n=fo(),r=Dr(),i=n$(),o=o$(),l="[object Map]",u="[object Set]";function c(p){if(p==null)return 0;if(r(p))return i(p)?o(p):p.length;var h=n(p);return h==l||h==u?p.size:e(p).length}return Ip=c,Ip}var Mp,Jb;function l$(){if(Jb)return Mp;Jb=1;var e=Bv(),n=SC(),r=Qv(),i=Fr(),o=Ru(),l=St(),u=co(),c=xa(),p=Pn(),h=Sa();function f(g,y,x){var N=l(g),_=N||u(g)||h(g);if(y=i(y,4),x==null){var S=g&&g.constructor;_?x=N?new S:[]:p(g)?x=c(S)?n(o(g)):{}:x={}}return(_?e:r)(g,function(b,k,E){return y(x,b,k,E)}),x}return Mp=f,Mp}var Pp,eS;function u$(){if(eS)return Pp;eS=1;var e=uo(),n=ba(),r=St(),i=e?e.isConcatSpreadable:void 0;function o(l){return r(l)||n(l)||!!(i&&l&&l[i])}return Pp=o,Pp}var Op,tS;function ey(){if(tS)return Op;tS=1;var e=Gv(),n=u$();function r(i,o,l,u,c){var p=-1,h=i.length;for(l||(l=n),c||(c=[]);++p<h;){var f=i[p];o>0&&l(f)?o>1?r(f,o-1,l,u,c):e(c,f):u||(c[c.length]=f)}return c}return Op=r,Op}var Lp,nS;function c$(){if(nS)return Lp;nS=1;function e(n,r,i){switch(i.length){case 0:return n.call(r);case 1:return n.call(r,i[0]);case 2:return n.call(r,i[0],i[1]);case 3:return n.call(r,i[0],i[1],i[2])}return n.apply(r,i)}return Lp=e,Lp}var qp,rS;function WC(){if(rS)return qp;rS=1;var e=c$(),n=Math.max;function r(i,o,l){return o=n(o===void 0?i.length-1:o,0),function(){for(var u=arguments,c=-1,p=n(u.length-o,0),h=Array(p);++c<p;)h[c]=u[o+c];c=-1;for(var f=Array(o+1);++c<o;)f[c]=u[c];return f[o]=l(h),e(i,this,f)}}return qp=r,qp}var $p,sS;function d$(){if(sS)return $p;sS=1;var e=Kv(),n=cC(),r=ui(),i=n?function(o,l){return n(o,"toString",{configurable:!0,enumerable:!1,value:e(l),writable:!0})}:r;return $p=i,$p}var Dp,iS;function f$(){if(iS)return Dp;iS=1;var e=800,n=16,r=Date.now;function i(o){var l=0,u=0;return function(){var c=r(),p=n-(c-u);if(u=c,p>0){if(++l>=e)return arguments[0]}else l=0;return o.apply(void 0,arguments)}}return Dp=i,Dp}var Fp,oS;function VC(){if(oS)return Fp;oS=1;var e=d$(),n=f$(),r=n(e);return Fp=r,Fp}var zp,aS;function Ou(){if(aS)return zp;aS=1;var e=ui(),n=WC(),r=VC();function i(o,l){return r(n(o,l,e),o+"")}return zp=i,zp}var Bp,lS;function GC(){if(lS)return Bp;lS=1;function e(n,r,i,o){for(var l=n.length,u=i+(o?1:-1);o?u--:++u<l;)if(r(n[u],u,n))return u;return-1}return Bp=e,Bp}var Up,uS;function h$(){if(uS)return Up;uS=1;function e(n){return n!==n}return Up=e,Up}var Hp,cS;function p$(){if(cS)return Hp;cS=1;function e(n,r,i){for(var o=i-1,l=n.length;++o<l;)if(n[o]===r)return o;return-1}return Hp=e,Hp}var Wp,dS;function m$(){if(dS)return Wp;dS=1;var e=GC(),n=h$(),r=p$();function i(o,l,u){return l===l?r(o,l,u):e(o,n,u)}return Wp=i,Wp}var Vp,fS;function g$(){if(fS)return Vp;fS=1;var e=m$();function n(r,i){var o=r==null?0:r.length;return!!o&&e(r,i,0)>-1}return Vp=n,Vp}var Gp,hS;function v$(){if(hS)return Gp;hS=1;function e(n,r,i){for(var o=-1,l=n==null?0:n.length;++o<l;)if(i(r,n[o]))return!0;return!1}return Gp=e,Gp}var Yp,pS;function y$(){if(pS)return Yp;pS=1;function e(){}return Yp=e,Yp}var Kp,mS;function w$(){if(mS)return Kp;mS=1;var e=xC(),n=y$(),r=Zv(),i=1/0,o=e&&1/r(new e([,-0]))[1]==i?function(l){return new e(l)}:n;return Kp=o,Kp}var Xp,gS;function x$(){if(gS)return Xp;gS=1;var e=TC(),n=g$(),r=v$(),i=RC(),o=w$(),l=Zv(),u=200;function c(p,h,f){var g=-1,y=n,x=p.length,N=!0,_=[],S=_;if(f)N=!1,y=r;else if(x>=u){var b=h?null:o(p);if(b)return l(b);N=!1,y=i,S=new e}else S=h?[]:_;e:for(;++g<x;){var k=p[g],E=h?h(k):k;if(k=f||k!==0?k:0,N&&E===E){for(var C=S.length;C--;)if(S[C]===E)continue e;h&&S.push(E),_.push(k)}else y(S,E,f)||(S!==_&&S.push(E),_.push(k))}return _}return Xp=c,Xp}var Qp,vS;function YC(){if(vS)return Qp;vS=1;var e=Dr(),n=yr();function r(i){return n(i)&&e(i)}return Qp=r,Qp}var Zp,yS;function _$(){if(yS)return Zp;yS=1;var e=ey(),n=Ou(),r=x$(),i=YC(),o=n(function(l){return r(e(l,1,i,!0))});return Zp=o,Zp}var Jp,wS;function b$(){if(wS)return Jp;wS=1;var e=Iu();function n(r,i){return e(i,function(o){return r[o]})}return Jp=n,Jp}var em,xS;function KC(){if(xS)return em;xS=1;var e=b$(),n=vs();function r(i){return i==null?[]:e(i,n(i))}return em=r,em}var tm,_S;function On(){if(_S)return tm;_S=1;var e;if(typeof Dv=="function")try{e={clone:Tq(),constant:Kv(),each:jC(),filter:DC(),has:FC(),isArray:St(),isEmpty:Jq(),isFunction:xa(),isUndefined:zC(),keys:vs(),map:UC(),reduce:HC(),size:a$(),transform:l$(),union:_$(),values:KC()}}catch{}return e||(e=window._),tm=e,tm}var nm,bS;function ty(){if(bS)return nm;bS=1;var e=On();nm=o;var n="\0",r="\0",i="";function o(f){this._isDirected=e.has(f,"directed")?f.directed:!0,this._isMultigraph=e.has(f,"multigraph")?f.multigraph:!1,this._isCompound=e.has(f,"compound")?f.compound:!1,this._label=void 0,this._defaultNodeLabelFn=e.constant(void 0),this._defaultEdgeLabelFn=e.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[r]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}o.prototype._nodeCount=0,o.prototype._edgeCount=0,o.prototype.isDirected=function(){return this._isDirected},o.prototype.isMultigraph=function(){return this._isMultigraph},o.prototype.isCompound=function(){return this._isCompound},o.prototype.setGraph=function(f){return this._label=f,this},o.prototype.graph=function(){return this._label},o.prototype.setDefaultNodeLabel=function(f){return e.isFunction(f)||(f=e.constant(f)),this._defaultNodeLabelFn=f,this},o.prototype.nodeCount=function(){return this._nodeCount},o.prototype.nodes=function(){return e.keys(this._nodes)},o.prototype.sources=function(){var f=this;return e.filter(this.nodes(),function(g){return e.isEmpty(f._in[g])})},o.prototype.sinks=function(){var f=this;return e.filter(this.nodes(),function(g){return e.isEmpty(f._out[g])})},o.prototype.setNodes=function(f,g){var y=arguments,x=this;return e.each(f,function(N){y.length>1?x.setNode(N,g):x.setNode(N)}),this},o.prototype.setNode=function(f,g){return e.has(this._nodes,f)?(arguments.length>1&&(this._nodes[f]=g),this):(this._nodes[f]=arguments.length>1?g:this._defaultNodeLabelFn(f),this._isCompound&&(this._parent[f]=r,this._children[f]={},this._children[r][f]=!0),this._in[f]={},this._preds[f]={},this._out[f]={},this._sucs[f]={},++this._nodeCount,this)},o.prototype.node=function(f){return this._nodes[f]},o.prototype.hasNode=function(f){return e.has(this._nodes,f)},o.prototype.removeNode=function(f){var g=this;if(e.has(this._nodes,f)){var y=function(x){g.removeEdge(g._edgeObjs[x])};delete this._nodes[f],this._isCompound&&(this._removeFromParentsChildList(f),delete this._parent[f],e.each(this.children(f),function(x){g.setParent(x)}),delete this._children[f]),e.each(e.keys(this._in[f]),y),delete this._in[f],delete this._preds[f],e.each(e.keys(this._out[f]),y),delete this._out[f],delete this._sucs[f],--this._nodeCount}return this},o.prototype.setParent=function(f,g){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(e.isUndefined(g))g=r;else{g+="";for(var y=g;!e.isUndefined(y);y=this.parent(y))if(y===f)throw new Error("Setting "+g+" as parent of "+f+" would create a cycle");this.setNode(g)}return this.setNode(f),this._removeFromParentsChildList(f),this._parent[f]=g,this._children[g][f]=!0,this},o.prototype._removeFromParentsChildList=function(f){delete this._children[this._parent[f]][f]},o.prototype.parent=function(f){if(this._isCompound){var g=this._parent[f];if(g!==r)return g}},o.prototype.children=function(f){if(e.isUndefined(f)&&(f=r),this._isCompound){var g=this._children[f];if(g)return e.keys(g)}else{if(f===r)return this.nodes();if(this.hasNode(f))return[]}},o.prototype.predecessors=function(f){var g=this._preds[f];if(g)return e.keys(g)},o.prototype.successors=function(f){var g=this._sucs[f];if(g)return e.keys(g)},o.prototype.neighbors=function(f){var g=this.predecessors(f);if(g)return e.union(g,this.successors(f))},o.prototype.isLeaf=function(f){var g;return this.isDirected()?g=this.successors(f):g=this.neighbors(f),g.length===0},o.prototype.filterNodes=function(f){var g=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});g.setGraph(this.graph());var y=this;e.each(this._nodes,function(_,S){f(S)&&g.setNode(S,_)}),e.each(this._edgeObjs,function(_){g.hasNode(_.v)&&g.hasNode(_.w)&&g.setEdge(_,y.edge(_))});var x={};function N(_){var S=y.parent(_);return S===void 0||g.hasNode(S)?(x[_]=S,S):S in x?x[S]:N(S)}return this._isCompound&&e.each(g.nodes(),function(_){g.setParent(_,N(_))}),g},o.prototype.setDefaultEdgeLabel=function(f){return e.isFunction(f)||(f=e.constant(f)),this._defaultEdgeLabelFn=f,this},o.prototype.edgeCount=function(){return this._edgeCount},o.prototype.edges=function(){return e.values(this._edgeObjs)},o.prototype.setPath=function(f,g){var y=this,x=arguments;return e.reduce(f,function(N,_){return x.length>1?y.setEdge(N,_,g):y.setEdge(N,_),_}),this},o.prototype.setEdge=function(){var f,g,y,x,N=!1,_=arguments[0];typeof _=="object"&&_!==null&&"v"in _?(f=_.v,g=_.w,y=_.name,arguments.length===2&&(x=arguments[1],N=!0)):(f=_,g=arguments[1],y=arguments[3],arguments.length>2&&(x=arguments[2],N=!0)),f=""+f,g=""+g,e.isUndefined(y)||(y=""+y);var S=c(this._isDirected,f,g,y);if(e.has(this._edgeLabels,S))return N&&(this._edgeLabels[S]=x),this;if(!e.isUndefined(y)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(f),this.setNode(g),this._edgeLabels[S]=N?x:this._defaultEdgeLabelFn(f,g,y);var b=p(this._isDirected,f,g,y);return f=b.v,g=b.w,Object.freeze(b),this._edgeObjs[S]=b,l(this._preds[g],f),l(this._sucs[f],g),this._in[g][S]=b,this._out[f][S]=b,this._edgeCount++,this},o.prototype.edge=function(f,g,y){var x=arguments.length===1?h(this._isDirected,arguments[0]):c(this._isDirected,f,g,y);return this._edgeLabels[x]},o.prototype.hasEdge=function(f,g,y){var x=arguments.length===1?h(this._isDirected,arguments[0]):c(this._isDirected,f,g,y);return e.has(this._edgeLabels,x)},o.prototype.removeEdge=function(f,g,y){var x=arguments.length===1?h(this._isDirected,arguments[0]):c(this._isDirected,f,g,y),N=this._edgeObjs[x];return N&&(f=N.v,g=N.w,delete this._edgeLabels[x],delete this._edgeObjs[x],u(this._preds[g],f),u(this._sucs[f],g),delete this._in[g][x],delete this._out[f][x],this._edgeCount--),this},o.prototype.inEdges=function(f,g){var y=this._in[f];if(y){var x=e.values(y);return g?e.filter(x,function(N){return N.v===g}):x}},o.prototype.outEdges=function(f,g){var y=this._out[f];if(y){var x=e.values(y);return g?e.filter(x,function(N){return N.w===g}):x}},o.prototype.nodeEdges=function(f,g){var y=this.inEdges(f,g);if(y)return y.concat(this.outEdges(f,g))};function l(f,g){f[g]?f[g]++:f[g]=1}function u(f,g){--f[g]||delete f[g]}function c(f,g,y,x){var N=""+g,_=""+y;if(!f&&N>_){var S=N;N=_,_=S}return N+i+_+i+(e.isUndefined(x)?n:x)}function p(f,g,y,x){var N=""+g,_=""+y;if(!f&&N>_){var S=N;N=_,_=S}var b={v:N,w:_};return x&&(b.name=x),b}function h(f,g){return c(f,g.v,g.w,g.name)}return nm}var rm,SS;function S$(){return SS||(SS=1,rm="2.1.8"),rm}var sm,kS;function k$(){return kS||(kS=1,sm={Graph:ty(),version:S$()}),sm}var im,ES;function E$(){if(ES)return im;ES=1;var e=On(),n=ty();im={write:r,read:l};function r(u){var c={options:{directed:u.isDirected(),multigraph:u.isMultigraph(),compound:u.isCompound()},nodes:i(u),edges:o(u)};return e.isUndefined(u.graph())||(c.value=e.clone(u.graph())),c}function i(u){return e.map(u.nodes(),function(c){var p=u.node(c),h=u.parent(c),f={v:c};return e.isUndefined(p)||(f.value=p),e.isUndefined(h)||(f.parent=h),f})}function o(u){return e.map(u.edges(),function(c){var p=u.edge(c),h={v:c.v,w:c.w};return e.isUndefined(c.name)||(h.name=c.name),e.isUndefined(p)||(h.value=p),h})}function l(u){var c=new n(u.options).setGraph(u.value);return e.each(u.nodes,function(p){c.setNode(p.v,p.value),p.parent&&c.setParent(p.v,p.parent)}),e.each(u.edges,function(p){c.setEdge({v:p.v,w:p.w,name:p.name},p.value)}),c}return im}var om,NS;function N$(){if(NS)return om;NS=1;var e=On();om=n;function n(r){var i={},o=[],l;function u(c){e.has(i,c)||(i[c]=!0,l.push(c),e.each(r.successors(c),u),e.each(r.predecessors(c),u))}return e.each(r.nodes(),function(c){l=[],u(c),l.length&&o.push(l)}),o}return om}var am,CS;function XC(){if(CS)return am;CS=1;var e=On();am=n;function n(){this._arr=[],this._keyIndices={}}return n.prototype.size=function(){return this._arr.length},n.prototype.keys=function(){return this._arr.map(function(r){return r.key})},n.prototype.has=function(r){return e.has(this._keyIndices,r)},n.prototype.priority=function(r){var i=this._keyIndices[r];if(i!==void 0)return this._arr[i].priority},n.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key},n.prototype.add=function(r,i){var o=this._keyIndices;if(r=String(r),!e.has(o,r)){var l=this._arr,u=l.length;return o[r]=u,l.push({key:r,priority:i}),this._decrease(u),!0}return!1},n.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var r=this._arr.pop();return delete this._keyIndices[r.key],this._heapify(0),r.key},n.prototype.decrease=function(r,i){var o=this._keyIndices[r];if(i>this._arr[o].priority)throw new Error("New priority is greater than current priority. Key: "+r+" Old: "+this._arr[o].priority+" New: "+i);this._arr[o].priority=i,this._decrease(o)},n.prototype._heapify=function(r){var i=this._arr,o=2*r,l=o+1,u=r;o<i.length&&(u=i[o].priority<i[u].priority?o:u,l<i.length&&(u=i[l].priority<i[u].priority?l:u),u!==r&&(this._swap(r,u),this._heapify(u)))},n.prototype._decrease=function(r){for(var i=this._arr,o=i[r].priority,l;r!==0&&(l=r>>1,!(i[l].priority<o));)this._swap(r,l),r=l},n.prototype._swap=function(r,i){var o=this._arr,l=this._keyIndices,u=o[r],c=o[i];o[r]=c,o[i]=u,l[c.key]=r,l[u.key]=i},am}var lm,jS;function QC(){if(jS)return lm;jS=1;var e=On(),n=XC();lm=i;var r=e.constant(1);function i(l,u,c,p){return o(l,String(u),c||r,p||function(h){return l.outEdges(h)})}function o(l,u,c,p){var h={},f=new n,g,y,x=function(N){var _=N.v!==g?N.v:N.w,S=h[_],b=c(N),k=y.distance+b;if(b<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+N+" Weight: "+b);k<S.distance&&(S.distance=k,S.predecessor=g,f.decrease(_,k))};for(l.nodes().forEach(function(N){var _=N===u?0:Number.POSITIVE_INFINITY;h[N]={distance:_},f.add(N,_)});f.size()>0&&(g=f.removeMin(),y=h[g],y.distance!==Number.POSITIVE_INFINITY);)p(g).forEach(x);return h}return lm}var um,TS;function C$(){if(TS)return um;TS=1;var e=QC(),n=On();um=r;function r(i,o,l){return n.transform(i.nodes(),function(u,c){u[c]=e(i,c,o,l)},{})}return um}var cm,RS;function ZC(){if(RS)return cm;RS=1;var e=On();cm=n;function n(r){var i=0,o=[],l={},u=[];function c(p){var h=l[p]={onStack:!0,lowlink:i,index:i++};if(o.push(p),r.successors(p).forEach(function(y){e.has(l,y)?l[y].onStack&&(h.lowlink=Math.min(h.lowlink,l[y].index)):(c(y),h.lowlink=Math.min(h.lowlink,l[y].lowlink))}),h.lowlink===h.index){var f=[],g;do g=o.pop(),l[g].onStack=!1,f.push(g);while(p!==g);u.push(f)}}return r.nodes().forEach(function(p){e.has(l,p)||c(p)}),u}return cm}var dm,AS;function j$(){if(AS)return dm;AS=1;var e=On(),n=ZC();dm=r;function r(i){return e.filter(n(i),function(o){return o.length>1||o.length===1&&i.hasEdge(o[0],o[0])})}return dm}var fm,IS;function T$(){if(IS)return fm;IS=1;var e=On();fm=r;var n=e.constant(1);function r(o,l,u){return i(o,l||n,u||function(c){return o.outEdges(c)})}function i(o,l,u){var c={},p=o.nodes();return p.forEach(function(h){c[h]={},c[h][h]={distance:0},p.forEach(function(f){h!==f&&(c[h][f]={distance:Number.POSITIVE_INFINITY})}),u(h).forEach(function(f){var g=f.v===h?f.w:f.v,y=l(f);c[h][g]={distance:y,predecessor:h}})}),p.forEach(function(h){var f=c[h];p.forEach(function(g){var y=c[g];p.forEach(function(x){var N=y[h],_=f[x],S=y[x],b=N.distance+_.distance;b<S.distance&&(S.distance=b,S.predecessor=_.predecessor)})})}),c}return fm}var hm,MS;function JC(){if(MS)return hm;MS=1;var e=On();hm=n,n.CycleException=r;function n(i){var o={},l={},u=[];function c(p){if(e.has(l,p))throw new r;e.has(o,p)||(l[p]=!0,o[p]=!0,e.each(i.predecessors(p),c),delete l[p],u.push(p))}if(e.each(i.sinks(),c),e.size(o)!==i.nodeCount())throw new r;return u}function r(){}return r.prototype=new Error,hm}var pm,PS;function R$(){if(PS)return pm;PS=1;var e=JC();pm=n;function n(r){try{e(r)}catch(i){if(i instanceof e.CycleException)return!1;throw i}return!0}return pm}var mm,OS;function ej(){if(OS)return mm;OS=1;var e=On();mm=n;function n(i,o,l){e.isArray(o)||(o=[o]);var u=(i.isDirected()?i.successors:i.neighbors).bind(i),c=[],p={};return e.each(o,function(h){if(!i.hasNode(h))throw new Error("Graph does not have node: "+h);r(i,h,l==="post",p,u,c)}),c}function r(i,o,l,u,c,p){e.has(u,o)||(u[o]=!0,l||p.push(o),e.each(c(o),function(h){r(i,h,l,u,c,p)}),l&&p.push(o))}return mm}var gm,LS;function A$(){if(LS)return gm;LS=1;var e=ej();gm=n;function n(r,i){return e(r,i,"post")}return gm}var vm,qS;function I$(){if(qS)return vm;qS=1;var e=ej();vm=n;function n(r,i){return e(r,i,"pre")}return vm}var ym,$S;function M$(){if($S)return ym;$S=1;var e=On(),n=ty(),r=XC();ym=i;function i(o,l){var u=new n,c={},p=new r,h;function f(y){var x=y.v===h?y.w:y.v,N=p.priority(x);if(N!==void 0){var _=l(y);_<N&&(c[x]=h,p.decrease(x,_))}}if(o.nodeCount()===0)return u;e.each(o.nodes(),function(y){p.add(y,Number.POSITIVE_INFINITY),u.setNode(y)}),p.decrease(o.nodes()[0],0);for(var g=!1;p.size()>0;){if(h=p.removeMin(),e.has(c,h))u.setEdge(h,c[h]);else{if(g)throw new Error("Input graph is not connected: "+o);g=!0}o.nodeEdges(h).forEach(f)}return u}return ym}var wm,DS;function P$(){return DS||(DS=1,wm={components:N$(),dijkstra:QC(),dijkstraAll:C$(),findCycles:j$(),floydWarshall:T$(),isAcyclic:R$(),postorder:A$(),preorder:I$(),prim:M$(),tarjan:ZC(),topsort:JC()}),wm}var xm,FS;function O$(){if(FS)return xm;FS=1;var e=k$();return xm={Graph:e.Graph,json:E$(),alg:P$(),version:e.version},xm}var _m,zS;function tr(){if(zS)return _m;zS=1;var e;if(typeof Dv=="function")try{e=O$()}catch{}return e||(e=window.graphlib),_m=e,_m}var bm,BS;function L$(){if(BS)return bm;BS=1;var e=EC(),n=1,r=4;function i(o){return e(o,n|r)}return bm=i,bm}var Sm,US;function Lu(){if(US)return Sm;US=1;var e=lo(),n=Dr(),r=Cu(),i=Pn();function o(l,u,c){if(!i(c))return!1;var p=typeof u;return(p=="number"?n(c)&&r(u,c.length):p=="string"&&u in c)?e(c[u],l):!1}return Sm=o,Sm}var km,HS;function q$(){if(HS)return km;HS=1;var e=Ou(),n=lo(),r=Lu(),i=li(),o=Object.prototype,l=o.hasOwnProperty,u=e(function(c,p){c=Object(c);var h=-1,f=p.length,g=f>2?p[2]:void 0;for(g&&r(p[0],p[1],g)&&(f=1);++h<f;)for(var y=p[h],x=i(y),N=-1,_=x.length;++N<_;){var S=x[N],b=c[S];(b===void 0||n(b,o[S])&&!l.call(c,S))&&(c[S]=y[S])}return c});return km=u,km}var Em,WS;function $$(){if(WS)return Em;WS=1;var e=Fr(),n=Dr(),r=vs();function i(o){return function(l,u,c){var p=Object(l);if(!n(l)){var h=e(u,3);l=r(l),u=function(g){return h(p[g],g,p)}}var f=o(l,u,c);return f>-1?p[h?l[f]:f]:void 0}}return Em=i,Em}var Nm,VS;function D$(){if(VS)return Nm;VS=1;var e=/\s/;function n(r){for(var i=r.length;i--&&e.test(r.charAt(i)););return i}return Nm=n,Nm}var Cm,GS;function F$(){if(GS)return Cm;GS=1;var e=D$(),n=/^\s+/;function r(i){return i&&i.slice(0,e(i)+1).replace(n,"")}return Cm=r,Cm}var jm,YS;function z$(){if(YS)return jm;YS=1;var e=F$(),n=Pn(),r=ho(),i=NaN,o=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt;function p(h){if(typeof h=="number")return h;if(r(h))return i;if(n(h)){var f=typeof h.valueOf=="function"?h.valueOf():h;h=n(f)?f+"":f}if(typeof h!="string")return h===0?h:+h;h=e(h);var g=l.test(h);return g||u.test(h)?c(h.slice(2),g?2:8):o.test(h)?i:+h}return jm=p,jm}var Tm,KS;function tj(){if(KS)return Tm;KS=1;var e=z$(),n=1/0,r=17976931348623157e292;function i(o){if(!o)return o===0?o:0;if(o=e(o),o===n||o===-n){var l=o<0?-1:1;return l*r}return o===o?o:0}return Tm=i,Tm}var Rm,XS;function B$(){if(XS)return Rm;XS=1;var e=tj();function n(r){var i=e(r),o=i%1;return i===i?o?i-o:i:0}return Rm=n,Rm}var Am,QS;function U$(){if(QS)return Am;QS=1;var e=GC(),n=Fr(),r=B$(),i=Math.max;function o(l,u,c){var p=l==null?0:l.length;if(!p)return-1;var h=c==null?0:r(c);return h<0&&(h=i(p+h,0)),e(l,n(u,3),h)}return Am=o,Am}var Im,ZS;function H$(){if(ZS)return Im;ZS=1;var e=$$(),n=U$(),r=e(n);return Im=r,Im}var Mm,JS;function nj(){if(JS)return Mm;JS=1;var e=ey();function n(r){var i=r==null?0:r.length;return i?e(r,1):[]}return Mm=n,Mm}var Pm,ek;function W$(){if(ek)return Pm;ek=1;var e=Xv(),n=NC(),r=li();function i(o,l){return o==null?o:e(o,n(l),r)}return Pm=i,Pm}var Om,tk;function V$(){if(tk)return Om;tk=1;function e(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}return Om=e,Om}var Lm,nk;function G$(){if(nk)return Lm;nk=1;var e=Eu(),n=Qv(),r=Fr();function i(o,l){var u={};return l=r(l,3),n(o,function(c,p,h){e(u,p,l(c,p,h))}),u}return Lm=i,Lm}var qm,rk;function ny(){if(rk)return qm;rk=1;var e=ho();function n(r,i,o){for(var l=-1,u=r.length;++l<u;){var c=r[l],p=i(c);if(p!=null&&(h===void 0?p===p&&!e(p):o(p,h)))var h=p,f=c}return f}return qm=n,qm}var $m,sk;function Y$(){if(sk)return $m;sk=1;function e(n,r){return n>r}return $m=e,$m}var Dm,ik;function K$(){if(ik)return Dm;ik=1;var e=ny(),n=Y$(),r=ui();function i(o){return o&&o.length?e(o,r,n):void 0}return Dm=i,Dm}var Fm,ok;function rj(){if(ok)return Fm;ok=1;var e=Eu(),n=lo();function r(i,o,l){(l!==void 0&&!n(i[o],l)||l===void 0&&!(o in i))&&e(i,o,l)}return Fm=r,Fm}var zm,ak;function X$(){if(ak)return zm;ak=1;var e=oi(),n=Ru(),r=yr(),i="[object Object]",o=Function.prototype,l=Object.prototype,u=o.toString,c=l.hasOwnProperty,p=u.call(Object);function h(f){if(!r(f)||e(f)!=i)return!1;var g=n(f);if(g===null)return!0;var y=c.call(g,"constructor")&&g.constructor;return typeof y=="function"&&y instanceof y&&u.call(y)==p}return zm=h,zm}var Bm,lk;function sj(){if(lk)return Bm;lk=1;function e(n,r){if(!(r==="constructor"&&typeof n[r]=="function")&&r!="__proto__")return n[r]}return Bm=e,Bm}var Um,uk;function Q$(){if(uk)return Um;uk=1;var e=_a(),n=li();function r(i){return e(i,n(i))}return Um=r,Um}var Hm,ck;function Z$(){if(ck)return Hm;ck=1;var e=rj(),n=hC(),r=bC(),i=pC(),o=kC(),l=ba(),u=St(),c=YC(),p=co(),h=xa(),f=Pn(),g=X$(),y=Sa(),x=sj(),N=Q$();function _(S,b,k,E,C,R,M){var L=x(S,k),U=x(b,k),O=M.get(U);if(O){e(S,k,O);return}var P=R?R(L,U,k+"",S,b,M):void 0,F=P===void 0;if(F){var G=u(U),q=!G&&p(U),T=!G&&!q&&y(U);P=U,G||q||T?u(L)?P=L:c(L)?P=i(L):q?(F=!1,P=n(U,!0)):T?(F=!1,P=r(U,!0)):P=[]:g(U)||l(U)?(P=L,l(L)?P=N(L):(!f(L)||h(L))&&(P=o(U))):F=!1}F&&(M.set(U,P),C(P,U,E,R,M),M.delete(U)),e(S,k,P)}return Hm=_,Hm}var Wm,dk;function J$(){if(dk)return Wm;dk=1;var e=ku(),n=rj(),r=Xv(),i=Z$(),o=Pn(),l=li(),u=sj();function c(p,h,f,g,y){p!==h&&r(h,function(x,N){if(y||(y=new e),o(x))i(p,h,N,f,c,g,y);else{var _=g?g(u(p,N),x,N+"",p,h,y):void 0;_===void 0&&(_=x),n(p,N,_)}},l)}return Wm=c,Wm}var Vm,fk;function e4(){if(fk)return Vm;fk=1;var e=Ou(),n=Lu();function r(i){return e(function(o,l){var u=-1,c=l.length,p=c>1?l[c-1]:void 0,h=c>2?l[2]:void 0;for(p=i.length>3&&typeof p=="function"?(c--,p):void 0,h&&n(l[0],l[1],h)&&(p=c<3?void 0:p,c=1),o=Object(o);++u<c;){var f=l[u];f&&i(o,f,u,p)}return o})}return Vm=r,Vm}var Gm,hk;function t4(){if(hk)return Gm;hk=1;var e=J$(),n=e4(),r=n(function(i,o,l){e(i,o,l)});return Gm=r,Gm}var Ym,pk;function ij(){if(pk)return Ym;pk=1;function e(n,r){return n<r}return Ym=e,Ym}var Km,mk;function n4(){if(mk)return Km;mk=1;var e=ny(),n=ij(),r=ui();function i(o){return o&&o.length?e(o,r,n):void 0}return Km=i,Km}var Xm,gk;function r4(){if(gk)return Xm;gk=1;var e=ny(),n=Fr(),r=ij();function i(o,l){return o&&o.length?e(o,n(l,2),r):void 0}return Xm=i,Xm}var Qm,vk;function s4(){if(vk)return Qm;vk=1;var e=rr(),n=function(){return e.Date.now()};return Qm=n,Qm}var Zm,yk;function i4(){if(yk)return Zm;yk=1;var e=Nu(),n=Mu(),r=Cu(),i=Pn(),o=ka();function l(u,c,p,h){if(!i(u))return u;c=n(c,u);for(var f=-1,g=c.length,y=g-1,x=u;x!=null&&++f<g;){var N=o(c[f]),_=p;if(N==="__proto__"||N==="constructor"||N==="prototype")return u;if(f!=y){var S=x[N];_=h?h(S,N,x):void 0,_===void 0&&(_=i(S)?S:r(c[f+1])?[]:{})}e(x,N,_),x=x[N]}return u}return Zm=l,Zm}var Jm,wk;function o4(){if(wk)return Jm;wk=1;var e=Pu(),n=i4(),r=Mu();function i(o,l,u){for(var c=-1,p=l.length,h={};++c<p;){var f=l[c],g=e(o,f);u(g,f)&&n(h,r(f,o),g)}return h}return Jm=i,Jm}var eg,xk;function a4(){if(xk)return eg;xk=1;var e=o4(),n=qC();function r(i,o){return e(i,o,function(l,u){return n(i,u)})}return eg=r,eg}var tg,_k;function l4(){if(_k)return tg;_k=1;var e=nj(),n=WC(),r=VC();function i(o){return r(n(o,void 0,e),o+"")}return tg=i,tg}var ng,bk;function u4(){if(bk)return ng;bk=1;var e=a4(),n=l4(),r=n(function(i,o){return i==null?{}:e(i,o)});return ng=r,ng}var rg,Sk;function c4(){if(Sk)return rg;Sk=1;var e=Math.ceil,n=Math.max;function r(i,o,l,u){for(var c=-1,p=n(e((o-i)/(l||1)),0),h=Array(p);p--;)h[u?p:++c]=i,i+=l;return h}return rg=r,rg}var sg,kk;function d4(){if(kk)return sg;kk=1;var e=c4(),n=Lu(),r=tj();function i(o){return function(l,u,c){return c&&typeof c!="number"&&n(l,u,c)&&(u=c=void 0),l=r(l),u===void 0?(u=l,l=0):u=r(u),c=c===void 0?l<u?1:-1:r(c),e(l,u,c,o)}}return sg=i,sg}var ig,Ek;function f4(){if(Ek)return ig;Ek=1;var e=d4(),n=e();return ig=n,ig}var og,Nk;function h4(){if(Nk)return og;Nk=1;function e(n,r){var i=n.length;for(n.sort(r);i--;)n[i]=n[i].value;return n}return og=e,og}var ag,Ck;function p4(){if(Ck)return ag;Ck=1;var e=ho();function n(r,i){if(r!==i){var o=r!==void 0,l=r===null,u=r===r,c=e(r),p=i!==void 0,h=i===null,f=i===i,g=e(i);if(!h&&!g&&!c&&r>i||c&&p&&f&&!h&&!g||l&&p&&f||!o&&f||!u)return 1;if(!l&&!c&&!g&&r<i||g&&o&&u&&!l&&!c||h&&o&&u||!p&&u||!f)return-1}return 0}return ag=n,ag}var lg,jk;function m4(){if(jk)return lg;jk=1;var e=p4();function n(r,i,o){for(var l=-1,u=r.criteria,c=i.criteria,p=u.length,h=o.length;++l<p;){var f=e(u[l],c[l]);if(f){if(l>=h)return f;var g=o[l];return f*(g=="desc"?-1:1)}}return r.index-i.index}return lg=n,lg}var ug,Tk;function g4(){if(Tk)return ug;Tk=1;var e=Iu(),n=Pu(),r=Fr(),i=BC(),o=h4(),l=ju(),u=m4(),c=ui(),p=St();function h(f,g,y){g.length?g=e(g,function(_){return p(_)?function(S){return n(S,_.length===1?_[0]:_)}:_}):g=[c];var x=-1;g=e(g,l(r));var N=i(f,function(_,S,b){var k=e(g,function(E){return E(_)});return{criteria:k,index:++x,value:_}});return o(N,function(_,S){return u(_,S,y)})}return ug=h,ug}var cg,Rk;function v4(){if(Rk)return cg;Rk=1;var e=ey(),n=g4(),r=Ou(),i=Lu(),o=r(function(l,u){if(l==null)return[];var c=u.length;return c>1&&i(l,u[0],u[1])?u=[]:c>2&&i(u[0],u[1],u[2])&&(u=[u[0]]),n(l,e(u,1),[])});return cg=o,cg}var dg,Ak;function y4(){if(Ak)return dg;Ak=1;var e=OC(),n=0;function r(i){var o=++n;return e(i)+o}return dg=r,dg}var fg,Ik;function w4(){if(Ik)return fg;Ik=1;function e(n,r,i){for(var o=-1,l=n.length,u=r.length,c={};++o<l;){var p=o<u?r[o]:void 0;i(c,n[o],p)}return c}return fg=e,fg}var hg,Mk;function x4(){if(Mk)return hg;Mk=1;var e=Nu(),n=w4();function r(i,o){return n(i||[],o||[],e)}return hg=r,hg}var pg,Pk;function ct(){if(Pk)return pg;Pk=1;var e;if(typeof Dv=="function")try{e={cloneDeep:L$(),constant:Kv(),defaults:q$(),each:jC(),filter:DC(),find:H$(),flatten:nj(),forEach:CC(),forIn:W$(),has:FC(),isUndefined:zC(),last:V$(),map:UC(),mapValues:G$(),max:K$(),merge:t4(),min:n4(),minBy:r4(),now:s4(),pick:u4(),range:f4(),reduce:HC(),sortBy:v4(),uniqueId:y4(),values:KC(),zipObject:x4()}}catch{}return e||(e=window._),pg=e,pg}var mg,Ok;function _4(){if(Ok)return mg;Ok=1,mg=e;function e(){var i={};i._next=i._prev=i,this._sentinel=i}e.prototype.dequeue=function(){var i=this._sentinel,o=i._prev;if(o!==i)return n(o),o},e.prototype.enqueue=function(i){var o=this._sentinel;i._prev&&i._next&&n(i),i._next=o._next,o._next._prev=i,o._next=i,i._prev=o},e.prototype.toString=function(){for(var i=[],o=this._sentinel,l=o._prev;l!==o;)i.push(JSON.stringify(l,r)),l=l._prev;return"["+i.join(", ")+"]"};function n(i){i._prev._next=i._next,i._next._prev=i._prev,delete i._next,delete i._prev}function r(i,o){if(i!=="_next"&&i!=="_prev")return o}return mg}var gg,Lk;function b4(){if(Lk)return gg;Lk=1;var e=ct(),n=tr().Graph,r=_4();gg=o;var i=e.constant(1);function o(h,f){if(h.nodeCount()<=1)return[];var g=c(h,f||i),y=l(g.graph,g.buckets,g.zeroIdx);return e.flatten(e.map(y,function(x){return h.outEdges(x.v,x.w)}),!0)}function l(h,f,g){for(var y=[],x=f[f.length-1],N=f[0],_;h.nodeCount();){for(;_=N.dequeue();)u(h,f,g,_);for(;_=x.dequeue();)u(h,f,g,_);if(h.nodeCount()){for(var S=f.length-2;S>0;--S)if(_=f[S].dequeue(),_){y=y.concat(u(h,f,g,_,!0));break}}}return y}function u(h,f,g,y,x){var N=x?[]:void 0;return e.forEach(h.inEdges(y.v),function(_){var S=h.edge(_),b=h.node(_.v);x&&N.push({v:_.v,w:_.w}),b.out-=S,p(f,g,b)}),e.forEach(h.outEdges(y.v),function(_){var S=h.edge(_),b=_.w,k=h.node(b);k.in-=S,p(f,g,k)}),h.removeNode(y.v),N}function c(h,f){var g=new n,y=0,x=0;e.forEach(h.nodes(),function(S){g.setNode(S,{v:S,in:0,out:0})}),e.forEach(h.edges(),function(S){var b=g.edge(S.v,S.w)||0,k=f(S),E=b+k;g.setEdge(S.v,S.w,E),x=Math.max(x,g.node(S.v).out+=k),y=Math.max(y,g.node(S.w).in+=k)});var N=e.range(x+y+3).map(function(){return new r}),_=y+1;return e.forEach(g.nodes(),function(S){p(N,_,g.node(S))}),{graph:g,buckets:N,zeroIdx:_}}function p(h,f,g){g.out?g.in?h[g.out-g.in+f].enqueue(g):h[h.length-1].enqueue(g):h[0].enqueue(g)}return gg}var vg,qk;function S4(){if(qk)return vg;qk=1;var e=ct(),n=b4();vg={run:r,undo:o};function r(l){var u=l.graph().acyclicer==="greedy"?n(l,c(l)):i(l);e.forEach(u,function(p){var h=l.edge(p);l.removeEdge(p),h.forwardName=p.name,h.reversed=!0,l.setEdge(p.w,p.v,h,e.uniqueId("rev"))});function c(p){return function(h){return p.edge(h).weight}}}function i(l){var u=[],c={},p={};function h(f){e.has(p,f)||(p[f]=!0,c[f]=!0,e.forEach(l.outEdges(f),function(g){e.has(c,g.w)?u.push(g):h(g.w)}),delete c[f])}return e.forEach(l.nodes(),h),u}function o(l){e.forEach(l.edges(),function(u){var c=l.edge(u);if(c.reversed){l.removeEdge(u);var p=c.forwardName;delete c.reversed,delete c.forwardName,l.setEdge(u.w,u.v,c,p)}})}return vg}var yg,$k;function un(){if($k)return yg;$k=1;var e=ct(),n=tr().Graph;yg={addDummyNode:r,simplify:i,asNonCompoundGraph:o,successorWeights:l,predecessorWeights:u,intersectRect:c,buildLayerMatrix:p,normalizeRanks:h,removeEmptyRanks:f,addBorderNode:g,maxRank:y,partition:x,time:N,notime:_};function r(S,b,k,E){var C;do C=e.uniqueId(E);while(S.hasNode(C));return k.dummy=b,S.setNode(C,k),C}function i(S){var b=new n().setGraph(S.graph());return e.forEach(S.nodes(),function(k){b.setNode(k,S.node(k))}),e.forEach(S.edges(),function(k){var E=b.edge(k.v,k.w)||{weight:0,minlen:1},C=S.edge(k);b.setEdge(k.v,k.w,{weight:E.weight+C.weight,minlen:Math.max(E.minlen,C.minlen)})}),b}function o(S){var b=new n({multigraph:S.isMultigraph()}).setGraph(S.graph());return e.forEach(S.nodes(),function(k){S.children(k).length||b.setNode(k,S.node(k))}),e.forEach(S.edges(),function(k){b.setEdge(k,S.edge(k))}),b}function l(S){var b=e.map(S.nodes(),function(k){var E={};return e.forEach(S.outEdges(k),function(C){E[C.w]=(E[C.w]||0)+S.edge(C).weight}),E});return e.zipObject(S.nodes(),b)}function u(S){var b=e.map(S.nodes(),function(k){var E={};return e.forEach(S.inEdges(k),function(C){E[C.v]=(E[C.v]||0)+S.edge(C).weight}),E});return e.zipObject(S.nodes(),b)}function c(S,b){var k=S.x,E=S.y,C=b.x-k,R=b.y-E,M=S.width/2,L=S.height/2;if(!C&&!R)throw new Error("Not possible to find intersection inside of the rectangle");var U,O;return Math.abs(R)*M>Math.abs(C)*L?(R<0&&(L=-L),U=L*C/R,O=L):(C<0&&(M=-M),U=M,O=M*R/C),{x:k+U,y:E+O}}function p(S){var b=e.map(e.range(y(S)+1),function(){return[]});return e.forEach(S.nodes(),function(k){var E=S.node(k),C=E.rank;e.isUndefined(C)||(b[C][E.order]=k)}),b}function h(S){var b=e.min(e.map(S.nodes(),function(k){return S.node(k).rank}));e.forEach(S.nodes(),function(k){var E=S.node(k);e.has(E,"rank")&&(E.rank-=b)})}function f(S){var b=e.min(e.map(S.nodes(),function(R){return S.node(R).rank})),k=[];e.forEach(S.nodes(),function(R){var M=S.node(R).rank-b;k[M]||(k[M]=[]),k[M].push(R)});var E=0,C=S.graph().nodeRankFactor;e.forEach(k,function(R,M){e.isUndefined(R)&&M%C!==0?--E:E&&e.forEach(R,function(L){S.node(L).rank+=E})})}function g(S,b,k,E){var C={width:0,height:0};return arguments.length>=4&&(C.rank=k,C.order=E),r(S,"border",C,b)}function y(S){return e.max(e.map(S.nodes(),function(b){var k=S.node(b).rank;if(!e.isUndefined(k))return k}))}function x(S,b){var k={lhs:[],rhs:[]};return e.forEach(S,function(E){b(E)?k.lhs.push(E):k.rhs.push(E)}),k}function N(S,b){var k=e.now();try{return b()}finally{console.log(S+" time: "+(e.now()-k)+"ms")}}function _(S,b){return b()}return yg}var wg,Dk;function k4(){if(Dk)return wg;Dk=1;var e=ct(),n=un();wg={run:r,undo:o};function r(l){l.graph().dummyChains=[],e.forEach(l.edges(),function(u){i(l,u)})}function i(l,u){var c=u.v,p=l.node(c).rank,h=u.w,f=l.node(h).rank,g=u.name,y=l.edge(u),x=y.labelRank;if(f!==p+1){l.removeEdge(u);var N,_,S;for(S=0,++p;p<f;++S,++p)y.points=[],_={width:0,height:0,edgeLabel:y,edgeObj:u,rank:p},N=n.addDummyNode(l,"edge",_,"_d"),p===x&&(_.width=y.width,_.height=y.height,_.dummy="edge-label",_.labelpos=y.labelpos),l.setEdge(c,N,{weight:y.weight},g),S===0&&l.graph().dummyChains.push(N),c=N;l.setEdge(c,h,{weight:y.weight},g)}}function o(l){e.forEach(l.graph().dummyChains,function(u){var c=l.node(u),p=c.edgeLabel,h;for(l.setEdge(c.edgeObj,p);c.dummy;)h=l.successors(u)[0],l.removeNode(u),p.points.push({x:c.x,y:c.y}),c.dummy==="edge-label"&&(p.x=c.x,p.y=c.y,p.width=c.width,p.height=c.height),u=h,c=l.node(u)})}return wg}var xg,Fk;function du(){if(Fk)return xg;Fk=1;var e=ct();xg={longestPath:n,slack:r};function n(i){var o={};function l(u){var c=i.node(u);if(e.has(o,u))return c.rank;o[u]=!0;var p=e.min(e.map(i.outEdges(u),function(h){return l(h.w)-i.edge(h).minlen}));return(p===Number.POSITIVE_INFINITY||p===void 0||p===null)&&(p=0),c.rank=p}e.forEach(i.sources(),l)}function r(i,o){return i.node(o.w).rank-i.node(o.v).rank-i.edge(o).minlen}return xg}var _g,zk;function oj(){if(zk)return _g;zk=1;var e=ct(),n=tr().Graph,r=du().slack;_g=i;function i(c){var p=new n({directed:!1}),h=c.nodes()[0],f=c.nodeCount();p.setNode(h,{});for(var g,y;o(p,c)<f;)g=l(p,c),y=p.hasNode(g.v)?r(c,g):-r(c,g),u(p,c,y);return p}function o(c,p){function h(f){e.forEach(p.nodeEdges(f),function(g){var y=g.v,x=f===y?g.w:y;!c.hasNode(x)&&!r(p,g)&&(c.setNode(x,{}),c.setEdge(f,x,{}),h(x))})}return e.forEach(c.nodes(),h),c.nodeCount()}function l(c,p){return e.minBy(p.edges(),function(h){if(c.hasNode(h.v)!==c.hasNode(h.w))return r(p,h)})}function u(c,p,h){e.forEach(c.nodes(),function(f){p.node(f).rank+=h})}return _g}var bg,Bk;function E4(){if(Bk)return bg;Bk=1;var e=ct(),n=oj(),r=du().slack,i=du().longestPath,o=tr().alg.preorder,l=tr().alg.postorder,u=un().simplify;bg=c,c.initLowLimValues=g,c.initCutValues=p,c.calcCutValue=f,c.leaveEdge=x,c.enterEdge=N,c.exchangeEdges=_;function c(E){E=u(E),i(E);var C=n(E);g(C),p(C,E);for(var R,M;R=x(C);)M=N(C,E,R),_(C,E,R,M)}function p(E,C){var R=l(E,E.nodes());R=R.slice(0,R.length-1),e.forEach(R,function(M){h(E,C,M)})}function h(E,C,R){var M=E.node(R),L=M.parent;E.edge(R,L).cutvalue=f(E,C,R)}function f(E,C,R){var M=E.node(R),L=M.parent,U=!0,O=C.edge(R,L),P=0;return O||(U=!1,O=C.edge(L,R)),P=O.weight,e.forEach(C.nodeEdges(R),function(F){var G=F.v===R,q=G?F.w:F.v;if(q!==L){var T=G===U,Q=C.edge(F).weight;if(P+=T?Q:-Q,b(E,R,q)){var z=E.edge(R,q).cutvalue;P+=T?-z:z}}}),P}function g(E,C){arguments.length<2&&(C=E.nodes()[0]),y(E,{},1,C)}function y(E,C,R,M,L){var U=R,O=E.node(M);return C[M]=!0,e.forEach(E.neighbors(M),function(P){e.has(C,P)||(R=y(E,C,R,P,M))}),O.low=U,O.lim=R++,L?O.parent=L:delete O.parent,R}function x(E){return e.find(E.edges(),function(C){return E.edge(C).cutvalue<0})}function N(E,C,R){var M=R.v,L=R.w;C.hasEdge(M,L)||(M=R.w,L=R.v);var U=E.node(M),O=E.node(L),P=U,F=!1;U.lim>O.lim&&(P=O,F=!0);var G=e.filter(C.edges(),function(q){return F===k(E,E.node(q.v),P)&&F!==k(E,E.node(q.w),P)});return e.minBy(G,function(q){return r(C,q)})}function _(E,C,R,M){var L=R.v,U=R.w;E.removeEdge(L,U),E.setEdge(M.v,M.w,{}),g(E),p(E,C),S(E,C)}function S(E,C){var R=e.find(E.nodes(),function(L){return!C.node(L).parent}),M=o(E,R);M=M.slice(1),e.forEach(M,function(L){var U=E.node(L).parent,O=C.edge(L,U),P=!1;O||(O=C.edge(U,L),P=!0),C.node(L).rank=C.node(U).rank+(P?O.minlen:-O.minlen)})}function b(E,C,R){return E.hasEdge(C,R)}function k(E,C,R){return R.low<=C.lim&&C.lim<=R.lim}return bg}var Sg,Uk;function N4(){if(Uk)return Sg;Uk=1;var e=du(),n=e.longestPath,r=oj(),i=E4();Sg=o;function o(p){switch(p.graph().ranker){case"network-simplex":c(p);break;case"tight-tree":u(p);break;case"longest-path":l(p);break;default:c(p)}}var l=n;function u(p){n(p),r(p)}function c(p){i(p)}return Sg}var kg,Hk;function C4(){if(Hk)return kg;Hk=1;var e=ct();kg=n;function n(o){var l=i(o);e.forEach(o.graph().dummyChains,function(u){for(var c=o.node(u),p=c.edgeObj,h=r(o,l,p.v,p.w),f=h.path,g=h.lca,y=0,x=f[y],N=!0;u!==p.w;){if(c=o.node(u),N){for(;(x=f[y])!==g&&o.node(x).maxRank<c.rank;)y++;x===g&&(N=!1)}if(!N){for(;y<f.length-1&&o.node(x=f[y+1]).minRank<=c.rank;)y++;x=f[y]}o.setParent(u,x),u=o.successors(u)[0]}})}function r(o,l,u,c){var p=[],h=[],f=Math.min(l[u].low,l[c].low),g=Math.max(l[u].lim,l[c].lim),y,x;y=u;do y=o.parent(y),p.push(y);while(y&&(l[y].low>f||g>l[y].lim));for(x=y,y=c;(y=o.parent(y))!==x;)h.push(y);return{path:p.concat(h.reverse()),lca:x}}function i(o){var l={},u=0;function c(p){var h=u;e.forEach(o.children(p),c),l[p]={low:h,lim:u++}}return e.forEach(o.children(),c),l}return kg}var Eg,Wk;function j4(){if(Wk)return Eg;Wk=1;var e=ct(),n=un();Eg={run:r,cleanup:u};function r(c){var p=n.addDummyNode(c,"root",{},"_root"),h=o(c),f=e.max(e.values(h))-1,g=2*f+1;c.graph().nestingRoot=p,e.forEach(c.edges(),function(x){c.edge(x).minlen*=g});var y=l(c)+1;e.forEach(c.children(),function(x){i(c,p,g,y,f,h,x)}),c.graph().nodeRankFactor=g}function i(c,p,h,f,g,y,x){var N=c.children(x);if(!N.length){x!==p&&c.setEdge(p,x,{weight:0,minlen:h});return}var _=n.addBorderNode(c,"_bt"),S=n.addBorderNode(c,"_bb"),b=c.node(x);c.setParent(_,x),b.borderTop=_,c.setParent(S,x),b.borderBottom=S,e.forEach(N,function(k){i(c,p,h,f,g,y,k);var E=c.node(k),C=E.borderTop?E.borderTop:k,R=E.borderBottom?E.borderBottom:k,M=E.borderTop?f:2*f,L=C!==R?1:g-y[x]+1;c.setEdge(_,C,{weight:M,minlen:L,nestingEdge:!0}),c.setEdge(R,S,{weight:M,minlen:L,nestingEdge:!0})}),c.parent(x)||c.setEdge(p,_,{weight:0,minlen:g+y[x]})}function o(c){var p={};function h(f,g){var y=c.children(f);y&&y.length&&e.forEach(y,function(x){h(x,g+1)}),p[f]=g}return e.forEach(c.children(),function(f){h(f,1)}),p}function l(c){return e.reduce(c.edges(),function(p,h){return p+c.edge(h).weight},0)}function u(c){var p=c.graph();c.removeNode(p.nestingRoot),delete p.nestingRoot,e.forEach(c.edges(),function(h){var f=c.edge(h);f.nestingEdge&&c.removeEdge(h)})}return Eg}var Ng,Vk;function T4(){if(Vk)return Ng;Vk=1;var e=ct(),n=un();Ng=r;function r(o){function l(u){var c=o.children(u),p=o.node(u);if(c.length&&e.forEach(c,l),e.has(p,"minRank")){p.borderLeft=[],p.borderRight=[];for(var h=p.minRank,f=p.maxRank+1;h<f;++h)i(o,"borderLeft","_bl",u,p,h),i(o,"borderRight","_br",u,p,h)}}e.forEach(o.children(),l)}function i(o,l,u,c,p,h){var f={width:0,height:0,rank:h,borderType:l},g=p[l][h-1],y=n.addDummyNode(o,"border",f,u);p[l][h]=y,o.setParent(y,c),g&&o.setEdge(g,y,{weight:1})}return Ng}var Cg,Gk;function R4(){if(Gk)return Cg;Gk=1;var e=ct();Cg={adjust:n,undo:r};function n(h){var f=h.graph().rankdir.toLowerCase();(f==="lr"||f==="rl")&&i(h)}function r(h){var f=h.graph().rankdir.toLowerCase();(f==="bt"||f==="rl")&&l(h),(f==="lr"||f==="rl")&&(c(h),i(h))}function i(h){e.forEach(h.nodes(),function(f){o(h.node(f))}),e.forEach(h.edges(),function(f){o(h.edge(f))})}function o(h){var f=h.width;h.width=h.height,h.height=f}function l(h){e.forEach(h.nodes(),function(f){u(h.node(f))}),e.forEach(h.edges(),function(f){var g=h.edge(f);e.forEach(g.points,u),e.has(g,"y")&&u(g)})}function u(h){h.y=-h.y}function c(h){e.forEach(h.nodes(),function(f){p(h.node(f))}),e.forEach(h.edges(),function(f){var g=h.edge(f);e.forEach(g.points,p),e.has(g,"x")&&p(g)})}function p(h){var f=h.x;h.x=h.y,h.y=f}return Cg}var jg,Yk;function A4(){if(Yk)return jg;Yk=1;var e=ct();jg=n;function n(r){var i={},o=e.filter(r.nodes(),function(h){return!r.children(h).length}),l=e.max(e.map(o,function(h){return r.node(h).rank})),u=e.map(e.range(l+1),function(){return[]});function c(h){if(!e.has(i,h)){i[h]=!0;var f=r.node(h);u[f.rank].push(h),e.forEach(r.successors(h),c)}}var p=e.sortBy(o,function(h){return r.node(h).rank});return e.forEach(p,c),u}return jg}var Tg,Kk;function I4(){if(Kk)return Tg;Kk=1;var e=ct();Tg=n;function n(i,o){for(var l=0,u=1;u<o.length;++u)l+=r(i,o[u-1],o[u]);return l}function r(i,o,l){for(var u=e.zipObject(l,e.map(l,function(y,x){return x})),c=e.flatten(e.map(o,function(y){return e.sortBy(e.map(i.outEdges(y),function(x){return{pos:u[x.w],weight:i.edge(x).weight}}),"pos")}),!0),p=1;p<l.length;)p<<=1;var h=2*p-1;p-=1;var f=e.map(new Array(h),function(){return 0}),g=0;return e.forEach(c.forEach(function(y){var x=y.pos+p;f[x]+=y.weight;for(var N=0;x>0;)x%2&&(N+=f[x+1]),x=x-1>>1,f[x]+=y.weight;g+=y.weight*N})),g}return Tg}var Rg,Xk;function M4(){if(Xk)return Rg;Xk=1;var e=ct();Rg=n;function n(r,i){return e.map(i,function(o){var l=r.inEdges(o);if(l.length){var u=e.reduce(l,function(c,p){var h=r.edge(p),f=r.node(p.v);return{sum:c.sum+h.weight*f.order,weight:c.weight+h.weight}},{sum:0,weight:0});return{v:o,barycenter:u.sum/u.weight,weight:u.weight}}else return{v:o}})}return Rg}var Ag,Qk;function P4(){if(Qk)return Ag;Qk=1;var e=ct();Ag=n;function n(o,l){var u={};e.forEach(o,function(p,h){var f=u[p.v]={indegree:0,in:[],out:[],vs:[p.v],i:h};e.isUndefined(p.barycenter)||(f.barycenter=p.barycenter,f.weight=p.weight)}),e.forEach(l.edges(),function(p){var h=u[p.v],f=u[p.w];!e.isUndefined(h)&&!e.isUndefined(f)&&(f.indegree++,h.out.push(u[p.w]))});var c=e.filter(u,function(p){return!p.indegree});return r(c)}function r(o){var l=[];function u(h){return function(f){f.merged||(e.isUndefined(f.barycenter)||e.isUndefined(h.barycenter)||f.barycenter>=h.barycenter)&&i(h,f)}}function c(h){return function(f){f.in.push(h),--f.indegree===0&&o.push(f)}}for(;o.length;){var p=o.pop();l.push(p),e.forEach(p.in.reverse(),u(p)),e.forEach(p.out,c(p))}return e.map(e.filter(l,function(h){return!h.merged}),function(h){return e.pick(h,["vs","i","barycenter","weight"])})}function i(o,l){var u=0,c=0;o.weight&&(u+=o.barycenter*o.weight,c+=o.weight),l.weight&&(u+=l.barycenter*l.weight,c+=l.weight),o.vs=l.vs.concat(o.vs),o.barycenter=u/c,o.weight=c,o.i=Math.min(l.i,o.i),l.merged=!0}return Ag}var Ig,Zk;function O4(){if(Zk)return Ig;Zk=1;var e=ct(),n=un();Ig=r;function r(l,u){var c=n.partition(l,function(_){return e.has(_,"barycenter")}),p=c.lhs,h=e.sortBy(c.rhs,function(_){return-_.i}),f=[],g=0,y=0,x=0;p.sort(o(!!u)),x=i(f,h,x),e.forEach(p,function(_){x+=_.vs.length,f.push(_.vs),g+=_.barycenter*_.weight,y+=_.weight,x=i(f,h,x)});var N={vs:e.flatten(f,!0)};return y&&(N.barycenter=g/y,N.weight=y),N}function i(l,u,c){for(var p;u.length&&(p=e.last(u)).i<=c;)u.pop(),l.push(p.vs),c++;return c}function o(l){return function(u,c){return u.barycenter<c.barycenter?-1:u.barycenter>c.barycenter?1:l?c.i-u.i:u.i-c.i}}return Ig}var Mg,Jk;function L4(){if(Jk)return Mg;Jk=1;var e=ct(),n=M4(),r=P4(),i=O4();Mg=o;function o(c,p,h,f){var g=c.children(p),y=c.node(p),x=y?y.borderLeft:void 0,N=y?y.borderRight:void 0,_={};x&&(g=e.filter(g,function(R){return R!==x&&R!==N}));var S=n(c,g);e.forEach(S,function(R){if(c.children(R.v).length){var M=o(c,R.v,h,f);_[R.v]=M,e.has(M,"barycenter")&&u(R,M)}});var b=r(S,h);l(b,_);var k=i(b,f);if(x&&(k.vs=e.flatten([x,k.vs,N],!0),c.predecessors(x).length)){var E=c.node(c.predecessors(x)[0]),C=c.node(c.predecessors(N)[0]);e.has(k,"barycenter")||(k.barycenter=0,k.weight=0),k.barycenter=(k.barycenter*k.weight+E.order+C.order)/(k.weight+2),k.weight+=2}return k}function l(c,p){e.forEach(c,function(h){h.vs=e.flatten(h.vs.map(function(f){return p[f]?p[f].vs:f}),!0)})}function u(c,p){e.isUndefined(c.barycenter)?(c.barycenter=p.barycenter,c.weight=p.weight):(c.barycenter=(c.barycenter*c.weight+p.barycenter*p.weight)/(c.weight+p.weight),c.weight+=p.weight)}return Mg}var Pg,eE;function q4(){if(eE)return Pg;eE=1;var e=ct(),n=tr().Graph;Pg=r;function r(o,l,u){var c=i(o),p=new n({compound:!0}).setGraph({root:c}).setDefaultNodeLabel(function(h){return o.node(h)});return e.forEach(o.nodes(),function(h){var f=o.node(h),g=o.parent(h);(f.rank===l||f.minRank<=l&&l<=f.maxRank)&&(p.setNode(h),p.setParent(h,g||c),e.forEach(o[u](h),function(y){var x=y.v===h?y.w:y.v,N=p.edge(x,h),_=e.isUndefined(N)?0:N.weight;p.setEdge(x,h,{weight:o.edge(y).weight+_})}),e.has(f,"minRank")&&p.setNode(h,{borderLeft:f.borderLeft[l],borderRight:f.borderRight[l]}))}),p}function i(o){for(var l;o.hasNode(l=e.uniqueId("_root")););return l}return Pg}var Og,tE;function $4(){if(tE)return Og;tE=1;var e=ct();Og=n;function n(r,i,o){var l={},u;e.forEach(o,function(c){for(var p=r.parent(c),h,f;p;){if(h=r.parent(p),h?(f=l[h],l[h]=p):(f=u,u=p),f&&f!==p){i.setEdge(f,p);return}p=h}})}return Og}var Lg,nE;function D4(){if(nE)return Lg;nE=1;var e=ct(),n=A4(),r=I4(),i=L4(),o=q4(),l=$4(),u=tr().Graph,c=un();Lg=p;function p(y){var x=c.maxRank(y),N=h(y,e.range(1,x+1),"inEdges"),_=h(y,e.range(x-1,-1,-1),"outEdges"),S=n(y);g(y,S);for(var b=Number.POSITIVE_INFINITY,k,E=0,C=0;C<4;++E,++C){f(E%2?N:_,E%4>=2),S=c.buildLayerMatrix(y);var R=r(y,S);R<b&&(C=0,k=e.cloneDeep(S),b=R)}g(y,k)}function h(y,x,N){return e.map(x,function(_){return o(y,_,N)})}function f(y,x){var N=new u;e.forEach(y,function(_){var S=_.graph().root,b=i(_,S,N,x);e.forEach(b.vs,function(k,E){_.node(k).order=E}),l(_,N,b.vs)})}function g(y,x){e.forEach(x,function(N){e.forEach(N,function(_,S){y.node(_).order=S})})}return Lg}var qg,rE;function F4(){if(rE)return qg;rE=1;var e=ct(),n=tr().Graph,r=un();qg={positionX:N,findType1Conflicts:i,findType2Conflicts:o,addConflict:u,hasConflict:c,verticalAlignment:p,horizontalCompaction:h,alignCoordinates:y,findSmallestWidthAlignment:g,balance:x};function i(b,k){var E={};function C(R,M){var L=0,U=0,O=R.length,P=e.last(M);return e.forEach(M,function(F,G){var q=l(b,F),T=q?b.node(q).order:O;(q||F===P)&&(e.forEach(M.slice(U,G+1),function(Q){e.forEach(b.predecessors(Q),function(z){var ne=b.node(z),Z=ne.order;(Z<L||T<Z)&&!(ne.dummy&&b.node(Q).dummy)&&u(E,z,Q)})}),U=G+1,L=T)}),M}return e.reduce(k,C),E}function o(b,k){var E={};function C(M,L,U,O,P){var F;e.forEach(e.range(L,U),function(G){F=M[G],b.node(F).dummy&&e.forEach(b.predecessors(F),function(q){var T=b.node(q);T.dummy&&(T.order<O||T.order>P)&&u(E,q,F)})})}function R(M,L){var U=-1,O,P=0;return e.forEach(L,function(F,G){if(b.node(F).dummy==="border"){var q=b.predecessors(F);q.length&&(O=b.node(q[0]).order,C(L,P,G,U,O),P=G,U=O)}C(L,P,L.length,O,M.length)}),L}return e.reduce(k,R),E}function l(b,k){if(b.node(k).dummy)return e.find(b.predecessors(k),function(E){return b.node(E).dummy})}function u(b,k,E){if(k>E){var C=k;k=E,E=C}var R=b[k];R||(b[k]=R={}),R[E]=!0}function c(b,k,E){if(k>E){var C=k;k=E,E=C}return e.has(b[k],E)}function p(b,k,E,C){var R={},M={},L={};return e.forEach(k,function(U){e.forEach(U,function(O,P){R[O]=O,M[O]=O,L[O]=P})}),e.forEach(k,function(U){var O=-1;e.forEach(U,function(P){var F=C(P);if(F.length){F=e.sortBy(F,function(z){return L[z]});for(var G=(F.length-1)/2,q=Math.floor(G),T=Math.ceil(G);q<=T;++q){var Q=F[q];M[P]===P&&O<L[Q]&&!c(E,P,Q)&&(M[Q]=P,M[P]=R[P]=R[Q],O=L[Q])}}})}),{root:R,align:M}}function h(b,k,E,C,R){var M={},L=f(b,k,E,R),U=R?"borderLeft":"borderRight";function O(G,q){for(var T=L.nodes(),Q=T.pop(),z={};Q;)z[Q]?G(Q):(z[Q]=!0,T.push(Q),T=T.concat(q(Q))),Q=T.pop()}function P(G){M[G]=L.inEdges(G).reduce(function(q,T){return Math.max(q,M[T.v]+L.edge(T))},0)}function F(G){var q=L.outEdges(G).reduce(function(Q,z){return Math.min(Q,M[z.w]-L.edge(z))},Number.POSITIVE_INFINITY),T=b.node(G);q!==Number.POSITIVE_INFINITY&&T.borderType!==U&&(M[G]=Math.max(M[G],q))}return O(P,L.predecessors.bind(L)),O(F,L.successors.bind(L)),e.forEach(C,function(G){M[G]=M[E[G]]}),M}function f(b,k,E,C){var R=new n,M=b.graph(),L=_(M.nodesep,M.edgesep,C);return e.forEach(k,function(U){var O;e.forEach(U,function(P){var F=E[P];if(R.setNode(F),O){var G=E[O],q=R.edge(G,F);R.setEdge(G,F,Math.max(L(b,P,O),q||0))}O=P})}),R}function g(b,k){return e.minBy(e.values(k),function(E){var C=Number.NEGATIVE_INFINITY,R=Number.POSITIVE_INFINITY;return e.forIn(E,function(M,L){var U=S(b,L)/2;C=Math.max(M+U,C),R=Math.min(M-U,R)}),C-R})}function y(b,k){var E=e.values(k),C=e.min(E),R=e.max(E);e.forEach(["u","d"],function(M){e.forEach(["l","r"],function(L){var U=M+L,O=b[U],P;if(O!==k){var F=e.values(O);P=L==="l"?C-e.min(F):R-e.max(F),P&&(b[U]=e.mapValues(O,function(G){return G+P}))}})})}function x(b,k){return e.mapValues(b.ul,function(E,C){if(k)return b[k.toLowerCase()][C];var R=e.sortBy(e.map(b,C));return(R[1]+R[2])/2})}function N(b){var k=r.buildLayerMatrix(b),E=e.merge(i(b,k),o(b,k)),C={},R;e.forEach(["u","d"],function(L){R=L==="u"?k:e.values(k).reverse(),e.forEach(["l","r"],function(U){U==="r"&&(R=e.map(R,function(G){return e.values(G).reverse()}));var O=(L==="u"?b.predecessors:b.successors).bind(b),P=p(b,R,E,O),F=h(b,R,P.root,P.align,U==="r");U==="r"&&(F=e.mapValues(F,function(G){return-G})),C[L+U]=F})});var M=g(b,C);return y(C,M),x(C,b.graph().align)}function _(b,k,E){return function(C,R,M){var L=C.node(R),U=C.node(M),O=0,P;if(O+=L.width/2,e.has(L,"labelpos"))switch(L.labelpos.toLowerCase()){case"l":P=-L.width/2;break;case"r":P=L.width/2;break}if(P&&(O+=E?P:-P),P=0,O+=(L.dummy?k:b)/2,O+=(U.dummy?k:b)/2,O+=U.width/2,e.has(U,"labelpos"))switch(U.labelpos.toLowerCase()){case"l":P=U.width/2;break;case"r":P=-U.width/2;break}return P&&(O+=E?P:-P),P=0,O}}function S(b,k){return b.node(k).width}return qg}var $g,sE;function z4(){if(sE)return $g;sE=1;var e=ct(),n=un(),r=F4().positionX;$g=i;function i(l){l=n.asNonCompoundGraph(l),o(l),e.forEach(r(l),function(u,c){l.node(c).x=u})}function o(l){var u=n.buildLayerMatrix(l),c=l.graph().ranksep,p=0;e.forEach(u,function(h){var f=e.max(e.map(h,function(g){return l.node(g).height}));e.forEach(h,function(g){l.node(g).y=p+f/2}),p+=f+c})}return $g}var Dg,iE;function B4(){if(iE)return Dg;iE=1;var e=ct(),n=S4(),r=k4(),i=N4(),o=un().normalizeRanks,l=C4(),u=un().removeEmptyRanks,c=j4(),p=T4(),h=R4(),f=D4(),g=z4(),y=un(),x=tr().Graph;Dg=N;function N(B,J){var re=J&&J.debugTiming?y.time:y.notime;re("layout",function(){var le=re(" buildLayoutGraph",function(){return O(B)});re(" runLayout",function(){_(le,re)}),re(" updateInputGraph",function(){S(B,le)})})}function _(B,J){J(" makeSpaceForEdgeLabels",function(){P(B)}),J(" removeSelfEdges",function(){$(B)}),J(" acyclic",function(){n.run(B)}),J(" nestingGraph.run",function(){c.run(B)}),J(" rank",function(){i(y.asNonCompoundGraph(B))}),J(" injectEdgeLabelProxies",function(){F(B)}),J(" removeEmptyRanks",function(){u(B)}),J(" nestingGraph.cleanup",function(){c.cleanup(B)}),J(" normalizeRanks",function(){o(B)}),J(" assignRankMinMax",function(){G(B)}),J(" removeEdgeLabelProxies",function(){q(B)}),J(" normalize.run",function(){r.run(B)}),J(" parentDummyChains",function(){l(B)}),J(" addBorderSegments",function(){p(B)}),J(" order",function(){f(B)}),J(" insertSelfEdges",function(){K(B)}),J(" adjustCoordinateSystem",function(){h.adjust(B)}),J(" position",function(){g(B)}),J(" positionSelfEdges",function(){I(B)}),J(" removeBorderNodes",function(){Z(B)}),J(" normalize.undo",function(){r.undo(B)}),J(" fixupEdgeLabelCoords",function(){z(B)}),J(" undoCoordinateSystem",function(){h.undo(B)}),J(" translateGraph",function(){T(B)}),J(" assignNodeIntersects",function(){Q(B)}),J(" reversePoints",function(){ne(B)}),J(" acyclic.undo",function(){n.undo(B)})}function S(B,J){e.forEach(B.nodes(),function(re){var le=B.node(re),fe=J.node(re);le&&(le.x=fe.x,le.y=fe.y,J.children(re).length&&(le.width=fe.width,le.height=fe.height))}),e.forEach(B.edges(),function(re){var le=B.edge(re),fe=J.edge(re);le.points=fe.points,e.has(fe,"x")&&(le.x=fe.x,le.y=fe.y)}),B.graph().width=J.graph().width,B.graph().height=J.graph().height}var b=["nodesep","edgesep","ranksep","marginx","marginy"],k={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},E=["acyclicer","ranker","rankdir","align"],C=["width","height"],R={width:0,height:0},M=["minlen","weight","width","height","labeloffset"],L={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},U=["labelpos"];function O(B){var J=new x({multigraph:!0,compound:!0}),re=X(B.graph());return J.setGraph(e.merge({},k,H(re,b),e.pick(re,E))),e.forEach(B.nodes(),function(le){var fe=X(B.node(le));J.setNode(le,e.defaults(H(fe,C),R)),J.setParent(le,B.parent(le))}),e.forEach(B.edges(),function(le){var fe=X(B.edge(le));J.setEdge(le,e.merge({},L,H(fe,M),e.pick(fe,U)))}),J}function P(B){var J=B.graph();J.ranksep/=2,e.forEach(B.edges(),function(re){var le=B.edge(re);le.minlen*=2,le.labelpos.toLowerCase()!=="c"&&(J.rankdir==="TB"||J.rankdir==="BT"?le.width+=le.labeloffset:le.height+=le.labeloffset)})}function F(B){e.forEach(B.edges(),function(J){var re=B.edge(J);if(re.width&&re.height){var le=B.node(J.v),fe=B.node(J.w),te={rank:(fe.rank-le.rank)/2+le.rank,e:J};y.addDummyNode(B,"edge-proxy",te,"_ep")}})}function G(B){var J=0;e.forEach(B.nodes(),function(re){var le=B.node(re);le.borderTop&&(le.minRank=B.node(le.borderTop).rank,le.maxRank=B.node(le.borderBottom).rank,J=e.max(J,le.maxRank))}),B.graph().maxRank=J}function q(B){e.forEach(B.nodes(),function(J){var re=B.node(J);re.dummy==="edge-proxy"&&(B.edge(re.e).labelRank=re.rank,B.removeNode(J))})}function T(B){var J=Number.POSITIVE_INFINITY,re=0,le=Number.POSITIVE_INFINITY,fe=0,te=B.graph(),ce=te.marginx||0,Ce=te.marginy||0;function ve(Re){var ye=Re.x,ke=Re.y,Ge=Re.width,we=Re.height;J=Math.min(J,ye-Ge/2),re=Math.max(re,ye+Ge/2),le=Math.min(le,ke-we/2),fe=Math.max(fe,ke+we/2)}e.forEach(B.nodes(),function(Re){ve(B.node(Re))}),e.forEach(B.edges(),function(Re){var ye=B.edge(Re);e.has(ye,"x")&&ve(ye)}),J-=ce,le-=Ce,e.forEach(B.nodes(),function(Re){var ye=B.node(Re);ye.x-=J,ye.y-=le}),e.forEach(B.edges(),function(Re){var ye=B.edge(Re);e.forEach(ye.points,function(ke){ke.x-=J,ke.y-=le}),e.has(ye,"x")&&(ye.x-=J),e.has(ye,"y")&&(ye.y-=le)}),te.width=re-J+ce,te.height=fe-le+Ce}function Q(B){e.forEach(B.edges(),function(J){var re=B.edge(J),le=B.node(J.v),fe=B.node(J.w),te,ce;re.points?(te=re.points[0],ce=re.points[re.points.length-1]):(re.points=[],te=fe,ce=le),re.points.unshift(y.intersectRect(le,te)),re.points.push(y.intersectRect(fe,ce))})}function z(B){e.forEach(B.edges(),function(J){var re=B.edge(J);if(e.has(re,"x"))switch((re.labelpos==="l"||re.labelpos==="r")&&(re.width-=re.labeloffset),re.labelpos){case"l":re.x-=re.width/2+re.labeloffset;break;case"r":re.x+=re.width/2+re.labeloffset;break}})}function ne(B){e.forEach(B.edges(),function(J){var re=B.edge(J);re.reversed&&re.points.reverse()})}function Z(B){e.forEach(B.nodes(),function(J){if(B.children(J).length){var re=B.node(J),le=B.node(re.borderTop),fe=B.node(re.borderBottom),te=B.node(e.last(re.borderLeft)),ce=B.node(e.last(re.borderRight));re.width=Math.abs(ce.x-te.x),re.height=Math.abs(fe.y-le.y),re.x=te.x+re.width/2,re.y=le.y+re.height/2}}),e.forEach(B.nodes(),function(J){B.node(J).dummy==="border"&&B.removeNode(J)})}function $(B){e.forEach(B.edges(),function(J){if(J.v===J.w){var re=B.node(J.v);re.selfEdges||(re.selfEdges=[]),re.selfEdges.push({e:J,label:B.edge(J)}),B.removeEdge(J)}})}function K(B){var J=y.buildLayerMatrix(B);e.forEach(J,function(re){var le=0;e.forEach(re,function(fe,te){var ce=B.node(fe);ce.order=te+le,e.forEach(ce.selfEdges,function(Ce){y.addDummyNode(B,"selfedge",{width:Ce.label.width,height:Ce.label.height,rank:ce.rank,order:te+ ++le,e:Ce.e,label:Ce.label},"_se")}),delete ce.selfEdges})})}function I(B){e.forEach(B.nodes(),function(J){var re=B.node(J);if(re.dummy==="selfedge"){var le=B.node(re.e.v),fe=le.x+le.width/2,te=le.y,ce=re.x-fe,Ce=le.height/2;B.setEdge(re.e,re.label),B.removeNode(J),re.label.points=[{x:fe+2*ce/3,y:te-Ce},{x:fe+5*ce/6,y:te-Ce},{x:fe+ce,y:te},{x:fe+5*ce/6,y:te+Ce},{x:fe+2*ce/3,y:te+Ce}],re.label.x=re.x,re.label.y=re.y}})}function H(B,J){return e.mapValues(e.pick(B,J),Number)}function X(B){var J={};return e.forEach(B,function(re,le){J[le.toLowerCase()]=re}),J}return Dg}var Fg,oE;function U4(){if(oE)return Fg;oE=1;var e=ct(),n=un(),r=tr().Graph;Fg={debugOrdering:i};function i(o){var l=n.buildLayerMatrix(o),u=new r({compound:!0,multigraph:!0}).setGraph({});return e.forEach(o.nodes(),function(c){u.setNode(c,{label:c}),u.setParent(c,"layer"+o.node(c).rank)}),e.forEach(o.edges(),function(c){u.setEdge(c.v,c.w,{},c.name)}),e.forEach(l,function(c,p){var h="layer"+p;u.setNode(h,{rank:"same"}),e.reduce(c,function(f,g){return u.setEdge(f,g,{style:"invis"}),g})}),u}return Fg}var zg,aE;function H4(){return aE||(aE=1,zg="0.8.5"),zg}var Bg,lE;function W4(){return lE||(lE=1,Bg={graphlib:tr(),layout:B4(),debug:U4(),util:{time:un().time,notime:un().notime},version:H4()}),Bg}var V4=W4();const uE=vv(V4),oo=240,fu=130,eo=74,qu=72,cE=eo+qu;function G4(e,n){var i;let r=oo;for(const o of e)r=Math.max(r,((i=n.get(o.id))==null?void 0:i.width)??oo);return r}const aj=420,Y4=2;function ha(e){var r;return((r=e.data)==null?void 0:r.sessionId)??"_default"}function K4(e,n){return((n==null?void 0:n.get(e))??0)>0?aj:0}function X4(e,n){const r=(n==null?void 0:n.get(e))??0;return r>0?6+r*36:0}function pa(e,n,r){const i=n.get(e);return{w:((i==null?void 0:i.width)??oo)+K4(e,r),h:Math.max((i==null?void 0:i.height)??fu,X4(e,r))}}function Q4(e){return[...e.keys()].sort().map(n=>`${n}:${e.get(n)}`).join("|")}function Z4(e,n,r,i,o,l){const u=new uE.graphlib.Graph;u.setDefaultEdgeLabel(()=>({})),u.setGraph({rankdir:r,marginx:0,marginy:0,nodesep:70,ranksep:160,edgesep:30});const c=e.filter(b=>!o.has(b)),p=new Set(c);for(const b of c){const{w:k,h:E}=pa(b,i,l);u.setNode(b,{width:k,height:E})}for(const b of n)p.has(b.source)&&p.has(b.target)&&u.setEdge(b.source,b.target);uE.layout(u);const h=new Map;let f=1/0,g=1/0,y=-1/0,x=-1/0;for(const b of c){const k=u.node(b);if(!k)continue;const E=i.get(b),C=(E==null?void 0:E.width)??oo,R=(E==null?void 0:E.height)??fu,M=pa(b,i,l),L=k.x-M.w/2,U=k.y-M.h/2;h.set(b,{x:L,y:U}),L<f&&(f=L),U<g&&(g=U),L+C>y&&(y=L+C),U+R>x&&(x=U+R)}if(Number.isFinite(f)&&Number.isFinite(g))for(const[b,k]of h)h.set(b,{x:k.x-f,y:k.y-g});const N=Number.isFinite(y)?y-f:0,_=Number.isFinite(x)?x-g:0;let S=null;for(const b of e){const k=o.get(b);if(!k)continue;const E=i.get(b),C=(E==null?void 0:E.width)??oo,R=(E==null?void 0:E.height)??fu;S=S===null?{minX:k.x,minY:k.y,maxX:k.x+C,maxY:k.y+R}:{minX:Math.min(S.minX,k.x),minY:Math.min(S.minY,k.y),maxX:Math.max(S.maxX,k.x+C),maxY:Math.max(S.maxY,k.y+R)}}return{positions:h,width:N,height:_,pinnedBox:S}}function J4(e,n,r={}){const i=r.direction??"LR",o=r.pinned??new Map,l=r.measured??new Map,u=r.lanes,c=new Map;for(const b of e){const k=ha(b),E=c.get(k);E?E.push(b.id):c.set(k,[b.id])}const h=Array.from(c.keys()).sort().map(b=>({sid:b,...Z4(c.get(b),n,i,l,o,u)})),f=G4(e,l),g=r.availableHeight&&r.availableHeight>0?r.availableHeight:Number.POSITIVE_INFINITY,y=b=>{const k=[[]];let E=0;for(const C of h)k.length<b&&E>0&&E+C.height>g&&(k.push([]),E=0),k[k.length-1].push(C),E+=C.height+cE;return k},x=b=>b.reduce((k,E)=>Math.max(k,E.width),0)+aj;let N=y(r.availableWidth?Y4:1);N.length>1&&N.reduce((k,E)=>k+x(E),0)+f*(N.length-1)>(r.availableWidth??0)&&(N=y(1));const _=new Map;let S=0;for(const b of N){const k=x(b);let E=0;for(const{positions:C,height:R,pinnedBox:M}of b){for(const[U,O]of C)_.set(U,{x:O.x+S,y:O.y+E});let L=E+R;M&&M.maxY>L&&M.minX<S+k&&S<M.maxX&&(L=M.maxY),E=L+cE}S+=k+f}return e.map(b=>{const k=o.get(b.id);if(k)return{...b,position:k};const E=_.get(b.id);return E?{...b,position:E}:b})}function eD(e,n,r,i,o){const u=eo+qu,c=60,p=x=>pa(x,i,o),h=new Map(e.map(x=>[x.id,ha(x)])),f=[],g=e.map(x=>({id:x.id,pos:r.get(x.id)??n.get(x.id)})).filter(x=>x.pos!=null).sort((x,N)=>x.pos.y-N.pos.y||x.pos.x-N.pos.x||x.id.localeCompare(N.id)),y=[];for(const{id:x,pos:N}of g){const{w:_,h:S}=p(x),b=h.get(x)??"_default";if(r.has(x)){f.push({x:N.x,y:N.y,w:_,h:S,sid:b});continue}let k=N.y;for(let E=0;E<f.length+1;E++){const C=f.find(R=>{const M=R.sid===b?24:c,L=R.sid===b?24:u;return N.x<R.x+R.w+M&&R.x<N.x+_+M&&k<R.y+R.h+L&&R.y<k+S+L});if(!C)break;k=C.y+C.h+(C.sid===b?24:u)}k!==N.y&&(n.set(x,{x:N.x,y:k}),y.push(x)),f.push({x:N.x,y:k,w:_,h:S,sid:b})}return y}function tD(e,n,r,i,o,l){const u=_=>pa(_,i,l),c=_=>r.get(_)??n.get(_),p=new Map;for(const _ of e){if(!c(_.id))continue;const S=ha(_),b=p.get(S);b?b.push(_):p.set(S,[_])}const h=new Set;for(const[_,S]of p)S.every(b=>o.has(b.id)&&!r.has(b.id))&&h.add(_);const f=new Map,g=[];for(const _ of e){const S=c(_.id);if(!S)continue;const{w:b,h:k}=u(_.id),E=ha(_);h.has(E)?(f.get(E)??f.set(E,[]).get(E)).push(_):g.push({x:S.x,y:S.y,w:b,h:k})}if(f.size===0)return[];const y=eo+qu,x=(_,S,b,k)=>g.some(E=>_<E.x+E.w+eo&&E.x<_+b+eo&&S<E.y+E.h+y&&E.y<S+k+y),N=[];for(const _ of[...f.keys()].sort()){const S=f.get(_);let b=1/0,k=1/0,E=-1/0,C=-1/0;for(const F of S){const G=c(F.id),{w:q,h:T}=u(F.id);b=Math.min(b,G.x),k=Math.min(k,G.y),E=Math.max(E,G.x+q),C=Math.max(C,G.y+T)}const R=E-b,M=C-k,L=[...new Set(g.map(F=>Math.round(F.x)))].sort((F,G)=>F-G),U=L.length?L:[b],O=[0,...g.map(F=>F.y+F.h+y)].sort((F,G)=>F-G);let P=null;e:for(const F of U)for(const G of O){if(G>=k)break;if(!x(F,G,R,M)){P={x:F,y:G};break e}}if(P){const F=P.x-b,G=P.y-k;for(const q of S){const T=c(q.id);n.set(q.id,{x:T.x+F,y:T.y+G})}N.push(_)}for(const F of S){const G=c(F.id),{w:q,h:T}=u(F.id);g.push({x:G.x,y:G.y,w:q,h:T})}}return N}function nD(e,n,r,i,o,l=!1,u){const h=eo+qu+1,f=8,g=1.75,y=200,x=.7,N=.01,_=P=>pa(P,i,u),S=P=>r.get(P)??n.get(P),b=new Map;for(const P of e){if(!S(P.id))continue;const F=ha(P),G=b.get(F);G?G.push(P):b.set(F,[P])}const k=[],E=new Set,C=new Set,R=o.size===0;for(const P of[...b.keys()].sort()){const F=b.get(P);let G=1/0,q=1/0,T=-1/0,Q=-1/0,z=!1;for(const K of F){const I=S(K.id),{w:H,h:X}=_(K.id);G=Math.min(G,I.x),q=Math.min(q,I.y),T=Math.max(T,I.x+H),Q=Math.max(Q,I.y+X),r.has(K.id)&&(z=!0)}const ne=T-G,Z=Q-q;C.add(P);const $=o.get(P);$&&(ne>$.w+f||Z>$.h+f)&&E.add(P),o.set(P,{w:ne,h:Z}),k.push({sid:P,members:F.map(K=>K.id),x:G,y:q,w:ne,h:Z,anchored:z,mass:1})}for(const P of[...o.keys()])C.has(P)||o.delete(P);if(l||R)return[];let M=!1;for(let P=0;P<k.length&&!M;P++)for(let F=P+1;F<k.length;F++){const G=k[P],q=k[F];if(!(G.anchored&&q.anchored)&&Math.abs(G.x+G.w/2-(q.x+q.w/2))<(G.w+q.w)/2+61&&Math.abs(G.y+G.h/2-(q.y+q.h/2))<(G.h+q.h)/2+h){M=!0;break}}if(E.size===0&&!M)return[];if(E.size>0)for(const P of k)E.has(P.sid)&&(P.mass=8);else for(const P of k)P.mass=Math.max(1,P.w*P.h/(oo*fu));const L=new Map(k.map(P=>[P.sid,P.x])),U=new Map(k.map(P=>[P.sid,P.y]));for(let P=0;P<y;P++){const F=new Map,G=new Map;let q=0;for(let T=0;T<k.length;T++)for(let Q=T+1;Q<k.length;Q++){const z=k[T],ne=k[Q];if(z.anchored&&ne.anchored)continue;const Z=z.x+z.w/2,$=z.y+z.h/2,K=ne.x+ne.w/2,I=ne.y+ne.h/2,H=(z.w+ne.w)/2+61-Math.abs(Z-K),X=(z.h+ne.h)/2+h-Math.abs($-I);if(H<=0||X<=0)continue;const B=(Fe,Qe)=>!Fe.anchored&&!(Qe<0&&Fe.x<=0),J=(Fe,Qe)=>!Fe.anchored&&!(Qe<0&&Fe.y<=0),re=(Fe,Qe,ht)=>{const kt=Fe===Qe,rt=kt?z.sid<ne.sid?-1:1:Math.sign(Fe-Qe);return ht(z,rt)||ht(ne,-rt)?rt:kt&&(ht(z,-rt)||ht(ne,rt))?-rt:0},le=re(Z,K,B),fe=re($,I,J),te=le!==0,ce=fe!==0;if(!te&&!ce)continue;const Ce=te&&(!ce||H*g<X),[ve,Re,ye,ke]=Ce?[le,H,F,B]:[fe,X,G,J],Ge=ke(z,ve),we=ke(ne,-ve),_e=z.mass,Be=ne.mass,Ye=Ge?we?Be/(_e+Be):1:0,at=we?Ge?_e/(_e+Be):1:0,nt=Re*x;ye.set(z.sid,(ye.get(z.sid)??0)+ve*nt*Ye),ye.set(ne.sid,(ye.get(ne.sid)??0)-ve*nt*at),q+=nt}for(const T of k)T.anchored||(T.x=Math.max(0,T.x+(F.get(T.sid)??0)),T.y=Math.max(0,T.y+(G.get(T.sid)??0)));if(q<N)break}const O=[];for(const P of k){const F=P.x-L.get(P.sid),G=P.y-U.get(P.sid);if(!(Math.abs(F)<1&&Math.abs(G)<1)){for(const q of P.members){if(r.has(q))continue;const T=n.get(q);T&&n.set(q,{x:T.x+F,y:T.y+G})}O.push(P.sid)}}return O}const rD=600;function hv(e,n){return!(e.exitAt!=null&&n-e.exitAt>rD||e.kind==="root"&&e.state==="done"&&e.tools.length===0&&e.endedAt!=null&&e.endedAt-e.startedAt<3e3)}function sD(e,n){const r=new Set;for(const i of e.agents.values())hv(i,n)&&r.add(i.id);return r}function iD(e,n,r=0){return e.right+r>n.left&&e.left-r<n.right&&e.bottom+r>n.top&&e.top-r<n.bottom}function oD(e,n,r=0){if(!e)return!1;for(const i of n)if(iD(e,i,r))return!0;return!1}const lj="sessionGroup";function aD(e,n){var i;if(e.type===lj)return"transparent";const r=(i=e.data)==null?void 0:i.state;return n(r==="err"?"--err":r==="active"?"--inflight":"--ok")}const lD="Update checks are off (AGENTS_DECK_NO_UPDATE_CHECK=1).";function uD(e){if(e.checkDisabled)return lD;if(e.checking)return"Asking npm for the newest release…";const n=e.latest?`npm has v${e.latest}`:e.latestPending?`npm's latest tag names v${e.latestPending}, which it cannot serve yet`:"npm not reached yet",r=e.checkedAgo?` · checked ${e.checkedAgo}`:"";return`${n}${r} · re-checked periodically · click to check npm now`}function cD(e){const n=`Version v${e.running}`;return e.checkDisabled?`${n}, update checks are off`:e.checking?`${n}, checking npm for a newer release`:`${n}, check npm for a newer release`}function dD(e){if(e==null)return{kind:"unknown",lead:"No data yet. Start a Claude Code or Codex session — it appears here as soon as its first hook fires.",workspace:null,tail:""};const n=e.trim();return n===""?{kind:"machine",lead:"No data yet. Start a Claude Code or Codex session anywhere on this machine — this deck is unscoped and captures every workspace.",workspace:null,tail:""}:{kind:"scoped",lead:"No data yet. This deck only captures sessions running under",workspace:n,tail:" — start one there, or restart it without --workspace/--scope to watch the whole machine."}}function uj(e){const n=Math.max(0,Math.floor(e));return`${n} event${n===1?"":"s"}`}function fD(e){return e.connected?e.paused?{tone:"paused",label:"paused",title:e.held>0?`Connected — ${uj(e.held)} held until you resume (Space)`:"Connected — updates held until you resume (Space)"}:{tone:"live",label:"live",title:"Receiving events"}:{tone:"dead",label:"offline",title:e.paused?"SSE disconnected — and the canvas is paused, so resuming will not bring events back until it reconnects":"SSE disconnected"}}function hD(e){return e.paused?e.held<=0?{label:"Resume",title:"Nothing has arrived since you paused. Resume to follow the canvas again (Space)"}:{label:`Resume · ${e.held} held`,title:`${uj(e.held)} arrived while paused and will be applied in order when you resume (Space)`}:{label:"Pause",title:"Pause live updates — events keep arriving and are applied when you resume (Space)"}}function cj(e,n){return e!==""&&n>0}function pD(e,n,r){return e===""?{active:!1,matched:n,total:r,count:null,empty:!1,message:null,dim:!1}:{active:!0,matched:n,total:r,count:`${n} of ${r}`,empty:n===0,message:n===0?`No agents match “${e}”`:null,dim:cj(e,n)}}function pv(e){const n=Math.max(0,Math.floor(e/1e3));return n<60?"just now":n<3600?`${Math.floor(n/60)}m ago`:n<86400?`${Math.floor(n/3600)}h ago`:`${Math.floor(n/86400)}d ago`}function mD(e,n){return e.getFullYear()===n.getFullYear()&&e.getMonth()===n.getMonth()&&e.getDate()===n.getDate()}function gD(e,n,r){const i=new Date(e),o=pv(n-e);return{label:mD(i,new Date(n))?o:`${o} · ${i.toLocaleDateString(r,{month:"short",day:"numeric"})}`,title:i.toLocaleString(r,{dateStyle:"medium",timeStyle:"medium"})}}function Jo(e){return typeof window>"u"?"":getComputedStyle(document.documentElement).getPropertyValue(e).trim()||""}const vD={agent:yO,sessionGroup:AO},yD=420,Yl=18,wD=9e4,xD=200,_D=5*6e4,bD=6,SD=2*6e4,ry="agent-dag.layout",sy="agent-dag.viewport",dj="agent-dag.summariesDismissed",fj="agent-dag.sessionListOpen",hj="agent-dag.detailOpen",pj="agent-dag.usagePanelOpen",dE="agent-dag.accountsPanelOpen",fE="agent-dag.versionNoticeDismissed",kD=15*6e4,hE={git_checkout:"this deck runs from a git checkout — pull instead:",npx:"npx runs from a cache that cannot be upgraded in place — run:",not_writable:"the install directory is not writable by this user — run:",opted_out:"installs are off (AGENTS_DECK_NO_INSTALL=1) — run:"},pE="agent-dag.autoRestart",mE="agent-dag.bundleReloadedFor";function ED(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(fj)==="1"}catch{return!1}}function ND(e){if(!(typeof window>"u"))try{window.localStorage.setItem(fj,e?"1":"0")}catch{}}function CD(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(hj)==="1"}catch{return!1}}function jD(e){if(!(typeof window>"u"))try{window.localStorage.setItem(hj,e?"1":"0")}catch{}}function TD(){const e=oC(pj);return e===null?!0:e==="1"}function RD(e){if(!(typeof window>"u"))try{window.localStorage.setItem(pj,e?"1":"0")}catch{}}function AD(){if(typeof window>"u")return new Set;try{const e=window.localStorage.getItem(dj);if(!e)return new Set;const n=JSON.parse(e);return new Set(Array.isArray(n)?n.filter(r=>typeof r=="string"):[])}catch{return new Set}}function gE(e){if(!(typeof window>"u"))try{const n=Array.from(e),r=n.length>200?n.slice(-200):n;window.localStorage.setItem(dj,JSON.stringify(r))}catch{}}function ID(){const e={positions:[],pins:[]};if(typeof window>"u")return e;try{const n=window.localStorage.getItem(ry);if(!n)return e;const r=JSON.parse(n);if(!("v"in r)){const o=Object.entries(r).filter(([,l])=>l&&typeof l.x=="number"&&typeof l.y=="number");return{positions:o,pins:o.map(([l])=>l)}}return{positions:Object.entries(r.positions??{}).filter(([,o])=>o&&typeof o.x=="number"&&typeof o.y=="number"),pins:Array.isArray(r.pins)?r.pins:[]}}catch{return e}}function Ug(e,n){if(!(typeof window>"u"))try{const r={};for(const[i,o]of e)r[i]=o;for(const[i,o]of n)r[i]=o;window.localStorage.setItem(ry,JSON.stringify({v:2,positions:r,pins:Array.from(n.keys())}))}catch{}}function MD(){if(typeof window>"u")return null;try{const e=window.localStorage.getItem(sy);if(!e)return null;const n=JSON.parse(e);return typeof(n==null?void 0:n.x)!="number"||typeof(n==null?void 0:n.y)!="number"||typeof(n==null?void 0:n.zoom)!="number"?null:n}catch{return null}}function PD(e){if(!(typeof window>"u"))try{window.localStorage.setItem(sy,JSON.stringify(e))}catch{}}function vE(){if(!(typeof window>"u")){try{window.localStorage.removeItem(ry)}catch{}try{window.localStorage.removeItem(sy)}catch{}}}function OD(e,n){const r=e.agents.get(n);if(!r)return;const i=[];for(const f of e.agents.values())f.sessionId===n&&i.push(f);const o={schemaVersion:1,exportedAt:new Date().toISOString(),sessionId:n,label:r.label,cwd:r.cwd,startedAt:r.startedAt,endedAt:r.endedAt,model:r.model,agents:i.map(f=>({id:f.id,kind:f.kind,label:f.label,parentId:f.parentId,state:f.state,startedAt:f.startedAt,endedAt:f.endedAt,model:f.model,cwd:f.cwd,usage:f.usage,prompts:f.prompts,tools:f.tools.map(g=>({id:g.id,name:g.name,inputPreview:g.inputPreview,startedAt:g.startedAt,endedAt:g.endedAt,ok:g.ok,errorPreview:g.errorPreview,usage:g.usage}))}))},l=JSON.stringify(o,null,2),u=new Blob([l],{type:"application/json"}),c=URL.createObjectURL(u),p=document.createElement("a"),h=(r.label||"session").replace(/[^a-z0-9._-]/gi,"_");p.href=c,p.download=`${Jn}-${h}-${n.slice(0,8)}.json`,document.body.appendChild(p),p.click(),document.body.removeChild(p),setTimeout(()=>URL.revokeObjectURL(c),1e3)}const mv={file:"📁",shell:"⚡",web:"🌐",agent:"🤖",task:"📋",plan:"🧭",mcp:"🔌",other:"✨"},gv={file:"file",shell:"shell",web:"web",agent:"agent",task:"task",plan:"plan",mcp:"mcp",other:"other"},LD={Read:"file",Write:"file",Edit:"file",MultiEdit:"file",Glob:"file",Grep:"file",LS:"file",NotebookEdit:"file",Bash:"shell",PowerShell:"shell",shell:"shell",exec_command:"shell",shell_command:"shell",write_stdin:"shell",wait:"shell",apply_patch:"file",update_plan:"task",WebFetch:"web",WebSearch:"web",Task:"agent",Agent:"agent",TodoWrite:"task",TaskCreate:"task",TaskUpdate:"task",TaskList:"task",TaskGet:"task",TaskOutput:"task",TaskStop:"task",EnterPlanMode:"plan",ExitPlanMode:"plan",AskUserQuestion:"plan",Skill:"plan",Workflow:"plan"};function mj(e){return e.startsWith("mcp__")?"mcp":LD[e]??"other"}function gj(e,n){var i,o,l;if(!n)return!0;const r=n.toLowerCase();if(e.label.toLowerCase().includes(r)||(i=e.cwd)!=null&&i.toLowerCase().includes(r)||(o=e.cwdBasename)!=null&&o.toLowerCase().includes(r)||e.sessionId.toLowerCase().includes(r)||(l=e.firstPrompt)!=null&&l.toLowerCase().includes(r))return!0;for(const u of e.tools)if(u.name.toLowerCase().includes(r))return!0;return!1}function qD(e,n){if(!n)return null;const r=new Set([n]);let i=n;for(;i;){const l=e.agents.get(i);if(!(l!=null&&l.parentId)||r.has(l.parentId))break;r.add(l.parentId),i=l.parentId}let o=!0;for(;o;){o=!1;for(const l of e.agents.values())l.parentId&&r.has(l.parentId)&&!r.has(l.id)&&(r.add(l.id),o=!0)}return r}function $D(e,n,r,i,o,l,u,c,p,h,f,g,y,x,N,_,S,b,k){const E=[],C=[],R=new Set;if(l)for(const q of e.agents.values())b.has(q.id)&&gj(q,l)&&R.add(q.id);const M=cj(l,R.size);for(const q of e.agents.values()){if(!b.has(q.id))continue;const T=M&&!R.has(q.id),Q=q.exitAt!=null,z=S!=null&&!S.has(q.id),ne=[T?"rf-dim":"",Q?"rf-exiting":"",z?"rf-spotlit-out":""].filter(Boolean).join(" ")||void 0,Z=u.get(q.id);if(E.push({id:q.id,type:"agent",position:{x:0,y:0},data:{...q,now:n,onOpenContext:k},className:ne,...Z?{width:Z.width,height:Z.height}:null}),q.parentId&&b.has(q.parentId)){const $=Lv(q.sessionId),K=l&&!R.has(q.id)&&!R.has(q.parentId),I=Q,H=_.size>0&&(_.has(q.id)||_.has(q.parentId)),X=S!=null&&!S.has(q.id)&&!S.has(q.parentId),B=q.state==="active"?2:1.5,J=H?B+1.5:B,re=K||I?.2:X?.12:1,le=["sess-edge",q.state==="active"?"sess-live":"sess-idle",I?"rf-edge-exiting":"",H?"rf-edge-selected":""].filter(Boolean).join(" ");C.push({id:`e:${q.parentId}->${q.id}`,source:q.parentId,target:q.id,animated:(q.state==="active"||H)&&!K&&!I,type:"smoothstep",style:{"--session-hue":$,strokeWidth:J,opacity:re,transition:"opacity 500ms ease, stroke-width 200ms ease"},className:le})}}const L=new Map;for(const q of e.agents.values())q.tools.length>0&&L.set(q.id,Math.min(4,q.tools.length));const U=`${x}#lanes:${Q4(L)}`,O=E.filter(q=>hL(q.id,o,g,y));if(O.length>0||U!==N.current){if(O.length>0){const q=J4(E,C,{direction:"LR",pinned:o,measured:u,availableWidth:r,availableHeight:i,lanes:L});for(const T of q)iC(T.id,g,y)&&mL(T.id,T.position,g,y);tD(E,g,o,u,new Set(O.map(T=>T.id)),L)}eD(E,g,o,u,L),N.current=U}const P=nD(E,g,o,u,c,!h||f,L);P.length>0&&p(P),Hl(g,e.agents),Hl(y,e.agents),Hl(o,e.agents),Hl(u,fL(e.agents.values()));const F=[];let G=!1;for(const q of E){let T=o.get(q.id)??g.get(q.id);T||(T=pL(q.id,g,y),G=!0),F.push({...q,position:T})}return G&&(N.current=""),{nodes:F,edges:C}}function DD(){return m.jsx(Pv,{children:m.jsx(FD,{})})}function FD(){var Er,xi,Kr,Oa;const e=wa(),n=A.useRef(ov()),[,r]=A.useState(0),i=A.useCallback(()=>r(W=>W+1),[]),[o,l]=A.useState(()=>new Set),[u,c]=A.useState(null),[p,h]=A.useState(null),f=A.useCallback((W,V)=>{l(ae=>{if(!V)return new Set([W]);const de=new Set(ae);return de.has(W)?de.delete(W):de.add(W),de}),c(ae=>V&&ae===W?ae:W)},[]),g=A.useCallback(()=>{l(new Set),c(null)},[]),[y,x]=A.useState(null),[N,_]=A.useState(null),S=A.useCallback(W=>_(W),[]),[b,k]=A.useState(!1),E=A.useRef(AD()),[C,R]=A.useState(ED);A.useEffect(()=>{ND(C)},[C]);const[M,L]=A.useState(CD);A.useEffect(()=>{jD(M)},[M]);const[U,O]=A.useState(TD);A.useEffect(()=>{RD(U)},[U]);const[P,F]=A.useState(()=>{try{const W=window.localStorage.getItem(dE);return W===null?!0:W==="1"}catch{return!0}});A.useEffect(()=>{try{window.localStorage.setItem(dE,P?"1":"0")}catch{}},[P]);const[G,q]=A.useState(null),[T,Q]=A.useState(!1),[z,ne]=A.useState(0),[Z,$]=A.useState(0);A.useEffect(()=>{fetch("/api/sound-hook").then(W=>W.ok?W.json():null).then(W=>{W!=null&&W.ok&&(q(W.enabled===!0),ne((W.foreign??[]).filter(V=>V.worksHere).length),$(typeof W.parked=="number"?W.parked:0))}).catch(()=>{})},[]);const K=A.useCallback(async()=>{Q(!0);try{const V=await(await fetch("/api/sound-hook",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:!G})})).json().catch(()=>null);V!=null&&V.ok&&q(V.enabled===!0),fetch("/api/sound-hook").then(ae=>ae.ok?ae.json():null).then(ae=>{ae!=null&&ae.ok&&(ne((ae.foreign??[]).filter(de=>de.worksHere).length),$(typeof ae.parked=="number"?ae.parked:0))}).catch(()=>{})}catch{}finally{Q(!1)}},[G]),[I,H]=A.useState(!1),[X,B]=A.useState(null),[J,re]=A.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem(fE)??""}catch{return""}}),[le,fe]=A.useState(!1),te=A.useRef(0),[ce,Ce]=A.useState(!1),ve=A.useCallback((W=!1)=>{W&&(te.current=Date.now(),Ce(!0)),fetch(W?"/api/version?refresh=1":"/api/version").then(V=>V.ok?V.json():null).then(V=>{V&&B(V)}).catch(()=>{}).finally(()=>{W&&Ce(!1)})},[]),Re=A.useCallback(()=>{ve(Date.now()-te.current>=kD)},[ve]);A.useEffect(()=>{ve();const W=window.setInterval(Re,5*6e4),V=()=>{document.visibilityState==="visible"&&Re()};return document.addEventListener("visibilitychange",V),()=>{window.clearInterval(W),document.removeEventListener("visibilitychange",V)}},[ve,Re]),A.useEffect(()=>{I&&ve()},[I,ve]);const ye=(X==null?void 0:X.notice)??null,[ke,Ge]=A.useState(null);A.useEffect(()=>{let W=!1;return fetch("/api/health").then(V=>V.ok?V.json():null).then(V=>{W||!V||typeof V.workspace!="string"||Ge(V.workspace)}).catch(()=>{}),()=>{W=!0}},[I]);const we=ye?`${ye.kind}:${ye.to}`:"",_e=ye!=null&&J!==we,Be=A.useCallback(()=>{if(!ye)return;const W=J===we?"":we;re(W);try{window.localStorage.setItem(fE,W)}catch{}},[ye,we,J]),Ye=((Er=X==null?void 0:X.upgrade)==null?void 0:Er.state)??"idle",at=nL(X==null?void 0:X.upgrade),nt=A.useCallback(async()=>{try{await fetch("/api/upgrade",{method:"POST"})}catch{}ve()},[ve]);A.useEffect(()=>{if(Ye!=="running")return;const W=window.setInterval(ve,3e3);return()=>window.clearInterval(W)},[Ye,ve]);const Fe=A.useCallback(async()=>{var ae;const W=X==null?void 0:X.command;if(!W)return;let V=!1;try{V=await Promise.race([((ae=navigator.clipboard)==null?void 0:ae.writeText(W).then(()=>!0))??Promise.resolve(!1),new Promise(de=>window.setTimeout(()=>de(!1),500))])}catch{V=!1}if(!V)try{const de=document.createElement("textarea");de.value=W,de.setAttribute("readonly",""),de.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(de),de.select(),V=document.execCommand("copy"),de.remove()}catch{V=!1}V&&(fe(!0),window.setTimeout(()=>fe(!1),1600))},[X==null?void 0:X.command]),Qe=A.useCallback(()=>{R(W=>(W||F(!1),!W))},[]),ht=A.useCallback(()=>{F(W=>(W||R(!1),!W))},[]),[kt,rt]=A.useState(!1),[wt,Yt]=A.useState(0),Lt=A.useRef(null),[Je,Et]=A.useState(!1),st=A.useRef(null),[xt,mn]=A.useState(0),At=A.useRef(wL()),[It,Ln]=A.useState(!1),qn=A.useCallback(()=>{const W=At.current,V=W.setPaused(!W.paused);for(const ae of V)n.current=wx(n.current,ae);Ln(W.paused)},[]),[Ze,gn]=A.useState(Date.now()),[Kt,vn]=A.useState(()=>{if(typeof window>"u")return!0;try{return window.localStorage.getItem(pE)!=="0"}catch{return!0}}),ci=A.useCallback(()=>{vn(W=>{const V=!W;try{window.localStorage.setItem(pE,V?"1":"0")}catch{}return V})},[]),[yn,wr]=A.useState(!1),[di,ys]=A.useState("restart"),[ws,sr]=A.useState(null),wn=A.useRef(!1),ir=A.useRef(null),fi=A.useRef(0),xn=A.useCallback(async W=>{if(wn.current)return;const V=(W==null?void 0:W.upgrade)===!0;wn.current=!0,ir.current=at;const ae=++fi.current;ys(V?"npx":"restart"),wr(!0);try{window.sessionStorage.setItem("agent-dag.restartPending",(ye==null?void 0:ye.to)??"")}catch{}try{await fetch("/api/restart",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({upgrade:V})})}catch{}window.setTimeout(()=>{if(fi.current===ae&&wn.current){wn.current=!1,wr(!1);try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}}},V?18e4:3e4)},[ye==null?void 0:ye.to,at]),xr=A.useRef(null);A.useEffect(()=>{let W=!1;for(const ae of n.current.agents.values())if(ae.state==="active"){W=!0;break}const V=sL({enabled:Kt,kind:ye==null?void 0:ye.kind,canRestart:(X==null?void 0:X.canRestart)===!0,busy:W,idleSince:xr.current,now:Ze});xr.current=V.idleSince,V.restart&&xn()},[Kt,ye==null?void 0:ye.kind,X==null?void 0:X.canRestart,Ze,xn]),A.useEffect(()=>{const W=X==null?void 0:X.running;let V=null,ae=null;try{V=window.sessionStorage.getItem("agent-dag.restartPending"),ae=window.sessionStorage.getItem(mE)}catch{return}const de=tL({bundle:"1.33.138",running:W,pending:V,lastTried:ae});if(de==="reload"){try{window.sessionStorage.setItem(mE,W??"")}catch{return}window.location.reload();return}if(de!=="confirm")return;try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}wn.current=!1,wr(!1),sr(W??null);const xe=window.setTimeout(()=>sr(null),6e3);return()=>window.clearTimeout(xe)},[X==null?void 0:X.running]),A.useEffect(()=>{if(yn&&rL({asked:ir.current,reported:at})){try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}wn.current=!1,wr(!1)}},[yn,at]);const or=A.useRef(ID()).current;A.useRef(!1);const Nt=A.useRef(new Map(or.positions.filter(([W])=>or.pins.includes(W)))),zr=A.useRef(null),Br=A.useState(()=>MD())[0],[Xt,cn]=A.useState(""),[xs,hi]=A.useState(()=>new Set),[_r,_s]=A.useState(kL),[bs,pi]=A.useState(!1),Ur=A.useRef(null);A.useEffect(()=>{document.documentElement.dataset.theme=_r;try{window.localStorage.setItem(aC,_r)}catch{}},[_r]),A.useEffect(()=>{if(!Br)return;const W=window.setTimeout(()=>{try{e.setViewport(Br,{duration:0})}catch{}},60);return()=>window.clearTimeout(W)},[e,Br]);const Ss=A.useRef(!0);A.useEffect(()=>{const W=new EventSource("/events"),V=yL(i,{now:()=>Date.now(),setTimeout:(ae,de)=>window.setTimeout(ae,de),clearTimeout:ae=>window.clearTimeout(ae)});return W.addEventListener("open",()=>{H(!0),pi(!0)}),W.addEventListener("error",()=>H(!1)),W.addEventListener("replay-end",()=>{Ss.current=!1,V.flush()}),W.addEventListener("hook",ae=>{try{const de=JSON.parse(ae.data);if(!At.current.accept(de))return;n.current=wx(n.current,de),de.replay===!0||Ss.current||Date.now()-de.receivedAt>3e4?V.replay():V.live()}catch{}}),()=>{W.close(),V.cancel()}},[i]),A.useEffect(()=>{const W=setInterval(()=>{const V=Date.now();gn(V);let ae=QP(n.current,V,wD);KP(n.current,V,xD,_D)&&(ae=!0),XP(n.current,V,bD,SD)&&(ae=!0),ae&&i()},250);return()=>clearInterval(W)},[i]);const ks=A.useRef(null),Ve=A.useRef(0),po=420,Bt=A.useCallback((W=500)=>{try{const Ne=document.querySelector(".canvas-wrap"),Ie=Array.from(document.querySelectorAll(".react-flow__node")).filter(pt=>pt.offsetWidth>0);if(!Ne||Ie.length===0)return;const De=Ne.getBoundingClientRect(),He=e.getViewport();if(!Number.isFinite(He.zoom)||He.zoom<=0)return;const Xe=pt=>(pt-De.left-He.x)/He.zoom,lt=pt=>(pt-De.top-He.y)/He.zoom,kn=Ie.map(pt=>pt.getBoundingClientRect()),$s=Math.min(...kn.map(pt=>Xe(pt.left))),_o=Math.max(...kn.map(pt=>Xe(pt.right))),Xr=Math.min(...kn.map(pt=>lt(pt.top))),bo=Math.max(...kn.map(pt=>lt(pt.bottom))),La=_o-$s,_i=bo-Xr;if(!(La>0&&_i>0))return;const Un=Math.max(.2,Math.min(1,(De.width-160)/(La+po)*.86,(De.height-160)/_i*.86));e.setViewport({x:80-$s*Un,y:Math.max(80,(De.height-_i*Un)/2)-Xr*Un,zoom:Un},{duration:W}),Ve.current=Date.now(),window.setTimeout(()=>{try{const pt={x:80-$s*Un,y:Math.max(80,(De.height-_i*Un)/2)-Xr*Un,zoom:Un},qa=e.getViewport();(Math.abs(qa.zoom-Un)>.01||Math.abs(qa.x-pt.x)>2)&&e.setViewport(pt,{duration:0})}catch{}},W+60)}catch{}},[e]),Hr=A.useRef(""),ar=A.useRef(null),Es=A.useRef(0),br=A.useCallback(()=>{Es.current=Date.now()},[]),lr="agent-dag.autoFitDisabled",_t=A.useRef((()=>{if(typeof window>"u")return!1;try{return window.localStorage.getItem(lr)==="1"}catch{return!1}})()),[Wr,Jt]=A.useState(_t.current),Ea=A.useCallback(()=>{if(!_t.current){_t.current=!0,Jt(!0);try{window.localStorage.setItem(lr,"1")}catch{}}},[]),$u=A.useCallback(()=>{_t.current=!1,Jt(!1);try{window.localStorage.removeItem(lr)}catch{}Bt(400)},[e,Bt]);A.useEffect(()=>{const W=setInterval(()=>{if(_t.current||Date.now()-Es.current<800)return;const V=n.current,ae=Date.now(),de=[];for(const Xe of V.agents.values())hv(Xe,ae)&&de.push({id:Xe.id});if(de.length===0)return;const xe=e.getViewport(),Ne=window.innerWidth-360,Ie=window.innerHeight-52;let De=!1,He=!1;for(const{id:Xe}of de){const lt=$n.current.get(Xe),kn=Nt.current.get(Xe)??Ut.current.get(Xe);if(!lt||!kn)continue;He=!0;const $s=kn.x*xe.zoom+xe.x,_o=kn.y*xe.zoom+xe.y,Xr=(kn.x+lt.width)*xe.zoom+xe.x,bo=(kn.y+lt.height)*xe.zoom+xe.y;if(Xr>0&&$s<Ne&&bo>0&&_o<Ie){De=!0;break}}He&&!De&&Bt(600)},1500);return()=>clearInterval(W)},[e]);const mo=A.useRef(!1),$n=A.useRef(new Map),Ns=A.useRef(0),Cs=A.useCallback(W=>{const V=$n.current;let ae=!1;for(const de of W.nodeInternals.values()){const xe=de.width,Ne=de.height;if(xe==null||Ne==null)continue;const Ie=V.get(de.id);Ie?(Math.abs(Ie.height-Ne)>4||Math.abs(Ie.width-xe)>4)&&(V.set(de.id,{width:xe,height:Ne}),ae=!0):(V.set(de.id,{width:xe,height:Ne}),ae=!0)}return ae&&(Ns.current+=1),Ns.current},[]),js=Ke(Cs),[Na,Du]=A.useState(0);A.useEffect(()=>{let W=0;const V=()=>{const de=$n.current;let xe=!1;for(const Ne of document.querySelectorAll(".react-flow__node[data-id]")){const Ie=Ne.getAttribute("data-id");if(!Ie)continue;const De=Ne.offsetWidth,He=Ne.offsetHeight;if(!De||!He)continue;const Xe=de.get(Ie);(!Xe||Math.abs(Xe.width-De)>4||Math.abs(Xe.height-He)>4)&&(de.set(Ie,{width:De,height:He}),xe=!0)}xe&&Du(Ne=>Ne+1)};if(mo.current)return;let ae=0;return document.visibilityState==="hidden"?ae=window.setTimeout(V,32):W=requestAnimationFrame(V),()=>{cancelAnimationFrame(W),window.clearTimeout(ae)}});const Ut=A.useRef(new Map(or.positions)),Ca=A.useRef(new Set),Ts=A.useRef(""),_n=A.useMemo(()=>{const W=[];for(const V of n.current.agents.values())hv(V,Ze)&&W.push(V.id+(V.parentId?`>${V.parentId}`:""));return W.sort(),`${W.join("|")}#sv${js}.${Na}`},[n.current,n.current.lastSeq,Ze,js,Na]),Rs=A.useRef(null);A.useEffect(()=>(Rs.current!=null&&window.clearTimeout(Rs.current),Rs.current=window.setTimeout(()=>{Ug(Ut.current,Nt.current)},1500),()=>{Rs.current!=null&&window.clearTimeout(Rs.current)}),[_n]),A.useEffect(()=>{if(Hr.current===_n)return;const W=Hr.current;if(Hr.current=_n,!W||_t.current)return;Date.now()-Ve.current>1200&&Bt(400),ks.current&&window.clearTimeout(ks.current),ks.current=window.setTimeout(()=>{_t.current||Bt(500)},280)},[_n,e,Bt]);const As=A.useMemo(()=>{if(o.size===0)return null;const W=new Set;for(const V of o){const ae=qD(n.current,V);if(ae)for(const de of ae)W.add(de)}return W.size>0?W:null},[n.current,n.current.lastSeq,o]),$e=A.useMemo(()=>sD(n.current,Ze),[n.current,n.current.lastSeq,Ze]),go=A.useRef(null),[Is,mi]=A.useState({w:0,h:0});A.useEffect(()=>{const W=go.current;if(!W||typeof ResizeObserver>"u")return;const V=new ResizeObserver(ae=>{var xe;const de=(xe=ae[0])==null?void 0:xe.contentRect;de&&mi(Ne=>Math.abs(Ne.w-de.width)>40||Math.abs(Ne.h-de.height)>40?{w:de.width,h:de.height}:Ne)});return V.observe(W),mi({w:W.clientWidth,h:W.clientHeight}),()=>V.disconnect()},[]);const ja=A.useRef(new Map),[vo,Ta]=A.useState(!1);A.useEffect(()=>{const W=window.setTimeout(()=>Ta(!0),2500);return()=>window.clearTimeout(W)},[]);const[yo,Vr]=A.useState(!1),qt=A.useRef(null),[bn,Dn]=A.useState(!1),Ms=A.useCallback(()=>{qt.current&&(window.clearTimeout(qt.current),qt.current=null),Vr(!1)},[]),Ps=A.useCallback(W=>{W.length!==0&&queueMicrotask(()=>{Vr(!0),qt.current&&window.clearTimeout(qt.current),qt.current=window.setTimeout(()=>Vr(!1),yD+80)})},[]);A.useEffect(()=>()=>{qt.current&&window.clearTimeout(qt.current)},[]);const Fn=Is.w>0?Is.w*.92:0,Ra=Is.h>0?Is.h:0,{nodes:zn,edges:Os}=A.useMemo(()=>$D(n.current,Ze,Fn,Ra,Nt.current,Xt,$n.current,ja.current,Ps,vo,bn,Ut.current,Ca.current,_n,Ts,o,As,$e,S),[n.current,n.current.lastSeq,Ze,Fn,Ra,vo,bn,Xt,_n,o,As,$e,S,wt]),Aa=A.useMemo(()=>{const W=new Map;for(const ae of zn){const de=ae.data;if(!(de!=null&&de.sessionId)||de.exitAt!=null)continue;const xe=ae.width,Ne=ae.height;if(xe==null||Ne==null)continue;const Ie=ae.position.x,De=ae.position.y,He=Ie+xe,Xe=De+Ne,lt=W.get(de.sessionId);lt?(lt.minX=Math.min(lt.minX,Ie),lt.minY=Math.min(lt.minY,De),lt.maxX=Math.max(lt.maxX,He),lt.maxY=Math.max(lt.maxY,Xe)):W.set(de.sessionId,{minX:Ie,minY:De,maxX:He,maxY:Xe})}const V=[];for(const[ae,de]of W){const xe=de.maxX-de.minX+Yl*2,Ne=de.maxY-de.minY+Yl*2;V.push({id:`group:${ae}`,type:lj,position:{x:de.minX-Yl,y:de.minY-Yl},data:{sessionId:ae,w:xe,h:Ne},width:xe,height:Ne,style:{width:xe,height:Ne},zIndex:-1,draggable:!0,selectable:!1,focusable:!1,deletable:!1,connectable:!1})}return V},[zn,Ze]),Ia=A.useMemo(()=>{const W=[...Aa,...zn],V=st.current;return!V||V.size===0?W:W.map(ae=>{const de=V.get(ae.id);return de?{...ae,position:de}:ae})},[Aa,zn,xt]),ur=A.useMemo(()=>{if(!Xt)return null;const W=new Set;for(const V of n.current.agents.values())$e.has(V.id)&&gj(V,Xt)&&W.add(V.id);return W},[n.current,n.current.lastSeq,Xt,$e]),cr=A.useMemo(()=>pD(Xt,(ur==null?void 0:ur.size)??0,$e.size),[Xt,ur,$e]),gi=A.useMemo(()=>{const W=new Set;for(const V of n.current.agents.values())for(const ae of V.tools)W.add(mj(ae.name));return Object.keys(mv).filter(V=>W.has(V))},[n.current,n.current.lastSeq]);A.useEffect(()=>{if(gi.length<=1){Et(!1);return}let W=0;const V=()=>{const ae=Lt.current;if(ae&&!document.hidden){const de=ae.getBoundingClientRect(),xe=Array.from(document.querySelectorAll(".react-flow__node, .tool-burst")).map(Ie=>Ie.getBoundingClientRect()),Ne=oD(de,xe,8);Et(Ie=>Ie===Ne?Ie:Ne)}W=window.setTimeout(V,300)};return V(),()=>window.clearTimeout(W)},[gi.length]);const Bn=A.useMemo(()=>{const W=new Map;for(const ae of n.current.agents.values())for(const de of ae.tools){if(!de.name.startsWith("mcp__"))continue;const xe=de.name.slice(5),Ne=xe.indexOf("__"),Ie=Ne>0?xe.slice(0,Ne):xe;W.set(Ie,(W.get(Ie)??0)+1)}const V=[];for(const[ae,de]of W){let xe=5381;for(let Ne=0;Ne<ae.length;Ne++)xe=(xe<<5)+xe^ae.charCodeAt(Ne);V.push({server:ae,count:de,hue:Math.abs(xe)%360})}return V.sort((ae,de)=>de.count-ae.count),V},[n.current,n.current.lastSeq]),Ls=A.useCallback(W=>{hi(V=>{const ae=new Set(V);return ae.has(W)?ae.delete(W):ae.add(W),ae})},[]),vt=u?n.current.agents.get(u):null,Gr=p?Array.from(n.current.agents.values()).flatMap(W=>W.tools).find(W=>W.id===p)??null:null,Ma=A.useCallback(async()=>{try{await fetch("/api/clear",{method:"POST"})}catch{}n.current=ov(),Nt.current.clear(),$n.current.clear(),Ut.current.clear(),Ts.current="",vE(),g(),i()},[i,g]),Pa=A.useRef(b);Pa.current=b;const vi=A.useRef(!1);vi.current=Gr!=null||kt||N!=null||y!=null;const Sr=A.useCallback(W=>{const V=dL(W,{confirmOpen:Pa.current,modalOpen:vi.current});V==="confirm"?k(!0):V==="clear"&&(k(!1),Ma())},[Ma]),qs=A.useCallback(()=>{Nt.current.clear(),Ut.current.clear(),Ts.current="",vE(),i(),window.setTimeout(()=>Bt(500),80)},[i,e,Bt]),wo=A.useCallback(()=>Bt(500),[Bt]),Sn=A.useRef(zn);Sn.current=zn;const yi=A.useRef(u);yi.current=u;const Yr=A.useCallback(W=>{const V=Sn.current;if(V.length===0)return;const ae=V.slice().sort((De,He)=>De.position.y-He.position.y||De.position.x-He.position.x),de=yi.current,xe=de?ae.findIndex(De=>De.id===de):-1;let Ne;xe===-1?Ne=W===1?0:ae.length-1:Ne=(xe+W+ae.length)%ae.length;const Ie=ae[Ne];Ie&&(f(Ie.id,!1),window.setTimeout(()=>{try{e.fitView({padding:.35,duration:350,nodes:[Ie]})}catch{}Ve.current=Date.now()},30))},[f,e]),xo=A.useCallback(W=>{f(W,!1),window.setTimeout(()=>{try{const V=Sn.current.find(ae=>ae.id===W);V&&e.fitView({padding:.3,duration:500,nodes:[V]}),Ve.current=Date.now()}catch{}},60)},[f,e]);A.useEffect(()=>{const W=V=>{var xe,Ne;const ae=V.target,de={tagName:ae==null?void 0:ae.tagName,isContentEditable:ae==null?void 0:ae.isContentEditable,role:(xe=ae==null?void 0:ae.getAttribute)==null?void 0:xe.call(ae,"role"),type:ae==null?void 0:ae.type};if(V.key==="Escape"){const Ie=cO({overlayOpen:lv.depth()>0,typing:sC(de)});Ie==="dismiss"?lv.dismissTop():Ie==="blur"?ae==null||ae.blur():g();return}if(!uL(de)&&!iL(V)){if(V.key==="/"){V.preventDefault(),(Ne=Ur.current)==null||Ne.focus();return}V.key===" "&&(V.preventDefault(),qn()),(V.key==="c"||V.key==="C")&&Sr("shortcut"),(V.key==="r"||V.key==="R")&&qs(),(V.key==="f"||V.key==="F")&&wo(),(V.key==="l"||V.key==="L")&&Qe(),(V.key==="h"||V.key==="H")&&rt(Ie=>!Ie),(V.key==="u"||V.key==="U")&&O(Ie=>!Ie),(V.key==="a"||V.key==="A")&&ht(),(V.key==="j"||V.key==="J")&&Yr(1),(V.key==="k"||V.key==="K")&&Yr(-1),(V.key==="t"||V.key==="T")&&_s(Ie=>Ie==="dark"?"light":"dark")}};return window.addEventListener("keydown",W),()=>window.removeEventListener("keydown",W)},[Sr,qs,wo,g,Yr,qn]);const dr=n.current.agents.size,wi=new Set(Array.from(n.current.agents.values()).map(W=>W.sessionId)).size,kr=A.useMemo(()=>{const W=[];for(const V of n.current.agents.values())V.kind==="root"&&V.waiting&&W.push({id:V.id,label:V.label,waiting:V.waiting});return W.sort((V,ae)=>V.waiting.since-ae.waiting.since)},[n.current,n.current.lastSeq]),et=A.useMemo(()=>{let W=0,V=0,ae=0,de=0,xe=0,Ne=0,Ie=0,De=0,He=0;for(const Xe of n.current.agents.values()){W+=Xe.usage.inputTokens,V+=Xe.usage.outputTokens,ae+=Xe.usage.cacheReadTokens,de+=Xe.usage.cacheCreateTokens;const lt=ln(Xe.usage,Xe.model);xe+=lt.total,Ne+=lt.input,Ie+=lt.output,De+=lt.cacheRead,He+=lt.cacheWrite}return{inT:W,outT:V,cacheR:ae,cacheC:de,sum:W+V,cost:{total:xe,input:Ne,output:Ie,cacheRead:De,cacheWrite:He}}},[n.current,n.current.lastSeq]);return m.jsxs("div",{className:"app",children:[m.jsxs("header",{className:"topbar",children:[m.jsxs("div",{className:"brand",children:[m.jsx("span",{className:"logo"}),Jn,ye?m.jsxs("button",{type:"button",className:"v stale",onClick:Be,title:ye.kind==="restart"?`Running v${ye.from}; v${ye.to} is installed on disk. Restart to pick it up.`:`Running v${ye.from}; v${ye.to} is on npm.`,children:["v",ye.from,m.jsx("span",{className:"v-dot","aria-hidden":!0})]}):(()=>{const W={running:(X==null?void 0:X.running)??"1.33.138",latest:X==null?void 0:X.latest,latestPending:X==null?void 0:X.latestPending,checkedAgo:X!=null&&X.checkedAt?pv(Ze-X.checkedAt):null,checkDisabled:X==null?void 0:X.checkDisabled,checking:ce};return m.jsxs("button",{type:"button",className:ce?"v checking":"v",onClick:()=>ve(!0),"aria-busy":ce||void 0,"aria-label":cD(W),title:uD(W),children:["v",W.running]})})()]}),vt&&(()=>{const W=ln(vt.usage,vt.model),V=Math.max(0,((vt.endedAt??Ze)-vt.startedAt)/1e3),ae=vt.state==="active"?cu(W.total,V):null,de=o.size-1;return m.jsxs("button",{type:"button",className:"selected-ribbon",title:`Fit view to ${vt.label}`,onClick:()=>{try{const xe=zn.find(Ne=>Ne.id===vt.id);xe&&e.fitView({padding:.35,duration:500,nodes:[xe]}),Ve.current=Date.now()}catch{}},children:[m.jsx("span",{className:`state-pill state-${vt.state}`,children:vt.state==="active"?"live":vt.state}),m.jsx("span",{className:"selected-label",children:vt.label}),W.total>0&&m.jsxs("span",{className:"selected-cost",children:[ze(W.total),ae?m.jsxs("span",{className:"selected-rate",children:[" · ",ae]}):null]}),de>0&&m.jsxs("span",{className:"selected-extra",children:["+",de]}),m.jsx("span",{role:"button","aria-label":"Deselect",className:"selected-close",onClick:xe=>{xe.stopPropagation(),g()},children:"×"})]})})(),m.jsxs("div",{className:"actions",children:[m.jsxs("div",{className:"search",children:[m.jsx("span",{className:"search-icon","aria-hidden":!0,children:"⌕"}),m.jsx("input",{ref:Ur,type:"text",placeholder:"Search agents, cwd, tools…",value:Xt,onChange:W=>cn(W.target.value),spellCheck:!1,"aria-label":"Filter the graph"}),Xt?m.jsx("button",{className:"search-clear","aria-label":"Clear search",onClick:()=>cn(""),children:"×"}):m.jsx("kbd",{className:"search-kbd","aria-hidden":!0,children:"/"}),cr.count&&m.jsx("span",{className:`search-count${cr.empty?" none":""}`,"aria-live":"polite",title:`${cr.count} agents on the canvas match “${Xt}”`,children:cr.count})]}),m.jsxs("span",{className:"status",role:"status",children:[(()=>{const W=fD({connected:I,paused:It,held:At.current.size});return m.jsx("span",{className:`pill ${W.tone}`,title:W.title,children:W.label})})(),m.jsxs("span",{className:"stat",title:"Distinct CC sessions",children:[m.jsx("span",{className:"count",children:wi}),m.jsx("span",{className:"lbl",children:"sessions"})]}),m.jsxs("span",{className:"stat",title:"Total agents (root + subagents)",children:[m.jsx("span",{className:"count",children:dr}),m.jsx("span",{className:"lbl",children:"agents"})]}),m.jsxs("span",{className:"stat",title:"Total hook events received",children:[m.jsx("span",{className:"count",children:n.current.totalEvents}),m.jsx("span",{className:"lbl",children:"events"})]}),et.sum>0&&m.jsxs("span",{className:"stat",title:`in:${et.inT.toLocaleString()} out:${et.outT.toLocaleString()} cache-r:${et.cacheR.toLocaleString()} cache-c:${et.cacheC.toLocaleString()}`,children:[m.jsx("span",{className:"count",children:Ft(et.sum)}),m.jsx("span",{className:"lbl",children:"tokens"})]}),Bn.length>0&&m.jsxs("span",{className:"stat mcp-legend",title:`MCP servers seen this session:
62
62
  ${Bn.map(W=>` ${W.server}: ${W.count} call${W.count===1?"":"s"}`).join(`
63
63
  `)}`,children:[Bn.slice(0,6).map(W=>m.jsx("span",{className:"mcp-dot",style:{"--mcp-hue":W.hue}},W.server)),Bn.length>6&&m.jsxs("span",{className:"mcp-more",children:["+",Bn.length-6]}),m.jsx("span",{className:"lbl",children:"mcp"})]}),et.cost.total>0&&(()=>{let W=0,V=0;for(const xe of n.current.agents.values()){if(xe.state!=="active")continue;const Ne=ln(xe.usage,xe.model);W+=Ne.total,V=Math.max(V,((xe.endedAt??Ze)-xe.startedAt)/1e3)}const ae=V>0?cu(W,V):null,de=`input ${ze(et.cost.input)} + output ${ze(et.cost.output)} + cache r ${ze(et.cost.cacheRead)} + cache w ${ze(et.cost.cacheWrite)}${ae?`
64
64
  active burn: ${ae}`:""}`;return m.jsxs("span",{className:"stat",title:de,children:[m.jsx("span",{className:"count",children:ze(et.cost.total)}),m.jsxs("span",{className:"lbl",children:["cost",ae?` · ${ae}`:""]})]})})()]}),kr.length>0&&m.jsxs("button",{type:"button",className:"waiting-stat",onClick:()=>xo(kr[0].id),title:`Blocked waiting for you — click to go to the one that has been stuck longest:
@@ -28,7 +28,7 @@
28
28
  document.documentElement.setAttribute("data-theme", stored === "light" ? "light" : "dark");
29
29
  })();
30
30
  </script>
31
- <script type="module" crossorigin src="/assets/index-BBnw9Hd8.js"></script>
31
+ <script type="module" crossorigin src="/assets/index-B3oQb7EU.js"></script>
32
32
  <link rel="stylesheet" crossorigin href="/assets/index-DhGa0tR_.css">
33
33
  </head>
34
34
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-dag",
3
- "version": "1.33.137",
3
+ "version": "1.33.138",
4
4
  "description": "Live deck of Claude Code and Codex agents — watch parallel subagents fork, call tools, and return on one calm canvas. Also available as npx ccdeck and npx agent-dag.",
5
5
  "type": "module",
6
6
  "bin": {