spyret 0.1.1 → 0.3.0
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.
- package/README.md +86 -23
- package/THIRD_PARTY_NOTICES.txt +28 -1
- package/dist/spyret-browser.amd.js +61 -0
- package/dist/spyret-browser.d.mts +272 -0
- package/dist/spyret-browser.d.ts +272 -0
- package/dist/spyret-browser.global.js +57 -0
- package/dist/spyret-browser.js +57 -0
- package/dist/spyret-browser.mjs +57 -0
- package/dist/spyret.d.mts +29 -1
- package/dist/spyret.d.ts +29 -1
- package/dist/spyret.global.js +12 -6
- package/dist/spyret.js +12 -6
- package/dist/spyret.mjs +12 -6
- package/dist/spyret.pyret.js +66 -0
- package/docs/BROWSER_LIBRARY.md +102 -0
- package/docs/IDE_MIGRATION.md +38 -0
- package/docs/PYRET_CAPTURE.md +4 -2
- package/docs/RELEASING.md +60 -63
- package/docs/SPYTIAL_HOOKS.md +71 -0
- package/docs/SPYTIAL_LANGUAGE.md +194 -0
- package/docs/SPYTIAL_RULES_REFERENCE.md +53 -0
- package/package.json +29 -8
- package/pyret/spytial.arr +217 -0
package/dist/spyret.mjs
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
|
-
var ol=Object.create;var Lr=Object.defineProperty;var al=Object.getOwnPropertyDescriptor;var ul=Object.getOwnPropertyNames;var cl=Object.getPrototypeOf,fl=Object.prototype.hasOwnProperty;var Vr=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var a=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var ll=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of ul(t))!fl.call(e,i)&&i!==r&&Lr(e,i,{get:()=>t[i],enumerable:!(n=al(t,i))||n.enumerable});return e};var Ur=(e,t,r)=>(r=e!=null?ol(cl(e)):{},ll(t||!e||!e.__esModule?Lr(r,"default",{value:e,enumerable:!0}):r,e));var Gr=a((uP,Br)=>{"use strict";function pl(){this.__data__=[],this.size=0}Br.exports=pl});var Ke=a((cP,zr)=>{"use strict";function dl(e,t){return e===t||e!==e&&t!==t}zr.exports=dl});var Ie=a((fP,Kr)=>{"use strict";var yl=Ke();function hl(e,t){for(var r=e.length;r--;)if(yl(e[r][0],t))return r;return-1}Kr.exports=hl});var Hr=a((lP,Jr)=>{"use strict";var gl=Ie(),ml=Array.prototype,bl=ml.splice;function wl(e){var t=this.__data__,r=gl(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():bl.call(t,r,1),--this.size,!0}Jr.exports=wl});var Yr=a((pP,Wr)=>{"use strict";var vl=Ie();function xl(e){var t=this.__data__,r=vl(t,e);return r<0?void 0:t[r][1]}Wr.exports=xl});var Xr=a((dP,Zr)=>{"use strict";var Il=Ie();function Al(e){return Il(this.__data__,e)>-1}Zr.exports=Al});var en=a((yP,Qr)=>{"use strict";var ql=Ie();function Pl(e,t){var r=this.__data__,n=ql(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}Qr.exports=Pl});var Ae=a((hP,tn)=>{"use strict";var El=Gr(),Ol=Hr(),_l=Yr(),Tl=Xr(),Sl=en();function fe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}fe.prototype.clear=El;fe.prototype.delete=Ol;fe.prototype.get=_l;fe.prototype.has=Tl;fe.prototype.set=Sl;tn.exports=fe});var nn=a((gP,rn)=>{"use strict";var jl=Ae();function kl(){this.__data__=new jl,this.size=0}rn.exports=kl});var on=a((mP,sn)=>{"use strict";function Rl(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}sn.exports=Rl});var un=a((bP,an)=>{"use strict";function Cl(e){return this.__data__.get(e)}an.exports=Cl});var fn=a((wP,cn)=>{"use strict";function Ml(e){return this.__data__.has(e)}cn.exports=Ml});var jt=a((vP,ln)=>{"use strict";var Nl=typeof global=="object"&&global&&global.Object===Object&&global;ln.exports=Nl});var L=a((xP,pn)=>{"use strict";var Dl=jt(),$l=typeof self=="object"&&self&&self.Object===Object&&self,Fl=Dl||$l||Function("return this")();pn.exports=Fl});var ie=a((IP,dn)=>{"use strict";var Ll=L(),Vl=Ll.Symbol;dn.exports=Vl});var mn=a((AP,gn)=>{"use strict";var yn=ie(),hn=Object.prototype,Ul=hn.hasOwnProperty,Bl=hn.toString,qe=yn?yn.toStringTag:void 0;function Gl(e){var t=Ul.call(e,qe),r=e[qe];try{e[qe]=void 0;var n=!0}catch{}var i=Bl.call(e);return n&&(t?e[qe]=r:delete e[qe]),i}gn.exports=Gl});var wn=a((qP,bn)=>{"use strict";var zl=Object.prototype,Kl=zl.toString;function Jl(e){return Kl.call(e)}bn.exports=Jl});var se=a((PP,In)=>{"use strict";var vn=ie(),Hl=mn(),Wl=wn(),Yl="[object Null]",Zl="[object Undefined]",xn=vn?vn.toStringTag:void 0;function Xl(e){return e==null?e===void 0?Zl:Yl:xn&&xn in Object(e)?Hl(e):Wl(e)}In.exports=Xl});var Z=a((EP,An)=>{"use strict";function Ql(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}An.exports=Ql});var Pe=a((OP,qn)=>{"use strict";var ep=se(),tp=Z(),rp="[object AsyncFunction]",np="[object Function]",ip="[object GeneratorFunction]",sp="[object Proxy]";function op(e){if(!tp(e))return!1;var t=ep(e);return t==np||t==ip||t==rp||t==sp}qn.exports=op});var En=a((_P,Pn)=>{"use strict";var ap=L(),up=ap["__core-js_shared__"];Pn.exports=up});var Tn=a((TP,_n)=>{"use strict";var kt=En(),On=(function(){var e=/[^.]+$/.exec(kt&&kt.keys&&kt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function cp(e){return!!On&&On in e}_n.exports=cp});var Rt=a((SP,Sn)=>{"use strict";var fp=Function.prototype,lp=fp.toString;function pp(e){if(e!=null){try{return lp.call(e)}catch{}try{return e+""}catch{}}return""}Sn.exports=pp});var kn=a((jP,jn)=>{"use strict";var dp=Pe(),yp=Tn(),hp=Z(),gp=Rt(),mp=/[\\^$.*+?()[\]{}|]/g,bp=/^\[object .+?Constructor\]$/,wp=Function.prototype,vp=Object.prototype,xp=wp.toString,Ip=vp.hasOwnProperty,Ap=RegExp("^"+xp.call(Ip).replace(mp,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function qp(e){if(!hp(e)||yp(e))return!1;var t=dp(e)?Ap:bp;return t.test(gp(e))}jn.exports=qp});var Cn=a((kP,Rn)=>{"use strict";function Pp(e,t){return e?.[t]}Rn.exports=Pp});var X=a((RP,Mn)=>{"use strict";var Ep=kn(),Op=Cn();function _p(e,t){var r=Op(e,t);return Ep(r)?r:void 0}Mn.exports=_p});var Je=a((CP,Nn)=>{"use strict";var Tp=X(),Sp=L(),jp=Tp(Sp,"Map");Nn.exports=jp});var Ee=a((MP,Dn)=>{"use strict";var kp=X(),Rp=kp(Object,"create");Dn.exports=Rp});var Ln=a((NP,Fn)=>{"use strict";var $n=Ee();function Cp(){this.__data__=$n?$n(null):{},this.size=0}Fn.exports=Cp});var Un=a((DP,Vn)=>{"use strict";function Mp(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}Vn.exports=Mp});var Gn=a(($P,Bn)=>{"use strict";var Np=Ee(),Dp="__lodash_hash_undefined__",$p=Object.prototype,Fp=$p.hasOwnProperty;function Lp(e){var t=this.__data__;if(Np){var r=t[e];return r===Dp?void 0:r}return Fp.call(t,e)?t[e]:void 0}Bn.exports=Lp});var Kn=a((FP,zn)=>{"use strict";var Vp=Ee(),Up=Object.prototype,Bp=Up.hasOwnProperty;function Gp(e){var t=this.__data__;return Vp?t[e]!==void 0:Bp.call(t,e)}zn.exports=Gp});var Hn=a((LP,Jn)=>{"use strict";var zp=Ee(),Kp="__lodash_hash_undefined__";function Jp(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=zp&&t===void 0?Kp:t,this}Jn.exports=Jp});var Yn=a((VP,Wn)=>{"use strict";var Hp=Ln(),Wp=Un(),Yp=Gn(),Zp=Kn(),Xp=Hn();function le(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}le.prototype.clear=Hp;le.prototype.delete=Wp;le.prototype.get=Yp;le.prototype.has=Zp;le.prototype.set=Xp;Wn.exports=le});var Qn=a((UP,Xn)=>{"use strict";var Zn=Yn(),Qp=Ae(),ed=Je();function td(){this.size=0,this.__data__={hash:new Zn,map:new(ed||Qp),string:new Zn}}Xn.exports=td});var ti=a((BP,ei)=>{"use strict";function rd(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}ei.exports=rd});var Oe=a((GP,ri)=>{"use strict";var nd=ti();function id(e,t){var r=e.__data__;return nd(t)?r[typeof t=="string"?"string":"hash"]:r.map}ri.exports=id});var ii=a((zP,ni)=>{"use strict";var sd=Oe();function od(e){var t=sd(this,e).delete(e);return this.size-=t?1:0,t}ni.exports=od});var oi=a((KP,si)=>{"use strict";var ad=Oe();function ud(e){return ad(this,e).get(e)}si.exports=ud});var ui=a((JP,ai)=>{"use strict";var cd=Oe();function fd(e){return cd(this,e).has(e)}ai.exports=fd});var fi=a((HP,ci)=>{"use strict";var ld=Oe();function pd(e,t){var r=ld(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}ci.exports=pd});var He=a((WP,li)=>{"use strict";var dd=Qn(),yd=ii(),hd=oi(),gd=ui(),md=fi();function pe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}pe.prototype.clear=dd;pe.prototype.delete=yd;pe.prototype.get=hd;pe.prototype.has=gd;pe.prototype.set=md;li.exports=pe});var di=a((YP,pi)=>{"use strict";var bd=Ae(),wd=Je(),vd=He(),xd=200;function Id(e,t){var r=this.__data__;if(r instanceof bd){var n=r.__data__;if(!wd||n.length<xd-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new vd(n)}return r.set(e,t),this.size=r.size,this}pi.exports=Id});var We=a((ZP,yi)=>{"use strict";var Ad=Ae(),qd=nn(),Pd=on(),Ed=un(),Od=fn(),_d=di();function de(e){var t=this.__data__=new Ad(e);this.size=t.size}de.prototype.clear=qd;de.prototype.delete=Pd;de.prototype.get=Ed;de.prototype.has=Od;de.prototype.set=_d;yi.exports=de});var Ye=a((XP,hi)=>{"use strict";function Td(e,t){for(var r=-1,n=e==null?0:e.length;++r<n&&t(e[r],r,e)!==!1;);return e}hi.exports=Td});var Ct=a((QP,gi)=>{"use strict";var Sd=X(),jd=(function(){try{var e=Sd(Object,"defineProperty");return e({},"",{}),e}catch{}})();gi.exports=jd});var Mt=a((eE,bi)=>{"use strict";var mi=Ct();function kd(e,t,r){t=="__proto__"&&mi?mi(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}bi.exports=kd});var Nt=a((tE,wi)=>{"use strict";var Rd=Mt(),Cd=Ke(),Md=Object.prototype,Nd=Md.hasOwnProperty;function Dd(e,t,r){var n=e[t];(!(Nd.call(e,t)&&Cd(n,r))||r===void 0&&!(t in e))&&Rd(e,t,r)}wi.exports=Dd});var _e=a((rE,vi)=>{"use strict";var $d=Nt(),Fd=Mt();function Ld(e,t,r,n){var i=!r;r||(r={});for(var s=-1,o=t.length;++s<o;){var u=t[s],f=n?n(r[u],e[u],u,r,e):void 0;f===void 0&&(f=e[u]),i?Fd(r,u,f):$d(r,u,f)}return r}vi.exports=Ld});var Ii=a((nE,xi)=>{"use strict";function Vd(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}xi.exports=Vd});var G=a((iE,Ai)=>{"use strict";function Ud(e){return e!=null&&typeof e=="object"}Ai.exports=Ud});var Pi=a((sE,qi)=>{"use strict";var Bd=se(),Gd=G(),zd="[object Arguments]";function Kd(e){return Gd(e)&&Bd(e)==zd}qi.exports=Kd});var Te=a((oE,_i)=>{"use strict";var Ei=Pi(),Jd=G(),Oi=Object.prototype,Hd=Oi.hasOwnProperty,Wd=Oi.propertyIsEnumerable,Yd=Ei((function(){return arguments})())?Ei:function(e){return Jd(e)&&Hd.call(e,"callee")&&!Wd.call(e,"callee")};_i.exports=Yd});var R=a((aE,Ti)=>{"use strict";var Zd=Array.isArray;Ti.exports=Zd});var ji=a((uE,Si)=>{"use strict";function Xd(){return!1}Si.exports=Xd});var he=a((Se,ye)=>{"use strict";var Qd=L(),ey=ji(),Ci=typeof Se=="object"&&Se&&!Se.nodeType&&Se,ki=Ci&&typeof ye=="object"&&ye&&!ye.nodeType&&ye,ty=ki&&ki.exports===Ci,Ri=ty?Qd.Buffer:void 0,ry=Ri?Ri.isBuffer:void 0,ny=ry||ey;ye.exports=ny});var Dt=a((cE,Mi)=>{"use strict";var iy=9007199254740991,sy=/^(?:0|[1-9]\d*)$/;function oy(e,t){var r=typeof e;return t=t??iy,!!t&&(r=="number"||r!="symbol"&&sy.test(e))&&e>-1&&e%1==0&&e<t}Mi.exports=oy});var Ze=a((fE,Ni)=>{"use strict";var ay=9007199254740991;function uy(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ay}Ni.exports=uy});var $i=a((lE,Di)=>{"use strict";var cy=se(),fy=Ze(),ly=G(),py="[object Arguments]",dy="[object Array]",yy="[object Boolean]",hy="[object Date]",gy="[object Error]",my="[object Function]",by="[object Map]",wy="[object Number]",vy="[object Object]",xy="[object RegExp]",Iy="[object Set]",Ay="[object String]",qy="[object WeakMap]",Py="[object ArrayBuffer]",Ey="[object DataView]",Oy="[object Float32Array]",_y="[object Float64Array]",Ty="[object Int8Array]",Sy="[object Int16Array]",jy="[object Int32Array]",ky="[object Uint8Array]",Ry="[object Uint8ClampedArray]",Cy="[object Uint16Array]",My="[object Uint32Array]",j={};j[Oy]=j[_y]=j[Ty]=j[Sy]=j[jy]=j[ky]=j[Ry]=j[Cy]=j[My]=!0;j[py]=j[dy]=j[Py]=j[yy]=j[Ey]=j[hy]=j[gy]=j[my]=j[by]=j[wy]=j[vy]=j[xy]=j[Iy]=j[Ay]=j[qy]=!1;function Ny(e){return ly(e)&&fy(e.length)&&!!j[cy(e)]}Di.exports=Ny});var Xe=a((pE,Fi)=>{"use strict";function Dy(e){return function(t){return e(t)}}Fi.exports=Dy});var Qe=a((je,ge)=>{"use strict";var $y=jt(),Li=typeof je=="object"&&je&&!je.nodeType&&je,ke=Li&&typeof ge=="object"&&ge&&!ge.nodeType&&ge,Fy=ke&&ke.exports===Li,$t=Fy&&$y.process,Ly=(function(){try{var e=ke&&ke.require&&ke.require("util").types;return e||$t&&$t.binding&&$t.binding("util")}catch{}})();ge.exports=Ly});var Re=a((dE,Bi)=>{"use strict";var Vy=$i(),Uy=Xe(),Vi=Qe(),Ui=Vi&&Vi.isTypedArray,By=Ui?Uy(Ui):Vy;Bi.exports=By});var Ft=a((yE,Gi)=>{"use strict";var Gy=Ii(),zy=Te(),Ky=R(),Jy=he(),Hy=Dt(),Wy=Re(),Yy=Object.prototype,Zy=Yy.hasOwnProperty;function Xy(e,t){var r=Ky(e),n=!r&&zy(e),i=!r&&!n&&Jy(e),s=!r&&!n&&!i&&Wy(e),o=r||n||i||s,u=o?Gy(e.length,String):[],f=u.length;for(var l in e)(t||Zy.call(e,l))&&!(o&&(l=="length"||i&&(l=="offset"||l=="parent")||s&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||Hy(l,f)))&&u.push(l);return u}Gi.exports=Xy});var Ce=a((hE,zi)=>{"use strict";var Qy=Object.prototype;function eh(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||Qy;return e===r}zi.exports=eh});var Lt=a((gE,Ki)=>{"use strict";function th(e,t){return function(r){return e(t(r))}}Ki.exports=th});var Hi=a((mE,Ji)=>{"use strict";var rh=Lt(),nh=rh(Object.keys,Object);Ji.exports=nh});var et=a((bE,Wi)=>{"use strict";var ih=Ce(),sh=Hi(),oh=Object.prototype,ah=oh.hasOwnProperty;function uh(e){if(!ih(e))return sh(e);var t=[];for(var r in Object(e))ah.call(e,r)&&r!="constructor"&&t.push(r);return t}Wi.exports=uh});var Q=a((wE,Yi)=>{"use strict";var ch=Pe(),fh=Ze();function lh(e){return e!=null&&fh(e.length)&&!ch(e)}Yi.exports=lh});var ee=a((vE,Zi)=>{"use strict";var ph=Ft(),dh=et(),yh=Q();function hh(e){return yh(e)?ph(e):dh(e)}Zi.exports=hh});var Qi=a((xE,Xi)=>{"use strict";var gh=_e(),mh=ee();function bh(e,t){return e&&gh(t,mh(t),e)}Xi.exports=bh});var ts=a((IE,es)=>{"use strict";function wh(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}es.exports=wh});var ns=a((AE,rs)=>{"use strict";var vh=Z(),xh=Ce(),Ih=ts(),Ah=Object.prototype,qh=Ah.hasOwnProperty;function Ph(e){if(!vh(e))return Ih(e);var t=xh(e),r=[];for(var n in e)n=="constructor"&&(t||!qh.call(e,n))||r.push(n);return r}rs.exports=Ph});var tt=a((qE,is)=>{"use strict";var Eh=Ft(),Oh=ns(),_h=Q();function Th(e){return _h(e)?Eh(e,!0):Oh(e)}is.exports=Th});var os=a((PE,ss)=>{"use strict";var Sh=_e(),jh=tt();function kh(e,t){return e&&Sh(t,jh(t),e)}ss.exports=kh});var ls=a((Me,me)=>{"use strict";var Rh=L(),fs=typeof Me=="object"&&Me&&!Me.nodeType&&Me,as=fs&&typeof me=="object"&&me&&!me.nodeType&&me,Ch=as&&as.exports===fs,us=Ch?Rh.Buffer:void 0,cs=us?us.allocUnsafe:void 0;function Mh(e,t){if(t)return e.slice();var r=e.length,n=cs?cs(r):new e.constructor(r);return e.copy(n),n}me.exports=Mh});var ds=a((EE,ps)=>{"use strict";function Nh(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}ps.exports=Nh});var Vt=a((OE,ys)=>{"use strict";function Dh(e,t){for(var r=-1,n=e==null?0:e.length,i=0,s=[];++r<n;){var o=e[r];t(o,r,e)&&(s[i++]=o)}return s}ys.exports=Dh});var Ut=a((_E,hs)=>{"use strict";function $h(){return[]}hs.exports=$h});var rt=a((TE,ms)=>{"use strict";var Fh=Vt(),Lh=Ut(),Vh=Object.prototype,Uh=Vh.propertyIsEnumerable,gs=Object.getOwnPropertySymbols,Bh=gs?function(e){return e==null?[]:(e=Object(e),Fh(gs(e),function(t){return Uh.call(e,t)}))}:Lh;ms.exports=Bh});var ws=a((SE,bs)=>{"use strict";var Gh=_e(),zh=rt();function Kh(e,t){return Gh(e,zh(e),t)}bs.exports=Kh});var nt=a((jE,vs)=>{"use strict";function Jh(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}vs.exports=Jh});var it=a((kE,xs)=>{"use strict";var Hh=Lt(),Wh=Hh(Object.getPrototypeOf,Object);xs.exports=Wh});var Bt=a((RE,Is)=>{"use strict";var Yh=nt(),Zh=it(),Xh=rt(),Qh=Ut(),eg=Object.getOwnPropertySymbols,tg=eg?function(e){for(var t=[];e;)Yh(t,Xh(e)),e=Zh(e);return t}:Qh;Is.exports=tg});var qs=a((CE,As)=>{"use strict";var rg=_e(),ng=Bt();function ig(e,t){return rg(e,ng(e),t)}As.exports=ig});var Gt=a((ME,Ps)=>{"use strict";var sg=nt(),og=R();function ag(e,t,r){var n=t(e);return og(e)?n:sg(n,r(e))}Ps.exports=ag});var zt=a((NE,Es)=>{"use strict";var ug=Gt(),cg=rt(),fg=ee();function lg(e){return ug(e,fg,cg)}Es.exports=lg});var _s=a((DE,Os)=>{"use strict";var pg=Gt(),dg=Bt(),yg=tt();function hg(e){return pg(e,yg,dg)}Os.exports=hg});var Ss=a(($E,Ts)=>{"use strict";var gg=X(),mg=L(),bg=gg(mg,"DataView");Ts.exports=bg});var ks=a((FE,js)=>{"use strict";var wg=X(),vg=L(),xg=wg(vg,"Promise");js.exports=xg});var Kt=a((LE,Rs)=>{"use strict";var Ig=X(),Ag=L(),qg=Ig(Ag,"Set");Rs.exports=qg});var Ms=a((VE,Cs)=>{"use strict";var Pg=X(),Eg=L(),Og=Pg(Eg,"WeakMap");Cs.exports=Og});var ae=a((UE,Us)=>{"use strict";var Jt=Ss(),Ht=Je(),Wt=ks(),Yt=Kt(),Zt=Ms(),Vs=se(),be=Rt(),Ns="[object Map]",_g="[object Object]",Ds="[object Promise]",$s="[object Set]",Fs="[object WeakMap]",Ls="[object DataView]",Tg=be(Jt),Sg=be(Ht),jg=be(Wt),kg=be(Yt),Rg=be(Zt),oe=Vs;(Jt&&oe(new Jt(new ArrayBuffer(1)))!=Ls||Ht&&oe(new Ht)!=Ns||Wt&&oe(Wt.resolve())!=Ds||Yt&&oe(new Yt)!=$s||Zt&&oe(new Zt)!=Fs)&&(oe=function(e){var t=Vs(e),r=t==_g?e.constructor:void 0,n=r?be(r):"";if(n)switch(n){case Tg:return Ls;case Sg:return Ns;case jg:return Ds;case kg:return $s;case Rg:return Fs}return t});Us.exports=oe});var Gs=a((BE,Bs)=>{"use strict";var Cg=Object.prototype,Mg=Cg.hasOwnProperty;function Ng(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&Mg.call(e,"index")&&(r.index=e.index,r.input=e.input),r}Bs.exports=Ng});var Xt=a((GE,zs)=>{"use strict";var Dg=L(),$g=Dg.Uint8Array;zs.exports=$g});var st=a((zE,Js)=>{"use strict";var Ks=Xt();function Fg(e){var t=new e.constructor(e.byteLength);return new Ks(t).set(new Ks(e)),t}Js.exports=Fg});var Ws=a((KE,Hs)=>{"use strict";var Lg=st();function Vg(e,t){var r=t?Lg(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}Hs.exports=Vg});var Zs=a((JE,Ys)=>{"use strict";var Ug=/\w*$/;function Bg(e){var t=new e.constructor(e.source,Ug.exec(e));return t.lastIndex=e.lastIndex,t}Ys.exports=Bg});var ro=a((HE,to)=>{"use strict";var Xs=ie(),Qs=Xs?Xs.prototype:void 0,eo=Qs?Qs.valueOf:void 0;function Gg(e){return eo?Object(eo.call(e)):{}}to.exports=Gg});var io=a((WE,no)=>{"use strict";var zg=st();function Kg(e,t){var r=t?zg(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}no.exports=Kg});var oo=a((YE,so)=>{"use strict";var Jg=st(),Hg=Ws(),Wg=Zs(),Yg=ro(),Zg=io(),Xg="[object Boolean]",Qg="[object Date]",em="[object Map]",tm="[object Number]",rm="[object RegExp]",nm="[object Set]",im="[object String]",sm="[object Symbol]",om="[object ArrayBuffer]",am="[object DataView]",um="[object Float32Array]",cm="[object Float64Array]",fm="[object Int8Array]",lm="[object Int16Array]",pm="[object Int32Array]",dm="[object Uint8Array]",ym="[object Uint8ClampedArray]",hm="[object Uint16Array]",gm="[object Uint32Array]";function mm(e,t,r){var n=e.constructor;switch(t){case om:return Jg(e);case Xg:case Qg:return new n(+e);case am:return Hg(e,r);case um:case cm:case fm:case lm:case pm:case dm:case ym:case hm:case gm:return Zg(e,r);case em:return new n;case tm:case im:return new n(e);case rm:return Wg(e);case nm:return new n;case sm:return Yg(e)}}so.exports=mm});var Qt=a((ZE,uo)=>{"use strict";var bm=Z(),ao=Object.create,wm=(function(){function e(){}return function(t){if(!bm(t))return{};if(ao)return ao(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})();uo.exports=wm});var fo=a((XE,co)=>{"use strict";var vm=Qt(),xm=it(),Im=Ce();function Am(e){return typeof e.constructor=="function"&&!Im(e)?vm(xm(e)):{}}co.exports=Am});var po=a((QE,lo)=>{"use strict";var qm=ae(),Pm=G(),Em="[object Map]";function Om(e){return Pm(e)&&qm(e)==Em}lo.exports=Om});var mo=a((eO,go)=>{"use strict";var _m=po(),Tm=Xe(),yo=Qe(),ho=yo&&yo.isMap,Sm=ho?Tm(ho):_m;go.exports=Sm});var wo=a((tO,bo)=>{"use strict";var jm=ae(),km=G(),Rm="[object Set]";function Cm(e){return km(e)&&jm(e)==Rm}bo.exports=Cm});var Ao=a((rO,Io)=>{"use strict";var Mm=wo(),Nm=Xe(),vo=Qe(),xo=vo&&vo.isSet,Dm=xo?Nm(xo):Mm;Io.exports=Dm});var _o=a((nO,Oo)=>{"use strict";var $m=We(),Fm=Ye(),Lm=Nt(),Vm=Qi(),Um=os(),Bm=ls(),Gm=ds(),zm=ws(),Km=qs(),Jm=zt(),Hm=_s(),Wm=ae(),Ym=Gs(),Zm=oo(),Xm=fo(),Qm=R(),eb=he(),tb=mo(),rb=Z(),nb=Ao(),ib=ee(),sb=tt(),ob=1,ab=2,ub=4,qo="[object Arguments]",cb="[object Array]",fb="[object Boolean]",lb="[object Date]",pb="[object Error]",Po="[object Function]",db="[object GeneratorFunction]",yb="[object Map]",hb="[object Number]",Eo="[object Object]",gb="[object RegExp]",mb="[object Set]",bb="[object String]",wb="[object Symbol]",vb="[object WeakMap]",xb="[object ArrayBuffer]",Ib="[object DataView]",Ab="[object Float32Array]",qb="[object Float64Array]",Pb="[object Int8Array]",Eb="[object Int16Array]",Ob="[object Int32Array]",_b="[object Uint8Array]",Tb="[object Uint8ClampedArray]",Sb="[object Uint16Array]",jb="[object Uint32Array]",S={};S[qo]=S[cb]=S[xb]=S[Ib]=S[fb]=S[lb]=S[Ab]=S[qb]=S[Pb]=S[Eb]=S[Ob]=S[yb]=S[hb]=S[Eo]=S[gb]=S[mb]=S[bb]=S[wb]=S[_b]=S[Tb]=S[Sb]=S[jb]=!0;S[pb]=S[Po]=S[vb]=!1;function ot(e,t,r,n,i,s){var o,u=t&ob,f=t&ab,l=t&ub;if(r&&(o=i?r(e,n,i,s):r(e)),o!==void 0)return o;if(!rb(e))return e;var p=Qm(e);if(p){if(o=Ym(e),!u)return Gm(e,o)}else{var b=Wm(e),c=b==Po||b==db;if(eb(e))return Bm(e,u);if(b==Eo||b==qo||c&&!i){if(o=f||c?{}:Xm(e),!u)return f?Km(e,Um(o,e)):zm(e,Vm(o,e))}else{if(!S[b])return i?e:{};o=Zm(e,b,u)}}s||(s=new $m);var w=s.get(e);if(w)return w;s.set(e,o),nb(e)?e.forEach(function(y){o.add(ot(y,t,r,y,e,s))}):tb(e)&&e.forEach(function(y,d){o.set(d,ot(y,t,r,d,e,s))});var h=l?f?Hm:Jm:f?sb:ib,m=p?void 0:h(e);return Fm(m||e,function(y,d){m&&(d=y,y=e[d]),Lm(o,d,ot(y,t,r,d,e,s))}),o}Oo.exports=ot});var So=a((iO,To)=>{"use strict";var kb=_o(),Rb=4;function Cb(e){return kb(e,Rb)}To.exports=Cb});var er=a((sO,jo)=>{"use strict";function Mb(e){return function(){return e}}jo.exports=Mb});var Ro=a((oO,ko)=>{"use strict";function Nb(e){return function(t,r,n){for(var i=-1,s=Object(t),o=n(t),u=o.length;u--;){var f=o[e?u:++i];if(r(s[f],f,s)===!1)break}return t}}ko.exports=Nb});var Mo=a((aO,Co)=>{"use strict";var Db=Ro(),$b=Db();Co.exports=$b});var tr=a((uO,No)=>{"use strict";var Fb=Mo(),Lb=ee();function Vb(e,t){return e&&Fb(e,t,Lb)}No.exports=Vb});var $o=a((cO,Do)=>{"use strict";var Ub=Q();function Bb(e,t){return function(r,n){if(r==null)return r;if(!Ub(r))return e(r,n);for(var i=r.length,s=t?i:-1,o=Object(r);(t?s--:++s<i)&&n(o[s],s,o)!==!1;);return r}}Do.exports=Bb});var Ne=a((fO,Fo)=>{"use strict";var Gb=tr(),zb=$o(),Kb=zb(Gb);Fo.exports=Kb});var De=a((lO,Lo)=>{"use strict";function Jb(e){return e}Lo.exports=Jb});var Uo=a((pO,Vo)=>{"use strict";var Hb=De();function Wb(e){return typeof e=="function"?e:Hb}Vo.exports=Wb});var Go=a((dO,Bo)=>{"use strict";var Yb=Ye(),Zb=Ne(),Xb=Uo(),Qb=R();function ew(e,t){var r=Qb(e)?Yb:Zb;return r(e,Xb(t))}Bo.exports=ew});var Ko=a((yO,zo)=>{"use strict";zo.exports=Go()});var Ho=a((hO,Jo)=>{"use strict";var tw=Ne();function rw(e,t){var r=[];return tw(e,function(n,i,s){t(n,i,s)&&r.push(n)}),r}Jo.exports=rw});var Yo=a((gO,Wo)=>{"use strict";var nw="__lodash_hash_undefined__";function iw(e){return this.__data__.set(e,nw),this}Wo.exports=iw});var Xo=a((mO,Zo)=>{"use strict";function sw(e){return this.__data__.has(e)}Zo.exports=sw});var rr=a((bO,Qo)=>{"use strict";var ow=He(),aw=Yo(),uw=Xo();function at(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new ow;++t<r;)this.add(e[t])}at.prototype.add=at.prototype.push=aw;at.prototype.has=uw;Qo.exports=at});var ta=a((wO,ea)=>{"use strict";function cw(e,t){for(var r=-1,n=e==null?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}ea.exports=cw});var nr=a((vO,ra)=>{"use strict";function fw(e,t){return e.has(t)}ra.exports=fw});var ir=a((xO,na)=>{"use strict";var lw=rr(),pw=ta(),dw=nr(),yw=1,hw=2;function gw(e,t,r,n,i,s){var o=r&yw,u=e.length,f=t.length;if(u!=f&&!(o&&f>u))return!1;var l=s.get(e),p=s.get(t);if(l&&p)return l==t&&p==e;var b=-1,c=!0,w=r&hw?new lw:void 0;for(s.set(e,t),s.set(t,e);++b<u;){var h=e[b],m=t[b];if(n)var y=o?n(m,h,b,t,e,s):n(h,m,b,e,t,s);if(y!==void 0){if(y)continue;c=!1;break}if(w){if(!pw(t,function(d,v){if(!dw(w,v)&&(h===d||i(h,d,r,n,s)))return w.push(v)})){c=!1;break}}else if(!(h===m||i(h,m,r,n,s))){c=!1;break}}return s.delete(e),s.delete(t),c}na.exports=gw});var sa=a((IO,ia)=>{"use strict";function mw(e){var t=-1,r=Array(e.size);return e.forEach(function(n,i){r[++t]=[i,n]}),r}ia.exports=mw});var ut=a((AO,oa)=>{"use strict";function bw(e){var t=-1,r=Array(e.size);return e.forEach(function(n){r[++t]=n}),r}oa.exports=bw});var la=a((qO,fa)=>{"use strict";var aa=ie(),ua=Xt(),ww=Ke(),vw=ir(),xw=sa(),Iw=ut(),Aw=1,qw=2,Pw="[object Boolean]",Ew="[object Date]",Ow="[object Error]",_w="[object Map]",Tw="[object Number]",Sw="[object RegExp]",jw="[object Set]",kw="[object String]",Rw="[object Symbol]",Cw="[object ArrayBuffer]",Mw="[object DataView]",ca=aa?aa.prototype:void 0,sr=ca?ca.valueOf:void 0;function Nw(e,t,r,n,i,s,o){switch(r){case Mw:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case Cw:return!(e.byteLength!=t.byteLength||!s(new ua(e),new ua(t)));case Pw:case Ew:case Tw:return ww(+e,+t);case Ow:return e.name==t.name&&e.message==t.message;case Sw:case kw:return e==t+"";case _w:var u=xw;case jw:var f=n&Aw;if(u||(u=Iw),e.size!=t.size&&!f)return!1;var l=o.get(e);if(l)return l==t;n|=qw,o.set(e,t);var p=vw(u(e),u(t),n,i,s,o);return o.delete(e),p;case Rw:if(sr)return sr.call(e)==sr.call(t)}return!1}fa.exports=Nw});var ya=a((PO,da)=>{"use strict";var pa=zt(),Dw=1,$w=Object.prototype,Fw=$w.hasOwnProperty;function Lw(e,t,r,n,i,s){var o=r&Dw,u=pa(e),f=u.length,l=pa(t),p=l.length;if(f!=p&&!o)return!1;for(var b=f;b--;){var c=u[b];if(!(o?c in t:Fw.call(t,c)))return!1}var w=s.get(e),h=s.get(t);if(w&&h)return w==t&&h==e;var m=!0;s.set(e,t),s.set(t,e);for(var y=o;++b<f;){c=u[b];var d=e[c],v=t[c];if(n)var x=o?n(v,d,c,t,e,s):n(d,v,c,e,t,s);if(!(x===void 0?d===v||i(d,v,r,n,s):x)){m=!1;break}y||(y=c=="constructor")}if(m&&!y){var _=e.constructor,T=t.constructor;_!=T&&"constructor"in e&&"constructor"in t&&!(typeof _=="function"&&_ instanceof _&&typeof T=="function"&&T instanceof T)&&(m=!1)}return s.delete(e),s.delete(t),m}da.exports=Lw});var Ia=a((EO,xa)=>{"use strict";var or=We(),Vw=ir(),Uw=la(),Bw=ya(),ha=ae(),ga=R(),ma=he(),Gw=Re(),zw=1,ba="[object Arguments]",wa="[object Array]",ct="[object Object]",Kw=Object.prototype,va=Kw.hasOwnProperty;function Jw(e,t,r,n,i,s){var o=ga(e),u=ga(t),f=o?wa:ha(e),l=u?wa:ha(t);f=f==ba?ct:f,l=l==ba?ct:l;var p=f==ct,b=l==ct,c=f==l;if(c&&ma(e)){if(!ma(t))return!1;o=!0,p=!1}if(c&&!p)return s||(s=new or),o||Gw(e)?Vw(e,t,r,n,i,s):Uw(e,t,f,r,n,i,s);if(!(r&zw)){var w=p&&va.call(e,"__wrapped__"),h=b&&va.call(t,"__wrapped__");if(w||h){var m=w?e.value():e,y=h?t.value():t;return s||(s=new or),i(m,y,r,n,s)}}return c?(s||(s=new or),Bw(e,t,r,n,i,s)):!1}xa.exports=Jw});var ar=a((OO,Pa)=>{"use strict";var Hw=Ia(),Aa=G();function qa(e,t,r,n,i){return e===t?!0:e==null||t==null||!Aa(e)&&!Aa(t)?e!==e&&t!==t:Hw(e,t,r,n,qa,i)}Pa.exports=qa});var Oa=a((_O,Ea)=>{"use strict";var Ww=We(),Yw=ar(),Zw=1,Xw=2;function Qw(e,t,r,n){var i=r.length,s=i,o=!n;if(e==null)return!s;for(e=Object(e);i--;){var u=r[i];if(o&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++i<s;){u=r[i];var f=u[0],l=e[f],p=u[1];if(o&&u[2]){if(l===void 0&&!(f in e))return!1}else{var b=new Ww;if(n)var c=n(l,p,f,e,t,b);if(!(c===void 0?Yw(p,l,Zw|Xw,n,b):c))return!1}}return!0}Ea.exports=Qw});var ur=a((TO,_a)=>{"use strict";var ev=Z();function tv(e){return e===e&&!ev(e)}_a.exports=tv});var Sa=a((SO,Ta)=>{"use strict";var rv=ur(),nv=ee();function iv(e){for(var t=nv(e),r=t.length;r--;){var n=t[r],i=e[n];t[r]=[n,i,rv(i)]}return t}Ta.exports=iv});var cr=a((jO,ja)=>{"use strict";function sv(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==void 0||e in Object(r))}}ja.exports=sv});var Ra=a((kO,ka)=>{"use strict";var ov=Oa(),av=Sa(),uv=cr();function cv(e){var t=av(e);return t.length==1&&t[0][2]?uv(t[0][0],t[0][1]):function(r){return r===e||ov(r,e,t)}}ka.exports=cv});var ft=a((RO,Ca)=>{"use strict";var fv=se(),lv=G(),pv="[object Symbol]";function dv(e){return typeof e=="symbol"||lv(e)&&fv(e)==pv}Ca.exports=dv});var lt=a((CO,Ma)=>{"use strict";var yv=R(),hv=ft(),gv=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,mv=/^\w*$/;function bv(e,t){if(yv(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||hv(e)?!0:mv.test(e)||!gv.test(e)||t!=null&&e in Object(t)}Ma.exports=bv});var $a=a((MO,Da)=>{"use strict";var Na=He(),wv="Expected a function";function fr(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(wv);var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],s=r.cache;if(s.has(i))return s.get(i);var o=e.apply(this,n);return r.cache=s.set(i,o)||s,o};return r.cache=new(fr.Cache||Na),r}fr.Cache=Na;Da.exports=fr});var La=a((NO,Fa)=>{"use strict";var vv=$a(),xv=500;function Iv(e){var t=vv(e,function(n){return r.size===xv&&r.clear(),n}),r=t.cache;return t}Fa.exports=Iv});var Ua=a((DO,Va)=>{"use strict";var Av=La(),qv=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Pv=/\\(\\)?/g,Ev=Av(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(qv,function(r,n,i,s){t.push(i?s.replace(Pv,"$1"):n||r)}),t});Va.exports=Ev});var pt=a(($O,Ba)=>{"use strict";function Ov(e,t){for(var r=-1,n=e==null?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}Ba.exports=Ov});var Wa=a((FO,Ha)=>{"use strict";var Ga=ie(),_v=pt(),Tv=R(),Sv=ft(),jv=1/0,za=Ga?Ga.prototype:void 0,Ka=za?za.toString:void 0;function Ja(e){if(typeof e=="string")return e;if(Tv(e))return _v(e,Ja)+"";if(Sv(e))return Ka?Ka.call(e):"";var t=e+"";return t=="0"&&1/e==-jv?"-0":t}Ha.exports=Ja});var Za=a((LO,Ya)=>{"use strict";var kv=Wa();function Rv(e){return e==null?"":kv(e)}Ya.exports=Rv});var lr=a((VO,Xa)=>{"use strict";var Cv=R(),Mv=lt(),Nv=Ua(),Dv=Za();function $v(e,t){return Cv(e)?e:Mv(e,t)?[e]:Nv(Dv(e))}Xa.exports=$v});var $e=a((UO,Qa)=>{"use strict";var Fv=ft(),Lv=1/0;function Vv(e){if(typeof e=="string"||Fv(e))return e;var t=e+"";return t=="0"&&1/e==-Lv?"-0":t}Qa.exports=Vv});var pr=a((BO,eu)=>{"use strict";var Uv=lr(),Bv=$e();function Gv(e,t){t=Uv(t,e);for(var r=0,n=t.length;e!=null&&r<n;)e=e[Bv(t[r++])];return r&&r==n?e:void 0}eu.exports=Gv});var ru=a((GO,tu)=>{"use strict";var zv=pr();function Kv(e,t,r){var n=e==null?void 0:zv(e,t);return n===void 0?r:n}tu.exports=Kv});var iu=a((zO,nu)=>{"use strict";function Jv(e,t){return e!=null&&t in Object(e)}nu.exports=Jv});var dr=a((KO,su)=>{"use strict";var Hv=lr(),Wv=Te(),Yv=R(),Zv=Dt(),Xv=Ze(),Qv=$e();function ex(e,t,r){t=Hv(t,e);for(var n=-1,i=t.length,s=!1;++n<i;){var o=Qv(t[n]);if(!(s=e!=null&&r(e,o)))break;e=e[o]}return s||++n!=i?s:(i=e==null?0:e.length,!!i&&Xv(i)&&Zv(o,i)&&(Yv(e)||Wv(e)))}su.exports=ex});var au=a((JO,ou)=>{"use strict";var tx=iu(),rx=dr();function nx(e,t){return e!=null&&rx(e,t,tx)}ou.exports=nx});var cu=a((HO,uu)=>{"use strict";var ix=ar(),sx=ru(),ox=au(),ax=lt(),ux=ur(),cx=cr(),fx=$e(),lx=1,px=2;function dx(e,t){return ax(e)&&ux(t)?cx(fx(e),t):function(r){var n=sx(r,e);return n===void 0&&n===t?ox(r,e):ix(t,n,lx|px)}}uu.exports=dx});var yr=a((WO,fu)=>{"use strict";function yx(e){return function(t){return t?.[e]}}fu.exports=yx});var pu=a((YO,lu)=>{"use strict";var hx=pr();function gx(e){return function(t){return hx(t,e)}}lu.exports=gx});var yu=a((ZO,du)=>{"use strict";var mx=yr(),bx=pu(),wx=lt(),vx=$e();function xx(e){return wx(e)?mx(vx(e)):bx(e)}du.exports=xx});var Fe=a((XO,hu)=>{"use strict";var Ix=Ra(),Ax=cu(),qx=De(),Px=R(),Ex=yu();function Ox(e){return typeof e=="function"?e:e==null?qx:typeof e=="object"?Px(e)?Ax(e[0],e[1]):Ix(e):Ex(e)}hu.exports=Ox});var mu=a((QO,gu)=>{"use strict";var _x=Vt(),Tx=Ho(),Sx=Fe(),jx=R();function kx(e,t){var r=jx(e)?_x:Tx;return r(e,Sx(t,3))}gu.exports=kx});var wu=a((e_,bu)=>{"use strict";var Rx=Object.prototype,Cx=Rx.hasOwnProperty;function Mx(e,t){return e!=null&&Cx.call(e,t)}bu.exports=Mx});var xu=a((t_,vu)=>{"use strict";var Nx=wu(),Dx=dr();function $x(e,t){return e!=null&&Dx(e,t,Nx)}vu.exports=$x});var Au=a((r_,Iu)=>{"use strict";var Fx=et(),Lx=ae(),Vx=Te(),Ux=R(),Bx=Q(),Gx=he(),zx=Ce(),Kx=Re(),Jx="[object Map]",Hx="[object Set]",Wx=Object.prototype,Yx=Wx.hasOwnProperty;function Zx(e){if(e==null)return!0;if(Bx(e)&&(Ux(e)||typeof e=="string"||typeof e.splice=="function"||Gx(e)||Kx(e)||Vx(e)))return!e.length;var t=Lx(e);if(t==Jx||t==Hx)return!e.size;if(zx(e))return!Fx(e).length;for(var r in e)if(Yx.call(e,r))return!1;return!0}Iu.exports=Zx});var Pu=a((n_,qu)=>{"use strict";function Xx(e){return e===void 0}qu.exports=Xx});var Ou=a((i_,Eu)=>{"use strict";var Qx=Ne(),eI=Q();function tI(e,t){var r=-1,n=eI(e)?Array(e.length):[];return Qx(e,function(i,s,o){n[++r]=t(i,s,o)}),n}Eu.exports=tI});var Tu=a((s_,_u)=>{"use strict";var rI=pt(),nI=Fe(),iI=Ou(),sI=R();function oI(e,t){var r=sI(e)?rI:iI;return r(e,nI(t,3))}_u.exports=oI});var ju=a((o_,Su)=>{"use strict";function aI(e,t,r,n){var i=-1,s=e==null?0:e.length;for(n&&s&&(r=e[++i]);++i<s;)r=t(r,e[i],i,e);return r}Su.exports=aI});var Ru=a((a_,ku)=>{"use strict";function uI(e,t,r,n,i){return i(e,function(s,o,u){r=n?(n=!1,s):t(r,s,o,u)}),r}ku.exports=uI});var Mu=a((u_,Cu)=>{"use strict";var cI=ju(),fI=Ne(),lI=Fe(),pI=Ru(),dI=R();function yI(e,t,r){var n=dI(e)?cI:pI,i=arguments.length<3;return n(e,lI(t,4),r,i,fI)}Cu.exports=yI});var Du=a((c_,Nu)=>{"use strict";var hI=se(),gI=R(),mI=G(),bI="[object String]";function wI(e){return typeof e=="string"||!gI(e)&&mI(e)&&hI(e)==bI}Nu.exports=wI});var Fu=a((f_,$u)=>{"use strict";var vI=yr(),xI=vI("length");$u.exports=xI});var Vu=a((l_,Lu)=>{"use strict";var II="\\ud800-\\udfff",AI="\\u0300-\\u036f",qI="\\ufe20-\\ufe2f",PI="\\u20d0-\\u20ff",EI=AI+qI+PI,OI="\\ufe0e\\ufe0f",_I="\\u200d",TI=RegExp("["+_I+II+EI+OI+"]");function SI(e){return TI.test(e)}Lu.exports=SI});var Yu=a((p_,Wu)=>{"use strict";var Bu="\\ud800-\\udfff",jI="\\u0300-\\u036f",kI="\\ufe20-\\ufe2f",RI="\\u20d0-\\u20ff",CI=jI+kI+RI,MI="\\ufe0e\\ufe0f",NI="["+Bu+"]",hr="["+CI+"]",gr="\\ud83c[\\udffb-\\udfff]",DI="(?:"+hr+"|"+gr+")",Gu="[^"+Bu+"]",zu="(?:\\ud83c[\\udde6-\\uddff]){2}",Ku="[\\ud800-\\udbff][\\udc00-\\udfff]",$I="\\u200d",Ju=DI+"?",Hu="["+MI+"]?",FI="(?:"+$I+"(?:"+[Gu,zu,Ku].join("|")+")"+Hu+Ju+")*",LI=Hu+Ju+FI,VI="(?:"+[Gu+hr+"?",hr,zu,Ku,NI].join("|")+")",Uu=RegExp(gr+"(?="+gr+")|"+VI+LI,"g");function UI(e){for(var t=Uu.lastIndex=0;Uu.test(e);)++t;return t}Wu.exports=UI});var Xu=a((d_,Zu)=>{"use strict";var BI=Fu(),GI=Vu(),zI=Yu();function KI(e){return GI(e)?zI(e):BI(e)}Zu.exports=KI});var ec=a((y_,Qu)=>{"use strict";var JI=et(),HI=ae(),WI=Q(),YI=Du(),ZI=Xu(),XI="[object Map]",QI="[object Set]";function eA(e){if(e==null)return 0;if(WI(e))return YI(e)?ZI(e):e.length;var t=HI(e);return t==XI||t==QI?e.size:JI(e).length}Qu.exports=eA});var rc=a((h_,tc)=>{"use strict";var tA=Ye(),rA=Qt(),nA=tr(),iA=Fe(),sA=it(),oA=R(),aA=he(),uA=Pe(),cA=Z(),fA=Re();function lA(e,t,r){var n=oA(e),i=n||aA(e)||fA(e);if(t=iA(t,4),r==null){var s=e&&e.constructor;i?r=n?new s:[]:cA(e)?r=uA(s)?rA(sA(e)):{}:r={}}return(i?tA:nA)(e,function(o,u,f){return t(r,o,u,f)}),r}tc.exports=lA});var oc=a((g_,sc)=>{"use strict";var nc=ie(),pA=Te(),dA=R(),ic=nc?nc.isConcatSpreadable:void 0;function yA(e){return dA(e)||pA(e)||!!(ic&&e&&e[ic])}sc.exports=yA});var cc=a((m_,uc)=>{"use strict";var hA=nt(),gA=oc();function ac(e,t,r,n,i){var s=-1,o=e.length;for(r||(r=gA),i||(i=[]);++s<o;){var u=e[s];t>0&&r(u)?t>1?ac(u,t-1,r,n,i):hA(i,u):n||(i[i.length]=u)}return i}uc.exports=ac});var lc=a((b_,fc)=>{"use strict";function mA(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}fc.exports=mA});var yc=a((w_,dc)=>{"use strict";var bA=lc(),pc=Math.max;function wA(e,t,r){return t=pc(t===void 0?e.length-1:t,0),function(){for(var n=arguments,i=-1,s=pc(n.length-t,0),o=Array(s);++i<s;)o[i]=n[t+i];i=-1;for(var u=Array(t+1);++i<t;)u[i]=n[i];return u[t]=r(o),bA(e,this,u)}}dc.exports=wA});var mc=a((v_,gc)=>{"use strict";var vA=er(),hc=Ct(),xA=De(),IA=hc?function(e,t){return hc(e,"toString",{configurable:!0,enumerable:!1,value:vA(t),writable:!0})}:xA;gc.exports=IA});var wc=a((x_,bc)=>{"use strict";var AA=800,qA=16,PA=Date.now;function EA(e){var t=0,r=0;return function(){var n=PA(),i=qA-(n-r);if(r=n,i>0){if(++t>=AA)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}bc.exports=EA});var xc=a((I_,vc)=>{"use strict";var OA=mc(),_A=wc(),TA=_A(OA);vc.exports=TA});var Ac=a((A_,Ic)=>{"use strict";var SA=De(),jA=yc(),kA=xc();function RA(e,t){return kA(jA(e,t,SA),e+"")}Ic.exports=RA});var Pc=a((q_,qc)=>{"use strict";function CA(e,t,r,n){for(var i=e.length,s=r+(n?1:-1);n?s--:++s<i;)if(t(e[s],s,e))return s;return-1}qc.exports=CA});var Oc=a((P_,Ec)=>{"use strict";function MA(e){return e!==e}Ec.exports=MA});var Tc=a((E_,_c)=>{"use strict";function NA(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1}_c.exports=NA});var jc=a((O_,Sc)=>{"use strict";var DA=Pc(),$A=Oc(),FA=Tc();function LA(e,t,r){return t===t?FA(e,t,r):DA(e,$A,r)}Sc.exports=LA});var Rc=a((__,kc)=>{"use strict";var VA=jc();function UA(e,t){var r=e==null?0:e.length;return!!r&&VA(e,t,0)>-1}kc.exports=UA});var Mc=a((T_,Cc)=>{"use strict";function BA(e,t,r){for(var n=-1,i=e==null?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}Cc.exports=BA});var Dc=a((S_,Nc)=>{"use strict";function GA(){}Nc.exports=GA});var Fc=a((j_,$c)=>{"use strict";var mr=Kt(),zA=Dc(),KA=ut(),JA=1/0,HA=mr&&1/KA(new mr([,-0]))[1]==JA?function(e){return new mr(e)}:zA;$c.exports=HA});var Vc=a((k_,Lc)=>{"use strict";var WA=rr(),YA=Rc(),ZA=Mc(),XA=nr(),QA=Fc(),eq=ut(),tq=200;function rq(e,t,r){var n=-1,i=YA,s=e.length,o=!0,u=[],f=u;if(r)o=!1,i=ZA;else if(s>=tq){var l=t?null:QA(e);if(l)return eq(l);o=!1,i=XA,f=new WA}else f=t?[]:u;e:for(;++n<s;){var p=e[n],b=t?t(p):p;if(p=r||p!==0?p:0,o&&b===b){for(var c=f.length;c--;)if(f[c]===b)continue e;t&&f.push(b),u.push(p)}else i(f,b,r)||(f!==u&&f.push(b),u.push(p))}return u}Lc.exports=rq});var Bc=a((R_,Uc)=>{"use strict";var nq=Q(),iq=G();function sq(e){return iq(e)&&nq(e)}Uc.exports=sq});var zc=a((C_,Gc)=>{"use strict";var oq=cc(),aq=Ac(),uq=Vc(),cq=Bc(),fq=aq(function(e){return uq(oq(e,1,cq,!0))});Gc.exports=fq});var Jc=a((M_,Kc)=>{"use strict";var lq=pt();function pq(e,t){return lq(t,function(r){return e[r]})}Kc.exports=pq});var Wc=a((N_,Hc)=>{"use strict";var dq=Jc(),yq=ee();function hq(e){return e==null?[]:dq(e,yq(e))}Hc.exports=hq});var N=a((D_,Yc)=>{"use strict";var dt;if(typeof Vr=="function")try{dt={clone:So(),constant:er(),each:Ko(),filter:mu(),has:xu(),isArray:R(),isEmpty:Au(),isFunction:Pe(),isUndefined:Pu(),keys:ee(),map:Tu(),reduce:Mu(),size:ec(),transform:rc(),union:zc(),values:Wc()}}catch{}dt||(dt=window._);Yc.exports=dt});var yt=a((F_,ef)=>{"use strict";var q=N();ef.exports=O;var gq="\0",ue="\0",Zc="";function O(e){this._isDirected=q.has(e,"directed")?e.directed:!0,this._isMultigraph=q.has(e,"multigraph")?e.multigraph:!1,this._isCompound=q.has(e,"compound")?e.compound:!1,this._label=void 0,this._defaultNodeLabelFn=q.constant(void 0),this._defaultEdgeLabelFn=q.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[ue]={}),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(e){return this._label=e,this};O.prototype.graph=function(){return this._label};O.prototype.setDefaultNodeLabel=function(e){return q.isFunction(e)||(e=q.constant(e)),this._defaultNodeLabelFn=e,this};O.prototype.nodeCount=function(){return this._nodeCount};O.prototype.nodes=function(){return q.keys(this._nodes)};O.prototype.sources=function(){var e=this;return q.filter(this.nodes(),function(t){return q.isEmpty(e._in[t])})};O.prototype.sinks=function(){var e=this;return q.filter(this.nodes(),function(t){return q.isEmpty(e._out[t])})};O.prototype.setNodes=function(e,t){var r=arguments,n=this;return q.each(e,function(i){r.length>1?n.setNode(i,t):n.setNode(i)}),this};O.prototype.setNode=function(e,t){return q.has(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=ue,this._children[e]={},this._children[ue][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)};O.prototype.node=function(e){return this._nodes[e]};O.prototype.hasNode=function(e){return q.has(this._nodes,e)};O.prototype.removeNode=function(e){var t=this;if(q.has(this._nodes,e)){var r=function(n){t.removeEdge(t._edgeObjs[n])};delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],q.each(this.children(e),function(n){t.setParent(n)}),delete this._children[e]),q.each(q.keys(this._in[e]),r),delete this._in[e],delete this._preds[e],q.each(q.keys(this._out[e]),r),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this};O.prototype.setParent=function(e,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(q.isUndefined(t))t=ue;else{t+="";for(var r=t;!q.isUndefined(r);r=this.parent(r))if(r===e)throw new Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this};O.prototype._removeFromParentsChildList=function(e){delete this._children[this._parent[e]][e]};O.prototype.parent=function(e){if(this._isCompound){var t=this._parent[e];if(t!==ue)return t}};O.prototype.children=function(e){if(q.isUndefined(e)&&(e=ue),this._isCompound){var t=this._children[e];if(t)return q.keys(t)}else{if(e===ue)return this.nodes();if(this.hasNode(e))return[]}};O.prototype.predecessors=function(e){var t=this._preds[e];if(t)return q.keys(t)};O.prototype.successors=function(e){var t=this._sucs[e];if(t)return q.keys(t)};O.prototype.neighbors=function(e){var t=this.predecessors(e);if(t)return q.union(t,this.successors(e))};O.prototype.isLeaf=function(e){var t;return this.isDirected()?t=this.successors(e):t=this.neighbors(e),t.length===0};O.prototype.filterNodes=function(e){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var r=this;q.each(this._nodes,function(s,o){e(o)&&t.setNode(o,s)}),q.each(this._edgeObjs,function(s){t.hasNode(s.v)&&t.hasNode(s.w)&&t.setEdge(s,r.edge(s))});var n={};function i(s){var o=r.parent(s);return o===void 0||t.hasNode(o)?(n[s]=o,o):o in n?n[o]:i(o)}return this._isCompound&&q.each(t.nodes(),function(s){t.setParent(s,i(s))}),t};O.prototype.setDefaultEdgeLabel=function(e){return q.isFunction(e)||(e=q.constant(e)),this._defaultEdgeLabelFn=e,this};O.prototype.edgeCount=function(){return this._edgeCount};O.prototype.edges=function(){return q.values(this._edgeObjs)};O.prototype.setPath=function(e,t){var r=this,n=arguments;return q.reduce(e,function(i,s){return n.length>1?r.setEdge(i,s,t):r.setEdge(i,s),s}),this};O.prototype.setEdge=function(){var e,t,r,n,i=!1,s=arguments[0];typeof s=="object"&&s!==null&&"v"in s?(e=s.v,t=s.w,r=s.name,arguments.length===2&&(n=arguments[1],i=!0)):(e=s,t=arguments[1],r=arguments[3],arguments.length>2&&(n=arguments[2],i=!0)),e=""+e,t=""+t,q.isUndefined(r)||(r=""+r);var o=Le(this._isDirected,e,t,r);if(q.has(this._edgeLabels,o))return i&&(this._edgeLabels[o]=n),this;if(!q.isUndefined(r)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(t),this._edgeLabels[o]=i?n:this._defaultEdgeLabelFn(e,t,r);var u=mq(this._isDirected,e,t,r);return e=u.v,t=u.w,Object.freeze(u),this._edgeObjs[o]=u,Xc(this._preds[t],e),Xc(this._sucs[e],t),this._in[t][o]=u,this._out[e][o]=u,this._edgeCount++,this};O.prototype.edge=function(e,t,r){var n=arguments.length===1?br(this._isDirected,arguments[0]):Le(this._isDirected,e,t,r);return this._edgeLabels[n]};O.prototype.hasEdge=function(e,t,r){var n=arguments.length===1?br(this._isDirected,arguments[0]):Le(this._isDirected,e,t,r);return q.has(this._edgeLabels,n)};O.prototype.removeEdge=function(e,t,r){var n=arguments.length===1?br(this._isDirected,arguments[0]):Le(this._isDirected,e,t,r),i=this._edgeObjs[n];return i&&(e=i.v,t=i.w,delete this._edgeLabels[n],delete this._edgeObjs[n],Qc(this._preds[t],e),Qc(this._sucs[e],t),delete this._in[t][n],delete this._out[e][n],this._edgeCount--),this};O.prototype.inEdges=function(e,t){var r=this._in[e];if(r){var n=q.values(r);return t?q.filter(n,function(i){return i.v===t}):n}};O.prototype.outEdges=function(e,t){var r=this._out[e];if(r){var n=q.values(r);return t?q.filter(n,function(i){return i.w===t}):n}};O.prototype.nodeEdges=function(e,t){var r=this.inEdges(e,t);if(r)return r.concat(this.outEdges(e,t))};function Xc(e,t){e[t]?e[t]++:e[t]=1}function Qc(e,t){--e[t]||delete e[t]}function Le(e,t,r,n){var i=""+t,s=""+r;if(!e&&i>s){var o=i;i=s,s=o}return i+Zc+s+Zc+(q.isUndefined(n)?gq:n)}function mq(e,t,r,n){var i=""+t,s=""+r;if(!e&&i>s){var o=i;i=s,s=o}var u={v:i,w:s};return n&&(u.name=n),u}function br(e,t){return Le(e,t.v,t.w,t.name)}});var rf=a((L_,tf)=>{"use strict";tf.exports="2.1.8"});var sf=a((V_,nf)=>{"use strict";nf.exports={Graph:yt(),version:rf()}});var af=a((U_,of)=>{"use strict";var z=N(),bq=yt();of.exports={write:wq,read:Iq};function wq(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:vq(e),edges:xq(e)};return z.isUndefined(e.graph())||(t.value=z.clone(e.graph())),t}function vq(e){return z.map(e.nodes(),function(t){var r=e.node(t),n=e.parent(t),i={v:t};return z.isUndefined(r)||(i.value=r),z.isUndefined(n)||(i.parent=n),i})}function xq(e){return z.map(e.edges(),function(t){var r=e.edge(t),n={v:t.v,w:t.w};return z.isUndefined(t.name)||(n.name=t.name),z.isUndefined(r)||(n.value=r),n})}function Iq(e){var t=new bq(e.options).setGraph(e.value);return z.each(e.nodes,function(r){t.setNode(r.v,r.value),r.parent&&t.setParent(r.v,r.parent)}),z.each(e.edges,function(r){t.setEdge({v:r.v,w:r.w,name:r.name},r.value)}),t}});var cf=a((B_,uf)=>{"use strict";var ht=N();uf.exports=Aq;function Aq(e){var t={},r=[],n;function i(s){ht.has(t,s)||(t[s]=!0,n.push(s),ht.each(e.successors(s),i),ht.each(e.predecessors(s),i))}return ht.each(e.nodes(),function(s){n=[],i(s),n.length&&r.push(n)}),r}});var wr=a((G_,lf)=>{"use strict";var ff=N();lf.exports=$;function $(){this._arr=[],this._keyIndices={}}$.prototype.size=function(){return this._arr.length};$.prototype.keys=function(){return this._arr.map(function(e){return e.key})};$.prototype.has=function(e){return ff.has(this._keyIndices,e)};$.prototype.priority=function(e){var t=this._keyIndices[e];if(t!==void 0)return this._arr[t].priority};$.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key};$.prototype.add=function(e,t){var r=this._keyIndices;if(e=String(e),!ff.has(r,e)){var n=this._arr,i=n.length;return r[e]=i,n.push({key:e,priority:t}),this._decrease(i),!0}return!1};$.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key};$.prototype.decrease=function(e,t){var r=this._keyIndices[e];if(t>this._arr[r].priority)throw new Error("New priority is greater than current priority. Key: "+e+" Old: "+this._arr[r].priority+" New: "+t);this._arr[r].priority=t,this._decrease(r)};$.prototype._heapify=function(e){var t=this._arr,r=2*e,n=r+1,i=e;r<t.length&&(i=t[r].priority<t[i].priority?r:i,n<t.length&&(i=t[n].priority<t[i].priority?n:i),i!==e&&(this._swap(e,i),this._heapify(i)))};$.prototype._decrease=function(e){for(var t=this._arr,r=t[e].priority,n;e!==0&&(n=e>>1,!(t[n].priority<r));)this._swap(e,n),e=n};$.prototype._swap=function(e,t){var r=this._arr,n=this._keyIndices,i=r[e],s=r[t];r[e]=s,r[t]=i,n[s.key]=e,n[i.key]=t}});var vr=a((z_,pf)=>{"use strict";var qq=N(),Pq=wr();pf.exports=Oq;var Eq=qq.constant(1);function Oq(e,t,r,n){return _q(e,String(t),r||Eq,n||function(i){return e.outEdges(i)})}function _q(e,t,r,n){var i={},s=new Pq,o,u,f=function(l){var p=l.v!==o?l.v:l.w,b=i[p],c=r(l),w=u.distance+c;if(c<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+l+" Weight: "+c);w<b.distance&&(b.distance=w,b.predecessor=o,s.decrease(p,w))};for(e.nodes().forEach(function(l){var p=l===t?0:Number.POSITIVE_INFINITY;i[l]={distance:p},s.add(l,p)});s.size()>0&&(o=s.removeMin(),u=i[o],u.distance!==Number.POSITIVE_INFINITY);)n(o).forEach(f);return i}});var yf=a((K_,df)=>{"use strict";var Tq=vr(),Sq=N();df.exports=jq;function jq(e,t,r){return Sq.transform(e.nodes(),function(n,i){n[i]=Tq(e,i,t,r)},{})}});var xr=a((J_,gf)=>{"use strict";var hf=N();gf.exports=kq;function kq(e){var t=0,r=[],n={},i=[];function s(o){var u=n[o]={onStack:!0,lowlink:t,index:t++};if(r.push(o),e.successors(o).forEach(function(p){hf.has(n,p)?n[p].onStack&&(u.lowlink=Math.min(u.lowlink,n[p].index)):(s(p),u.lowlink=Math.min(u.lowlink,n[p].lowlink))}),u.lowlink===u.index){var f=[],l;do l=r.pop(),n[l].onStack=!1,f.push(l);while(o!==l);i.push(f)}}return e.nodes().forEach(function(o){hf.has(n,o)||s(o)}),i}});var bf=a((H_,mf)=>{"use strict";var Rq=N(),Cq=xr();mf.exports=Mq;function Mq(e){return Rq.filter(Cq(e),function(t){return t.length>1||t.length===1&&e.hasEdge(t[0],t[0])})}});var vf=a((W_,wf)=>{"use strict";var Nq=N();wf.exports=$q;var Dq=Nq.constant(1);function $q(e,t,r){return Fq(e,t||Dq,r||function(n){return e.outEdges(n)})}function Fq(e,t,r){var n={},i=e.nodes();return i.forEach(function(s){n[s]={},n[s][s]={distance:0},i.forEach(function(o){s!==o&&(n[s][o]={distance:Number.POSITIVE_INFINITY})}),r(s).forEach(function(o){var u=o.v===s?o.w:o.v,f=t(o);n[s][u]={distance:f,predecessor:s}})}),i.forEach(function(s){var o=n[s];i.forEach(function(u){var f=n[u];i.forEach(function(l){var p=f[s],b=o[l],c=f[l],w=p.distance+b.distance;w<c.distance&&(c.distance=w,c.predecessor=b.predecessor)})})}),n}});var Ir=a((Y_,If)=>{"use strict";var Ve=N();If.exports=xf;xf.CycleException=gt;function xf(e){var t={},r={},n=[];function i(s){if(Ve.has(r,s))throw new gt;Ve.has(t,s)||(r[s]=!0,t[s]=!0,Ve.each(e.predecessors(s),i),delete r[s],n.push(s))}if(Ve.each(e.sinks(),i),Ve.size(t)!==e.nodeCount())throw new gt;return n}function gt(){}gt.prototype=new Error});var Pf=a((Z_,qf)=>{"use strict";var Af=Ir();qf.exports=Lq;function Lq(e){try{Af(e)}catch(t){if(t instanceof Af.CycleException)return!1;throw t}return!0}});var Ar=a((X_,Of)=>{"use strict";var mt=N();Of.exports=Vq;function Vq(e,t,r){mt.isArray(t)||(t=[t]);var n=(e.isDirected()?e.successors:e.neighbors).bind(e),i=[],s={};return mt.each(t,function(o){if(!e.hasNode(o))throw new Error("Graph does not have node: "+o);Ef(e,o,r==="post",s,n,i)}),i}function Ef(e,t,r,n,i,s){mt.has(n,t)||(n[t]=!0,r||s.push(t),mt.each(i(t),function(o){Ef(e,o,r,n,i,s)}),r&&s.push(t))}});var Tf=a((Q_,_f)=>{"use strict";var Uq=Ar();_f.exports=Bq;function Bq(e,t){return Uq(e,t,"post")}});var jf=a((eT,Sf)=>{"use strict";var Gq=Ar();Sf.exports=zq;function zq(e,t){return Gq(e,t,"pre")}});var Cf=a((tT,Rf)=>{"use strict";var kf=N(),Kq=yt(),Jq=wr();Rf.exports=Hq;function Hq(e,t){var r=new Kq,n={},i=new Jq,s;function o(f){var l=f.v===s?f.w:f.v,p=i.priority(l);if(p!==void 0){var b=t(f);b<p&&(n[l]=s,i.decrease(l,b))}}if(e.nodeCount()===0)return r;kf.each(e.nodes(),function(f){i.add(f,Number.POSITIVE_INFINITY),r.setNode(f)}),i.decrease(e.nodes()[0],0);for(var u=!1;i.size()>0;){if(s=i.removeMin(),kf.has(n,s))r.setEdge(s,n[s]);else{if(u)throw new Error("Input graph is not connected: "+e);u=!0}e.nodeEdges(s).forEach(o)}return r}});var Nf=a((rT,Mf)=>{"use strict";Mf.exports={components:cf(),dijkstra:vr(),dijkstraAll:yf(),findCycles:bf(),floydWarshall:vf(),isAcyclic:Pf(),postorder:Tf(),preorder:jf(),prim:Cf(),tarjan:xr(),topsort:Ir()}});var qr=a((nT,$f)=>{"use strict";var Df=sf();$f.exports={Graph:Df.Graph,json:af(),alg:Nf(),version:Df.version}});var rl=Ur(qr());var bt=class{constructor(){this.eventListeners=new Map}addEventListener(t,r){this.eventListeners.has(t)||this.eventListeners.set(t,new Set),this.eventListeners.get(t).add(r)}removeEventListener(t,r){this.eventListeners.get(t)?.delete(r)}emitEvent(t){let r=this.eventListeners.get(t.type);if(r)for(let n of r)try{n(t)}catch(i){console.error("Error in data instance event listener:",i)}}};function Ff(e,t,r){let n=e.atoms.length,i=Array.isArray(t?.types)?t.types:[],o=(t?.tuples?.length??0)>0&&i.length!==n;if(!o&&i.length===n)return{tuple:{...e,types:[...i]},relationTypes:[...i]};let u=Array.isArray(e.types)?e.types:[],f=e.atoms.map((l,p)=>r(l)??u[p]??"untyped");return{tuple:{...e,types:f},relationTypes:o?[]:f}}function te(e){if(!Object.prototype.hasOwnProperty.call(e,"$pyretValue"))return;let t=e.$pyretValue;if(t?.kind==="nothing"||t?.kind==="object"||t?.kind==="tuple"||t?.kind==="raw-array"||t?.kind==="table")return{kind:t.kind};if(t?.kind==="reference"&&typeof t.unrestricted=="boolean")return{kind:t.kind,unrestricted:t.unrestricted};if(t?.kind==="string-dict"&&typeof t.mutable=="boolean"&&typeof t.sealed=="boolean"&&(t.mutable||!t.sealed))return{kind:t.kind,mutable:t.mutable,sealed:t.sealed};throw new Error("Malformed reconstructed Pyret value")}function Pr(e){if(!e||typeof e!="object"||"dict"in e)return!1;let t=e;return Number.isInteger(t.state)&&"value"in t&&!!t.anns&&Array.isArray(t.anns.anns)&&typeof t.anns.check=="function"&&typeof t.anns.addAnn=="function"&&Object.keys(t).every(r=>r==="state"||r==="value"||r==="anns")}function Lf(e){if(Pr(e)){if(e.state!==2)throw new Error("Only initialized mutable Pyret references are supported");return{kind:"reference",unrestricted:e.anns.anns.every(t=>t.ann?.name==="Any")}}}function Vf(e){return!!e.dict&&typeof e.dict=="object"&&Object.keys(e.dict).length===0&&typeof e.brand=="function"&&typeof e.extendWith=="function"&&!("updateDict"in e)&&Object.keys(e).every(t=>t==="dict"||t==="brands")}function wt(e){return typeof e=="function"||e!==null&&typeof e=="object"&&("app"in e||"meth"in e&&"full_meth"in e)}function Uf(e,t){let r=[];for(let n in e)(t||!wt(e[n]))&&r.push(n);return r}var vt=e=>typeof e=="string"&&/^-?(0|[1-9][0-9]*)$/.test(e);function J(e,t=1n){if(t===0n)throw new Error("Invalid Pyret rational denominator");t<0n&&(e=-e,t=-t);let r=e<0n?-e:e,n=t;for(;n!==0n;){let i=r%n;r=n,n=i}return e/=r,t/=r,t===1n?{version:1,kind:"integer",value:e.toString()}:{version:1,kind:"rational",numerator:e.toString(),denominator:t.toString()}}function Bf(e){let t=e;if(t?.version===1){if(t.kind==="integer"&&vt(t.value))return J(BigInt(t.value));if(t.kind==="rational"&&vt(t.numerator)&&vt(t.denominator))return J(BigInt(t.numerator),BigInt(t.denominator));if(t.kind==="roughnum"&&typeof t.value=="string"&&/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:e[+-]?[0-9]+)?$/i.test(t.value)&&Number.isFinite(Number(t.value)))return{version:1,kind:"roughnum",value:t.value}}throw new Error("Malformed Pyret number")}function Gf(e){if(e.startsWith("~"))return Bf({version:1,kind:"roughnum",value:e.slice(1)});let t=/^(-?(?:0|[1-9][0-9]*))\/(-?(?:0|[1-9][0-9]*))$/.exec(e);if(t)return J(BigInt(t[1]),BigInt(t[2]));let r=/^(-?(?:0|[1-9][0-9]*))(?:\.([0-9]+))?(?:e([+-]?[0-9]+))?$/i.exec(e);if(!r)throw new Error("Malformed Pyret number label");let n=BigInt(r[3]??"0")-BigInt(r[2]?.length??0),i=BigInt(r[1]+(r[2]??""));return n>=0n?J(i*10n**n):J(i,10n**-n)}function Er(e){if(typeof e=="number"&&Number.isInteger(e))return BigInt(e).toString();if(typeof e=="bigint")return e.toString();if(!e||typeof e!="object")return;let t=e;if(typeof t.isInteger=="function"&&t.isInteger()&&typeof t.isExact=="function"&&t.isExact()){let r=t.toString();if(vt(r))return r}}function H(e){if(e&&typeof e=="object"){if("$pyretNumber"in e)return Bf(e.$pyretNumber);if("n"in e&&"d"in e){let n=Er(e.n),i=Er(e.d);if(n!==void 0&&i!==void 0)return J(BigInt(n),BigInt(i))}let r=e;if(typeof r.isRoughnum=="function"&&r.isRoughnum()){if(typeof r.n!="number"||!Number.isFinite(r.n))throw new Error("Invalid Pyret roughnum");return{version:1,kind:"roughnum",value:Object.is(r.n,-0)?"-0":String(r.n)}}}let t=Er(e);if(t!==void 0)return J(BigInt(t));if(typeof e=="number"){if(!Number.isFinite(e))throw new Error("Invalid Pyret number");let[r,n="0"]=String(e).split("e"),i=r.split(".")[1]?.length??0,s=Number(n)-i,o=BigInt(r.replace(".",""));return s>=0?J(o*10n**BigInt(s)):J(o,10n**BigInt(-s))}}function xt(e){switch(e.kind){case"integer":return e.value;case"rational":return`${e.numerator}/${e.denominator}`;case"roughnum":return`~${e.value}`}}function zf(e){if(e.kind==="integer"){let t=BigInt(e.value);if(t>=BigInt(Number.MIN_SAFE_INTEGER)&&t<=BigInt(Number.MAX_SAFE_INTEGER))return Number(t)}return{$pyretNumber:e}}var Or="pyret:field:v1:",_r="pyret:constructor:v1:";function Kf(e,t,r){return _r+JSON.stringify([e,t,r])}function V(e){if(!e.startsWith(_r))return;let t=JSON.parse(e.slice(_r.length));if(!Array.isArray(t)||t.length!==3||typeof t[0]!="string"||!t[0]||!Number.isSafeInteger(t[1])||t[1]<0||typeof t[2]!="string"||!t[2])throw new Error("Malformed Pyret constructor identity");return{scope:t[0],index:t[1],name:t[2]}}function U(e){return V(e)?.name??e}function W(e){let{$name:t,$arity:r}=e;if(typeof t!="string"||!Number.isInteger(r)||r<-1)return;let n=e.$constructor?.$fieldNames;if(r===-1)return{name:t,arity:r,fields:[]};if(!Array.isArray(n)||n.length!==r||n.some(o=>typeof o!="string")||new Set(n).size!==n.length)throw new Error(`Invalid Pyret constructor metadata for ${t}`);let i=e.$mut_fields_mask;if(i!==void 0&&(!Array.isArray(i)||i.length!==r||i.some(o=>typeof o!="boolean")))throw new Error(`Invalid Pyret mutable field mask for ${t}`);let s=i?.flatMap((o,u)=>o?[u]:[])??[];return{name:t,arity:r,fields:n,...s.length?{mutableFields:s}:{}}}function Jf(e,t){return Or+JSON.stringify([e.name,t,e.fields[t]])}function we(e){if(!e.startsWith(Or))return;let t=JSON.parse(e.slice(Or.length));if(!Array.isArray(t)||t.length!==3||typeof t[0]!="string"||!Number.isInteger(t[1])||t[1]<0||typeof t[2]!="string")throw new Error("Malformed Pyret field ID");return{name:t[0],position:t[1],field:t[2]}}var Wf=new Set(["Number","String","Boolean"]),Tr=new Set([...Wf,"Index","Nothing","Object","Tuple","RawArray","Reference","StringDict","MutableStringDict","Table"]);function Ue(e){if(e?.type!=="Index"||!/^(0|[1-9][0-9]*)$/.test(e.label)||!Number.isSafeInteger(Number(e.label)))throw new Error("Malformed Pyret position label");return Number(e.label)}function Hf(e,t,r){if(e.has(t)&&e.get(t)!==r||[...e].some(([n,i])=>n!==t&&i===r))throw new Error("Conflicting Pyret field positions");e.set(t,r)}function Be(e,t){let r=[];for(let n=0;n<e.size;n++){if(!e.has(n))throw new Error(`Incomplete Pyret ${t}: positions must be contiguous from zero`);r.push(e.get(n))}return r}function Wq(e){let t={fields:new Map,targets:new Set,constructors:new Map,objectPositions:new Map,elements:new Map,columns:new Map,rows:new Map,references:new Map,entries:new Map,mutableFields:new Map,sealed:new Set,unrestricted:new Set,nullary:new Set},r=new Map(e.getAtoms().map(n=>[n.id,n]));for(let n of e.getRelations()){let i=we(n.id);if(i){if(n.name!==i.field)throw new Error("Pyret field ID disagrees with its name");let s=t.constructors.get(i.name)??new Map;Hf(s,i.field,i.position),t.constructors.set(i.name,s)}for(let s of n.tuples){if(!s.atoms.length||s.atoms.some(m=>!r.has(m)))throw new Error("Malformed Pyret relation tuple");let[o,u,f,l]=s.atoms,p=r.get(o).type,b=s.atoms.length;for(let m of s.atoms.slice(1))t.targets.add(m);if(!i&&p!=="Object"){if(n.name==="sealed"&&p==="MutableStringDict"){if(b!==1)throw new Error("Malformed Pyret sealed fact");t.sealed.add(o);continue}if(n.name==="unrestricted"&&p==="Reference"){if(b!==1)throw new Error("Malformed Pyret unrestricted fact");t.unrestricted.add(o);continue}if(n.name==="nullary-constructor"&&!Tr.has(p)){if(b!==1)throw new Error("Malformed Pyret nullary constructor fact");t.nullary.add(o);continue}if(n.name==="mutable-field"&&!Tr.has(p)){if(b!==2)throw new Error("Malformed Pyret mutable field positions");let m=t.mutableFields.get(o)??new Set;m.add(Ue(r.get(u))),t.mutableFields.set(o,m);continue}}if(b<2)throw new Error("Malformed Pyret unary relation");if(p==="Table"){if(i)throw new Error("Pyret table relations must have opaque IDs");let m=Ue(r.get(u));if(n.name==="column"&&b===3&&r.get(f)?.type==="String"){let y=t.columns.get(o)??new Map;if(y.has(m)&&y.get(m)!==f)throw new Error("Conflicting Pyret table column positions");y.set(m,f),t.columns.set(o,y)}else if(n.name==="row"){let y=t.rows.get(o)??new Map,d=s.atoms.slice(2);if(y.has(m)&&JSON.stringify(y.get(m))!==JSON.stringify(d))throw new Error("Conflicting Pyret table row positions");if(d.some(v=>r.get(v)?.type==="Index"))throw new Error("Pyret table cells cannot be positions");y.set(m,d),t.rows.set(o,y)}else throw new Error("Malformed Pyret table relation");continue}if(p==="StringDict"||p==="MutableStringDict"){if(n.name!=="entry"||b!==4||r.get(f)?.type!=="String")throw new Error("Malformed Pyret dictionary entry");let m=Ue(r.get(u)),y=t.entries.get(o)??new Map,d=y.get(m);if(d&&(d.key!==f||d.value!==l))throw new Error("Conflicting Pyret dictionary entry positions");y.set(m,{key:f,value:l}),t.entries.set(o,y);continue}if(p==="Reference"){if(n.name!=="target"||b!==2)throw new Error("Malformed Pyret reference target");if(t.references.has(o)&&t.references.get(o)!==u)throw new Error("Conflicting Pyret reference targets");t.references.set(o,u);continue}if(p==="Tuple"||p==="RawArray"){if(n.name!=="element"||b!==3)throw new Error("Malformed Pyret indexed element");let m=Ue(r.get(u)),y=t.elements.get(o)??new Map;if(y.has(m)&&y.get(m)!==f)throw new Error("Conflicting Pyret element positions");y.set(m,f),t.elements.set(o,y);continue}if(Tr.has(p)&&p!=="Object")throw new Error("Pyret primitive cannot have fields");if(i&&(p!==i.name||b!==2))throw new Error("Pyret field ID disagrees with its source constructor");if(p==="Object"){if(b!==3||i)throw new Error("Pyret object field must have a position and one value");let m=t.objectPositions.get(o)??new Map;Hf(m,n.name,Ue(r.get(u))),t.objectPositions.set(o,m)}let c=t.fields.get(o)??new Map,w=i?.field??n.name,h=c.get(w)??[];for(let m of p==="Object"?[f]:s.atoms.slice(1))h.includes(m)||h.push(m);c.set(w,h),t.fields.set(o,c)}}return t}function Yq(e,t){switch(e.type){case"Nothing":return{kind:"nothing"};case"Object":return{kind:"object"};case"Tuple":return{kind:"tuple"};case"RawArray":return{kind:"raw-array"};case"Table":return{kind:"table"};case"Reference":return{kind:"reference",unrestricted:t.unrestricted.has(e.id)};case"StringDict":case"MutableStringDict":return{kind:"string-dict",mutable:e.type==="MutableStringDict",sealed:t.sealed.has(e.id)};default:return}}function Zq(e){switch(e.type){case"Number":return zf(Gf(e.label));case"Boolean":if(e.label!=="true"&&e.label!=="false")throw new Error("Malformed Pyret boolean label");return e.label==="true";default:return e.label}}function Sr(e,t){let r=/^\d+$/.test(e),n=/^\d+$/.test(t);return r&&n?parseInt(e,10)-parseInt(t,10):e.localeCompare(t)}function Xq(e,t){let n=re.getGlobalConstructorCache().get(e);if(n&&n.length){let i=n.filter(o=>t.includes(o)),s=t.filter(o=>!n.includes(o));return[...i,...s.sort(Sr)]}return[...t].sort(Sr)}function Qq(e){return e.length>0&&e.every(t=>/^\d+$/.test(t))}function jr(e,t,r={}){let n=It(e,t===void 0?void 0:[t],r);return n.length?n[0]:null}function It(e,t,r={}){let n=new Map(e.getAtoms().map(d=>[d.id,d])),i=Wq(e),{fields:s,targets:o,elements:u,references:f,entries:l}=i,p=new Map,b=0,c=new Set,w=new Map,h=d=>{if(w.has(d)){if(!r.allowContainerCycles&&p.get(d)===b&&c.size)throw new Error("Cyclic Pyret containers are not supported");return w.get(d)}let v=n.get(d);if(!v)throw new Error("Unknown Pyret atom ID: "+d);if(Wf.has(v.type)){let P=Zq(v);return w.set(d,P),P}let x=Yq(v,i);if(x?.kind==="nothing"){let P={$pyretValue:x};return w.set(d,P),P}if(p.set(d,b),x?.kind==="table"){let P=Be(i.columns.get(d)??new Map,"table columns").map(E=>n.get(E).label);if(new Set(P).size!==P.length)throw new Error("Duplicate Pyret table column name");let g=Be(i.rows.get(d)??new Map,"table rows");if(g.some(E=>E.length!==P.length))throw new Error("Pyret table row width must match its columns");let I=[],A={$pyretValue:x,dict:{"_header-raw-array":P,"_rows-raw-array":I}};w.set(d,A),c.add(d);for(let E of g)I.push(E.map(h));return c.delete(d),p.delete(d),A}if(x?.kind==="string-dict"){let P=l.get(d)??new Map,g=Be(P,"dictionary entries"),I={$pyretValue:x,entries:[]};w.set(d,I);let A=new Set;x.mutable&&b++;for(let E of g){let M=n.get(E.key).label;if(A.has(M))throw new Error("Duplicate Pyret dictionary key");A.add(M),I.entries.push([M,h(E.value)])}return x.mutable&&b--,p.delete(d),I}if(x?.kind==="reference"){let P=f.get(d);if(P===void 0)throw new Error("Incomplete Pyret reference target");let g={$pyretValue:x};return w.set(d,g),b++,g.value=h(P),b--,p.delete(d),g}if(x?.kind==="raw-array"||x?.kind==="tuple"){let P=u.get(d)??new Map,g=Be(P,"container elements"),I=[],A=x.kind==="raw-array"?I:{vals:I};w.set(d,A),c.add(d);for(let E of g)I.push(h(E));return c.delete(d),p.delete(d),A}let _=s.get(d)??new Map,T=Array.from(_.keys()),C=i.constructors.get(v.type),D=x?void 0:i.nullary.has(d)?0:C?.size??(T.length?void 0:-1),B=[...i.mutableFields.get(d)??[]];if(B.some(P=>D===void 0||P>=D))throw new Error("Malformed Pyret mutable field positions");if(!x&&D===void 0&&Qq(T)){let P=[];w.set(d,P);let g=T.slice().sort(Sr);for(let I of g){let A=_.get(I)??[];P.push(A.length===1?h(A[0]):A.map(E=>h(E)))}return p.delete(d),P}let F={dict:Object.create(null),...x?.kind==="object"?{$pyretValue:x}:{$name:v.type}};w.set(d,F);let K;if(x?.kind==="object"){let P=i.objectPositions.get(d)??new Map;K=Be(new Map([...P].map(([g,I])=>[I,g])),"object fields")}else if(D!==void 0){let P=C??new Map,g=Math.max(0,D);if(T.length!==g||P.size!==g||[...P].some(([I,A])=>A>=g||!_.has(I)))throw new Error("Incomplete Pyret constructor fields");K=[...P].sort((I,A)=>I[1]-A[1]).map(([I])=>I),F.$arity=D,F.$constructor={$fieldNames:K},B.length&&(F.$mut_fields_mask=K.map((I,A)=>B.includes(A)))}else K=Xq(v.type,T);for(let P of K){let g=_.get(P)??[];if((x?.kind==="object"||D!==void 0)&&g.length!==1)throw new Error("Pyret constructor field must have one value");g.length===1?F.dict[P]=h(g[0]):F.dict[P]=g.map(I=>h(I))}for(let P of B){let g=F.dict[K[P]];if(!g||typeof g!="object"||te(g)?.kind!=="reference")throw new Error("Pyret mutable field must contain a reference")}return p.delete(d),F};if(t!==void 0)return t.map(d=>{if(!n.has(d))throw new Error("Unknown Pyret root ID: "+d);return h(d)});let m=e.getAtoms().map(d=>d.id);if(!m.length)return[];let y=m.filter(d=>!o.has(d));if(y.length!==1)throw new Error("Pyret graph has no unique root; supply an explicit root ID");return[h(y[0])]}function ve(e,t,r){if(!e||typeof e!="object"||Array.isArray(e)||!("$name"in e)||U(String(e.$name))!==t)return!1;let n=W(e);return!!n&&!n.mutableFields?.length&&n.arity===(r.length||-1)&&n.fields.length===r.length&&n.fields.every((i,s)=>i===r[s])&&!!e.dict&&r.every(i=>Object.prototype.hasOwnProperty.call(e.dict,i))}function Ge(e){let t=ve(e,"list-set",["elems"])?"list-set":ve(e,"tree-set",["elems"])?"tree-set":void 0;if(!t)return;let r=e.dict.elems,n=[],i=new Set,s=()=>new Error(`Malformed Pyret ${t} backing structure`);if(t==="list-set"){let o=r;for(;!ve(o,"empty",[]);){if(!ve(o,"link",["first","rest"])||i.has(o))throw s();i.add(o),n.push(o.dict.first),o=o.dict.rest}}else{let o=[{node:r,phase:"enter"}];for(;o.length;){let{node:u,phase:f}=o.pop();if(!ve(u,"leaf",[])){if(!ve(u,"branch",["value","h","left","right"]))throw s();if(f==="exit")i.delete(u);else if(f==="emit")n.push(u.dict.value);else{if(i.has(u))throw s();i.add(u),o.push({node:u,phase:"exit"},{node:u.dict.right,phase:"enter"},{node:u,phase:"emit"},{node:u.dict.left,phase:"enter"})}}}}return{kind:t,elements:n}}function Yf(e,t){return e.kind==="tree-set"?`[tree-set: ${e.elements.map(t).join(", ")}]`:"[list-set: ]"+[...e.elements].reverse().map(r=>`.add(${t(r)})`).join("")}function At(e){return!!e.dict&&typeof e.dict=="object"&&"_header-raw-array"in e.dict&&"_rows-raw-array"in e.dict&&(!e.brands||Object.keys(e.brands).some(t=>t.includes("brandtable")))}function qt(e){return Array.isArray(e.$rowData)&&!!e.$underlyingTable}function ce(e){let t=e.dict?.["_header-raw-array"],r=e.dict?.["_rows-raw-array"];if(!Array.isArray(t)||!Array.isArray(r)||Array.from(t).some(n=>typeof n!="string")||new Set(t).size!==t.length||Array.from(r).some(n=>!Array.isArray(n)||n.length!==t.length))throw new Error("Malformed Pyret table: unique string headers and rectangular rows required");return{headers:t,rows:r}}function Zf(e,t,r){let{headers:n,rows:i}=ce(e);if(!n.length)return i.length?`for fold(spytial-table from empty-table([list: ]), spytial-row from range(0, ${i.length})):
|
|
1
|
+
var hf=Object.create;var Kr=Object.defineProperty;var bf=Object.getOwnPropertyDescriptor;var wf=Object.getOwnPropertyNames;var vf=Object.getPrototypeOf,xf=Object.prototype.hasOwnProperty;var Jr=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var a=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var qf=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of wf(t))!xf.call(e,i)&&i!==r&&Kr(e,i,{get:()=>t[i],enumerable:!(n=bf(t,i))||n.enumerable});return e};var Hr=(e,t,r)=>(r=e!=null?hf(vf(e)):{},qf(t||!e||!e.__esModule?Kr(r,"default",{value:e,enumerable:!0}):r,e));var Yr=a((AA,Wr)=>{"use strict";function If(){this.__data__=[],this.size=0}Wr.exports=If});var We=a((PA,Zr)=>{"use strict";function Sf(e,t){return e===t||e!==e&&t!==t}Zr.exports=Sf});var Se=a((kA,Xr)=>{"use strict";var Af=We();function Pf(e,t){for(var r=e.length;r--;)if(Af(e[r][0],t))return r;return-1}Xr.exports=Pf});var en=a((EA,Qr)=>{"use strict";var kf=Se(),Ef=Array.prototype,Of=Ef.splice;function _f(e){var t=this.__data__,r=kf(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():Of.call(t,r,1),--this.size,!0}Qr.exports=_f});var rn=a((OA,tn)=>{"use strict";var Tf=Se();function jf(e){var t=this.__data__,r=Tf(t,e);return r<0?void 0:t[r][1]}tn.exports=jf});var sn=a((_A,nn)=>{"use strict";var Rf=Se();function Nf(e){return Rf(this.__data__,e)>-1}nn.exports=Nf});var an=a((TA,on)=>{"use strict";var Cf=Se();function Mf(e,t){var r=this.__data__,n=Cf(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}on.exports=Mf});var Ae=a((jA,un)=>{"use strict";var $f=Yr(),Df=en(),Ff=rn(),Lf=sn(),Vf=an();function pe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}pe.prototype.clear=$f;pe.prototype.delete=Df;pe.prototype.get=Ff;pe.prototype.has=Lf;pe.prototype.set=Vf;un.exports=pe});var ln=a((RA,cn)=>{"use strict";var Uf=Ae();function Bf(){this.__data__=new Uf,this.size=0}cn.exports=Bf});var pn=a((NA,fn)=>{"use strict";function Gf(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}fn.exports=Gf});var yn=a((CA,dn)=>{"use strict";function zf(e){return this.__data__.get(e)}dn.exports=zf});var gn=a((MA,mn)=>{"use strict";function Kf(e){return this.__data__.has(e)}mn.exports=Kf});var Mt=a(($A,hn)=>{"use strict";var Jf=typeof global=="object"&&global&&global.Object===Object&&global;hn.exports=Jf});var V=a((DA,bn)=>{"use strict";var Hf=Mt(),Wf=typeof self=="object"&&self&&self.Object===Object&&self,Yf=Hf||Wf||Function("return this")();bn.exports=Yf});var oe=a((FA,wn)=>{"use strict";var Zf=V(),Xf=Zf.Symbol;wn.exports=Xf});var In=a((LA,qn)=>{"use strict";var vn=oe(),xn=Object.prototype,Qf=xn.hasOwnProperty,ep=xn.toString,Pe=vn?vn.toStringTag:void 0;function tp(e){var t=Qf.call(e,Pe),r=e[Pe];try{e[Pe]=void 0;var n=!0}catch{}var i=ep.call(e);return n&&(t?e[Pe]=r:delete e[Pe]),i}qn.exports=tp});var An=a((VA,Sn)=>{"use strict";var rp=Object.prototype,np=rp.toString;function ip(e){return np.call(e)}Sn.exports=ip});var ae=a((UA,En)=>{"use strict";var Pn=oe(),sp=In(),op=An(),ap="[object Null]",up="[object Undefined]",kn=Pn?Pn.toStringTag:void 0;function cp(e){return e==null?e===void 0?up:ap:kn&&kn in Object(e)?sp(e):op(e)}En.exports=cp});var X=a((BA,On)=>{"use strict";function lp(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}On.exports=lp});var ke=a((GA,_n)=>{"use strict";var fp=ae(),pp=X(),dp="[object AsyncFunction]",yp="[object Function]",mp="[object GeneratorFunction]",gp="[object Proxy]";function hp(e){if(!pp(e))return!1;var t=fp(e);return t==yp||t==mp||t==dp||t==gp}_n.exports=hp});var jn=a((zA,Tn)=>{"use strict";var bp=V(),wp=bp["__core-js_shared__"];Tn.exports=wp});var Cn=a((KA,Nn)=>{"use strict";var $t=jn(),Rn=(function(){var e=/[^.]+$/.exec($t&&$t.keys&&$t.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function vp(e){return!!Rn&&Rn in e}Nn.exports=vp});var Dt=a((JA,Mn)=>{"use strict";var xp=Function.prototype,qp=xp.toString;function Ip(e){if(e!=null){try{return qp.call(e)}catch{}try{return e+""}catch{}}return""}Mn.exports=Ip});var Dn=a((HA,$n)=>{"use strict";var Sp=ke(),Ap=Cn(),Pp=X(),kp=Dt(),Ep=/[\\^$.*+?()[\]{}|]/g,Op=/^\[object .+?Constructor\]$/,_p=Function.prototype,Tp=Object.prototype,jp=_p.toString,Rp=Tp.hasOwnProperty,Np=RegExp("^"+jp.call(Rp).replace(Ep,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Cp(e){if(!Pp(e)||Ap(e))return!1;var t=Sp(e)?Np:Op;return t.test(kp(e))}$n.exports=Cp});var Ln=a((WA,Fn)=>{"use strict";function Mp(e,t){return e?.[t]}Fn.exports=Mp});var Q=a((YA,Vn)=>{"use strict";var $p=Dn(),Dp=Ln();function Fp(e,t){var r=Dp(e,t);return $p(r)?r:void 0}Vn.exports=Fp});var Ye=a((ZA,Un)=>{"use strict";var Lp=Q(),Vp=V(),Up=Lp(Vp,"Map");Un.exports=Up});var Ee=a((XA,Bn)=>{"use strict";var Bp=Q(),Gp=Bp(Object,"create");Bn.exports=Gp});var Kn=a((QA,zn)=>{"use strict";var Gn=Ee();function zp(){this.__data__=Gn?Gn(null):{},this.size=0}zn.exports=zp});var Hn=a((eP,Jn)=>{"use strict";function Kp(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}Jn.exports=Kp});var Yn=a((tP,Wn)=>{"use strict";var Jp=Ee(),Hp="__lodash_hash_undefined__",Wp=Object.prototype,Yp=Wp.hasOwnProperty;function Zp(e){var t=this.__data__;if(Jp){var r=t[e];return r===Hp?void 0:r}return Yp.call(t,e)?t[e]:void 0}Wn.exports=Zp});var Xn=a((rP,Zn)=>{"use strict";var Xp=Ee(),Qp=Object.prototype,ed=Qp.hasOwnProperty;function td(e){var t=this.__data__;return Xp?t[e]!==void 0:ed.call(t,e)}Zn.exports=td});var ei=a((nP,Qn)=>{"use strict";var rd=Ee(),nd="__lodash_hash_undefined__";function id(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=rd&&t===void 0?nd:t,this}Qn.exports=id});var ri=a((iP,ti)=>{"use strict";var sd=Kn(),od=Hn(),ad=Yn(),ud=Xn(),cd=ei();function de(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}de.prototype.clear=sd;de.prototype.delete=od;de.prototype.get=ad;de.prototype.has=ud;de.prototype.set=cd;ti.exports=de});var si=a((sP,ii)=>{"use strict";var ni=ri(),ld=Ae(),fd=Ye();function pd(){this.size=0,this.__data__={hash:new ni,map:new(fd||ld),string:new ni}}ii.exports=pd});var ai=a((oP,oi)=>{"use strict";function dd(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}oi.exports=dd});var Oe=a((aP,ui)=>{"use strict";var yd=ai();function md(e,t){var r=e.__data__;return yd(t)?r[typeof t=="string"?"string":"hash"]:r.map}ui.exports=md});var li=a((uP,ci)=>{"use strict";var gd=Oe();function hd(e){var t=gd(this,e).delete(e);return this.size-=t?1:0,t}ci.exports=hd});var pi=a((cP,fi)=>{"use strict";var bd=Oe();function wd(e){return bd(this,e).get(e)}fi.exports=wd});var yi=a((lP,di)=>{"use strict";var vd=Oe();function xd(e){return vd(this,e).has(e)}di.exports=xd});var gi=a((fP,mi)=>{"use strict";var qd=Oe();function Id(e,t){var r=qd(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}mi.exports=Id});var Ze=a((pP,hi)=>{"use strict";var Sd=si(),Ad=li(),Pd=pi(),kd=yi(),Ed=gi();function ye(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}ye.prototype.clear=Sd;ye.prototype.delete=Ad;ye.prototype.get=Pd;ye.prototype.has=kd;ye.prototype.set=Ed;hi.exports=ye});var wi=a((dP,bi)=>{"use strict";var Od=Ae(),_d=Ye(),Td=Ze(),jd=200;function Rd(e,t){var r=this.__data__;if(r instanceof Od){var n=r.__data__;if(!_d||n.length<jd-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new Td(n)}return r.set(e,t),this.size=r.size,this}bi.exports=Rd});var Xe=a((yP,vi)=>{"use strict";var Nd=Ae(),Cd=ln(),Md=pn(),$d=yn(),Dd=gn(),Fd=wi();function me(e){var t=this.__data__=new Nd(e);this.size=t.size}me.prototype.clear=Cd;me.prototype.delete=Md;me.prototype.get=$d;me.prototype.has=Dd;me.prototype.set=Fd;vi.exports=me});var Qe=a((mP,xi)=>{"use strict";function Ld(e,t){for(var r=-1,n=e==null?0:e.length;++r<n&&t(e[r],r,e)!==!1;);return e}xi.exports=Ld});var Ft=a((gP,qi)=>{"use strict";var Vd=Q(),Ud=(function(){try{var e=Vd(Object,"defineProperty");return e({},"",{}),e}catch{}})();qi.exports=Ud});var Lt=a((hP,Si)=>{"use strict";var Ii=Ft();function Bd(e,t,r){t=="__proto__"&&Ii?Ii(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}Si.exports=Bd});var Vt=a((bP,Ai)=>{"use strict";var Gd=Lt(),zd=We(),Kd=Object.prototype,Jd=Kd.hasOwnProperty;function Hd(e,t,r){var n=e[t];(!(Jd.call(e,t)&&zd(n,r))||r===void 0&&!(t in e))&&Gd(e,t,r)}Ai.exports=Hd});var _e=a((wP,Pi)=>{"use strict";var Wd=Vt(),Yd=Lt();function Zd(e,t,r,n){var i=!r;r||(r={});for(var s=-1,o=t.length;++s<o;){var u=t[s],c=n?n(r[u],e[u],u,r,e):void 0;c===void 0&&(c=e[u]),i?Yd(r,u,c):Wd(r,u,c)}return r}Pi.exports=Zd});var Ei=a((vP,ki)=>{"use strict";function Xd(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}ki.exports=Xd});var K=a((xP,Oi)=>{"use strict";function Qd(e){return e!=null&&typeof e=="object"}Oi.exports=Qd});var Ti=a((qP,_i)=>{"use strict";var ey=ae(),ty=K(),ry="[object Arguments]";function ny(e){return ty(e)&&ey(e)==ry}_i.exports=ny});var Te=a((IP,Ni)=>{"use strict";var ji=Ti(),iy=K(),Ri=Object.prototype,sy=Ri.hasOwnProperty,oy=Ri.propertyIsEnumerable,ay=ji((function(){return arguments})())?ji:function(e){return iy(e)&&sy.call(e,"callee")&&!oy.call(e,"callee")};Ni.exports=ay});var N=a((SP,Ci)=>{"use strict";var uy=Array.isArray;Ci.exports=uy});var $i=a((AP,Mi)=>{"use strict";function cy(){return!1}Mi.exports=cy});var he=a((je,ge)=>{"use strict";var ly=V(),fy=$i(),Li=typeof je=="object"&&je&&!je.nodeType&&je,Di=Li&&typeof ge=="object"&&ge&&!ge.nodeType&&ge,py=Di&&Di.exports===Li,Fi=py?ly.Buffer:void 0,dy=Fi?Fi.isBuffer:void 0,yy=dy||fy;ge.exports=yy});var Ut=a((PP,Vi)=>{"use strict";var my=9007199254740991,gy=/^(?:0|[1-9]\d*)$/;function hy(e,t){var r=typeof e;return t=t??my,!!t&&(r=="number"||r!="symbol"&&gy.test(e))&&e>-1&&e%1==0&&e<t}Vi.exports=hy});var et=a((kP,Ui)=>{"use strict";var by=9007199254740991;function wy(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=by}Ui.exports=wy});var Gi=a((EP,Bi)=>{"use strict";var vy=ae(),xy=et(),qy=K(),Iy="[object Arguments]",Sy="[object Array]",Ay="[object Boolean]",Py="[object Date]",ky="[object Error]",Ey="[object Function]",Oy="[object Map]",_y="[object Number]",Ty="[object Object]",jy="[object RegExp]",Ry="[object Set]",Ny="[object String]",Cy="[object WeakMap]",My="[object ArrayBuffer]",$y="[object DataView]",Dy="[object Float32Array]",Fy="[object Float64Array]",Ly="[object Int8Array]",Vy="[object Int16Array]",Uy="[object Int32Array]",By="[object Uint8Array]",Gy="[object Uint8ClampedArray]",zy="[object Uint16Array]",Ky="[object Uint32Array]",T={};T[Dy]=T[Fy]=T[Ly]=T[Vy]=T[Uy]=T[By]=T[Gy]=T[zy]=T[Ky]=!0;T[Iy]=T[Sy]=T[My]=T[Ay]=T[$y]=T[Py]=T[ky]=T[Ey]=T[Oy]=T[_y]=T[Ty]=T[jy]=T[Ry]=T[Ny]=T[Cy]=!1;function Jy(e){return qy(e)&&xy(e.length)&&!!T[vy(e)]}Bi.exports=Jy});var tt=a((OP,zi)=>{"use strict";function Hy(e){return function(t){return e(t)}}zi.exports=Hy});var rt=a((Re,be)=>{"use strict";var Wy=Mt(),Ki=typeof Re=="object"&&Re&&!Re.nodeType&&Re,Ne=Ki&&typeof be=="object"&&be&&!be.nodeType&&be,Yy=Ne&&Ne.exports===Ki,Bt=Yy&&Wy.process,Zy=(function(){try{var e=Ne&&Ne.require&&Ne.require("util").types;return e||Bt&&Bt.binding&&Bt.binding("util")}catch{}})();be.exports=Zy});var Ce=a((_P,Wi)=>{"use strict";var Xy=Gi(),Qy=tt(),Ji=rt(),Hi=Ji&&Ji.isTypedArray,em=Hi?Qy(Hi):Xy;Wi.exports=em});var Gt=a((TP,Yi)=>{"use strict";var tm=Ei(),rm=Te(),nm=N(),im=he(),sm=Ut(),om=Ce(),am=Object.prototype,um=am.hasOwnProperty;function cm(e,t){var r=nm(e),n=!r&&rm(e),i=!r&&!n&&im(e),s=!r&&!n&&!i&&om(e),o=r||n||i||s,u=o?tm(e.length,String):[],c=u.length;for(var f in e)(t||um.call(e,f))&&!(o&&(f=="length"||i&&(f=="offset"||f=="parent")||s&&(f=="buffer"||f=="byteLength"||f=="byteOffset")||sm(f,c)))&&u.push(f);return u}Yi.exports=cm});var Me=a((jP,Zi)=>{"use strict";var lm=Object.prototype;function fm(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||lm;return e===r}Zi.exports=fm});var zt=a((RP,Xi)=>{"use strict";function pm(e,t){return function(r){return e(t(r))}}Xi.exports=pm});var es=a((NP,Qi)=>{"use strict";var dm=zt(),ym=dm(Object.keys,Object);Qi.exports=ym});var nt=a((CP,ts)=>{"use strict";var mm=Me(),gm=es(),hm=Object.prototype,bm=hm.hasOwnProperty;function wm(e){if(!mm(e))return gm(e);var t=[];for(var r in Object(e))bm.call(e,r)&&r!="constructor"&&t.push(r);return t}ts.exports=wm});var ee=a((MP,rs)=>{"use strict";var vm=ke(),xm=et();function qm(e){return e!=null&&xm(e.length)&&!vm(e)}rs.exports=qm});var te=a(($P,ns)=>{"use strict";var Im=Gt(),Sm=nt(),Am=ee();function Pm(e){return Am(e)?Im(e):Sm(e)}ns.exports=Pm});var ss=a((DP,is)=>{"use strict";var km=_e(),Em=te();function Om(e,t){return e&&km(t,Em(t),e)}is.exports=Om});var as=a((FP,os)=>{"use strict";function _m(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}os.exports=_m});var cs=a((LP,us)=>{"use strict";var Tm=X(),jm=Me(),Rm=as(),Nm=Object.prototype,Cm=Nm.hasOwnProperty;function Mm(e){if(!Tm(e))return Rm(e);var t=jm(e),r=[];for(var n in e)n=="constructor"&&(t||!Cm.call(e,n))||r.push(n);return r}us.exports=Mm});var it=a((VP,ls)=>{"use strict";var $m=Gt(),Dm=cs(),Fm=ee();function Lm(e){return Fm(e)?$m(e,!0):Dm(e)}ls.exports=Lm});var ps=a((UP,fs)=>{"use strict";var Vm=_e(),Um=it();function Bm(e,t){return e&&Vm(t,Um(t),e)}fs.exports=Bm});var hs=a(($e,we)=>{"use strict";var Gm=V(),gs=typeof $e=="object"&&$e&&!$e.nodeType&&$e,ds=gs&&typeof we=="object"&&we&&!we.nodeType&&we,zm=ds&&ds.exports===gs,ys=zm?Gm.Buffer:void 0,ms=ys?ys.allocUnsafe:void 0;function Km(e,t){if(t)return e.slice();var r=e.length,n=ms?ms(r):new e.constructor(r);return e.copy(n),n}we.exports=Km});var ws=a((BP,bs)=>{"use strict";function Jm(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}bs.exports=Jm});var Kt=a((GP,vs)=>{"use strict";function Hm(e,t){for(var r=-1,n=e==null?0:e.length,i=0,s=[];++r<n;){var o=e[r];t(o,r,e)&&(s[i++]=o)}return s}vs.exports=Hm});var Jt=a((zP,xs)=>{"use strict";function Wm(){return[]}xs.exports=Wm});var st=a((KP,Is)=>{"use strict";var Ym=Kt(),Zm=Jt(),Xm=Object.prototype,Qm=Xm.propertyIsEnumerable,qs=Object.getOwnPropertySymbols,eg=qs?function(e){return e==null?[]:(e=Object(e),Ym(qs(e),function(t){return Qm.call(e,t)}))}:Zm;Is.exports=eg});var As=a((JP,Ss)=>{"use strict";var tg=_e(),rg=st();function ng(e,t){return tg(e,rg(e),t)}Ss.exports=ng});var ot=a((HP,Ps)=>{"use strict";function ig(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}Ps.exports=ig});var at=a((WP,ks)=>{"use strict";var sg=zt(),og=sg(Object.getPrototypeOf,Object);ks.exports=og});var Ht=a((YP,Es)=>{"use strict";var ag=ot(),ug=at(),cg=st(),lg=Jt(),fg=Object.getOwnPropertySymbols,pg=fg?function(e){for(var t=[];e;)ag(t,cg(e)),e=ug(e);return t}:lg;Es.exports=pg});var _s=a((ZP,Os)=>{"use strict";var dg=_e(),yg=Ht();function mg(e,t){return dg(e,yg(e),t)}Os.exports=mg});var Wt=a((XP,Ts)=>{"use strict";var gg=ot(),hg=N();function bg(e,t,r){var n=t(e);return hg(e)?n:gg(n,r(e))}Ts.exports=bg});var Yt=a((QP,js)=>{"use strict";var wg=Wt(),vg=st(),xg=te();function qg(e){return wg(e,xg,vg)}js.exports=qg});var Ns=a((ek,Rs)=>{"use strict";var Ig=Wt(),Sg=Ht(),Ag=it();function Pg(e){return Ig(e,Ag,Sg)}Rs.exports=Pg});var Ms=a((tk,Cs)=>{"use strict";var kg=Q(),Eg=V(),Og=kg(Eg,"DataView");Cs.exports=Og});var Ds=a((rk,$s)=>{"use strict";var _g=Q(),Tg=V(),jg=_g(Tg,"Promise");$s.exports=jg});var Zt=a((nk,Fs)=>{"use strict";var Rg=Q(),Ng=V(),Cg=Rg(Ng,"Set");Fs.exports=Cg});var Vs=a((ik,Ls)=>{"use strict";var Mg=Q(),$g=V(),Dg=Mg($g,"WeakMap");Ls.exports=Dg});var ce=a((sk,Hs)=>{"use strict";var Xt=Ms(),Qt=Ye(),er=Ds(),tr=Zt(),rr=Vs(),Js=ae(),ve=Dt(),Us="[object Map]",Fg="[object Object]",Bs="[object Promise]",Gs="[object Set]",zs="[object WeakMap]",Ks="[object DataView]",Lg=ve(Xt),Vg=ve(Qt),Ug=ve(er),Bg=ve(tr),Gg=ve(rr),ue=Js;(Xt&&ue(new Xt(new ArrayBuffer(1)))!=Ks||Qt&&ue(new Qt)!=Us||er&&ue(er.resolve())!=Bs||tr&&ue(new tr)!=Gs||rr&&ue(new rr)!=zs)&&(ue=function(e){var t=Js(e),r=t==Fg?e.constructor:void 0,n=r?ve(r):"";if(n)switch(n){case Lg:return Ks;case Vg:return Us;case Ug:return Bs;case Bg:return Gs;case Gg:return zs}return t});Hs.exports=ue});var Ys=a((ok,Ws)=>{"use strict";var zg=Object.prototype,Kg=zg.hasOwnProperty;function Jg(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&Kg.call(e,"index")&&(r.index=e.index,r.input=e.input),r}Ws.exports=Jg});var nr=a((ak,Zs)=>{"use strict";var Hg=V(),Wg=Hg.Uint8Array;Zs.exports=Wg});var ut=a((uk,Qs)=>{"use strict";var Xs=nr();function Yg(e){var t=new e.constructor(e.byteLength);return new Xs(t).set(new Xs(e)),t}Qs.exports=Yg});var to=a((ck,eo)=>{"use strict";var Zg=ut();function Xg(e,t){var r=t?Zg(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}eo.exports=Xg});var no=a((lk,ro)=>{"use strict";var Qg=/\w*$/;function eh(e){var t=new e.constructor(e.source,Qg.exec(e));return t.lastIndex=e.lastIndex,t}ro.exports=eh});var uo=a((fk,ao)=>{"use strict";var io=oe(),so=io?io.prototype:void 0,oo=so?so.valueOf:void 0;function th(e){return oo?Object(oo.call(e)):{}}ao.exports=th});var lo=a((pk,co)=>{"use strict";var rh=ut();function nh(e,t){var r=t?rh(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}co.exports=nh});var po=a((dk,fo)=>{"use strict";var ih=ut(),sh=to(),oh=no(),ah=uo(),uh=lo(),ch="[object Boolean]",lh="[object Date]",fh="[object Map]",ph="[object Number]",dh="[object RegExp]",yh="[object Set]",mh="[object String]",gh="[object Symbol]",hh="[object ArrayBuffer]",bh="[object DataView]",wh="[object Float32Array]",vh="[object Float64Array]",xh="[object Int8Array]",qh="[object Int16Array]",Ih="[object Int32Array]",Sh="[object Uint8Array]",Ah="[object Uint8ClampedArray]",Ph="[object Uint16Array]",kh="[object Uint32Array]";function Eh(e,t,r){var n=e.constructor;switch(t){case hh:return ih(e);case ch:case lh:return new n(+e);case bh:return sh(e,r);case wh:case vh:case xh:case qh:case Ih:case Sh:case Ah:case Ph:case kh:return uh(e,r);case fh:return new n;case ph:case mh:return new n(e);case dh:return oh(e);case yh:return new n;case gh:return ah(e)}}fo.exports=Eh});var ir=a((yk,mo)=>{"use strict";var Oh=X(),yo=Object.create,_h=(function(){function e(){}return function(t){if(!Oh(t))return{};if(yo)return yo(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})();mo.exports=_h});var ho=a((mk,go)=>{"use strict";var Th=ir(),jh=at(),Rh=Me();function Nh(e){return typeof e.constructor=="function"&&!Rh(e)?Th(jh(e)):{}}go.exports=Nh});var wo=a((gk,bo)=>{"use strict";var Ch=ce(),Mh=K(),$h="[object Map]";function Dh(e){return Mh(e)&&Ch(e)==$h}bo.exports=Dh});var Io=a((hk,qo)=>{"use strict";var Fh=wo(),Lh=tt(),vo=rt(),xo=vo&&vo.isMap,Vh=xo?Lh(xo):Fh;qo.exports=Vh});var Ao=a((bk,So)=>{"use strict";var Uh=ce(),Bh=K(),Gh="[object Set]";function zh(e){return Bh(e)&&Uh(e)==Gh}So.exports=zh});var Oo=a((wk,Eo)=>{"use strict";var Kh=Ao(),Jh=tt(),Po=rt(),ko=Po&&Po.isSet,Hh=ko?Jh(ko):Kh;Eo.exports=Hh});var No=a((vk,Ro)=>{"use strict";var Wh=Xe(),Yh=Qe(),Zh=Vt(),Xh=ss(),Qh=ps(),eb=hs(),tb=ws(),rb=As(),nb=_s(),ib=Yt(),sb=Ns(),ob=ce(),ab=Ys(),ub=po(),cb=ho(),lb=N(),fb=he(),pb=Io(),db=X(),yb=Oo(),mb=te(),gb=it(),hb=1,bb=2,wb=4,_o="[object Arguments]",vb="[object Array]",xb="[object Boolean]",qb="[object Date]",Ib="[object Error]",To="[object Function]",Sb="[object GeneratorFunction]",Ab="[object Map]",Pb="[object Number]",jo="[object Object]",kb="[object RegExp]",Eb="[object Set]",Ob="[object String]",_b="[object Symbol]",Tb="[object WeakMap]",jb="[object ArrayBuffer]",Rb="[object DataView]",Nb="[object Float32Array]",Cb="[object Float64Array]",Mb="[object Int8Array]",$b="[object Int16Array]",Db="[object Int32Array]",Fb="[object Uint8Array]",Lb="[object Uint8ClampedArray]",Vb="[object Uint16Array]",Ub="[object Uint32Array]",_={};_[_o]=_[vb]=_[jb]=_[Rb]=_[xb]=_[qb]=_[Nb]=_[Cb]=_[Mb]=_[$b]=_[Db]=_[Ab]=_[Pb]=_[jo]=_[kb]=_[Eb]=_[Ob]=_[_b]=_[Fb]=_[Lb]=_[Vb]=_[Ub]=!0;_[Ib]=_[To]=_[Tb]=!1;function ct(e,t,r,n,i,s){var o,u=t&hb,c=t&bb,f=t&wb;if(r&&(o=i?r(e,n,i,s):r(e)),o!==void 0)return o;if(!db(e))return e;var p=lb(e);if(p){if(o=ab(e),!u)return tb(e,o)}else{var h=ob(e),l=h==To||h==Sb;if(fb(e))return eb(e,u);if(h==jo||h==_o||l&&!i){if(o=c||l?{}:cb(e),!u)return c?nb(e,Qh(o,e)):rb(e,Xh(o,e))}else{if(!_[h])return i?e:{};o=ub(e,h,u)}}s||(s=new Wh);var w=s.get(e);if(w)return w;s.set(e,o),yb(e)?e.forEach(function(d){o.add(ct(d,t,r,d,e,s))}):pb(e)&&e.forEach(function(d,y){o.set(y,ct(d,t,r,y,e,s))});var m=f?c?sb:ib:c?gb:mb,g=p?void 0:m(e);return Yh(g||e,function(d,y){g&&(y=d,d=e[y]),Zh(o,y,ct(d,t,r,y,e,s))}),o}Ro.exports=ct});var Mo=a((xk,Co)=>{"use strict";var Bb=No(),Gb=4;function zb(e){return Bb(e,Gb)}Co.exports=zb});var sr=a((qk,$o)=>{"use strict";function Kb(e){return function(){return e}}$o.exports=Kb});var Fo=a((Ik,Do)=>{"use strict";function Jb(e){return function(t,r,n){for(var i=-1,s=Object(t),o=n(t),u=o.length;u--;){var c=o[e?u:++i];if(r(s[c],c,s)===!1)break}return t}}Do.exports=Jb});var Vo=a((Sk,Lo)=>{"use strict";var Hb=Fo(),Wb=Hb();Lo.exports=Wb});var or=a((Ak,Uo)=>{"use strict";var Yb=Vo(),Zb=te();function Xb(e,t){return e&&Yb(e,t,Zb)}Uo.exports=Xb});var Go=a((Pk,Bo)=>{"use strict";var Qb=ee();function ew(e,t){return function(r,n){if(r==null)return r;if(!Qb(r))return e(r,n);for(var i=r.length,s=t?i:-1,o=Object(r);(t?s--:++s<i)&&n(o[s],s,o)!==!1;);return r}}Bo.exports=ew});var De=a((kk,zo)=>{"use strict";var tw=or(),rw=Go(),nw=rw(tw);zo.exports=nw});var Fe=a((Ek,Ko)=>{"use strict";function iw(e){return e}Ko.exports=iw});var Ho=a((Ok,Jo)=>{"use strict";var sw=Fe();function ow(e){return typeof e=="function"?e:sw}Jo.exports=ow});var Yo=a((_k,Wo)=>{"use strict";var aw=Qe(),uw=De(),cw=Ho(),lw=N();function fw(e,t){var r=lw(e)?aw:uw;return r(e,cw(t))}Wo.exports=fw});var Xo=a((Tk,Zo)=>{"use strict";Zo.exports=Yo()});var ea=a((jk,Qo)=>{"use strict";var pw=De();function dw(e,t){var r=[];return pw(e,function(n,i,s){t(n,i,s)&&r.push(n)}),r}Qo.exports=dw});var ra=a((Rk,ta)=>{"use strict";var yw="__lodash_hash_undefined__";function mw(e){return this.__data__.set(e,yw),this}ta.exports=mw});var ia=a((Nk,na)=>{"use strict";function gw(e){return this.__data__.has(e)}na.exports=gw});var ar=a((Ck,sa)=>{"use strict";var hw=Ze(),bw=ra(),ww=ia();function lt(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new hw;++t<r;)this.add(e[t])}lt.prototype.add=lt.prototype.push=bw;lt.prototype.has=ww;sa.exports=lt});var aa=a((Mk,oa)=>{"use strict";function vw(e,t){for(var r=-1,n=e==null?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}oa.exports=vw});var ur=a(($k,ua)=>{"use strict";function xw(e,t){return e.has(t)}ua.exports=xw});var cr=a((Dk,ca)=>{"use strict";var qw=ar(),Iw=aa(),Sw=ur(),Aw=1,Pw=2;function kw(e,t,r,n,i,s){var o=r&Aw,u=e.length,c=t.length;if(u!=c&&!(o&&c>u))return!1;var f=s.get(e),p=s.get(t);if(f&&p)return f==t&&p==e;var h=-1,l=!0,w=r&Pw?new qw:void 0;for(s.set(e,t),s.set(t,e);++h<u;){var m=e[h],g=t[h];if(n)var d=o?n(g,m,h,t,e,s):n(m,g,h,e,t,s);if(d!==void 0){if(d)continue;l=!1;break}if(w){if(!Iw(t,function(y,v){if(!Sw(w,v)&&(m===y||i(m,y,r,n,s)))return w.push(v)})){l=!1;break}}else if(!(m===g||i(m,g,r,n,s))){l=!1;break}}return s.delete(e),s.delete(t),l}ca.exports=kw});var fa=a((Fk,la)=>{"use strict";function Ew(e){var t=-1,r=Array(e.size);return e.forEach(function(n,i){r[++t]=[i,n]}),r}la.exports=Ew});var ft=a((Lk,pa)=>{"use strict";function Ow(e){var t=-1,r=Array(e.size);return e.forEach(function(n){r[++t]=n}),r}pa.exports=Ow});var ha=a((Vk,ga)=>{"use strict";var da=oe(),ya=nr(),_w=We(),Tw=cr(),jw=fa(),Rw=ft(),Nw=1,Cw=2,Mw="[object Boolean]",$w="[object Date]",Dw="[object Error]",Fw="[object Map]",Lw="[object Number]",Vw="[object RegExp]",Uw="[object Set]",Bw="[object String]",Gw="[object Symbol]",zw="[object ArrayBuffer]",Kw="[object DataView]",ma=da?da.prototype:void 0,lr=ma?ma.valueOf:void 0;function Jw(e,t,r,n,i,s,o){switch(r){case Kw:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case zw:return!(e.byteLength!=t.byteLength||!s(new ya(e),new ya(t)));case Mw:case $w:case Lw:return _w(+e,+t);case Dw:return e.name==t.name&&e.message==t.message;case Vw:case Bw:return e==t+"";case Fw:var u=jw;case Uw:var c=n&Nw;if(u||(u=Rw),e.size!=t.size&&!c)return!1;var f=o.get(e);if(f)return f==t;n|=Cw,o.set(e,t);var p=Tw(u(e),u(t),n,i,s,o);return o.delete(e),p;case Gw:if(lr)return lr.call(e)==lr.call(t)}return!1}ga.exports=Jw});var va=a((Uk,wa)=>{"use strict";var ba=Yt(),Hw=1,Ww=Object.prototype,Yw=Ww.hasOwnProperty;function Zw(e,t,r,n,i,s){var o=r&Hw,u=ba(e),c=u.length,f=ba(t),p=f.length;if(c!=p&&!o)return!1;for(var h=c;h--;){var l=u[h];if(!(o?l in t:Yw.call(t,l)))return!1}var w=s.get(e),m=s.get(t);if(w&&m)return w==t&&m==e;var g=!0;s.set(e,t),s.set(t,e);for(var d=o;++h<c;){l=u[h];var y=e[l],v=t[l];if(n)var x=o?n(v,y,l,t,e,s):n(y,v,l,e,t,s);if(!(x===void 0?y===v||i(y,v,r,n,s):x)){g=!1;break}d||(d=l=="constructor")}if(g&&!d){var E=e.constructor,O=t.constructor;E!=O&&"constructor"in e&&"constructor"in t&&!(typeof E=="function"&&E instanceof E&&typeof O=="function"&&O instanceof O)&&(g=!1)}return s.delete(e),s.delete(t),g}wa.exports=Zw});var Ea=a((Bk,ka)=>{"use strict";var fr=Xe(),Xw=cr(),Qw=ha(),ev=va(),xa=ce(),qa=N(),Ia=he(),tv=Ce(),rv=1,Sa="[object Arguments]",Aa="[object Array]",pt="[object Object]",nv=Object.prototype,Pa=nv.hasOwnProperty;function iv(e,t,r,n,i,s){var o=qa(e),u=qa(t),c=o?Aa:xa(e),f=u?Aa:xa(t);c=c==Sa?pt:c,f=f==Sa?pt:f;var p=c==pt,h=f==pt,l=c==f;if(l&&Ia(e)){if(!Ia(t))return!1;o=!0,p=!1}if(l&&!p)return s||(s=new fr),o||tv(e)?Xw(e,t,r,n,i,s):Qw(e,t,c,r,n,i,s);if(!(r&rv)){var w=p&&Pa.call(e,"__wrapped__"),m=h&&Pa.call(t,"__wrapped__");if(w||m){var g=w?e.value():e,d=m?t.value():t;return s||(s=new fr),i(g,d,r,n,s)}}return l?(s||(s=new fr),ev(e,t,r,n,i,s)):!1}ka.exports=iv});var pr=a((Gk,Ta)=>{"use strict";var sv=Ea(),Oa=K();function _a(e,t,r,n,i){return e===t?!0:e==null||t==null||!Oa(e)&&!Oa(t)?e!==e&&t!==t:sv(e,t,r,n,_a,i)}Ta.exports=_a});var Ra=a((zk,ja)=>{"use strict";var ov=Xe(),av=pr(),uv=1,cv=2;function lv(e,t,r,n){var i=r.length,s=i,o=!n;if(e==null)return!s;for(e=Object(e);i--;){var u=r[i];if(o&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++i<s;){u=r[i];var c=u[0],f=e[c],p=u[1];if(o&&u[2]){if(f===void 0&&!(c in e))return!1}else{var h=new ov;if(n)var l=n(f,p,c,e,t,h);if(!(l===void 0?av(p,f,uv|cv,n,h):l))return!1}}return!0}ja.exports=lv});var dr=a((Kk,Na)=>{"use strict";var fv=X();function pv(e){return e===e&&!fv(e)}Na.exports=pv});var Ma=a((Jk,Ca)=>{"use strict";var dv=dr(),yv=te();function mv(e){for(var t=yv(e),r=t.length;r--;){var n=t[r],i=e[n];t[r]=[n,i,dv(i)]}return t}Ca.exports=mv});var yr=a((Hk,$a)=>{"use strict";function gv(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==void 0||e in Object(r))}}$a.exports=gv});var Fa=a((Wk,Da)=>{"use strict";var hv=Ra(),bv=Ma(),wv=yr();function vv(e){var t=bv(e);return t.length==1&&t[0][2]?wv(t[0][0],t[0][1]):function(r){return r===e||hv(r,e,t)}}Da.exports=vv});var dt=a((Yk,La)=>{"use strict";var xv=ae(),qv=K(),Iv="[object Symbol]";function Sv(e){return typeof e=="symbol"||qv(e)&&xv(e)==Iv}La.exports=Sv});var yt=a((Zk,Va)=>{"use strict";var Av=N(),Pv=dt(),kv=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ev=/^\w*$/;function Ov(e,t){if(Av(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Pv(e)?!0:Ev.test(e)||!kv.test(e)||t!=null&&e in Object(t)}Va.exports=Ov});var Ga=a((Xk,Ba)=>{"use strict";var Ua=Ze(),_v="Expected a function";function mr(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(_v);var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],s=r.cache;if(s.has(i))return s.get(i);var o=e.apply(this,n);return r.cache=s.set(i,o)||s,o};return r.cache=new(mr.Cache||Ua),r}mr.Cache=Ua;Ba.exports=mr});var Ka=a((Qk,za)=>{"use strict";var Tv=Ga(),jv=500;function Rv(e){var t=Tv(e,function(n){return r.size===jv&&r.clear(),n}),r=t.cache;return t}za.exports=Rv});var Ha=a((eE,Ja)=>{"use strict";var Nv=Ka(),Cv=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Mv=/\\(\\)?/g,$v=Nv(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Cv,function(r,n,i,s){t.push(i?s.replace(Mv,"$1"):n||r)}),t});Ja.exports=$v});var mt=a((tE,Wa)=>{"use strict";function Dv(e,t){for(var r=-1,n=e==null?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}Wa.exports=Dv});var tu=a((rE,eu)=>{"use strict";var Ya=oe(),Fv=mt(),Lv=N(),Vv=dt(),Uv=1/0,Za=Ya?Ya.prototype:void 0,Xa=Za?Za.toString:void 0;function Qa(e){if(typeof e=="string")return e;if(Lv(e))return Fv(e,Qa)+"";if(Vv(e))return Xa?Xa.call(e):"";var t=e+"";return t=="0"&&1/e==-Uv?"-0":t}eu.exports=Qa});var nu=a((nE,ru)=>{"use strict";var Bv=tu();function Gv(e){return e==null?"":Bv(e)}ru.exports=Gv});var gr=a((iE,iu)=>{"use strict";var zv=N(),Kv=yt(),Jv=Ha(),Hv=nu();function Wv(e,t){return zv(e)?e:Kv(e,t)?[e]:Jv(Hv(e))}iu.exports=Wv});var Le=a((sE,su)=>{"use strict";var Yv=dt(),Zv=1/0;function Xv(e){if(typeof e=="string"||Yv(e))return e;var t=e+"";return t=="0"&&1/e==-Zv?"-0":t}su.exports=Xv});var hr=a((oE,ou)=>{"use strict";var Qv=gr(),ex=Le();function tx(e,t){t=Qv(t,e);for(var r=0,n=t.length;e!=null&&r<n;)e=e[ex(t[r++])];return r&&r==n?e:void 0}ou.exports=tx});var uu=a((aE,au)=>{"use strict";var rx=hr();function nx(e,t,r){var n=e==null?void 0:rx(e,t);return n===void 0?r:n}au.exports=nx});var lu=a((uE,cu)=>{"use strict";function ix(e,t){return e!=null&&t in Object(e)}cu.exports=ix});var br=a((cE,fu)=>{"use strict";var sx=gr(),ox=Te(),ax=N(),ux=Ut(),cx=et(),lx=Le();function fx(e,t,r){t=sx(t,e);for(var n=-1,i=t.length,s=!1;++n<i;){var o=lx(t[n]);if(!(s=e!=null&&r(e,o)))break;e=e[o]}return s||++n!=i?s:(i=e==null?0:e.length,!!i&&cx(i)&&ux(o,i)&&(ax(e)||ox(e)))}fu.exports=fx});var du=a((lE,pu)=>{"use strict";var px=lu(),dx=br();function yx(e,t){return e!=null&&dx(e,t,px)}pu.exports=yx});var mu=a((fE,yu)=>{"use strict";var mx=pr(),gx=uu(),hx=du(),bx=yt(),wx=dr(),vx=yr(),xx=Le(),qx=1,Ix=2;function Sx(e,t){return bx(e)&&wx(t)?vx(xx(e),t):function(r){var n=gx(r,e);return n===void 0&&n===t?hx(r,e):mx(t,n,qx|Ix)}}yu.exports=Sx});var wr=a((pE,gu)=>{"use strict";function Ax(e){return function(t){return t?.[e]}}gu.exports=Ax});var bu=a((dE,hu)=>{"use strict";var Px=hr();function kx(e){return function(t){return Px(t,e)}}hu.exports=kx});var vu=a((yE,wu)=>{"use strict";var Ex=wr(),Ox=bu(),_x=yt(),Tx=Le();function jx(e){return _x(e)?Ex(Tx(e)):Ox(e)}wu.exports=jx});var Ve=a((mE,xu)=>{"use strict";var Rx=Fa(),Nx=mu(),Cx=Fe(),Mx=N(),$x=vu();function Dx(e){return typeof e=="function"?e:e==null?Cx:typeof e=="object"?Mx(e)?Nx(e[0],e[1]):Rx(e):$x(e)}xu.exports=Dx});var Iu=a((gE,qu)=>{"use strict";var Fx=Kt(),Lx=ea(),Vx=Ve(),Ux=N();function Bx(e,t){var r=Ux(e)?Fx:Lx;return r(e,Vx(t,3))}qu.exports=Bx});var Au=a((hE,Su)=>{"use strict";var Gx=Object.prototype,zx=Gx.hasOwnProperty;function Kx(e,t){return e!=null&&zx.call(e,t)}Su.exports=Kx});var ku=a((bE,Pu)=>{"use strict";var Jx=Au(),Hx=br();function Wx(e,t){return e!=null&&Hx(e,t,Jx)}Pu.exports=Wx});var Ou=a((wE,Eu)=>{"use strict";var Yx=nt(),Zx=ce(),Xx=Te(),Qx=N(),eq=ee(),tq=he(),rq=Me(),nq=Ce(),iq="[object Map]",sq="[object Set]",oq=Object.prototype,aq=oq.hasOwnProperty;function uq(e){if(e==null)return!0;if(eq(e)&&(Qx(e)||typeof e=="string"||typeof e.splice=="function"||tq(e)||nq(e)||Xx(e)))return!e.length;var t=Zx(e);if(t==iq||t==sq)return!e.size;if(rq(e))return!Yx(e).length;for(var r in e)if(aq.call(e,r))return!1;return!0}Eu.exports=uq});var Tu=a((vE,_u)=>{"use strict";function cq(e){return e===void 0}_u.exports=cq});var Ru=a((xE,ju)=>{"use strict";var lq=De(),fq=ee();function pq(e,t){var r=-1,n=fq(e)?Array(e.length):[];return lq(e,function(i,s,o){n[++r]=t(i,s,o)}),n}ju.exports=pq});var Cu=a((qE,Nu)=>{"use strict";var dq=mt(),yq=Ve(),mq=Ru(),gq=N();function hq(e,t){var r=gq(e)?dq:mq;return r(e,yq(t,3))}Nu.exports=hq});var $u=a((IE,Mu)=>{"use strict";function bq(e,t,r,n){var i=-1,s=e==null?0:e.length;for(n&&s&&(r=e[++i]);++i<s;)r=t(r,e[i],i,e);return r}Mu.exports=bq});var Fu=a((SE,Du)=>{"use strict";function wq(e,t,r,n,i){return i(e,function(s,o,u){r=n?(n=!1,s):t(r,s,o,u)}),r}Du.exports=wq});var Vu=a((AE,Lu)=>{"use strict";var vq=$u(),xq=De(),qq=Ve(),Iq=Fu(),Sq=N();function Aq(e,t,r){var n=Sq(e)?vq:Iq,i=arguments.length<3;return n(e,qq(t,4),r,i,xq)}Lu.exports=Aq});var Bu=a((PE,Uu)=>{"use strict";var Pq=ae(),kq=N(),Eq=K(),Oq="[object String]";function _q(e){return typeof e=="string"||!kq(e)&&Eq(e)&&Pq(e)==Oq}Uu.exports=_q});var zu=a((kE,Gu)=>{"use strict";var Tq=wr(),jq=Tq("length");Gu.exports=jq});var Ju=a((EE,Ku)=>{"use strict";var Rq="\\ud800-\\udfff",Nq="\\u0300-\\u036f",Cq="\\ufe20-\\ufe2f",Mq="\\u20d0-\\u20ff",$q=Nq+Cq+Mq,Dq="\\ufe0e\\ufe0f",Fq="\\u200d",Lq=RegExp("["+Fq+Rq+$q+Dq+"]");function Vq(e){return Lq.test(e)}Ku.exports=Vq});var rc=a((OE,tc)=>{"use strict";var Wu="\\ud800-\\udfff",Uq="\\u0300-\\u036f",Bq="\\ufe20-\\ufe2f",Gq="\\u20d0-\\u20ff",zq=Uq+Bq+Gq,Kq="\\ufe0e\\ufe0f",Jq="["+Wu+"]",vr="["+zq+"]",xr="\\ud83c[\\udffb-\\udfff]",Hq="(?:"+vr+"|"+xr+")",Yu="[^"+Wu+"]",Zu="(?:\\ud83c[\\udde6-\\uddff]){2}",Xu="[\\ud800-\\udbff][\\udc00-\\udfff]",Wq="\\u200d",Qu=Hq+"?",ec="["+Kq+"]?",Yq="(?:"+Wq+"(?:"+[Yu,Zu,Xu].join("|")+")"+ec+Qu+")*",Zq=ec+Qu+Yq,Xq="(?:"+[Yu+vr+"?",vr,Zu,Xu,Jq].join("|")+")",Hu=RegExp(xr+"(?="+xr+")|"+Xq+Zq,"g");function Qq(e){for(var t=Hu.lastIndex=0;Hu.test(e);)++t;return t}tc.exports=Qq});var ic=a((_E,nc)=>{"use strict";var eI=zu(),tI=Ju(),rI=rc();function nI(e){return tI(e)?rI(e):eI(e)}nc.exports=nI});var oc=a((TE,sc)=>{"use strict";var iI=nt(),sI=ce(),oI=ee(),aI=Bu(),uI=ic(),cI="[object Map]",lI="[object Set]";function fI(e){if(e==null)return 0;if(oI(e))return aI(e)?uI(e):e.length;var t=sI(e);return t==cI||t==lI?e.size:iI(e).length}sc.exports=fI});var uc=a((jE,ac)=>{"use strict";var pI=Qe(),dI=ir(),yI=or(),mI=Ve(),gI=at(),hI=N(),bI=he(),wI=ke(),vI=X(),xI=Ce();function qI(e,t,r){var n=hI(e),i=n||bI(e)||xI(e);if(t=mI(t,4),r==null){var s=e&&e.constructor;i?r=n?new s:[]:vI(e)?r=wI(s)?dI(gI(e)):{}:r={}}return(i?pI:yI)(e,function(o,u,c){return t(r,o,u,c)}),r}ac.exports=qI});var pc=a((RE,fc)=>{"use strict";var cc=oe(),II=Te(),SI=N(),lc=cc?cc.isConcatSpreadable:void 0;function AI(e){return SI(e)||II(e)||!!(lc&&e&&e[lc])}fc.exports=AI});var mc=a((NE,yc)=>{"use strict";var PI=ot(),kI=pc();function dc(e,t,r,n,i){var s=-1,o=e.length;for(r||(r=kI),i||(i=[]);++s<o;){var u=e[s];t>0&&r(u)?t>1?dc(u,t-1,r,n,i):PI(i,u):n||(i[i.length]=u)}return i}yc.exports=dc});var hc=a((CE,gc)=>{"use strict";function EI(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}gc.exports=EI});var vc=a((ME,wc)=>{"use strict";var OI=hc(),bc=Math.max;function _I(e,t,r){return t=bc(t===void 0?e.length-1:t,0),function(){for(var n=arguments,i=-1,s=bc(n.length-t,0),o=Array(s);++i<s;)o[i]=n[t+i];i=-1;for(var u=Array(t+1);++i<t;)u[i]=n[i];return u[t]=r(o),OI(e,this,u)}}wc.exports=_I});var Ic=a(($E,qc)=>{"use strict";var TI=sr(),xc=Ft(),jI=Fe(),RI=xc?function(e,t){return xc(e,"toString",{configurable:!0,enumerable:!1,value:TI(t),writable:!0})}:jI;qc.exports=RI});var Ac=a((DE,Sc)=>{"use strict";var NI=800,CI=16,MI=Date.now;function $I(e){var t=0,r=0;return function(){var n=MI(),i=CI-(n-r);if(r=n,i>0){if(++t>=NI)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}Sc.exports=$I});var kc=a((FE,Pc)=>{"use strict";var DI=Ic(),FI=Ac(),LI=FI(DI);Pc.exports=LI});var Oc=a((LE,Ec)=>{"use strict";var VI=Fe(),UI=vc(),BI=kc();function GI(e,t){return BI(UI(e,t,VI),e+"")}Ec.exports=GI});var Tc=a((VE,_c)=>{"use strict";function zI(e,t,r,n){for(var i=e.length,s=r+(n?1:-1);n?s--:++s<i;)if(t(e[s],s,e))return s;return-1}_c.exports=zI});var Rc=a((UE,jc)=>{"use strict";function KI(e){return e!==e}jc.exports=KI});var Cc=a((BE,Nc)=>{"use strict";function JI(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1}Nc.exports=JI});var $c=a((GE,Mc)=>{"use strict";var HI=Tc(),WI=Rc(),YI=Cc();function ZI(e,t,r){return t===t?YI(e,t,r):HI(e,WI,r)}Mc.exports=ZI});var Fc=a((zE,Dc)=>{"use strict";var XI=$c();function QI(e,t){var r=e==null?0:e.length;return!!r&&XI(e,t,0)>-1}Dc.exports=QI});var Vc=a((KE,Lc)=>{"use strict";function eS(e,t,r){for(var n=-1,i=e==null?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}Lc.exports=eS});var Bc=a((JE,Uc)=>{"use strict";function tS(){}Uc.exports=tS});var zc=a((HE,Gc)=>{"use strict";var qr=Zt(),rS=Bc(),nS=ft(),iS=1/0,sS=qr&&1/nS(new qr([,-0]))[1]==iS?function(e){return new qr(e)}:rS;Gc.exports=sS});var Jc=a((WE,Kc)=>{"use strict";var oS=ar(),aS=Fc(),uS=Vc(),cS=ur(),lS=zc(),fS=ft(),pS=200;function dS(e,t,r){var n=-1,i=aS,s=e.length,o=!0,u=[],c=u;if(r)o=!1,i=uS;else if(s>=pS){var f=t?null:lS(e);if(f)return fS(f);o=!1,i=cS,c=new oS}else c=t?[]:u;e:for(;++n<s;){var p=e[n],h=t?t(p):p;if(p=r||p!==0?p:0,o&&h===h){for(var l=c.length;l--;)if(c[l]===h)continue e;t&&c.push(h),u.push(p)}else i(c,h,r)||(c!==u&&c.push(h),u.push(p))}return u}Kc.exports=dS});var Wc=a((YE,Hc)=>{"use strict";var yS=ee(),mS=K();function gS(e){return mS(e)&&yS(e)}Hc.exports=gS});var Zc=a((ZE,Yc)=>{"use strict";var hS=mc(),bS=Oc(),wS=Jc(),vS=Wc(),xS=bS(function(e){return wS(hS(e,1,vS,!0))});Yc.exports=xS});var Qc=a((XE,Xc)=>{"use strict";var qS=mt();function IS(e,t){return qS(t,function(r){return e[r]})}Xc.exports=IS});var tl=a((QE,el)=>{"use strict";var SS=Qc(),AS=te();function PS(e){return e==null?[]:SS(e,AS(e))}el.exports=PS});var $=a((eO,rl)=>{"use strict";var gt;if(typeof Jr=="function")try{gt={clone:Mo(),constant:sr(),each:Xo(),filter:Iu(),has:ku(),isArray:N(),isEmpty:Ou(),isFunction:ke(),isUndefined:Tu(),keys:te(),map:Cu(),reduce:Vu(),size:oc(),transform:uc(),union:Zc(),values:tl()}}catch{}gt||(gt=window._);rl.exports=gt});var ht=a((rO,ol)=>{"use strict";var S=$();ol.exports=k;var kS="\0",le="\0",nl="";function k(e){this._isDirected=S.has(e,"directed")?e.directed:!0,this._isMultigraph=S.has(e,"multigraph")?e.multigraph:!1,this._isCompound=S.has(e,"compound")?e.compound:!1,this._label=void 0,this._defaultNodeLabelFn=S.constant(void 0),this._defaultEdgeLabelFn=S.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[le]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}k.prototype._nodeCount=0;k.prototype._edgeCount=0;k.prototype.isDirected=function(){return this._isDirected};k.prototype.isMultigraph=function(){return this._isMultigraph};k.prototype.isCompound=function(){return this._isCompound};k.prototype.setGraph=function(e){return this._label=e,this};k.prototype.graph=function(){return this._label};k.prototype.setDefaultNodeLabel=function(e){return S.isFunction(e)||(e=S.constant(e)),this._defaultNodeLabelFn=e,this};k.prototype.nodeCount=function(){return this._nodeCount};k.prototype.nodes=function(){return S.keys(this._nodes)};k.prototype.sources=function(){var e=this;return S.filter(this.nodes(),function(t){return S.isEmpty(e._in[t])})};k.prototype.sinks=function(){var e=this;return S.filter(this.nodes(),function(t){return S.isEmpty(e._out[t])})};k.prototype.setNodes=function(e,t){var r=arguments,n=this;return S.each(e,function(i){r.length>1?n.setNode(i,t):n.setNode(i)}),this};k.prototype.setNode=function(e,t){return S.has(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=le,this._children[e]={},this._children[le][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)};k.prototype.node=function(e){return this._nodes[e]};k.prototype.hasNode=function(e){return S.has(this._nodes,e)};k.prototype.removeNode=function(e){var t=this;if(S.has(this._nodes,e)){var r=function(n){t.removeEdge(t._edgeObjs[n])};delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],S.each(this.children(e),function(n){t.setParent(n)}),delete this._children[e]),S.each(S.keys(this._in[e]),r),delete this._in[e],delete this._preds[e],S.each(S.keys(this._out[e]),r),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this};k.prototype.setParent=function(e,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(S.isUndefined(t))t=le;else{t+="";for(var r=t;!S.isUndefined(r);r=this.parent(r))if(r===e)throw new Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this};k.prototype._removeFromParentsChildList=function(e){delete this._children[this._parent[e]][e]};k.prototype.parent=function(e){if(this._isCompound){var t=this._parent[e];if(t!==le)return t}};k.prototype.children=function(e){if(S.isUndefined(e)&&(e=le),this._isCompound){var t=this._children[e];if(t)return S.keys(t)}else{if(e===le)return this.nodes();if(this.hasNode(e))return[]}};k.prototype.predecessors=function(e){var t=this._preds[e];if(t)return S.keys(t)};k.prototype.successors=function(e){var t=this._sucs[e];if(t)return S.keys(t)};k.prototype.neighbors=function(e){var t=this.predecessors(e);if(t)return S.union(t,this.successors(e))};k.prototype.isLeaf=function(e){var t;return this.isDirected()?t=this.successors(e):t=this.neighbors(e),t.length===0};k.prototype.filterNodes=function(e){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var r=this;S.each(this._nodes,function(s,o){e(o)&&t.setNode(o,s)}),S.each(this._edgeObjs,function(s){t.hasNode(s.v)&&t.hasNode(s.w)&&t.setEdge(s,r.edge(s))});var n={};function i(s){var o=r.parent(s);return o===void 0||t.hasNode(o)?(n[s]=o,o):o in n?n[o]:i(o)}return this._isCompound&&S.each(t.nodes(),function(s){t.setParent(s,i(s))}),t};k.prototype.setDefaultEdgeLabel=function(e){return S.isFunction(e)||(e=S.constant(e)),this._defaultEdgeLabelFn=e,this};k.prototype.edgeCount=function(){return this._edgeCount};k.prototype.edges=function(){return S.values(this._edgeObjs)};k.prototype.setPath=function(e,t){var r=this,n=arguments;return S.reduce(e,function(i,s){return n.length>1?r.setEdge(i,s,t):r.setEdge(i,s),s}),this};k.prototype.setEdge=function(){var e,t,r,n,i=!1,s=arguments[0];typeof s=="object"&&s!==null&&"v"in s?(e=s.v,t=s.w,r=s.name,arguments.length===2&&(n=arguments[1],i=!0)):(e=s,t=arguments[1],r=arguments[3],arguments.length>2&&(n=arguments[2],i=!0)),e=""+e,t=""+t,S.isUndefined(r)||(r=""+r);var o=Ue(this._isDirected,e,t,r);if(S.has(this._edgeLabels,o))return i&&(this._edgeLabels[o]=n),this;if(!S.isUndefined(r)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(t),this._edgeLabels[o]=i?n:this._defaultEdgeLabelFn(e,t,r);var u=ES(this._isDirected,e,t,r);return e=u.v,t=u.w,Object.freeze(u),this._edgeObjs[o]=u,il(this._preds[t],e),il(this._sucs[e],t),this._in[t][o]=u,this._out[e][o]=u,this._edgeCount++,this};k.prototype.edge=function(e,t,r){var n=arguments.length===1?Ir(this._isDirected,arguments[0]):Ue(this._isDirected,e,t,r);return this._edgeLabels[n]};k.prototype.hasEdge=function(e,t,r){var n=arguments.length===1?Ir(this._isDirected,arguments[0]):Ue(this._isDirected,e,t,r);return S.has(this._edgeLabels,n)};k.prototype.removeEdge=function(e,t,r){var n=arguments.length===1?Ir(this._isDirected,arguments[0]):Ue(this._isDirected,e,t,r),i=this._edgeObjs[n];return i&&(e=i.v,t=i.w,delete this._edgeLabels[n],delete this._edgeObjs[n],sl(this._preds[t],e),sl(this._sucs[e],t),delete this._in[t][n],delete this._out[e][n],this._edgeCount--),this};k.prototype.inEdges=function(e,t){var r=this._in[e];if(r){var n=S.values(r);return t?S.filter(n,function(i){return i.v===t}):n}};k.prototype.outEdges=function(e,t){var r=this._out[e];if(r){var n=S.values(r);return t?S.filter(n,function(i){return i.w===t}):n}};k.prototype.nodeEdges=function(e,t){var r=this.inEdges(e,t);if(r)return r.concat(this.outEdges(e,t))};function il(e,t){e[t]?e[t]++:e[t]=1}function sl(e,t){--e[t]||delete e[t]}function Ue(e,t,r,n){var i=""+t,s=""+r;if(!e&&i>s){var o=i;i=s,s=o}return i+nl+s+nl+(S.isUndefined(n)?kS:n)}function ES(e,t,r,n){var i=""+t,s=""+r;if(!e&&i>s){var o=i;i=s,s=o}var u={v:i,w:s};return n&&(u.name=n),u}function Ir(e,t){return Ue(e,t.v,t.w,t.name)}});var ul=a((nO,al)=>{"use strict";al.exports="2.1.8"});var ll=a((iO,cl)=>{"use strict";cl.exports={Graph:ht(),version:ul()}});var pl=a((sO,fl)=>{"use strict";var J=$(),OS=ht();fl.exports={write:_S,read:RS};function _S(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:TS(e),edges:jS(e)};return J.isUndefined(e.graph())||(t.value=J.clone(e.graph())),t}function TS(e){return J.map(e.nodes(),function(t){var r=e.node(t),n=e.parent(t),i={v:t};return J.isUndefined(r)||(i.value=r),J.isUndefined(n)||(i.parent=n),i})}function jS(e){return J.map(e.edges(),function(t){var r=e.edge(t),n={v:t.v,w:t.w};return J.isUndefined(t.name)||(n.name=t.name),J.isUndefined(r)||(n.value=r),n})}function RS(e){var t=new OS(e.options).setGraph(e.value);return J.each(e.nodes,function(r){t.setNode(r.v,r.value),r.parent&&t.setParent(r.v,r.parent)}),J.each(e.edges,function(r){t.setEdge({v:r.v,w:r.w,name:r.name},r.value)}),t}});var yl=a((oO,dl)=>{"use strict";var bt=$();dl.exports=NS;function NS(e){var t={},r=[],n;function i(s){bt.has(t,s)||(t[s]=!0,n.push(s),bt.each(e.successors(s),i),bt.each(e.predecessors(s),i))}return bt.each(e.nodes(),function(s){n=[],i(s),n.length&&r.push(n)}),r}});var Sr=a((aO,gl)=>{"use strict";var ml=$();gl.exports=F;function F(){this._arr=[],this._keyIndices={}}F.prototype.size=function(){return this._arr.length};F.prototype.keys=function(){return this._arr.map(function(e){return e.key})};F.prototype.has=function(e){return ml.has(this._keyIndices,e)};F.prototype.priority=function(e){var t=this._keyIndices[e];if(t!==void 0)return this._arr[t].priority};F.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key};F.prototype.add=function(e,t){var r=this._keyIndices;if(e=String(e),!ml.has(r,e)){var n=this._arr,i=n.length;return r[e]=i,n.push({key:e,priority:t}),this._decrease(i),!0}return!1};F.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key};F.prototype.decrease=function(e,t){var r=this._keyIndices[e];if(t>this._arr[r].priority)throw new Error("New priority is greater than current priority. Key: "+e+" Old: "+this._arr[r].priority+" New: "+t);this._arr[r].priority=t,this._decrease(r)};F.prototype._heapify=function(e){var t=this._arr,r=2*e,n=r+1,i=e;r<t.length&&(i=t[r].priority<t[i].priority?r:i,n<t.length&&(i=t[n].priority<t[i].priority?n:i),i!==e&&(this._swap(e,i),this._heapify(i)))};F.prototype._decrease=function(e){for(var t=this._arr,r=t[e].priority,n;e!==0&&(n=e>>1,!(t[n].priority<r));)this._swap(e,n),e=n};F.prototype._swap=function(e,t){var r=this._arr,n=this._keyIndices,i=r[e],s=r[t];r[e]=s,r[t]=i,n[s.key]=e,n[i.key]=t}});var Ar=a((uO,hl)=>{"use strict";var CS=$(),MS=Sr();hl.exports=DS;var $S=CS.constant(1);function DS(e,t,r,n){return FS(e,String(t),r||$S,n||function(i){return e.outEdges(i)})}function FS(e,t,r,n){var i={},s=new MS,o,u,c=function(f){var p=f.v!==o?f.v:f.w,h=i[p],l=r(f),w=u.distance+l;if(l<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+f+" Weight: "+l);w<h.distance&&(h.distance=w,h.predecessor=o,s.decrease(p,w))};for(e.nodes().forEach(function(f){var p=f===t?0:Number.POSITIVE_INFINITY;i[f]={distance:p},s.add(f,p)});s.size()>0&&(o=s.removeMin(),u=i[o],u.distance!==Number.POSITIVE_INFINITY);)n(o).forEach(c);return i}});var wl=a((cO,bl)=>{"use strict";var LS=Ar(),VS=$();bl.exports=US;function US(e,t,r){return VS.transform(e.nodes(),function(n,i){n[i]=LS(e,i,t,r)},{})}});var Pr=a((lO,xl)=>{"use strict";var vl=$();xl.exports=BS;function BS(e){var t=0,r=[],n={},i=[];function s(o){var u=n[o]={onStack:!0,lowlink:t,index:t++};if(r.push(o),e.successors(o).forEach(function(p){vl.has(n,p)?n[p].onStack&&(u.lowlink=Math.min(u.lowlink,n[p].index)):(s(p),u.lowlink=Math.min(u.lowlink,n[p].lowlink))}),u.lowlink===u.index){var c=[],f;do f=r.pop(),n[f].onStack=!1,c.push(f);while(o!==f);i.push(c)}}return e.nodes().forEach(function(o){vl.has(n,o)||s(o)}),i}});var Il=a((fO,ql)=>{"use strict";var GS=$(),zS=Pr();ql.exports=KS;function KS(e){return GS.filter(zS(e),function(t){return t.length>1||t.length===1&&e.hasEdge(t[0],t[0])})}});var Al=a((pO,Sl)=>{"use strict";var JS=$();Sl.exports=WS;var HS=JS.constant(1);function WS(e,t,r){return YS(e,t||HS,r||function(n){return e.outEdges(n)})}function YS(e,t,r){var n={},i=e.nodes();return i.forEach(function(s){n[s]={},n[s][s]={distance:0},i.forEach(function(o){s!==o&&(n[s][o]={distance:Number.POSITIVE_INFINITY})}),r(s).forEach(function(o){var u=o.v===s?o.w:o.v,c=t(o);n[s][u]={distance:c,predecessor:s}})}),i.forEach(function(s){var o=n[s];i.forEach(function(u){var c=n[u];i.forEach(function(f){var p=c[s],h=o[f],l=c[f],w=p.distance+h.distance;w<l.distance&&(l.distance=w,l.predecessor=h.predecessor)})})}),n}});var kr=a((dO,kl)=>{"use strict";var Be=$();kl.exports=Pl;Pl.CycleException=wt;function Pl(e){var t={},r={},n=[];function i(s){if(Be.has(r,s))throw new wt;Be.has(t,s)||(r[s]=!0,t[s]=!0,Be.each(e.predecessors(s),i),delete r[s],n.push(s))}if(Be.each(e.sinks(),i),Be.size(t)!==e.nodeCount())throw new wt;return n}function wt(){}wt.prototype=new Error});var _l=a((yO,Ol)=>{"use strict";var El=kr();Ol.exports=ZS;function ZS(e){try{El(e)}catch(t){if(t instanceof El.CycleException)return!1;throw t}return!0}});var Er=a((mO,jl)=>{"use strict";var vt=$();jl.exports=XS;function XS(e,t,r){vt.isArray(t)||(t=[t]);var n=(e.isDirected()?e.successors:e.neighbors).bind(e),i=[],s={};return vt.each(t,function(o){if(!e.hasNode(o))throw new Error("Graph does not have node: "+o);Tl(e,o,r==="post",s,n,i)}),i}function Tl(e,t,r,n,i,s){vt.has(n,t)||(n[t]=!0,r||s.push(t),vt.each(i(t),function(o){Tl(e,o,r,n,i,s)}),r&&s.push(t))}});var Nl=a((gO,Rl)=>{"use strict";var QS=Er();Rl.exports=eA;function eA(e,t){return QS(e,t,"post")}});var Ml=a((hO,Cl)=>{"use strict";var tA=Er();Cl.exports=rA;function rA(e,t){return tA(e,t,"pre")}});var Fl=a((bO,Dl)=>{"use strict";var $l=$(),nA=ht(),iA=Sr();Dl.exports=sA;function sA(e,t){var r=new nA,n={},i=new iA,s;function o(c){var f=c.v===s?c.w:c.v,p=i.priority(f);if(p!==void 0){var h=t(c);h<p&&(n[f]=s,i.decrease(f,h))}}if(e.nodeCount()===0)return r;$l.each(e.nodes(),function(c){i.add(c,Number.POSITIVE_INFINITY),r.setNode(c)}),i.decrease(e.nodes()[0],0);for(var u=!1;i.size()>0;){if(s=i.removeMin(),$l.has(n,s))r.setEdge(s,n[s]);else{if(u)throw new Error("Input graph is not connected: "+e);u=!0}e.nodeEdges(s).forEach(o)}return r}});var Vl=a((wO,Ll)=>{"use strict";Ll.exports={components:yl(),dijkstra:Ar(),dijkstraAll:wl(),findCycles:Il(),floydWarshall:Al(),isAcyclic:_l(),postorder:Nl(),preorder:Ml(),prim:Fl(),tarjan:Pr(),topsort:kr()}});var Or=a((vO,Bl)=>{"use strict";var Ul=ll();Bl.exports={Graph:Ul.Graph,json:pl(),alg:Vl(),version:Ul.version}});var uf=Hr(Or());var xt=class{constructor(){this.eventListeners=new Map}addEventListener(t,r){this.eventListeners.has(t)||this.eventListeners.set(t,new Set),this.eventListeners.get(t).add(r)}removeEventListener(t,r){this.eventListeners.get(t)?.delete(r)}emitEvent(t){let r=this.eventListeners.get(t.type);if(r)for(let n of r)try{n(t)}catch(i){console.error("Error in data instance event listener:",i)}}};function Gl(e,t,r){let n=e.atoms.length,i=Array.isArray(t?.types)?t.types:[],o=(t?.tuples?.length??0)>0&&i.length!==n;if(!o&&i.length===n)return{tuple:{...e,types:[...i]},relationTypes:[...i]};let u=Array.isArray(e.types)?e.types:[],c=e.atoms.map((f,p)=>r(f)??u[p]??"untyped");return{tuple:{...e,types:c},relationTypes:o?[]:c}}function re(e){if(!Object.prototype.hasOwnProperty.call(e,"$pyretValue"))return;let t=e.$pyretValue;if(t?.kind==="nothing"||t?.kind==="object"||t?.kind==="tuple"||t?.kind==="raw-array"||t?.kind==="table")return{kind:t.kind};if(t?.kind==="reference"&&typeof t.unrestricted=="boolean")return{kind:t.kind,unrestricted:t.unrestricted};if(t?.kind==="string-dict"&&typeof t.mutable=="boolean"&&typeof t.sealed=="boolean"&&(t.mutable||!t.sealed))return{kind:t.kind,mutable:t.mutable,sealed:t.sealed};throw new Error("Malformed reconstructed Pyret value")}function _r(e){if(!e||typeof e!="object"||"dict"in e)return!1;let t=e;return Number.isInteger(t.state)&&"value"in t&&!!t.anns&&Array.isArray(t.anns.anns)&&typeof t.anns.check=="function"&&typeof t.anns.addAnn=="function"&&Object.keys(t).every(r=>r==="state"||r==="value"||r==="anns")}function zl(e){if(_r(e)){if(e.state!==2)throw new Error("Only initialized mutable Pyret references are supported");return{kind:"reference",unrestricted:e.anns.anns.every(t=>t.ann?.name==="Any")}}}function Kl(e){return!!e.dict&&typeof e.dict=="object"&&Object.keys(e.dict).length===0&&typeof e.brand=="function"&&typeof e.extendWith=="function"&&!("updateDict"in e)&&Object.keys(e).every(t=>t==="dict"||t==="brands")}function qt(e){return typeof e=="function"||e!==null&&typeof e=="object"&&("app"in e||"meth"in e&&"full_meth"in e)}function Jl(e,t){let r=[];for(let n in e)(t||!qt(e[n]))&&r.push(n);return r}var It=e=>typeof e=="string"&&/^-?(0|[1-9][0-9]*)$/.test(e);function W(e,t=1n){if(t===0n)throw new Error("Invalid Pyret rational denominator");t<0n&&(e=-e,t=-t);let r=e<0n?-e:e,n=t;for(;n!==0n;){let i=r%n;r=n,n=i}return e/=r,t/=r,t===1n?{version:1,kind:"integer",value:e.toString()}:{version:1,kind:"rational",numerator:e.toString(),denominator:t.toString()}}function Hl(e){let t=e;if(t?.version===1){if(t.kind==="integer"&&It(t.value))return W(BigInt(t.value));if(t.kind==="rational"&&It(t.numerator)&&It(t.denominator))return W(BigInt(t.numerator),BigInt(t.denominator));if(t.kind==="roughnum"&&typeof t.value=="string"&&/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:e[+-]?[0-9]+)?$/i.test(t.value)&&Number.isFinite(Number(t.value)))return{version:1,kind:"roughnum",value:t.value}}throw new Error("Malformed Pyret number")}function Wl(e){if(e.startsWith("~"))return Hl({version:1,kind:"roughnum",value:e.slice(1)});let t=/^(-?(?:0|[1-9][0-9]*))\/(-?(?:0|[1-9][0-9]*))$/.exec(e);if(t)return W(BigInt(t[1]),BigInt(t[2]));let r=/^(-?(?:0|[1-9][0-9]*))(?:\.([0-9]+))?(?:e([+-]?[0-9]+))?$/i.exec(e);if(!r)throw new Error("Malformed Pyret number label");let n=BigInt(r[3]??"0")-BigInt(r[2]?.length??0),i=BigInt(r[1]+(r[2]??""));return n>=0n?W(i*10n**n):W(i,10n**-n)}function Tr(e){if(typeof e=="number"&&Number.isInteger(e))return BigInt(e).toString();if(typeof e=="bigint")return e.toString();if(!e||typeof e!="object")return;let t=e;if(typeof t.isInteger=="function"&&t.isInteger()&&typeof t.isExact=="function"&&t.isExact()){let r=t.toString();if(It(r))return r}}function Y(e){if(e&&typeof e=="object"){if("$pyretNumber"in e)return Hl(e.$pyretNumber);if("n"in e&&"d"in e){let n=Tr(e.n),i=Tr(e.d);if(n!==void 0&&i!==void 0)return W(BigInt(n),BigInt(i))}let r=e;if(typeof r.isRoughnum=="function"&&r.isRoughnum()){if(typeof r.n!="number"||!Number.isFinite(r.n))throw new Error("Invalid Pyret roughnum");return{version:1,kind:"roughnum",value:Object.is(r.n,-0)?"-0":String(r.n)}}}let t=Tr(e);if(t!==void 0)return W(BigInt(t));if(typeof e=="number"){if(!Number.isFinite(e))throw new Error("Invalid Pyret number");let[r,n="0"]=String(e).split("e"),i=r.split(".")[1]?.length??0,s=Number(n)-i,o=BigInt(r.replace(".",""));return s>=0?W(o*10n**BigInt(s)):W(o,10n**BigInt(-s))}}function St(e){switch(e.kind){case"integer":return e.value;case"rational":return`${e.numerator}/${e.denominator}`;case"roughnum":return`~${e.value}`}}function Yl(e){if(e.kind==="integer"){let t=BigInt(e.value);if(t>=BigInt(Number.MIN_SAFE_INTEGER)&&t<=BigInt(Number.MAX_SAFE_INTEGER))return Number(t)}return{$pyretNumber:e}}var jr="pyret:field:v1:",Rr="pyret:constructor:v1:";function Zl(e,t,r){return Rr+JSON.stringify([e,t,r])}function U(e){if(!e.startsWith(Rr))return;let t=JSON.parse(e.slice(Rr.length));if(!Array.isArray(t)||t.length!==3||typeof t[0]!="string"||!t[0]||!Number.isSafeInteger(t[1])||t[1]<0||typeof t[2]!="string"||!t[2])throw new Error("Malformed Pyret constructor identity");return{scope:t[0],index:t[1],name:t[2]}}function B(e){return U(e)?.name??e}function G(e){let{$name:t,$arity:r}=e;if(typeof t!="string"||!Number.isInteger(r)||r<-1)return;let n=e.$constructor?.$fieldNames;if(r===-1)return{name:t,arity:r,fields:[]};if(!Array.isArray(n)||n.length!==r||n.some(o=>typeof o!="string")||new Set(n).size!==n.length)throw new Error(`Invalid Pyret constructor metadata for ${t}`);let i=e.$mut_fields_mask;if(i!==void 0&&(!Array.isArray(i)||i.length!==r||i.some(o=>typeof o!="boolean")))throw new Error(`Invalid Pyret mutable field mask for ${t}`);let s=i?.flatMap((o,u)=>o?[u]:[])??[];return{name:t,arity:r,fields:n,...s.length?{mutableFields:s}:{}}}function Xl(e,t){return jr+JSON.stringify([e.name,t,e.fields[t]])}function xe(e){if(!e.startsWith(jr))return;let t=JSON.parse(e.slice(jr.length));if(!Array.isArray(t)||t.length!==3||typeof t[0]!="string"||!Number.isInteger(t[1])||t[1]<0||typeof t[2]!="string")throw new Error("Malformed Pyret field ID");return{name:t[0],position:t[1],field:t[2]}}var ef=new Set(["Number","String","Boolean"]),Nr=new Set([...ef,"Index","Nothing","Object","Tuple","RawArray","Reference","StringDict","MutableStringDict","Table"]);function Ge(e){if(e?.type!=="Index"||!/^(0|[1-9][0-9]*)$/.test(e.label)||!Number.isSafeInteger(Number(e.label)))throw new Error("Malformed Pyret position label");return Number(e.label)}function Ql(e,t,r){if(e.has(t)&&e.get(t)!==r||[...e].some(([n,i])=>n!==t&&i===r))throw new Error("Conflicting Pyret field positions");e.set(t,r)}function ze(e,t){let r=[];for(let n=0;n<e.size;n++){if(!e.has(n))throw new Error(`Incomplete Pyret ${t}: positions must be contiguous from zero`);r.push(e.get(n))}return r}function oA(e){let t={fields:new Map,targets:new Set,constructors:new Map,objectPositions:new Map,elements:new Map,columns:new Map,rows:new Map,references:new Map,entries:new Map,mutableFields:new Map,sealed:new Set,unrestricted:new Set,nullary:new Set},r=new Map(e.getAtoms().map(n=>[n.id,n]));for(let n of e.getRelations()){let i=xe(n.id);if(i){if(n.name!==i.field)throw new Error("Pyret field ID disagrees with its name");let s=t.constructors.get(i.name)??new Map;Ql(s,i.field,i.position),t.constructors.set(i.name,s)}for(let s of n.tuples){if(!s.atoms.length||s.atoms.some(g=>!r.has(g)))throw new Error("Malformed Pyret relation tuple");let[o,u,c,f]=s.atoms,p=r.get(o).type,h=s.atoms.length;for(let g of s.atoms.slice(1))t.targets.add(g);if(!i&&p!=="Object"){if(n.name==="sealed"&&p==="MutableStringDict"){if(h!==1)throw new Error("Malformed Pyret sealed fact");t.sealed.add(o);continue}if(n.name==="unrestricted"&&p==="Reference"){if(h!==1)throw new Error("Malformed Pyret unrestricted fact");t.unrestricted.add(o);continue}if(n.name==="nullary-constructor"&&!Nr.has(p)){if(h!==1)throw new Error("Malformed Pyret nullary constructor fact");t.nullary.add(o);continue}if(n.name==="mutable-field"&&!Nr.has(p)){if(h!==2)throw new Error("Malformed Pyret mutable field positions");let g=t.mutableFields.get(o)??new Set;g.add(Ge(r.get(u))),t.mutableFields.set(o,g);continue}}if(h<2)throw new Error("Malformed Pyret unary relation");if(p==="Table"){if(i)throw new Error("Pyret table relations must have opaque IDs");let g=Ge(r.get(u));if(n.name==="column"&&h===3&&r.get(c)?.type==="String"){let d=t.columns.get(o)??new Map;if(d.has(g)&&d.get(g)!==c)throw new Error("Conflicting Pyret table column positions");d.set(g,c),t.columns.set(o,d)}else if(n.name==="row"){let d=t.rows.get(o)??new Map,y=s.atoms.slice(2);if(d.has(g)&&JSON.stringify(d.get(g))!==JSON.stringify(y))throw new Error("Conflicting Pyret table row positions");if(y.some(v=>r.get(v)?.type==="Index"))throw new Error("Pyret table cells cannot be positions");d.set(g,y),t.rows.set(o,d)}else throw new Error("Malformed Pyret table relation");continue}if(p==="StringDict"||p==="MutableStringDict"){if(n.name!=="entry"||h!==4||r.get(c)?.type!=="String")throw new Error("Malformed Pyret dictionary entry");let g=Ge(r.get(u)),d=t.entries.get(o)??new Map,y=d.get(g);if(y&&(y.key!==c||y.value!==f))throw new Error("Conflicting Pyret dictionary entry positions");d.set(g,{key:c,value:f}),t.entries.set(o,d);continue}if(p==="Reference"){if(n.name!=="target"||h!==2)throw new Error("Malformed Pyret reference target");if(t.references.has(o)&&t.references.get(o)!==u)throw new Error("Conflicting Pyret reference targets");t.references.set(o,u);continue}if(p==="Tuple"||p==="RawArray"){if(n.name!=="element"||h!==3)throw new Error("Malformed Pyret indexed element");let g=Ge(r.get(u)),d=t.elements.get(o)??new Map;if(d.has(g)&&d.get(g)!==c)throw new Error("Conflicting Pyret element positions");d.set(g,c),t.elements.set(o,d);continue}if(Nr.has(p)&&p!=="Object")throw new Error("Pyret primitive cannot have fields");if(i&&(p!==i.name||h!==2))throw new Error("Pyret field ID disagrees with its source constructor");if(p==="Object"){if(h!==3||i)throw new Error("Pyret object field must have a position and one value");let g=t.objectPositions.get(o)??new Map;Ql(g,n.name,Ge(r.get(u))),t.objectPositions.set(o,g)}let l=t.fields.get(o)??new Map,w=i?.field??n.name,m=l.get(w)??[];for(let g of p==="Object"?[c]:s.atoms.slice(1))m.includes(g)||m.push(g);l.set(w,m),t.fields.set(o,l)}}return t}function aA(e,t){switch(e.type){case"Nothing":return{kind:"nothing"};case"Object":return{kind:"object"};case"Tuple":return{kind:"tuple"};case"RawArray":return{kind:"raw-array"};case"Table":return{kind:"table"};case"Reference":return{kind:"reference",unrestricted:t.unrestricted.has(e.id)};case"StringDict":case"MutableStringDict":return{kind:"string-dict",mutable:e.type==="MutableStringDict",sealed:t.sealed.has(e.id)};default:return}}function uA(e){switch(e.type){case"Number":return Yl(Wl(e.label));case"Boolean":if(e.label!=="true"&&e.label!=="false")throw new Error("Malformed Pyret boolean label");return e.label==="true";default:return e.label}}function Cr(e,t){let r=/^\d+$/.test(e),n=/^\d+$/.test(t);return r&&n?parseInt(e,10)-parseInt(t,10):e.localeCompare(t)}function cA(e,t){let n=ne.getGlobalConstructorCache().get(e);if(n&&n.length){let i=n.filter(o=>t.includes(o)),s=t.filter(o=>!n.includes(o));return[...i,...s.sort(Cr)]}return[...t].sort(Cr)}function lA(e){return e.length>0&&e.every(t=>/^\d+$/.test(t))}function Mr(e,t,r={}){let n=At(e,t===void 0?void 0:[t],r);return n.length?n[0]:null}function At(e,t,r={}){let n=new Map(e.getAtoms().map(y=>[y.id,y])),i=oA(e),{fields:s,targets:o,elements:u,references:c,entries:f}=i,p=new Map,h=0,l=new Set,w=new Map,m=y=>{if(w.has(y)){if(!r.allowContainerCycles&&p.get(y)===h&&l.size)throw new Error("Cyclic Pyret containers are not supported");return w.get(y)}let v=n.get(y);if(!v)throw new Error("Unknown Pyret atom ID: "+y);if(ef.has(v.type)){let A=uA(v);return w.set(y,A),A}let x=aA(v,i);if(x?.kind==="nothing"){let A={$pyretValue:x};return w.set(y,A),A}if(p.set(y,h),x?.kind==="table"){let A=ze(i.columns.get(y)??new Map,"table columns").map(P=>n.get(P).label);if(new Set(A).size!==A.length)throw new Error("Duplicate Pyret table column name");let b=ze(i.rows.get(y)??new Map,"table rows");if(b.some(P=>P.length!==A.length))throw new Error("Pyret table row width must match its columns");let q=[],I={$pyretValue:x,dict:{"_header-raw-array":A,"_rows-raw-array":q}};w.set(y,I),l.add(y);for(let P of b)q.push(P.map(m));return l.delete(y),p.delete(y),I}if(x?.kind==="string-dict"){let A=f.get(y)??new Map,b=ze(A,"dictionary entries"),q={$pyretValue:x,entries:[]};w.set(y,q);let I=new Set;x.mutable&&h++;for(let P of b){let M=n.get(P.key).label;if(I.has(M))throw new Error("Duplicate Pyret dictionary key");I.add(M),q.entries.push([M,m(P.value)])}return x.mutable&&h--,p.delete(y),q}if(x?.kind==="reference"){let A=c.get(y);if(A===void 0)throw new Error("Incomplete Pyret reference target");let b={$pyretValue:x};return w.set(y,b),h++,b.value=m(A),h--,p.delete(y),b}if(x?.kind==="raw-array"||x?.kind==="tuple"){let A=u.get(y)??new Map,b=ze(A,"container elements"),q=[],I=x.kind==="raw-array"?q:{vals:q};w.set(y,I),l.add(y);for(let P of b)q.push(m(P));return l.delete(y),p.delete(y),I}let E=s.get(y)??new Map,O=Array.from(E.keys()),C=i.constructors.get(v.type),D=x?void 0:i.nullary.has(y)?0:C?.size??(O.length?void 0:-1),z=[...i.mutableFields.get(y)??[]];if(z.some(A=>D===void 0||A>=D))throw new Error("Malformed Pyret mutable field positions");if(!x&&D===void 0&&lA(O)){let A=[];w.set(y,A);let b=O.slice().sort(Cr);for(let q of b){let I=E.get(q)??[];A.push(I.length===1?m(I[0]):I.map(P=>m(P)))}return p.delete(y),A}let L={dict:Object.create(null),...x?.kind==="object"?{$pyretValue:x}:{$name:v.type}};w.set(y,L);let H;if(x?.kind==="object"){let A=i.objectPositions.get(y)??new Map;H=ze(new Map([...A].map(([b,q])=>[q,b])),"object fields")}else if(D!==void 0){let A=C??new Map,b=Math.max(0,D);if(O.length!==b||A.size!==b||[...A].some(([q,I])=>I>=b||!E.has(q)))throw new Error("Incomplete Pyret constructor fields");H=[...A].sort((q,I)=>q[1]-I[1]).map(([q])=>q),L.$arity=D,L.$constructor={$fieldNames:H},z.length&&(L.$mut_fields_mask=H.map((q,I)=>z.includes(I)))}else H=cA(v.type,O);for(let A of H){let b=E.get(A)??[];if((x?.kind==="object"||D!==void 0)&&b.length!==1)throw new Error("Pyret constructor field must have one value");b.length===1?L.dict[A]=m(b[0]):L.dict[A]=b.map(q=>m(q))}for(let A of z){let b=L.dict[H[A]];if(!b||typeof b!="object"||re(b)?.kind!=="reference")throw new Error("Pyret mutable field must contain a reference")}return p.delete(y),L};if(t!==void 0)return t.map(y=>{if(!n.has(y))throw new Error("Unknown Pyret root ID: "+y);return m(y)});let g=e.getAtoms().map(y=>y.id);if(!g.length)return[];let d=g.filter(y=>!o.has(y));if(d.length!==1)throw new Error("Pyret graph has no unique root; supply an explicit root ID");return[m(d[0])]}function qe(e,t,r){if(!e||typeof e!="object"||Array.isArray(e)||!("$name"in e)||B(String(e.$name))!==t)return!1;let n=G(e);return!!n&&!n.mutableFields?.length&&n.arity===(r.length||-1)&&n.fields.length===r.length&&n.fields.every((i,s)=>i===r[s])&&!!e.dict&&r.every(i=>Object.prototype.hasOwnProperty.call(e.dict,i))}function Ke(e){let t=qe(e,"list-set",["elems"])?"list-set":qe(e,"tree-set",["elems"])?"tree-set":void 0;if(!t)return;let r=e.dict.elems,n=[],i=new Set,s=()=>new Error(`Malformed Pyret ${t} backing structure`);if(t==="list-set"){let o=r;for(;!qe(o,"empty",[]);){if(!qe(o,"link",["first","rest"])||i.has(o))throw s();i.add(o),n.push(o.dict.first),o=o.dict.rest}}else{let o=[{node:r,phase:"enter"}];for(;o.length;){let{node:u,phase:c}=o.pop();if(!qe(u,"leaf",[])){if(!qe(u,"branch",["value","h","left","right"]))throw s();if(c==="exit")i.delete(u);else if(c==="emit")n.push(u.dict.value);else{if(i.has(u))throw s();i.add(u),o.push({node:u,phase:"exit"},{node:u.dict.right,phase:"enter"},{node:u,phase:"emit"},{node:u.dict.left,phase:"enter"})}}}}return{kind:t,elements:n}}function tf(e,t){return e.kind==="tree-set"?`[tree-set: ${e.elements.map(t).join(", ")}]`:"[list-set: ]"+[...e.elements].reverse().map(r=>`.add(${t(r)})`).join("")}function Pt(e){return!!e.dict&&typeof e.dict=="object"&&"_header-raw-array"in e.dict&&"_rows-raw-array"in e.dict&&(!e.brands||Object.keys(e.brands).some(t=>t.includes("brandtable")))}function kt(e){return Array.isArray(e.$rowData)&&!!e.$underlyingTable}function fe(e){let t=e.dict?.["_header-raw-array"],r=e.dict?.["_rows-raw-array"];if(!Array.isArray(t)||!Array.isArray(r)||Array.from(t).some(n=>typeof n!="string")||new Set(t).size!==t.length||Array.from(r).some(n=>!Array.isArray(n)||n.length!==t.length))throw new Error("Malformed Pyret table: unique string headers and rectangular rows required");return{headers:t,rows:r}}function rf(e,t,r){let{headers:n,rows:i}=fe(e);if(!n.length)return i.length?`for fold(spytial-table from empty-table([list: ]), spytial-row from range(0, ${i.length})):
|
|
2
2
|
spytial-table.add-row([raw-row: ])
|
|
3
3
|
end`:"empty-table([list: ])";let s;try{s=n.map(r)}catch{}return s?`table: ${s.join(", ")}${i.map(o=>`
|
|
4
4
|
row: `+o.map(t).join(", ")).join("")}
|
|
5
|
-
end`:`[table-from-columns: ${n.map((o,u)=>`{${t(o)}; [list: ${i.map(
|
|
6
|
-
${x.map(
|
|
5
|
+
end`:`[table-from-columns: ${n.map((o,u)=>`{${t(o)}; [list: ${i.map(c=>t(c[u])).join(", ")}]}`).join(", ")}]`}function nf(e,t,r){let n=re,i=b=>!!b&&typeof b=="object"&&!Y(b)&&n(b)?.kind!=="nothing",s=b=>{if(Array.isArray(b))return b;let q=n(b);if(q?.kind==="reference")return[b.value];if(q?.kind==="string-dict")return b.entries.map(P=>P[1]);if(q?.kind==="table")return fe(b).rows.flat();if(Array.isArray(b.vals))return b.vals;let I=Ke(b);return I?I.elements:Object.keys(b.dict??{}).map(P=>b.dict[P])},o=new Set,u=new Set,c=new Map,f=!1,p=!1,h=[e];for(;h.length;){let b=h.pop();if(!i(b))continue;if(o.has(b)){f=!0;continue}if(o.add(b),!Array.isArray(b)&&n(b)?.kind==="reference"&&u.add(b),!Array.isArray(b)){let I=n(b);I?.kind==="string-dict"&&I.mutable&&c.set(b,I),I?.kind==="table"&&(p=!0)}let q=s(b);for(let I=q.length-1;I>=0;I--)h.push(q[I])}if(!u.size&&!((c.size||p)&&f))return;let l=new Map,w=new Map,m=new Set(["nothing"]);for(let b of o){if(Array.isArray(b))continue;typeof b.$name=="string"&&m.add(B(b.$name));let q=G(b),I=q?.mutableFields?.map(P=>q.fields[P])??[];w.set(b,I);for(let P of I){let M=b.dict[P];if(!u.has(M))throw new Error("Pyret mutable field must contain a reference");if(l.has(M))throw new Error("A Pyret reference shared by multiple mutable constructor fields cannot be reconstructed");l.set(M,{value:b,field:P})}}let g=0,d=b=>{let q;do q=b+g++;while(m.has(q));return m.add(q),q},y=new Map,v=new Set,x=[],E=new Map,O=b=>!i(b)||v.has(b),C=b=>{if(!i(b))return t(b,C);if(!v.has(b))throw new Error("Unresolved Pyret construction dependency");return y.get(b)};for(let b of o)u.has(b)||y.set(b,d("spytial-value"));if([...u].some(b=>!l.has(b)))throw new Error("Pyret reference source requires a reachable mutable constructor field for each reference");let D=new Map;for(let[b,q]of c){let I=y.get(b),P=q.sealed?d("spytial-dict"):I;x.push(`shadow ${P} = ${t({$pyretValue:{...q,sealed:!1},entries:[]},C)}`),q.sealed&&x.push(`shadow ${I} = ${P}.seal()`),v.add(b),D.set(b,P)}let z=new Map(D),L=()=>{for(let[b,q]of z)if(s(b).every(O)){for(let[I,P]of b.entries)x.push(`${q}.set-now(${C(I)}, ${C(P)})`);z.delete(b)}for(let[b,{owner:q,field:I}]of E)O(b.value)&&(x.push(`${q}!{${r(I)}: ${C(b.value)}}`),E.delete(b))},H=b=>{let q=new Set,I=[b];for(;I.length;){let P=I.pop();if(!(!i(P)||q.has(P))){if(!v.has(P)||z.has(P)||E.has(P))return!1;q.add(P),I.push(...s(P))}}return!0},A=[...o].filter(b=>!u.has(b)&&!c.has(b));for(;A.length;){L();let b=!1;for(let q=0;q<A.length;){let I=A[q],P=Array.isArray(I)?[]:w.get(I)??[],M=I;if(P.length){let Z=I,se={...Z.dict};for(let Gr of P){let He=Z.dict[Gr],zr=n(He);se[Gr]=O(He.value)?He.value:zr?.kind==="reference"&&zr.unrestricted?null:He.value}M={...Z,dict:se}}if(!s(M).every(O)){q++;continue}if(Ke(M)&&!s(M).every(H)){q++;continue}let Ct=y.get(I);x.push(`shadow ${Ct} = ${t(M,C)}`),v.add(I);for(let Z of P){let se=I.dict[Z];y.set(se,`${Ct}.${r(Z).trim()}`),v.add(se),(!O(se.value)||M.dict[Z]===null)&&E.set(se,{owner:Ct,field:Z})}A.splice(q,1),b=!0}if(!b)throw new Error("Pyret graph cannot be constructed: cycles need allocatable mutable fields and set elements need complete contents")}return L(),x.push(C(e)),`block:
|
|
6
|
+
${x.map(b=>" "+b).join(`
|
|
7
7
|
`)}
|
|
8
|
-
end`}function
|
|
8
|
+
end`}function Et(e){let t=n=>{let i=e.dict?.[n];return i&&typeof i.meth=="function"&&typeof i.full_meth=="function"},r=e.$underlyingMap;if(r&&t("keys-list")&&t("get-value")&&t("unfreeze")){if(!Number.isSafeInteger(r.size)||r.size<0||typeof r.keys!="function"||typeof r.get!="function")throw new Error("Malformed Pyret string dictionary backing map");return{kind:"string-dict",mutable:!1,sealed:!1}}if(e.$underlyingDict&&t("keys-list-now")&&t("get-value-now")&&t("freeze")){if(typeof e.$underlyingDict!="object"||e.$sealed!==void 0&&typeof e.$sealed!="boolean")throw new Error("Malformed Pyret mutable string dictionary backing map");return{kind:"string-dict",mutable:!0,sealed:e.$sealed===!0}}}function Ot(e,t){let r;if("$pyretValue"in e)r=e.entries;else if(t.mutable)r=Object.entries(e.$underlyingDict);else{let n=e.$underlyingMap,i=n.keys();if(!Array.isArray(i)||i.some(s=>typeof s!="string"))throw new Error("Malformed Pyret dictionary keys");r=i.map(s=>[s,n.get(s)])}if(!Array.isArray(r)||r.some(n=>!Array.isArray(n)||n.length!==2||typeof n[0]!="string")||new Set(r.map(n=>n[0])).size!==r.length)throw new Error("Malformed Pyret dictionary entries");return r}function sf(e,t,r){let n=e.mutable?"mutable-string-dict":"string-dict",i=[...t];if(!e.mutable&&i.length>8){let s=c=>{let f=0;for(let p=0;p<c.length;p++)f=31*f+c.charCodeAt(p)|0;return f>>>1&1073741824|f&3221225471},o=s(i[8][0]),u=i.findIndex(([c])=>s(c)===o);i.splice(8,0,i.splice(u,1)[0])}return`[${n}: ${i.flatMap(([s,o])=>[r(s),r(o)]).join(", ")}]`+(e.sealed?".seal()":"")}function fA(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&"dict"in e}function pA(e){return'"'+e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/[^\x20-\x7E]/g,t=>"\\u"+t.charCodeAt(0).toString(16).toUpperCase().padStart(4,"0"))+'"'}var dA=new Set(`and as ascending ask by cases check data descending do does-not-raise
|
|
9
9
|
else end examples extend extract false for from fun hiding if import include is is-not is-roughly
|
|
10
10
|
is-not-roughly because lam lazy let letrec load-table method module newtype of or provide provide-types
|
|
11
11
|
raises raises-other-than raises-satisfies raises-violates reactor rec ref sanitize satisfies select
|
|
12
|
-
shadow sieve spy order transform true type type-let using use var violates when`.split(/\s+/)),
|
|
12
|
+
shadow sieve spy order transform true type type-let using use var violates when`.split(/\s+/)),yA=new Set(`function break return do yield throw continue while class interface
|
|
13
13
|
type generator alias extends implements module package namespace public private protected static const
|
|
14
|
-
enum super export new try finally debug spy switch this match case with __proto__`.split(/\s+/)),iP=new Set(["block","doc","otherwise","row","sharing","source","table","then","where","with"]);function kr(e){if(rP.has(e)||nP.has(e)||!/^[A-Za-z_][A-Za-z0-9_]*(?:-+[A-Za-z0-9_]+)*$/.test(e))throw new Error(`Pyret object field has no literal spelling: ${JSON.stringify(e)}`);return iP.has(e)?e+" ":e}function Rr(e,t,r=n=>Rr(n,t)){if(e==null)return"nothing";if(typeof e=="number")return String(e);if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return tP(e);let n=H(e);if(n)return xt(n);let i=te(e);if(i?.kind==="nothing")return"nothing";if(i?.kind==="table"){if(t.has(e))throw new Error("Cyclic Pyret table construction is not supported");t.add(e);let s=Zf(e,r,kr);return t.delete(e),s}if(i?.kind==="string-dict"){if(t.has(e))throw new Error("Cyclic immutable Pyret dictionary construction is not supported");t.add(e);let s=Qf(i,e.entries,r);return t.delete(e),s}if("vals"in e&&Array.isArray(e.vals)){if(t.has(e))throw new Error("Cyclic Pyret containers are not supported");if(!e.vals.length)throw new Error("Pyret has no empty tuple literal");t.add(e);let s=`{${e.vals.map(o=>r(o)).join("; ")}${e.vals.length===1?";":""}}`;return t.delete(e),s}if(Array.isArray(e)){if(t.has(e))return"<cyclic>";t.add(e);let s=`[raw-array: ${e.map(r).join(", ")}]`;return t.delete(e),s}if(eP(e)){if(t.has(e))return"<cyclic>";t.add(e);let s=Ge(e);if(s){let p=Yf(s,r);return t.delete(e),p}let o=U(e.$name||"object"),u=e.dict||{},f=Object.keys(u),l=i?.kind==="object"?`{${f.map(p=>`${kr(p)}: ${r(u[p])}`).join(", ")}}`:f.length||e.$arity===0?`${o}(${f.map(p=>r(u[p])).join(", ")})`:o;return t.delete(e),l}return String(e)}function xe(e,t){let r=new Map;for(let i of e.getAtoms()){let s=V(i.type);if(s){if(r.has(s.name)&&r.get(s.name)!==i.type)throw new Error(`Source reconstruction needs explicit bindings for same-named constructor ${s.name}`);r.set(s.name,i.type)}}let n=jr(e,t);return Xf(n,(i,s)=>Rr(i,new Set,s),kr)??Rr(n,new Set)}function Ot(e){return JSON.stringify(e.atoms)}function el(e){let t=new Set;return e.filter(r=>{let n=Ot(r);return t.has(n)?!1:(t.add(n),!0)}).map(r=>({...r,atoms:[...r.atoms],types:[...r.types]}))}function tl(e,t=[]){if(!e.length)return[...t];let r=e[0].atoms.length;return e.some(n=>n.atoms.length!==r)?[]:Array.from({length:r},(n,i)=>{let s=new Set(e.map(o=>o.types[i]??"univ"));return s.size===1?[...s][0]:"univ"})}function Cr(e,t){if(e.name!==t.name)throw new Error(`Conflicting names for relation ID ${JSON.stringify(e.id)}: ${JSON.stringify(e.name)} and ${JSON.stringify(t.name)}`)}function sP(e,t){let r=e.id,n=t.atoms;return`${r}:${n.join("->")}`}var k=class k extends bt{constructor(r,n={},i){super();this.atoms=new Map;this.relations=new Map;this.types=new Map;this.objectToAtomId=new WeakMap;this.atomCounter=0;this.valueRelations=new Map;this.indexAtoms=new Map;this.typeLabelCounters=new Map;this.originalObjects=new Map;this.externalEvaluator=null;this.options={stringsIdempotent:n.stringsIdempotent??!0,numbersIdempotent:n.numbersIdempotent??!0,booleansIdempotent:n.booleansIdempotent??!0,showFunctions:n.showFunctions??!1},this.externalEvaluator=i||null,this.initializeBuiltinTypes(),this.isAtomicValue(r)?this.createAtomFromPrimitive(r):r!=null&&this.parseObjectIteratively(r)}static fromValues(r){let n=new k,i=new WeakSet,s=r.map(o=>{if(n.isAtomicValue(o))return n.createAtomFromPrimitive(o);if(!Array.isArray(o)&&!n.isPyretObject(o))throw new Error("Unsupported normalized Pyret root");return n.parseObjectIteratively(o,i),n.objectToAtomId.get(o)});return{instance:n,rootIds:s}}setExternalEvaluator(r){this.externalEvaluator=r}getExternalEvaluator(){return this.externalEvaluator}getOptions(){return{...this.options}}cacheConstructorPattern(r,n){if(n.length===0)return;let i=k.globalConstructorCache.get(r),s=++k.instantiationCounter;(!i||s>i.instantiation)&&k.globalConstructorCache.set(r,{pattern:[...n],instantiation:s})}static getGlobalConstructorCache(){let r=new Map;for(let[n,i]of k.globalConstructorCache)r.set(n,[...i.pattern]);return r}static getGlobalConstructorCacheWithPriority(){return new Map(k.globalConstructorCache)}static clearGlobalConstructorCache(){k.globalConstructorCache.clear()}static async fromExpression(r,n={},i){let s=await k.evaluateExpression(r,i);if(!s.success)throw new Error(`Failed to evaluate Pyret expression: ${k.formatError(s.exn)}`);if(k.isPrimitive(s.result)){let o=new k(null,n,i),u=typeof s.result=="string"?"String":typeof s.result=="number"?"Number":"Boolean",f={id:`result_${s.result}`,label:String(s.result),type:u};return o.addAtom(f),o}return new k(s.result,n,i)}static async evaluateExpression(r,n){try{let i=await n.run(r),s=k.findKeyAtAnyLevel(i,"exn");if(s!==void 0)return{success:!1,exn:s};let o=k.findKeyAtAnyLevel(i,"answer");return o!==void 0?{success:!0,result:o}:k.isPrimitive(i)?{success:!0,result:i}:{success:!1,exn:"Unable to find answer or exn in evaluation result"}}catch(i){return{success:!1,exn:i instanceof Error?i.message:"Unknown evaluation error"}}}static findKeyAtAnyLevel(r,n){if(!(!r||typeof r!="object")){if(n in r)return r[n];for(let i of Object.values(r))if(i&&typeof i=="object"){let s=k.findKeyAtAnyLevel(i,n);if(s!==void 0)return s}}}static isPrimitive(r){return typeof r=="string"||typeof r=="number"||typeof r=="boolean"}static formatError(r){if(!r)return"Unknown error";if(typeof r=="string")return r;if(typeof r=="object"&&r!==null){let n=r;if(n.message)return n.message;if(n.toString&&typeof n.toString=="function")return n.toString()}return String(r)}hasExternalEvaluator(){return this.externalEvaluator!==null}addAtom(r){this.atoms.set(r.id,r),this.ensureTypeExists(r.type);let n=this.types.get(r.type);n&&!n.atoms.some(i=>i.id===r.id)&&n.atoms.push(r),this.emitEvent({type:"atomAdded",data:{atom:r}})}removeAtom(r){let n=this.atoms.get(r);this.atoms.delete(r),this.types.forEach(i=>{i.atoms=i.atoms.filter(s=>s.id!==r)}),this.relations.forEach(i=>{i.tuples=i.tuples.filter(s=>!s.atoms.includes(r))}),n&&this.emitEvent({type:"atomRemoved",data:{atomId:r}})}removeRelationTuple(r,n){let i=this.relations.get(r);if(i){let s=i.tuples.length;i.tuples=i.tuples.filter(o=>!o.atoms.every((u,f)=>u===n.atoms[f])),i.tuples.length<s&&this.emitEvent({type:"relationTupleRemoved",data:{relationId:r,tuple:n}})}}reify(r){return xe(this,r)}parseObjectIteratively(r,n=new WeakSet){let i=[{obj:r}],s=(o,u,f,l)=>{if(this.isAtomicValue(o)){let p=this.createAtomFromPrimitive(o);this.addRelationTuple(f,{atoms:[...u,p],types:[]},l)}else(Array.isArray(o)||this.isPyretObject(o))&&i.push({obj:o,parentInfo:{atoms:u,relationId:f,relationName:l}})};for(let o=0;o<i.length;o++){let{obj:u,parentInfo:f}=i[o],l=this.objectToAtomId.get(u);if(l||(l=this.createAtomFromObject(u)),f&&this.addRelationTuple(f.relationId,{atoms:[...f.atoms,l],types:[]},f.relationName),n.has(u))continue;n.add(u);let p=this.valueInfo(u);if(p?.kind==="nothing")continue;if(p?.kind==="table"){this.processTableSemantics(l,u,h=>{if(this.isAtomicValue(h))return this.createAtomFromPrimitive(h);if(wt(h)||!Array.isArray(h)&&!this.isPyretObject(h))throw new Error("Unsupported Pyret table cell");let m=h,y=this.objectToAtomId.get(m)??this.createAtomFromObject(m);return i.push({obj:m}),y});continue}if(p?.kind==="string-dict"){p.sealed&&this.addValueFact("sealed",l,"MutableStringDict"),Et(u,p).forEach(([m,y],d)=>{if(!this.isAtomicValue(y)&&!Array.isArray(y)&&!this.isPyretObject(y))throw new Error("Unsupported Pyret dictionary value");let v=this.valueRelationId("dictionary-entries","entry",["PyretObject","Index","String","PyretObject"]);s(y,[l,this.createIndexAtom(d),this.createAtomFromPrimitive(m)],v,"entry")});continue}if(p?.kind==="reference"){p.unrestricted&&this.addValueFact("unrestricted",l,"Reference");let h=u.value;if(!this.isAtomicValue(h)&&!Array.isArray(h)&&!this.isPyretObject(h))throw new Error("Unsupported Pyret reference target");let m=this.valueRelationId("reference-target","target",["Reference","PyretObject"]);s(h,[l],m,"target");continue}if(p?.kind==="tuple"||p?.kind==="raw-array"){let h=Array.isArray(u)?u:u.vals;for(let m=0;m<h.length;m++){let y=this.valueRelationId("sequence-elements","element",["PyretObject","Index","PyretObject"]);s(h[m],[l,this.createIndexAtom(m)],y,"element")}continue}let b=u;this.originalObjects.set(l,b);let c=W(b);c?.arity===0&&this.addValueFact("nullary-constructor",l,"PyretObject");for(let h of c?.mutableFields??[]){let m=this.valueRelationId("mutable-field","mutable-field",["PyretObject","Index"]);this.addRelationTuple(m,{atoms:[l,this.createIndexAtom(h)],types:[]},"mutable-field")}if(!b.dict||typeof b.dict!="object")continue;let w=c?.fields??(p?.kind==="object"?Uf(b.dict,this.options.showFunctions):Object.keys(b.dict));!p&&!V(this.extractType(b))&&this.cacheConstructorPattern(this.extractType(b),w),w.forEach((h,m)=>{let y=b.dict[h],d=c?Jf(c,m):p?.kind==="object"?this.valueRelationId("object-field:"+h,h,["Object","Index","PyretObject"]):h;if(c&&!this.relations.has(d)&&this.relations.set(d,{id:d,name:h,types:[c.name,"PyretObject"],tuples:[]}),!this.options.showFunctions&&wt(y))return;let v=p?.kind==="object"?[l,this.createIndexAtom(m)]:[l];s(y,v,d,p?.kind==="object"?h:void 0)})}}addValueFact(r,n,i){let s=this.valueRelationId(r,r,[i]);this.addRelationTuple(s,{atoms:[n],types:[]},r)}valueRelationId(r,n,i){let s=this.valueRelations.get(r);return s||(s=globalThis.crypto?.randomUUID?.()??`relation-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${this.valueRelations.size}`,this.valueRelations.set(r,s),this.relations.set(s,{id:s,name:n,types:i,tuples:[]})),s}createIndexAtom(r){let n=this.indexAtoms.get(r);if(n)return n;let i=this.generateAtomId("Index");return this.atoms.set(i,{id:i,type:"Index",label:String(r)}),this.ensureTypeExists("Index"),this.indexAtoms.set(r,i),i}valueInfo(r){if(Array.isArray(r))return{kind:"raw-array"};if("$pyretValue"in r)return te(r);if(qt(r))throw new Error("Standalone Pyret Row values are not supported");if(At(r))return{kind:"table"};let n=Lf(r);if(n)return n;let i=Pt(r);if(i)return i;if(Vf(r))return{kind:"nothing"};if(Array.isArray(r.vals))return{kind:"tuple"};if(!W(r)&&r.dict&&(typeof r.updateDict=="function"||this.extractType(r)==="PyretObject"))return{kind:"object"}}processTableSemantics(r,n,i){let{headers:s,rows:o}=ce(n),u=this.valueRelationId("table-columns","column",["Table","Index","String"]);s.forEach((l,p)=>this.addRelationTuple(u,{atoms:[r,this.createIndexAtom(p),this.createAtomFromPrimitive(l)],types:[]},"column"));let f=this.valueRelationId("table-rows:"+s.length,"row",["Table","Index",...s.map(()=>"PyretObject")]);o.forEach((l,p)=>this.addRelationTuple(f,{atoms:[r,this.createIndexAtom(p),...Array.from(l,i)],types:[]},"row"))}createAtomFromObject(r){let n=this.valueInfo(r),i=n?{nothing:"Nothing",reference:"Reference",object:"Object",tuple:"Tuple","raw-array":"RawArray",table:"Table","string-dict":n.kind==="string-dict"&&n.mutable?"MutableStringDict":"StringDict"}[n.kind]:this.extractType(r),s=this.generateAtomId(i),o={id:s,type:i,label:n?i:this.extractLabel(r)};return this.atoms.set(s,o),this.objectToAtomId.set(r,s),this.ensureTypeExists(i),s}createAtomFromPrimitive(r){let n=H(r),i=n?"Number":this.mapPrimitiveType(r),s=n?xt(n):String(r);if(i==="String"&&this.options.stringsIdempotent||i==="Number"&&this.options.numbersIdempotent||i==="Boolean"&&this.options.booleansIdempotent){let l=Array.from(this.atoms.values()).find(p=>p.type===i&&p.label===s);if(l)return l.id}let u=this.generateAtomId(i),f={id:u,type:i,label:s};return this.atoms.set(u,f),this.ensureTypeExists(i),u}mapPrimitiveType(r){switch(typeof r){case"number":return"Number";case"string":return"String";case"boolean":return"Boolean";default:return"Value"}}extractMostSpecificBrand(r){let n=-1,i,s;for(let o of Object.keys(r)){let u=/^\$brand([a-zA-Z_]+)(\d+)$/.exec(o);if(u){let[,f,l]=u,p=parseInt(l,10);p>n&&(n=p,i=f)}else{let f=/^\$brand_?([a-zA-Z_]+)$/.exec(o);if(f){let[,l]=f;(!s||l>s)&&(s=l)}}}return i||s}extractType(r){if(r.$name&&typeof r.$name=="string")return r.$name;if(r.brands&&typeof r.brands=="object"){let n=this.extractMostSpecificBrand(r.brands);if(n)return n}return"PyretObject"}extractLabel(r){if(r.$name&&typeof r.$name=="string")return U(r.$name);let n=this.extractType(r),s=(this.typeLabelCounters.get(n)??0)+1;return this.typeLabelCounters.set(n,s),`${n}$${s}`}addRelationTuple(r,n,i){let s=n.atoms[0],o=n.atoms[n.atoms.length-1],u=this.atoms.get(s),f=this.atoms.get(o);if(!u||!f){console.warn(`Cannot create relation ${r}: missing atoms ${s} or ${o}`);return}let l=this.relations.get(r),p=i??l?.name??we(r)?.field??r;l&&Cr(l,{...l,name:p});let b=Ff(n,l,w=>this.atoms.get(w)?.type);l?l.types=b.relationTypes:(l={id:r,name:p,types:b.relationTypes,tuples:[]},this.relations.set(r,l)),l.tuples.some(w=>Ot(w)===Ot(n))||(l.tuples.push(b.tuple),this.emitEvent({type:"relationTupleAdded",data:{relationId:r,tuple:b.tuple}}))}ensureTypeExists(r){if(!this.types.has(r)){let n=V(r),i=n&&!["Number","String","Boolean","PyretObject","Index","Nothing","Object","Tuple","RawArray","Reference","StringDict","MutableStringDict","Table"].includes(n.name)?n.name:void 0;i&&this.ensureTypeExists(i);let s={id:r,types:i?[r,i,"PyretObject"]:[r,"PyretObject"],atoms:[],isBuiltin:this.isBuiltinType(r)};this.types.set(r,s)}}initializeBuiltinTypes(){["Number","String","Boolean","PyretObject"].forEach(n=>{let i={id:n,types:n==="PyretObject"?["PyretObject"]:[n,"PyretObject"],atoms:[],isBuiltin:!0};this.types.set(n,i)})}isBuiltinType(r){return["Number","String","Boolean","PyretObject"].includes(r)}isAtomicValue(r){return typeof r=="string"||typeof r=="boolean"||H(r)!==void 0}isPyretObject(r){return typeof r=="object"&&r!==null&&("dict"in r||"brands"in r||"$name"in r||"vals"in r||"$pyretValue"in r||Pr(r))}generateAtomId(r){return`${r?r.toLowerCase().substring(0,3):"atom"}_${++this.atomCounter}`}getAtoms(){return Array.from(this.atoms.values())}getRelations(){let r=this.relations.values();return Array.from(r)}getTypes(){return this.types.forEach(r=>{r.atoms=this.getAtoms().filter(n=>n.type===r.id||!!V(n.type)&&this.types.get(n.type)?.types.includes(r.id))}),Array.from(this.types.values())}getAtomType(r){let n=this.atoms.get(r);if(!n)throw new Error(`Atom with id '${r}' not found`);let i=this.types.get(n.type);return i||(this.ensureTypeExists(n.type),this.types.get(n.type))}generateGraph(r=!1,n=!1){let i=new rl.Graph({directed:!0,multigraph:!0});if(this.getAtoms().forEach(s=>{i.setNode(s.id,{label:s.label})}),this.getRelations().forEach(s=>{s.tuples.forEach(o=>{if(o.atoms.length>=2){let u=o.atoms[0],f=o.atoms[o.atoms.length-1],l=o.atoms.slice(1,-1),p=s.name;if(l.length>0){let c=l.map(w=>{let h=this.atoms.get(w);return h?h.label:w});p=`${s.name}[${c.join(", ")}]`}let b=sP(s,o);i.setEdge(u,f,p,b)}})}),r||n){let s=[];i.nodes().forEach(o=>{let u=i.inEdges(o)||[],f=i.outEdges(o)||[];if(u.length===0&&f.length===0&&this.atoms.get(o)){let c=this.getAtomType(o).isBuiltin;(r||c&&n)&&s.push(o)}}),s.forEach(o=>i.removeNode(o))}return i}addFromDataInstance(r,n){if(!(r instanceof k))return!1;let i=r;for(let o of i.getRelations()){let u=this.relations.get(o.id);u&&Cr(u,o)}let s=new Map;return i.getAtoms().forEach(o=>{let u=this.isBuiltinType(o.type);if(n&&u&&(o.type==="String"&&this.options.stringsIdempotent||o.type==="Number"&&this.options.numbersIdempotent||o.type==="Boolean"&&this.options.booleansIdempotent)){let c=Array.from(this.atoms.values()).find(w=>w.type===o.type&&w.label===o.label);if(c){s.set(o.id,c.id);return}}let f=this.generateAtomId(o.type);s.set(o.id,f);let l={...o,id:f};this.addAtom(l);let p=i.originalObjects.get(o.id);p&&this.originalObjects.set(f,p)}),i.getTypes().forEach(o=>{if(!this.types.has(o.id))this.types.set(o.id,{...o,atoms:o.atoms.map(u=>({...u,id:s.get(u.id)||u.id}))});else{let u=this.types.get(o.id),f=o.atoms.map(l=>({...l,id:s.get(l.id)||l.id}));u.atoms.push(...f)}}),i.getRelations().forEach(o=>{let u=o.tuples.map(l=>({atoms:l.atoms.map(p=>s.get(p)||p),types:l.types})),f=this.relations.get(o.id);f?(f.tuples=el([...f.tuples,...u]),f.types=tl(f.tuples,f.types)):this.relations.set(o.id,{...o,tuples:u})}),!0}};k.globalConstructorCache=new Map,k.instantiationCounter=0;var re=k,zT=(e,t={})=>{try{let r=JSON.parse(e);return new re(r,t)}catch(r){throw new Error(`Failed to parse Pyret JSON: ${r instanceof Error?r.message:"Unknown error"}`)}},KT=e=>e instanceof re;var nl=Ur(qr()),_t=class{constructor(t){this.datum=t;this.atoms=new Map(t.atoms.map(r=>[r.id,r])),this.types=new Map(t.types.map(r=>[r.id,r]))}getAtoms(){return this.datum.atoms}getRelations(){return this.datum.relations}getTypes(){return this.datum.types}getAtomType(t){let r=this.atoms.get(t);if(!r)throw new Error(`Unknown captured atom ${t}`);let n=this.types.get(r.type);if(!n)throw new Error(`Unknown captured type ${r.type}`);return n}generateGraph(t=!1,r=!1){let n=new nl.Graph({directed:!0,multigraph:!0});for(let i of this.datum.atoms)n.setNode(i.id,{label:i.label});for(let i of this.datum.relations)for(let s of i.tuples){if(s.atoms.length<2)continue;let o=s.atoms[0],u=s.atoms[s.atoms.length-1],f=s.atoms.slice(1,-1).map(p=>this.atoms.get(p).label),l=i.name+(f.length?`[${f.join(", ")}]`:"");n.setEdge(o,u,l,JSON.stringify([i.id,s.atoms]))}if(t||r)for(let i of n.nodes())!(n.nodeEdges(i)||[]).length&&(t||this.getAtomType(i).isBuiltin)&&n.removeNode(i);return n}};var Tt=class extends Error{constructor(r,n,i){super(`Cannot capture ${JSON.stringify(r)}${n.map(s=>`[${JSON.stringify(s)}]`).join("")}: ${i}`);this.root=r;this.path=n;this.reason=i;this.name="PyretCaptureError"}};function il(e){let t=new Set;function r(n){if(n===null||typeof n=="string"||typeof n=="boolean"||typeof n=="number"&&Number.isFinite(n))return;let i=n&&typeof n=="object"?Object.getPrototypeOf(n):void 0;if(!n||typeof n!="object"||!Array.isArray(n)&&i!==null&&Object.getPrototypeOf(i)!==null)throw new Error("Capture metadata must contain only JSON values");if(t.has(n))throw new Error("Capture metadata must not contain cycles");t.add(n);for(let s of Reflect.ownKeys(n)){let o=Object.getOwnPropertyDescriptor(n,s);if(typeof s!="string"||o.get||o.set)throw new Error("Capture metadata must not contain symbols or accessors")}for(let s of Array.isArray(n)?Array.from(n):Object.values(n))r(s);t.delete(n)}return r(e),JSON.parse(JSON.stringify(e))}function Mr(e,t,r){if(!Array.isArray(e)||!e.length)throw new Error("Capture requires at least one named root");let n=new Set;for(let c of e){if(!c||typeof c.name!="string"||!c.name||n.has(c.name))throw new Error("Capture root names must be nonempty and unique");n.add(c.name)}let i=globalThis.crypto?.randomUUID?.()??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,s=new Map,o=new Map,u=[],f=(c,w,h)=>{if(s.has(c))return s.get(c);try{let m=t.observe(c);if(m.kind==="primitive")return m.value;let y;switch(m.kind){case"nothing":y={$pyretValue:{kind:"nothing"}};break;case"raw-array":y=[];break;case"tuple":y={vals:[]};break;case"object":y={$pyretValue:{kind:"object"},dict:Object.create(null)};break;case"reference":y={$pyretValue:{kind:"reference",unrestricted:!0}};break;case"string-dict":y={$pyretValue:{kind:"string-dict",mutable:m.mutable,sealed:m.sealed},entries:[]};break;case"table":y={$pyretValue:{kind:"table"},dict:Object.create(null)};break;case"constructor":{let d=JSON.stringify(m.info),v=o.get(m.identity);if(v&&v.schema!==d)throw new Error("Constructor schema changed during capture");v||(v={id:Kf(i,o.size,m.info.name),schema:d},o.set(m.identity,v)),y={$name:v.id,$arity:m.info.arity,$constructor:{$fieldNames:m.info.fields.slice()},$mut_fields_mask:m.info.fields.map((x,_)=>(m.info.mutableFields??[]).includes(_)),dict:Object.create(null)};break}default:throw new Error("Unsupported adapter observation")}return s.set(c,y),u.push({carrier:y,observed:m,root:w,path:h}),y}catch(m){throw m instanceof Tt?m:new Tt(w,h,m instanceof Error?m.message:String(m))}},l=e.map(c=>f(c.value,c.name,[]));for(let c=0;c<u.length;c++){let{carrier:w,observed:h,root:m,path:y}=u[c],d=(v,...x)=>f(v,m,[...y,...x]);switch(h.kind){case"constructor":h.info.fields.forEach((v,x)=>{w.dict[v]=d(h.values[x],v)});break;case"object":h.fields.forEach(([v,x])=>{w.dict[v]=d(x,v)});break;case"raw-array":h.values.forEach((v,x)=>w.push(d(v,x)));break;case"tuple":h.values.forEach((v,x)=>w.vals.push(d(v,x)));break;case"reference":w.value=d(h.value,"target");break;case"string-dict":h.entries.forEach(([v,x])=>w.entries.push([v,d(x,v)]));break;case"table":w.dict["_header-raw-array"]=h.headers.slice(),w.dict["_rows-raw-array"]=h.rows.map((v,x)=>v.map((_,T)=>d(_,"rows",x,h.headers[T])));break}}let{instance:p,rootIds:b}=re.fromValues(l);return il({format:"spytial-pyret-capture",version:1,datum:{atoms:[...p.getAtoms()],relations:[...p.getRelations()],types:[...p.getTypes()]},roots:e.map((c,w)=>({name:c.name,atomId:b[w],...c.observation===void 0?{}:{observation:c.observation}})),...r===void 0?{}:{provenance:r}})}function Nr(e){let t=il(e);if(!t||t.format!=="spytial-pyret-capture"||t.version!==1)throw new Error("Unsupported Pyret capture format/version");if(!Array.isArray(t.roots)||!t.roots.length||!t.datum||!Array.isArray(t.datum.atoms)||!Array.isArray(t.datum.relations)||!Array.isArray(t.datum.types))throw new Error("Malformed Pyret capture");let r=new Map,n=new Set(["Number","String","Boolean","Nothing","Object","Index","Tuple","RawArray","Reference","StringDict","MutableStringDict","Table"]);for(let c of t.datum.atoms){if(!c||typeof c.id!="string"||!c.id||r.has(c.id)||typeof c.label!="string"||typeof c.type!="string"||!n.has(c.type)&&!V(c.type))throw new Error("Malformed or duplicate Pyret capture atom");if(c.type==="Index"&&(!/^(0|[1-9][0-9]*)$/.test(c.label)||!Number.isSafeInteger(Number(c.label))))throw new Error("Malformed Pyret capture index");r.set(c.id,c)}let i=new Set,s=(c,w)=>c===w.type||c==="PyretObject"||!n.has(c)&&c===V(w.type)?.name,o=new Set;for(let c of t.datum.types){if(!c||typeof c.id!="string"||o.has(c.id)||!Array.isArray(c.types)||c.types[0]!==c.id||c.types.some(h=>typeof h!="string")||!Array.isArray(c.atoms)||typeof c.isBuiltin!="boolean")throw new Error("Malformed Pyret capture type");o.add(c.id);let w=new Set;for(let h of c.atoms){let m=h&&r.get(h.id);if(!m||w.has(h.id)||h.type!==m.type||h.label!==m.label||!s(c.id,m))throw new Error("Invalid Pyret capture type membership");w.add(h.id)}}if([...r.values()].some(c=>!o.has(c.type))||t.datum.types.some(c=>c.types.some(w=>!o.has(w))))throw new Error("Unknown Pyret capture type");for(let c of t.datum.relations){if(!c||typeof c.id!="string"||i.has(c.id)||typeof c.name!="string"||!Array.isArray(c.tuples)||!Array.isArray(c.types)||c.types.some(h=>typeof h!="string"))throw new Error("Malformed or duplicate Pyret capture relation");i.add(c.id);let w=new Set;for(let h of c.tuples){if(!h||!Array.isArray(h.atoms)||!h.atoms.length||h.atoms.some(y=>!r.has(y))||!Array.isArray(h.types)||h.types.length!==h.atoms.length||h.types.some((y,d)=>!s(y,r.get(h.atoms[d]))))throw new Error("Malformed Pyret capture tuple");let m=JSON.stringify(h.atoms);if(w.has(m))throw new Error("Duplicate Pyret capture tuple");w.add(m)}}let u=new Set;for(let c of t.roots){if(!c||typeof c.name!="string"||!c.name||u.has(c.name)||!r.has(c.atomId)||r.get(c.atomId).type==="Index")throw new Error("Invalid Pyret capture root");u.add(c.name)}let f=new _t(t.datum),l=[...r.values()].filter(c=>c.type!=="Index").map(c=>c.id),p=It(f,l,{allowContainerCycles:!0}),b=new Map(l.map((c,w)=>[c,p[w]]));return{snapshot:t,instance:f,values:new Map(t.roots.map(c=>[c.name,b.get(c.atomId)]))}}function Dr(e){for(let t of["isNumber","isNothing","isDataValue","isTuple","isRef","isFunction","isMethod","isOpaque","isObject"])if(typeof e?.[t]!="function")throw new Error(`Pyret runtime lacks ${t}`);return{observe(t){if(typeof t=="string"||typeof t=="boolean")return{kind:"primitive",value:t};if(e.isNumber(t)){let n=H(t);if(!n)throw new Error("Unsupported Pyret numeric representation");return{kind:"primitive",value:{$pyretNumber:n}}}if(e.isFunction(t))throw new Error("Unsupported Pyret function");if(e.isMethod(t))throw new Error("Unsupported Pyret method");if(e.isOpaque(t))throw new Error("Unsupported Pyret opaque value");if(e.isNothing(t))return{kind:"nothing"};if(Array.isArray(t)){if(Array.from({length:t.length},(n,i)=>i).some(n=>!(n in t)))throw new Error("Unsupported sparse raw array");return{kind:"raw-array",values:t.slice()}}let r=t;if(e.isRef(t)){if(r.state!==2)throw new Error("Unsupported Pyret reference state: only initialized mutable references are supported");if(!Array.isArray(r.anns?.anns)||!r.anns.anns.every(n=>n.ann===e.Any))throw new Error("Unsupported Pyret reference annotation: only the runtime Any annotation is supported");return{kind:"reference",value:r.value}}if(e.isTuple(t))return{kind:"tuple",values:r.vals.slice()};if(e.isDataValue(t)){let n=W(r);if(!n||!r.$constructor||typeof r.$constructor!="object")throw new Error("Invalid Pyret constructor metadata");for(let i in r.dict)if(!n.fields.includes(i)&&i!=="$fieldNames"&&!e.isMethod(r.dict[i]))throw new Error(`Unsupported extra constructor field ${JSON.stringify(i)}`);return{kind:"constructor",identity:r.$constructor,info:n,values:n.fields.map(i=>r.dict[i])}}if(e.isObject(t)){if(qt(r))throw new Error("Unsupported standalone Pyret Row");if(At(r))return{kind:"table",...ce(r)};let n=Pt(r);if(n)return{...n,entries:Et(r,n)};if(r.brands&&Object.keys(r.brands).some(s=>s!=="brandCount"&&r.brands[s]===!0))throw new Error("Unsupported branded Pyret object");let i=[];for(let s in r.dict)i.push([s,r.dict[s]]);return{kind:"object",fields:i}}throw new Error("Unsupported value from this Pyret runtime")}}}function yS(e,t){return Nr(Mr([{name:"value",value:e}],Dr(t))).instance}function hS(e,t){let r=Mr([{name:"value",value:e}],Dr(t)),{instance:n}=Nr(r),i;try{i=xe(n,r.roots[0].atomId)}catch(s){i="Source preview unavailable: "+(s instanceof Error?s.message:String(s))}return{snapshot:r,instance:n,sourcePreview:i}}function gS(e){return{...e,nodes:e.nodes.map(t=>({...t,mostSpecificType:U(t.mostSpecificType)}))}}var sl=new Set(["Number","String","Boolean","Index"]);function oP(e,t){let r=e.getAtoms(),n=e.getRelations(),i=new Map(r.map(y=>[y.id,y])),s=y=>we(y.id)?y.id:y.name,o=new Map,u=new Set;for(let y of n)for(let d of y.tuples){if(d.atoms.length<1)continue;let v=d.atoms[0];for(let _=1;_<d.atoms.length;_++)u.add(d.atoms[_]);let x=o.get(v)??[];x.push({rel:s(y),tuple:d.atoms.slice()}),o.set(v,x)}let f=y=>{let d=i.get(y);return d?JSON.stringify([d.type,sl.has(d.type)?d.label:void 0]):"?"},l=t?[t]:r.map(y=>y.id).filter(y=>!u.has(y)),p=(l.length?l:r.map(y=>y.id)).slice().sort((y,d)=>{let v=f(y).localeCompare(f(d));return v!==0?v:y.localeCompare(d)}),b=new Map,c=0,w=y=>{let d=[y];for(;d.length;){let v=d.pop();if(b.has(v))continue;b.set(v,c++);let x=(o.get(v)??[]).slice().sort((_,T)=>{let C=_.rel.localeCompare(T.rel);if(C!==0)return C;let D=_.tuple.slice(1).map(f).join("|"),B=T.tuple.slice(1).map(f).join("|");return D.localeCompare(B)});for(let _=x.length-1;_>=0;_--){let T=x[_].tuple;for(let C=T.length-1;C>=1;C--)d.push(T[C])}}};for(let y of p)w(y);r.map(y=>y.id).sort().forEach(y=>{b.has(y)||b.set(y,c++)});let h=r.map(y=>({id:b.get(y.id),type:y.type,label:sl.has(y.type)?y.label:void 0})).sort((y,d)=>y.id-d.id),m=n.map(y=>{let d=y.tuples.filter(v=>v.atoms.length>=1).map(v=>v.atoms.map(x=>b.get(x)??-1));return d.sort((v,x)=>{let _=Math.min(v.length,x.length);for(let T=0;T<_;T++)if(v[T]!==x[T])return v[T]-x[T];return v.length-x.length}),{name:s(y),tuples:d}}).filter(y=>y.tuples.length>0).sort((y,d)=>y.name.localeCompare(d.name)||JSON.stringify(y.tuples).localeCompare(JSON.stringify(d.tuples)));return JSON.stringify({atoms:h,relations:m})}export{Tt as PyretCaptureError,re as PyretDataInstance,oP as canon,Mr as capturePyret,U as constructorDisplayName,zT as createPyretDataInstance,Dr as createPyretRuntimeAdapter,gS as diagramTypeNames,sP as generateEdgeId,Nr as importPyretCapture,KT as isPyretDataInstance,hS as prepareDiagram,xe as pyretCaptureSource,V as readConstructorTypeId,jr as reifyToValue,It as reifyToValues,xe as replit,yS as toDataInstance};
|
|
14
|
+
enum super export new try finally debug spy switch this match case with __proto__`.split(/\s+/)),mA=new Set(["block","doc","otherwise","row","sharing","source","table","then","where","with"]);function $r(e){if(dA.has(e)||yA.has(e)||!/^[A-Za-z_][A-Za-z0-9_]*(?:-+[A-Za-z0-9_]+)*$/.test(e))throw new Error(`Pyret object field has no literal spelling: ${JSON.stringify(e)}`);return mA.has(e)?e+" ":e}function Dr(e,t,r=n=>Dr(n,t)){if(e==null)return"nothing";if(typeof e=="number")return String(e);if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return pA(e);let n=Y(e);if(n)return St(n);let i=re(e);if(i?.kind==="nothing")return"nothing";if(i?.kind==="table"){if(t.has(e))throw new Error("Cyclic Pyret table construction is not supported");t.add(e);let s=rf(e,r,$r);return t.delete(e),s}if(i?.kind==="string-dict"){if(t.has(e))throw new Error("Cyclic immutable Pyret dictionary construction is not supported");t.add(e);let s=sf(i,e.entries,r);return t.delete(e),s}if("vals"in e&&Array.isArray(e.vals)){if(t.has(e))throw new Error("Cyclic Pyret containers are not supported");if(!e.vals.length)throw new Error("Pyret has no empty tuple literal");t.add(e);let s=`{${e.vals.map(o=>r(o)).join("; ")}${e.vals.length===1?";":""}}`;return t.delete(e),s}if(Array.isArray(e)){if(t.has(e))return"<cyclic>";t.add(e);let s=`[raw-array: ${e.map(r).join(", ")}]`;return t.delete(e),s}if(fA(e)){if(t.has(e))return"<cyclic>";t.add(e);let s=Ke(e);if(s){let p=tf(s,r);return t.delete(e),p}let o=B(e.$name||"object"),u=e.dict||{},c=Object.keys(u),f=i?.kind==="object"?`{${c.map(p=>`${$r(p)}: ${r(u[p])}`).join(", ")}}`:c.length||e.$arity===0?`${o}(${c.map(p=>r(u[p])).join(", ")})`:o;return t.delete(e),f}return String(e)}function Ie(e,t){let r=new Map;for(let i of e.getAtoms()){let s=U(i.type);if(s){if(r.has(s.name)&&r.get(s.name)!==i.type)throw new Error(`Source reconstruction needs explicit bindings for same-named constructor ${s.name}`);r.set(s.name,i.type)}}let n=Mr(e,t);return nf(n,(i,s)=>Dr(i,new Set,s),$r)??Dr(n,new Set)}function _t(e){return JSON.stringify(e.atoms)}function of(e){let t=new Set;return e.filter(r=>{let n=_t(r);return t.has(n)?!1:(t.add(n),!0)}).map(r=>({...r,atoms:[...r.atoms],types:[...r.types]}))}function af(e,t=[]){if(!e.length)return[...t];let r=e[0].atoms.length;return e.some(n=>n.atoms.length!==r)?[]:Array.from({length:r},(n,i)=>{let s=new Set(e.map(o=>o.types[i]??"univ"));return s.size===1?[...s][0]:"univ"})}function Fr(e,t){if(e.name!==t.name)throw new Error(`Conflicting names for relation ID ${JSON.stringify(e.id)}: ${JSON.stringify(e.name)} and ${JSON.stringify(t.name)}`)}function gA(e,t){let r=e.id,n=t.atoms;return`${r}:${n.join("->")}`}var j=class j extends xt{constructor(r,n={},i){super();this.atoms=new Map;this.relations=new Map;this.types=new Map;this.objectToAtomId=new WeakMap;this.atomCounter=0;this.valueRelations=new Map;this.indexAtoms=new Map;this.typeLabelCounters=new Map;this.originalObjects=new Map;this.externalEvaluator=null;this.options={stringsIdempotent:n.stringsIdempotent??!0,numbersIdempotent:n.numbersIdempotent??!0,booleansIdempotent:n.booleansIdempotent??!0,showFunctions:n.showFunctions??!1},this.externalEvaluator=i||null,this.initializeBuiltinTypes(),this.isAtomicValue(r)?this.createAtomFromPrimitive(r):r!=null&&this.parseObjectIteratively(r)}static fromValues(r){let n=new j,i=new WeakSet,s=r.map(o=>{if(n.isAtomicValue(o))return n.createAtomFromPrimitive(o);if(!Array.isArray(o)&&!n.isPyretObject(o))throw new Error("Unsupported normalized Pyret root");return n.parseObjectIteratively(o,i),n.objectToAtomId.get(o)});return{instance:n,rootIds:s}}setExternalEvaluator(r){this.externalEvaluator=r}getExternalEvaluator(){return this.externalEvaluator}getOptions(){return{...this.options}}cacheConstructorPattern(r,n){if(n.length===0)return;let i=j.globalConstructorCache.get(r),s=++j.instantiationCounter;(!i||s>i.instantiation)&&j.globalConstructorCache.set(r,{pattern:[...n],instantiation:s})}static getGlobalConstructorCache(){let r=new Map;for(let[n,i]of j.globalConstructorCache)r.set(n,[...i.pattern]);return r}static getGlobalConstructorCacheWithPriority(){return new Map(j.globalConstructorCache)}static clearGlobalConstructorCache(){j.globalConstructorCache.clear()}static async fromExpression(r,n={},i){let s=await j.evaluateExpression(r,i);if(!s.success)throw new Error(`Failed to evaluate Pyret expression: ${j.formatError(s.exn)}`);if(j.isPrimitive(s.result)){let o=new j(null,n,i),u=typeof s.result=="string"?"String":typeof s.result=="number"?"Number":"Boolean",c={id:`result_${s.result}`,label:String(s.result),type:u};return o.addAtom(c),o}return new j(s.result,n,i)}static async evaluateExpression(r,n){try{let i=await n.run(r),s=j.findKeyAtAnyLevel(i,"exn");if(s!==void 0)return{success:!1,exn:s};let o=j.findKeyAtAnyLevel(i,"answer");return o!==void 0?{success:!0,result:o}:j.isPrimitive(i)?{success:!0,result:i}:{success:!1,exn:"Unable to find answer or exn in evaluation result"}}catch(i){return{success:!1,exn:i instanceof Error?i.message:"Unknown evaluation error"}}}static findKeyAtAnyLevel(r,n){if(!(!r||typeof r!="object")){if(n in r)return r[n];for(let i of Object.values(r))if(i&&typeof i=="object"){let s=j.findKeyAtAnyLevel(i,n);if(s!==void 0)return s}}}static isPrimitive(r){return typeof r=="string"||typeof r=="number"||typeof r=="boolean"}static formatError(r){if(!r)return"Unknown error";if(typeof r=="string")return r;if(typeof r=="object"&&r!==null){let n=r;if(n.message)return n.message;if(n.toString&&typeof n.toString=="function")return n.toString()}return String(r)}hasExternalEvaluator(){return this.externalEvaluator!==null}addAtom(r){this.atoms.set(r.id,r),this.ensureTypeExists(r.type);let n=this.types.get(r.type);n&&!n.atoms.some(i=>i.id===r.id)&&n.atoms.push(r),this.emitEvent({type:"atomAdded",data:{atom:r}})}removeAtom(r){let n=this.atoms.get(r);this.atoms.delete(r),this.types.forEach(i=>{i.atoms=i.atoms.filter(s=>s.id!==r)}),this.relations.forEach(i=>{i.tuples=i.tuples.filter(s=>!s.atoms.includes(r))}),n&&this.emitEvent({type:"atomRemoved",data:{atomId:r}})}removeRelationTuple(r,n){let i=this.relations.get(r);if(i){let s=i.tuples.length;i.tuples=i.tuples.filter(o=>!o.atoms.every((u,c)=>u===n.atoms[c])),i.tuples.length<s&&this.emitEvent({type:"relationTupleRemoved",data:{relationId:r,tuple:n}})}}reify(r){return Ie(this,r)}parseObjectIteratively(r,n=new WeakSet){let i=[{obj:r}],s=(o,u,c,f)=>{if(this.isAtomicValue(o)){let p=this.createAtomFromPrimitive(o);this.addRelationTuple(c,{atoms:[...u,p],types:[]},f)}else(Array.isArray(o)||this.isPyretObject(o))&&i.push({obj:o,parentInfo:{atoms:u,relationId:c,relationName:f}})};for(let o=0;o<i.length;o++){let{obj:u,parentInfo:c}=i[o],f=this.objectToAtomId.get(u);if(f||(f=this.createAtomFromObject(u)),c&&this.addRelationTuple(c.relationId,{atoms:[...c.atoms,f],types:[]},c.relationName),n.has(u))continue;n.add(u);let p=this.valueInfo(u);if(p?.kind==="nothing")continue;if(p?.kind==="table"){this.processTableSemantics(f,u,m=>{if(this.isAtomicValue(m))return this.createAtomFromPrimitive(m);if(qt(m)||!Array.isArray(m)&&!this.isPyretObject(m))throw new Error("Unsupported Pyret table cell");let g=m,d=this.objectToAtomId.get(g)??this.createAtomFromObject(g);return i.push({obj:g}),d});continue}if(p?.kind==="string-dict"){p.sealed&&this.addValueFact("sealed",f,"MutableStringDict"),Ot(u,p).forEach(([g,d],y)=>{if(!this.isAtomicValue(d)&&!Array.isArray(d)&&!this.isPyretObject(d))throw new Error("Unsupported Pyret dictionary value");let v=this.valueRelationId("dictionary-entries","entry",["PyretObject","Index","String","PyretObject"]);s(d,[f,this.createIndexAtom(y),this.createAtomFromPrimitive(g)],v,"entry")});continue}if(p?.kind==="reference"){p.unrestricted&&this.addValueFact("unrestricted",f,"Reference");let m=u.value;if(!this.isAtomicValue(m)&&!Array.isArray(m)&&!this.isPyretObject(m))throw new Error("Unsupported Pyret reference target");let g=this.valueRelationId("reference-target","target",["Reference","PyretObject"]);s(m,[f],g,"target");continue}if(p?.kind==="tuple"||p?.kind==="raw-array"){let m=Array.isArray(u)?u:u.vals;for(let g=0;g<m.length;g++){let d=this.valueRelationId("sequence-elements","element",["PyretObject","Index","PyretObject"]);s(m[g],[f,this.createIndexAtom(g)],d,"element")}continue}let h=u;this.originalObjects.set(f,h);let l=G(h);l?.arity===0&&this.addValueFact("nullary-constructor",f,"PyretObject");for(let m of l?.mutableFields??[]){let g=this.valueRelationId("mutable-field","mutable-field",["PyretObject","Index"]);this.addRelationTuple(g,{atoms:[f,this.createIndexAtom(m)],types:[]},"mutable-field")}if(!h.dict||typeof h.dict!="object")continue;let w=l?.fields??(p?.kind==="object"?Jl(h.dict,this.options.showFunctions):Object.keys(h.dict));!p&&!U(this.extractType(h))&&this.cacheConstructorPattern(this.extractType(h),w),w.forEach((m,g)=>{let d=h.dict[m],y=l?Xl(l,g):p?.kind==="object"?this.valueRelationId("object-field:"+m,m,["Object","Index","PyretObject"]):m;if(l&&!this.relations.has(y)&&this.relations.set(y,{id:y,name:m,types:[l.name,"PyretObject"],tuples:[]}),!this.options.showFunctions&&qt(d))return;let v=p?.kind==="object"?[f,this.createIndexAtom(g)]:[f];s(d,v,y,p?.kind==="object"?m:void 0)})}}addValueFact(r,n,i){let s=this.valueRelationId(r,r,[i]);this.addRelationTuple(s,{atoms:[n],types:[]},r)}valueRelationId(r,n,i){let s=this.valueRelations.get(r);return s||(s=globalThis.crypto?.randomUUID?.()??`relation-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${this.valueRelations.size}`,this.valueRelations.set(r,s),this.relations.set(s,{id:s,name:n,types:i,tuples:[]})),s}createIndexAtom(r){let n=this.indexAtoms.get(r);if(n)return n;let i=this.generateAtomId("Index");return this.atoms.set(i,{id:i,type:"Index",label:String(r)}),this.ensureTypeExists("Index"),this.indexAtoms.set(r,i),i}valueInfo(r){if(Array.isArray(r))return{kind:"raw-array"};if("$pyretValue"in r)return re(r);if(kt(r))throw new Error("Standalone Pyret Row values are not supported");if(Pt(r))return{kind:"table"};let n=zl(r);if(n)return n;let i=Et(r);if(i)return i;if(Kl(r))return{kind:"nothing"};if(Array.isArray(r.vals))return{kind:"tuple"};if(!G(r)&&r.dict&&(typeof r.updateDict=="function"||this.extractType(r)==="PyretObject"))return{kind:"object"}}processTableSemantics(r,n,i){let{headers:s,rows:o}=fe(n),u=this.valueRelationId("table-columns","column",["Table","Index","String"]);s.forEach((f,p)=>this.addRelationTuple(u,{atoms:[r,this.createIndexAtom(p),this.createAtomFromPrimitive(f)],types:[]},"column"));let c=this.valueRelationId("table-rows:"+s.length,"row",["Table","Index",...s.map(()=>"PyretObject")]);o.forEach((f,p)=>this.addRelationTuple(c,{atoms:[r,this.createIndexAtom(p),...Array.from(f,i)],types:[]},"row"))}createAtomFromObject(r){let n=this.valueInfo(r),i=n?{nothing:"Nothing",reference:"Reference",object:"Object",tuple:"Tuple","raw-array":"RawArray",table:"Table","string-dict":n.kind==="string-dict"&&n.mutable?"MutableStringDict":"StringDict"}[n.kind]:this.extractType(r),s=this.generateAtomId(i),o={id:s,type:i,label:n?i:this.extractLabel(r)};return this.atoms.set(s,o),this.objectToAtomId.set(r,s),this.ensureTypeExists(i),s}createAtomFromPrimitive(r){let n=Y(r),i=n?"Number":this.mapPrimitiveType(r),s=n?St(n):String(r);if(i==="String"&&this.options.stringsIdempotent||i==="Number"&&this.options.numbersIdempotent||i==="Boolean"&&this.options.booleansIdempotent){let f=Array.from(this.atoms.values()).find(p=>p.type===i&&p.label===s);if(f)return f.id}let u=this.generateAtomId(i),c={id:u,type:i,label:s};return this.atoms.set(u,c),this.ensureTypeExists(i),u}mapPrimitiveType(r){switch(typeof r){case"number":return"Number";case"string":return"String";case"boolean":return"Boolean";default:return"Value"}}extractMostSpecificBrand(r){let n=-1,i,s;for(let o of Object.keys(r)){let u=/^\$brand([a-zA-Z_]+)(\d+)$/.exec(o);if(u){let[,c,f]=u,p=parseInt(f,10);p>n&&(n=p,i=c)}else{let c=/^\$brand_?([a-zA-Z_]+)$/.exec(o);if(c){let[,f]=c;(!s||f>s)&&(s=f)}}}return i||s}extractType(r){if(r.$name&&typeof r.$name=="string")return r.$name;if(r.brands&&typeof r.brands=="object"){let n=this.extractMostSpecificBrand(r.brands);if(n)return n}return"PyretObject"}extractLabel(r){if(r.$name&&typeof r.$name=="string")return B(r.$name);let n=this.extractType(r),s=(this.typeLabelCounters.get(n)??0)+1;return this.typeLabelCounters.set(n,s),`${n}$${s}`}addRelationTuple(r,n,i){let s=n.atoms[0],o=n.atoms[n.atoms.length-1],u=this.atoms.get(s),c=this.atoms.get(o);if(!u||!c){console.warn(`Cannot create relation ${r}: missing atoms ${s} or ${o}`);return}let f=this.relations.get(r),p=i??f?.name??xe(r)?.field??r;f&&Fr(f,{...f,name:p});let h=Gl(n,f,w=>this.atoms.get(w)?.type);f?f.types=h.relationTypes:(f={id:r,name:p,types:h.relationTypes,tuples:[]},this.relations.set(r,f)),f.tuples.some(w=>_t(w)===_t(n))||(f.tuples.push(h.tuple),this.emitEvent({type:"relationTupleAdded",data:{relationId:r,tuple:h.tuple}}))}ensureTypeExists(r){if(!this.types.has(r)){let n=U(r),i=n&&!["Number","String","Boolean","PyretObject","Index","Nothing","Object","Tuple","RawArray","Reference","StringDict","MutableStringDict","Table"].includes(n.name)?n.name:void 0;i&&this.ensureTypeExists(i);let s={id:r,types:i?[r,i,"PyretObject"]:[r,"PyretObject"],atoms:[],isBuiltin:this.isBuiltinType(r)};this.types.set(r,s)}}initializeBuiltinTypes(){["Number","String","Boolean","PyretObject"].forEach(n=>{let i={id:n,types:n==="PyretObject"?["PyretObject"]:[n,"PyretObject"],atoms:[],isBuiltin:!0};this.types.set(n,i)})}isBuiltinType(r){return["Number","String","Boolean","PyretObject"].includes(r)}isAtomicValue(r){return typeof r=="string"||typeof r=="boolean"||Y(r)!==void 0}isPyretObject(r){return typeof r=="object"&&r!==null&&("dict"in r||"brands"in r||"$name"in r||"vals"in r||"$pyretValue"in r||_r(r))}generateAtomId(r){return`${r?r.toLowerCase().substring(0,3):"atom"}_${++this.atomCounter}`}getAtoms(){return Array.from(this.atoms.values())}getRelations(){let r=this.relations.values();return Array.from(r)}getTypes(){return this.types.forEach(r=>{r.atoms=this.getAtoms().filter(n=>n.type===r.id||!!U(n.type)&&this.types.get(n.type)?.types.includes(r.id))}),Array.from(this.types.values())}getAtomType(r){let n=this.atoms.get(r);if(!n)throw new Error(`Atom with id '${r}' not found`);let i=this.types.get(n.type);return i||(this.ensureTypeExists(n.type),this.types.get(n.type))}generateGraph(r=!1,n=!1){let i=new uf.Graph({directed:!0,multigraph:!0});if(this.getAtoms().forEach(s=>{i.setNode(s.id,{label:s.label})}),this.getRelations().forEach(s=>{s.tuples.forEach(o=>{if(o.atoms.length>=2){let u=o.atoms[0],c=o.atoms[o.atoms.length-1],f=o.atoms.slice(1,-1),p=s.name;if(f.length>0){let l=f.map(w=>{let m=this.atoms.get(w);return m?m.label:w});p=`${s.name}[${l.join(", ")}]`}let h=gA(s,o);i.setEdge(u,c,p,h)}})}),r||n){let s=[];i.nodes().forEach(o=>{let u=i.inEdges(o)||[],c=i.outEdges(o)||[];if(u.length===0&&c.length===0&&this.atoms.get(o)){let l=this.getAtomType(o).isBuiltin;(r||l&&n)&&s.push(o)}}),s.forEach(o=>i.removeNode(o))}return i}addFromDataInstance(r,n){if(!(r instanceof j))return!1;let i=r;for(let o of i.getRelations()){let u=this.relations.get(o.id);u&&Fr(u,o)}let s=new Map;return i.getAtoms().forEach(o=>{let u=this.isBuiltinType(o.type);if(n&&u&&(o.type==="String"&&this.options.stringsIdempotent||o.type==="Number"&&this.options.numbersIdempotent||o.type==="Boolean"&&this.options.booleansIdempotent)){let l=Array.from(this.atoms.values()).find(w=>w.type===o.type&&w.label===o.label);if(l){s.set(o.id,l.id);return}}let c=this.generateAtomId(o.type);s.set(o.id,c);let f={...o,id:c};this.addAtom(f);let p=i.originalObjects.get(o.id);p&&this.originalObjects.set(c,p)}),i.getTypes().forEach(o=>{if(!this.types.has(o.id))this.types.set(o.id,{...o,atoms:o.atoms.map(u=>({...u,id:s.get(u.id)||u.id}))});else{let u=this.types.get(o.id),c=o.atoms.map(f=>({...f,id:s.get(f.id)||f.id}));u.atoms.push(...c)}}),i.getRelations().forEach(o=>{let u=o.tuples.map(f=>({atoms:f.atoms.map(p=>s.get(p)||p),types:f.types})),c=this.relations.get(o.id);c?(c.tuples=of([...c.tuples,...u]),c.types=af(c.tuples,c.types)):this.relations.set(o.id,{...o,tuples:u})}),!0}};j.globalConstructorCache=new Map,j.instantiationCounter=0;var ne=j,u_=(e,t={})=>{try{let r=JSON.parse(e);return new ne(r,t)}catch(r){throw new Error(`Failed to parse Pyret JSON: ${r instanceof Error?r.message:"Unknown error"}`)}},c_=e=>e instanceof ne;var cf=Hr(Or()),Tt=class{constructor(t){this.datum=t;this.atoms=new Map(t.atoms.map(r=>[r.id,r])),this.types=new Map(t.types.map(r=>[r.id,r]))}getAtoms(){return this.datum.atoms}getRelations(){return this.datum.relations}getTypes(){return this.datum.types}getAtomType(t){let r=this.atoms.get(t);if(!r)throw new Error(`Unknown captured atom ${t}`);let n=this.types.get(r.type);if(!n)throw new Error(`Unknown captured type ${r.type}`);return n}generateGraph(t=!1,r=!1){let n=new cf.Graph({directed:!0,multigraph:!0});for(let i of this.datum.atoms)n.setNode(i.id,{label:i.label});for(let i of this.datum.relations)for(let s of i.tuples){if(s.atoms.length<2)continue;let o=s.atoms[0],u=s.atoms[s.atoms.length-1],c=s.atoms.slice(1,-1).map(p=>this.atoms.get(p).label),f=i.name+(c.length?`[${c.join(", ")}]`:"");n.setEdge(o,u,f,JSON.stringify([i.id,s.atoms]))}if(t||r)for(let i of n.nodes())!(n.nodeEdges(i)||[]).length&&(t||this.getAtomType(i).isBuiltin)&&n.removeNode(i);return n}};var jt=class extends Error{constructor(r,n,i){super(`Cannot capture ${JSON.stringify(r)}${n.map(s=>`[${JSON.stringify(s)}]`).join("")}: ${i}`);this.root=r;this.path=n;this.reason=i;this.name="PyretCaptureError"}};function lf(e){let t=new Set;function r(n){if(n===null||typeof n=="string"||typeof n=="boolean"||typeof n=="number"&&Number.isFinite(n))return;let i=n&&typeof n=="object"?Object.getPrototypeOf(n):void 0;if(!n||typeof n!="object"||!Array.isArray(n)&&i!==null&&Object.getPrototypeOf(i)!==null)throw new Error("Capture metadata must contain only JSON values");if(t.has(n))throw new Error("Capture metadata must not contain cycles");t.add(n);for(let s of Reflect.ownKeys(n)){let o=Object.getOwnPropertyDescriptor(n,s);if(typeof s!="string"||o.get||o.set)throw new Error("Capture metadata must not contain symbols or accessors")}for(let s of Array.isArray(n)?Array.from(n):Object.values(n))r(s);t.delete(n)}return r(e),JSON.parse(JSON.stringify(e))}function Lr(e,t,r){if(!Array.isArray(e)||!e.length)throw new Error("Capture requires at least one named root");let n=new Set;for(let l of e){if(!l||typeof l.name!="string"||!l.name||n.has(l.name))throw new Error("Capture root names must be nonempty and unique");n.add(l.name)}let i=globalThis.crypto?.randomUUID?.()??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,s=new Map,o=new Map,u=[],c=(l,w,m)=>{if(s.has(l))return s.get(l);try{let g=t.observe(l);if(g.kind==="primitive")return g.value;let d;switch(g.kind){case"nothing":d={$pyretValue:{kind:"nothing"}};break;case"raw-array":d=[];break;case"tuple":d={vals:[]};break;case"object":d={$pyretValue:{kind:"object"},dict:Object.create(null)};break;case"reference":d={$pyretValue:{kind:"reference",unrestricted:!0}};break;case"string-dict":d={$pyretValue:{kind:"string-dict",mutable:g.mutable,sealed:g.sealed},entries:[]};break;case"table":d={$pyretValue:{kind:"table"},dict:Object.create(null)};break;case"constructor":{let y=JSON.stringify(g.info),v=o.get(g.identity);if(v&&v.schema!==y)throw new Error("Constructor schema changed during capture");v||(v={id:Zl(i,o.size,g.info.name),schema:y},o.set(g.identity,v)),d={$name:v.id,$arity:g.info.arity,$constructor:{$fieldNames:g.info.fields.slice()},$mut_fields_mask:g.info.fields.map((x,E)=>(g.info.mutableFields??[]).includes(E)),dict:Object.create(null)};break}default:throw new Error("Unsupported adapter observation")}return s.set(l,d),u.push({carrier:d,observed:g,root:w,path:m}),d}catch(g){throw g instanceof jt?g:new jt(w,m,g instanceof Error?g.message:String(g))}},f=e.map(l=>c(l.value,l.name,[]));for(let l=0;l<u.length;l++){let{carrier:w,observed:m,root:g,path:d}=u[l],y=(v,...x)=>c(v,g,[...d,...x]);switch(m.kind){case"constructor":m.info.fields.forEach((v,x)=>{w.dict[v]=y(m.values[x],v)});break;case"object":m.fields.forEach(([v,x])=>{w.dict[v]=y(x,v)});break;case"raw-array":m.values.forEach((v,x)=>w.push(y(v,x)));break;case"tuple":m.values.forEach((v,x)=>w.vals.push(y(v,x)));break;case"reference":w.value=y(m.value,"target");break;case"string-dict":m.entries.forEach(([v,x])=>w.entries.push([v,y(x,v)]));break;case"table":w.dict["_header-raw-array"]=m.headers.slice(),w.dict["_rows-raw-array"]=m.rows.map((v,x)=>v.map((E,O)=>y(E,"rows",x,m.headers[O])));break}}let{instance:p,rootIds:h}=ne.fromValues(f);return lf({format:"spytial-pyret-capture",version:1,datum:{atoms:[...p.getAtoms()],relations:[...p.getRelations()],types:[...p.getTypes()]},roots:e.map((l,w)=>({name:l.name,atomId:h[w],...l.observation===void 0?{}:{observation:l.observation}})),...r===void 0?{}:{provenance:r}})}function Vr(e){let t=lf(e);if(!t||t.format!=="spytial-pyret-capture"||t.version!==1)throw new Error("Unsupported Pyret capture format/version");if(!Array.isArray(t.roots)||!t.roots.length||!t.datum||!Array.isArray(t.datum.atoms)||!Array.isArray(t.datum.relations)||!Array.isArray(t.datum.types))throw new Error("Malformed Pyret capture");let r=new Map,n=new Set(["Number","String","Boolean","Nothing","Object","Index","Tuple","RawArray","Reference","StringDict","MutableStringDict","Table"]);for(let l of t.datum.atoms){if(!l||typeof l.id!="string"||!l.id||r.has(l.id)||typeof l.label!="string"||typeof l.type!="string"||!n.has(l.type)&&!U(l.type))throw new Error("Malformed or duplicate Pyret capture atom");if(l.type==="Index"&&(!/^(0|[1-9][0-9]*)$/.test(l.label)||!Number.isSafeInteger(Number(l.label))))throw new Error("Malformed Pyret capture index");r.set(l.id,l)}let i=new Set,s=(l,w)=>l===w.type||l==="PyretObject"||!n.has(l)&&l===U(w.type)?.name,o=new Set;for(let l of t.datum.types){if(!l||typeof l.id!="string"||o.has(l.id)||!Array.isArray(l.types)||l.types[0]!==l.id||l.types.some(m=>typeof m!="string")||!Array.isArray(l.atoms)||typeof l.isBuiltin!="boolean")throw new Error("Malformed Pyret capture type");o.add(l.id);let w=new Set;for(let m of l.atoms){let g=m&&r.get(m.id);if(!g||w.has(m.id)||m.type!==g.type||m.label!==g.label||!s(l.id,g))throw new Error("Invalid Pyret capture type membership");w.add(m.id)}}if([...r.values()].some(l=>!o.has(l.type))||t.datum.types.some(l=>l.types.some(w=>!o.has(w))))throw new Error("Unknown Pyret capture type");for(let l of t.datum.relations){if(!l||typeof l.id!="string"||i.has(l.id)||typeof l.name!="string"||!Array.isArray(l.tuples)||!Array.isArray(l.types)||l.types.some(m=>typeof m!="string"))throw new Error("Malformed or duplicate Pyret capture relation");i.add(l.id);let w=new Set;for(let m of l.tuples){if(!m||!Array.isArray(m.atoms)||!m.atoms.length||m.atoms.some(d=>!r.has(d))||!Array.isArray(m.types)||m.types.length!==m.atoms.length||m.types.some((d,y)=>!s(d,r.get(m.atoms[y]))))throw new Error("Malformed Pyret capture tuple");let g=JSON.stringify(m.atoms);if(w.has(g))throw new Error("Duplicate Pyret capture tuple");w.add(g)}}let u=new Set;for(let l of t.roots){if(!l||typeof l.name!="string"||!l.name||u.has(l.name)||!r.has(l.atomId)||r.get(l.atomId).type==="Index")throw new Error("Invalid Pyret capture root");u.add(l.name)}let c=new Tt(t.datum),f=[...r.values()].filter(l=>l.type!=="Index").map(l=>l.id),p=At(c,f,{allowContainerCycles:!0}),h=new Map(f.map((l,w)=>[l,p[w]]));return{snapshot:t,instance:c,values:new Map(t.roots.map(l=>[l.name,h.get(l.atomId)]))}}function Je(e){for(let t of["isNumber","isNothing","isDataValue","isTuple","isRef","isFunction","isMethod","isOpaque","isObject"])if(typeof e?.[t]!="function")throw new Error(`Pyret runtime lacks ${t}`);return{observe(t){if(typeof t=="string"||typeof t=="boolean")return{kind:"primitive",value:t};if(e.isNumber(t)){let n=Y(t);if(!n)throw new Error("Unsupported Pyret numeric representation");return{kind:"primitive",value:{$pyretNumber:n}}}if(e.isFunction(t))throw new Error("Unsupported Pyret function");if(e.isMethod(t))throw new Error("Unsupported Pyret method");if(e.isOpaque(t))throw new Error("Unsupported Pyret opaque value");if(e.isNothing(t))return{kind:"nothing"};if(Array.isArray(t)){if(Array.from({length:t.length},(n,i)=>i).some(n=>!(n in t)))throw new Error("Unsupported sparse raw array");return{kind:"raw-array",values:t.slice()}}let r=t;if(e.isRef(t)){if(r.state!==2)throw new Error("Unsupported Pyret reference state: only initialized mutable references are supported");if(!Array.isArray(r.anns?.anns)||!r.anns.anns.every(n=>n.ann===e.Any))throw new Error("Unsupported Pyret reference annotation: only the runtime Any annotation is supported");return{kind:"reference",value:r.value}}if(e.isTuple(t))return{kind:"tuple",values:r.vals.slice()};if(e.isDataValue(t)){let n=G(r);if(!n||!r.$constructor||typeof r.$constructor!="object")throw new Error("Invalid Pyret constructor metadata");for(let i in r.dict)if(!n.fields.includes(i)&&i!=="$fieldNames"&&!e.isMethod(r.dict[i])&&!(i==="_spytial"&&e.isFunction(r.dict[i])))throw new Error(`Unsupported extra constructor field ${JSON.stringify(i)}`);return{kind:"constructor",identity:r.$constructor,info:n,values:n.fields.map(i=>r.dict[i])}}if(e.isObject(t)){if(kt(r))throw new Error("Unsupported standalone Pyret Row");if(Pt(r))return{kind:"table",...fe(r)};let n=Et(r);if(n)return{...n,entries:Ot(r,n)};if(r.brands&&Object.keys(r.brands).some(s=>s!=="brandCount"&&r.brands[s]===!0))throw new Error("Unsupported branded Pyret object");let i=[];for(let s in r.dict)s==="_spytial"&&(e.isFunction(r.dict[s])||e.isMethod(r.dict[s]))||i.push([s,r.dict[s]]);return{kind:"object",fields:i}}throw new Error("Unsupported value from this Pyret runtime")}}}function T_(e,t){return Vr(Lr([{name:"value",value:e}],Je(t))).instance}function j_(e,t){let r=Lr([{name:"value",value:e}],Je(t)),{instance:n}=Vr(r),i;try{i=Ie(n,r.roots[0].atomId)}catch(s){i="Source preview unavailable: "+(s instanceof Error?s.message:String(s))}return{snapshot:r,instance:n,sourcePreview:i}}function R_(e){return{...e,nodes:e.nodes.map(t=>({...t,mostSpecificType:B(t.mostSpecificType)}))}}var Rt={languageVersion:"2026-09-18",coreVersion:"6.3.2",enums:{TextSize:{small:"small",normal:"normal",large:"large"},LinePattern:{solid:"solid",dashed:"dashed",dotted:"dotted"},IconPlacement:{full:"full",badge:"badge"},Direction:{above:"above",below:"below",left:"left",right:"right","directly-above":"directlyAbove","directly-below":"directlyBelow","directly-left":"directlyLeft","directly-right":"directlyRight"},Hold:{always:"always",never:"never"},Rotation:{clockwise:"clockwise",counterclockwise:"counterclockwise"},Alignment:{horizontal:"horizontal",vertical:"vertical"},GroupEdgeDirection:{"no-group-edge":"none",togroup:"togroup",fromgroup:"fromgroup"},LayoutFlag:{"hide-disconnected":"hideDisconnected","hide-disconnected-built-ins":"hideDisconnectedBuiltIns"}},blocks:{textStyle:{name:"textStyle",typeName:"TextStyle",constructor:"text-style",fields:[{name:"size",pyretName:"size",type:"enum",required:!1,enum:"TextSize"},{name:"color",pyretName:"color",type:"color",required:!1}]},lineStyle:{name:"lineStyle",typeName:"LineStyle",constructor:"line-style",fields:[{name:"color",pyretName:"color",type:"color",required:!1},{name:"pattern",pyretName:"pattern",type:"enum",required:!1,enum:"LinePattern"},{name:"weight",pyretName:"weight",type:"number",required:!1,exclusiveMinimum:0},{name:"highlight",pyretName:"highlight",type:"color",required:!1}]},fillStyle:{name:"fillStyle",typeName:"FillStyle",constructor:"fill-style",fields:[{name:"color",pyretName:"color",type:"color",required:!1}]},borderStyle:{name:"borderStyle",typeName:"BorderStyle",constructor:"border-style",fields:[{name:"color",pyretName:"color",type:"color",required:!1},{name:"width",pyretName:"width",type:"number",required:!1,exclusiveMinimum:0}]},iconStyle:{name:"iconStyle",typeName:"IconStyle",constructor:"icon-style",fields:[{name:"path",pyretName:"path",type:"icon-path",required:!1},{name:"placement",pyretName:"placement",type:"enum",required:!1,enum:"IconPlacement"},{name:"opacity",pyretName:"opacity",type:"number",required:!1,minimum:0,maximum:1}]},ruleSource:{name:"ruleSource",typeName:"RuleSource",constructor:"rule-source",fields:[{name:"text",pyretName:"text",type:"string",required:!0},{name:"location",pyretName:"location",type:"string",required:!1}]},groupAddEdge:{name:"groupAddEdge",typeName:"GroupAddEdge",constructor:"group-add-edge",fields:[{name:"points",pyretName:"points",type:"enum",required:!1,enum:"GroupEdgeDirection"},{name:"lineStyle",pyretName:"line-style",type:"block",required:!1,block:"lineStyle"},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"}]}},rules:{orientation:{name:"orientation",yamlKey:"orientation",section:"constraints",shape:"mapping",constructor:"spytial-orientation",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"directions",pyretName:"directions",type:"enum-list",required:!0,listRules:{atMostOneOf:[["above","below"],["left","right"]],narrowsListTo:{directlyAbove:["above","directlyAbove"],directlyBelow:["below","directlyBelow"],directlyLeft:["left","directlyLeft"],directlyRight:["right","directlyRight"]}},enum:"Direction"},{name:"hold",pyretName:"hold",type:"enum",required:!1,enum:"Hold"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},cyclic:{name:"cyclic",yamlKey:"cyclic",section:"constraints",shape:"mapping",constructor:"spytial-cyclic",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"direction",pyretName:"direction",type:"enum",required:!1,enum:"Rotation"},{name:"hold",pyretName:"hold",type:"enum",required:!1,enum:"Hold"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},align:{name:"align",yamlKey:"align",section:"constraints",shape:"mapping",constructor:"spytial-align",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"direction",pyretName:"direction",type:"enum",required:!0,enum:"Alignment"},{name:"hold",pyretName:"hold",type:"enum",required:!1,enum:"Hold"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},group:{name:"group",yamlKey:"group",section:"constraints",shape:"mapping",constructor:"spytial-group",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"name",pyretName:"name",type:"string",required:!0},{name:"addEdge",pyretName:"add-edge",type:"block",required:!1,block:"groupAddEdge"},{name:"showLabel",pyretName:"show-label",type:"boolean",required:!1},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"hold",pyretName:"hold",type:"enum",required:!1,enum:"Hold"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},size:{name:"size",yamlKey:"size",section:"constraints",shape:"mapping",constructor:"spytial-size",fields:[{name:"width",pyretName:"width",type:"number",required:!0,exclusiveMinimum:0},{name:"height",pyretName:"height",type:"number",required:!0,exclusiveMinimum:0},{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},hideAtom:{name:"hideAtom",yamlKey:"hideAtom",section:"constraints",shape:"mapping",constructor:"spytial-hide-atom",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},flag:{name:"flag",yamlKey:"flag",section:"directives",shape:"scalar",constructor:"spytial-flag",fields:[{name:"flag",pyretName:"name",type:"enum",required:!0,enum:"LayoutFlag"}]},atomStyle:{name:"atomStyle",yamlKey:"atomStyle",section:"directives",shape:"mapping",constructor:"spytial-atom-style",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"fillStyle",pyretName:"fill-style",type:"block",required:!1,block:"fillStyle"},{name:"borderStyle",pyretName:"border-style",type:"block",required:!1,block:"borderStyle"},{name:"iconStyle",pyretName:"icon-style",type:"block",required:!1,block:"iconStyle"},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"showLabel",pyretName:"show-label",type:"boolean",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},edgeStyle:{name:"edgeStyle",yamlKey:"edgeStyle",section:"directives",shape:"mapping",constructor:"spytial-edge-style",fields:[{name:"field",pyretName:"field",type:"relation",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"filter",pyretName:"filter",type:"selector",required:!1},{name:"lineStyle",pyretName:"line-style",type:"block",required:!1,block:"lineStyle"},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"showLabel",pyretName:"show-label",type:"boolean",required:!1},{name:"hidden",pyretName:"hidden",type:"boolean",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},attribute:{name:"attribute",yamlKey:"attribute",section:"directives",shape:"mapping",constructor:"spytial-attribute",fields:[{name:"field",pyretName:"field",type:"relation",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"filter",pyretName:"filter",type:"selector",required:!1},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},tag:{name:"tag",yamlKey:"tag",section:"directives",shape:"mapping",constructor:"spytial-tag",fields:[{name:"toTag",pyretName:"to-tag",type:"selector",required:!0},{name:"name",pyretName:"name",type:"string",required:!0},{name:"value",pyretName:"value",type:"selector",required:!0},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},hideField:{name:"hideField",yamlKey:"hideField",section:"directives",shape:"mapping",constructor:"spytial-hide-field",fields:[{name:"field",pyretName:"field",type:"relation",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"filter",pyretName:"filter",type:"selector",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},inferredEdge:{name:"inferredEdge",yamlKey:"inferredEdge",section:"directives",shape:"mapping",constructor:"spytial-inferred-edge",fields:[{name:"name",pyretName:"name",type:"string",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"draw",pyretName:"draw",type:"string",required:!1,pattern:"^\\s*[^\\s](?:(?!->)[\\s\\S])*->(?:(?!->)[\\s\\S])*[^\\s]\\s*$"},{name:"lineStyle",pyretName:"line-style",type:"block",required:!1,block:"lineStyle"},{name:"textStyle",pyretName:"text-style",type:"block",required:!1,block:"textStyle"},{name:"color",pyretName:"color",type:"color",required:!1},{name:"style",pyretName:"style",type:"enum",required:!1,enum:"LinePattern"},{name:"weight",pyretName:"weight",type:"number",required:!1,exclusiveMinimum:0},{name:"highlight",pyretName:"highlight",type:"color",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},icon:{name:"icon",yamlKey:"icon",section:"directives",shape:"mapping",constructor:"spytial-icon",fields:[{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"path",pyretName:"path",type:"icon-path",required:!0},{name:"showLabels",pyretName:"show-labels",type:"boolean",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},atomColor:{name:"atomColor",yamlKey:"atomColor",section:"directives",shape:"mapping",constructor:"spytial-atom-color",fields:[{name:"value",pyretName:"value",type:"color",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!0},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]},edgeColor:{name:"edgeColor",yamlKey:"edgeColor",section:"directives",shape:"mapping",constructor:"spytial-edge-color",fields:[{name:"field",pyretName:"field",type:"relation",required:!0},{name:"value",pyretName:"value",type:"color",required:!0},{name:"selector",pyretName:"selector",type:"selector",required:!1},{name:"filter",pyretName:"filter",type:"selector",required:!1},{name:"style",pyretName:"style",type:"enum",required:!1,enum:"LinePattern"},{name:"weight",pyretName:"weight",type:"number",required:!1,exclusiveMinimum:0},{name:"highlight",pyretName:"highlight",type:"color",required:!1},{name:"showLabel",pyretName:"show-label",type:"boolean",required:!1},{name:"hidden",pyretName:"hidden",type:"boolean",required:!1},{name:"source",pyretName:"source",type:"block",required:!1,block:"ruleSource"}]}}};var ie=class extends Error{constructor(r,n){super(`${r}: ${n}`);this.path=r;this.name="SpytialSpecError"}},hA=Object.values(Rt.rules),bA=Rt.blocks,wA=Rt.enums;function R(e,t){throw new ie(e,t)}function Nt(e,t,r,n,i){if(!t.isDataValue(e))return R(r,`expected ${n}`);let s=e,o=G(s);return s.$name!==n||!o||o.fields.length!==i.length||o.fields.some((u,c)=>u!==i[c])?R(r,`expected ${n}`):s.dict}function ff(e,t,r){let n=new Set,i=[];for(;!t.ffi.isEmpty(e);){if(!t.ffi.isLink(e))return R(r,"expected a Pyret List");if(n.has(e))return R(r,"cyclic rule list");n.add(e);let s=e.dict;i.push(s.first),e=s.rest}return i}function pf(e,t,r,n){if(t.type==="enum"||t.type==="enum-list"){let i=wA[t.enum],s=(u,c)=>{let f=u?.$name;return!f||!Object.prototype.hasOwnProperty.call(i,f)?R(c,`expected ${t.enum}`):(Nt(u,r,c,f,[]),i[f])};if(t.type==="enum")return s(e,n);let o=ff(e,r,n).map((u,c)=>s(u,`${n}[${c}]`));for(let u of t.listRules?.atMostOneOf??[])u.filter(c=>o.includes(c)).length>1&&R(n,"incompatible directions");for(let[u,c]of Object.entries(t.listRules?.narrowsListTo??{}))o.includes(u)&&o.some(f=>!c.includes(f))&&R(n,"incompatible directions");return o}if(t.type==="block")return vA(e,bA[t.block],r,n);if(t.type==="boolean")return typeof e!="boolean"?R(n,"expected Boolean"):e;if(t.type==="number"||t.type==="integer"){if(!r.isNumber(e))return R(n,"expected Number");let i=r.num_to_fixnum(e);return!Number.isFinite(i)||t.type==="integer"&&!Number.isSafeInteger(i)||t.minimum!==void 0&&i<t.minimum||t.maximum!==void 0&&i>t.maximum||t.exclusiveMinimum!==void 0&&i<=t.exclusiveMinimum?R(n,"number is outside the manifest bounds"):i}return typeof e!="string"?R(n,"expected String"):t.required&&!e.trim()?R(n,"required string must not be empty"):t.pattern&&!new RegExp(t.pattern).test(e)?R(n,"string does not match the manifest pattern"):e}function df(e,t,r,n){let i={};for(let s of t){let o=`${n}.${s.pyretName}`;if(!Object.prototype.hasOwnProperty.call(e,s.pyretName)){s.required&&R(o,"missing required field");continue}i[s.name]=pf(e[s.pyretName],s,r,o)}return i}function yf(e,t,r,n){(!r.isObject(e)||r.isDataValue(e))&&R(n,"expected a Pyret record");let i=e.dict,s=new Set(t.map(o=>o.pyretName));for(let o of Object.keys(i))s.has(o)||R(`${n}.${o}`,"unknown field");return df(i,t,r,n)}function vA(e,t,r,n){let i=Nt(e,r,n,t.constructor,["fields"]);return yf(i.fields,t.fields,r,n)}function Br(e,t=0){let r=" ".repeat(t);if(Array.isArray(e))return e.length?`
|
|
15
|
+
`+e.map(i=>`${r}- ${Br(i,t+2).trimStart()}`).join(`
|
|
16
|
+
`):"[]";if(typeof e!="object")return JSON.stringify(e);let n=Object.entries(e);return n.length?`
|
|
17
|
+
`+n.map(([i,s])=>{let o=Array.isArray(s)&&s.every(u=>typeof u!="object")?JSON.stringify(s):Br(s,t+2);return`${r}${JSON.stringify(i)}:${o.startsWith(`
|
|
18
|
+
`)?"":" "}${o}`}).join(`
|
|
19
|
+
`):"{}"}function mf(e,t){let r={constraints:[],directives:[]};for(let[n,i]of ff(e,t,"rules").entries()){let s=`rules[${n}]`,o=i?.$name;o!=="constraint"&&o!=="directive"&&R(s,"expected SpytialRule");let u=Nt(i,t,s,o,["value"]).value,c=u?.$name,f=hA.find(m=>m.constructor===c);(!f||f.section!==`${o}s`)&&R(s,`invalid ${o} variant`);let p=f.fields.filter(m=>m.required),h=f.fields.filter(m=>!m.required),l=Nt(u,t,s,f.constructor,[...p.map(m=>m.pyretName),...f.name==="atomStyle"?["selector"]:[],...h.length?["options"]:[]]),w=df(l,p,t,s);if(f.name==="atomStyle"){let m=h.find(g=>g.name==="selector");m||R(s,"missing atomStyle selector schema"),w.selector=pf(l.selector,{...m,required:!0},t,`${s}.selector`)}h.length&&Object.assign(w,yf(l.options,h.filter(m=>f.name!=="atomStyle"||m.name!=="selector"),t,`${s}.options`)),r[f.section].push({[f.yamlKey]:f.shape==="scalar"?w[f.fields[0].name]:w})}return Br(r).trimStart()+`
|
|
20
|
+
`}function Ur(e){let t=[];for(;e;e=e.parent)t.push(e.key);return"value"+t.reverse().map(r=>`[${JSON.stringify(r)}]`).join("")}function xA(e,t,r){let n=Je(t),i=new Set,s=new Set,o=[],u=[{value:e}];for(let l=0;l<u.length;l++){let{value:w,path:m}=u[l];if(i.has(w)||(i.add(w),t.isFunction(w)||t.isMethod(w)))continue;let g=(d,y)=>u.push({value:d,path:{parent:m,key:y}});try{if(t.isObject(w)&&t.hasField(w,"_spytial")){let y=t.getColonField(w,"_spytial");!t.isFunction(y)&&!t.isMethod(y)&&R(Ur(m),"_spytial must be a function or method"),s.has(y)||(s.add(y),o.push({fn:t.getField(w,"_spytial"),path:m}))}let d=n.observe(w);switch(d.kind){case"constructor":d.values.forEach((y,v)=>g(y,d.info.fields[v]));break;case"object":d.fields.forEach(([y,v])=>g(v,y));break;case"raw-array":case"tuple":d.values.forEach(g);break;case"reference":g(d.value,"target");break;case"string-dict":d.entries.forEach(([y,v])=>g(v,y));break;case"table":d.rows.forEach((y,v)=>y.forEach((x,E)=>u.push({value:x,path:{parent:{parent:{parent:m,key:"rows"},key:v},key:d.headers[E]}})));break}}catch(d){throw d instanceof ie?d:new ie(Ur(m),d instanceof Error?d.message:String(d))}}let c=[],f=0,p="value",h=()=>{if(f===o.length)return c;let l=o[f++];return p=`${Ur(l.path)}._spytial`,t.safeCall(()=>l.fn.app(),w=>{try{c.push(typeof w=="string"?w:mf(w,t))}catch(m){let g=new ie(p,m instanceof Error?m.message:String(m));throw r&&r(g),g}return h()},p)};return{next:h,documents:c,hasHooks:o.length>0,activePath:()=>p}}async function qA(e,t){let r=xA(e,t);return r.hasHooks?new Promise((n,i)=>{t.runThunk(r.next,s=>{t.isSuccessResult(s)?n(r.documents):i(new ie(r.activePath(),s.exn instanceof Error?s.exn.message:String(s.exn)))})}):[]}var gf=new Set(["Number","String","Boolean","Index"]);function IA(e,t){let r=e.getAtoms(),n=e.getRelations(),i=new Map(r.map(d=>[d.id,d])),s=d=>xe(d.id)?d.id:d.name,o=new Map,u=new Set;for(let d of n)for(let y of d.tuples){if(y.atoms.length<1)continue;let v=y.atoms[0];for(let E=1;E<y.atoms.length;E++)u.add(y.atoms[E]);let x=o.get(v)??[];x.push({rel:s(d),tuple:y.atoms.slice()}),o.set(v,x)}let c=d=>{let y=i.get(d);return y?JSON.stringify([y.type,gf.has(y.type)?y.label:void 0]):"?"},f=t?[t]:r.map(d=>d.id).filter(d=>!u.has(d)),p=(f.length?f:r.map(d=>d.id)).slice().sort((d,y)=>{let v=c(d).localeCompare(c(y));return v!==0?v:d.localeCompare(y)}),h=new Map,l=0,w=d=>{let y=[d];for(;y.length;){let v=y.pop();if(h.has(v))continue;h.set(v,l++);let x=(o.get(v)??[]).slice().sort((E,O)=>{let C=E.rel.localeCompare(O.rel);if(C!==0)return C;let D=E.tuple.slice(1).map(c).join("|"),z=O.tuple.slice(1).map(c).join("|");return D.localeCompare(z)});for(let E=x.length-1;E>=0;E--){let O=x[E].tuple;for(let C=O.length-1;C>=1;C--)y.push(O[C])}}};for(let d of p)w(d);r.map(d=>d.id).sort().forEach(d=>{h.has(d)||h.set(d,l++)});let m=r.map(d=>({id:h.get(d.id),type:d.type,label:gf.has(d.type)?d.label:void 0})).sort((d,y)=>d.id-y.id),g=n.map(d=>{let y=d.tuples.filter(v=>v.atoms.length>=1).map(v=>v.atoms.map(x=>h.get(x)??-1));return y.sort((v,x)=>{let E=Math.min(v.length,x.length);for(let O=0;O<E;O++)if(v[O]!==x[O])return v[O]-x[O];return v.length-x.length}),{name:s(d),tuples:y}}).filter(d=>d.tuples.length>0).sort((d,y)=>d.name.localeCompare(y.name)||JSON.stringify(d.tuples).localeCompare(JSON.stringify(y.tuples)));return JSON.stringify({atoms:m,relations:g})}export{jt as PyretCaptureError,ne as PyretDataInstance,ie as SpytialSpecError,IA as canon,Lr as capturePyret,B as constructorDisplayName,u_ as createPyretDataInstance,Je as createPyretRuntimeAdapter,R_ as diagramTypeNames,gA as generateEdgeId,qA as getSpytialSpec,Vr as importPyretCapture,c_ as isPyretDataInstance,j_ as prepareDiagram,Ie as pyretCaptureSource,U as readConstructorTypeId,Mr as reifyToValue,At as reifyToValues,Ie as replit,mf as spytialRulesToYaml,T_ as toDataInstance};
|