agent-dag 1.35.11 → 1.35.12

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.
@@ -56,14 +56,14 @@ Error generating stack: `+x.message+`
56
56
  */var Hw;function nj(){if(Hw)return jd;Hw=1;var e=ka(),n=tj();function r(p,d){return p===d&&(p!==0||1/p===1/d)||p!==p&&d!==d}var i=typeof Object.is=="function"?Object.is:r,o=n.useSyncExternalStore,l=e.useRef,u=e.useEffect,c=e.useMemo,h=e.useDebugValue;return jd.useSyncExternalStoreWithSelector=function(p,d,m,y,w){var N=l(null);if(N.current===null){var _={hasValue:!1,value:null};N.current=_}else _=N.current;N=c(function(){function S(O){if(!k){if(k=!0,E=O,O=y(O),w!==void 0&&_.hasValue){var A=_.value;if(w(A,O))return R=A}return R=O}if(A=R,i(E,O))return A;var U=y(O);return w!==void 0&&w(A,U)?(E=O,A):(E=O,R=U)}var k=!1,E,R,I=m===void 0?null:m;return[function(){return S(d())},I===null?void 0:function(){return S(I())}]},[d,m,y,w]);var b=o(p,N[0],N[1]);return u(function(){_.hasValue=!0,_.value=b},[b]),h(b),b},jd}var Ww;function rj(){return Ww||(Ww=1,Td.exports=nj()),Td.exports}var sj=rj();const ij=$v(sj),oj={},Vw=e=>{let n;const r=new Set,i=(d,m)=>{const y=typeof d=="function"?d(n):d;if(!Object.is(y,n)){const w=n;n=m??(typeof y!="object"||y===null)?y:Object.assign({},n,y),r.forEach(N=>N(n,w))}},o=()=>n,h={setState:i,getState:o,getInitialState:()=>p,subscribe:d=>(r.add(d),()=>r.delete(d)),destroy:()=>{(oj?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),r.clear()}},p=n=e(i,o,h);return h},aj=e=>e?Vw(e):Vw,{useDebugValue:lj}=ue,{useSyncExternalStoreWithSelector:uj}=ij,cj=e=>e;function BE(e,n=cj,r){const i=uj(e.subscribe,e.getState,e.getServerState||e.getInitialState,n,r);return lj(i),i}const Gw=(e,n)=>{const r=aj(e),i=(o,l=n)=>BE(r,o,l);return Object.assign(i,r),i},dj=(e,n)=>e?Gw(e,n):Gw;function Ct(e,n){if(Object.is(e,n))return!0;if(typeof e!="object"||e===null||typeof n!="object"||n===null)return!1;if(e instanceof Map&&n instanceof Map){if(e.size!==n.size)return!1;for(const[i,o]of e)if(!Object.is(o,n.get(i)))return!1;return!0}if(e instanceof Set&&n instanceof Set){if(e.size!==n.size)return!1;for(const i of e)if(!n.has(i))return!1;return!0}const r=Object.keys(e);if(r.length!==Object.keys(n).length)return!1;for(const i of r)if(!Object.prototype.hasOwnProperty.call(n,i)||!Object.is(e[i],n[i]))return!1;return!0}var fj={value:()=>{}};function Ru(){for(var e=0,n=arguments.length,r={},i;e<n;++e){if(!(i=arguments[e]+"")||i in r||/[\s.]/.test(i))throw new Error("illegal type: "+i);r[i]=[]}return new lu(r)}function lu(e){this._=e}function hj(e,n){return e.trim().split(/^|\s+/).map(function(r){var i="",o=r.indexOf(".");if(o>=0&&(i=r.slice(o+1),r=r.slice(0,o)),r&&!n.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:i}})}lu.prototype=Ru.prototype={constructor:lu,on:function(e,n){var r=this._,i=hj(e+"",r),o,l=-1,u=i.length;if(arguments.length<2){for(;++l<u;)if((o=(e=i[l]).type)&&(o=pj(r[o],e.name)))return o;return}if(n!=null&&typeof n!="function")throw new Error("invalid callback: "+n);for(;++l<u;)if(o=(e=i[l]).type)r[o]=Yw(r[o],e.name,n);else if(n==null)for(o in r)r[o]=Yw(r[o],e.name,null);return this},copy:function(){var e={},n=this._;for(var r in n)e[r]=n[r].slice();return new lu(e)},call:function(e,n){if((o=arguments.length-2)>0)for(var r=new Array(o),i=0,o,l;i<o;++i)r[i]=arguments[i+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(l=this._[e],i=0,o=l.length;i<o;++i)l[i].value.apply(n,r)},apply:function(e,n,r){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var i=this._[e],o=0,l=i.length;o<l;++o)i[o].value.apply(n,r)}};function pj(e,n){for(var r=0,i=e.length,o;r<i;++r)if((o=e[r]).name===n)return o.value}function Yw(e,n,r){for(var i=0,o=e.length;i<o;++i)if(e[i].name===n){e[i]=fj,e=e.slice(0,i).concat(e.slice(i+1));break}return r!=null&&e.push({name:n,value:r}),e}var dv="http://www.w3.org/1999/xhtml";const Kw={svg:"http://www.w3.org/2000/svg",xhtml:dv,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Tu(e){var n=e+="",r=n.indexOf(":");return r>=0&&(n=e.slice(0,r))!=="xmlns"&&(e=e.slice(r+1)),Kw.hasOwnProperty(n)?{space:Kw[n],local:e}:e}function mj(e){return function(){var n=this.ownerDocument,r=this.namespaceURI;return r===dv&&n.documentElement.namespaceURI===dv?n.createElement(e):n.createElementNS(r,e)}}function gj(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function UE(e){var n=Tu(e);return(n.local?gj:mj)(n)}function vj(){}function qv(e){return e==null?vj:function(){return this.querySelector(e)}}function yj(e){typeof e!="function"&&(e=qv(e));for(var n=this._groups,r=n.length,i=new Array(r),o=0;o<r;++o)for(var l=n[o],u=l.length,c=i[o]=new Array(u),h,p,d=0;d<u;++d)(h=l[d])&&(p=e.call(h,h.__data__,d,l))&&("__data__"in h&&(p.__data__=h.__data__),c[d]=p);return new bn(i,this._parents)}function wj(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function xj(){return[]}function HE(e){return e==null?xj:function(){return this.querySelectorAll(e)}}function _j(e){return function(){return wj(e.apply(this,arguments))}}function bj(e){typeof e=="function"?e=_j(e):e=HE(e);for(var n=this._groups,r=n.length,i=[],o=[],l=0;l<r;++l)for(var u=n[l],c=u.length,h,p=0;p<c;++p)(h=u[p])&&(i.push(e.call(h,h.__data__,p,u)),o.push(h));return new bn(i,o)}function WE(e){return function(){return this.matches(e)}}function VE(e){return function(n){return n.matches(e)}}var Sj=Array.prototype.find;function kj(e){return function(){return Sj.call(this.children,e)}}function Ej(){return this.firstElementChild}function Nj(e){return this.select(e==null?Ej:kj(typeof e=="function"?e:VE(e)))}var Cj=Array.prototype.filter;function Rj(){return Array.from(this.children)}function Tj(e){return function(){return Cj.call(this.children,e)}}function jj(e){return this.selectAll(e==null?Rj:Tj(typeof e=="function"?e:VE(e)))}function Aj(e){typeof e!="function"&&(e=WE(e));for(var n=this._groups,r=n.length,i=new Array(r),o=0;o<r;++o)for(var l=n[o],u=l.length,c=i[o]=[],h,p=0;p<u;++p)(h=l[p])&&e.call(h,h.__data__,p,l)&&c.push(h);return new bn(i,this._parents)}function GE(e){return new Array(e.length)}function Ij(){return new bn(this._enter||this._groups.map(GE),this._parents)}function pu(e,n){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=n}pu.prototype={constructor:pu,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,n){return this._parent.insertBefore(e,n)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function Mj(e){return function(){return e}}function Oj(e,n,r,i,o,l){for(var u=0,c,h=n.length,p=l.length;u<p;++u)(c=n[u])?(c.__data__=l[u],i[u]=c):r[u]=new pu(e,l[u]);for(;u<h;++u)(c=n[u])&&(o[u]=c)}function Pj(e,n,r,i,o,l,u){var c,h,p=new Map,d=n.length,m=l.length,y=new Array(d),w;for(c=0;c<d;++c)(h=n[c])&&(y[c]=w=u.call(h,h.__data__,c,n)+"",p.has(w)?o[c]=h:p.set(w,h));for(c=0;c<m;++c)w=u.call(e,l[c],c,l)+"",(h=p.get(w))?(i[c]=h,h.__data__=l[c],p.delete(w)):r[c]=new pu(e,l[c]);for(c=0;c<d;++c)(h=n[c])&&p.get(y[c])===h&&(o[c]=h)}function Lj(e){return e.__data__}function $j(e,n){if(!arguments.length)return Array.from(this,Lj);var r=n?Pj:Oj,i=this._parents,o=this._groups;typeof e!="function"&&(e=Mj(e));for(var l=o.length,u=new Array(l),c=new Array(l),h=new Array(l),p=0;p<l;++p){var d=i[p],m=o[p],y=m.length,w=qj(e.call(d,d&&d.__data__,p,i)),N=w.length,_=c[p]=new Array(N),b=u[p]=new Array(N),S=h[p]=new Array(y);r(d,m,_,b,S,w,n);for(var k=0,E=0,R,I;k<N;++k)if(R=_[k]){for(k>=E&&(E=k+1);!(I=b[E])&&++E<N;);R._next=I||null}}return u=new bn(u,i),u._enter=c,u._exit=h,u}function qj(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Dj(){return new bn(this._exit||this._groups.map(GE),this._parents)}function Fj(e,n,r){var i=this.enter(),o=this,l=this.exit();return typeof e=="function"?(i=e(i),i&&(i=i.selection())):i=i.append(e+""),n!=null&&(o=n(o),o&&(o=o.selection())),r==null?l.remove():r(l),i&&o?i.merge(o).order():o}function zj(e){for(var n=e.selection?e.selection():e,r=this._groups,i=n._groups,o=r.length,l=i.length,u=Math.min(o,l),c=new Array(o),h=0;h<u;++h)for(var p=r[h],d=i[h],m=p.length,y=c[h]=new Array(m),w,N=0;N<m;++N)(w=p[N]||d[N])&&(y[N]=w);for(;h<o;++h)c[h]=r[h];return new bn(c,this._parents)}function Bj(){for(var e=this._groups,n=-1,r=e.length;++n<r;)for(var i=e[n],o=i.length-1,l=i[o],u;--o>=0;)(u=i[o])&&(l&&u.compareDocumentPosition(l)^4&&l.parentNode.insertBefore(u,l),l=u);return this}function Uj(e){e||(e=Hj);function n(m,y){return m&&y?e(m.__data__,y.__data__):!m-!y}for(var r=this._groups,i=r.length,o=new Array(i),l=0;l<i;++l){for(var u=r[l],c=u.length,h=o[l]=new Array(c),p,d=0;d<c;++d)(p=u[d])&&(h[d]=p);h.sort(n)}return new bn(o,this._parents).order()}function Hj(e,n){return e<n?-1:e>n?1:e>=n?0:NaN}function Wj(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Vj(){return Array.from(this)}function Gj(){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var i=e[n],o=0,l=i.length;o<l;++o){var u=i[o];if(u)return u}return null}function Yj(){let e=0;for(const n of this)++e;return e}function Kj(){return!this.node()}function Xj(e){for(var n=this._groups,r=0,i=n.length;r<i;++r)for(var o=n[r],l=0,u=o.length,c;l<u;++l)(c=o[l])&&e.call(c,c.__data__,l,o);return this}function Qj(e){return function(){this.removeAttribute(e)}}function Zj(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Jj(e,n){return function(){this.setAttribute(e,n)}}function eA(e,n){return function(){this.setAttributeNS(e.space,e.local,n)}}function tA(e,n){return function(){var r=n.apply(this,arguments);r==null?this.removeAttribute(e):this.setAttribute(e,r)}}function nA(e,n){return function(){var r=n.apply(this,arguments);r==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,r)}}function rA(e,n){var r=Tu(e);if(arguments.length<2){var i=this.node();return r.local?i.getAttributeNS(r.space,r.local):i.getAttribute(r)}return this.each((n==null?r.local?Zj:Qj:typeof n=="function"?r.local?nA:tA:r.local?eA:Jj)(r,n))}function YE(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function sA(e){return function(){this.style.removeProperty(e)}}function iA(e,n,r){return function(){this.style.setProperty(e,n,r)}}function oA(e,n,r){return function(){var i=n.apply(this,arguments);i==null?this.style.removeProperty(e):this.style.setProperty(e,i,r)}}function aA(e,n,r){return arguments.length>1?this.each((n==null?sA:typeof n=="function"?oA:iA)(e,n,r??"")):ao(this.node(),e)}function ao(e,n){return e.style.getPropertyValue(n)||YE(e).getComputedStyle(e,null).getPropertyValue(n)}function lA(e){return function(){delete this[e]}}function uA(e,n){return function(){this[e]=n}}function cA(e,n){return function(){var r=n.apply(this,arguments);r==null?delete this[e]:this[e]=r}}function dA(e,n){return arguments.length>1?this.each((n==null?lA:typeof n=="function"?cA:uA)(e,n)):this.node()[e]}function KE(e){return e.trim().split(/^|\s+/)}function Dv(e){return e.classList||new XE(e)}function XE(e){this._node=e,this._names=KE(e.getAttribute("class")||"")}XE.prototype={add:function(e){var n=this._names.indexOf(e);n<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var n=this._names.indexOf(e);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function QE(e,n){for(var r=Dv(e),i=-1,o=n.length;++i<o;)r.add(n[i])}function ZE(e,n){for(var r=Dv(e),i=-1,o=n.length;++i<o;)r.remove(n[i])}function fA(e){return function(){QE(this,e)}}function hA(e){return function(){ZE(this,e)}}function pA(e,n){return function(){(n.apply(this,arguments)?QE:ZE)(this,e)}}function mA(e,n){var r=KE(e+"");if(arguments.length<2){for(var i=Dv(this.node()),o=-1,l=r.length;++o<l;)if(!i.contains(r[o]))return!1;return!0}return this.each((typeof n=="function"?pA:n?fA:hA)(r,n))}function gA(){this.textContent=""}function vA(e){return function(){this.textContent=e}}function yA(e){return function(){var n=e.apply(this,arguments);this.textContent=n??""}}function wA(e){return arguments.length?this.each(e==null?gA:(typeof e=="function"?yA:vA)(e)):this.node().textContent}function xA(){this.innerHTML=""}function _A(e){return function(){this.innerHTML=e}}function bA(e){return function(){var n=e.apply(this,arguments);this.innerHTML=n??""}}function SA(e){return arguments.length?this.each(e==null?xA:(typeof e=="function"?bA:_A)(e)):this.node().innerHTML}function kA(){this.nextSibling&&this.parentNode.appendChild(this)}function EA(){return this.each(kA)}function NA(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function CA(){return this.each(NA)}function RA(e){var n=typeof e=="function"?e:UE(e);return this.select(function(){return this.appendChild(n.apply(this,arguments))})}function TA(){return null}function jA(e,n){var r=typeof e=="function"?e:UE(e),i=n==null?TA:typeof n=="function"?n:qv(n);return this.select(function(){return this.insertBefore(r.apply(this,arguments),i.apply(this,arguments)||null)})}function AA(){var e=this.parentNode;e&&e.removeChild(this)}function IA(){return this.each(AA)}function MA(){var e=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(e,this.nextSibling):e}function OA(){var e=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(e,this.nextSibling):e}function PA(e){return this.select(e?OA:MA)}function LA(e){return arguments.length?this.property("__data__",e):this.node().__data__}function $A(e){return function(n){e.call(this,n,this.__data__)}}function qA(e){return e.trim().split(/^|\s+/).map(function(n){var r="",i=n.indexOf(".");return i>=0&&(r=n.slice(i+1),n=n.slice(0,i)),{type:n,name:r}})}function DA(e){return function(){var n=this.__on;if(n){for(var r=0,i=-1,o=n.length,l;r<o;++r)l=n[r],(!e.type||l.type===e.type)&&l.name===e.name?this.removeEventListener(l.type,l.listener,l.options):n[++i]=l;++i?n.length=i:delete this.__on}}}function FA(e,n,r){return function(){var i=this.__on,o,l=$A(n);if(i){for(var u=0,c=i.length;u<c;++u)if((o=i[u]).type===e.type&&o.name===e.name){this.removeEventListener(o.type,o.listener,o.options),this.addEventListener(o.type,o.listener=l,o.options=r),o.value=n;return}}this.addEventListener(e.type,l,r),o={type:e.type,name:e.name,value:n,listener:l,options:r},i?i.push(o):this.__on=[o]}}function zA(e,n,r){var i=qA(e+""),o,l=i.length,u;if(arguments.length<2){var c=this.node().__on;if(c){for(var h=0,p=c.length,d;h<p;++h)for(o=0,d=c[h];o<l;++o)if((u=i[o]).type===d.type&&u.name===d.name)return d.value}return}for(c=n?FA:DA,o=0;o<l;++o)this.each(c(i[o],n,r));return this}function JE(e,n,r){var i=YE(e),o=i.CustomEvent;typeof o=="function"?o=new o(n,r):(o=i.document.createEvent("Event"),r?(o.initEvent(n,r.bubbles,r.cancelable),o.detail=r.detail):o.initEvent(n,!1,!1)),e.dispatchEvent(o)}function BA(e,n){return function(){return JE(this,e,n)}}function UA(e,n){return function(){return JE(this,e,n.apply(this,arguments))}}function HA(e,n){return this.each((typeof n=="function"?UA:BA)(e,n))}function*WA(){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var i=e[n],o=0,l=i.length,u;o<l;++o)(u=i[o])&&(yield u)}var eN=[null];function bn(e,n){this._groups=e,this._parents=n}function Ea(){return new bn([[document.documentElement]],eN)}function VA(){return this}bn.prototype=Ea.prototype={constructor:bn,select:yj,selectAll:bj,selectChild:Nj,selectChildren:jj,filter:Aj,data:$j,enter:Ij,exit:Dj,join:Fj,merge:zj,selection:VA,order:Bj,sort:Uj,call:Wj,nodes:Vj,node:Gj,size:Yj,empty:Kj,each:Xj,attr:rA,style:aA,property:dA,classed:mA,text:wA,html:SA,raise:EA,lower:CA,append:RA,insert:jA,remove:IA,clone:PA,datum:LA,on:zA,dispatch:HA,[Symbol.iterator]:WA};function Ln(e){return typeof e=="string"?new bn([[document.querySelector(e)]],[document.documentElement]):new bn([[e]],eN)}function GA(e){let n;for(;n=e.sourceEvent;)e=n;return e}function Jn(e,n){if(e=GA(e),n===void 0&&(n=e.currentTarget),n){var r=n.ownerSVGElement||n;if(r.createSVGPoint){var i=r.createSVGPoint();return i.x=e.clientX,i.y=e.clientY,i=i.matrixTransform(n.getScreenCTM().inverse()),[i.x,i.y]}if(n.getBoundingClientRect){var o=n.getBoundingClientRect();return[e.clientX-o.left-n.clientLeft,e.clientY-o.top-n.clientTop]}}return[e.pageX,e.pageY]}const YA={passive:!1},pa={capture:!0,passive:!1};function Md(e){e.stopImmediatePropagation()}function ro(e){e.preventDefault(),e.stopImmediatePropagation()}function tN(e){var n=e.document.documentElement,r=Ln(e).on("dragstart.drag",ro,pa);"onselectstart"in n?r.on("selectstart.drag",ro,pa):(n.__noselect=n.style.MozUserSelect,n.style.MozUserSelect="none")}function nN(e,n){var r=e.document.documentElement,i=Ln(e).on("dragstart.drag",null);n&&(i.on("click.drag",ro,pa),setTimeout(function(){i.on("click.drag",null)},0)),"onselectstart"in r?i.on("selectstart.drag",null):(r.style.MozUserSelect=r.__noselect,delete r.__noselect)}const Wl=e=>()=>e;function fv(e,{sourceEvent:n,subject:r,target:i,identifier:o,active:l,x:u,y:c,dx:h,dy:p,dispatch:d}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},subject:{value:r,enumerable:!0,configurable:!0},target:{value:i,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:l,enumerable:!0,configurable:!0},x:{value:u,enumerable:!0,configurable:!0},y:{value:c,enumerable:!0,configurable:!0},dx:{value:h,enumerable:!0,configurable:!0},dy:{value:p,enumerable:!0,configurable:!0},_:{value:d}})}fv.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function KA(e){return!e.ctrlKey&&!e.button}function XA(){return this.parentNode}function QA(e,n){return n??{x:e.x,y:e.y}}function ZA(){return navigator.maxTouchPoints||"ontouchstart"in this}function JA(){var e=KA,n=XA,r=QA,i=ZA,o={},l=Ru("start","drag","end"),u=0,c,h,p,d,m=0;function y(R){R.on("mousedown.drag",w).filter(i).on("touchstart.drag",b).on("touchmove.drag",S,YA).on("touchend.drag touchcancel.drag",k).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function w(R,I){if(!(d||!e.call(this,R,I))){var O=E(this,n.call(this,R,I),R,I,"mouse");O&&(Ln(R.view).on("mousemove.drag",N,pa).on("mouseup.drag",_,pa),tN(R.view),Md(R),p=!1,c=R.clientX,h=R.clientY,O("start",R))}}function N(R){if(ro(R),!p){var I=R.clientX-c,O=R.clientY-h;p=I*I+O*O>m}o.mouse("drag",R)}function _(R){Ln(R.view).on("mousemove.drag mouseup.drag",null),nN(R.view,p),ro(R),o.mouse("end",R)}function b(R,I){if(e.call(this,R,I)){var O=R.changedTouches,A=n.call(this,R,I),U=O.length,z,P;for(z=0;z<U;++z)(P=E(this,A,R,I,O[z].identifier,O[z]))&&(Md(R),P("start",R,O[z]))}}function S(R){var I=R.changedTouches,O=I.length,A,U;for(A=0;A<O;++A)(U=o[I[A].identifier])&&(ro(R),U("drag",R,I[A]))}function k(R){var I=R.changedTouches,O=I.length,A,U;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),A=0;A<O;++A)(U=o[I[A].identifier])&&(Md(R),U("end",R,I[A]))}function E(R,I,O,A,U,z){var P=l.copy(),D=Jn(z||O,I),V,B,C;if((C=r.call(R,new fv("beforestart",{sourceEvent:O,target:y,identifier:U,active:u,x:D[0],y:D[1],dx:0,dy:0,dispatch:P}),A))!=null)return V=C.x-D[0]||0,B=C.y-D[1]||0,function q(L,re,Z){var H=D,J;switch(L){case"start":o[U]=q,J=u++;break;case"end":delete o[U],--u;case"drag":D=Jn(Z||re,I),J=u;break}P.call(L,R,new fv(L,{sourceEvent:re,subject:C,target:y,identifier:U,active:J,x:D[0]+V,y:D[1]+B,dx:D[0]-H[0],dy:D[1]-H[1],dispatch:P}),A)}}return y.filter=function(R){return arguments.length?(e=typeof R=="function"?R:Wl(!!R),y):e},y.container=function(R){return arguments.length?(n=typeof R=="function"?R:Wl(R),y):n},y.subject=function(R){return arguments.length?(r=typeof R=="function"?R:Wl(R),y):r},y.touchable=function(R){return arguments.length?(i=typeof R=="function"?R:Wl(!!R),y):i},y.on=function(){var R=l.on.apply(l,arguments);return R===l?y:R},y.clickDistance=function(R){return arguments.length?(m=(R=+R)*R,y):Math.sqrt(m)},y}function Fv(e,n,r){e.prototype=n.prototype=r,r.constructor=e}function rN(e,n){var r=Object.create(e.prototype);for(var i in n)r[i]=n[i];return r}function Na(){}var ma=.7,mu=1/ma,so="\\s*([+-]?\\d+)\\s*",ga="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",hr="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",e2=/^#([0-9a-f]{3,8})$/,t2=new RegExp(`^rgb\\(${so},${so},${so}\\)$`),n2=new RegExp(`^rgb\\(${hr},${hr},${hr}\\)$`),r2=new RegExp(`^rgba\\(${so},${so},${so},${ga}\\)$`),s2=new RegExp(`^rgba\\(${hr},${hr},${hr},${ga}\\)$`),i2=new RegExp(`^hsl\\(${ga},${hr},${hr}\\)$`),o2=new RegExp(`^hsla\\(${ga},${hr},${hr},${ga}\\)$`),Xw={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Fv(Na,va,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Qw,formatHex:Qw,formatHex8:a2,formatHsl:l2,formatRgb:Zw,toString:Zw});function Qw(){return this.rgb().formatHex()}function a2(){return this.rgb().formatHex8()}function l2(){return sN(this).formatHsl()}function Zw(){return this.rgb().formatRgb()}function va(e){var n,r;return e=(e+"").trim().toLowerCase(),(n=e2.exec(e))?(r=n[1].length,n=parseInt(n[1],16),r===6?Jw(n):r===3?new cn(n>>8&15|n>>4&240,n>>4&15|n&240,(n&15)<<4|n&15,1):r===8?Vl(n>>24&255,n>>16&255,n>>8&255,(n&255)/255):r===4?Vl(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|n&240,((n&15)<<4|n&15)/255):null):(n=t2.exec(e))?new cn(n[1],n[2],n[3],1):(n=n2.exec(e))?new cn(n[1]*255/100,n[2]*255/100,n[3]*255/100,1):(n=r2.exec(e))?Vl(n[1],n[2],n[3],n[4]):(n=s2.exec(e))?Vl(n[1]*255/100,n[2]*255/100,n[3]*255/100,n[4]):(n=i2.exec(e))?nx(n[1],n[2]/100,n[3]/100,1):(n=o2.exec(e))?nx(n[1],n[2]/100,n[3]/100,n[4]):Xw.hasOwnProperty(e)?Jw(Xw[e]):e==="transparent"?new cn(NaN,NaN,NaN,0):null}function Jw(e){return new cn(e>>16&255,e>>8&255,e&255,1)}function Vl(e,n,r,i){return i<=0&&(e=n=r=NaN),new cn(e,n,r,i)}function u2(e){return e instanceof Na||(e=va(e)),e?(e=e.rgb(),new cn(e.r,e.g,e.b,e.opacity)):new cn}function hv(e,n,r,i){return arguments.length===1?u2(e):new cn(e,n,r,i??1)}function cn(e,n,r,i){this.r=+e,this.g=+n,this.b=+r,this.opacity=+i}Fv(cn,hv,rN(Na,{brighter(e){return e=e==null?mu:Math.pow(mu,e),new cn(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?ma:Math.pow(ma,e),new cn(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new cn(li(this.r),li(this.g),li(this.b),gu(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:ex,formatHex:ex,formatHex8:c2,formatRgb:tx,toString:tx}));function ex(){return`#${oi(this.r)}${oi(this.g)}${oi(this.b)}`}function c2(){return`#${oi(this.r)}${oi(this.g)}${oi(this.b)}${oi((isNaN(this.opacity)?1:this.opacity)*255)}`}function tx(){const e=gu(this.opacity);return`${e===1?"rgb(":"rgba("}${li(this.r)}, ${li(this.g)}, ${li(this.b)}${e===1?")":`, ${e})`}`}function gu(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function li(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function oi(e){return e=li(e),(e<16?"0":"")+e.toString(16)}function nx(e,n,r,i){return i<=0?e=n=r=NaN:r<=0||r>=1?e=n=NaN:n<=0&&(e=NaN),new er(e,n,r,i)}function sN(e){if(e instanceof er)return new er(e.h,e.s,e.l,e.opacity);if(e instanceof Na||(e=va(e)),!e)return new er;if(e instanceof er)return e;e=e.rgb();var n=e.r/255,r=e.g/255,i=e.b/255,o=Math.min(n,r,i),l=Math.max(n,r,i),u=NaN,c=l-o,h=(l+o)/2;return c?(n===l?u=(r-i)/c+(r<i)*6:r===l?u=(i-n)/c+2:u=(n-r)/c+4,c/=h<.5?l+o:2-l-o,u*=60):c=h>0&&h<1?0:u,new er(u,c,h,e.opacity)}function d2(e,n,r,i){return arguments.length===1?sN(e):new er(e,n,r,i??1)}function er(e,n,r,i){this.h=+e,this.s=+n,this.l=+r,this.opacity=+i}Fv(er,d2,rN(Na,{brighter(e){return e=e==null?mu:Math.pow(mu,e),new er(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?ma:Math.pow(ma,e),new er(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,n=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,i=r+(r<.5?r:1-r)*n,o=2*r-i;return new cn(Od(e>=240?e-240:e+120,o,i),Od(e,o,i),Od(e<120?e+240:e-120,o,i),this.opacity)},clamp(){return new er(rx(this.h),Gl(this.s),Gl(this.l),gu(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=gu(this.opacity);return`${e===1?"hsl(":"hsla("}${rx(this.h)}, ${Gl(this.s)*100}%, ${Gl(this.l)*100}%${e===1?")":`, ${e})`}`}}));function rx(e){return e=(e||0)%360,e<0?e+360:e}function Gl(e){return Math.max(0,Math.min(1,e||0))}function Od(e,n,r){return(e<60?n+(r-n)*e/60:e<180?r:e<240?n+(r-n)*(240-e)/60:n)*255}const iN=e=>()=>e;function f2(e,n){return function(r){return e+r*n}}function h2(e,n,r){return e=Math.pow(e,r),n=Math.pow(n,r)-e,r=1/r,function(i){return Math.pow(e+i*n,r)}}function p2(e){return(e=+e)==1?oN:function(n,r){return r-n?h2(n,r,e):iN(isNaN(n)?r:n)}}function oN(e,n){var r=n-e;return r?f2(e,r):iN(isNaN(e)?n:e)}const sx=(function e(n){var r=p2(n);function i(o,l){var u=r((o=hv(o)).r,(l=hv(l)).r),c=r(o.g,l.g),h=r(o.b,l.b),p=oN(o.opacity,l.opacity);return function(d){return o.r=u(d),o.g=c(d),o.b=h(d),o.opacity=p(d),o+""}}return i.gamma=e,i})(1);function _s(e,n){return e=+e,n=+n,function(r){return e*(1-r)+n*r}}var pv=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Pd=new RegExp(pv.source,"g");function m2(e){return function(){return e}}function g2(e){return function(n){return e(n)+""}}function v2(e,n){var r=pv.lastIndex=Pd.lastIndex=0,i,o,l,u=-1,c=[],h=[];for(e=e+"",n=n+"";(i=pv.exec(e))&&(o=Pd.exec(n));)(l=o.index)>r&&(l=n.slice(r,l),c[u]?c[u]+=l:c[++u]=l),(i=i[0])===(o=o[0])?c[u]?c[u]+=o:c[++u]=o:(c[++u]=null,h.push({i:u,x:_s(i,o)})),r=Pd.lastIndex;return r<n.length&&(l=n.slice(r),c[u]?c[u]+=l:c[++u]=l),c.length<2?h[0]?g2(h[0].x):m2(n):(n=h.length,function(p){for(var d=0,m;d<n;++d)c[(m=h[d]).i]=m.x(p);return c.join("")})}var ix=180/Math.PI,mv={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function aN(e,n,r,i,o,l){var u,c,h;return(u=Math.sqrt(e*e+n*n))&&(e/=u,n/=u),(h=e*r+n*i)&&(r-=e*h,i-=n*h),(c=Math.sqrt(r*r+i*i))&&(r/=c,i/=c,h/=c),e*i<n*r&&(e=-e,n=-n,h=-h,u=-u),{translateX:o,translateY:l,rotate:Math.atan2(n,e)*ix,skewX:Math.atan(h)*ix,scaleX:u,scaleY:c}}var Yl;function y2(e){const n=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return n.isIdentity?mv:aN(n.a,n.b,n.c,n.d,n.e,n.f)}function w2(e){return e==null||(Yl||(Yl=document.createElementNS("http://www.w3.org/2000/svg","g")),Yl.setAttribute("transform",e),!(e=Yl.transform.baseVal.consolidate()))?mv:(e=e.matrix,aN(e.a,e.b,e.c,e.d,e.e,e.f))}function lN(e,n,r,i){function o(p){return p.length?p.pop()+" ":""}function l(p,d,m,y,w,N){if(p!==m||d!==y){var _=w.push("translate(",null,n,null,r);N.push({i:_-4,x:_s(p,m)},{i:_-2,x:_s(d,y)})}else(m||y)&&w.push("translate("+m+n+y+r)}function u(p,d,m,y){p!==d?(p-d>180?d+=360:d-p>180&&(p+=360),y.push({i:m.push(o(m)+"rotate(",null,i)-2,x:_s(p,d)})):d&&m.push(o(m)+"rotate("+d+i)}function c(p,d,m,y){p!==d?y.push({i:m.push(o(m)+"skewX(",null,i)-2,x:_s(p,d)}):d&&m.push(o(m)+"skewX("+d+i)}function h(p,d,m,y,w,N){if(p!==m||d!==y){var _=w.push(o(w)+"scale(",null,",",null,")");N.push({i:_-4,x:_s(p,m)},{i:_-2,x:_s(d,y)})}else(m!==1||y!==1)&&w.push(o(w)+"scale("+m+","+y+")")}return function(p,d){var m=[],y=[];return p=e(p),d=e(d),l(p.translateX,p.translateY,d.translateX,d.translateY,m,y),u(p.rotate,d.rotate,m,y),c(p.skewX,d.skewX,m,y),h(p.scaleX,p.scaleY,d.scaleX,d.scaleY,m,y),p=d=null,function(w){for(var N=-1,_=y.length,b;++N<_;)m[(b=y[N]).i]=b.x(w);return m.join("")}}}var x2=lN(y2,"px, ","px)","deg)"),_2=lN(w2,", ",")",")"),b2=1e-12;function ox(e){return((e=Math.exp(e))+1/e)/2}function S2(e){return((e=Math.exp(e))-1/e)/2}function k2(e){return((e=Math.exp(2*e))-1)/(e+1)}const E2=(function e(n,r,i){function o(l,u){var c=l[0],h=l[1],p=l[2],d=u[0],m=u[1],y=u[2],w=d-c,N=m-h,_=w*w+N*N,b,S;if(_<b2)S=Math.log(y/p)/n,b=function(A){return[c+A*w,h+A*N,p*Math.exp(n*A*S)]};else{var k=Math.sqrt(_),E=(y*y-p*p+i*_)/(2*p*r*k),R=(y*y-p*p-i*_)/(2*y*r*k),I=Math.log(Math.sqrt(E*E+1)-E),O=Math.log(Math.sqrt(R*R+1)-R);S=(O-I)/n,b=function(A){var U=A*S,z=ox(I),P=p/(r*k)*(z*k2(n*U+I)-S2(I));return[c+P*w,h+P*N,p*z/ox(n*U+I)]}}return b.duration=S*1e3*n/Math.SQRT2,b}return o.rho=function(l){var u=Math.max(.001,+l),c=u*u,h=c*c;return e(u,c,h)},o})(Math.SQRT2,2,4);var lo=0,la=0,na=0,uN=1e3,vu,ua,yu=0,ci=0,ju=0,ya=typeof performance=="object"&&performance.now?performance:Date,cN=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function zv(){return ci||(cN(N2),ci=ya.now()+ju)}function N2(){ci=0}function wu(){this._call=this._time=this._next=null}wu.prototype=dN.prototype={constructor:wu,restart:function(e,n,r){if(typeof e!="function")throw new TypeError("callback is not a function");r=(r==null?zv():+r)+(n==null?0:+n),!this._next&&ua!==this&&(ua?ua._next=this:vu=this,ua=this),this._call=e,this._time=r,gv()},stop:function(){this._call&&(this._call=null,this._time=1/0,gv())}};function dN(e,n,r){var i=new wu;return i.restart(e,n,r),i}function C2(){zv(),++lo;for(var e=vu,n;e;)(n=ci-e._time)>=0&&e._call.call(void 0,n),e=e._next;--lo}function ax(){ci=(yu=ya.now())+ju,lo=la=0;try{C2()}finally{lo=0,T2(),ci=0}}function R2(){var e=ya.now(),n=e-yu;n>uN&&(ju-=n,yu=e)}function T2(){for(var e,n=vu,r,i=1/0;n;)n._call?(i>n._time&&(i=n._time),e=n,n=n._next):(r=n._next,n._next=null,n=e?e._next=r:vu=r);ua=e,gv(i)}function gv(e){if(!lo){la&&(la=clearTimeout(la));var n=e-ci;n>24?(e<1/0&&(la=setTimeout(ax,e-ya.now()-ju)),na&&(na=clearInterval(na))):(na||(yu=ya.now(),na=setInterval(R2,uN)),lo=1,cN(ax))}}function lx(e,n,r){var i=new wu;return n=n==null?0:+n,i.restart(o=>{i.stop(),e(o+n)},n,r),i}var j2=Ru("start","end","cancel","interrupt"),A2=[],fN=0,ux=1,vv=2,uu=3,cx=4,yv=5,cu=6;function Au(e,n,r,i,o,l){var u=e.__transition;if(!u)e.__transition={};else if(r in u)return;I2(e,r,{name:n,index:i,group:o,on:j2,tween:A2,time:l.time,delay:l.delay,duration:l.duration,ease:l.ease,timer:null,state:fN})}function Bv(e,n){var r=rr(e,n);if(r.state>fN)throw new Error("too late; already scheduled");return r}function pr(e,n){var r=rr(e,n);if(r.state>uu)throw new Error("too late; already running");return r}function rr(e,n){var r=e.__transition;if(!r||!(r=r[n]))throw new Error("transition not found");return r}function I2(e,n,r){var i=e.__transition,o;i[n]=r,r.timer=dN(l,0,r.time);function l(p){r.state=ux,r.timer.restart(u,r.delay,r.time),r.delay<=p&&u(p-r.delay)}function u(p){var d,m,y,w;if(r.state!==ux)return h();for(d in i)if(w=i[d],w.name===r.name){if(w.state===uu)return lx(u);w.state===cx?(w.state=cu,w.timer.stop(),w.on.call("interrupt",e,e.__data__,w.index,w.group),delete i[d]):+d<n&&(w.state=cu,w.timer.stop(),w.on.call("cancel",e,e.__data__,w.index,w.group),delete i[d])}if(lx(function(){r.state===uu&&(r.state=cx,r.timer.restart(c,r.delay,r.time),c(p))}),r.state=vv,r.on.call("start",e,e.__data__,r.index,r.group),r.state===vv){for(r.state=uu,o=new Array(y=r.tween.length),d=0,m=-1;d<y;++d)(w=r.tween[d].value.call(e,e.__data__,r.index,r.group))&&(o[++m]=w);o.length=m+1}}function c(p){for(var d=p<r.duration?r.ease.call(null,p/r.duration):(r.timer.restart(h),r.state=yv,1),m=-1,y=o.length;++m<y;)o[m].call(e,d);r.state===yv&&(r.on.call("end",e,e.__data__,r.index,r.group),h())}function h(){r.state=cu,r.timer.stop(),delete i[n];for(var p in i)return;delete e.__transition}}function du(e,n){var r=e.__transition,i,o,l=!0,u;if(r){n=n==null?null:n+"";for(u in r){if((i=r[u]).name!==n){l=!1;continue}o=i.state>vv&&i.state<yv,i.state=cu,i.timer.stop(),i.on.call(o?"interrupt":"cancel",e,e.__data__,i.index,i.group),delete r[u]}l&&delete e.__transition}}function M2(e){return this.each(function(){du(this,e)})}function O2(e,n){var r,i;return function(){var o=pr(this,e),l=o.tween;if(l!==r){i=r=l;for(var u=0,c=i.length;u<c;++u)if(i[u].name===n){i=i.slice(),i.splice(u,1);break}}o.tween=i}}function P2(e,n,r){var i,o;if(typeof r!="function")throw new Error;return function(){var l=pr(this,e),u=l.tween;if(u!==i){o=(i=u).slice();for(var c={name:n,value:r},h=0,p=o.length;h<p;++h)if(o[h].name===n){o[h]=c;break}h===p&&o.push(c)}l.tween=o}}function L2(e,n){var r=this._id;if(e+="",arguments.length<2){for(var i=rr(this.node(),r).tween,o=0,l=i.length,u;o<l;++o)if((u=i[o]).name===e)return u.value;return null}return this.each((n==null?O2:P2)(r,e,n))}function Uv(e,n,r){var i=e._id;return e.each(function(){var o=pr(this,i);(o.value||(o.value={}))[n]=r.apply(this,arguments)}),function(o){return rr(o,i).value[n]}}function hN(e,n){var r;return(typeof n=="number"?_s:n instanceof va?sx:(r=va(n))?(n=r,sx):v2)(e,n)}function $2(e){return function(){this.removeAttribute(e)}}function q2(e){return function(){this.removeAttributeNS(e.space,e.local)}}function D2(e,n,r){var i,o=r+"",l;return function(){var u=this.getAttribute(e);return u===o?null:u===i?l:l=n(i=u,r)}}function F2(e,n,r){var i,o=r+"",l;return function(){var u=this.getAttributeNS(e.space,e.local);return u===o?null:u===i?l:l=n(i=u,r)}}function z2(e,n,r){var i,o,l;return function(){var u,c=r(this),h;return c==null?void this.removeAttribute(e):(u=this.getAttribute(e),h=c+"",u===h?null:u===i&&h===o?l:(o=h,l=n(i=u,c)))}}function B2(e,n,r){var i,o,l;return function(){var u,c=r(this),h;return c==null?void this.removeAttributeNS(e.space,e.local):(u=this.getAttributeNS(e.space,e.local),h=c+"",u===h?null:u===i&&h===o?l:(o=h,l=n(i=u,c)))}}function U2(e,n){var r=Tu(e),i=r==="transform"?_2:hN;return this.attrTween(e,typeof n=="function"?(r.local?B2:z2)(r,i,Uv(this,"attr."+e,n)):n==null?(r.local?q2:$2)(r):(r.local?F2:D2)(r,i,n))}function H2(e,n){return function(r){this.setAttribute(e,n.call(this,r))}}function W2(e,n){return function(r){this.setAttributeNS(e.space,e.local,n.call(this,r))}}function V2(e,n){var r,i;function o(){var l=n.apply(this,arguments);return l!==i&&(r=(i=l)&&W2(e,l)),r}return o._value=n,o}function G2(e,n){var r,i;function o(){var l=n.apply(this,arguments);return l!==i&&(r=(i=l)&&H2(e,l)),r}return o._value=n,o}function Y2(e,n){var r="attr."+e;if(arguments.length<2)return(r=this.tween(r))&&r._value;if(n==null)return this.tween(r,null);if(typeof n!="function")throw new Error;var i=Tu(e);return this.tween(r,(i.local?V2:G2)(i,n))}function K2(e,n){return function(){Bv(this,e).delay=+n.apply(this,arguments)}}function X2(e,n){return n=+n,function(){Bv(this,e).delay=n}}function Q2(e){var n=this._id;return arguments.length?this.each((typeof e=="function"?K2:X2)(n,e)):rr(this.node(),n).delay}function Z2(e,n){return function(){pr(this,e).duration=+n.apply(this,arguments)}}function J2(e,n){return n=+n,function(){pr(this,e).duration=n}}function eI(e){var n=this._id;return arguments.length?this.each((typeof e=="function"?Z2:J2)(n,e)):rr(this.node(),n).duration}function tI(e,n){if(typeof n!="function")throw new Error;return function(){pr(this,e).ease=n}}function nI(e){var n=this._id;return arguments.length?this.each(tI(n,e)):rr(this.node(),n).ease}function rI(e,n){return function(){var r=n.apply(this,arguments);if(typeof r!="function")throw new Error;pr(this,e).ease=r}}function sI(e){if(typeof e!="function")throw new Error;return this.each(rI(this._id,e))}function iI(e){typeof e!="function"&&(e=WE(e));for(var n=this._groups,r=n.length,i=new Array(r),o=0;o<r;++o)for(var l=n[o],u=l.length,c=i[o]=[],h,p=0;p<u;++p)(h=l[p])&&e.call(h,h.__data__,p,l)&&c.push(h);return new zr(i,this._parents,this._name,this._id)}function oI(e){if(e._id!==this._id)throw new Error;for(var n=this._groups,r=e._groups,i=n.length,o=r.length,l=Math.min(i,o),u=new Array(i),c=0;c<l;++c)for(var h=n[c],p=r[c],d=h.length,m=u[c]=new Array(d),y,w=0;w<d;++w)(y=h[w]||p[w])&&(m[w]=y);for(;c<i;++c)u[c]=n[c];return new zr(u,this._parents,this._name,this._id)}function aI(e){return(e+"").trim().split(/^|\s+/).every(function(n){var r=n.indexOf(".");return r>=0&&(n=n.slice(0,r)),!n||n==="start"})}function lI(e,n,r){var i,o,l=aI(n)?Bv:pr;return function(){var u=l(this,e),c=u.on;c!==i&&(o=(i=c).copy()).on(n,r),u.on=o}}function uI(e,n){var r=this._id;return arguments.length<2?rr(this.node(),r).on.on(e):this.each(lI(r,e,n))}function cI(e){return function(){var n=this.parentNode;for(var r in this.__transition)if(+r!==e)return;n&&n.removeChild(this)}}function dI(){return this.on("end.remove",cI(this._id))}function fI(e){var n=this._name,r=this._id;typeof e!="function"&&(e=qv(e));for(var i=this._groups,o=i.length,l=new Array(o),u=0;u<o;++u)for(var c=i[u],h=c.length,p=l[u]=new Array(h),d,m,y=0;y<h;++y)(d=c[y])&&(m=e.call(d,d.__data__,y,c))&&("__data__"in d&&(m.__data__=d.__data__),p[y]=m,Au(p[y],n,r,y,p,rr(d,r)));return new zr(l,this._parents,n,r)}function hI(e){var n=this._name,r=this._id;typeof e!="function"&&(e=HE(e));for(var i=this._groups,o=i.length,l=[],u=[],c=0;c<o;++c)for(var h=i[c],p=h.length,d,m=0;m<p;++m)if(d=h[m]){for(var y=e.call(d,d.__data__,m,h),w,N=rr(d,r),_=0,b=y.length;_<b;++_)(w=y[_])&&Au(w,n,r,_,y,N);l.push(y),u.push(d)}return new zr(l,u,n,r)}var pI=Ea.prototype.constructor;function mI(){return new pI(this._groups,this._parents)}function gI(e,n){var r,i,o;return function(){var l=ao(this,e),u=(this.style.removeProperty(e),ao(this,e));return l===u?null:l===r&&u===i?o:o=n(r=l,i=u)}}function pN(e){return function(){this.style.removeProperty(e)}}function vI(e,n,r){var i,o=r+"",l;return function(){var u=ao(this,e);return u===o?null:u===i?l:l=n(i=u,r)}}function yI(e,n,r){var i,o,l;return function(){var u=ao(this,e),c=r(this),h=c+"";return c==null&&(h=c=(this.style.removeProperty(e),ao(this,e))),u===h?null:u===i&&h===o?l:(o=h,l=n(i=u,c))}}function wI(e,n){var r,i,o,l="style."+n,u="end."+l,c;return function(){var h=pr(this,e),p=h.on,d=h.value[l]==null?c||(c=pN(n)):void 0;(p!==r||o!==d)&&(i=(r=p).copy()).on(u,o=d),h.on=i}}function xI(e,n,r){var i=(e+="")=="transform"?x2:hN;return n==null?this.styleTween(e,gI(e,i)).on("end.style."+e,pN(e)):typeof n=="function"?this.styleTween(e,yI(e,i,Uv(this,"style."+e,n))).each(wI(this._id,e)):this.styleTween(e,vI(e,i,n),r).on("end.style."+e,null)}function _I(e,n,r){return function(i){this.style.setProperty(e,n.call(this,i),r)}}function bI(e,n,r){var i,o;function l(){var u=n.apply(this,arguments);return u!==o&&(i=(o=u)&&_I(e,u,r)),i}return l._value=n,l}function SI(e,n,r){var i="style."+(e+="");if(arguments.length<2)return(i=this.tween(i))&&i._value;if(n==null)return this.tween(i,null);if(typeof n!="function")throw new Error;return this.tween(i,bI(e,n,r??""))}function kI(e){return function(){this.textContent=e}}function EI(e){return function(){var n=e(this);this.textContent=n??""}}function NI(e){return this.tween("text",typeof e=="function"?EI(Uv(this,"text",e)):kI(e==null?"":e+""))}function CI(e){return function(n){this.textContent=e.call(this,n)}}function RI(e){var n,r;function i(){var o=e.apply(this,arguments);return o!==r&&(n=(r=o)&&CI(o)),n}return i._value=e,i}function TI(e){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(e==null)return this.tween(n,null);if(typeof e!="function")throw new Error;return this.tween(n,RI(e))}function jI(){for(var e=this._name,n=this._id,r=mN(),i=this._groups,o=i.length,l=0;l<o;++l)for(var u=i[l],c=u.length,h,p=0;p<c;++p)if(h=u[p]){var d=rr(h,n);Au(h,e,r,p,u,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new zr(i,this._parents,e,r)}function AI(){var e,n,r=this,i=r._id,o=r.size();return new Promise(function(l,u){var c={value:u},h={value:function(){--o===0&&l()}};r.each(function(){var p=pr(this,i),d=p.on;d!==e&&(n=(e=d).copy(),n._.cancel.push(c),n._.interrupt.push(c),n._.end.push(h)),p.on=n}),o===0&&l()})}var II=0;function zr(e,n,r,i){this._groups=e,this._parents=n,this._name=r,this._id=i}function mN(){return++II}var qr=Ea.prototype;zr.prototype={constructor:zr,select:fI,selectAll:hI,selectChild:qr.selectChild,selectChildren:qr.selectChildren,filter:iI,merge:oI,selection:mI,transition:jI,call:qr.call,nodes:qr.nodes,node:qr.node,size:qr.size,empty:qr.empty,each:qr.each,on:uI,attr:U2,attrTween:Y2,style:xI,styleTween:SI,text:NI,textTween:TI,remove:dI,tween:L2,delay:Q2,duration:eI,ease:nI,easeVarying:sI,end:AI,[Symbol.iterator]:qr[Symbol.iterator]};function MI(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var OI={time:null,delay:0,duration:250,ease:MI};function PI(e,n){for(var r;!(r=e.__transition)||!(r=r[n]);)if(!(e=e.parentNode))throw new Error(`transition ${n} not found`);return r}function LI(e){var n,r;e instanceof zr?(n=e._id,e=e._name):(n=mN(),(r=OI).time=zv(),e=e==null?null:e+"");for(var i=this._groups,o=i.length,l=0;l<o;++l)for(var u=i[l],c=u.length,h,p=0;p<c;++p)(h=u[p])&&Au(h,e,n,p,u,r||PI(h,n));return new zr(i,this._parents,e,n)}Ea.prototype.interrupt=M2;Ea.prototype.transition=LI;const Kl=e=>()=>e;function $I(e,{sourceEvent:n,target:r,transform:i,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},transform:{value:i,enumerable:!0,configurable:!0},_:{value:o}})}function Dr(e,n,r){this.k=e,this.x=n,this.y=r}Dr.prototype={constructor:Dr,scale:function(e){return e===1?this:new Dr(this.k*e,this.x,this.y)},translate:function(e,n){return e===0&n===0?this:new Dr(this.k,this.x+this.k*e,this.y+this.k*n)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Fr=new Dr(1,0,0);Dr.prototype;function Ld(e){e.stopImmediatePropagation()}function ra(e){e.preventDefault(),e.stopImmediatePropagation()}function qI(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function DI(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function dx(){return this.__zoom||Fr}function FI(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function zI(){return navigator.maxTouchPoints||"ontouchstart"in this}function BI(e,n,r){var i=e.invertX(n[0][0])-r[0][0],o=e.invertX(n[1][0])-r[1][0],l=e.invertY(n[0][1])-r[0][1],u=e.invertY(n[1][1])-r[1][1];return e.translate(o>i?(i+o)/2:Math.min(0,i)||Math.max(0,o),u>l?(l+u)/2:Math.min(0,l)||Math.max(0,u))}function gN(){var e=qI,n=DI,r=BI,i=FI,o=zI,l=[0,1/0],u=[[-1/0,-1/0],[1/0,1/0]],c=250,h=E2,p=Ru("start","zoom","end"),d,m,y,w=500,N=150,_=0,b=10;function S(C){C.property("__zoom",dx).on("wheel.zoom",U,{passive:!1}).on("mousedown.zoom",z).on("dblclick.zoom",P).filter(o).on("touchstart.zoom",D).on("touchmove.zoom",V).on("touchend.zoom touchcancel.zoom",B).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}S.transform=function(C,q,L,re){var Z=C.selection?C.selection():C;Z.property("__zoom",dx),C!==Z?I(C,q,L,re):Z.interrupt().each(function(){O(this,arguments).event(re).start().zoom(null,typeof q=="function"?q.apply(this,arguments):q).end()})},S.scaleBy=function(C,q,L,re){S.scaleTo(C,function(){var Z=this.__zoom.k,H=typeof q=="function"?q.apply(this,arguments):q;return Z*H},L,re)},S.scaleTo=function(C,q,L,re){S.transform(C,function(){var Z=n.apply(this,arguments),H=this.__zoom,J=L==null?R(Z):typeof L=="function"?L.apply(this,arguments):L,M=H.invert(J),G=typeof q=="function"?q.apply(this,arguments):q;return r(E(k(H,G),J,M),Z,u)},L,re)},S.translateBy=function(C,q,L,re){S.transform(C,function(){return r(this.__zoom.translate(typeof q=="function"?q.apply(this,arguments):q,typeof L=="function"?L.apply(this,arguments):L),n.apply(this,arguments),u)},null,re)},S.translateTo=function(C,q,L,re,Z){S.transform(C,function(){var H=n.apply(this,arguments),J=this.__zoom,M=re==null?R(H):typeof re=="function"?re.apply(this,arguments):re;return r(Fr.translate(M[0],M[1]).scale(J.k).translate(typeof q=="function"?-q.apply(this,arguments):-q,typeof L=="function"?-L.apply(this,arguments):-L),H,u)},re,Z)};function k(C,q){return q=Math.max(l[0],Math.min(l[1],q)),q===C.k?C:new Dr(q,C.x,C.y)}function E(C,q,L){var re=q[0]-L[0]*C.k,Z=q[1]-L[1]*C.k;return re===C.x&&Z===C.y?C:new Dr(C.k,re,Z)}function R(C){return[(+C[0][0]+ +C[1][0])/2,(+C[0][1]+ +C[1][1])/2]}function I(C,q,L,re){C.on("start.zoom",function(){O(this,arguments).event(re).start()}).on("interrupt.zoom end.zoom",function(){O(this,arguments).event(re).end()}).tween("zoom",function(){var Z=this,H=arguments,J=O(Z,H).event(re),M=n.apply(Z,H),G=L==null?R(M):typeof L=="function"?L.apply(Z,H):L,Y=Math.max(M[1][0]-M[0][0],M[1][1]-M[0][1]),$=Z.__zoom,Q=typeof q=="function"?q.apply(Z,H):q,ne=h($.invert(G).concat(Y/$.k),Q.invert(G).concat(Y/Q.k));return function(oe){if(oe===1)oe=Q;else{var fe=ne(oe),te=Y/fe[2];oe=new Dr(te,G[0]-fe[0]*te,G[1]-fe[1]*te)}J.zoom(null,oe)}})}function O(C,q,L){return!L&&C.__zooming||new A(C,q)}function A(C,q){this.that=C,this.args=q,this.active=0,this.sourceEvent=null,this.extent=n.apply(C,q),this.taps=0}A.prototype={event:function(C){return C&&(this.sourceEvent=C),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(C,q){return this.mouse&&C!=="mouse"&&(this.mouse[1]=q.invert(this.mouse[0])),this.touch0&&C!=="touch"&&(this.touch0[1]=q.invert(this.touch0[0])),this.touch1&&C!=="touch"&&(this.touch1[1]=q.invert(this.touch1[0])),this.that.__zoom=q,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(C){var q=Ln(this.that).datum();p.call(C,this.that,new $I(C,{sourceEvent:this.sourceEvent,target:S,transform:this.that.__zoom,dispatch:p}),q)}};function U(C,...q){if(!e.apply(this,arguments))return;var L=O(this,q).event(C),re=this.__zoom,Z=Math.max(l[0],Math.min(l[1],re.k*Math.pow(2,i.apply(this,arguments)))),H=Jn(C);if(L.wheel)(L.mouse[0][0]!==H[0]||L.mouse[0][1]!==H[1])&&(L.mouse[1]=re.invert(L.mouse[0]=H)),clearTimeout(L.wheel);else{if(re.k===Z)return;L.mouse=[H,re.invert(H)],du(this),L.start()}ra(C),L.wheel=setTimeout(J,N),L.zoom("mouse",r(E(k(re,Z),L.mouse[0],L.mouse[1]),L.extent,u));function J(){L.wheel=null,L.end()}}function z(C,...q){if(y||!e.apply(this,arguments))return;var L=C.currentTarget,re=O(this,q,!0).event(C),Z=Ln(C.view).on("mousemove.zoom",G,!0).on("mouseup.zoom",Y,!0),H=Jn(C,L),J=C.clientX,M=C.clientY;tN(C.view),Ld(C),re.mouse=[H,this.__zoom.invert(H)],du(this),re.start();function G($){if(ra($),!re.moved){var Q=$.clientX-J,ne=$.clientY-M;re.moved=Q*Q+ne*ne>_}re.event($).zoom("mouse",r(E(re.that.__zoom,re.mouse[0]=Jn($,L),re.mouse[1]),re.extent,u))}function Y($){Z.on("mousemove.zoom mouseup.zoom",null),nN($.view,re.moved),ra($),re.event($).end()}}function P(C,...q){if(e.apply(this,arguments)){var L=this.__zoom,re=Jn(C.changedTouches?C.changedTouches[0]:C,this),Z=L.invert(re),H=L.k*(C.shiftKey?.5:2),J=r(E(k(L,H),re,Z),n.apply(this,q),u);ra(C),c>0?Ln(this).transition().duration(c).call(I,J,re,C):Ln(this).call(S.transform,J,re,C)}}function D(C,...q){if(e.apply(this,arguments)){var L=C.touches,re=L.length,Z=O(this,q,C.changedTouches.length===re).event(C),H,J,M,G;for(Ld(C),J=0;J<re;++J)M=L[J],G=Jn(M,this),G=[G,this.__zoom.invert(G),M.identifier],Z.touch0?!Z.touch1&&Z.touch0[2]!==G[2]&&(Z.touch1=G,Z.taps=0):(Z.touch0=G,H=!0,Z.taps=1+!!d);d&&(d=clearTimeout(d)),H&&(Z.taps<2&&(m=G[0],d=setTimeout(function(){d=null},w)),du(this),Z.start())}}function V(C,...q){if(this.__zooming){var L=O(this,q).event(C),re=C.changedTouches,Z=re.length,H,J,M,G;for(ra(C),H=0;H<Z;++H)J=re[H],M=Jn(J,this),L.touch0&&L.touch0[2]===J.identifier?L.touch0[0]=M:L.touch1&&L.touch1[2]===J.identifier&&(L.touch1[0]=M);if(J=L.that.__zoom,L.touch1){var Y=L.touch0[0],$=L.touch0[1],Q=L.touch1[0],ne=L.touch1[1],oe=(oe=Q[0]-Y[0])*oe+(oe=Q[1]-Y[1])*oe,fe=(fe=ne[0]-$[0])*fe+(fe=ne[1]-$[1])*fe;J=k(J,Math.sqrt(oe/fe)),M=[(Y[0]+Q[0])/2,(Y[1]+Q[1])/2],G=[($[0]+ne[0])/2,($[1]+ne[1])/2]}else if(L.touch0)M=L.touch0[0],G=L.touch0[1];else return;L.zoom("touch",r(E(J,M,G),L.extent,u))}}function B(C,...q){if(this.__zooming){var L=O(this,q).event(C),re=C.changedTouches,Z=re.length,H,J;for(Ld(C),y&&clearTimeout(y),y=setTimeout(function(){y=null},w),H=0;H<Z;++H)J=re[H],L.touch0&&L.touch0[2]===J.identifier?delete L.touch0:L.touch1&&L.touch1[2]===J.identifier&&delete L.touch1;if(L.touch1&&!L.touch0&&(L.touch0=L.touch1,delete L.touch1),L.touch0)L.touch0[1]=this.__zoom.invert(L.touch0[0]);else if(L.end(),L.taps===2&&(J=Jn(J,this),Math.hypot(m[0]-J[0],m[1]-J[1])<b)){var M=Ln(this).on("dblclick.zoom");M&&M.apply(this,arguments)}}}return S.wheelDelta=function(C){return arguments.length?(i=typeof C=="function"?C:Kl(+C),S):i},S.filter=function(C){return arguments.length?(e=typeof C=="function"?C:Kl(!!C),S):e},S.touchable=function(C){return arguments.length?(o=typeof C=="function"?C:Kl(!!C),S):o},S.extent=function(C){return arguments.length?(n=typeof C=="function"?C:Kl([[+C[0][0],+C[0][1]],[+C[1][0],+C[1][1]]]),S):n},S.scaleExtent=function(C){return arguments.length?(l[0]=+C[0],l[1]=+C[1],S):[l[0],l[1]]},S.translateExtent=function(C){return arguments.length?(u[0][0]=+C[0][0],u[1][0]=+C[1][0],u[0][1]=+C[0][1],u[1][1]=+C[1][1],S):[[u[0][0],u[0][1]],[u[1][0],u[1][1]]]},S.constrain=function(C){return arguments.length?(r=C,S):r},S.duration=function(C){return arguments.length?(c=+C,S):c},S.interpolate=function(C){return arguments.length?(h=C,S):h},S.on=function(){var C=p.on.apply(p,arguments);return C===p?S:C},S.clickDistance=function(C){return arguments.length?(_=(C=+C)*C,S):Math.sqrt(_)},S.tapDistance=function(C){return arguments.length?(b=+C,S):b},S}var UI=zE();const Iu=j.createContext(null),HI=Iu.Provider,Br={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,n)=>`Couldn't create edge for ${e?"target":"source"} handle id: "${e?n.targetHandle:n.sourceHandle}", edge id: ${n.id}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`},vN=Br.error001();function Ke(e,n){const r=j.useContext(Iu);if(r===null)throw new Error(vN);return BE(r,e,n)}const Rt=()=>{const e=j.useContext(Iu);if(e===null)throw new Error(vN);return j.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe,destroy:e.destroy}),[e])},WI=e=>e.userSelectionActive?"none":"all";function Hv({position:e,children:n,className:r,style:i,...o}){const l=Ke(WI),u=`${e}`.split("-");return ue.createElement("div",{className:Dt(["react-flow__panel",r,...u]),style:{...i,pointerEvents:l},...o},n)}function VI({proOptions:e,position:n="bottom-right"}){return e!=null&&e.hideAttribution?null:ue.createElement(Hv,{position:n,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://reactflow.dev/pro"},ue.createElement("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution"},"React Flow"))}const GI=({x:e,y:n,label:r,labelStyle:i={},labelShowBg:o=!0,labelBgStyle:l={},labelBgPadding:u=[2,4],labelBgBorderRadius:c=2,children:h,className:p,...d})=>{const m=j.useRef(null),[y,w]=j.useState({x:0,y:0,width:0,height:0}),N=Dt(["react-flow__edge-textwrapper",p]);return j.useEffect(()=>{if(m.current){const _=m.current.getBBox();w({x:_.x,y:_.y,width:_.width,height:_.height})}},[r]),typeof r>"u"||!r?null:ue.createElement("g",{transform:`translate(${e-y.width/2} ${n-y.height/2})`,className:N,visibility:y.width?"visible":"hidden",...d},o&&ue.createElement("rect",{width:y.width+2*u[0],x:-u[0],y:-u[1],height:y.height+2*u[1],className:"react-flow__edge-textbg",style:l,rx:c,ry:c}),ue.createElement("text",{className:"react-flow__edge-text",y:y.height/2,dy:"0.3em",ref:m,style:i},r),h)};var YI=j.memo(GI);const Wv=e=>({width:e.offsetWidth,height:e.offsetHeight}),uo=(e,n=0,r=1)=>Math.min(Math.max(e,n),r),Vv=(e={x:0,y:0},n)=>({x:uo(e.x,n[0][0],n[1][0]),y:uo(e.y,n[0][1],n[1][1])}),fx=(e,n,r)=>e<n?uo(Math.abs(e-n),1,50)/50:e>r?-uo(Math.abs(e-r),1,50)/50:0,yN=(e,n)=>{const r=fx(e.x,35,n.width-35)*20,i=fx(e.y,35,n.height-35)*20;return[r,i]},wN=e=>{var n;return((n=e.getRootNode)==null?void 0:n.call(e))||(window==null?void 0:window.document)},xN=(e,n)=>({x:Math.min(e.x,n.x),y:Math.min(e.y,n.y),x2:Math.max(e.x2,n.x2),y2:Math.max(e.y2,n.y2)}),wa=({x:e,y:n,width:r,height:i})=>({x:e,y:n,x2:e+r,y2:n+i}),_N=({x:e,y:n,x2:r,y2:i})=>({x:e,y:n,width:r-e,height:i-n}),hx=e=>({...e.positionAbsolute||{x:0,y:0},width:e.width||0,height:e.height||0}),KI=(e,n)=>_N(xN(wa(e),wa(n))),wv=(e,n)=>{const r=Math.max(0,Math.min(e.x+e.width,n.x+n.width)-Math.max(e.x,n.x)),i=Math.max(0,Math.min(e.y+e.height,n.y+n.height)-Math.max(e.y,n.y));return Math.ceil(r*i)},XI=e=>$n(e.width)&&$n(e.height)&&$n(e.x)&&$n(e.y),$n=e=>!isNaN(e)&&isFinite(e),yt=Symbol.for("internals"),bN=["Enter"," ","Escape"],QI=(e,n)=>{},ZI=e=>"nativeEvent"in e;function xv(e){var o,l;const n=ZI(e)?e.nativeEvent:e,r=((l=(o=n.composedPath)==null?void 0:o.call(n))==null?void 0:l[0])||e.target;return["INPUT","SELECT","TEXTAREA"].includes(r==null?void 0:r.nodeName)||(r==null?void 0:r.hasAttribute("contenteditable"))||!!(r!=null&&r.closest(".nokey"))}const SN=e=>"clientX"in e,ks=(e,n)=>{var l,u;const r=SN(e),i=r?e.clientX:(l=e.touches)==null?void 0:l[0].clientX,o=r?e.clientY:(u=e.touches)==null?void 0:u[0].clientY;return{x:i-((n==null?void 0:n.left)??0),y:o-((n==null?void 0:n.top)??0)}},xu=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0},Ca=({id:e,path:n,labelX:r,labelY:i,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:h,labelBgBorderRadius:p,style:d,markerEnd:m,markerStart:y,interactionWidth:w=20})=>ue.createElement(ue.Fragment,null,ue.createElement("path",{id:e,style:d,d:n,fill:"none",className:"react-flow__edge-path",markerEnd:m,markerStart:y}),w&&ue.createElement("path",{d:n,fill:"none",strokeOpacity:0,strokeWidth:w,className:"react-flow__edge-interaction"}),o&&$n(r)&&$n(i)?ue.createElement(YI,{x:r,y:i,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:h,labelBgBorderRadius:p}):null);Ca.displayName="BaseEdge";function sa(e,n,r){return r===void 0?r:i=>{const o=n().edges.find(l=>l.id===e);o&&r(i,{...o})}}function kN({sourceX:e,sourceY:n,targetX:r,targetY:i}){const o=Math.abs(r-e)/2,l=r<e?r+o:r-o,u=Math.abs(i-n)/2,c=i<n?i+u:i-u;return[l,c,o,u]}function EN({sourceX:e,sourceY:n,targetX:r,targetY:i,sourceControlX:o,sourceControlY:l,targetControlX:u,targetControlY:c}){const h=e*.125+o*.375+u*.375+r*.125,p=n*.125+l*.375+c*.375+i*.125,d=Math.abs(h-e),m=Math.abs(p-n);return[h,p,d,m]}var di;(function(e){e.Strict="strict",e.Loose="loose"})(di||(di={}));var ai;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(ai||(ai={}));var xa;(function(e){e.Partial="partial",e.Full="full"})(xa||(xa={}));var Ss;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(Ss||(Ss={}));var _u;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(_u||(_u={}));var Ae;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(Ae||(Ae={}));function px({pos:e,x1:n,y1:r,x2:i,y2:o}){return e===Ae.Left||e===Ae.Right?[.5*(n+i),r]:[n,.5*(r+o)]}function NN({sourceX:e,sourceY:n,sourcePosition:r=Ae.Bottom,targetX:i,targetY:o,targetPosition:l=Ae.Top}){const[u,c]=px({pos:r,x1:e,y1:n,x2:i,y2:o}),[h,p]=px({pos:l,x1:i,y1:o,x2:e,y2:n}),[d,m,y,w]=EN({sourceX:e,sourceY:n,targetX:i,targetY:o,sourceControlX:u,sourceControlY:c,targetControlX:h,targetControlY:p});return[`M${e},${n} C${u},${c} ${h},${p} ${i},${o}`,d,m,y,w]}const Gv=j.memo(({sourceX:e,sourceY:n,targetX:r,targetY:i,sourcePosition:o=Ae.Bottom,targetPosition:l=Ae.Top,label:u,labelStyle:c,labelShowBg:h,labelBgStyle:p,labelBgPadding:d,labelBgBorderRadius:m,style:y,markerEnd:w,markerStart:N,interactionWidth:_})=>{const[b,S,k]=NN({sourceX:e,sourceY:n,sourcePosition:o,targetX:r,targetY:i,targetPosition:l});return ue.createElement(Ca,{path:b,labelX:S,labelY:k,label:u,labelStyle:c,labelShowBg:h,labelBgStyle:p,labelBgPadding:d,labelBgBorderRadius:m,style:y,markerEnd:w,markerStart:N,interactionWidth:_})});Gv.displayName="SimpleBezierEdge";const mx={[Ae.Left]:{x:-1,y:0},[Ae.Right]:{x:1,y:0},[Ae.Top]:{x:0,y:-1},[Ae.Bottom]:{x:0,y:1}},JI=({source:e,sourcePosition:n=Ae.Bottom,target:r})=>n===Ae.Left||n===Ae.Right?e.x<r.x?{x:1,y:0}:{x:-1,y:0}:e.y<r.y?{x:0,y:1}:{x:0,y:-1},gx=(e,n)=>Math.sqrt(Math.pow(n.x-e.x,2)+Math.pow(n.y-e.y,2));function eM({source:e,sourcePosition:n=Ae.Bottom,target:r,targetPosition:i=Ae.Top,center:o,offset:l}){const u=mx[n],c=mx[i],h={x:e.x+u.x*l,y:e.y+u.y*l},p={x:r.x+c.x*l,y:r.y+c.y*l},d=JI({source:h,sourcePosition:n,target:p}),m=d.x!==0?"x":"y",y=d[m];let w=[],N,_;const b={x:0,y:0},S={x:0,y:0},[k,E,R,I]=kN({sourceX:e.x,sourceY:e.y,targetX:r.x,targetY:r.y});if(u[m]*c[m]===-1){N=o.x??k,_=o.y??E;const A=[{x:N,y:h.y},{x:N,y:p.y}],U=[{x:h.x,y:_},{x:p.x,y:_}];u[m]===y?w=m==="x"?A:U:w=m==="x"?U:A}else{const A=[{x:h.x,y:p.y}],U=[{x:p.x,y:h.y}];if(m==="x"?w=u.x===y?U:A:w=u.y===y?A:U,n===i){const B=Math.abs(e[m]-r[m]);if(B<=l){const C=Math.min(l-1,l-B);u[m]===y?b[m]=(h[m]>e[m]?-1:1)*C:S[m]=(p[m]>r[m]?-1:1)*C}}if(n!==i){const B=m==="x"?"y":"x",C=u[m]===c[B],q=h[B]>p[B],L=h[B]<p[B];(u[m]===1&&(!C&&q||C&&L)||u[m]!==1&&(!C&&L||C&&q))&&(w=m==="x"?A:U)}const z={x:h.x+b.x,y:h.y+b.y},P={x:p.x+S.x,y:p.y+S.y},D=Math.max(Math.abs(z.x-w[0].x),Math.abs(P.x-w[0].x)),V=Math.max(Math.abs(z.y-w[0].y),Math.abs(P.y-w[0].y));D>=V?(N=(z.x+P.x)/2,_=w[0].y):(N=w[0].x,_=(z.y+P.y)/2)}return[[e,{x:h.x+b.x,y:h.y+b.y},...w,{x:p.x+S.x,y:p.y+S.y},r],N,_,R,I]}function tM(e,n,r,i){const o=Math.min(gx(e,n)/2,gx(n,r)/2,i),{x:l,y:u}=n;if(e.x===l&&l===r.x||e.y===u&&u===r.y)return`L${l} ${u}`;if(e.y===u){const p=e.x<r.x?-1:1,d=e.y<r.y?1:-1;return`L ${l+o*p},${u}Q ${l},${u} ${l},${u+o*d}`}const c=e.x<r.x?1:-1,h=e.y<r.y?-1:1;return`L ${l},${u+o*h}Q ${l},${u} ${l+o*c},${u}`}function _v({sourceX:e,sourceY:n,sourcePosition:r=Ae.Bottom,targetX:i,targetY:o,targetPosition:l=Ae.Top,borderRadius:u=5,centerX:c,centerY:h,offset:p=20}){const[d,m,y,w,N]=eM({source:{x:e,y:n},sourcePosition:r,target:{x:i,y:o},targetPosition:l,center:{x:c,y:h},offset:p});return[d.reduce((b,S,k)=>{let E="";return k>0&&k<d.length-1?E=tM(d[k-1],S,d[k+1],u):E=`${k===0?"M":"L"}${S.x} ${S.y}`,b+=E,b},""),m,y,w,N]}const Mu=j.memo(({sourceX:e,sourceY:n,targetX:r,targetY:i,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:h,labelBgBorderRadius:p,style:d,sourcePosition:m=Ae.Bottom,targetPosition:y=Ae.Top,markerEnd:w,markerStart:N,pathOptions:_,interactionWidth:b})=>{const[S,k,E]=_v({sourceX:e,sourceY:n,sourcePosition:m,targetX:r,targetY:i,targetPosition:y,borderRadius:_==null?void 0:_.borderRadius,offset:_==null?void 0:_.offset});return ue.createElement(Ca,{path:S,labelX:k,labelY:E,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:h,labelBgBorderRadius:p,style:d,markerEnd:w,markerStart:N,interactionWidth:b})});Mu.displayName="SmoothStepEdge";const Yv=j.memo(e=>{var n;return ue.createElement(Mu,{...e,pathOptions:j.useMemo(()=>{var r;return{borderRadius:0,offset:(r=e.pathOptions)==null?void 0:r.offset}},[(n=e.pathOptions)==null?void 0:n.offset])})});Yv.displayName="StepEdge";function nM({sourceX:e,sourceY:n,targetX:r,targetY:i}){const[o,l,u,c]=kN({sourceX:e,sourceY:n,targetX:r,targetY:i});return[`M ${e},${n}L ${r},${i}`,o,l,u,c]}const Kv=j.memo(({sourceX:e,sourceY:n,targetX:r,targetY:i,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:h,labelBgBorderRadius:p,style:d,markerEnd:m,markerStart:y,interactionWidth:w})=>{const[N,_,b]=nM({sourceX:e,sourceY:n,targetX:r,targetY:i});return ue.createElement(Ca,{path:N,labelX:_,labelY:b,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:h,labelBgBorderRadius:p,style:d,markerEnd:m,markerStart:y,interactionWidth:w})});Kv.displayName="StraightEdge";function Xl(e,n){return e>=0?.5*e:n*25*Math.sqrt(-e)}function vx({pos:e,x1:n,y1:r,x2:i,y2:o,c:l}){switch(e){case Ae.Left:return[n-Xl(n-i,l),r];case Ae.Right:return[n+Xl(i-n,l),r];case Ae.Top:return[n,r-Xl(r-o,l)];case Ae.Bottom:return[n,r+Xl(o-r,l)]}}function CN({sourceX:e,sourceY:n,sourcePosition:r=Ae.Bottom,targetX:i,targetY:o,targetPosition:l=Ae.Top,curvature:u=.25}){const[c,h]=vx({pos:r,x1:e,y1:n,x2:i,y2:o,c:u}),[p,d]=vx({pos:l,x1:i,y1:o,x2:e,y2:n,c:u}),[m,y,w,N]=EN({sourceX:e,sourceY:n,targetX:i,targetY:o,sourceControlX:c,sourceControlY:h,targetControlX:p,targetControlY:d});return[`M${e},${n} C${c},${h} ${p},${d} ${i},${o}`,m,y,w,N]}const bu=j.memo(({sourceX:e,sourceY:n,targetX:r,targetY:i,sourcePosition:o=Ae.Bottom,targetPosition:l=Ae.Top,label:u,labelStyle:c,labelShowBg:h,labelBgStyle:p,labelBgPadding:d,labelBgBorderRadius:m,style:y,markerEnd:w,markerStart:N,pathOptions:_,interactionWidth:b})=>{const[S,k,E]=CN({sourceX:e,sourceY:n,sourcePosition:o,targetX:r,targetY:i,targetPosition:l,curvature:_==null?void 0:_.curvature});return ue.createElement(Ca,{path:S,labelX:k,labelY:E,label:u,labelStyle:c,labelShowBg:h,labelBgStyle:p,labelBgPadding:d,labelBgBorderRadius:m,style:y,markerEnd:w,markerStart:N,interactionWidth:b})});bu.displayName="BezierEdge";const Xv=j.createContext(null),rM=Xv.Provider;Xv.Consumer;const sM=()=>j.useContext(Xv),iM=e=>"id"in e&&"source"in e&&"target"in e,oM=({source:e,sourceHandle:n,target:r,targetHandle:i})=>`reactflow__edge-${e}${n||""}-${r}${i||""}`,bv=(e,n)=>typeof e>"u"?"":typeof e=="string"?e:`${n?`${n}__`:""}${Object.keys(e).sort().map(i=>`${i}=${e[i]}`).join("&")}`,aM=(e,n)=>n.some(r=>r.source===e.source&&r.target===e.target&&(r.sourceHandle===e.sourceHandle||!r.sourceHandle&&!e.sourceHandle)&&(r.targetHandle===e.targetHandle||!r.targetHandle&&!e.targetHandle)),lM=(e,n)=>{if(!e.source||!e.target)return n;let r;return iM(e)?r={...e}:r={...e,id:oM(e)},aM(r,n)?n:n.concat(r)},Sv=({x:e,y:n},[r,i,o],l,[u,c])=>{const h={x:(e-r)/o,y:(n-i)/o};return l?{x:u*Math.round(h.x/u),y:c*Math.round(h.y/c)}:h},RN=({x:e,y:n},[r,i,o])=>({x:e*o+r,y:n*o+i}),ui=(e,n=[0,0])=>{if(!e)return{x:0,y:0,positionAbsolute:{x:0,y:0}};const r=(e.width??0)*n[0],i=(e.height??0)*n[1],o={x:e.position.x-r,y:e.position.y-i};return{...o,positionAbsolute:e.positionAbsolute?{x:e.positionAbsolute.x-r,y:e.positionAbsolute.y-i}:o}},Ou=(e,n=[0,0])=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const r=e.reduce((i,o)=>{const{x:l,y:u}=ui(o,n).positionAbsolute;return xN(i,wa({x:l,y:u,width:o.width||0,height:o.height||0}))},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return _N(r)},TN=(e,n,[r,i,o]=[0,0,1],l=!1,u=!1,c=[0,0])=>{const h={x:(n.x-r)/o,y:(n.y-i)/o,width:n.width/o,height:n.height/o},p=[];return e.forEach(d=>{const{width:m,height:y,selectable:w=!0,hidden:N=!1}=d;if(u&&!w||N)return!1;const{positionAbsolute:_}=ui(d,c),b={x:_.x,y:_.y,width:m||0,height:y||0},S=wv(h,b),k=typeof m>"u"||typeof y>"u"||m===null||y===null,E=l&&S>0,R=(m||0)*(y||0);(k||E||S>=R||d.dragging)&&p.push(d)}),p},jN=(e,n)=>{const r=e.map(i=>i.id);return n.filter(i=>r.includes(i.source)||r.includes(i.target))},AN=(e,n,r,i,o,l=.1)=>{const u=n/(e.width*(1+l)),c=r/(e.height*(1+l)),h=Math.min(u,c),p=uo(h,i,o),d=e.x+e.width/2,m=e.y+e.height/2,y=n/2-d*p,w=r/2-m*p;return{x:y,y:w,zoom:p}},ii=(e,n=0)=>e.transition().duration(n);function yx(e,n,r,i){return(n[r]||[]).reduce((o,l)=>{var u,c;return`${e.id}-${l.id}-${r}`!==i&&o.push({id:l.id||null,type:r,nodeId:e.id,x:(((u=e.positionAbsolute)==null?void 0:u.x)??0)+l.x+l.width/2,y:(((c=e.positionAbsolute)==null?void 0:c.y)??0)+l.y+l.height/2}),o},[])}function uM(e,n,r,i,o,l){const{x:u,y:c}=ks(e),p=n.elementsFromPoint(u,c).find(N=>N.classList.contains("react-flow__handle"));if(p){const N=p.getAttribute("data-nodeid");if(N){const _=Qv(void 0,p),b=p.getAttribute("data-handleid"),S=l({nodeId:N,id:b,type:_});if(S){const k=o.find(E=>E.nodeId===N&&E.type===_&&E.id===b);return{handle:{id:b,type:_,nodeId:N,x:(k==null?void 0:k.x)||r.x,y:(k==null?void 0:k.y)||r.y},validHandleResult:S}}}}let d=[],m=1/0;if(o.forEach(N=>{const _=Math.sqrt((N.x-r.x)**2+(N.y-r.y)**2);if(_<=i){const b=l(N);_<=m&&(_<m?d=[{handle:N,validHandleResult:b}]:_===m&&d.push({handle:N,validHandleResult:b}),m=_)}}),!d.length)return{handle:null,validHandleResult:IN()};if(d.length===1)return d[0];const y=d.some(({validHandleResult:N})=>N.isValid),w=d.some(({handle:N})=>N.type==="target");return d.find(({handle:N,validHandleResult:_})=>w?N.type==="target":y?_.isValid:!0)||d[0]}const cM={source:null,target:null,sourceHandle:null,targetHandle:null},IN=()=>({handleDomNode:null,isValid:!1,connection:cM,endHandle:null});function MN(e,n,r,i,o,l,u){const c=o==="target",h=u.querySelector(`.react-flow__handle[data-id="${e==null?void 0:e.nodeId}-${e==null?void 0:e.id}-${e==null?void 0:e.type}"]`),p={...IN(),handleDomNode:h};if(h){const d=Qv(void 0,h),m=h.getAttribute("data-nodeid"),y=h.getAttribute("data-handleid"),w=h.classList.contains("connectable"),N=h.classList.contains("connectableend"),_={source:c?m:r,sourceHandle:c?y:i,target:c?r:m,targetHandle:c?i:y};p.connection=_,w&&N&&(n===di.Strict?c&&d==="source"||!c&&d==="target":m!==r||y!==i)&&(p.endHandle={nodeId:m,handleId:y,type:d},p.isValid=l(_))}return p}function dM({nodes:e,nodeId:n,handleId:r,handleType:i}){return e.reduce((o,l)=>{if(l[yt]){const{handleBounds:u}=l[yt];let c=[],h=[];u&&(c=yx(l,u,"source",`${n}-${r}-${i}`),h=yx(l,u,"target",`${n}-${r}-${i}`)),o.push(...c,...h)}return o},[])}function Qv(e,n){return e||(n!=null&&n.classList.contains("target")?"target":n!=null&&n.classList.contains("source")?"source":null)}function $d(e){e==null||e.classList.remove("valid","connecting","react-flow__handle-valid","react-flow__handle-connecting")}function fM(e,n){let r=null;return n?r="valid":e&&!n&&(r="invalid"),r}function ON({event:e,handleId:n,nodeId:r,onConnect:i,isTarget:o,getState:l,setState:u,isValidConnection:c,edgeUpdaterType:h,onReconnectEnd:p}){const d=wN(e.target),{connectionMode:m,domNode:y,autoPanOnConnect:w,connectionRadius:N,onConnectStart:_,panBy:b,getNodes:S,cancelConnection:k}=l();let E=0,R;const{x:I,y:O}=ks(e),A=d==null?void 0:d.elementFromPoint(I,O),U=Qv(h,A),z=y==null?void 0:y.getBoundingClientRect();if(!z||!U)return;let P,D=ks(e,z),V=!1,B=null,C=!1,q=null;const L=dM({nodes:S(),nodeId:r,handleId:n,handleType:U}),re=()=>{if(!w)return;const[J,M]=yN(D,z);b({x:J,y:M}),E=requestAnimationFrame(re)};u({connectionPosition:D,connectionStatus:null,connectionNodeId:r,connectionHandleId:n,connectionHandleType:U,connectionStartHandle:{nodeId:r,handleId:n,type:U},connectionEndHandle:null}),_==null||_(e,{nodeId:r,handleId:n,handleType:U});function Z(J){const{transform:M}=l();D=ks(J,z);const{handle:G,validHandleResult:Y}=uM(J,d,Sv(D,M,!1,[1,1]),N,L,$=>MN($,m,r,n,o?"target":"source",c,d));if(R=G,V||(re(),V=!0),q=Y.handleDomNode,B=Y.connection,C=Y.isValid,u({connectionPosition:R&&C?RN({x:R.x,y:R.y},M):D,connectionStatus:fM(!!R,C),connectionEndHandle:Y.endHandle}),!R&&!C&&!q)return $d(P);B.source!==B.target&&q&&($d(P),P=q,q.classList.add("connecting","react-flow__handle-connecting"),q.classList.toggle("valid",C),q.classList.toggle("react-flow__handle-valid",C))}function H(J){var M,G;(R||q)&&B&&C&&(i==null||i(B)),(G=(M=l()).onConnectEnd)==null||G.call(M,J),h&&(p==null||p(J)),$d(P),k(),cancelAnimationFrame(E),V=!1,C=!1,B=null,q=null,d.removeEventListener("mousemove",Z),d.removeEventListener("mouseup",H),d.removeEventListener("touchmove",Z),d.removeEventListener("touchend",H)}d.addEventListener("mousemove",Z),d.addEventListener("mouseup",H),d.addEventListener("touchmove",Z),d.addEventListener("touchend",H)}const wx=()=>!0,hM=e=>({connectionStartHandle:e.connectionStartHandle,connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName}),pM=(e,n,r)=>i=>{const{connectionStartHandle:o,connectionEndHandle:l,connectionClickStartHandle:u}=i;return{connecting:(o==null?void 0:o.nodeId)===e&&(o==null?void 0:o.handleId)===n&&(o==null?void 0:o.type)===r||(l==null?void 0:l.nodeId)===e&&(l==null?void 0:l.handleId)===n&&(l==null?void 0:l.type)===r,clickConnecting:(u==null?void 0:u.nodeId)===e&&(u==null?void 0:u.handleId)===n&&(u==null?void 0:u.type)===r}},PN=j.forwardRef(({type:e="source",position:n=Ae.Top,isValidConnection:r,isConnectable:i=!0,isConnectableStart:o=!0,isConnectableEnd:l=!0,id:u,onConnect:c,children:h,className:p,onMouseDown:d,onTouchStart:m,...y},w)=>{var z,P;const N=u||null,_=e==="target",b=Rt(),S=sM(),{connectOnClick:k,noPanClassName:E}=Ke(hM,Ct),{connecting:R,clickConnecting:I}=Ke(pM(S,N,e),Ct);S||(P=(z=b.getState()).onError)==null||P.call(z,"010",Br.error010());const O=D=>{const{defaultEdgeOptions:V,onConnect:B,hasDefaultEdges:C}=b.getState(),q={...V,...D};if(C){const{edges:L,setEdges:re}=b.getState();re(lM(q,L))}B==null||B(q),c==null||c(q)},A=D=>{if(!S)return;const V=SN(D);o&&(V&&D.button===0||!V)&&ON({event:D,handleId:N,nodeId:S,onConnect:O,isTarget:_,getState:b.getState,setState:b.setState,isValidConnection:r||b.getState().isValidConnection||wx}),V?d==null||d(D):m==null||m(D)},U=D=>{const{onClickConnectStart:V,onClickConnectEnd:B,connectionClickStartHandle:C,connectionMode:q,isValidConnection:L}=b.getState();if(!S||!C&&!o)return;if(!C){V==null||V(D,{nodeId:S,handleId:N,handleType:e}),b.setState({connectionClickStartHandle:{nodeId:S,type:e,handleId:N}});return}const re=wN(D.target),Z=r||L||wx,{connection:H,isValid:J}=MN({nodeId:S,id:N,type:e},q,C.nodeId,C.handleId||null,C.type,Z,re);J&&O(H),B==null||B(D),b.setState({connectionClickStartHandle:null})};return ue.createElement("div",{"data-handleid":N,"data-nodeid":S,"data-handlepos":n,"data-id":`${S}-${N}-${e}`,className:Dt(["react-flow__handle",`react-flow__handle-${n}`,"nodrag",E,p,{source:!_,target:_,connectable:i,connectablestart:o,connectableend:l,connecting:I,connectionindicator:i&&(o&&!R||l&&R)}]),onMouseDown:A,onTouchStart:A,onClick:k?U:void 0,ref:w,...y},h)});PN.displayName="Handle";var co=j.memo(PN);const LN=({data:e,isConnectable:n,targetPosition:r=Ae.Top,sourcePosition:i=Ae.Bottom})=>ue.createElement(ue.Fragment,null,ue.createElement(co,{type:"target",position:r,isConnectable:n}),e==null?void 0:e.label,ue.createElement(co,{type:"source",position:i,isConnectable:n}));LN.displayName="DefaultNode";var kv=j.memo(LN);const $N=({data:e,isConnectable:n,sourcePosition:r=Ae.Bottom})=>ue.createElement(ue.Fragment,null,e==null?void 0:e.label,ue.createElement(co,{type:"source",position:r,isConnectable:n}));$N.displayName="InputNode";var qN=j.memo($N);const DN=({data:e,isConnectable:n,targetPosition:r=Ae.Top})=>ue.createElement(ue.Fragment,null,ue.createElement(co,{type:"target",position:r,isConnectable:n}),e==null?void 0:e.label);DN.displayName="OutputNode";var FN=j.memo(DN);const Zv=()=>null;Zv.displayName="GroupNode";const mM=e=>({selectedNodes:e.getNodes().filter(n=>n.selected),selectedEdges:e.edges.filter(n=>n.selected).map(n=>({...n}))}),Ql=e=>e.id;function gM(e,n){return Ct(e.selectedNodes.map(Ql),n.selectedNodes.map(Ql))&&Ct(e.selectedEdges.map(Ql),n.selectedEdges.map(Ql))}const zN=j.memo(({onSelectionChange:e})=>{const n=Rt(),{selectedNodes:r,selectedEdges:i}=Ke(mM,gM);return j.useEffect(()=>{const o={nodes:r,edges:i};e==null||e(o),n.getState().onSelectionChange.forEach(l=>l(o))},[r,i,e]),null});zN.displayName="SelectionListener";const vM=e=>!!e.onSelectionChange;function yM({onSelectionChange:e}){const n=Ke(vM);return e||n?ue.createElement(zN,{onSelectionChange:e}):null}const wM=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset});function Yi(e,n){j.useEffect(()=>{typeof e<"u"&&n(e)},[e])}function $e(e,n,r){j.useEffect(()=>{typeof n<"u"&&r({[e]:n})},[n])}const xM=({nodes:e,edges:n,defaultNodes:r,defaultEdges:i,onConnect:o,onConnectStart:l,onConnectEnd:u,onClickConnectStart:c,onClickConnectEnd:h,nodesDraggable:p,nodesConnectable:d,nodesFocusable:m,edgesFocusable:y,edgesUpdatable:w,elevateNodesOnSelect:N,minZoom:_,maxZoom:b,nodeExtent:S,onNodesChange:k,onEdgesChange:E,elementsSelectable:R,connectionMode:I,snapGrid:O,snapToGrid:A,translateExtent:U,connectOnClick:z,defaultEdgeOptions:P,fitView:D,fitViewOptions:V,onNodesDelete:B,onEdgesDelete:C,onNodeDrag:q,onNodeDragStart:L,onNodeDragStop:re,onSelectionDrag:Z,onSelectionDragStart:H,onSelectionDragStop:J,noPanClassName:M,nodeOrigin:G,rfId:Y,autoPanOnConnect:$,autoPanOnNodeDrag:Q,onError:ne,connectionRadius:oe,isValidConnection:fe,nodeDragThreshold:te})=>{const{setNodes:ce,setEdges:Ce,setDefaultNodesAndEdges:ve,setMinZoom:je,setMaxZoom:ye,setTranslateExtent:ke,setNodeExtent:Ye,reset:we}=Ke(wM,Ct),_e=Rt();return j.useEffect(()=>{const Be=i==null?void 0:i.map(it=>({...it,...P}));return ve(r,Be),()=>{we()}},[]),$e("defaultEdgeOptions",P,_e.setState),$e("connectionMode",I,_e.setState),$e("onConnect",o,_e.setState),$e("onConnectStart",l,_e.setState),$e("onConnectEnd",u,_e.setState),$e("onClickConnectStart",c,_e.setState),$e("onClickConnectEnd",h,_e.setState),$e("nodesDraggable",p,_e.setState),$e("nodesConnectable",d,_e.setState),$e("nodesFocusable",m,_e.setState),$e("edgesFocusable",y,_e.setState),$e("edgesUpdatable",w,_e.setState),$e("elementsSelectable",R,_e.setState),$e("elevateNodesOnSelect",N,_e.setState),$e("snapToGrid",A,_e.setState),$e("snapGrid",O,_e.setState),$e("onNodesChange",k,_e.setState),$e("onEdgesChange",E,_e.setState),$e("connectOnClick",z,_e.setState),$e("fitViewOnInit",D,_e.setState),$e("fitViewOnInitOptions",V,_e.setState),$e("onNodesDelete",B,_e.setState),$e("onEdgesDelete",C,_e.setState),$e("onNodeDrag",q,_e.setState),$e("onNodeDragStart",L,_e.setState),$e("onNodeDragStop",re,_e.setState),$e("onSelectionDrag",Z,_e.setState),$e("onSelectionDragStart",H,_e.setState),$e("onSelectionDragStop",J,_e.setState),$e("noPanClassName",M,_e.setState),$e("nodeOrigin",G,_e.setState),$e("rfId",Y,_e.setState),$e("autoPanOnConnect",$,_e.setState),$e("autoPanOnNodeDrag",Q,_e.setState),$e("onError",ne,_e.setState),$e("connectionRadius",oe,_e.setState),$e("isValidConnection",fe,_e.setState),$e("nodeDragThreshold",te,_e.setState),Yi(e,ce),Yi(n,Ce),Yi(_,je),Yi(b,ye),Yi(U,ke),Yi(S,Ye),null},xx={display:"none"},_M={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},BN="react-flow__node-desc",UN="react-flow__edge-desc",bM="react-flow__aria-live",SM=e=>e.ariaLiveMessage;function kM({rfId:e}){const n=Ke(SM);return ue.createElement("div",{id:`${bM}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:_M},n)}function EM({rfId:e,disableKeyboardA11y:n}){return ue.createElement(ue.Fragment,null,ue.createElement("div",{id:`${BN}-${e}`,style:xx},"Press enter or space to select a node.",!n&&"You can then use the arrow keys to move the node around."," Press delete to remove it and escape to cancel."," "),ue.createElement("div",{id:`${UN}-${e}`,style:xx},"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."),!n&&ue.createElement(kM,{rfId:e}))}var _a=(e=null,n={actInsideInputWithModifier:!0})=>{const[r,i]=j.useState(!1),o=j.useRef(!1),l=j.useRef(new Set([])),[u,c]=j.useMemo(()=>{if(e!==null){const p=(Array.isArray(e)?e:[e]).filter(m=>typeof m=="string").map(m=>m.split("+")),d=p.reduce((m,y)=>m.concat(...y),[]);return[p,d]}return[[],[]]},[e]);return j.useEffect(()=>{const h=typeof document<"u"?document:null,p=(n==null?void 0:n.target)||h;if(e!==null){const d=w=>{if(o.current=w.ctrlKey||w.metaKey||w.shiftKey,(!o.current||o.current&&!n.actInsideInputWithModifier)&&xv(w))return!1;const _=bx(w.code,c);l.current.add(w[_]),_x(u,l.current,!1)&&(w.preventDefault(),i(!0))},m=w=>{if((!o.current||o.current&&!n.actInsideInputWithModifier)&&xv(w))return!1;const _=bx(w.code,c);_x(u,l.current,!0)?(i(!1),l.current.clear()):l.current.delete(w[_]),w.key==="Meta"&&l.current.clear(),o.current=!1},y=()=>{l.current.clear(),i(!1)};return p==null||p.addEventListener("keydown",d),p==null||p.addEventListener("keyup",m),window.addEventListener("blur",y),()=>{p==null||p.removeEventListener("keydown",d),p==null||p.removeEventListener("keyup",m),window.removeEventListener("blur",y)}}},[e,i]),r};function _x(e,n,r){return e.filter(i=>r||i.length===n.size).some(i=>i.every(o=>n.has(o)))}function bx(e,n){return n.includes(e)?"code":"key"}function HN(e,n,r,i){var c,h;const o=e.parentNode||e.parentId;if(!o)return r;const l=n.get(o),u=ui(l,i);return HN(l,n,{x:(r.x??0)+u.x,y:(r.y??0)+u.y,z:(((c=l[yt])==null?void 0:c.z)??0)>(r.z??0)?((h=l[yt])==null?void 0:h.z)??0:r.z??0},i)}function WN(e,n,r){e.forEach(i=>{var l;const o=i.parentNode||i.parentId;if(o&&!e.has(o))throw new Error(`Parent node ${o} not found`);if(o||r!=null&&r[i.id]){const{x:u,y:c,z:h}=HN(i,e,{...i.position,z:((l=i[yt])==null?void 0:l.z)??0},n);i.positionAbsolute={x:u,y:c},i[yt].z=h,r!=null&&r[i.id]&&(i[yt].isParent=!0)}})}function qd(e,n,r,i){const o=new Map,l={},u=i?1e3:0;return e.forEach(c=>{var w;const h=($n(c.zIndex)?c.zIndex:0)+(c.selected?u:0),p=n.get(c.id),d={...c,positionAbsolute:{x:c.position.x,y:c.position.y}},m=c.parentNode||c.parentId;m&&(l[m]=!0);const y=(p==null?void 0:p.type)&&(p==null?void 0:p.type)!==c.type;Object.defineProperty(d,yt,{enumerable:!1,value:{handleBounds:y||(w=p==null?void 0:p[yt])==null?void 0:w.handleBounds,z:h}}),o.set(c.id,d)}),WN(o,r,l),o}function VN(e,n={}){const{getNodes:r,width:i,height:o,minZoom:l,maxZoom:u,d3Zoom:c,d3Selection:h,fitViewOnInitDone:p,fitViewOnInit:d,nodeOrigin:m}=e(),y=n.initial&&!p&&d;if(c&&h&&(y||!n.initial)){const N=r().filter(b=>{var k;const S=n.includeHiddenNodes?b.width&&b.height:!b.hidden;return(k=n.nodes)!=null&&k.length?S&&n.nodes.some(E=>E.id===b.id):S}),_=N.every(b=>b.width&&b.height);if(N.length>0&&_){const b=Ou(N,m),{x:S,y:k,zoom:E}=AN(b,i,o,n.minZoom??l,n.maxZoom??u,n.padding??.1),R=Fr.translate(S,k).scale(E);return typeof n.duration=="number"&&n.duration>0?c.transform(ii(h,n.duration),R):c.transform(h,R),!0}}return!1}function NM(e,n){return e.forEach(r=>{const i=n.get(r.id);i&&n.set(i.id,{...i,[yt]:i[yt],selected:r.selected})}),new Map(n)}function CM(e,n){return n.map(r=>{const i=e.find(o=>o.id===r.id);return i&&(r.selected=i.selected),r})}function Zl({changedNodes:e,changedEdges:n,get:r,set:i}){const{nodeInternals:o,edges:l,onNodesChange:u,onEdgesChange:c,hasDefaultNodes:h,hasDefaultEdges:p}=r();e!=null&&e.length&&(h&&i({nodeInternals:NM(e,o)}),u==null||u(e)),n!=null&&n.length&&(p&&i({edges:CM(n,l)}),c==null||c(n))}const Ki=()=>{},RM={zoomIn:Ki,zoomOut:Ki,zoomTo:Ki,getZoom:()=>1,setViewport:Ki,getViewport:()=>({x:0,y:0,zoom:1}),fitView:()=>!1,setCenter:Ki,fitBounds:Ki,project:e=>e,screenToFlowPosition:e=>e,flowToScreenPosition:e=>e,viewportInitialized:!1},TM=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection}),jM=()=>{const e=Rt(),{d3Zoom:n,d3Selection:r}=Ke(TM,Ct);return j.useMemo(()=>r&&n?{zoomIn:o=>n.scaleBy(ii(r,o==null?void 0:o.duration),1.2),zoomOut:o=>n.scaleBy(ii(r,o==null?void 0:o.duration),1/1.2),zoomTo:(o,l)=>n.scaleTo(ii(r,l==null?void 0:l.duration),o),getZoom:()=>e.getState().transform[2],setViewport:(o,l)=>{const[u,c,h]=e.getState().transform,p=Fr.translate(o.x??u,o.y??c).scale(o.zoom??h);n.transform(ii(r,l==null?void 0:l.duration),p)},getViewport:()=>{const[o,l,u]=e.getState().transform;return{x:o,y:l,zoom:u}},fitView:o=>VN(e.getState,o),setCenter:(o,l,u)=>{const{width:c,height:h,maxZoom:p}=e.getState(),d=typeof(u==null?void 0:u.zoom)<"u"?u.zoom:p,m=c/2-o*d,y=h/2-l*d,w=Fr.translate(m,y).scale(d);n.transform(ii(r,u==null?void 0:u.duration),w)},fitBounds:(o,l)=>{const{width:u,height:c,minZoom:h,maxZoom:p}=e.getState(),{x:d,y:m,zoom:y}=AN(o,u,c,h,p,(l==null?void 0:l.padding)??.1),w=Fr.translate(d,m).scale(y);n.transform(ii(r,l==null?void 0:l.duration),w)},project:o=>{const{transform:l,snapToGrid:u,snapGrid:c}=e.getState();return console.warn("[DEPRECATED] `project` is deprecated. Instead use `screenToFlowPosition`. There is no need to subtract the react flow bounds anymore! https://reactflow.dev/api-reference/types/react-flow-instance#screen-to-flow-position"),Sv(o,l,u,c)},screenToFlowPosition:o=>{const{transform:l,snapToGrid:u,snapGrid:c,domNode:h}=e.getState();if(!h)return o;const{x:p,y:d}=h.getBoundingClientRect(),m={x:o.x-p,y:o.y-d};return Sv(m,l,u,c)},flowToScreenPosition:o=>{const{transform:l,domNode:u}=e.getState();if(!u)return o;const{x:c,y:h}=u.getBoundingClientRect(),p=RN(o,l);return{x:p.x+c,y:p.y+h}},viewportInitialized:!0}:RM,[n,r])};function Ra(){const e=jM(),n=Rt(),r=j.useCallback(()=>n.getState().getNodes().map(_=>({..._})),[]),i=j.useCallback(_=>n.getState().nodeInternals.get(_),[]),o=j.useCallback(()=>{const{edges:_=[]}=n.getState();return _.map(b=>({...b}))},[]),l=j.useCallback(_=>{const{edges:b=[]}=n.getState();return b.find(S=>S.id===_)},[]),u=j.useCallback(_=>{const{getNodes:b,setNodes:S,hasDefaultNodes:k,onNodesChange:E}=n.getState(),R=b(),I=typeof _=="function"?_(R):_;if(k)S(I);else if(E){const O=I.length===0?R.map(A=>({type:"remove",id:A.id})):I.map(A=>({item:A,type:"reset"}));E(O)}},[]),c=j.useCallback(_=>{const{edges:b=[],setEdges:S,hasDefaultEdges:k,onEdgesChange:E}=n.getState(),R=typeof _=="function"?_(b):_;if(k)S(R);else if(E){const I=R.length===0?b.map(O=>({type:"remove",id:O.id})):R.map(O=>({item:O,type:"reset"}));E(I)}},[]),h=j.useCallback(_=>{const b=Array.isArray(_)?_:[_],{getNodes:S,setNodes:k,hasDefaultNodes:E,onNodesChange:R}=n.getState();if(E){const O=[...S(),...b];k(O)}else if(R){const I=b.map(O=>({item:O,type:"add"}));R(I)}},[]),p=j.useCallback(_=>{const b=Array.isArray(_)?_:[_],{edges:S=[],setEdges:k,hasDefaultEdges:E,onEdgesChange:R}=n.getState();if(E)k([...S,...b]);else if(R){const I=b.map(O=>({item:O,type:"add"}));R(I)}},[]),d=j.useCallback(()=>{const{getNodes:_,edges:b=[],transform:S}=n.getState(),[k,E,R]=S;return{nodes:_().map(I=>({...I})),edges:b.map(I=>({...I})),viewport:{x:k,y:E,zoom:R}}},[]),m=j.useCallback(({nodes:_,edges:b})=>{const{nodeInternals:S,getNodes:k,edges:E,hasDefaultNodes:R,hasDefaultEdges:I,onNodesDelete:O,onEdgesDelete:A,onNodesChange:U,onEdgesChange:z}=n.getState(),P=(_||[]).map(q=>q.id),D=(b||[]).map(q=>q.id),V=k().reduce((q,L)=>{const re=L.parentNode||L.parentId,Z=!P.includes(L.id)&&re&&q.find(J=>J.id===re);return(typeof L.deletable=="boolean"?L.deletable:!0)&&(P.includes(L.id)||Z)&&q.push(L),q},[]),B=E.filter(q=>typeof q.deletable=="boolean"?q.deletable:!0),C=B.filter(q=>D.includes(q.id));if(V||C){const q=jN(V,B),L=[...C,...q],re=L.reduce((Z,H)=>(Z.includes(H.id)||Z.push(H.id),Z),[]);if((I||R)&&(I&&n.setState({edges:E.filter(Z=>!re.includes(Z.id))}),R&&(V.forEach(Z=>{S.delete(Z.id)}),n.setState({nodeInternals:new Map(S)}))),re.length>0&&(A==null||A(L),z&&z(re.map(Z=>({id:Z,type:"remove"})))),V.length>0&&(O==null||O(V),U)){const Z=V.map(H=>({id:H.id,type:"remove"}));U(Z)}}},[]),y=j.useCallback(_=>{const b=XI(_),S=b?null:n.getState().nodeInternals.get(_.id);return!b&&!S?[null,null,b]:[b?_:hx(S),S,b]},[]),w=j.useCallback((_,b=!0,S)=>{const[k,E,R]=y(_);return k?(S||n.getState().getNodes()).filter(I=>{if(!R&&(I.id===E.id||!I.positionAbsolute))return!1;const O=hx(I),A=wv(O,k);return b&&A>0||A>=k.width*k.height}):[]},[]),N=j.useCallback((_,b,S=!0)=>{const[k]=y(_);if(!k)return!1;const E=wv(k,b);return S&&E>0||E>=k.width*k.height},[]);return j.useMemo(()=>({...e,getNodes:r,getNode:i,getEdges:o,getEdge:l,setNodes:u,setEdges:c,addNodes:h,addEdges:p,toObject:d,deleteElements:m,getIntersectingNodes:w,isNodeIntersecting:N}),[e,r,i,o,l,u,c,h,p,d,m,w,N])}const AM={actInsideInputWithModifier:!1};var IM=({deleteKeyCode:e,multiSelectionKeyCode:n})=>{const r=Rt(),{deleteElements:i}=Ra(),o=_a(e,AM),l=_a(n);j.useEffect(()=>{if(o){const{edges:u,getNodes:c}=r.getState(),h=c().filter(d=>d.selected),p=u.filter(d=>d.selected);i({nodes:h,edges:p}),r.setState({nodesSelectionActive:!1})}},[o]),j.useEffect(()=>{r.setState({multiSelectionActive:l})},[l])};function MM(e){const n=Rt();j.useEffect(()=>{let r;const i=()=>{var l,u;if(!e.current)return;const o=Wv(e.current);(o.height===0||o.width===0)&&((u=(l=n.getState()).onError)==null||u.call(l,"004",Br.error004())),n.setState({width:o.width||500,height:o.height||500})};return i(),window.addEventListener("resize",i),e.current&&(r=new ResizeObserver(()=>i()),r.observe(e.current)),()=>{window.removeEventListener("resize",i),r&&e.current&&r.unobserve(e.current)}},[])}const Jv={position:"absolute",width:"100%",height:"100%",top:0,left:0},OM=(e,n)=>e.x!==n.x||e.y!==n.y||e.zoom!==n.k,Jl=e=>({x:e.x,y:e.y,zoom:e.k}),Xi=(e,n)=>e.target.closest(`.${n}`),Sx=(e,n)=>n===2&&Array.isArray(e)&&e.includes(2),kx=e=>{const n=e.ctrlKey&&xu()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*n},PM=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection,d3ZoomHandler:e.d3ZoomHandler,userSelectionActive:e.userSelectionActive}),LM=({onMove:e,onMoveStart:n,onMoveEnd:r,onPaneContextMenu:i,zoomOnScroll:o=!0,zoomOnPinch:l=!0,panOnScroll:u=!1,panOnScrollSpeed:c=.5,panOnScrollMode:h=ai.Free,zoomOnDoubleClick:p=!0,elementsSelectable:d,panOnDrag:m=!0,defaultViewport:y,translateExtent:w,minZoom:N,maxZoom:_,zoomActivationKeyCode:b,preventScrolling:S=!0,children:k,noWheelClassName:E,noPanClassName:R})=>{const I=j.useRef(),O=Rt(),A=j.useRef(!1),U=j.useRef(!1),z=j.useRef(null),P=j.useRef({x:0,y:0,zoom:0}),{d3Zoom:D,d3Selection:V,d3ZoomHandler:B,userSelectionActive:C}=Ke(PM,Ct),q=_a(b),L=j.useRef(0),re=j.useRef(!1),Z=j.useRef();return MM(z),j.useEffect(()=>{if(z.current){const H=z.current.getBoundingClientRect(),J=gN().scaleExtent([N,_]).translateExtent(w),M=Ln(z.current).call(J),G=Fr.translate(y.x,y.y).scale(uo(y.zoom,N,_)),Y=[[0,0],[H.width,H.height]],$=J.constrain()(G,Y,w);J.transform(M,$),J.wheelDelta(kx),O.setState({d3Zoom:J,d3Selection:M,d3ZoomHandler:M.on("wheel.zoom"),transform:[$.x,$.y,$.k],domNode:z.current.closest(".react-flow")})}},[]),j.useEffect(()=>{V&&D&&(u&&!q&&!C?V.on("wheel.zoom",H=>{if(Xi(H,E))return!1;H.preventDefault(),H.stopImmediatePropagation();const J=V.property("__zoom").k||1;if(H.ctrlKey&&l){const fe=Jn(H),te=kx(H),ce=J*Math.pow(2,te);D.scaleTo(V,ce,fe,H);return}const M=H.deltaMode===1?20:1;let G=h===ai.Vertical?0:H.deltaX*M,Y=h===ai.Horizontal?0:H.deltaY*M;!xu()&&H.shiftKey&&h!==ai.Vertical&&(G=H.deltaY*M,Y=0),D.translateBy(V,-(G/J)*c,-(Y/J)*c,{internal:!0});const $=Jl(V.property("__zoom")),{onViewportChangeStart:Q,onViewportChange:ne,onViewportChangeEnd:oe}=O.getState();clearTimeout(Z.current),re.current||(re.current=!0,n==null||n(H,$),Q==null||Q($)),re.current&&(e==null||e(H,$),ne==null||ne($),Z.current=setTimeout(()=>{r==null||r(H,$),oe==null||oe($),re.current=!1},150))},{passive:!1}):typeof B<"u"&&V.on("wheel.zoom",function(H,J){if(!S&&H.type==="wheel"&&!H.ctrlKey||Xi(H,E))return null;H.preventDefault(),B.call(this,H,J)},{passive:!1}))},[C,u,h,V,D,B,q,l,S,E,n,e,r]),j.useEffect(()=>{D&&D.on("start",H=>{var G,Y;if(!H.sourceEvent||H.sourceEvent.internal)return null;L.current=(G=H.sourceEvent)==null?void 0:G.button;const{onViewportChangeStart:J}=O.getState(),M=Jl(H.transform);A.current=!0,P.current=M,((Y=H.sourceEvent)==null?void 0:Y.type)==="mousedown"&&O.setState({paneDragging:!0}),J==null||J(M),n==null||n(H.sourceEvent,M)})},[D,n]),j.useEffect(()=>{D&&(C&&!A.current?D.on("zoom",null):C||D.on("zoom",H=>{var M;const{onViewportChange:J}=O.getState();if(O.setState({transform:[H.transform.x,H.transform.y,H.transform.k]}),U.current=!!(i&&Sx(m,L.current??0)),(e||J)&&!((M=H.sourceEvent)!=null&&M.internal)){const G=Jl(H.transform);J==null||J(G),e==null||e(H.sourceEvent,G)}}))},[C,D,e,m,i]),j.useEffect(()=>{D&&D.on("end",H=>{if(!H.sourceEvent||H.sourceEvent.internal)return null;const{onViewportChangeEnd:J}=O.getState();if(A.current=!1,O.setState({paneDragging:!1}),i&&Sx(m,L.current??0)&&!U.current&&i(H.sourceEvent),U.current=!1,(r||J)&&OM(P.current,H.transform)){const M=Jl(H.transform);P.current=M,clearTimeout(I.current),I.current=setTimeout(()=>{J==null||J(M),r==null||r(H.sourceEvent,M)},u?150:0)}})},[D,u,m,r,i]),j.useEffect(()=>{D&&D.filter(H=>{const J=q||o,M=l&&H.ctrlKey;if((m===!0||Array.isArray(m)&&m.includes(1))&&H.button===1&&H.type==="mousedown"&&(Xi(H,"react-flow__node")||Xi(H,"react-flow__edge")))return!0;if(!m&&!J&&!u&&!p&&!l||C||!p&&H.type==="dblclick"||Xi(H,E)&&H.type==="wheel"||Xi(H,R)&&(H.type!=="wheel"||u&&H.type==="wheel"&&!q)||!l&&H.ctrlKey&&H.type==="wheel"||!J&&!u&&!M&&H.type==="wheel"||!m&&(H.type==="mousedown"||H.type==="touchstart")||Array.isArray(m)&&!m.includes(H.button)&&H.type==="mousedown")return!1;const G=Array.isArray(m)&&m.includes(H.button)||!H.button||H.button<=1;return(!H.ctrlKey||H.type==="wheel")&&G})},[C,D,o,l,u,p,m,d,q]),ue.createElement("div",{className:"react-flow__renderer",ref:z,style:Jv},k)},$M=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function qM(){const{userSelectionActive:e,userSelectionRect:n}=Ke($M,Ct);return e&&n?ue.createElement("div",{className:"react-flow__selection react-flow__container",style:{width:n.width,height:n.height,transform:`translate(${n.x}px, ${n.y}px)`}}):null}function Ex(e,n){const r=n.parentNode||n.parentId,i=e.find(o=>o.id===r);if(i){const o=n.position.x+n.width-i.width,l=n.position.y+n.height-i.height;if(o>0||l>0||n.position.x<0||n.position.y<0){if(i.style={...i.style},i.style.width=i.style.width??i.width,i.style.height=i.style.height??i.height,o>0&&(i.style.width+=o),l>0&&(i.style.height+=l),n.position.x<0){const u=Math.abs(n.position.x);i.position.x=i.position.x-u,i.style.width+=u,n.position.x=0}if(n.position.y<0){const u=Math.abs(n.position.y);i.position.y=i.position.y-u,i.style.height+=u,n.position.y=0}i.width=i.style.width,i.height=i.style.height}}}function DM(e,n){if(e.some(i=>i.type==="reset"))return e.filter(i=>i.type==="reset").map(i=>i.item);const r=e.filter(i=>i.type==="add").map(i=>i.item);return n.reduce((i,o)=>{const l=e.filter(c=>c.id===o.id);if(l.length===0)return i.push(o),i;const u={...o};for(const c of l)if(c)switch(c.type){case"select":{u.selected=c.selected;break}case"position":{typeof c.position<"u"&&(u.position=c.position),typeof c.positionAbsolute<"u"&&(u.positionAbsolute=c.positionAbsolute),typeof c.dragging<"u"&&(u.dragging=c.dragging),u.expandParent&&Ex(i,u);break}case"dimensions":{typeof c.dimensions<"u"&&(u.width=c.dimensions.width,u.height=c.dimensions.height),typeof c.updateStyle<"u"&&(u.style={...u.style||{},...c.dimensions}),typeof c.resizing=="boolean"&&(u.resizing=c.resizing),u.expandParent&&Ex(i,u);break}case"remove":return i}return i.push(u),i},r)}function FM(e,n){return DM(e,n)}const bs=(e,n)=>({id:e,type:"select",selected:n});function eo(e,n){return e.reduce((r,i)=>{const o=n.includes(i.id);return!i.selected&&o?(i.selected=!0,r.push(bs(i.id,!0))):i.selected&&!o&&(i.selected=!1,r.push(bs(i.id,!1))),r},[])}const Dd=(e,n)=>r=>{r.target===n.current&&(e==null||e(r))},zM=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging}),GN=j.memo(({isSelecting:e,selectionMode:n=xa.Full,panOnDrag:r,onSelectionStart:i,onSelectionEnd:o,onPaneClick:l,onPaneContextMenu:u,onPaneScroll:c,onPaneMouseEnter:h,onPaneMouseMove:p,onPaneMouseLeave:d,children:m})=>{const y=j.useRef(null),w=Rt(),N=j.useRef(0),_=j.useRef(0),b=j.useRef(),{userSelectionActive:S,elementsSelectable:k,dragging:E}=Ke(zM,Ct),R=()=>{w.setState({userSelectionActive:!1,userSelectionRect:null}),N.current=0,_.current=0},I=B=>{l==null||l(B),w.getState().resetSelectedElements(),w.setState({nodesSelectionActive:!1})},O=B=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){B.preventDefault();return}u==null||u(B)},A=c?B=>c(B):void 0,U=B=>{const{resetSelectedElements:C,domNode:q}=w.getState();if(b.current=q==null?void 0:q.getBoundingClientRect(),!k||!e||B.button!==0||B.target!==y.current||!b.current)return;const{x:L,y:re}=ks(B,b.current);C(),w.setState({userSelectionRect:{width:0,height:0,startX:L,startY:re,x:L,y:re}}),i==null||i(B)},z=B=>{const{userSelectionRect:C,nodeInternals:q,edges:L,transform:re,onNodesChange:Z,onEdgesChange:H,nodeOrigin:J,getNodes:M}=w.getState();if(!e||!b.current||!C)return;w.setState({userSelectionActive:!0,nodesSelectionActive:!1});const G=ks(B,b.current),Y=C.startX??0,$=C.startY??0,Q={...C,x:G.x<Y?G.x:Y,y:G.y<$?G.y:$,width:Math.abs(G.x-Y),height:Math.abs(G.y-$)},ne=M(),oe=TN(q,Q,re,n===xa.Partial,!0,J),fe=jN(oe,L).map(ce=>ce.id),te=oe.map(ce=>ce.id);if(N.current!==te.length){N.current=te.length;const ce=eo(ne,te);ce.length&&(Z==null||Z(ce))}if(_.current!==fe.length){_.current=fe.length;const ce=eo(L,fe);ce.length&&(H==null||H(ce))}w.setState({userSelectionRect:Q})},P=B=>{if(B.button!==0)return;const{userSelectionRect:C}=w.getState();!S&&C&&B.target===y.current&&(I==null||I(B)),w.setState({nodesSelectionActive:N.current>0}),R(),o==null||o(B)},D=B=>{S&&(w.setState({nodesSelectionActive:N.current>0}),o==null||o(B)),R()},V=k&&(e||S);return ue.createElement("div",{className:Dt(["react-flow__pane",{dragging:E,selection:e}]),onClick:V?void 0:Dd(I,y),onContextMenu:Dd(O,y),onWheel:Dd(A,y),onMouseEnter:V?void 0:h,onMouseDown:V?U:void 0,onMouseMove:V?z:p,onMouseUp:V?P:void 0,onMouseLeave:V?D:d,ref:y,style:Jv},m,ue.createElement(qM,null))});GN.displayName="Pane";function YN(e,n){const r=e.parentNode||e.parentId;if(!r)return!1;const i=n.get(r);return i?i.selected?!0:YN(i,n):!1}function Nx(e,n,r){let i=e;do{if(i!=null&&i.matches(n))return!0;if(i===r.current)return!1;i=i.parentElement}while(i);return!1}function BM(e,n,r,i){return Array.from(e.values()).filter(o=>(o.selected||o.id===i)&&(!o.parentNode||o.parentId||!YN(o,e))&&(o.draggable||n&&typeof o.draggable>"u")).map(o=>{var l,u;return{id:o.id,position:o.position||{x:0,y:0},positionAbsolute:o.positionAbsolute||{x:0,y:0},distance:{x:r.x-(((l=o.positionAbsolute)==null?void 0:l.x)??0),y:r.y-(((u=o.positionAbsolute)==null?void 0:u.y)??0)},delta:{x:0,y:0},extent:o.extent,parentNode:o.parentNode||o.parentId,parentId:o.parentNode||o.parentId,width:o.width,height:o.height,expandParent:o.expandParent}})}function UM(e,n){return!n||n==="parent"?n:[n[0],[n[1][0]-(e.width||0),n[1][1]-(e.height||0)]]}function KN(e,n,r,i,o=[0,0],l){const u=UM(e,e.extent||i);let c=u;const h=e.parentNode||e.parentId;if(e.extent==="parent"&&!e.expandParent)if(h&&e.width&&e.height){const m=r.get(h),{x:y,y:w}=ui(m,o).positionAbsolute;c=m&&$n(y)&&$n(w)&&$n(m.width)&&$n(m.height)?[[y+e.width*o[0],w+e.height*o[1]],[y+m.width-e.width+e.width*o[0],w+m.height-e.height+e.height*o[1]]]:c}else l==null||l("005",Br.error005()),c=u;else if(e.extent&&h&&e.extent!=="parent"){const m=r.get(h),{x:y,y:w}=ui(m,o).positionAbsolute;c=[[e.extent[0][0]+y,e.extent[0][1]+w],[e.extent[1][0]+y,e.extent[1][1]+w]]}let p={x:0,y:0};if(h){const m=r.get(h);p=ui(m,o).positionAbsolute}const d=c&&c!=="parent"?Vv(n,c):n;return{position:{x:d.x-p.x,y:d.y-p.y},positionAbsolute:d}}function Fd({nodeId:e,dragItems:n,nodeInternals:r}){const i=n.map(o=>({...r.get(o.id),position:o.position,positionAbsolute:o.positionAbsolute}));return[e?i.find(o=>o.id===e):i[0],i]}const Cx=(e,n,r,i)=>{const o=n.querySelectorAll(e);if(!o||!o.length)return null;const l=Array.from(o),u=n.getBoundingClientRect(),c={x:u.width*i[0],y:u.height*i[1]};return l.map(h=>{const p=h.getBoundingClientRect();return{id:h.getAttribute("data-handleid"),position:h.getAttribute("data-handlepos"),x:(p.left-u.left-c.x)/r,y:(p.top-u.top-c.y)/r,...Wv(h)}})};function ia(e,n,r){return r===void 0?r:i=>{const o=n().nodeInternals.get(e);o&&r(i,{...o})}}function Ev({id:e,store:n,unselect:r=!1,nodeRef:i}){const{addSelectedNodes:o,unselectNodesAndEdges:l,multiSelectionActive:u,nodeInternals:c,onError:h}=n.getState(),p=c.get(e);if(!p){h==null||h("012",Br.error012(e));return}n.setState({nodesSelectionActive:!1}),p.selected?(r||p.selected&&u)&&(l({nodes:[p],edges:[]}),requestAnimationFrame(()=>{var d;return(d=i==null?void 0:i.current)==null?void 0:d.blur()})):o([e])}function HM(){const e=Rt();return j.useCallback(({sourceEvent:r})=>{const{transform:i,snapGrid:o,snapToGrid:l}=e.getState(),u=r.touches?r.touches[0].clientX:r.clientX,c=r.touches?r.touches[0].clientY:r.clientY,h={x:(u-i[0])/i[2],y:(c-i[1])/i[2]};return{xSnapped:l?o[0]*Math.round(h.x/o[0]):h.x,ySnapped:l?o[1]*Math.round(h.y/o[1]):h.y,...h}},[])}function zd(e){return(n,r,i)=>e==null?void 0:e(n,i)}function XN({nodeRef:e,disabled:n=!1,noDragClassName:r,handleSelector:i,nodeId:o,isSelectable:l,selectNodesOnDrag:u}){const c=Rt(),[h,p]=j.useState(!1),d=j.useRef([]),m=j.useRef({x:null,y:null}),y=j.useRef(0),w=j.useRef(null),N=j.useRef({x:0,y:0}),_=j.useRef(null),b=j.useRef(!1),S=j.useRef(!1),k=j.useRef(!1),E=HM();return j.useEffect(()=>{if(e!=null&&e.current){const R=Ln(e.current),I=({x:U,y:z})=>{const{nodeInternals:P,onNodeDrag:D,onSelectionDrag:V,updateNodePositions:B,nodeExtent:C,snapGrid:q,snapToGrid:L,nodeOrigin:re,onError:Z}=c.getState();m.current={x:U,y:z};let H=!1,J={x:0,y:0,x2:0,y2:0};if(d.current.length>1&&C){const G=Ou(d.current,re);J=wa(G)}if(d.current=d.current.map(G=>{const Y={x:U-G.distance.x,y:z-G.distance.y};L&&(Y.x=q[0]*Math.round(Y.x/q[0]),Y.y=q[1]*Math.round(Y.y/q[1]));const $=[[C[0][0],C[0][1]],[C[1][0],C[1][1]]];d.current.length>1&&C&&!G.extent&&($[0][0]=G.positionAbsolute.x-J.x+C[0][0],$[1][0]=G.positionAbsolute.x+(G.width??0)-J.x2+C[1][0],$[0][1]=G.positionAbsolute.y-J.y+C[0][1],$[1][1]=G.positionAbsolute.y+(G.height??0)-J.y2+C[1][1]);const Q=KN(G,Y,P,$,re,Z);return H=H||G.position.x!==Q.position.x||G.position.y!==Q.position.y,G.position=Q.position,G.positionAbsolute=Q.positionAbsolute,G}),!H)return;B(d.current,!0,!0),p(!0);const M=o?D:zd(V);if(M&&_.current){const[G,Y]=Fd({nodeId:o,dragItems:d.current,nodeInternals:P});M(_.current,G,Y)}},O=()=>{if(!w.current)return;const[U,z]=yN(N.current,w.current);if(U!==0||z!==0){const{transform:P,panBy:D}=c.getState();m.current.x=(m.current.x??0)-U/P[2],m.current.y=(m.current.y??0)-z/P[2],D({x:U,y:z})&&I(m.current)}y.current=requestAnimationFrame(O)},A=U=>{var re;const{nodeInternals:z,multiSelectionActive:P,nodesDraggable:D,unselectNodesAndEdges:V,onNodeDragStart:B,onSelectionDragStart:C}=c.getState();S.current=!0;const q=o?B:zd(C);(!u||!l)&&!P&&o&&((re=z.get(o))!=null&&re.selected||V()),o&&l&&u&&Ev({id:o,store:c,nodeRef:e});const L=E(U);if(m.current=L,d.current=BM(z,D,L,o),q&&d.current){const[Z,H]=Fd({nodeId:o,dragItems:d.current,nodeInternals:z});q(U.sourceEvent,Z,H)}};if(n)R.on(".drag",null);else{const U=JA().on("start",z=>{const{domNode:P,nodeDragThreshold:D}=c.getState();D===0&&A(z),k.current=!1;const V=E(z);m.current=V,w.current=(P==null?void 0:P.getBoundingClientRect())||null,N.current=ks(z.sourceEvent,w.current)}).on("drag",z=>{var B,C;const P=E(z),{autoPanOnNodeDrag:D,nodeDragThreshold:V}=c.getState();if(z.sourceEvent.type==="touchmove"&&z.sourceEvent.touches.length>1&&(k.current=!0),!k.current){if(!b.current&&S.current&&D&&(b.current=!0,O()),!S.current){const q=P.xSnapped-(((B=m==null?void 0:m.current)==null?void 0:B.x)??0),L=P.ySnapped-(((C=m==null?void 0:m.current)==null?void 0:C.y)??0);Math.sqrt(q*q+L*L)>V&&A(z)}(m.current.x!==P.xSnapped||m.current.y!==P.ySnapped)&&d.current&&S.current&&(_.current=z.sourceEvent,N.current=ks(z.sourceEvent,w.current),I(P))}}).on("end",z=>{if(!(!S.current||k.current)&&(p(!1),b.current=!1,S.current=!1,cancelAnimationFrame(y.current),d.current)){const{updateNodePositions:P,nodeInternals:D,onNodeDragStop:V,onSelectionDragStop:B}=c.getState(),C=o?V:zd(B);if(P(d.current,!1,!1),C){const[q,L]=Fd({nodeId:o,dragItems:d.current,nodeInternals:D});C(z.sourceEvent,q,L)}}}).filter(z=>{const P=z.target;return!z.button&&(!r||!Nx(P,`.${r}`,e))&&(!i||Nx(P,i,e))});return R.call(U),()=>{R.on(".drag",null)}}}},[e,n,r,i,l,c,o,u,E]),h}function QN(){const e=Rt();return j.useCallback(r=>{const{nodeInternals:i,nodeExtent:o,updateNodePositions:l,getNodes:u,snapToGrid:c,snapGrid:h,onError:p,nodesDraggable:d}=e.getState(),m=u().filter(k=>k.selected&&(k.draggable||d&&typeof k.draggable>"u")),y=c?h[0]:5,w=c?h[1]:5,N=r.isShiftPressed?4:1,_=r.x*y*N,b=r.y*w*N,S=m.map(k=>{if(k.positionAbsolute){const E={x:k.positionAbsolute.x+_,y:k.positionAbsolute.y+b};c&&(E.x=h[0]*Math.round(E.x/h[0]),E.y=h[1]*Math.round(E.y/h[1]));const{positionAbsolute:R,position:I}=KN(k,E,i,o,void 0,p);k.position=I,k.positionAbsolute=R}return k});l(S,!0,!1)},[])}const io={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};var oa=e=>{const n=({id:r,type:i,data:o,xPos:l,yPos:u,xPosOrigin:c,yPosOrigin:h,selected:p,onClick:d,onMouseEnter:m,onMouseMove:y,onMouseLeave:w,onContextMenu:N,onDoubleClick:_,style:b,className:S,isDraggable:k,isSelectable:E,isConnectable:R,isFocusable:I,selectNodesOnDrag:O,sourcePosition:A,targetPosition:U,hidden:z,resizeObserver:P,dragHandle:D,zIndex:V,isParent:B,noDragClassName:C,noPanClassName:q,initialized:L,disableKeyboardA11y:re,ariaLabel:Z,rfId:H,hasHandleBounds:J})=>{const M=Rt(),G=j.useRef(null),Y=j.useRef(null),$=j.useRef(A),Q=j.useRef(U),ne=j.useRef(i),oe=E||k||d||m||y||w,fe=QN(),te=ia(r,M.getState,m),ce=ia(r,M.getState,y),Ce=ia(r,M.getState,w),ve=ia(r,M.getState,N),je=ia(r,M.getState,_),ye=we=>{const{nodeDragThreshold:_e}=M.getState();if(E&&(!O||!k||_e>0)&&Ev({id:r,store:M,nodeRef:G}),d){const Be=M.getState().nodeInternals.get(r);Be&&d(we,{...Be})}},ke=we=>{if(!xv(we)&&!re)if(bN.includes(we.key)&&E){const _e=we.key==="Escape";Ev({id:r,store:M,unselect:_e,nodeRef:G})}else k&&p&&Object.prototype.hasOwnProperty.call(io,we.key)&&(M.setState({ariaLiveMessage:`Moved selected node ${we.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~l}, y: ${~~u}`}),fe({x:io[we.key].x,y:io[we.key].y,isShiftPressed:we.shiftKey}))};j.useEffect(()=>()=>{Y.current&&(P==null||P.unobserve(Y.current),Y.current=null)},[]),j.useEffect(()=>{if(G.current&&!z){const we=G.current;(!L||!J||Y.current!==we)&&(Y.current&&(P==null||P.unobserve(Y.current)),P==null||P.observe(we),Y.current=we)}},[z,L,J]),j.useEffect(()=>{const we=ne.current!==i,_e=$.current!==A,Be=Q.current!==U;G.current&&(we||_e||Be)&&(we&&(ne.current=i),_e&&($.current=A),Be&&(Q.current=U),M.getState().updateNodeDimensions([{id:r,nodeElement:G.current,forceUpdate:!0}]))},[r,i,A,U]);const Ye=XN({nodeRef:G,disabled:z||!k,noDragClassName:C,handleSelector:D,nodeId:r,isSelectable:E,selectNodesOnDrag:O});return z?null:ue.createElement("div",{className:Dt(["react-flow__node",`react-flow__node-${i}`,{[q]:k},S,{selected:p,selectable:E,parent:B,dragging:Ye}]),ref:G,style:{zIndex:V,transform:`translate(${c}px,${h}px)`,pointerEvents:oe?"all":"none",visibility:L?"visible":"hidden",...b},"data-id":r,"data-testid":`rf__node-${r}`,onMouseEnter:te,onMouseMove:ce,onMouseLeave:Ce,onContextMenu:ve,onClick:ye,onDoubleClick:je,onKeyDown:I?ke:void 0,tabIndex:I?0:void 0,role:I?"button":void 0,"aria-describedby":re?void 0:`${BN}-${H}`,"aria-label":Z},ue.createElement(rM,{value:r},ue.createElement(e,{id:r,data:o,type:i,xPos:l,yPos:u,selected:p,isConnectable:R,sourcePosition:A,targetPosition:U,dragging:Ye,dragHandle:D,zIndex:V})))};return n.displayName="NodeWrapper",j.memo(n)};const WM=e=>{const n=e.getNodes().filter(r=>r.selected);return{...Ou(n,e.nodeOrigin),transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`,userSelectionActive:e.userSelectionActive}};function VM({onSelectionContextMenu:e,noPanClassName:n,disableKeyboardA11y:r}){const i=Rt(),{width:o,height:l,x:u,y:c,transformString:h,userSelectionActive:p}=Ke(WM,Ct),d=QN(),m=j.useRef(null);if(j.useEffect(()=>{var N;r||(N=m.current)==null||N.focus({preventScroll:!0})},[r]),XN({nodeRef:m}),p||!o||!l)return null;const y=e?N=>{const _=i.getState().getNodes().filter(b=>b.selected);e(N,_)}:void 0,w=N=>{Object.prototype.hasOwnProperty.call(io,N.key)&&d({x:io[N.key].x,y:io[N.key].y,isShiftPressed:N.shiftKey})};return ue.createElement("div",{className:Dt(["react-flow__nodesselection","react-flow__container",n]),style:{transform:h}},ue.createElement("div",{ref:m,className:"react-flow__nodesselection-rect",onContextMenu:y,tabIndex:r?void 0:-1,onKeyDown:r?void 0:w,style:{width:o,height:l,top:c,left:u}}))}var GM=j.memo(VM);const YM=e=>e.nodesSelectionActive,ZN=({children:e,onPaneClick:n,onPaneMouseEnter:r,onPaneMouseMove:i,onPaneMouseLeave:o,onPaneContextMenu:l,onPaneScroll:u,deleteKeyCode:c,onMove:h,onMoveStart:p,onMoveEnd:d,selectionKeyCode:m,selectionOnDrag:y,selectionMode:w,onSelectionStart:N,onSelectionEnd:_,multiSelectionKeyCode:b,panActivationKeyCode:S,zoomActivationKeyCode:k,elementsSelectable:E,zoomOnScroll:R,zoomOnPinch:I,panOnScroll:O,panOnScrollSpeed:A,panOnScrollMode:U,zoomOnDoubleClick:z,panOnDrag:P,defaultViewport:D,translateExtent:V,minZoom:B,maxZoom:C,preventScrolling:q,onSelectionContextMenu:L,noWheelClassName:re,noPanClassName:Z,disableKeyboardA11y:H})=>{const J=Ke(YM),M=_a(m),G=_a(S),Y=G||P,$=G||O,Q=M||y&&Y!==!0;return IM({deleteKeyCode:c,multiSelectionKeyCode:b}),ue.createElement(LM,{onMove:h,onMoveStart:p,onMoveEnd:d,onPaneContextMenu:l,elementsSelectable:E,zoomOnScroll:R,zoomOnPinch:I,panOnScroll:$,panOnScrollSpeed:A,panOnScrollMode:U,zoomOnDoubleClick:z,panOnDrag:!M&&Y,defaultViewport:D,translateExtent:V,minZoom:B,maxZoom:C,zoomActivationKeyCode:k,preventScrolling:q,noWheelClassName:re,noPanClassName:Z},ue.createElement(GN,{onSelectionStart:N,onSelectionEnd:_,onPaneClick:n,onPaneMouseEnter:r,onPaneMouseMove:i,onPaneMouseLeave:o,onPaneContextMenu:l,onPaneScroll:u,panOnDrag:Y,isSelecting:!!Q,selectionMode:w},e,J&&ue.createElement(GM,{onSelectionContextMenu:L,noPanClassName:Z,disableKeyboardA11y:H})))};ZN.displayName="FlowRenderer";var KM=j.memo(ZN);function XM(e){return Ke(j.useCallback(r=>e?TN(r.nodeInternals,{x:0,y:0,width:r.width,height:r.height},r.transform,!0):r.getNodes(),[e]))}function QM(e){const n={input:oa(e.input||qN),default:oa(e.default||kv),output:oa(e.output||FN),group:oa(e.group||Zv)},r={},i=Object.keys(e).filter(o=>!["input","default","output","group"].includes(o)).reduce((o,l)=>(o[l]=oa(e[l]||kv),o),r);return{...n,...i}}const ZM=({x:e,y:n,width:r,height:i,origin:o})=>!r||!i?{x:e,y:n}:o[0]<0||o[1]<0||o[0]>1||o[1]>1?{x:e,y:n}:{x:e-r*o[0],y:n-i*o[1]},JM=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,updateNodeDimensions:e.updateNodeDimensions,onError:e.onError}),JN=e=>{const{nodesDraggable:n,nodesConnectable:r,nodesFocusable:i,elementsSelectable:o,updateNodeDimensions:l,onError:u}=Ke(JM,Ct),c=XM(e.onlyRenderVisibleElements),h=j.useRef(),p=j.useMemo(()=>{if(typeof ResizeObserver>"u")return null;const d=new ResizeObserver(m=>{const y=m.map(w=>({id:w.target.getAttribute("data-id"),nodeElement:w.target,forceUpdate:!0}));l(y)});return h.current=d,d},[]);return j.useEffect(()=>()=>{var d;(d=h==null?void 0:h.current)==null||d.disconnect()},[]),ue.createElement("div",{className:"react-flow__nodes",style:Jv},c.map(d=>{var I,O,A;let m=d.type||"default";e.nodeTypes[m]||(u==null||u("003",Br.error003(m)),m="default");const y=e.nodeTypes[m]||e.nodeTypes.default,w=!!(d.draggable||n&&typeof d.draggable>"u"),N=!!(d.selectable||o&&typeof d.selectable>"u"),_=!!(d.connectable||r&&typeof d.connectable>"u"),b=!!(d.focusable||i&&typeof d.focusable>"u"),S=e.nodeExtent?Vv(d.positionAbsolute,e.nodeExtent):d.positionAbsolute,k=(S==null?void 0:S.x)??0,E=(S==null?void 0:S.y)??0,R=ZM({x:k,y:E,width:d.width??0,height:d.height??0,origin:e.nodeOrigin});return ue.createElement(y,{key:d.id,id:d.id,className:d.className,style:d.style,type:m,data:d.data,sourcePosition:d.sourcePosition||Ae.Bottom,targetPosition:d.targetPosition||Ae.Top,hidden:d.hidden,xPos:k,yPos:E,xPosOrigin:R.x,yPosOrigin:R.y,selectNodesOnDrag:e.selectNodesOnDrag,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,selected:!!d.selected,isDraggable:w,isSelectable:N,isConnectable:_,isFocusable:b,resizeObserver:p,dragHandle:d.dragHandle,zIndex:((I=d[yt])==null?void 0:I.z)??0,isParent:!!((O=d[yt])!=null&&O.isParent),noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,initialized:!!d.width&&!!d.height,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,ariaLabel:d.ariaLabel,hasHandleBounds:!!((A=d[yt])!=null&&A.handleBounds)})}))};JN.displayName="NodeRenderer";var eO=j.memo(JN);const tO=(e,n,r)=>r===Ae.Left?e-n:r===Ae.Right?e+n:e,nO=(e,n,r)=>r===Ae.Top?e-n:r===Ae.Bottom?e+n:e,Rx="react-flow__edgeupdater",Tx=({position:e,centerX:n,centerY:r,radius:i=10,onMouseDown:o,onMouseEnter:l,onMouseOut:u,type:c})=>ue.createElement("circle",{onMouseDown:o,onMouseEnter:l,onMouseOut:u,className:Dt([Rx,`${Rx}-${c}`]),cx:tO(n,i,e),cy:nO(r,i,e),r:i,stroke:"transparent",fill:"transparent"}),rO=()=>!0;var Qi=e=>{const n=({id:r,className:i,type:o,data:l,onClick:u,onEdgeDoubleClick:c,selected:h,animated:p,label:d,labelStyle:m,labelShowBg:y,labelBgStyle:w,labelBgPadding:N,labelBgBorderRadius:_,style:b,source:S,target:k,sourceX:E,sourceY:R,targetX:I,targetY:O,sourcePosition:A,targetPosition:U,elementsSelectable:z,hidden:P,sourceHandleId:D,targetHandleId:V,onContextMenu:B,onMouseEnter:C,onMouseMove:q,onMouseLeave:L,reconnectRadius:re,onReconnect:Z,onReconnectStart:H,onReconnectEnd:J,markerEnd:M,markerStart:G,rfId:Y,ariaLabel:$,isFocusable:Q,isReconnectable:ne,pathOptions:oe,interactionWidth:fe,disableKeyboardA11y:te})=>{const ce=j.useRef(null),[Ce,ve]=j.useState(!1),[je,ye]=j.useState(!1),ke=Rt(),Ye=j.useMemo(()=>`url('#${bv(G,Y)}')`,[G,Y]),we=j.useMemo(()=>`url('#${bv(M,Y)}')`,[M,Y]);if(P)return null;const _e=et=>{var Pt;const{edges:St,addSelectedEdges:mt,unselectNodesAndEdges:wt,multiSelectionActive:hn}=ke.getState(),Yt=St.find(Sn=>Sn.id===r);Yt&&(z&&(ke.setState({nodesSelectionActive:!1}),Yt.selected&&hn?(wt({nodes:[],edges:[Yt]}),(Pt=ce.current)==null||Pt.blur()):mt([r])),u&&u(et,Yt))},Be=sa(r,ke.getState,c),it=sa(r,ke.getState,B),pt=sa(r,ke.getState,C),Ze=sa(r,ke.getState,q),Fe=sa(r,ke.getState,L),Je=(et,St)=>{if(et.button!==0)return;const{edges:mt,isValidConnection:wt}=ke.getState(),hn=St?k:S,Yt=(St?V:D)||null,Pt=St?"target":"source",Sn=wt||rO,gr=St,kn=mt.find(pn=>pn.id===r);ye(!0),H==null||H(et,kn,Pt);const zt=pn=>{ye(!1),J==null||J(pn,kn,Pt)};ON({event:et,handleId:Yt,nodeId:hn,onConnect:pn=>Z==null?void 0:Z(kn,pn),isTarget:gr,getState:ke.getState,setState:ke.setState,isValidConnection:Sn,edgeUpdaterType:Pt,onReconnectEnd:zt})},Xe=et=>Je(et,!0),Mt=et=>Je(et,!1),ut=()=>ve(!0),Qe=()=>ve(!1),Ot=!z&&!u,Ft=et=>{var St;if(!te&&bN.includes(et.key)&&z){const{unselectNodesAndEdges:mt,addSelectedEdges:wt,edges:hn}=ke.getState();et.key==="Escape"?((St=ce.current)==null||St.blur(),mt({edges:[hn.find(Pt=>Pt.id===r)]})):wt([r])}};return ue.createElement("g",{className:Dt(["react-flow__edge",`react-flow__edge-${o}`,i,{selected:h,animated:p,inactive:Ot,updating:Ce}]),onClick:_e,onDoubleClick:Be,onContextMenu:it,onMouseEnter:pt,onMouseMove:Ze,onMouseLeave:Fe,onKeyDown:Q?Ft:void 0,tabIndex:Q?0:void 0,role:Q?"button":"img","data-testid":`rf__edge-${r}`,"aria-label":$===null?void 0:$||`Edge from ${S} to ${k}`,"aria-describedby":Q?`${UN}-${Y}`:void 0,ref:ce},!je&&ue.createElement(e,{id:r,source:S,target:k,selected:h,animated:p,label:d,labelStyle:m,labelShowBg:y,labelBgStyle:w,labelBgPadding:N,labelBgBorderRadius:_,data:l,style:b,sourceX:E,sourceY:R,targetX:I,targetY:O,sourcePosition:A,targetPosition:U,sourceHandleId:D,targetHandleId:V,markerStart:Ye,markerEnd:we,pathOptions:oe,interactionWidth:fe}),ne&&ue.createElement(ue.Fragment,null,(ne==="source"||ne===!0)&&ue.createElement(Tx,{position:A,centerX:E,centerY:R,radius:re,onMouseDown:Xe,onMouseEnter:ut,onMouseOut:Qe,type:"source"}),(ne==="target"||ne===!0)&&ue.createElement(Tx,{position:U,centerX:I,centerY:O,radius:re,onMouseDown:Mt,onMouseEnter:ut,onMouseOut:Qe,type:"target"})))};return n.displayName="EdgeWrapper",j.memo(n)};function sO(e){const n={default:Qi(e.default||bu),straight:Qi(e.bezier||Kv),step:Qi(e.step||Yv),smoothstep:Qi(e.step||Mu),simplebezier:Qi(e.simplebezier||Gv)},r={},i=Object.keys(e).filter(o=>!["default","bezier"].includes(o)).reduce((o,l)=>(o[l]=Qi(e[l]||bu),o),r);return{...n,...i}}function jx(e,n,r=null){const i=((r==null?void 0:r.x)||0)+n.x,o=((r==null?void 0:r.y)||0)+n.y,l=(r==null?void 0:r.width)||n.width,u=(r==null?void 0:r.height)||n.height;switch(e){case Ae.Top:return{x:i+l/2,y:o};case Ae.Right:return{x:i+l,y:o+u/2};case Ae.Bottom:return{x:i+l/2,y:o+u};case Ae.Left:return{x:i,y:o+u/2}}}function Ax(e,n){return e?e.length===1||!n?e[0]:n&&e.find(r=>r.id===n)||null:null}const iO=(e,n,r,i,o,l)=>{const u=jx(r,e,n),c=jx(l,i,o);return{sourceX:u.x,sourceY:u.y,targetX:c.x,targetY:c.y}};function oO({sourcePos:e,targetPos:n,sourceWidth:r,sourceHeight:i,targetWidth:o,targetHeight:l,width:u,height:c,transform:h}){const p={x:Math.min(e.x,n.x),y:Math.min(e.y,n.y),x2:Math.max(e.x+r,n.x+o),y2:Math.max(e.y+i,n.y+l)};p.x===p.x2&&(p.x2+=1),p.y===p.y2&&(p.y2+=1);const d=wa({x:(0-h[0])/h[2],y:(0-h[1])/h[2],width:u/h[2],height:c/h[2]}),m=Math.max(0,Math.min(d.x2,p.x2)-Math.max(d.x,p.x)),y=Math.max(0,Math.min(d.y2,p.y2)-Math.max(d.y,p.y));return Math.ceil(m*y)>0}function Ix(e){var i,o,l,u,c;const n=((i=e==null?void 0:e[yt])==null?void 0:i.handleBounds)||null,r=n&&(e==null?void 0:e.width)&&(e==null?void 0:e.height)&&typeof((o=e==null?void 0:e.positionAbsolute)==null?void 0:o.x)<"u"&&typeof((l=e==null?void 0:e.positionAbsolute)==null?void 0:l.y)<"u";return[{x:((u=e==null?void 0:e.positionAbsolute)==null?void 0:u.x)||0,y:((c=e==null?void 0:e.positionAbsolute)==null?void 0:c.y)||0,width:(e==null?void 0:e.width)||0,height:(e==null?void 0:e.height)||0},n,!!r]}const aO=[{level:0,isMaxLevel:!0,edges:[]}];function lO(e,n,r=!1){let i=-1;const o=e.reduce((u,c)=>{var d,m;const h=$n(c.zIndex);let p=h?c.zIndex:0;if(r){const y=n.get(c.target),w=n.get(c.source),N=c.selected||(y==null?void 0:y.selected)||(w==null?void 0:w.selected),_=Math.max(((d=w==null?void 0:w[yt])==null?void 0:d.z)||0,((m=y==null?void 0:y[yt])==null?void 0:m.z)||0,1e3);p=(h?c.zIndex:0)+(N?_:0)}return u[p]?u[p].push(c):u[p]=[c],i=p>i?p:i,u},{}),l=Object.entries(o).map(([u,c])=>{const h=+u;return{edges:c,level:h,isMaxLevel:h===i}});return l.length===0?aO:l}function uO(e,n,r){const i=Ke(j.useCallback(o=>e?o.edges.filter(l=>{const u=n.get(l.source),c=n.get(l.target);return(u==null?void 0:u.width)&&(u==null?void 0:u.height)&&(c==null?void 0:c.width)&&(c==null?void 0:c.height)&&oO({sourcePos:u.positionAbsolute||{x:0,y:0},targetPos:c.positionAbsolute||{x:0,y:0},sourceWidth:u.width,sourceHeight:u.height,targetWidth:c.width,targetHeight:c.height,width:o.width,height:o.height,transform:o.transform})}):o.edges,[e,n]));return lO(i,n,r)}const cO=({color:e="none",strokeWidth:n=1})=>ue.createElement("polyline",{style:{stroke:e,strokeWidth:n},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),dO=({color:e="none",strokeWidth:n=1})=>ue.createElement("polyline",{style:{stroke:e,fill:e,strokeWidth:n},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"}),Mx={[_u.Arrow]:cO,[_u.ArrowClosed]:dO};function fO(e){const n=Rt();return j.useMemo(()=>{var o,l;return Object.prototype.hasOwnProperty.call(Mx,e)?Mx[e]:((l=(o=n.getState()).onError)==null||l.call(o,"009",Br.error009(e)),null)},[e])}const hO=({id:e,type:n,color:r,width:i=12.5,height:o=12.5,markerUnits:l="strokeWidth",strokeWidth:u,orient:c="auto-start-reverse"})=>{const h=fO(n);return h?ue.createElement("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${i}`,markerHeight:`${o}`,viewBox:"-10 -10 20 20",markerUnits:l,orient:c,refX:"0",refY:"0"},ue.createElement(h,{color:r,strokeWidth:u})):null},pO=({defaultColor:e,rfId:n})=>r=>{const i=[];return r.edges.reduce((o,l)=>([l.markerStart,l.markerEnd].forEach(u=>{if(u&&typeof u=="object"){const c=bv(u,n);i.includes(c)||(o.push({id:c,color:u.color||e,...u}),i.push(c))}}),o),[]).sort((o,l)=>o.id.localeCompare(l.id))},eC=({defaultColor:e,rfId:n})=>{const r=Ke(j.useCallback(pO({defaultColor:e,rfId:n}),[e,n]),(i,o)=>!(i.length!==o.length||i.some((l,u)=>l.id!==o[u].id)));return ue.createElement("defs",null,r.map(i=>ue.createElement(hO,{id:i.id,key:i.id,type:i.type,color:i.color,width:i.width,height:i.height,markerUnits:i.markerUnits,strokeWidth:i.strokeWidth,orient:i.orient})))};eC.displayName="MarkerDefinitions";var mO=j.memo(eC);const gO=e=>({nodesConnectable:e.nodesConnectable,edgesFocusable:e.edgesFocusable,edgesUpdatable:e.edgesUpdatable,elementsSelectable:e.elementsSelectable,width:e.width,height:e.height,connectionMode:e.connectionMode,nodeInternals:e.nodeInternals,onError:e.onError}),tC=({defaultMarkerColor:e,onlyRenderVisibleElements:n,elevateEdgesOnSelect:r,rfId:i,edgeTypes:o,noPanClassName:l,onEdgeContextMenu:u,onEdgeMouseEnter:c,onEdgeMouseMove:h,onEdgeMouseLeave:p,onEdgeClick:d,onEdgeDoubleClick:m,onReconnect:y,onReconnectStart:w,onReconnectEnd:N,reconnectRadius:_,children:b,disableKeyboardA11y:S})=>{const{edgesFocusable:k,edgesUpdatable:E,elementsSelectable:R,width:I,height:O,connectionMode:A,nodeInternals:U,onError:z}=Ke(gO,Ct),P=uO(n,U,r);return I?ue.createElement(ue.Fragment,null,P.map(({level:D,edges:V,isMaxLevel:B})=>ue.createElement("svg",{key:D,style:{zIndex:D},width:I,height:O,className:"react-flow__edges react-flow__container"},B&&ue.createElement(mO,{defaultColor:e,rfId:i}),ue.createElement("g",null,V.map(C=>{const[q,L,re]=Ix(U.get(C.source)),[Z,H,J]=Ix(U.get(C.target));if(!re||!J)return null;let M=C.type||"default";o[M]||(z==null||z("011",Br.error011(M)),M="default");const G=o[M]||o.default,Y=A===di.Strict?H.target:(H.target??[]).concat(H.source??[]),$=Ax(L.source,C.sourceHandle),Q=Ax(Y,C.targetHandle),ne=($==null?void 0:$.position)||Ae.Bottom,oe=(Q==null?void 0:Q.position)||Ae.Top,fe=!!(C.focusable||k&&typeof C.focusable>"u"),te=C.reconnectable||C.updatable,ce=typeof y<"u"&&(te||E&&typeof te>"u");if(!$||!Q)return z==null||z("008",Br.error008($,C)),null;const{sourceX:Ce,sourceY:ve,targetX:je,targetY:ye}=iO(q,$,ne,Z,Q,oe);return ue.createElement(G,{key:C.id,id:C.id,className:Dt([C.className,l]),type:M,data:C.data,selected:!!C.selected,animated:!!C.animated,hidden:!!C.hidden,label:C.label,labelStyle:C.labelStyle,labelShowBg:C.labelShowBg,labelBgStyle:C.labelBgStyle,labelBgPadding:C.labelBgPadding,labelBgBorderRadius:C.labelBgBorderRadius,style:C.style,source:C.source,target:C.target,sourceHandleId:C.sourceHandle,targetHandleId:C.targetHandle,markerEnd:C.markerEnd,markerStart:C.markerStart,sourceX:Ce,sourceY:ve,targetX:je,targetY:ye,sourcePosition:ne,targetPosition:oe,elementsSelectable:R,onContextMenu:u,onMouseEnter:c,onMouseMove:h,onMouseLeave:p,onClick:d,onEdgeDoubleClick:m,onReconnect:y,onReconnectStart:w,onReconnectEnd:N,reconnectRadius:_,rfId:i,ariaLabel:C.ariaLabel,isFocusable:fe,isReconnectable:ce,pathOptions:"pathOptions"in C?C.pathOptions:void 0,interactionWidth:C.interactionWidth,disableKeyboardA11y:S})})))),b):null};tC.displayName="EdgeRenderer";var vO=j.memo(tC);const yO=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function wO({children:e}){const n=Ke(yO);return ue.createElement("div",{className:"react-flow__viewport react-flow__container",style:{transform:n}},e)}function xO(e){const n=Ra(),r=j.useRef(!1);j.useEffect(()=>{!r.current&&n.viewportInitialized&&e&&(setTimeout(()=>e(n),1),r.current=!0)},[e,n.viewportInitialized])}const _O={[Ae.Left]:Ae.Right,[Ae.Right]:Ae.Left,[Ae.Top]:Ae.Bottom,[Ae.Bottom]:Ae.Top},nC=({nodeId:e,handleType:n,style:r,type:i=Ss.Bezier,CustomComponent:o,connectionStatus:l})=>{var O,A,U;const{fromNode:u,handleId:c,toX:h,toY:p,connectionMode:d}=Ke(j.useCallback(z=>({fromNode:z.nodeInternals.get(e),handleId:z.connectionHandleId,toX:(z.connectionPosition.x-z.transform[0])/z.transform[2],toY:(z.connectionPosition.y-z.transform[1])/z.transform[2],connectionMode:z.connectionMode}),[e]),Ct),m=(O=u==null?void 0:u[yt])==null?void 0:O.handleBounds;let y=m==null?void 0:m[n];if(d===di.Loose&&(y=y||(m==null?void 0:m[n==="source"?"target":"source"])),!u||!y)return null;const w=c?y.find(z=>z.id===c):y[0],N=w?w.x+w.width/2:(u.width??0)/2,_=w?w.y+w.height/2:u.height??0,b=(((A=u.positionAbsolute)==null?void 0:A.x)??0)+N,S=(((U=u.positionAbsolute)==null?void 0:U.y)??0)+_,k=w==null?void 0:w.position,E=k?_O[k]:null;if(!k||!E)return null;if(o)return ue.createElement(o,{connectionLineType:i,connectionLineStyle:r,fromNode:u,fromHandle:w,fromX:b,fromY:S,toX:h,toY:p,fromPosition:k,toPosition:E,connectionStatus:l});let R="";const I={sourceX:b,sourceY:S,sourcePosition:k,targetX:h,targetY:p,targetPosition:E};return i===Ss.Bezier?[R]=CN(I):i===Ss.Step?[R]=_v({...I,borderRadius:0}):i===Ss.SmoothStep?[R]=_v(I):i===Ss.SimpleBezier?[R]=NN(I):R=`M${b},${S} ${h},${p}`,ue.createElement("path",{d:R,fill:"none",className:"react-flow__connection-path",style:r})};nC.displayName="ConnectionLine";const bO=e=>({nodeId:e.connectionNodeId,handleType:e.connectionHandleType,nodesConnectable:e.nodesConnectable,connectionStatus:e.connectionStatus,width:e.width,height:e.height});function SO({containerStyle:e,style:n,type:r,component:i}){const{nodeId:o,handleType:l,nodesConnectable:u,width:c,height:h,connectionStatus:p}=Ke(bO,Ct);return!(o&&l&&c&&u)?null:ue.createElement("svg",{style:e,width:c,height:h,className:"react-flow__edges react-flow__connectionline react-flow__container"},ue.createElement("g",{className:Dt(["react-flow__connection",p])},ue.createElement(nC,{nodeId:o,handleType:l,style:n,type:r,CustomComponent:i,connectionStatus:p})))}function Ox(e,n){return j.useRef(null),Rt(),j.useMemo(()=>n(e),[e])}const rC=({nodeTypes:e,edgeTypes:n,onMove:r,onMoveStart:i,onMoveEnd:o,onInit:l,onNodeClick:u,onEdgeClick:c,onNodeDoubleClick:h,onEdgeDoubleClick:p,onNodeMouseEnter:d,onNodeMouseMove:m,onNodeMouseLeave:y,onNodeContextMenu:w,onSelectionContextMenu:N,onSelectionStart:_,onSelectionEnd:b,connectionLineType:S,connectionLineStyle:k,connectionLineComponent:E,connectionLineContainerStyle:R,selectionKeyCode:I,selectionOnDrag:O,selectionMode:A,multiSelectionKeyCode:U,panActivationKeyCode:z,zoomActivationKeyCode:P,deleteKeyCode:D,onlyRenderVisibleElements:V,elementsSelectable:B,selectNodesOnDrag:C,defaultViewport:q,translateExtent:L,minZoom:re,maxZoom:Z,preventScrolling:H,defaultMarkerColor:J,zoomOnScroll:M,zoomOnPinch:G,panOnScroll:Y,panOnScrollSpeed:$,panOnScrollMode:Q,zoomOnDoubleClick:ne,panOnDrag:oe,onPaneClick:fe,onPaneMouseEnter:te,onPaneMouseMove:ce,onPaneMouseLeave:Ce,onPaneScroll:ve,onPaneContextMenu:je,onEdgeContextMenu:ye,onEdgeMouseEnter:ke,onEdgeMouseMove:Ye,onEdgeMouseLeave:we,onReconnect:_e,onReconnectStart:Be,onReconnectEnd:it,reconnectRadius:pt,noDragClassName:Ze,noWheelClassName:Fe,noPanClassName:Je,elevateEdgesOnSelect:Xe,disableKeyboardA11y:Mt,nodeOrigin:ut,nodeExtent:Qe,rfId:Ot})=>{const Ft=Ox(e,QM),et=Ox(n,sO);return xO(l),ue.createElement(KM,{onPaneClick:fe,onPaneMouseEnter:te,onPaneMouseMove:ce,onPaneMouseLeave:Ce,onPaneContextMenu:je,onPaneScroll:ve,deleteKeyCode:D,selectionKeyCode:I,selectionOnDrag:O,selectionMode:A,onSelectionStart:_,onSelectionEnd:b,multiSelectionKeyCode:U,panActivationKeyCode:z,zoomActivationKeyCode:P,elementsSelectable:B,onMove:r,onMoveStart:i,onMoveEnd:o,zoomOnScroll:M,zoomOnPinch:G,zoomOnDoubleClick:ne,panOnScroll:Y,panOnScrollSpeed:$,panOnScrollMode:Q,panOnDrag:oe,defaultViewport:q,translateExtent:L,minZoom:re,maxZoom:Z,onSelectionContextMenu:N,preventScrolling:H,noDragClassName:Ze,noWheelClassName:Fe,noPanClassName:Je,disableKeyboardA11y:Mt},ue.createElement(wO,null,ue.createElement(vO,{edgeTypes:et,onEdgeClick:c,onEdgeDoubleClick:p,onlyRenderVisibleElements:V,onEdgeContextMenu:ye,onEdgeMouseEnter:ke,onEdgeMouseMove:Ye,onEdgeMouseLeave:we,onReconnect:_e,onReconnectStart:Be,onReconnectEnd:it,reconnectRadius:pt,defaultMarkerColor:J,noPanClassName:Je,elevateEdgesOnSelect:!!Xe,disableKeyboardA11y:Mt,rfId:Ot},ue.createElement(SO,{style:k,type:S,component:E,containerStyle:R})),ue.createElement("div",{className:"react-flow__edgelabel-renderer"}),ue.createElement(eO,{nodeTypes:Ft,onNodeClick:u,onNodeDoubleClick:h,onNodeMouseEnter:d,onNodeMouseMove:m,onNodeMouseLeave:y,onNodeContextMenu:w,selectNodesOnDrag:C,onlyRenderVisibleElements:V,noPanClassName:Je,noDragClassName:Ze,disableKeyboardA11y:Mt,nodeOrigin:ut,nodeExtent:Qe,rfId:Ot})))};rC.displayName="GraphView";var kO=j.memo(rC);const Nv=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],xs={rfId:"1",width:0,height:0,transform:[0,0,1],nodeInternals:new Map,edges:[],onNodesChange:null,onEdgesChange:null,hasDefaultNodes:!1,hasDefaultEdges:!1,d3Zoom:null,d3Selection:null,d3ZoomHandler:void 0,minZoom:.5,maxZoom:2,translateExtent:Nv,nodeExtent:Nv,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionNodeId:null,connectionHandleId:null,connectionHandleType:"source",connectionPosition:{x:0,y:0},connectionStatus:null,connectionMode:di.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:[0,0],nodeDragThreshold:0,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesUpdatable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,fitViewOnInit:!1,fitViewOnInitDone:!1,fitViewOnInitOptions:void 0,onSelectionChange:[],multiSelectionActive:!1,connectionStartHandle:null,connectionEndHandle:null,connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,connectionRadius:20,onError:QI,isValidConnection:void 0},EO=()=>dj((e,n)=>({...xs,setNodes:r=>{const{nodeInternals:i,nodeOrigin:o,elevateNodesOnSelect:l}=n();e({nodeInternals:qd(r,i,o,l)})},getNodes:()=>Array.from(n().nodeInternals.values()),setEdges:r=>{const{defaultEdgeOptions:i={}}=n();e({edges:r.map(o=>({...i,...o}))})},setDefaultNodesAndEdges:(r,i)=>{const o=typeof r<"u",l=typeof i<"u",u=o?qd(r,new Map,n().nodeOrigin,n().elevateNodesOnSelect):new Map;e({nodeInternals:u,edges:l?i:[],hasDefaultNodes:o,hasDefaultEdges:l})},updateNodeDimensions:r=>{const{onNodesChange:i,nodeInternals:o,fitViewOnInit:l,fitViewOnInitDone:u,fitViewOnInitOptions:c,domNode:h,nodeOrigin:p}=n(),d=h==null?void 0:h.querySelector(".react-flow__viewport");if(!d)return;const m=window.getComputedStyle(d),{m22:y}=new window.DOMMatrixReadOnly(m.transform),w=r.reduce((_,b)=>{const S=o.get(b.id);if(S!=null&&S.hidden)o.set(S.id,{...S,[yt]:{...S[yt],handleBounds:void 0}});else if(S){const k=Wv(b.nodeElement);!!(k.width&&k.height&&(S.width!==k.width||S.height!==k.height||b.forceUpdate))&&(o.set(S.id,{...S,[yt]:{...S[yt],handleBounds:{source:Cx(".source",b.nodeElement,y,p),target:Cx(".target",b.nodeElement,y,p)}},...k}),_.push({id:S.id,type:"dimensions",dimensions:k}))}return _},[]);WN(o,p);const N=u||l&&!u&&VN(n,{initial:!0,...c});e({nodeInternals:new Map(o),fitViewOnInitDone:N}),(w==null?void 0:w.length)>0&&(i==null||i(w))},updateNodePositions:(r,i=!0,o=!1)=>{const{triggerNodeChanges:l}=n(),u=r.map(c=>{const h={id:c.id,type:"position",dragging:o};return i&&(h.positionAbsolute=c.positionAbsolute,h.position=c.position),h});l(u)},triggerNodeChanges:r=>{const{onNodesChange:i,nodeInternals:o,hasDefaultNodes:l,nodeOrigin:u,getNodes:c,elevateNodesOnSelect:h}=n();if(r!=null&&r.length){if(l){const p=FM(r,c()),d=qd(p,o,u,h);e({nodeInternals:d})}i==null||i(r)}},addSelectedNodes:r=>{const{multiSelectionActive:i,edges:o,getNodes:l}=n();let u,c=null;i?u=r.map(h=>bs(h,!0)):(u=eo(l(),r),c=eo(o,[])),Zl({changedNodes:u,changedEdges:c,get:n,set:e})},addSelectedEdges:r=>{const{multiSelectionActive:i,edges:o,getNodes:l}=n();let u,c=null;i?u=r.map(h=>bs(h,!0)):(u=eo(o,r),c=eo(l(),[])),Zl({changedNodes:c,changedEdges:u,get:n,set:e})},unselectNodesAndEdges:({nodes:r,edges:i}={})=>{const{edges:o,getNodes:l}=n(),u=r||l(),c=i||o,h=u.map(d=>(d.selected=!1,bs(d.id,!1))),p=c.map(d=>bs(d.id,!1));Zl({changedNodes:h,changedEdges:p,get:n,set:e})},setMinZoom:r=>{const{d3Zoom:i,maxZoom:o}=n();i==null||i.scaleExtent([r,o]),e({minZoom:r})},setMaxZoom:r=>{const{d3Zoom:i,minZoom:o}=n();i==null||i.scaleExtent([o,r]),e({maxZoom:r})},setTranslateExtent:r=>{var i;(i=n().d3Zoom)==null||i.translateExtent(r),e({translateExtent:r})},resetSelectedElements:()=>{const{edges:r,getNodes:i}=n(),l=i().filter(c=>c.selected).map(c=>bs(c.id,!1)),u=r.filter(c=>c.selected).map(c=>bs(c.id,!1));Zl({changedNodes:l,changedEdges:u,get:n,set:e})},setNodeExtent:r=>{const{nodeInternals:i}=n();i.forEach(o=>{o.positionAbsolute=Vv(o.position,r)}),e({nodeExtent:r,nodeInternals:new Map(i)})},panBy:r=>{const{transform:i,width:o,height:l,d3Zoom:u,d3Selection:c,translateExtent:h}=n();if(!u||!c||!r.x&&!r.y)return!1;const p=Fr.translate(i[0]+r.x,i[1]+r.y).scale(i[2]),d=[[0,0],[o,l]],m=u==null?void 0:u.constrain()(p,d,h);return u.transform(c,m),i[0]!==m.x||i[1]!==m.y||i[2]!==m.k},cancelConnection:()=>e({connectionNodeId:xs.connectionNodeId,connectionHandleId:xs.connectionHandleId,connectionHandleType:xs.connectionHandleType,connectionStatus:xs.connectionStatus,connectionStartHandle:xs.connectionStartHandle,connectionEndHandle:xs.connectionEndHandle}),reset:()=>e({...xs})}),Object.is),ey=({children:e})=>{const n=j.useRef(null);return n.current||(n.current=EO()),ue.createElement(HI,{value:n.current},e)};ey.displayName="ReactFlowProvider";const sC=({children:e})=>j.useContext(Iu)?ue.createElement(ue.Fragment,null,e):ue.createElement(ey,null,e);sC.displayName="ReactFlowWrapper";const NO={input:qN,default:kv,output:FN,group:Zv},CO={default:bu,straight:Kv,step:Yv,smoothstep:Mu,simplebezier:Gv},RO=[0,0],TO=[15,15],jO={x:0,y:0,zoom:1},AO={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0},iC=j.forwardRef(({nodes:e,edges:n,defaultNodes:r,defaultEdges:i,className:o,nodeTypes:l=NO,edgeTypes:u=CO,onNodeClick:c,onEdgeClick:h,onInit:p,onMove:d,onMoveStart:m,onMoveEnd:y,onConnect:w,onConnectStart:N,onConnectEnd:_,onClickConnectStart:b,onClickConnectEnd:S,onNodeMouseEnter:k,onNodeMouseMove:E,onNodeMouseLeave:R,onNodeContextMenu:I,onNodeDoubleClick:O,onNodeDragStart:A,onNodeDrag:U,onNodeDragStop:z,onNodesDelete:P,onEdgesDelete:D,onSelectionChange:V,onSelectionDragStart:B,onSelectionDrag:C,onSelectionDragStop:q,onSelectionContextMenu:L,onSelectionStart:re,onSelectionEnd:Z,connectionMode:H=di.Strict,connectionLineType:J=Ss.Bezier,connectionLineStyle:M,connectionLineComponent:G,connectionLineContainerStyle:Y,deleteKeyCode:$="Backspace",selectionKeyCode:Q="Shift",selectionOnDrag:ne=!1,selectionMode:oe=xa.Full,panActivationKeyCode:fe="Space",multiSelectionKeyCode:te=xu()?"Meta":"Control",zoomActivationKeyCode:ce=xu()?"Meta":"Control",snapToGrid:Ce=!1,snapGrid:ve=TO,onlyRenderVisibleElements:je=!1,selectNodesOnDrag:ye=!0,nodesDraggable:ke,nodesConnectable:Ye,nodesFocusable:we,nodeOrigin:_e=RO,edgesFocusable:Be,edgesUpdatable:it,elementsSelectable:pt,defaultViewport:Ze=jO,minZoom:Fe=.5,maxZoom:Je=2,translateExtent:Xe=Nv,preventScrolling:Mt=!0,nodeExtent:ut,defaultMarkerColor:Qe="#b1b1b7",zoomOnScroll:Ot=!0,zoomOnPinch:Ft=!0,panOnScroll:et=!1,panOnScrollSpeed:St=.5,panOnScrollMode:mt=ai.Free,zoomOnDoubleClick:wt=!0,panOnDrag:hn=!0,onPaneClick:Yt,onPaneMouseEnter:Pt,onPaneMouseMove:Sn,onPaneMouseLeave:gr,onPaneScroll:kn,onPaneContextMenu:zt,children:Fn,onEdgeContextMenu:pn,onEdgeDoubleClick:vr,onEdgeMouseEnter:Wr,onEdgeMouseMove:gi,onEdgeMouseLeave:Vr,onEdgeUpdate:ct,onEdgeUpdateStart:vi,onEdgeUpdateEnd:mn,onReconnect:Rs,onReconnectStart:yr,onReconnectEnd:zn,reconnectRadius:En=10,edgeUpdaterRadius:Gr=10,onNodesChange:Yr,onEdgesChange:Kr,noDragClassName:yi="nodrag",noWheelClassName:ir="nowheel",noPanClassName:Ts="nopan",fitView:Nn=!1,fitViewOptions:wr,connectOnClick:js=!0,attributionPosition:As,proOptions:Tt,defaultEdgeOptions:xr,elevateNodesOnSelect:_r=!0,elevateEdgesOnSelect:Kt=!1,disableKeyboardA11y:Xr=!1,autoPanOnConnect:wi=!0,autoPanOnNodeDrag:nt=!0,connectionRadius:br=20,isValidConnection:Qr,onError:Is,style:Zr,id:Jr,nodeDragThreshold:Ms,...or},kt)=>{const Os=Jr||"1";return ue.createElement("div",{...or,style:{...Zr,...AO},ref:kt,className:Dt(["react-flow",o]),"data-testid":"rf__wrapper",id:Jr},ue.createElement(sC,null,ue.createElement(kO,{onInit:p,onMove:d,onMoveStart:m,onMoveEnd:y,onNodeClick:c,onEdgeClick:h,onNodeMouseEnter:k,onNodeMouseMove:E,onNodeMouseLeave:R,onNodeContextMenu:I,onNodeDoubleClick:O,nodeTypes:l,edgeTypes:u,connectionLineType:J,connectionLineStyle:M,connectionLineComponent:G,connectionLineContainerStyle:Y,selectionKeyCode:Q,selectionOnDrag:ne,selectionMode:oe,deleteKeyCode:$,multiSelectionKeyCode:te,panActivationKeyCode:fe,zoomActivationKeyCode:ce,onlyRenderVisibleElements:je,selectNodesOnDrag:ye,defaultViewport:Ze,translateExtent:Xe,minZoom:Fe,maxZoom:Je,preventScrolling:Mt,zoomOnScroll:Ot,zoomOnPinch:Ft,zoomOnDoubleClick:wt,panOnScroll:et,panOnScrollSpeed:St,panOnScrollMode:mt,panOnDrag:hn,onPaneClick:Yt,onPaneMouseEnter:Pt,onPaneMouseMove:Sn,onPaneMouseLeave:gr,onPaneScroll:kn,onPaneContextMenu:zt,onSelectionContextMenu:L,onSelectionStart:re,onSelectionEnd:Z,onEdgeContextMenu:pn,onEdgeDoubleClick:vr,onEdgeMouseEnter:Wr,onEdgeMouseMove:gi,onEdgeMouseLeave:Vr,onReconnect:Rs??ct,onReconnectStart:yr??vi,onReconnectEnd:zn??mn,reconnectRadius:En??Gr,defaultMarkerColor:Qe,noDragClassName:yi,noWheelClassName:ir,noPanClassName:Ts,elevateEdgesOnSelect:Kt,rfId:Os,disableKeyboardA11y:Xr,nodeOrigin:_e,nodeExtent:ut}),ue.createElement(xM,{nodes:e,edges:n,defaultNodes:r,defaultEdges:i,onConnect:w,onConnectStart:N,onConnectEnd:_,onClickConnectStart:b,onClickConnectEnd:S,nodesDraggable:ke,nodesConnectable:Ye,nodesFocusable:we,edgesFocusable:Be,edgesUpdatable:it,elementsSelectable:pt,elevateNodesOnSelect:_r,minZoom:Fe,maxZoom:Je,nodeExtent:ut,onNodesChange:Yr,onEdgesChange:Kr,snapToGrid:Ce,snapGrid:ve,connectionMode:H,translateExtent:Xe,connectOnClick:js,defaultEdgeOptions:xr,fitView:Nn,fitViewOptions:wr,onNodesDelete:P,onEdgesDelete:D,onNodeDragStart:A,onNodeDrag:U,onNodeDragStop:z,onSelectionDrag:C,onSelectionDragStart:B,onSelectionDragStop:q,noPanClassName:Ts,nodeOrigin:_e,rfId:Os,autoPanOnConnect:wi,autoPanOnNodeDrag:nt,onError:Is,connectionRadius:br,isValidConnection:Qr,nodeDragThreshold:Ms}),ue.createElement(yM,{onSelectionChange:V}),Fn,ue.createElement(VI,{proOptions:Tt,position:As}),ue.createElement(EM,{rfId:Os,disableKeyboardA11y:Xr})))});iC.displayName="ReactFlow";const IO=e=>({x:e.transform[0],y:e.transform[1],zoom:e.transform[2]});function oC(){return Ke(IO,Ct)}const aC=({id:e,x:n,y:r,width:i,height:o,style:l,color:u,strokeColor:c,strokeWidth:h,className:p,borderRadius:d,shapeRendering:m,onClick:y,selected:w})=>{const{background:N,backgroundColor:_}=l||{},b=u||N||_;return ue.createElement("rect",{className:Dt(["react-flow__minimap-node",{selected:w},p]),x:n,y:r,rx:d,ry:d,width:i,height:o,fill:b,stroke:c,strokeWidth:h,shapeRendering:m,onClick:y?S=>y(S,e):void 0})};aC.displayName="MiniMapNode";var MO=j.memo(aC);const OO=e=>e.nodeOrigin,PO=e=>e.getNodes().filter(n=>!n.hidden&&n.width&&n.height),Bd=e=>e instanceof Function?e:()=>e;function LO({nodeStrokeColor:e="transparent",nodeColor:n="#e2e2e2",nodeClassName:r="",nodeBorderRadius:i=5,nodeStrokeWidth:o=2,nodeComponent:l=MO,onClick:u}){const c=Ke(PO,Ct),h=Ke(OO),p=Bd(n),d=Bd(e),m=Bd(r),y=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return ue.createElement(ue.Fragment,null,c.map(w=>{const{x:N,y:_}=ui(w,h).positionAbsolute;return ue.createElement(l,{key:w.id,x:N,y:_,width:w.width,height:w.height,style:w.style,selected:w.selected,className:m(w),color:p(w),borderRadius:i,strokeColor:d(w),strokeWidth:o,shapeRendering:y,onClick:u,id:w.id})}))}var $O=j.memo(LO);const qO=200,DO=150,FO=e=>{const n=e.getNodes(),r={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:r,boundingRect:n.length>0?KI(Ou(n,e.nodeOrigin),r):r,rfId:e.rfId}},zO="react-flow__minimap-desc";function lC({style:e,className:n,nodeStrokeColor:r="transparent",nodeColor:i="#e2e2e2",nodeClassName:o="",nodeBorderRadius:l=5,nodeStrokeWidth:u=2,nodeComponent:c,maskColor:h="rgb(240, 240, 240, 0.6)",maskStrokeColor:p="none",maskStrokeWidth:d=1,position:m="bottom-right",onClick:y,onNodeClick:w,pannable:N=!1,zoomable:_=!1,ariaLabel:b="React Flow mini map",inversePan:S=!1,zoomStep:k=10,offsetScale:E=5}){const R=Rt(),I=j.useRef(null),{boundingRect:O,viewBB:A,rfId:U}=Ke(FO,Ct),z=(e==null?void 0:e.width)??qO,P=(e==null?void 0:e.height)??DO,D=O.width/z,V=O.height/P,B=Math.max(D,V),C=B*z,q=B*P,L=E*B,re=O.x-(C-O.width)/2-L,Z=O.y-(q-O.height)/2-L,H=C+L*2,J=q+L*2,M=`${zO}-${U}`,G=j.useRef(0);G.current=B,j.useEffect(()=>{if(I.current){const Q=Ln(I.current),ne=te=>{const{transform:ce,d3Selection:Ce,d3Zoom:ve}=R.getState();if(te.sourceEvent.type!=="wheel"||!Ce||!ve)return;const je=-te.sourceEvent.deltaY*(te.sourceEvent.deltaMode===1?.05:te.sourceEvent.deltaMode?1:.002)*k,ye=ce[2]*Math.pow(2,je);ve.scaleTo(Ce,ye)},oe=te=>{const{transform:ce,d3Selection:Ce,d3Zoom:ve,translateExtent:je,width:ye,height:ke}=R.getState();if(te.sourceEvent.type!=="mousemove"||!Ce||!ve)return;const Ye=G.current*Math.max(1,ce[2])*(S?-1:1),we={x:ce[0]-te.sourceEvent.movementX*Ye,y:ce[1]-te.sourceEvent.movementY*Ye},_e=[[0,0],[ye,ke]],Be=Fr.translate(we.x,we.y).scale(ce[2]),it=ve.constrain()(Be,_e,je);ve.transform(Ce,it)},fe=gN().on("zoom",N?oe:null).on("zoom.wheel",_?ne:null);return Q.call(fe),()=>{Q.on("zoom",null)}}},[N,_,S,k]);const Y=y?Q=>{const ne=Jn(Q);y(Q,{x:ne[0],y:ne[1]})}:void 0,$=w?(Q,ne)=>{const oe=R.getState().nodeInternals.get(ne);w(Q,oe)}:void 0;return ue.createElement(Hv,{position:m,style:e,className:Dt(["react-flow__minimap",n]),"data-testid":"rf__minimap"},ue.createElement("svg",{width:z,height:P,viewBox:`${re} ${Z} ${H} ${J}`,role:"img","aria-labelledby":M,ref:I,onClick:Y},b&&ue.createElement("title",{id:M},b),ue.createElement($O,{onClick:$,nodeColor:i,nodeStrokeColor:r,nodeBorderRadius:l,nodeClassName:o,nodeStrokeWidth:u,nodeComponent:c}),ue.createElement("path",{className:"react-flow__minimap-mask",d:`M${re-L},${Z-L}h${H+L*2}v${J+L*2}h${-H-L*2}z
57
57
  M${A.x},${A.y}h${A.width}v${A.height}h${-A.width}z`,fill:h,fillRule:"evenodd",stroke:p,strokeWidth:d,pointerEvents:"none"})))}lC.displayName="MiniMap";var BO=j.memo(lC);function UO(){return ue.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},ue.createElement("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"}))}function HO(){return ue.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},ue.createElement("path",{d:"M0 0h32v4.2H0z"}))}function WO(){return ue.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},ue.createElement("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"}))}function VO(){return ue.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},ue.createElement("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"}))}function GO(){return ue.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},ue.createElement("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"}))}const to=({children:e,className:n,...r})=>ue.createElement("button",{type:"button",className:Dt(["react-flow__controls-button",n]),...r},e);to.displayName="ControlButton";const YO=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom}),uC=({style:e,showZoom:n=!0,showFitView:r=!0,showInteractive:i=!0,fitViewOptions:o,onZoomIn:l,onZoomOut:u,onFitView:c,onInteractiveChange:h,className:p,children:d,position:m="bottom-left"})=>{const y=Rt(),[w,N]=j.useState(!1),{isInteractive:_,minZoomReached:b,maxZoomReached:S}=Ke(YO,Ct),{zoomIn:k,zoomOut:E,fitView:R}=Ra();if(j.useEffect(()=>{N(!0)},[]),!w)return null;const I=()=>{k(),l==null||l()},O=()=>{E(),u==null||u()},A=()=>{R(o),c==null||c()},U=()=>{y.setState({nodesDraggable:!_,nodesConnectable:!_,elementsSelectable:!_}),h==null||h(!_)};return ue.createElement(Hv,{className:Dt(["react-flow__controls",p]),position:m,style:e,"data-testid":"rf__controls"},n&&ue.createElement(ue.Fragment,null,ue.createElement(to,{onClick:I,className:"react-flow__controls-zoomin",title:"zoom in","aria-label":"zoom in",disabled:S},ue.createElement(UO,null)),ue.createElement(to,{onClick:O,className:"react-flow__controls-zoomout",title:"zoom out","aria-label":"zoom out",disabled:b},ue.createElement(HO,null))),r&&ue.createElement(to,{className:"react-flow__controls-fitview",onClick:A,title:"fit view","aria-label":"fit view"},ue.createElement(WO,null)),i&&ue.createElement(to,{className:"react-flow__controls-interactive",onClick:U,title:"toggle interactivity","aria-label":"toggle interactivity"},_?ue.createElement(GO,null):ue.createElement(VO,null)),d)};uC.displayName="Controls";var KO=j.memo(uC),tr;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(tr||(tr={}));function XO({color:e,dimensions:n,lineWidth:r}){return ue.createElement("path",{stroke:e,strokeWidth:r,d:`M${n[0]/2} 0 V${n[1]} M0 ${n[1]/2} H${n[0]}`})}function QO({color:e,radius:n}){return ue.createElement("circle",{cx:n,cy:n,r:n,fill:e})}const ZO={[tr.Dots]:"#91919a",[tr.Lines]:"#eee",[tr.Cross]:"#e2e2e2"},JO={[tr.Dots]:1,[tr.Lines]:1,[tr.Cross]:6},eP=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function cC({id:e,variant:n=tr.Dots,gap:r=20,size:i,lineWidth:o=1,offset:l=2,color:u,style:c,className:h}){const p=j.useRef(null),{transform:d,patternId:m}=Ke(eP,Ct),y=u||ZO[n],w=i||JO[n],N=n===tr.Dots,_=n===tr.Cross,b=Array.isArray(r)?r:[r,r],S=[b[0]*d[2]||1,b[1]*d[2]||1],k=w*d[2],E=_?[k,k]:S,R=N?[k/l,k/l]:[E[0]/l,E[1]/l];return ue.createElement("svg",{className:Dt(["react-flow__background",h]),style:{...c,position:"absolute",width:"100%",height:"100%",top:0,left:0},ref:p,"data-testid":"rf__background"},ue.createElement("pattern",{id:m+e,x:d[0]%S[0],y:d[1]%S[1],width:S[0],height:S[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${R[0]},-${R[1]})`},N?ue.createElement(QO,{color:y,radius:k/l}):ue.createElement(XO,{dimensions:E,color:y,lineWidth:o})),ue.createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${m+e})`}))}cC.displayName="Background";var tP=j.memo(cC);function dC(){return{inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheCreateTokens:0}}function fC(e){const n=e.cache_creation,r=n&&typeof n=="object"?n:e,i=r.ephemeral_1h_input_tokens,o=r.ephemeral_5m_input_tokens;return typeof i!="number"&&typeof o!="number"?{}:{cacheCreate1hTokens:Number(i??0),cacheCreate5mTokens:Number(o??0)}}function hC(e,n=0){if(!e||typeof e!="object"||n>6)return null;const r=e;if(typeof r.input_tokens=="number"||typeof r.output_tokens=="number"||typeof r.cache_read_input_tokens=="number"||typeof r.cache_creation_input_tokens=="number")return{inputTokens:Number(r.input_tokens??0),outputTokens:Number(r.output_tokens??0),cacheReadTokens:Number(r.cache_read_input_tokens??0),cacheCreateTokens:Number(r.cache_creation_input_tokens??0),...fC(r)};for(const i of Object.values(r)){const o=hC(i,n+1);if(o)return o}return null}function nP(e,n){e.inputTokens+=n.inputTokens,e.outputTokens+=n.outputTokens,e.cacheReadTokens+=n.cacheReadTokens,e.cacheCreateTokens+=n.cacheCreateTokens,(n.cacheCreate1hTokens!==void 0||n.cacheCreate5mTokens!==void 0)&&(e.cacheCreate1hTokens=(e.cacheCreate1hTokens??0)+(n.cacheCreate1hTokens??0),e.cacheCreate5mTokens=(e.cacheCreate5mTokens??0)+(n.cacheCreate5mTokens??0))}const rP=/^(?:claude[-_]|gpt[-_]|o\d|codex[-_])/i;function pC(e,n=0){if(!e||typeof e!="object"||n>6)return null;const r=e;if(typeof r.model=="string"&&rP.test(r.model))return r.model;for(const i of Object.values(r)){const o=pC(i,n+1);if(o)return o}return null}function Cv(){return{agents:new Map,toolIndex:new Map,toolOwner:new Map,activeSubagentStack:new Map,lastSeq:0,seqEpoch:null,totalEvents:0}}function Es(e){if(!e)return;const n=e.replace(/\\/g,"/").split("/").filter(Boolean);return n[n.length-1]}function Ta(e,n){return`${e}::${n}`}function Su(e){return e.agent_type??e.subagent_type??"subagent"}function ha(e){return e.agent_id?e.agent_id:e.parent_tool_use_id?e.parent_tool_use_id:null}function no(e,n,r,i){const o=n;let l=e.agents.get(o);return l||(l={id:o,sessionId:n,label:"session",kind:"root",state:"active",startedAt:r,lastEventAt:r,tools:[],prompts:[],toolCount:0,childCount:0,synthetic:i,usage:dC()},e.agents.set(o,l),l)}function mC(e,n,r,i){const o=Ta(n,r),l=e.agents.get(o);if(!l)return null;!l.cwd&&i.cwd&&(l.cwd=i.cwd,l.cwdBasename=Es(i.cwd));const u=Su(i);return u&&(l.label==="subagent"||!l.label)&&(l.label=u),l}function Px(e,n,r){const i=n.session_id??"unknown",o=ha(n);if(o){const h=mC(e,i,o,n);if(h)return h}const l=e.activeSubagentStack.get(i),u=l&&l.length>0?l[l.length-1]:null;if(u){const h=e.agents.get(Ta(i,u));if(h)return!h.cwd&&n.cwd&&(h.cwd=n.cwd,h.cwdBasename=Es(n.cwd)),h}const c=no(e,i,r,!1);return c.synthetic&&(c.synthetic=!1,c.startedAt=r),!c.cwd&&n.cwd&&(c.cwd=n.cwd,c.cwdBasename=Es(n.cwd)),c.label==="session"&&n.cwd&&(c.label=Es(n.cwd)??"session"),c}function sP(e,n,r,i,o){const l=Ta(n,r),u=no(e,n,o,!0);let c=e.agents.get(l);if(c){!c.cwd&&i.cwd&&(c.cwd=i.cwd,c.cwdBasename=Es(i.cwd));const h=Su(i);return h&&(c.label==="subagent"||!c.label)&&(c.label=h),c}return c={id:l,sessionId:n,label:Su(i),kind:"subagent",parentId:u.id,state:"active",startedAt:o,tools:[],prompts:[],cwd:i.cwd,cwdBasename:Es(i.cwd),toolCount:0,childCount:0,usage:dC()},e.agents.set(l,c),u.childCount+=1,c}function iP(e,n,r){const i=e.activeSubagentStack.get(n)??[];i.includes(r)||(i.push(r),e.activeSubagentStack.set(n,i))}function oP(e,n,r){const i=e.activeSubagentStack.get(n);if(i){for(let o=i.length-1;o>=0;o--)if(i[o]===r){i.splice(o,1);break}i.length===0&&e.activeSubagentStack.delete(n)}}function eu(e,n=80){if(e==null)return"";if(typeof e=="string")return e.length>n?e.slice(0,n-1)+"…":e;try{const r=JSON.stringify(e);return r.length>n?r.slice(0,n-1)+"…":r}catch{return String(e)}}const Lx=200,aP=25;function lP(e,n){const r=n.tools;if(r.length>Lx){const i=r.splice(0,r.length-Lx);for(const o of i)e.toolIndex.delete(o.id),e.toolOwner.delete(o.id)}for(let i=r.length-aP-1;i>=0;i--){const o=r[i];if(o.trimmed)break;o.input=void 0,o.response=void 0,o.trimmed=!0}}function uP(e,n,r){const i=e.toolIndex.get(r);if(i)return i;for(let o=n.tools.length-1;o>=0;o--)if(n.tools[o].id===r)return n.tools[o];return null}const $x=2e3;function cP(e,n,r){for(let i=e.prompts.length-1;i>=0;i--){const o=e.prompts[i];if(o.at<n-$x)return!1;if(o.text===r&&o.at<=n+$x)return!0}return!1}function dP(e,n,r,i){if(e.agents.size<=r)return!1;const o=[];for(const[u,c]of e.agents)c.state==="done"&&c.endedAt!=null&&n-c.endedAt>i&&o.push({id:u,endedAt:c.endedAt});if(o.length===0)return!1;o.sort((u,c)=>u.endedAt-c.endedAt);let l=0;for(const u of o){if(e.agents.size<=r)break;e.agents.delete(u.id),l++}return l>0}function fP(e,n,r,i){const o=new Map;for(const[p,d]of e.agents){let m=o.get(d.sessionId);m||(m={ids:[],endedAt:0,live:!1},o.set(d.sessionId,m)),m.ids.push(p),d.state==="done"&&d.endedAt!=null?m.endedAt=Math.max(m.endedAt,d.endedAt):m.live=!0}const l=[...o.values()].filter(p=>!p.live&&p.endedAt>0&&n-p.endedAt>i).sort((p,d)=>p.endedAt-d.endedAt);let c=[...o.values()].filter(p=>!p.live).length-r;if(c<=0)return!1;let h=!1;for(const p of l){if(c<=0)break;for(const d of p.ids)e.agents.delete(d);c--,h=!0}return h}function hP(e,n,r){let i=!1;for(const o of e.agents.values())if(o.provider!=="codex")for(const l of o.tools)l.endedAt==null&&n-l.startedAt>r&&(l.endedAt=l.startedAt+r,l.ok=!1,l.errorPreview="stale (no PostToolUse received)",e.toolIndex.delete(l.id),e.toolOwner.delete(l.id),i=!0);return i}const pP=90*6e4;function mP(e,n,r){let i=!1;for(const o of e.agents.values()){if(o.kind!=="root")continue;const l=o.lastEventAt??o.startedAt;if(!(n-l<=r)){o.waiting&&(o.waiting=null,i=!0),o.state==="active"&&(o.state="done",o.endedAt=l,o.reaped=!0,i=!0);for(const u of e.agents.values())u.sessionId!==o.sessionId||u.kind==="root"||u.state!=="active"||(u.state="done",u.endedAt=l,i=!0)}}return i}function gP(e){return e==="permission_prompt"?"permission":e==="idle_prompt"?"idle":null}const vP=new Set(["Notification","ModelObserved","ContextObserved","UsageObserved"]);function yP(e,n){let r=null;for(const i of e.toolIndex.values()){const o=i.agentId?e.agents.get(i.agentId):void 0;!o||o.sessionId!==n||(!r||i.startedAt>r.startedAt)&&(r=i)}return r==null?void 0:r.explicitSubagentId}function wP(e,n,r,i,o){const l=r==="permission"?yP(e,n):void 0;return l?{kind:r,message:i,since:o,subagentId:l}:{kind:r,message:i,since:o}}function xP(e,n,r){if(e.kind!=="permission")return!0;const i=ha(n);return i==null?!0:e.subagentId!=null&&Ta(r,i)===e.subagentId}function qx(e,n){const r=n.epoch??null;if(r!==null&&r!==e.seqEpoch)e.seqEpoch=r,e.lastSeq=0;else if(n.seq<=e.lastSeq)return e;const i=n.payload??{},o=n.receivedAt,l=i.hook_event_name??"Unknown";if(l==="__clear")return{...Cv(),lastSeq:n.seq,seqEpoch:e.seqEpoch};e.totalEvents+=1,e.lastSeq=n.seq;const u=i.session_id??"unknown";if(!vP.has(l)){const d=e.agents.get(u);d!=null&&d.waiting&&xP(d.waiting,i,u)&&(d.waiting=null)}const c=e.agents.get(u);if(c&&o>(c.lastEventAt??0)&&(c.lastEventAt=o,c.reaped&&(c.reaped=!1,c.state="active",c.endedAt=void 0)),typeof i.model_context_window=="number"&&i.model_context_window>0){const d=e.agents.get(u);d&&(d.contextWindow=i.model_context_window)}if(typeof i.approval_policy=="string"&&i.approval_policy){const d=e.agents.get(u);d&&(d.approvalPolicy=i.approval_policy)}if(l==="ModelObserved"){const d=typeof i.model=="string"?i.model:null;if(d){const y=e.agents.get(u);y&&(y.model=d)}const m=i.subagentModels;if(m&&typeof m=="object")for(const[y,w]of Object.entries(m)){if(typeof w!="string")continue;const N=`${u}::${y}`,_=e.agents.get(N);_&&(_.model=w)}return e}if(l==="ContextObserved"){const d=i.context??null;if(d){const m=e.agents.get(u);m&&(m.context={msgsUser:Number(d.msgsUser??0),msgsAssistant:Number(d.msgsAssistant??0),toolUses:Number(d.toolUses??0),toolResults:Number(d.toolResults??0),systemReminders:Number(d.systemReminders??0),currentContextTokens:Number(d.currentContextTokens??0),claudeMdFiles:Array.isArray(d.claudeMdFiles)?d.claudeMdFiles:[]})}return e}if(l==="UsageObserved"){const d=i.usage??null;if(d){const m=e.agents.get(u);if(m){m.usage.inputTokens=Number(d.input_tokens??0),m.usage.outputTokens=Number(d.output_tokens??0),m.usage.cacheReadTokens=Number(d.cache_read_input_tokens??d.cached_input_tokens??0),m.usage.cacheCreateTokens=Number(d.cache_creation_input_tokens??d.cache_write_input_tokens??0);const y=fC(d);m.usage.cacheCreate1hTokens=y.cacheCreate1hTokens,m.usage.cacheCreate5mTokens=y.cacheCreate5mTokens,typeof d.reasoning_output_tokens=="number"&&(m.usage.reasoningOutputTokens=Number(d.reasoning_output_tokens))}}return e}const h=Px(e,i,o);h.provider||(h.provider=i.provider==="codex"?"codex":"claude");const p=pC(i);switch(p&&(h.model=p),l){case"SessionStart":{const d=no(e,u,o,!1);d.synthetic=!1,d.state="active",d.startedAt=d.startedAt||o,!d.cwd&&i.cwd&&(d.cwd=i.cwd,d.cwdBasename=Es(i.cwd)),d.label==="session"&&i.cwd&&(d.label=Es(i.cwd)??"session");break}case"UserPromptSubmit":{for(const w of e.agents.values())w.sessionId===u&&w.kind==="subagent"&&w.state==="done"&&w.exitAt==null&&w.endedAt!=null&&w.endedAt<o&&(w.exitAt=o);const d=no(e,u,o,!1);d.state="active",d.endedAt=void 0,d.exitAt=void 0;const m=Px(e,i,o);m.state="active",m.exitAt=void 0,m.endedAt=void 0;const y=(typeof i.prompt=="string"?i.prompt:typeof i.message=="string"?i.message:"")??"";y&&!cP(m,o,y)&&(m.prompts.push({at:o,text:y}),m.firstPrompt||(m.firstPrompt=eu(y,120)));break}case"PreToolUse":{const d=i.tool_use_id?uP(e,h,i.tool_use_id):null;if(d){i.tool_name&&d.name==="?"&&(d.name=i.tool_name),d.endedAt==null&&!d.trimmed&&i.tool_input!==void 0&&(d.input=i.tool_input,d.inputPreview=eu(i.tool_input));break}const m=i.tool_use_id??`${h.id}:${h.toolCount}`,y=ha(i),w={id:m,name:i.tool_name??"?",input:i.tool_input,inputPreview:eu(i.tool_input),agentId:h.id,explicitSubagentId:y?Ta(u,y):void 0,startedAt:o};h.tools.push(w),h.toolCount+=1,h.state="active",e.toolIndex.set(m,w),e.toolOwner.set(m,h.id),lP(e,h);break}case"PostToolUse":case"PostToolUseFailure":{const d=i.tool_use_id;if(!d)break;let m=e.toolIndex.get(d),y=!1;if(!m)for(const _ of e.agents.values()){const b=_.tools.find(S=>S.id===d);if(b){m=b,y=!0;break}}if(!m)break;m.endedAt=o,m.ok=l==="PostToolUse",m.trimmed||(m.response=i.tool_response),l==="PostToolUseFailure"?m.errorPreview=eu(i.tool_response):y&&(m.errorPreview=void 0);const w=hC(i.tool_response);w&&(m.usage=w),e.toolIndex.delete(d);const N=e.toolOwner.get(d)??m.agentId;if(e.toolOwner.delete(d),N&&w){const _=e.agents.get(N);_&&nP(_.usage,w)}break}case"SubagentStart":{const d=ha(i);if(!d)break;const m=sP(e,u,d,i,o);m.state="active",m.startedAt=m.startedAt||o,m.exitAt=void 0,m.endedAt=void 0;const y=Su(i);y&&(m.label=y),iP(e,u,d);break}case"SubagentStop":{const d=ha(i);if(!d)break;const m=mC(e,u,d,i);if(!m)break;m.state="done",m.endedAt=o,oP(e,u,d);break}case"Stop":case"SessionEnd":{const d=no(e,u,o,!1);d.state="done",d.endedAt=o,e.activeSubagentStack.delete(u);break}case"Notification":{const d=gP(i.notification_type);if(!d)break;const m=no(e,u,o,!1),y=typeof i.message=="string"?i.message:"",w=m.waiting;m.waiting=w&&w.kind===d&&w.message===y?{...w,since:Math.min(w.since,o)}:wP(e,u,d,y,o);break}}return e}function ty(e){let n=5381;for(let r=0;r<e.length;r++)n=(n<<5)+n^e.charCodeAt(r);return Math.abs(n)%360}const _P=Date.UTC(2026,8,1);function bP(e){return e<_P?{input:2,output:10,cacheRead:.2,cacheWrite:2.5,cacheWrite1h:4}:{input:3,output:15,cacheRead:.3,cacheWrite:3.75,cacheWrite1h:6}}const SP=[{match:/^claude[-_](fable|mythos)[-_]5\b/i,rates:{input:10,output:50,cacheRead:1,cacheWrite:12.5,cacheWrite1h:20}},{match:/^claude[-_]opus[-_]5\b/i,rates:{input:5,output:25,cacheRead:.5,cacheWrite:6.25,cacheWrite1h:10}},{match:/^claude[-_]sonnet[-_]5\b/i,rates:bP},{match:/^claude[-_]opus[-_]4[-_.](?:5|6|7|8)\b/i,rates:{input:5,output:25,cacheRead:.5,cacheWrite:6.25,cacheWrite1h:10}},{match:/^claude[-_]opus[-_]4(?:[-_.]1)?\b/i,rates:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75,cacheWrite1h:30}},{match:/^claude[-_]sonnet[-_]4[-_.](?:5|6)\b/i,rates:{input:3,output:15,cacheRead:.3,cacheWrite:3.75,cacheWrite1h:6}},{match:/^claude[-_]sonnet[-_]4\b/i,rates:{input:3,output:15,cacheRead:.3,cacheWrite:3.75,cacheWrite1h:6}},{match:/^claude[-_]haiku[-_]4[-_.]5\b/i,rates:{input:1,output:5,cacheRead:.1,cacheWrite:1.25,cacheWrite1h:2}},{match:/^claude[-_]haiku[-_]3[-_.]5\b/i,rates:{input:.8,output:4,cacheRead:.08,cacheWrite:1,cacheWrite1h:1.6}},{match:/^gpt[-_]5[-_.]6[-_]cyber/i,rates:{input:12.5,output:75,cacheRead:1.25,cacheWrite:0}},{match:/^gpt[-_]5[-_.]6[-_]luna/i,rates:{input:.2,output:1.2,cacheRead:.02,cacheWrite:.25}},{match:/^gpt[-_]5[-_.]6[-_]terra/i,rates:{input:2,output:12,cacheRead:.2,cacheWrite:2.5}},{match:/^gpt[-_]5[-_.]6(?:[-_]sol)?\b/i,rates:{input:5,output:30,cacheRead:.5,cacheWrite:6.25}},{match:/^gpt[-_]5[-_.]5[-_]pro/i,rates:{input:30,output:180,cacheRead:30,cacheWrite:0}},{match:/^gpt[-_]5[-_.]5\b/i,rates:{input:5,output:30,cacheRead:.5,cacheWrite:0}},{match:/^gpt[-_]5[-_.]4[-_]pro/i,rates:{input:30,output:180,cacheRead:3,cacheWrite:0}},{match:/^gpt[-_]5[-_.]4[-_]mini/i,rates:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0}},{match:/^gpt[-_]5[-_.]4[-_]nano/i,rates:{input:.2,output:1.25,cacheRead:.02,cacheWrite:0}},{match:/^gpt[-_]5[-_.]4\b/i,rates:{input:2.5,output:15,cacheRead:.25,cacheWrite:0}},{match:/^gpt[-_]5[-_.]3[-_]codex/i,rates:{input:1.75,output:14,cacheRead:.175,cacheWrite:0}},{match:/^gpt[-_]5[-_.]2[-_]pro/i,rates:{input:21,output:168,cacheRead:21,cacheWrite:0}},{match:/^gpt[-_]5[-_.]2\b/i,rates:{input:1.75,output:14,cacheRead:.175,cacheWrite:0}},{match:/^gpt[-_]5[-_.]1[-_]codex[-_]mini/i,rates:{input:.25,output:2,cacheRead:.025,cacheWrite:0}},{match:/^gpt[-_]5[-_.]1(?!\d)/i,rates:{input:1.25,output:10,cacheRead:.125,cacheWrite:0}},{match:/^gpt[-_]5[-_]pro\b/i,rates:{input:15,output:120,cacheRead:15,cacheWrite:0}},{match:/^gpt[-_]5[-_]mini/i,rates:{input:.25,output:2,cacheRead:.025,cacheWrite:0}},{match:/^gpt[-_]5[-_]nano/i,rates:{input:.05,output:.4,cacheRead:.005,cacheWrite:0}},{match:/^gpt[-_]5(?![-_.]\d)/i,rates:{input:1.25,output:10,cacheRead:.125,cacheWrite:0}},{match:/^codex[-_]mini/i,rates:{input:1.5,output:6,cacheRead:.375,cacheWrite:0}},{match:/^o1[-_]pro/i,rates:{input:150,output:600,cacheRead:150,cacheWrite:0}},{match:/^o1\b/i,rates:{input:15,output:60,cacheRead:7.5,cacheWrite:0}},{match:/^o3[-_]mini/i,rates:{input:1.1,output:4.4,cacheRead:.55,cacheWrite:0}},{match:/^o3[-_]pro/i,rates:{input:20,output:80,cacheRead:20,cacheWrite:0}},{match:/^o4[-_]mini/i,rates:{input:1.1,output:4.4,cacheRead:.275,cacheWrite:0}},{match:/^o3\b/i,rates:{input:2,output:8,cacheRead:.5,cacheWrite:0}}];function kP(e){return e?/^(?:gpt[-_]|codex[-_]|o\d)/i.test(e):!1}function fo(e,n=Date.now()){if(!e)return null;for(const r of SP)if(r.match.test(e))return typeof r.rates=="function"?r.rates(n):r.rates;return null}function gC(e,n){const r=Math.max(0,e.cacheCreate1hTokens??0),i=Math.max(0,e.cacheCreate5mTokens??0),o=Math.max(0,e.cacheCreateTokens-r-i),l=i+o,u=n.cacheWrite1h??n.cacheWrite;return{tokens5m:l,tokens1h:r,usd5m:l*n.cacheWrite/1e6,usd1h:r*u/1e6}}function vC(e,n,r=Date.now()){if(!kP(n))return e.inputTokens;const i=fo(n,r),o=((i==null?void 0:i.cacheWrite)??0)>0?Math.max(0,e.cacheCreateTokens):0;return Math.max(0,e.inputTokens-e.cacheReadTokens-o)}function dn(e,n,r=Date.now()){const i=fo(n,r);if(!i)return{input:0,output:0,cacheRead:0,cacheWrite:0,total:0};const o=vC(e,n,r)*i.input/1e6,l=e.outputTokens*i.output/1e6,u=e.cacheReadTokens*i.cacheRead/1e6,c=gC(e,i),h=c.usd5m+c.usd1h;return{input:o,output:l,cacheRead:u,cacheWrite:h,total:o+l+u+h}}const Dx=2e5,EP=1e6,NP=[/\[1m\]/i,/^claude[-_]opus[-_]5\b/i,/^claude[-_]sonnet[-_]5\b/i,/^claude[-_]opus[-_]4[-_.](?:5|6|7|8)\b/i,/^claude[-_]sonnet[-_]4[-_.]6\b/i,/^claude[-_](fable|mythos)[-_]5\b/i],CP=[{match:/^gpt[-_]5[-_.]6[-_]cyber/i,window:4e5},{match:/^gpt[-_]5[-_.]6/i,window:105e4},{match:/^gpt[-_]5[-_.]5/i,window:105e4},{match:/^gpt[-_]5[-_.]4[-_](?:mini|nano)/i,window:4e5},{match:/^gpt[-_]5[-_.]4/i,window:105e4},{match:/^gpt[-_]5[-_.]3[-_]codex[-_]spark/i,window:128e3},{match:/^gpt[-_]5[-_.]3[-_]codex/i,window:4e5},{match:/^gpt[-_]5[-_.]2/i,window:4e5},{match:/^gpt[-_]5/i,window:4e5},{match:/^codex[-_]mini/i,window:2e5},{match:/^o\d/i,window:2e5}];function RP(e){if(!e)return Dx;for(const n of NP)if(n.test(e))return EP;for(const n of CP)if(n.match.test(e))return n.window;return Dx}function yC(e,n){return typeof e=="number"&&e>0?e:RP(n)}const fu="not priced";function De(e){if(e<=0)return"—";if(e<.005)return"<1¢";if(e<1){const n=(e*100).toFixed(e<.1?1:0);if(Number(n)<100)return`${n}¢`}return e<100?`$${e.toFixed(2)}`:e<1e4?`$${e.toFixed(0)}`:`$${(e/1e3).toFixed(1)}k`}function ku(e,n){if(e<=0||n<10)return null;const r=e/n,i=r*60;return i>=.01?`${De(i)}/min`:`${De(r*3600)}/hr`}const TP=new Set(["untrusted","on-request","on-failure"]);function jP(e){return typeof e!="string"||!e?null:TP.has(e)?!0:e==="never"?!1:null}function AP(e){if(e.provider!=="codex"||e.kind!=="root"||e.waiting||e.state!=="active")return null;const n=jP(e.approvalPolicy);return n===!1?null:{label:"approvals not visible",detail:`${n===!0?`This session's approval policy is "${e.approvalPolicy}", so Codex can stop and ask you to approve a command.`:"This session's approval policy has not been read yet, so it may be able to stop and ask you to approve a command."}
58
58
 
59
- Codex writes no approval request to its rollout files, which are the only thing this deck can read — so when it does ask, this card, the sidebar, the topbar count, the tab title and the favicon will all stay silent. Check the terminal.`}}const IP=1;function MP(){const e=[];let n=0;function r(){let i;for(const o of e)(!i||o.layer>i.layer||o.layer===i.layer&&o.seq>i.seq)&&(i=o);return i}return{push(i,o=0){const l={dismiss:i,layer:o,seq:n++};return e.push(l),()=>{const u=e.indexOf(l);u!==-1&&e.splice(u,1)}},dismissTop(){const i=r();return i?(i.dismiss(),!0):!1},isTop(i){const o=r();return o!=null&&o.dismiss===i},depth(){return e.length}}}const Eu=MP();function OP(e){return e.overlayOpen?"dismiss":e.typing?"blur":"clear-selection"}function Fx(e){return String(e.tagName??"").toUpperCase()==="BODY"}function PP(e,n){return!e||!e.isConnected||Fx(e)?!1:n==null||Fx(n)}const zx="a[href], button, input, select, textarea, [tabindex]";function LP(e){return!e||e.disabled||e.rendered===!1?!1:(e.tabIndex??0)>=0}function $P(e){if(!e||!e.overflowing||e.hasFocusable)return!1;const n=String(e.overflow??"").toLowerCase();return n==="auto"||n==="scroll"}function qP({count:e,index:n,shiftKey:r}){return e<=0?{kind:"hold"}:n<0||n>=e?{kind:"focus",index:r?e-1:0}:!r&&n===e-1?{kind:"focus",index:0}:r&&n===0?{kind:"focus",index:e-1}:{kind:"allow"}}function wC(e){return e.ctrlKey||e.metaKey||e.altKey}const DP=new Set(["button","checkbox","color","file","image","radio","range","reset","submit"]),FP=new Set(["INPUT","TEXTAREA","SELECT","OPTION","BUTTON","SUMMARY","A"]),zP=new Set(["button","checkbox","combobox","link","listbox","menu","menubar","menuitem","menuitemcheckbox","menuitemradio","option","radio","searchbox","slider","spinbutton","switch","tab","textbox","treeitem"]);function xC(e){return typeof e.tagName=="string"?e.tagName.toUpperCase():""}function ny(e){if(!e)return!1;if(e.isContentEditable)return!0;const n=xC(e);return n==="TEXTAREA"?!0:n!=="INPUT"?!1:!DP.has(String(e.type??"text").toLowerCase())}function BP(e){if(!e)return!1;if(ny(e)||FP.has(xC(e)))return!0;const n=typeof e.role=="string"?e.role.trim().toLowerCase():"";return n!==""&&n.split(/\s+/).some(r=>zP.has(r))}function _C(e){return e?Array.from(e.querySelectorAll("*")).filter(n=>{if(n.matches(zx))return LP({disabled:n.disabled,tabIndex:n.tabIndex,rendered:n.getClientRects().length>0});const r=n.scrollHeight>n.clientHeight;return r&&$P({overflowing:r,overflow:getComputedStyle(n).overflowY,hasFocusable:n.querySelector(zx)!=null})}):[]}function UP(e,n){const r=_C(e);if(!n||!e.contains(n)||r.includes(n))return r;const i=r.findIndex(o=>(n.compareDocumentPosition(o)&Node.DOCUMENT_POSITION_FOLLOWING)!==0);return i===-1?[...r,n]:[...r.slice(0,i),n,...r.slice(i)]}function mo(e,n={}){const{focusRef:r,layer:i}=n,o=j.useRef(null),l=j.useRef(e);l.current=e;const u=j.useRef(null);u.current===null&&(u.current=()=>l.current());const c=u.current;return j.useEffect(()=>Eu.push(c,i),[c,i]),j.useEffect(()=>{var p;const h=document.activeElement;return(p=(r==null?void 0:r.current)??_C(o.current)[0])==null||p.focus(),()=>{PP(h,document.activeElement)&&h.focus()}},[]),j.useEffect(()=>{const h=p=>{var _;if(p.key!=="Tab"||wC(p))return;const d=o.current;if(!d)return;const m=document.activeElement;if(!(m!=null&&d.contains(m))&&!Eu.isTop(c))return;const w=UP(d,m),N=qP({count:w.length,index:m?w.indexOf(m):-1,shiftKey:p.shiftKey});N.kind!=="allow"&&(p.preventDefault(),N.kind==="focus"&&((_=w[N.index])==null||_.focus()))};return window.addEventListener("keydown",h),()=>window.removeEventListener("keydown",h)},[c]),o}function Pn(e){return e.toLocaleString()}function HP(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/1024/1024).toFixed(2)} MB`}const WP=60;function VP(e,n=WP){if(e.length<=n)return e;const r=e.slice(e.length-(n-1)),i=r.search(/[/\\]/);return"…"+(i===-1?r:r.slice(i))}function GP({agent:e,onClose:n}){var m;const r=j.useRef(null),i=mo(n,{focusRef:r}),o=e.context,l=e.usage,u=(o==null?void 0:o.currentContextTokens)??0,c=yC(e.contextWindow,e.model),h=Math.min(100,u/c*100),p=dn(l,e.model),d=l.inputTokens+l.cacheReadTokens+l.cacheCreateTokens;return g.jsx("div",{className:"ctx-modal-backdrop",onClick:n,role:"presentation",children:g.jsxs("div",{ref:i,className:"ctx-modal",onClick:y=>y.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":"Context breakdown",children:[g.jsxs("header",{className:"ctx-modal-head",children:[g.jsxs("div",{children:[g.jsxs("div",{className:"ctx-modal-title",children:["Context · ",e.label]}),g.jsx("div",{className:"ctx-modal-sub",children:"approximation — CC's /context isn't hook-exposed"})]}),g.jsx("button",{type:"button",ref:r,className:"ctx-modal-close",onClick:n,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})]}),g.jsxs("section",{className:"ctx-window-row",children:[g.jsx("div",{className:"ctx-window-bar",role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(h),children:g.jsx("div",{className:"ctx-window-fill",style:{width:`${h}%`}})}),g.jsxs("div",{className:"ctx-window-meta",children:[g.jsxs("span",{className:"ctx-window-pct",children:[h.toFixed(1),"%"]}),g.jsxs("span",{children:[Pn(u)," / ",Pn(c)," tok (current turn)"]})]})]}),g.jsx("h3",{className:"ctx-section-title",children:"Cumulative usage · whole session"}),g.jsxs("div",{className:"ctx-grid",children:[g.jsx(Zn,{label:"input tokens",val:Pn(l.inputTokens)}),g.jsx(Zn,{label:"output tokens",val:Pn(l.outputTokens)}),g.jsx(Zn,{label:"cache reads",val:Pn(l.cacheReadTokens)}),g.jsx(Zn,{label:"cache writes",val:Pn(l.cacheCreateTokens)}),g.jsx(Zn,{label:"cumulative total",val:Pn(d)}),g.jsx(Zn,{label:"estimated cost",val:De(p.total),accent:!0})]}),g.jsx("h3",{className:"ctx-section-title",children:"Transcript composition"}),g.jsxs("div",{className:"ctx-grid",children:[g.jsx(Zn,{label:"user messages",val:Pn((o==null?void 0:o.msgsUser)??0)}),g.jsx(Zn,{label:"assistant messages",val:Pn((o==null?void 0:o.msgsAssistant)??0)}),g.jsx(Zn,{label:"tool uses",val:Pn((o==null?void 0:o.toolUses)??0)}),g.jsx(Zn,{label:"tool results",val:Pn((o==null?void 0:o.toolResults)??0)}),g.jsx(Zn,{label:"system-reminders",val:Pn((o==null?void 0:o.systemReminders)??0)})]}),g.jsx("h3",{className:"ctx-section-title",children:"CLAUDE.md files in scope"}),(((m=o==null?void 0:o.claudeMdFiles)==null?void 0:m.length)??0)===0?g.jsx("div",{className:"ctx-empty",children:"No CLAUDE.md files found on the path from cwd to ~/.claude."}):g.jsx("ul",{className:"ctx-md-list",children:o.claudeMdFiles.map(y=>g.jsxs("li",{children:[g.jsx("span",{className:"ctx-md-path",title:y.path,children:VP(y.path)}),g.jsx("span",{className:"ctx-md-size",children:HP(y.bytes)})]},y.path))})]})})}function Zn({label:e,val:n,accent:r}){return g.jsxs("div",{className:`ctx-row${r?" accent":""}`,children:[g.jsx("span",{className:"ctx-row-label",children:e}),g.jsx("span",{className:"ctx-row-val",children:n})]})}function YP({currentContextTokens:e,modelId:n,contextWindow:r,size:i=26,onClick:o,title:l}){const u=yC(r,n),c=Math.min(1,e/u),h=i/2-3,p=i/2,d=2*Math.PI*h,m=d*c,y=c>.9?"var(--err)":c>.7?"var(--inflight)":"var(--accent)";return g.jsx("button",{type:"button",className:"ctx-donut",onClick:o,title:l??`context: ${e.toLocaleString()} / ${u.toLocaleString()} (${(c*100).toFixed(1)}%)`,"aria-label":"Show context breakdown",children:g.jsxs("svg",{width:i,height:i,viewBox:`0 0 ${i} ${i}`,children:[g.jsx("circle",{cx:p,cy:p,r:h,stroke:"var(--line)",strokeWidth:"2.5",fill:"none"}),g.jsx("circle",{cx:p,cy:p,r:h,stroke:y,strokeWidth:"2.5",fill:"none",strokeDasharray:`${m} ${d-m}`,strokeDashoffset:d/4,strokeLinecap:"round",style:{transition:"stroke-dasharray 400ms ease"}}),g.jsx("text",{x:p,y:p+3,textAnchor:"middle",fontSize:"8",fill:"var(--text)",fontWeight:"600",children:Math.round(c*100)})]})})}function Bx(e,n){const r=fo(n);if(!r)return`model: ${n}
59
+ Codex writes no approval request to its rollout files, which are the only thing this deck can read — so when it does ask, this card, the sidebar, the topbar count, the tab title and the favicon will all stay silent. Check the terminal.`}}const IP=1;function MP(){const e=[];let n=0;function r(){let i;for(const o of e)(!i||o.layer>i.layer||o.layer===i.layer&&o.seq>i.seq)&&(i=o);return i}return{push(i,o=0){const l={dismiss:i,layer:o,seq:n++};return e.push(l),()=>{const u=e.indexOf(l);u!==-1&&e.splice(u,1)}},dismissTop(){const i=r();return i?(i.dismiss(),!0):!1},isTop(i){const o=r();return o!=null&&o.dismiss===i},depth(){return e.length}}}const Eu=MP();function OP(e){return e.overlayOpen?"dismiss":e.typing?"blur":"clear-selection"}function Fx(e){return String(e.tagName??"").toUpperCase()==="BODY"}function PP(e,n){return!e||!e.isConnected||Fx(e)?!1:n==null||Fx(n)}const zx="a[href], button, input, select, textarea, [tabindex]";function LP(e){return!e||e.disabled||e.rendered===!1?!1:(e.tabIndex??0)>=0}function $P(e){if(!e||!e.overflowing||e.hasFocusable)return!1;const n=String(e.overflow??"").toLowerCase();return n==="auto"||n==="scroll"}function qP({count:e,index:n,shiftKey:r}){return e<=0?{kind:"hold"}:n<0||n>=e?{kind:"focus",index:r?e-1:0}:!r&&n===e-1?{kind:"focus",index:0}:r&&n===0?{kind:"focus",index:e-1}:{kind:"allow"}}function wC(e){return e.ctrlKey||e.metaKey||e.altKey}const DP=new Set(["button","checkbox","color","file","image","radio","range","reset","submit"]),FP=new Set(["INPUT","TEXTAREA","SELECT","OPTION","BUTTON","SUMMARY","A"]),zP=new Set(["button","checkbox","combobox","link","listbox","menu","menubar","menuitem","menuitemcheckbox","menuitemradio","option","radio","searchbox","slider","spinbutton","switch","tab","textbox","treeitem"]);function xC(e){return typeof e.tagName=="string"?e.tagName.toUpperCase():""}function ny(e){if(!e)return!1;if(e.isContentEditable)return!0;const n=xC(e);return n==="TEXTAREA"?!0:n!=="INPUT"?!1:!DP.has(String(e.type??"text").toLowerCase())}function BP(e){if(!e)return!1;if(ny(e)||FP.has(xC(e)))return!0;const n=typeof e.role=="string"?e.role.trim().toLowerCase():"";return n!==""&&n.split(/\s+/).some(r=>zP.has(r))}function _C(e){return e?Array.from(e.querySelectorAll("*")).filter(n=>{if(n.matches(zx))return LP({disabled:n.disabled,tabIndex:n.tabIndex,rendered:n.getClientRects().length>0});const r=n.scrollHeight>n.clientHeight;return r&&$P({overflowing:r,overflow:getComputedStyle(n).overflowY,hasFocusable:n.querySelector(zx)!=null})}):[]}function UP(e,n){const r=_C(e);if(!n||!e.contains(n)||r.includes(n))return r;const i=r.findIndex(o=>(n.compareDocumentPosition(o)&Node.DOCUMENT_POSITION_FOLLOWING)!==0);return i===-1?[...r,n]:[...r.slice(0,i),n,...r.slice(i)]}function mo(e,n={}){const{focusRef:r,layer:i}=n,o=j.useRef(null),l=j.useRef(e);l.current=e;const u=j.useRef(null);u.current===null&&(u.current=()=>l.current());const c=u.current;return j.useEffect(()=>Eu.push(c,i),[c,i]),j.useEffect(()=>{var p;const h=document.activeElement;return(p=(r==null?void 0:r.current)??_C(o.current)[0])==null||p.focus(),()=>{PP(h,document.activeElement)&&h.focus()}},[]),j.useEffect(()=>{const h=p=>{var _;if(p.key!=="Tab"||wC(p))return;const d=o.current;if(!d)return;const m=document.activeElement;if(!(m!=null&&d.contains(m))&&!Eu.isTop(c))return;const w=UP(d,m),N=qP({count:w.length,index:m?w.indexOf(m):-1,shiftKey:p.shiftKey});N.kind!=="allow"&&(p.preventDefault(),N.kind==="focus"&&((_=w[N.index])==null||_.focus()))};return window.addEventListener("keydown",h),()=>window.removeEventListener("keydown",h)},[c]),o}function Pn(e){return e.toLocaleString()}function HP(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/1024/1024).toFixed(2)} MB`}const WP=60;function VP(e,n=WP){if(e.length<=n)return e;const r=e.slice(e.length-(n-1)),i=r.search(/[/\\]/);return"…"+(i===-1?r:r.slice(i))}function GP({agent:e,onClose:n}){var m;const r=j.useRef(null),i=mo(n,{focusRef:r}),o=e.context,l=e.usage,u=(o==null?void 0:o.currentContextTokens)??0,c=yC(e.contextWindow,e.model),h=Math.min(100,u/c*100),p=dn(l,e.model),d=l.inputTokens+l.cacheReadTokens+l.cacheCreateTokens;return g.jsx("div",{className:"ctx-modal-backdrop",onClick:n,role:"presentation",children:g.jsxs("div",{ref:i,className:"ctx-modal",onClick:y=>y.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":"Context breakdown",children:[g.jsxs("header",{className:"ctx-modal-head",children:[g.jsxs("div",{children:[g.jsxs("div",{className:"ctx-modal-title",children:["Context · ",e.label]}),g.jsx("div",{className:"ctx-modal-sub",children:"approximation — CC's /context isn't hook-exposed"})]}),g.jsx("button",{type:"button",ref:r,className:"ctx-modal-close",onClick:n,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})]}),g.jsxs("section",{className:"ctx-window-row",children:[g.jsx("div",{className:"ctx-window-bar",role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(h),children:g.jsx("div",{className:"ctx-window-fill",style:{width:`${h}%`}})}),g.jsxs("div",{className:"ctx-window-meta",children:[g.jsxs("span",{className:"ctx-window-pct",children:[h.toFixed(1),"%"]}),g.jsxs("span",{children:[Pn(u)," / ",Pn(c)," tok (current turn)"]})]})]}),g.jsx("h3",{className:"ctx-section-title",children:"Cumulative usage · whole session"}),g.jsxs("div",{className:"ctx-grid",children:[g.jsx(Zn,{label:"input tokens",val:Pn(l.inputTokens)}),g.jsx(Zn,{label:"output tokens",val:Pn(l.outputTokens)}),g.jsx(Zn,{label:"cache reads",val:Pn(l.cacheReadTokens)}),g.jsx(Zn,{label:"cache writes",val:Pn(l.cacheCreateTokens)}),g.jsx(Zn,{label:"cumulative total",val:Pn(d)}),g.jsx(Zn,{label:"estimated cost",val:De(p.total),accent:!0})]}),g.jsx("h3",{className:"ctx-section-title",children:"Transcript composition"}),g.jsxs("div",{className:"ctx-grid",children:[g.jsx(Zn,{label:"user messages",val:Pn((o==null?void 0:o.msgsUser)??0)}),g.jsx(Zn,{label:"assistant messages",val:Pn((o==null?void 0:o.msgsAssistant)??0)}),g.jsx(Zn,{label:"tool uses",val:Pn((o==null?void 0:o.toolUses)??0)}),g.jsx(Zn,{label:"tool results",val:Pn((o==null?void 0:o.toolResults)??0)}),g.jsx(Zn,{label:"system-reminders",val:Pn((o==null?void 0:o.systemReminders)??0)})]}),g.jsx("h3",{className:"ctx-section-title",children:"CLAUDE.md files in scope"}),(((m=o==null?void 0:o.claudeMdFiles)==null?void 0:m.length)??0)===0?g.jsx("div",{className:"ctx-empty",children:"No CLAUDE.md files found on the path from cwd to ~/.claude."}):g.jsx("ul",{className:"ctx-md-list",children:o.claudeMdFiles.map(y=>g.jsxs("li",{children:[g.jsx("span",{className:"ctx-md-path",title:y.path,children:VP(y.path)}),g.jsx("span",{className:"ctx-md-size",children:HP(y.bytes)})]},y.path))})]})})}function Zn({label:e,val:n,accent:r}){return g.jsxs("div",{className:`ctx-row${r?" accent":""}`,children:[g.jsx("span",{className:"ctx-row-label",children:e}),g.jsx("span",{className:"ctx-row-val",children:n})]})}function YP({currentContextTokens:e,modelId:n,contextWindow:r,size:i=26,onClick:o,title:l}){const u=yC(r,n),c=Math.min(1,e/u),h=i/2-3,p=i/2,d=2*Math.PI*h,m=d*c,y=c>.9?"var(--err)":c>.7?"var(--inflight)":"var(--accent)";return g.jsx("button",{type:"button",className:"ctx-donut",onClick:o,title:l??`context: ${e.toLocaleString()} / ${u.toLocaleString()} (${(c*100).toFixed(1)}%)`,"aria-label":"Show context breakdown",children:g.jsxs("svg",{width:i,height:i,viewBox:`0 0 ${i} ${i}`,children:[g.jsx("circle",{cx:p,cy:p,r:h,stroke:"var(--line)",strokeWidth:"2.5",fill:"none"}),g.jsx("circle",{cx:p,cy:p,r:h,stroke:y,strokeWidth:"2.5",fill:"none",strokeDasharray:`${m} ${d-m}`,strokeDashoffset:d/4,strokeLinecap:"round",style:{transition:"var(--ctx-arc-transition)"}}),g.jsx("text",{x:p,y:p+3,textAnchor:"middle",fontSize:"8",fill:"var(--text)",fontWeight:"600",children:Math.round(c*100)})]})})}function Bx(e,n){const r=fo(n);if(!r)return`model: ${n}
60
60
  no published rate in this build — the tokens are counted, the dollars are not`;const i=d=>d.toLocaleString(),o=d=>`$${d}/MTok`,l=dn(e,n),u=gC(e,r),c=u.tokens1h>0?[`cache w5m${i(u.tokens5m).padStart(14)} × ${o(r.cacheWrite).padEnd(11)} = ${De(u.usd5m)}`,`cache w1h${i(u.tokens1h).padStart(14)} × ${o(r.cacheWrite1h??r.cacheWrite).padEnd(11)} = ${De(u.usd1h)}`]:[`cache w ${i(u.tokens5m).padStart(14)} × ${o(r.cacheWrite).padEnd(11)} = ${De(u.usd5m)}`],h=vC(e,n),p=h===e.inputTokens?"input":"uncached";return[`model: ${n}`,`${p.padEnd(9)}${i(h).padStart(14)} × ${o(r.input).padEnd(11)} = ${De(l.input)}`,`output ${i(e.outputTokens).padStart(14)} × ${o(r.output).padEnd(11)} = ${De(l.output)}`,`cache r ${i(e.cacheReadTokens).padStart(14)} × ${o(r.cacheRead).padEnd(11)} = ${De(l.cacheRead)}`,...c,"─────────────────────────────────────────",`total = ${De(l.total)}`].join(`
61
61
  `)}function Rv(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 KP({data:e,selected:n}){var h;const r=e.now??Date.now(),i=["agent-node",`state-${e.state}`,e.synthetic?"synthetic":"",n?"selected":""].filter(Boolean).join(" "),o=e.tools.filter(p=>!p.endedAt).length,l=ty(e.sessionId),u=((h=e.context)==null?void 0:h.currentContextTokens)??0,c=e.kind==="root"&&u>0;return g.jsxs("div",{className:i,style:{"--session-hue":l},children:[g.jsx("span",{className:"accent-stripe"}),g.jsx(co,{type:"target",position:Ae.Left,style:{background:"transparent",border:"none"}}),g.jsxs("div",{className:"head",children:[g.jsxs("div",{className:"title",children:[g.jsx(XP,{state:e.state}),g.jsx("span",{className:"label",title:e.cwd,children:e.label}),e.synthetic&&g.jsx("span",{className:"synth-tag",title:"No SessionStart captured — synthesised",children:"?"})]}),g.jsxs("div",{className:"head-right",children:[c&&e.onOpenContext&&g.jsx(YP,{currentContextTokens:u,modelId:e.model,contextWindow:e.contextWindow,onClick:()=>e.onOpenContext(e.sessionId)}),g.jsx("div",{className:"time",title:`Started ${new Date(e.startedAt).toLocaleTimeString()}`,children:Rv(e.startedAt,e.endedAt,r)})]})]}),g.jsxs("div",{className:"sub",children:[e.kind==="root"?"session":"subagent",e.childCount>0&&g.jsxs("span",{className:"spawn-badge",title:`${e.childCount} subagents spawned`,children:["→ ",e.childCount]}),e.cwdBasename&&e.kind==="subagent"?` · ${e.cwdBasename}`:"",e.model&&g.jsx("span",{className:"model-chip",title:e.model,children:Ns(e.model)})]}),e.waiting&&g.jsx(ZP,{waiting:e.waiting,now:r}),(()=>{const p=AP(e);return p?g.jsxs("div",{className:"approval-blind-row",title:p.detail,children:[g.jsx("span",{className:"approval-blind-dot","aria-hidden":!0}),g.jsx("span",{className:"approval-blind-said",children:p.label})]}):null})(),e.tools.length>0&&g.jsx(eL,{tools:e.tools,now:r}),g.jsxs("div",{className:"meta",children:[g.jsxs("span",{children:[g.jsx("b",{children:e.toolCount})," tools"]}),o>0&&g.jsxs("span",{className:"inflight-meta",children:[g.jsx("b",{children:o})," in-flight"]}),e.usage.inputTokens+e.usage.outputTokens>0&&g.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:[g.jsx("b",{children:JP(e.usage.inputTokens+e.usage.outputTokens)})," tok"]}),e.model&&(()=>{if(!fo(e.model))return e.usage.inputTokens+e.usage.outputTokens<=0?null:g.jsx("span",{className:"cost-unpriced",title:Bx(e.usage,e.model),children:fu});const d=dn(e.usage,e.model);if(d.total<=0)return null;const m=Math.max(0,((e.endedAt??r)-e.startedAt)/1e3),y=e.state==="active"?ku(d.total,m):null,w=Bx(e.usage,e.model)+(y?`
62
62
  burn: ${y}`:"");return g.jsxs("span",{className:"cost-meta",title:w,children:[g.jsx("b",{children:De(d.total)}),y&&g.jsx("span",{className:"cost-rate",children:y})]})})()]}),g.jsx(co,{type:"source",position:Ae.Right,style:{background:"transparent",border:"none"}})]})}function ry(e){return e==="active"?"live":e==="done"?"done":"err"}function XP({state:e}){return g.jsx("span",{className:`state-pill state-${e}`,children:ry(e)})}function Pu(e){return e.message?e.message:e.kind==="permission"?"Needs your permission":"Waiting for your input"}function QP(e){return e.kind==="permission"?Pu(e):"Your turn"}function ZP({waiting:e,now:n}){const r=e.kind==="permission",i=Pu(e);return g.jsxs("div",{className:r?"waiting-row permission":"waiting-row idle",title:`${i}
63
63
  Blocked for ${Rv(e.since,void 0,n)} — the answer goes in the terminal, not here.`,children:[r?g.jsx("span",{className:"ap-pulse","aria-hidden":!0}):g.jsx("span",{className:"waiting-dot","aria-hidden":!0}),g.jsx("span",{className:"waiting-said",children:QP(e)}),g.jsx("b",{children:Rv(e.since,void 0,n)})]})}function JP(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}function eL({tools:e,now:n}){const l=new Array(24).fill(0);let u=0;for(const y of e){const w=n-y.startedAt;if(w<0||w>=6e4)continue;const N=23-Math.floor(w/2500);N>=0&&N<24&&(l[N]+=1,u+=1)}const c=Math.max(1,...l),h=132,p=14,d=h/24,m=c/(2500/1e3);return g.jsxs("div",{className:"tool-spark-row",title:`${u} tool calls in last 60s · peak ${m.toFixed(1)}/s`,children:[g.jsx("svg",{className:"tool-spark",width:h,height:p,viewBox:`0 0 ${h} ${p}`,"aria-hidden":!0,children:l.map((y,w)=>{const N=y===0?1.5:Math.max(1.5,y/c*p),_=w===23&&y>0,S=`tool-spark-bar${y>0?" active":""}${_?" latest":""}`;return g.jsx("rect",{x:w*d+.4,y:p-N,width:Math.max(.5,d-1),height:N,rx:.8,className:S},w)})}),g.jsx("span",{className:"tool-spark-label",children:"60s"})]})}function Ns(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 Ux(e){if(e==null)return"(none)";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function tL(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 nL({tool:e,onClose:n}){const r=mo(n),i=e.endedAt==null?"inflight":e.ok===!1?"err":"done";return g.jsx("div",{className:"modal-backdrop",onClick:n,role:"presentation",children:g.jsxs("div",{ref:r,className:"modal",onClick:o=>o.stopPropagation(),role:"dialog","aria-modal":"true","aria-labelledby":"tool-modal-title",children:[g.jsxs("header",{className:"modal-head",children:[g.jsxs("div",{className:"modal-title",children:[g.jsx("span",{className:`status-dot ${i}`,"aria-hidden":!0}),g.jsx("span",{id:"tool-modal-title",className:"modal-tool-name",children:e.name}),g.jsxs("span",{className:"modal-tool-id",title:e.id,children:[e.id.slice(0,12),"…"]})]}),g.jsxs("div",{className:"modal-actions",children:[g.jsx("span",{className:"modal-dur",children:tL(e)}),g.jsx("button",{className:"btn icon-btn",onClick:n,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})]})]}),g.jsxs("section",{className:"modal-body",children:[e.trimmed&&g.jsx("div",{className:"modal-section",children:g.jsx("p",{className:"modal-note",children:"Full payloads for this call were released to keep memory bounded — only the previews below are still held."})}),g.jsxs("div",{className:"modal-section",children:[g.jsx("h4",{children:"Input"}),g.jsx("pre",{children:Ux(e.input??e.inputPreview)})]}),g.jsxs("div",{className:"modal-section",children:[g.jsxs("h4",{children:["Response ",i==="err"&&g.jsx("span",{className:"err-tag",children:"error"})]}),g.jsx("pre",{children:e.endedAt==null?"(waiting…)":Ux(e.response??e.errorPreview)})]})]})]})})}const tu=18,Hx=26,rL=12;function sL(e){return iL(e.nodeInternals.values())}function iL(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,h=u+o.width,p=c+o.height,d=n.get(l.sessionId);d?(d.minX=Math.min(d.minX,u),d.minY=Math.min(d.minY,c),d.maxX=Math.max(d.maxX,h),d.maxY=Math.max(d.maxY,p),l.kind==="root"&&(d.label=Wx(l)??d.label)):n.set(l.sessionId,{minX:u,minY:c,maxX:h,maxY:p,label:Wx(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} · ${oL(o)}`:l.label;i.push({sessionId:o,label:c,x:l.minX-tu,y:l.minY-tu-Hx,w:l.maxX-l.minX+tu*2,h:l.maxY-l.minY+tu*2+Hx})}return i}function oL(e){const n=e.match(/[a-zA-Z0-9]{4}/);return n?n[0]:e.slice(0,4)}function Wx(e){if(e.kind==="root")return e.label}function aL(){const{x:e,y:n,zoom:r}=oC(),i=Ra(),o=Ke(sL,lL);if(o.length<=1)return null;const l=u=>{try{const c=i.getNodes().filter(h=>{const p=h.data;return(p==null?void 0:p.sessionId)===u});if(c.length===0)return;i.fitView({padding:.3,duration:500,nodes:c})}catch{}};return g.jsx("div",{className:"session-clusters",children:o.map(u=>{const c=ty(u.sessionId),h={position:"absolute",left:u.x*r+e,top:u.y*r+n,width:u.w*r,height:u.h*r,"--session-hue":c},p={position:"absolute",left:u.x*r+e+16*r,top:(u.y-rL)*r+n,transform:`scale(${Math.min(1,r)})`,transformOrigin:"left top","--session-hue":c};return g.jsxs(ue.Fragment,{children:[g.jsx("div",{className:"cluster-card",style:h,"aria-hidden":!0}),g.jsx("button",{type:"button",className:"cluster-label",style:p,title:`Fit view to ${u.label} · drag the wrapper to move the whole session`,onClick:()=>l(u.sessionId),children:u.label})]},u.sessionId)})})}function lL(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 uL({data:e}){return g.jsx("div",{className:"session-group-handle",style:{width:(e==null?void 0:e.w)??0,height:(e==null?void 0:e.h)??0}})}const ja={exec:{category:"shell",emoji:"⚡",label:"Shell",shell:!0},shell:{category:"shell",emoji:"⚡",label:"Shell",shell:!0},exec_command:{category:"shell",emoji:"⚡",label:"Shell",shell:!0},shell_command:{category:"shell",emoji:"⚡",label:"Shell",shell:!0},write_stdin:{category:"shell",emoji:"💻",label:"stdin",shell:!0},wait:{category:"shell",emoji:"⏳",label:"wait",shell:!0},apply_patch:{category:"file",emoji:"🩹",label:"Edit"},update_plan:{category:"task",emoji:"📋",label:"Plan"},run:{category:"web",emoji:"🌐",label:"Web"}},cL=Object.fromEntries(Object.entries(ja).map(([e,n])=>[e,n.category])),dL=Object.fromEntries(Object.entries(ja).map(([e,n])=>[e,n.emoji])),fL=Object.fromEntries(Object.entries(ja).map(([e,n])=>[e,n.label])),hL=new Set(Object.keys(ja)),pL=new Set(Object.entries(ja).filter(([,e])=>e.shell).map(([e])=>e)),mL={Read:"file",Write:"file",Edit:"file",MultiEdit:"file",Glob:"file",Grep:"file",LS:"file",NotebookEdit:"file",Bash:"shell",PowerShell:"shell",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",...cL};function bC(e){return e.startsWith("mcp__")?"mcp":mL[e]??"other"}const gL=/\btools\.exec_command\s*\(\s*\{[^{}]*?\bcmd\s*:\s*(["'`])((?:\\.|(?!\1)[^\\])*)\1/,vL=/\btools\.([A-Za-z_$][\w$]*)\s*\(/;function yL(e){if(typeof e!="string"||!e)return null;const n=gL.exec(e);if(n){const i=wL(n[2]);if(i.trim())return i}const r=vL.exec(e);return r?r[1]:null}function wL(e){return e.replace(/\\(["'`\\nrt])/g,(n,r)=>r==="n"?`
64
64
  `:r==="r"?"\r":r==="t"?" ":r)}const SC=600,xL=4,_L=36,Tv=16,bL=60,SL=6,Vx=220,Gx=96,kL=28,EL={Read:"📖",Write:"💾",Edit:"✏️",MultiEdit:"🔧",Glob:"🗺️",Grep:"🔎",Bash:"⚡",PowerShell:"💻",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:"📡",...dL};function Yx(e){return e.startsWith("mcp__")?"🔌":EL[e]??"✨"}const NL={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 kC(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 kC(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 CL(e){if(typeof e=="string")return e;if(!e||typeof e!="object")return null;const n=e;if(typeof n.script=="string"){const r=yL(n.script);if(r)return r}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 RL=new Set(["Bash","PowerShell",...pL]),TL=hL;function jL(e,n){return TL.has(e)||e.startsWith("mcp__")?Math.max(Gx,34+n.length*7.5):Gx}function AL(e,n){if(!RL.has(e))return null;const r=CL(n);if(!r)return null;const i=kC(r);return i?{emoji:NL[i]??"⚙️",label:i,category:"shell",detail:r}:null}const IL=new Set(["Read","Write","Edit","MultiEdit","NotebookEdit","LS","Glob","apply_patch"]),Kx={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:"🗄️"},Xx={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 ML(e){const r=e.replace(/\\/g,"/").replace(/\/+$/,""),i=r.lastIndexOf("/");return i>=0?r.slice(i+1):r}function OL(e){const n=e.toLowerCase();if(Xx[n])return Xx[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(Kx[i])return Kx[i]}return"📄"}function PL(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 LL(e,n){if(!IL.has(e))return null;const r=PL(e,n);if(!r)return null;const i=ML(r);return i?{emoji:e==="LS"?"📂":OL(i),label:i,category:"file",detail:r}:null}const EC={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 NC(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 $L(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 qL(e,n){const r=NC(e);if(!r)return null;const{server:i,method:o}=r;if(!o)return null;const l=EC[i.toLowerCase()];return{emoji:(l==null?void 0:l.emoji)??"🔌",label:o,category:"mcp",detail:l?`${l.name} · ${o}`:`${i} · ${o}`}}function DL(e,n){return AL(e,n)??LL(e,n)??qL(e)}const FL=fL;function zL(e){const n=NC(e);if(n){const i=EC[n.server.toLowerCase()];return i?{emoji:i.emoji,label:i.name}:{emoji:"🔌",label:n.server,hue:$L(n.server)}}const r=FL[e];return r?{emoji:Yx(e),label:r}:{emoji:Yx(e),label:e}}function BL(e){return e.endedAt==null?"inflight":e.ok===!1?"err":"done"}function UL(e,n,r){if(r==null)return 1;const i=n-r;return i<0?1:Math.max(0,1-i/SC)}function HL(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 WL(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>SC)continue;const h=i.get(c.id)??r.get(c.id);if(!h)continue;const p=HL(c.tools,xL);if(p.length===0)continue;const d=c.exitAt??null,m=o.get(c.id),y=Math.max((m==null?void 0:m.width)??Vx,Vx),w=(m==null?void 0:m.height)??130,N=h.x,_=h.y,b=N+y,S=_+w/2;p.forEach((k,E)=>{const R=E*_L,I=N+y+bL,O=_+SL+R,A=UL(k,l,d),U=k.inputPreview??"",z=BL(k),P=A<.999,D=zL(k.name);u.push({id:`${c.id}::${k.id}`,toolId:k.id,agentId:c.id,toolName:k.name,name:D.label,emoji:D.emoji,status:z,category:bC(k.name),mcpHue:D.hue,inputPreview:U,fade:A,fading:P,worldX:I,worldY:O,anchorX:b,anchorY:S,spawnDx:b-I,spawnDy:S-(O+Tv)});const V=DL(k.name,k.input);if(V){const B=jL(k.name,D.label),C=I+B+kL,q=O,L=I+B,re=O+Tv;u.push({id:`sub:${c.id}::${k.id}`,toolId:k.id,agentId:c.id,toolName:k.name,name:V.label,emoji:V.emoji,isSub:!0,status:z,category:V.category,inputPreview:V.detail??U,fade:A,fading:P,worldX:C,worldY:q,anchorX:L,anchorY:re,spawnDx:L-C,spawnDy:0})}})}return u}function VL({agents:e,visibleAgentIds:n,positions:r,pinned:i,measured:o,dimUnmatched:l,spotlight:u,hiddenCategories:c,now:h,onOpenTool:p}){const d=WL(e,n,r,i,o,h),m=c&&c.size>0?d.filter(y=>!c.has(y.category)):d;return g.jsx(GL,{bursts:m,dimUnmatched:l,spotlight:u,onOpenTool:p})}function GL({bursts:e,dimUnmatched:n,spotlight:r,onOpenTool:i}){const{x:o,y:l,zoom:u}=oC();return g.jsxs("div",{className:"tool-bursts-layer","aria-hidden":!0,children:[g.jsx("svg",{className:"tool-bursts-svg",children:e.map(c=>{const h=c.anchorX*u+o,p=c.anchorY*u+l,d=(c.worldX+6)*u+o,m=(c.worldY+Tv)*u+l,y=h+(d-h)*.55,w=n!=null&&!n.has(c.agentId),N=r!=null&&!r.has(c.agentId),_=c.fade*(w||N?.14:1);return g.jsx("path",{d:`M ${h} ${p} Q ${y} ${p}, ${d} ${m}`,className:`tool-conn status-${c.status}${c.fading?" fading":""}`,opacity:_},`l:${c.id}`)})}),e.map(c=>{const h=c.worldX*u+o,p=c.worldY*u+l,d={left:`${h}px`,top:`${p}px`,transform:`scale(${u})`,transformOrigin:"left top","--spawn-dx":`${c.spawnDx}px`,"--spawn-dy":`${c.spawnDy}px`},m=c.isSub?`${c.toolName} · ${c.name}`:c.toolName,y=c.inputPreview?`${m} · ${c.inputPreview}`:m,w=i!=null,N=c.mcpHue!=null?{"--mcp-hue":c.mcpHue}:{},_=n!=null&&!n.has(c.agentId),b=r!=null&&!r.has(c.agentId),S=_||b?" dim":"";return g.jsx("div",{className:"tool-burst-wrap",style:d,children:g.jsxs("div",{className:`tool-burst cat-${c.category}${c.mcpHue!=null?" mcp-hue":""} status-${c.status}${c.fading?" fading":""}${w?" clickable":""}${c.isSub?" sub":""}${S}`,style:N,title:y,onClick:w?()=>i(c.toolId):void 0,children:[g.jsx("span",{className:"tb-emoji",children:c.emoji}),g.jsx("span",{className:"tb-name",children:c.name}),c.status==="inflight"&&g.jsx("span",{className:"tb-spin"}),c.status==="done"&&g.jsx("span",{className:"tb-mark done",children:"✓"}),c.status==="err"&&g.jsx("span",{className:"tb-mark err",children:"×"})]})},c.id)})]})}function YL({state:e,sessionId:n,onClose:r}){const i=j.useMemo(()=>XL(e,n),[e,n]),o=j.useRef(null),l=mo(r,{focusRef:o});return i?g.jsx("div",{className:"modal-backdrop",onClick:r,role:"presentation",children:g.jsxs("div",{ref:l,className:"modal session-summary",onClick:u=>u.stopPropagation(),role:"dialog","aria-modal":"true","aria-labelledby":"ss-title",children:[g.jsxs("div",{className:"modal-head",children:[g.jsxs("div",{className:"modal-title",children:[g.jsx("span",{className:"state-pill state-done","aria-hidden":!0,children:"done"}),g.jsx("span",{id:"ss-title",className:"modal-tool-name",title:i.cwd??i.sessionId,children:i.label}),g.jsxs("span",{className:"modal-tool-id",children:["· ",i.sessionId.slice(0,8)]})]}),g.jsxs("div",{className:"modal-actions",children:[g.jsx("span",{className:"modal-dur",title:"Total wall time",children:i.durationLabel}),g.jsx("button",{type:"button",ref:o,className:"btn",onClick:r,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})]})]}),g.jsxs("div",{className:"modal-body",children:[g.jsxs("section",{className:"ss-hero",children:[g.jsxs("div",{className:"ss-hero-left",children:[g.jsx("div",{className:"ss-cost-label",children:"total spend"}),g.jsx("div",{className:"ss-cost",children:De(i.cost.total)}),i.modelChips.length>0&&g.jsx("div",{className:"ss-models",children:i.modelChips.map(u=>g.jsx("span",{className:"model-chip",title:u,children:Ns(u)},u))})]}),g.jsx("div",{className:"ss-hero-right",children:i.cost.total>0&&g.jsxs(g.Fragment,{children:[g.jsx(KL,{cost:i.cost}),g.jsxs("div",{className:"ss-cost-legend",children:[g.jsxs("span",{className:"ssl ssl-in",children:["input ",g.jsx("b",{children:De(i.cost.input)})]}),g.jsxs("span",{className:"ssl ssl-out",children:["output ",g.jsx("b",{children:De(i.cost.output)})]}),g.jsxs("span",{className:"ssl ssl-cr",children:["cache r ",g.jsx("b",{children:De(i.cost.cacheRead)})]}),g.jsxs("span",{className:"ssl ssl-cw",children:["cache w ",g.jsx("b",{children:De(i.cost.cacheWrite)})]})]})]})})]}),g.jsxs("section",{className:"ss-stats",children:[g.jsx(Zi,{label:"agents",value:i.agentCount}),g.jsx(Zi,{label:"subagents",value:i.subagentCount}),g.jsx(Zi,{label:"tool calls",value:i.toolCount}),g.jsx(Zi,{label:"prompts",value:i.promptCount}),g.jsx(Zi,{label:"tokens",value:i.tokensSum.toLocaleString()}),i.errCount>0&&g.jsx(Zi,{label:"errors",value:i.errCount,tone:"err"})]}),i.topTools.length>0&&g.jsxs("section",{className:"modal-section",children:[g.jsx("h4",{children:"Most-used tools"}),g.jsx("div",{className:"ss-top-tools",children:i.topTools.map(([u,c])=>g.jsxs("div",{className:"ss-tt",children:[g.jsx("span",{className:"ss-tt-name",children:u}),g.jsx("span",{className:"ss-tt-bar",children:g.jsx("span",{className:"ss-tt-bar-fill",style:{width:`${c/i.topTools[0][1]*100}%`}})}),g.jsx("span",{className:"ss-tt-count",children:c})]},u))})]}),i.firstPrompt&&g.jsxs("section",{className:"modal-section",children:[g.jsx("h4",{children:"Opening prompt"}),g.jsx("div",{className:"ss-prompt",children:i.firstPrompt})]})]})]})}):null}function Zi({label:e,value:n,tone:r}){return g.jsxs("div",{className:`ss-stat${r?` tone-${r}`:""}`,children:[g.jsx("div",{className:"ss-stat-value",children:n}),g.jsx("div",{className:"ss-stat-label",children:e})]})}function KL({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 g.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${De(i)} (${u.toFixed(0)}%)`},o)};return g.jsxs("div",{className:"cost-bar cost-bar-lg",role:"img","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 XL(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,h=0,p=0,d=0,m=0,y,w=1/0,N=0;for(const E of i){const R=dn(E.usage,E.model);o.input+=R.input,o.output+=R.output,o.cacheRead+=R.cacheRead,o.cacheWrite+=R.cacheWrite,o.total+=R.total,E.model&&l.add(E.model),E.kind==="subagent"&&m++,h+=E.prompts.length,!y&&E.prompts.length>0&&(y=E.prompts[0].text),p+=E.usage.inputTokens+E.usage.outputTokens,c+=E.toolCount,w=Math.min(w,E.startedAt),N=Math.max(N,E.endedAt??Date.now());for(const I of E.tools)u.set(I.name,(u.get(I.name)??0)+1),I.ok===!1&&d++}const _=Math.max(0,N-w),b=Math.floor(_/1e3),S=b<60?`${b}s`:b<3600?`${Math.floor(b/60)}m ${String(b%60).padStart(2,"0")}s`:`${Math.floor(b/3600)}h ${Math.floor(b%3600/60)}m`,k=Array.from(u.entries()).sort((E,R)=>R[1]-E[1]).slice(0,5);return{sessionId:n,label:r.label||r.cwdBasename||"session",cwd:r.cwd,durationLabel:S,cost:o,modelChips:Array.from(l),agentCount:i.length,subagentCount:m,toolCount:c,promptCount:h,tokensSum:p,errCount:d,topTools:k,firstPrompt:y}}function sy(e){return(e==null?void 0:e.kind)==="permission"}function QL(e){const n=[];for(const r of e)r.kind==="root"&&sy(r.waiting)&&n.push({id:r.id,label:r.label,waiting:r.waiting});return n.sort((r,i)=>r.waiting.since-i.waiting.since)}function ZL(e){const n=new Set;for(const r of e)r.state==="active"&&n.add(r.sessionId);return n.size}function Qx(e){return e.waiting?sy(e.waiting)?0:1:e.state==="active"?2:3}function JL(e,n){const r=[];for(const i of e.agents.values()){if(i.kind!=="root")continue;let o=i.toolCount,l=dn(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+=dn(c.usage,c.model).total;const h=c.endedAt??c.startedAt;h>u&&(u=h)}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=Qx(i),u=Qx(o);return l!==u?l-u:i.waiting&&o.waiting?i.waiting.since-o.waiting.since:o.lastActivity-i.lastActivity}),r}function Zx(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 e3({state:e,now:n,selectedIds:r,onSelect:i,onClose:o}){const l=j.useMemo(()=>JL(e),[e,e.lastSeq,n]),u=l.filter(h=>h.state==="active").length,c=l.filter(h=>sy(h.waiting)).length;return g.jsxs("aside",{className:"session-list",id:"session-list","aria-label":"Sessions",children:[g.jsxs("div",{className:"sl-header",children:[g.jsxs("h2",{children:["Sessions ",g.jsx("span",{className:"sl-count",children:l.length})]}),c>0&&g.jsxs("span",{className:"sl-waiting-count",children:[c," waiting"]}),u>0&&g.jsxs("span",{className:"sl-live-count",children:[u," live"]}),g.jsx("button",{className:"btn icon-btn sl-close",onClick:o,title:"Hide sidebar (L)","aria-label":"Hide session list",children:"‹"})]}),g.jsxs("div",{className:"sl-rows",children:[l.length===0&&g.jsx("div",{className:"sl-empty",children:"No sessions yet."}),l.map(h=>{const p=r.has(h.sessionId);return g.jsxs("button",{type:"button",className:`sl-row state-${h.state}${p?" selected":""}`,onClick:()=>i(h.sessionId),title:`Focus ${h.label}`,children:[g.jsx("span",{className:`sl-dot state-${h.state}`,"aria-hidden":!0}),g.jsx("span",{className:"vis-hidden",children:ry(h.state)}),g.jsxs("div",{className:"sl-row-body",children:[g.jsxs("div",{className:"sl-row-head",children:[g.jsx("span",{className:"sl-label",children:h.label}),h.modelId&&g.jsx("span",{className:"model-chip",title:h.modelId,children:Ns(h.modelId)})]}),g.jsxs("div",{className:"sl-row-meta",children:[g.jsxs("span",{title:"tool calls",children:[g.jsx("b",{children:h.toolCount})," tools"]}),h.cost>0&&g.jsx("span",{className:"sl-cost",title:"total spend",children:g.jsx("b",{children:De(h.cost)})}),h.waiting?g.jsxs("span",{className:"sl-waiting",title:`${Pu(h.waiting)}
65
65
  Blocked since ${new Date(h.waiting.since).toLocaleTimeString()} · started ${new Date(h.startedAt).toLocaleString()}`,children:["waiting ",Zx(h.waiting.since,void 0,n)]}):g.jsx("span",{className:"sl-elapsed",title:`Started ${new Date(h.startedAt).toLocaleString()}`,children:Zx(h.startedAt,h.state==="active"?void 0:h.lastActivity,n)})]})]})]},h.sessionId)})]})]})}const en="ccdeck";function qt(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 Jx(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 t3(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"}const Ud="__unknown__";function n3({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 g.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${De(i)} (${u.toFixed(0)}%)`},o)};return g.jsxs("div",{className:"cost-bar",role:"img","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 r3(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 s3(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 h=100-e,p=l>0?e/l:0,d=p>0?h/p:1/0,m={label:`${Math.round(c)}% ahead`,color:"var(--warn)",expectedPct:u,isDeficit:!0};if(d<o&&d<86400){const y=Math.floor(d/3600),w=Math.floor(d%3600/60);m.runsOutIn=y>0?`${y}h ${w}m`:`${w}m`}return m}return{label:`${Math.round(-c)}% reserve`,color:"var(--ok)",expectedPct:u,isDeficit:!1}}function si({pct:e,label:n,reset:r,resetAt:i,windowSec:o,limitReached:l,nowSec:u}){const c=Math.min(100,Math.max(0,e)),p=l||c>=90?"var(--err)":c>=70?"var(--warn)":"var(--accent)",d=c===0?"< 1%":`${c}%`,m=c===0?2:c,y=i?r3(i,u):null,w=i&&o?s3(c,i,o,u):null;return g.jsxs("div",{className:"qb-row",children:[g.jsxs("div",{className:"qb-meta",children:[g.jsxs("span",{className:"qb-label",children:[n,l&&g.jsx("span",{className:"qb-limit-badge",title:"Rate limit reached",children:"⛔"})]}),g.jsx("span",{className:"qb-pct",style:{color:p},children:d})]}),g.jsxs("div",{className:"qb-track",children:[g.jsx("div",{className:"qb-fill",style:{width:`${m}%`,background:p,opacity:c===0?.4:1}}),w&&g.jsx("div",{className:"qb-pace-marker",style:{left:`${w.expectedPct}%`,background:w.isDeficit?"var(--err)":"var(--ok)"},title:`To last until reset, stay near ${Math.round(w.expectedPct)}% by now`})]}),g.jsxs("div",{className:"qb-reset-row",children:[y?g.jsxs("span",{className:"qb-reset",children:["resets in ",y]}):r?g.jsxs("span",{className:"qb-reset",children:["resets ",r]}):null,w&&g.jsx("span",{className:"qb-pace",style:{color:w.color},children:w.runsOutIn?`runs out in ${w.runsOutIn}`:w.label})]})]})}const i3=6e4;function o3(e){const[n,r]=j.useState(null),[i,o]=j.useState(!1),l=j.useRef(null),u=async(h=!1)=>{h&&o(!0);try{const d=await fetch(h?"/api/quota?refresh=1":"/api/quota");d.ok&&r(await d.json())}catch{}finally{h&&o(!1)}};return j.useEffect(()=>{if(e)return u(!0),l.current=window.setInterval(()=>u(!1),i3),()=>{l.current!=null&&window.clearInterval(l.current)}},[e]),{quota:n,loading:i,refresh:()=>{e&&u(!0)}}}function a3(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.";case"untrusted_base_url":return"chatgpt_base_url in ~/.codex/config.toml is not an https OpenAI host, so the token was not sent.";default:return"ChatGPT API unreachable — click ↻ to retry."}}const CC=6e4;function l3(e){const[n,r]=j.useState(null),[i,o]=j.useState(!1),l=j.useRef(null),u=async(h=!1)=>{h&&o(!0);try{const d=await fetch(h?"/api/codex-quota?refresh=1":"/api/codex-quota");d.ok&&r(await d.json())}catch{}finally{h&&o(!1)}};return j.useEffect(()=>{if(e)return u(!0),l.current=window.setInterval(()=>u(!1),CC),()=>{l.current!=null&&window.clearInterval(l.current)}},[e]),{data:n,loading:i,refresh:()=>{e&&u(!0)}}}function u3(e){const[n,r]=j.useState(null),i=j.useRef(null),o=async()=>{try{const l=await fetch("/api/codex-usage");l.ok&&r(await l.json())}catch{}};return j.useEffect(()=>{if(e)return o(),i.current=window.setInterval(o,CC),()=>{i.current!=null&&window.clearInterval(i.current)}},[e]),{data:n}}function c3({state:e,now:n,providers:r,onClose:i}){var V,B;const{quota:o,loading:l,refresh:u}=o3(r.claude),{data:c,loading:h,refresh:p}=l3(r.codex),{data:d}=u3(r.codex),[m,y]=j.useState(()=>Math.floor(Date.now()/1e3));j.useEffect(()=>{const C=window.setInterval(()=>y(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(C)},[]);const{byModel:w,totalCost:N,totalTokens:_,burnRate:b}=j.useMemo(()=>{const C=new Map,q={total:0,input:0,output:0,cacheRead:0,cacheWrite:0};let L=0,re=0,Z=0,H=0;for(const $ of e.agents.values()){const Q=$.model??Ud,ne=dn($.usage,$.model),oe=C.get(Q);oe?(oe.inputTokens+=$.usage.inputTokens,oe.outputTokens+=$.usage.outputTokens,oe.cacheReadTokens+=$.usage.cacheReadTokens,oe.cacheCreateTokens+=$.usage.cacheCreateTokens,oe.cost.total+=ne.total,oe.cost.input+=ne.input,oe.cost.output+=ne.output,oe.cost.cacheRead+=ne.cacheRead,oe.cost.cacheWrite+=ne.cacheWrite,oe.agentCount++):C.set(Q,{model:Q,inputTokens:$.usage.inputTokens,outputTokens:$.usage.outputTokens,cacheReadTokens:$.usage.cacheReadTokens,cacheCreateTokens:$.usage.cacheCreateTokens,cost:{...ne},agentCount:1,priced:fo($.model)!=null}),q.total+=ne.total,q.input+=ne.input,q.output+=ne.output,q.cacheRead+=ne.cacheRead,q.cacheWrite+=ne.cacheWrite,L+=$.usage.inputTokens,re+=$.usage.outputTokens,Z+=$.usage.cacheReadTokens,H+=$.usage.cacheCreateTokens}const J=Array.from(C.values()).sort(($,Q)=>Q.cost.total-$.cost.total||Q.inputTokens+Q.outputTokens-($.inputTokens+$.outputTokens));let M=0,G=0;for(const $ of e.agents.values()){if($.state!=="active")continue;const Q=dn($.usage,$.model);M+=Q.total,G=Math.max(G,(($.endedAt??n)-$.startedAt)/1e3)}const Y=G>0?ku(M,G):null;return{byModel:J,totalCost:q,totalTokens:{in:L,out:re,cacheR:Z,cacheC:H},burnRate:Y}},[e,e.lastSeq,n]),S=j.useMemo(()=>{const C=[],q=L=>fo(L.model)==null?L.usage.inputTokens+L.usage.outputTokens:0;for(const L of e.agents.values()){if(L.kind!=="root")continue;let re=dn(L.usage,L.model).total,Z=L.usage.inputTokens,H=L.usage.outputTokens,J=q(L);for(const M of e.agents.values())M.sessionId!==L.sessionId||M.kind==="root"||(re+=dn(M.usage,M.model).total,Z+=M.usage.inputTokens,H+=M.usage.outputTokens,J+=q(M));C.push({sessionId:L.sessionId,label:L.label||L.cwdBasename||"session",state:L.state,cost:re,inputTokens:Z,outputTokens:H,unpricedTokens:J})}return C.sort((L,re)=>re.cost-L.cost||re.inputTokens+re.outputTokens-(L.inputTokens+L.outputTokens)).slice(0,12)},[e,e.lastSeq]),k=N.total>0,E=_.in+_.out,R=w.filter(C=>C.cost.total>0||C.inputTokens+C.outputTokens>0),I=S.filter(C=>C.cost>0||C.inputTokens+C.outputTokens>0),O=R.some(C=>!C.priced),A=l||h,U=Jx(o==null?void 0:o.fetchedAt,m),z=Jx(c==null?void 0:c.fetchedAt,m),P=()=>{u(),p()},D=r.claude&&r.codex?"Refresh Claude + Codex quota":r.codex?"Refresh Codex quota":"Refresh Claude quota";return g.jsxs("aside",{className:"usage-panel",id:"usage-panel","aria-label":"Usage",children:[g.jsxs("div",{className:"up-header",children:[g.jsx("h2",{children:"Usage"}),b&&g.jsx("span",{className:"up-rate",children:b}),g.jsxs("div",{className:"up-header-right",children:[(r.claude||r.codex)&&g.jsx("button",{type:"button",className:"btn up-refresh-btn",onClick:P,disabled:A,"aria-label":D,title:D,children:A?"…":"↻"}),g.jsx("button",{type:"button",className:"btn icon-btn up-close",onClick:i,"aria-label":"Close usage panel",title:"Close (U)",children:"×"})]})]}),r.claude&&g.jsxs("section",{className:"up-section up-quota-section",children:[g.jsxs("h3",{className:"up-section-title",children:["Claude quota",U&&!l&&g.jsx("span",{className:"up-section-age",title:t3(o==null?void 0:o.source),children:U})]}),o!=null&&o.ok?g.jsxs("div",{className:"up-quota-bars",children:[o.session5hPct!=null&&g.jsx(si,{label:"5-hour window",pct:o.session5hPct,reset:o.session5hReset,resetAt:o.session5hResetAt,windowSec:o.session5hWindowSec,nowSec:m}),o.week7dPct!=null&&g.jsx(si,{label:"7-day window",pct:o.week7dPct,reset:o.week7dReset,resetAt:o.week7dResetAt,windowSec:o.week7dWindowSec,nowSec:m}),o.weekSonnetPct!=null&&g.jsx(si,{label:"Sonnet (7d)",pct:o.weekSonnetPct,nowSec:m}),o.weekOpusPct!=null&&g.jsx(si,{label:"Opus (7d)",pct:o.weekOpusPct,nowSec:m})]}):(o==null?void 0:o.ok)===!1?g.jsxs("div",{className:"up-quota-na",children:[g.jsx("span",{children:"Quota unavailable."}),g.jsxs("span",{className:"up-quota-hint",children:["Run ",g.jsx("code",{children:"/usage"})," in a claude session, then click ↻"]})]}):g.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),r.codex&&g.jsxs("section",{className:"up-section up-quota-section",children:[g.jsxs("h3",{className:"up-section-title",children:["Codex quota",(c==null?void 0:c.ok)&&c.planLabel&&g.jsx("span",{className:"up-plan-badge",children:c.planLabel}),z&&!h&&g.jsx("span",{className:"up-section-age",title:"Fetched from the Codex usage endpoint",children:z})]}),c!=null&&c.ok?g.jsxs("div",{className:"up-quota-bars",children:[(V=c.windows)==null?void 0:V.map(C=>g.jsx(si,{label:C.label,pct:C.pct,reset:C.reset??void 0,resetAt:C.resetAt??void 0,windowSec:C.windowSec??void 0,limitReached:c.limitReached&&C.pct>=100,nowSec:m},C.id)),(B=c.extraWindows)==null?void 0:B.map(C=>g.jsx(si,{label:C.label,pct:C.pct,reset:C.reset??void 0,resetAt:C.resetAt??void 0,windowSec:C.windowSec??void 0,nowSec:m},C.id)),c.creditLimit&&g.jsx(si,{label:`spend cap · $${Math.round(c.creditLimit.used)} of $${Math.round(c.creditLimit.limit)}`,pct:c.creditLimit.usedPct,reset:c.creditLimit.reset??void 0,resetAt:c.creditLimit.resetAt??void 0,limitReached:c.spendControlReached,nowSec:m}),c.creditsBalance&&!c.creditsUnlimited&&g.jsxs("div",{className:"up-quota-sub up-credits",children:["credits: $",c.creditsBalance,c.overageReached&&" · overage limit reached"]}),c.creditsUnlimited&&g.jsx("div",{className:"up-quota-sub up-credits",children:"credits: unlimited"}),c.resetCredits&&c.resetCredits.availableCount>0&&g.jsxs("div",{className:"up-quota-sub up-reset-credits",title:`Redeem in the Codex CLI or ChatGPT — ${en} only reports them`,children:[c.resetCredits.availableCount," rate-limit reset",c.resetCredits.availableCount!==1?"s":""," available",c.resetCredits.nextExpiryAt&&` · expires ${new Date(c.resetCredits.nextExpiryAt).toLocaleDateString("en-US",{month:"short",day:"numeric"})}`]}),c.promo&&g.jsx("div",{className:"up-quota-sub",children:c.promo}),c.partial&&g.jsx("div",{className:"up-quota-sub up-quota-hint",children:"Partial data — OpenAI returned limits this build doesn't recognise."})]}):(c==null?void 0:c.ok)===!1?g.jsxs("div",{className:"up-quota-na",children:[g.jsx("span",{children:"Quota unavailable."}),g.jsx("span",{className:"up-quota-hint",children:a3(c.reason)})]}):g.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"}),(d==null?void 0:d.ok)&&d.window7d&&d.window7d.sessionCount>0&&g.jsxs("div",{className:"up-quota-sub",title:`Counted from the rollout files under CODEX_HOME — no network, no account${d.window5h?`
66
- last 5h: ${qt(d.window5h.totalTokens)} tokens · ${d.window5h.sessionCount} session${d.window5h.sessionCount!==1?"s":""}`:""}`,children:[qt(d.window7d.totalTokens)," tokens · ",d.window7d.sessionCount," session",d.window7d.sessionCount!==1?"s":""," (7d)"]})]}),E>0?g.jsxs(g.Fragment,{children:[k&&g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"up-total",children:[g.jsx("span",{className:"up-total-value",children:De(N.total)}),g.jsx("span",{className:"up-total-label",children:"total spend"})]}),g.jsx(n3,{cost:N})]}),g.jsxs("div",{className:"up-tokens-row",children:[g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"in"}),qt(_.in)]}),g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"out"}),qt(_.out)]}),_.cacheR>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache r"}),qt(_.cacheR)]}),_.cacheC>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache c"}),qt(_.cacheC)]})]}),R.length>0&&g.jsxs("section",{className:"up-section",children:[g.jsx("h3",{className:"up-section-title",children:"By model"}),g.jsxs("table",{className:"up-table",children:[g.jsx("thead",{children:g.jsxs("tr",{children:[g.jsx("th",{children:"Model"}),g.jsx("th",{children:"Tokens"}),g.jsx("th",{children:"Cost"})]})}),g.jsx("tbody",{children:R.map(C=>g.jsxs("tr",{children:[g.jsx("td",{className:"up-model-name",title:C.model===Ud?"no model reported yet":C.model,children:C.model===Ud?"unknown":Ns(C.model)}),g.jsx("td",{className:"up-num",children:qt(C.inputTokens+C.outputTokens)}),C.priced?g.jsx("td",{className:"up-num up-cost-val",children:De(C.cost.total)}):g.jsx("td",{className:"up-num up-unpriced",children:fu})]},C.model))})]})]}),I.length>0&&g.jsxs("section",{className:"up-section",children:[g.jsx("h3",{className:"up-section-title",children:"By session"}),g.jsx("div",{className:"up-sessions",children:I.map(C=>g.jsxs("div",{className:"up-session-row",children:[g.jsx("span",{className:`sl-dot state-${C.state}`,"aria-hidden":!0}),g.jsx("span",{className:"vis-hidden",children:ry(C.state)}),g.jsx("span",{className:"up-session-label",children:C.label}),g.jsx("span",{className:"up-session-tokens",children:qt(C.inputTokens+C.outputTokens)}),C.cost>0?g.jsxs("span",{className:"up-session-cost",title:C.unpricedTokens>0?`${qt(C.unpricedTokens)} tokens in this session are on an unpriced model, so this is a floor`:void 0,children:[De(C.cost),C.unpricedTokens>0?"+":""]}):g.jsx("span",{className:"up-session-cost up-unpriced",children:fu})]},C.sessionId))})]}),O&&g.jsxs("div",{className:"up-hint",children:["“",fu,"” means this build holds no published rate for that model — those tokens are counted above and their dollars are not."]})]}):g.jsxs("div",{className:"up-empty",children:["No usage data yet.",g.jsx("br",{}),"Start a Claude Code or Codex session."]})]})}const e_=18,d3=1100,Ji=(e,n)=>{const r=Math.sin(e*12.9898+n*78.233)*43758.5453;return r-Math.floor(r)},f3=Array.from({length:e_},(e,n)=>{const r=-72+144*n/(e_-1)+(Ji(n,1)-.5)*9,i=(r-90)*(Math.PI/180),o=(54+32*Math.cos(r*Math.PI/180))*(.74+Ji(n,2)*.52);return{dx:Math.cos(i)*o,dy:Math.sin(i)*o,rot:(n%2?1:-1)*(100+Ji(n,3)*260),delay:Math.round(Ji(n,4)*90),dur:760+Math.round(Ji(n,5)*260),scale:.8+Ji(n,6)*.45,hue:n%4,round:n%3===0}});function t_({anchor:e,lifetimeMs:n=d3}){var l;const[r,i]=j.useState(null),o=typeof window<"u"&&((l=window.matchMedia)==null?void 0:l.call(window,"(prefers-reduced-motion: reduce)").matches);return j.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 h=window.setTimeout(()=>i(null),n);return()=>window.clearTimeout(h)},[e,n,o]),o||!r?null:UI.createPortal(g.jsx("div",{className:"confetti",style:{left:`${r.x}px`,top:`${r.y}px`},"aria-hidden":!0,children:f3.map((u,c)=>g.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 RC=new Set(["awaiting_url","awaiting_code","registering"]);function h3(e){return e!=null&&RC.has(e)}function TC(e){return e!=null&&e!=="done"&&!RC.has(e)}const p3="the sign-in ended before it finished — the deck restarted, or it was cancelled in another tab",m3="the sign-in did not complete";function g3({state:e,serverError:n,localError:r}){const i=e==="idle";return{title:i?"Sign-in ended":"Sign-in failed",message:r||n||(i?p3:m3)}}const v3="done";function y3(){let e=!1;return{shouldAnnounce(n){return n!==v3?(e=!1,!1):e?!1:(e=!0,!0)}}}const n_={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 ${en}`,expired:"that share has expired — make a new one",import_failed:"claude-swap refused the import",bad_value:"an alias can only use letters, numbers, spaces, dots, dashes and underscores, up to 64 characters"},r_={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"},w3=`claude-swap could not read the login keychain — start ${en} from a Terminal window rather than a background service`;function jv(e,n){return(e==null?void 0:e.reason)!=="no_cswap"&&/keychain/i.test(ho(e))?w3:e!=null&&e.reason&&r_[e.reason]?r_[e.reason]:(e==null?void 0:e.reason)||n}function ho(e){return((e==null?void 0:e.output)||(e==null?void 0:e.detail)||(e==null?void 0:e.error)||"").trim()}const s_={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",bad_range:"that date range is not a YYYYMMDD date — reopen the modal and pick one of the presets",unreachable:"the deck did not answer — check it is still running, then try again"},x3="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 _3(e){return/\bnpx\b/i.test(e)&&/(command not found|not found|not recognized|ENOENT)/i.test(e)}function b3(e,n){return _3(ho(e))?x3:e!=null&&e.reason&&s_[e.reason]?s_[e.reason]:(e==null?void 0:e.reason)||n}function hu(e,n){return e!=null&&e.detail?e.detail:e!=null&&e.error&&TC(e.state)?e.error:e!=null&&e.reason&&n_[e.reason]?n_[e.reason]:e!=null&&e.error?e.error:(e==null?void 0:e.reason)||n}const S3=1500;async function nu(e){return(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).json().catch(()=>null)}const Av=ue.forwardRef((e,n)=>g.jsxs("svg",{className:"aa-mark",viewBox:"0 0 44 44","aria-hidden":!0,ref:n,children:[g.jsx("circle",{className:"aa-mark-ring",cx:"22",cy:"22",r:"20"}),g.jsx("path",{className:"aa-mark-tick",d:"M13.5 22.5 L19.5 28.5 L31 17"})]}));Av.displayName="SuccessMark";function k3({onClose:e,onChanged:n}){const[r,i]=j.useState("login"),[o,l]=j.useState(null),[u,c]=j.useState(""),[h,p]=j.useState(""),[d,m]=j.useState(!1),[y,w]=j.useState(null),[N,_]=j.useState(null),b=j.useRef(!1),S=j.useRef(null),k=j.useRef(null),E=j.useRef(null),R=j.useRef(null),I=j.useCallback(()=>{b.current&&nu({action:"login-cancel"}).catch(()=>{}),e()},[e]),O=mo(I,{focusRef:E}),A=j.useCallback(async()=>{m(!0),w(null),b.current=!0;const q=await nu({action:"login"}).catch(()=>null);if(m(!1),!(q!=null&&q.ok)){w(hu(q,"could not start the sign-in"));return}l(q)},[]);j.useEffect(()=>{if(!h3(o==null?void 0:o.state))return;const q=window.setInterval(async()=>{try{const L=await fetch("/api/claude-accounts/login");L.ok&&l(await L.json())}catch{}},S3);return()=>window.clearInterval(q)},[o]);const U=j.useRef(n);U.current=n;const z=j.useRef(y3());j.useEffect(()=>{var q;(o==null?void 0:o.state)==="awaiting_code"&&((q=S.current)==null||q.focus()),z.current.shouldAnnounce(o==null?void 0:o.state)&&U.current()},[o==null?void 0:o.state]),j.useEffect(()=>{var q;r==="paste"&&((q=k.current)==null||q.focus())},[r]);const P=j.useCallback(async()=>{var L;m(!0),w(null);const q=await nu({action:"login-code",code:u}).catch(()=>null);if(m(!1),!(q!=null&&q.ok)){w(hu(q,"the code was not accepted")),q!=null&&q.state&&l(q),(L=S.current)==null||L.select();return}c(""),l(q)},[u,o]),D=j.useCallback(async()=>{m(!0),w(null);const q=await nu({action:"import",blob:h}).catch(()=>null);if(m(!1),!(q!=null&&q.ok)){w(hu(q,"the import failed"));return}p(""),_({added:q.added===!0,num:q.num??null,email:q.email??null}),n()},[h,n]),V=(o==null?void 0:o.state)==="done"?o.account:null,B=TC(o==null?void 0:o.state)||!!(y&&b.current&&!d),C=g3({state:o==null?void 0:o.state,serverError:o==null?void 0:o.error,localError:y});return g.jsx("div",{className:"modal-backdrop",onClick:I,role:"presentation",children:g.jsxs("div",{ref:O,className:"modal aa-modal",onClick:q=>q.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":"Add a Claude account",children:[g.jsxs("header",{className:"modal-head",children:[g.jsx("div",{className:"modal-title",children:g.jsxs("span",{className:"aa-tabs",role:"tablist",children:[g.jsx("button",{type:"button",role:"tab","aria-selected":r==="login",className:`aa-tab${r==="login"?" on":""}`,onClick:()=>i("login"),children:"Sign in"}),g.jsx("button",{type:"button",role:"tab","aria-selected":r==="paste",className:`aa-tab${r==="paste"?" on":""}`,onClick:()=>i("paste"),children:"Paste a share"})]})}),g.jsx("div",{className:"modal-actions",children:g.jsx("button",{type:"button",className:"btn icon-btn",onClick:I,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})})]}),g.jsx("section",{className:"modal-body aa-body",children:r==="login"?V?g.jsxs("div",{className:"aa-done",children:[g.jsx(Av,{ref:R}),g.jsx(t_,{anchor:R}),g.jsx("h4",{children:V.added?`Account ${V.num} added`:"Credentials refreshed"}),g.jsxs("p",{className:"aa-note",children:[g.jsx("strong",{children:V.email}),V.added?" is in the rotation. The account you were using is still active.":" was already managed, so its stored credentials were replaced."]}),g.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"?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"1 · Approve in the browser"}),g.jsx("p",{className:"aa-note",children:"A tab should have opened. If not, use this link:"}),g.jsx("a",{className:"aa-link",href:o.url??"#",target:"_blank",rel:"noreferrer noopener",children:o.url})]}),g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"2 · Paste the code it gives you"}),g.jsxs("div",{className:"aa-field",children:[g.jsx("input",{ref:S,type:"text",value:u,onChange:q=>c(q.target.value),onKeyDown:q=>{q.key==="Enter"&&u.trim()&&!d&&P()},placeholder:"paste the code here",spellCheck:!1,autoComplete:"off","aria-label":"Sign-in code",disabled:o.state==="registering"}),g.jsx("button",{type:"button",className:"btn primary",disabled:d||!u.trim()||o.state==="registering",onClick:P,children:o.state==="registering"?"registering…":"Continue"})]}),(y||o.error)&&g.jsx("p",{className:"aa-err",children:y??o.error}),g.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."})]})]}):B?g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:C.title}),g.jsx("p",{className:"aa-err",children:C.message}),g.jsx("button",{type:"button",className:"btn",onClick:()=>{b.current=!1,l(null),w(null),A()},children:"Try again"})]}):d||b.current?g.jsx("div",{className:"aa-step",children:g.jsx("p",{className:"aa-note",children:"Asking the claude CLI for a sign-in link…"})}):g.jsxs("div",{className:"aa-step aa-primer",children:[g.jsx("h4",{children:"Sign in to Anthropic"}),g.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."}),g.jsx("div",{className:"aa-actions",children:g.jsx("button",{type:"button",ref:E,className:"btn primary",onClick:A,disabled:d,children:"Open the sign-in page"})})]}):N?g.jsxs("div",{className:"aa-done",children:[g.jsx(Av,{ref:R}),N.added&&g.jsx(t_,{anchor:R}),g.jsx("h4",{children:N.added?`Account ${N.num} imported`:"Already here"}),g.jsx("p",{className:"aa-note",children:N.added?g.jsxs(g.Fragment,{children:[N.email?g.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."}),g.jsxs("div",{className:"aa-actions",children:[g.jsx("button",{type:"button",className:"btn primary",onClick:e,children:"Done"}),g.jsx("button",{type:"button",className:"btn",onClick:()=>_(null),children:"Import another"})]})]}):g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"Paste an account shared from another deck"}),g.jsxs("div",{className:"aa-field",children:[g.jsx("input",{ref:k,type:"text",value:h,onChange:q=>p(q.target.value),onKeyDown:q=>{q.key==="Enter"&&h.trim()&&!d&&D()},placeholder:"ccdeck1:…",spellCheck:!1,autoComplete:"off","aria-label":"Shared account"}),g.jsx("button",{type:"button",className:"btn primary",disabled:d||!h.trim(),onClick:D,children:d?"importing…":"Import"})]}),y&&g.jsx("p",{className:"aa-err",children:y}),g.jsxs("p",{className:"aa-note",children:["Use ",g.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 E3(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 N3(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}}const C3=64;function R3(e,n){const r=e.trim();return{alias:r,commit:r!==(n??"").trim()}}const T3=Object.freeze({text:"couldn't reach the deck server",reload:!0});async function i_(e){return e.ok?{ok:!0,status:e.status,body:null}:{ok:!1,status:e.status,body:await e.json().catch(()=>null)}}function j3(e){const n=e.find(i=>!i.ok);if(!n)return null;const r=ho(n.body);return{text:jv(n.body,`the deck server answered ${n.status}`),...r?{raw:r}:{},reload:!0}}function o_(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 a_=15e3,A3=8e3,I3=1800,M3=3e4,O3=[70,80,85,90,95];function P3(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 l_(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 L3(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 $3(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 q3({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?P3(e.resetAt,n):null;return g.jsxs("div",{className:"ap-lane",children:[g.jsx("span",{className:"ap-lane-label",children:e.label}),g.jsx("div",{className:"ap-lane-track",children:g.jsx("div",{className:"ap-lane-fill",style:{width:`${r===0?1.5:r}%`,background:i,opacity:r===0?.4:1}})}),g.jsxs("span",{className:"ap-lane-pct",style:{color:i},children:[r,"%"]}),g.jsx("span",{className:"ap-lane-reset",children:o?`resets ${o}`:""})]})}async function D3(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 F3(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 ne,oe,fe;const[n,r]=j.useState(null),[i,o]=j.useState(null),[l,u]=j.useState(null),[c,h]=j.useState(!1),[p,d]=j.useState(null),[m,y]=j.useState(null),[w,N]=j.useState(()=>Math.floor(Date.now()/1e3)),_=j.useRef(null),[b,S]=j.useState(null),[k,E]=j.useState(!1),[R,I]=j.useState(""),[O,A]=j.useState(null),[U,z]=j.useState(null),[P,D]=j.useState(null),[V,B]=j.useState(!1),[C,q]=j.useState(null),L=j.useCallback(async(te=!1)=>{te&&h(!0);const ce=new AbortController,Ce=window.setTimeout(()=>ce.abort(),M3);try{const[ve,je]=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()),je.ok&&o(await je.json());const ye=j3([await i_(ve),await i_(je)]);y(ke=>o_(ke,ye))}catch{y(ve=>o_(ve,T3))}finally{window.clearTimeout(Ce),te&&h(!1)}},[]),re=j.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:jv(ve,"command failed"),raw:ho(ve)}),ve}catch{return y({text:"server unreachable"}),null}finally{u(null)}},[]),Z=j.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:hu(ve,"command failed")}),ve}catch{return y({text:"server unreachable"}),null}finally{u(null)}},[]);j.useEffect(()=>(L(!0),_.current=window.setInterval(()=>L(!1),a_),()=>{_.current!=null&&window.clearInterval(_.current)}),[L]),j.useEffect(()=>{const te=window.setInterval(()=>N(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(te)},[]);const H=((ne=i==null?void 0:i.settings["autoswitch.threshold"])==null?void 0:ne.value)??"90",J=(oe=n==null?void 0:n.accounts)==null?void 0:oe.find(te=>te.active),M=J!=null&&J.lanes.length?Math.max(...J.lanes.map(te=>te.pct)):null,G=M!=null&&M>=Number(H)-15,Y=async te=>{d(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:jv(Ce,"the switch failed"),raw:ho(Ce)}),await L(!0)}catch{y({text:"server unreachable"})}finally{d(null)}},$=async(te,ce)=>{const{commit:Ce,alias:ve}=R3(R,ce);if(Ce){const je=await Z({action:"alias",account:te,alias:ve},`alias-${te}`);if(await L(!0),!(je!=null&&je.ok))return;I(ve)}A(te),window.setTimeout(()=>A(je=>je===te?null:je),I3)},Q=async(te,ce)=>{const Ce=await Z({action:"move",account:te,slot:ce},`move-${te}`),ve=N3({menuFor:b,shareFor:(P==null?void 0:P.num)??null},te,Ce);if(await L(!0),ve){S(ve.menuFor),z(ve.confirmRemove),ve.shareFor==null&&(D(null),B(!1)),q(ve.swapNote);const je=ve.swapNote;je&&window.setTimeout(()=>q(ye=>ye===je?null:ye),A3)}};return g.jsxs("aside",{className:"accounts-panel",id:"accounts-panel","aria-label":"Claude accounts",children:[g.jsxs("div",{className:"ap-header",children:[g.jsx("h2",{children:"Accounts"}),g.jsxs("div",{className:"ap-header-right",children:[g.jsx("button",{type:"button",className:"btn ap-add",onClick:()=>E(!0),"aria-label":"Add an account",title:"Sign in to another Claude account, or paste one shared from another deck",children:"+"}),g.jsx("button",{type:"button",className:"btn ap-refresh",onClick:()=>L(!0),disabled:c,"aria-label":"Reload accounts",title:"Reload from claude-swap",children:c?"…":"↻"}),g.jsx("button",{type:"button",className:"btn icon-btn",onClick:e,"aria-label":"Close accounts panel",title:"Close (A)",children:"×"})]})]}),n==null?m?g.jsxs("div",{className:"ap-empty",role:"alert",children:[g.jsx("span",{title:m.raw||void 0,children:m.text}),g.jsxs("span",{className:"ap-hint",children:["No accounts have arrived, so there is nothing to show yet. The panel keeps trying every ",a_/1e3," seconds."]}),g.jsx("button",{type:"button",className:"ap-fix",disabled:c,onClick:()=>L(!0),children:c?"trying…":"try again"})]}):g.jsx("div",{className:"ap-empty",children:"Checking…"}):n.ok?g.jsxs(g.Fragment,{children:[(fe=n.accounts)==null?void 0:fe.map(te=>g.jsxs("div",{className:`ap-account${te.active?" active":""}${te.disabled?" disabled":""}`,children:[g.jsxs("div",{className:"ap-account-head",children:[g.jsx("span",{className:"ap-num",children:te.num}),te.alias&&g.jsx("span",{className:"ap-alias",title:te.alias,children:te.alias}),g.jsx("span",{className:"ap-email",title:te.org??void 0,children:te.email}),g.jsx("button",{type:"button",className:`ap-more${b===te.num?" on":""}`,"aria-label":`Manage account ${te.num}`,"aria-expanded":b===te.num,"aria-controls":b===te.num?`ap-manage-${te.num}`:void 0,title:"Share, rename, move, remove",onClick:()=>{S(b===te.num?null:te.num),I(te.alias??""),z(null),D(null),B(!1),q(null),A(null)},children:"⋯"}),te.active?g.jsx("span",{className:"ap-badge-active",children:"● active"}):g.jsx("button",{type:"button",className:"btn ap-switch",disabled:p!=null||te.disabled,onClick:()=>Y(te.num),title:te.disabled?"Held out of rotation":`Switch to ${te.alias??te.email}`,children:p===te.num?"…":"switch"})]}),te.lanes.length>0?te.lanes.map(ce=>g.jsx(q3,{lane:ce,nowSec:w},ce.id)):g.jsx("div",{className:"ap-hint",children:"No usage recorded yet."}),g.jsxs("div",{className:"ap-meta",children:[te.error&&(()=>{const ce=$3(te.error);return g.jsxs(g.Fragment,{children:[g.jsx("span",{className:"ap-err",title:ce.hint,children:ce.text}),ce.fixable&&g.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&&g.jsx("button",{type:"button",className:"ap-rotate",disabled:l!=null,onClick:()=>re({action:"account",account:te.num,enabled:te.disabled},`rot-${te.num}`).then(()=>L(!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?g.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 ",l_(te.fetchedAt,w),L3(te.nextAt,w)]}):g.jsx("span",{className:"ap-age ap-stale",title:"claude-swap has not read this account yet",children:"never collected"})]}),b===te.num&&g.jsxs("div",{className:"ap-manage",id:`ap-manage-${te.num}`,role:"group","aria-label":`Manage account ${te.num}`,children:[g.jsxs("div",{className:"ap-manage-name",children:[g.jsx("label",{className:"vis-hidden",htmlFor:`ap-alias-${te.num}`,children:"Alias"}),g.jsx("input",{id:`ap-alias-${te.num}`,className:"ap-manage-input",type:"text",value:R,onChange:ce=>I(ce.target.value),onKeyDown:ce=>{ce.key==="Enter"&&$(te.num,te.alias)},maxLength:C3,placeholder:"e.g. work",spellCheck:!1,autoFocus:!0}),g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,onClick:()=>$(te.num,te.alias),title:"A short name to show instead of the email",children:O===te.num?"saved":"save"})]}),g.jsxs("div",{className:"ap-manage-acts",children:[g.jsx("label",{className:"vis-hidden",htmlFor:`ap-slot-${te.num}`,children:"Slot"}),g.jsx("span",{className:"ap-field",children:g.jsx("select",{id:`ap-slot-${te.num}`,value:String(te.num),disabled:l!=null,onChange:ce=>Q(te.num,Number(ce.target.value)),children:E3((n.accounts??[]).map(ce=>ce.num),te.num).map(ce=>g.jsx("option",{value:ce.slot,children:ce.label},ce.slot))})}),g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,title:`Copy this account to another ${en}. Anyone who has the text can use the account — treat it as the password. The other deck stops accepting it after 10 minutes; that does not make an escaped copy safe.`,onClick:async()=>{B(!1);const ce=await Z({action:"share",account:te.num},`share-${te.num}`);ce!=null&&ce.ok&&D({num:te.num,blob:ce.blob,expiresAt:ce.expiresAt})},children:"share"}),g.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){z(te.num),window.setTimeout(()=>z(ce=>ce===te.num?null:ce),4e3);return}z(null),Z({action:"remove",account:te.num},`rm-${te.num}`).then(()=>{S(null),L(!0)})},children:U===te.num?"confirm":"remove"})]}),(C==null?void 0:C.at)===te.num&&(()=>{var ve;const ce=(ve=n.accounts)==null?void 0:ve.find(je=>je.num===C.displaced),Ce=(ce==null?void 0:ce.alias)??(ce==null?void 0:ce.email)??"the account that was there";return g.jsxs("span",{className:"ap-manage-hint ap-manage-swap",title:`Slot ${C.at} was taken, so the two accounts traded places: ${Ce} now holds slot ${C.displaced}.`,children:["swapped with slot ",C.displaced]})})(),(P==null?void 0:P.num)===te.num&&(()=>{const ce=F3(P.expiresAt,w),Ce=ce.tone==="gone";return g.jsxs("div",{className:`ap-share${Ce?" expired":""}`,children:[g.jsx("code",{className:"ap-share-blob",children:P.blob}),g.jsxs("div",{className:"ap-share-foot",children:[g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,onClick:async()=>{if(Ce){B(!1);const ve=await Z({action:"share",account:te.num},`share-${te.num}`);ve!=null&&ve.ok&&D({num:te.num,blob:ve.blob,expiresAt:ve.expiresAt});return}await D3(P.blob)&&(B(!0),window.setTimeout(()=>B(!1),1800))},children:Ce?"make a new share":V?"copied":"copy"}),g.jsxs("span",{className:"ap-manage-hint",title:"This text is the account's password. It is base64 of plain JSON — the expiry inside it is not signed, so anyone holding a copy can change it, and the login itself is in there in the clear either way. The countdown only says how long another deck's import dialog will still accept it. If a copy escapes, sign the account out and back in.",children:[g.jsx("span",{className:"ap-share-warn",children:"this is the password"})," · ",g.jsx("span",{className:`ap-share-expiry ${ce.tone}`,children:ce.text})]})]})]})})()]})]},te.num)),(i==null?void 0:i.ok)&&g.jsxs("div",{className:"ap-auto",children:[g.jsxs("div",{className:"ap-auto-head",children:[g.jsx("span",{className:"ap-auto-title",children:"Auto-switch"}),g.jsxs("span",{className:"ap-auto-ctl",children:[M!=null&&g.jsxs("span",{className:`ap-auto-now${G?" near":""}`,children:[Math.round(M),"%"]}),g.jsx("span",{className:"ap-field",title:"Switch once the active account passes this much of its limit",children:g.jsx("select",{"aria-label":"Switch threshold",value:H,disabled:l!=null,onChange:te=>re({action:"setting",key:"autoswitch.threshold",value:te.target.value},"threshold").then(()=>L(!0)),children:O3.map(te=>g.jsxs("option",{value:te,children:[te,"%"]},te))})}),g.jsxs("button",{type:"button",className:`ap-auto-state${i.enabled?" live":""}`,role:"switch","aria-checked":i.enabled,disabled:l!=null,onClick:()=>re({action:"enable",enabled:!i.enabled},"enable").then(()=>L(!0)),title:i.enabled?"Stop switching accounts automatically":"Switch accounts automatically when the active one nears its limit",children:[g.jsx("i",{className:i.enabled?"ap-pulse":"ap-dot","aria-hidden":!0}),i.enabled?"on":"off"]})]})]}),i.external&&g.jsxs("p",{className:"ap-auto-note",children:[g.jsx("i",{className:"ap-pulse","aria-hidden":!0})," A ",g.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&&g.jsx("div",{className:"ap-auto-foot",children:g.jsxs("span",{className:"ap-auto-result",children:["checked ",l_(i.lastTick.at,w)]})})]}),m&&g.jsxs("div",{className:"ap-failure",role:"alert",children:[g.jsx("span",{className:"ap-failure-text",title:m.raw||void 0,children:m.text}),g.jsx("button",{type:"button",className:"ap-failure-x",onClick:()=>y(null),"aria-label":"Dismiss this message",title:"Dismiss",children:"×"})]}),g.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."})]}):g.jsx("div",{className:"ap-empty",children:n.reason==="no_cswap"?g.jsxs(g.Fragment,{children:[g.jsx("span",{children:"claude-swap isn't installed."}),g.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&&g.jsx("code",{className:"ap-cmd",children:n.hint}),g.jsxs("span",{className:"ap-hint",children:["Then add an account with the ",g.jsx("strong",{children:"+"})," button above."]})]}):n.reason==="no_accounts"?g.jsxs(g.Fragment,{children:[g.jsx("span",{children:"No accounts added yet."}),g.jsxs("span",{className:"ap-hint",children:["claude-swap is installed but has nothing in its store. Use the ",g.jsx("strong",{children:"+"})," above to sign one in, or to paste one shared from another deck."]})]}):g.jsxs(g.Fragment,{children:[g.jsx("span",{children:"Couldn't read the account store."}),g.jsxs("span",{className:"ap-hint",children:["claude-swap is installed, but its store could not be read",n.reason?` (${n.reason})`:"","."]})]})}),k&&g.jsx(k3,{onClose:()=>E(!1),onChanged:()=>L(!0)})]})}const B3=3e4;function U3({bundle:e,running:n,lastTried:r}){return!n||e===n?!1:r!==n}function H3({bundle:e,running:n,pending:r,lastTried:i}){return n?U3({bundle:e,running:n,lastTried:i})?"reload":r==null||r&&r!==n?"wait":"confirm":"wait"}function W3(e){return!e||e.state!=="failed"?null:`${typeof e.at=="number"?e.at:0}:${e.error??""}`}function V3({asked:e,reported:n}){return n?n!==e:!1}function G3(e){const n=e.thresholdMs??B3;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 Y3({agentCount:e,onConfirm:n,onCancel:r}){const i=j.useRef(null),o=mo(r,{focusRef:i,layer:IP}),l=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 g.jsx("div",{className:"modal-backdrop",onClick:r,role:"presentation",children:g.jsxs("div",{ref:o,className:"modal clear-confirm",onClick:u=>u.stopPropagation(),role:"dialog","aria-modal":"true","aria-labelledby":"clear-confirm-title",children:[g.jsxs("header",{className:"modal-head",children:[g.jsxs("div",{className:"modal-title",children:[g.jsx("span",{className:"status-dot err","aria-hidden":!0}),g.jsx("span",{id:"clear-confirm-title",className:"modal-tool-name",children:"Clear the deck?"})]}),g.jsx("div",{className:"modal-actions",children:g.jsx("button",{type:"button",className:"btn icon-btn",onClick:r,"aria-label":"Cancel (Esc)",title:"Cancel (Esc)",children:"×"})})]}),g.jsxs("section",{className:"modal-body",children:[g.jsxs("p",{className:"modal-note",children:[l," — the file a restarted deck replays to rebuild what you see. Layout, pins and selection go with it. This cannot be undone."]}),g.jsxs("div",{className:"cc-actions",children:[g.jsx("button",{type:"button",ref:i,className:"btn",onClick:r,children:"Cancel"}),g.jsx("button",{type:"button",className:"btn danger",onClick:n,children:"Clear everything"})]})]})]})})}function K3(e,n){return e==="confirmation"?n.confirmOpen?"clear":"ignore":n.modalOpen||n.confirmOpen?"ignore":"confirm"}function X3(e){return e.slice().sort((n,r)=>n.y-r.y||n.x-r.x)}function Q3(e,n,r){var u;if(e.length===0)return null;const i=X3(e),o=n?i.findIndex(c=>c.id===n):-1,l=o===-1?r===1?0:i.length-1:(o+r+i.length)%i.length;return((u=i[l])==null?void 0:u.id)??null}const Z3=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Escape","Delete","Backspace"]);function J3(e,n){return n==null?{kind:"deck",nodeId:null}:e.key==="Enter"||e.key===" "?{kind:"activate",nodeId:n,additive:e.shiftKey}:Z3.has(e.key)?{kind:"node",nodeId:n}:{kind:"deck",nodeId:n}}const e$=new Set(["","BODY","HTML","#DOCUMENT"]);function t$(e){return!e||ny(e)?!1:!e$.has(String(e.tagName??"").toUpperCase())}function ru(e,n){if(n.size!==0)for(const r of Array.from(e.keys()))n.has(r)||e.delete(r)}function n$(e){const n=new Set;for(const r of e)n.add(r.id),n.add(`group:${r.sessionId}`);return n}function jC(e,n,r){return!n.has(e)||r.has(e)}function r$(e,n,r,i){return!n.has(e)&&jC(e,r,i)}function s$(e,n,r){const i={x:0,y:0};return n.set(e,i),r.add(e),i}function i$(e,n,r,i){r.set(e,n),i.delete(e)}const o$=40,a$=120;function l$(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=(h,p,d)=>{if(r!=null){if(i<=h)return;u()}const m=Math.min(d,Math.max(0,h-p));i=h,r=n.setTimeout(l,m)};return{live(h=o$){const p=n.now(),d=Math.max(o+h,p);if(d<=p){u(),l();return}c(d,p,h)},replay(h=a$){u(),i=n.now()+h,r=n.setTimeout(l,h)},flush(){u(),l()},cancel(){u()}}}function u$(){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 c$="1",u_="agent-dag.schema",d$=["agent-dag.layout","agent-dag.viewport"];function AC(e){if(typeof window>"u")return null;try{return window.localStorage.getItem(e)}catch{return null}}function f$(e,n=c$){let r=null;try{r=e.getItem(u_)}catch{return[]}if(r===n)return[];const i=[];if(r!==null)for(const o of d$)try{e.getItem(o)!==null&&(e.removeItem(o),i.push(o))}catch{}try{e.setItem(u_,n)}catch{}return i}const IC="agent-dag.theme";function h$(e){return e==="light"?"light":"dark"}function p$(){return h$(AC(IC))}function m$({waiting:e,running:n}){return{title:e>0?`(${e}) ${en}`:en,icon:e>0?"waiting":n>0?"running":"idle"}}const Hd={waiting:"#c97d12",running:"#2a90d4",idle:"#7e828c"};function Wd(e,n){return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">${n==="waiting"?`<circle cx="16" cy="16" r="14.5" fill="${e}"/>`:`<circle cx="16" cy="16" r="12" fill="none" stroke="${e}" stroke-width="5"/>`+(n==="running"?`<circle cx="16" cy="16" r="5" fill="${e}"/>`:"")}</svg>`}const g$=Object.freeze({waiting:`data:image/svg+xml,${encodeURIComponent(Wd(Hd.waiting,"waiting"))}`,running:`data:image/svg+xml,${encodeURIComponent(Wd(Hd.running,"running"))}`,idle:`data:image/svg+xml,${encodeURIComponent(Wd(Hd.idle,"idle"))}`}),v$="No sessions are waiting for you.";function y$(e){if(e.length===0)return"";const[n,...r]=e;if(r.length===0)return`${n.label} is waiting for your permission.`;const i=`${r.length} more session${r.length===1?"":"s"}`;return`${n.label} and ${i} are waiting for your permission.`}function w$(e,n){return n!==""?n:e===""?"":v$}function x$(){let e=0;return{begin(){const n=++e;return()=>n===e},cancel(){e++}}}function _$(e,n=new Date){return new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate()-(e-1))).toISOString().slice(0,10).replace(/-/g,"")}function b$(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 su(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 S$=[7,14,30,90];function k$(e){const[n,r]=j.useState(null),[i,o]=j.useState(!1),l=j.useRef(x$()).current,u=(c=!1)=>{const h=l.begin(),p=e;o(!0);const m=`/api/ccusage?since=${_$(p)}${c?"&refresh=1":""}`;fetch(m).then(y=>y.json()).then(y=>{h()&&r({range:p,resp:y})}).catch(()=>{h()&&r({range:p,resp:{ok:!1,reason:"unreachable"}})}).finally(()=>{h()&&o(!1)})};return j.useEffect(()=>(u(!1),()=>l.cancel()),[e]),{landed:n,loading:i,reload:()=>u(!0)}}function E$({onClose:e}){var R,I,O;const[n,r]=j.useState(30),[i,o]=j.useState(null),{landed:l,loading:u,reload:c}=k$(n),h=j.useRef(null),p=mo(e,{focusRef:h}),d=b$({loading:u,want:n,answer:l&&{range:l.range,ok:l.resp.ok===!0,days:((R=l.resp.days)==null?void 0:R.length)??0}}),m=d.phase==="chart"?l.resp.days??[]:[],y=j.useMemo(()=>m.reduce((A,U)=>Math.max(A,U.totalCost),0),[m]),{totalCost:w,totalTok:N,inOut:_,cacheRead:b,modelCosts:S}=j.useMemo(()=>{let A=0,U=0,z=0,P=0;const D=new Map;for(const V of m){A+=V.totalCost,U+=V.totalTokens,z+=V.inputTokens+V.outputTokens,P+=V.cacheReadTokens;for(const B of V.modelBreakdowns)D.set(B.modelName,(D.get(B.modelName)??0)+B.cost)}return{totalCost:A,totalTok:U,inOut:z,cacheRead:P,modelCosts:D}},[m]),k=j.useMemo(()=>Array.from(S.entries()).sort((A,U)=>U[1]-A[1]),[S]),E=i?m.find(A=>A.period===i)??null:null;return g.jsx("div",{className:"uh-backdrop",onClick:e,role:"presentation",children:g.jsxs("div",{ref:p,className:"uh-modal",onClick:A=>A.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":"Usage history",children:[g.jsxs("header",{className:"uh-head",children:[g.jsxs("div",{className:"uh-titlewrap",children:[g.jsx("div",{className:"uh-title",children:"Usage history"}),g.jsx("div",{className:"uh-sub",children:"via ccusage · local Claude / Codex logs"})]}),g.jsx("div",{className:"uh-range",role:"group","aria-label":"Range",children:S$.map(A=>g.jsxs("button",{type:"button","aria-pressed":n===A,className:`uh-range-btn${n===A?" on":""}`,onClick:()=>{r(A),o(null)},children:[A,"d"]},A))}),g.jsx("button",{className:"btn icon-btn uh-reload",onClick:c,disabled:u,title:"Re-run ccusage","aria-label":"Reload",children:u?"…":"↻"}),g.jsx("button",{ref:h,className:"uh-close",onClick:e,"aria-label":"Close",children:"×"})]}),d.phase==="busy"?g.jsx("div",{className:"uh-status","aria-busy":"true",children:l?"running ccusage…":"running ccusage… (first run downloads the package)"}):d.phase==="error"?g.jsxs("div",{className:"uh-status uh-err",title:ho(l.resp)||void 0,children:[b3(l.resp,"ccusage did not report usage"),g.jsx("div",{children:g.jsx("button",{className:"btn uh-retry",onClick:c,disabled:u,children:u?"trying…":"Try again"})})]}):d.phase==="empty"?g.jsx("div",{className:`uh-status${d.stale?" uh-stale":""}`,"aria-busy":d.stale||void 0,children:"no usage in this range"}):g.jsxs("div",{className:d.stale?"uh-stale":void 0,"aria-busy":d.stale||void 0,children:[g.jsxs("div",{className:"uh-totals",children:[g.jsx(iu,{label:"total cost",val:De(w),accent:!0}),g.jsx(iu,{label:"tokens",val:qt(N)}),g.jsx(iu,{label:"input+output",val:qt(_)}),g.jsx(iu,{label:"cache reads",val:qt(b)})]}),g.jsx("div",{className:"uh-chart",role:"group","aria-label":"Daily cost by model",children:m.map(A=>{const U=y>0?A.totalCost/y*100:0,z=A.period===i,P=`${A.period}, ${De(A.totalCost)}`;return g.jsxs("button",{className:`uh-bar-col${z?" sel":""}`,onClick:()=>o(z?null:A.period),"aria-pressed":z,"aria-label":P,title:`${A.period} · ${De(A.totalCost)}`,style:{flexBasis:`${100/m.length}%`},children:[g.jsx("div",{className:"uh-bar",style:{height:`${Math.max(U,A.totalCost>0?2:0)}%`},children:A.modelBreakdowns.slice().sort((D,V)=>V.cost-D.cost).map(D=>{const V=A.totalCost>0?D.cost/A.totalCost*100:0;return g.jsx("div",{className:"uh-bar-seg",style:{height:`${V}%`,background:su(D.modelName)}},D.modelName)})}),g.jsx("span",{className:"uh-bar-label",children:A.period.slice(5)})]},A.period)})}),g.jsx("div",{className:"uh-legend",children:k.map(([A,U])=>g.jsxs("span",{className:"uh-legend-item",children:[g.jsx("span",{className:"uh-legend-dot",style:{background:su(A)}}),Ns(A)," ",g.jsx("span",{className:"uh-legend-cost",children:De(U)})]},A))}),E&&g.jsxs("div",{className:"uh-detail",children:[g.jsxs("div",{className:"uh-detail-head",children:[g.jsx("span",{className:"uh-detail-date",children:E.period}),g.jsx("span",{className:"uh-detail-cost",children:De(E.totalCost)}),(O=(I=E.metadata)==null?void 0:I.agents)!=null&&O.length?g.jsx("span",{className:"uh-detail-agents",children:E.metadata.agents.join(" · ")}):null]}),g.jsxs("div",{className:"uh-detail-mini",children:[g.jsx(ou,{label:"input",val:qt(E.inputTokens)}),g.jsx(ou,{label:"output",val:qt(E.outputTokens)}),g.jsx(ou,{label:"cache write",val:qt(E.cacheCreationTokens)}),g.jsx(ou,{label:"cache read",val:qt(E.cacheReadTokens)})]}),g.jsx("div",{className:"uh-detail-models",children:E.modelBreakdowns.slice().sort((A,U)=>U.cost-A.cost).map(A=>{const U=E.totalCost>0?A.cost/E.totalCost*100:0;return g.jsxs("div",{className:"uh-model-row",children:[g.jsxs("span",{className:"uh-model-name",children:[g.jsx("span",{className:"uh-legend-dot",style:{background:su(A.modelName)}}),Ns(A.modelName)]}),g.jsx("span",{className:"uh-model-bar",children:g.jsx("span",{className:"uh-model-bar-fill",style:{width:`${U}%`,background:su(A.modelName)}})}),g.jsx("span",{className:"uh-model-cost",children:De(A.cost)})]},A.modelName)})})]})]})]})})}function iu({label:e,val:n,accent:r}){return g.jsxs("div",{className:"uh-stat",children:[g.jsx("span",{className:`uh-stat-val${r?" accent":""}`,children:n}),g.jsx("span",{className:"uh-stat-label",children:e})]})}function ou({label:e,val:n}){return g.jsxs("div",{className:"uh-ministat",children:[g.jsx("span",{className:"uh-ministat-val",children:n}),g.jsx("span",{className:"uh-ministat-label",children:e})]})}function iy(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 Vd,c_;function N$(){if(c_)return Vd;c_=1;function e(){this.__data__=[],this.size=0}return Vd=e,Vd}var Gd,d_;function go(){if(d_)return Gd;d_=1;function e(n,r){return n===r||n!==n&&r!==r}return Gd=e,Gd}var Yd,f_;function Lu(){if(f_)return Yd;f_=1;var e=go();function n(r,i){for(var o=r.length;o--;)if(e(r[o][0],i))return o;return-1}return Yd=n,Yd}var Kd,h_;function C$(){if(h_)return Kd;h_=1;var e=Lu(),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 Kd=i,Kd}var Xd,p_;function R$(){if(p_)return Xd;p_=1;var e=Lu();function n(r){var i=this.__data__,o=e(i,r);return o<0?void 0:i[o][1]}return Xd=n,Xd}var Qd,m_;function T$(){if(m_)return Qd;m_=1;var e=Lu();function n(r){return e(this.__data__,r)>-1}return Qd=n,Qd}var Zd,g_;function j$(){if(g_)return Zd;g_=1;var e=Lu();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 Zd=n,Zd}var Jd,v_;function $u(){if(v_)return Jd;v_=1;var e=N$(),n=C$(),r=R$(),i=T$(),o=j$();function l(u){var c=-1,h=u==null?0:u.length;for(this.clear();++c<h;){var p=u[c];this.set(p[0],p[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=i,l.prototype.set=o,Jd=l,Jd}var ef,y_;function A$(){if(y_)return ef;y_=1;var e=$u();function n(){this.__data__=new e,this.size=0}return ef=n,ef}var tf,w_;function I$(){if(w_)return tf;w_=1;function e(n){var r=this.__data__,i=r.delete(n);return this.size=r.size,i}return tf=e,tf}var nf,x_;function M$(){if(x_)return nf;x_=1;function e(n){return this.__data__.get(n)}return nf=e,nf}var rf,__;function O$(){if(__)return rf;__=1;function e(n){return this.__data__.has(n)}return rf=e,rf}var sf,b_;function MC(){if(b_)return sf;b_=1;var e=typeof Ul=="object"&&Ul&&Ul.Object===Object&&Ul;return sf=e,sf}var of,S_;function sr(){if(S_)return of;S_=1;var e=MC(),n=typeof self=="object"&&self&&self.Object===Object&&self,r=e||n||Function("return this")();return of=r,of}var af,k_;function vo(){if(k_)return af;k_=1;var e=sr(),n=e.Symbol;return af=n,af}var lf,E_;function P$(){if(E_)return lf;E_=1;var e=vo(),n=Object.prototype,r=n.hasOwnProperty,i=n.toString,o=e?e.toStringTag:void 0;function l(u){var c=r.call(u,o),h=u[o];try{u[o]=void 0;var p=!0}catch{}var d=i.call(u);return p&&(c?u[o]=h:delete u[o]),d}return lf=l,lf}var uf,N_;function L$(){if(N_)return uf;N_=1;var e=Object.prototype,n=e.toString;function r(i){return n.call(i)}return uf=r,uf}var cf,C_;function fi(){if(C_)return cf;C_=1;var e=vo(),n=P$(),r=L$(),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 cf=u,cf}var df,R_;function qn(){if(R_)return df;R_=1;function e(n){var r=typeof n;return n!=null&&(r=="object"||r=="function")}return df=e,df}var ff,T_;function Aa(){if(T_)return ff;T_=1;var e=fi(),n=qn(),r="[object AsyncFunction]",i="[object Function]",o="[object GeneratorFunction]",l="[object Proxy]";function u(c){if(!n(c))return!1;var h=e(c);return h==i||h==o||h==r||h==l}return ff=u,ff}var hf,j_;function $$(){if(j_)return hf;j_=1;var e=sr(),n=e["__core-js_shared__"];return hf=n,hf}var pf,A_;function q$(){if(A_)return pf;A_=1;var e=$$(),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 pf=r,pf}var mf,I_;function OC(){if(I_)return mf;I_=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 mf=r,mf}var gf,M_;function D$(){if(M_)return gf;M_=1;var e=Aa(),n=q$(),r=qn(),i=OC(),o=/[\\^$.*+?()[\]{}|]/g,l=/^\[object .+?Constructor\]$/,u=Function.prototype,c=Object.prototype,h=u.toString,p=c.hasOwnProperty,d=RegExp("^"+h.call(p).replace(o,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function m(y){if(!r(y)||n(y))return!1;var w=e(y)?d:l;return w.test(i(y))}return gf=m,gf}var vf,O_;function F$(){if(O_)return vf;O_=1;function e(n,r){return n==null?void 0:n[r]}return vf=e,vf}var yf,P_;function hi(){if(P_)return yf;P_=1;var e=D$(),n=F$();function r(i,o){var l=n(i,o);return e(l)?l:void 0}return yf=r,yf}var wf,L_;function oy(){if(L_)return wf;L_=1;var e=hi(),n=sr(),r=e(n,"Map");return wf=r,wf}var xf,$_;function qu(){if($_)return xf;$_=1;var e=hi(),n=e(Object,"create");return xf=n,xf}var _f,q_;function z$(){if(q_)return _f;q_=1;var e=qu();function n(){this.__data__=e?e(null):{},this.size=0}return _f=n,_f}var bf,D_;function B$(){if(D_)return bf;D_=1;function e(n){var r=this.has(n)&&delete this.__data__[n];return this.size-=r?1:0,r}return bf=e,bf}var Sf,F_;function U$(){if(F_)return Sf;F_=1;var e=qu(),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 Sf=o,Sf}var kf,z_;function H$(){if(z_)return kf;z_=1;var e=qu(),n=Object.prototype,r=n.hasOwnProperty;function i(o){var l=this.__data__;return e?l[o]!==void 0:r.call(l,o)}return kf=i,kf}var Ef,B_;function W$(){if(B_)return Ef;B_=1;var e=qu(),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 Ef=r,Ef}var Nf,U_;function V$(){if(U_)return Nf;U_=1;var e=z$(),n=B$(),r=U$(),i=H$(),o=W$();function l(u){var c=-1,h=u==null?0:u.length;for(this.clear();++c<h;){var p=u[c];this.set(p[0],p[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=i,l.prototype.set=o,Nf=l,Nf}var Cf,H_;function G$(){if(H_)return Cf;H_=1;var e=V$(),n=$u(),r=oy();function i(){this.size=0,this.__data__={hash:new e,map:new(r||n),string:new e}}return Cf=i,Cf}var Rf,W_;function Y$(){if(W_)return Rf;W_=1;function e(n){var r=typeof n;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?n!=="__proto__":n===null}return Rf=e,Rf}var Tf,V_;function Du(){if(V_)return Tf;V_=1;var e=Y$();function n(r,i){var o=r.__data__;return e(i)?o[typeof i=="string"?"string":"hash"]:o.map}return Tf=n,Tf}var jf,G_;function K$(){if(G_)return jf;G_=1;var e=Du();function n(r){var i=e(this,r).delete(r);return this.size-=i?1:0,i}return jf=n,jf}var Af,Y_;function X$(){if(Y_)return Af;Y_=1;var e=Du();function n(r){return e(this,r).get(r)}return Af=n,Af}var If,K_;function Q$(){if(K_)return If;K_=1;var e=Du();function n(r){return e(this,r).has(r)}return If=n,If}var Mf,X_;function Z$(){if(X_)return Mf;X_=1;var e=Du();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 Mf=n,Mf}var Of,Q_;function ay(){if(Q_)return Of;Q_=1;var e=G$(),n=K$(),r=X$(),i=Q$(),o=Z$();function l(u){var c=-1,h=u==null?0:u.length;for(this.clear();++c<h;){var p=u[c];this.set(p[0],p[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=i,l.prototype.set=o,Of=l,Of}var Pf,Z_;function J$(){if(Z_)return Pf;Z_=1;var e=$u(),n=oy(),r=ay(),i=200;function o(l,u){var c=this.__data__;if(c instanceof e){var h=c.__data__;if(!n||h.length<i-1)return h.push([l,u]),this.size=++c.size,this;c=this.__data__=new r(h)}return c.set(l,u),this.size=c.size,this}return Pf=o,Pf}var Lf,J_;function Fu(){if(J_)return Lf;J_=1;var e=$u(),n=A$(),r=I$(),i=M$(),o=O$(),l=J$();function u(c){var h=this.__data__=new e(c);this.size=h.size}return u.prototype.clear=n,u.prototype.delete=r,u.prototype.get=i,u.prototype.has=o,u.prototype.set=l,Lf=u,Lf}var $f,e1;function ly(){if(e1)return $f;e1=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 $f=e,$f}var qf,t1;function PC(){if(t1)return qf;t1=1;var e=hi(),n=(function(){try{var r=e(Object,"defineProperty");return r({},"",{}),r}catch{}})();return qf=n,qf}var Df,n1;function zu(){if(n1)return Df;n1=1;var e=PC();function n(r,i,o){i=="__proto__"&&e?e(r,i,{configurable:!0,enumerable:!0,value:o,writable:!0}):r[i]=o}return Df=n,Df}var Ff,r1;function Bu(){if(r1)return Ff;r1=1;var e=zu(),n=go(),r=Object.prototype,i=r.hasOwnProperty;function o(l,u,c){var h=l[u];(!(i.call(l,u)&&n(h,c))||c===void 0&&!(u in l))&&e(l,u,c)}return Ff=o,Ff}var zf,s1;function Ia(){if(s1)return zf;s1=1;var e=Bu(),n=zu();function r(i,o,l,u){var c=!l;l||(l={});for(var h=-1,p=o.length;++h<p;){var d=o[h],m=u?u(l[d],i[d],d,l,i):void 0;m===void 0&&(m=i[d]),c?n(l,d,m):e(l,d,m)}return l}return zf=r,zf}var Bf,i1;function eq(){if(i1)return Bf;i1=1;function e(n,r){for(var i=-1,o=Array(n);++i<n;)o[i]=r(i);return o}return Bf=e,Bf}var Uf,o1;function mr(){if(o1)return Uf;o1=1;function e(n){return n!=null&&typeof n=="object"}return Uf=e,Uf}var Hf,a1;function tq(){if(a1)return Hf;a1=1;var e=fi(),n=mr(),r="[object Arguments]";function i(o){return n(o)&&e(o)==r}return Hf=i,Hf}var Wf,l1;function Ma(){if(l1)return Wf;l1=1;var e=tq(),n=mr(),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 Wf=l,Wf}var Vf,u1;function bt(){if(u1)return Vf;u1=1;var e=Array.isArray;return Vf=e,Vf}var ca={exports:{}},Gf,c1;function nq(){if(c1)return Gf;c1=1;function e(){return!1}return Gf=e,Gf}ca.exports;var d1;function yo(){return d1||(d1=1,(function(e,n){var r=sr(),i=nq(),o=n&&!n.nodeType&&n,l=o&&!0&&e&&!e.nodeType&&e,u=l&&l.exports===o,c=u?r.Buffer:void 0,h=c?c.isBuffer:void 0,p=h||i;e.exports=p})(ca,ca.exports)),ca.exports}var Yf,f1;function Uu(){if(f1)return Yf;f1=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 Yf=r,Yf}var Kf,h1;function uy(){if(h1)return Kf;h1=1;var e=9007199254740991;function n(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=e}return Kf=n,Kf}var Xf,p1;function rq(){if(p1)return Xf;p1=1;var e=fi(),n=uy(),r=mr(),i="[object Arguments]",o="[object Array]",l="[object Boolean]",u="[object Date]",c="[object Error]",h="[object Function]",p="[object Map]",d="[object Number]",m="[object Object]",y="[object RegExp]",w="[object Set]",N="[object String]",_="[object WeakMap]",b="[object ArrayBuffer]",S="[object DataView]",k="[object Float32Array]",E="[object Float64Array]",R="[object Int8Array]",I="[object Int16Array]",O="[object Int32Array]",A="[object Uint8Array]",U="[object Uint8ClampedArray]",z="[object Uint16Array]",P="[object Uint32Array]",D={};D[k]=D[E]=D[R]=D[I]=D[O]=D[A]=D[U]=D[z]=D[P]=!0,D[i]=D[o]=D[b]=D[l]=D[S]=D[u]=D[c]=D[h]=D[p]=D[d]=D[m]=D[y]=D[w]=D[N]=D[_]=!1;function V(B){return r(B)&&n(B.length)&&!!D[e(B)]}return Xf=V,Xf}var Qf,m1;function Hu(){if(m1)return Qf;m1=1;function e(n){return function(r){return n(r)}}return Qf=e,Qf}var da={exports:{}};da.exports;var g1;function cy(){return g1||(g1=1,(function(e,n){var r=MC(),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 h=o&&o.require&&o.require("util").types;return h||u&&u.binding&&u.binding("util")}catch{}})();e.exports=c})(da,da.exports)),da.exports}var Zf,v1;function Oa(){if(v1)return Zf;v1=1;var e=rq(),n=Hu(),r=cy(),i=r&&r.isTypedArray,o=i?n(i):e;return Zf=o,Zf}var Jf,y1;function LC(){if(y1)return Jf;y1=1;var e=eq(),n=Ma(),r=bt(),i=yo(),o=Uu(),l=Oa(),u=Object.prototype,c=u.hasOwnProperty;function h(p,d){var m=r(p),y=!m&&n(p),w=!m&&!y&&i(p),N=!m&&!y&&!w&&l(p),_=m||y||w||N,b=_?e(p.length,String):[],S=b.length;for(var k in p)(d||c.call(p,k))&&!(_&&(k=="length"||w&&(k=="offset"||k=="parent")||N&&(k=="buffer"||k=="byteLength"||k=="byteOffset")||o(k,S)))&&b.push(k);return b}return Jf=h,Jf}var eh,w1;function Wu(){if(w1)return eh;w1=1;var e=Object.prototype;function n(r){var i=r&&r.constructor,o=typeof i=="function"&&i.prototype||e;return r===o}return eh=n,eh}var th,x1;function $C(){if(x1)return th;x1=1;function e(n,r){return function(i){return n(r(i))}}return th=e,th}var nh,_1;function sq(){if(_1)return nh;_1=1;var e=$C(),n=e(Object.keys,Object);return nh=n,nh}var rh,b1;function dy(){if(b1)return rh;b1=1;var e=Wu(),n=sq(),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 rh=o,rh}var sh,S1;function Ur(){if(S1)return sh;S1=1;var e=Aa(),n=uy();function r(i){return i!=null&&n(i.length)&&!e(i)}return sh=r,sh}var ih,k1;function Cs(){if(k1)return ih;k1=1;var e=LC(),n=dy(),r=Ur();function i(o){return r(o)?e(o):n(o)}return ih=i,ih}var oh,E1;function iq(){if(E1)return oh;E1=1;var e=Ia(),n=Cs();function r(i,o){return i&&e(o,n(o),i)}return oh=r,oh}var ah,N1;function oq(){if(N1)return ah;N1=1;function e(n){var r=[];if(n!=null)for(var i in Object(n))r.push(i);return r}return ah=e,ah}var lh,C1;function aq(){if(C1)return lh;C1=1;var e=qn(),n=Wu(),r=oq(),i=Object.prototype,o=i.hasOwnProperty;function l(u){if(!e(u))return r(u);var c=n(u),h=[];for(var p in u)p=="constructor"&&(c||!o.call(u,p))||h.push(p);return h}return lh=l,lh}var uh,R1;function pi(){if(R1)return uh;R1=1;var e=LC(),n=aq(),r=Ur();function i(o){return r(o)?e(o,!0):n(o)}return uh=i,uh}var ch,T1;function lq(){if(T1)return ch;T1=1;var e=Ia(),n=pi();function r(i,o){return i&&e(o,n(o),i)}return ch=r,ch}var fa={exports:{}};fa.exports;var j1;function qC(){return j1||(j1=1,(function(e,n){var r=sr(),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 h(p,d){if(d)return p.slice();var m=p.length,y=c?c(m):new p.constructor(m);return p.copy(y),y}e.exports=h})(fa,fa.exports)),fa.exports}var dh,A1;function DC(){if(A1)return dh;A1=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 dh=e,dh}var fh,I1;function FC(){if(I1)return fh;I1=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 fh=e,fh}var hh,M1;function zC(){if(M1)return hh;M1=1;function e(){return[]}return hh=e,hh}var ph,O1;function fy(){if(O1)return ph;O1=1;var e=FC(),n=zC(),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 ph=l,ph}var mh,P1;function uq(){if(P1)return mh;P1=1;var e=Ia(),n=fy();function r(i,o){return e(i,n(i),o)}return mh=r,mh}var gh,L1;function hy(){if(L1)return gh;L1=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 gh=e,gh}var vh,$1;function Vu(){if($1)return vh;$1=1;var e=$C(),n=e(Object.getPrototypeOf,Object);return vh=n,vh}var yh,q1;function BC(){if(q1)return yh;q1=1;var e=hy(),n=Vu(),r=fy(),i=zC(),o=Object.getOwnPropertySymbols,l=o?function(u){for(var c=[];u;)e(c,r(u)),u=n(u);return c}:i;return yh=l,yh}var wh,D1;function cq(){if(D1)return wh;D1=1;var e=Ia(),n=BC();function r(i,o){return e(i,n(i),o)}return wh=r,wh}var xh,F1;function UC(){if(F1)return xh;F1=1;var e=hy(),n=bt();function r(i,o,l){var u=o(i);return n(i)?u:e(u,l(i))}return xh=r,xh}var _h,z1;function HC(){if(z1)return _h;z1=1;var e=UC(),n=fy(),r=Cs();function i(o){return e(o,r,n)}return _h=i,_h}var bh,B1;function dq(){if(B1)return bh;B1=1;var e=UC(),n=BC(),r=pi();function i(o){return e(o,r,n)}return bh=i,bh}var Sh,U1;function fq(){if(U1)return Sh;U1=1;var e=hi(),n=sr(),r=e(n,"DataView");return Sh=r,Sh}var kh,H1;function hq(){if(H1)return kh;H1=1;var e=hi(),n=sr(),r=e(n,"Promise");return kh=r,kh}var Eh,W1;function WC(){if(W1)return Eh;W1=1;var e=hi(),n=sr(),r=e(n,"Set");return Eh=r,Eh}var Nh,V1;function pq(){if(V1)return Nh;V1=1;var e=hi(),n=sr(),r=e(n,"WeakMap");return Nh=r,Nh}var Ch,G1;function wo(){if(G1)return Ch;G1=1;var e=fq(),n=oy(),r=hq(),i=WC(),o=pq(),l=fi(),u=OC(),c="[object Map]",h="[object Object]",p="[object Promise]",d="[object Set]",m="[object WeakMap]",y="[object DataView]",w=u(e),N=u(n),_=u(r),b=u(i),S=u(o),k=l;return(e&&k(new e(new ArrayBuffer(1)))!=y||n&&k(new n)!=c||r&&k(r.resolve())!=p||i&&k(new i)!=d||o&&k(new o)!=m)&&(k=function(E){var R=l(E),I=R==h?E.constructor:void 0,O=I?u(I):"";if(O)switch(O){case w:return y;case N:return c;case _:return p;case b:return d;case S:return m}return R}),Ch=k,Ch}var Rh,Y1;function mq(){if(Y1)return Rh;Y1=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 Rh=r,Rh}var Th,K1;function VC(){if(K1)return Th;K1=1;var e=sr(),n=e.Uint8Array;return Th=n,Th}var jh,X1;function py(){if(X1)return jh;X1=1;var e=VC();function n(r){var i=new r.constructor(r.byteLength);return new e(i).set(new e(r)),i}return jh=n,jh}var Ah,Q1;function gq(){if(Q1)return Ah;Q1=1;var e=py();function n(r,i){var o=i?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.byteLength)}return Ah=n,Ah}var Ih,Z1;function vq(){if(Z1)return Ih;Z1=1;var e=/\w*$/;function n(r){var i=new r.constructor(r.source,e.exec(r));return i.lastIndex=r.lastIndex,i}return Ih=n,Ih}var Mh,J1;function yq(){if(J1)return Mh;J1=1;var e=vo(),n=e?e.prototype:void 0,r=n?n.valueOf:void 0;function i(o){return r?Object(r.call(o)):{}}return Mh=i,Mh}var Oh,eb;function GC(){if(eb)return Oh;eb=1;var e=py();function n(r,i){var o=i?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.length)}return Oh=n,Oh}var Ph,tb;function wq(){if(tb)return Ph;tb=1;var e=py(),n=gq(),r=vq(),i=yq(),o=GC(),l="[object Boolean]",u="[object Date]",c="[object Map]",h="[object Number]",p="[object RegExp]",d="[object Set]",m="[object String]",y="[object Symbol]",w="[object ArrayBuffer]",N="[object DataView]",_="[object Float32Array]",b="[object Float64Array]",S="[object Int8Array]",k="[object Int16Array]",E="[object Int32Array]",R="[object Uint8Array]",I="[object Uint8ClampedArray]",O="[object Uint16Array]",A="[object Uint32Array]";function U(z,P,D){var V=z.constructor;switch(P){case w:return e(z);case l:case u:return new V(+z);case N:return n(z,D);case _:case b:case S:case k:case E:case R:case I:case O:case A:return o(z,D);case c:return new V;case h:case m:return new V(z);case p:return r(z);case d:return new V;case y:return i(z)}}return Ph=U,Ph}var Lh,nb;function YC(){if(nb)return Lh;nb=1;var e=qn(),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 Lh=r,Lh}var $h,rb;function KC(){if(rb)return $h;rb=1;var e=YC(),n=Vu(),r=Wu();function i(o){return typeof o.constructor=="function"&&!r(o)?e(n(o)):{}}return $h=i,$h}var qh,sb;function xq(){if(sb)return qh;sb=1;var e=wo(),n=mr(),r="[object Map]";function i(o){return n(o)&&e(o)==r}return qh=i,qh}var Dh,ib;function _q(){if(ib)return Dh;ib=1;var e=xq(),n=Hu(),r=cy(),i=r&&r.isMap,o=i?n(i):e;return Dh=o,Dh}var Fh,ob;function bq(){if(ob)return Fh;ob=1;var e=wo(),n=mr(),r="[object Set]";function i(o){return n(o)&&e(o)==r}return Fh=i,Fh}var zh,ab;function Sq(){if(ab)return zh;ab=1;var e=bq(),n=Hu(),r=cy(),i=r&&r.isSet,o=i?n(i):e;return zh=o,zh}var Bh,lb;function XC(){if(lb)return Bh;lb=1;var e=Fu(),n=ly(),r=Bu(),i=iq(),o=lq(),l=qC(),u=DC(),c=uq(),h=cq(),p=HC(),d=dq(),m=wo(),y=mq(),w=wq(),N=KC(),_=bt(),b=yo(),S=_q(),k=qn(),E=Sq(),R=Cs(),I=pi(),O=1,A=2,U=4,z="[object Arguments]",P="[object Array]",D="[object Boolean]",V="[object Date]",B="[object Error]",C="[object Function]",q="[object GeneratorFunction]",L="[object Map]",re="[object Number]",Z="[object Object]",H="[object RegExp]",J="[object Set]",M="[object String]",G="[object Symbol]",Y="[object WeakMap]",$="[object ArrayBuffer]",Q="[object DataView]",ne="[object Float32Array]",oe="[object Float64Array]",fe="[object Int8Array]",te="[object Int16Array]",ce="[object Int32Array]",Ce="[object Uint8Array]",ve="[object Uint8ClampedArray]",je="[object Uint16Array]",ye="[object Uint32Array]",ke={};ke[z]=ke[P]=ke[$]=ke[Q]=ke[D]=ke[V]=ke[ne]=ke[oe]=ke[fe]=ke[te]=ke[ce]=ke[L]=ke[re]=ke[Z]=ke[H]=ke[J]=ke[M]=ke[G]=ke[Ce]=ke[ve]=ke[je]=ke[ye]=!0,ke[B]=ke[C]=ke[Y]=!1;function Ye(we,_e,Be,it,pt,Ze){var Fe,Je=_e&O,Xe=_e&A,Mt=_e&U;if(Be&&(Fe=pt?Be(we,it,pt,Ze):Be(we)),Fe!==void 0)return Fe;if(!k(we))return we;var ut=_(we);if(ut){if(Fe=y(we),!Je)return u(we,Fe)}else{var Qe=m(we),Ot=Qe==C||Qe==q;if(b(we))return l(we,Je);if(Qe==Z||Qe==z||Ot&&!pt){if(Fe=Xe||Ot?{}:N(we),!Je)return Xe?h(we,o(Fe,we)):c(we,i(Fe,we))}else{if(!ke[Qe])return pt?we:{};Fe=w(we,Qe,Je)}}Ze||(Ze=new e);var Ft=Ze.get(we);if(Ft)return Ft;Ze.set(we,Fe),E(we)?we.forEach(function(mt){Fe.add(Ye(mt,_e,Be,mt,we,Ze))}):S(we)&&we.forEach(function(mt,wt){Fe.set(wt,Ye(mt,_e,Be,wt,we,Ze))});var et=Mt?Xe?d:p:Xe?I:R,St=ut?void 0:et(we);return n(St||we,function(mt,wt){St&&(wt=mt,mt=we[wt]),r(Fe,wt,Ye(mt,_e,Be,wt,we,Ze))}),Fe}return Bh=Ye,Bh}var Uh,ub;function kq(){if(ub)return Uh;ub=1;var e=XC(),n=4;function r(i){return e(i,n)}return Uh=r,Uh}var Hh,cb;function my(){if(cb)return Hh;cb=1;function e(n){return function(){return n}}return Hh=e,Hh}var Wh,db;function Eq(){if(db)return Wh;db=1;function e(n){return function(r,i,o){for(var l=-1,u=Object(r),c=o(r),h=c.length;h--;){var p=c[n?h:++l];if(i(u[p],p,u)===!1)break}return r}}return Wh=e,Wh}var Vh,fb;function gy(){if(fb)return Vh;fb=1;var e=Eq(),n=e();return Vh=n,Vh}var Gh,hb;function vy(){if(hb)return Gh;hb=1;var e=gy(),n=Cs();function r(i,o){return i&&e(i,o,n)}return Gh=r,Gh}var Yh,pb;function Nq(){if(pb)return Yh;pb=1;var e=Ur();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,h=Object(o);(i?c--:++c<u)&&l(h[c],c,h)!==!1;);return o}}return Yh=n,Yh}var Kh,mb;function Gu(){if(mb)return Kh;mb=1;var e=vy(),n=Nq(),r=n(e);return Kh=r,Kh}var Xh,gb;function mi(){if(gb)return Xh;gb=1;function e(n){return n}return Xh=e,Xh}var Qh,vb;function QC(){if(vb)return Qh;vb=1;var e=mi();function n(r){return typeof r=="function"?r:e}return Qh=n,Qh}var Zh,yb;function ZC(){if(yb)return Zh;yb=1;var e=ly(),n=Gu(),r=QC(),i=bt();function o(l,u){var c=i(l)?e:n;return c(l,r(u))}return Zh=o,Zh}var Jh,wb;function JC(){return wb||(wb=1,Jh=ZC()),Jh}var ep,xb;function Cq(){if(xb)return ep;xb=1;var e=Gu();function n(r,i){var o=[];return e(r,function(l,u,c){i(l,u,c)&&o.push(l)}),o}return ep=n,ep}var tp,_b;function Rq(){if(_b)return tp;_b=1;var e="__lodash_hash_undefined__";function n(r){return this.__data__.set(r,e),this}return tp=n,tp}var np,bb;function Tq(){if(bb)return np;bb=1;function e(n){return this.__data__.has(n)}return np=e,np}var rp,Sb;function eR(){if(Sb)return rp;Sb=1;var e=ay(),n=Rq(),r=Tq();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,rp=i,rp}var sp,kb;function jq(){if(kb)return sp;kb=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 sp=e,sp}var ip,Eb;function tR(){if(Eb)return ip;Eb=1;function e(n,r){return n.has(r)}return ip=e,ip}var op,Nb;function nR(){if(Nb)return op;Nb=1;var e=eR(),n=jq(),r=tR(),i=1,o=2;function l(u,c,h,p,d,m){var y=h&i,w=u.length,N=c.length;if(w!=N&&!(y&&N>w))return!1;var _=m.get(u),b=m.get(c);if(_&&b)return _==c&&b==u;var S=-1,k=!0,E=h&o?new e:void 0;for(m.set(u,c),m.set(c,u);++S<w;){var R=u[S],I=c[S];if(p)var O=y?p(I,R,S,c,u,m):p(R,I,S,u,c,m);if(O!==void 0){if(O)continue;k=!1;break}if(E){if(!n(c,function(A,U){if(!r(E,U)&&(R===A||d(R,A,h,p,m)))return E.push(U)})){k=!1;break}}else if(!(R===I||d(R,I,h,p,m))){k=!1;break}}return m.delete(u),m.delete(c),k}return op=l,op}var ap,Cb;function Aq(){if(Cb)return ap;Cb=1;function e(n){var r=-1,i=Array(n.size);return n.forEach(function(o,l){i[++r]=[l,o]}),i}return ap=e,ap}var lp,Rb;function yy(){if(Rb)return lp;Rb=1;function e(n){var r=-1,i=Array(n.size);return n.forEach(function(o){i[++r]=o}),i}return lp=e,lp}var up,Tb;function Iq(){if(Tb)return up;Tb=1;var e=vo(),n=VC(),r=go(),i=nR(),o=Aq(),l=yy(),u=1,c=2,h="[object Boolean]",p="[object Date]",d="[object Error]",m="[object Map]",y="[object Number]",w="[object RegExp]",N="[object Set]",_="[object String]",b="[object Symbol]",S="[object ArrayBuffer]",k="[object DataView]",E=e?e.prototype:void 0,R=E?E.valueOf:void 0;function I(O,A,U,z,P,D,V){switch(U){case k:if(O.byteLength!=A.byteLength||O.byteOffset!=A.byteOffset)return!1;O=O.buffer,A=A.buffer;case S:return!(O.byteLength!=A.byteLength||!D(new n(O),new n(A)));case h:case p:case y:return r(+O,+A);case d:return O.name==A.name&&O.message==A.message;case w:case _:return O==A+"";case m:var B=o;case N:var C=z&u;if(B||(B=l),O.size!=A.size&&!C)return!1;var q=V.get(O);if(q)return q==A;z|=c,V.set(O,A);var L=i(B(O),B(A),z,P,D,V);return V.delete(O),L;case b:if(R)return R.call(O)==R.call(A)}return!1}return up=I,up}var cp,jb;function Mq(){if(jb)return cp;jb=1;var e=HC(),n=1,r=Object.prototype,i=r.hasOwnProperty;function o(l,u,c,h,p,d){var m=c&n,y=e(l),w=y.length,N=e(u),_=N.length;if(w!=_&&!m)return!1;for(var b=w;b--;){var S=y[b];if(!(m?S in u:i.call(u,S)))return!1}var k=d.get(l),E=d.get(u);if(k&&E)return k==u&&E==l;var R=!0;d.set(l,u),d.set(u,l);for(var I=m;++b<w;){S=y[b];var O=l[S],A=u[S];if(h)var U=m?h(A,O,S,u,l,d):h(O,A,S,l,u,d);if(!(U===void 0?O===A||p(O,A,c,h,d):U)){R=!1;break}I||(I=S=="constructor")}if(R&&!I){var z=l.constructor,P=u.constructor;z!=P&&"constructor"in l&&"constructor"in u&&!(typeof z=="function"&&z instanceof z&&typeof P=="function"&&P instanceof P)&&(R=!1)}return d.delete(l),d.delete(u),R}return cp=o,cp}var dp,Ab;function Oq(){if(Ab)return dp;Ab=1;var e=Fu(),n=nR(),r=Iq(),i=Mq(),o=wo(),l=bt(),u=yo(),c=Oa(),h=1,p="[object Arguments]",d="[object Array]",m="[object Object]",y=Object.prototype,w=y.hasOwnProperty;function N(_,b,S,k,E,R){var I=l(_),O=l(b),A=I?d:o(_),U=O?d:o(b);A=A==p?m:A,U=U==p?m:U;var z=A==m,P=U==m,D=A==U;if(D&&u(_)){if(!u(b))return!1;I=!0,z=!1}if(D&&!z)return R||(R=new e),I||c(_)?n(_,b,S,k,E,R):r(_,b,A,S,k,E,R);if(!(S&h)){var V=z&&w.call(_,"__wrapped__"),B=P&&w.call(b,"__wrapped__");if(V||B){var C=V?_.value():_,q=B?b.value():b;return R||(R=new e),E(C,q,S,k,R)}}return D?(R||(R=new e),i(_,b,S,k,E,R)):!1}return dp=N,dp}var fp,Ib;function rR(){if(Ib)return fp;Ib=1;var e=Oq(),n=mr();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 fp=r,fp}var hp,Mb;function Pq(){if(Mb)return hp;Mb=1;var e=Fu(),n=rR(),r=1,i=2;function o(l,u,c,h){var p=c.length,d=p,m=!h;if(l==null)return!d;for(l=Object(l);p--;){var y=c[p];if(m&&y[2]?y[1]!==l[y[0]]:!(y[0]in l))return!1}for(;++p<d;){y=c[p];var w=y[0],N=l[w],_=y[1];if(m&&y[2]){if(N===void 0&&!(w in l))return!1}else{var b=new e;if(h)var S=h(N,_,w,l,u,b);if(!(S===void 0?n(_,N,r|i,h,b):S))return!1}}return!0}return hp=o,hp}var pp,Ob;function sR(){if(Ob)return pp;Ob=1;var e=qn();function n(r){return r===r&&!e(r)}return pp=n,pp}var mp,Pb;function Lq(){if(Pb)return mp;Pb=1;var e=sR(),n=Cs();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 mp=r,mp}var gp,Lb;function iR(){if(Lb)return gp;Lb=1;function e(n,r){return function(i){return i==null?!1:i[n]===r&&(r!==void 0||n in Object(i))}}return gp=e,gp}var vp,$b;function $q(){if($b)return vp;$b=1;var e=Pq(),n=Lq(),r=iR();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 vp=i,vp}var yp,qb;function xo(){if(qb)return yp;qb=1;var e=fi(),n=mr(),r="[object Symbol]";function i(o){return typeof o=="symbol"||n(o)&&e(o)==r}return yp=i,yp}var wp,Db;function wy(){if(Db)return wp;Db=1;var e=bt(),n=xo(),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 wp=o,wp}var xp,Fb;function qq(){if(Fb)return xp;Fb=1;var e=ay(),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],h=l.cache;if(h.has(c))return h.get(c);var p=i.apply(this,u);return l.cache=h.set(c,p)||h,p};return l.cache=new(r.Cache||e),l}return r.Cache=e,xp=r,xp}var _p,zb;function Dq(){if(zb)return _p;zb=1;var e=qq(),n=500;function r(i){var o=e(i,function(u){return l.size===n&&l.clear(),u}),l=o.cache;return o}return _p=r,_p}var bp,Bb;function Fq(){if(Bb)return bp;Bb=1;var e=Dq(),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,h,p){l.push(h?p.replace(r,"$1"):c||u)}),l});return bp=i,bp}var Sp,Ub;function Yu(){if(Ub)return Sp;Ub=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 Sp=e,Sp}var kp,Hb;function zq(){if(Hb)return kp;Hb=1;var e=vo(),n=Yu(),r=bt(),i=xo(),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 h=c+"";return h=="0"&&1/c==-1/0?"-0":h}return kp=u,kp}var Ep,Wb;function oR(){if(Wb)return Ep;Wb=1;var e=zq();function n(r){return r==null?"":e(r)}return Ep=n,Ep}var Np,Vb;function Ku(){if(Vb)return Np;Vb=1;var e=bt(),n=wy(),r=Fq(),i=oR();function o(l,u){return e(l)?l:n(l,u)?[l]:r(i(l))}return Np=o,Np}var Cp,Gb;function Pa(){if(Gb)return Cp;Gb=1;var e=xo();function n(r){if(typeof r=="string"||e(r))return r;var i=r+"";return i=="0"&&1/r==-1/0?"-0":i}return Cp=n,Cp}var Rp,Yb;function Xu(){if(Yb)return Rp;Yb=1;var e=Ku(),n=Pa();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 Rp=r,Rp}var Tp,Kb;function Bq(){if(Kb)return Tp;Kb=1;var e=Xu();function n(r,i,o){var l=r==null?void 0:e(r,i);return l===void 0?o:l}return Tp=n,Tp}var jp,Xb;function Uq(){if(Xb)return jp;Xb=1;function e(n,r){return n!=null&&r in Object(n)}return jp=e,jp}var Ap,Qb;function aR(){if(Qb)return Ap;Qb=1;var e=Ku(),n=Ma(),r=bt(),i=Uu(),o=uy(),l=Pa();function u(c,h,p){h=e(h,c);for(var d=-1,m=h.length,y=!1;++d<m;){var w=l(h[d]);if(!(y=c!=null&&p(c,w)))break;c=c[w]}return y||++d!=m?y:(m=c==null?0:c.length,!!m&&o(m)&&i(w,m)&&(r(c)||n(c)))}return Ap=u,Ap}var Ip,Zb;function lR(){if(Zb)return Ip;Zb=1;var e=Uq(),n=aR();function r(i,o){return i!=null&&n(i,o,e)}return Ip=r,Ip}var Mp,Jb;function Hq(){if(Jb)return Mp;Jb=1;var e=rR(),n=Bq(),r=lR(),i=wy(),o=sR(),l=iR(),u=Pa(),c=1,h=2;function p(d,m){return i(d)&&o(m)?l(u(d),m):function(y){var w=n(y,d);return w===void 0&&w===m?r(y,d):e(m,w,c|h)}}return Mp=p,Mp}var Op,eS;function uR(){if(eS)return Op;eS=1;function e(n){return function(r){return r==null?void 0:r[n]}}return Op=e,Op}var Pp,tS;function Wq(){if(tS)return Pp;tS=1;var e=Xu();function n(r){return function(i){return e(i,r)}}return Pp=n,Pp}var Lp,nS;function Vq(){if(nS)return Lp;nS=1;var e=uR(),n=Wq(),r=wy(),i=Pa();function o(l){return r(l)?e(i(l)):n(l)}return Lp=o,Lp}var $p,rS;function Hr(){if(rS)return $p;rS=1;var e=$q(),n=Hq(),r=mi(),i=bt(),o=Vq();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 $p=l,$p}var qp,sS;function cR(){if(sS)return qp;sS=1;var e=FC(),n=Cq(),r=Hr(),i=bt();function o(l,u){var c=i(l)?e:n;return c(l,r(u,3))}return qp=o,qp}var Dp,iS;function Gq(){if(iS)return Dp;iS=1;var e=Object.prototype,n=e.hasOwnProperty;function r(i,o){return i!=null&&n.call(i,o)}return Dp=r,Dp}var Fp,oS;function dR(){if(oS)return Fp;oS=1;var e=Gq(),n=aR();function r(i,o){return i!=null&&n(i,o,e)}return Fp=r,Fp}var zp,aS;function Yq(){if(aS)return zp;aS=1;var e=dy(),n=wo(),r=Ma(),i=bt(),o=Ur(),l=yo(),u=Wu(),c=Oa(),h="[object Map]",p="[object Set]",d=Object.prototype,m=d.hasOwnProperty;function y(w){if(w==null)return!0;if(o(w)&&(i(w)||typeof w=="string"||typeof w.splice=="function"||l(w)||c(w)||r(w)))return!w.length;var N=n(w);if(N==h||N==p)return!w.size;if(u(w))return!e(w).length;for(var _ in w)if(m.call(w,_))return!1;return!0}return zp=y,zp}var Bp,lS;function fR(){if(lS)return Bp;lS=1;function e(n){return n===void 0}return Bp=e,Bp}var Up,uS;function hR(){if(uS)return Up;uS=1;var e=Gu(),n=Ur();function r(i,o){var l=-1,u=n(i)?Array(i.length):[];return e(i,function(c,h,p){u[++l]=o(c,h,p)}),u}return Up=r,Up}var Hp,cS;function pR(){if(cS)return Hp;cS=1;var e=Yu(),n=Hr(),r=hR(),i=bt();function o(l,u){var c=i(l)?e:r;return c(l,n(u,3))}return Hp=o,Hp}var Wp,dS;function Kq(){if(dS)return Wp;dS=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 Wp=e,Wp}var Vp,fS;function Xq(){if(fS)return Vp;fS=1;function e(n,r,i,o,l){return l(n,function(u,c,h){i=o?(o=!1,u):r(i,u,c,h)}),i}return Vp=e,Vp}var Gp,hS;function mR(){if(hS)return Gp;hS=1;var e=Kq(),n=Gu(),r=Hr(),i=Xq(),o=bt();function l(u,c,h){var p=o(u)?e:i,d=arguments.length<3;return p(u,r(c,4),h,d,n)}return Gp=l,Gp}var Yp,pS;function Qq(){if(pS)return Yp;pS=1;var e=fi(),n=bt(),r=mr(),i="[object String]";function o(l){return typeof l=="string"||!n(l)&&r(l)&&e(l)==i}return Yp=o,Yp}var Kp,mS;function Zq(){if(mS)return Kp;mS=1;var e=uR(),n=e("length");return Kp=n,Kp}var Xp,gS;function Jq(){if(gS)return Xp;gS=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 h(p){return c.test(p)}return Xp=h,Xp}var Qp,vS;function eD(){if(vS)return Qp;vS=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+"]",h="\\ud83c[\\udffb-\\udfff]",p="(?:"+c+"|"+h+")",d="[^"+e+"]",m="(?:\\ud83c[\\udde6-\\uddff]){2}",y="[\\ud800-\\udbff][\\udc00-\\udfff]",w="\\u200d",N=p+"?",_="["+l+"]?",b="(?:"+w+"(?:"+[d,m,y].join("|")+")"+_+N+")*",S=_+N+b,k="(?:"+[d+c+"?",c,m,y,u].join("|")+")",E=RegExp(h+"(?="+h+")|"+k+S,"g");function R(I){for(var O=E.lastIndex=0;E.test(I);)++O;return O}return Qp=R,Qp}var Zp,yS;function tD(){if(yS)return Zp;yS=1;var e=Zq(),n=Jq(),r=eD();function i(o){return n(o)?r(o):e(o)}return Zp=i,Zp}var Jp,wS;function nD(){if(wS)return Jp;wS=1;var e=dy(),n=wo(),r=Ur(),i=Qq(),o=tD(),l="[object Map]",u="[object Set]";function c(h){if(h==null)return 0;if(r(h))return i(h)?o(h):h.length;var p=n(h);return p==l||p==u?h.size:e(h).length}return Jp=c,Jp}var em,xS;function rD(){if(xS)return em;xS=1;var e=ly(),n=YC(),r=vy(),i=Hr(),o=Vu(),l=bt(),u=yo(),c=Aa(),h=qn(),p=Oa();function d(m,y,w){var N=l(m),_=N||u(m)||p(m);if(y=i(y,4),w==null){var b=m&&m.constructor;_?w=N?new b:[]:h(m)?w=c(b)?n(o(m)):{}:w={}}return(_?e:r)(m,function(S,k,E){return y(w,S,k,E)}),w}return em=d,em}var tm,_S;function sD(){if(_S)return tm;_S=1;var e=vo(),n=Ma(),r=bt(),i=e?e.isConcatSpreadable:void 0;function o(l){return r(l)||n(l)||!!(i&&l&&l[i])}return tm=o,tm}var nm,bS;function xy(){if(bS)return nm;bS=1;var e=hy(),n=sD();function r(i,o,l,u,c){var h=-1,p=i.length;for(l||(l=n),c||(c=[]);++h<p;){var d=i[h];o>0&&l(d)?o>1?r(d,o-1,l,u,c):e(c,d):u||(c[c.length]=d)}return c}return nm=r,nm}var rm,SS;function iD(){if(SS)return rm;SS=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 rm=e,rm}var sm,kS;function gR(){if(kS)return sm;kS=1;var e=iD(),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,h=n(u.length-o,0),p=Array(h);++c<h;)p[c]=u[o+c];c=-1;for(var d=Array(o+1);++c<o;)d[c]=u[c];return d[o]=l(p),e(i,this,d)}}return sm=r,sm}var im,ES;function oD(){if(ES)return im;ES=1;var e=my(),n=PC(),r=mi(),i=n?function(o,l){return n(o,"toString",{configurable:!0,enumerable:!1,value:e(l),writable:!0})}:r;return im=i,im}var om,NS;function aD(){if(NS)return om;NS=1;var e=800,n=16,r=Date.now;function i(o){var l=0,u=0;return function(){var c=r(),h=n-(c-u);if(u=c,h>0){if(++l>=e)return arguments[0]}else l=0;return o.apply(void 0,arguments)}}return om=i,om}var am,CS;function vR(){if(CS)return am;CS=1;var e=oD(),n=aD(),r=n(e);return am=r,am}var lm,RS;function Qu(){if(RS)return lm;RS=1;var e=mi(),n=gR(),r=vR();function i(o,l){return r(n(o,l,e),o+"")}return lm=i,lm}var um,TS;function yR(){if(TS)return um;TS=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 um=e,um}var cm,jS;function lD(){if(jS)return cm;jS=1;function e(n){return n!==n}return cm=e,cm}var dm,AS;function uD(){if(AS)return dm;AS=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 dm=e,dm}var fm,IS;function cD(){if(IS)return fm;IS=1;var e=yR(),n=lD(),r=uD();function i(o,l,u){return l===l?r(o,l,u):e(o,n,u)}return fm=i,fm}var hm,MS;function dD(){if(MS)return hm;MS=1;var e=cD();function n(r,i){var o=r==null?0:r.length;return!!o&&e(r,i,0)>-1}return hm=n,hm}var pm,OS;function fD(){if(OS)return pm;OS=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 pm=e,pm}var mm,PS;function hD(){if(PS)return mm;PS=1;function e(){}return mm=e,mm}var gm,LS;function pD(){if(LS)return gm;LS=1;var e=WC(),n=hD(),r=yy(),i=1/0,o=e&&1/r(new e([,-0]))[1]==i?function(l){return new e(l)}:n;return gm=o,gm}var vm,$S;function mD(){if($S)return vm;$S=1;var e=eR(),n=dD(),r=fD(),i=tR(),o=pD(),l=yy(),u=200;function c(h,p,d){var m=-1,y=n,w=h.length,N=!0,_=[],b=_;if(d)N=!1,y=r;else if(w>=u){var S=p?null:o(h);if(S)return l(S);N=!1,y=i,b=new e}else b=p?[]:_;e:for(;++m<w;){var k=h[m],E=p?p(k):k;if(k=d||k!==0?k:0,N&&E===E){for(var R=b.length;R--;)if(b[R]===E)continue e;p&&b.push(E),_.push(k)}else y(b,E,d)||(b!==_&&b.push(E),_.push(k))}return _}return vm=c,vm}var ym,qS;function wR(){if(qS)return ym;qS=1;var e=Ur(),n=mr();function r(i){return n(i)&&e(i)}return ym=r,ym}var wm,DS;function gD(){if(DS)return wm;DS=1;var e=xy(),n=Qu(),r=mD(),i=wR(),o=n(function(l){return r(e(l,1,i,!0))});return wm=o,wm}var xm,FS;function vD(){if(FS)return xm;FS=1;var e=Yu();function n(r,i){return e(i,function(o){return r[o]})}return xm=n,xm}var _m,zS;function xR(){if(zS)return _m;zS=1;var e=vD(),n=Cs();function r(i){return i==null?[]:e(i,n(i))}return _m=r,_m}var bm,BS;function Dn(){if(BS)return bm;BS=1;var e;if(typeof iy=="function")try{e={clone:kq(),constant:my(),each:JC(),filter:cR(),has:dR(),isArray:bt(),isEmpty:Yq(),isFunction:Aa(),isUndefined:fR(),keys:Cs(),map:pR(),reduce:mR(),size:nD(),transform:rD(),union:gD(),values:xR()}}catch{}return e||(e=window._),bm=e,bm}var Sm,US;function _y(){if(US)return Sm;US=1;var e=Dn();Sm=o;var n="\0",r="\0",i="";function o(d){this._isDirected=e.has(d,"directed")?d.directed:!0,this._isMultigraph=e.has(d,"multigraph")?d.multigraph:!1,this._isCompound=e.has(d,"compound")?d.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(d){return this._label=d,this},o.prototype.graph=function(){return this._label},o.prototype.setDefaultNodeLabel=function(d){return e.isFunction(d)||(d=e.constant(d)),this._defaultNodeLabelFn=d,this},o.prototype.nodeCount=function(){return this._nodeCount},o.prototype.nodes=function(){return e.keys(this._nodes)},o.prototype.sources=function(){var d=this;return e.filter(this.nodes(),function(m){return e.isEmpty(d._in[m])})},o.prototype.sinks=function(){var d=this;return e.filter(this.nodes(),function(m){return e.isEmpty(d._out[m])})},o.prototype.setNodes=function(d,m){var y=arguments,w=this;return e.each(d,function(N){y.length>1?w.setNode(N,m):w.setNode(N)}),this},o.prototype.setNode=function(d,m){return e.has(this._nodes,d)?(arguments.length>1&&(this._nodes[d]=m),this):(this._nodes[d]=arguments.length>1?m:this._defaultNodeLabelFn(d),this._isCompound&&(this._parent[d]=r,this._children[d]={},this._children[r][d]=!0),this._in[d]={},this._preds[d]={},this._out[d]={},this._sucs[d]={},++this._nodeCount,this)},o.prototype.node=function(d){return this._nodes[d]},o.prototype.hasNode=function(d){return e.has(this._nodes,d)},o.prototype.removeNode=function(d){var m=this;if(e.has(this._nodes,d)){var y=function(w){m.removeEdge(m._edgeObjs[w])};delete this._nodes[d],this._isCompound&&(this._removeFromParentsChildList(d),delete this._parent[d],e.each(this.children(d),function(w){m.setParent(w)}),delete this._children[d]),e.each(e.keys(this._in[d]),y),delete this._in[d],delete this._preds[d],e.each(e.keys(this._out[d]),y),delete this._out[d],delete this._sucs[d],--this._nodeCount}return this},o.prototype.setParent=function(d,m){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(e.isUndefined(m))m=r;else{m+="";for(var y=m;!e.isUndefined(y);y=this.parent(y))if(y===d)throw new Error("Setting "+m+" as parent of "+d+" would create a cycle");this.setNode(m)}return this.setNode(d),this._removeFromParentsChildList(d),this._parent[d]=m,this._children[m][d]=!0,this},o.prototype._removeFromParentsChildList=function(d){delete this._children[this._parent[d]][d]},o.prototype.parent=function(d){if(this._isCompound){var m=this._parent[d];if(m!==r)return m}},o.prototype.children=function(d){if(e.isUndefined(d)&&(d=r),this._isCompound){var m=this._children[d];if(m)return e.keys(m)}else{if(d===r)return this.nodes();if(this.hasNode(d))return[]}},o.prototype.predecessors=function(d){var m=this._preds[d];if(m)return e.keys(m)},o.prototype.successors=function(d){var m=this._sucs[d];if(m)return e.keys(m)},o.prototype.neighbors=function(d){var m=this.predecessors(d);if(m)return e.union(m,this.successors(d))},o.prototype.isLeaf=function(d){var m;return this.isDirected()?m=this.successors(d):m=this.neighbors(d),m.length===0},o.prototype.filterNodes=function(d){var m=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});m.setGraph(this.graph());var y=this;e.each(this._nodes,function(_,b){d(b)&&m.setNode(b,_)}),e.each(this._edgeObjs,function(_){m.hasNode(_.v)&&m.hasNode(_.w)&&m.setEdge(_,y.edge(_))});var w={};function N(_){var b=y.parent(_);return b===void 0||m.hasNode(b)?(w[_]=b,b):b in w?w[b]:N(b)}return this._isCompound&&e.each(m.nodes(),function(_){m.setParent(_,N(_))}),m},o.prototype.setDefaultEdgeLabel=function(d){return e.isFunction(d)||(d=e.constant(d)),this._defaultEdgeLabelFn=d,this},o.prototype.edgeCount=function(){return this._edgeCount},o.prototype.edges=function(){return e.values(this._edgeObjs)},o.prototype.setPath=function(d,m){var y=this,w=arguments;return e.reduce(d,function(N,_){return w.length>1?y.setEdge(N,_,m):y.setEdge(N,_),_}),this},o.prototype.setEdge=function(){var d,m,y,w,N=!1,_=arguments[0];typeof _=="object"&&_!==null&&"v"in _?(d=_.v,m=_.w,y=_.name,arguments.length===2&&(w=arguments[1],N=!0)):(d=_,m=arguments[1],y=arguments[3],arguments.length>2&&(w=arguments[2],N=!0)),d=""+d,m=""+m,e.isUndefined(y)||(y=""+y);var b=c(this._isDirected,d,m,y);if(e.has(this._edgeLabels,b))return N&&(this._edgeLabels[b]=w),this;if(!e.isUndefined(y)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(d),this.setNode(m),this._edgeLabels[b]=N?w:this._defaultEdgeLabelFn(d,m,y);var S=h(this._isDirected,d,m,y);return d=S.v,m=S.w,Object.freeze(S),this._edgeObjs[b]=S,l(this._preds[m],d),l(this._sucs[d],m),this._in[m][b]=S,this._out[d][b]=S,this._edgeCount++,this},o.prototype.edge=function(d,m,y){var w=arguments.length===1?p(this._isDirected,arguments[0]):c(this._isDirected,d,m,y);return this._edgeLabels[w]},o.prototype.hasEdge=function(d,m,y){var w=arguments.length===1?p(this._isDirected,arguments[0]):c(this._isDirected,d,m,y);return e.has(this._edgeLabels,w)},o.prototype.removeEdge=function(d,m,y){var w=arguments.length===1?p(this._isDirected,arguments[0]):c(this._isDirected,d,m,y),N=this._edgeObjs[w];return N&&(d=N.v,m=N.w,delete this._edgeLabels[w],delete this._edgeObjs[w],u(this._preds[m],d),u(this._sucs[d],m),delete this._in[m][w],delete this._out[d][w],this._edgeCount--),this},o.prototype.inEdges=function(d,m){var y=this._in[d];if(y){var w=e.values(y);return m?e.filter(w,function(N){return N.v===m}):w}},o.prototype.outEdges=function(d,m){var y=this._out[d];if(y){var w=e.values(y);return m?e.filter(w,function(N){return N.w===m}):w}},o.prototype.nodeEdges=function(d,m){var y=this.inEdges(d,m);if(y)return y.concat(this.outEdges(d,m))};function l(d,m){d[m]?d[m]++:d[m]=1}function u(d,m){--d[m]||delete d[m]}function c(d,m,y,w){var N=""+m,_=""+y;if(!d&&N>_){var b=N;N=_,_=b}return N+i+_+i+(e.isUndefined(w)?n:w)}function h(d,m,y,w){var N=""+m,_=""+y;if(!d&&N>_){var b=N;N=_,_=b}var S={v:N,w:_};return w&&(S.name=w),S}function p(d,m){return c(d,m.v,m.w,m.name)}return Sm}var km,HS;function yD(){return HS||(HS=1,km="2.1.8"),km}var Em,WS;function wD(){return WS||(WS=1,Em={Graph:_y(),version:yD()}),Em}var Nm,VS;function xD(){if(VS)return Nm;VS=1;var e=Dn(),n=_y();Nm={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 h=u.node(c),p=u.parent(c),d={v:c};return e.isUndefined(h)||(d.value=h),e.isUndefined(p)||(d.parent=p),d})}function o(u){return e.map(u.edges(),function(c){var h=u.edge(c),p={v:c.v,w:c.w};return e.isUndefined(c.name)||(p.name=c.name),e.isUndefined(h)||(p.value=h),p})}function l(u){var c=new n(u.options).setGraph(u.value);return e.each(u.nodes,function(h){c.setNode(h.v,h.value),h.parent&&c.setParent(h.v,h.parent)}),e.each(u.edges,function(h){c.setEdge({v:h.v,w:h.w,name:h.name},h.value)}),c}return Nm}var Cm,GS;function _D(){if(GS)return Cm;GS=1;var e=Dn();Cm=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 Cm}var Rm,YS;function _R(){if(YS)return Rm;YS=1;var e=Dn();Rm=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},Rm}var Tm,KS;function bR(){if(KS)return Tm;KS=1;var e=Dn(),n=_R();Tm=i;var r=e.constant(1);function i(l,u,c,h){return o(l,String(u),c||r,h||function(p){return l.outEdges(p)})}function o(l,u,c,h){var p={},d=new n,m,y,w=function(N){var _=N.v!==m?N.v:N.w,b=p[_],S=c(N),k=y.distance+S;if(S<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+N+" Weight: "+S);k<b.distance&&(b.distance=k,b.predecessor=m,d.decrease(_,k))};for(l.nodes().forEach(function(N){var _=N===u?0:Number.POSITIVE_INFINITY;p[N]={distance:_},d.add(N,_)});d.size()>0&&(m=d.removeMin(),y=p[m],y.distance!==Number.POSITIVE_INFINITY);)h(m).forEach(w);return p}return Tm}var jm,XS;function bD(){if(XS)return jm;XS=1;var e=bR(),n=Dn();jm=r;function r(i,o,l){return n.transform(i.nodes(),function(u,c){u[c]=e(i,c,o,l)},{})}return jm}var Am,QS;function SR(){if(QS)return Am;QS=1;var e=Dn();Am=n;function n(r){var i=0,o=[],l={},u=[];function c(h){var p=l[h]={onStack:!0,lowlink:i,index:i++};if(o.push(h),r.successors(h).forEach(function(y){e.has(l,y)?l[y].onStack&&(p.lowlink=Math.min(p.lowlink,l[y].index)):(c(y),p.lowlink=Math.min(p.lowlink,l[y].lowlink))}),p.lowlink===p.index){var d=[],m;do m=o.pop(),l[m].onStack=!1,d.push(m);while(h!==m);u.push(d)}}return r.nodes().forEach(function(h){e.has(l,h)||c(h)}),u}return Am}var Im,ZS;function SD(){if(ZS)return Im;ZS=1;var e=Dn(),n=SR();Im=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 Im}var Mm,JS;function kD(){if(JS)return Mm;JS=1;var e=Dn();Mm=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={},h=o.nodes();return h.forEach(function(p){c[p]={},c[p][p]={distance:0},h.forEach(function(d){p!==d&&(c[p][d]={distance:Number.POSITIVE_INFINITY})}),u(p).forEach(function(d){var m=d.v===p?d.w:d.v,y=l(d);c[p][m]={distance:y,predecessor:p}})}),h.forEach(function(p){var d=c[p];h.forEach(function(m){var y=c[m];h.forEach(function(w){var N=y[p],_=d[w],b=y[w],S=N.distance+_.distance;S<b.distance&&(b.distance=S,b.predecessor=_.predecessor)})})}),c}return Mm}var Om,ek;function kR(){if(ek)return Om;ek=1;var e=Dn();Om=n,n.CycleException=r;function n(i){var o={},l={},u=[];function c(h){if(e.has(l,h))throw new r;e.has(o,h)||(l[h]=!0,o[h]=!0,e.each(i.predecessors(h),c),delete l[h],u.push(h))}if(e.each(i.sinks(),c),e.size(o)!==i.nodeCount())throw new r;return u}function r(){}return r.prototype=new Error,Om}var Pm,tk;function ED(){if(tk)return Pm;tk=1;var e=kR();Pm=n;function n(r){try{e(r)}catch(i){if(i instanceof e.CycleException)return!1;throw i}return!0}return Pm}var Lm,nk;function ER(){if(nk)return Lm;nk=1;var e=Dn();Lm=n;function n(i,o,l){e.isArray(o)||(o=[o]);var u=(i.isDirected()?i.successors:i.neighbors).bind(i),c=[],h={};return e.each(o,function(p){if(!i.hasNode(p))throw new Error("Graph does not have node: "+p);r(i,p,l==="post",h,u,c)}),c}function r(i,o,l,u,c,h){e.has(u,o)||(u[o]=!0,l||h.push(o),e.each(c(o),function(p){r(i,p,l,u,c,h)}),l&&h.push(o))}return Lm}var $m,rk;function ND(){if(rk)return $m;rk=1;var e=ER();$m=n;function n(r,i){return e(r,i,"post")}return $m}var qm,sk;function CD(){if(sk)return qm;sk=1;var e=ER();qm=n;function n(r,i){return e(r,i,"pre")}return qm}var Dm,ik;function RD(){if(ik)return Dm;ik=1;var e=Dn(),n=_y(),r=_R();Dm=i;function i(o,l){var u=new n,c={},h=new r,p;function d(y){var w=y.v===p?y.w:y.v,N=h.priority(w);if(N!==void 0){var _=l(y);_<N&&(c[w]=p,h.decrease(w,_))}}if(o.nodeCount()===0)return u;e.each(o.nodes(),function(y){h.add(y,Number.POSITIVE_INFINITY),u.setNode(y)}),h.decrease(o.nodes()[0],0);for(var m=!1;h.size()>0;){if(p=h.removeMin(),e.has(c,p))u.setEdge(p,c[p]);else{if(m)throw new Error("Input graph is not connected: "+o);m=!0}o.nodeEdges(p).forEach(d)}return u}return Dm}var Fm,ok;function TD(){return ok||(ok=1,Fm={components:_D(),dijkstra:bR(),dijkstraAll:bD(),findCycles:SD(),floydWarshall:kD(),isAcyclic:ED(),postorder:ND(),preorder:CD(),prim:RD(),tarjan:SR(),topsort:kR()}),Fm}var zm,ak;function jD(){if(ak)return zm;ak=1;var e=wD();return zm={Graph:e.Graph,json:xD(),alg:TD(),version:e.version},zm}var Bm,lk;function nr(){if(lk)return Bm;lk=1;var e;if(typeof iy=="function")try{e=jD()}catch{}return e||(e=window.graphlib),Bm=e,Bm}var Um,uk;function AD(){if(uk)return Um;uk=1;var e=XC(),n=1,r=4;function i(o){return e(o,n|r)}return Um=i,Um}var Hm,ck;function Zu(){if(ck)return Hm;ck=1;var e=go(),n=Ur(),r=Uu(),i=qn();function o(l,u,c){if(!i(c))return!1;var h=typeof u;return(h=="number"?n(c)&&r(u,c.length):h=="string"&&u in c)?e(c[u],l):!1}return Hm=o,Hm}var Wm,dk;function ID(){if(dk)return Wm;dk=1;var e=Qu(),n=go(),r=Zu(),i=pi(),o=Object.prototype,l=o.hasOwnProperty,u=e(function(c,h){c=Object(c);var p=-1,d=h.length,m=d>2?h[2]:void 0;for(m&&r(h[0],h[1],m)&&(d=1);++p<d;)for(var y=h[p],w=i(y),N=-1,_=w.length;++N<_;){var b=w[N],S=c[b];(S===void 0||n(S,o[b])&&!l.call(c,b))&&(c[b]=y[b])}return c});return Wm=u,Wm}var Vm,fk;function MD(){if(fk)return Vm;fk=1;var e=Hr(),n=Ur(),r=Cs();function i(o){return function(l,u,c){var h=Object(l);if(!n(l)){var p=e(u,3);l=r(l),u=function(m){return p(h[m],m,h)}}var d=o(l,u,c);return d>-1?h[p?l[d]:d]:void 0}}return Vm=i,Vm}var Gm,hk;function OD(){if(hk)return Gm;hk=1;var e=/\s/;function n(r){for(var i=r.length;i--&&e.test(r.charAt(i)););return i}return Gm=n,Gm}var Ym,pk;function PD(){if(pk)return Ym;pk=1;var e=OD(),n=/^\s+/;function r(i){return i&&i.slice(0,e(i)+1).replace(n,"")}return Ym=r,Ym}var Km,mk;function LD(){if(mk)return Km;mk=1;var e=PD(),n=qn(),r=xo(),i=NaN,o=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt;function h(p){if(typeof p=="number")return p;if(r(p))return i;if(n(p)){var d=typeof p.valueOf=="function"?p.valueOf():p;p=n(d)?d+"":d}if(typeof p!="string")return p===0?p:+p;p=e(p);var m=l.test(p);return m||u.test(p)?c(p.slice(2),m?2:8):o.test(p)?i:+p}return Km=h,Km}var Xm,gk;function NR(){if(gk)return Xm;gk=1;var e=LD(),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 Xm=i,Xm}var Qm,vk;function $D(){if(vk)return Qm;vk=1;var e=NR();function n(r){var i=e(r),o=i%1;return i===i?o?i-o:i:0}return Qm=n,Qm}var Zm,yk;function qD(){if(yk)return Zm;yk=1;var e=yR(),n=Hr(),r=$D(),i=Math.max;function o(l,u,c){var h=l==null?0:l.length;if(!h)return-1;var p=c==null?0:r(c);return p<0&&(p=i(h+p,0)),e(l,n(u,3),p)}return Zm=o,Zm}var Jm,wk;function DD(){if(wk)return Jm;wk=1;var e=MD(),n=qD(),r=e(n);return Jm=r,Jm}var eg,xk;function CR(){if(xk)return eg;xk=1;var e=xy();function n(r){var i=r==null?0:r.length;return i?e(r,1):[]}return eg=n,eg}var tg,_k;function FD(){if(_k)return tg;_k=1;var e=gy(),n=QC(),r=pi();function i(o,l){return o==null?o:e(o,n(l),r)}return tg=i,tg}var ng,bk;function zD(){if(bk)return ng;bk=1;function e(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}return ng=e,ng}var rg,Sk;function BD(){if(Sk)return rg;Sk=1;var e=zu(),n=vy(),r=Hr();function i(o,l){var u={};return l=r(l,3),n(o,function(c,h,p){e(u,h,l(c,h,p))}),u}return rg=i,rg}var sg,kk;function by(){if(kk)return sg;kk=1;var e=xo();function n(r,i,o){for(var l=-1,u=r.length;++l<u;){var c=r[l],h=i(c);if(h!=null&&(p===void 0?h===h&&!e(h):o(h,p)))var p=h,d=c}return d}return sg=n,sg}var ig,Ek;function UD(){if(Ek)return ig;Ek=1;function e(n,r){return n>r}return ig=e,ig}var og,Nk;function HD(){if(Nk)return og;Nk=1;var e=by(),n=UD(),r=mi();function i(o){return o&&o.length?e(o,r,n):void 0}return og=i,og}var ag,Ck;function RR(){if(Ck)return ag;Ck=1;var e=zu(),n=go();function r(i,o,l){(l!==void 0&&!n(i[o],l)||l===void 0&&!(o in i))&&e(i,o,l)}return ag=r,ag}var lg,Rk;function WD(){if(Rk)return lg;Rk=1;var e=fi(),n=Vu(),r=mr(),i="[object Object]",o=Function.prototype,l=Object.prototype,u=o.toString,c=l.hasOwnProperty,h=u.call(Object);function p(d){if(!r(d)||e(d)!=i)return!1;var m=n(d);if(m===null)return!0;var y=c.call(m,"constructor")&&m.constructor;return typeof y=="function"&&y instanceof y&&u.call(y)==h}return lg=p,lg}var ug,Tk;function TR(){if(Tk)return ug;Tk=1;function e(n,r){if(!(r==="constructor"&&typeof n[r]=="function")&&r!="__proto__")return n[r]}return ug=e,ug}var cg,jk;function VD(){if(jk)return cg;jk=1;var e=Ia(),n=pi();function r(i){return e(i,n(i))}return cg=r,cg}var dg,Ak;function GD(){if(Ak)return dg;Ak=1;var e=RR(),n=qC(),r=GC(),i=DC(),o=KC(),l=Ma(),u=bt(),c=wR(),h=yo(),p=Aa(),d=qn(),m=WD(),y=Oa(),w=TR(),N=VD();function _(b,S,k,E,R,I,O){var A=w(b,k),U=w(S,k),z=O.get(U);if(z){e(b,k,z);return}var P=I?I(A,U,k+"",b,S,O):void 0,D=P===void 0;if(D){var V=u(U),B=!V&&h(U),C=!V&&!B&&y(U);P=U,V||B||C?u(A)?P=A:c(A)?P=i(A):B?(D=!1,P=n(U,!0)):C?(D=!1,P=r(U,!0)):P=[]:m(U)||l(U)?(P=A,l(A)?P=N(A):(!d(A)||p(A))&&(P=o(U))):D=!1}D&&(O.set(U,P),R(P,U,E,I,O),O.delete(U)),e(b,k,P)}return dg=_,dg}var fg,Ik;function YD(){if(Ik)return fg;Ik=1;var e=Fu(),n=RR(),r=gy(),i=GD(),o=qn(),l=pi(),u=TR();function c(h,p,d,m,y){h!==p&&r(p,function(w,N){if(y||(y=new e),o(w))i(h,p,N,d,c,m,y);else{var _=m?m(u(h,N),w,N+"",h,p,y):void 0;_===void 0&&(_=w),n(h,N,_)}},l)}return fg=c,fg}var hg,Mk;function KD(){if(Mk)return hg;Mk=1;var e=Qu(),n=Zu();function r(i){return e(function(o,l){var u=-1,c=l.length,h=c>1?l[c-1]:void 0,p=c>2?l[2]:void 0;for(h=i.length>3&&typeof h=="function"?(c--,h):void 0,p&&n(l[0],l[1],p)&&(h=c<3?void 0:h,c=1),o=Object(o);++u<c;){var d=l[u];d&&i(o,d,u,h)}return o})}return hg=r,hg}var pg,Ok;function XD(){if(Ok)return pg;Ok=1;var e=YD(),n=KD(),r=n(function(i,o,l){e(i,o,l)});return pg=r,pg}var mg,Pk;function jR(){if(Pk)return mg;Pk=1;function e(n,r){return n<r}return mg=e,mg}var gg,Lk;function QD(){if(Lk)return gg;Lk=1;var e=by(),n=jR(),r=mi();function i(o){return o&&o.length?e(o,r,n):void 0}return gg=i,gg}var vg,$k;function ZD(){if($k)return vg;$k=1;var e=by(),n=Hr(),r=jR();function i(o,l){return o&&o.length?e(o,n(l,2),r):void 0}return vg=i,vg}var yg,qk;function JD(){if(qk)return yg;qk=1;var e=sr(),n=function(){return e.Date.now()};return yg=n,yg}var wg,Dk;function e4(){if(Dk)return wg;Dk=1;var e=Bu(),n=Ku(),r=Uu(),i=qn(),o=Pa();function l(u,c,h,p){if(!i(u))return u;c=n(c,u);for(var d=-1,m=c.length,y=m-1,w=u;w!=null&&++d<m;){var N=o(c[d]),_=h;if(N==="__proto__"||N==="constructor"||N==="prototype")return u;if(d!=y){var b=w[N];_=p?p(b,N,w):void 0,_===void 0&&(_=i(b)?b:r(c[d+1])?[]:{})}e(w,N,_),w=w[N]}return u}return wg=l,wg}var xg,Fk;function t4(){if(Fk)return xg;Fk=1;var e=Xu(),n=e4(),r=Ku();function i(o,l,u){for(var c=-1,h=l.length,p={};++c<h;){var d=l[c],m=e(o,d);u(m,d)&&n(p,r(d,o),m)}return p}return xg=i,xg}var _g,zk;function n4(){if(zk)return _g;zk=1;var e=t4(),n=lR();function r(i,o){return e(i,o,function(l,u){return n(i,u)})}return _g=r,_g}var bg,Bk;function r4(){if(Bk)return bg;Bk=1;var e=CR(),n=gR(),r=vR();function i(o){return r(n(o,void 0,e),o+"")}return bg=i,bg}var Sg,Uk;function s4(){if(Uk)return Sg;Uk=1;var e=n4(),n=r4(),r=n(function(i,o){return i==null?{}:e(i,o)});return Sg=r,Sg}var kg,Hk;function i4(){if(Hk)return kg;Hk=1;var e=Math.ceil,n=Math.max;function r(i,o,l,u){for(var c=-1,h=n(e((o-i)/(l||1)),0),p=Array(h);h--;)p[u?h:++c]=i,i+=l;return p}return kg=r,kg}var Eg,Wk;function o4(){if(Wk)return Eg;Wk=1;var e=i4(),n=Zu(),r=NR();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 Eg=i,Eg}var Ng,Vk;function a4(){if(Vk)return Ng;Vk=1;var e=o4(),n=e();return Ng=n,Ng}var Cg,Gk;function l4(){if(Gk)return Cg;Gk=1;function e(n,r){var i=n.length;for(n.sort(r);i--;)n[i]=n[i].value;return n}return Cg=e,Cg}var Rg,Yk;function u4(){if(Yk)return Rg;Yk=1;var e=xo();function n(r,i){if(r!==i){var o=r!==void 0,l=r===null,u=r===r,c=e(r),h=i!==void 0,p=i===null,d=i===i,m=e(i);if(!p&&!m&&!c&&r>i||c&&h&&d&&!p&&!m||l&&h&&d||!o&&d||!u)return 1;if(!l&&!c&&!m&&r<i||m&&o&&u&&!l&&!c||p&&o&&u||!h&&u||!d)return-1}return 0}return Rg=n,Rg}var Tg,Kk;function c4(){if(Kk)return Tg;Kk=1;var e=u4();function n(r,i,o){for(var l=-1,u=r.criteria,c=i.criteria,h=u.length,p=o.length;++l<h;){var d=e(u[l],c[l]);if(d){if(l>=p)return d;var m=o[l];return d*(m=="desc"?-1:1)}}return r.index-i.index}return Tg=n,Tg}var jg,Xk;function d4(){if(Xk)return jg;Xk=1;var e=Yu(),n=Xu(),r=Hr(),i=hR(),o=l4(),l=Hu(),u=c4(),c=mi(),h=bt();function p(d,m,y){m.length?m=e(m,function(_){return h(_)?function(b){return n(b,_.length===1?_[0]:_)}:_}):m=[c];var w=-1;m=e(m,l(r));var N=i(d,function(_,b,S){var k=e(m,function(E){return E(_)});return{criteria:k,index:++w,value:_}});return o(N,function(_,b){return u(_,b,y)})}return jg=p,jg}var Ag,Qk;function f4(){if(Qk)return Ag;Qk=1;var e=xy(),n=d4(),r=Qu(),i=Zu(),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 Ag=o,Ag}var Ig,Zk;function h4(){if(Zk)return Ig;Zk=1;var e=oR(),n=0;function r(i){var o=++n;return e(i)+o}return Ig=r,Ig}var Mg,Jk;function p4(){if(Jk)return Mg;Jk=1;function e(n,r,i){for(var o=-1,l=n.length,u=r.length,c={};++o<l;){var h=o<u?r[o]:void 0;i(c,n[o],h)}return c}return Mg=e,Mg}var Og,eE;function m4(){if(eE)return Og;eE=1;var e=Bu(),n=p4();function r(i,o){return n(i||[],o||[],e)}return Og=r,Og}var Pg,tE;function lt(){if(tE)return Pg;tE=1;var e;if(typeof iy=="function")try{e={cloneDeep:AD(),constant:my(),defaults:ID(),each:JC(),filter:cR(),find:DD(),flatten:CR(),forEach:ZC(),forIn:FD(),has:dR(),isUndefined:fR(),last:zD(),map:pR(),mapValues:BD(),max:HD(),merge:XD(),min:QD(),minBy:ZD(),now:JD(),pick:s4(),range:a4(),reduce:mR(),sortBy:f4(),uniqueId:h4(),values:xR(),zipObject:m4()}}catch{}return e||(e=window._),Pg=e,Pg}var Lg,nE;function g4(){if(nE)return Lg;nE=1,Lg=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 Lg}var $g,rE;function v4(){if(rE)return $g;rE=1;var e=lt(),n=nr().Graph,r=g4();$g=o;var i=e.constant(1);function o(p,d){if(p.nodeCount()<=1)return[];var m=c(p,d||i),y=l(m.graph,m.buckets,m.zeroIdx);return e.flatten(e.map(y,function(w){return p.outEdges(w.v,w.w)}),!0)}function l(p,d,m){for(var y=[],w=d[d.length-1],N=d[0],_;p.nodeCount();){for(;_=N.dequeue();)u(p,d,m,_);for(;_=w.dequeue();)u(p,d,m,_);if(p.nodeCount()){for(var b=d.length-2;b>0;--b)if(_=d[b].dequeue(),_){y=y.concat(u(p,d,m,_,!0));break}}}return y}function u(p,d,m,y,w){var N=w?[]:void 0;return e.forEach(p.inEdges(y.v),function(_){var b=p.edge(_),S=p.node(_.v);w&&N.push({v:_.v,w:_.w}),S.out-=b,h(d,m,S)}),e.forEach(p.outEdges(y.v),function(_){var b=p.edge(_),S=_.w,k=p.node(S);k.in-=b,h(d,m,k)}),p.removeNode(y.v),N}function c(p,d){var m=new n,y=0,w=0;e.forEach(p.nodes(),function(b){m.setNode(b,{v:b,in:0,out:0})}),e.forEach(p.edges(),function(b){var S=m.edge(b.v,b.w)||0,k=d(b),E=S+k;m.setEdge(b.v,b.w,E),w=Math.max(w,m.node(b.v).out+=k),y=Math.max(y,m.node(b.w).in+=k)});var N=e.range(w+y+3).map(function(){return new r}),_=y+1;return e.forEach(m.nodes(),function(b){h(N,_,m.node(b))}),{graph:m,buckets:N,zeroIdx:_}}function h(p,d,m){m.out?m.in?p[m.out-m.in+d].enqueue(m):p[p.length-1].enqueue(m):p[0].enqueue(m)}return $g}var qg,sE;function y4(){if(sE)return qg;sE=1;var e=lt(),n=v4();qg={run:r,undo:o};function r(l){var u=l.graph().acyclicer==="greedy"?n(l,c(l)):i(l);e.forEach(u,function(h){var p=l.edge(h);l.removeEdge(h),p.forwardName=h.name,p.reversed=!0,l.setEdge(h.w,h.v,p,e.uniqueId("rev"))});function c(h){return function(p){return h.edge(p).weight}}}function i(l){var u=[],c={},h={};function p(d){e.has(h,d)||(h[d]=!0,c[d]=!0,e.forEach(l.outEdges(d),function(m){e.has(c,m.w)?u.push(m):p(m.w)}),delete c[d])}return e.forEach(l.nodes(),p),u}function o(l){e.forEach(l.edges(),function(u){var c=l.edge(u);if(c.reversed){l.removeEdge(u);var h=c.forwardName;delete c.reversed,delete c.forwardName,l.setEdge(u.w,u.v,c,h)}})}return qg}var Dg,iE;function fn(){if(iE)return Dg;iE=1;var e=lt(),n=nr().Graph;Dg={addDummyNode:r,simplify:i,asNonCompoundGraph:o,successorWeights:l,predecessorWeights:u,intersectRect:c,buildLayerMatrix:h,normalizeRanks:p,removeEmptyRanks:d,addBorderNode:m,maxRank:y,partition:w,time:N,notime:_};function r(b,S,k,E){var R;do R=e.uniqueId(E);while(b.hasNode(R));return k.dummy=S,b.setNode(R,k),R}function i(b){var S=new n().setGraph(b.graph());return e.forEach(b.nodes(),function(k){S.setNode(k,b.node(k))}),e.forEach(b.edges(),function(k){var E=S.edge(k.v,k.w)||{weight:0,minlen:1},R=b.edge(k);S.setEdge(k.v,k.w,{weight:E.weight+R.weight,minlen:Math.max(E.minlen,R.minlen)})}),S}function o(b){var S=new n({multigraph:b.isMultigraph()}).setGraph(b.graph());return e.forEach(b.nodes(),function(k){b.children(k).length||S.setNode(k,b.node(k))}),e.forEach(b.edges(),function(k){S.setEdge(k,b.edge(k))}),S}function l(b){var S=e.map(b.nodes(),function(k){var E={};return e.forEach(b.outEdges(k),function(R){E[R.w]=(E[R.w]||0)+b.edge(R).weight}),E});return e.zipObject(b.nodes(),S)}function u(b){var S=e.map(b.nodes(),function(k){var E={};return e.forEach(b.inEdges(k),function(R){E[R.v]=(E[R.v]||0)+b.edge(R).weight}),E});return e.zipObject(b.nodes(),S)}function c(b,S){var k=b.x,E=b.y,R=S.x-k,I=S.y-E,O=b.width/2,A=b.height/2;if(!R&&!I)throw new Error("Not possible to find intersection inside of the rectangle");var U,z;return Math.abs(I)*O>Math.abs(R)*A?(I<0&&(A=-A),U=A*R/I,z=A):(R<0&&(O=-O),U=O,z=O*I/R),{x:k+U,y:E+z}}function h(b){var S=e.map(e.range(y(b)+1),function(){return[]});return e.forEach(b.nodes(),function(k){var E=b.node(k),R=E.rank;e.isUndefined(R)||(S[R][E.order]=k)}),S}function p(b){var S=e.min(e.map(b.nodes(),function(k){return b.node(k).rank}));e.forEach(b.nodes(),function(k){var E=b.node(k);e.has(E,"rank")&&(E.rank-=S)})}function d(b){var S=e.min(e.map(b.nodes(),function(I){return b.node(I).rank})),k=[];e.forEach(b.nodes(),function(I){var O=b.node(I).rank-S;k[O]||(k[O]=[]),k[O].push(I)});var E=0,R=b.graph().nodeRankFactor;e.forEach(k,function(I,O){e.isUndefined(I)&&O%R!==0?--E:E&&e.forEach(I,function(A){b.node(A).rank+=E})})}function m(b,S,k,E){var R={width:0,height:0};return arguments.length>=4&&(R.rank=k,R.order=E),r(b,"border",R,S)}function y(b){return e.max(e.map(b.nodes(),function(S){var k=b.node(S).rank;if(!e.isUndefined(k))return k}))}function w(b,S){var k={lhs:[],rhs:[]};return e.forEach(b,function(E){S(E)?k.lhs.push(E):k.rhs.push(E)}),k}function N(b,S){var k=e.now();try{return S()}finally{console.log(b+" time: "+(e.now()-k)+"ms")}}function _(b,S){return S()}return Dg}var Fg,oE;function w4(){if(oE)return Fg;oE=1;var e=lt(),n=fn();Fg={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,h=l.node(c).rank,p=u.w,d=l.node(p).rank,m=u.name,y=l.edge(u),w=y.labelRank;if(d!==h+1){l.removeEdge(u);var N,_,b;for(b=0,++h;h<d;++b,++h)y.points=[],_={width:0,height:0,edgeLabel:y,edgeObj:u,rank:h},N=n.addDummyNode(l,"edge",_,"_d"),h===w&&(_.width=y.width,_.height=y.height,_.dummy="edge-label",_.labelpos=y.labelpos),l.setEdge(c,N,{weight:y.weight},m),b===0&&l.graph().dummyChains.push(N),c=N;l.setEdge(c,p,{weight:y.weight},m)}}function o(l){e.forEach(l.graph().dummyChains,function(u){var c=l.node(u),h=c.edgeLabel,p;for(l.setEdge(c.edgeObj,h);c.dummy;)p=l.successors(u)[0],l.removeNode(u),h.points.push({x:c.x,y:c.y}),c.dummy==="edge-label"&&(h.x=c.x,h.y=c.y,h.width=c.width,h.height=c.height),u=p,c=l.node(u)})}return Fg}var zg,aE;function Nu(){if(aE)return zg;aE=1;var e=lt();zg={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 h=e.min(e.map(i.outEdges(u),function(p){return l(p.w)-i.edge(p).minlen}));return(h===Number.POSITIVE_INFINITY||h===void 0||h===null)&&(h=0),c.rank=h}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 zg}var Bg,lE;function AR(){if(lE)return Bg;lE=1;var e=lt(),n=nr().Graph,r=Nu().slack;Bg=i;function i(c){var h=new n({directed:!1}),p=c.nodes()[0],d=c.nodeCount();h.setNode(p,{});for(var m,y;o(h,c)<d;)m=l(h,c),y=h.hasNode(m.v)?r(c,m):-r(c,m),u(h,c,y);return h}function o(c,h){function p(d){e.forEach(h.nodeEdges(d),function(m){var y=m.v,w=d===y?m.w:y;!c.hasNode(w)&&!r(h,m)&&(c.setNode(w,{}),c.setEdge(d,w,{}),p(w))})}return e.forEach(c.nodes(),p),c.nodeCount()}function l(c,h){return e.minBy(h.edges(),function(p){if(c.hasNode(p.v)!==c.hasNode(p.w))return r(h,p)})}function u(c,h,p){e.forEach(c.nodes(),function(d){h.node(d).rank+=p})}return Bg}var Ug,uE;function x4(){if(uE)return Ug;uE=1;var e=lt(),n=AR(),r=Nu().slack,i=Nu().longestPath,o=nr().alg.preorder,l=nr().alg.postorder,u=fn().simplify;Ug=c,c.initLowLimValues=m,c.initCutValues=h,c.calcCutValue=d,c.leaveEdge=w,c.enterEdge=N,c.exchangeEdges=_;function c(E){E=u(E),i(E);var R=n(E);m(R),h(R,E);for(var I,O;I=w(R);)O=N(R,E,I),_(R,E,I,O)}function h(E,R){var I=l(E,E.nodes());I=I.slice(0,I.length-1),e.forEach(I,function(O){p(E,R,O)})}function p(E,R,I){var O=E.node(I),A=O.parent;E.edge(I,A).cutvalue=d(E,R,I)}function d(E,R,I){var O=E.node(I),A=O.parent,U=!0,z=R.edge(I,A),P=0;return z||(U=!1,z=R.edge(A,I)),P=z.weight,e.forEach(R.nodeEdges(I),function(D){var V=D.v===I,B=V?D.w:D.v;if(B!==A){var C=V===U,q=R.edge(D).weight;if(P+=C?q:-q,S(E,I,B)){var L=E.edge(I,B).cutvalue;P+=C?-L:L}}}),P}function m(E,R){arguments.length<2&&(R=E.nodes()[0]),y(E,{},1,R)}function y(E,R,I,O,A){var U=I,z=E.node(O);return R[O]=!0,e.forEach(E.neighbors(O),function(P){e.has(R,P)||(I=y(E,R,I,P,O))}),z.low=U,z.lim=I++,A?z.parent=A:delete z.parent,I}function w(E){return e.find(E.edges(),function(R){return E.edge(R).cutvalue<0})}function N(E,R,I){var O=I.v,A=I.w;R.hasEdge(O,A)||(O=I.w,A=I.v);var U=E.node(O),z=E.node(A),P=U,D=!1;U.lim>z.lim&&(P=z,D=!0);var V=e.filter(R.edges(),function(B){return D===k(E,E.node(B.v),P)&&D!==k(E,E.node(B.w),P)});return e.minBy(V,function(B){return r(R,B)})}function _(E,R,I,O){var A=I.v,U=I.w;E.removeEdge(A,U),E.setEdge(O.v,O.w,{}),m(E),h(E,R),b(E,R)}function b(E,R){var I=e.find(E.nodes(),function(A){return!R.node(A).parent}),O=o(E,I);O=O.slice(1),e.forEach(O,function(A){var U=E.node(A).parent,z=R.edge(A,U),P=!1;z||(z=R.edge(U,A),P=!0),R.node(A).rank=R.node(U).rank+(P?z.minlen:-z.minlen)})}function S(E,R,I){return E.hasEdge(R,I)}function k(E,R,I){return I.low<=R.lim&&R.lim<=I.lim}return Ug}var Hg,cE;function _4(){if(cE)return Hg;cE=1;var e=Nu(),n=e.longestPath,r=AR(),i=x4();Hg=o;function o(h){switch(h.graph().ranker){case"network-simplex":c(h);break;case"tight-tree":u(h);break;case"longest-path":l(h);break;default:c(h)}}var l=n;function u(h){n(h),r(h)}function c(h){i(h)}return Hg}var Wg,dE;function b4(){if(dE)return Wg;dE=1;var e=lt();Wg=n;function n(o){var l=i(o);e.forEach(o.graph().dummyChains,function(u){for(var c=o.node(u),h=c.edgeObj,p=r(o,l,h.v,h.w),d=p.path,m=p.lca,y=0,w=d[y],N=!0;u!==h.w;){if(c=o.node(u),N){for(;(w=d[y])!==m&&o.node(w).maxRank<c.rank;)y++;w===m&&(N=!1)}if(!N){for(;y<d.length-1&&o.node(w=d[y+1]).minRank<=c.rank;)y++;w=d[y]}o.setParent(u,w),u=o.successors(u)[0]}})}function r(o,l,u,c){var h=[],p=[],d=Math.min(l[u].low,l[c].low),m=Math.max(l[u].lim,l[c].lim),y,w;y=u;do y=o.parent(y),h.push(y);while(y&&(l[y].low>d||m>l[y].lim));for(w=y,y=c;(y=o.parent(y))!==w;)p.push(y);return{path:h.concat(p.reverse()),lca:w}}function i(o){var l={},u=0;function c(h){var p=u;e.forEach(o.children(h),c),l[h]={low:p,lim:u++}}return e.forEach(o.children(),c),l}return Wg}var Vg,fE;function S4(){if(fE)return Vg;fE=1;var e=lt(),n=fn();Vg={run:r,cleanup:u};function r(c){var h=n.addDummyNode(c,"root",{},"_root"),p=o(c),d=e.max(e.values(p))-1,m=2*d+1;c.graph().nestingRoot=h,e.forEach(c.edges(),function(w){c.edge(w).minlen*=m});var y=l(c)+1;e.forEach(c.children(),function(w){i(c,h,m,y,d,p,w)}),c.graph().nodeRankFactor=m}function i(c,h,p,d,m,y,w){var N=c.children(w);if(!N.length){w!==h&&c.setEdge(h,w,{weight:0,minlen:p});return}var _=n.addBorderNode(c,"_bt"),b=n.addBorderNode(c,"_bb"),S=c.node(w);c.setParent(_,w),S.borderTop=_,c.setParent(b,w),S.borderBottom=b,e.forEach(N,function(k){i(c,h,p,d,m,y,k);var E=c.node(k),R=E.borderTop?E.borderTop:k,I=E.borderBottom?E.borderBottom:k,O=E.borderTop?d:2*d,A=R!==I?1:m-y[w]+1;c.setEdge(_,R,{weight:O,minlen:A,nestingEdge:!0}),c.setEdge(I,b,{weight:O,minlen:A,nestingEdge:!0})}),c.parent(w)||c.setEdge(h,_,{weight:0,minlen:m+y[w]})}function o(c){var h={};function p(d,m){var y=c.children(d);y&&y.length&&e.forEach(y,function(w){p(w,m+1)}),h[d]=m}return e.forEach(c.children(),function(d){p(d,1)}),h}function l(c){return e.reduce(c.edges(),function(h,p){return h+c.edge(p).weight},0)}function u(c){var h=c.graph();c.removeNode(h.nestingRoot),delete h.nestingRoot,e.forEach(c.edges(),function(p){var d=c.edge(p);d.nestingEdge&&c.removeEdge(p)})}return Vg}var Gg,hE;function k4(){if(hE)return Gg;hE=1;var e=lt(),n=fn();Gg=r;function r(o){function l(u){var c=o.children(u),h=o.node(u);if(c.length&&e.forEach(c,l),e.has(h,"minRank")){h.borderLeft=[],h.borderRight=[];for(var p=h.minRank,d=h.maxRank+1;p<d;++p)i(o,"borderLeft","_bl",u,h,p),i(o,"borderRight","_br",u,h,p)}}e.forEach(o.children(),l)}function i(o,l,u,c,h,p){var d={width:0,height:0,rank:p,borderType:l},m=h[l][p-1],y=n.addDummyNode(o,"border",d,u);h[l][p]=y,o.setParent(y,c),m&&o.setEdge(m,y,{weight:1})}return Gg}var Yg,pE;function E4(){if(pE)return Yg;pE=1;var e=lt();Yg={adjust:n,undo:r};function n(p){var d=p.graph().rankdir.toLowerCase();(d==="lr"||d==="rl")&&i(p)}function r(p){var d=p.graph().rankdir.toLowerCase();(d==="bt"||d==="rl")&&l(p),(d==="lr"||d==="rl")&&(c(p),i(p))}function i(p){e.forEach(p.nodes(),function(d){o(p.node(d))}),e.forEach(p.edges(),function(d){o(p.edge(d))})}function o(p){var d=p.width;p.width=p.height,p.height=d}function l(p){e.forEach(p.nodes(),function(d){u(p.node(d))}),e.forEach(p.edges(),function(d){var m=p.edge(d);e.forEach(m.points,u),e.has(m,"y")&&u(m)})}function u(p){p.y=-p.y}function c(p){e.forEach(p.nodes(),function(d){h(p.node(d))}),e.forEach(p.edges(),function(d){var m=p.edge(d);e.forEach(m.points,h),e.has(m,"x")&&h(m)})}function h(p){var d=p.x;p.x=p.y,p.y=d}return Yg}var Kg,mE;function N4(){if(mE)return Kg;mE=1;var e=lt();Kg=n;function n(r){var i={},o=e.filter(r.nodes(),function(p){return!r.children(p).length}),l=e.max(e.map(o,function(p){return r.node(p).rank})),u=e.map(e.range(l+1),function(){return[]});function c(p){if(!e.has(i,p)){i[p]=!0;var d=r.node(p);u[d.rank].push(p),e.forEach(r.successors(p),c)}}var h=e.sortBy(o,function(p){return r.node(p).rank});return e.forEach(h,c),u}return Kg}var Xg,gE;function C4(){if(gE)return Xg;gE=1;var e=lt();Xg=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,w){return w})),c=e.flatten(e.map(o,function(y){return e.sortBy(e.map(i.outEdges(y),function(w){return{pos:u[w.w],weight:i.edge(w).weight}}),"pos")}),!0),h=1;h<l.length;)h<<=1;var p=2*h-1;h-=1;var d=e.map(new Array(p),function(){return 0}),m=0;return e.forEach(c.forEach(function(y){var w=y.pos+h;d[w]+=y.weight;for(var N=0;w>0;)w%2&&(N+=d[w+1]),w=w-1>>1,d[w]+=y.weight;m+=y.weight*N})),m}return Xg}var Qg,vE;function R4(){if(vE)return Qg;vE=1;var e=lt();Qg=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,h){var p=r.edge(h),d=r.node(h.v);return{sum:c.sum+p.weight*d.order,weight:c.weight+p.weight}},{sum:0,weight:0});return{v:o,barycenter:u.sum/u.weight,weight:u.weight}}else return{v:o}})}return Qg}var Zg,yE;function T4(){if(yE)return Zg;yE=1;var e=lt();Zg=n;function n(o,l){var u={};e.forEach(o,function(h,p){var d=u[h.v]={indegree:0,in:[],out:[],vs:[h.v],i:p};e.isUndefined(h.barycenter)||(d.barycenter=h.barycenter,d.weight=h.weight)}),e.forEach(l.edges(),function(h){var p=u[h.v],d=u[h.w];!e.isUndefined(p)&&!e.isUndefined(d)&&(d.indegree++,p.out.push(u[h.w]))});var c=e.filter(u,function(h){return!h.indegree});return r(c)}function r(o){var l=[];function u(p){return function(d){d.merged||(e.isUndefined(d.barycenter)||e.isUndefined(p.barycenter)||d.barycenter>=p.barycenter)&&i(p,d)}}function c(p){return function(d){d.in.push(p),--d.indegree===0&&o.push(d)}}for(;o.length;){var h=o.pop();l.push(h),e.forEach(h.in.reverse(),u(h)),e.forEach(h.out,c(h))}return e.map(e.filter(l,function(p){return!p.merged}),function(p){return e.pick(p,["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 Zg}var Jg,wE;function j4(){if(wE)return Jg;wE=1;var e=lt(),n=fn();Jg=r;function r(l,u){var c=n.partition(l,function(_){return e.has(_,"barycenter")}),h=c.lhs,p=e.sortBy(c.rhs,function(_){return-_.i}),d=[],m=0,y=0,w=0;h.sort(o(!!u)),w=i(d,p,w),e.forEach(h,function(_){w+=_.vs.length,d.push(_.vs),m+=_.barycenter*_.weight,y+=_.weight,w=i(d,p,w)});var N={vs:e.flatten(d,!0)};return y&&(N.barycenter=m/y,N.weight=y),N}function i(l,u,c){for(var h;u.length&&(h=e.last(u)).i<=c;)u.pop(),l.push(h.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 Jg}var ev,xE;function A4(){if(xE)return ev;xE=1;var e=lt(),n=R4(),r=T4(),i=j4();ev=o;function o(c,h,p,d){var m=c.children(h),y=c.node(h),w=y?y.borderLeft:void 0,N=y?y.borderRight:void 0,_={};w&&(m=e.filter(m,function(I){return I!==w&&I!==N}));var b=n(c,m);e.forEach(b,function(I){if(c.children(I.v).length){var O=o(c,I.v,p,d);_[I.v]=O,e.has(O,"barycenter")&&u(I,O)}});var S=r(b,p);l(S,_);var k=i(S,d);if(w&&(k.vs=e.flatten([w,k.vs,N],!0),c.predecessors(w).length)){var E=c.node(c.predecessors(w)[0]),R=c.node(c.predecessors(N)[0]);e.has(k,"barycenter")||(k.barycenter=0,k.weight=0),k.barycenter=(k.barycenter*k.weight+E.order+R.order)/(k.weight+2),k.weight+=2}return k}function l(c,h){e.forEach(c,function(p){p.vs=e.flatten(p.vs.map(function(d){return h[d]?h[d].vs:d}),!0)})}function u(c,h){e.isUndefined(c.barycenter)?(c.barycenter=h.barycenter,c.weight=h.weight):(c.barycenter=(c.barycenter*c.weight+h.barycenter*h.weight)/(c.weight+h.weight),c.weight+=h.weight)}return ev}var tv,_E;function I4(){if(_E)return tv;_E=1;var e=lt(),n=nr().Graph;tv=r;function r(o,l,u){var c=i(o),h=new n({compound:!0}).setGraph({root:c}).setDefaultNodeLabel(function(p){return o.node(p)});return e.forEach(o.nodes(),function(p){var d=o.node(p),m=o.parent(p);(d.rank===l||d.minRank<=l&&l<=d.maxRank)&&(h.setNode(p),h.setParent(p,m||c),e.forEach(o[u](p),function(y){var w=y.v===p?y.w:y.v,N=h.edge(w,p),_=e.isUndefined(N)?0:N.weight;h.setEdge(w,p,{weight:o.edge(y).weight+_})}),e.has(d,"minRank")&&h.setNode(p,{borderLeft:d.borderLeft[l],borderRight:d.borderRight[l]}))}),h}function i(o){for(var l;o.hasNode(l=e.uniqueId("_root")););return l}return tv}var nv,bE;function M4(){if(bE)return nv;bE=1;var e=lt();nv=n;function n(r,i,o){var l={},u;e.forEach(o,function(c){for(var h=r.parent(c),p,d;h;){if(p=r.parent(h),p?(d=l[p],l[p]=h):(d=u,u=h),d&&d!==h){i.setEdge(d,h);return}h=p}})}return nv}var rv,SE;function O4(){if(SE)return rv;SE=1;var e=lt(),n=N4(),r=C4(),i=A4(),o=I4(),l=M4(),u=nr().Graph,c=fn();rv=h;function h(y){var w=c.maxRank(y),N=p(y,e.range(1,w+1),"inEdges"),_=p(y,e.range(w-1,-1,-1),"outEdges"),b=n(y);m(y,b);for(var S=Number.POSITIVE_INFINITY,k,E=0,R=0;R<4;++E,++R){d(E%2?N:_,E%4>=2),b=c.buildLayerMatrix(y);var I=r(y,b);I<S&&(R=0,k=e.cloneDeep(b),S=I)}m(y,k)}function p(y,w,N){return e.map(w,function(_){return o(y,_,N)})}function d(y,w){var N=new u;e.forEach(y,function(_){var b=_.graph().root,S=i(_,b,N,w);e.forEach(S.vs,function(k,E){_.node(k).order=E}),l(_,N,S.vs)})}function m(y,w){e.forEach(w,function(N){e.forEach(N,function(_,b){y.node(_).order=b})})}return rv}var sv,kE;function P4(){if(kE)return sv;kE=1;var e=lt(),n=nr().Graph,r=fn();sv={positionX:N,findType1Conflicts:i,findType2Conflicts:o,addConflict:u,hasConflict:c,verticalAlignment:h,horizontalCompaction:p,alignCoordinates:y,findSmallestWidthAlignment:m,balance:w};function i(S,k){var E={};function R(I,O){var A=0,U=0,z=I.length,P=e.last(O);return e.forEach(O,function(D,V){var B=l(S,D),C=B?S.node(B).order:z;(B||D===P)&&(e.forEach(O.slice(U,V+1),function(q){e.forEach(S.predecessors(q),function(L){var re=S.node(L),Z=re.order;(Z<A||C<Z)&&!(re.dummy&&S.node(q).dummy)&&u(E,L,q)})}),U=V+1,A=C)}),O}return e.reduce(k,R),E}function o(S,k){var E={};function R(O,A,U,z,P){var D;e.forEach(e.range(A,U),function(V){D=O[V],S.node(D).dummy&&e.forEach(S.predecessors(D),function(B){var C=S.node(B);C.dummy&&(C.order<z||C.order>P)&&u(E,B,D)})})}function I(O,A){var U=-1,z,P=0;return e.forEach(A,function(D,V){if(S.node(D).dummy==="border"){var B=S.predecessors(D);B.length&&(z=S.node(B[0]).order,R(A,P,V,U,z),P=V,U=z)}R(A,P,A.length,z,O.length)}),A}return e.reduce(k,I),E}function l(S,k){if(S.node(k).dummy)return e.find(S.predecessors(k),function(E){return S.node(E).dummy})}function u(S,k,E){if(k>E){var R=k;k=E,E=R}var I=S[k];I||(S[k]=I={}),I[E]=!0}function c(S,k,E){if(k>E){var R=k;k=E,E=R}return e.has(S[k],E)}function h(S,k,E,R){var I={},O={},A={};return e.forEach(k,function(U){e.forEach(U,function(z,P){I[z]=z,O[z]=z,A[z]=P})}),e.forEach(k,function(U){var z=-1;e.forEach(U,function(P){var D=R(P);if(D.length){D=e.sortBy(D,function(L){return A[L]});for(var V=(D.length-1)/2,B=Math.floor(V),C=Math.ceil(V);B<=C;++B){var q=D[B];O[P]===P&&z<A[q]&&!c(E,P,q)&&(O[q]=P,O[P]=I[P]=I[q],z=A[q])}}})}),{root:I,align:O}}function p(S,k,E,R,I){var O={},A=d(S,k,E,I),U=I?"borderLeft":"borderRight";function z(V,B){for(var C=A.nodes(),q=C.pop(),L={};q;)L[q]?V(q):(L[q]=!0,C.push(q),C=C.concat(B(q))),q=C.pop()}function P(V){O[V]=A.inEdges(V).reduce(function(B,C){return Math.max(B,O[C.v]+A.edge(C))},0)}function D(V){var B=A.outEdges(V).reduce(function(q,L){return Math.min(q,O[L.w]-A.edge(L))},Number.POSITIVE_INFINITY),C=S.node(V);B!==Number.POSITIVE_INFINITY&&C.borderType!==U&&(O[V]=Math.max(O[V],B))}return z(P,A.predecessors.bind(A)),z(D,A.successors.bind(A)),e.forEach(R,function(V){O[V]=O[E[V]]}),O}function d(S,k,E,R){var I=new n,O=S.graph(),A=_(O.nodesep,O.edgesep,R);return e.forEach(k,function(U){var z;e.forEach(U,function(P){var D=E[P];if(I.setNode(D),z){var V=E[z],B=I.edge(V,D);I.setEdge(V,D,Math.max(A(S,P,z),B||0))}z=P})}),I}function m(S,k){return e.minBy(e.values(k),function(E){var R=Number.NEGATIVE_INFINITY,I=Number.POSITIVE_INFINITY;return e.forIn(E,function(O,A){var U=b(S,A)/2;R=Math.max(O+U,R),I=Math.min(O-U,I)}),R-I})}function y(S,k){var E=e.values(k),R=e.min(E),I=e.max(E);e.forEach(["u","d"],function(O){e.forEach(["l","r"],function(A){var U=O+A,z=S[U],P;if(z!==k){var D=e.values(z);P=A==="l"?R-e.min(D):I-e.max(D),P&&(S[U]=e.mapValues(z,function(V){return V+P}))}})})}function w(S,k){return e.mapValues(S.ul,function(E,R){if(k)return S[k.toLowerCase()][R];var I=e.sortBy(e.map(S,R));return(I[1]+I[2])/2})}function N(S){var k=r.buildLayerMatrix(S),E=e.merge(i(S,k),o(S,k)),R={},I;e.forEach(["u","d"],function(A){I=A==="u"?k:e.values(k).reverse(),e.forEach(["l","r"],function(U){U==="r"&&(I=e.map(I,function(V){return e.values(V).reverse()}));var z=(A==="u"?S.predecessors:S.successors).bind(S),P=h(S,I,E,z),D=p(S,I,P.root,P.align,U==="r");U==="r"&&(D=e.mapValues(D,function(V){return-V})),R[A+U]=D})});var O=m(S,R);return y(R,O),w(R,S.graph().align)}function _(S,k,E){return function(R,I,O){var A=R.node(I),U=R.node(O),z=0,P;if(z+=A.width/2,e.has(A,"labelpos"))switch(A.labelpos.toLowerCase()){case"l":P=-A.width/2;break;case"r":P=A.width/2;break}if(P&&(z+=E?P:-P),P=0,z+=(A.dummy?k:S)/2,z+=(U.dummy?k:S)/2,z+=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&&(z+=E?P:-P),P=0,z}}function b(S,k){return S.node(k).width}return sv}var iv,EE;function L4(){if(EE)return iv;EE=1;var e=lt(),n=fn(),r=P4().positionX;iv=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,h=0;e.forEach(u,function(p){var d=e.max(e.map(p,function(m){return l.node(m).height}));e.forEach(p,function(m){l.node(m).y=h+d/2}),h+=d+c})}return iv}var ov,NE;function $4(){if(NE)return ov;NE=1;var e=lt(),n=y4(),r=w4(),i=_4(),o=fn().normalizeRanks,l=b4(),u=fn().removeEmptyRanks,c=S4(),h=k4(),p=E4(),d=O4(),m=L4(),y=fn(),w=nr().Graph;ov=N;function N($,Q){var ne=Q&&Q.debugTiming?y.time:y.notime;ne("layout",function(){var oe=ne(" buildLayoutGraph",function(){return z($)});ne(" runLayout",function(){_(oe,ne)}),ne(" updateInputGraph",function(){b($,oe)})})}function _($,Q){Q(" makeSpaceForEdgeLabels",function(){P($)}),Q(" removeSelfEdges",function(){H($)}),Q(" acyclic",function(){n.run($)}),Q(" nestingGraph.run",function(){c.run($)}),Q(" rank",function(){i(y.asNonCompoundGraph($))}),Q(" injectEdgeLabelProxies",function(){D($)}),Q(" removeEmptyRanks",function(){u($)}),Q(" nestingGraph.cleanup",function(){c.cleanup($)}),Q(" normalizeRanks",function(){o($)}),Q(" assignRankMinMax",function(){V($)}),Q(" removeEdgeLabelProxies",function(){B($)}),Q(" normalize.run",function(){r.run($)}),Q(" parentDummyChains",function(){l($)}),Q(" addBorderSegments",function(){h($)}),Q(" order",function(){d($)}),Q(" insertSelfEdges",function(){J($)}),Q(" adjustCoordinateSystem",function(){p.adjust($)}),Q(" position",function(){m($)}),Q(" positionSelfEdges",function(){M($)}),Q(" removeBorderNodes",function(){Z($)}),Q(" normalize.undo",function(){r.undo($)}),Q(" fixupEdgeLabelCoords",function(){L($)}),Q(" undoCoordinateSystem",function(){p.undo($)}),Q(" translateGraph",function(){C($)}),Q(" assignNodeIntersects",function(){q($)}),Q(" reversePoints",function(){re($)}),Q(" acyclic.undo",function(){n.undo($)})}function b($,Q){e.forEach($.nodes(),function(ne){var oe=$.node(ne),fe=Q.node(ne);oe&&(oe.x=fe.x,oe.y=fe.y,Q.children(ne).length&&(oe.width=fe.width,oe.height=fe.height))}),e.forEach($.edges(),function(ne){var oe=$.edge(ne),fe=Q.edge(ne);oe.points=fe.points,e.has(fe,"x")&&(oe.x=fe.x,oe.y=fe.y)}),$.graph().width=Q.graph().width,$.graph().height=Q.graph().height}var S=["nodesep","edgesep","ranksep","marginx","marginy"],k={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},E=["acyclicer","ranker","rankdir","align"],R=["width","height"],I={width:0,height:0},O=["minlen","weight","width","height","labeloffset"],A={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},U=["labelpos"];function z($){var Q=new w({multigraph:!0,compound:!0}),ne=Y($.graph());return Q.setGraph(e.merge({},k,G(ne,S),e.pick(ne,E))),e.forEach($.nodes(),function(oe){var fe=Y($.node(oe));Q.setNode(oe,e.defaults(G(fe,R),I)),Q.setParent(oe,$.parent(oe))}),e.forEach($.edges(),function(oe){var fe=Y($.edge(oe));Q.setEdge(oe,e.merge({},A,G(fe,O),e.pick(fe,U)))}),Q}function P($){var Q=$.graph();Q.ranksep/=2,e.forEach($.edges(),function(ne){var oe=$.edge(ne);oe.minlen*=2,oe.labelpos.toLowerCase()!=="c"&&(Q.rankdir==="TB"||Q.rankdir==="BT"?oe.width+=oe.labeloffset:oe.height+=oe.labeloffset)})}function D($){e.forEach($.edges(),function(Q){var ne=$.edge(Q);if(ne.width&&ne.height){var oe=$.node(Q.v),fe=$.node(Q.w),te={rank:(fe.rank-oe.rank)/2+oe.rank,e:Q};y.addDummyNode($,"edge-proxy",te,"_ep")}})}function V($){var Q=0;e.forEach($.nodes(),function(ne){var oe=$.node(ne);oe.borderTop&&(oe.minRank=$.node(oe.borderTop).rank,oe.maxRank=$.node(oe.borderBottom).rank,Q=e.max(Q,oe.maxRank))}),$.graph().maxRank=Q}function B($){e.forEach($.nodes(),function(Q){var ne=$.node(Q);ne.dummy==="edge-proxy"&&($.edge(ne.e).labelRank=ne.rank,$.removeNode(Q))})}function C($){var Q=Number.POSITIVE_INFINITY,ne=0,oe=Number.POSITIVE_INFINITY,fe=0,te=$.graph(),ce=te.marginx||0,Ce=te.marginy||0;function ve(je){var ye=je.x,ke=je.y,Ye=je.width,we=je.height;Q=Math.min(Q,ye-Ye/2),ne=Math.max(ne,ye+Ye/2),oe=Math.min(oe,ke-we/2),fe=Math.max(fe,ke+we/2)}e.forEach($.nodes(),function(je){ve($.node(je))}),e.forEach($.edges(),function(je){var ye=$.edge(je);e.has(ye,"x")&&ve(ye)}),Q-=ce,oe-=Ce,e.forEach($.nodes(),function(je){var ye=$.node(je);ye.x-=Q,ye.y-=oe}),e.forEach($.edges(),function(je){var ye=$.edge(je);e.forEach(ye.points,function(ke){ke.x-=Q,ke.y-=oe}),e.has(ye,"x")&&(ye.x-=Q),e.has(ye,"y")&&(ye.y-=oe)}),te.width=ne-Q+ce,te.height=fe-oe+Ce}function q($){e.forEach($.edges(),function(Q){var ne=$.edge(Q),oe=$.node(Q.v),fe=$.node(Q.w),te,ce;ne.points?(te=ne.points[0],ce=ne.points[ne.points.length-1]):(ne.points=[],te=fe,ce=oe),ne.points.unshift(y.intersectRect(oe,te)),ne.points.push(y.intersectRect(fe,ce))})}function L($){e.forEach($.edges(),function(Q){var ne=$.edge(Q);if(e.has(ne,"x"))switch((ne.labelpos==="l"||ne.labelpos==="r")&&(ne.width-=ne.labeloffset),ne.labelpos){case"l":ne.x-=ne.width/2+ne.labeloffset;break;case"r":ne.x+=ne.width/2+ne.labeloffset;break}})}function re($){e.forEach($.edges(),function(Q){var ne=$.edge(Q);ne.reversed&&ne.points.reverse()})}function Z($){e.forEach($.nodes(),function(Q){if($.children(Q).length){var ne=$.node(Q),oe=$.node(ne.borderTop),fe=$.node(ne.borderBottom),te=$.node(e.last(ne.borderLeft)),ce=$.node(e.last(ne.borderRight));ne.width=Math.abs(ce.x-te.x),ne.height=Math.abs(fe.y-oe.y),ne.x=te.x+ne.width/2,ne.y=oe.y+ne.height/2}}),e.forEach($.nodes(),function(Q){$.node(Q).dummy==="border"&&$.removeNode(Q)})}function H($){e.forEach($.edges(),function(Q){if(Q.v===Q.w){var ne=$.node(Q.v);ne.selfEdges||(ne.selfEdges=[]),ne.selfEdges.push({e:Q,label:$.edge(Q)}),$.removeEdge(Q)}})}function J($){var Q=y.buildLayerMatrix($);e.forEach(Q,function(ne){var oe=0;e.forEach(ne,function(fe,te){var ce=$.node(fe);ce.order=te+oe,e.forEach(ce.selfEdges,function(Ce){y.addDummyNode($,"selfedge",{width:Ce.label.width,height:Ce.label.height,rank:ce.rank,order:te+ ++oe,e:Ce.e,label:Ce.label},"_se")}),delete ce.selfEdges})})}function M($){e.forEach($.nodes(),function(Q){var ne=$.node(Q);if(ne.dummy==="selfedge"){var oe=$.node(ne.e.v),fe=oe.x+oe.width/2,te=oe.y,ce=ne.x-fe,Ce=oe.height/2;$.setEdge(ne.e,ne.label),$.removeNode(Q),ne.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}],ne.label.x=ne.x,ne.label.y=ne.y}})}function G($,Q){return e.mapValues(e.pick($,Q),Number)}function Y($){var Q={};return e.forEach($,function(ne,oe){Q[oe.toLowerCase()]=ne}),Q}return ov}var av,CE;function q4(){if(CE)return av;CE=1;var e=lt(),n=fn(),r=nr().Graph;av={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,h){var p="layer"+h;u.setNode(p,{rank:"same"}),e.reduce(c,function(d,m){return u.setEdge(d,m,{style:"invis"}),m})}),u}return av}var lv,RE;function D4(){return RE||(RE=1,lv="0.8.5"),lv}var uv,TE;function F4(){return TE||(TE=1,uv={graphlib:nr(),layout:$4(),debug:q4(),util:{time:fn().time,notime:fn().notime},version:D4()}),uv}var z4=F4();const jE=$v(z4),po=240,Cu=130,oo=74,Ju=72,AE=oo+Ju;function B4(e,n){var i;let r=po;for(const o of e)r=Math.max(r,((i=n.get(o.id))==null?void 0:i.width)??po);return r}const IR=420,U4=2;function ba(e){var r;return((r=e.data)==null?void 0:r.sessionId)??"_default"}function H4(e,n){return((n==null?void 0:n.get(e))??0)>0?IR:0}function W4(e,n){const r=(n==null?void 0:n.get(e))??0;return r>0?6+r*36:0}function Sa(e,n,r){const i=n.get(e);return{w:((i==null?void 0:i.width)??po)+H4(e,r),h:Math.max((i==null?void 0:i.height)??Cu,W4(e,r))}}function V4(e){return[...e.keys()].sort().map(n=>`${n}:${e.get(n)}`).join("|")}function G4(e,n,r,i,o,l){const u=new jE.graphlib.Graph;u.setDefaultEdgeLabel(()=>({})),u.setGraph({rankdir:r,marginx:0,marginy:0,nodesep:70,ranksep:160,edgesep:30});const c=e.filter(S=>!o.has(S)),h=new Set(c);for(const S of c){const{w:k,h:E}=Sa(S,i,l);u.setNode(S,{width:k,height:E})}for(const S of n)h.has(S.source)&&h.has(S.target)&&u.setEdge(S.source,S.target);jE.layout(u);const p=new Map;let d=1/0,m=1/0,y=-1/0,w=-1/0;for(const S of c){const k=u.node(S);if(!k)continue;const E=i.get(S),R=(E==null?void 0:E.width)??po,I=(E==null?void 0:E.height)??Cu,O=Sa(S,i,l),A=k.x-O.w/2,U=k.y-O.h/2;p.set(S,{x:A,y:U}),A<d&&(d=A),U<m&&(m=U),A+R>y&&(y=A+R),U+I>w&&(w=U+I)}if(Number.isFinite(d)&&Number.isFinite(m))for(const[S,k]of p)p.set(S,{x:k.x-d,y:k.y-m});const N=Number.isFinite(y)?y-d:0,_=Number.isFinite(w)?w-m:0;let b=null;for(const S of e){const k=o.get(S);if(!k)continue;const E=i.get(S),R=(E==null?void 0:E.width)??po,I=(E==null?void 0:E.height)??Cu;b=b===null?{minX:k.x,minY:k.y,maxX:k.x+R,maxY:k.y+I}:{minX:Math.min(b.minX,k.x),minY:Math.min(b.minY,k.y),maxX:Math.max(b.maxX,k.x+R),maxY:Math.max(b.maxY,k.y+I)}}return{positions:p,width:N,height:_,pinnedBox:b}}function Y4(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 S of e){const k=ba(S),E=c.get(k);E?E.push(S.id):c.set(k,[S.id])}const p=Array.from(c.keys()).sort().map(S=>({sid:S,...G4(c.get(S),n,i,l,o,u)})),d=B4(e,l),m=r.availableHeight&&r.availableHeight>0?r.availableHeight:Number.POSITIVE_INFINITY,y=S=>{const k=[[]];let E=0;for(const R of p)k.length<S&&E>0&&E+R.height>m&&(k.push([]),E=0),k[k.length-1].push(R),E+=R.height+AE;return k},w=S=>S.reduce((k,E)=>Math.max(k,E.width),0)+IR;let N=y(r.availableWidth?U4:1);N.length>1&&N.reduce((k,E)=>k+w(E),0)+d*(N.length-1)>(r.availableWidth??0)&&(N=y(1));const _=new Map;let b=0;for(const S of N){const k=w(S);let E=0;for(const{positions:R,height:I,pinnedBox:O}of S){for(const[U,z]of R)_.set(U,{x:z.x+b,y:z.y+E});let A=E+I;O&&O.maxY>A&&O.minX<b+k&&b<O.maxX&&(A=O.maxY),E=A+AE}b+=k+d}return e.map(S=>{const k=o.get(S.id);if(k)return{...S,position:k};const E=_.get(S.id);return E?{...S,position:E}:S})}function K4(e,n,r,i,o){const u=oo+Ju,c=60,h=w=>Sa(w,i,o),p=new Map(e.map(w=>[w.id,ba(w)])),d=[],m=e.map(w=>({id:w.id,pos:r.get(w.id)??n.get(w.id)})).filter(w=>w.pos!=null).sort((w,N)=>w.pos.y-N.pos.y||w.pos.x-N.pos.x||w.id.localeCompare(N.id)),y=[];for(const{id:w,pos:N}of m){const{w:_,h:b}=h(w),S=p.get(w)??"_default";if(r.has(w)){d.push({x:N.x,y:N.y,w:_,h:b,sid:S});continue}let k=N.y;for(let E=0;E<d.length+1;E++){const R=d.find(I=>{const O=I.sid===S?24:c,A=I.sid===S?24:u;return N.x<I.x+I.w+O&&I.x<N.x+_+O&&k<I.y+I.h+A&&I.y<k+b+A});if(!R)break;k=R.y+R.h+(R.sid===S?24:u)}k!==N.y&&(n.set(w,{x:N.x,y:k}),y.push(w)),d.push({x:N.x,y:k,w:_,h:b,sid:S})}return y}function X4(e,n,r,i,o,l){const u=_=>Sa(_,i,l),c=_=>r.get(_)??n.get(_),h=new Map;for(const _ of e){if(!c(_.id))continue;const b=ba(_),S=h.get(b);S?S.push(_):h.set(b,[_])}const p=new Set;for(const[_,b]of h)b.every(S=>o.has(S.id)&&!r.has(S.id))&&p.add(_);const d=new Map,m=[];for(const _ of e){const b=c(_.id);if(!b)continue;const{w:S,h:k}=u(_.id),E=ba(_);p.has(E)?(d.get(E)??d.set(E,[]).get(E)).push(_):m.push({x:b.x,y:b.y,w:S,h:k})}if(d.size===0)return[];const y=oo+Ju,w=(_,b,S,k)=>m.some(E=>_<E.x+E.w+oo&&E.x<_+S+oo&&b<E.y+E.h+y&&E.y<b+k+y),N=[];for(const _ of[...d.keys()].sort()){const b=d.get(_);let S=1/0,k=1/0,E=-1/0,R=-1/0;for(const D of b){const V=c(D.id),{w:B,h:C}=u(D.id);S=Math.min(S,V.x),k=Math.min(k,V.y),E=Math.max(E,V.x+B),R=Math.max(R,V.y+C)}const I=E-S,O=R-k,A=[...new Set(m.map(D=>Math.round(D.x)))].sort((D,V)=>D-V),U=A.length?A:[S],z=[0,...m.map(D=>D.y+D.h+y)].sort((D,V)=>D-V);let P=null;e:for(const D of U)for(const V of z){if(V>=k)break;if(!w(D,V,I,O)){P={x:D,y:V};break e}}if(P){const D=P.x-S,V=P.y-k;for(const B of b){const C=c(B.id);n.set(B.id,{x:C.x+D,y:C.y+V})}N.push(_)}for(const D of b){const V=c(D.id),{w:B,h:C}=u(D.id);m.push({x:V.x,y:V.y,w:B,h:C})}}return N}function Q4(e,n,r,i,o,l=!1,u){const p=oo+Ju+1,d=8,m=1.75,y=200,w=.7,N=.01,_=P=>Sa(P,i,u),b=P=>r.get(P)??n.get(P),S=new Map;for(const P of e){if(!b(P.id))continue;const D=ba(P),V=S.get(D);V?V.push(P):S.set(D,[P])}const k=[],E=new Set,R=new Set,I=o.size===0;for(const P of[...S.keys()].sort()){const D=S.get(P);let V=1/0,B=1/0,C=-1/0,q=-1/0,L=!1;for(const J of D){const M=b(J.id),{w:G,h:Y}=_(J.id);V=Math.min(V,M.x),B=Math.min(B,M.y),C=Math.max(C,M.x+G),q=Math.max(q,M.y+Y),r.has(J.id)&&(L=!0)}const re=C-V,Z=q-B;R.add(P);const H=o.get(P);H&&(re>H.w+d||Z>H.h+d)&&E.add(P),o.set(P,{w:re,h:Z}),k.push({sid:P,members:D.map(J=>J.id),x:V,y:B,w:re,h:Z,anchored:L,mass:1})}for(const P of[...o.keys()])R.has(P)||o.delete(P);if(l||I)return[];let O=!1;for(let P=0;P<k.length&&!O;P++)for(let D=P+1;D<k.length;D++){const V=k[P],B=k[D];if(!(V.anchored&&B.anchored)&&Math.abs(V.x+V.w/2-(B.x+B.w/2))<(V.w+B.w)/2+61&&Math.abs(V.y+V.h/2-(B.y+B.h/2))<(V.h+B.h)/2+p){O=!0;break}}if(E.size===0&&!O)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/(po*Cu));const A=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 D=new Map,V=new Map;let B=0;for(let C=0;C<k.length;C++)for(let q=C+1;q<k.length;q++){const L=k[C],re=k[q];if(L.anchored&&re.anchored)continue;const Z=L.x+L.w/2,H=L.y+L.h/2,J=re.x+re.w/2,M=re.y+re.h/2,G=(L.w+re.w)/2+61-Math.abs(Z-J),Y=(L.h+re.h)/2+p-Math.abs(H-M);if(G<=0||Y<=0)continue;const $=(Fe,Je)=>!Fe.anchored&&!(Je<0&&Fe.x<=0),Q=(Fe,Je)=>!Fe.anchored&&!(Je<0&&Fe.y<=0),ne=(Fe,Je,Xe)=>{const Mt=Fe===Je,ut=Mt?L.sid<re.sid?-1:1:Math.sign(Fe-Je);return Xe(L,ut)||Xe(re,-ut)?ut:Mt&&(Xe(L,-ut)||Xe(re,ut))?-ut:0},oe=ne(Z,J,$),fe=ne(H,M,Q),te=oe!==0,ce=fe!==0;if(!te&&!ce)continue;const Ce=te&&(!ce||G*m<Y),[ve,je,ye,ke]=Ce?[oe,G,D,$]:[fe,Y,V,Q],Ye=ke(L,ve),we=ke(re,-ve),_e=L.mass,Be=re.mass,it=Ye?we?Be/(_e+Be):1:0,pt=we?Ye?_e/(_e+Be):1:0,Ze=je*w;ye.set(L.sid,(ye.get(L.sid)??0)+ve*Ze*it),ye.set(re.sid,(ye.get(re.sid)??0)-ve*Ze*pt),B+=Ze}for(const C of k)C.anchored||(C.x=Math.max(0,C.x+(D.get(C.sid)??0)),C.y=Math.max(0,C.y+(V.get(C.sid)??0)));if(B<N)break}const z=[];for(const P of k){const D=P.x-A.get(P.sid),V=P.y-U.get(P.sid);if(!(Math.abs(D)<1&&Math.abs(V)<1)){for(const B of P.members){if(r.has(B))continue;const C=n.get(B);C&&n.set(B,{x:C.x+D,y:C.y+V})}z.push(P.sid)}}return z}const Z4=600;function Iv(e,n){return!(e.exitAt!=null&&n-e.exitAt>Z4||e.kind==="root"&&e.state==="done"&&e.tools.length===0&&e.endedAt!=null&&e.endedAt-e.startedAt<3e3)}function J4(e,n){const r=new Set;for(const i of e.agents.values())Iv(i,n)&&r.add(i.id);return r}function e5(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 t5(e,n,r=0){if(!e)return!1;for(const i of n)if(e5(e,i,r))return!0;return!1}const MR="sessionGroup";function n5(e,n){var i;if(e.type===MR)return"transparent";const r=(i=e.data)==null?void 0:i.state;return n(r==="err"?"--err":r==="active"?"--inflight":"--ok")}const r5="Update checks are off (AGENTS_DECK_NO_UPDATE_CHECK=1).";function s5(e){if(e.checkDisabled)return r5;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 i5(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 o5(e){const n=e.kind==="restart"?`v${e.to} is installed and waiting for a restart`:`v${e.to} is available on npm`;return`Version v${e.from}, ${n} — ${e.open?"hide":"show"} the notice`}function a5(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."}}const Mv={kind:"assumed",claude:!0,codex:!0};function l5(e){if(!e||typeof e!="object")return Mv;const n=e.providers;if(!n||typeof n!="object")return Mv;const r=n;return{kind:"reported",claude:r.claude!==!1,codex:r.codex!==!1}}function OR(e){const n=Math.max(0,Math.floor(e));return`${n} event${n===1?"":"s"}`}function u5(e){return e.connected?e.paused?{tone:"paused",label:"paused",title:e.held>0?`Connected — ${OR(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 c5(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:`${OR(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 PR(e,n){return e!==""&&n>0}function d5(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:PR(e,n)}}const f5="Search agents, tools, model…";function LR(e,n){var i,o,l,u;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)||e.model&&(e.model.toLowerCase().includes(r)||Ns(e.model).toLowerCase().includes(r))||(u=e.provider)!=null&&u.toLowerCase().startsWith(r))return!0;for(const c of e.tools)if(c.name.toLowerCase().includes(r))return!0;return!1}function Ov(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 h5(e,n){return e.getFullYear()===n.getFullYear()&&e.getMonth()===n.getMonth()&&e.getDate()===n.getDate()}function p5(e,n,r){const i=new Date(e),o=Ov(n-e);return{label:h5(i,new Date(n))?o:`${o} · ${i.toLocaleDateString(r,{month:"short",day:"numeric"})}`,title:i.toLocaleString(r,{dateStyle:"medium",timeStyle:"medium"})}}function aa(e){return typeof window>"u"?"":getComputedStyle(document.documentElement).getPropertyValue(e).trim()||""}const m5={agent:KP,sessionGroup:uL},$R="react-flow__node";function IE(e){var n,r;return!!e&&((r=(n=e.classList)==null?void 0:n.contains)==null?void 0:r.call(n,$R))===!0}function g5(e){try{const n=document.querySelector(`.${$R}[data-id="${CSS.escape(e)}"]`);n==null||n.focus({preventScroll:!0})}catch{}}const v5=420,au=18,y5=9e4,w5=200,x5=5*6e4,_5=6,b5=2*6e4,Sy="agent-dag.layout",ky="agent-dag.viewport",qR="agent-dag.summariesDismissed",DR="agent-dag.sessionListOpen",FR="agent-dag.detailOpen",zR="agent-dag.usagePanelOpen",ME="agent-dag.accountsPanelOpen",OE="agent-dag.versionNoticeDismissed",PE="agent-dag.oldNameNoticeDismissed",S5=15*6e4,LE={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:"},$E="agent-dag.autoRestart",qE="agent-dag.bundleReloadedFor";function k5(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(DR)==="1"}catch{return!1}}function E5(e){if(!(typeof window>"u"))try{window.localStorage.setItem(DR,e?"1":"0")}catch{}}function N5(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(FR)==="1"}catch{return!1}}function C5(e){if(!(typeof window>"u"))try{window.localStorage.setItem(FR,e?"1":"0")}catch{}}function R5(){const e=AC(zR);return e===null?!0:e==="1"}function T5(e){if(!(typeof window>"u"))try{window.localStorage.setItem(zR,e?"1":"0")}catch{}}function j5(){if(typeof window>"u")return new Set;try{const e=window.localStorage.getItem(qR);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 DE(e){if(!(typeof window>"u"))try{const n=Array.from(e),r=n.length>200?n.slice(-200):n;window.localStorage.setItem(qR,JSON.stringify(r))}catch{}}function A5(){const e={positions:[],pins:[]};if(typeof window>"u")return e;try{const n=window.localStorage.getItem(Sy);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 cv(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(Sy,JSON.stringify({v:2,positions:r,pins:Array.from(n.keys())}))}catch{}}function I5(){if(typeof window>"u")return null;try{const e=window.localStorage.getItem(ky);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 M5(e){if(!(typeof window>"u"))try{window.localStorage.setItem(ky,JSON.stringify(e))}catch{}}function FE(){if(!(typeof window>"u")){try{window.localStorage.removeItem(Sy)}catch{}try{window.localStorage.removeItem(ky)}catch{}}}function O5(e,n){const r=e.agents.get(n);if(!r)return;const i=[];for(const d of e.agents.values())d.sessionId===n&&i.push(d);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(d=>({id:d.id,kind:d.kind,label:d.label,parentId:d.parentId,state:d.state,startedAt:d.startedAt,endedAt:d.endedAt,model:d.model,cwd:d.cwd,usage:d.usage,prompts:d.prompts,tools:d.tools.map(m=>({id:m.id,name:m.name,inputPreview:m.inputPreview,startedAt:m.startedAt,endedAt:m.endedAt,ok:m.ok,errorPreview:m.errorPreview,usage:m.usage}))}))},l=JSON.stringify(o,null,2),u=new Blob([l],{type:"application/json"}),c=URL.createObjectURL(u),h=document.createElement("a"),p=(r.label||"session").replace(/[^a-z0-9._-]/gi,"_");h.href=c,h.download=`${en}-${p}-${n.slice(0,8)}.json`,document.body.appendChild(h),h.click(),document.body.removeChild(h),setTimeout(()=>URL.revokeObjectURL(c),1e3)}const Pv={file:"📁",shell:"⚡",web:"🌐",agent:"🤖",task:"📋",plan:"🧭",mcp:"🔌",other:"✨"},Lv={file:"file",shell:"shell",web:"web",agent:"agent",task:"task",plan:"plan",mcp:"mcp",other:"other"},BR=bC;function P5(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 L5(e,n,r,i,o,l,u,c,h,p,d,m,y,w,N,_,b,S,k){const E=[],R=[],I=new Set;if(l)for(const B of e.agents.values())S.has(B.id)&&LR(B,l)&&I.add(B.id);const O=PR(l,I.size);for(const B of e.agents.values()){if(!S.has(B.id))continue;const C=O&&!I.has(B.id),q=B.exitAt!=null,L=b!=null&&!b.has(B.id),re=[C?"rf-dim":"",q?"rf-exiting":"",L?"rf-spotlit-out":""].filter(Boolean).join(" ")||void 0,Z=u.get(B.id);if(E.push({id:B.id,type:"agent",position:{x:0,y:0},data:{...B,now:n,onOpenContext:k},className:re,...Z?{width:Z.width,height:Z.height}:null}),B.parentId&&S.has(B.parentId)){const H=ty(B.sessionId),J=l&&!I.has(B.id)&&!I.has(B.parentId),M=q,G=_.size>0&&(_.has(B.id)||_.has(B.parentId)),Y=b!=null&&!b.has(B.id)&&!b.has(B.parentId),$=B.state==="active"?2:1.5,Q=G?$+1.5:$,ne=J||M?.2:Y?.12:1,oe=["sess-edge",B.state==="active"?"sess-live":"sess-idle",M?"rf-edge-exiting":"",G?"rf-edge-selected":""].filter(Boolean).join(" ");R.push({id:`e:${B.parentId}->${B.id}`,source:B.parentId,target:B.id,animated:(B.state==="active"||G)&&!J&&!M,type:"smoothstep",style:{"--session-hue":H,strokeWidth:Q,opacity:ne,transition:"opacity 500ms ease, stroke-width 200ms ease"},className:oe})}}const A=new Map;for(const B of e.agents.values())B.tools.length>0&&A.set(B.id,Math.min(4,B.tools.length));const U=`${w}#lanes:${V4(A)}`,z=E.filter(B=>r$(B.id,o,m,y));if(z.length>0||U!==N.current){if(z.length>0){const B=Y4(E,R,{direction:"LR",pinned:o,measured:u,availableWidth:r,availableHeight:i,lanes:A});for(const C of B)jC(C.id,m,y)&&i$(C.id,C.position,m,y);X4(E,m,o,u,new Set(z.map(C=>C.id)),A)}K4(E,m,o,u,A),N.current=U}const P=Q4(E,m,o,u,c,!p||d,A);P.length>0&&h(P),ru(m,e.agents),ru(y,e.agents),ru(o,e.agents),ru(u,n$(e.agents.values()));const D=[];let V=!1;for(const B of E){let C=o.get(B.id)??m.get(B.id);C||(C=s$(B.id,m,y),V=!0),D.push({...B,position:C})}return V&&(N.current=""),{nodes:D,edges:R}}function $5(){return g.jsx(ey,{children:g.jsx(q5,{})})}function q5(){var Wa,Va,Ga,Ya;const e=Ra(),n=j.useRef(Cv()),[,r]=j.useState(0),i=j.useCallback(()=>r(W=>W+1),[]),[o,l]=j.useState(()=>new Set),[u,c]=j.useState(null),[h,p]=j.useState(null),d=j.useCallback((W,K)=>{l(le=>{if(!K)return new Set([W]);const de=new Set(le);return de.has(W)?de.delete(W):de.add(W),de}),c(le=>K&&le===W?le:W)},[]),m=j.useCallback(()=>{l(new Set),c(null)},[]),[y,w]=j.useState(null),[N,_]=j.useState(null),b=j.useCallback(W=>_(W),[]),[S,k]=j.useState(!1),E=j.useRef(j5()),[R,I]=j.useState(k5);j.useEffect(()=>{E5(R)},[R]);const[O,A]=j.useState(N5);j.useEffect(()=>{C5(O)},[O]);const[U,z]=j.useState(R5);j.useEffect(()=>{T5(U)},[U]);const[P,D]=j.useState(()=>{try{const W=window.localStorage.getItem(ME);return W===null?!0:W==="1"}catch{return!0}});j.useEffect(()=>{try{window.localStorage.setItem(ME,P?"1":"0")}catch{}},[P]);const[V,B]=j.useState(null),[C,q]=j.useState(!1),[L,re]=j.useState(0),[Z,H]=j.useState(0);j.useEffect(()=>{fetch("/api/sound-hook").then(W=>W.ok?W.json():null).then(W=>{W!=null&&W.ok&&(B(W.enabled===!0),re((W.foreign??[]).filter(K=>K.worksHere).length),H(typeof W.parked=="number"?W.parked:0))}).catch(()=>{})},[]);const J=j.useCallback(async()=>{q(!0);try{const K=await(await fetch("/api/sound-hook",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:!V})})).json().catch(()=>null);K!=null&&K.ok&&B(K.enabled===!0),fetch("/api/sound-hook").then(le=>le.ok?le.json():null).then(le=>{le!=null&&le.ok&&(re((le.foreign??[]).filter(de=>de.worksHere).length),H(typeof le.parked=="number"?le.parked:0))}).catch(()=>{})}catch{}finally{q(!1)}},[V]),[M,G]=j.useState(!1),[Y,$]=j.useState(null),[Q,ne]=j.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem(OE)??""}catch{return""}}),[oe,fe]=j.useState(!1),te=j.useRef(0),[ce,Ce]=j.useState(!1),ve=j.useCallback((W=!1)=>{W&&(te.current=Date.now(),Ce(!0)),fetch(W?"/api/version?refresh=1":"/api/version").then(K=>K.ok?K.json():null).then(K=>{K&&$(K)}).catch(()=>{}).finally(()=>{W&&Ce(!1)})},[]),je=j.useCallback(()=>{ve(Date.now()-te.current>=S5)},[ve]);j.useEffect(()=>{ve();const W=window.setInterval(je,5*6e4),K=()=>{document.visibilityState==="visible"&&je()};return document.addEventListener("visibilitychange",K),()=>{window.clearInterval(W),document.removeEventListener("visibilitychange",K)}},[ve,je]),j.useEffect(()=>{M&&ve()},[M,ve]);const ye=(Y==null?void 0:Y.notice)??null,[ke,Ye]=j.useState(null),[we,_e]=j.useState(Mv);j.useEffect(()=>{let W=!1;return fetch("/api/health").then(K=>K.ok?K.json():null).then(K=>{W||(_e(l5(K)),!(!K||typeof K.workspace!="string")&&Ye(K.workspace))}).catch(()=>{}),()=>{W=!0}},[M]);const Be=j.useRef(we);Be.current=we;const it=ye?`${ye.kind}:${ye.to}`:"",pt=ye!=null&&Q!==it,Ze=j.useCallback(()=>{if(!ye)return;const W=Q===it?"":it;ne(W);try{window.localStorage.setItem(OE,W)}catch{}},[ye,it,Q]),[Fe,Je]=j.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem(PE)??""}catch{return""}}),Xe=Y!=null&&Y.invokedAs&&Y.invokedAs!==en?Y.invokedAs:null,Mt=Xe!=null&&Fe!==Xe,ut=j.useCallback(()=>{if(Xe){Je(Xe);try{window.localStorage.setItem(PE,Xe)}catch{}}},[Xe]),Qe=((Wa=Y==null?void 0:Y.upgrade)==null?void 0:Wa.state)??"idle",Ot=W3(Y==null?void 0:Y.upgrade),Ft=j.useCallback(async()=>{try{await fetch("/api/upgrade",{method:"POST"})}catch{}ve()},[ve]);j.useEffect(()=>{if(Qe!=="running")return;const W=window.setInterval(ve,3e3);return()=>window.clearInterval(W)},[Qe,ve]);const et=j.useCallback(async()=>{var le;const W=Y==null?void 0:Y.command;if(!W)return;let K=!1;try{K=await Promise.race([((le=navigator.clipboard)==null?void 0:le.writeText(W).then(()=>!0))??Promise.resolve(!1),new Promise(de=>window.setTimeout(()=>de(!1),500))])}catch{K=!1}if(!K)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(),K=document.execCommand("copy"),de.remove()}catch{K=!1}K&&(fe(!0),window.setTimeout(()=>fe(!1),1600))},[Y==null?void 0:Y.command]),St=j.useCallback(()=>{I(W=>(W||D(!1),!W))},[]),mt=j.useCallback(()=>{D(W=>(W||I(!1),!W))},[]),[wt,hn]=j.useState(!1),[Yt,Pt]=j.useState(0),Sn=j.useRef(null),[gr,kn]=j.useState(!1),zt=j.useRef(null),[Fn,pn]=j.useState(0),vr=j.useRef(u$()),[Wr,gi]=j.useState(!1),Vr=j.useCallback(()=>{const W=vr.current,K=W.setPaused(!W.paused);for(const le of K)n.current=qx(n.current,le);gi(W.paused)},[]),[ct,vi]=j.useState(Date.now()),[mn,Rs]=j.useState(()=>{if(typeof window>"u")return!0;try{return window.localStorage.getItem($E)!=="0"}catch{return!0}}),yr=j.useCallback(()=>{Rs(W=>{const K=!W;try{window.localStorage.setItem($E,K?"1":"0")}catch{}return K})},[]),[zn,En]=j.useState(!1),[Gr,Yr]=j.useState("restart"),[Kr,yi]=j.useState(null),ir=j.useRef(!1),Ts=j.useRef(null),Nn=j.useRef(0),wr=j.useCallback(async W=>{if(ir.current)return;const K=(W==null?void 0:W.upgrade)===!0;ir.current=!0,Ts.current=Ot;const le=++Nn.current;Yr(K?"npx":"restart"),En(!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:K})})}catch{}window.setTimeout(()=>{if(Nn.current===le&&ir.current){ir.current=!1,En(!1);try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}}},K?18e4:3e4)},[ye==null?void 0:ye.to,Ot]),js=j.useRef(null);j.useEffect(()=>{let W=!1;for(const le of n.current.agents.values())if(le.state==="active"){W=!0;break}const K=G3({enabled:mn,kind:ye==null?void 0:ye.kind,canRestart:(Y==null?void 0:Y.canRestart)===!0,busy:W,idleSince:js.current,now:ct});js.current=K.idleSince,K.restart&&wr()},[mn,ye==null?void 0:ye.kind,Y==null?void 0:Y.canRestart,ct,wr]),j.useEffect(()=>{const W=Y==null?void 0:Y.running;let K=null,le=null;try{K=window.sessionStorage.getItem("agent-dag.restartPending"),le=window.sessionStorage.getItem(qE)}catch{return}const de=H3({bundle:"1.35.11",running:W,pending:K,lastTried:le});if(de==="reload"){try{window.sessionStorage.setItem(qE,W??"")}catch{return}window.location.reload();return}if(de!=="confirm")return;try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}ir.current=!1,En(!1),yi(W??null);const xe=window.setTimeout(()=>yi(null),6e3);return()=>window.clearTimeout(xe)},[Y==null?void 0:Y.running]),j.useEffect(()=>{if(zn&&V3({asked:Ts.current,reported:Ot})){try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}ir.current=!1,En(!1)}},[zn,Ot]);const As=j.useRef(A5()).current;j.useRef(!1);const Tt=j.useRef(new Map(As.positions.filter(([W])=>As.pins.includes(W)))),xr=j.useRef(null),_r=j.useState(()=>I5())[0],[Kt,Xr]=j.useState(""),[wi,nt]=j.useState(()=>new Set),[br,Qr]=j.useState(p$),[Is,Zr]=j.useState(!1),Jr=j.useRef(null);j.useEffect(()=>{document.documentElement.dataset.theme=br;try{window.localStorage.setItem(IC,br)}catch{}},[br]),j.useEffect(()=>{if(!_r)return;const W=window.setTimeout(()=>{try{e.setViewport(_r,{duration:0})}catch{}},60);return()=>window.clearTimeout(W)},[e,_r]);const Ms=j.useRef(!0);j.useEffect(()=>{const W=new EventSource("/events"),K=l$(i,{now:()=>Date.now(),setTimeout:(le,de)=>window.setTimeout(le,de),clearTimeout:le=>window.clearTimeout(le)});return W.addEventListener("open",()=>{G(!0),Zr(!0)}),W.addEventListener("error",()=>G(!1)),W.addEventListener("replay-end",()=>{Ms.current=!1,K.flush()}),W.addEventListener("hook",le=>{try{const de=JSON.parse(le.data);if(!vr.current.accept(de))return;n.current=qx(n.current,de),de.replay===!0||Ms.current||Date.now()-de.receivedAt>3e4?K.replay():K.live()}catch{}}),()=>{W.close(),K.cancel()}},[i]),j.useEffect(()=>{const W=setInterval(()=>{const K=Date.now();vi(K);let le=hP(n.current,K,y5);mP(n.current,K,pP)&&(le=!0),dP(n.current,K,w5,x5)&&(le=!0),fP(n.current,K,_5,b5)&&(le=!0),le&&i()},250);return()=>clearInterval(W)},[i]);const or=j.useRef(null),kt=j.useRef(0),Os=420,gt=j.useCallback((W=500)=>{try{const Ee=document.querySelector(".canvas-wrap"),Oe=Array.from(document.querySelectorAll(".react-flow__node")).filter(ot=>ot.offsetWidth>0);if(!Ee||Oe.length===0)return;const ze=Ee.getBoundingClientRect(),Ge=e.getViewport();if(!Number.isFinite(Ge.zoom)||Ge.zoom<=0)return;const Ve=ot=>(ot-ze.left-Ge.x)/Ge.zoom,qe=ot=>(ot-ze.top-Ge.y)/Ge.zoom,Rn=Oe.map(ot=>ot.getBoundingClientRect()),Hs=Math.min(...Rn.map(ot=>Ve(ot.left))),jo=Math.max(...Rn.map(ot=>Ve(ot.right))),Ws=Math.min(...Rn.map(ot=>qe(ot.top))),Ao=Math.max(...Rn.map(ot=>qe(ot.bottom))),Ka=jo-Hs,Ci=Ao-Ws;if(!(Ka>0&&Ci>0))return;const yn=Math.max(.2,Math.min(1,(ze.width-160)/(Ka+Os)*.86,(ze.height-160)/Ci*.86));e.setViewport({x:80-Hs*yn,y:Math.max(80,(ze.height-Ci*yn)/2)-Ws*yn,zoom:yn},{duration:W}),kt.current=Date.now(),window.setTimeout(()=>{try{const ot={x:80-Hs*yn,y:Math.max(80,(ze.height-Ci*yn)/2)-Ws*yn,zoom:yn},Xa=e.getViewport();(Math.abs(Xa.zoom-yn)>.01||Math.abs(Xa.x-ot.x)>2)&&e.setViewport(ot,{duration:0})}catch{}},W+60)}catch{}},[e]),_o=j.useRef(""),bo=j.useRef(null),La=j.useRef(0),Sr=j.useCallback(()=>{La.current=Date.now()},[]),es="agent-dag.autoFitDisabled",gn=j.useRef((()=>{if(typeof window>"u")return!1;try{return window.localStorage.getItem(es)==="1"}catch{return!1}})()),[Ps,$a]=j.useState(gn.current),qa=j.useCallback(()=>{if(!gn.current){gn.current=!0,$a(!0);try{window.localStorage.setItem(es,"1")}catch{}}},[]),So=j.useCallback(()=>{gn.current=!1,$a(!1);try{window.localStorage.removeItem(es)}catch{}gt(400)},[e,gt]);j.useEffect(()=>{const W=setInterval(()=>{if(gn.current||Date.now()-La.current<800)return;const K=n.current,le=Date.now(),de=[];for(const Ve of K.agents.values())Iv(Ve,le)&&de.push({id:Ve.id});if(de.length===0)return;const xe=e.getViewport(),Ee=window.innerWidth-360,Oe=window.innerHeight-52;let ze=!1,Ge=!1;for(const{id:Ve}of de){const qe=ar.current.get(Ve),Rn=Tt.current.get(Ve)??Xt.current.get(Ve);if(!qe||!Rn)continue;Ge=!0;const Hs=Rn.x*xe.zoom+xe.x,jo=Rn.y*xe.zoom+xe.y,Ws=(Rn.x+qe.width)*xe.zoom+xe.x,Ao=(Rn.y+qe.height)*xe.zoom+xe.y;if(Ws>0&&Hs<Ee&&Ao>0&&jo<Oe){ze=!0;break}}Ge&&!ze&&gt(600)},1500);return()=>clearInterval(W)},[e]);const xi=j.useRef(!1),ar=j.useRef(new Map),ts=j.useRef(0),ec=j.useCallback(W=>{const K=ar.current;let le=!1;for(const de of W.nodeInternals.values()){const xe=de.width,Ee=de.height;if(xe==null||Ee==null)continue;const Oe=K.get(de.id);Oe?(Math.abs(Oe.height-Ee)>4||Math.abs(Oe.width-xe)>4)&&(K.set(de.id,{width:xe,height:Ee}),le=!0):(K.set(de.id,{width:xe,height:Ee}),le=!0)}return le&&(ts.current+=1),ts.current},[]),_i=Ke(ec),[He,Da]=j.useState(0);j.useEffect(()=>{let W=0;const K=()=>{const de=ar.current;let xe=!1;for(const Ee of document.querySelectorAll(".react-flow__node[data-id]")){const Oe=Ee.getAttribute("data-id");if(!Oe)continue;const ze=Ee.offsetWidth,Ge=Ee.offsetHeight;if(!ze||!Ge)continue;const Ve=de.get(Oe);(!Ve||Math.abs(Ve.width-ze)>4||Math.abs(Ve.height-Ge)>4)&&(de.set(Oe,{width:ze,height:Ge}),xe=!0)}xe&&Da(Ee=>Ee+1)};if(xi.current)return;let le=0;return document.visibilityState==="hidden"?le=window.setTimeout(K,32):W=requestAnimationFrame(K),()=>{cancelAnimationFrame(W),window.clearTimeout(le)}});const Xt=j.useRef(new Map(As.positions)),ko=j.useRef(new Set),bi=j.useRef(""),kr=j.useMemo(()=>{const W=[];for(const K of n.current.agents.values())Iv(K,ct)&&W.push(K.id+(K.parentId?`>${K.parentId}`:""));return W.sort(),`${W.join("|")}#sv${_i}.${He}`},[n.current,n.current.lastSeq,ct,_i,He]),ns=j.useRef(null);j.useEffect(()=>(ns.current!=null&&window.clearTimeout(ns.current),ns.current=window.setTimeout(()=>{cv(Xt.current,Tt.current)},1500),()=>{ns.current!=null&&window.clearTimeout(ns.current)}),[kr]),j.useEffect(()=>{if(_o.current===kr)return;const W=_o.current;if(_o.current=kr,!W||gn.current)return;Date.now()-kt.current>1200&&gt(400),or.current&&window.clearTimeout(or.current),or.current=window.setTimeout(()=>{gn.current||gt(500)},280)},[kr,e,gt]);const Ls=j.useMemo(()=>{if(o.size===0)return null;const W=new Set;for(const K of o){const le=P5(n.current,K);if(le)for(const de of le)W.add(de)}return W.size>0?W:null},[n.current,n.current.lastSeq,o]),Cn=j.useMemo(()=>J4(n.current,ct),[n.current,n.current.lastSeq,ct]),Bn=j.useRef(null),[vn,Un]=j.useState({w:0,h:0});j.useEffect(()=>{const W=Bn.current;if(!W||typeof ResizeObserver>"u")return;const K=new ResizeObserver(le=>{var xe;const de=(xe=le[0])==null?void 0:xe.contentRect;de&&Un(Ee=>Math.abs(Ee.w-de.width)>40||Math.abs(Ee.h-de.height)>40?{w:de.width,h:de.height}:Ee)});return K.observe(W),Un({w:W.clientWidth,h:W.clientHeight}),()=>K.disconnect()},[]);const $s=j.useRef(new Map),[rs,lr]=j.useState(!1);j.useEffect(()=>{const W=window.setTimeout(()=>lr(!0),2500);return()=>window.clearTimeout(W)},[]);const[tc,Si]=j.useState(!1),tn=j.useRef(null),[Eo,No]=j.useState(!1),ki=j.useCallback(()=>{tn.current&&(window.clearTimeout(tn.current),tn.current=null),Si(!1)},[]),Fa=j.useCallback(W=>{W.length!==0&&queueMicrotask(()=>{Si(!0),tn.current&&window.clearTimeout(tn.current),tn.current=window.setTimeout(()=>Si(!1),v5+80)})},[]);j.useEffect(()=>()=>{tn.current&&window.clearTimeout(tn.current)},[]);const za=vn.w>0?vn.w*.92:0,ss=vn.h>0?vn.h:0,{nodes:nn,edges:is}=j.useMemo(()=>L5(n.current,ct,za,ss,Tt.current,Kt,ar.current,$s.current,Fa,rs,Eo,Xt.current,ko.current,kr,bi,o,Ls,Cn,b),[n.current,n.current.lastSeq,ct,za,ss,rs,Eo,Kt,kr,o,Ls,Cn,b,Yt]),qs=j.useMemo(()=>{const W=new Map;for(const le of nn){const de=le.data;if(!(de!=null&&de.sessionId)||de.exitAt!=null)continue;const xe=le.width,Ee=le.height;if(xe==null||Ee==null)continue;const Oe=le.position.x,ze=le.position.y,Ge=Oe+xe,Ve=ze+Ee,qe=W.get(de.sessionId);qe?(qe.minX=Math.min(qe.minX,Oe),qe.minY=Math.min(qe.minY,ze),qe.maxX=Math.max(qe.maxX,Ge),qe.maxY=Math.max(qe.maxY,Ve)):W.set(de.sessionId,{minX:Oe,minY:ze,maxX:Ge,maxY:Ve})}const K=[];for(const[le,de]of W){const xe=de.maxX-de.minX+au*2,Ee=de.maxY-de.minY+au*2;K.push({id:`group:${le}`,type:MR,position:{x:de.minX-au,y:de.minY-au},data:{sessionId:le,w:xe,h:Ee},width:xe,height:Ee,style:{width:xe,height:Ee},zIndex:-1,draggable:!0,selectable:!1,focusable:!1,deletable:!1,connectable:!1})}return K},[nn,ct]),nc=j.useMemo(()=>{const W=[...qs,...nn],K=zt.current;return!K||K.size===0?W:W.map(le=>{const de=K.get(le.id);return de?{...le,position:de}:le})},[qs,nn,Fn]),Ds=j.useMemo(()=>{if(!Kt)return null;const W=new Set;for(const K of n.current.agents.values())Cn.has(K.id)&&LR(K,Kt)&&W.add(K.id);return W},[n.current,n.current.lastSeq,Kt,Cn]),Hn=j.useMemo(()=>d5(Kt,(Ds==null?void 0:Ds.size)??0,Cn.size),[Kt,Ds,Cn]),Er=j.useMemo(()=>{const W=new Set;for(const K of n.current.agents.values())for(const le of K.tools)W.add(BR(le.name));return Object.keys(Pv).filter(K=>W.has(K))},[n.current,n.current.lastSeq]);j.useEffect(()=>{if(Er.length<=1){kn(!1);return}let W=0;const K=()=>{const le=Sn.current;if(le&&!document.hidden){const de=le.getBoundingClientRect(),xe=Array.from(document.querySelectorAll(".react-flow__node, .tool-burst")).map(Oe=>Oe.getBoundingClientRect()),Ee=t5(de,xe,8);kn(Oe=>Oe===Ee?Oe:Ee)}W=window.setTimeout(K,300)};return K(),()=>window.clearTimeout(W)},[Er.length]);const Nr=j.useMemo(()=>{const W=new Map;for(const le of n.current.agents.values())for(const de of le.tools){if(!de.name.startsWith("mcp__"))continue;const xe=de.name.slice(5),Ee=xe.indexOf("__"),Oe=Ee>0?xe.slice(0,Ee):xe;W.set(Oe,(W.get(Oe)??0)+1)}const K=[];for(const[le,de]of W){let xe=5381;for(let Ee=0;Ee<le.length;Ee++)xe=(xe<<5)+xe^le.charCodeAt(Ee);K.push({server:le,count:de,hue:Math.abs(xe)%360})}return K.sort((le,de)=>de.count-le.count),K},[n.current,n.current.lastSeq]),Ba=j.useCallback(W=>{nt(K=>{const le=new Set(K);return le.has(W)?le.delete(W):le.add(W),le})},[]),dt=u?n.current.agents.get(u):null,Fs=h?Array.from(n.current.agents.values()).flatMap(W=>W.tools).find(W=>W.id===h)??null:null,zs=j.useCallback(async()=>{try{await fetch("/api/clear",{method:"POST"})}catch{}n.current=Cv(),Tt.current.clear(),ar.current.clear(),Xt.current.clear(),bi.current="",FE(),m(),i()},[i,m]),Co=j.useRef(S);Co.current=S;const Bs=j.useRef(!1);Bs.current=Fs!=null||wt||N!=null||y!=null;const Cr=j.useCallback(W=>{const K=K3(W,{confirmOpen:Co.current,modalOpen:Bs.current});K==="confirm"?k(!0):K==="clear"&&(k(!1),zs())},[zs]),Ei=j.useCallback(()=>{Tt.current.clear(),Xt.current.clear(),bi.current="",FE(),i(),window.setTimeout(()=>gt(500),80)},[i,e,gt]),Bt=j.useCallback(()=>gt(500),[gt]),Wn=j.useRef(nn);Wn.current=nn;const Ni=j.useRef(u);Ni.current=u;const Rr=j.useCallback(W=>{const K=Wn.current,le=Q3(K.map(Ee=>({id:Ee.id,x:Ee.position.x,y:Ee.position.y})),Ni.current,W),de=le?K.find(Ee=>Ee.id===le):void 0;if(!de)return;const xe=IE(document.activeElement);d(de.id,!1),window.setTimeout(()=>{try{e.fitView({padding:.35,duration:350,nodes:[de]})}catch{}kt.current=Date.now(),xe&&g5(de.id)},30)},[d,e]),Ua=j.useCallback(W=>{d(W,!1),window.setTimeout(()=>{try{const K=Wn.current.find(le=>le.id===W);K&&e.fitView({padding:.3,duration:500,nodes:[K]}),kt.current=Date.now()}catch{}},60)},[d,e]);j.useEffect(()=>{const W=K=>{var ze,Ge,Ve;const le=K.target,de={tagName:le==null?void 0:le.tagName,isContentEditable:le==null?void 0:le.isContentEditable,role:(ze=le==null?void 0:le.getAttribute)==null?void 0:ze.call(le,"role"),type:le==null?void 0:le.type};if(K.key==="Escape"){const qe=OP({overlayOpen:Eu.depth()>0,typing:ny(de)});qe==="dismiss"?Eu.dismissTop():qe==="blur"?le==null||le.blur():(t$(de)&&(le==null||le.blur()),m());return}if(wC(K))return;const xe=IE(le)?(Ge=le==null?void 0:le.getAttribute)==null?void 0:Ge.call(le,"data-id"):null,Ee=xe&&Wn.current.some(qe=>qe.id===xe)?xe:null,Oe=J3(K,Ee);if(Oe.kind==="activate"){K.preventDefault(),d(Oe.nodeId,Oe.additive);return}if(Oe.kind!=="node"&&!(Oe.nodeId==null&&BP(de))){if(K.key==="/"){K.preventDefault(),(Ve=Jr.current)==null||Ve.focus();return}K.key===" "&&(K.preventDefault(),Vr()),(K.key==="c"||K.key==="C")&&Cr("shortcut"),(K.key==="r"||K.key==="R")&&Ei(),(K.key==="f"||K.key==="F")&&Bt(),(K.key==="l"||K.key==="L")&&St(),(K.key==="h"||K.key==="H")&&hn(qe=>!qe),(K.key==="u"||K.key==="U")&&z(qe=>!qe),(K.key==="a"||K.key==="A")&&Be.current.claude&&mt(),(K.key==="j"||K.key==="J")&&Rr(1),(K.key==="k"||K.key==="K")&&Rr(-1),(K.key==="t"||K.key==="T")&&Qr(qe=>qe==="dark"?"light":"dark")}};return window.addEventListener("keydown",W),()=>window.removeEventListener("keydown",W)},[Cr,Ei,Bt,m,d,Rr,Vr]);const Tr=n.current.agents.size,Ro=new Set(Array.from(n.current.agents.values()).map(W=>W.sessionId)).size,Qt=j.useMemo(()=>QL(n.current.agents.values()),[n.current,n.current.lastSeq]),Us=j.useMemo(()=>ZL(n.current.agents.values()),[n.current,n.current.lastSeq]),To=j.useRef(null);j.useEffect(()=>{const W=m$({waiting:Qt.length,running:Us}),K=To.current;if(To.current=W,(K==null?void 0:K.title)!==W.title&&(document.title=W.title),(K==null?void 0:K.icon)!==W.icon){const le=document.querySelector('link[rel="icon"]');le&&(le.href=g$[W.icon])}},[Qt.length,Us]);const[rc,sc]=j.useState(""),Ha=y$(Qt);j.useEffect(()=>{sc(W=>w$(W,Ha))},[Ha]);const Ut=j.useMemo(()=>{let W=0,K=0,le=0,de=0,xe=0,Ee=0,Oe=0,ze=0,Ge=0;for(const Ve of n.current.agents.values()){W+=Ve.usage.inputTokens,K+=Ve.usage.outputTokens,le+=Ve.usage.cacheReadTokens,de+=Ve.usage.cacheCreateTokens;const qe=dn(Ve.usage,Ve.model);xe+=qe.total,Ee+=qe.input,Oe+=qe.output,ze+=qe.cacheRead,Ge+=qe.cacheWrite}return{inT:W,outT:K,cacheR:le,cacheC:de,sum:W+K,cost:{total:xe,input:Ee,output:Oe,cacheRead:ze,cacheWrite:Ge}}},[n.current,n.current.lastSeq]);return g.jsxs("div",{className:"app",children:[g.jsx("a",{className:"skip-link",href:"#canvas",children:"Skip to the canvas"}),g.jsxs("header",{className:"topbar",children:[g.jsxs("div",{className:"brand",children:[g.jsx("span",{className:"logo"}),g.jsx("h1",{children:en}),ye?g.jsxs("button",{type:"button",className:"v stale",onClick:Ze,"aria-label":o5({...ye,open:pt}),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,g.jsx("span",{className:"v-dot","aria-hidden":!0})]}):(()=>{const W={running:(Y==null?void 0:Y.running)??"1.35.11",latest:Y==null?void 0:Y.latest,latestPending:Y==null?void 0:Y.latestPending,checkedAgo:Y!=null&&Y.checkedAt?Ov(ct-Y.checkedAt):null,checkDisabled:Y==null?void 0:Y.checkDisabled,checking:ce};return g.jsxs("button",{type:"button",className:ce?"v checking":"v",onClick:()=>ve(!0),"aria-busy":ce||void 0,"aria-label":i5(W),title:s5(W),children:["v",W.running]})})()]}),dt&&(()=>{const W=dn(dt.usage,dt.model),K=Math.max(0,((dt.endedAt??ct)-dt.startedAt)/1e3),le=dt.state==="active"?ku(W.total,K):null,de=o.size-1;return g.jsxs("button",{type:"button",className:"selected-ribbon",title:`Fit view to ${dt.label}`,onClick:()=>{try{const xe=nn.find(Ee=>Ee.id===dt.id);xe&&e.fitView({padding:.35,duration:500,nodes:[xe]}),kt.current=Date.now()}catch{}},children:[g.jsx("span",{className:`state-pill state-${dt.state}`,children:dt.state==="active"?"live":dt.state}),g.jsx("span",{className:"selected-label",children:dt.label}),W.total>0&&g.jsxs("span",{className:"selected-cost",children:[De(W.total),le?g.jsxs("span",{className:"selected-rate",children:[" · ",le]}):null]}),de>0&&g.jsxs("span",{className:"selected-extra",children:["+",de]}),g.jsx("span",{"aria-hidden":!0,className:"selected-close",onClick:xe=>{xe.stopPropagation(),m()},children:"×"})]})})(),g.jsxs("div",{className:"actions",children:[g.jsxs("div",{className:"search",children:[g.jsx("span",{className:"search-icon","aria-hidden":!0,children:"⌕"}),g.jsx("input",{ref:Jr,type:"text",placeholder:f5,value:Kt,onChange:W=>Xr(W.target.value),spellCheck:!1,"aria-label":"Filter the graph"}),Kt?g.jsx("button",{className:"search-clear","aria-label":"Clear search",onClick:()=>Xr(""),children:"×"}):g.jsx("kbd",{className:"search-kbd","aria-hidden":!0,children:"/"}),Hn.count&&g.jsx("span",{className:`search-count${Hn.empty?" none":""}`,"aria-live":"polite",title:`${Hn.count} agents on the canvas match “${Kt}”`,children:Hn.count})]}),g.jsxs("span",{className:"status",children:[(()=>{const W=u5({connected:M,paused:Wr,held:vr.current.size});return g.jsx("span",{className:`pill ${W.tone}`,title:W.title,children:W.label})})(),g.jsxs("span",{className:"stat",title:"Distinct CC sessions",children:[g.jsx("span",{className:"count",children:Ro}),g.jsx("span",{className:"lbl",children:"sessions"})]}),g.jsxs("span",{className:"stat",title:"Total agents (root + subagents)",children:[g.jsx("span",{className:"count",children:Tr}),g.jsx("span",{className:"lbl",children:"agents"})]}),g.jsxs("span",{className:"stat",title:"Total hook events received",children:[g.jsx("span",{className:"count",children:n.current.totalEvents}),g.jsx("span",{className:"lbl",children:"events"})]}),Ut.sum>0&&g.jsxs("span",{className:"stat",title:`in:${Ut.inT.toLocaleString()} out:${Ut.outT.toLocaleString()} cache-r:${Ut.cacheR.toLocaleString()} cache-c:${Ut.cacheC.toLocaleString()}`,children:[g.jsx("span",{className:"count",children:qt(Ut.sum)}),g.jsx("span",{className:"lbl",children:"tokens"})]}),Nr.length>0&&g.jsxs("span",{className:"stat mcp-legend",title:`MCP servers seen this session:
66
+ last 5h: ${qt(d.window5h.totalTokens)} tokens · ${d.window5h.sessionCount} session${d.window5h.sessionCount!==1?"s":""}`:""}`,children:[qt(d.window7d.totalTokens)," tokens · ",d.window7d.sessionCount," session",d.window7d.sessionCount!==1?"s":""," (7d)"]})]}),E>0?g.jsxs(g.Fragment,{children:[k&&g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"up-total",children:[g.jsx("span",{className:"up-total-value",children:De(N.total)}),g.jsx("span",{className:"up-total-label",children:"total spend"})]}),g.jsx(n3,{cost:N})]}),g.jsxs("div",{className:"up-tokens-row",children:[g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"in"}),qt(_.in)]}),g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"out"}),qt(_.out)]}),_.cacheR>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache r"}),qt(_.cacheR)]}),_.cacheC>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache c"}),qt(_.cacheC)]})]}),R.length>0&&g.jsxs("section",{className:"up-section",children:[g.jsx("h3",{className:"up-section-title",children:"By model"}),g.jsxs("table",{className:"up-table",children:[g.jsx("thead",{children:g.jsxs("tr",{children:[g.jsx("th",{children:"Model"}),g.jsx("th",{children:"Tokens"}),g.jsx("th",{children:"Cost"})]})}),g.jsx("tbody",{children:R.map(C=>g.jsxs("tr",{children:[g.jsx("td",{className:"up-model-name",title:C.model===Ud?"no model reported yet":C.model,children:C.model===Ud?"unknown":Ns(C.model)}),g.jsx("td",{className:"up-num",children:qt(C.inputTokens+C.outputTokens)}),C.priced?g.jsx("td",{className:"up-num up-cost-val",children:De(C.cost.total)}):g.jsx("td",{className:"up-num up-unpriced",children:fu})]},C.model))})]})]}),I.length>0&&g.jsxs("section",{className:"up-section",children:[g.jsx("h3",{className:"up-section-title",children:"By session"}),g.jsx("div",{className:"up-sessions",children:I.map(C=>g.jsxs("div",{className:"up-session-row",children:[g.jsx("span",{className:`sl-dot state-${C.state}`,"aria-hidden":!0}),g.jsx("span",{className:"vis-hidden",children:ry(C.state)}),g.jsx("span",{className:"up-session-label",children:C.label}),g.jsx("span",{className:"up-session-tokens",children:qt(C.inputTokens+C.outputTokens)}),C.cost>0?g.jsxs("span",{className:"up-session-cost",title:C.unpricedTokens>0?`${qt(C.unpricedTokens)} tokens in this session are on an unpriced model, so this is a floor`:void 0,children:[De(C.cost),C.unpricedTokens>0?"+":""]}):g.jsx("span",{className:"up-session-cost up-unpriced",children:fu})]},C.sessionId))})]}),O&&g.jsxs("div",{className:"up-hint",children:["“",fu,"” means this build holds no published rate for that model — those tokens are counted above and their dollars are not."]})]}):g.jsxs("div",{className:"up-empty",children:["No usage data yet.",g.jsx("br",{}),"Start a Claude Code or Codex session."]})]})}const e_=18,d3=1100,Ji=(e,n)=>{const r=Math.sin(e*12.9898+n*78.233)*43758.5453;return r-Math.floor(r)},f3=Array.from({length:e_},(e,n)=>{const r=-72+144*n/(e_-1)+(Ji(n,1)-.5)*9,i=(r-90)*(Math.PI/180),o=(54+32*Math.cos(r*Math.PI/180))*(.74+Ji(n,2)*.52);return{dx:Math.cos(i)*o,dy:Math.sin(i)*o,rot:(n%2?1:-1)*(100+Ji(n,3)*260),delay:Math.round(Ji(n,4)*90),dur:760+Math.round(Ji(n,5)*260),scale:.8+Ji(n,6)*.45,hue:n%4,round:n%3===0}});function t_({anchor:e,lifetimeMs:n=d3}){var l;const[r,i]=j.useState(null),o=typeof window<"u"&&((l=window.matchMedia)==null?void 0:l.call(window,"(prefers-reduced-motion: reduce)").matches);return j.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 h=window.setTimeout(()=>i(null),n);return()=>window.clearTimeout(h)},[e,n,o]),o||!r?null:UI.createPortal(g.jsx("div",{className:"confetti",style:{left:`${r.x}px`,top:`${r.y}px`},"aria-hidden":!0,children:f3.map((u,c)=>g.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 RC=new Set(["awaiting_url","awaiting_code","registering"]);function h3(e){return e!=null&&RC.has(e)}function TC(e){return e!=null&&e!=="done"&&!RC.has(e)}const p3="the sign-in ended before it finished — the deck restarted, or it was cancelled in another tab",m3="the sign-in did not complete";function g3({state:e,serverError:n,localError:r}){const i=e==="idle";return{title:i?"Sign-in ended":"Sign-in failed",message:r||n||(i?p3:m3)}}const v3="done";function y3(){let e=!1;return{shouldAnnounce(n){return n!==v3?(e=!1,!1):e?!1:(e=!0,!0)}}}const n_={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 ${en}`,expired:"that share has expired — make a new one",import_failed:"claude-swap refused the import",bad_value:"an alias can only use letters, numbers, spaces, dots, dashes and underscores, up to 64 characters"},r_={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"},w3=`claude-swap could not read the login keychain — start ${en} from a Terminal window rather than a background service`;function jv(e,n){return(e==null?void 0:e.reason)!=="no_cswap"&&/keychain/i.test(ho(e))?w3:e!=null&&e.reason&&r_[e.reason]?r_[e.reason]:(e==null?void 0:e.reason)||n}function ho(e){return((e==null?void 0:e.output)||(e==null?void 0:e.detail)||(e==null?void 0:e.error)||"").trim()}const s_={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",bad_range:"that date range is not a YYYYMMDD date — reopen the modal and pick one of the presets",unreachable:"the deck did not answer — check it is still running, then try again"},x3="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 _3(e){return/\bnpx\b/i.test(e)&&/(command not found|not found|not recognized|ENOENT)/i.test(e)}function b3(e,n){return _3(ho(e))?x3:e!=null&&e.reason&&s_[e.reason]?s_[e.reason]:(e==null?void 0:e.reason)||n}function hu(e,n){return e!=null&&e.detail?e.detail:e!=null&&e.error&&TC(e.state)?e.error:e!=null&&e.reason&&n_[e.reason]?n_[e.reason]:e!=null&&e.error?e.error:(e==null?void 0:e.reason)||n}const S3=1500;async function nu(e){return(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).json().catch(()=>null)}const Av=ue.forwardRef((e,n)=>g.jsxs("svg",{className:"aa-mark",viewBox:"0 0 44 44","aria-hidden":!0,ref:n,children:[g.jsx("circle",{className:"aa-mark-ring",cx:"22",cy:"22",r:"20"}),g.jsx("path",{className:"aa-mark-tick",d:"M13.5 22.5 L19.5 28.5 L31 17"})]}));Av.displayName="SuccessMark";function k3({onClose:e,onChanged:n}){const[r,i]=j.useState("login"),[o,l]=j.useState(null),[u,c]=j.useState(""),[h,p]=j.useState(""),[d,m]=j.useState(!1),[y,w]=j.useState(null),[N,_]=j.useState(null),b=j.useRef(!1),S=j.useRef(null),k=j.useRef(null),E=j.useRef(null),R=j.useRef(null),I=j.useCallback(()=>{b.current&&nu({action:"login-cancel"}).catch(()=>{}),e()},[e]),O=mo(I,{focusRef:E}),A=j.useCallback(async()=>{m(!0),w(null),b.current=!0;const q=await nu({action:"login"}).catch(()=>null);if(m(!1),!(q!=null&&q.ok)){w(hu(q,"could not start the sign-in"));return}l(q)},[]);j.useEffect(()=>{if(!h3(o==null?void 0:o.state))return;const q=window.setInterval(async()=>{try{const L=await fetch("/api/claude-accounts/login");L.ok&&l(await L.json())}catch{}},S3);return()=>window.clearInterval(q)},[o]);const U=j.useRef(n);U.current=n;const z=j.useRef(y3());j.useEffect(()=>{var q;(o==null?void 0:o.state)==="awaiting_code"&&((q=S.current)==null||q.focus()),z.current.shouldAnnounce(o==null?void 0:o.state)&&U.current()},[o==null?void 0:o.state]),j.useEffect(()=>{var q;r==="paste"&&((q=k.current)==null||q.focus())},[r]);const P=j.useCallback(async()=>{var L;m(!0),w(null);const q=await nu({action:"login-code",code:u}).catch(()=>null);if(m(!1),!(q!=null&&q.ok)){w(hu(q,"the code was not accepted")),q!=null&&q.state&&l(q),(L=S.current)==null||L.select();return}c(""),l(q)},[u,o]),D=j.useCallback(async()=>{m(!0),w(null);const q=await nu({action:"import",blob:h}).catch(()=>null);if(m(!1),!(q!=null&&q.ok)){w(hu(q,"the import failed"));return}p(""),_({added:q.added===!0,num:q.num??null,email:q.email??null}),n()},[h,n]),V=(o==null?void 0:o.state)==="done"?o.account:null,B=TC(o==null?void 0:o.state)||!!(y&&b.current&&!d),C=g3({state:o==null?void 0:o.state,serverError:o==null?void 0:o.error,localError:y});return g.jsx("div",{className:"modal-backdrop",onClick:I,role:"presentation",children:g.jsxs("div",{ref:O,className:"modal aa-modal",onClick:q=>q.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":"Add a Claude account",children:[g.jsxs("header",{className:"modal-head",children:[g.jsx("div",{className:"modal-title",children:g.jsxs("span",{className:"aa-tabs",role:"tablist",children:[g.jsx("button",{type:"button",role:"tab","aria-selected":r==="login",className:`aa-tab${r==="login"?" on":""}`,onClick:()=>i("login"),children:"Sign in"}),g.jsx("button",{type:"button",role:"tab","aria-selected":r==="paste",className:`aa-tab${r==="paste"?" on":""}`,onClick:()=>i("paste"),children:"Paste a share"})]})}),g.jsx("div",{className:"modal-actions",children:g.jsx("button",{type:"button",className:"btn icon-btn",onClick:I,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})})]}),g.jsx("section",{className:"modal-body aa-body",children:r==="login"?V?g.jsxs("div",{className:"aa-done",children:[g.jsx(Av,{ref:R}),g.jsx(t_,{anchor:R}),g.jsx("h4",{children:V.added?`Account ${V.num} added`:"Credentials refreshed"}),g.jsxs("p",{className:"aa-note",children:[g.jsx("strong",{children:V.email}),V.added?" is in the rotation. The account you were using is still active.":" was already managed, so its stored credentials were replaced."]}),g.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"?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"1 · Approve in the browser"}),g.jsx("p",{className:"aa-note",children:"A tab should have opened. If not, use this link:"}),g.jsx("a",{className:"aa-link",href:o.url??"#",target:"_blank",rel:"noreferrer noopener",children:o.url})]}),g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"2 · Paste the code it gives you"}),g.jsxs("div",{className:"aa-field",children:[g.jsx("input",{ref:S,type:"text",value:u,onChange:q=>c(q.target.value),onKeyDown:q=>{q.key==="Enter"&&u.trim()&&!d&&P()},placeholder:"paste the code here",spellCheck:!1,autoComplete:"off","aria-label":"Sign-in code",disabled:o.state==="registering"}),g.jsx("button",{type:"button",className:"btn primary",disabled:d||!u.trim()||o.state==="registering",onClick:P,children:o.state==="registering"?"registering…":"Continue"})]}),(y||o.error)&&g.jsx("p",{className:"aa-err",children:y??o.error}),g.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."})]})]}):B?g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:C.title}),g.jsx("p",{className:"aa-err",children:C.message}),g.jsx("button",{type:"button",className:"btn",onClick:()=>{b.current=!1,l(null),w(null),A()},children:"Try again"})]}):d||b.current?g.jsx("div",{className:"aa-step",children:g.jsx("p",{className:"aa-note",children:"Asking the claude CLI for a sign-in link…"})}):g.jsxs("div",{className:"aa-step aa-primer",children:[g.jsx("h4",{children:"Sign in to Anthropic"}),g.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."}),g.jsx("div",{className:"aa-actions",children:g.jsx("button",{type:"button",ref:E,className:"btn primary",onClick:A,disabled:d,children:"Open the sign-in page"})})]}):N?g.jsxs("div",{className:"aa-done",children:[g.jsx(Av,{ref:R}),N.added&&g.jsx(t_,{anchor:R}),g.jsx("h4",{children:N.added?`Account ${N.num} imported`:"Already here"}),g.jsx("p",{className:"aa-note",children:N.added?g.jsxs(g.Fragment,{children:[N.email?g.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."}),g.jsxs("div",{className:"aa-actions",children:[g.jsx("button",{type:"button",className:"btn primary",onClick:e,children:"Done"}),g.jsx("button",{type:"button",className:"btn",onClick:()=>_(null),children:"Import another"})]})]}):g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"Paste an account shared from another deck"}),g.jsxs("div",{className:"aa-field",children:[g.jsx("input",{ref:k,type:"text",value:h,onChange:q=>p(q.target.value),onKeyDown:q=>{q.key==="Enter"&&h.trim()&&!d&&D()},placeholder:"ccdeck1:…",spellCheck:!1,autoComplete:"off","aria-label":"Shared account"}),g.jsx("button",{type:"button",className:"btn primary",disabled:d||!h.trim(),onClick:D,children:d?"importing…":"Import"})]}),y&&g.jsx("p",{className:"aa-err",children:y}),g.jsxs("p",{className:"aa-note",children:["Use ",g.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 E3(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 N3(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}}const C3=64;function R3(e,n){const r=e.trim();return{alias:r,commit:r!==(n??"").trim()}}const T3=Object.freeze({text:"couldn't reach the deck server",reload:!0});async function i_(e){return e.ok?{ok:!0,status:e.status,body:null}:{ok:!1,status:e.status,body:await e.json().catch(()=>null)}}function j3(e){const n=e.find(i=>!i.ok);if(!n)return null;const r=ho(n.body);return{text:jv(n.body,`the deck server answered ${n.status}`),...r?{raw:r}:{},reload:!0}}function o_(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 a_=15e3,A3=8e3,I3=1800,M3=3e4,O3=[70,80,85,90,95];function P3(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 l_(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 L3(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 $3(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 q3({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?P3(e.resetAt,n):null;return g.jsxs("div",{className:"ap-lane",children:[g.jsx("span",{className:"ap-lane-label",children:e.label}),g.jsx("div",{className:"ap-lane-track",children:g.jsx("div",{className:"ap-lane-fill",style:{width:`${r===0?1.5:r}%`,background:i,opacity:r===0?.4:1}})}),g.jsxs("span",{className:"ap-lane-pct",style:{color:i},children:[r,"%"]}),g.jsx("span",{className:"ap-lane-reset",children:o?`resets ${o}`:""})]})}async function D3(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 F3(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 ne,oe,fe;const[n,r]=j.useState(null),[i,o]=j.useState(null),[l,u]=j.useState(null),[c,h]=j.useState(!1),[p,d]=j.useState(null),[m,y]=j.useState(null),[w,N]=j.useState(()=>Math.floor(Date.now()/1e3)),_=j.useRef(null),[b,S]=j.useState(null),[k,E]=j.useState(!1),[R,I]=j.useState(""),[O,A]=j.useState(null),[U,z]=j.useState(null),[P,D]=j.useState(null),[V,B]=j.useState(!1),[C,q]=j.useState(null),L=j.useCallback(async(te=!1)=>{te&&h(!0);const ce=new AbortController,Ce=window.setTimeout(()=>ce.abort(),M3);try{const[ve,je]=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()),je.ok&&o(await je.json());const ye=j3([await i_(ve),await i_(je)]);y(ke=>o_(ke,ye))}catch{y(ve=>o_(ve,T3))}finally{window.clearTimeout(Ce),te&&h(!1)}},[]),re=j.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:jv(ve,"command failed"),raw:ho(ve)}),ve}catch{return y({text:"server unreachable"}),null}finally{u(null)}},[]),Z=j.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:hu(ve,"command failed")}),ve}catch{return y({text:"server unreachable"}),null}finally{u(null)}},[]);j.useEffect(()=>(L(!0),_.current=window.setInterval(()=>L(!1),a_),()=>{_.current!=null&&window.clearInterval(_.current)}),[L]),j.useEffect(()=>{const te=window.setInterval(()=>N(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(te)},[]);const H=((ne=i==null?void 0:i.settings["autoswitch.threshold"])==null?void 0:ne.value)??"90",J=(oe=n==null?void 0:n.accounts)==null?void 0:oe.find(te=>te.active),M=J!=null&&J.lanes.length?Math.max(...J.lanes.map(te=>te.pct)):null,G=M!=null&&M>=Number(H)-15,Y=async te=>{d(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:jv(Ce,"the switch failed"),raw:ho(Ce)}),await L(!0)}catch{y({text:"server unreachable"})}finally{d(null)}},$=async(te,ce)=>{const{commit:Ce,alias:ve}=R3(R,ce);if(Ce){const je=await Z({action:"alias",account:te,alias:ve},`alias-${te}`);if(await L(!0),!(je!=null&&je.ok))return;I(ve)}A(te),window.setTimeout(()=>A(je=>je===te?null:je),I3)},Q=async(te,ce)=>{const Ce=await Z({action:"move",account:te,slot:ce},`move-${te}`),ve=N3({menuFor:b,shareFor:(P==null?void 0:P.num)??null},te,Ce);if(await L(!0),ve){S(ve.menuFor),z(ve.confirmRemove),ve.shareFor==null&&(D(null),B(!1)),q(ve.swapNote);const je=ve.swapNote;je&&window.setTimeout(()=>q(ye=>ye===je?null:ye),A3)}};return g.jsxs("aside",{className:"accounts-panel",id:"accounts-panel","aria-label":"Claude accounts",children:[g.jsxs("div",{className:"ap-header",children:[g.jsx("h2",{children:"Accounts"}),g.jsxs("div",{className:"ap-header-right",children:[g.jsx("button",{type:"button",className:"btn ap-add",onClick:()=>E(!0),"aria-label":"Add an account",title:"Sign in to another Claude account, or paste one shared from another deck",children:"+"}),g.jsx("button",{type:"button",className:"btn ap-refresh",onClick:()=>L(!0),disabled:c,"aria-label":"Reload accounts",title:"Reload from claude-swap",children:c?"…":"↻"}),g.jsx("button",{type:"button",className:"btn icon-btn",onClick:e,"aria-label":"Close accounts panel",title:"Close (A)",children:"×"})]})]}),n==null?m?g.jsxs("div",{className:"ap-empty",role:"alert",children:[g.jsx("span",{title:m.raw||void 0,children:m.text}),g.jsxs("span",{className:"ap-hint",children:["No accounts have arrived, so there is nothing to show yet. The panel keeps trying every ",a_/1e3," seconds."]}),g.jsx("button",{type:"button",className:"ap-fix",disabled:c,onClick:()=>L(!0),children:c?"trying…":"try again"})]}):g.jsx("div",{className:"ap-empty",children:"Checking…"}):n.ok?g.jsxs(g.Fragment,{children:[(fe=n.accounts)==null?void 0:fe.map(te=>g.jsxs("div",{className:`ap-account${te.active?" active":""}${te.disabled?" disabled":""}`,children:[g.jsxs("div",{className:"ap-account-head",children:[g.jsx("span",{className:"ap-num",children:te.num}),te.alias&&g.jsx("span",{className:"ap-alias",title:te.alias,children:te.alias}),g.jsx("span",{className:"ap-email",title:te.org??void 0,children:te.email}),g.jsx("button",{type:"button",className:`ap-more${b===te.num?" on":""}`,"aria-label":`Manage account ${te.num}`,"aria-expanded":b===te.num,"aria-controls":b===te.num?`ap-manage-${te.num}`:void 0,title:"Share, rename, move, remove",onClick:()=>{S(b===te.num?null:te.num),I(te.alias??""),z(null),D(null),B(!1),q(null),A(null)},children:"⋯"}),te.active?g.jsx("span",{className:"ap-badge-active",children:"● active"}):g.jsx("button",{type:"button",className:"btn ap-switch",disabled:p!=null||te.disabled,onClick:()=>Y(te.num),title:te.disabled?"Held out of rotation":`Switch to ${te.alias??te.email}`,children:p===te.num?"…":"switch"})]}),te.lanes.length>0?te.lanes.map(ce=>g.jsx(q3,{lane:ce,nowSec:w},ce.id)):g.jsx("div",{className:"ap-hint",children:"No usage recorded yet."}),g.jsxs("div",{className:"ap-meta",children:[te.error&&(()=>{const ce=$3(te.error);return g.jsxs(g.Fragment,{children:[g.jsx("span",{className:"ap-err",title:ce.hint,children:ce.text}),ce.fixable&&g.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&&g.jsx("button",{type:"button",className:"ap-rotate",disabled:l!=null,onClick:()=>re({action:"account",account:te.num,enabled:te.disabled},`rot-${te.num}`).then(()=>L(!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?g.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 ",l_(te.fetchedAt,w),L3(te.nextAt,w)]}):g.jsx("span",{className:"ap-age ap-stale",title:"claude-swap has not read this account yet",children:"never collected"})]}),b===te.num&&g.jsxs("div",{className:"ap-manage",id:`ap-manage-${te.num}`,role:"group","aria-label":`Manage account ${te.num}`,children:[g.jsxs("div",{className:"ap-manage-name",children:[g.jsx("label",{className:"vis-hidden",htmlFor:`ap-alias-${te.num}`,children:"Alias"}),g.jsx("input",{id:`ap-alias-${te.num}`,className:"ap-manage-input",type:"text",value:R,onChange:ce=>I(ce.target.value),onKeyDown:ce=>{ce.key==="Enter"&&$(te.num,te.alias)},maxLength:C3,placeholder:"e.g. work",spellCheck:!1,autoFocus:!0}),g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,onClick:()=>$(te.num,te.alias),title:"A short name to show instead of the email",children:O===te.num?"saved":"save"})]}),g.jsxs("div",{className:"ap-manage-acts",children:[g.jsx("label",{className:"vis-hidden",htmlFor:`ap-slot-${te.num}`,children:"Slot"}),g.jsx("span",{className:"ap-field",children:g.jsx("select",{id:`ap-slot-${te.num}`,value:String(te.num),disabled:l!=null,onChange:ce=>Q(te.num,Number(ce.target.value)),children:E3((n.accounts??[]).map(ce=>ce.num),te.num).map(ce=>g.jsx("option",{value:ce.slot,children:ce.label},ce.slot))})}),g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,title:`Copy this account to another ${en}. Anyone who has the text can use the account — treat it as the password. The other deck stops accepting it after 10 minutes; that does not make an escaped copy safe.`,onClick:async()=>{B(!1);const ce=await Z({action:"share",account:te.num},`share-${te.num}`);ce!=null&&ce.ok&&D({num:te.num,blob:ce.blob,expiresAt:ce.expiresAt})},children:"share"}),g.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){z(te.num),window.setTimeout(()=>z(ce=>ce===te.num?null:ce),4e3);return}z(null),Z({action:"remove",account:te.num},`rm-${te.num}`).then(()=>{S(null),L(!0)})},children:U===te.num?"confirm":"remove"})]}),(C==null?void 0:C.at)===te.num&&(()=>{var ve;const ce=(ve=n.accounts)==null?void 0:ve.find(je=>je.num===C.displaced),Ce=(ce==null?void 0:ce.alias)??(ce==null?void 0:ce.email)??"the account that was there";return g.jsxs("span",{className:"ap-manage-hint ap-manage-swap",title:`Slot ${C.at} was taken, so the two accounts traded places: ${Ce} now holds slot ${C.displaced}.`,children:["swapped with slot ",C.displaced]})})(),(P==null?void 0:P.num)===te.num&&(()=>{const ce=F3(P.expiresAt,w),Ce=ce.tone==="gone";return g.jsxs("div",{className:`ap-share${Ce?" expired":""}`,children:[g.jsx("code",{className:"ap-share-blob",children:P.blob}),g.jsxs("div",{className:"ap-share-foot",children:[g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,onClick:async()=>{if(Ce){B(!1);const ve=await Z({action:"share",account:te.num},`share-${te.num}`);ve!=null&&ve.ok&&D({num:te.num,blob:ve.blob,expiresAt:ve.expiresAt});return}await D3(P.blob)&&(B(!0),window.setTimeout(()=>B(!1),1800))},children:Ce?"make a new share":V?"copied":"copy"}),g.jsxs("span",{className:"ap-manage-hint",title:"This text is the account's password. It is base64 of plain JSON — the expiry inside it is not signed, so anyone holding a copy can change it, and the login itself is in there in the clear either way. The countdown only says how long another deck's import dialog will still accept it. If a copy escapes, sign the account out and back in.",children:[g.jsx("span",{className:"ap-share-warn",children:"this is the password"})," · ",g.jsx("span",{className:`ap-share-expiry ${ce.tone}`,children:ce.text})]})]})]})})()]})]},te.num)),(i==null?void 0:i.ok)&&g.jsxs("div",{className:"ap-auto",children:[g.jsxs("div",{className:"ap-auto-head",children:[g.jsx("span",{className:"ap-auto-title",children:"Auto-switch"}),g.jsxs("span",{className:"ap-auto-ctl",children:[M!=null&&g.jsxs("span",{className:`ap-auto-now${G?" near":""}`,children:[Math.round(M),"%"]}),g.jsx("span",{className:"ap-field",title:"Switch once the active account passes this much of its limit",children:g.jsx("select",{"aria-label":"Switch threshold",value:H,disabled:l!=null,onChange:te=>re({action:"setting",key:"autoswitch.threshold",value:te.target.value},"threshold").then(()=>L(!0)),children:O3.map(te=>g.jsxs("option",{value:te,children:[te,"%"]},te))})}),g.jsxs("button",{type:"button",className:`ap-auto-state${i.enabled?" live":""}`,role:"switch","aria-checked":i.enabled,disabled:l!=null,onClick:()=>re({action:"enable",enabled:!i.enabled},"enable").then(()=>L(!0)),title:i.enabled?"Stop switching accounts automatically":"Switch accounts automatically when the active one nears its limit",children:[g.jsx("i",{className:i.enabled?"ap-pulse":"ap-dot","aria-hidden":!0}),i.enabled?"on":"off"]})]})]}),i.external&&g.jsxs("p",{className:"ap-auto-note",children:[g.jsx("i",{className:"ap-pulse","aria-hidden":!0})," A ",g.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&&g.jsx("div",{className:"ap-auto-foot",children:g.jsxs("span",{className:"ap-auto-result",children:["checked ",l_(i.lastTick.at,w)]})})]}),m&&g.jsxs("div",{className:"ap-failure",role:"alert",children:[g.jsx("span",{className:"ap-failure-text",title:m.raw||void 0,children:m.text}),g.jsx("button",{type:"button",className:"ap-failure-x",onClick:()=>y(null),"aria-label":"Dismiss this message",title:"Dismiss",children:"×"})]}),g.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."})]}):g.jsx("div",{className:"ap-empty",children:n.reason==="no_cswap"?g.jsxs(g.Fragment,{children:[g.jsx("span",{children:"claude-swap isn't installed."}),g.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&&g.jsx("code",{className:"ap-cmd",children:n.hint}),g.jsxs("span",{className:"ap-hint",children:["Then add an account with the ",g.jsx("strong",{children:"+"})," button above."]})]}):n.reason==="no_accounts"?g.jsxs(g.Fragment,{children:[g.jsx("span",{children:"No accounts added yet."}),g.jsxs("span",{className:"ap-hint",children:["claude-swap is installed but has nothing in its store. Use the ",g.jsx("strong",{children:"+"})," above to sign one in, or to paste one shared from another deck."]})]}):g.jsxs(g.Fragment,{children:[g.jsx("span",{children:"Couldn't read the account store."}),g.jsxs("span",{className:"ap-hint",children:["claude-swap is installed, but its store could not be read",n.reason?` (${n.reason})`:"","."]})]})}),k&&g.jsx(k3,{onClose:()=>E(!1),onChanged:()=>L(!0)})]})}const B3=3e4;function U3({bundle:e,running:n,lastTried:r}){return!n||e===n?!1:r!==n}function H3({bundle:e,running:n,pending:r,lastTried:i}){return n?U3({bundle:e,running:n,lastTried:i})?"reload":r==null||r&&r!==n?"wait":"confirm":"wait"}function W3(e){return!e||e.state!=="failed"?null:`${typeof e.at=="number"?e.at:0}:${e.error??""}`}function V3({asked:e,reported:n}){return n?n!==e:!1}function G3(e){const n=e.thresholdMs??B3;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 Y3({agentCount:e,onConfirm:n,onCancel:r}){const i=j.useRef(null),o=mo(r,{focusRef:i,layer:IP}),l=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 g.jsx("div",{className:"modal-backdrop",onClick:r,role:"presentation",children:g.jsxs("div",{ref:o,className:"modal clear-confirm",onClick:u=>u.stopPropagation(),role:"dialog","aria-modal":"true","aria-labelledby":"clear-confirm-title",children:[g.jsxs("header",{className:"modal-head",children:[g.jsxs("div",{className:"modal-title",children:[g.jsx("span",{className:"status-dot err","aria-hidden":!0}),g.jsx("span",{id:"clear-confirm-title",className:"modal-tool-name",children:"Clear the deck?"})]}),g.jsx("div",{className:"modal-actions",children:g.jsx("button",{type:"button",className:"btn icon-btn",onClick:r,"aria-label":"Cancel (Esc)",title:"Cancel (Esc)",children:"×"})})]}),g.jsxs("section",{className:"modal-body",children:[g.jsxs("p",{className:"modal-note",children:[l," — the file a restarted deck replays to rebuild what you see. Layout, pins and selection go with it. This cannot be undone."]}),g.jsxs("div",{className:"cc-actions",children:[g.jsx("button",{type:"button",ref:i,className:"btn",onClick:r,children:"Cancel"}),g.jsx("button",{type:"button",className:"btn danger",onClick:n,children:"Clear everything"})]})]})]})})}function K3(e,n){return e==="confirmation"?n.confirmOpen?"clear":"ignore":n.modalOpen||n.confirmOpen?"ignore":"confirm"}function X3(e){return e.slice().sort((n,r)=>n.y-r.y||n.x-r.x)}function Q3(e,n,r){var u;if(e.length===0)return null;const i=X3(e),o=n?i.findIndex(c=>c.id===n):-1,l=o===-1?r===1?0:i.length-1:(o+r+i.length)%i.length;return((u=i[l])==null?void 0:u.id)??null}const Z3=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Escape","Delete","Backspace"]);function J3(e,n){return n==null?{kind:"deck",nodeId:null}:e.key==="Enter"||e.key===" "?{kind:"activate",nodeId:n,additive:e.shiftKey}:Z3.has(e.key)?{kind:"node",nodeId:n}:{kind:"deck",nodeId:n}}const e$=new Set(["","BODY","HTML","#DOCUMENT"]);function t$(e){return!e||ny(e)?!1:!e$.has(String(e.tagName??"").toUpperCase())}function ru(e,n){if(n.size!==0)for(const r of Array.from(e.keys()))n.has(r)||e.delete(r)}function n$(e){const n=new Set;for(const r of e)n.add(r.id),n.add(`group:${r.sessionId}`);return n}function jC(e,n,r){return!n.has(e)||r.has(e)}function r$(e,n,r,i){return!n.has(e)&&jC(e,r,i)}function s$(e,n,r){const i={x:0,y:0};return n.set(e,i),r.add(e),i}function i$(e,n,r,i){r.set(e,n),i.delete(e)}const o$=40,a$=120;function l$(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=(h,p,d)=>{if(r!=null){if(i<=h)return;u()}const m=Math.min(d,Math.max(0,h-p));i=h,r=n.setTimeout(l,m)};return{live(h=o$){const p=n.now(),d=Math.max(o+h,p);if(d<=p){u(),l();return}c(d,p,h)},replay(h=a$){u(),i=n.now()+h,r=n.setTimeout(l,h)},flush(){u(),l()},cancel(){u()}}}function u$(){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 c$="1",u_="agent-dag.schema",d$=["agent-dag.layout","agent-dag.viewport"];function AC(e){if(typeof window>"u")return null;try{return window.localStorage.getItem(e)}catch{return null}}function f$(e,n=c$){let r=null;try{r=e.getItem(u_)}catch{return[]}if(r===n)return[];const i=[];if(r!==null)for(const o of d$)try{e.getItem(o)!==null&&(e.removeItem(o),i.push(o))}catch{}try{e.setItem(u_,n)}catch{}return i}const IC="agent-dag.theme";function h$(e){return e==="light"?"light":"dark"}function p$(){return h$(AC(IC))}function m$({waiting:e,running:n}){return{title:e>0?`(${e}) ${en}`:en,icon:e>0?"waiting":n>0?"running":"idle"}}const Hd={waiting:"#c97d12",running:"#2a90d4",idle:"#7e828c"};function Wd(e,n){return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">${n==="waiting"?`<circle cx="16" cy="16" r="14.5" fill="${e}"/>`:`<circle cx="16" cy="16" r="12" fill="none" stroke="${e}" stroke-width="5"/>`+(n==="running"?`<circle cx="16" cy="16" r="5" fill="${e}"/>`:"")}</svg>`}const g$=Object.freeze({waiting:`data:image/svg+xml,${encodeURIComponent(Wd(Hd.waiting,"waiting"))}`,running:`data:image/svg+xml,${encodeURIComponent(Wd(Hd.running,"running"))}`,idle:`data:image/svg+xml,${encodeURIComponent(Wd(Hd.idle,"idle"))}`}),v$="No sessions are waiting for you.";function y$(e){if(e.length===0)return"";const[n,...r]=e;if(r.length===0)return`${n.label} is waiting for your permission.`;const i=`${r.length} more session${r.length===1?"":"s"}`;return`${n.label} and ${i} are waiting for your permission.`}function w$(e,n){return n!==""?n:e===""?"":v$}function x$(){let e=0;return{begin(){const n=++e;return()=>n===e},cancel(){e++}}}function _$(e,n=new Date){return new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate()-(e-1))).toISOString().slice(0,10).replace(/-/g,"")}function b$(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 su(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 S$=[7,14,30,90];function k$(e){const[n,r]=j.useState(null),[i,o]=j.useState(!1),l=j.useRef(x$()).current,u=(c=!1)=>{const h=l.begin(),p=e;o(!0);const m=`/api/ccusage?since=${_$(p)}${c?"&refresh=1":""}`;fetch(m).then(y=>y.json()).then(y=>{h()&&r({range:p,resp:y})}).catch(()=>{h()&&r({range:p,resp:{ok:!1,reason:"unreachable"}})}).finally(()=>{h()&&o(!1)})};return j.useEffect(()=>(u(!1),()=>l.cancel()),[e]),{landed:n,loading:i,reload:()=>u(!0)}}function E$({onClose:e}){var R,I,O;const[n,r]=j.useState(30),[i,o]=j.useState(null),{landed:l,loading:u,reload:c}=k$(n),h=j.useRef(null),p=mo(e,{focusRef:h}),d=b$({loading:u,want:n,answer:l&&{range:l.range,ok:l.resp.ok===!0,days:((R=l.resp.days)==null?void 0:R.length)??0}}),m=d.phase==="chart"?l.resp.days??[]:[],y=j.useMemo(()=>m.reduce((A,U)=>Math.max(A,U.totalCost),0),[m]),{totalCost:w,totalTok:N,inOut:_,cacheRead:b,modelCosts:S}=j.useMemo(()=>{let A=0,U=0,z=0,P=0;const D=new Map;for(const V of m){A+=V.totalCost,U+=V.totalTokens,z+=V.inputTokens+V.outputTokens,P+=V.cacheReadTokens;for(const B of V.modelBreakdowns)D.set(B.modelName,(D.get(B.modelName)??0)+B.cost)}return{totalCost:A,totalTok:U,inOut:z,cacheRead:P,modelCosts:D}},[m]),k=j.useMemo(()=>Array.from(S.entries()).sort((A,U)=>U[1]-A[1]),[S]),E=i?m.find(A=>A.period===i)??null:null;return g.jsx("div",{className:"uh-backdrop",onClick:e,role:"presentation",children:g.jsxs("div",{ref:p,className:"uh-modal",onClick:A=>A.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":"Usage history",children:[g.jsxs("header",{className:"uh-head",children:[g.jsxs("div",{className:"uh-titlewrap",children:[g.jsx("div",{className:"uh-title",children:"Usage history"}),g.jsx("div",{className:"uh-sub",children:"via ccusage · local Claude / Codex logs"})]}),g.jsx("div",{className:"uh-range",role:"group","aria-label":"Range",children:S$.map(A=>g.jsxs("button",{type:"button","aria-pressed":n===A,className:`uh-range-btn${n===A?" on":""}`,onClick:()=>{r(A),o(null)},children:[A,"d"]},A))}),g.jsx("button",{className:"btn icon-btn uh-reload",onClick:c,disabled:u,title:"Re-run ccusage","aria-label":"Reload",children:u?"…":"↻"}),g.jsx("button",{ref:h,className:"uh-close",onClick:e,"aria-label":"Close",children:"×"})]}),d.phase==="busy"?g.jsx("div",{className:"uh-status","aria-busy":"true",children:l?"running ccusage…":"running ccusage… (first run downloads the package)"}):d.phase==="error"?g.jsxs("div",{className:"uh-status uh-err",title:ho(l.resp)||void 0,children:[b3(l.resp,"ccusage did not report usage"),g.jsx("div",{children:g.jsx("button",{className:"btn uh-retry",onClick:c,disabled:u,children:u?"trying…":"Try again"})})]}):d.phase==="empty"?g.jsx("div",{className:`uh-status${d.stale?" uh-stale":""}`,"aria-busy":d.stale||void 0,children:"no usage in this range"}):g.jsxs("div",{className:d.stale?"uh-stale":void 0,"aria-busy":d.stale||void 0,children:[g.jsxs("div",{className:"uh-totals",children:[g.jsx(iu,{label:"total cost",val:De(w),accent:!0}),g.jsx(iu,{label:"tokens",val:qt(N)}),g.jsx(iu,{label:"input+output",val:qt(_)}),g.jsx(iu,{label:"cache reads",val:qt(b)})]}),g.jsx("div",{className:"uh-chart",role:"group","aria-label":"Daily cost by model",children:m.map(A=>{const U=y>0?A.totalCost/y*100:0,z=A.period===i,P=`${A.period}, ${De(A.totalCost)}`;return g.jsxs("button",{className:`uh-bar-col${z?" sel":""}`,onClick:()=>o(z?null:A.period),"aria-pressed":z,"aria-label":P,title:`${A.period} · ${De(A.totalCost)}`,style:{flexBasis:`${100/m.length}%`},children:[g.jsx("div",{className:"uh-bar",style:{height:`${Math.max(U,A.totalCost>0?2:0)}%`},children:A.modelBreakdowns.slice().sort((D,V)=>V.cost-D.cost).map(D=>{const V=A.totalCost>0?D.cost/A.totalCost*100:0;return g.jsx("div",{className:"uh-bar-seg",style:{height:`${V}%`,background:su(D.modelName)}},D.modelName)})}),g.jsx("span",{className:"uh-bar-label",children:A.period.slice(5)})]},A.period)})}),g.jsx("div",{className:"uh-legend",children:k.map(([A,U])=>g.jsxs("span",{className:"uh-legend-item",children:[g.jsx("span",{className:"uh-legend-dot",style:{background:su(A)}}),Ns(A)," ",g.jsx("span",{className:"uh-legend-cost",children:De(U)})]},A))}),E&&g.jsxs("div",{className:"uh-detail",children:[g.jsxs("div",{className:"uh-detail-head",children:[g.jsx("span",{className:"uh-detail-date",children:E.period}),g.jsx("span",{className:"uh-detail-cost",children:De(E.totalCost)}),(O=(I=E.metadata)==null?void 0:I.agents)!=null&&O.length?g.jsx("span",{className:"uh-detail-agents",children:E.metadata.agents.join(" · ")}):null]}),g.jsxs("div",{className:"uh-detail-mini",children:[g.jsx(ou,{label:"input",val:qt(E.inputTokens)}),g.jsx(ou,{label:"output",val:qt(E.outputTokens)}),g.jsx(ou,{label:"cache write",val:qt(E.cacheCreationTokens)}),g.jsx(ou,{label:"cache read",val:qt(E.cacheReadTokens)})]}),g.jsx("div",{className:"uh-detail-models",children:E.modelBreakdowns.slice().sort((A,U)=>U.cost-A.cost).map(A=>{const U=E.totalCost>0?A.cost/E.totalCost*100:0;return g.jsxs("div",{className:"uh-model-row",children:[g.jsxs("span",{className:"uh-model-name",children:[g.jsx("span",{className:"uh-legend-dot",style:{background:su(A.modelName)}}),Ns(A.modelName)]}),g.jsx("span",{className:"uh-model-bar",children:g.jsx("span",{className:"uh-model-bar-fill",style:{width:`${U}%`,background:su(A.modelName)}})}),g.jsx("span",{className:"uh-model-cost",children:De(A.cost)})]},A.modelName)})})]})]})]})})}function iu({label:e,val:n,accent:r}){return g.jsxs("div",{className:"uh-stat",children:[g.jsx("span",{className:`uh-stat-val${r?" accent":""}`,children:n}),g.jsx("span",{className:"uh-stat-label",children:e})]})}function ou({label:e,val:n}){return g.jsxs("div",{className:"uh-ministat",children:[g.jsx("span",{className:"uh-ministat-val",children:n}),g.jsx("span",{className:"uh-ministat-label",children:e})]})}function iy(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 Vd,c_;function N$(){if(c_)return Vd;c_=1;function e(){this.__data__=[],this.size=0}return Vd=e,Vd}var Gd,d_;function go(){if(d_)return Gd;d_=1;function e(n,r){return n===r||n!==n&&r!==r}return Gd=e,Gd}var Yd,f_;function Lu(){if(f_)return Yd;f_=1;var e=go();function n(r,i){for(var o=r.length;o--;)if(e(r[o][0],i))return o;return-1}return Yd=n,Yd}var Kd,h_;function C$(){if(h_)return Kd;h_=1;var e=Lu(),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 Kd=i,Kd}var Xd,p_;function R$(){if(p_)return Xd;p_=1;var e=Lu();function n(r){var i=this.__data__,o=e(i,r);return o<0?void 0:i[o][1]}return Xd=n,Xd}var Qd,m_;function T$(){if(m_)return Qd;m_=1;var e=Lu();function n(r){return e(this.__data__,r)>-1}return Qd=n,Qd}var Zd,g_;function j$(){if(g_)return Zd;g_=1;var e=Lu();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 Zd=n,Zd}var Jd,v_;function $u(){if(v_)return Jd;v_=1;var e=N$(),n=C$(),r=R$(),i=T$(),o=j$();function l(u){var c=-1,h=u==null?0:u.length;for(this.clear();++c<h;){var p=u[c];this.set(p[0],p[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=i,l.prototype.set=o,Jd=l,Jd}var ef,y_;function A$(){if(y_)return ef;y_=1;var e=$u();function n(){this.__data__=new e,this.size=0}return ef=n,ef}var tf,w_;function I$(){if(w_)return tf;w_=1;function e(n){var r=this.__data__,i=r.delete(n);return this.size=r.size,i}return tf=e,tf}var nf,x_;function M$(){if(x_)return nf;x_=1;function e(n){return this.__data__.get(n)}return nf=e,nf}var rf,__;function O$(){if(__)return rf;__=1;function e(n){return this.__data__.has(n)}return rf=e,rf}var sf,b_;function MC(){if(b_)return sf;b_=1;var e=typeof Ul=="object"&&Ul&&Ul.Object===Object&&Ul;return sf=e,sf}var of,S_;function sr(){if(S_)return of;S_=1;var e=MC(),n=typeof self=="object"&&self&&self.Object===Object&&self,r=e||n||Function("return this")();return of=r,of}var af,k_;function vo(){if(k_)return af;k_=1;var e=sr(),n=e.Symbol;return af=n,af}var lf,E_;function P$(){if(E_)return lf;E_=1;var e=vo(),n=Object.prototype,r=n.hasOwnProperty,i=n.toString,o=e?e.toStringTag:void 0;function l(u){var c=r.call(u,o),h=u[o];try{u[o]=void 0;var p=!0}catch{}var d=i.call(u);return p&&(c?u[o]=h:delete u[o]),d}return lf=l,lf}var uf,N_;function L$(){if(N_)return uf;N_=1;var e=Object.prototype,n=e.toString;function r(i){return n.call(i)}return uf=r,uf}var cf,C_;function fi(){if(C_)return cf;C_=1;var e=vo(),n=P$(),r=L$(),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 cf=u,cf}var df,R_;function qn(){if(R_)return df;R_=1;function e(n){var r=typeof n;return n!=null&&(r=="object"||r=="function")}return df=e,df}var ff,T_;function Aa(){if(T_)return ff;T_=1;var e=fi(),n=qn(),r="[object AsyncFunction]",i="[object Function]",o="[object GeneratorFunction]",l="[object Proxy]";function u(c){if(!n(c))return!1;var h=e(c);return h==i||h==o||h==r||h==l}return ff=u,ff}var hf,j_;function $$(){if(j_)return hf;j_=1;var e=sr(),n=e["__core-js_shared__"];return hf=n,hf}var pf,A_;function q$(){if(A_)return pf;A_=1;var e=$$(),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 pf=r,pf}var mf,I_;function OC(){if(I_)return mf;I_=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 mf=r,mf}var gf,M_;function D$(){if(M_)return gf;M_=1;var e=Aa(),n=q$(),r=qn(),i=OC(),o=/[\\^$.*+?()[\]{}|]/g,l=/^\[object .+?Constructor\]$/,u=Function.prototype,c=Object.prototype,h=u.toString,p=c.hasOwnProperty,d=RegExp("^"+h.call(p).replace(o,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function m(y){if(!r(y)||n(y))return!1;var w=e(y)?d:l;return w.test(i(y))}return gf=m,gf}var vf,O_;function F$(){if(O_)return vf;O_=1;function e(n,r){return n==null?void 0:n[r]}return vf=e,vf}var yf,P_;function hi(){if(P_)return yf;P_=1;var e=D$(),n=F$();function r(i,o){var l=n(i,o);return e(l)?l:void 0}return yf=r,yf}var wf,L_;function oy(){if(L_)return wf;L_=1;var e=hi(),n=sr(),r=e(n,"Map");return wf=r,wf}var xf,$_;function qu(){if($_)return xf;$_=1;var e=hi(),n=e(Object,"create");return xf=n,xf}var _f,q_;function z$(){if(q_)return _f;q_=1;var e=qu();function n(){this.__data__=e?e(null):{},this.size=0}return _f=n,_f}var bf,D_;function B$(){if(D_)return bf;D_=1;function e(n){var r=this.has(n)&&delete this.__data__[n];return this.size-=r?1:0,r}return bf=e,bf}var Sf,F_;function U$(){if(F_)return Sf;F_=1;var e=qu(),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 Sf=o,Sf}var kf,z_;function H$(){if(z_)return kf;z_=1;var e=qu(),n=Object.prototype,r=n.hasOwnProperty;function i(o){var l=this.__data__;return e?l[o]!==void 0:r.call(l,o)}return kf=i,kf}var Ef,B_;function W$(){if(B_)return Ef;B_=1;var e=qu(),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 Ef=r,Ef}var Nf,U_;function V$(){if(U_)return Nf;U_=1;var e=z$(),n=B$(),r=U$(),i=H$(),o=W$();function l(u){var c=-1,h=u==null?0:u.length;for(this.clear();++c<h;){var p=u[c];this.set(p[0],p[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=i,l.prototype.set=o,Nf=l,Nf}var Cf,H_;function G$(){if(H_)return Cf;H_=1;var e=V$(),n=$u(),r=oy();function i(){this.size=0,this.__data__={hash:new e,map:new(r||n),string:new e}}return Cf=i,Cf}var Rf,W_;function Y$(){if(W_)return Rf;W_=1;function e(n){var r=typeof n;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?n!=="__proto__":n===null}return Rf=e,Rf}var Tf,V_;function Du(){if(V_)return Tf;V_=1;var e=Y$();function n(r,i){var o=r.__data__;return e(i)?o[typeof i=="string"?"string":"hash"]:o.map}return Tf=n,Tf}var jf,G_;function K$(){if(G_)return jf;G_=1;var e=Du();function n(r){var i=e(this,r).delete(r);return this.size-=i?1:0,i}return jf=n,jf}var Af,Y_;function X$(){if(Y_)return Af;Y_=1;var e=Du();function n(r){return e(this,r).get(r)}return Af=n,Af}var If,K_;function Q$(){if(K_)return If;K_=1;var e=Du();function n(r){return e(this,r).has(r)}return If=n,If}var Mf,X_;function Z$(){if(X_)return Mf;X_=1;var e=Du();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 Mf=n,Mf}var Of,Q_;function ay(){if(Q_)return Of;Q_=1;var e=G$(),n=K$(),r=X$(),i=Q$(),o=Z$();function l(u){var c=-1,h=u==null?0:u.length;for(this.clear();++c<h;){var p=u[c];this.set(p[0],p[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=i,l.prototype.set=o,Of=l,Of}var Pf,Z_;function J$(){if(Z_)return Pf;Z_=1;var e=$u(),n=oy(),r=ay(),i=200;function o(l,u){var c=this.__data__;if(c instanceof e){var h=c.__data__;if(!n||h.length<i-1)return h.push([l,u]),this.size=++c.size,this;c=this.__data__=new r(h)}return c.set(l,u),this.size=c.size,this}return Pf=o,Pf}var Lf,J_;function Fu(){if(J_)return Lf;J_=1;var e=$u(),n=A$(),r=I$(),i=M$(),o=O$(),l=J$();function u(c){var h=this.__data__=new e(c);this.size=h.size}return u.prototype.clear=n,u.prototype.delete=r,u.prototype.get=i,u.prototype.has=o,u.prototype.set=l,Lf=u,Lf}var $f,e1;function ly(){if(e1)return $f;e1=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 $f=e,$f}var qf,t1;function PC(){if(t1)return qf;t1=1;var e=hi(),n=(function(){try{var r=e(Object,"defineProperty");return r({},"",{}),r}catch{}})();return qf=n,qf}var Df,n1;function zu(){if(n1)return Df;n1=1;var e=PC();function n(r,i,o){i=="__proto__"&&e?e(r,i,{configurable:!0,enumerable:!0,value:o,writable:!0}):r[i]=o}return Df=n,Df}var Ff,r1;function Bu(){if(r1)return Ff;r1=1;var e=zu(),n=go(),r=Object.prototype,i=r.hasOwnProperty;function o(l,u,c){var h=l[u];(!(i.call(l,u)&&n(h,c))||c===void 0&&!(u in l))&&e(l,u,c)}return Ff=o,Ff}var zf,s1;function Ia(){if(s1)return zf;s1=1;var e=Bu(),n=zu();function r(i,o,l,u){var c=!l;l||(l={});for(var h=-1,p=o.length;++h<p;){var d=o[h],m=u?u(l[d],i[d],d,l,i):void 0;m===void 0&&(m=i[d]),c?n(l,d,m):e(l,d,m)}return l}return zf=r,zf}var Bf,i1;function eq(){if(i1)return Bf;i1=1;function e(n,r){for(var i=-1,o=Array(n);++i<n;)o[i]=r(i);return o}return Bf=e,Bf}var Uf,o1;function mr(){if(o1)return Uf;o1=1;function e(n){return n!=null&&typeof n=="object"}return Uf=e,Uf}var Hf,a1;function tq(){if(a1)return Hf;a1=1;var e=fi(),n=mr(),r="[object Arguments]";function i(o){return n(o)&&e(o)==r}return Hf=i,Hf}var Wf,l1;function Ma(){if(l1)return Wf;l1=1;var e=tq(),n=mr(),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 Wf=l,Wf}var Vf,u1;function bt(){if(u1)return Vf;u1=1;var e=Array.isArray;return Vf=e,Vf}var ca={exports:{}},Gf,c1;function nq(){if(c1)return Gf;c1=1;function e(){return!1}return Gf=e,Gf}ca.exports;var d1;function yo(){return d1||(d1=1,(function(e,n){var r=sr(),i=nq(),o=n&&!n.nodeType&&n,l=o&&!0&&e&&!e.nodeType&&e,u=l&&l.exports===o,c=u?r.Buffer:void 0,h=c?c.isBuffer:void 0,p=h||i;e.exports=p})(ca,ca.exports)),ca.exports}var Yf,f1;function Uu(){if(f1)return Yf;f1=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 Yf=r,Yf}var Kf,h1;function uy(){if(h1)return Kf;h1=1;var e=9007199254740991;function n(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=e}return Kf=n,Kf}var Xf,p1;function rq(){if(p1)return Xf;p1=1;var e=fi(),n=uy(),r=mr(),i="[object Arguments]",o="[object Array]",l="[object Boolean]",u="[object Date]",c="[object Error]",h="[object Function]",p="[object Map]",d="[object Number]",m="[object Object]",y="[object RegExp]",w="[object Set]",N="[object String]",_="[object WeakMap]",b="[object ArrayBuffer]",S="[object DataView]",k="[object Float32Array]",E="[object Float64Array]",R="[object Int8Array]",I="[object Int16Array]",O="[object Int32Array]",A="[object Uint8Array]",U="[object Uint8ClampedArray]",z="[object Uint16Array]",P="[object Uint32Array]",D={};D[k]=D[E]=D[R]=D[I]=D[O]=D[A]=D[U]=D[z]=D[P]=!0,D[i]=D[o]=D[b]=D[l]=D[S]=D[u]=D[c]=D[h]=D[p]=D[d]=D[m]=D[y]=D[w]=D[N]=D[_]=!1;function V(B){return r(B)&&n(B.length)&&!!D[e(B)]}return Xf=V,Xf}var Qf,m1;function Hu(){if(m1)return Qf;m1=1;function e(n){return function(r){return n(r)}}return Qf=e,Qf}var da={exports:{}};da.exports;var g1;function cy(){return g1||(g1=1,(function(e,n){var r=MC(),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 h=o&&o.require&&o.require("util").types;return h||u&&u.binding&&u.binding("util")}catch{}})();e.exports=c})(da,da.exports)),da.exports}var Zf,v1;function Oa(){if(v1)return Zf;v1=1;var e=rq(),n=Hu(),r=cy(),i=r&&r.isTypedArray,o=i?n(i):e;return Zf=o,Zf}var Jf,y1;function LC(){if(y1)return Jf;y1=1;var e=eq(),n=Ma(),r=bt(),i=yo(),o=Uu(),l=Oa(),u=Object.prototype,c=u.hasOwnProperty;function h(p,d){var m=r(p),y=!m&&n(p),w=!m&&!y&&i(p),N=!m&&!y&&!w&&l(p),_=m||y||w||N,b=_?e(p.length,String):[],S=b.length;for(var k in p)(d||c.call(p,k))&&!(_&&(k=="length"||w&&(k=="offset"||k=="parent")||N&&(k=="buffer"||k=="byteLength"||k=="byteOffset")||o(k,S)))&&b.push(k);return b}return Jf=h,Jf}var eh,w1;function Wu(){if(w1)return eh;w1=1;var e=Object.prototype;function n(r){var i=r&&r.constructor,o=typeof i=="function"&&i.prototype||e;return r===o}return eh=n,eh}var th,x1;function $C(){if(x1)return th;x1=1;function e(n,r){return function(i){return n(r(i))}}return th=e,th}var nh,_1;function sq(){if(_1)return nh;_1=1;var e=$C(),n=e(Object.keys,Object);return nh=n,nh}var rh,b1;function dy(){if(b1)return rh;b1=1;var e=Wu(),n=sq(),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 rh=o,rh}var sh,S1;function Ur(){if(S1)return sh;S1=1;var e=Aa(),n=uy();function r(i){return i!=null&&n(i.length)&&!e(i)}return sh=r,sh}var ih,k1;function Cs(){if(k1)return ih;k1=1;var e=LC(),n=dy(),r=Ur();function i(o){return r(o)?e(o):n(o)}return ih=i,ih}var oh,E1;function iq(){if(E1)return oh;E1=1;var e=Ia(),n=Cs();function r(i,o){return i&&e(o,n(o),i)}return oh=r,oh}var ah,N1;function oq(){if(N1)return ah;N1=1;function e(n){var r=[];if(n!=null)for(var i in Object(n))r.push(i);return r}return ah=e,ah}var lh,C1;function aq(){if(C1)return lh;C1=1;var e=qn(),n=Wu(),r=oq(),i=Object.prototype,o=i.hasOwnProperty;function l(u){if(!e(u))return r(u);var c=n(u),h=[];for(var p in u)p=="constructor"&&(c||!o.call(u,p))||h.push(p);return h}return lh=l,lh}var uh,R1;function pi(){if(R1)return uh;R1=1;var e=LC(),n=aq(),r=Ur();function i(o){return r(o)?e(o,!0):n(o)}return uh=i,uh}var ch,T1;function lq(){if(T1)return ch;T1=1;var e=Ia(),n=pi();function r(i,o){return i&&e(o,n(o),i)}return ch=r,ch}var fa={exports:{}};fa.exports;var j1;function qC(){return j1||(j1=1,(function(e,n){var r=sr(),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 h(p,d){if(d)return p.slice();var m=p.length,y=c?c(m):new p.constructor(m);return p.copy(y),y}e.exports=h})(fa,fa.exports)),fa.exports}var dh,A1;function DC(){if(A1)return dh;A1=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 dh=e,dh}var fh,I1;function FC(){if(I1)return fh;I1=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 fh=e,fh}var hh,M1;function zC(){if(M1)return hh;M1=1;function e(){return[]}return hh=e,hh}var ph,O1;function fy(){if(O1)return ph;O1=1;var e=FC(),n=zC(),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 ph=l,ph}var mh,P1;function uq(){if(P1)return mh;P1=1;var e=Ia(),n=fy();function r(i,o){return e(i,n(i),o)}return mh=r,mh}var gh,L1;function hy(){if(L1)return gh;L1=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 gh=e,gh}var vh,$1;function Vu(){if($1)return vh;$1=1;var e=$C(),n=e(Object.getPrototypeOf,Object);return vh=n,vh}var yh,q1;function BC(){if(q1)return yh;q1=1;var e=hy(),n=Vu(),r=fy(),i=zC(),o=Object.getOwnPropertySymbols,l=o?function(u){for(var c=[];u;)e(c,r(u)),u=n(u);return c}:i;return yh=l,yh}var wh,D1;function cq(){if(D1)return wh;D1=1;var e=Ia(),n=BC();function r(i,o){return e(i,n(i),o)}return wh=r,wh}var xh,F1;function UC(){if(F1)return xh;F1=1;var e=hy(),n=bt();function r(i,o,l){var u=o(i);return n(i)?u:e(u,l(i))}return xh=r,xh}var _h,z1;function HC(){if(z1)return _h;z1=1;var e=UC(),n=fy(),r=Cs();function i(o){return e(o,r,n)}return _h=i,_h}var bh,B1;function dq(){if(B1)return bh;B1=1;var e=UC(),n=BC(),r=pi();function i(o){return e(o,r,n)}return bh=i,bh}var Sh,U1;function fq(){if(U1)return Sh;U1=1;var e=hi(),n=sr(),r=e(n,"DataView");return Sh=r,Sh}var kh,H1;function hq(){if(H1)return kh;H1=1;var e=hi(),n=sr(),r=e(n,"Promise");return kh=r,kh}var Eh,W1;function WC(){if(W1)return Eh;W1=1;var e=hi(),n=sr(),r=e(n,"Set");return Eh=r,Eh}var Nh,V1;function pq(){if(V1)return Nh;V1=1;var e=hi(),n=sr(),r=e(n,"WeakMap");return Nh=r,Nh}var Ch,G1;function wo(){if(G1)return Ch;G1=1;var e=fq(),n=oy(),r=hq(),i=WC(),o=pq(),l=fi(),u=OC(),c="[object Map]",h="[object Object]",p="[object Promise]",d="[object Set]",m="[object WeakMap]",y="[object DataView]",w=u(e),N=u(n),_=u(r),b=u(i),S=u(o),k=l;return(e&&k(new e(new ArrayBuffer(1)))!=y||n&&k(new n)!=c||r&&k(r.resolve())!=p||i&&k(new i)!=d||o&&k(new o)!=m)&&(k=function(E){var R=l(E),I=R==h?E.constructor:void 0,O=I?u(I):"";if(O)switch(O){case w:return y;case N:return c;case _:return p;case b:return d;case S:return m}return R}),Ch=k,Ch}var Rh,Y1;function mq(){if(Y1)return Rh;Y1=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 Rh=r,Rh}var Th,K1;function VC(){if(K1)return Th;K1=1;var e=sr(),n=e.Uint8Array;return Th=n,Th}var jh,X1;function py(){if(X1)return jh;X1=1;var e=VC();function n(r){var i=new r.constructor(r.byteLength);return new e(i).set(new e(r)),i}return jh=n,jh}var Ah,Q1;function gq(){if(Q1)return Ah;Q1=1;var e=py();function n(r,i){var o=i?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.byteLength)}return Ah=n,Ah}var Ih,Z1;function vq(){if(Z1)return Ih;Z1=1;var e=/\w*$/;function n(r){var i=new r.constructor(r.source,e.exec(r));return i.lastIndex=r.lastIndex,i}return Ih=n,Ih}var Mh,J1;function yq(){if(J1)return Mh;J1=1;var e=vo(),n=e?e.prototype:void 0,r=n?n.valueOf:void 0;function i(o){return r?Object(r.call(o)):{}}return Mh=i,Mh}var Oh,eb;function GC(){if(eb)return Oh;eb=1;var e=py();function n(r,i){var o=i?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.length)}return Oh=n,Oh}var Ph,tb;function wq(){if(tb)return Ph;tb=1;var e=py(),n=gq(),r=vq(),i=yq(),o=GC(),l="[object Boolean]",u="[object Date]",c="[object Map]",h="[object Number]",p="[object RegExp]",d="[object Set]",m="[object String]",y="[object Symbol]",w="[object ArrayBuffer]",N="[object DataView]",_="[object Float32Array]",b="[object Float64Array]",S="[object Int8Array]",k="[object Int16Array]",E="[object Int32Array]",R="[object Uint8Array]",I="[object Uint8ClampedArray]",O="[object Uint16Array]",A="[object Uint32Array]";function U(z,P,D){var V=z.constructor;switch(P){case w:return e(z);case l:case u:return new V(+z);case N:return n(z,D);case _:case b:case S:case k:case E:case R:case I:case O:case A:return o(z,D);case c:return new V;case h:case m:return new V(z);case p:return r(z);case d:return new V;case y:return i(z)}}return Ph=U,Ph}var Lh,nb;function YC(){if(nb)return Lh;nb=1;var e=qn(),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 Lh=r,Lh}var $h,rb;function KC(){if(rb)return $h;rb=1;var e=YC(),n=Vu(),r=Wu();function i(o){return typeof o.constructor=="function"&&!r(o)?e(n(o)):{}}return $h=i,$h}var qh,sb;function xq(){if(sb)return qh;sb=1;var e=wo(),n=mr(),r="[object Map]";function i(o){return n(o)&&e(o)==r}return qh=i,qh}var Dh,ib;function _q(){if(ib)return Dh;ib=1;var e=xq(),n=Hu(),r=cy(),i=r&&r.isMap,o=i?n(i):e;return Dh=o,Dh}var Fh,ob;function bq(){if(ob)return Fh;ob=1;var e=wo(),n=mr(),r="[object Set]";function i(o){return n(o)&&e(o)==r}return Fh=i,Fh}var zh,ab;function Sq(){if(ab)return zh;ab=1;var e=bq(),n=Hu(),r=cy(),i=r&&r.isSet,o=i?n(i):e;return zh=o,zh}var Bh,lb;function XC(){if(lb)return Bh;lb=1;var e=Fu(),n=ly(),r=Bu(),i=iq(),o=lq(),l=qC(),u=DC(),c=uq(),h=cq(),p=HC(),d=dq(),m=wo(),y=mq(),w=wq(),N=KC(),_=bt(),b=yo(),S=_q(),k=qn(),E=Sq(),R=Cs(),I=pi(),O=1,A=2,U=4,z="[object Arguments]",P="[object Array]",D="[object Boolean]",V="[object Date]",B="[object Error]",C="[object Function]",q="[object GeneratorFunction]",L="[object Map]",re="[object Number]",Z="[object Object]",H="[object RegExp]",J="[object Set]",M="[object String]",G="[object Symbol]",Y="[object WeakMap]",$="[object ArrayBuffer]",Q="[object DataView]",ne="[object Float32Array]",oe="[object Float64Array]",fe="[object Int8Array]",te="[object Int16Array]",ce="[object Int32Array]",Ce="[object Uint8Array]",ve="[object Uint8ClampedArray]",je="[object Uint16Array]",ye="[object Uint32Array]",ke={};ke[z]=ke[P]=ke[$]=ke[Q]=ke[D]=ke[V]=ke[ne]=ke[oe]=ke[fe]=ke[te]=ke[ce]=ke[L]=ke[re]=ke[Z]=ke[H]=ke[J]=ke[M]=ke[G]=ke[Ce]=ke[ve]=ke[je]=ke[ye]=!0,ke[B]=ke[C]=ke[Y]=!1;function Ye(we,_e,Be,it,pt,Ze){var Fe,Je=_e&O,Xe=_e&A,Mt=_e&U;if(Be&&(Fe=pt?Be(we,it,pt,Ze):Be(we)),Fe!==void 0)return Fe;if(!k(we))return we;var ut=_(we);if(ut){if(Fe=y(we),!Je)return u(we,Fe)}else{var Qe=m(we),Ot=Qe==C||Qe==q;if(b(we))return l(we,Je);if(Qe==Z||Qe==z||Ot&&!pt){if(Fe=Xe||Ot?{}:N(we),!Je)return Xe?h(we,o(Fe,we)):c(we,i(Fe,we))}else{if(!ke[Qe])return pt?we:{};Fe=w(we,Qe,Je)}}Ze||(Ze=new e);var Ft=Ze.get(we);if(Ft)return Ft;Ze.set(we,Fe),E(we)?we.forEach(function(mt){Fe.add(Ye(mt,_e,Be,mt,we,Ze))}):S(we)&&we.forEach(function(mt,wt){Fe.set(wt,Ye(mt,_e,Be,wt,we,Ze))});var et=Mt?Xe?d:p:Xe?I:R,St=ut?void 0:et(we);return n(St||we,function(mt,wt){St&&(wt=mt,mt=we[wt]),r(Fe,wt,Ye(mt,_e,Be,wt,we,Ze))}),Fe}return Bh=Ye,Bh}var Uh,ub;function kq(){if(ub)return Uh;ub=1;var e=XC(),n=4;function r(i){return e(i,n)}return Uh=r,Uh}var Hh,cb;function my(){if(cb)return Hh;cb=1;function e(n){return function(){return n}}return Hh=e,Hh}var Wh,db;function Eq(){if(db)return Wh;db=1;function e(n){return function(r,i,o){for(var l=-1,u=Object(r),c=o(r),h=c.length;h--;){var p=c[n?h:++l];if(i(u[p],p,u)===!1)break}return r}}return Wh=e,Wh}var Vh,fb;function gy(){if(fb)return Vh;fb=1;var e=Eq(),n=e();return Vh=n,Vh}var Gh,hb;function vy(){if(hb)return Gh;hb=1;var e=gy(),n=Cs();function r(i,o){return i&&e(i,o,n)}return Gh=r,Gh}var Yh,pb;function Nq(){if(pb)return Yh;pb=1;var e=Ur();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,h=Object(o);(i?c--:++c<u)&&l(h[c],c,h)!==!1;);return o}}return Yh=n,Yh}var Kh,mb;function Gu(){if(mb)return Kh;mb=1;var e=vy(),n=Nq(),r=n(e);return Kh=r,Kh}var Xh,gb;function mi(){if(gb)return Xh;gb=1;function e(n){return n}return Xh=e,Xh}var Qh,vb;function QC(){if(vb)return Qh;vb=1;var e=mi();function n(r){return typeof r=="function"?r:e}return Qh=n,Qh}var Zh,yb;function ZC(){if(yb)return Zh;yb=1;var e=ly(),n=Gu(),r=QC(),i=bt();function o(l,u){var c=i(l)?e:n;return c(l,r(u))}return Zh=o,Zh}var Jh,wb;function JC(){return wb||(wb=1,Jh=ZC()),Jh}var ep,xb;function Cq(){if(xb)return ep;xb=1;var e=Gu();function n(r,i){var o=[];return e(r,function(l,u,c){i(l,u,c)&&o.push(l)}),o}return ep=n,ep}var tp,_b;function Rq(){if(_b)return tp;_b=1;var e="__lodash_hash_undefined__";function n(r){return this.__data__.set(r,e),this}return tp=n,tp}var np,bb;function Tq(){if(bb)return np;bb=1;function e(n){return this.__data__.has(n)}return np=e,np}var rp,Sb;function eR(){if(Sb)return rp;Sb=1;var e=ay(),n=Rq(),r=Tq();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,rp=i,rp}var sp,kb;function jq(){if(kb)return sp;kb=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 sp=e,sp}var ip,Eb;function tR(){if(Eb)return ip;Eb=1;function e(n,r){return n.has(r)}return ip=e,ip}var op,Nb;function nR(){if(Nb)return op;Nb=1;var e=eR(),n=jq(),r=tR(),i=1,o=2;function l(u,c,h,p,d,m){var y=h&i,w=u.length,N=c.length;if(w!=N&&!(y&&N>w))return!1;var _=m.get(u),b=m.get(c);if(_&&b)return _==c&&b==u;var S=-1,k=!0,E=h&o?new e:void 0;for(m.set(u,c),m.set(c,u);++S<w;){var R=u[S],I=c[S];if(p)var O=y?p(I,R,S,c,u,m):p(R,I,S,u,c,m);if(O!==void 0){if(O)continue;k=!1;break}if(E){if(!n(c,function(A,U){if(!r(E,U)&&(R===A||d(R,A,h,p,m)))return E.push(U)})){k=!1;break}}else if(!(R===I||d(R,I,h,p,m))){k=!1;break}}return m.delete(u),m.delete(c),k}return op=l,op}var ap,Cb;function Aq(){if(Cb)return ap;Cb=1;function e(n){var r=-1,i=Array(n.size);return n.forEach(function(o,l){i[++r]=[l,o]}),i}return ap=e,ap}var lp,Rb;function yy(){if(Rb)return lp;Rb=1;function e(n){var r=-1,i=Array(n.size);return n.forEach(function(o){i[++r]=o}),i}return lp=e,lp}var up,Tb;function Iq(){if(Tb)return up;Tb=1;var e=vo(),n=VC(),r=go(),i=nR(),o=Aq(),l=yy(),u=1,c=2,h="[object Boolean]",p="[object Date]",d="[object Error]",m="[object Map]",y="[object Number]",w="[object RegExp]",N="[object Set]",_="[object String]",b="[object Symbol]",S="[object ArrayBuffer]",k="[object DataView]",E=e?e.prototype:void 0,R=E?E.valueOf:void 0;function I(O,A,U,z,P,D,V){switch(U){case k:if(O.byteLength!=A.byteLength||O.byteOffset!=A.byteOffset)return!1;O=O.buffer,A=A.buffer;case S:return!(O.byteLength!=A.byteLength||!D(new n(O),new n(A)));case h:case p:case y:return r(+O,+A);case d:return O.name==A.name&&O.message==A.message;case w:case _:return O==A+"";case m:var B=o;case N:var C=z&u;if(B||(B=l),O.size!=A.size&&!C)return!1;var q=V.get(O);if(q)return q==A;z|=c,V.set(O,A);var L=i(B(O),B(A),z,P,D,V);return V.delete(O),L;case b:if(R)return R.call(O)==R.call(A)}return!1}return up=I,up}var cp,jb;function Mq(){if(jb)return cp;jb=1;var e=HC(),n=1,r=Object.prototype,i=r.hasOwnProperty;function o(l,u,c,h,p,d){var m=c&n,y=e(l),w=y.length,N=e(u),_=N.length;if(w!=_&&!m)return!1;for(var b=w;b--;){var S=y[b];if(!(m?S in u:i.call(u,S)))return!1}var k=d.get(l),E=d.get(u);if(k&&E)return k==u&&E==l;var R=!0;d.set(l,u),d.set(u,l);for(var I=m;++b<w;){S=y[b];var O=l[S],A=u[S];if(h)var U=m?h(A,O,S,u,l,d):h(O,A,S,l,u,d);if(!(U===void 0?O===A||p(O,A,c,h,d):U)){R=!1;break}I||(I=S=="constructor")}if(R&&!I){var z=l.constructor,P=u.constructor;z!=P&&"constructor"in l&&"constructor"in u&&!(typeof z=="function"&&z instanceof z&&typeof P=="function"&&P instanceof P)&&(R=!1)}return d.delete(l),d.delete(u),R}return cp=o,cp}var dp,Ab;function Oq(){if(Ab)return dp;Ab=1;var e=Fu(),n=nR(),r=Iq(),i=Mq(),o=wo(),l=bt(),u=yo(),c=Oa(),h=1,p="[object Arguments]",d="[object Array]",m="[object Object]",y=Object.prototype,w=y.hasOwnProperty;function N(_,b,S,k,E,R){var I=l(_),O=l(b),A=I?d:o(_),U=O?d:o(b);A=A==p?m:A,U=U==p?m:U;var z=A==m,P=U==m,D=A==U;if(D&&u(_)){if(!u(b))return!1;I=!0,z=!1}if(D&&!z)return R||(R=new e),I||c(_)?n(_,b,S,k,E,R):r(_,b,A,S,k,E,R);if(!(S&h)){var V=z&&w.call(_,"__wrapped__"),B=P&&w.call(b,"__wrapped__");if(V||B){var C=V?_.value():_,q=B?b.value():b;return R||(R=new e),E(C,q,S,k,R)}}return D?(R||(R=new e),i(_,b,S,k,E,R)):!1}return dp=N,dp}var fp,Ib;function rR(){if(Ib)return fp;Ib=1;var e=Oq(),n=mr();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 fp=r,fp}var hp,Mb;function Pq(){if(Mb)return hp;Mb=1;var e=Fu(),n=rR(),r=1,i=2;function o(l,u,c,h){var p=c.length,d=p,m=!h;if(l==null)return!d;for(l=Object(l);p--;){var y=c[p];if(m&&y[2]?y[1]!==l[y[0]]:!(y[0]in l))return!1}for(;++p<d;){y=c[p];var w=y[0],N=l[w],_=y[1];if(m&&y[2]){if(N===void 0&&!(w in l))return!1}else{var b=new e;if(h)var S=h(N,_,w,l,u,b);if(!(S===void 0?n(_,N,r|i,h,b):S))return!1}}return!0}return hp=o,hp}var pp,Ob;function sR(){if(Ob)return pp;Ob=1;var e=qn();function n(r){return r===r&&!e(r)}return pp=n,pp}var mp,Pb;function Lq(){if(Pb)return mp;Pb=1;var e=sR(),n=Cs();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 mp=r,mp}var gp,Lb;function iR(){if(Lb)return gp;Lb=1;function e(n,r){return function(i){return i==null?!1:i[n]===r&&(r!==void 0||n in Object(i))}}return gp=e,gp}var vp,$b;function $q(){if($b)return vp;$b=1;var e=Pq(),n=Lq(),r=iR();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 vp=i,vp}var yp,qb;function xo(){if(qb)return yp;qb=1;var e=fi(),n=mr(),r="[object Symbol]";function i(o){return typeof o=="symbol"||n(o)&&e(o)==r}return yp=i,yp}var wp,Db;function wy(){if(Db)return wp;Db=1;var e=bt(),n=xo(),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 wp=o,wp}var xp,Fb;function qq(){if(Fb)return xp;Fb=1;var e=ay(),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],h=l.cache;if(h.has(c))return h.get(c);var p=i.apply(this,u);return l.cache=h.set(c,p)||h,p};return l.cache=new(r.Cache||e),l}return r.Cache=e,xp=r,xp}var _p,zb;function Dq(){if(zb)return _p;zb=1;var e=qq(),n=500;function r(i){var o=e(i,function(u){return l.size===n&&l.clear(),u}),l=o.cache;return o}return _p=r,_p}var bp,Bb;function Fq(){if(Bb)return bp;Bb=1;var e=Dq(),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,h,p){l.push(h?p.replace(r,"$1"):c||u)}),l});return bp=i,bp}var Sp,Ub;function Yu(){if(Ub)return Sp;Ub=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 Sp=e,Sp}var kp,Hb;function zq(){if(Hb)return kp;Hb=1;var e=vo(),n=Yu(),r=bt(),i=xo(),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 h=c+"";return h=="0"&&1/c==-1/0?"-0":h}return kp=u,kp}var Ep,Wb;function oR(){if(Wb)return Ep;Wb=1;var e=zq();function n(r){return r==null?"":e(r)}return Ep=n,Ep}var Np,Vb;function Ku(){if(Vb)return Np;Vb=1;var e=bt(),n=wy(),r=Fq(),i=oR();function o(l,u){return e(l)?l:n(l,u)?[l]:r(i(l))}return Np=o,Np}var Cp,Gb;function Pa(){if(Gb)return Cp;Gb=1;var e=xo();function n(r){if(typeof r=="string"||e(r))return r;var i=r+"";return i=="0"&&1/r==-1/0?"-0":i}return Cp=n,Cp}var Rp,Yb;function Xu(){if(Yb)return Rp;Yb=1;var e=Ku(),n=Pa();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 Rp=r,Rp}var Tp,Kb;function Bq(){if(Kb)return Tp;Kb=1;var e=Xu();function n(r,i,o){var l=r==null?void 0:e(r,i);return l===void 0?o:l}return Tp=n,Tp}var jp,Xb;function Uq(){if(Xb)return jp;Xb=1;function e(n,r){return n!=null&&r in Object(n)}return jp=e,jp}var Ap,Qb;function aR(){if(Qb)return Ap;Qb=1;var e=Ku(),n=Ma(),r=bt(),i=Uu(),o=uy(),l=Pa();function u(c,h,p){h=e(h,c);for(var d=-1,m=h.length,y=!1;++d<m;){var w=l(h[d]);if(!(y=c!=null&&p(c,w)))break;c=c[w]}return y||++d!=m?y:(m=c==null?0:c.length,!!m&&o(m)&&i(w,m)&&(r(c)||n(c)))}return Ap=u,Ap}var Ip,Zb;function lR(){if(Zb)return Ip;Zb=1;var e=Uq(),n=aR();function r(i,o){return i!=null&&n(i,o,e)}return Ip=r,Ip}var Mp,Jb;function Hq(){if(Jb)return Mp;Jb=1;var e=rR(),n=Bq(),r=lR(),i=wy(),o=sR(),l=iR(),u=Pa(),c=1,h=2;function p(d,m){return i(d)&&o(m)?l(u(d),m):function(y){var w=n(y,d);return w===void 0&&w===m?r(y,d):e(m,w,c|h)}}return Mp=p,Mp}var Op,eS;function uR(){if(eS)return Op;eS=1;function e(n){return function(r){return r==null?void 0:r[n]}}return Op=e,Op}var Pp,tS;function Wq(){if(tS)return Pp;tS=1;var e=Xu();function n(r){return function(i){return e(i,r)}}return Pp=n,Pp}var Lp,nS;function Vq(){if(nS)return Lp;nS=1;var e=uR(),n=Wq(),r=wy(),i=Pa();function o(l){return r(l)?e(i(l)):n(l)}return Lp=o,Lp}var $p,rS;function Hr(){if(rS)return $p;rS=1;var e=$q(),n=Hq(),r=mi(),i=bt(),o=Vq();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 $p=l,$p}var qp,sS;function cR(){if(sS)return qp;sS=1;var e=FC(),n=Cq(),r=Hr(),i=bt();function o(l,u){var c=i(l)?e:n;return c(l,r(u,3))}return qp=o,qp}var Dp,iS;function Gq(){if(iS)return Dp;iS=1;var e=Object.prototype,n=e.hasOwnProperty;function r(i,o){return i!=null&&n.call(i,o)}return Dp=r,Dp}var Fp,oS;function dR(){if(oS)return Fp;oS=1;var e=Gq(),n=aR();function r(i,o){return i!=null&&n(i,o,e)}return Fp=r,Fp}var zp,aS;function Yq(){if(aS)return zp;aS=1;var e=dy(),n=wo(),r=Ma(),i=bt(),o=Ur(),l=yo(),u=Wu(),c=Oa(),h="[object Map]",p="[object Set]",d=Object.prototype,m=d.hasOwnProperty;function y(w){if(w==null)return!0;if(o(w)&&(i(w)||typeof w=="string"||typeof w.splice=="function"||l(w)||c(w)||r(w)))return!w.length;var N=n(w);if(N==h||N==p)return!w.size;if(u(w))return!e(w).length;for(var _ in w)if(m.call(w,_))return!1;return!0}return zp=y,zp}var Bp,lS;function fR(){if(lS)return Bp;lS=1;function e(n){return n===void 0}return Bp=e,Bp}var Up,uS;function hR(){if(uS)return Up;uS=1;var e=Gu(),n=Ur();function r(i,o){var l=-1,u=n(i)?Array(i.length):[];return e(i,function(c,h,p){u[++l]=o(c,h,p)}),u}return Up=r,Up}var Hp,cS;function pR(){if(cS)return Hp;cS=1;var e=Yu(),n=Hr(),r=hR(),i=bt();function o(l,u){var c=i(l)?e:r;return c(l,n(u,3))}return Hp=o,Hp}var Wp,dS;function Kq(){if(dS)return Wp;dS=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 Wp=e,Wp}var Vp,fS;function Xq(){if(fS)return Vp;fS=1;function e(n,r,i,o,l){return l(n,function(u,c,h){i=o?(o=!1,u):r(i,u,c,h)}),i}return Vp=e,Vp}var Gp,hS;function mR(){if(hS)return Gp;hS=1;var e=Kq(),n=Gu(),r=Hr(),i=Xq(),o=bt();function l(u,c,h){var p=o(u)?e:i,d=arguments.length<3;return p(u,r(c,4),h,d,n)}return Gp=l,Gp}var Yp,pS;function Qq(){if(pS)return Yp;pS=1;var e=fi(),n=bt(),r=mr(),i="[object String]";function o(l){return typeof l=="string"||!n(l)&&r(l)&&e(l)==i}return Yp=o,Yp}var Kp,mS;function Zq(){if(mS)return Kp;mS=1;var e=uR(),n=e("length");return Kp=n,Kp}var Xp,gS;function Jq(){if(gS)return Xp;gS=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 h(p){return c.test(p)}return Xp=h,Xp}var Qp,vS;function eD(){if(vS)return Qp;vS=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+"]",h="\\ud83c[\\udffb-\\udfff]",p="(?:"+c+"|"+h+")",d="[^"+e+"]",m="(?:\\ud83c[\\udde6-\\uddff]){2}",y="[\\ud800-\\udbff][\\udc00-\\udfff]",w="\\u200d",N=p+"?",_="["+l+"]?",b="(?:"+w+"(?:"+[d,m,y].join("|")+")"+_+N+")*",S=_+N+b,k="(?:"+[d+c+"?",c,m,y,u].join("|")+")",E=RegExp(h+"(?="+h+")|"+k+S,"g");function R(I){for(var O=E.lastIndex=0;E.test(I);)++O;return O}return Qp=R,Qp}var Zp,yS;function tD(){if(yS)return Zp;yS=1;var e=Zq(),n=Jq(),r=eD();function i(o){return n(o)?r(o):e(o)}return Zp=i,Zp}var Jp,wS;function nD(){if(wS)return Jp;wS=1;var e=dy(),n=wo(),r=Ur(),i=Qq(),o=tD(),l="[object Map]",u="[object Set]";function c(h){if(h==null)return 0;if(r(h))return i(h)?o(h):h.length;var p=n(h);return p==l||p==u?h.size:e(h).length}return Jp=c,Jp}var em,xS;function rD(){if(xS)return em;xS=1;var e=ly(),n=YC(),r=vy(),i=Hr(),o=Vu(),l=bt(),u=yo(),c=Aa(),h=qn(),p=Oa();function d(m,y,w){var N=l(m),_=N||u(m)||p(m);if(y=i(y,4),w==null){var b=m&&m.constructor;_?w=N?new b:[]:h(m)?w=c(b)?n(o(m)):{}:w={}}return(_?e:r)(m,function(S,k,E){return y(w,S,k,E)}),w}return em=d,em}var tm,_S;function sD(){if(_S)return tm;_S=1;var e=vo(),n=Ma(),r=bt(),i=e?e.isConcatSpreadable:void 0;function o(l){return r(l)||n(l)||!!(i&&l&&l[i])}return tm=o,tm}var nm,bS;function xy(){if(bS)return nm;bS=1;var e=hy(),n=sD();function r(i,o,l,u,c){var h=-1,p=i.length;for(l||(l=n),c||(c=[]);++h<p;){var d=i[h];o>0&&l(d)?o>1?r(d,o-1,l,u,c):e(c,d):u||(c[c.length]=d)}return c}return nm=r,nm}var rm,SS;function iD(){if(SS)return rm;SS=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 rm=e,rm}var sm,kS;function gR(){if(kS)return sm;kS=1;var e=iD(),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,h=n(u.length-o,0),p=Array(h);++c<h;)p[c]=u[o+c];c=-1;for(var d=Array(o+1);++c<o;)d[c]=u[c];return d[o]=l(p),e(i,this,d)}}return sm=r,sm}var im,ES;function oD(){if(ES)return im;ES=1;var e=my(),n=PC(),r=mi(),i=n?function(o,l){return n(o,"toString",{configurable:!0,enumerable:!1,value:e(l),writable:!0})}:r;return im=i,im}var om,NS;function aD(){if(NS)return om;NS=1;var e=800,n=16,r=Date.now;function i(o){var l=0,u=0;return function(){var c=r(),h=n-(c-u);if(u=c,h>0){if(++l>=e)return arguments[0]}else l=0;return o.apply(void 0,arguments)}}return om=i,om}var am,CS;function vR(){if(CS)return am;CS=1;var e=oD(),n=aD(),r=n(e);return am=r,am}var lm,RS;function Qu(){if(RS)return lm;RS=1;var e=mi(),n=gR(),r=vR();function i(o,l){return r(n(o,l,e),o+"")}return lm=i,lm}var um,TS;function yR(){if(TS)return um;TS=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 um=e,um}var cm,jS;function lD(){if(jS)return cm;jS=1;function e(n){return n!==n}return cm=e,cm}var dm,AS;function uD(){if(AS)return dm;AS=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 dm=e,dm}var fm,IS;function cD(){if(IS)return fm;IS=1;var e=yR(),n=lD(),r=uD();function i(o,l,u){return l===l?r(o,l,u):e(o,n,u)}return fm=i,fm}var hm,MS;function dD(){if(MS)return hm;MS=1;var e=cD();function n(r,i){var o=r==null?0:r.length;return!!o&&e(r,i,0)>-1}return hm=n,hm}var pm,OS;function fD(){if(OS)return pm;OS=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 pm=e,pm}var mm,PS;function hD(){if(PS)return mm;PS=1;function e(){}return mm=e,mm}var gm,LS;function pD(){if(LS)return gm;LS=1;var e=WC(),n=hD(),r=yy(),i=1/0,o=e&&1/r(new e([,-0]))[1]==i?function(l){return new e(l)}:n;return gm=o,gm}var vm,$S;function mD(){if($S)return vm;$S=1;var e=eR(),n=dD(),r=fD(),i=tR(),o=pD(),l=yy(),u=200;function c(h,p,d){var m=-1,y=n,w=h.length,N=!0,_=[],b=_;if(d)N=!1,y=r;else if(w>=u){var S=p?null:o(h);if(S)return l(S);N=!1,y=i,b=new e}else b=p?[]:_;e:for(;++m<w;){var k=h[m],E=p?p(k):k;if(k=d||k!==0?k:0,N&&E===E){for(var R=b.length;R--;)if(b[R]===E)continue e;p&&b.push(E),_.push(k)}else y(b,E,d)||(b!==_&&b.push(E),_.push(k))}return _}return vm=c,vm}var ym,qS;function wR(){if(qS)return ym;qS=1;var e=Ur(),n=mr();function r(i){return n(i)&&e(i)}return ym=r,ym}var wm,DS;function gD(){if(DS)return wm;DS=1;var e=xy(),n=Qu(),r=mD(),i=wR(),o=n(function(l){return r(e(l,1,i,!0))});return wm=o,wm}var xm,FS;function vD(){if(FS)return xm;FS=1;var e=Yu();function n(r,i){return e(i,function(o){return r[o]})}return xm=n,xm}var _m,zS;function xR(){if(zS)return _m;zS=1;var e=vD(),n=Cs();function r(i){return i==null?[]:e(i,n(i))}return _m=r,_m}var bm,BS;function Dn(){if(BS)return bm;BS=1;var e;if(typeof iy=="function")try{e={clone:kq(),constant:my(),each:JC(),filter:cR(),has:dR(),isArray:bt(),isEmpty:Yq(),isFunction:Aa(),isUndefined:fR(),keys:Cs(),map:pR(),reduce:mR(),size:nD(),transform:rD(),union:gD(),values:xR()}}catch{}return e||(e=window._),bm=e,bm}var Sm,US;function _y(){if(US)return Sm;US=1;var e=Dn();Sm=o;var n="\0",r="\0",i="";function o(d){this._isDirected=e.has(d,"directed")?d.directed:!0,this._isMultigraph=e.has(d,"multigraph")?d.multigraph:!1,this._isCompound=e.has(d,"compound")?d.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(d){return this._label=d,this},o.prototype.graph=function(){return this._label},o.prototype.setDefaultNodeLabel=function(d){return e.isFunction(d)||(d=e.constant(d)),this._defaultNodeLabelFn=d,this},o.prototype.nodeCount=function(){return this._nodeCount},o.prototype.nodes=function(){return e.keys(this._nodes)},o.prototype.sources=function(){var d=this;return e.filter(this.nodes(),function(m){return e.isEmpty(d._in[m])})},o.prototype.sinks=function(){var d=this;return e.filter(this.nodes(),function(m){return e.isEmpty(d._out[m])})},o.prototype.setNodes=function(d,m){var y=arguments,w=this;return e.each(d,function(N){y.length>1?w.setNode(N,m):w.setNode(N)}),this},o.prototype.setNode=function(d,m){return e.has(this._nodes,d)?(arguments.length>1&&(this._nodes[d]=m),this):(this._nodes[d]=arguments.length>1?m:this._defaultNodeLabelFn(d),this._isCompound&&(this._parent[d]=r,this._children[d]={},this._children[r][d]=!0),this._in[d]={},this._preds[d]={},this._out[d]={},this._sucs[d]={},++this._nodeCount,this)},o.prototype.node=function(d){return this._nodes[d]},o.prototype.hasNode=function(d){return e.has(this._nodes,d)},o.prototype.removeNode=function(d){var m=this;if(e.has(this._nodes,d)){var y=function(w){m.removeEdge(m._edgeObjs[w])};delete this._nodes[d],this._isCompound&&(this._removeFromParentsChildList(d),delete this._parent[d],e.each(this.children(d),function(w){m.setParent(w)}),delete this._children[d]),e.each(e.keys(this._in[d]),y),delete this._in[d],delete this._preds[d],e.each(e.keys(this._out[d]),y),delete this._out[d],delete this._sucs[d],--this._nodeCount}return this},o.prototype.setParent=function(d,m){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(e.isUndefined(m))m=r;else{m+="";for(var y=m;!e.isUndefined(y);y=this.parent(y))if(y===d)throw new Error("Setting "+m+" as parent of "+d+" would create a cycle");this.setNode(m)}return this.setNode(d),this._removeFromParentsChildList(d),this._parent[d]=m,this._children[m][d]=!0,this},o.prototype._removeFromParentsChildList=function(d){delete this._children[this._parent[d]][d]},o.prototype.parent=function(d){if(this._isCompound){var m=this._parent[d];if(m!==r)return m}},o.prototype.children=function(d){if(e.isUndefined(d)&&(d=r),this._isCompound){var m=this._children[d];if(m)return e.keys(m)}else{if(d===r)return this.nodes();if(this.hasNode(d))return[]}},o.prototype.predecessors=function(d){var m=this._preds[d];if(m)return e.keys(m)},o.prototype.successors=function(d){var m=this._sucs[d];if(m)return e.keys(m)},o.prototype.neighbors=function(d){var m=this.predecessors(d);if(m)return e.union(m,this.successors(d))},o.prototype.isLeaf=function(d){var m;return this.isDirected()?m=this.successors(d):m=this.neighbors(d),m.length===0},o.prototype.filterNodes=function(d){var m=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});m.setGraph(this.graph());var y=this;e.each(this._nodes,function(_,b){d(b)&&m.setNode(b,_)}),e.each(this._edgeObjs,function(_){m.hasNode(_.v)&&m.hasNode(_.w)&&m.setEdge(_,y.edge(_))});var w={};function N(_){var b=y.parent(_);return b===void 0||m.hasNode(b)?(w[_]=b,b):b in w?w[b]:N(b)}return this._isCompound&&e.each(m.nodes(),function(_){m.setParent(_,N(_))}),m},o.prototype.setDefaultEdgeLabel=function(d){return e.isFunction(d)||(d=e.constant(d)),this._defaultEdgeLabelFn=d,this},o.prototype.edgeCount=function(){return this._edgeCount},o.prototype.edges=function(){return e.values(this._edgeObjs)},o.prototype.setPath=function(d,m){var y=this,w=arguments;return e.reduce(d,function(N,_){return w.length>1?y.setEdge(N,_,m):y.setEdge(N,_),_}),this},o.prototype.setEdge=function(){var d,m,y,w,N=!1,_=arguments[0];typeof _=="object"&&_!==null&&"v"in _?(d=_.v,m=_.w,y=_.name,arguments.length===2&&(w=arguments[1],N=!0)):(d=_,m=arguments[1],y=arguments[3],arguments.length>2&&(w=arguments[2],N=!0)),d=""+d,m=""+m,e.isUndefined(y)||(y=""+y);var b=c(this._isDirected,d,m,y);if(e.has(this._edgeLabels,b))return N&&(this._edgeLabels[b]=w),this;if(!e.isUndefined(y)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(d),this.setNode(m),this._edgeLabels[b]=N?w:this._defaultEdgeLabelFn(d,m,y);var S=h(this._isDirected,d,m,y);return d=S.v,m=S.w,Object.freeze(S),this._edgeObjs[b]=S,l(this._preds[m],d),l(this._sucs[d],m),this._in[m][b]=S,this._out[d][b]=S,this._edgeCount++,this},o.prototype.edge=function(d,m,y){var w=arguments.length===1?p(this._isDirected,arguments[0]):c(this._isDirected,d,m,y);return this._edgeLabels[w]},o.prototype.hasEdge=function(d,m,y){var w=arguments.length===1?p(this._isDirected,arguments[0]):c(this._isDirected,d,m,y);return e.has(this._edgeLabels,w)},o.prototype.removeEdge=function(d,m,y){var w=arguments.length===1?p(this._isDirected,arguments[0]):c(this._isDirected,d,m,y),N=this._edgeObjs[w];return N&&(d=N.v,m=N.w,delete this._edgeLabels[w],delete this._edgeObjs[w],u(this._preds[m],d),u(this._sucs[d],m),delete this._in[m][w],delete this._out[d][w],this._edgeCount--),this},o.prototype.inEdges=function(d,m){var y=this._in[d];if(y){var w=e.values(y);return m?e.filter(w,function(N){return N.v===m}):w}},o.prototype.outEdges=function(d,m){var y=this._out[d];if(y){var w=e.values(y);return m?e.filter(w,function(N){return N.w===m}):w}},o.prototype.nodeEdges=function(d,m){var y=this.inEdges(d,m);if(y)return y.concat(this.outEdges(d,m))};function l(d,m){d[m]?d[m]++:d[m]=1}function u(d,m){--d[m]||delete d[m]}function c(d,m,y,w){var N=""+m,_=""+y;if(!d&&N>_){var b=N;N=_,_=b}return N+i+_+i+(e.isUndefined(w)?n:w)}function h(d,m,y,w){var N=""+m,_=""+y;if(!d&&N>_){var b=N;N=_,_=b}var S={v:N,w:_};return w&&(S.name=w),S}function p(d,m){return c(d,m.v,m.w,m.name)}return Sm}var km,HS;function yD(){return HS||(HS=1,km="2.1.8"),km}var Em,WS;function wD(){return WS||(WS=1,Em={Graph:_y(),version:yD()}),Em}var Nm,VS;function xD(){if(VS)return Nm;VS=1;var e=Dn(),n=_y();Nm={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 h=u.node(c),p=u.parent(c),d={v:c};return e.isUndefined(h)||(d.value=h),e.isUndefined(p)||(d.parent=p),d})}function o(u){return e.map(u.edges(),function(c){var h=u.edge(c),p={v:c.v,w:c.w};return e.isUndefined(c.name)||(p.name=c.name),e.isUndefined(h)||(p.value=h),p})}function l(u){var c=new n(u.options).setGraph(u.value);return e.each(u.nodes,function(h){c.setNode(h.v,h.value),h.parent&&c.setParent(h.v,h.parent)}),e.each(u.edges,function(h){c.setEdge({v:h.v,w:h.w,name:h.name},h.value)}),c}return Nm}var Cm,GS;function _D(){if(GS)return Cm;GS=1;var e=Dn();Cm=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 Cm}var Rm,YS;function _R(){if(YS)return Rm;YS=1;var e=Dn();Rm=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},Rm}var Tm,KS;function bR(){if(KS)return Tm;KS=1;var e=Dn(),n=_R();Tm=i;var r=e.constant(1);function i(l,u,c,h){return o(l,String(u),c||r,h||function(p){return l.outEdges(p)})}function o(l,u,c,h){var p={},d=new n,m,y,w=function(N){var _=N.v!==m?N.v:N.w,b=p[_],S=c(N),k=y.distance+S;if(S<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+N+" Weight: "+S);k<b.distance&&(b.distance=k,b.predecessor=m,d.decrease(_,k))};for(l.nodes().forEach(function(N){var _=N===u?0:Number.POSITIVE_INFINITY;p[N]={distance:_},d.add(N,_)});d.size()>0&&(m=d.removeMin(),y=p[m],y.distance!==Number.POSITIVE_INFINITY);)h(m).forEach(w);return p}return Tm}var jm,XS;function bD(){if(XS)return jm;XS=1;var e=bR(),n=Dn();jm=r;function r(i,o,l){return n.transform(i.nodes(),function(u,c){u[c]=e(i,c,o,l)},{})}return jm}var Am,QS;function SR(){if(QS)return Am;QS=1;var e=Dn();Am=n;function n(r){var i=0,o=[],l={},u=[];function c(h){var p=l[h]={onStack:!0,lowlink:i,index:i++};if(o.push(h),r.successors(h).forEach(function(y){e.has(l,y)?l[y].onStack&&(p.lowlink=Math.min(p.lowlink,l[y].index)):(c(y),p.lowlink=Math.min(p.lowlink,l[y].lowlink))}),p.lowlink===p.index){var d=[],m;do m=o.pop(),l[m].onStack=!1,d.push(m);while(h!==m);u.push(d)}}return r.nodes().forEach(function(h){e.has(l,h)||c(h)}),u}return Am}var Im,ZS;function SD(){if(ZS)return Im;ZS=1;var e=Dn(),n=SR();Im=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 Im}var Mm,JS;function kD(){if(JS)return Mm;JS=1;var e=Dn();Mm=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={},h=o.nodes();return h.forEach(function(p){c[p]={},c[p][p]={distance:0},h.forEach(function(d){p!==d&&(c[p][d]={distance:Number.POSITIVE_INFINITY})}),u(p).forEach(function(d){var m=d.v===p?d.w:d.v,y=l(d);c[p][m]={distance:y,predecessor:p}})}),h.forEach(function(p){var d=c[p];h.forEach(function(m){var y=c[m];h.forEach(function(w){var N=y[p],_=d[w],b=y[w],S=N.distance+_.distance;S<b.distance&&(b.distance=S,b.predecessor=_.predecessor)})})}),c}return Mm}var Om,ek;function kR(){if(ek)return Om;ek=1;var e=Dn();Om=n,n.CycleException=r;function n(i){var o={},l={},u=[];function c(h){if(e.has(l,h))throw new r;e.has(o,h)||(l[h]=!0,o[h]=!0,e.each(i.predecessors(h),c),delete l[h],u.push(h))}if(e.each(i.sinks(),c),e.size(o)!==i.nodeCount())throw new r;return u}function r(){}return r.prototype=new Error,Om}var Pm,tk;function ED(){if(tk)return Pm;tk=1;var e=kR();Pm=n;function n(r){try{e(r)}catch(i){if(i instanceof e.CycleException)return!1;throw i}return!0}return Pm}var Lm,nk;function ER(){if(nk)return Lm;nk=1;var e=Dn();Lm=n;function n(i,o,l){e.isArray(o)||(o=[o]);var u=(i.isDirected()?i.successors:i.neighbors).bind(i),c=[],h={};return e.each(o,function(p){if(!i.hasNode(p))throw new Error("Graph does not have node: "+p);r(i,p,l==="post",h,u,c)}),c}function r(i,o,l,u,c,h){e.has(u,o)||(u[o]=!0,l||h.push(o),e.each(c(o),function(p){r(i,p,l,u,c,h)}),l&&h.push(o))}return Lm}var $m,rk;function ND(){if(rk)return $m;rk=1;var e=ER();$m=n;function n(r,i){return e(r,i,"post")}return $m}var qm,sk;function CD(){if(sk)return qm;sk=1;var e=ER();qm=n;function n(r,i){return e(r,i,"pre")}return qm}var Dm,ik;function RD(){if(ik)return Dm;ik=1;var e=Dn(),n=_y(),r=_R();Dm=i;function i(o,l){var u=new n,c={},h=new r,p;function d(y){var w=y.v===p?y.w:y.v,N=h.priority(w);if(N!==void 0){var _=l(y);_<N&&(c[w]=p,h.decrease(w,_))}}if(o.nodeCount()===0)return u;e.each(o.nodes(),function(y){h.add(y,Number.POSITIVE_INFINITY),u.setNode(y)}),h.decrease(o.nodes()[0],0);for(var m=!1;h.size()>0;){if(p=h.removeMin(),e.has(c,p))u.setEdge(p,c[p]);else{if(m)throw new Error("Input graph is not connected: "+o);m=!0}o.nodeEdges(p).forEach(d)}return u}return Dm}var Fm,ok;function TD(){return ok||(ok=1,Fm={components:_D(),dijkstra:bR(),dijkstraAll:bD(),findCycles:SD(),floydWarshall:kD(),isAcyclic:ED(),postorder:ND(),preorder:CD(),prim:RD(),tarjan:SR(),topsort:kR()}),Fm}var zm,ak;function jD(){if(ak)return zm;ak=1;var e=wD();return zm={Graph:e.Graph,json:xD(),alg:TD(),version:e.version},zm}var Bm,lk;function nr(){if(lk)return Bm;lk=1;var e;if(typeof iy=="function")try{e=jD()}catch{}return e||(e=window.graphlib),Bm=e,Bm}var Um,uk;function AD(){if(uk)return Um;uk=1;var e=XC(),n=1,r=4;function i(o){return e(o,n|r)}return Um=i,Um}var Hm,ck;function Zu(){if(ck)return Hm;ck=1;var e=go(),n=Ur(),r=Uu(),i=qn();function o(l,u,c){if(!i(c))return!1;var h=typeof u;return(h=="number"?n(c)&&r(u,c.length):h=="string"&&u in c)?e(c[u],l):!1}return Hm=o,Hm}var Wm,dk;function ID(){if(dk)return Wm;dk=1;var e=Qu(),n=go(),r=Zu(),i=pi(),o=Object.prototype,l=o.hasOwnProperty,u=e(function(c,h){c=Object(c);var p=-1,d=h.length,m=d>2?h[2]:void 0;for(m&&r(h[0],h[1],m)&&(d=1);++p<d;)for(var y=h[p],w=i(y),N=-1,_=w.length;++N<_;){var b=w[N],S=c[b];(S===void 0||n(S,o[b])&&!l.call(c,b))&&(c[b]=y[b])}return c});return Wm=u,Wm}var Vm,fk;function MD(){if(fk)return Vm;fk=1;var e=Hr(),n=Ur(),r=Cs();function i(o){return function(l,u,c){var h=Object(l);if(!n(l)){var p=e(u,3);l=r(l),u=function(m){return p(h[m],m,h)}}var d=o(l,u,c);return d>-1?h[p?l[d]:d]:void 0}}return Vm=i,Vm}var Gm,hk;function OD(){if(hk)return Gm;hk=1;var e=/\s/;function n(r){for(var i=r.length;i--&&e.test(r.charAt(i)););return i}return Gm=n,Gm}var Ym,pk;function PD(){if(pk)return Ym;pk=1;var e=OD(),n=/^\s+/;function r(i){return i&&i.slice(0,e(i)+1).replace(n,"")}return Ym=r,Ym}var Km,mk;function LD(){if(mk)return Km;mk=1;var e=PD(),n=qn(),r=xo(),i=NaN,o=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt;function h(p){if(typeof p=="number")return p;if(r(p))return i;if(n(p)){var d=typeof p.valueOf=="function"?p.valueOf():p;p=n(d)?d+"":d}if(typeof p!="string")return p===0?p:+p;p=e(p);var m=l.test(p);return m||u.test(p)?c(p.slice(2),m?2:8):o.test(p)?i:+p}return Km=h,Km}var Xm,gk;function NR(){if(gk)return Xm;gk=1;var e=LD(),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 Xm=i,Xm}var Qm,vk;function $D(){if(vk)return Qm;vk=1;var e=NR();function n(r){var i=e(r),o=i%1;return i===i?o?i-o:i:0}return Qm=n,Qm}var Zm,yk;function qD(){if(yk)return Zm;yk=1;var e=yR(),n=Hr(),r=$D(),i=Math.max;function o(l,u,c){var h=l==null?0:l.length;if(!h)return-1;var p=c==null?0:r(c);return p<0&&(p=i(h+p,0)),e(l,n(u,3),p)}return Zm=o,Zm}var Jm,wk;function DD(){if(wk)return Jm;wk=1;var e=MD(),n=qD(),r=e(n);return Jm=r,Jm}var eg,xk;function CR(){if(xk)return eg;xk=1;var e=xy();function n(r){var i=r==null?0:r.length;return i?e(r,1):[]}return eg=n,eg}var tg,_k;function FD(){if(_k)return tg;_k=1;var e=gy(),n=QC(),r=pi();function i(o,l){return o==null?o:e(o,n(l),r)}return tg=i,tg}var ng,bk;function zD(){if(bk)return ng;bk=1;function e(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}return ng=e,ng}var rg,Sk;function BD(){if(Sk)return rg;Sk=1;var e=zu(),n=vy(),r=Hr();function i(o,l){var u={};return l=r(l,3),n(o,function(c,h,p){e(u,h,l(c,h,p))}),u}return rg=i,rg}var sg,kk;function by(){if(kk)return sg;kk=1;var e=xo();function n(r,i,o){for(var l=-1,u=r.length;++l<u;){var c=r[l],h=i(c);if(h!=null&&(p===void 0?h===h&&!e(h):o(h,p)))var p=h,d=c}return d}return sg=n,sg}var ig,Ek;function UD(){if(Ek)return ig;Ek=1;function e(n,r){return n>r}return ig=e,ig}var og,Nk;function HD(){if(Nk)return og;Nk=1;var e=by(),n=UD(),r=mi();function i(o){return o&&o.length?e(o,r,n):void 0}return og=i,og}var ag,Ck;function RR(){if(Ck)return ag;Ck=1;var e=zu(),n=go();function r(i,o,l){(l!==void 0&&!n(i[o],l)||l===void 0&&!(o in i))&&e(i,o,l)}return ag=r,ag}var lg,Rk;function WD(){if(Rk)return lg;Rk=1;var e=fi(),n=Vu(),r=mr(),i="[object Object]",o=Function.prototype,l=Object.prototype,u=o.toString,c=l.hasOwnProperty,h=u.call(Object);function p(d){if(!r(d)||e(d)!=i)return!1;var m=n(d);if(m===null)return!0;var y=c.call(m,"constructor")&&m.constructor;return typeof y=="function"&&y instanceof y&&u.call(y)==h}return lg=p,lg}var ug,Tk;function TR(){if(Tk)return ug;Tk=1;function e(n,r){if(!(r==="constructor"&&typeof n[r]=="function")&&r!="__proto__")return n[r]}return ug=e,ug}var cg,jk;function VD(){if(jk)return cg;jk=1;var e=Ia(),n=pi();function r(i){return e(i,n(i))}return cg=r,cg}var dg,Ak;function GD(){if(Ak)return dg;Ak=1;var e=RR(),n=qC(),r=GC(),i=DC(),o=KC(),l=Ma(),u=bt(),c=wR(),h=yo(),p=Aa(),d=qn(),m=WD(),y=Oa(),w=TR(),N=VD();function _(b,S,k,E,R,I,O){var A=w(b,k),U=w(S,k),z=O.get(U);if(z){e(b,k,z);return}var P=I?I(A,U,k+"",b,S,O):void 0,D=P===void 0;if(D){var V=u(U),B=!V&&h(U),C=!V&&!B&&y(U);P=U,V||B||C?u(A)?P=A:c(A)?P=i(A):B?(D=!1,P=n(U,!0)):C?(D=!1,P=r(U,!0)):P=[]:m(U)||l(U)?(P=A,l(A)?P=N(A):(!d(A)||p(A))&&(P=o(U))):D=!1}D&&(O.set(U,P),R(P,U,E,I,O),O.delete(U)),e(b,k,P)}return dg=_,dg}var fg,Ik;function YD(){if(Ik)return fg;Ik=1;var e=Fu(),n=RR(),r=gy(),i=GD(),o=qn(),l=pi(),u=TR();function c(h,p,d,m,y){h!==p&&r(p,function(w,N){if(y||(y=new e),o(w))i(h,p,N,d,c,m,y);else{var _=m?m(u(h,N),w,N+"",h,p,y):void 0;_===void 0&&(_=w),n(h,N,_)}},l)}return fg=c,fg}var hg,Mk;function KD(){if(Mk)return hg;Mk=1;var e=Qu(),n=Zu();function r(i){return e(function(o,l){var u=-1,c=l.length,h=c>1?l[c-1]:void 0,p=c>2?l[2]:void 0;for(h=i.length>3&&typeof h=="function"?(c--,h):void 0,p&&n(l[0],l[1],p)&&(h=c<3?void 0:h,c=1),o=Object(o);++u<c;){var d=l[u];d&&i(o,d,u,h)}return o})}return hg=r,hg}var pg,Ok;function XD(){if(Ok)return pg;Ok=1;var e=YD(),n=KD(),r=n(function(i,o,l){e(i,o,l)});return pg=r,pg}var mg,Pk;function jR(){if(Pk)return mg;Pk=1;function e(n,r){return n<r}return mg=e,mg}var gg,Lk;function QD(){if(Lk)return gg;Lk=1;var e=by(),n=jR(),r=mi();function i(o){return o&&o.length?e(o,r,n):void 0}return gg=i,gg}var vg,$k;function ZD(){if($k)return vg;$k=1;var e=by(),n=Hr(),r=jR();function i(o,l){return o&&o.length?e(o,n(l,2),r):void 0}return vg=i,vg}var yg,qk;function JD(){if(qk)return yg;qk=1;var e=sr(),n=function(){return e.Date.now()};return yg=n,yg}var wg,Dk;function e4(){if(Dk)return wg;Dk=1;var e=Bu(),n=Ku(),r=Uu(),i=qn(),o=Pa();function l(u,c,h,p){if(!i(u))return u;c=n(c,u);for(var d=-1,m=c.length,y=m-1,w=u;w!=null&&++d<m;){var N=o(c[d]),_=h;if(N==="__proto__"||N==="constructor"||N==="prototype")return u;if(d!=y){var b=w[N];_=p?p(b,N,w):void 0,_===void 0&&(_=i(b)?b:r(c[d+1])?[]:{})}e(w,N,_),w=w[N]}return u}return wg=l,wg}var xg,Fk;function t4(){if(Fk)return xg;Fk=1;var e=Xu(),n=e4(),r=Ku();function i(o,l,u){for(var c=-1,h=l.length,p={};++c<h;){var d=l[c],m=e(o,d);u(m,d)&&n(p,r(d,o),m)}return p}return xg=i,xg}var _g,zk;function n4(){if(zk)return _g;zk=1;var e=t4(),n=lR();function r(i,o){return e(i,o,function(l,u){return n(i,u)})}return _g=r,_g}var bg,Bk;function r4(){if(Bk)return bg;Bk=1;var e=CR(),n=gR(),r=vR();function i(o){return r(n(o,void 0,e),o+"")}return bg=i,bg}var Sg,Uk;function s4(){if(Uk)return Sg;Uk=1;var e=n4(),n=r4(),r=n(function(i,o){return i==null?{}:e(i,o)});return Sg=r,Sg}var kg,Hk;function i4(){if(Hk)return kg;Hk=1;var e=Math.ceil,n=Math.max;function r(i,o,l,u){for(var c=-1,h=n(e((o-i)/(l||1)),0),p=Array(h);h--;)p[u?h:++c]=i,i+=l;return p}return kg=r,kg}var Eg,Wk;function o4(){if(Wk)return Eg;Wk=1;var e=i4(),n=Zu(),r=NR();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 Eg=i,Eg}var Ng,Vk;function a4(){if(Vk)return Ng;Vk=1;var e=o4(),n=e();return Ng=n,Ng}var Cg,Gk;function l4(){if(Gk)return Cg;Gk=1;function e(n,r){var i=n.length;for(n.sort(r);i--;)n[i]=n[i].value;return n}return Cg=e,Cg}var Rg,Yk;function u4(){if(Yk)return Rg;Yk=1;var e=xo();function n(r,i){if(r!==i){var o=r!==void 0,l=r===null,u=r===r,c=e(r),h=i!==void 0,p=i===null,d=i===i,m=e(i);if(!p&&!m&&!c&&r>i||c&&h&&d&&!p&&!m||l&&h&&d||!o&&d||!u)return 1;if(!l&&!c&&!m&&r<i||m&&o&&u&&!l&&!c||p&&o&&u||!h&&u||!d)return-1}return 0}return Rg=n,Rg}var Tg,Kk;function c4(){if(Kk)return Tg;Kk=1;var e=u4();function n(r,i,o){for(var l=-1,u=r.criteria,c=i.criteria,h=u.length,p=o.length;++l<h;){var d=e(u[l],c[l]);if(d){if(l>=p)return d;var m=o[l];return d*(m=="desc"?-1:1)}}return r.index-i.index}return Tg=n,Tg}var jg,Xk;function d4(){if(Xk)return jg;Xk=1;var e=Yu(),n=Xu(),r=Hr(),i=hR(),o=l4(),l=Hu(),u=c4(),c=mi(),h=bt();function p(d,m,y){m.length?m=e(m,function(_){return h(_)?function(b){return n(b,_.length===1?_[0]:_)}:_}):m=[c];var w=-1;m=e(m,l(r));var N=i(d,function(_,b,S){var k=e(m,function(E){return E(_)});return{criteria:k,index:++w,value:_}});return o(N,function(_,b){return u(_,b,y)})}return jg=p,jg}var Ag,Qk;function f4(){if(Qk)return Ag;Qk=1;var e=xy(),n=d4(),r=Qu(),i=Zu(),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 Ag=o,Ag}var Ig,Zk;function h4(){if(Zk)return Ig;Zk=1;var e=oR(),n=0;function r(i){var o=++n;return e(i)+o}return Ig=r,Ig}var Mg,Jk;function p4(){if(Jk)return Mg;Jk=1;function e(n,r,i){for(var o=-1,l=n.length,u=r.length,c={};++o<l;){var h=o<u?r[o]:void 0;i(c,n[o],h)}return c}return Mg=e,Mg}var Og,eE;function m4(){if(eE)return Og;eE=1;var e=Bu(),n=p4();function r(i,o){return n(i||[],o||[],e)}return Og=r,Og}var Pg,tE;function lt(){if(tE)return Pg;tE=1;var e;if(typeof iy=="function")try{e={cloneDeep:AD(),constant:my(),defaults:ID(),each:JC(),filter:cR(),find:DD(),flatten:CR(),forEach:ZC(),forIn:FD(),has:dR(),isUndefined:fR(),last:zD(),map:pR(),mapValues:BD(),max:HD(),merge:XD(),min:QD(),minBy:ZD(),now:JD(),pick:s4(),range:a4(),reduce:mR(),sortBy:f4(),uniqueId:h4(),values:xR(),zipObject:m4()}}catch{}return e||(e=window._),Pg=e,Pg}var Lg,nE;function g4(){if(nE)return Lg;nE=1,Lg=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 Lg}var $g,rE;function v4(){if(rE)return $g;rE=1;var e=lt(),n=nr().Graph,r=g4();$g=o;var i=e.constant(1);function o(p,d){if(p.nodeCount()<=1)return[];var m=c(p,d||i),y=l(m.graph,m.buckets,m.zeroIdx);return e.flatten(e.map(y,function(w){return p.outEdges(w.v,w.w)}),!0)}function l(p,d,m){for(var y=[],w=d[d.length-1],N=d[0],_;p.nodeCount();){for(;_=N.dequeue();)u(p,d,m,_);for(;_=w.dequeue();)u(p,d,m,_);if(p.nodeCount()){for(var b=d.length-2;b>0;--b)if(_=d[b].dequeue(),_){y=y.concat(u(p,d,m,_,!0));break}}}return y}function u(p,d,m,y,w){var N=w?[]:void 0;return e.forEach(p.inEdges(y.v),function(_){var b=p.edge(_),S=p.node(_.v);w&&N.push({v:_.v,w:_.w}),S.out-=b,h(d,m,S)}),e.forEach(p.outEdges(y.v),function(_){var b=p.edge(_),S=_.w,k=p.node(S);k.in-=b,h(d,m,k)}),p.removeNode(y.v),N}function c(p,d){var m=new n,y=0,w=0;e.forEach(p.nodes(),function(b){m.setNode(b,{v:b,in:0,out:0})}),e.forEach(p.edges(),function(b){var S=m.edge(b.v,b.w)||0,k=d(b),E=S+k;m.setEdge(b.v,b.w,E),w=Math.max(w,m.node(b.v).out+=k),y=Math.max(y,m.node(b.w).in+=k)});var N=e.range(w+y+3).map(function(){return new r}),_=y+1;return e.forEach(m.nodes(),function(b){h(N,_,m.node(b))}),{graph:m,buckets:N,zeroIdx:_}}function h(p,d,m){m.out?m.in?p[m.out-m.in+d].enqueue(m):p[p.length-1].enqueue(m):p[0].enqueue(m)}return $g}var qg,sE;function y4(){if(sE)return qg;sE=1;var e=lt(),n=v4();qg={run:r,undo:o};function r(l){var u=l.graph().acyclicer==="greedy"?n(l,c(l)):i(l);e.forEach(u,function(h){var p=l.edge(h);l.removeEdge(h),p.forwardName=h.name,p.reversed=!0,l.setEdge(h.w,h.v,p,e.uniqueId("rev"))});function c(h){return function(p){return h.edge(p).weight}}}function i(l){var u=[],c={},h={};function p(d){e.has(h,d)||(h[d]=!0,c[d]=!0,e.forEach(l.outEdges(d),function(m){e.has(c,m.w)?u.push(m):p(m.w)}),delete c[d])}return e.forEach(l.nodes(),p),u}function o(l){e.forEach(l.edges(),function(u){var c=l.edge(u);if(c.reversed){l.removeEdge(u);var h=c.forwardName;delete c.reversed,delete c.forwardName,l.setEdge(u.w,u.v,c,h)}})}return qg}var Dg,iE;function fn(){if(iE)return Dg;iE=1;var e=lt(),n=nr().Graph;Dg={addDummyNode:r,simplify:i,asNonCompoundGraph:o,successorWeights:l,predecessorWeights:u,intersectRect:c,buildLayerMatrix:h,normalizeRanks:p,removeEmptyRanks:d,addBorderNode:m,maxRank:y,partition:w,time:N,notime:_};function r(b,S,k,E){var R;do R=e.uniqueId(E);while(b.hasNode(R));return k.dummy=S,b.setNode(R,k),R}function i(b){var S=new n().setGraph(b.graph());return e.forEach(b.nodes(),function(k){S.setNode(k,b.node(k))}),e.forEach(b.edges(),function(k){var E=S.edge(k.v,k.w)||{weight:0,minlen:1},R=b.edge(k);S.setEdge(k.v,k.w,{weight:E.weight+R.weight,minlen:Math.max(E.minlen,R.minlen)})}),S}function o(b){var S=new n({multigraph:b.isMultigraph()}).setGraph(b.graph());return e.forEach(b.nodes(),function(k){b.children(k).length||S.setNode(k,b.node(k))}),e.forEach(b.edges(),function(k){S.setEdge(k,b.edge(k))}),S}function l(b){var S=e.map(b.nodes(),function(k){var E={};return e.forEach(b.outEdges(k),function(R){E[R.w]=(E[R.w]||0)+b.edge(R).weight}),E});return e.zipObject(b.nodes(),S)}function u(b){var S=e.map(b.nodes(),function(k){var E={};return e.forEach(b.inEdges(k),function(R){E[R.v]=(E[R.v]||0)+b.edge(R).weight}),E});return e.zipObject(b.nodes(),S)}function c(b,S){var k=b.x,E=b.y,R=S.x-k,I=S.y-E,O=b.width/2,A=b.height/2;if(!R&&!I)throw new Error("Not possible to find intersection inside of the rectangle");var U,z;return Math.abs(I)*O>Math.abs(R)*A?(I<0&&(A=-A),U=A*R/I,z=A):(R<0&&(O=-O),U=O,z=O*I/R),{x:k+U,y:E+z}}function h(b){var S=e.map(e.range(y(b)+1),function(){return[]});return e.forEach(b.nodes(),function(k){var E=b.node(k),R=E.rank;e.isUndefined(R)||(S[R][E.order]=k)}),S}function p(b){var S=e.min(e.map(b.nodes(),function(k){return b.node(k).rank}));e.forEach(b.nodes(),function(k){var E=b.node(k);e.has(E,"rank")&&(E.rank-=S)})}function d(b){var S=e.min(e.map(b.nodes(),function(I){return b.node(I).rank})),k=[];e.forEach(b.nodes(),function(I){var O=b.node(I).rank-S;k[O]||(k[O]=[]),k[O].push(I)});var E=0,R=b.graph().nodeRankFactor;e.forEach(k,function(I,O){e.isUndefined(I)&&O%R!==0?--E:E&&e.forEach(I,function(A){b.node(A).rank+=E})})}function m(b,S,k,E){var R={width:0,height:0};return arguments.length>=4&&(R.rank=k,R.order=E),r(b,"border",R,S)}function y(b){return e.max(e.map(b.nodes(),function(S){var k=b.node(S).rank;if(!e.isUndefined(k))return k}))}function w(b,S){var k={lhs:[],rhs:[]};return e.forEach(b,function(E){S(E)?k.lhs.push(E):k.rhs.push(E)}),k}function N(b,S){var k=e.now();try{return S()}finally{console.log(b+" time: "+(e.now()-k)+"ms")}}function _(b,S){return S()}return Dg}var Fg,oE;function w4(){if(oE)return Fg;oE=1;var e=lt(),n=fn();Fg={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,h=l.node(c).rank,p=u.w,d=l.node(p).rank,m=u.name,y=l.edge(u),w=y.labelRank;if(d!==h+1){l.removeEdge(u);var N,_,b;for(b=0,++h;h<d;++b,++h)y.points=[],_={width:0,height:0,edgeLabel:y,edgeObj:u,rank:h},N=n.addDummyNode(l,"edge",_,"_d"),h===w&&(_.width=y.width,_.height=y.height,_.dummy="edge-label",_.labelpos=y.labelpos),l.setEdge(c,N,{weight:y.weight},m),b===0&&l.graph().dummyChains.push(N),c=N;l.setEdge(c,p,{weight:y.weight},m)}}function o(l){e.forEach(l.graph().dummyChains,function(u){var c=l.node(u),h=c.edgeLabel,p;for(l.setEdge(c.edgeObj,h);c.dummy;)p=l.successors(u)[0],l.removeNode(u),h.points.push({x:c.x,y:c.y}),c.dummy==="edge-label"&&(h.x=c.x,h.y=c.y,h.width=c.width,h.height=c.height),u=p,c=l.node(u)})}return Fg}var zg,aE;function Nu(){if(aE)return zg;aE=1;var e=lt();zg={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 h=e.min(e.map(i.outEdges(u),function(p){return l(p.w)-i.edge(p).minlen}));return(h===Number.POSITIVE_INFINITY||h===void 0||h===null)&&(h=0),c.rank=h}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 zg}var Bg,lE;function AR(){if(lE)return Bg;lE=1;var e=lt(),n=nr().Graph,r=Nu().slack;Bg=i;function i(c){var h=new n({directed:!1}),p=c.nodes()[0],d=c.nodeCount();h.setNode(p,{});for(var m,y;o(h,c)<d;)m=l(h,c),y=h.hasNode(m.v)?r(c,m):-r(c,m),u(h,c,y);return h}function o(c,h){function p(d){e.forEach(h.nodeEdges(d),function(m){var y=m.v,w=d===y?m.w:y;!c.hasNode(w)&&!r(h,m)&&(c.setNode(w,{}),c.setEdge(d,w,{}),p(w))})}return e.forEach(c.nodes(),p),c.nodeCount()}function l(c,h){return e.minBy(h.edges(),function(p){if(c.hasNode(p.v)!==c.hasNode(p.w))return r(h,p)})}function u(c,h,p){e.forEach(c.nodes(),function(d){h.node(d).rank+=p})}return Bg}var Ug,uE;function x4(){if(uE)return Ug;uE=1;var e=lt(),n=AR(),r=Nu().slack,i=Nu().longestPath,o=nr().alg.preorder,l=nr().alg.postorder,u=fn().simplify;Ug=c,c.initLowLimValues=m,c.initCutValues=h,c.calcCutValue=d,c.leaveEdge=w,c.enterEdge=N,c.exchangeEdges=_;function c(E){E=u(E),i(E);var R=n(E);m(R),h(R,E);for(var I,O;I=w(R);)O=N(R,E,I),_(R,E,I,O)}function h(E,R){var I=l(E,E.nodes());I=I.slice(0,I.length-1),e.forEach(I,function(O){p(E,R,O)})}function p(E,R,I){var O=E.node(I),A=O.parent;E.edge(I,A).cutvalue=d(E,R,I)}function d(E,R,I){var O=E.node(I),A=O.parent,U=!0,z=R.edge(I,A),P=0;return z||(U=!1,z=R.edge(A,I)),P=z.weight,e.forEach(R.nodeEdges(I),function(D){var V=D.v===I,B=V?D.w:D.v;if(B!==A){var C=V===U,q=R.edge(D).weight;if(P+=C?q:-q,S(E,I,B)){var L=E.edge(I,B).cutvalue;P+=C?-L:L}}}),P}function m(E,R){arguments.length<2&&(R=E.nodes()[0]),y(E,{},1,R)}function y(E,R,I,O,A){var U=I,z=E.node(O);return R[O]=!0,e.forEach(E.neighbors(O),function(P){e.has(R,P)||(I=y(E,R,I,P,O))}),z.low=U,z.lim=I++,A?z.parent=A:delete z.parent,I}function w(E){return e.find(E.edges(),function(R){return E.edge(R).cutvalue<0})}function N(E,R,I){var O=I.v,A=I.w;R.hasEdge(O,A)||(O=I.w,A=I.v);var U=E.node(O),z=E.node(A),P=U,D=!1;U.lim>z.lim&&(P=z,D=!0);var V=e.filter(R.edges(),function(B){return D===k(E,E.node(B.v),P)&&D!==k(E,E.node(B.w),P)});return e.minBy(V,function(B){return r(R,B)})}function _(E,R,I,O){var A=I.v,U=I.w;E.removeEdge(A,U),E.setEdge(O.v,O.w,{}),m(E),h(E,R),b(E,R)}function b(E,R){var I=e.find(E.nodes(),function(A){return!R.node(A).parent}),O=o(E,I);O=O.slice(1),e.forEach(O,function(A){var U=E.node(A).parent,z=R.edge(A,U),P=!1;z||(z=R.edge(U,A),P=!0),R.node(A).rank=R.node(U).rank+(P?z.minlen:-z.minlen)})}function S(E,R,I){return E.hasEdge(R,I)}function k(E,R,I){return I.low<=R.lim&&R.lim<=I.lim}return Ug}var Hg,cE;function _4(){if(cE)return Hg;cE=1;var e=Nu(),n=e.longestPath,r=AR(),i=x4();Hg=o;function o(h){switch(h.graph().ranker){case"network-simplex":c(h);break;case"tight-tree":u(h);break;case"longest-path":l(h);break;default:c(h)}}var l=n;function u(h){n(h),r(h)}function c(h){i(h)}return Hg}var Wg,dE;function b4(){if(dE)return Wg;dE=1;var e=lt();Wg=n;function n(o){var l=i(o);e.forEach(o.graph().dummyChains,function(u){for(var c=o.node(u),h=c.edgeObj,p=r(o,l,h.v,h.w),d=p.path,m=p.lca,y=0,w=d[y],N=!0;u!==h.w;){if(c=o.node(u),N){for(;(w=d[y])!==m&&o.node(w).maxRank<c.rank;)y++;w===m&&(N=!1)}if(!N){for(;y<d.length-1&&o.node(w=d[y+1]).minRank<=c.rank;)y++;w=d[y]}o.setParent(u,w),u=o.successors(u)[0]}})}function r(o,l,u,c){var h=[],p=[],d=Math.min(l[u].low,l[c].low),m=Math.max(l[u].lim,l[c].lim),y,w;y=u;do y=o.parent(y),h.push(y);while(y&&(l[y].low>d||m>l[y].lim));for(w=y,y=c;(y=o.parent(y))!==w;)p.push(y);return{path:h.concat(p.reverse()),lca:w}}function i(o){var l={},u=0;function c(h){var p=u;e.forEach(o.children(h),c),l[h]={low:p,lim:u++}}return e.forEach(o.children(),c),l}return Wg}var Vg,fE;function S4(){if(fE)return Vg;fE=1;var e=lt(),n=fn();Vg={run:r,cleanup:u};function r(c){var h=n.addDummyNode(c,"root",{},"_root"),p=o(c),d=e.max(e.values(p))-1,m=2*d+1;c.graph().nestingRoot=h,e.forEach(c.edges(),function(w){c.edge(w).minlen*=m});var y=l(c)+1;e.forEach(c.children(),function(w){i(c,h,m,y,d,p,w)}),c.graph().nodeRankFactor=m}function i(c,h,p,d,m,y,w){var N=c.children(w);if(!N.length){w!==h&&c.setEdge(h,w,{weight:0,minlen:p});return}var _=n.addBorderNode(c,"_bt"),b=n.addBorderNode(c,"_bb"),S=c.node(w);c.setParent(_,w),S.borderTop=_,c.setParent(b,w),S.borderBottom=b,e.forEach(N,function(k){i(c,h,p,d,m,y,k);var E=c.node(k),R=E.borderTop?E.borderTop:k,I=E.borderBottom?E.borderBottom:k,O=E.borderTop?d:2*d,A=R!==I?1:m-y[w]+1;c.setEdge(_,R,{weight:O,minlen:A,nestingEdge:!0}),c.setEdge(I,b,{weight:O,minlen:A,nestingEdge:!0})}),c.parent(w)||c.setEdge(h,_,{weight:0,minlen:m+y[w]})}function o(c){var h={};function p(d,m){var y=c.children(d);y&&y.length&&e.forEach(y,function(w){p(w,m+1)}),h[d]=m}return e.forEach(c.children(),function(d){p(d,1)}),h}function l(c){return e.reduce(c.edges(),function(h,p){return h+c.edge(p).weight},0)}function u(c){var h=c.graph();c.removeNode(h.nestingRoot),delete h.nestingRoot,e.forEach(c.edges(),function(p){var d=c.edge(p);d.nestingEdge&&c.removeEdge(p)})}return Vg}var Gg,hE;function k4(){if(hE)return Gg;hE=1;var e=lt(),n=fn();Gg=r;function r(o){function l(u){var c=o.children(u),h=o.node(u);if(c.length&&e.forEach(c,l),e.has(h,"minRank")){h.borderLeft=[],h.borderRight=[];for(var p=h.minRank,d=h.maxRank+1;p<d;++p)i(o,"borderLeft","_bl",u,h,p),i(o,"borderRight","_br",u,h,p)}}e.forEach(o.children(),l)}function i(o,l,u,c,h,p){var d={width:0,height:0,rank:p,borderType:l},m=h[l][p-1],y=n.addDummyNode(o,"border",d,u);h[l][p]=y,o.setParent(y,c),m&&o.setEdge(m,y,{weight:1})}return Gg}var Yg,pE;function E4(){if(pE)return Yg;pE=1;var e=lt();Yg={adjust:n,undo:r};function n(p){var d=p.graph().rankdir.toLowerCase();(d==="lr"||d==="rl")&&i(p)}function r(p){var d=p.graph().rankdir.toLowerCase();(d==="bt"||d==="rl")&&l(p),(d==="lr"||d==="rl")&&(c(p),i(p))}function i(p){e.forEach(p.nodes(),function(d){o(p.node(d))}),e.forEach(p.edges(),function(d){o(p.edge(d))})}function o(p){var d=p.width;p.width=p.height,p.height=d}function l(p){e.forEach(p.nodes(),function(d){u(p.node(d))}),e.forEach(p.edges(),function(d){var m=p.edge(d);e.forEach(m.points,u),e.has(m,"y")&&u(m)})}function u(p){p.y=-p.y}function c(p){e.forEach(p.nodes(),function(d){h(p.node(d))}),e.forEach(p.edges(),function(d){var m=p.edge(d);e.forEach(m.points,h),e.has(m,"x")&&h(m)})}function h(p){var d=p.x;p.x=p.y,p.y=d}return Yg}var Kg,mE;function N4(){if(mE)return Kg;mE=1;var e=lt();Kg=n;function n(r){var i={},o=e.filter(r.nodes(),function(p){return!r.children(p).length}),l=e.max(e.map(o,function(p){return r.node(p).rank})),u=e.map(e.range(l+1),function(){return[]});function c(p){if(!e.has(i,p)){i[p]=!0;var d=r.node(p);u[d.rank].push(p),e.forEach(r.successors(p),c)}}var h=e.sortBy(o,function(p){return r.node(p).rank});return e.forEach(h,c),u}return Kg}var Xg,gE;function C4(){if(gE)return Xg;gE=1;var e=lt();Xg=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,w){return w})),c=e.flatten(e.map(o,function(y){return e.sortBy(e.map(i.outEdges(y),function(w){return{pos:u[w.w],weight:i.edge(w).weight}}),"pos")}),!0),h=1;h<l.length;)h<<=1;var p=2*h-1;h-=1;var d=e.map(new Array(p),function(){return 0}),m=0;return e.forEach(c.forEach(function(y){var w=y.pos+h;d[w]+=y.weight;for(var N=0;w>0;)w%2&&(N+=d[w+1]),w=w-1>>1,d[w]+=y.weight;m+=y.weight*N})),m}return Xg}var Qg,vE;function R4(){if(vE)return Qg;vE=1;var e=lt();Qg=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,h){var p=r.edge(h),d=r.node(h.v);return{sum:c.sum+p.weight*d.order,weight:c.weight+p.weight}},{sum:0,weight:0});return{v:o,barycenter:u.sum/u.weight,weight:u.weight}}else return{v:o}})}return Qg}var Zg,yE;function T4(){if(yE)return Zg;yE=1;var e=lt();Zg=n;function n(o,l){var u={};e.forEach(o,function(h,p){var d=u[h.v]={indegree:0,in:[],out:[],vs:[h.v],i:p};e.isUndefined(h.barycenter)||(d.barycenter=h.barycenter,d.weight=h.weight)}),e.forEach(l.edges(),function(h){var p=u[h.v],d=u[h.w];!e.isUndefined(p)&&!e.isUndefined(d)&&(d.indegree++,p.out.push(u[h.w]))});var c=e.filter(u,function(h){return!h.indegree});return r(c)}function r(o){var l=[];function u(p){return function(d){d.merged||(e.isUndefined(d.barycenter)||e.isUndefined(p.barycenter)||d.barycenter>=p.barycenter)&&i(p,d)}}function c(p){return function(d){d.in.push(p),--d.indegree===0&&o.push(d)}}for(;o.length;){var h=o.pop();l.push(h),e.forEach(h.in.reverse(),u(h)),e.forEach(h.out,c(h))}return e.map(e.filter(l,function(p){return!p.merged}),function(p){return e.pick(p,["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 Zg}var Jg,wE;function j4(){if(wE)return Jg;wE=1;var e=lt(),n=fn();Jg=r;function r(l,u){var c=n.partition(l,function(_){return e.has(_,"barycenter")}),h=c.lhs,p=e.sortBy(c.rhs,function(_){return-_.i}),d=[],m=0,y=0,w=0;h.sort(o(!!u)),w=i(d,p,w),e.forEach(h,function(_){w+=_.vs.length,d.push(_.vs),m+=_.barycenter*_.weight,y+=_.weight,w=i(d,p,w)});var N={vs:e.flatten(d,!0)};return y&&(N.barycenter=m/y,N.weight=y),N}function i(l,u,c){for(var h;u.length&&(h=e.last(u)).i<=c;)u.pop(),l.push(h.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 Jg}var ev,xE;function A4(){if(xE)return ev;xE=1;var e=lt(),n=R4(),r=T4(),i=j4();ev=o;function o(c,h,p,d){var m=c.children(h),y=c.node(h),w=y?y.borderLeft:void 0,N=y?y.borderRight:void 0,_={};w&&(m=e.filter(m,function(I){return I!==w&&I!==N}));var b=n(c,m);e.forEach(b,function(I){if(c.children(I.v).length){var O=o(c,I.v,p,d);_[I.v]=O,e.has(O,"barycenter")&&u(I,O)}});var S=r(b,p);l(S,_);var k=i(S,d);if(w&&(k.vs=e.flatten([w,k.vs,N],!0),c.predecessors(w).length)){var E=c.node(c.predecessors(w)[0]),R=c.node(c.predecessors(N)[0]);e.has(k,"barycenter")||(k.barycenter=0,k.weight=0),k.barycenter=(k.barycenter*k.weight+E.order+R.order)/(k.weight+2),k.weight+=2}return k}function l(c,h){e.forEach(c,function(p){p.vs=e.flatten(p.vs.map(function(d){return h[d]?h[d].vs:d}),!0)})}function u(c,h){e.isUndefined(c.barycenter)?(c.barycenter=h.barycenter,c.weight=h.weight):(c.barycenter=(c.barycenter*c.weight+h.barycenter*h.weight)/(c.weight+h.weight),c.weight+=h.weight)}return ev}var tv,_E;function I4(){if(_E)return tv;_E=1;var e=lt(),n=nr().Graph;tv=r;function r(o,l,u){var c=i(o),h=new n({compound:!0}).setGraph({root:c}).setDefaultNodeLabel(function(p){return o.node(p)});return e.forEach(o.nodes(),function(p){var d=o.node(p),m=o.parent(p);(d.rank===l||d.minRank<=l&&l<=d.maxRank)&&(h.setNode(p),h.setParent(p,m||c),e.forEach(o[u](p),function(y){var w=y.v===p?y.w:y.v,N=h.edge(w,p),_=e.isUndefined(N)?0:N.weight;h.setEdge(w,p,{weight:o.edge(y).weight+_})}),e.has(d,"minRank")&&h.setNode(p,{borderLeft:d.borderLeft[l],borderRight:d.borderRight[l]}))}),h}function i(o){for(var l;o.hasNode(l=e.uniqueId("_root")););return l}return tv}var nv,bE;function M4(){if(bE)return nv;bE=1;var e=lt();nv=n;function n(r,i,o){var l={},u;e.forEach(o,function(c){for(var h=r.parent(c),p,d;h;){if(p=r.parent(h),p?(d=l[p],l[p]=h):(d=u,u=h),d&&d!==h){i.setEdge(d,h);return}h=p}})}return nv}var rv,SE;function O4(){if(SE)return rv;SE=1;var e=lt(),n=N4(),r=C4(),i=A4(),o=I4(),l=M4(),u=nr().Graph,c=fn();rv=h;function h(y){var w=c.maxRank(y),N=p(y,e.range(1,w+1),"inEdges"),_=p(y,e.range(w-1,-1,-1),"outEdges"),b=n(y);m(y,b);for(var S=Number.POSITIVE_INFINITY,k,E=0,R=0;R<4;++E,++R){d(E%2?N:_,E%4>=2),b=c.buildLayerMatrix(y);var I=r(y,b);I<S&&(R=0,k=e.cloneDeep(b),S=I)}m(y,k)}function p(y,w,N){return e.map(w,function(_){return o(y,_,N)})}function d(y,w){var N=new u;e.forEach(y,function(_){var b=_.graph().root,S=i(_,b,N,w);e.forEach(S.vs,function(k,E){_.node(k).order=E}),l(_,N,S.vs)})}function m(y,w){e.forEach(w,function(N){e.forEach(N,function(_,b){y.node(_).order=b})})}return rv}var sv,kE;function P4(){if(kE)return sv;kE=1;var e=lt(),n=nr().Graph,r=fn();sv={positionX:N,findType1Conflicts:i,findType2Conflicts:o,addConflict:u,hasConflict:c,verticalAlignment:h,horizontalCompaction:p,alignCoordinates:y,findSmallestWidthAlignment:m,balance:w};function i(S,k){var E={};function R(I,O){var A=0,U=0,z=I.length,P=e.last(O);return e.forEach(O,function(D,V){var B=l(S,D),C=B?S.node(B).order:z;(B||D===P)&&(e.forEach(O.slice(U,V+1),function(q){e.forEach(S.predecessors(q),function(L){var re=S.node(L),Z=re.order;(Z<A||C<Z)&&!(re.dummy&&S.node(q).dummy)&&u(E,L,q)})}),U=V+1,A=C)}),O}return e.reduce(k,R),E}function o(S,k){var E={};function R(O,A,U,z,P){var D;e.forEach(e.range(A,U),function(V){D=O[V],S.node(D).dummy&&e.forEach(S.predecessors(D),function(B){var C=S.node(B);C.dummy&&(C.order<z||C.order>P)&&u(E,B,D)})})}function I(O,A){var U=-1,z,P=0;return e.forEach(A,function(D,V){if(S.node(D).dummy==="border"){var B=S.predecessors(D);B.length&&(z=S.node(B[0]).order,R(A,P,V,U,z),P=V,U=z)}R(A,P,A.length,z,O.length)}),A}return e.reduce(k,I),E}function l(S,k){if(S.node(k).dummy)return e.find(S.predecessors(k),function(E){return S.node(E).dummy})}function u(S,k,E){if(k>E){var R=k;k=E,E=R}var I=S[k];I||(S[k]=I={}),I[E]=!0}function c(S,k,E){if(k>E){var R=k;k=E,E=R}return e.has(S[k],E)}function h(S,k,E,R){var I={},O={},A={};return e.forEach(k,function(U){e.forEach(U,function(z,P){I[z]=z,O[z]=z,A[z]=P})}),e.forEach(k,function(U){var z=-1;e.forEach(U,function(P){var D=R(P);if(D.length){D=e.sortBy(D,function(L){return A[L]});for(var V=(D.length-1)/2,B=Math.floor(V),C=Math.ceil(V);B<=C;++B){var q=D[B];O[P]===P&&z<A[q]&&!c(E,P,q)&&(O[q]=P,O[P]=I[P]=I[q],z=A[q])}}})}),{root:I,align:O}}function p(S,k,E,R,I){var O={},A=d(S,k,E,I),U=I?"borderLeft":"borderRight";function z(V,B){for(var C=A.nodes(),q=C.pop(),L={};q;)L[q]?V(q):(L[q]=!0,C.push(q),C=C.concat(B(q))),q=C.pop()}function P(V){O[V]=A.inEdges(V).reduce(function(B,C){return Math.max(B,O[C.v]+A.edge(C))},0)}function D(V){var B=A.outEdges(V).reduce(function(q,L){return Math.min(q,O[L.w]-A.edge(L))},Number.POSITIVE_INFINITY),C=S.node(V);B!==Number.POSITIVE_INFINITY&&C.borderType!==U&&(O[V]=Math.max(O[V],B))}return z(P,A.predecessors.bind(A)),z(D,A.successors.bind(A)),e.forEach(R,function(V){O[V]=O[E[V]]}),O}function d(S,k,E,R){var I=new n,O=S.graph(),A=_(O.nodesep,O.edgesep,R);return e.forEach(k,function(U){var z;e.forEach(U,function(P){var D=E[P];if(I.setNode(D),z){var V=E[z],B=I.edge(V,D);I.setEdge(V,D,Math.max(A(S,P,z),B||0))}z=P})}),I}function m(S,k){return e.minBy(e.values(k),function(E){var R=Number.NEGATIVE_INFINITY,I=Number.POSITIVE_INFINITY;return e.forIn(E,function(O,A){var U=b(S,A)/2;R=Math.max(O+U,R),I=Math.min(O-U,I)}),R-I})}function y(S,k){var E=e.values(k),R=e.min(E),I=e.max(E);e.forEach(["u","d"],function(O){e.forEach(["l","r"],function(A){var U=O+A,z=S[U],P;if(z!==k){var D=e.values(z);P=A==="l"?R-e.min(D):I-e.max(D),P&&(S[U]=e.mapValues(z,function(V){return V+P}))}})})}function w(S,k){return e.mapValues(S.ul,function(E,R){if(k)return S[k.toLowerCase()][R];var I=e.sortBy(e.map(S,R));return(I[1]+I[2])/2})}function N(S){var k=r.buildLayerMatrix(S),E=e.merge(i(S,k),o(S,k)),R={},I;e.forEach(["u","d"],function(A){I=A==="u"?k:e.values(k).reverse(),e.forEach(["l","r"],function(U){U==="r"&&(I=e.map(I,function(V){return e.values(V).reverse()}));var z=(A==="u"?S.predecessors:S.successors).bind(S),P=h(S,I,E,z),D=p(S,I,P.root,P.align,U==="r");U==="r"&&(D=e.mapValues(D,function(V){return-V})),R[A+U]=D})});var O=m(S,R);return y(R,O),w(R,S.graph().align)}function _(S,k,E){return function(R,I,O){var A=R.node(I),U=R.node(O),z=0,P;if(z+=A.width/2,e.has(A,"labelpos"))switch(A.labelpos.toLowerCase()){case"l":P=-A.width/2;break;case"r":P=A.width/2;break}if(P&&(z+=E?P:-P),P=0,z+=(A.dummy?k:S)/2,z+=(U.dummy?k:S)/2,z+=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&&(z+=E?P:-P),P=0,z}}function b(S,k){return S.node(k).width}return sv}var iv,EE;function L4(){if(EE)return iv;EE=1;var e=lt(),n=fn(),r=P4().positionX;iv=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,h=0;e.forEach(u,function(p){var d=e.max(e.map(p,function(m){return l.node(m).height}));e.forEach(p,function(m){l.node(m).y=h+d/2}),h+=d+c})}return iv}var ov,NE;function $4(){if(NE)return ov;NE=1;var e=lt(),n=y4(),r=w4(),i=_4(),o=fn().normalizeRanks,l=b4(),u=fn().removeEmptyRanks,c=S4(),h=k4(),p=E4(),d=O4(),m=L4(),y=fn(),w=nr().Graph;ov=N;function N($,Q){var ne=Q&&Q.debugTiming?y.time:y.notime;ne("layout",function(){var oe=ne(" buildLayoutGraph",function(){return z($)});ne(" runLayout",function(){_(oe,ne)}),ne(" updateInputGraph",function(){b($,oe)})})}function _($,Q){Q(" makeSpaceForEdgeLabels",function(){P($)}),Q(" removeSelfEdges",function(){H($)}),Q(" acyclic",function(){n.run($)}),Q(" nestingGraph.run",function(){c.run($)}),Q(" rank",function(){i(y.asNonCompoundGraph($))}),Q(" injectEdgeLabelProxies",function(){D($)}),Q(" removeEmptyRanks",function(){u($)}),Q(" nestingGraph.cleanup",function(){c.cleanup($)}),Q(" normalizeRanks",function(){o($)}),Q(" assignRankMinMax",function(){V($)}),Q(" removeEdgeLabelProxies",function(){B($)}),Q(" normalize.run",function(){r.run($)}),Q(" parentDummyChains",function(){l($)}),Q(" addBorderSegments",function(){h($)}),Q(" order",function(){d($)}),Q(" insertSelfEdges",function(){J($)}),Q(" adjustCoordinateSystem",function(){p.adjust($)}),Q(" position",function(){m($)}),Q(" positionSelfEdges",function(){M($)}),Q(" removeBorderNodes",function(){Z($)}),Q(" normalize.undo",function(){r.undo($)}),Q(" fixupEdgeLabelCoords",function(){L($)}),Q(" undoCoordinateSystem",function(){p.undo($)}),Q(" translateGraph",function(){C($)}),Q(" assignNodeIntersects",function(){q($)}),Q(" reversePoints",function(){re($)}),Q(" acyclic.undo",function(){n.undo($)})}function b($,Q){e.forEach($.nodes(),function(ne){var oe=$.node(ne),fe=Q.node(ne);oe&&(oe.x=fe.x,oe.y=fe.y,Q.children(ne).length&&(oe.width=fe.width,oe.height=fe.height))}),e.forEach($.edges(),function(ne){var oe=$.edge(ne),fe=Q.edge(ne);oe.points=fe.points,e.has(fe,"x")&&(oe.x=fe.x,oe.y=fe.y)}),$.graph().width=Q.graph().width,$.graph().height=Q.graph().height}var S=["nodesep","edgesep","ranksep","marginx","marginy"],k={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},E=["acyclicer","ranker","rankdir","align"],R=["width","height"],I={width:0,height:0},O=["minlen","weight","width","height","labeloffset"],A={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},U=["labelpos"];function z($){var Q=new w({multigraph:!0,compound:!0}),ne=Y($.graph());return Q.setGraph(e.merge({},k,G(ne,S),e.pick(ne,E))),e.forEach($.nodes(),function(oe){var fe=Y($.node(oe));Q.setNode(oe,e.defaults(G(fe,R),I)),Q.setParent(oe,$.parent(oe))}),e.forEach($.edges(),function(oe){var fe=Y($.edge(oe));Q.setEdge(oe,e.merge({},A,G(fe,O),e.pick(fe,U)))}),Q}function P($){var Q=$.graph();Q.ranksep/=2,e.forEach($.edges(),function(ne){var oe=$.edge(ne);oe.minlen*=2,oe.labelpos.toLowerCase()!=="c"&&(Q.rankdir==="TB"||Q.rankdir==="BT"?oe.width+=oe.labeloffset:oe.height+=oe.labeloffset)})}function D($){e.forEach($.edges(),function(Q){var ne=$.edge(Q);if(ne.width&&ne.height){var oe=$.node(Q.v),fe=$.node(Q.w),te={rank:(fe.rank-oe.rank)/2+oe.rank,e:Q};y.addDummyNode($,"edge-proxy",te,"_ep")}})}function V($){var Q=0;e.forEach($.nodes(),function(ne){var oe=$.node(ne);oe.borderTop&&(oe.minRank=$.node(oe.borderTop).rank,oe.maxRank=$.node(oe.borderBottom).rank,Q=e.max(Q,oe.maxRank))}),$.graph().maxRank=Q}function B($){e.forEach($.nodes(),function(Q){var ne=$.node(Q);ne.dummy==="edge-proxy"&&($.edge(ne.e).labelRank=ne.rank,$.removeNode(Q))})}function C($){var Q=Number.POSITIVE_INFINITY,ne=0,oe=Number.POSITIVE_INFINITY,fe=0,te=$.graph(),ce=te.marginx||0,Ce=te.marginy||0;function ve(je){var ye=je.x,ke=je.y,Ye=je.width,we=je.height;Q=Math.min(Q,ye-Ye/2),ne=Math.max(ne,ye+Ye/2),oe=Math.min(oe,ke-we/2),fe=Math.max(fe,ke+we/2)}e.forEach($.nodes(),function(je){ve($.node(je))}),e.forEach($.edges(),function(je){var ye=$.edge(je);e.has(ye,"x")&&ve(ye)}),Q-=ce,oe-=Ce,e.forEach($.nodes(),function(je){var ye=$.node(je);ye.x-=Q,ye.y-=oe}),e.forEach($.edges(),function(je){var ye=$.edge(je);e.forEach(ye.points,function(ke){ke.x-=Q,ke.y-=oe}),e.has(ye,"x")&&(ye.x-=Q),e.has(ye,"y")&&(ye.y-=oe)}),te.width=ne-Q+ce,te.height=fe-oe+Ce}function q($){e.forEach($.edges(),function(Q){var ne=$.edge(Q),oe=$.node(Q.v),fe=$.node(Q.w),te,ce;ne.points?(te=ne.points[0],ce=ne.points[ne.points.length-1]):(ne.points=[],te=fe,ce=oe),ne.points.unshift(y.intersectRect(oe,te)),ne.points.push(y.intersectRect(fe,ce))})}function L($){e.forEach($.edges(),function(Q){var ne=$.edge(Q);if(e.has(ne,"x"))switch((ne.labelpos==="l"||ne.labelpos==="r")&&(ne.width-=ne.labeloffset),ne.labelpos){case"l":ne.x-=ne.width/2+ne.labeloffset;break;case"r":ne.x+=ne.width/2+ne.labeloffset;break}})}function re($){e.forEach($.edges(),function(Q){var ne=$.edge(Q);ne.reversed&&ne.points.reverse()})}function Z($){e.forEach($.nodes(),function(Q){if($.children(Q).length){var ne=$.node(Q),oe=$.node(ne.borderTop),fe=$.node(ne.borderBottom),te=$.node(e.last(ne.borderLeft)),ce=$.node(e.last(ne.borderRight));ne.width=Math.abs(ce.x-te.x),ne.height=Math.abs(fe.y-oe.y),ne.x=te.x+ne.width/2,ne.y=oe.y+ne.height/2}}),e.forEach($.nodes(),function(Q){$.node(Q).dummy==="border"&&$.removeNode(Q)})}function H($){e.forEach($.edges(),function(Q){if(Q.v===Q.w){var ne=$.node(Q.v);ne.selfEdges||(ne.selfEdges=[]),ne.selfEdges.push({e:Q,label:$.edge(Q)}),$.removeEdge(Q)}})}function J($){var Q=y.buildLayerMatrix($);e.forEach(Q,function(ne){var oe=0;e.forEach(ne,function(fe,te){var ce=$.node(fe);ce.order=te+oe,e.forEach(ce.selfEdges,function(Ce){y.addDummyNode($,"selfedge",{width:Ce.label.width,height:Ce.label.height,rank:ce.rank,order:te+ ++oe,e:Ce.e,label:Ce.label},"_se")}),delete ce.selfEdges})})}function M($){e.forEach($.nodes(),function(Q){var ne=$.node(Q);if(ne.dummy==="selfedge"){var oe=$.node(ne.e.v),fe=oe.x+oe.width/2,te=oe.y,ce=ne.x-fe,Ce=oe.height/2;$.setEdge(ne.e,ne.label),$.removeNode(Q),ne.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}],ne.label.x=ne.x,ne.label.y=ne.y}})}function G($,Q){return e.mapValues(e.pick($,Q),Number)}function Y($){var Q={};return e.forEach($,function(ne,oe){Q[oe.toLowerCase()]=ne}),Q}return ov}var av,CE;function q4(){if(CE)return av;CE=1;var e=lt(),n=fn(),r=nr().Graph;av={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,h){var p="layer"+h;u.setNode(p,{rank:"same"}),e.reduce(c,function(d,m){return u.setEdge(d,m,{style:"invis"}),m})}),u}return av}var lv,RE;function D4(){return RE||(RE=1,lv="0.8.5"),lv}var uv,TE;function F4(){return TE||(TE=1,uv={graphlib:nr(),layout:$4(),debug:q4(),util:{time:fn().time,notime:fn().notime},version:D4()}),uv}var z4=F4();const jE=$v(z4),po=240,Cu=130,oo=74,Ju=72,AE=oo+Ju;function B4(e,n){var i;let r=po;for(const o of e)r=Math.max(r,((i=n.get(o.id))==null?void 0:i.width)??po);return r}const IR=420,U4=2;function ba(e){var r;return((r=e.data)==null?void 0:r.sessionId)??"_default"}function H4(e,n){return((n==null?void 0:n.get(e))??0)>0?IR:0}function W4(e,n){const r=(n==null?void 0:n.get(e))??0;return r>0?6+r*36:0}function Sa(e,n,r){const i=n.get(e);return{w:((i==null?void 0:i.width)??po)+H4(e,r),h:Math.max((i==null?void 0:i.height)??Cu,W4(e,r))}}function V4(e){return[...e.keys()].sort().map(n=>`${n}:${e.get(n)}`).join("|")}function G4(e,n,r,i,o,l){const u=new jE.graphlib.Graph;u.setDefaultEdgeLabel(()=>({})),u.setGraph({rankdir:r,marginx:0,marginy:0,nodesep:70,ranksep:160,edgesep:30});const c=e.filter(S=>!o.has(S)),h=new Set(c);for(const S of c){const{w:k,h:E}=Sa(S,i,l);u.setNode(S,{width:k,height:E})}for(const S of n)h.has(S.source)&&h.has(S.target)&&u.setEdge(S.source,S.target);jE.layout(u);const p=new Map;let d=1/0,m=1/0,y=-1/0,w=-1/0;for(const S of c){const k=u.node(S);if(!k)continue;const E=i.get(S),R=(E==null?void 0:E.width)??po,I=(E==null?void 0:E.height)??Cu,O=Sa(S,i,l),A=k.x-O.w/2,U=k.y-O.h/2;p.set(S,{x:A,y:U}),A<d&&(d=A),U<m&&(m=U),A+R>y&&(y=A+R),U+I>w&&(w=U+I)}if(Number.isFinite(d)&&Number.isFinite(m))for(const[S,k]of p)p.set(S,{x:k.x-d,y:k.y-m});const N=Number.isFinite(y)?y-d:0,_=Number.isFinite(w)?w-m:0;let b=null;for(const S of e){const k=o.get(S);if(!k)continue;const E=i.get(S),R=(E==null?void 0:E.width)??po,I=(E==null?void 0:E.height)??Cu;b=b===null?{minX:k.x,minY:k.y,maxX:k.x+R,maxY:k.y+I}:{minX:Math.min(b.minX,k.x),minY:Math.min(b.minY,k.y),maxX:Math.max(b.maxX,k.x+R),maxY:Math.max(b.maxY,k.y+I)}}return{positions:p,width:N,height:_,pinnedBox:b}}function Y4(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 S of e){const k=ba(S),E=c.get(k);E?E.push(S.id):c.set(k,[S.id])}const p=Array.from(c.keys()).sort().map(S=>({sid:S,...G4(c.get(S),n,i,l,o,u)})),d=B4(e,l),m=r.availableHeight&&r.availableHeight>0?r.availableHeight:Number.POSITIVE_INFINITY,y=S=>{const k=[[]];let E=0;for(const R of p)k.length<S&&E>0&&E+R.height>m&&(k.push([]),E=0),k[k.length-1].push(R),E+=R.height+AE;return k},w=S=>S.reduce((k,E)=>Math.max(k,E.width),0)+IR;let N=y(r.availableWidth?U4:1);N.length>1&&N.reduce((k,E)=>k+w(E),0)+d*(N.length-1)>(r.availableWidth??0)&&(N=y(1));const _=new Map;let b=0;for(const S of N){const k=w(S);let E=0;for(const{positions:R,height:I,pinnedBox:O}of S){for(const[U,z]of R)_.set(U,{x:z.x+b,y:z.y+E});let A=E+I;O&&O.maxY>A&&O.minX<b+k&&b<O.maxX&&(A=O.maxY),E=A+AE}b+=k+d}return e.map(S=>{const k=o.get(S.id);if(k)return{...S,position:k};const E=_.get(S.id);return E?{...S,position:E}:S})}function K4(e,n,r,i,o){const u=oo+Ju,c=60,h=w=>Sa(w,i,o),p=new Map(e.map(w=>[w.id,ba(w)])),d=[],m=e.map(w=>({id:w.id,pos:r.get(w.id)??n.get(w.id)})).filter(w=>w.pos!=null).sort((w,N)=>w.pos.y-N.pos.y||w.pos.x-N.pos.x||w.id.localeCompare(N.id)),y=[];for(const{id:w,pos:N}of m){const{w:_,h:b}=h(w),S=p.get(w)??"_default";if(r.has(w)){d.push({x:N.x,y:N.y,w:_,h:b,sid:S});continue}let k=N.y;for(let E=0;E<d.length+1;E++){const R=d.find(I=>{const O=I.sid===S?24:c,A=I.sid===S?24:u;return N.x<I.x+I.w+O&&I.x<N.x+_+O&&k<I.y+I.h+A&&I.y<k+b+A});if(!R)break;k=R.y+R.h+(R.sid===S?24:u)}k!==N.y&&(n.set(w,{x:N.x,y:k}),y.push(w)),d.push({x:N.x,y:k,w:_,h:b,sid:S})}return y}function X4(e,n,r,i,o,l){const u=_=>Sa(_,i,l),c=_=>r.get(_)??n.get(_),h=new Map;for(const _ of e){if(!c(_.id))continue;const b=ba(_),S=h.get(b);S?S.push(_):h.set(b,[_])}const p=new Set;for(const[_,b]of h)b.every(S=>o.has(S.id)&&!r.has(S.id))&&p.add(_);const d=new Map,m=[];for(const _ of e){const b=c(_.id);if(!b)continue;const{w:S,h:k}=u(_.id),E=ba(_);p.has(E)?(d.get(E)??d.set(E,[]).get(E)).push(_):m.push({x:b.x,y:b.y,w:S,h:k})}if(d.size===0)return[];const y=oo+Ju,w=(_,b,S,k)=>m.some(E=>_<E.x+E.w+oo&&E.x<_+S+oo&&b<E.y+E.h+y&&E.y<b+k+y),N=[];for(const _ of[...d.keys()].sort()){const b=d.get(_);let S=1/0,k=1/0,E=-1/0,R=-1/0;for(const D of b){const V=c(D.id),{w:B,h:C}=u(D.id);S=Math.min(S,V.x),k=Math.min(k,V.y),E=Math.max(E,V.x+B),R=Math.max(R,V.y+C)}const I=E-S,O=R-k,A=[...new Set(m.map(D=>Math.round(D.x)))].sort((D,V)=>D-V),U=A.length?A:[S],z=[0,...m.map(D=>D.y+D.h+y)].sort((D,V)=>D-V);let P=null;e:for(const D of U)for(const V of z){if(V>=k)break;if(!w(D,V,I,O)){P={x:D,y:V};break e}}if(P){const D=P.x-S,V=P.y-k;for(const B of b){const C=c(B.id);n.set(B.id,{x:C.x+D,y:C.y+V})}N.push(_)}for(const D of b){const V=c(D.id),{w:B,h:C}=u(D.id);m.push({x:V.x,y:V.y,w:B,h:C})}}return N}function Q4(e,n,r,i,o,l=!1,u){const p=oo+Ju+1,d=8,m=1.75,y=200,w=.7,N=.01,_=P=>Sa(P,i,u),b=P=>r.get(P)??n.get(P),S=new Map;for(const P of e){if(!b(P.id))continue;const D=ba(P),V=S.get(D);V?V.push(P):S.set(D,[P])}const k=[],E=new Set,R=new Set,I=o.size===0;for(const P of[...S.keys()].sort()){const D=S.get(P);let V=1/0,B=1/0,C=-1/0,q=-1/0,L=!1;for(const J of D){const M=b(J.id),{w:G,h:Y}=_(J.id);V=Math.min(V,M.x),B=Math.min(B,M.y),C=Math.max(C,M.x+G),q=Math.max(q,M.y+Y),r.has(J.id)&&(L=!0)}const re=C-V,Z=q-B;R.add(P);const H=o.get(P);H&&(re>H.w+d||Z>H.h+d)&&E.add(P),o.set(P,{w:re,h:Z}),k.push({sid:P,members:D.map(J=>J.id),x:V,y:B,w:re,h:Z,anchored:L,mass:1})}for(const P of[...o.keys()])R.has(P)||o.delete(P);if(l||I)return[];let O=!1;for(let P=0;P<k.length&&!O;P++)for(let D=P+1;D<k.length;D++){const V=k[P],B=k[D];if(!(V.anchored&&B.anchored)&&Math.abs(V.x+V.w/2-(B.x+B.w/2))<(V.w+B.w)/2+61&&Math.abs(V.y+V.h/2-(B.y+B.h/2))<(V.h+B.h)/2+p){O=!0;break}}if(E.size===0&&!O)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/(po*Cu));const A=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 D=new Map,V=new Map;let B=0;for(let C=0;C<k.length;C++)for(let q=C+1;q<k.length;q++){const L=k[C],re=k[q];if(L.anchored&&re.anchored)continue;const Z=L.x+L.w/2,H=L.y+L.h/2,J=re.x+re.w/2,M=re.y+re.h/2,G=(L.w+re.w)/2+61-Math.abs(Z-J),Y=(L.h+re.h)/2+p-Math.abs(H-M);if(G<=0||Y<=0)continue;const $=(Fe,Je)=>!Fe.anchored&&!(Je<0&&Fe.x<=0),Q=(Fe,Je)=>!Fe.anchored&&!(Je<0&&Fe.y<=0),ne=(Fe,Je,Xe)=>{const Mt=Fe===Je,ut=Mt?L.sid<re.sid?-1:1:Math.sign(Fe-Je);return Xe(L,ut)||Xe(re,-ut)?ut:Mt&&(Xe(L,-ut)||Xe(re,ut))?-ut:0},oe=ne(Z,J,$),fe=ne(H,M,Q),te=oe!==0,ce=fe!==0;if(!te&&!ce)continue;const Ce=te&&(!ce||G*m<Y),[ve,je,ye,ke]=Ce?[oe,G,D,$]:[fe,Y,V,Q],Ye=ke(L,ve),we=ke(re,-ve),_e=L.mass,Be=re.mass,it=Ye?we?Be/(_e+Be):1:0,pt=we?Ye?_e/(_e+Be):1:0,Ze=je*w;ye.set(L.sid,(ye.get(L.sid)??0)+ve*Ze*it),ye.set(re.sid,(ye.get(re.sid)??0)-ve*Ze*pt),B+=Ze}for(const C of k)C.anchored||(C.x=Math.max(0,C.x+(D.get(C.sid)??0)),C.y=Math.max(0,C.y+(V.get(C.sid)??0)));if(B<N)break}const z=[];for(const P of k){const D=P.x-A.get(P.sid),V=P.y-U.get(P.sid);if(!(Math.abs(D)<1&&Math.abs(V)<1)){for(const B of P.members){if(r.has(B))continue;const C=n.get(B);C&&n.set(B,{x:C.x+D,y:C.y+V})}z.push(P.sid)}}return z}const Z4=600;function Iv(e,n){return!(e.exitAt!=null&&n-e.exitAt>Z4||e.kind==="root"&&e.state==="done"&&e.tools.length===0&&e.endedAt!=null&&e.endedAt-e.startedAt<3e3)}function J4(e,n){const r=new Set;for(const i of e.agents.values())Iv(i,n)&&r.add(i.id);return r}function e5(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 t5(e,n,r=0){if(!e)return!1;for(const i of n)if(e5(e,i,r))return!0;return!1}const MR="sessionGroup";function n5(e,n){var i;if(e.type===MR)return"transparent";const r=(i=e.data)==null?void 0:i.state;return n(r==="err"?"--err":r==="active"?"--inflight":"--ok")}const r5="Update checks are off (AGENTS_DECK_NO_UPDATE_CHECK=1).";function s5(e){if(e.checkDisabled)return r5;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 i5(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 o5(e){const n=e.kind==="restart"?`v${e.to} is installed and waiting for a restart`:`v${e.to} is available on npm`;return`Version v${e.from}, ${n} — ${e.open?"hide":"show"} the notice`}function a5(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."}}const Mv={kind:"assumed",claude:!0,codex:!0};function l5(e){if(!e||typeof e!="object")return Mv;const n=e.providers;if(!n||typeof n!="object")return Mv;const r=n;return{kind:"reported",claude:r.claude!==!1,codex:r.codex!==!1}}function OR(e){const n=Math.max(0,Math.floor(e));return`${n} event${n===1?"":"s"}`}function u5(e){return e.connected?e.paused?{tone:"paused",label:"paused",title:e.held>0?`Connected — ${OR(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 c5(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:`${OR(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 PR(e,n){return e!==""&&n>0}function d5(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:PR(e,n)}}const f5="Search agents, tools, model…";function LR(e,n){var i,o,l,u;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)||e.model&&(e.model.toLowerCase().includes(r)||Ns(e.model).toLowerCase().includes(r))||(u=e.provider)!=null&&u.toLowerCase().startsWith(r))return!0;for(const c of e.tools)if(c.name.toLowerCase().includes(r))return!0;return!1}function Ov(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 h5(e,n){return e.getFullYear()===n.getFullYear()&&e.getMonth()===n.getMonth()&&e.getDate()===n.getDate()}function p5(e,n,r){const i=new Date(e),o=Ov(n-e);return{label:h5(i,new Date(n))?o:`${o} · ${i.toLocaleDateString(r,{month:"short",day:"numeric"})}`,title:i.toLocaleString(r,{dateStyle:"medium",timeStyle:"medium"})}}function aa(e){return typeof window>"u"?"":getComputedStyle(document.documentElement).getPropertyValue(e).trim()||""}const m5={agent:KP,sessionGroup:uL},$R="react-flow__node";function IE(e){var n,r;return!!e&&((r=(n=e.classList)==null?void 0:n.contains)==null?void 0:r.call(n,$R))===!0}function g5(e){try{const n=document.querySelector(`.${$R}[data-id="${CSS.escape(e)}"]`);n==null||n.focus({preventScroll:!0})}catch{}}const v5=420,au=18,y5=9e4,w5=200,x5=5*6e4,_5=6,b5=2*6e4,Sy="agent-dag.layout",ky="agent-dag.viewport",qR="agent-dag.summariesDismissed",DR="agent-dag.sessionListOpen",FR="agent-dag.detailOpen",zR="agent-dag.usagePanelOpen",ME="agent-dag.accountsPanelOpen",OE="agent-dag.versionNoticeDismissed",PE="agent-dag.oldNameNoticeDismissed",S5=15*6e4,LE={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:"},$E="agent-dag.autoRestart",qE="agent-dag.bundleReloadedFor";function k5(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(DR)==="1"}catch{return!1}}function E5(e){if(!(typeof window>"u"))try{window.localStorage.setItem(DR,e?"1":"0")}catch{}}function N5(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(FR)==="1"}catch{return!1}}function C5(e){if(!(typeof window>"u"))try{window.localStorage.setItem(FR,e?"1":"0")}catch{}}function R5(){const e=AC(zR);return e===null?!0:e==="1"}function T5(e){if(!(typeof window>"u"))try{window.localStorage.setItem(zR,e?"1":"0")}catch{}}function j5(){if(typeof window>"u")return new Set;try{const e=window.localStorage.getItem(qR);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 DE(e){if(!(typeof window>"u"))try{const n=Array.from(e),r=n.length>200?n.slice(-200):n;window.localStorage.setItem(qR,JSON.stringify(r))}catch{}}function A5(){const e={positions:[],pins:[]};if(typeof window>"u")return e;try{const n=window.localStorage.getItem(Sy);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 cv(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(Sy,JSON.stringify({v:2,positions:r,pins:Array.from(n.keys())}))}catch{}}function I5(){if(typeof window>"u")return null;try{const e=window.localStorage.getItem(ky);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 M5(e){if(!(typeof window>"u"))try{window.localStorage.setItem(ky,JSON.stringify(e))}catch{}}function FE(){if(!(typeof window>"u")){try{window.localStorage.removeItem(Sy)}catch{}try{window.localStorage.removeItem(ky)}catch{}}}function O5(e,n){const r=e.agents.get(n);if(!r)return;const i=[];for(const d of e.agents.values())d.sessionId===n&&i.push(d);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(d=>({id:d.id,kind:d.kind,label:d.label,parentId:d.parentId,state:d.state,startedAt:d.startedAt,endedAt:d.endedAt,model:d.model,cwd:d.cwd,usage:d.usage,prompts:d.prompts,tools:d.tools.map(m=>({id:m.id,name:m.name,inputPreview:m.inputPreview,startedAt:m.startedAt,endedAt:m.endedAt,ok:m.ok,errorPreview:m.errorPreview,usage:m.usage}))}))},l=JSON.stringify(o,null,2),u=new Blob([l],{type:"application/json"}),c=URL.createObjectURL(u),h=document.createElement("a"),p=(r.label||"session").replace(/[^a-z0-9._-]/gi,"_");h.href=c,h.download=`${en}-${p}-${n.slice(0,8)}.json`,document.body.appendChild(h),h.click(),document.body.removeChild(h),setTimeout(()=>URL.revokeObjectURL(c),1e3)}const Pv={file:"📁",shell:"⚡",web:"🌐",agent:"🤖",task:"📋",plan:"🧭",mcp:"🔌",other:"✨"},Lv={file:"file",shell:"shell",web:"web",agent:"agent",task:"task",plan:"plan",mcp:"mcp",other:"other"},BR=bC;function P5(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 L5(e,n,r,i,o,l,u,c,h,p,d,m,y,w,N,_,b,S,k){const E=[],R=[],I=new Set;if(l)for(const B of e.agents.values())S.has(B.id)&&LR(B,l)&&I.add(B.id);const O=PR(l,I.size);for(const B of e.agents.values()){if(!S.has(B.id))continue;const C=O&&!I.has(B.id),q=B.exitAt!=null,L=b!=null&&!b.has(B.id),re=[C?"rf-dim":"",q?"rf-exiting":"",L?"rf-spotlit-out":""].filter(Boolean).join(" ")||void 0,Z=u.get(B.id);if(E.push({id:B.id,type:"agent",position:{x:0,y:0},data:{...B,now:n,onOpenContext:k},className:re,...Z?{width:Z.width,height:Z.height}:null}),B.parentId&&S.has(B.parentId)){const H=ty(B.sessionId),J=l&&!I.has(B.id)&&!I.has(B.parentId),M=q,G=_.size>0&&(_.has(B.id)||_.has(B.parentId)),Y=b!=null&&!b.has(B.id)&&!b.has(B.parentId),$=B.state==="active"?2:1.5,Q=G?$+1.5:$,ne=J||M?.2:Y?.12:1,oe=["sess-edge",B.state==="active"?"sess-live":"sess-idle",M?"rf-edge-exiting":"",G?"rf-edge-selected":""].filter(Boolean).join(" ");R.push({id:`e:${B.parentId}->${B.id}`,source:B.parentId,target:B.id,animated:(B.state==="active"||G)&&!J&&!M,type:"smoothstep",style:{"--session-hue":H,strokeWidth:Q,opacity:ne,transition:"var(--edge-transition)"},className:oe})}}const A=new Map;for(const B of e.agents.values())B.tools.length>0&&A.set(B.id,Math.min(4,B.tools.length));const U=`${w}#lanes:${V4(A)}`,z=E.filter(B=>r$(B.id,o,m,y));if(z.length>0||U!==N.current){if(z.length>0){const B=Y4(E,R,{direction:"LR",pinned:o,measured:u,availableWidth:r,availableHeight:i,lanes:A});for(const C of B)jC(C.id,m,y)&&i$(C.id,C.position,m,y);X4(E,m,o,u,new Set(z.map(C=>C.id)),A)}K4(E,m,o,u,A),N.current=U}const P=Q4(E,m,o,u,c,!p||d,A);P.length>0&&h(P),ru(m,e.agents),ru(y,e.agents),ru(o,e.agents),ru(u,n$(e.agents.values()));const D=[];let V=!1;for(const B of E){let C=o.get(B.id)??m.get(B.id);C||(C=s$(B.id,m,y),V=!0),D.push({...B,position:C})}return V&&(N.current=""),{nodes:D,edges:R}}function $5(){return g.jsx(ey,{children:g.jsx(q5,{})})}function q5(){var Wa,Va,Ga,Ya;const e=Ra(),n=j.useRef(Cv()),[,r]=j.useState(0),i=j.useCallback(()=>r(W=>W+1),[]),[o,l]=j.useState(()=>new Set),[u,c]=j.useState(null),[h,p]=j.useState(null),d=j.useCallback((W,K)=>{l(le=>{if(!K)return new Set([W]);const de=new Set(le);return de.has(W)?de.delete(W):de.add(W),de}),c(le=>K&&le===W?le:W)},[]),m=j.useCallback(()=>{l(new Set),c(null)},[]),[y,w]=j.useState(null),[N,_]=j.useState(null),b=j.useCallback(W=>_(W),[]),[S,k]=j.useState(!1),E=j.useRef(j5()),[R,I]=j.useState(k5);j.useEffect(()=>{E5(R)},[R]);const[O,A]=j.useState(N5);j.useEffect(()=>{C5(O)},[O]);const[U,z]=j.useState(R5);j.useEffect(()=>{T5(U)},[U]);const[P,D]=j.useState(()=>{try{const W=window.localStorage.getItem(ME);return W===null?!0:W==="1"}catch{return!0}});j.useEffect(()=>{try{window.localStorage.setItem(ME,P?"1":"0")}catch{}},[P]);const[V,B]=j.useState(null),[C,q]=j.useState(!1),[L,re]=j.useState(0),[Z,H]=j.useState(0);j.useEffect(()=>{fetch("/api/sound-hook").then(W=>W.ok?W.json():null).then(W=>{W!=null&&W.ok&&(B(W.enabled===!0),re((W.foreign??[]).filter(K=>K.worksHere).length),H(typeof W.parked=="number"?W.parked:0))}).catch(()=>{})},[]);const J=j.useCallback(async()=>{q(!0);try{const K=await(await fetch("/api/sound-hook",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:!V})})).json().catch(()=>null);K!=null&&K.ok&&B(K.enabled===!0),fetch("/api/sound-hook").then(le=>le.ok?le.json():null).then(le=>{le!=null&&le.ok&&(re((le.foreign??[]).filter(de=>de.worksHere).length),H(typeof le.parked=="number"?le.parked:0))}).catch(()=>{})}catch{}finally{q(!1)}},[V]),[M,G]=j.useState(!1),[Y,$]=j.useState(null),[Q,ne]=j.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem(OE)??""}catch{return""}}),[oe,fe]=j.useState(!1),te=j.useRef(0),[ce,Ce]=j.useState(!1),ve=j.useCallback((W=!1)=>{W&&(te.current=Date.now(),Ce(!0)),fetch(W?"/api/version?refresh=1":"/api/version").then(K=>K.ok?K.json():null).then(K=>{K&&$(K)}).catch(()=>{}).finally(()=>{W&&Ce(!1)})},[]),je=j.useCallback(()=>{ve(Date.now()-te.current>=S5)},[ve]);j.useEffect(()=>{ve();const W=window.setInterval(je,5*6e4),K=()=>{document.visibilityState==="visible"&&je()};return document.addEventListener("visibilitychange",K),()=>{window.clearInterval(W),document.removeEventListener("visibilitychange",K)}},[ve,je]),j.useEffect(()=>{M&&ve()},[M,ve]);const ye=(Y==null?void 0:Y.notice)??null,[ke,Ye]=j.useState(null),[we,_e]=j.useState(Mv);j.useEffect(()=>{let W=!1;return fetch("/api/health").then(K=>K.ok?K.json():null).then(K=>{W||(_e(l5(K)),!(!K||typeof K.workspace!="string")&&Ye(K.workspace))}).catch(()=>{}),()=>{W=!0}},[M]);const Be=j.useRef(we);Be.current=we;const it=ye?`${ye.kind}:${ye.to}`:"",pt=ye!=null&&Q!==it,Ze=j.useCallback(()=>{if(!ye)return;const W=Q===it?"":it;ne(W);try{window.localStorage.setItem(OE,W)}catch{}},[ye,it,Q]),[Fe,Je]=j.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem(PE)??""}catch{return""}}),Xe=Y!=null&&Y.invokedAs&&Y.invokedAs!==en?Y.invokedAs:null,Mt=Xe!=null&&Fe!==Xe,ut=j.useCallback(()=>{if(Xe){Je(Xe);try{window.localStorage.setItem(PE,Xe)}catch{}}},[Xe]),Qe=((Wa=Y==null?void 0:Y.upgrade)==null?void 0:Wa.state)??"idle",Ot=W3(Y==null?void 0:Y.upgrade),Ft=j.useCallback(async()=>{try{await fetch("/api/upgrade",{method:"POST"})}catch{}ve()},[ve]);j.useEffect(()=>{if(Qe!=="running")return;const W=window.setInterval(ve,3e3);return()=>window.clearInterval(W)},[Qe,ve]);const et=j.useCallback(async()=>{var le;const W=Y==null?void 0:Y.command;if(!W)return;let K=!1;try{K=await Promise.race([((le=navigator.clipboard)==null?void 0:le.writeText(W).then(()=>!0))??Promise.resolve(!1),new Promise(de=>window.setTimeout(()=>de(!1),500))])}catch{K=!1}if(!K)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(),K=document.execCommand("copy"),de.remove()}catch{K=!1}K&&(fe(!0),window.setTimeout(()=>fe(!1),1600))},[Y==null?void 0:Y.command]),St=j.useCallback(()=>{I(W=>(W||D(!1),!W))},[]),mt=j.useCallback(()=>{D(W=>(W||I(!1),!W))},[]),[wt,hn]=j.useState(!1),[Yt,Pt]=j.useState(0),Sn=j.useRef(null),[gr,kn]=j.useState(!1),zt=j.useRef(null),[Fn,pn]=j.useState(0),vr=j.useRef(u$()),[Wr,gi]=j.useState(!1),Vr=j.useCallback(()=>{const W=vr.current,K=W.setPaused(!W.paused);for(const le of K)n.current=qx(n.current,le);gi(W.paused)},[]),[ct,vi]=j.useState(Date.now()),[mn,Rs]=j.useState(()=>{if(typeof window>"u")return!0;try{return window.localStorage.getItem($E)!=="0"}catch{return!0}}),yr=j.useCallback(()=>{Rs(W=>{const K=!W;try{window.localStorage.setItem($E,K?"1":"0")}catch{}return K})},[]),[zn,En]=j.useState(!1),[Gr,Yr]=j.useState("restart"),[Kr,yi]=j.useState(null),ir=j.useRef(!1),Ts=j.useRef(null),Nn=j.useRef(0),wr=j.useCallback(async W=>{if(ir.current)return;const K=(W==null?void 0:W.upgrade)===!0;ir.current=!0,Ts.current=Ot;const le=++Nn.current;Yr(K?"npx":"restart"),En(!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:K})})}catch{}window.setTimeout(()=>{if(Nn.current===le&&ir.current){ir.current=!1,En(!1);try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}}},K?18e4:3e4)},[ye==null?void 0:ye.to,Ot]),js=j.useRef(null);j.useEffect(()=>{let W=!1;for(const le of n.current.agents.values())if(le.state==="active"){W=!0;break}const K=G3({enabled:mn,kind:ye==null?void 0:ye.kind,canRestart:(Y==null?void 0:Y.canRestart)===!0,busy:W,idleSince:js.current,now:ct});js.current=K.idleSince,K.restart&&wr()},[mn,ye==null?void 0:ye.kind,Y==null?void 0:Y.canRestart,ct,wr]),j.useEffect(()=>{const W=Y==null?void 0:Y.running;let K=null,le=null;try{K=window.sessionStorage.getItem("agent-dag.restartPending"),le=window.sessionStorage.getItem(qE)}catch{return}const de=H3({bundle:"1.35.12",running:W,pending:K,lastTried:le});if(de==="reload"){try{window.sessionStorage.setItem(qE,W??"")}catch{return}window.location.reload();return}if(de!=="confirm")return;try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}ir.current=!1,En(!1),yi(W??null);const xe=window.setTimeout(()=>yi(null),6e3);return()=>window.clearTimeout(xe)},[Y==null?void 0:Y.running]),j.useEffect(()=>{if(zn&&V3({asked:Ts.current,reported:Ot})){try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}ir.current=!1,En(!1)}},[zn,Ot]);const As=j.useRef(A5()).current;j.useRef(!1);const Tt=j.useRef(new Map(As.positions.filter(([W])=>As.pins.includes(W)))),xr=j.useRef(null),_r=j.useState(()=>I5())[0],[Kt,Xr]=j.useState(""),[wi,nt]=j.useState(()=>new Set),[br,Qr]=j.useState(p$),[Is,Zr]=j.useState(!1),Jr=j.useRef(null);j.useEffect(()=>{document.documentElement.dataset.theme=br;try{window.localStorage.setItem(IC,br)}catch{}},[br]),j.useEffect(()=>{if(!_r)return;const W=window.setTimeout(()=>{try{e.setViewport(_r,{duration:0})}catch{}},60);return()=>window.clearTimeout(W)},[e,_r]);const Ms=j.useRef(!0);j.useEffect(()=>{const W=new EventSource("/events"),K=l$(i,{now:()=>Date.now(),setTimeout:(le,de)=>window.setTimeout(le,de),clearTimeout:le=>window.clearTimeout(le)});return W.addEventListener("open",()=>{G(!0),Zr(!0)}),W.addEventListener("error",()=>G(!1)),W.addEventListener("replay-end",()=>{Ms.current=!1,K.flush()}),W.addEventListener("hook",le=>{try{const de=JSON.parse(le.data);if(!vr.current.accept(de))return;n.current=qx(n.current,de),de.replay===!0||Ms.current||Date.now()-de.receivedAt>3e4?K.replay():K.live()}catch{}}),()=>{W.close(),K.cancel()}},[i]),j.useEffect(()=>{const W=setInterval(()=>{const K=Date.now();vi(K);let le=hP(n.current,K,y5);mP(n.current,K,pP)&&(le=!0),dP(n.current,K,w5,x5)&&(le=!0),fP(n.current,K,_5,b5)&&(le=!0),le&&i()},250);return()=>clearInterval(W)},[i]);const or=j.useRef(null),kt=j.useRef(0),Os=420,gt=j.useCallback((W=500)=>{try{const Ee=document.querySelector(".canvas-wrap"),Oe=Array.from(document.querySelectorAll(".react-flow__node")).filter(ot=>ot.offsetWidth>0);if(!Ee||Oe.length===0)return;const ze=Ee.getBoundingClientRect(),Ge=e.getViewport();if(!Number.isFinite(Ge.zoom)||Ge.zoom<=0)return;const Ve=ot=>(ot-ze.left-Ge.x)/Ge.zoom,qe=ot=>(ot-ze.top-Ge.y)/Ge.zoom,Rn=Oe.map(ot=>ot.getBoundingClientRect()),Hs=Math.min(...Rn.map(ot=>Ve(ot.left))),jo=Math.max(...Rn.map(ot=>Ve(ot.right))),Ws=Math.min(...Rn.map(ot=>qe(ot.top))),Ao=Math.max(...Rn.map(ot=>qe(ot.bottom))),Ka=jo-Hs,Ci=Ao-Ws;if(!(Ka>0&&Ci>0))return;const yn=Math.max(.2,Math.min(1,(ze.width-160)/(Ka+Os)*.86,(ze.height-160)/Ci*.86));e.setViewport({x:80-Hs*yn,y:Math.max(80,(ze.height-Ci*yn)/2)-Ws*yn,zoom:yn},{duration:W}),kt.current=Date.now(),window.setTimeout(()=>{try{const ot={x:80-Hs*yn,y:Math.max(80,(ze.height-Ci*yn)/2)-Ws*yn,zoom:yn},Xa=e.getViewport();(Math.abs(Xa.zoom-yn)>.01||Math.abs(Xa.x-ot.x)>2)&&e.setViewport(ot,{duration:0})}catch{}},W+60)}catch{}},[e]),_o=j.useRef(""),bo=j.useRef(null),La=j.useRef(0),Sr=j.useCallback(()=>{La.current=Date.now()},[]),es="agent-dag.autoFitDisabled",gn=j.useRef((()=>{if(typeof window>"u")return!1;try{return window.localStorage.getItem(es)==="1"}catch{return!1}})()),[Ps,$a]=j.useState(gn.current),qa=j.useCallback(()=>{if(!gn.current){gn.current=!0,$a(!0);try{window.localStorage.setItem(es,"1")}catch{}}},[]),So=j.useCallback(()=>{gn.current=!1,$a(!1);try{window.localStorage.removeItem(es)}catch{}gt(400)},[e,gt]);j.useEffect(()=>{const W=setInterval(()=>{if(gn.current||Date.now()-La.current<800)return;const K=n.current,le=Date.now(),de=[];for(const Ve of K.agents.values())Iv(Ve,le)&&de.push({id:Ve.id});if(de.length===0)return;const xe=e.getViewport(),Ee=window.innerWidth-360,Oe=window.innerHeight-52;let ze=!1,Ge=!1;for(const{id:Ve}of de){const qe=ar.current.get(Ve),Rn=Tt.current.get(Ve)??Xt.current.get(Ve);if(!qe||!Rn)continue;Ge=!0;const Hs=Rn.x*xe.zoom+xe.x,jo=Rn.y*xe.zoom+xe.y,Ws=(Rn.x+qe.width)*xe.zoom+xe.x,Ao=(Rn.y+qe.height)*xe.zoom+xe.y;if(Ws>0&&Hs<Ee&&Ao>0&&jo<Oe){ze=!0;break}}Ge&&!ze&&gt(600)},1500);return()=>clearInterval(W)},[e]);const xi=j.useRef(!1),ar=j.useRef(new Map),ts=j.useRef(0),ec=j.useCallback(W=>{const K=ar.current;let le=!1;for(const de of W.nodeInternals.values()){const xe=de.width,Ee=de.height;if(xe==null||Ee==null)continue;const Oe=K.get(de.id);Oe?(Math.abs(Oe.height-Ee)>4||Math.abs(Oe.width-xe)>4)&&(K.set(de.id,{width:xe,height:Ee}),le=!0):(K.set(de.id,{width:xe,height:Ee}),le=!0)}return le&&(ts.current+=1),ts.current},[]),_i=Ke(ec),[He,Da]=j.useState(0);j.useEffect(()=>{let W=0;const K=()=>{const de=ar.current;let xe=!1;for(const Ee of document.querySelectorAll(".react-flow__node[data-id]")){const Oe=Ee.getAttribute("data-id");if(!Oe)continue;const ze=Ee.offsetWidth,Ge=Ee.offsetHeight;if(!ze||!Ge)continue;const Ve=de.get(Oe);(!Ve||Math.abs(Ve.width-ze)>4||Math.abs(Ve.height-Ge)>4)&&(de.set(Oe,{width:ze,height:Ge}),xe=!0)}xe&&Da(Ee=>Ee+1)};if(xi.current)return;let le=0;return document.visibilityState==="hidden"?le=window.setTimeout(K,32):W=requestAnimationFrame(K),()=>{cancelAnimationFrame(W),window.clearTimeout(le)}});const Xt=j.useRef(new Map(As.positions)),ko=j.useRef(new Set),bi=j.useRef(""),kr=j.useMemo(()=>{const W=[];for(const K of n.current.agents.values())Iv(K,ct)&&W.push(K.id+(K.parentId?`>${K.parentId}`:""));return W.sort(),`${W.join("|")}#sv${_i}.${He}`},[n.current,n.current.lastSeq,ct,_i,He]),ns=j.useRef(null);j.useEffect(()=>(ns.current!=null&&window.clearTimeout(ns.current),ns.current=window.setTimeout(()=>{cv(Xt.current,Tt.current)},1500),()=>{ns.current!=null&&window.clearTimeout(ns.current)}),[kr]),j.useEffect(()=>{if(_o.current===kr)return;const W=_o.current;if(_o.current=kr,!W||gn.current)return;Date.now()-kt.current>1200&&gt(400),or.current&&window.clearTimeout(or.current),or.current=window.setTimeout(()=>{gn.current||gt(500)},280)},[kr,e,gt]);const Ls=j.useMemo(()=>{if(o.size===0)return null;const W=new Set;for(const K of o){const le=P5(n.current,K);if(le)for(const de of le)W.add(de)}return W.size>0?W:null},[n.current,n.current.lastSeq,o]),Cn=j.useMemo(()=>J4(n.current,ct),[n.current,n.current.lastSeq,ct]),Bn=j.useRef(null),[vn,Un]=j.useState({w:0,h:0});j.useEffect(()=>{const W=Bn.current;if(!W||typeof ResizeObserver>"u")return;const K=new ResizeObserver(le=>{var xe;const de=(xe=le[0])==null?void 0:xe.contentRect;de&&Un(Ee=>Math.abs(Ee.w-de.width)>40||Math.abs(Ee.h-de.height)>40?{w:de.width,h:de.height}:Ee)});return K.observe(W),Un({w:W.clientWidth,h:W.clientHeight}),()=>K.disconnect()},[]);const $s=j.useRef(new Map),[rs,lr]=j.useState(!1);j.useEffect(()=>{const W=window.setTimeout(()=>lr(!0),2500);return()=>window.clearTimeout(W)},[]);const[tc,Si]=j.useState(!1),tn=j.useRef(null),[Eo,No]=j.useState(!1),ki=j.useCallback(()=>{tn.current&&(window.clearTimeout(tn.current),tn.current=null),Si(!1)},[]),Fa=j.useCallback(W=>{W.length!==0&&queueMicrotask(()=>{Si(!0),tn.current&&window.clearTimeout(tn.current),tn.current=window.setTimeout(()=>Si(!1),v5+80)})},[]);j.useEffect(()=>()=>{tn.current&&window.clearTimeout(tn.current)},[]);const za=vn.w>0?vn.w*.92:0,ss=vn.h>0?vn.h:0,{nodes:nn,edges:is}=j.useMemo(()=>L5(n.current,ct,za,ss,Tt.current,Kt,ar.current,$s.current,Fa,rs,Eo,Xt.current,ko.current,kr,bi,o,Ls,Cn,b),[n.current,n.current.lastSeq,ct,za,ss,rs,Eo,Kt,kr,o,Ls,Cn,b,Yt]),qs=j.useMemo(()=>{const W=new Map;for(const le of nn){const de=le.data;if(!(de!=null&&de.sessionId)||de.exitAt!=null)continue;const xe=le.width,Ee=le.height;if(xe==null||Ee==null)continue;const Oe=le.position.x,ze=le.position.y,Ge=Oe+xe,Ve=ze+Ee,qe=W.get(de.sessionId);qe?(qe.minX=Math.min(qe.minX,Oe),qe.minY=Math.min(qe.minY,ze),qe.maxX=Math.max(qe.maxX,Ge),qe.maxY=Math.max(qe.maxY,Ve)):W.set(de.sessionId,{minX:Oe,minY:ze,maxX:Ge,maxY:Ve})}const K=[];for(const[le,de]of W){const xe=de.maxX-de.minX+au*2,Ee=de.maxY-de.minY+au*2;K.push({id:`group:${le}`,type:MR,position:{x:de.minX-au,y:de.minY-au},data:{sessionId:le,w:xe,h:Ee},width:xe,height:Ee,style:{width:xe,height:Ee},zIndex:-1,draggable:!0,selectable:!1,focusable:!1,deletable:!1,connectable:!1})}return K},[nn,ct]),nc=j.useMemo(()=>{const W=[...qs,...nn],K=zt.current;return!K||K.size===0?W:W.map(le=>{const de=K.get(le.id);return de?{...le,position:de}:le})},[qs,nn,Fn]),Ds=j.useMemo(()=>{if(!Kt)return null;const W=new Set;for(const K of n.current.agents.values())Cn.has(K.id)&&LR(K,Kt)&&W.add(K.id);return W},[n.current,n.current.lastSeq,Kt,Cn]),Hn=j.useMemo(()=>d5(Kt,(Ds==null?void 0:Ds.size)??0,Cn.size),[Kt,Ds,Cn]),Er=j.useMemo(()=>{const W=new Set;for(const K of n.current.agents.values())for(const le of K.tools)W.add(BR(le.name));return Object.keys(Pv).filter(K=>W.has(K))},[n.current,n.current.lastSeq]);j.useEffect(()=>{if(Er.length<=1){kn(!1);return}let W=0;const K=()=>{const le=Sn.current;if(le&&!document.hidden){const de=le.getBoundingClientRect(),xe=Array.from(document.querySelectorAll(".react-flow__node, .tool-burst")).map(Oe=>Oe.getBoundingClientRect()),Ee=t5(de,xe,8);kn(Oe=>Oe===Ee?Oe:Ee)}W=window.setTimeout(K,300)};return K(),()=>window.clearTimeout(W)},[Er.length]);const Nr=j.useMemo(()=>{const W=new Map;for(const le of n.current.agents.values())for(const de of le.tools){if(!de.name.startsWith("mcp__"))continue;const xe=de.name.slice(5),Ee=xe.indexOf("__"),Oe=Ee>0?xe.slice(0,Ee):xe;W.set(Oe,(W.get(Oe)??0)+1)}const K=[];for(const[le,de]of W){let xe=5381;for(let Ee=0;Ee<le.length;Ee++)xe=(xe<<5)+xe^le.charCodeAt(Ee);K.push({server:le,count:de,hue:Math.abs(xe)%360})}return K.sort((le,de)=>de.count-le.count),K},[n.current,n.current.lastSeq]),Ba=j.useCallback(W=>{nt(K=>{const le=new Set(K);return le.has(W)?le.delete(W):le.add(W),le})},[]),dt=u?n.current.agents.get(u):null,Fs=h?Array.from(n.current.agents.values()).flatMap(W=>W.tools).find(W=>W.id===h)??null:null,zs=j.useCallback(async()=>{try{await fetch("/api/clear",{method:"POST"})}catch{}n.current=Cv(),Tt.current.clear(),ar.current.clear(),Xt.current.clear(),bi.current="",FE(),m(),i()},[i,m]),Co=j.useRef(S);Co.current=S;const Bs=j.useRef(!1);Bs.current=Fs!=null||wt||N!=null||y!=null;const Cr=j.useCallback(W=>{const K=K3(W,{confirmOpen:Co.current,modalOpen:Bs.current});K==="confirm"?k(!0):K==="clear"&&(k(!1),zs())},[zs]),Ei=j.useCallback(()=>{Tt.current.clear(),Xt.current.clear(),bi.current="",FE(),i(),window.setTimeout(()=>gt(500),80)},[i,e,gt]),Bt=j.useCallback(()=>gt(500),[gt]),Wn=j.useRef(nn);Wn.current=nn;const Ni=j.useRef(u);Ni.current=u;const Rr=j.useCallback(W=>{const K=Wn.current,le=Q3(K.map(Ee=>({id:Ee.id,x:Ee.position.x,y:Ee.position.y})),Ni.current,W),de=le?K.find(Ee=>Ee.id===le):void 0;if(!de)return;const xe=IE(document.activeElement);d(de.id,!1),window.setTimeout(()=>{try{e.fitView({padding:.35,duration:350,nodes:[de]})}catch{}kt.current=Date.now(),xe&&g5(de.id)},30)},[d,e]),Ua=j.useCallback(W=>{d(W,!1),window.setTimeout(()=>{try{const K=Wn.current.find(le=>le.id===W);K&&e.fitView({padding:.3,duration:500,nodes:[K]}),kt.current=Date.now()}catch{}},60)},[d,e]);j.useEffect(()=>{const W=K=>{var ze,Ge,Ve;const le=K.target,de={tagName:le==null?void 0:le.tagName,isContentEditable:le==null?void 0:le.isContentEditable,role:(ze=le==null?void 0:le.getAttribute)==null?void 0:ze.call(le,"role"),type:le==null?void 0:le.type};if(K.key==="Escape"){const qe=OP({overlayOpen:Eu.depth()>0,typing:ny(de)});qe==="dismiss"?Eu.dismissTop():qe==="blur"?le==null||le.blur():(t$(de)&&(le==null||le.blur()),m());return}if(wC(K))return;const xe=IE(le)?(Ge=le==null?void 0:le.getAttribute)==null?void 0:Ge.call(le,"data-id"):null,Ee=xe&&Wn.current.some(qe=>qe.id===xe)?xe:null,Oe=J3(K,Ee);if(Oe.kind==="activate"){K.preventDefault(),d(Oe.nodeId,Oe.additive);return}if(Oe.kind!=="node"&&!(Oe.nodeId==null&&BP(de))){if(K.key==="/"){K.preventDefault(),(Ve=Jr.current)==null||Ve.focus();return}K.key===" "&&(K.preventDefault(),Vr()),(K.key==="c"||K.key==="C")&&Cr("shortcut"),(K.key==="r"||K.key==="R")&&Ei(),(K.key==="f"||K.key==="F")&&Bt(),(K.key==="l"||K.key==="L")&&St(),(K.key==="h"||K.key==="H")&&hn(qe=>!qe),(K.key==="u"||K.key==="U")&&z(qe=>!qe),(K.key==="a"||K.key==="A")&&Be.current.claude&&mt(),(K.key==="j"||K.key==="J")&&Rr(1),(K.key==="k"||K.key==="K")&&Rr(-1),(K.key==="t"||K.key==="T")&&Qr(qe=>qe==="dark"?"light":"dark")}};return window.addEventListener("keydown",W),()=>window.removeEventListener("keydown",W)},[Cr,Ei,Bt,m,d,Rr,Vr]);const Tr=n.current.agents.size,Ro=new Set(Array.from(n.current.agents.values()).map(W=>W.sessionId)).size,Qt=j.useMemo(()=>QL(n.current.agents.values()),[n.current,n.current.lastSeq]),Us=j.useMemo(()=>ZL(n.current.agents.values()),[n.current,n.current.lastSeq]),To=j.useRef(null);j.useEffect(()=>{const W=m$({waiting:Qt.length,running:Us}),K=To.current;if(To.current=W,(K==null?void 0:K.title)!==W.title&&(document.title=W.title),(K==null?void 0:K.icon)!==W.icon){const le=document.querySelector('link[rel="icon"]');le&&(le.href=g$[W.icon])}},[Qt.length,Us]);const[rc,sc]=j.useState(""),Ha=y$(Qt);j.useEffect(()=>{sc(W=>w$(W,Ha))},[Ha]);const Ut=j.useMemo(()=>{let W=0,K=0,le=0,de=0,xe=0,Ee=0,Oe=0,ze=0,Ge=0;for(const Ve of n.current.agents.values()){W+=Ve.usage.inputTokens,K+=Ve.usage.outputTokens,le+=Ve.usage.cacheReadTokens,de+=Ve.usage.cacheCreateTokens;const qe=dn(Ve.usage,Ve.model);xe+=qe.total,Ee+=qe.input,Oe+=qe.output,ze+=qe.cacheRead,Ge+=qe.cacheWrite}return{inT:W,outT:K,cacheR:le,cacheC:de,sum:W+K,cost:{total:xe,input:Ee,output:Oe,cacheRead:ze,cacheWrite:Ge}}},[n.current,n.current.lastSeq]);return g.jsxs("div",{className:"app",children:[g.jsx("a",{className:"skip-link",href:"#canvas",children:"Skip to the canvas"}),g.jsxs("header",{className:"topbar",children:[g.jsxs("div",{className:"brand",children:[g.jsx("span",{className:"logo"}),g.jsx("h1",{children:en}),ye?g.jsxs("button",{type:"button",className:"v stale",onClick:Ze,"aria-label":o5({...ye,open:pt}),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,g.jsx("span",{className:"v-dot","aria-hidden":!0})]}):(()=>{const W={running:(Y==null?void 0:Y.running)??"1.35.12",latest:Y==null?void 0:Y.latest,latestPending:Y==null?void 0:Y.latestPending,checkedAgo:Y!=null&&Y.checkedAt?Ov(ct-Y.checkedAt):null,checkDisabled:Y==null?void 0:Y.checkDisabled,checking:ce};return g.jsxs("button",{type:"button",className:ce?"v checking":"v",onClick:()=>ve(!0),"aria-busy":ce||void 0,"aria-label":i5(W),title:s5(W),children:["v",W.running]})})()]}),dt&&(()=>{const W=dn(dt.usage,dt.model),K=Math.max(0,((dt.endedAt??ct)-dt.startedAt)/1e3),le=dt.state==="active"?ku(W.total,K):null,de=o.size-1;return g.jsxs("button",{type:"button",className:"selected-ribbon",title:`Fit view to ${dt.label}`,onClick:()=>{try{const xe=nn.find(Ee=>Ee.id===dt.id);xe&&e.fitView({padding:.35,duration:500,nodes:[xe]}),kt.current=Date.now()}catch{}},children:[g.jsx("span",{className:`state-pill state-${dt.state}`,children:dt.state==="active"?"live":dt.state}),g.jsx("span",{className:"selected-label",children:dt.label}),W.total>0&&g.jsxs("span",{className:"selected-cost",children:[De(W.total),le?g.jsxs("span",{className:"selected-rate",children:[" · ",le]}):null]}),de>0&&g.jsxs("span",{className:"selected-extra",children:["+",de]}),g.jsx("span",{"aria-hidden":!0,className:"selected-close",onClick:xe=>{xe.stopPropagation(),m()},children:"×"})]})})(),g.jsxs("div",{className:"actions",children:[g.jsxs("div",{className:"search",children:[g.jsx("span",{className:"search-icon","aria-hidden":!0,children:"⌕"}),g.jsx("input",{ref:Jr,type:"text",placeholder:f5,value:Kt,onChange:W=>Xr(W.target.value),spellCheck:!1,"aria-label":"Filter the graph"}),Kt?g.jsx("button",{className:"search-clear","aria-label":"Clear search",onClick:()=>Xr(""),children:"×"}):g.jsx("kbd",{className:"search-kbd","aria-hidden":!0,children:"/"}),Hn.count&&g.jsx("span",{className:`search-count${Hn.empty?" none":""}`,"aria-live":"polite",title:`${Hn.count} agents on the canvas match “${Kt}”`,children:Hn.count})]}),g.jsxs("span",{className:"status",children:[(()=>{const W=u5({connected:M,paused:Wr,held:vr.current.size});return g.jsx("span",{className:`pill ${W.tone}`,title:W.title,children:W.label})})(),g.jsxs("span",{className:"stat",title:"Distinct CC sessions",children:[g.jsx("span",{className:"count",children:Ro}),g.jsx("span",{className:"lbl",children:"sessions"})]}),g.jsxs("span",{className:"stat",title:"Total agents (root + subagents)",children:[g.jsx("span",{className:"count",children:Tr}),g.jsx("span",{className:"lbl",children:"agents"})]}),g.jsxs("span",{className:"stat",title:"Total hook events received",children:[g.jsx("span",{className:"count",children:n.current.totalEvents}),g.jsx("span",{className:"lbl",children:"events"})]}),Ut.sum>0&&g.jsxs("span",{className:"stat",title:`in:${Ut.inT.toLocaleString()} out:${Ut.outT.toLocaleString()} cache-r:${Ut.cacheR.toLocaleString()} cache-c:${Ut.cacheC.toLocaleString()}`,children:[g.jsx("span",{className:"count",children:qt(Ut.sum)}),g.jsx("span",{className:"lbl",children:"tokens"})]}),Nr.length>0&&g.jsxs("span",{className:"stat mcp-legend",title:`MCP servers seen this session:
67
67
  ${Nr.map(W=>` ${W.server}: ${W.count} call${W.count===1?"":"s"}`).join(`
68
68
  `)}`,children:[Nr.slice(0,6).map(W=>g.jsx("span",{className:"mcp-dot",style:{"--mcp-hue":W.hue}},W.server)),Nr.length>6&&g.jsxs("span",{className:"mcp-more",children:["+",Nr.length-6]}),g.jsx("span",{className:"lbl",children:"mcp"})]}),Ut.cost.total>0&&(()=>{let W=0,K=0;for(const xe of n.current.agents.values()){if(xe.state!=="active")continue;const Ee=dn(xe.usage,xe.model);W+=Ee.total,K=Math.max(K,((xe.endedAt??ct)-xe.startedAt)/1e3)}const le=K>0?ku(W,K):null,de=`input ${De(Ut.cost.input)} + output ${De(Ut.cost.output)} + cache r ${De(Ut.cost.cacheRead)} + cache w ${De(Ut.cost.cacheWrite)}${le?`
69
69
  active burn: ${le}`:""}`;return g.jsxs("span",{className:"stat",title:de,children:[g.jsx("span",{className:"count",children:De(Ut.cost.total)}),g.jsxs("span",{className:"lbl",children:["cost",le?` · ${le}`:""]})]})})()]}),g.jsx("div",{className:"vis-hidden",role:"status","aria-atomic":"true",children:rc}),Qt.length>0&&g.jsxs("button",{type:"button",className:"waiting-stat",onClick:()=>Ua(Qt[0].id),title:`Blocked waiting for you — click to go to the one that has been stuck longest: