@rse/gradia 0.9.1 → 0.9.2
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
CHANGED
|
@@ -210,7 +210,7 @@ command-line options. The recognized options are:
|
|
|
210
210
|
font-family color-edge-line graph-columns-max
|
|
211
211
|
color-node-regular-name color-edge-name graph-channel-width-max
|
|
212
212
|
color-node-regular-box color-edge-arity graph-gutter-height-max
|
|
213
|
-
color-node-regular-border
|
|
213
|
+
color-node-regular-border color-edge-halo graph-node-separation
|
|
214
214
|
color-node-primary-name size-canvas-margin graph-rank-separation
|
|
215
215
|
color-node-primary-box size-node-width-min hub-channel-width-max
|
|
216
216
|
color-node-primary-border size-node-height-scale hub-channel-width-min
|
|
@@ -16,6 +16,7 @@ export declare const configDefaults: {
|
|
|
16
16
|
"color-edge-line": string;
|
|
17
17
|
"color-edge-name": string;
|
|
18
18
|
"color-edge-arity": string;
|
|
19
|
+
"color-edge-halo": string;
|
|
19
20
|
"size-canvas-margin": number;
|
|
20
21
|
"size-node-width-min": number;
|
|
21
22
|
"size-node-height-scale": number;
|
package/dst/gradia-api-config.js
CHANGED
|
@@ -26,6 +26,7 @@ export const configDefaults = {
|
|
|
26
26
|
"color-edge-line": "#999999",
|
|
27
27
|
"color-edge-name": "#333333",
|
|
28
28
|
"color-edge-arity": "#333333",
|
|
29
|
+
"color-edge-halo": "#ffffff",
|
|
29
30
|
"size-canvas-margin": 40, /* outer margin of the canvas */
|
|
30
31
|
"size-node-width-min": 220, /* minimum node box width */
|
|
31
32
|
"size-node-height-scale": 2.25, /* height scale of node boxes */
|
|
@@ -136,8 +136,10 @@ export const renderSVG = (layout, config, explicit) => {
|
|
|
136
136
|
/* generate the SVG fragments for the edges (paths below, labels above) */
|
|
137
137
|
const svgEdges = [];
|
|
138
138
|
const svgLabels = [];
|
|
139
|
-
/* the
|
|
140
|
-
|
|
139
|
+
/* the halo rendered behind the edge labels for readability
|
|
140
|
+
(its color is emitted into the style attribute below, as only
|
|
141
|
+
there the CSS custom property lookup can be resolved) */
|
|
142
|
+
const halo = "stroke-width=\"4.5\" paint-order=\"stroke\" stroke-linejoin=\"round\"";
|
|
141
143
|
edges.forEach((edge, i) => {
|
|
142
144
|
svgEdges.push(`<path d="${pathOf(polys[i], hops[i], config["size-edge-corner-radius"], config["size-edge-hop-radius"])}" fill="none" ` +
|
|
143
145
|
`style="stroke: ${color("color-edge-line")}" stroke-width="3.0" marker-end="url(#${idArrow})"/>`);
|
|
@@ -158,7 +160,8 @@ export const renderSVG = (layout, config, explicit) => {
|
|
|
158
160
|
const box = claim(candidates);
|
|
159
161
|
svgLabels.push(`<text x="${(box[0] + box[2]) / 2}" y="${box[3] - 3}" text-anchor="middle" ` +
|
|
160
162
|
`font-size="${FS_EDGE}" ` +
|
|
161
|
-
`style="font-family: ${font}; fill: ${color("color-edge-name")}
|
|
163
|
+
`style="font-family: ${font}; fill: ${color("color-edge-name")}; ` +
|
|
164
|
+
`stroke: ${color("color-edge-halo")}" ` +
|
|
162
165
|
`${halo}>${escapeXML(edge.name)}</text>`);
|
|
163
166
|
}
|
|
164
167
|
if (edge.arity !== undefined) {
|
|
@@ -174,7 +177,8 @@ export const renderSVG = (layout, config, explicit) => {
|
|
|
174
177
|
]);
|
|
175
178
|
svgLabels.push(`<text x="${(box[0] + box[2]) / 2}" y="${box[3] - 3}" text-anchor="middle" ` +
|
|
176
179
|
`font-size="${FS_ARITY}" ` +
|
|
177
|
-
`style="font-family: ${font}; fill: ${color("color-edge-arity")}
|
|
180
|
+
`style="font-family: ${font}; fill: ${color("color-edge-arity")}; ` +
|
|
181
|
+
`stroke: ${color("color-edge-halo")}" ` +
|
|
178
182
|
`${halo}>${escapeXML(edge.arity)}</text>`);
|
|
179
183
|
}
|
|
180
184
|
});
|
package/dst/gradia-api.umd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.Gradia={}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Object.create,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.getPrototypeOf,o=Object.prototype.hasOwnProperty,s=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),c=(e,t,a,s)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=i(t),l=0,u=c.length,d;l<u;l++)d=c[l],!o.call(e,d)&&d!==a&&n(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(s=r(t,d))||s.enumerable});return e},l=(e,r,i)=>(i=e==null?{}:t(a(e)),c(r||!e||!e.__esModule||!o.call(e,`default`)?n(i,`default`,{value:e,enumerable:!0}):i,e)),u=e=>{let t=[],n=1,r=1,i=0,a=/--(?:\((?:"((?:[^"\\\n]|\\.)*)"|([^()"\s]+))\)--)?>(?:\[(?:"((?:[^"\\\n]|\\.)*)"|([^[\]"\s]+))\])?/y,o=/"((?:[^"\\\n]|\\.)*)"/y,s=/(?:(?!--)[^\s[\](),:">#])+/y,c=t=>(t.lastIndex=i,t.exec(e)),l=e=>e.replace(/\\(.)/g,`$1`);for(;i<e.length;){let u=e[i],d;if(u===`
|
|
2
2
|
`)t.push({type:`newline`,text:`
|
|
3
3
|
`,line:n,col:r}),n++,r=1,i++;else if(u===` `||u===` `||u===`\r`)r++,i++;else if(u===`#`)for(;i<e.length&&e[i]!==`
|
|
4
|
-
`;)r++,i++;else if((d=c(a))!==null){let e=d[1]===void 0?d[2]:l(d[1]),a=d[3]===void 0?d[4]:l(d[3]);t.push({type:`edge`,text:d[0],name:e,arity:a,line:n,col:r}),r+=d[0].length,i+=d[0].length}else if((d=c(o))!==null)t.push({type:`string`,text:l(d[1]),line:n,col:r}),r+=d[0].length,i+=d[0].length;else if(u===`"`)throw Error(`unterminated string at line ${n}, column ${r}`);else if(`[](),:`.includes(u))t.push({type:`punct`,text:u,line:n,col:r}),r++,i++;else if((d=c(s))!==null)t.push({type:`word`,text:d[0],line:n,col:r}),r+=d[0].length,i+=d[0].length;else throw Error(`invalid character ${JSON.stringify(u)} at line ${n}, column ${r}`)}return t},d=e=>{let t=u(e),n={nodes:new Map,edges:[]},r=0,i=()=>r<t.length?t[r]:null,a=e=>{let t=i();return t===null||t.type!==`punct`||t.text!==e?!1:(r++,!0)},o=e=>{let t=i(),n=t===null?`end of input`:`line ${t.line}, column ${t.col}`;throw Error(`expected ${e} at ${n}`)},s=()=>{let e=i();return e===null||e.type!==`word`&&e.type!==`string`?o(`bareword or quoted string`):(r++,e.text)},c=()=>{let e=t[r],i=s(),c=null;a(`:`)&&(c=s());let l=[];if(a(`[`)){for(;;){let e=s();a(`:`)||o(`":" in key/value attribute`);let t=s();if(l.push({key:e,val:t}),!a(`,`))break}a(`]`)||o(`"]" after key/value attributes`)}let u=n.nodes.get(i)??{id:i,name:i,attrs:[]};c!==null&&(u.name=c);for(let t of l){let n=u.attrs.findIndex(e=>e.key===t.key);if(n===-1)u.attrs.push(t);else{if(t.key===`group`&&u.attrs[n].val!==t.val)throw Error(`node "${i}" cannot be a member of more than one group ("${u.attrs[n].val}" vs "${t.val}") at line ${e.line}, column ${e.col}`);u.attrs[n]=t}}return n.nodes.set(i,u),i};for(;r<t.length;){if(t[r].type===`newline`){r++;continue}let e=c(),a=i();for(;a!==null&&a.type===`edge`;){r++;let t=c();n.edges.push({source:e,target:t,name:a.name,arity:a.arity}),e=t,a=i()}a!==null&&a.type!==`newline`&&o(`edge operator or end of line`)}return n},f=l(s(((e,t)=>{t.exports={}}))(),1),p={"font-family":`Helvetica`,"font-embed":!1,"color-node-regular-name":`#336699`,"color-node-regular-box":`#e0f0ff`,"color-node-regular-border":`#c0d0e0`,"color-node-primary-name":`#ffffff`,"color-node-primary-box":`#336699`,"color-node-primary-border":`#003366`,"color-node-ghost-name":`#666666`,"color-node-ghost-box":`#f0f0f0`,"color-node-ghost-border":`#a0a0a0`,"color-group-name":`#6699cc`,"color-group-box":`#f4f8fc`,"color-group-border":`#c0d0e0`,"color-edge-line":`#999999`,"color-edge-name":`#333333`,"color-edge-arity":`#333333`,"size-canvas-margin":40,"size-node-width-min":220,"size-node-height-scale":2.25,"size-edge-corner-radius":20,"size-edge-hop-radius":8,"size-edge-track-gap":12,"group-box-padding":30,"group-box-gap":40,"graph-columns-max":5,"graph-channel-width-max":140,"graph-gutter-height-max":90,"graph-node-separation":30,"graph-rank-separation":60,"hub-channel-width-max":340,"hub-channel-width-min":240,"hub-node-gap":20,"grid-columns-max":4,"grid-gap-horizontal":40,"grid-gap-vertical":20},m=(e,t)=>Object.hasOwn(e,t)?e[t].replace(/[;{}]/g,``):`var(--gradia-${t}, ${p[t]})`,h=e=>{let t={};for(let n of e.split(/\r?\n/)){let e=/^[ \t]*#config[ \t]+([a-z][a-z0-9-]*)[ \t]+(?:"((?:[^"\\]|\\.)*)"|(\S+))[ \t]*$/.exec(n);if(e===null||!Object.hasOwn(p,e[1]))continue;let r=e[1],i=e[2]===void 0?e[3]:e[2].replace(/\\(.)/g,`$1`);if(!(r===`font-embed`||r===`font-family`&&i.endsWith(`.woff2`))){if(typeof p[r]==`boolean`)t[r]=i===`true`;else if(typeof p[r]==`number`){let e=Number(i);if(i===``||!Number.isFinite(e)||e<0)continue;t[r]=e}else t[r]=i}}return t},g={"Source Sans 3":{file:`source-sans/WOFF2/VF/SourceSans3VF-Upright.ttf.woff2`,weight:`200 900`}},_=e=>{let t=e[`font-family`];if(Object.hasOwn(g,t)){let n=g[t];if(e[`font-embed`]){let e=f.default.fileURLToPath((e=>e)(n.file));return{family:t,embed:f.default.readFileSync(e).toString(`base64`),weight:n.weight}}return{family:t}}if(t.endsWith(`.woff2`)){let n=f.default.basename(t,`.woff2`);return e[`font-embed`]?{family:n,embed:f.default.readFileSync(t).toString(`base64`)}:{family:n}}if(e[`font-embed`])throw Error(`option "font-embed" requires option "font-family" to be a built-in font family (${Object.keys(g).map(e=>`"${e}"`).join(`, `)}) or the path to a WOFF2 file`);return{family:t}},v=(e,t)=>e.length*t*.52,y=e=>e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`),b=34,x=e=>e.attrs.findLast(e=>e.key===`group`)?.val,S=e=>{let t=Array.from(e.nodes.values());if(!t.some(e=>x(e)!==void 0))return null;let n=new Map,r=new Map;for(let e of t){let t=x(e)??`default`;r.set(e.id,t);let i=n.get(t);i===void 0&&(i={nodes:new Map,edges:[]},n.set(t,i)),i.nodes.set(e.id,e)}for(let t of e.edges){let e=r.get(t.source),i=r.get(t.target);if(e!==i)throw Error(`edge "${t.source}" --> "${t.target}" crosses groups "${e}" and "${i}"`);n.get(e).edges.push(t)}return Array.from(n.entries()).map(([e,t])=>({name:e,graph:t}))},C=e=>{let{nodes:t,cx:n,cy:r,boxW:i,boxH:a,polys:o}=e,[s,c,l,u]=[1/0,1/0,-1/0,-1/0];for(let e of t)s=Math.min(s,n(e.id)-i.get(e.id)/2),c=Math.min(c,r(e.id)-a.get(e.id)/2),l=Math.max(l,n(e.id)+i.get(e.id)/2),u=Math.max(u,r(e.id)+a.get(e.id)/2);for(let e of o)for(let[t,n]of e)s=Math.min(s,t),c=Math.min(c,n),l=Math.max(l,t),u=Math.max(u,n);return{minX:s,minY:c,maxX:l,maxY:u}},w=(e,t,n)=>{let r=n[`size-canvas-margin`],i=n[`group-box-padding`],a=n[`group-box-gap`],o=[],s=[],c=[],l=new Map,u=r;t.forEach((t,n)=>{let d=C(t),f=Math.max(d.maxX-d.minX+i*2,v(e[n].name,24)+i*2),p=d.maxY-d.minY+i*2+b;s.push(r+i-d.minX),c.push(u+b+i-d.minY);for(let e of t.nodes)l.set(e.id,n);o.push({name:e[n].name,x:r,y:u,w:f,h:p}),u+=p+a});let d=e=>new Map(t.flatMap(t=>Array.from(e(t).entries()))),f=e=>l.get(e);return{nodes:t.flatMap(e=>e.nodes),edges:t.flatMap(e=>e.edges),cx:e=>t[f(e)].cx(e)+s[f(e)],cy:e=>t[f(e)].cy(e)+c[f(e)],boxW:d(e=>e.boxW),boxH:d(e=>e.boxH),contentH:d(e=>e.contentH),polys:t.flatMap((e,t)=>e.polys.map(e=>e.map(([e,n])=>[e+s[t],n+c[t]]))),styleOf:t.every(e=>e.styleOf!==void 0)?e=>t[f(e.id)].styleOf(e):void 0,groups:o}},T=e=>crypto.getRandomValues(new Uint8Array(e)),E=(e,t,n)=>{let r=256-256%e.length;if(r===256){let r=e.length-1;return(i=t)=>{if(!i)return``;let a=``;for(;;){let t=n(i),o=i;for(;o--;)if(a+=e[t[o]&r],a.length>=i)return a}}}let i=Math.ceil(409.6*t/r);return(a=t)=>{if(!a)return``;let o=``;for(;;){let t=n(i),s=i;for(;s--;)if(t[s]<r&&(o+=e[t[s]%e.length],o.length>=a))return o}}},D=(e,t=21)=>E(e,t|0,T),O=e=>e.attrs.findLast(e=>e.key===`primary`)?.val===`true`,k=e=>O(e)?{fill:`color-node-primary-box`,stroke:`color-node-primary-border`,text:`color-node-primary-name`}:{fill:`color-node-regular-box`,stroke:`color-node-regular-border`,text:`color-node-regular-name`},ee=e=>e.attrs.findLast(e=>e.key===`type`)?.val,te=e=>e.attrs.filter(e=>e.key!==`url`&&e.key!==`type`&&e.key!==`primary`&&e.key!==`group`),A=/^\s*([A-Za-z][A-Za-z0-9+.-]*):/,j=[`http`,`https`,`mailto`],ne=e=>{let t=e.attrs.findLast(e=>e.key===`url`)?.val;if(t===void 0)return;let n=t.replace(/[\u0000-\u001F\u007F]/g,``),r=A.exec(n);if(!(r!==null&&!j.includes(r[1].toLowerCase())))return n},M=(e,t,n)=>{let r=new Map,i=new Map,a=new Map;for(let o of e){let e=te(o),s=ee(o),c=v(o.name,30);s!==void 0&&(c=Math.max(c,v(s,16)));for(let t of e)c=Math.max(c,v(`${t.key}: ${t.val}`,22));let l=64+(s===void 0?0:26)+(e.length>0?e.length*30+8:0);r.set(o.id,Math.max(t[`size-node-width-min`],Math.ceil(c)+36)),i.set(o.id,Math.ceil(l*n(o))),a.set(o.id,l)}return{boxW:r,boxH:i,contentH:a}},N=24,re=10,ie=e=>{let t=[...e];for(let e=t.length-2;e>0;e--){let[n,r,i]=[t[e-1],t[e],t[e+1]];(n[0]===r[0]&&r[0]===i[0]||n[1]===r[1]&&r[1]===i[1])&&t.splice(e,1)}let n=[];for(let e of t)n.length>0&&n[n.length-1][0]===e[0]&&n[n.length-1][1]===e[1]||n.push(e);return n},P=(e,t,n,r,i,a)=>{let o=new Map,s=(e,t,n)=>{let r=o.get(e);r===void 0?o.set(e,[{edge:t,role:n}]):r.push({edge:t,role:n})};e.forEach((e,n)=>{s(`${e.source}:${t[n].s}`,n,`s`),s(`${e.target}:${t[n].t}`,n,`t`)});let c=new Map;for(let[t,s]of o){let o=t.lastIndexOf(`:`),l=t.slice(0,o),u=t.slice(o+1),d=t=>t.role===`s`?e[t.edge].target:e[t.edge].source;s.sort((e,t)=>r(d(e))-r(d(t))||e.edge-t.edge);let f=Math.min(N,(a.get(l)-re)/s.length);s.forEach((e,t)=>{c.set(`${e.edge}:${e.role}`,{x:n(l)+(u===`e`?1:-1)*i.get(l)/2,y:r(l)+(t-(s.length-1)/2)*f})})}return c},F=(e,t,n,r)=>{let i=(e,t)=>{let n=t?-1:1,r=e.filter(e=>e.posOut<e.posIn).sort((e,t)=>n*(e.posIn-t.posIn||e.posOut-t.posOut)),i=e.filter(e=>e.posOut>=e.posIn).sort((e,t)=>n*(t.posIn-e.posIn||t.posOut-e.posOut));return[...r,...i]},a=[...i(e.filter(e=>!e.mirror),!1),...i(e.filter(e=>e.mirror),!0)],o=Math.min(r,(t-n)/Math.max(a.length-1,1)),s=new Map;return a.forEach((e,t)=>{s.set(e.edge,(t-(a.length-1)/2)*o)}),s},ae=e=>{let t=[];return e.forEach((e,n)=>{for(let r=0;r<e.length-1;r++){let[i,a]=[e[r],e[r+1]];i[0]===a[0]&&t.push({owner:n,x:i[0],y1:Math.min(i[1],a[1]),y2:Math.max(i[1],a[1])})}}),e.map((e,n)=>{let r=new Map;for(let i=0;i<e.length-1;i++){let[a,o]=[e[i],e[i+1]];if(a[1]!==o[1])continue;let s=a[1],c=Math.min(a[0],o[0]),l=Math.max(a[0],o[0]),u=[];for(let e of t)e.owner!==n&&e.x>c+1&&e.x<l-1&&s>e.y1+1&&s<e.y2-1&&u.push(e.x);u.length>0&&r.set(i,u)}return r})},oe=(e,t,n,r)=>{let i=(e,t)=>Math.abs(t[0]-e[0])+Math.abs(t[1]-e[1]),a=a=>{if(a<=0||a>=e.length-1)return 0;let o=Math.min(n,i(e[a-1],e[a])/2,i(e[a],e[a+1])/2);for(let n of[a-1,a])for(let i of t.get(n)??[])o=Math.min(o,Math.max(Math.abs(i-e[a][0])-r-2,4));return o},o=[];for(let n=0;n<e.length-1;n++){let[s,c]=[e[n],e[n+1]],l=i(s,c),u=(c[0]-s[0])/l,d=(c[1]-s[1])/l,f=a(n),p=a(n+1),m=[s[0]+u*f,s[1]+d*f],h=[c[0]-u*p,c[1]-d*p];if(n===0&&o.push(`M ${m[0]} ${m[1]}`),s[1]===c[1]&&t.has(n)){let e=Math.sign(c[0]-s[0]),i=t.get(n).filter(t=>(t-m[0])*e>2&&(h[0]-t)*e>2).sort((t,n)=>(t-n)*e),a=[];for(let e of i){let t=a[a.length-1];t!==void 0&&Math.abs(e-t[t.length-1])<=r*2+14?t.push(e):a.push([e])}for(let t of a){let n=t[0]-e*r,i=t[t.length-1]+e*r;(n-m[0])*e<0&&(n=m[0]),(h[0]-i)*e<0&&(i=h[0]),o.push(`L ${n} ${s[1]}`),o.push(`A ${Math.abs(i-n)/2} ${r} 0 0 ${+(e>0)} ${i} ${s[1]}`)}}if(o.push(`L ${h[0]} ${h[1]}`),n<e.length-2){let t=e[n+1],r=e[n+2],a=i(t,r),s=[t[0]+(r[0]-t[0])/a*p,t[1]+(r[1]-t[1])/a*p];o.push(`Q ${c[0]} ${c[1]} ${s[0]} ${s[1]}`)}}return o.join(` `)},se=(e,t)=>{let n=e.slice(0,-1).map((t,n)=>Math.abs(e[n+1][0]-t[0])+Math.abs(e[n+1][1]-t[1])),r=n.reduce((e,t)=>e+t,0)*t;for(let t=0;t<n.length;t++){if(r<=n[t]||t===n.length-1){let i=n[t]>0?r/n[t]:0;return{x:e[t][0]+(e[t+1][0]-e[t][0])*Math.min(i,1),y:e[t][1]+(e[t+1][1]-e[t][1])*Math.min(i,1),horizontal:e[t][1]===e[t+1][1]}}r-=n[t]}return{x:e[0][0],y:e[0][1],horizontal:!0}},ce=e=>e.replace(/[\\"']/g,`\\$&`).replace(/[\r\n]/g,` `),le=D(`0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`,12),ue=()=>`gradia-${le()}`,de=18,fe=12,pe=e=>{let{nodes:t,cx:n,cy:r,boxW:i,boxH:a}=e,o=t.map(e=>[n(e.id)-i.get(e.id)/2,r(e.id)-a.get(e.id)/2,n(e.id)+i.get(e.id)/2,r(e.id)+a.get(e.id)/2]);for(let t of e.groups??[])o.push([t.x+de,t.y+fe,t.x+de+v(t.name,24),t.y+fe+24*1.2]);let s=e=>o.some(t=>e[0]<t[2]&&e[2]>t[0]&&e[1]<t[3]&&e[3]>t[1]);return{claim:e=>{let t=e.find(e=>!s(e))??e[0];return o.push(t),t},occupied:o}},me=(e,t,n,r,i)=>{let{cx:a,cy:o,boxW:s,boxH:c,contentH:l}=t,u=s.get(e.id),d=c.get(e.id),f=a(e.id)-u/2,p=o(e.id)-d/2,m=te(e),h=ee(e),g=ne(e),_=[];_.push(`<rect x="${f}" y="${p}" width="${u}" height="${d}" rx="6" style="fill: ${i(n.fill)}; stroke: ${i(n.stroke)}" stroke-width="4.0"${n.dash===void 0?``:` stroke-dasharray="${y(n.dash)}"`}/>`);let v=o(e.id)-l.get(e.id)/2,b=h===void 0?0:26,x=m.length>0?v+b+42:o(e.id)+b/2+30*.36;return h!==void 0&&_.push(`<text x="${a(e.id)}" y="${x-36}" text-anchor="middle" font-size="16" style="font-family: ${r}; fill: ${i(n.text)}">${y(h)}</text>`),_.push(`<text x="${a(e.id)}" y="${x}" text-anchor="middle" font-size="30" font-weight="600" style="font-family: ${r}; fill: ${i(n.text)}">${y(e.name)}</text>`),m.forEach((t,o)=>{_.push(`<text x="${a(e.id)}" y="${v+b+64+8+o*30}" text-anchor="middle" font-size="22" style="font-family: ${r}; fill: ${i(n.text)}">${y(`${t.key}: ${t.val}`)}</text>`)}),g===void 0?_:[`<a href="${y(g)}" xlink:href="${y(g)}">`,..._,`</a>`]},I=(e,t,n)=>{let{polys:r}=e,[i,a,o,s]=[1/0,1/0,-1/0,-1/0];for(let[e,n,r,c]of t)i=Math.min(i,e),a=Math.min(a,n),o=Math.max(o,r),s=Math.max(s,c);for(let e of r)for(let[t,n]of e)i=Math.min(i,t),a=Math.min(a,n),o=Math.max(o,t),s=Math.max(s,n);return Number.isFinite(i)||([i,a,o,s]=[0,0,0,0]),{x:Math.floor(i-n/2),y:Math.floor(a-n/2),w:Math.ceil(o-i+n),h:Math.ceil(s-a+n)}},he=(e,t,n)=>{let{nodes:r,edges:i,polys:a}=e,o=e.groups??[],s=e.styleOf??k,c=e=>y(m(n,e)),l=`${ue()}-arrow`,{family:u,embed:d,weight:f}=_(t),p=y(`${Object.hasOwn(n,`font-family`)?`'${ce(u)}'`:`var(--gradia-font-family, '${ce(u)}')`}, ui-sans-serif, -apple-system, Helvetica, Arial, sans-serif`),h=ae(a),{claim:g,occupied:b}=pe(e),x=[],S=[],C=`stroke="#ffffff" stroke-width="4.5" paint-order="stroke" stroke-linejoin="round"`;i.forEach((e,n)=>{if(x.push(`<path d="${oe(a[n],h[n],t[`size-edge-corner-radius`],t[`size-edge-hop-radius`])}" fill="none" style="stroke: ${c(`color-edge-line`)}" stroke-width="3.0" marker-end="url(#${l})"/>`),e.name!==void 0){let t=v(e.name,16),r=[];for(let e of[.5,.4,.6,.3,.7,.2,.8]){let i=se(a[n],e);i.horizontal?(r.push([i.x-t/2,i.y-23,i.x+t/2,i.y-3]),r.push([i.x-t/2,i.y+3,i.x+t/2,i.y+23])):(r.push([i.x+5,i.y-10,i.x+5+t,i.y+10]),r.push([i.x-5-t,i.y-10,i.x-5,i.y+10]))}let i=g(r);S.push(`<text x="${(i[0]+i[2])/2}" y="${i[3]-3}" text-anchor="middle" font-size="16" style="font-family: ${p}; fill: ${c(`color-edge-name`)}" ${C}>${y(e.name)}</text>`)}if(e.arity!==void 0){let t=v(e.arity,16),r=se(a[n],1),i=se(a[n],.999),o=Math.sign(r.x-i.x)||1,s=r.x-o*(24+t/2),l=g([[s-t/2,r.y-17,s+t/2,r.y-4],[s-t/2,r.y+4,s+t/2,r.y+17],[s-t/2-o*14,r.y-17,s+t/2-o*14,r.y-4]]);S.push(`<text x="${(l[0]+l[2])/2}" y="${l[3]-3}" text-anchor="middle" font-size="16" style="font-family: ${p}; fill: ${c(`color-edge-arity`)}" ${C}>${y(e.arity)}</text>`)}});let w=r.flatMap(t=>me(t,e,s(t),p,c)),T=o.flatMap(e=>[`<rect x="${e.x}" y="${e.y}" width="${e.w}" height="${e.h}" rx="12" style="fill: ${c(`color-group-box`)}; stroke: ${c(`color-group-border`)}" stroke-width="3.0"/>`,`<text x="${e.x+de}" y="${e.y+fe+24}" font-size="24" font-weight="600" style="font-family: ${p}; fill: ${c(`color-group-name`)}">${y(e.name)}</text>`]),E=o.map(e=>[e.x,e.y,e.x+e.w,e.y+e.h]),D=I(e,[...b,...E],t[`size-canvas-margin`]);return[`<?xml version="1.0" encoding="UTF-8"?>`,`<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="${D.x} ${D.y} ${D.w} ${D.h}" width="${D.w}" height="${D.h}">`,`<defs>`,...d===void 0?[]:[`<style>`,`@font-face { font-family: "${y(ce(u))}"; `+(f===void 0?``:`font-weight: ${y(ce(f))}; `)+`src: url(data:font/woff2;base64,${d}) format("woff2"); }`,`</style>`],`<marker id="${l}" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="21" markerHeight="21" markerUnits="userSpaceOnUse" orient="auto-start-reverse">`,`<path d="M 0 1 L 9 5 L 0 9 z" style="fill: ${c(`color-edge-line`)}"/>`,`</marker>`,`</defs>`,...T,...x,...w,...S,`</svg>`,``].join(`
|
|
4
|
+
`;)r++,i++;else if((d=c(a))!==null){let e=d[1]===void 0?d[2]:l(d[1]),a=d[3]===void 0?d[4]:l(d[3]);t.push({type:`edge`,text:d[0],name:e,arity:a,line:n,col:r}),r+=d[0].length,i+=d[0].length}else if((d=c(o))!==null)t.push({type:`string`,text:l(d[1]),line:n,col:r}),r+=d[0].length,i+=d[0].length;else if(u===`"`)throw Error(`unterminated string at line ${n}, column ${r}`);else if(`[](),:`.includes(u))t.push({type:`punct`,text:u,line:n,col:r}),r++,i++;else if((d=c(s))!==null)t.push({type:`word`,text:d[0],line:n,col:r}),r+=d[0].length,i+=d[0].length;else throw Error(`invalid character ${JSON.stringify(u)} at line ${n}, column ${r}`)}return t},d=e=>{let t=u(e),n={nodes:new Map,edges:[]},r=0,i=()=>r<t.length?t[r]:null,a=e=>{let t=i();return t===null||t.type!==`punct`||t.text!==e?!1:(r++,!0)},o=e=>{let t=i(),n=t===null?`end of input`:`line ${t.line}, column ${t.col}`;throw Error(`expected ${e} at ${n}`)},s=()=>{let e=i();return e===null||e.type!==`word`&&e.type!==`string`?o(`bareword or quoted string`):(r++,e.text)},c=()=>{let e=t[r],i=s(),c=null;a(`:`)&&(c=s());let l=[];if(a(`[`)){for(;;){let e=s();a(`:`)||o(`":" in key/value attribute`);let t=s();if(l.push({key:e,val:t}),!a(`,`))break}a(`]`)||o(`"]" after key/value attributes`)}let u=n.nodes.get(i)??{id:i,name:i,attrs:[]};c!==null&&(u.name=c);for(let t of l){let n=u.attrs.findIndex(e=>e.key===t.key);if(n===-1)u.attrs.push(t);else{if(t.key===`group`&&u.attrs[n].val!==t.val)throw Error(`node "${i}" cannot be a member of more than one group ("${u.attrs[n].val}" vs "${t.val}") at line ${e.line}, column ${e.col}`);u.attrs[n]=t}}return n.nodes.set(i,u),i};for(;r<t.length;){if(t[r].type===`newline`){r++;continue}let e=c(),a=i();for(;a!==null&&a.type===`edge`;){r++;let t=c();n.edges.push({source:e,target:t,name:a.name,arity:a.arity}),e=t,a=i()}a!==null&&a.type!==`newline`&&o(`edge operator or end of line`)}return n},f=l(s(((e,t)=>{t.exports={}}))(),1),p={"font-family":`Helvetica`,"font-embed":!1,"color-node-regular-name":`#336699`,"color-node-regular-box":`#e0f0ff`,"color-node-regular-border":`#c0d0e0`,"color-node-primary-name":`#ffffff`,"color-node-primary-box":`#336699`,"color-node-primary-border":`#003366`,"color-node-ghost-name":`#666666`,"color-node-ghost-box":`#f0f0f0`,"color-node-ghost-border":`#a0a0a0`,"color-group-name":`#6699cc`,"color-group-box":`#f4f8fc`,"color-group-border":`#c0d0e0`,"color-edge-line":`#999999`,"color-edge-name":`#333333`,"color-edge-arity":`#333333`,"color-edge-halo":`#ffffff`,"size-canvas-margin":40,"size-node-width-min":220,"size-node-height-scale":2.25,"size-edge-corner-radius":20,"size-edge-hop-radius":8,"size-edge-track-gap":12,"group-box-padding":30,"group-box-gap":40,"graph-columns-max":5,"graph-channel-width-max":140,"graph-gutter-height-max":90,"graph-node-separation":30,"graph-rank-separation":60,"hub-channel-width-max":340,"hub-channel-width-min":240,"hub-node-gap":20,"grid-columns-max":4,"grid-gap-horizontal":40,"grid-gap-vertical":20},m=(e,t)=>Object.hasOwn(e,t)?e[t].replace(/[;{}]/g,``):`var(--gradia-${t}, ${p[t]})`,h=e=>{let t={};for(let n of e.split(/\r?\n/)){let e=/^[ \t]*#config[ \t]+([a-z][a-z0-9-]*)[ \t]+(?:"((?:[^"\\]|\\.)*)"|(\S+))[ \t]*$/.exec(n);if(e===null||!Object.hasOwn(p,e[1]))continue;let r=e[1],i=e[2]===void 0?e[3]:e[2].replace(/\\(.)/g,`$1`);if(!(r===`font-embed`||r===`font-family`&&i.endsWith(`.woff2`))){if(typeof p[r]==`boolean`)t[r]=i===`true`;else if(typeof p[r]==`number`){let e=Number(i);if(i===``||!Number.isFinite(e)||e<0)continue;t[r]=e}else t[r]=i}}return t},g={"Source Sans 3":{file:`source-sans/WOFF2/VF/SourceSans3VF-Upright.ttf.woff2`,weight:`200 900`}},_=e=>{let t=e[`font-family`];if(Object.hasOwn(g,t)){let n=g[t];if(e[`font-embed`]){let e=f.default.fileURLToPath((e=>e)(n.file));return{family:t,embed:f.default.readFileSync(e).toString(`base64`),weight:n.weight}}return{family:t}}if(t.endsWith(`.woff2`)){let n=f.default.basename(t,`.woff2`);return e[`font-embed`]?{family:n,embed:f.default.readFileSync(t).toString(`base64`)}:{family:n}}if(e[`font-embed`])throw Error(`option "font-embed" requires option "font-family" to be a built-in font family (${Object.keys(g).map(e=>`"${e}"`).join(`, `)}) or the path to a WOFF2 file`);return{family:t}},v=(e,t)=>e.length*t*.52,y=e=>e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`),b=34,x=e=>e.attrs.findLast(e=>e.key===`group`)?.val,S=e=>{let t=Array.from(e.nodes.values());if(!t.some(e=>x(e)!==void 0))return null;let n=new Map,r=new Map;for(let e of t){let t=x(e)??`default`;r.set(e.id,t);let i=n.get(t);i===void 0&&(i={nodes:new Map,edges:[]},n.set(t,i)),i.nodes.set(e.id,e)}for(let t of e.edges){let e=r.get(t.source),i=r.get(t.target);if(e!==i)throw Error(`edge "${t.source}" --> "${t.target}" crosses groups "${e}" and "${i}"`);n.get(e).edges.push(t)}return Array.from(n.entries()).map(([e,t])=>({name:e,graph:t}))},C=e=>{let{nodes:t,cx:n,cy:r,boxW:i,boxH:a,polys:o}=e,[s,c,l,u]=[1/0,1/0,-1/0,-1/0];for(let e of t)s=Math.min(s,n(e.id)-i.get(e.id)/2),c=Math.min(c,r(e.id)-a.get(e.id)/2),l=Math.max(l,n(e.id)+i.get(e.id)/2),u=Math.max(u,r(e.id)+a.get(e.id)/2);for(let e of o)for(let[t,n]of e)s=Math.min(s,t),c=Math.min(c,n),l=Math.max(l,t),u=Math.max(u,n);return{minX:s,minY:c,maxX:l,maxY:u}},w=(e,t,n)=>{let r=n[`size-canvas-margin`],i=n[`group-box-padding`],a=n[`group-box-gap`],o=[],s=[],c=[],l=new Map,u=r;t.forEach((t,n)=>{let d=C(t),f=Math.max(d.maxX-d.minX+i*2,v(e[n].name,24)+i*2),p=d.maxY-d.minY+i*2+b;s.push(r+i-d.minX),c.push(u+b+i-d.minY);for(let e of t.nodes)l.set(e.id,n);o.push({name:e[n].name,x:r,y:u,w:f,h:p}),u+=p+a});let d=e=>new Map(t.flatMap(t=>Array.from(e(t).entries()))),f=e=>l.get(e);return{nodes:t.flatMap(e=>e.nodes),edges:t.flatMap(e=>e.edges),cx:e=>t[f(e)].cx(e)+s[f(e)],cy:e=>t[f(e)].cy(e)+c[f(e)],boxW:d(e=>e.boxW),boxH:d(e=>e.boxH),contentH:d(e=>e.contentH),polys:t.flatMap((e,t)=>e.polys.map(e=>e.map(([e,n])=>[e+s[t],n+c[t]]))),styleOf:t.every(e=>e.styleOf!==void 0)?e=>t[f(e.id)].styleOf(e):void 0,groups:o}},T=e=>crypto.getRandomValues(new Uint8Array(e)),E=(e,t,n)=>{let r=256-256%e.length;if(r===256){let r=e.length-1;return(i=t)=>{if(!i)return``;let a=``;for(;;){let t=n(i),o=i;for(;o--;)if(a+=e[t[o]&r],a.length>=i)return a}}}let i=Math.ceil(409.6*t/r);return(a=t)=>{if(!a)return``;let o=``;for(;;){let t=n(i),s=i;for(;s--;)if(t[s]<r&&(o+=e[t[s]%e.length],o.length>=a))return o}}},D=(e,t=21)=>E(e,t|0,T),O=e=>e.attrs.findLast(e=>e.key===`primary`)?.val===`true`,k=e=>O(e)?{fill:`color-node-primary-box`,stroke:`color-node-primary-border`,text:`color-node-primary-name`}:{fill:`color-node-regular-box`,stroke:`color-node-regular-border`,text:`color-node-regular-name`},ee=e=>e.attrs.findLast(e=>e.key===`type`)?.val,te=e=>e.attrs.filter(e=>e.key!==`url`&&e.key!==`type`&&e.key!==`primary`&&e.key!==`group`),A=/^\s*([A-Za-z][A-Za-z0-9+.-]*):/,j=[`http`,`https`,`mailto`],ne=e=>{let t=e.attrs.findLast(e=>e.key===`url`)?.val;if(t===void 0)return;let n=t.replace(/[\u0000-\u001F\u007F]/g,``),r=A.exec(n);if(!(r!==null&&!j.includes(r[1].toLowerCase())))return n},M=(e,t,n)=>{let r=new Map,i=new Map,a=new Map;for(let o of e){let e=te(o),s=ee(o),c=v(o.name,30);s!==void 0&&(c=Math.max(c,v(s,16)));for(let t of e)c=Math.max(c,v(`${t.key}: ${t.val}`,22));let l=64+(s===void 0?0:26)+(e.length>0?e.length*30+8:0);r.set(o.id,Math.max(t[`size-node-width-min`],Math.ceil(c)+36)),i.set(o.id,Math.ceil(l*n(o))),a.set(o.id,l)}return{boxW:r,boxH:i,contentH:a}},N=24,re=10,ie=e=>{let t=[...e];for(let e=t.length-2;e>0;e--){let[n,r,i]=[t[e-1],t[e],t[e+1]];(n[0]===r[0]&&r[0]===i[0]||n[1]===r[1]&&r[1]===i[1])&&t.splice(e,1)}let n=[];for(let e of t)n.length>0&&n[n.length-1][0]===e[0]&&n[n.length-1][1]===e[1]||n.push(e);return n},P=(e,t,n,r,i,a)=>{let o=new Map,s=(e,t,n)=>{let r=o.get(e);r===void 0?o.set(e,[{edge:t,role:n}]):r.push({edge:t,role:n})};e.forEach((e,n)=>{s(`${e.source}:${t[n].s}`,n,`s`),s(`${e.target}:${t[n].t}`,n,`t`)});let c=new Map;for(let[t,s]of o){let o=t.lastIndexOf(`:`),l=t.slice(0,o),u=t.slice(o+1),d=t=>t.role===`s`?e[t.edge].target:e[t.edge].source;s.sort((e,t)=>r(d(e))-r(d(t))||e.edge-t.edge);let f=Math.min(N,(a.get(l)-re)/s.length);s.forEach((e,t)=>{c.set(`${e.edge}:${e.role}`,{x:n(l)+(u===`e`?1:-1)*i.get(l)/2,y:r(l)+(t-(s.length-1)/2)*f})})}return c},F=(e,t,n,r)=>{let i=(e,t)=>{let n=t?-1:1,r=e.filter(e=>e.posOut<e.posIn).sort((e,t)=>n*(e.posIn-t.posIn||e.posOut-t.posOut)),i=e.filter(e=>e.posOut>=e.posIn).sort((e,t)=>n*(t.posIn-e.posIn||t.posOut-e.posOut));return[...r,...i]},a=[...i(e.filter(e=>!e.mirror),!1),...i(e.filter(e=>e.mirror),!0)],o=Math.min(r,(t-n)/Math.max(a.length-1,1)),s=new Map;return a.forEach((e,t)=>{s.set(e.edge,(t-(a.length-1)/2)*o)}),s},ae=e=>{let t=[];return e.forEach((e,n)=>{for(let r=0;r<e.length-1;r++){let[i,a]=[e[r],e[r+1]];i[0]===a[0]&&t.push({owner:n,x:i[0],y1:Math.min(i[1],a[1]),y2:Math.max(i[1],a[1])})}}),e.map((e,n)=>{let r=new Map;for(let i=0;i<e.length-1;i++){let[a,o]=[e[i],e[i+1]];if(a[1]!==o[1])continue;let s=a[1],c=Math.min(a[0],o[0]),l=Math.max(a[0],o[0]),u=[];for(let e of t)e.owner!==n&&e.x>c+1&&e.x<l-1&&s>e.y1+1&&s<e.y2-1&&u.push(e.x);u.length>0&&r.set(i,u)}return r})},oe=(e,t,n,r)=>{let i=(e,t)=>Math.abs(t[0]-e[0])+Math.abs(t[1]-e[1]),a=a=>{if(a<=0||a>=e.length-1)return 0;let o=Math.min(n,i(e[a-1],e[a])/2,i(e[a],e[a+1])/2);for(let n of[a-1,a])for(let i of t.get(n)??[])o=Math.min(o,Math.max(Math.abs(i-e[a][0])-r-2,4));return o},o=[];for(let n=0;n<e.length-1;n++){let[s,c]=[e[n],e[n+1]],l=i(s,c),u=(c[0]-s[0])/l,d=(c[1]-s[1])/l,f=a(n),p=a(n+1),m=[s[0]+u*f,s[1]+d*f],h=[c[0]-u*p,c[1]-d*p];if(n===0&&o.push(`M ${m[0]} ${m[1]}`),s[1]===c[1]&&t.has(n)){let e=Math.sign(c[0]-s[0]),i=t.get(n).filter(t=>(t-m[0])*e>2&&(h[0]-t)*e>2).sort((t,n)=>(t-n)*e),a=[];for(let e of i){let t=a[a.length-1];t!==void 0&&Math.abs(e-t[t.length-1])<=r*2+14?t.push(e):a.push([e])}for(let t of a){let n=t[0]-e*r,i=t[t.length-1]+e*r;(n-m[0])*e<0&&(n=m[0]),(h[0]-i)*e<0&&(i=h[0]),o.push(`L ${n} ${s[1]}`),o.push(`A ${Math.abs(i-n)/2} ${r} 0 0 ${+(e>0)} ${i} ${s[1]}`)}}if(o.push(`L ${h[0]} ${h[1]}`),n<e.length-2){let t=e[n+1],r=e[n+2],a=i(t,r),s=[t[0]+(r[0]-t[0])/a*p,t[1]+(r[1]-t[1])/a*p];o.push(`Q ${c[0]} ${c[1]} ${s[0]} ${s[1]}`)}}return o.join(` `)},se=(e,t)=>{let n=e.slice(0,-1).map((t,n)=>Math.abs(e[n+1][0]-t[0])+Math.abs(e[n+1][1]-t[1])),r=n.reduce((e,t)=>e+t,0)*t;for(let t=0;t<n.length;t++){if(r<=n[t]||t===n.length-1){let i=n[t]>0?r/n[t]:0;return{x:e[t][0]+(e[t+1][0]-e[t][0])*Math.min(i,1),y:e[t][1]+(e[t+1][1]-e[t][1])*Math.min(i,1),horizontal:e[t][1]===e[t+1][1]}}r-=n[t]}return{x:e[0][0],y:e[0][1],horizontal:!0}},ce=e=>e.replace(/[\\"']/g,`\\$&`).replace(/[\r\n]/g,` `),le=D(`0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`,12),ue=()=>`gradia-${le()}`,de=18,fe=12,pe=e=>{let{nodes:t,cx:n,cy:r,boxW:i,boxH:a}=e,o=t.map(e=>[n(e.id)-i.get(e.id)/2,r(e.id)-a.get(e.id)/2,n(e.id)+i.get(e.id)/2,r(e.id)+a.get(e.id)/2]);for(let t of e.groups??[])o.push([t.x+de,t.y+fe,t.x+de+v(t.name,24),t.y+fe+24*1.2]);let s=e=>o.some(t=>e[0]<t[2]&&e[2]>t[0]&&e[1]<t[3]&&e[3]>t[1]);return{claim:e=>{let t=e.find(e=>!s(e))??e[0];return o.push(t),t},occupied:o}},me=(e,t,n,r,i)=>{let{cx:a,cy:o,boxW:s,boxH:c,contentH:l}=t,u=s.get(e.id),d=c.get(e.id),f=a(e.id)-u/2,p=o(e.id)-d/2,m=te(e),h=ee(e),g=ne(e),_=[];_.push(`<rect x="${f}" y="${p}" width="${u}" height="${d}" rx="6" style="fill: ${i(n.fill)}; stroke: ${i(n.stroke)}" stroke-width="4.0"${n.dash===void 0?``:` stroke-dasharray="${y(n.dash)}"`}/>`);let v=o(e.id)-l.get(e.id)/2,b=h===void 0?0:26,x=m.length>0?v+b+42:o(e.id)+b/2+30*.36;return h!==void 0&&_.push(`<text x="${a(e.id)}" y="${x-36}" text-anchor="middle" font-size="16" style="font-family: ${r}; fill: ${i(n.text)}">${y(h)}</text>`),_.push(`<text x="${a(e.id)}" y="${x}" text-anchor="middle" font-size="30" font-weight="600" style="font-family: ${r}; fill: ${i(n.text)}">${y(e.name)}</text>`),m.forEach((t,o)=>{_.push(`<text x="${a(e.id)}" y="${v+b+64+8+o*30}" text-anchor="middle" font-size="22" style="font-family: ${r}; fill: ${i(n.text)}">${y(`${t.key}: ${t.val}`)}</text>`)}),g===void 0?_:[`<a href="${y(g)}" xlink:href="${y(g)}">`,..._,`</a>`]},I=(e,t,n)=>{let{polys:r}=e,[i,a,o,s]=[1/0,1/0,-1/0,-1/0];for(let[e,n,r,c]of t)i=Math.min(i,e),a=Math.min(a,n),o=Math.max(o,r),s=Math.max(s,c);for(let e of r)for(let[t,n]of e)i=Math.min(i,t),a=Math.min(a,n),o=Math.max(o,t),s=Math.max(s,n);return Number.isFinite(i)||([i,a,o,s]=[0,0,0,0]),{x:Math.floor(i-n/2),y:Math.floor(a-n/2),w:Math.ceil(o-i+n),h:Math.ceil(s-a+n)}},he=(e,t,n)=>{let{nodes:r,edges:i,polys:a}=e,o=e.groups??[],s=e.styleOf??k,c=e=>y(m(n,e)),l=`${ue()}-arrow`,{family:u,embed:d,weight:f}=_(t),p=y(`${Object.hasOwn(n,`font-family`)?`'${ce(u)}'`:`var(--gradia-font-family, '${ce(u)}')`}, ui-sans-serif, -apple-system, Helvetica, Arial, sans-serif`),h=ae(a),{claim:g,occupied:b}=pe(e),x=[],S=[],C=`stroke-width="4.5" paint-order="stroke" stroke-linejoin="round"`;i.forEach((e,n)=>{if(x.push(`<path d="${oe(a[n],h[n],t[`size-edge-corner-radius`],t[`size-edge-hop-radius`])}" fill="none" style="stroke: ${c(`color-edge-line`)}" stroke-width="3.0" marker-end="url(#${l})"/>`),e.name!==void 0){let t=v(e.name,16),r=[];for(let e of[.5,.4,.6,.3,.7,.2,.8]){let i=se(a[n],e);i.horizontal?(r.push([i.x-t/2,i.y-23,i.x+t/2,i.y-3]),r.push([i.x-t/2,i.y+3,i.x+t/2,i.y+23])):(r.push([i.x+5,i.y-10,i.x+5+t,i.y+10]),r.push([i.x-5-t,i.y-10,i.x-5,i.y+10]))}let i=g(r);S.push(`<text x="${(i[0]+i[2])/2}" y="${i[3]-3}" text-anchor="middle" font-size="16" style="font-family: ${p}; fill: ${c(`color-edge-name`)}; stroke: ${c(`color-edge-halo`)}" ${C}>${y(e.name)}</text>`)}if(e.arity!==void 0){let t=v(e.arity,16),r=se(a[n],1),i=se(a[n],.999),o=Math.sign(r.x-i.x)||1,s=r.x-o*(24+t/2),l=g([[s-t/2,r.y-17,s+t/2,r.y-4],[s-t/2,r.y+4,s+t/2,r.y+17],[s-t/2-o*14,r.y-17,s+t/2-o*14,r.y-4]]);S.push(`<text x="${(l[0]+l[2])/2}" y="${l[3]-3}" text-anchor="middle" font-size="16" style="font-family: ${p}; fill: ${c(`color-edge-arity`)}; stroke: ${c(`color-edge-halo`)}" ${C}>${y(e.arity)}</text>`)}});let w=r.flatMap(t=>me(t,e,s(t),p,c)),T=o.flatMap(e=>[`<rect x="${e.x}" y="${e.y}" width="${e.w}" height="${e.h}" rx="12" style="fill: ${c(`color-group-box`)}; stroke: ${c(`color-group-border`)}" stroke-width="3.0"/>`,`<text x="${e.x+de}" y="${e.y+fe+24}" font-size="24" font-weight="600" style="font-family: ${p}; fill: ${c(`color-group-name`)}">${y(e.name)}</text>`]),E=o.map(e=>[e.x,e.y,e.x+e.w,e.y+e.h]),D=I(e,[...b,...E],t[`size-canvas-margin`]);return[`<?xml version="1.0" encoding="UTF-8"?>`,`<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="${D.x} ${D.y} ${D.w} ${D.h}" width="${D.w}" height="${D.h}">`,`<defs>`,...d===void 0?[]:[`<style>`,`@font-face { font-family: "${y(ce(u))}"; `+(f===void 0?``:`font-weight: ${y(ce(f))}; `)+`src: url(data:font/woff2;base64,${d}) format("woff2"); }`,`</style>`],`<marker id="${l}" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="21" markerHeight="21" markerUnits="userSpaceOnUse" orient="auto-start-reverse">`,`<path d="M 0 1 L 9 5 L 0 9 z" style="fill: ${c(`color-edge-line`)}"/>`,`</marker>`,`</defs>`,...T,...x,...w,...S,`</svg>`,``].join(`
|
|
5
5
|
`)};function ge(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}var _e={abs:Math.abs,ceil:Math.ceil,floor:Math.floor,max:Math.max,min:Math.min,round:Math.round,sqrt:Math.sqrt,pow:Math.pow},L=class extends Error{constructor(e,t,n){super(e),this.position=t,this.token=n,this.name=`ExpressionError`}},R;(function(e){e[e.STRING=0]=`STRING`,e[e.NUMBER=1]=`NUMBER`,e[e.BOOLEAN=2]=`BOOLEAN`,e[e.NULL=3]=`NULL`,e[e.IDENTIFIER=4]=`IDENTIFIER`,e[e.OPERATOR=5]=`OPERATOR`,e[e.FUNCTION=6]=`FUNCTION`,e[e.DOT=7]=`DOT`,e[e.BRACKET_LEFT=8]=`BRACKET_LEFT`,e[e.BRACKET_RIGHT=9]=`BRACKET_RIGHT`,e[e.PAREN_LEFT=10]=`PAREN_LEFT`,e[e.PAREN_RIGHT=11]=`PAREN_RIGHT`,e[e.COMMA=12]=`COMMA`,e[e.QUESTION=13]=`QUESTION`,e[e.COLON=14]=`COLON`,e[e.DOLLAR=15]=`DOLLAR`})(R||={});var ve=new Set([32,9,10,13]),ye=new Set([43,45,42,47,37,33,38,124,61,60,62]),be=new Map([[`true`,R.BOOLEAN],[`false`,R.BOOLEAN],[`null`,R.NULL]]),xe=new Map([[`===`,!0],[`!==`,!0],[`<=`,!0],[`>=`,!0],[`&&`,!0],[`||`,!0],[`+`,!0],[`-`,!0],[`*`,!0],[`/`,!0],[`%`,!0],[`!`,!0],[`<`,!0],[`>`,!0]]),Se=new Map([[46,R.DOT],[91,R.BRACKET_LEFT],[93,R.BRACKET_RIGHT],[40,R.PAREN_LEFT],[41,R.PAREN_RIGHT],[44,R.COMMA],[63,R.QUESTION],[58,R.COLON],[36,R.DOLLAR]]),Ce=new Map;for(let[e,t]of Se.entries())Ce.set(e,{type:t,value:String.fromCharCode(e)});function we(e){return e>=48&&e<=57}function Te(e){return e>=97&&e<=122||e>=65&&e<=90||e===95}function Ee(e){return Te(e)||we(e)}function De(e){return ye.has(e)}var z;(function(e){e[e.Program=0]=`Program`,e[e.Literal=1]=`Literal`,e[e.Identifier=2]=`Identifier`,e[e.MemberExpression=3]=`MemberExpression`,e[e.CallExpression=4]=`CallExpression`,e[e.BinaryExpression=5]=`BinaryExpression`,e[e.UnaryExpression=6]=`UnaryExpression`,e[e.ConditionalExpression=7]=`ConditionalExpression`})(z||={});var Oe=new Map([[`||`,2],[`&&`,3],[`===`,4],[`!==`,4],[`>`,5],[`>=`,5],[`<`,5],[`<=`,5],[`+`,6],[`-`,6],[`*`,7],[`/`,7],[`%`,7],[`!`,8]]),ke={type:z.Literal,value:null},Ae={type:z.Literal,value:!0},je={type:z.Literal,value:!1},Me=e=>{let t=0,n=e.length,r=()=>t>=n?null:e[t],i=()=>e[t++],a=e=>{let t=r();return t!==null&&t.type===e},o=e=>e.type===R.OPERATOR?Oe.get(e.value)||-1:e.type===R.DOT||e.type===R.BRACKET_LEFT?9:e.type===R.QUESTION?1:-1,s=e=>{let n,o;if(i().type===R.DOT){if(!a(R.IDENTIFIER)){let e=r();throw new L(`Expected property name`,t,e?e.value:`<end of input>`)}let e=i();n={type:z.Identifier,name:e.value},o=!1}else{if(n=l(0),!a(R.BRACKET_RIGHT)){let e=r();throw new L(`Expected closing bracket`,t,e?e.value:`<end of input>`)}i(),o=!0}return{type:z.MemberExpression,object:e,property:n,computed:o}},c=()=>{let e=r();if(!e)throw new L(`Unexpected end of input`,t,`<end of input>`);if(e.type===R.OPERATOR&&(e.value===`!`||e.value===`-`)){i();let t=c();return{type:z.UnaryExpression,operator:e.value,argument:t,prefix:!0}}switch(e.type){case R.NUMBER:return i(),{type:z.Literal,value:Number(e.value)};case R.STRING:return i(),{type:z.Literal,value:e.value};case R.BOOLEAN:return i(),e.value===`true`?Ae:je;case R.NULL:return i(),ke;case R.IDENTIFIER:return i(),{type:z.Identifier,name:e.value};case R.FUNCTION:return(()=>{let e=i(),n=[];if(!a(R.PAREN_LEFT)){let e=r();throw new L(`Expected opening parenthesis after function name`,t,e?e.value:`<end of input>`)}for(i();;){if(a(R.PAREN_RIGHT)){i();break}if(!r()){let e=r();throw new L(`Expected closing parenthesis`,t,e?e.value:`<end of input>`)}if(n.length>0){if(!a(R.COMMA)){let e=r();throw new L(`Expected comma between function arguments`,t,e?e.value:`<end of input>`)}i()}let e=l(0);n.push(e)}return{type:z.CallExpression,callee:{type:z.Identifier,name:e.value},arguments:n}})();case R.PAREN_LEFT:{i();let e=l(0);if(!a(R.PAREN_RIGHT)){let e=r();throw new L(`Expected closing parenthesis`,t,e?e.value:`<end of input>`)}return i(),e}default:throw new L(`Unexpected token: ${e.type}`,t,e.value)}},l=(u=0)=>{let d=c();for(;t<n;){let n=e[t],c=o(n);if(c<=u)break;if(n.type!==R.QUESTION){if(n.type!==R.OPERATOR){if(n.type!==R.DOT&&n.type!==R.BRACKET_LEFT)break;d=s(d)}else{i();let e=l(c);d={type:z.BinaryExpression,operator:n.value,left:d,right:e}}}else{i();let e=l(0);if(!a(R.COLON)){let e=r();throw new L(`Expected : in conditional expression`,t,e?e.value:`<end of input>`)}i();let n=l(0);d={type:z.ConditionalExpression,test:d,consequent:e,alternate:n}}}return d},u=l();return{type:z.Program,body:u}},Ne=(e,t,n)=>{let r=t;n&&(r={...t,context:{...t.context,...n}});let i=e=>{switch(e.type){case z.Literal:return(e=>e.value)(e);case z.Identifier:return(e=>{if(!(e.name in r.context))throw new L(`Undefined variable: ${e.name}`);return r.context[e.name]})(e);case z.MemberExpression:return(e=>{let t=i(e.object);if(t==null)throw new L(`Cannot access property of null or undefined`);return t[e.computed?i(e.property):e.property.name]})(e);case z.CallExpression:return(e=>{let t=r.functions[e.callee.name];if(!t)throw new L(`Undefined function: ${e.callee.name}`);return t(...e.arguments.map((e=>i(e))))})(e);case z.BinaryExpression:return(e=>{if(e.operator===`&&`)return i(e.left)&&i(e.right);if(e.operator===`||`)return i(e.left)||i(e.right);let t=i(e.left),n=i(e.right);switch(e.operator){case`+`:return t+n;case`-`:return t-n;case`*`:return t*n;case`/`:return t/n;case`%`:return t%n;case`===`:return t===n;case`!==`:return t!==n;case`>`:return t>n;case`>=`:return t>=n;case`<`:return t<n;case`<=`:return t<=n;default:throw new L(`Unknown operator: ${e.operator}`)}})(e);case z.UnaryExpression:return(e=>{let t=i(e.argument);if(e.prefix)switch(e.operator){case`!`:return!t;case`-`:if(typeof t!=`number`)throw new L(`Cannot apply unary - to non-number: ${t}`);return-t;default:throw new L(`Unknown operator: ${e.operator}`)}throw new L(`Postfix operators are not supported: ${e.operator}`)})(e);case z.ConditionalExpression:return(e=>{let t=i(e.test);return i(t?e.consequent:e.alternate)})(e);default:throw new L(`Evaluation error: Unsupported node type: ${e.type}`)}};return i(e.body)};function Pe(e){let t=Me((e=>{let t=e,n=t.length,r=Array(Math.ceil(n/3)),i=0,a=0;function o(e){let r=a+1;a++;let i=``,o=!1;for(;a<n;){let n=t.charCodeAt(a);if(n===e)return o||(i=t.substring(r,a)),a++,{type:R.STRING,value:i};n===92?(o||=(i=t.substring(r,a),!0),a++,i+=t[a]):o&&(i+=t[a]),a++}throw new L(`Unterminated string starting with ${String.fromCharCode(e)}`,a,t.substring(Math.max(0,a-10),a))}function s(){let e=a;for(t.charCodeAt(a)===45&&a++;a<n&&we(t.charCodeAt(a));)a++;if(a<n&&t.charCodeAt(a)===46)for(a++;a<n&&we(t.charCodeAt(a));)a++;let r=t.slice(e,a);return{type:R.NUMBER,value:r}}function c(){a++;let e=a;if(a<n&&Te(t.charCodeAt(a)))for(a++;a<n&&Ee(t.charCodeAt(a));)a++;let r=t.slice(e,a);return{type:R.FUNCTION,value:r}}function l(){let e=a++;for(;a<n&&Ee(t.charCodeAt(a));)a++;let r=t.slice(e,a),i=be.get(r);return i?{type:i,value:r}:{type:R.IDENTIFIER,value:r}}function u(){if(a+2<n){let e=t.substring(a,a+3);if(xe.has(e))return a+=3,{type:R.OPERATOR,value:e}}if(a+1<n){let e=t.substring(a,a+2);if(xe.has(e))return a+=2,{type:R.OPERATOR,value:e}}let e=t[a];if(xe.has(e))return a++,{type:R.OPERATOR,value:e};throw new L(`Unknown operator at position ${a}: ${t.substring(a,a+1)}`,a,t.substring(Math.max(0,a-10),a))}for(;a<n;){let e=t.charCodeAt(a);if(d=e,ve.has(d)){a++;continue}let f=Ce.get(e);if(f)r[i++]=f,a++;else if(e!==34&&e!==39){if(we(e)||e===45&&a+1<n&&we(t.charCodeAt(a+1)))r[i++]=s();else if(e!==64){if(Te(e))r[i++]=l();else{if(!De(e))throw new L(`Unexpected character: ${t[a]}`,a,t.substring(Math.max(0,a-10),a));r[i++]=u()}}else r[i++]=c()}else r[i++]=o(e)}var d;return i===r.length?r:r.slice(0,i)})(e)),n=((e={},t={})=>({context:e,functions:t}))({},_e);return(e={})=>Ne(t,n,e)}function Fe(e,t={}){return Pe(e)(t)}function Ie(e,t){if(typeof e!=`string`)return;let n=e.trim();if(n)try{return Pe(n),Fe(n,t)}catch{return}}function Le(e){return typeof e==`number`}function Re(e){if(!e)return[0,0,0];if(Le(e))return[e,e,e];if(Array.isArray(e)&&e.length===0)return[0,0,0];let[t,n=t,r=t]=e;return[t,n,r]}function ze(e){return Le(e)?!0:Array.isArray(e)?e.every(e=>Le(e)):!1}function B(e){return e==null}function Be(e){return typeof e==`string`}function Ve(e){return typeof e==`function`}function He(e,t){if(typeof e==`function`)return e;if(typeof e==`string`){let n=e;return(...e)=>{let r={};for(let n=0;n<t.length;n++)r[t[n]]=e[n];return Ie(n,r)}}return()=>e}function Ue(e,t,n=`node`){if(B(e))return()=>t;if(Be(e)){let r=He(e,[n]);return e=>{let n=r(e);return Le(n)?n:t}}return Ve(e)?e:Le(e)?()=>e:()=>t}function We(e,t=10,n=`node`){if(B(e))return()=>t;if(Be(e)){let r=He(e,[n]);return e=>{let n=r(e);return ze(n)?n:t}}return Ve(e)?e:Le(e)||Array.isArray(e)?()=>e:()=>t}function Ge(e){return[e.x,e.y,e.z??0]}var Ke=class{constructor(e,t={}){this.edgeIdCounter=new Map,this.nodeMap=Ye(e.nodes,t.node),this.edgeMap=Xe(e.edges||[],t.edge,this.getEdgeId.bind(this))}data(){return{nodes:this.nodeMap,edges:this.edgeMap}}replace(e){this.nodeMap=e.nodes,this.edgeMap=e.edges,this.clearCache()}nodes(){return Array.from(this.nodeMap.values())}node(e){return this.nodeMap.get(e)}nodeAt(e){this.indexNodeCache||this.buildNodeIndexCache();let t=this.indexNodeCache.get(e);return t?this.nodeMap.get(t):void 0}nodeIndexOf(e){return this.nodeIndexCache||this.buildNodeIndexCache(),this.nodeIndexCache.get(e)??-1}firstNode(){return this.nodeMap.values().next().value}forEachNode(e){let t=0;this.nodeMap.forEach(n=>e(n,t++))}originalNode(e){return this.nodeMap.get(e)?._original}nodeCount(){return this.nodeMap.size}edges(){return Array.from(this.edgeMap.values())}edge(e){return this.edgeMap.get(e)}firstEdge(){return this.edgeMap.values().next().value}forEachEdge(e){let t=0;this.edgeMap.forEach(n=>e(n,t++))}originalEdge(e){return this.edgeMap.get(e)?._original}edgeCount(){return this.edgeMap.size}getEdgeId(e){if(e.id)return e.id;let t=`${e.source}-${e.target}`,n=this.edgeIdCounter.get(t)||0,r=n===0?t:`${t}-${n}`;return this.edgeIdCounter.set(t,n+1),r}degree(e,t=`both`){this.degreeCache||this.buildDegreeCache();let n=this.degreeCache.get(e);return n?n[t]:0}neighbors(e,t=`both`){if((!this.outAdjacencyCache||!this.inAdjacencyCache)&&this.buildAdjacencyCache(),t===`out`)return Array.from(this.outAdjacencyCache.get(e)||[]);if(t===`in`)return Array.from(this.inAdjacencyCache.get(e)||[]);if(this.bothAdjacencyCache)return Array.from(this.bothAdjacencyCache.get(e)||[]);let n=this.inAdjacencyCache.get(e),r=this.outAdjacencyCache.get(e);if(!n&&!r)return[];if(!n)return Array.from(r);if(!r)return Array.from(n);let i=new Set;return n.forEach(e=>i.add(e)),r.forEach(e=>i.add(e)),Array.from(i)}successors(e){return this.neighbors(e,`out`)}predecessors(e){return this.neighbors(e,`in`)}setNodeOrder(e){let t=new Map;for(let n of e)t.set(n.id,n);this.nodeMap=t,this.nodeIndexCache=void 0,this.indexNodeCache=void 0}clearCache(){this.degreeCache=void 0,this.inAdjacencyCache=void 0,this.outAdjacencyCache=void 0,this.bothAdjacencyCache=void 0,this.nodeIndexCache=void 0,this.indexNodeCache=void 0}buildDegreeCache(){this.degreeCache=new Map;for(let e of this.edges()){let{source:t,target:n}=e;if(e.source===e.target)continue;this.degreeCache.has(t)||this.degreeCache.set(t,{in:0,out:0,both:0});let r=this.degreeCache.get(e.source);r&&(r.out++,r.both++),this.degreeCache.has(n)||this.degreeCache.set(n,{in:0,out:0,both:0});let i=this.degreeCache.get(e.target);i&&(i.in++,i.both++)}}buildAdjacencyCache(){this.inAdjacencyCache=new Map,this.outAdjacencyCache=new Map;for(let e of this.edges())!this.nodeMap.has(e.source)||!this.nodeMap.has(e.target)||(this.outAdjacencyCache.has(e.source)||this.outAdjacencyCache.set(e.source,new Set),this.outAdjacencyCache.get(e.source).add(e.target),this.inAdjacencyCache.has(e.target)||this.inAdjacencyCache.set(e.target,new Set),this.inAdjacencyCache.get(e.target).add(e.source))}buildNodeIndexCache(){this.nodeIndexCache=new Map,this.indexNodeCache=new Map;let e=0;this.nodeMap.forEach((t,n)=>{this.nodeIndexCache.set(n,e),this.indexNodeCache.set(e,n),e++})}destroy(){this.clearCache(),this.nodeMap.clear(),this.edgeMap.clear(),this.edgeIdCounter.clear()}},qe=[`id`,`x`,`y`,`z`,`vx`,`vy`,`vz`,`fx`,`fy`,`fz`,`parentId`],Je=[`id`,`source`,`target`,`points`];function Ye(e,t){if(!e)throw Error(`Data.nodes is required`);let n=new Map;for(let r of e){let e={_original:r};for(let t of qe){let n=r[t];B(n)||(e[t]=n)}if(t){let n=t(r);for(let t in n){let r=n[t];B(r)||(e[t]=r)}}if(B(e.id))throw Error(`Node is missing id field`);n.set(e.id,e)}return n}function Xe(e,t,n){let r=new Map;for(let i of e){let e={_original:i};for(let t of Je){let n=i[t];B(n)||(e[t]=n)}if(t){let n=t(i);for(let t in n){let r=n[t];B(r)||(e[t]=r)}}if(B(e.source)||B(e.target))throw Error(`Edge is missing source or target field`);B(e.id)&&(e.id=n?.(i)),r.set(e.id,e)}return r}var Ze=class{constructor(e,t={}){this.graph=new Ke(e,t)}export(){return this.graph.data()}replace(e){this.graph.replace(e)}forEachNode(e){this.graph.forEachNode(e)}forEachEdge(e){this.graph.forEachEdge((t,n)=>{t.sourceNode=this.graph.node(t.source),t.targetNode=this.graph.node(t.target),e(t,n)})}destroy(){this.graph.destroy()}},Qe=Symbol(`Comlink.proxy`),$e=Symbol(`Comlink.endpoint`),et=Symbol(`Comlink.releaseProxy`),tt=Symbol(`Comlink.finalizer`),nt=Symbol(`Comlink.thrown`),rt=e=>typeof e==`object`&&!!e||typeof e==`function`,it=new Map([[`proxy`,{canHandle:e=>rt(e)&&e[Qe],serialize(e){let{port1:t,port2:n}=new MessageChannel;return ot(e,t),[n,[n]]},deserialize(e){return e.start(),lt(e)}}],[`throw`,{canHandle:e=>rt(e)&&nt in e,serialize({value:e}){let t;return t=e instanceof Error?{isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:{isError:!1,value:e},[t,[]]},deserialize(e){throw e.isError?Object.assign(Error(e.value.message),e.value):e.value}}]]);function at(e,t){for(let n of e)if(t===n||n===`*`||n instanceof RegExp&&n.test(t))return!0;return!1}function ot(e,t=globalThis,n=[`*`]){t.addEventListener(`message`,function r(i){if(!i||!i.data)return;if(!at(n,i.origin)){console.warn(`Invalid origin '${i.origin}' for comlink proxy`);return}let{id:a,type:o,path:s}=Object.assign({path:[]},i.data),c=(i.data.argumentList||[]).map(Ct),l;try{let t=s.slice(0,-1).reduce((e,t)=>e[t],e),n=s.reduce((e,t)=>e[t],e);switch(o){case`GET`:l=n;break;case`SET`:t[s.slice(-1)[0]]=Ct(i.data.value),l=!0;break;case`APPLY`:l=n.apply(t,c);break;case`CONSTRUCT`:l=xt(new n(...c));break;case`ENDPOINT`:{let{port1:t,port2:n}=new MessageChannel;ot(e,n),l=bt(t,[t])}break;case`RELEASE`:l=void 0;break;default:return}}catch(e){l={value:e,[nt]:0}}Promise.resolve(l).catch(e=>({value:e,[nt]:0})).then(n=>{let[i,s]=St(n);t.postMessage(Object.assign(Object.assign({},i),{id:a}),s),o===`RELEASE`&&(t.removeEventListener(`message`,r),ct(t),tt in e&&typeof e[tt]==`function`&&e[tt]())}).catch(e=>{let[n,r]=St({value:TypeError(`Unserializable return value`),[nt]:0});t.postMessage(Object.assign(Object.assign({},n),{id:a}),r)})}),t.start&&t.start()}function st(e){return e.constructor.name===`MessagePort`}function ct(e){st(e)&&e.close()}function lt(e,t){let n=new Map;return e.addEventListener(`message`,function(e){let{data:t}=e;if(!t||!t.id)return;let r=n.get(t.id);if(r)try{r(t)}finally{n.delete(t.id)}}),gt(e,n,[],t)}function ut(e){if(e)throw Error(`Proxy has been released and is not useable`)}function dt(e){return wt(e,new Map,{type:`RELEASE`}).then(()=>{ct(e)})}var ft=new WeakMap,pt=`FinalizationRegistry`in globalThis&&new FinalizationRegistry(e=>{let t=(ft.get(e)||0)-1;ft.set(e,t),t===0&&dt(e)});function mt(e,t){let n=(ft.get(t)||0)+1;ft.set(t,n),pt&&pt.register(e,t,e)}function ht(e){pt&&pt.unregister(e)}function gt(e,t,n=[],r=function(){}){let i=!1,a=new Proxy(r,{get(r,o){if(ut(i),o===et)return()=>{ht(a),dt(e),t.clear(),i=!0};if(o===`then`){if(n.length===0)return{then:()=>a};let r=wt(e,t,{type:`GET`,path:n.map(e=>e.toString())}).then(Ct);return r.then.bind(r)}return gt(e,t,[...n,o])},set(r,a,o){ut(i);let[s,c]=St(o);return wt(e,t,{type:`SET`,path:[...n,a].map(e=>e.toString()),value:s},c).then(Ct)},apply(r,a,o){ut(i);let s=n[n.length-1];if(s===$e)return wt(e,t,{type:`ENDPOINT`}).then(Ct);if(s===`bind`)return gt(e,t,n.slice(0,-1));let[c,l]=vt(o);return wt(e,t,{type:`APPLY`,path:n.map(e=>e.toString()),argumentList:c},l).then(Ct)},construct(r,a){ut(i);let[o,s]=vt(a);return wt(e,t,{type:`CONSTRUCT`,path:n.map(e=>e.toString()),argumentList:o},s).then(Ct)}});return mt(a,e),a}function _t(e){return Array.prototype.concat.apply([],e)}function vt(e){let t=e.map(St);return[t.map(e=>e[0]),_t(t.map(e=>e[1]))]}var yt=new WeakMap;function bt(e,t){return yt.set(e,t),e}function xt(e){return Object.assign(e,{[Qe]:!0})}function St(e){for(let[t,n]of it)if(n.canHandle(e)){let[r,i]=n.serialize(e);return[{type:`HANDLER`,name:t,value:r},i]}return[{type:`RAW`,value:e},yt.get(e)||[]]}function Ct(e){switch(e.type){case`HANDLER`:return it.get(e.name).deserialize(e.value);case`RAW`:return e.value}}function wt(e,t,n,r){return new Promise(i=>{let a=Tt();t.set(a,i),e.start&&e.start(),e.postMessage(Object.assign({id:a},n),r)})}function Tt(){return[,,,,].fill(0).map(()=>Math.floor(Math.random()*(2**53-1)).toString(16)).join(`-`)}var Et=class{constructor(){this.worker=null,this.workerApi=null}execute(e,t,n){return ge(this,void 0,void 0,function*(){if(this.worker||(yield this.initWorker()),!this.workerApi)throw Error(`Worker API not initialized`);return yield this.workerApi.execute(e,t,n)})}destroy(){this.workerApi&&this.workerApi.destroy(),this.worker&&(this.worker.terminate(),this.worker=null,this.workerApi=null)}initWorker(){return ge(this,void 0,void 0,function*(){let e=this.resolveWorkerPath(),t=e.includes(`/lib/`)||e.endsWith(`.mjs`)?`module`:`classic`;this.worker=new Worker(e,{type:t}),this.workerApi=lt(this.worker)})}resolveWorkerPath(){let e=(()=>{if(typeof document>`u`)return null;let e=document.currentScript;if(e?.src)return e.src;let t=document.getElementsByTagName(`script`);for(let e=t.length-1;e>=0;e--){let n=t[e].src;if(n&&(n.includes(`index.js`)||n.includes(`index.min.js`)))return n}return null})();if(e){if(e.includes(`index.js`)||e.includes(`index.min.js`)){let t=e.replace(/index(\.min)?\.(m?js)(\?.*)?$/,`worker.js`);if(t!==e)return t}let t=e.replace(/\/runtime\/[^/]+\.(m?js)(\?.*)?$/,`/worker.js`);if(t!==e)return t;let n=e.replace(/\/[^/]+\.(m?js)(\?.*)?$/,`/worker.js`);if(n!==e)return n}return`./worker.js`}},Dt=class{constructor(e){this.supervisor=null,this.initialOptions=this.mergeOptions(this.getDefaultOptions(),e)}get options(){return this.runtimeOptions||this.initialOptions}mergeOptions(e,t){return Object.assign({},e,t||{})}execute(e,t){return ge(this,void 0,void 0,function*(){this.runtimeOptions=this.mergeOptions(this.initialOptions,t);let{node:n,edge:r,enableWorker:i}=this.runtimeOptions;this.context=new Ze(e,{node:n,edge:r}),this.model=this.context.graph,i&&typeof Worker<`u`?yield this.layoutInWorker(e,this.runtimeOptions):yield this.layout(this.runtimeOptions)})}layoutInWorker(e,t){var n;return ge(this,void 0,void 0,function*(){try{this.supervisor||=new Et;let r=yield this.supervisor.execute(this.id,e,t);(n=this.context)==null||n.replace(r)}catch(e){console.error(`Layout in worker failed, fallback to main thread layout.`,e),yield this.layout(t)}})}forEachNode(e){this.context.forEachNode(e)}forEachEdge(e){this.context.forEachEdge(e)}destroy(){var e;(e=this.context)==null||e.destroy(),this.model=null,this.context=null,this.supervisor&&=(this.supervisor.destroy(),null)}};function Ot(e){return Array.isArray(e)}var kt=(function(e){var t=typeof e;return e!==null&&t===`object`||t===`function`}),At=function(e){return typeof e==`object`&&!!e},jt={}.toString,Mt=function(e,t){return jt.call(e)===`[object `+t+`]`},Nt=function(e){if(!At(e)||!Mt(e,`Object`))return!1;if(Object.getPrototypeOf(e)===null)return!0;for(var t=e;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t},Pt=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{};function Ft(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,`default`)?e.default:e}function It(e){throw Error(`Could not dynamically require "`+e+`". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.`)}var Lt,Rt;function zt(){if(Rt)return Lt;Rt=1;function e(){this.__data__=[],this.size=0}return Lt=e,Lt}var Bt,Vt;function Ht(){if(Vt)return Bt;Vt=1;function e(e,t){return e===t||e!==e&&t!==t}return Bt=e,Bt}var Ut,Wt;function Gt(){if(Wt)return Ut;Wt=1;var e=Ht();function t(t,n){for(var r=t.length;r--;)if(e(t[r][0],n))return r;return-1}return Ut=t,Ut}var Kt,qt;function Jt(){if(qt)return Kt;qt=1;var e=Gt(),t=Array.prototype.splice;function n(n){var r=this.__data__,i=e(r,n);return i<0?!1:(i==r.length-1?r.pop():t.call(r,i,1),--this.size,!0)}return Kt=n,Kt}var Yt,Xt;function Zt(){if(Xt)return Yt;Xt=1;var e=Gt();function t(t){var n=this.__data__,r=e(n,t);return r<0?void 0:n[r][1]}return Yt=t,Yt}var Qt,$t;function en(){if($t)return Qt;$t=1;var e=Gt();function t(t){return e(this.__data__,t)>-1}return Qt=t,Qt}var tn,nn;function rn(){if(nn)return tn;nn=1;var e=Gt();function t(t,n){var r=this.__data__,i=e(r,t);return i<0?(++this.size,r.push([t,n])):r[i][1]=n,this}return tn=t,tn}var an,on;function sn(){if(on)return an;on=1;var e=zt(),t=Jt(),n=Zt(),r=en(),i=rn();function a(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}return a.prototype.clear=e,a.prototype.delete=t,a.prototype.get=n,a.prototype.has=r,a.prototype.set=i,an=a,an}var cn,ln;function un(){if(ln)return cn;ln=1;var e=sn();function t(){this.__data__=new e,this.size=0}return cn=t,cn}var dn,fn;function pn(){if(fn)return dn;fn=1;function e(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}return dn=e,dn}var mn,hn;function gn(){if(hn)return mn;hn=1;function e(e){return this.__data__.get(e)}return mn=e,mn}var _n,vn;function yn(){if(vn)return _n;vn=1;function e(e){return this.__data__.has(e)}return _n=e,_n}var bn,xn;function Sn(){return xn?bn:(xn=1,bn=typeof Pt==`object`&&Pt&&Pt.Object===Object&&Pt,bn)}var Cn,wn;function V(){if(wn)return Cn;wn=1;var e=Sn(),t=typeof self==`object`&&self&&self.Object===Object&&self;return Cn=e||t||Function(`return this`)(),Cn}var Tn,En;function Dn(){return En?Tn:(En=1,Tn=V().Symbol,Tn)}var On,kn;function An(){if(kn)return On;kn=1;var e=Dn(),t=Object.prototype,n=t.hasOwnProperty,r=t.toString,i=e?e.toStringTag:void 0;function a(e){var t=n.call(e,i),a=e[i];try{e[i]=void 0;var o=!0}catch{}var s=r.call(e);return o&&(t?e[i]=a:delete e[i]),s}return On=a,On}var jn,Mn;function Nn(){if(Mn)return jn;Mn=1;var e=Object.prototype.toString;function t(t){return e.call(t)}return jn=t,jn}var Pn,Fn;function H(){if(Fn)return Pn;Fn=1;var e=Dn(),t=An(),n=Nn(),r=`[object Null]`,i=`[object Undefined]`,a=e?e.toStringTag:void 0;function o(e){return e==null?e===void 0?i:r:a&&a in Object(e)?t(e):n(e)}return Pn=o,Pn}var In,Ln;function U(){if(Ln)return In;Ln=1;function e(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}return In=e,In}var Rn,zn;function Bn(){if(zn)return Rn;zn=1;var e=H(),t=U(),n=`[object AsyncFunction]`,r=`[object Function]`,i=`[object GeneratorFunction]`,a=`[object Proxy]`;function o(o){if(!t(o))return!1;var s=e(o);return s==r||s==i||s==n||s==a}return Rn=o,Rn}var Vn,Hn;function Un(){return Hn?Vn:(Hn=1,Vn=V()[`__core-js_shared__`],Vn)}var Wn,Gn;function Kn(){if(Gn)return Wn;Gn=1;var e=Un(),t=function(){var t=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||``);return t?`Symbol(src)_1.`+t:``}();function n(e){return!!t&&t in e}return Wn=n,Wn}var qn,Jn;function Yn(){if(Jn)return qn;Jn=1;var e=Function.prototype.toString;function t(t){if(t!=null){try{return e.call(t)}catch{}try{return t+``}catch{}}return``}return qn=t,qn}var Xn,Zn;function Qn(){if(Zn)return Xn;Zn=1;var e=Bn(),t=Kn(),n=U(),r=Yn(),i=/[\\^$.*+?()[\]{}|]/g,a=/^\[object .+?Constructor\]$/,o=Function.prototype,s=Object.prototype,c=o.toString,l=s.hasOwnProperty,u=RegExp(`^`+c.call(l).replace(i,`\\$&`).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,`$1.*?`)+`$`);function d(i){return!n(i)||t(i)?!1:(e(i)?u:a).test(r(i))}return Xn=d,Xn}var $n,er;function tr(){if(er)return $n;er=1;function e(e,t){return e?.[t]}return $n=e,$n}var nr,rr;function W(){if(rr)return nr;rr=1;var e=Qn(),t=tr();function n(n,r){var i=t(n,r);return e(i)?i:void 0}return nr=n,nr}var ir,ar;function or(){return ar?ir:(ar=1,ir=W()(V(),`Map`),ir)}var sr,cr;function lr(){return cr?sr:(cr=1,sr=W()(Object,`create`),sr)}var ur,dr;function fr(){if(dr)return ur;dr=1;var e=lr();function t(){this.__data__=e?e(null):{},this.size=0}return ur=t,ur}var pr,mr;function hr(){if(mr)return pr;mr=1;function e(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=+!!t,t}return pr=e,pr}var gr,_r;function vr(){if(_r)return gr;_r=1;var e=lr(),t=`__lodash_hash_undefined__`,n=Object.prototype.hasOwnProperty;function r(r){var i=this.__data__;if(e){var a=i[r];return a===t?void 0:a}return n.call(i,r)?i[r]:void 0}return gr=r,gr}var yr,br;function xr(){if(br)return yr;br=1;var e=lr(),t=Object.prototype.hasOwnProperty;function n(n){var r=this.__data__;return e?r[n]!==void 0:t.call(r,n)}return yr=n,yr}var Sr,Cr;function wr(){if(Cr)return Sr;Cr=1;var e=lr(),t=`__lodash_hash_undefined__`;function n(n,r){var i=this.__data__;return this.size+=+!this.has(n),i[n]=e&&r===void 0?t:r,this}return Sr=n,Sr}var Tr,Er;function Dr(){if(Er)return Tr;Er=1;var e=fr(),t=hr(),n=vr(),r=xr(),i=wr();function a(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}return a.prototype.clear=e,a.prototype.delete=t,a.prototype.get=n,a.prototype.has=r,a.prototype.set=i,Tr=a,Tr}var Or,kr;function Ar(){if(kr)return Or;kr=1;var e=Dr(),t=sn(),n=or();function r(){this.size=0,this.__data__={hash:new e,map:new(n||t),string:new e}}return Or=r,Or}var jr,Mr;function Nr(){if(Mr)return jr;Mr=1;function e(e){var t=typeof e;return t==`string`||t==`number`||t==`symbol`||t==`boolean`?e!==`__proto__`:e===null}return jr=e,jr}var Pr,Fr;function Ir(){if(Fr)return Pr;Fr=1;var e=Nr();function t(t,n){var r=t.__data__;return e(n)?r[typeof n==`string`?`string`:`hash`]:r.map}return Pr=t,Pr}var Lr,Rr;function zr(){if(Rr)return Lr;Rr=1;var e=Ir();function t(t){var n=e(this,t).delete(t);return this.size-=+!!n,n}return Lr=t,Lr}var Br,Vr;function Hr(){if(Vr)return Br;Vr=1;var e=Ir();function t(t){return e(this,t).get(t)}return Br=t,Br}var Ur,Wr;function Gr(){if(Wr)return Ur;Wr=1;var e=Ir();function t(t){return e(this,t).has(t)}return Ur=t,Ur}var Kr,qr;function Jr(){if(qr)return Kr;qr=1;var e=Ir();function t(t,n){var r=e(this,t),i=r.size;return r.set(t,n),this.size+=r.size==i?0:1,this}return Kr=t,Kr}var Yr,Xr;function Zr(){if(Xr)return Yr;Xr=1;var e=Ar(),t=zr(),n=Hr(),r=Gr(),i=Jr();function a(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}return a.prototype.clear=e,a.prototype.delete=t,a.prototype.get=n,a.prototype.has=r,a.prototype.set=i,Yr=a,Yr}var Qr,$r;function ei(){if($r)return Qr;$r=1;var e=sn(),t=or(),n=Zr(),r=200;function i(i,a){var o=this.__data__;if(o instanceof e){var s=o.__data__;if(!t||s.length<r-1)return s.push([i,a]),this.size=++o.size,this;o=this.__data__=new n(s)}return o.set(i,a),this.size=o.size,this}return Qr=i,Qr}var ti,ni;function ri(){if(ni)return ti;ni=1;var e=sn(),t=un(),n=pn(),r=gn(),i=yn(),a=ei();function o(t){var n=this.__data__=new e(t);this.size=n.size}return o.prototype.clear=t,o.prototype.delete=n,o.prototype.get=r,o.prototype.has=i,o.prototype.set=a,ti=o,ti}var ii,ai;function oi(){if(ai)return ii;ai=1;function e(e,t){for(var n=-1,r=e==null?0:e.length;++n<r&&t(e[n],n,e)!==!1;);return e}return ii=e,ii}var si,ci;function li(){if(ci)return si;ci=1;var e=W();return si=function(){try{var t=e(Object,`defineProperty`);return t({},``,{}),t}catch{}}(),si}var ui,di;function fi(){if(di)return ui;di=1;var e=li();function t(t,n,r){n==`__proto__`&&e?e(t,n,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[n]=r}return ui=t,ui}var pi,mi;function hi(){if(mi)return pi;mi=1;var e=fi(),t=Ht(),n=Object.prototype.hasOwnProperty;function r(r,i,a){var o=r[i];(!(n.call(r,i)&&t(o,a))||a===void 0&&!(i in r))&&e(r,i,a)}return pi=r,pi}var gi,_i;function vi(){if(_i)return gi;_i=1;var e=hi(),t=fi();function n(n,r,i,a){var o=!i;i||={};for(var s=-1,c=r.length;++s<c;){var l=r[s],u=a?a(i[l],n[l],l,i,n):void 0;u===void 0&&(u=n[l]),o?t(i,l,u):e(i,l,u)}return i}return gi=n,gi}var yi,bi;function xi(){if(bi)return yi;bi=1;function e(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}return yi=e,yi}var Si,Ci;function G(){if(Ci)return Si;Ci=1;function e(e){return typeof e==`object`&&!!e}return Si=e,Si}var wi,Ti;function Ei(){if(Ti)return wi;Ti=1;var e=H(),t=G(),n=`[object Arguments]`;function r(r){return t(r)&&e(r)==n}return wi=r,wi}var Di,Oi;function ki(){if(Oi)return Di;Oi=1;var e=Ei(),t=G(),n=Object.prototype,r=n.hasOwnProperty,i=n.propertyIsEnumerable;return Di=e(function(){return arguments}())?e:function(e){return t(e)&&r.call(e,`callee`)&&!i.call(e,`callee`)},Di}var Ai,ji;function K(){return ji?Ai:(ji=1,Ai=Array.isArray,Ai)}var Mi={exports:{}},Ni,Pi;function Fi(){if(Pi)return Ni;Pi=1;function e(){return!1}return Ni=e,Ni}Mi.exports;var Ii;function Li(){return Ii?Mi.exports:(Ii=1,(function(e,t){var n=V(),r=Fi(),i=t&&!t.nodeType&&t,a=i&&e&&!e.nodeType&&e,o=a&&a.exports===i?n.Buffer:void 0;e.exports=(o?o.isBuffer:void 0)||r})(Mi,Mi.exports),Mi.exports)}var Ri,zi;function Bi(){if(zi)return Ri;zi=1;var e=9007199254740991,t=/^(?:0|[1-9]\d*)$/;function n(n,r){var i=typeof n;return r??=e,!!r&&(i==`number`||i!=`symbol`&&t.test(n))&&n>-1&&n%1==0&&n<r}return Ri=n,Ri}var Vi,Hi;function Ui(){if(Hi)return Vi;Hi=1;var e=9007199254740991;function t(t){return typeof t==`number`&&t>-1&&t%1==0&&t<=e}return Vi=t,Vi}var Wi,Gi;function Ki(){if(Gi)return Wi;Gi=1;var e=H(),t=Ui(),n=G(),r=`[object Arguments]`,i=`[object Array]`,a=`[object Boolean]`,o=`[object Date]`,s=`[object Error]`,c=`[object Function]`,l=`[object Map]`,u=`[object Number]`,d=`[object Object]`,f=`[object RegExp]`,p=`[object Set]`,m=`[object String]`,h=`[object WeakMap]`,g=`[object ArrayBuffer]`,_=`[object DataView]`,v=`[object Float32Array]`,y=`[object Float64Array]`,b=`[object Int8Array]`,x=`[object Int16Array]`,S=`[object Int32Array]`,C=`[object Uint8Array]`,w=`[object Uint8ClampedArray]`,T=`[object Uint16Array]`,E=`[object Uint32Array]`,D={};D[v]=D[y]=D[b]=D[x]=D[S]=D[C]=D[w]=D[T]=D[E]=!0,D[r]=D[i]=D[g]=D[a]=D[_]=D[o]=D[s]=D[c]=D[l]=D[u]=D[d]=D[f]=D[p]=D[m]=D[h]=!1;function O(r){return n(r)&&t(r.length)&&!!D[e(r)]}return Wi=O,Wi}var qi,Ji;function Yi(){if(Ji)return qi;Ji=1;function e(e){return function(t){return e(t)}}return qi=e,qi}var Xi={exports:{}};Xi.exports;var Zi;function Qi(){return Zi?Xi.exports:(Zi=1,(function(e,t){var n=Sn(),r=t&&!t.nodeType&&t,i=r&&e&&!e.nodeType&&e,a=i&&i.exports===r&&n.process;e.exports=function(){try{return i&&i.require&&i.require(`util`).types||a&&a.binding&&a.binding(`util`)}catch{}}()})(Xi,Xi.exports),Xi.exports)}var $i,ea;function ta(){if(ea)return $i;ea=1;var e=Ki(),t=Yi(),n=Qi(),r=n&&n.isTypedArray;return $i=r?t(r):e,$i}var na,ra;function ia(){if(ra)return na;ra=1;var e=xi(),t=ki(),n=K(),r=Li(),i=Bi(),a=ta(),o=Object.prototype.hasOwnProperty;function s(s,c){var l=n(s),u=!l&&t(s),d=!l&&!u&&r(s),f=!l&&!u&&!d&&a(s),p=l||u||d||f,m=p?e(s.length,String):[],h=m.length;for(var g in s)(c||o.call(s,g))&&!(p&&(g==`length`||d&&(g==`offset`||g==`parent`)||f&&(g==`buffer`||g==`byteLength`||g==`byteOffset`)||i(g,h)))&&m.push(g);return m}return na=s,na}var aa,oa;function sa(){if(oa)return aa;oa=1;var e=Object.prototype;function t(t){var n=t&&t.constructor;return t===(typeof n==`function`&&n.prototype||e)}return aa=t,aa}var ca,la;function ua(){if(la)return ca;la=1;function e(e,t){return function(n){return e(t(n))}}return ca=e,ca}var da,fa;function pa(){return fa?da:(fa=1,da=ua()(Object.keys,Object),da)}var ma,ha;function ga(){if(ha)return ma;ha=1;var e=sa(),t=pa(),n=Object.prototype.hasOwnProperty;function r(r){if(!e(r))return t(r);var i=[];for(var a in Object(r))n.call(r,a)&&a!=`constructor`&&i.push(a);return i}return ma=r,ma}var _a,va;function q(){if(va)return _a;va=1;var e=Bn(),t=Ui();function n(n){return n!=null&&t(n.length)&&!e(n)}return _a=n,_a}var ya,ba;function J(){if(ba)return ya;ba=1;var e=ia(),t=ga(),n=q();function r(r){return n(r)?e(r):t(r)}return ya=r,ya}var xa,Sa;function Ca(){if(Sa)return xa;Sa=1;var e=vi(),t=J();function n(n,r){return n&&e(r,t(r),n)}return xa=n,xa}var wa,Ta;function Ea(){if(Ta)return wa;Ta=1;function e(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}return wa=e,wa}var Da,Oa;function ka(){if(Oa)return Da;Oa=1;var e=U(),t=sa(),n=Ea(),r=Object.prototype.hasOwnProperty;function i(i){if(!e(i))return n(i);var a=t(i),o=[];for(var s in i)s==`constructor`&&(a||!r.call(i,s))||o.push(s);return o}return Da=i,Da}var Aa,ja;function Ma(){if(ja)return Aa;ja=1;var e=ia(),t=ka(),n=q();function r(r){return n(r)?e(r,!0):t(r)}return Aa=r,Aa}var Na,Pa;function Fa(){if(Pa)return Na;Pa=1;var e=vi(),t=Ma();function n(n,r){return n&&e(r,t(r),n)}return Na=n,Na}var Ia={exports:{}};Ia.exports;var La;function Ra(){return La?Ia.exports:(La=1,(function(e,t){var n=V(),r=t&&!t.nodeType&&t,i=r&&e&&!e.nodeType&&e,a=i&&i.exports===r?n.Buffer:void 0,o=a?a.allocUnsafe:void 0;function s(e,t){if(t)return e.slice();var n=e.length,r=o?o(n):new e.constructor(n);return e.copy(r),r}e.exports=s})(Ia,Ia.exports),Ia.exports)}var za,Ba;function Va(){if(Ba)return za;Ba=1;function e(e,t){var n=-1,r=e.length;for(t||=Array(r);++n<r;)t[n]=e[n];return t}return za=e,za}var Ha,Ua;function Wa(){if(Ua)return Ha;Ua=1;function e(e,t){for(var n=-1,r=e==null?0:e.length,i=0,a=[];++n<r;){var o=e[n];t(o,n,e)&&(a[i++]=o)}return a}return Ha=e,Ha}var Ga,Ka;function qa(){if(Ka)return Ga;Ka=1;function e(){return[]}return Ga=e,Ga}var Ja,Ya;function Xa(){if(Ya)return Ja;Ya=1;var e=Wa(),t=qa(),n=Object.prototype.propertyIsEnumerable,r=Object.getOwnPropertySymbols;return Ja=r?function(t){return t==null?[]:(t=Object(t),e(r(t),function(e){return n.call(t,e)}))}:t,Ja}var Za,Qa;function $a(){if(Qa)return Za;Qa=1;var e=vi(),t=Xa();function n(n,r){return e(n,t(n),r)}return Za=n,Za}var eo,to;function no(){if(to)return eo;to=1;function e(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}return eo=e,eo}var ro,io;function ao(){return io?ro:(io=1,ro=ua()(Object.getPrototypeOf,Object),ro)}var oo,so;function co(){if(so)return oo;so=1;var e=no(),t=ao(),n=Xa(),r=qa();return oo=Object.getOwnPropertySymbols?function(r){for(var i=[];r;)e(i,n(r)),r=t(r);return i}:r,oo}var lo,uo;function fo(){if(uo)return lo;uo=1;var e=vi(),t=co();function n(n,r){return e(n,t(n),r)}return lo=n,lo}var po,mo;function ho(){if(mo)return po;mo=1;var e=no(),t=K();function n(n,r,i){var a=r(n);return t(n)?a:e(a,i(n))}return po=n,po}var go,_o;function vo(){if(_o)return go;_o=1;var e=ho(),t=Xa(),n=J();function r(r){return e(r,n,t)}return go=r,go}var yo,bo;function xo(){if(bo)return yo;bo=1;var e=ho(),t=co(),n=Ma();function r(r){return e(r,n,t)}return yo=r,yo}var So,Co;function wo(){return Co?So:(Co=1,So=W()(V(),`DataView`),So)}var To,Eo;function Do(){return Eo?To:(Eo=1,To=W()(V(),`Promise`),To)}var Oo,ko;function Ao(){return ko?Oo:(ko=1,Oo=W()(V(),`Set`),Oo)}var jo,Mo;function No(){return Mo?jo:(Mo=1,jo=W()(V(),`WeakMap`),jo)}var Po,Fo;function Io(){if(Fo)return Po;Fo=1;var e=wo(),t=or(),n=Do(),r=Ao(),i=No(),a=H(),o=Yn(),s=`[object Map]`,c=`[object Object]`,l=`[object Promise]`,u=`[object Set]`,d=`[object WeakMap]`,f=`[object DataView]`,p=o(e),m=o(t),h=o(n),g=o(r),_=o(i),v=a;return(e&&v(new e(new ArrayBuffer(1)))!=f||t&&v(new t)!=s||n&&v(n.resolve())!=l||r&&v(new r)!=u||i&&v(new i)!=d)&&(v=function(e){var t=a(e),n=t==c?e.constructor:void 0,r=n?o(n):``;if(r)switch(r){case p:return f;case m:return s;case h:return l;case g:return u;case _:return d}return t}),Po=v,Po}var Lo,Ro;function zo(){if(Ro)return Lo;Ro=1;var e=Object.prototype.hasOwnProperty;function t(t){var n=t.length,r=new t.constructor(n);return n&&typeof t[0]==`string`&&e.call(t,`index`)&&(r.index=t.index,r.input=t.input),r}return Lo=t,Lo}var Bo,Vo;function Ho(){return Vo?Bo:(Vo=1,Bo=V().Uint8Array,Bo)}var Uo,Wo;function Go(){if(Wo)return Uo;Wo=1;var e=Ho();function t(t){var n=new t.constructor(t.byteLength);return new e(n).set(new e(t)),n}return Uo=t,Uo}var Ko,qo;function Jo(){if(qo)return Ko;qo=1;var e=Go();function t(t,n){var r=n?e(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}return Ko=t,Ko}var Yo,Xo;function Zo(){if(Xo)return Yo;Xo=1;var e=/\w*$/;function t(t){var n=new t.constructor(t.source,e.exec(t));return n.lastIndex=t.lastIndex,n}return Yo=t,Yo}var Qo,$o;function es(){if($o)return Qo;$o=1;var e=Dn(),t=e?e.prototype:void 0,n=t?t.valueOf:void 0;function r(e){return n?Object(n.call(e)):{}}return Qo=r,Qo}var ts,ns;function rs(){if(ns)return ts;ns=1;var e=Go();function t(t,n){var r=n?e(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}return ts=t,ts}var is,as;function os(){if(as)return is;as=1;var e=Go(),t=Jo(),n=Zo(),r=es(),i=rs(),a=`[object Boolean]`,o=`[object Date]`,s=`[object Map]`,c=`[object Number]`,l=`[object RegExp]`,u=`[object Set]`,d=`[object String]`,f=`[object Symbol]`,p=`[object ArrayBuffer]`,m=`[object DataView]`,h=`[object Float32Array]`,g=`[object Float64Array]`,_=`[object Int8Array]`,v=`[object Int16Array]`,y=`[object Int32Array]`,b=`[object Uint8Array]`,x=`[object Uint8ClampedArray]`,S=`[object Uint16Array]`,C=`[object Uint32Array]`;function w(w,T,E){var D=w.constructor;switch(T){case p:return e(w);case a:case o:return new D(+w);case m:return t(w,E);case h:case g:case _:case v:case y:case b:case x:case S:case C:return i(w,E);case s:return new D;case c:case d:return new D(w);case l:return n(w);case u:return new D;case f:return r(w)}}return is=w,is}var ss,cs;function ls(){if(cs)return ss;cs=1;var e=U(),t=Object.create;return ss=function(){function n(){}return function(r){if(!e(r))return{};if(t)return t(r);n.prototype=r;var i=new n;return n.prototype=void 0,i}}(),ss}var us,ds;function fs(){if(ds)return us;ds=1;var e=ls(),t=ao(),n=sa();function r(r){return typeof r.constructor==`function`&&!n(r)?e(t(r)):{}}return us=r,us}var ps,ms;function hs(){if(ms)return ps;ms=1;var e=Io(),t=G(),n=`[object Map]`;function r(r){return t(r)&&e(r)==n}return ps=r,ps}var gs,_s;function vs(){if(_s)return gs;_s=1;var e=hs(),t=Yi(),n=Qi(),r=n&&n.isMap;return gs=r?t(r):e,gs}var ys,bs;function xs(){if(bs)return ys;bs=1;var e=Io(),t=G(),n=`[object Set]`;function r(r){return t(r)&&e(r)==n}return ys=r,ys}var Ss,Cs;function ws(){if(Cs)return Ss;Cs=1;var e=xs(),t=Yi(),n=Qi(),r=n&&n.isSet;return Ss=r?t(r):e,Ss}var Ts,Es;function Ds(){if(Es)return Ts;Es=1;var e=ri(),t=oi(),n=hi(),r=Ca(),i=Fa(),a=Ra(),o=Va(),s=$a(),c=fo(),l=vo(),u=xo(),d=Io(),f=zo(),p=os(),m=fs(),h=K(),g=Li(),_=vs(),v=U(),y=ws(),b=J(),x=Ma(),S=1,C=2,w=4,T=`[object Arguments]`,E=`[object Array]`,D=`[object Boolean]`,O=`[object Date]`,k=`[object Error]`,ee=`[object Function]`,te=`[object GeneratorFunction]`,A=`[object Map]`,j=`[object Number]`,ne=`[object Object]`,M=`[object RegExp]`,N=`[object Set]`,re=`[object String]`,ie=`[object Symbol]`,P=`[object WeakMap]`,F=`[object ArrayBuffer]`,ae=`[object DataView]`,oe=`[object Float32Array]`,se=`[object Float64Array]`,ce=`[object Int8Array]`,le=`[object Int16Array]`,ue=`[object Int32Array]`,de=`[object Uint8Array]`,fe=`[object Uint8ClampedArray]`,pe=`[object Uint16Array]`,me=`[object Uint32Array]`,I={};I[T]=I[E]=I[F]=I[ae]=I[D]=I[O]=I[oe]=I[se]=I[ce]=I[le]=I[ue]=I[A]=I[j]=I[ne]=I[M]=I[N]=I[re]=I[ie]=I[de]=I[fe]=I[pe]=I[me]=!0,I[k]=I[ee]=I[P]=!1;function he(E,D,O,k,A,j){var M,N=D&S,re=D&C,ie=D&w;if(O&&(M=A?O(E,k,A,j):O(E)),M!==void 0)return M;if(!v(E))return E;var P=h(E);if(P){if(M=f(E),!N)return o(E,M)}else{var F=d(E),ae=F==ee||F==te;if(g(E))return a(E,N);if(F==ne||F==T||ae&&!A){if(M=re||ae?{}:m(E),!N)return re?c(E,i(M,E)):s(E,r(M,E))}else{if(!I[F])return A?E:{};M=p(E,F,N)}}j||=new e;var oe=j.get(E);if(oe)return oe;j.set(E,M),y(E)?E.forEach(function(e){M.add(he(e,D,O,e,E,j))}):_(E)&&E.forEach(function(e,t){M.set(t,he(e,D,O,t,E,j))});var se=P?void 0:(ie?re?u:l:re?x:b)(E);return t(se||E,function(e,t){se&&(t=e,e=E[t]),n(M,t,he(e,D,O,t,E,j))}),M}return Ts=he,Ts}var Os,ks;function As(){if(ks)return Os;ks=1;var e=Ds(),t=4;function n(n){return e(n,t)}return Os=n,Os}var js,Ms;function Ns(){if(Ms)return js;Ms=1;function e(e){return function(){return e}}return js=e,js}var Ps,Fs;function Is(){if(Fs)return Ps;Fs=1;function e(e){return function(t,n,r){for(var i=-1,a=Object(t),o=r(t),s=o.length;s--;){var c=o[e?s:++i];if(n(a[c],c,a)===!1)break}return t}}return Ps=e,Ps}var Ls,Rs;function zs(){return Rs?Ls:(Rs=1,Ls=Is()(),Ls)}var Bs,Vs;function Hs(){if(Vs)return Bs;Vs=1;var e=zs(),t=J();function n(n,r){return n&&e(n,r,t)}return Bs=n,Bs}var Us,Ws;function Gs(){if(Ws)return Us;Ws=1;var e=q();function t(t,n){return function(r,i){if(r==null)return r;if(!e(r))return t(r,i);for(var a=r.length,o=n?a:-1,s=Object(r);(n?o--:++o<a)&&i(s[o],o,s)!==!1;);return r}}return Us=t,Us}var Ks,qs;function Js(){if(qs)return Ks;qs=1;var e=Hs();return Ks=Gs()(e),Ks}var Ys,Xs;function Zs(){if(Xs)return Ys;Xs=1;function e(e){return e}return Ys=e,Ys}var Qs,$s;function ec(){if($s)return Qs;$s=1;var e=Zs();function t(t){return typeof t==`function`?t:e}return Qs=t,Qs}var tc,nc;function rc(){if(nc)return tc;nc=1;var e=oi(),t=Js(),n=ec(),r=K();function i(i,a){return(r(i)?e:t)(i,n(a))}return tc=i,tc}var ic,ac;function oc(){return ac?ic:(ac=1,ic=rc(),ic)}var sc,cc;function lc(){if(cc)return sc;cc=1;var e=Js();function t(t,n){var r=[];return e(t,function(e,t,i){n(e,t,i)&&r.push(e)}),r}return sc=t,sc}var uc,dc;function fc(){if(dc)return uc;dc=1;var e=`__lodash_hash_undefined__`;function t(t){return this.__data__.set(t,e),this}return uc=t,uc}var pc,mc;function hc(){if(mc)return pc;mc=1;function e(e){return this.__data__.has(e)}return pc=e,pc}var gc,_c;function vc(){if(_c)return gc;_c=1;var e=Zr(),t=fc(),n=hc();function r(t){var n=-1,r=t==null?0:t.length;for(this.__data__=new e;++n<r;)this.add(t[n])}return r.prototype.add=r.prototype.push=t,r.prototype.has=n,gc=r,gc}var yc,bc;function xc(){if(bc)return yc;bc=1;function e(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}return yc=e,yc}var Sc,Cc;function wc(){if(Cc)return Sc;Cc=1;function e(e,t){return e.has(t)}return Sc=e,Sc}var Tc,Ec;function Dc(){if(Ec)return Tc;Ec=1;var e=vc(),t=xc(),n=wc(),r=1,i=2;function a(a,o,s,c,l,u){var d=s&r,f=a.length,p=o.length;if(f!=p&&!(d&&p>f))return!1;var m=u.get(a),h=u.get(o);if(m&&h)return m==o&&h==a;var g=-1,_=!0,v=s&i?new e:void 0;for(u.set(a,o),u.set(o,a);++g<f;){var y=a[g],b=o[g];if(c)var x=d?c(b,y,g,o,a,u):c(y,b,g,a,o,u);if(x!==void 0){if(x)continue;_=!1;break}if(v){if(!t(o,function(e,t){if(!n(v,t)&&(y===e||l(y,e,s,c,u)))return v.push(t)})){_=!1;break}}else if(!(y===b||l(y,b,s,c,u))){_=!1;break}}return u.delete(a),u.delete(o),_}return Tc=a,Tc}var Oc,kc;function Ac(){if(kc)return Oc;kc=1;function e(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}return Oc=e,Oc}var jc,Mc;function Nc(){if(Mc)return jc;Mc=1;function e(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}return jc=e,jc}var Pc,Fc;function Ic(){if(Fc)return Pc;Fc=1;var e=Dn(),t=Ho(),n=Ht(),r=Dc(),i=Ac(),a=Nc(),o=1,s=2,c=`[object Boolean]`,l=`[object Date]`,u=`[object Error]`,d=`[object Map]`,f=`[object Number]`,p=`[object RegExp]`,m=`[object Set]`,h=`[object String]`,g=`[object Symbol]`,_=`[object ArrayBuffer]`,v=`[object DataView]`,y=e?e.prototype:void 0,b=y?y.valueOf:void 0;function x(e,y,x,S,C,w,T){switch(x){case v:if(e.byteLength!=y.byteLength||e.byteOffset!=y.byteOffset)return!1;e=e.buffer,y=y.buffer;case _:return!(e.byteLength!=y.byteLength||!w(new t(e),new t(y)));case c:case l:case f:return n(+e,+y);case u:return e.name==y.name&&e.message==y.message;case p:case h:return e==y+``;case d:var E=i;case m:var D=S&o;if(E||=a,e.size!=y.size&&!D)return!1;var O=T.get(e);if(O)return O==y;S|=s,T.set(e,y);var k=r(E(e),E(y),S,C,w,T);return T.delete(e),k;case g:if(b)return b.call(e)==b.call(y)}return!1}return Pc=x,Pc}var Lc,Rc;function zc(){if(Rc)return Lc;Rc=1;var e=vo(),t=1,n=Object.prototype.hasOwnProperty;function r(r,i,a,o,s,c){var l=a&t,u=e(r),d=u.length;if(d!=e(i).length&&!l)return!1;for(var f=d;f--;){var p=u[f];if(!(l?p in i:n.call(i,p)))return!1}var m=c.get(r),h=c.get(i);if(m&&h)return m==i&&h==r;var g=!0;c.set(r,i),c.set(i,r);for(var _=l;++f<d;){p=u[f];var v=r[p],y=i[p];if(o)var b=l?o(y,v,p,i,r,c):o(v,y,p,r,i,c);if(!(b===void 0?v===y||s(v,y,a,o,c):b)){g=!1;break}_||=p==`constructor`}if(g&&!_){var x=r.constructor,S=i.constructor;x!=S&&`constructor`in r&&`constructor`in i&&!(typeof x==`function`&&x instanceof x&&typeof S==`function`&&S instanceof S)&&(g=!1)}return c.delete(r),c.delete(i),g}return Lc=r,Lc}var Bc,Vc;function Hc(){if(Vc)return Bc;Vc=1;var e=ri(),t=Dc(),n=Ic(),r=zc(),i=Io(),a=K(),o=Li(),s=ta(),c=1,l=`[object Arguments]`,u=`[object Array]`,d=`[object Object]`,f=Object.prototype.hasOwnProperty;function p(p,m,h,g,_,v){var y=a(p),b=a(m),x=y?u:i(p),S=b?u:i(m);x=x==l?d:x,S=S==l?d:S;var C=x==d,w=S==d,T=x==S;if(T&&o(p)){if(!o(m))return!1;y=!0,C=!1}if(T&&!C)return v||=new e,y||s(p)?t(p,m,h,g,_,v):n(p,m,x,h,g,_,v);if(!(h&c)){var E=C&&f.call(p,`__wrapped__`),D=w&&f.call(m,`__wrapped__`);if(E||D){var O=E?p.value():p,k=D?m.value():m;return v||=new e,_(O,k,h,g,v)}}return T?(v||=new e,r(p,m,h,g,_,v)):!1}return Bc=p,Bc}var Uc,Wc;function Gc(){if(Wc)return Uc;Wc=1;var e=Hc(),t=G();function n(r,i,a,o,s){return r===i?!0:r==null||i==null||!t(r)&&!t(i)?r!==r&&i!==i:e(r,i,a,o,n,s)}return Uc=n,Uc}var Kc,qc;function Jc(){if(qc)return Kc;qc=1;var e=ri(),t=Gc(),n=1,r=2;function i(i,a,o,s){var c=o.length,l=c,u=!s;if(i==null)return!l;for(i=Object(i);c--;){var d=o[c];if(u&&d[2]?d[1]!==i[d[0]]:!(d[0]in i))return!1}for(;++c<l;){d=o[c];var f=d[0],p=i[f],m=d[1];if(u&&d[2]){if(p===void 0&&!(f in i))return!1}else{var h=new e;if(s)var g=s(p,m,f,i,a,h);if(!(g===void 0?t(m,p,n|r,s,h):g))return!1}}return!0}return Kc=i,Kc}var Yc,Xc;function Zc(){if(Xc)return Yc;Xc=1;var e=U();function t(t){return t===t&&!e(t)}return Yc=t,Yc}var Qc,$c;function el(){if($c)return Qc;$c=1;var e=Zc(),t=J();function n(n){for(var r=t(n),i=r.length;i--;){var a=r[i],o=n[a];r[i]=[a,o,e(o)]}return r}return Qc=n,Qc}var tl,nl;function rl(){if(nl)return tl;nl=1;function e(e,t){return function(n){return n!=null&&n[e]===t&&(t!==void 0||e in Object(n))}}return tl=e,tl}var il,al;function ol(){if(al)return il;al=1;var e=Jc(),t=el(),n=rl();function r(r){var i=t(r);return i.length==1&&i[0][2]?n(i[0][0],i[0][1]):function(t){return t===r||e(t,r,i)}}return il=r,il}var sl,cl;function ll(){if(cl)return sl;cl=1;var e=H(),t=G(),n=`[object Symbol]`;function r(r){return typeof r==`symbol`||t(r)&&e(r)==n}return sl=r,sl}var ul,dl;function fl(){if(dl)return ul;dl=1;var e=K(),t=ll(),n=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,r=/^\w*$/;function i(i,a){if(e(i))return!1;var o=typeof i;return o==`number`||o==`symbol`||o==`boolean`||i==null||t(i)?!0:r.test(i)||!n.test(i)||a!=null&&i in Object(a)}return ul=i,ul}var pl,ml;function hl(){if(ml)return pl;ml=1;var e=Zr(),t=`Expected a function`;function n(r,i){if(typeof r!=`function`||i!=null&&typeof i!=`function`)throw TypeError(t);var a=function(){var e=arguments,t=i?i.apply(this,e):e[0],n=a.cache;if(n.has(t))return n.get(t);var o=r.apply(this,e);return a.cache=n.set(t,o)||n,o};return a.cache=new(n.Cache||e),a}return n.Cache=e,pl=n,pl}var gl,_l;function vl(){if(_l)return gl;_l=1;var e=hl(),t=500;function n(n){var r=e(n,function(e){return i.size===t&&i.clear(),e}),i=r.cache;return r}return gl=n,gl}var yl,bl;function xl(){if(bl)return yl;bl=1;var e=vl(),t=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,n=/\\(\\)?/g;return yl=e(function(e){var r=[];return e.charCodeAt(0)===46&&r.push(``),e.replace(t,function(e,t,i,a){r.push(i?a.replace(n,`$1`):t||e)}),r}),yl}var Sl,Cl;function wl(){if(Cl)return Sl;Cl=1;function e(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}return Sl=e,Sl}var Tl,El;function Dl(){if(El)return Tl;El=1;var e=Dn(),t=wl(),n=K(),r=ll(),i=e?e.prototype:void 0,a=i?i.toString:void 0;function o(e){if(typeof e==`string`)return e;if(n(e))return t(e,o)+``;if(r(e))return a?a.call(e):``;var i=e+``;return i==`0`&&1/e==-1/0?`-0`:i}return Tl=o,Tl}var Ol,kl;function Al(){if(kl)return Ol;kl=1;var e=Dl();function t(t){return t==null?``:e(t)}return Ol=t,Ol}var jl,Ml;function Nl(){if(Ml)return jl;Ml=1;var e=K(),t=fl(),n=xl(),r=Al();function i(i,a){return e(i)?i:t(i,a)?[i]:n(r(i))}return jl=i,jl}var Pl,Fl;function Il(){if(Fl)return Pl;Fl=1;var e=ll();function t(t){if(typeof t==`string`||e(t))return t;var n=t+``;return n==`0`&&1/t==-1/0?`-0`:n}return Pl=t,Pl}var Ll,Rl;function zl(){if(Rl)return Ll;Rl=1;var e=Nl(),t=Il();function n(n,r){r=e(r,n);for(var i=0,a=r.length;n!=null&&i<a;)n=n[t(r[i++])];return i&&i==a?n:void 0}return Ll=n,Ll}var Bl,Vl;function Hl(){if(Vl)return Bl;Vl=1;var e=zl();function t(t,n,r){var i=t==null?void 0:e(t,n);return i===void 0?r:i}return Bl=t,Bl}var Ul,Wl;function Gl(){if(Wl)return Ul;Wl=1;function e(e,t){return e!=null&&t in Object(e)}return Ul=e,Ul}var Kl,ql;function Jl(){if(ql)return Kl;ql=1;var e=Nl(),t=ki(),n=K(),r=Bi(),i=Ui(),a=Il();function o(o,s,c){s=e(s,o);for(var l=-1,u=s.length,d=!1;++l<u;){var f=a(s[l]);if(!(d=o!=null&&c(o,f)))break;o=o[f]}return d||++l!=u?d:(u=o==null?0:o.length,!!u&&i(u)&&r(f,u)&&(n(o)||t(o)))}return Kl=o,Kl}var Yl,Xl;function Zl(){if(Xl)return Yl;Xl=1;var e=Gl(),t=Jl();function n(n,r){return n!=null&&t(n,r,e)}return Yl=n,Yl}var Ql,$l;function eu(){if($l)return Ql;$l=1;var e=Gc(),t=Hl(),n=Zl(),r=fl(),i=Zc(),a=rl(),o=Il(),s=1,c=2;function l(l,u){return r(l)&&i(u)?a(o(l),u):function(r){var i=t(r,l);return i===void 0&&i===u?n(r,l):e(u,i,s|c)}}return Ql=l,Ql}var tu,nu;function ru(){if(nu)return tu;nu=1;function e(e){return function(t){return t?.[e]}}return tu=e,tu}var iu,au;function ou(){if(au)return iu;au=1;var e=zl();function t(t){return function(n){return e(n,t)}}return iu=t,iu}var su,cu;function lu(){if(cu)return su;cu=1;var e=ru(),t=ou(),n=fl(),r=Il();function i(i){return n(i)?e(r(i)):t(i)}return su=i,su}var uu,du;function Y(){if(du)return uu;du=1;var e=ol(),t=eu(),n=Zs(),r=K(),i=lu();function a(a){return typeof a==`function`?a:a==null?n:typeof a==`object`?r(a)?t(a[0],a[1]):e(a):i(a)}return uu=a,uu}var fu,pu;function mu(){if(pu)return fu;pu=1;var e=Wa(),t=lc(),n=Y(),r=K();function i(i,a){return(r(i)?e:t)(i,n(a,3))}return fu=i,fu}var hu,gu;function _u(){if(gu)return hu;gu=1;var e=Object.prototype.hasOwnProperty;function t(t,n){return t!=null&&e.call(t,n)}return hu=t,hu}var vu,yu;function bu(){if(yu)return vu;yu=1;var e=_u(),t=Jl();function n(n,r){return n!=null&&t(n,r,e)}return vu=n,vu}var xu,Su;function Cu(){if(Su)return xu;Su=1;var e=ga(),t=Io(),n=ki(),r=K(),i=q(),a=Li(),o=sa(),s=ta(),c=`[object Map]`,l=`[object Set]`,u=Object.prototype.hasOwnProperty;function d(d){if(d==null)return!0;if(i(d)&&(r(d)||typeof d==`string`||typeof d.splice==`function`||a(d)||s(d)||n(d)))return!d.length;var f=t(d);if(f==c||f==l)return!d.size;if(o(d))return!e(d).length;for(var p in d)if(u.call(d,p))return!1;return!0}return xu=d,xu}var wu,Tu;function Eu(){if(Tu)return wu;Tu=1;function e(e){return e===void 0}return wu=e,wu}var Du,Ou;function ku(){if(Ou)return Du;Ou=1;var e=Js(),t=q();function n(n,r){var i=-1,a=t(n)?Array(n.length):[];return e(n,function(e,t,n){a[++i]=r(e,t,n)}),a}return Du=n,Du}var Au,ju;function Mu(){if(ju)return Au;ju=1;var e=wl(),t=Y(),n=ku(),r=K();function i(i,a){return(r(i)?e:n)(i,t(a,3))}return Au=i,Au}var Nu,Pu;function Fu(){if(Pu)return Nu;Pu=1;function e(e,t,n,r){var i=-1,a=e==null?0:e.length;for(r&&a&&(n=e[++i]);++i<a;)n=t(n,e[i],i,e);return n}return Nu=e,Nu}var Iu,Lu;function Ru(){if(Lu)return Iu;Lu=1;function e(e,t,n,r,i){return i(e,function(e,i,a){n=r?(r=!1,e):t(n,e,i,a)}),n}return Iu=e,Iu}var zu,Bu;function Vu(){if(Bu)return zu;Bu=1;var e=Fu(),t=Js(),n=Y(),r=Ru(),i=K();function a(a,o,s){var c=i(a)?e:r,l=arguments.length<3;return c(a,n(o,4),s,l,t)}return zu=a,zu}var Hu,Uu;function Wu(){if(Uu)return Hu;Uu=1;var e=H(),t=K(),n=G(),r=`[object String]`;function i(i){return typeof i==`string`||!t(i)&&n(i)&&e(i)==r}return Hu=i,Hu}var Gu,Ku;function qu(){return Ku?Gu:(Ku=1,Gu=ru()(`length`),Gu)}var Ju,Yu;function Xu(){if(Yu)return Ju;Yu=1;var e=RegExp(`[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]`);function t(t){return e.test(t)}return Ju=t,Ju}var Zu,Qu;function $u(){if(Qu)return Zu;Qu=1;var e=`\\ud800-\\udfff`,t=`\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff`,n=`\\ufe0e\\ufe0f`,r=`[`+e+`]`,i=`[`+t+`]`,a=`\\ud83c[\\udffb-\\udfff]`,o=`(?:`+i+`|`+a+`)`,s=`[^`+e+`]`,c=`(?:\\ud83c[\\udde6-\\uddff]){2}`,l=`[\\ud800-\\udbff][\\udc00-\\udfff]`,u=`\\u200d`,d=o+`?`,f=`[`+n+`]?`,p=`(?:`+u+`(?:`+[s,c,l].join(`|`)+`)`+f+d+`)*`,m=f+d+p,h=`(?:`+[s+i+`?`,i,c,l,r].join(`|`)+`)`,g=RegExp(a+`(?=`+a+`)|`+h+m,`g`);function _(e){for(var t=g.lastIndex=0;g.test(e);)++t;return t}return Zu=_,Zu}var ed,td;function nd(){if(td)return ed;td=1;var e=qu(),t=Xu(),n=$u();function r(r){return t(r)?n(r):e(r)}return ed=r,ed}var rd,id;function ad(){if(id)return rd;id=1;var e=ga(),t=Io(),n=q(),r=Wu(),i=nd(),a=`[object Map]`,o=`[object Set]`;function s(s){if(s==null)return 0;if(n(s))return r(s)?i(s):s.length;var c=t(s);return c==a||c==o?s.size:e(s).length}return rd=s,rd}var od,sd;function cd(){if(sd)return od;sd=1;var e=oi(),t=ls(),n=Hs(),r=Y(),i=ao(),a=K(),o=Li(),s=Bn(),c=U(),l=ta();function u(u,d,f){var p=a(u),m=p||o(u)||l(u);if(d=r(d,4),f==null){var h=u&&u.constructor;f=m?p?new h:[]:c(u)&&s(h)?t(i(u)):{}}return(m?e:n)(u,function(e,t,n){return d(f,e,t,n)}),f}return od=u,od}var ld,ud;function dd(){if(ud)return ld;ud=1;var e=Dn(),t=ki(),n=K(),r=e?e.isConcatSpreadable:void 0;function i(e){return n(e)||t(e)||!!(r&&e&&e[r])}return ld=i,ld}var fd,pd;function md(){if(pd)return fd;pd=1;var e=no(),t=dd();function n(r,i,a,o,s){var c=-1,l=r.length;for(a||=t,s||=[];++c<l;){var u=r[c];i>0&&a(u)?i>1?n(u,i-1,a,o,s):e(s,u):o||(s[s.length]=u)}return s}return fd=n,fd}var hd,gd;function _d(){if(gd)return hd;gd=1;function e(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}return hd=e,hd}var vd,yd;function bd(){if(yd)return vd;yd=1;var e=_d(),t=Math.max;function n(n,r,i){return r=t(r===void 0?n.length-1:r,0),function(){for(var a=arguments,o=-1,s=t(a.length-r,0),c=Array(s);++o<s;)c[o]=a[r+o];o=-1;for(var l=Array(r+1);++o<r;)l[o]=a[o];return l[r]=i(c),e(n,this,l)}}return vd=n,vd}var xd,Sd;function Cd(){if(Sd)return xd;Sd=1;var e=Ns(),t=li(),n=Zs();return xd=t?function(n,r){return t(n,`toString`,{configurable:!0,enumerable:!1,value:e(r),writable:!0})}:n,xd}var wd,Td;function Ed(){if(Td)return wd;Td=1;var e=800,t=16,n=Date.now;function r(r){var i=0,a=0;return function(){var o=n(),s=t-(o-a);if(a=o,s>0){if(++i>=e)return arguments[0]}else i=0;return r.apply(void 0,arguments)}}return wd=r,wd}var Dd,Od;function kd(){if(Od)return Dd;Od=1;var e=Cd();return Dd=Ed()(e),Dd}var Ad,jd;function Md(){if(jd)return Ad;jd=1;var e=Zs(),t=bd(),n=kd();function r(r,i){return n(t(r,i,e),r+``)}return Ad=r,Ad}var Nd,Pd;function Fd(){if(Pd)return Nd;Pd=1;function e(e,t,n,r){for(var i=e.length,a=n+(r?1:-1);r?a--:++a<i;)if(t(e[a],a,e))return a;return-1}return Nd=e,Nd}var Id,Ld;function Rd(){if(Ld)return Id;Ld=1;function e(e){return e!==e}return Id=e,Id}var zd,Bd;function Vd(){if(Bd)return zd;Bd=1;function e(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}return zd=e,zd}var Hd,Ud;function Wd(){if(Ud)return Hd;Ud=1;var e=Fd(),t=Rd(),n=Vd();function r(r,i,a){return i===i?n(r,i,a):e(r,t,a)}return Hd=r,Hd}var Gd,Kd;function qd(){if(Kd)return Gd;Kd=1;var e=Wd();function t(t,n){return!!(t!=null&&t.length)&&e(t,n,0)>-1}return Gd=t,Gd}var Jd,Yd;function Xd(){if(Yd)return Jd;Yd=1;function e(e,t,n){for(var r=-1,i=e==null?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}return Jd=e,Jd}var Zd,Qd;function $d(){if(Qd)return Zd;Qd=1;function e(){}return Zd=e,Zd}var ef,tf;function nf(){if(tf)return ef;tf=1;var e=Ao(),t=$d(),n=Nc();return ef=e&&1/n(new e([,-0]))[1]==1/0?function(t){return new e(t)}:t,ef}var rf,af;function of(){if(af)return rf;af=1;var e=vc(),t=qd(),n=Xd(),r=wc(),i=nf(),a=Nc(),o=200;function s(s,c,l){var u=-1,d=t,f=s.length,p=!0,m=[],h=m;if(l)p=!1,d=n;else if(f>=o){var g=c?null:i(s);if(g)return a(g);p=!1,d=r,h=new e}else h=c?[]:m;outer:for(;++u<f;){var _=s[u],v=c?c(_):_;if(_=l||_!==0?_:0,p&&v===v){for(var y=h.length;y--;)if(h[y]===v)continue outer;c&&h.push(v),m.push(_)}else d(h,v,l)||(h!==m&&h.push(v),m.push(_))}return m}return rf=s,rf}var sf,cf;function lf(){if(cf)return sf;cf=1;var e=q(),t=G();function n(n){return t(n)&&e(n)}return sf=n,sf}var uf,df;function ff(){if(df)return uf;df=1;var e=md(),t=Md(),n=of(),r=lf();return uf=t(function(t){return n(e(t,1,r,!0))}),uf}var pf,mf;function hf(){if(mf)return pf;mf=1;var e=wl();function t(t,n){return e(n,function(e){return t[e]})}return pf=t,pf}var gf,_f;function vf(){if(_f)return gf;_f=1;var e=hf(),t=J();function n(n){return n==null?[]:e(n,t(n))}return gf=n,gf}var yf,bf;function X(){if(bf)return yf;bf=1;var e;if(typeof It==`function`)try{e={clone:As(),constant:Ns(),each:oc(),filter:mu(),has:bu(),isArray:K(),isEmpty:Cu(),isFunction:Bn(),isUndefined:Eu(),keys:J(),map:Mu(),reduce:Vu(),size:ad(),transform:cd(),union:ff(),values:vf()}}catch{}return e||=window._,yf=e,yf}var xf,Sf;function Cf(){if(Sf)return xf;Sf=1;var e=X();xf=i;var t=`\0`,n=`\0`,r=``;function i(t){this._isDirected=!e.has(t,`directed`)||t.directed,this._isMultigraph=e.has(t,`multigraph`)?t.multigraph:!1,this._isCompound=e.has(t,`compound`)?t.compound:!1,this._label=void 0,this._defaultNodeLabelFn=e.constant(void 0),this._defaultEdgeLabelFn=e.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[n]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}i.prototype._nodeCount=0,i.prototype._edgeCount=0,i.prototype.isDirected=function(){return this._isDirected},i.prototype.isMultigraph=function(){return this._isMultigraph},i.prototype.isCompound=function(){return this._isCompound},i.prototype.setGraph=function(e){return this._label=e,this},i.prototype.graph=function(){return this._label},i.prototype.setDefaultNodeLabel=function(t){return e.isFunction(t)||(t=e.constant(t)),this._defaultNodeLabelFn=t,this},i.prototype.nodeCount=function(){return this._nodeCount},i.prototype.nodes=function(){return e.keys(this._nodes)},i.prototype.sources=function(){var t=this;return e.filter(this.nodes(),function(n){return e.isEmpty(t._in[n])})},i.prototype.sinks=function(){var t=this;return e.filter(this.nodes(),function(n){return e.isEmpty(t._out[n])})},i.prototype.setNodes=function(t,n){var r=arguments,i=this;return e.each(t,function(e){r.length>1?i.setNode(e,n):i.setNode(e)}),this},i.prototype.setNode=function(t,r){return e.has(this._nodes,t)?(arguments.length>1&&(this._nodes[t]=r),this):(this._nodes[t]=arguments.length>1?r:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]=n,this._children[t]={},this._children[n][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)},i.prototype.node=function(e){return this._nodes[e]},i.prototype.hasNode=function(t){return e.has(this._nodes,t)},i.prototype.removeNode=function(t){var n=this;if(e.has(this._nodes,t)){var r=function(e){n.removeEdge(n._edgeObjs[e])};delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],e.each(this.children(t),function(e){n.setParent(e)}),delete this._children[t]),e.each(e.keys(this._in[t]),r),delete this._in[t],delete this._preds[t],e.each(e.keys(this._out[t]),r),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this},i.prototype.setParent=function(t,r){if(!this._isCompound)throw Error(`Cannot set parent in a non-compound graph`);if(e.isUndefined(r))r=n;else{r+=``;for(var i=r;!e.isUndefined(i);i=this.parent(i))if(i===t)throw Error(`Setting `+r+` as parent of `+t+` would create a cycle`);this.setNode(r)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=r,this._children[r][t]=!0,this},i.prototype._removeFromParentsChildList=function(e){delete this._children[this._parent[e]][e]},i.prototype.parent=function(e){if(this._isCompound){var t=this._parent[e];if(t!==n)return t}},i.prototype.children=function(t){if(e.isUndefined(t)&&(t=n),this._isCompound){var r=this._children[t];if(r)return e.keys(r)}else if(t===n)return this.nodes();else if(this.hasNode(t))return[]},i.prototype.predecessors=function(t){var n=this._preds[t];if(n)return e.keys(n)},i.prototype.successors=function(t){var n=this._sucs[t];if(n)return e.keys(n)},i.prototype.neighbors=function(t){var n=this.predecessors(t);if(n)return e.union(n,this.successors(t))},i.prototype.isLeaf=function(e){return(this.isDirected()?this.successors(e):this.neighbors(e)).length===0},i.prototype.filterNodes=function(t){var n=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});n.setGraph(this.graph());var r=this;e.each(this._nodes,function(e,r){t(r)&&n.setNode(r,e)}),e.each(this._edgeObjs,function(e){n.hasNode(e.v)&&n.hasNode(e.w)&&n.setEdge(e,r.edge(e))});var i={};function a(e){var t=r.parent(e);return t===void 0||n.hasNode(t)?(i[e]=t,t):t in i?i[t]:a(t)}return this._isCompound&&e.each(n.nodes(),function(e){n.setParent(e,a(e))}),n},i.prototype.setDefaultEdgeLabel=function(t){return e.isFunction(t)||(t=e.constant(t)),this._defaultEdgeLabelFn=t,this},i.prototype.edgeCount=function(){return this._edgeCount},i.prototype.edges=function(){return e.values(this._edgeObjs)},i.prototype.setPath=function(t,n){var r=this,i=arguments;return e.reduce(t,function(e,t){return i.length>1?r.setEdge(e,t,n):r.setEdge(e,t),t}),this},i.prototype.setEdge=function(){var t,n,r,i,o=!1,l=arguments[0];typeof l==`object`&&l&&`v`in l?(t=l.v,n=l.w,r=l.name,arguments.length===2&&(i=arguments[1],o=!0)):(t=l,n=arguments[1],r=arguments[3],arguments.length>2&&(i=arguments[2],o=!0)),t=``+t,n=``+n,e.isUndefined(r)||(r=``+r);var u=s(this._isDirected,t,n,r);if(e.has(this._edgeLabels,u))return o&&(this._edgeLabels[u]=i),this;if(!e.isUndefined(r)&&!this._isMultigraph)throw Error(`Cannot set a named edge when isMultigraph = false`);this.setNode(t),this.setNode(n),this._edgeLabels[u]=o?i:this._defaultEdgeLabelFn(t,n,r);var d=c(this._isDirected,t,n,r);return t=d.v,n=d.w,Object.freeze(d),this._edgeObjs[u]=d,a(this._preds[n],t),a(this._sucs[t],n),this._in[n][u]=d,this._out[t][u]=d,this._edgeCount++,this},i.prototype.edge=function(e,t,n){var r=arguments.length===1?l(this._isDirected,arguments[0]):s(this._isDirected,e,t,n);return this._edgeLabels[r]},i.prototype.hasEdge=function(t,n,r){var i=arguments.length===1?l(this._isDirected,arguments[0]):s(this._isDirected,t,n,r);return e.has(this._edgeLabels,i)},i.prototype.removeEdge=function(e,t,n){var r=arguments.length===1?l(this._isDirected,arguments[0]):s(this._isDirected,e,t,n),i=this._edgeObjs[r];return i&&(e=i.v,t=i.w,delete this._edgeLabels[r],delete this._edgeObjs[r],o(this._preds[t],e),o(this._sucs[e],t),delete this._in[t][r],delete this._out[e][r],this._edgeCount--),this},i.prototype.inEdges=function(t,n){var r=this._in[t];if(r){var i=e.values(r);return n?e.filter(i,function(e){return e.v===n}):i}},i.prototype.outEdges=function(t,n){var r=this._out[t];if(r){var i=e.values(r);return n?e.filter(i,function(e){return e.w===n}):i}},i.prototype.nodeEdges=function(e,t){var n=this.inEdges(e,t);if(n)return n.concat(this.outEdges(e,t))};function a(e,t){e[t]?e[t]++:e[t]=1}function o(e,t){--e[t]||delete e[t]}function s(n,i,a,o){var s=``+i,c=``+a;if(!n&&s>c){var l=s;s=c,c=l}return s+r+c+r+(e.isUndefined(o)?t:o)}function c(e,t,n,r){var i=``+t,a=``+n;if(!e&&i>a){var o=i;i=a,a=o}var s={v:i,w:a};return r&&(s.name=r),s}function l(e,t){return s(e,t.v,t.w,t.name)}return xf}var wf,Tf;function Ef(){return Tf?wf:(Tf=1,wf=`2.1.8`,wf)}var Df,Of;function kf(){return Of?Df:(Of=1,Df={Graph:Cf(),version:Ef()},Df)}var Af,jf;function Mf(){if(jf)return Af;jf=1;var e=X(),t=Cf();Af={write:n,read:a};function n(t){var n={options:{directed:t.isDirected(),multigraph:t.isMultigraph(),compound:t.isCompound()},nodes:r(t),edges:i(t)};return e.isUndefined(t.graph())||(n.value=e.clone(t.graph())),n}function r(t){return e.map(t.nodes(),function(n){var r=t.node(n),i=t.parent(n),a={v:n};return e.isUndefined(r)||(a.value=r),e.isUndefined(i)||(a.parent=i),a})}function i(t){return e.map(t.edges(),function(n){var r=t.edge(n),i={v:n.v,w:n.w};return e.isUndefined(n.name)||(i.name=n.name),e.isUndefined(r)||(i.value=r),i})}function a(n){var r=new t(n.options).setGraph(n.value);return e.each(n.nodes,function(e){r.setNode(e.v,e.value),e.parent&&r.setParent(e.v,e.parent)}),e.each(n.edges,function(e){r.setEdge({v:e.v,w:e.w,name:e.name},e.value)}),r}return Af}var Nf,Pf;function Ff(){if(Pf)return Nf;Pf=1;var e=X();Nf=t;function t(t){var n={},r=[],i;function a(r){e.has(n,r)||(n[r]=!0,i.push(r),e.each(t.successors(r),a),e.each(t.predecessors(r),a))}return e.each(t.nodes(),function(e){i=[],a(e),i.length&&r.push(i)}),r}return Nf}var If,Lf;function Rf(){if(Lf)return If;Lf=1;var e=X();If=t;function t(){this._arr=[],this._keyIndices={}}return t.prototype.size=function(){return this._arr.length},t.prototype.keys=function(){return this._arr.map(function(e){return e.key})},t.prototype.has=function(t){return e.has(this._keyIndices,t)},t.prototype.priority=function(e){var t=this._keyIndices[e];if(t!==void 0)return this._arr[t].priority},t.prototype.min=function(){if(this.size()===0)throw Error(`Queue underflow`);return this._arr[0].key},t.prototype.add=function(t,n){var r=this._keyIndices;if(t=String(t),!e.has(r,t)){var i=this._arr,a=i.length;return r[t]=a,i.push({key:t,priority:n}),this._decrease(a),!0}return!1},t.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},t.prototype.decrease=function(e,t){var n=this._keyIndices[e];if(t>this._arr[n].priority)throw Error(`New priority is greater than current priority. Key: `+e+` Old: `+this._arr[n].priority+` New: `+t);this._arr[n].priority=t,this._decrease(n)},t.prototype._heapify=function(e){var t=this._arr,n=2*e,r=n+1,i=e;n<t.length&&(i=t[n].priority<t[i].priority?n:i,r<t.length&&(i=t[r].priority<t[i].priority?r:i),i!==e&&(this._swap(e,i),this._heapify(i)))},t.prototype._decrease=function(e){for(var t=this._arr,n=t[e].priority,r;e!==0&&(r=e>>1,!(t[r].priority<n));)this._swap(e,r),e=r},t.prototype._swap=function(e,t){var n=this._arr,r=this._keyIndices,i=n[e],a=n[t];n[e]=a,n[t]=i,r[a.key]=e,r[i.key]=t},If}var zf,Bf;function Vf(){if(Bf)return zf;Bf=1;var e=X(),t=Rf();zf=r;var n=e.constant(1);function r(e,t,r,a){return i(e,String(t),r||n,a||function(t){return e.outEdges(t)})}function i(e,n,r,i){var a={},o=new t,s,c,l=function(e){var t=e.v===s?e.w:e.v,n=a[t],i=r(e),l=c.distance+i;if(i<0)throw Error(`dijkstra does not allow negative edge weights. Bad edge: `+e+` Weight: `+i);l<n.distance&&(n.distance=l,n.predecessor=s,o.decrease(t,l))};for(e.nodes().forEach(function(e){var t=e===n?0:1/0;a[e]={distance:t},o.add(e,t)});o.size()>0&&(s=o.removeMin(),c=a[s],c.distance!==1/0);)i(s).forEach(l);return a}return zf}var Hf,Uf;function Wf(){if(Uf)return Hf;Uf=1;var e=Vf(),t=X();Hf=n;function n(n,r,i){return t.transform(n.nodes(),function(t,a){t[a]=e(n,a,r,i)},{})}return Hf}var Gf,Kf;function qf(){if(Kf)return Gf;Kf=1;var e=X();Gf=t;function t(t){var n=0,r=[],i={},a=[];function o(s){var c=i[s]={onStack:!0,lowlink:n,index:n++};if(r.push(s),t.successors(s).forEach(function(t){e.has(i,t)?i[t].onStack&&(c.lowlink=Math.min(c.lowlink,i[t].index)):(o(t),c.lowlink=Math.min(c.lowlink,i[t].lowlink))}),c.lowlink===c.index){var l=[],u;do u=r.pop(),i[u].onStack=!1,l.push(u);while(s!==u);a.push(l)}}return t.nodes().forEach(function(t){e.has(i,t)||o(t)}),a}return Gf}var Jf,Yf;function Xf(){if(Yf)return Jf;Yf=1;var e=X(),t=qf();Jf=n;function n(n){return e.filter(t(n),function(e){return e.length>1||e.length===1&&n.hasEdge(e[0],e[0])})}return Jf}var Zf,Qf;function $f(){if(Qf)return Zf;Qf=1;var e=X();Zf=n;var t=e.constant(1);function n(e,n,i){return r(e,n||t,i||function(t){return e.outEdges(t)})}function r(e,t,n){var r={},i=e.nodes();return i.forEach(function(e){r[e]={},r[e][e]={distance:0},i.forEach(function(t){e!==t&&(r[e][t]={distance:1/0})}),n(e).forEach(function(n){var i=n.v===e?n.w:n.v,a=t(n);r[e][i]={distance:a,predecessor:e}})}),i.forEach(function(e){var t=r[e];i.forEach(function(n){var a=r[n];i.forEach(function(n){var r=a[e],i=t[n],o=a[n],s=r.distance+i.distance;s<o.distance&&(o.distance=s,o.predecessor=i.predecessor)})})}),r}return Zf}var ep,tp;function np(){if(tp)return ep;tp=1;var e=X();ep=t,t.CycleException=n;function t(t){var r={},i={},a=[];function o(s){if(e.has(i,s))throw new n;e.has(r,s)||(i[s]=!0,r[s]=!0,e.each(t.predecessors(s),o),delete i[s],a.push(s))}if(e.each(t.sinks(),o),e.size(r)!==t.nodeCount())throw new n;return a}function n(){}return n.prototype=Error(),ep}var rp,ip;function ap(){if(ip)return rp;ip=1;var e=np();rp=t;function t(t){try{e(t)}catch(t){if(t instanceof e.CycleException)return!1;throw t}return!0}return rp}var op,sp;function cp(){if(sp)return op;sp=1;var e=X();op=t;function t(t,r,i){e.isArray(r)||(r=[r]);var a=(t.isDirected()?t.successors:t.neighbors).bind(t),o=[],s={};return e.each(r,function(e){if(!t.hasNode(e))throw Error(`Graph does not have node: `+e);n(t,e,i===`post`,s,a,o)}),o}function n(t,r,i,a,o,s){e.has(a,r)||(a[r]=!0,i||s.push(r),e.each(o(r),function(e){n(t,e,i,a,o,s)}),i&&s.push(r))}return op}var lp,up;function dp(){if(up)return lp;up=1;var e=cp();lp=t;function t(t,n){return e(t,n,`post`)}return lp}var fp,pp;function mp(){if(pp)return fp;pp=1;var e=cp();fp=t;function t(t,n){return e(t,n,`pre`)}return fp}var hp,gp;function _p(){if(gp)return hp;gp=1;var e=X(),t=Cf(),n=Rf();hp=r;function r(r,i){var a=new t,o={},s=new n,c;function l(e){var t=e.v===c?e.w:e.v,n=s.priority(t);if(n!==void 0){var r=i(e);r<n&&(o[t]=c,s.decrease(t,r))}}if(r.nodeCount()===0)return a;e.each(r.nodes(),function(e){s.add(e,1/0),a.setNode(e)}),s.decrease(r.nodes()[0],0);for(var u=!1;s.size()>0;){if(c=s.removeMin(),e.has(o,c))a.setEdge(c,o[c]);else if(u)throw Error(`Input graph is not connected: `+r);else u=!0;r.nodeEdges(c).forEach(l)}return a}return hp}var vp,yp;function bp(){return yp?vp:(yp=1,vp={components:Ff(),dijkstra:Vf(),dijkstraAll:Wf(),findCycles:Xf(),floydWarshall:$f(),isAcyclic:ap(),postorder:dp(),preorder:mp(),prim:_p(),tarjan:qf(),topsort:np()},vp)}var xp,Sp;function Cp(){if(Sp)return xp;Sp=1;var e=kf();return xp={Graph:e.Graph,json:Mf(),alg:bp(),version:e.version},xp}var wp,Tp;function Z(){if(Tp)return wp;Tp=1;var e;if(typeof It==`function`)try{e=Cp()}catch{}return e||=window.graphlib,wp=e,wp}var Ep,Dp;function Op(){if(Dp)return Ep;Dp=1;var e=Ds(),t=1,n=4;function r(r){return e(r,t|n)}return Ep=r,Ep}var kp,Ap;function jp(){if(Ap)return kp;Ap=1;var e=Ht(),t=q(),n=Bi(),r=U();function i(i,a,o){if(!r(o))return!1;var s=typeof a;return(s==`number`?t(o)&&n(a,o.length):s==`string`&&a in o)?e(o[a],i):!1}return kp=i,kp}var Mp,Np;function Pp(){if(Np)return Mp;Np=1;var e=Md(),t=Ht(),n=jp(),r=Ma(),i=Object.prototype,a=i.hasOwnProperty;return Mp=e(function(e,o){e=Object(e);var s=-1,c=o.length,l=c>2?o[2]:void 0;for(l&&n(o[0],o[1],l)&&(c=1);++s<c;)for(var u=o[s],d=r(u),f=-1,p=d.length;++f<p;){var m=d[f],h=e[m];(h===void 0||t(h,i[m])&&!a.call(e,m))&&(e[m]=u[m])}return e}),Mp}var Fp,Ip;function Lp(){if(Ip)return Fp;Ip=1;var e=Y(),t=q(),n=J();function r(r){return function(i,a,o){var s=Object(i);if(!t(i)){var c=e(a,3);i=n(i),a=function(e){return c(s[e],e,s)}}var l=r(i,a,o);return l>-1?s[c?i[l]:l]:void 0}}return Fp=r,Fp}var Rp,zp;function Bp(){if(zp)return Rp;zp=1;var e=/\s/;function t(t){for(var n=t.length;n--&&e.test(t.charAt(n)););return n}return Rp=t,Rp}var Vp,Hp;function Up(){if(Hp)return Vp;Hp=1;var e=Bp(),t=/^\s+/;function n(n){return n&&n.slice(0,e(n)+1).replace(t,``)}return Vp=n,Vp}var Wp,Gp;function Kp(){if(Gp)return Wp;Gp=1;var e=Up(),t=U(),n=ll(),r=NaN,i=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,o=/^0o[0-7]+$/i,s=parseInt;function c(c){if(typeof c==`number`)return c;if(n(c))return r;if(t(c)){var l=typeof c.valueOf==`function`?c.valueOf():c;c=t(l)?l+``:l}if(typeof c!=`string`)return c===0?c:+c;c=e(c);var u=a.test(c);return u||o.test(c)?s(c.slice(2),u?2:8):i.test(c)?r:+c}return Wp=c,Wp}var qp,Jp;function Yp(){if(Jp)return qp;Jp=1;var e=Kp(),t=1/0,n=17976931348623157e292;function r(r){return r?(r=e(r),r===t||r===-t?(r<0?-1:1)*n:r===r?r:0):r===0?r:0}return qp=r,qp}var Xp,Zp;function Qp(){if(Zp)return Xp;Zp=1;var e=Yp();function t(t){var n=e(t),r=n%1;return n===n?r?n-r:n:0}return Xp=t,Xp}var $p,em;function tm(){if(em)return $p;em=1;var e=Fd(),t=Y(),n=Qp(),r=Math.max;function i(i,a,o){var s=i==null?0:i.length;if(!s)return-1;var c=o==null?0:n(o);return c<0&&(c=r(s+c,0)),e(i,t(a,3),c)}return $p=i,$p}var nm,rm;function im(){return rm?nm:(rm=1,nm=Lp()(tm()),nm)}var am,om;function sm(){if(om)return am;om=1;var e=md();function t(t){return t!=null&&t.length?e(t,1):[]}return am=t,am}var cm,lm;function um(){if(lm)return cm;lm=1;var e=zs(),t=ec(),n=Ma();function r(r,i){return r==null?r:e(r,t(i),n)}return cm=r,cm}var dm,fm;function pm(){if(fm)return dm;fm=1;function e(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}return dm=e,dm}var mm,hm;function gm(){if(hm)return mm;hm=1;var e=fi(),t=Hs(),n=Y();function r(r,i){var a={};return i=n(i,3),t(r,function(t,n,r){e(a,n,i(t,n,r))}),a}return mm=r,mm}var _m,vm;function ym(){if(vm)return _m;vm=1;var e=ll();function t(t,n,r){for(var i=-1,a=t.length;++i<a;){var o=t[i],s=n(o);if(s!=null&&(c===void 0?s===s&&!e(s):r(s,c)))var c=s,l=o}return l}return _m=t,_m}var bm,xm;function Sm(){if(xm)return bm;xm=1;function e(e,t){return e>t}return bm=e,bm}var Cm,wm;function Tm(){if(wm)return Cm;wm=1;var e=ym(),t=Sm(),n=Zs();function r(r){return r&&r.length?e(r,n,t):void 0}return Cm=r,Cm}var Em,Dm;function Om(){if(Dm)return Em;Dm=1;var e=fi(),t=Ht();function n(n,r,i){(i!==void 0&&!t(n[r],i)||i===void 0&&!(r in n))&&e(n,r,i)}return Em=n,Em}var km,Am;function jm(){if(Am)return km;Am=1;var e=H(),t=ao(),n=G(),r=`[object Object]`,i=Function.prototype,a=Object.prototype,o=i.toString,s=a.hasOwnProperty,c=o.call(Object);function l(i){if(!n(i)||e(i)!=r)return!1;var a=t(i);if(a===null)return!0;var l=s.call(a,`constructor`)&&a.constructor;return typeof l==`function`&&l instanceof l&&o.call(l)==c}return km=l,km}var Mm,Nm;function Pm(){if(Nm)return Mm;Nm=1;function e(e,t){if((t!==`constructor`||typeof e[t]!=`function`)&&t!=`__proto__`)return e[t]}return Mm=e,Mm}var Fm,Im;function Lm(){if(Im)return Fm;Im=1;var e=vi(),t=Ma();function n(n){return e(n,t(n))}return Fm=n,Fm}var Rm,zm;function Bm(){if(zm)return Rm;zm=1;var e=Om(),t=Ra(),n=rs(),r=Va(),i=fs(),a=ki(),o=K(),s=lf(),c=Li(),l=Bn(),u=U(),d=jm(),f=ta(),p=Pm(),m=Lm();function h(h,g,_,v,y,b,x){var S=p(h,_),C=p(g,_),w=x.get(C);if(w){e(h,_,w);return}var T=b?b(S,C,_+``,h,g,x):void 0,E=T===void 0;if(E){var D=o(C),O=!D&&c(C),k=!D&&!O&&f(C);T=C,D||O||k?o(S)?T=S:s(S)?T=r(S):O?(E=!1,T=t(C,!0)):k?(E=!1,T=n(C,!0)):T=[]:d(C)||a(C)?(T=S,a(S)?T=m(S):(!u(S)||l(S))&&(T=i(C))):E=!1}E&&(x.set(C,T),y(T,C,v,b,x),x.delete(C)),e(h,_,T)}return Rm=h,Rm}var Vm,Hm;function Um(){if(Hm)return Vm;Hm=1;var e=ri(),t=Om(),n=zs(),r=Bm(),i=U(),a=Ma(),o=Pm();function s(c,l,u,d,f){c!==l&&n(l,function(n,a){if(f||=new e,i(n))r(c,l,a,u,s,d,f);else{var p=d?d(o(c,a),n,a+``,c,l,f):void 0;p===void 0&&(p=n),t(c,a,p)}},a)}return Vm=s,Vm}var Wm,Gm;function Km(){if(Gm)return Wm;Gm=1;var e=Md(),t=jp();function n(n){return e(function(e,r){var i=-1,a=r.length,o=a>1?r[a-1]:void 0,s=a>2?r[2]:void 0;for(o=n.length>3&&typeof o==`function`?(a--,o):void 0,s&&t(r[0],r[1],s)&&(o=a<3?void 0:o,a=1),e=Object(e);++i<a;){var c=r[i];c&&n(e,c,i,o)}return e})}return Wm=n,Wm}var qm,Jm;function Ym(){if(Jm)return qm;Jm=1;var e=Um();return qm=Km()(function(t,n,r){e(t,n,r)}),qm}var Xm,Zm;function Qm(){if(Zm)return Xm;Zm=1;function e(e,t){return e<t}return Xm=e,Xm}var $m,eh;function th(){if(eh)return $m;eh=1;var e=ym(),t=Qm(),n=Zs();function r(r){return r&&r.length?e(r,n,t):void 0}return $m=r,$m}var nh,rh;function ih(){if(rh)return nh;rh=1;var e=ym(),t=Y(),n=Qm();function r(r,i){return r&&r.length?e(r,t(i,2),n):void 0}return nh=r,nh}var ah,oh;function sh(){if(oh)return ah;oh=1;var e=V();return ah=function(){return e.Date.now()},ah}var ch,lh;function uh(){if(lh)return ch;lh=1;var e=hi(),t=Nl(),n=Bi(),r=U(),i=Il();function a(a,o,s,c){if(!r(a))return a;o=t(o,a);for(var l=-1,u=o.length,d=u-1,f=a;f!=null&&++l<u;){var p=i(o[l]),m=s;if(p===`__proto__`||p===`constructor`||p===`prototype`)return a;if(l!=d){var h=f[p];m=c?c(h,p,f):void 0,m===void 0&&(m=r(h)?h:n(o[l+1])?[]:{})}e(f,p,m),f=f[p]}return a}return ch=a,ch}var dh,fh;function ph(){if(fh)return dh;fh=1;var e=zl(),t=uh(),n=Nl();function r(r,i,a){for(var o=-1,s=i.length,c={};++o<s;){var l=i[o],u=e(r,l);a(u,l)&&t(c,n(l,r),u)}return c}return dh=r,dh}var mh,hh;function gh(){if(hh)return mh;hh=1;var e=ph(),t=Zl();function n(n,r){return e(n,r,function(e,r){return t(n,r)})}return mh=n,mh}var _h,vh;function yh(){if(vh)return _h;vh=1;var e=sm(),t=bd(),n=kd();function r(r){return n(t(r,void 0,e),r+``)}return _h=r,_h}var bh,xh;function Sh(){if(xh)return bh;xh=1;var e=gh();return bh=yh()(function(t,n){return t==null?{}:e(t,n)}),bh}var Ch,wh;function Th(){if(wh)return Ch;wh=1;var e=Math.ceil,t=Math.max;function n(n,r,i,a){for(var o=-1,s=t(e((r-n)/(i||1)),0),c=Array(s);s--;)c[a?s:++o]=n,n+=i;return c}return Ch=n,Ch}var Eh,Dh;function Oh(){if(Dh)return Eh;Dh=1;var e=Th(),t=jp(),n=Yp();function r(r){return function(i,a,o){return o&&typeof o!=`number`&&t(i,a,o)&&(a=o=void 0),i=n(i),a===void 0?(a=i,i=0):a=n(a),o=o===void 0?i<a?1:-1:n(o),e(i,a,o,r)}}return Eh=r,Eh}var kh,Ah;function jh(){return Ah?kh:(Ah=1,kh=Oh()(),kh)}var Mh,Nh;function Ph(){if(Nh)return Mh;Nh=1;function e(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}return Mh=e,Mh}var Fh,Ih;function Lh(){if(Ih)return Fh;Ih=1;var e=ll();function t(t,n){if(t!==n){var r=t!==void 0,i=t===null,a=t===t,o=e(t),s=n!==void 0,c=n===null,l=n===n,u=e(n);if(!c&&!u&&!o&&t>n||o&&s&&l&&!c&&!u||i&&s&&l||!r&&l||!a)return 1;if(!i&&!o&&!u&&t<n||u&&r&&a&&!i&&!o||c&&r&&a||!s&&a||!l)return-1}return 0}return Fh=t,Fh}var Rh,zh;function Bh(){if(zh)return Rh;zh=1;var e=Lh();function t(t,n,r){for(var i=-1,a=t.criteria,o=n.criteria,s=a.length,c=r.length;++i<s;){var l=e(a[i],o[i]);if(l)return i>=c?l:l*(r[i]==`desc`?-1:1)}return t.index-n.index}return Rh=t,Rh}var Vh,Hh;function Uh(){if(Hh)return Vh;Hh=1;var e=wl(),t=zl(),n=Y(),r=ku(),i=Ph(),a=Yi(),o=Bh(),s=Zs(),c=K();function l(l,u,d){u=u.length?e(u,function(e){return c(e)?function(n){return t(n,e.length===1?e[0]:e)}:e}):[s];var f=-1;return u=e(u,a(n)),i(r(l,function(t,n,r){return{criteria:e(u,function(e){return e(t)}),index:++f,value:t}}),function(e,t){return o(e,t,d)})}return Vh=l,Vh}var Wh,Gh;function Kh(){if(Gh)return Wh;Gh=1;var e=md(),t=Uh(),n=Md(),r=jp();return Wh=n(function(n,i){if(n==null)return[];var a=i.length;return a>1&&r(n,i[0],i[1])?i=[]:a>2&&r(i[0],i[1],i[2])&&(i=[i[0]]),t(n,e(i,1),[])}),Wh}var qh,Jh;function Yh(){if(Jh)return qh;Jh=1;var e=Al(),t=0;function n(n){var r=++t;return e(n)+r}return qh=n,qh}var Xh,Zh;function Qh(){if(Zh)return Xh;Zh=1;function e(e,t,n){for(var r=-1,i=e.length,a=t.length,o={};++r<i;){var s=r<a?t[r]:void 0;n(o,e[r],s)}return o}return Xh=e,Xh}var $h,eg;function tg(){if(eg)return $h;eg=1;var e=hi(),t=Qh();function n(n,r){return t(n||[],r||[],e)}return $h=n,$h}var ng,rg;function Q(){if(rg)return ng;rg=1;var e;if(typeof It==`function`)try{e={cloneDeep:Op(),constant:Ns(),defaults:Pp(),each:oc(),filter:mu(),find:im(),flatten:sm(),forEach:rc(),forIn:um(),has:bu(),isUndefined:Eu(),last:pm(),map:Mu(),mapValues:gm(),max:Tm(),merge:Ym(),min:th(),minBy:ih(),now:sh(),pick:Sh(),range:jh(),reduce:Vu(),sortBy:Kh(),uniqueId:Yh(),values:vf(),zipObject:tg()}}catch{}return e||=window._,ng=e,ng}var ig,ag;function og(){if(ag)return ig;ag=1,ig=e;function e(){var e={};e._next=e._prev=e,this._sentinel=e}e.prototype.dequeue=function(){var e=this._sentinel,n=e._prev;if(n!==e)return t(n),n},e.prototype.enqueue=function(e){var n=this._sentinel;e._prev&&e._next&&t(e),e._next=n._next,n._next._prev=e,n._next=e,e._prev=n},e.prototype.toString=function(){for(var e=[],t=this._sentinel,r=t._prev;r!==t;)e.push(JSON.stringify(r,n)),r=r._prev;return`[`+e.join(`, `)+`]`};function t(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function n(e,t){if(e!==`_next`&&e!==`_prev`)return t}return ig}var sg,cg;function lg(){if(cg)return sg;cg=1;var e=Q(),t=Z().Graph,n=og();sg=i;var r=e.constant(1);function i(t,n){if(t.nodeCount()<=1)return[];var i=s(t,n||r),o=a(i.graph,i.buckets,i.zeroIdx);return e.flatten(e.map(o,function(e){return t.outEdges(e.v,e.w)}),!0)}function a(e,t,n){for(var r=[],i=t[t.length-1],a=t[0],s;e.nodeCount();){for(;s=a.dequeue();)o(e,t,n,s);for(;s=i.dequeue();)o(e,t,n,s);if(e.nodeCount()){for(var c=t.length-2;c>0;--c)if(s=t[c].dequeue(),s){r=r.concat(o(e,t,n,s,!0));break}}}return r}function o(t,n,r,i,a){var o=a?[]:void 0;return e.forEach(t.inEdges(i.v),function(e){var i=t.edge(e),s=t.node(e.v);a&&o.push({v:e.v,w:e.w}),s.out-=i,c(n,r,s)}),e.forEach(t.outEdges(i.v),function(e){var i=t.edge(e),a=e.w,o=t.node(a);o.in-=i,c(n,r,o)}),t.removeNode(i.v),o}function s(r,i){var a=new t,o=0,s=0;e.forEach(r.nodes(),function(e){a.setNode(e,{v:e,in:0,out:0})}),e.forEach(r.edges(),function(e){var t=a.edge(e.v,e.w)||0,n=i(e),r=t+n;a.setEdge(e.v,e.w,r),s=Math.max(s,a.node(e.v).out+=n),o=Math.max(o,a.node(e.w).in+=n)});var l=e.range(s+o+3).map(function(){return new n}),u=o+1;return e.forEach(a.nodes(),function(e){c(l,u,a.node(e))}),{graph:a,buckets:l,zeroIdx:u}}function c(e,t,n){n.out?n.in?e[n.out-n.in+t].enqueue(n):e[e.length-1].enqueue(n):e[0].enqueue(n)}return sg}var ug,dg;function fg(){if(dg)return ug;dg=1;var e=Q(),t=lg();ug={run:n,undo:i};function n(n){var i=n.graph().acyclicer===`greedy`?t(n,a(n)):r(n);e.forEach(i,function(t){var r=n.edge(t);n.removeEdge(t),r.forwardName=t.name,r.reversed=!0,n.setEdge(t.w,t.v,r,e.uniqueId(`rev`))});function a(e){return function(t){return e.edge(t).weight}}}function r(t){var n=[],r={},i={};function a(o){e.has(i,o)||(i[o]=!0,r[o]=!0,e.forEach(t.outEdges(o),function(t){e.has(r,t.w)?n.push(t):a(t.w)}),delete r[o])}return e.forEach(t.nodes(),a),n}function i(t){e.forEach(t.edges(),function(e){var n=t.edge(e);if(n.reversed){t.removeEdge(e);var r=n.forwardName;delete n.reversed,delete n.forwardName,t.setEdge(e.w,e.v,n,r)}})}return ug}var pg,mg;function $(){if(mg)return pg;mg=1;var e=Q(),t=Z().Graph;pg={addDummyNode:n,simplify:r,asNonCompoundGraph:i,successorWeights:a,predecessorWeights:o,intersectRect:s,buildLayerMatrix:c,normalizeRanks:l,removeEmptyRanks:u,addBorderNode:d,maxRank:f,partition:p,time:m,notime:h};function n(t,n,r,i){var a;do a=e.uniqueId(i);while(t.hasNode(a));return r.dummy=n,t.setNode(a,r),a}function r(n){var r=new t().setGraph(n.graph());return e.forEach(n.nodes(),function(e){r.setNode(e,n.node(e))}),e.forEach(n.edges(),function(e){var t=r.edge(e.v,e.w)||{weight:0,minlen:1},i=n.edge(e);r.setEdge(e.v,e.w,{weight:t.weight+i.weight,minlen:Math.max(t.minlen,i.minlen)})}),r}function i(n){var r=new t({multigraph:n.isMultigraph()}).setGraph(n.graph());return e.forEach(n.nodes(),function(e){n.children(e).length||r.setNode(e,n.node(e))}),e.forEach(n.edges(),function(e){r.setEdge(e,n.edge(e))}),r}function a(t){var n=e.map(t.nodes(),function(n){var r={};return e.forEach(t.outEdges(n),function(e){r[e.w]=(r[e.w]||0)+t.edge(e).weight}),r});return e.zipObject(t.nodes(),n)}function o(t){var n=e.map(t.nodes(),function(n){var r={};return e.forEach(t.inEdges(n),function(e){r[e.v]=(r[e.v]||0)+t.edge(e).weight}),r});return e.zipObject(t.nodes(),n)}function s(e,t){var n=e.x,r=e.y,i=t.x-n,a=t.y-r,o=e.width/2,s=e.height/2;if(!i&&!a)throw Error(`Not possible to find intersection inside of the rectangle`);var c,l;return Math.abs(a)*o>Math.abs(i)*s?(a<0&&(s=-s),c=s*i/a,l=s):(i<0&&(o=-o),c=o,l=o*a/i),{x:n+c,y:r+l}}function c(t){var n=e.map(e.range(f(t)+1),function(){return[]});return e.forEach(t.nodes(),function(r){var i=t.node(r),a=i.rank;e.isUndefined(a)||(n[a][i.order]=r)}),n}function l(t){var n=e.min(e.map(t.nodes(),function(e){return t.node(e).rank}));e.forEach(t.nodes(),function(r){var i=t.node(r);e.has(i,`rank`)&&(i.rank-=n)})}function u(t){var n=e.min(e.map(t.nodes(),function(e){return t.node(e).rank})),r=[];e.forEach(t.nodes(),function(e){var i=t.node(e).rank-n;r[i]||(r[i]=[]),r[i].push(e)});var i=0,a=t.graph().nodeRankFactor;e.forEach(r,function(n,r){e.isUndefined(n)&&r%a!==0?--i:i&&e.forEach(n,function(e){t.node(e).rank+=i})})}function d(e,t,r,i){var a={width:0,height:0};return arguments.length>=4&&(a.rank=r,a.order=i),n(e,`border`,a,t)}function f(t){return e.max(e.map(t.nodes(),function(n){var r=t.node(n).rank;if(!e.isUndefined(r))return r}))}function p(t,n){var r={lhs:[],rhs:[]};return e.forEach(t,function(e){n(e)?r.lhs.push(e):r.rhs.push(e)}),r}function m(t,n){var r=e.now();try{return n()}finally{console.log(t+` time: `+(e.now()-r)+`ms`)}}function h(e,t){return t()}return pg}var hg,gg;function _g(){if(gg)return hg;gg=1;var e=Q(),t=$();hg={run:n,undo:i};function n(t){t.graph().dummyChains=[],e.forEach(t.edges(),function(e){r(t,e)})}function r(e,n){var r=n.v,i=e.node(r).rank,a=n.w,o=e.node(a).rank,s=n.name,c=e.edge(n),l=c.labelRank;if(o!==i+1){e.removeEdge(n);var u,d,f;for(f=0,++i;i<o;++f,++i)c.points=[],d={width:0,height:0,edgeLabel:c,edgeObj:n,rank:i},u=t.addDummyNode(e,`edge`,d,`_d`),i===l&&(d.width=c.width,d.height=c.height,d.dummy=`edge-label`,d.labelpos=c.labelpos),e.setEdge(r,u,{weight:c.weight},s),f===0&&e.graph().dummyChains.push(u),r=u;e.setEdge(r,a,{weight:c.weight},s)}}function i(t){e.forEach(t.graph().dummyChains,function(e){var n=t.node(e),r=n.edgeLabel,i;for(t.setEdge(n.edgeObj,r);n.dummy;)i=t.successors(e)[0],t.removeNode(e),r.points.push({x:n.x,y:n.y}),n.dummy===`edge-label`&&(r.x=n.x,r.y=n.y,r.width=n.width,r.height=n.height),e=i,n=t.node(e)})}return hg}var vg,yg;function bg(){if(yg)return vg;yg=1;var e=Q();vg={longestPath:t,slack:n};function t(t){var n={};function r(i){var a=t.node(i);if(e.has(n,i))return a.rank;n[i]=!0;var o=e.min(e.map(t.outEdges(i),function(e){return r(e.w)-t.edge(e).minlen}));return(o===1/0||o==null)&&(o=0),a.rank=o}e.forEach(t.sources(),r)}function n(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}return vg}var xg,Sg;function Cg(){if(Sg)return xg;Sg=1;var e=Q(),t=Z().Graph,n=bg().slack;xg=r;function r(e){var r=new t({directed:!1}),s=e.nodes()[0],c=e.nodeCount();r.setNode(s,{});for(var l,u;i(r,e)<c;)l=a(r,e),u=r.hasNode(l.v)?n(e,l):-n(e,l),o(r,e,u);return r}function i(t,r){function i(a){e.forEach(r.nodeEdges(a),function(e){var o=e.v,s=a===o?e.w:o;!t.hasNode(s)&&!n(r,e)&&(t.setNode(s,{}),t.setEdge(a,s,{}),i(s))})}return e.forEach(t.nodes(),i),t.nodeCount()}function a(t,r){return e.minBy(r.edges(),function(e){if(t.hasNode(e.v)!==t.hasNode(e.w))return n(r,e)})}function o(t,n,r){e.forEach(t.nodes(),function(e){n.node(e).rank+=r})}return xg}var wg,Tg;function Eg(){if(Tg)return wg;Tg=1;var e=Q(),t=Cg(),n=bg().slack,r=bg().longestPath,i=Z().alg.preorder,a=Z().alg.postorder,o=$().simplify;wg=s,s.initLowLimValues=d,s.initCutValues=c,s.calcCutValue=u,s.leaveEdge=p,s.enterEdge=m,s.exchangeEdges=h;function s(e){e=o(e),r(e);var n=t(e);d(n),c(n,e);for(var i,a;i=p(n);)a=m(n,e,i),h(n,e,i,a)}function c(t,n){var r=a(t,t.nodes());r=r.slice(0,r.length-1),e.forEach(r,function(e){l(t,n,e)})}function l(e,t,n){var r=e.node(n).parent;e.edge(n,r).cutvalue=u(e,t,n)}function u(t,n,r){var i=t.node(r).parent,a=!0,o=n.edge(r,i),s=0;return o||=(a=!1,n.edge(i,r)),s=o.weight,e.forEach(n.nodeEdges(r),function(e){var o=e.v===r,c=o?e.w:e.v;if(c!==i){var l=o===a,u=n.edge(e).weight;if(s+=l?u:-u,_(t,r,c)){var d=t.edge(r,c).cutvalue;s+=l?-d:d}}}),s}function d(e,t){arguments.length<2&&(t=e.nodes()[0]),f(e,{},1,t)}function f(t,n,r,i,a){var o=r,s=t.node(i);return n[i]=!0,e.forEach(t.neighbors(i),function(a){e.has(n,a)||(r=f(t,n,r,a,i))}),s.low=o,s.lim=r++,a?s.parent=a:delete s.parent,r}function p(t){return e.find(t.edges(),function(e){return t.edge(e).cutvalue<0})}function m(t,r,i){var a=i.v,o=i.w;r.hasEdge(a,o)||(a=i.w,o=i.v);var s=t.node(a),c=t.node(o),l=s,u=!1;s.lim>c.lim&&(l=c,u=!0);var d=e.filter(r.edges(),function(e){return u===v(t,t.node(e.v),l)&&u!==v(t,t.node(e.w),l)});return e.minBy(d,function(e){return n(r,e)})}function h(e,t,n,r){var i=n.v,a=n.w;e.removeEdge(i,a),e.setEdge(r.v,r.w,{}),d(e),c(e,t),g(e,t)}function g(t,n){var r=i(t,e.find(t.nodes(),function(e){return!n.node(e).parent}));r=r.slice(1),e.forEach(r,function(e){var r=t.node(e).parent,i=n.edge(e,r),a=!1;i||(i=n.edge(r,e),a=!0),n.node(e).rank=n.node(r).rank+(a?i.minlen:-i.minlen)})}function _(e,t,n){return e.hasEdge(t,n)}function v(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}return wg}var Dg,Og;function kg(){if(Og)return Dg;Og=1;var e=bg().longestPath,t=Cg(),n=Eg();Dg=r;function r(e){switch(e.graph().ranker){case`network-simplex`:o(e);break;case`tight-tree`:a(e);break;case`longest-path`:i(e);break;default:o(e)}}var i=e;function a(n){e(n),t(n)}function o(e){n(e)}return Dg}var Ag,jg;function Mg(){if(jg)return Ag;jg=1;var e=Q();Ag=t;function t(t){var i=r(t);e.forEach(t.graph().dummyChains,function(e){for(var r=t.node(e),a=r.edgeObj,o=n(t,i,a.v,a.w),s=o.path,c=o.lca,l=0,u=s[l],d=!0;e!==a.w;){if(r=t.node(e),d){for(;(u=s[l])!==c&&t.node(u).maxRank<r.rank;)l++;u===c&&(d=!1)}if(!d){for(;l<s.length-1&&t.node(u=s[l+1]).minRank<=r.rank;)l++;u=s[l]}t.setParent(e,u),e=t.successors(e)[0]}})}function n(e,t,n,r){var i=[],a=[],o=Math.min(t[n].low,t[r].low),s=Math.max(t[n].lim,t[r].lim),c=n,l;do c=e.parent(c),i.push(c);while(c&&(t[c].low>o||s>t[c].lim));for(l=c,c=r;(c=e.parent(c))!==l;)a.push(c);return{path:i.concat(a.reverse()),lca:l}}function r(t){var n={},r=0;function i(a){var o=r;e.forEach(t.children(a),i),n[a]={low:o,lim:r++}}return e.forEach(t.children(),i),n}return Ag}var Ng,Pg;function Fg(){if(Pg)return Ng;Pg=1;var e=Q(),t=$();Ng={run:n,cleanup:o};function n(n){var o=t.addDummyNode(n,`root`,{},`_root`),s=i(n),c=e.max(e.values(s))-1,l=2*c+1;n.graph().nestingRoot=o,e.forEach(n.edges(),function(e){n.edge(e).minlen*=l});var u=a(n)+1;e.forEach(n.children(),function(e){r(n,o,l,u,c,s,e)}),n.graph().nodeRankFactor=l}function r(n,i,a,o,s,c,l){var u=n.children(l);if(!u.length){l!==i&&n.setEdge(i,l,{weight:0,minlen:a});return}var d=t.addBorderNode(n,`_bt`),f=t.addBorderNode(n,`_bb`),p=n.node(l);n.setParent(d,l),p.borderTop=d,n.setParent(f,l),p.borderBottom=f,e.forEach(u,function(e){r(n,i,a,o,s,c,e);var t=n.node(e),u=t.borderTop?t.borderTop:e,p=t.borderBottom?t.borderBottom:e,m=t.borderTop?o:2*o,h=u===p?s-c[l]+1:1;n.setEdge(d,u,{weight:m,minlen:h,nestingEdge:!0}),n.setEdge(p,f,{weight:m,minlen:h,nestingEdge:!0})}),n.parent(l)||n.setEdge(i,d,{weight:0,minlen:s+c[l]})}function i(t){var n={};function r(i,a){var o=t.children(i);o&&o.length&&e.forEach(o,function(e){r(e,a+1)}),n[i]=a}return e.forEach(t.children(),function(e){r(e,1)}),n}function a(t){return e.reduce(t.edges(),function(e,n){return e+t.edge(n).weight},0)}function o(t){var n=t.graph();t.removeNode(n.nestingRoot),delete n.nestingRoot,e.forEach(t.edges(),function(e){t.edge(e).nestingEdge&&t.removeEdge(e)})}return Ng}var Ig,Lg;function Rg(){if(Lg)return Ig;Lg=1;var e=Q(),t=$();Ig=n;function n(t){function n(i){var a=t.children(i),o=t.node(i);if(a.length&&e.forEach(a,n),e.has(o,`minRank`)){o.borderLeft=[],o.borderRight=[];for(var s=o.minRank,c=o.maxRank+1;s<c;++s)r(t,`borderLeft`,`_bl`,i,o,s),r(t,`borderRight`,`_br`,i,o,s)}}e.forEach(t.children(),n)}function r(e,n,r,i,a,o){var s={width:0,height:0,rank:o,borderType:n},c=a[n][o-1],l=t.addDummyNode(e,`border`,s,r);a[n][o]=l,e.setParent(l,i),c&&e.setEdge(c,l,{weight:1})}return Ig}var zg,Bg;function Vg(){if(Bg)return zg;Bg=1;var e=Q();zg={adjust:t,undo:n};function t(e){var t=e.graph().rankdir.toLowerCase();(t===`lr`||t===`rl`)&&r(e)}function n(e){var t=e.graph().rankdir.toLowerCase();(t===`bt`||t===`rl`)&&a(e),(t===`lr`||t===`rl`)&&(s(e),r(e))}function r(t){e.forEach(t.nodes(),function(e){i(t.node(e))}),e.forEach(t.edges(),function(e){i(t.edge(e))})}function i(e){var t=e.width;e.width=e.height,e.height=t}function a(t){e.forEach(t.nodes(),function(e){o(t.node(e))}),e.forEach(t.edges(),function(n){var r=t.edge(n);e.forEach(r.points,o),e.has(r,`y`)&&o(r)})}function o(e){e.y=-e.y}function s(t){e.forEach(t.nodes(),function(e){c(t.node(e))}),e.forEach(t.edges(),function(n){var r=t.edge(n);e.forEach(r.points,c),e.has(r,`x`)&&c(r)})}function c(e){var t=e.x;e.x=e.y,e.y=t}return zg}var Hg,Ug;function Wg(){if(Ug)return Hg;Ug=1;var e=Q();Hg=t;function t(t){var n={},r=e.filter(t.nodes(),function(e){return!t.children(e).length}),i=e.max(e.map(r,function(e){return t.node(e).rank})),a=e.map(e.range(i+1),function(){return[]});function o(r){e.has(n,r)||(n[r]=!0,a[t.node(r).rank].push(r),e.forEach(t.successors(r),o))}var s=e.sortBy(r,function(e){return t.node(e).rank});return e.forEach(s,o),a}return Hg}var Gg,Kg;function qg(){if(Kg)return Gg;Kg=1;var e=Q();Gg=t;function t(e,t){for(var r=0,i=1;i<t.length;++i)r+=n(e,t[i-1],t[i]);return r}function n(t,n,r){for(var i=e.zipObject(r,e.map(r,function(e,t){return t})),a=e.flatten(e.map(n,function(n){return e.sortBy(e.map(t.outEdges(n),function(e){return{pos:i[e.w],weight:t.edge(e).weight}}),`pos`)}),!0),o=1;o<r.length;)o<<=1;var s=2*o-1;--o;var c=e.map(Array(s),function(){return 0}),l=0;return e.forEach(a.forEach(function(e){var t=e.pos+o;c[t]+=e.weight;for(var n=0;t>0;)t%2&&(n+=c[t+1]),t=t-1>>1,c[t]+=e.weight;l+=e.weight*n})),l}return Gg}var Jg,Yg;function Xg(){if(Yg)return Jg;Yg=1;var e=Q();Jg=t;function t(t,n){return e.map(n,function(n){var r=t.inEdges(n);if(r.length){var i=e.reduce(r,function(e,n){var r=t.edge(n),i=t.node(n.v);return{sum:e.sum+r.weight*i.order,weight:e.weight+r.weight}},{sum:0,weight:0});return{v:n,barycenter:i.sum/i.weight,weight:i.weight}}return{v:n}})}return Jg}var Zg,Qg;function $g(){if(Qg)return Zg;Qg=1;var e=Q();Zg=t;function t(t,r){var i={};return e.forEach(t,function(t,n){var r=i[t.v]={indegree:0,in:[],out:[],vs:[t.v],i:n};e.isUndefined(t.barycenter)||(r.barycenter=t.barycenter,r.weight=t.weight)}),e.forEach(r.edges(),function(t){var n=i[t.v],r=i[t.w];!e.isUndefined(n)&&!e.isUndefined(r)&&(r.indegree++,n.out.push(i[t.w]))}),n(e.filter(i,function(e){return!e.indegree}))}function n(t){var n=[];function i(t){return function(n){n.merged||(e.isUndefined(n.barycenter)||e.isUndefined(t.barycenter)||n.barycenter>=t.barycenter)&&r(t,n)}}function a(e){return function(n){n.in.push(e),--n.indegree===0&&t.push(n)}}for(;t.length;){var o=t.pop();n.push(o),e.forEach(o.in.reverse(),i(o)),e.forEach(o.out,a(o))}return e.map(e.filter(n,function(e){return!e.merged}),function(t){return e.pick(t,[`vs`,`i`,`barycenter`,`weight`])})}function r(e,t){var n=0,r=0;e.weight&&(n+=e.barycenter*e.weight,r+=e.weight),t.weight&&(n+=t.barycenter*t.weight,r+=t.weight),e.vs=t.vs.concat(e.vs),e.barycenter=n/r,e.weight=r,e.i=Math.min(t.i,e.i),t.merged=!0}return Zg}var e_,t_;function n_(){if(t_)return e_;t_=1;var e=Q(),t=$();e_=n;function n(n,a){var o=t.partition(n,function(t){return e.has(t,`barycenter`)}),s=o.lhs,c=e.sortBy(o.rhs,function(e){return-e.i}),l=[],u=0,d=0,f=0;s.sort(i(!!a)),f=r(l,c,f),e.forEach(s,function(e){f+=e.vs.length,l.push(e.vs),u+=e.barycenter*e.weight,d+=e.weight,f=r(l,c,f)});var p={vs:e.flatten(l,!0)};return d&&(p.barycenter=u/d,p.weight=d),p}function r(t,n,r){for(var i;n.length&&(i=e.last(n)).i<=r;)n.pop(),t.push(i.vs),r++;return r}function i(e){return function(t,n){return t.barycenter<n.barycenter?-1:t.barycenter>n.barycenter?1:e?n.i-t.i:t.i-n.i}}return e_}var r_,i_;function a_(){if(i_)return r_;i_=1;var e=Q(),t=Xg(),n=$g(),r=n_();r_=i;function i(s,c,l,u){var d=s.children(c),f=s.node(c),p=f?f.borderLeft:void 0,m=f?f.borderRight:void 0,h={};p&&(d=e.filter(d,function(e){return e!==p&&e!==m}));var g=t(s,d);e.forEach(g,function(t){if(s.children(t.v).length){var n=i(s,t.v,l,u);h[t.v]=n,e.has(n,`barycenter`)&&o(t,n)}});var _=n(g,l);a(_,h);var v=r(_,u);if(p&&(v.vs=e.flatten([p,v.vs,m],!0),s.predecessors(p).length)){var y=s.node(s.predecessors(p)[0]),b=s.node(s.predecessors(m)[0]);e.has(v,`barycenter`)||(v.barycenter=0,v.weight=0),v.barycenter=(v.barycenter*v.weight+y.order+b.order)/(v.weight+2),v.weight+=2}return v}function a(t,n){e.forEach(t,function(t){t.vs=e.flatten(t.vs.map(function(e){return n[e]?n[e].vs:e}),!0)})}function o(t,n){e.isUndefined(t.barycenter)?(t.barycenter=n.barycenter,t.weight=n.weight):(t.barycenter=(t.barycenter*t.weight+n.barycenter*n.weight)/(t.weight+n.weight),t.weight+=n.weight)}return r_}var o_,s_;function c_(){if(s_)return o_;s_=1;var e=Q(),t=Z().Graph;o_=n;function n(n,i,a){var o=r(n),s=new t({compound:!0}).setGraph({root:o}).setDefaultNodeLabel(function(e){return n.node(e)});return e.forEach(n.nodes(),function(t){var r=n.node(t),c=n.parent(t);(r.rank===i||r.minRank<=i&&i<=r.maxRank)&&(s.setNode(t),s.setParent(t,c||o),e.forEach(n[a](t),function(r){var i=r.v===t?r.w:r.v,a=s.edge(i,t),o=e.isUndefined(a)?0:a.weight;s.setEdge(i,t,{weight:n.edge(r).weight+o})}),e.has(r,`minRank`)&&s.setNode(t,{borderLeft:r.borderLeft[i],borderRight:r.borderRight[i]}))}),s}function r(t){for(var n;t.hasNode(n=e.uniqueId(`_root`)););return n}return o_}var l_,u_;function d_(){if(u_)return l_;u_=1;var e=Q();l_=t;function t(t,n,r){var i={},a;e.forEach(r,function(e){for(var r=t.parent(e),o,s;r;){if(o=t.parent(r),o?(s=i[o],i[o]=r):(s=a,a=r),s&&s!==r){n.setEdge(s,r);return}r=o}})}return l_}var f_,p_;function m_(){if(p_)return f_;p_=1;var e=Q(),t=Wg(),n=qg(),r=a_(),i=c_(),a=d_(),o=Z().Graph,s=$();f_=c;function c(r){var i=s.maxRank(r),a=l(r,e.range(1,i+1),`inEdges`),o=l(r,e.range(i-1,-1,-1),`outEdges`),c=t(r);d(r,c);for(var f=1/0,p,m=0,h=0;h<4;++m,++h){u(m%2?a:o,m%4>=2),c=s.buildLayerMatrix(r);var g=n(r,c);g<f&&(h=0,p=e.cloneDeep(c),f=g)}d(r,p)}function l(t,n,r){return e.map(n,function(e){return i(t,e,r)})}function u(t,n){var i=new o;e.forEach(t,function(t){var o=t.graph().root,s=r(t,o,i,n);e.forEach(s.vs,function(e,n){t.node(e).order=n}),a(t,i,s.vs)})}function d(t,n){e.forEach(n,function(n){e.forEach(n,function(e,n){t.node(e).order=n})})}return f_}var h_,g_;function __(){if(g_)return h_;g_=1;var e=Q(),t=Z().Graph,n=$();h_={positionX:m,findType1Conflicts:r,findType2Conflicts:i,addConflict:o,hasConflict:s,verticalAlignment:c,horizontalCompaction:l,alignCoordinates:f,findSmallestWidthAlignment:d,balance:p};function r(t,n){var r={};function i(n,i){var s=0,c=0,l=n.length,u=e.last(i);return e.forEach(i,function(n,d){var f=a(t,n),p=f?t.node(f).order:l;(f||n===u)&&(e.forEach(i.slice(c,d+1),function(n){e.forEach(t.predecessors(n),function(e){var i=t.node(e),a=i.order;(a<s||p<a)&&!(i.dummy&&t.node(n).dummy)&&o(r,e,n)})}),c=d+1,s=p)}),i}return e.reduce(n,i),r}function i(t,n){var r={};function i(n,i,a,s,c){var l;e.forEach(e.range(i,a),function(i){l=n[i],t.node(l).dummy&&e.forEach(t.predecessors(l),function(e){var n=t.node(e);n.dummy&&(n.order<s||n.order>c)&&o(r,e,l)})})}function a(n,r){var a=-1,o,s=0;return e.forEach(r,function(e,c){if(t.node(e).dummy===`border`){var l=t.predecessors(e);l.length&&(o=t.node(l[0]).order,i(r,s,c,a,o),s=c,a=o)}i(r,s,r.length,o,n.length)}),r}return e.reduce(n,a),r}function a(t,n){if(t.node(n).dummy)return e.find(t.predecessors(n),function(e){return t.node(e).dummy})}function o(e,t,n){if(t>n){var r=t;t=n,n=r}var i=e[t];i||(e[t]=i={}),i[n]=!0}function s(t,n,r){if(n>r){var i=n;n=r,r=i}return e.has(t[n],r)}function c(t,n,r,i){var a={},o={},c={};return e.forEach(n,function(t){e.forEach(t,function(e,t){a[e]=e,o[e]=e,c[e]=t})}),e.forEach(n,function(t){var n=-1;e.forEach(t,function(t){var l=i(t);if(l.length){l=e.sortBy(l,function(e){return c[e]});for(var u=(l.length-1)/2,d=Math.floor(u),f=Math.ceil(u);d<=f;++d){var p=l[d];o[t]===t&&n<c[p]&&!s(r,t,p)&&(o[p]=t,o[t]=a[t]=a[p],n=c[p])}}})}),{root:a,align:o}}function l(t,n,r,i,a){var o={},s=u(t,n,r,a),c=a?`borderLeft`:`borderRight`;function l(e,t){for(var n=s.nodes(),r=n.pop(),i={};r;)i[r]?e(r):(i[r]=!0,n.push(r),n=n.concat(t(r))),r=n.pop()}function d(e){o[e]=s.inEdges(e).reduce(function(e,t){return Math.max(e,o[t.v]+s.edge(t))},0)}function f(e){var n=s.outEdges(e).reduce(function(e,t){return Math.min(e,o[t.w]-s.edge(t))},1/0),r=t.node(e);n!==1/0&&r.borderType!==c&&(o[e]=Math.max(o[e],n))}return l(d,s.predecessors.bind(s)),l(f,s.successors.bind(s)),e.forEach(i,function(e){o[e]=o[r[e]]}),o}function u(n,r,i,a){var o=new t,s=n.graph(),c=h(s.nodesep,s.edgesep,a);return e.forEach(r,function(t){var r;e.forEach(t,function(e){var t=i[e];if(o.setNode(t),r){var a=i[r],s=o.edge(a,t);o.setEdge(a,t,Math.max(c(n,e,r),s||0))}r=e})}),o}function d(t,n){return e.minBy(e.values(n),function(n){var r=-1/0,i=1/0;return e.forIn(n,function(e,n){var a=g(t,n)/2;r=Math.max(e+a,r),i=Math.min(e-a,i)}),r-i})}function f(t,n){var r=e.values(n),i=e.min(r),a=e.max(r);e.forEach([`u`,`d`],function(r){e.forEach([`l`,`r`],function(o){var s=r+o,c=t[s],l;if(c!==n){var u=e.values(c);l=o===`l`?i-e.min(u):a-e.max(u),l&&(t[s]=e.mapValues(c,function(e){return e+l}))}})})}function p(t,n){return e.mapValues(t.ul,function(r,i){if(n)return t[n.toLowerCase()][i];var a=e.sortBy(e.map(t,i));return(a[1]+a[2])/2})}function m(t){var a=n.buildLayerMatrix(t),o=e.merge(r(t,a),i(t,a)),s={},u;return e.forEach([`u`,`d`],function(n){u=n===`u`?a:e.values(a).reverse(),e.forEach([`l`,`r`],function(r){r===`r`&&(u=e.map(u,function(t){return e.values(t).reverse()}));var i=(n===`u`?t.predecessors:t.successors).bind(t),a=c(t,u,o,i),d=l(t,u,a.root,a.align,r===`r`);r===`r`&&(d=e.mapValues(d,function(e){return-e})),s[n+r]=d})}),f(s,d(t,s)),p(s,t.graph().align)}function h(t,n,r){return function(i,a,o){var s=i.node(a),c=i.node(o),l=0,u;if(l+=s.width/2,e.has(s,`labelpos`))switch(s.labelpos.toLowerCase()){case`l`:u=-s.width/2;break;case`r`:u=s.width/2}if(u&&(l+=r?u:-u),u=0,l+=(s.dummy?n:t)/2,l+=(c.dummy?n:t)/2,l+=c.width/2,e.has(c,`labelpos`))switch(c.labelpos.toLowerCase()){case`l`:u=c.width/2;break;case`r`:u=-c.width/2}return u&&(l+=r?u:-u),u=0,l}}function g(e,t){return e.node(t).width}return h_}var v_,y_;function b_(){if(y_)return v_;y_=1;var e=Q(),t=$(),n=__().positionX;v_=r;function r(r){r=t.asNonCompoundGraph(r),i(r),e.forEach(n(r),function(e,t){r.node(t).x=e})}function i(n){var r=t.buildLayerMatrix(n),i=n.graph().ranksep,a=0;e.forEach(r,function(t){var r=e.max(e.map(t,function(e){return n.node(e).height}));e.forEach(t,function(e){n.node(e).y=a+r/2}),a+=r+i})}return v_}var x_,S_;function C_(){if(S_)return x_;S_=1;var e=Q(),t=fg(),n=_g(),r=kg(),i=$().normalizeRanks,a=Mg(),o=$().removeEmptyRanks,s=Fg(),c=Rg(),l=Vg(),u=m_(),d=b_(),f=$(),p=Z().Graph;x_=m;function m(e,t){var n=t&&t.debugTiming?f.time:f.notime;n(`layout`,function(){var t=n(` buildLayoutGraph`,function(){return T(e)});n(` runLayout`,function(){h(t,n)}),n(` updateInputGraph`,function(){g(e,t)})})}function h(e,p){p(` makeSpaceForEdgeLabels`,function(){E(e)}),p(` removeSelfEdges`,function(){M(e)}),p(` acyclic`,function(){t.run(e)}),p(` nestingGraph.run`,function(){s.run(e)}),p(` rank`,function(){r(f.asNonCompoundGraph(e))}),p(` injectEdgeLabelProxies`,function(){D(e)}),p(` removeEmptyRanks`,function(){o(e)}),p(` nestingGraph.cleanup`,function(){s.cleanup(e)}),p(` normalizeRanks`,function(){i(e)}),p(` assignRankMinMax`,function(){O(e)}),p(` removeEdgeLabelProxies`,function(){k(e)}),p(` normalize.run`,function(){n.run(e)}),p(` parentDummyChains`,function(){a(e)}),p(` addBorderSegments`,function(){c(e)}),p(` order`,function(){u(e)}),p(` insertSelfEdges`,function(){N(e)}),p(` adjustCoordinateSystem`,function(){l.adjust(e)}),p(` position`,function(){d(e)}),p(` positionSelfEdges`,function(){re(e)}),p(` removeBorderNodes`,function(){ne(e)}),p(` normalize.undo`,function(){n.undo(e)}),p(` fixupEdgeLabelCoords`,function(){A(e)}),p(` undoCoordinateSystem`,function(){l.undo(e)}),p(` translateGraph`,function(){ee(e)}),p(` assignNodeIntersects`,function(){te(e)}),p(` reversePoints`,function(){j(e)}),p(` acyclic.undo`,function(){t.undo(e)})}function g(t,n){e.forEach(t.nodes(),function(e){var r=t.node(e),i=n.node(e);r&&(r.x=i.x,r.y=i.y,n.children(e).length&&(r.width=i.width,r.height=i.height))}),e.forEach(t.edges(),function(r){var i=t.edge(r),a=n.edge(r);i.points=a.points,e.has(a,`x`)&&(i.x=a.x,i.y=a.y)}),t.graph().width=n.graph().width,t.graph().height=n.graph().height}var _=[`nodesep`,`edgesep`,`ranksep`,`marginx`,`marginy`],v={ranksep:50,edgesep:20,nodesep:50,rankdir:`tb`},y=[`acyclicer`,`ranker`,`rankdir`,`align`],b=[`width`,`height`],x={width:0,height:0},S=[`minlen`,`weight`,`width`,`height`,`labeloffset`],C={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:`r`},w=[`labelpos`];function T(t){var n=new p({multigraph:!0,compound:!0}),r=P(t.graph());return n.setGraph(e.merge({},v,ie(r,_),e.pick(r,y))),e.forEach(t.nodes(),function(r){var i=P(t.node(r));n.setNode(r,e.defaults(ie(i,b),x)),n.setParent(r,t.parent(r))}),e.forEach(t.edges(),function(r){var i=P(t.edge(r));n.setEdge(r,e.merge({},C,ie(i,S),e.pick(i,w)))}),n}function E(t){var n=t.graph();n.ranksep/=2,e.forEach(t.edges(),function(e){var r=t.edge(e);r.minlen*=2,r.labelpos.toLowerCase()!==`c`&&(n.rankdir===`TB`||n.rankdir===`BT`?r.width+=r.labeloffset:r.height+=r.labeloffset)})}function D(t){e.forEach(t.edges(),function(e){var n=t.edge(e);if(n.width&&n.height){var r=t.node(e.v),i={rank:(t.node(e.w).rank-r.rank)/2+r.rank,e};f.addDummyNode(t,`edge-proxy`,i,`_ep`)}})}function O(t){var n=0;e.forEach(t.nodes(),function(r){var i=t.node(r);i.borderTop&&(i.minRank=t.node(i.borderTop).rank,i.maxRank=t.node(i.borderBottom).rank,n=e.max(n,i.maxRank))}),t.graph().maxRank=n}function k(t){e.forEach(t.nodes(),function(e){var n=t.node(e);n.dummy===`edge-proxy`&&(t.edge(n.e).labelRank=n.rank,t.removeNode(e))})}function ee(t){var n=1/0,r=0,i=1/0,a=0,o=t.graph(),s=o.marginx||0,c=o.marginy||0;function l(e){var t=e.x,o=e.y,s=e.width,c=e.height;n=Math.min(n,t-s/2),r=Math.max(r,t+s/2),i=Math.min(i,o-c/2),a=Math.max(a,o+c/2)}e.forEach(t.nodes(),function(e){l(t.node(e))}),e.forEach(t.edges(),function(n){var r=t.edge(n);e.has(r,`x`)&&l(r)}),n-=s,i-=c,e.forEach(t.nodes(),function(e){var r=t.node(e);r.x-=n,r.y-=i}),e.forEach(t.edges(),function(r){var a=t.edge(r);e.forEach(a.points,function(e){e.x-=n,e.y-=i}),e.has(a,`x`)&&(a.x-=n),e.has(a,`y`)&&(a.y-=i)}),o.width=r-n+s,o.height=a-i+c}function te(t){e.forEach(t.edges(),function(e){var n=t.edge(e),r=t.node(e.v),i=t.node(e.w),a,o;n.points?(a=n.points[0],o=n.points[n.points.length-1]):(n.points=[],a=i,o=r),n.points.unshift(f.intersectRect(r,a)),n.points.push(f.intersectRect(i,o))})}function A(t){e.forEach(t.edges(),function(n){var r=t.edge(n);if(e.has(r,`x`))switch((r.labelpos===`l`||r.labelpos===`r`)&&(r.width-=r.labeloffset),r.labelpos){case`l`:r.x-=r.width/2+r.labeloffset;break;case`r`:r.x+=r.width/2+r.labeloffset}})}function j(t){e.forEach(t.edges(),function(e){var n=t.edge(e);n.reversed&&n.points.reverse()})}function ne(t){e.forEach(t.nodes(),function(n){if(t.children(n).length){var r=t.node(n),i=t.node(r.borderTop),a=t.node(r.borderBottom),o=t.node(e.last(r.borderLeft)),s=t.node(e.last(r.borderRight));r.width=Math.abs(s.x-o.x),r.height=Math.abs(a.y-i.y),r.x=o.x+r.width/2,r.y=i.y+r.height/2}}),e.forEach(t.nodes(),function(e){t.node(e).dummy===`border`&&t.removeNode(e)})}function M(t){e.forEach(t.edges(),function(e){if(e.v===e.w){var n=t.node(e.v);n.selfEdges||=[],n.selfEdges.push({e,label:t.edge(e)}),t.removeEdge(e)}})}function N(t){var n=f.buildLayerMatrix(t);e.forEach(n,function(n){var r=0;e.forEach(n,function(n,i){var a=t.node(n);a.order=i+r,e.forEach(a.selfEdges,function(e){f.addDummyNode(t,`selfedge`,{width:e.label.width,height:e.label.height,rank:a.rank,order:i+ ++r,e:e.e,label:e.label},`_se`)}),delete a.selfEdges})})}function re(t){e.forEach(t.nodes(),function(e){var n=t.node(e);if(n.dummy===`selfedge`){var r=t.node(n.e.v),i=r.x+r.width/2,a=r.y,o=n.x-i,s=r.height/2;t.setEdge(n.e,n.label),t.removeNode(e),n.label.points=[{x:i+2*o/3,y:a-s},{x:i+5*o/6,y:a-s},{x:i+o,y:a},{x:i+5*o/6,y:a+s},{x:i+2*o/3,y:a+s}],n.label.x=n.x,n.label.y=n.y}})}function ie(t,n){return e.mapValues(e.pick(t,n),Number)}function P(t){var n={};return e.forEach(t,function(e,t){n[t.toLowerCase()]=e}),n}return x_}var w_,T_;function E_(){if(T_)return w_;T_=1;var e=Q(),t=$(),n=Z().Graph;w_={debugOrdering:r};function r(r){var i=t.buildLayerMatrix(r),a=new n({compound:!0,multigraph:!0}).setGraph({});return e.forEach(r.nodes(),function(e){a.setNode(e,{label:e}),a.setParent(e,`layer`+r.node(e).rank)}),e.forEach(r.edges(),function(e){a.setEdge(e.v,e.w,{},e.name)}),e.forEach(i,function(t,n){var r=`layer`+n;a.setNode(r,{rank:`same`}),e.reduce(t,function(e,t){return a.setEdge(e,t,{style:`invis`}),t})}),a}return w_}var D_,O_;function k_(){return O_?D_:(O_=1,D_=`0.8.5`,D_)}var A_,j_;function M_(){return j_?A_:(j_=1,A_={graphlib:Z(),layout:C_(),debug:E_(),util:{time:$().time,notime:$().notime},version:k_()},A_)}var N_=M_(),P_=Ft(N_),F_=function(e){return Mt(e,`Boolean`)};function I_(e,t){if(e){var n;if(Ot(e))for(var r=0,i=e.length;r<i&&(n=t(e[r],r),n!==!1);r++);else if(kt(e)){for(var a in e)if(e.hasOwnProperty(a)&&(n=t(e[a],a),n===!1))break}}}var L_=Object.prototype.hasOwnProperty,R_=(function(e,t){if(e===null||!Nt(e))return{};var n={};return I_(t,function(t){L_.call(e,t)&&(n[t]=e[t])}),n}),z_=class extends Dt{constructor(){super(...arguments),this.id=`dagre`,this.isCompoundGraph=null,this.config={graphAttributes:[`rankdir`,`align`,`nodesep`,`edgesep`,`ranksep`,`marginx`,`marginy`,`acyclicer`,`ranker`],nodeAttributes:[`width`,`height`],edgeAttributes:[`minlen`,`weight`,`width`,`height`,`labelpos`,`labeloffset`]}}getDefaultOptions(){return{directed:!0,multigraph:!0,rankdir:`TB`,align:void 0,nodesep:50,edgesep:10,ranksep:50,marginx:0,marginy:0,acyclicer:void 0,ranker:`network-simplex`,nodeSize:[0,0],edgeMinLen:1,edgeWeight:1,edgeLabelSize:[0,0],edgeLabelPos:`r`,edgeLabelOffset:10}}layout(){return ge(this,void 0,void 0,function*(){let e=new N_.graphlib.Graph({directed:!!this.options.directed,multigraph:!!this.options.multigraph,compound:this.isCompound()});e.setGraph(R_(this.options,this.config.graphAttributes)),e.setDefaultEdgeLabel(()=>({}));let t=We(this.options.nodeSize,0);this.model.forEachNode(n=>{let r=n._original,[i,a]=Re(t(r)),o={width:i,height:a};if(e.setNode(String(n.id),o),this.isCompound()){if(B(n.parentId))return;e.setParent(String(n.id),String(n.parentId))}});let{edgeLabelSize:n,edgeLabelOffset:r,edgeLabelPos:i,edgeMinLen:a,edgeWeight:o}=this.options,s=We(n,0,`edge`),c=Ue(r,10,`edge`),l=typeof i==`string`?()=>i:He(i,[`edge`]),u=Ue(a,1,`edge`),d=Ue(o,1,`edge`);this.model.forEachEdge(t=>{let n=t._original,[r,i]=Re(s(n)),a={width:r,height:i,labelpos:l(n),labeloffset:c(n),minlen:u(n),weight:d(n)};e.setEdge(String(t.source),String(t.target),a,String(t.id))}),P_.layout(e),this.model.forEachNode(t=>{let n=e.node(String(t.id));n&&(t.x=n.x,t.y=n.y,t.size=[n.width,n.height])}),this.model.forEachEdge(t=>{let n=e.edge(String(t.source),String(t.target),String(t.id));if(!n)return;let{width:r,height:i,weight:a,minlen:o,labelpos:s,labeloffset:c,points:l}=n;t.labelSize=[r,i],t.weight=a,t.minLen=o,t.labelPos=s,t.labelOffset=c,t.points=l.map(Ge)})})}isCompound(){return this.isCompoundGraph===null?F_(this.options.compound)?this.isCompoundGraph=this.options.compound:(this.isCompoundGraph=this.model.nodes().some(e=>!B(e.parentId)),this.isCompoundGraph):this.isCompoundGraph}},B_=26,V_=72,H_=(e,t,n)=>{let r=(e,t)=>{let n=Array.from(new Set(e)).sort((e,t)=>e-t),r=[];for(let e of n)(r.length===0||e-r[r.length-1]>t)&&r.push(e);return r},i=r(e.map(e=>t.get(e.id)),B_),a=r(e.map(e=>n.get(e.id)),V_),o=(e,t)=>{let n=0;for(let r=1;r<e.length;r++)Math.abs(e[r]-t)<Math.abs(e[n]-t)&&(n=r);return n},s=new Map,c=new Map;for(let r of e)s.set(r.id,o(i,t.get(r.id))),c.set(r.id,o(a,n.get(r.id)));return{col:s,row:c,ncols:i.length,nrows:a.length}},U_=(e,t,n)=>{let r=e.get(t);r===void 0?e.set(t,[n]):r.push(n)},W_=(e,t,n,r)=>{let i=new Set;for(let t of e)i.add(`${n.get(t.id)}:${r.get(t.id)}`);let a=new Map;for(let e of t)e.source!==e.target&&(U_(a,e.source,e.target),U_(a,e.target,e.source));for(let t of e){let e=a.get(t.id);if(e===void 0)continue;let o=e.map(e=>r.get(e)).sort((e,t)=>e-t),s=o[Math.floor((o.length-1)/2)],c=r.get(t.id),l=Math.abs(s-c);if(l===0)continue;let u=Math.sign(s-c),d;if(l===1){if(!e.some(e=>r.get(e)===s&&Math.abs(n.get(e)-n.get(t.id))===1))continue;d=s}else d=c+u*Math.ceil(l/2);for(let e=d;e!==c;e-=u)if(!i.has(`${n.get(t.id)}:${e}`)){i.delete(`${n.get(t.id)}:${c}`),i.add(`${n.get(t.id)}:${e}`),r.set(t.id,e);break}}},G_=(e,t,n)=>{let r=e.map(e=>{if(e.source===e.target)return{chans:[],guts:[]};let r=t.get(e.source),i=t.get(e.target),a=n.get(e.source),o=n.get(e.target),s,c=[];return r===i?s=[r]:Math.abs(r-i)===1?s=[Math.min(r,i)]:(s=[r<i?r:r-1,r<i?i-1:i],c=[o>a?o-1:o]),{chans:s,guts:c}}),i=new Map,a=new Map;for(let e of r){for(let t of e.chans)i.set(t,(i.get(t)??0)+1);for(let t of e.guts)a.set(t,(a.get(t)??0)+1)}return{plans:r,chanCnt:i,gutCnt:a}},K_=(e,t,n,r,i,a,o,s,c,l)=>{let u=Array.from({length:a},()=>0),d=Array.from({length:o},()=>0);for(let a of e)u[t.get(a.id)]=Math.max(u[t.get(a.id)],r.get(a.id)),d[n.get(a.id)]=Math.max(d[n.get(a.id)],i.get(a.id));let f=Array.from({length:a},(e,t)=>{let n=s.get(t)??0;return n===0?24:Math.min(l[`graph-channel-width-max`],28+(n-1)*l[`size-edge-track-gap`])}),p=Array.from({length:o},(e,t)=>{let n=c.get(t)??0;return n===0?20:Math.min(l[`graph-gutter-height-max`],24+(n-1)*l[`size-edge-track-gap`])}),m=[],h=[],g=l[`size-canvas-margin`];for(let e=0;e<u.length;e++)m.push(g+u[e]/2),g+=u[e]+f[e];let _=l[`size-canvas-margin`];for(let e=0;e<d.length;e++)h.push(_+d[e]/2),_+=d[e]+p[e];return{colWidth:u,rowHeight:d,chanW:f,gutH:p,colCX:m,rowCY:h}},q_=(e,t,n,r,i,a)=>{let{colWidth:o,rowHeight:s,chanW:c,gutH:l,colCX:u,rowCY:d}=i,f=e=>d[e]+s[e]/2+l[e]/2,p=new Map;e.forEach((e,i)=>{let{chans:a,guts:o}=t[i];if(a.length===0)return;let s=n.get(e.target)<n.get(e.source),c=r.get(`${i}:s`),l=r.get(`${i}:t`);if(a.length===1)U_(p,a[0],{edge:i,posIn:c.y,posOut:l.y,mirror:s});else{let e=f(o[0]);U_(p,a[0],{edge:i,posIn:c.y,posOut:e,mirror:s}),U_(p,a[1],{edge:i,posIn:e,posOut:l.y,mirror:s})}});let m=new Map;for(let[e,t]of p)for(let[n,r]of F(t,c[e],16,a[`size-edge-track-gap`]))m.set(`${e}:${n}`,r);let h=(e,t)=>u[e]+o[e]/2+c[e]/2+m.get(`${e}:${t}`),g=new Map;e.forEach((e,n)=>{let{chans:i,guts:a}=t[n];if(a.length===0)return;let o=r.get(`${n}:s`);U_(g,a[0],{edge:n,posIn:h(i[0],n),posOut:h(i[1],n),mirror:o.y>f(a[0])})});let _=new Map;for(let[e,t]of g)for(let[n,r]of F(t,l[e],12,a[`size-edge-track-gap`]))_.set(`${e}:${n}`,r);return{chanX:h,gutY:(e,t)=>f(e)+_.get(`${e}:${t}`)}},J_=(e,t,n,r,i,a,o,s,c)=>{let l=new Map;return e.map((e,u)=>{let d=n.get(e.source),f=n.get(e.target),p=r.get(`${u}:s`),m=r.get(`${u}:t`),{chans:h,guts:g}=t[u],_;if(e.source===e.target){let t=l.get(e.source)??0;l.set(e.source,t+1);let n=a(e.source)+i.get(e.source)/2+24+t*c[`size-edge-track-gap`];_=[[p.x,p.y],[n,p.y],[n,m.y],[m.x,m.y]]}else if(h.length===1){let e=o(h[0],u);_=Math.abs(d-f)===1&&p.y===m.y?[[p.x,p.y],[m.x,m.y]]:[[p.x,p.y],[e,p.y],[e,m.y],[m.x,m.y]]}else{let e=o(h[0],u),t=o(h[1],u),n=s(g[0],u);_=[[p.x,p.y],[e,p.y],[e,n],[t,n],[t,m.y],[m.x,m.y]]}return ie(_)})},Y_=async(e,t)=>{let n=Array.from(e.nodes.values()),r=e.edges,{boxW:i,boxH:a,contentH:o}=M(n,t,()=>t[`size-node-height-scale`]),s=new z_({rankdir:`LR`,nodesep:t[`graph-node-separation`],ranksep:t[`graph-rank-separation`],nodeSize:e=>e.size});await s.execute({nodes:n.map(e=>({id:e.id,size:[i.get(e.id),a.get(e.id)]})),edges:r.map((e,t)=>({id:`e${t}`,source:e.source,target:e.target}))});let c=new Map,l=new Map;s.forEachNode(e=>{c.set(String(e.id),e.x),l.set(String(e.id),e.y)});let{col:u,row:d,ncols:f,nrows:p}=H_(n,c,l);W_(n,r,u,d);let m=Math.max(Math.floor(t[`graph-columns-max`]),1);if(f>m)for(let e of n){let t=u.get(e.id);u.set(e.id,t%m),d.set(e.id,d.get(e.id)+Math.floor(t/m)*p)}let h=Math.min(f,m),g=Array.from(new Set(n.map(e=>d.get(e.id)))).sort((e,t)=>e-t),_=new Map(g.map((e,t)=>[e,t]));for(let e of n)d.set(e.id,_.get(d.get(e.id)));let v=g.length,{plans:y,chanCnt:b,gutCnt:x}=G_(r,u,d),S=K_(n,u,d,i,a,h,v,b,x,t),C=e=>S.colCX[u.get(e)],w=e=>S.rowCY[d.get(e)],T=P(r,r.map(e=>{let t=u.get(e.source),n=u.get(e.target);return t<n?{s:`e`,t:`w`}:t>n?{s:`w`,t:`e`}:{s:`e`,t:`e`}}),C,w,i,a),{chanX:E,gutY:D}=q_(r,y,u,T,S,t);return{nodes:n,edges:r,cx:C,cy:w,boxW:i,boxH:a,contentH:o,polys:J_(r,y,u,T,i,C,E,D,t)}},X_=`\0`,Z_=e=>{let t=Array.from(e.nodes.values());for(let e of t)if(e.id.includes(X_))throw Error(`node id ${JSON.stringify(e.id)} contains a reserved control character`);let n=t.filter(O);if(n.length!==1)throw Error(`expected exactly one node annotated with "primary: true" (found ${n.length})`);let r=n[0],i=new Set,a=new Set;for(let t of e.edges)if(t.source===r.id&&t.target===r.id)throw Error(`self-loop on primary node "${r.id}" not supported`);else if(t.target===r.id)i.add(t.source);else if(t.source===r.id)a.add(t.target);else throw Error(`edge "${t.source}" --> "${t.target}" does not connect to primary node "${r.id}"`);let o=new Set,s=[],c=[];for(let e of t){if(e.id===r.id)continue;let t=i.has(e.id),n=a.has(e.id);if(!t&&!n)throw Error(`node "${e.id}" is neither input nor output of primary node "${r.id}"`);t&&n?(o.add(e.id),s.push({...e,id:e.id+`\0in`}),c.push({...e,id:e.id+`\0out`})):t?s.push(e):c.push(e)}let l=e.edges.map(e=>e.target===r.id&&o.has(e.source)?{...e,source:e.source+`\0in`}:e.source===r.id&&o.has(e.target)?{...e,target:e.target+`\0out`}:e);return{center:r,inputs:s,outputs:c,nodes:[r,...s,...c],edges:l}},Q_={graph:Y_,hub:async(e,t)=>{let{center:n,inputs:r,outputs:i,nodes:a,edges:o}=Z_(e),s=new Set(r.map(e=>e.id)),c=t[`size-canvas-margin`],l=t[`hub-node-gap`],u=t[`size-node-height-scale`],{boxW:d,boxH:f,contentH:p}=M(a,t,e=>e.id===n.id?u:u/2),m=e=>e.reduce((e,t)=>e+f.get(t.id),0)+Math.max(e.length-1,0)*l,h=Math.max(m(r),f.get(n.id),m(i)),g=new Map,_=e=>{let t=c+(h-m(e))/2;for(let n of e)g.set(n.id,t+f.get(n.id)/2),t+=f.get(n.id)+l};_(r),_(i),g.set(n.id,c+h/2);let v=e=>e===n.id?1:s.has(e)?0:2,y=[r.reduce((e,t)=>Math.max(e,d.get(t.id)),0),d.get(n.id),i.reduce((e,t)=>Math.max(e,d.get(t.id)),0)],b=e=>Math.min(v(e.source),v(e.target)),x=[o.filter(e=>b(e)===0).length,o.filter(e=>b(e)===1).length].map(e=>Math.min(t[`hub-channel-width-max`],Math.max(t[`hub-channel-width-min`],28+(e-1)*t[`size-edge-track-gap`]))),S=[],C=c;for(let e=0;e<3;e++)S.push(C),C+=y[e]+(e<2?x[e]:0);let w=e=>{let t=v(e);return t===0?S[0]+y[0]-d.get(e)/2:t===2?S[2]+d.get(e)/2:S[1]+y[1]/2},T=e=>g.get(e),E=P(o,o.map(e=>v(e.source)<v(e.target)?{s:`e`,t:`w`}:{s:`w`,t:`e`}),w,T,d,f),D=[[],[]];o.forEach((e,t)=>{D[b(e)].push({edge:t,posIn:E.get(`${t}:s`).y,posOut:E.get(`${t}:t`).y,mirror:!1})});let O=new Map;D.forEach((e,n)=>{for(let[r,i]of F(e,x[n],16,t[`size-edge-track-gap`]))O.set(`${n}:${r}`,i)});let ee=(e,t)=>S[e]+y[e]+x[e]/2+O.get(`${e}:${t}`);return{nodes:a,edges:o,cx:w,cy:T,boxW:d,boxH:f,contentH:p,polys:o.map((e,t)=>{let n=E.get(`${t}:s`),r=E.get(`${t}:t`),i=ee(b(e),t),a;return a=n.y===r.y?[[n.x,n.y],[r.x,r.y]]:[[n.x,n.y],[i,n.y],[i,r.y],[r.x,r.y]],ie(a)}),styleOf:e=>e.id.endsWith(`\0out`)?{fill:`color-node-ghost-box`,stroke:`color-node-ghost-border`,text:`color-node-ghost-name`,dash:`10 6`}:k(e)}},grid:async(e,t)=>{let n=Array.from(e.nodes.values()),r=t[`size-canvas-margin`],i=t[`grid-gap-horizontal`],a=t[`grid-gap-vertical`],o=Math.max(Math.floor(t[`grid-columns-max`]),1);if(e.edges.length>0){let t=e.edges[0];throw Error(`diagram type "grid" does not support edges (found ${e.edges.length}, first is "${t.source}" --> "${t.target}")`)}let{boxW:s,boxH:c,contentH:l}=M(n,t,()=>t[`size-node-height-scale`]/2),u=n.reduce((e,t)=>Math.max(e,c.get(t.id)),0);for(let e of n)c.set(e.id,u);let d=Math.max(Math.min(Math.ceil(Math.sqrt(n.length)),o),1),f=Array.from({length:d},()=>0);n.forEach((e,t)=>{f[t%d]=Math.max(f[t%d],s.get(e.id))});let p=[],m=r;for(let e=0;e<d;e++)p.push(m),m+=f[e]+i;let h=new Map,g=new Map;return n.forEach((e,t)=>{h.set(e.id,p[t%d]+s.get(e.id)/2),g.set(e.id,r+Math.floor(t/d)*(u+a)+u/2)}),{nodes:n,edges:[],cx:e=>h.get(e),cy:e=>g.get(e),boxW:s,boxH:c,contentH:l,polys:[]}}},$_=Object.keys(Q_),ev=`graph`,tv=e=>{let t;for(let n of e.split(/\r?\n/)){let e=/^[ \t]*#type[ \t]+([a-z][a-z0-9-]*)[ \t]*$/.exec(n);e===null||!Object.hasOwn(Q_,e[1])||(t=e[1])}return t},nv=[`svg:standalone`,`svg:embedded`,`url:xml`,`url:base64`];e.Gradia=class e{static parse(e){return d(e)}static async generate(e,t={}){let n=t.type??`graph`;if(!Object.hasOwn(Q_,n))throw Error(`invalid diagram type "${n}"`);let r=t.format??`svg:standalone`;if(!nv.includes(r))throw Error(`invalid output format "${r}"`);let i=t.config??{},a={...p,...i},o=S(e),s=he(o===null?await Q_[n](e,a):w(o,await Promise.all(o.map(e=>Q_[n](e.graph,a))),a),a,i);return r===`svg:embedded`?s.replace(/^<\?xml[^?]*\?>\n/,``):r===`url:xml`?`data:image/svg+xml,${encodeURIComponent(s)}`:r===`url:base64`?`data:image/svg+xml;base64,${Buffer.from(s,`utf8`).toString(`base64`)}`:s}static async render(t,n={}){let r=e.parse(t),i=n.type??tv(t),a={...h(t),...n.config??{}};return e.generate(r,{...n,type:i,config:a})}},e.diagramFormatDefault=`svg:standalone`,e.diagramFormats=nv,e.diagramTypeDefault=ev,e.diagramTypes=$_});
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "Object Graph Diagram Rendering",
|
|
4
4
|
"keywords": [ "object", "graph", "diagram", "rendering", "svg", "layout", "api", "cli" ],
|
|
5
5
|
"publishConfig": { "access": "public" },
|
|
6
|
-
"version": "0.9.
|
|
6
|
+
"version": "0.9.2",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"author": {
|
|
9
9
|
"name": "Dr. Ralf S. Engelschall",
|