aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rw-r--r--docs/res/graph.drawio318
-rw-r--r--docs/res/graph.html21
-rw-r--r--docs/res/graph.pngbin69856 -> 519729 bytes
-rw-r--r--mingling/README.md2
5 files changed, 204 insertions, 139 deletions
diff --git a/README.md b/README.md
index 2f90018..c20955a 100644
--- a/README.md
+++ b/README.md
@@ -216,7 +216,7 @@ Mingling abstracts command execution into the following parts:
<summary>Architecture Diagram (click to expand)</summary>
<p align="center">
<a href="https://github.com/CatilGrass/mingling">
- <img alt="Mingling" src="docs/res/graph.png" width="75%">
+ <img alt="Mingling" src="docs/res/graph.png" width="100%">
</a>
</p>
</details>
diff --git a/docs/res/graph.drawio b/docs/res/graph.drawio
index 47ac9f4..7da09e5 100644
--- a/docs/res/graph.drawio
+++ b/docs/res/graph.drawio
@@ -1,219 +1,263 @@
-<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/29.6.6 Chrome/144.0.7559.236 Electron/40.8.4 Safari/537.36" version="29.6.6">
+<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/29.6.6 Chrome/144.0.7559.236 Electron/40.8.4 Safari/537.36">
<diagram name="第 1 页" id="CLQgZkV-SbJ_8hXwUYFR">
- <mxGraphModel dx="705" dy="877" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
+ <mxGraphModel dx="1414" dy="859" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
- <mxCell id="T62yhzIGDhOwbh_DlgYY-26" edge="1" parent="1" source="T62yhzIGDhOwbh_DlgYY-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="T62yhzIGDhOwbh_DlgYY-21">
+ <mxCell id="eKziOQrJA7Vm6SEomWln-99" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="eKziOQrJA7Vm6SEomWln-96">
+ <mxGeometry relative="1" as="geometry">
+ <Array as="points">
+ <mxPoint x="100" y="280" />
+ <mxPoint x="260" y="280" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-3" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fad7ac;strokeColor=#b46504;" value="User Input" vertex="1">
+ <mxGeometry height="40" width="120" x="40" y="160" as="geometry" />
+ </mxCell>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-6" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f9f7ed;strokeColor=#36393d;" value="" vertex="1">
+ <mxGeometry height="140" width="140" x="190" y="110" as="geometry" />
+ </mxCell>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-14" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;curved=1;" target="eKziOQrJA7Vm6SEomWln-11">
<mxGeometry relative="1" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-3" edge="1" parent="1" source="T62yhzIGDhOwbh_DlgYY-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="T62yhzIGDhOwbh_DlgYY-2">
+ <mxCell id="eKziOQrJA7Vm6SEomWln-4" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#eeeeee;strokeColor=#36393d;" value="Compile-Time" vertex="1">
+ <mxGeometry height="40" width="120" x="200" y="120" as="geometry" />
+ </mxCell>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-13" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;curved=1;" target="eKziOQrJA7Vm6SEomWln-11">
<mxGeometry relative="1" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-11" connectable="0" parent="T62yhzIGDhOwbh_DlgYY-3" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="Match" vertex="1">
- <mxGeometry relative="1" x="-0.3491" as="geometry">
- <mxPoint y="14" as="offset" />
- </mxGeometry>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-5" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#eeeeee;strokeColor=#36393d;" value="Runtime" vertex="1">
+ <mxGeometry height="40" width="120" x="200" y="200" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-1" parent="1" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;fillColor=#dae8fc;strokeColor=#6c8ebf;gradientColor=#7ea6e0;" value="User Input" vertex="1">
- <mxGeometry height="40" width="120" x="240" y="80" as="geometry" />
+ <mxCell id="eKziOQrJA7Vm6SEomWln-7" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1" value="Dispatch" vertex="1">
+ <mxGeometry height="30" width="140" x="190" y="80" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-7" edge="1" parent="1" source="T62yhzIGDhOwbh_DlgYY-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;curved=1;" target="T62yhzIGDhOwbh_DlgYY-4">
- <mxGeometry relative="1" as="geometry" />
+ <mxCell id="eKziOQrJA7Vm6SEomWln-8" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="OR" vertex="1">
+ <mxGeometry height="30" width="140" x="190" y="165" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-8" edge="1" parent="1" source="T62yhzIGDhOwbh_DlgYY-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;curved=1;" target="T62yhzIGDhOwbh_DlgYY-5">
+ <mxCell id="eKziOQrJA7Vm6SEomWln-9" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;curved=1;" target="eKziOQrJA7Vm6SEomWln-4">
<mxGeometry relative="1" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-15" connectable="0" parent="T62yhzIGDhOwbh_DlgYY-8" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="Dispatch" vertex="1">
- <mxGeometry relative="1" x="-0.4532" as="geometry">
- <mxPoint y="-9" as="offset" />
- </mxGeometry>
- </mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-9" edge="1" parent="1" source="T62yhzIGDhOwbh_DlgYY-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;curved=1;" target="T62yhzIGDhOwbh_DlgYY-6">
+ <mxCell id="eKziOQrJA7Vm6SEomWln-10" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;curved=1;" target="eKziOQrJA7Vm6SEomWln-5">
<mxGeometry relative="1" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-2" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;gradientColor=#ea6b66;" value="Dispatchers" vertex="1">
- <mxGeometry height="40" width="120" x="240" y="200" as="geometry" />
+ <mxCell id="eKziOQrJA7Vm6SEomWln-20" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" target="eKziOQrJA7Vm6SEomWln-16">
+ <mxGeometry relative="1" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-22" edge="1" parent="1" source="T62yhzIGDhOwbh_DlgYY-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="T62yhzIGDhOwbh_DlgYY-16">
+ <mxCell id="eKziOQrJA7Vm6SEomWln-36" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="eKziOQrJA7Vm6SEomWln-34">
<mxGeometry relative="1" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-45" connectable="0" parent="T62yhzIGDhOwbh_DlgYY-22" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="Route Chain" vertex="1">
- <mxGeometry relative="1" x="-0.2067" y="1" as="geometry">
+ <mxCell id="eKziOQrJA7Vm6SEomWln-38" connectable="0" parent="eKziOQrJA7Vm6SEomWln-36" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="&quot;--help&quot;" vertex="1">
+ <mxGeometry relative="1" x="0.421" y="-2" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-4" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;gradientColor=#97d077;strokeColor=#82b366;" value="EntryA" vertex="1">
- <mxGeometry height="50" width="70" x="135" y="310" as="geometry" />
+ <mxCell id="eKziOQrJA7Vm6SEomWln-11" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" value="Entry" vertex="1">
+ <mxGeometry height="40" width="80" x="360" y="160" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-24" edge="1" parent="1" source="T62yhzIGDhOwbh_DlgYY-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="T62yhzIGDhOwbh_DlgYY-17">
+ <mxCell id="eKziOQrJA7Vm6SEomWln-22" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" target="eKziOQrJA7Vm6SEomWln-17">
<mxGeometry relative="1" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-46" connectable="0" parent="T62yhzIGDhOwbh_DlgYY-24" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="Route Chain" vertex="1">
- <mxGeometry relative="1" x="-0.2733" y="1" as="geometry">
- <mxPoint x="-1" y="2" as="offset" />
+ <mxCell id="eKziOQrJA7Vm6SEomWln-82" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#f8cecc;gradientColor=#ea6b66;strokeColor=#FF2020;" target="eKziOQrJA7Vm6SEomWln-80">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-83" connectable="0" parent="eKziOQrJA7Vm6SEomWln-82" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="route" vertex="1">
+ <mxGeometry relative="1" x="0.0646" y="-1" as="geometry">
+ <mxPoint as="offset" />
</mxGeometry>
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-5" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;gradientColor=#97d077;strokeColor=#82b366;" value="EntryB" vertex="1">
- <mxGeometry height="50" width="70" x="230" y="310" as="geometry" />
+ <mxCell id="eKziOQrJA7Vm6SEomWln-16" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d0cee2;strokeColor=#56517e;" value="Chain" vertex="1">
+ <mxGeometry height="40" width="80" x="480" y="160" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-27" edge="1" parent="1" source="T62yhzIGDhOwbh_DlgYY-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="T62yhzIGDhOwbh_DlgYY-18">
+ <mxCell id="eKziOQrJA7Vm6SEomWln-26" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="eKziOQrJA7Vm6SEomWln-24">
<mxGeometry relative="1" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-47" connectable="0" parent="T62yhzIGDhOwbh_DlgYY-27" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="Route Chain" vertex="1">
- <mxGeometry relative="1" x="-0.2067" y="-1" as="geometry">
- <mxPoint x="1" y="1" as="offset" />
+ <mxCell id="eKziOQrJA7Vm6SEomWln-75" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="eKziOQrJA7Vm6SEomWln-73">
+ <mxGeometry relative="1" as="geometry">
+ <Array as="points">
+ <mxPoint x="700" y="180" />
+ <mxPoint x="700" y="100" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-76" connectable="0" parent="eKziOQrJA7Vm6SEomWln-75" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="&quot;--json&quot;" vertex="1">
+ <mxGeometry relative="1" x="0.3463" as="geometry">
+ <mxPoint as="offset" />
</mxGeometry>
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-34" edge="1" parent="1" source="T62yhzIGDhOwbh_DlgYY-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;curved=1;" target="T62yhzIGDhOwbh_DlgYY-32">
+ <mxCell id="eKziOQrJA7Vm6SEomWln-17" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" value="Next" vertex="1">
+ <mxGeometry height="40" width="80" x="600" y="160" as="geometry" />
+ </mxCell>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-18" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1" value="STRING" vertex="1">
+ <mxGeometry height="30" width="120" x="40" y="130" as="geometry" />
+ </mxCell>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-19" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1" value="TYPE" vertex="1">
+ <mxGeometry height="30" width="80" x="360" y="130" as="geometry" />
+ </mxCell>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-21" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1" value="FUNC" vertex="1">
+ <mxGeometry height="30" width="80" x="480" y="130" as="geometry" />
+ </mxCell>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-23" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1" value="TYPE" vertex="1">
+ <mxGeometry height="30" width="80" x="600" y="130" as="geometry" />
+ </mxCell>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-30" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="eKziOQrJA7Vm6SEomWln-27">
<mxGeometry relative="1" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-51" connectable="0" parent="T62yhzIGDhOwbh_DlgYY-34" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="Route Chain" vertex="1">
- <mxGeometry relative="1" x="0.202" y="-10" as="geometry">
- <mxPoint as="offset" />
- </mxGeometry>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-24" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d0cee2;strokeColor=#56517e;" value="Renderer" vertex="1">
+ <mxGeometry height="40" width="80" x="720" y="160" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-6" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;gradientColor=#97d077;strokeColor=#82b366;" value="EntryC" vertex="1">
- <mxGeometry height="50" width="70" x="325" y="310" as="geometry" />
+ <mxCell id="eKziOQrJA7Vm6SEomWln-25" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1" value="FUNC" vertex="1">
+ <mxGeometry height="30" width="80" x="720" y="130" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-23" edge="1" parent="1" source="T62yhzIGDhOwbh_DlgYY-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;">
+ <mxCell id="eKziOQrJA7Vm6SEomWln-55" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="eKziOQrJA7Vm6SEomWln-54">
<mxGeometry relative="1" as="geometry">
- <mxPoint x="170" y="450" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="1000" y="180" />
+ <mxPoint x="1000" y="260" />
+ </Array>
</mxGeometry>
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-16" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;gradientColor=#97d077;strokeColor=#82b366;" value="NextA1" vertex="1">
- <mxGeometry height="50" width="70" x="135" y="410" as="geometry" />
+ <mxCell id="eKziOQrJA7Vm6SEomWln-27" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fad7ac;strokeColor=#b46504;" value="RenderResult" vertex="1">
+ <mxGeometry height="40" width="120" x="840" y="160" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-25" edge="1" parent="1" source="T62yhzIGDhOwbh_DlgYY-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;curved=1;" target="T62yhzIGDhOwbh_DlgYY-21">
+ <mxCell id="eKziOQrJA7Vm6SEomWln-28" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1" value="STRING" vertex="1">
+ <mxGeometry height="30" width="120" x="840" y="130" as="geometry" />
+ </mxCell>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-57" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="eKziOQrJA7Vm6SEomWln-54">
<mxGeometry relative="1" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-49" connectable="0" parent="T62yhzIGDhOwbh_DlgYY-25" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBorderColor=none;labelBackgroundColor=default;" value="Route Chain" vertex="1">
- <mxGeometry relative="1" x="-0.2451" y="3" as="geometry">
- <mxPoint x="43" y="1" as="offset" />
- </mxGeometry>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-34" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d0cee2;strokeColor=#56517e;" value="Help" vertex="1">
+ <mxGeometry height="40" width="80" x="480" y="240" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-17" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;gradientColor=#97d077;strokeColor=#82b366;" value="NextB1" vertex="1">
- <mxGeometry height="50" width="70" x="230" y="410" as="geometry" />
+ <mxCell id="eKziOQrJA7Vm6SEomWln-35" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f9f7ed;strokeColor=#36393d;" value="Completion" vertex="1">
+ <mxGeometry height="40" width="80" x="480" y="320" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-18" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;gradientColor=#97d077;strokeColor=#82b366;" value="NextC1" vertex="1">
- <mxGeometry height="50" width="70" x="325" y="410" as="geometry" />
+ <mxCell id="eKziOQrJA7Vm6SEomWln-40" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1" value="FUNC" vertex="1">
+ <mxGeometry height="30" width="80" x="480" y="210" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-29" edge="1" parent="1" source="T62yhzIGDhOwbh_DlgYY-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="T62yhzIGDhOwbh_DlgYY-28">
- <mxGeometry relative="1" as="geometry">
- <mxPoint x="170" y="500" as="sourcePoint" />
- </mxGeometry>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-41" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1" value="DISPATCHER" vertex="1">
+ <mxGeometry height="30" width="80" x="480" y="290" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-48" connectable="0" parent="T62yhzIGDhOwbh_DlgYY-29" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="Route Chain" vertex="1">
- <mxGeometry relative="1" x="-0.1822" as="geometry">
- <mxPoint y="5" as="offset" />
- </mxGeometry>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-42" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f9f7ed;strokeColor=#36393d;" value="" vertex="1">
+ <mxGeometry height="140" width="140" x="600" y="320" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-39" edge="1" parent="1" source="T62yhzIGDhOwbh_DlgYY-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="T62yhzIGDhOwbh_DlgYY-36">
+ <mxCell id="eKziOQrJA7Vm6SEomWln-43" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#eeeeee;strokeColor=#36393d;" value="Compile-Time" vertex="1">
+ <mxGeometry height="40" width="120" x="610" y="330" as="geometry" />
+ </mxCell>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-44" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#eeeeee;strokeColor=#36393d;" value="Runtime" vertex="1">
+ <mxGeometry height="40" width="120" x="610" y="410" as="geometry" />
+ </mxCell>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-45" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1" value="Dispatch" vertex="1">
+ <mxGeometry height="30" width="140" x="600" y="290" as="geometry" />
+ </mxCell>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-70" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-46" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="eKziOQrJA7Vm6SEomWln-66">
<mxGeometry relative="1" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-53" connectable="0" parent="T62yhzIGDhOwbh_DlgYY-39" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="Route Renderer" vertex="1">
- <mxGeometry relative="1" x="-0.2327" as="geometry">
- <mxPoint y="2" as="offset" />
- </mxGeometry>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-46" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="OR" vertex="1">
+ <mxGeometry height="30" width="140" x="600" y="375" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-21" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;gradientColor=#97d077;strokeColor=#82b366;" value="ResultB" vertex="1">
- <mxGeometry height="50" width="70" x="325" y="535" as="geometry" />
+ <mxCell id="eKziOQrJA7Vm6SEomWln-49" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="eKziOQrJA7Vm6SEomWln-43">
+ <mxGeometry relative="1" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-38" edge="1" parent="1" source="T62yhzIGDhOwbh_DlgYY-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="T62yhzIGDhOwbh_DlgYY-35">
+ <mxCell id="eKziOQrJA7Vm6SEomWln-50" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="eKziOQrJA7Vm6SEomWln-44">
<mxGeometry relative="1" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-52" connectable="0" parent="T62yhzIGDhOwbh_DlgYY-38" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="Route Renderer" vertex="1">
- <mxGeometry relative="1" x="-0.1347" y="1" as="geometry">
- <mxPoint as="offset" />
- </mxGeometry>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-72" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-51" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="eKziOQrJA7Vm6SEomWln-54">
+ <mxGeometry relative="1" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-28" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;gradientColor=#97d077;strokeColor=#82b366;" value="ResultA" vertex="1">
- <mxGeometry height="50" width="70" x="135" y="535" as="geometry" />
+ <mxCell id="eKziOQrJA7Vm6SEomWln-51" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" value="Suggest" vertex="1">
+ <mxGeometry height="40" width="80" x="920" y="320" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-40" edge="1" parent="1" source="T62yhzIGDhOwbh_DlgYY-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="T62yhzIGDhOwbh_DlgYY-37">
+ <mxCell id="eKziOQrJA7Vm6SEomWln-53" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1" value="TYPE" vertex="1">
+ <mxGeometry height="30" width="80" x="920" y="290" as="geometry" />
+ </mxCell>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-59" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-54" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="eKziOQrJA7Vm6SEomWln-58">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-102" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-54" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="eKziOQrJA7Vm6SEomWln-101">
<mxGeometry relative="1" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-54" connectable="0" parent="T62yhzIGDhOwbh_DlgYY-40" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="Route Renderer" vertex="1">
- <mxGeometry relative="1" x="-0.3306" y="2" as="geometry">
- <mxPoint x="-2" y="3" as="offset" />
+ <mxCell id="eKziOQrJA7Vm6SEomWln-103" connectable="0" parent="eKziOQrJA7Vm6SEomWln-102" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontStyle=1" value="IF COMPLETION" vertex="1">
+ <mxGeometry relative="1" x="-0.1394" y="-1" as="geometry">
+ <mxPoint as="offset" />
</mxGeometry>
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-32" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;gradientColor=#97d077;strokeColor=#82b366;" value="ResultC" vertex="1">
- <mxGeometry height="50" width="70" x="445" y="535" as="geometry" />
+ <mxCell id="eKziOQrJA7Vm6SEomWln-54" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#cdeb8b;strokeColor=#36393d;" value="STDOUT" vertex="1">
+ <mxGeometry height="60" width="120" x="1050" y="230" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-42" edge="1" parent="1" source="T62yhzIGDhOwbh_DlgYY-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;curved=1;" target="T62yhzIGDhOwbh_DlgYY-41">
+ <mxCell id="eKziOQrJA7Vm6SEomWln-58" parent="1" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;fillColor=#cdeb8b;strokeColor=#36393d;" value="Terminal" vertex="1">
+ <mxGeometry height="60" width="120" x="1200" y="230" as="geometry" />
+ </mxCell>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-71" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-66" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="eKziOQrJA7Vm6SEomWln-51">
<mxGeometry relative="1" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-55" connectable="0" parent="T62yhzIGDhOwbh_DlgYY-42" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="Render" vertex="1">
- <mxGeometry relative="1" x="-0.2875" y="12" as="geometry">
- <mxPoint x="-29" y="-38" as="offset" />
- </mxGeometry>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-66" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d0cee2;strokeColor=#56517e;" value="Comp Func" vertex="1">
+ <mxGeometry height="40" width="80" x="800" y="320" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-35" parent="1" style="ellipse;whiteSpace=wrap;html=1;fillColor=#fff2cc;gradientColor=#ffd966;strokeColor=#d6b656;" value="RendererA" vertex="1">
- <mxGeometry height="80" width="80" x="130" y="620" as="geometry" />
+ <mxCell id="eKziOQrJA7Vm6SEomWln-67" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1" value="FUNC" vertex="1">
+ <mxGeometry height="30" width="80" x="800" y="290" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-43" edge="1" parent="1" source="T62yhzIGDhOwbh_DlgYY-36" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;curved=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="T62yhzIGDhOwbh_DlgYY-41">
+ <mxCell id="eKziOQrJA7Vm6SEomWln-78" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-73" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="eKziOQrJA7Vm6SEomWln-54">
<mxGeometry relative="1" as="geometry">
- <mxPoint x="300" y="790" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="1010" y="100" />
+ <mxPoint x="1010" y="260" />
+ </Array>
</mxGeometry>
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-56" connectable="0" parent="T62yhzIGDhOwbh_DlgYY-43" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="Render" vertex="1">
- <mxGeometry relative="1" x="-0.5734" y="-11" as="geometry">
- <mxPoint x="11" y="-28" as="offset" />
- </mxGeometry>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-73" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fad7ac;strokeColor=#b46504;" value="JSON" vertex="1">
+ <mxGeometry height="40" width="120" x="840" y="80" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-36" parent="1" style="ellipse;whiteSpace=wrap;html=1;fillColor=#fff2cc;gradientColor=#ffd966;strokeColor=#d6b656;" value="RendererB" vertex="1">
- <mxGeometry height="80" width="80" x="320" y="620" as="geometry" />
+ <mxCell id="eKziOQrJA7Vm6SEomWln-77" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1" value="STRING" vertex="1">
+ <mxGeometry height="30" width="120" x="840" y="50" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-44" edge="1" parent="1" source="T62yhzIGDhOwbh_DlgYY-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;curved=1;" target="T62yhzIGDhOwbh_DlgYY-41">
+ <mxCell id="eKziOQrJA7Vm6SEomWln-88" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-80" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f8cecc;gradientColor=#ea6b66;strokeColor=#FF2020;" target="eKziOQrJA7Vm6SEomWln-86">
<mxGeometry relative="1" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-57" connectable="0" parent="T62yhzIGDhOwbh_DlgYY-44" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="Render" vertex="1">
- <mxGeometry relative="1" x="-0.2885" y="-5" as="geometry">
- <mxPoint x="47" y="-45" as="offset" />
+ <mxCell id="eKziOQrJA7Vm6SEomWln-80" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;" value="Error" vertex="1">
+ <mxGeometry height="40" width="80" x="600" y="30" as="geometry" />
+ </mxCell>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-81" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1" value="TYPE" vertex="1">
+ <mxGeometry height="30" width="80" x="600" as="geometry" />
+ </mxCell>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-91" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-86" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#f8cecc;gradientColor=#ea6b66;strokeColor=#FF2020;" target="eKziOQrJA7Vm6SEomWln-54">
+ <mxGeometry relative="1" as="geometry">
+ <Array as="points">
+ <mxPoint x="1020" y="50" />
+ <mxPoint x="1020" y="260" />
+ </Array>
</mxGeometry>
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-37" parent="1" style="ellipse;whiteSpace=wrap;html=1;fillColor=#fff2cc;gradientColor=#ffd966;strokeColor=#d6b656;" value="RendererC" vertex="1">
- <mxGeometry height="80" width="80" x="440" y="620" as="geometry" />
+ <mxCell id="eKziOQrJA7Vm6SEomWln-86" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d0cee2;strokeColor=#56517e;" value="Renderer" vertex="1">
+ <mxGeometry height="40" width="80" x="720" y="30" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-41" parent="1" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;fillColor=#dae8fc;strokeColor=#6c8ebf;gradientColor=#7ea6e0;" value="Output" vertex="1">
- <mxGeometry height="40" width="120" x="240" y="820" as="geometry" />
+ <mxCell id="eKziOQrJA7Vm6SEomWln-87" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1" value="FUNC" vertex="1">
+ <mxGeometry height="30" width="80" x="720" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-59" edge="1" parent="1" style="endArrow=none;dashed=1;html=1;rounded=0;" value="">
- <mxGeometry height="50" relative="1" width="50" as="geometry">
- <mxPoint x="560" y="280" as="sourcePoint" />
- <mxPoint x="80" y="280" as="targetPoint" />
- </mxGeometry>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-97" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-95" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="eKziOQrJA7Vm6SEomWln-96">
+ <mxGeometry relative="1" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-60" edge="1" parent="1" style="endArrow=none;dashed=1;html=1;rounded=0;" value="">
- <mxGeometry height="50" relative="1" width="50" as="geometry">
- <mxPoint x="560" y="60" as="sourcePoint" />
- <mxPoint x="80" y="60" as="targetPoint" />
- </mxGeometry>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-95" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#cdeb8b;strokeColor=#36393d;" value="User TAB" vertex="1">
+ <mxGeometry height="40" width="120" x="40" y="320" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-61" edge="1" parent="1" style="endArrow=none;dashed=1;html=1;rounded=0;" value="">
- <mxGeometry height="50" relative="1" width="50" as="geometry">
- <mxPoint x="560" y="760" as="sourcePoint" />
- <mxPoint x="80" y="760" as="targetPoint" />
- </mxGeometry>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-100" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-96" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="eKziOQrJA7Vm6SEomWln-35">
+ <mxGeometry relative="1" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-62" edge="1" parent="1" style="endArrow=none;html=1;rounded=0;" value="">
- <mxGeometry height="50" relative="1" width="50" as="geometry">
- <mxPoint x="80" y="880" as="sourcePoint" />
- <mxPoint x="80" y="60" as="targetPoint" />
- </mxGeometry>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-96" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffcccc;strokeColor=#36393d;" value="Shell Script" vertex="1">
+ <mxGeometry height="40" width="120" x="200" y="320" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-63" edge="1" parent="1" style="endArrow=none;html=1;rounded=0;" value="">
- <mxGeometry height="50" relative="1" width="50" as="geometry">
- <mxPoint x="560" y="880" as="sourcePoint" />
- <mxPoint x="560" y="60" as="targetPoint" />
- </mxGeometry>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-106" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-101" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" target="eKziOQrJA7Vm6SEomWln-105">
+ <mxGeometry relative="1" as="geometry" />
</mxCell>
- <mxCell id="T62yhzIGDhOwbh_DlgYY-64" edge="1" parent="1" style="endArrow=none;dashed=1;html=1;rounded=0;" value="">
- <mxGeometry height="50" relative="1" width="50" as="geometry">
- <mxPoint x="560" y="880" as="sourcePoint" />
- <mxPoint x="80" y="880" as="targetPoint" />
- </mxGeometry>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-101" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#cdeb8b;strokeColor=#36393d;" value="Suggest" vertex="1">
+ <mxGeometry height="60" width="120" x="1050" y="390" as="geometry" />
+ </mxCell>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-109" edge="1" parent="1" source="eKziOQrJA7Vm6SEomWln-105" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="eKziOQrJA7Vm6SEomWln-95">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="eKziOQrJA7Vm6SEomWln-105" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffcccc;strokeColor=#36393d;" value="Shell Script" vertex="1">
+ <mxGeometry height="40" width="120" x="200" y="480" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
diff --git a/docs/res/graph.html b/docs/res/graph.html
new file mode 100644
index 0000000..dffb9e4
--- /dev/null
+++ b/docs/res/graph.html
@@ -0,0 +1,21 @@
+<!--[if IE
+ ]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9"
+/><![endif]-->
+<!doctype html>
+<html>
+ <head>
+ <title>graph</title>
+ <meta charset="utf-8" />
+ </head>
+ <body>
+ <div
+ class="mxgraph"
+ style="max-width: 100%; border: 1px solid transparent"
+ data-mxgraph='{"highlight":"#0000ff","nav":true,"resize":true,"dark-mode":"light","toolbar":"zoom lightbox","edit":"_blank","xml":"&lt;mxfile host=\"Electron\" agent=\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/29.6.6 Chrome/144.0.7559.236 Electron/40.8.4 Safari/537.36\"&gt;\n &lt;diagram name=\"第 1 页\" id=\"CLQgZkV-SbJ_8hXwUYFR\"&gt;\n &lt;mxGraphModel dx=\"1414\" dy=\"859\" grid=\"1\" gridSize=\"10\" guides=\"1\" tooltips=\"1\" connect=\"1\" arrows=\"1\" fold=\"1\" page=\"1\" pageScale=\"1\" pageWidth=\"827\" pageHeight=\"1169\" math=\"0\" shadow=\"0\"&gt;\n &lt;root&gt;\n &lt;mxCell id=\"0\" /&gt;\n &lt;mxCell id=\"1\" parent=\"0\" /&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-99\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-3\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;\" target=\"eKziOQrJA7Vm6SEomWln-96\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\"&gt;\n &lt;Array as=\"points\"&gt;\n &lt;mxPoint x=\"100\" y=\"280\" /&gt;\n &lt;mxPoint x=\"260\" y=\"280\" /&gt;\n &lt;/Array&gt;\n &lt;/mxGeometry&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-3\" parent=\"1\" style=\"rounded=1;whiteSpace=wrap;html=1;fillColor=#fad7ac;strokeColor=#b46504;\" value=\"User Input\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"40\" width=\"120\" x=\"40\" y=\"160\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-6\" parent=\"1\" style=\"rounded=0;whiteSpace=wrap;html=1;fillColor=#f9f7ed;strokeColor=#36393d;\" value=\"\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"140\" width=\"140\" x=\"190\" y=\"110\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-14\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-4\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;curved=1;\" target=\"eKziOQrJA7Vm6SEomWln-11\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-4\" parent=\"1\" style=\"rounded=1;whiteSpace=wrap;html=1;fillColor=#eeeeee;strokeColor=#36393d;\" value=\"Compile-Time\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"40\" width=\"120\" x=\"200\" y=\"120\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-13\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-5\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;curved=1;\" target=\"eKziOQrJA7Vm6SEomWln-11\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-5\" parent=\"1\" style=\"rounded=1;whiteSpace=wrap;html=1;fillColor=#eeeeee;strokeColor=#36393d;\" value=\"Runtime\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"40\" width=\"120\" x=\"200\" y=\"200\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-7\" parent=\"1\" style=\"text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1\" value=\"Dispatch\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"30\" width=\"140\" x=\"190\" y=\"80\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-8\" parent=\"1\" style=\"text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;\" value=\"OR\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"30\" width=\"140\" x=\"190\" y=\"165\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-9\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-3\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;curved=1;\" target=\"eKziOQrJA7Vm6SEomWln-4\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-10\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-3\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;curved=1;\" target=\"eKziOQrJA7Vm6SEomWln-5\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-20\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-11\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;\" target=\"eKziOQrJA7Vm6SEomWln-16\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-36\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-11\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;\" target=\"eKziOQrJA7Vm6SEomWln-34\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-38\" connectable=\"0\" parent=\"eKziOQrJA7Vm6SEomWln-36\" style=\"edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];\" value=\"&amp;quot;--help&amp;quot;\" vertex=\"1\"&gt;\n &lt;mxGeometry relative=\"1\" x=\"0.421\" y=\"-2\" as=\"geometry\"&gt;\n &lt;mxPoint as=\"offset\" /&gt;\n &lt;/mxGeometry&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-11\" parent=\"1\" style=\"rounded=1;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;\" value=\"Entry\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"40\" width=\"80\" x=\"360\" y=\"160\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-22\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-16\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;\" target=\"eKziOQrJA7Vm6SEomWln-17\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-82\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-16\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#f8cecc;gradientColor=#ea6b66;strokeColor=#FF2020;\" target=\"eKziOQrJA7Vm6SEomWln-80\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-83\" connectable=\"0\" parent=\"eKziOQrJA7Vm6SEomWln-82\" style=\"edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];\" value=\"route\" vertex=\"1\"&gt;\n &lt;mxGeometry relative=\"1\" x=\"0.0646\" y=\"-1\" as=\"geometry\"&gt;\n &lt;mxPoint as=\"offset\" /&gt;\n &lt;/mxGeometry&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-16\" parent=\"1\" style=\"rounded=1;whiteSpace=wrap;html=1;fillColor=#d0cee2;strokeColor=#56517e;\" value=\"Chain\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"40\" width=\"80\" x=\"480\" y=\"160\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-26\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-17\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;\" target=\"eKziOQrJA7Vm6SEomWln-24\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-75\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-17\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;\" target=\"eKziOQrJA7Vm6SEomWln-73\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\"&gt;\n &lt;Array as=\"points\"&gt;\n &lt;mxPoint x=\"700\" y=\"180\" /&gt;\n &lt;mxPoint x=\"700\" y=\"100\" /&gt;\n &lt;/Array&gt;\n &lt;/mxGeometry&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-76\" connectable=\"0\" parent=\"eKziOQrJA7Vm6SEomWln-75\" style=\"edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];\" value=\"&amp;quot;--json&amp;quot;\" vertex=\"1\"&gt;\n &lt;mxGeometry relative=\"1\" x=\"0.3463\" as=\"geometry\"&gt;\n &lt;mxPoint as=\"offset\" /&gt;\n &lt;/mxGeometry&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-17\" parent=\"1\" style=\"rounded=1;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;\" value=\"Next\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"40\" width=\"80\" x=\"600\" y=\"160\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-18\" parent=\"1\" style=\"text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1\" value=\"STRING\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"30\" width=\"120\" x=\"40\" y=\"130\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-19\" parent=\"1\" style=\"text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1\" value=\"TYPE\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"30\" width=\"80\" x=\"360\" y=\"130\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-21\" parent=\"1\" style=\"text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1\" value=\"FUNC\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"30\" width=\"80\" x=\"480\" y=\"130\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-23\" parent=\"1\" style=\"text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1\" value=\"TYPE\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"30\" width=\"80\" x=\"600\" y=\"130\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-30\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-24\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;\" target=\"eKziOQrJA7Vm6SEomWln-27\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-24\" parent=\"1\" style=\"rounded=1;whiteSpace=wrap;html=1;fillColor=#d0cee2;strokeColor=#56517e;\" value=\"Renderer\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"40\" width=\"80\" x=\"720\" y=\"160\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-25\" parent=\"1\" style=\"text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1\" value=\"FUNC\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"30\" width=\"80\" x=\"720\" y=\"130\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-55\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-27\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;\" target=\"eKziOQrJA7Vm6SEomWln-54\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\"&gt;\n &lt;Array as=\"points\"&gt;\n &lt;mxPoint x=\"1000\" y=\"180\" /&gt;\n &lt;mxPoint x=\"1000\" y=\"260\" /&gt;\n &lt;/Array&gt;\n &lt;/mxGeometry&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-27\" parent=\"1\" style=\"rounded=1;whiteSpace=wrap;html=1;fillColor=#fad7ac;strokeColor=#b46504;\" value=\"RenderResult\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"40\" width=\"120\" x=\"840\" y=\"160\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-28\" parent=\"1\" style=\"text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1\" value=\"STRING\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"30\" width=\"120\" x=\"840\" y=\"130\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-57\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-34\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;\" target=\"eKziOQrJA7Vm6SEomWln-54\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-34\" parent=\"1\" style=\"rounded=1;whiteSpace=wrap;html=1;fillColor=#d0cee2;strokeColor=#56517e;\" value=\"Help\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"40\" width=\"80\" x=\"480\" y=\"240\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-35\" parent=\"1\" style=\"rounded=1;whiteSpace=wrap;html=1;fillColor=#f9f7ed;strokeColor=#36393d;\" value=\"Completion\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"40\" width=\"80\" x=\"480\" y=\"320\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-40\" parent=\"1\" style=\"text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1\" value=\"FUNC\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"30\" width=\"80\" x=\"480\" y=\"210\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-41\" parent=\"1\" style=\"text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1\" value=\"DISPATCHER\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"30\" width=\"80\" x=\"480\" y=\"290\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-42\" parent=\"1\" style=\"rounded=0;whiteSpace=wrap;html=1;fillColor=#f9f7ed;strokeColor=#36393d;\" value=\"\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"140\" width=\"140\" x=\"600\" y=\"320\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-43\" parent=\"1\" style=\"rounded=1;whiteSpace=wrap;html=1;fillColor=#eeeeee;strokeColor=#36393d;\" value=\"Compile-Time\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"40\" width=\"120\" x=\"610\" y=\"330\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-44\" parent=\"1\" style=\"rounded=1;whiteSpace=wrap;html=1;fillColor=#eeeeee;strokeColor=#36393d;\" value=\"Runtime\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"40\" width=\"120\" x=\"610\" y=\"410\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-45\" parent=\"1\" style=\"text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1\" value=\"Dispatch\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"30\" width=\"140\" x=\"600\" y=\"290\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-70\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-46\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;\" target=\"eKziOQrJA7Vm6SEomWln-66\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-46\" parent=\"1\" style=\"text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;\" value=\"OR\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"30\" width=\"140\" x=\"600\" y=\"375\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-49\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-35\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;\" target=\"eKziOQrJA7Vm6SEomWln-43\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-50\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-35\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;\" target=\"eKziOQrJA7Vm6SEomWln-44\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-72\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-51\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;\" target=\"eKziOQrJA7Vm6SEomWln-54\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-51\" parent=\"1\" style=\"rounded=1;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;\" value=\"Suggest\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"40\" width=\"80\" x=\"920\" y=\"320\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-53\" parent=\"1\" style=\"text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1\" value=\"TYPE\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"30\" width=\"80\" x=\"920\" y=\"290\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-59\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-54\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;\" target=\"eKziOQrJA7Vm6SEomWln-58\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-102\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-54\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;\" target=\"eKziOQrJA7Vm6SEomWln-101\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-103\" connectable=\"0\" parent=\"eKziOQrJA7Vm6SEomWln-102\" style=\"edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontStyle=1\" value=\"IF COMPLETION\" vertex=\"1\"&gt;\n &lt;mxGeometry relative=\"1\" x=\"-0.1394\" y=\"-1\" as=\"geometry\"&gt;\n &lt;mxPoint as=\"offset\" /&gt;\n &lt;/mxGeometry&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-54\" parent=\"1\" style=\"rounded=1;whiteSpace=wrap;html=1;fillColor=#cdeb8b;strokeColor=#36393d;\" value=\"STDOUT\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"60\" width=\"120\" x=\"1050\" y=\"230\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-58\" parent=\"1\" style=\"shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;fillColor=#cdeb8b;strokeColor=#36393d;\" value=\"Terminal\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"60\" width=\"120\" x=\"1200\" y=\"230\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-71\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-66\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;\" target=\"eKziOQrJA7Vm6SEomWln-51\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-66\" parent=\"1\" style=\"rounded=1;whiteSpace=wrap;html=1;fillColor=#d0cee2;strokeColor=#56517e;\" value=\"Comp Func\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"40\" width=\"80\" x=\"800\" y=\"320\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-67\" parent=\"1\" style=\"text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1\" value=\"FUNC\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"30\" width=\"80\" x=\"800\" y=\"290\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-78\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-73\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;\" target=\"eKziOQrJA7Vm6SEomWln-54\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\"&gt;\n &lt;Array as=\"points\"&gt;\n &lt;mxPoint x=\"1010\" y=\"100\" /&gt;\n &lt;mxPoint x=\"1010\" y=\"260\" /&gt;\n &lt;/Array&gt;\n &lt;/mxGeometry&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-73\" parent=\"1\" style=\"rounded=1;whiteSpace=wrap;html=1;fillColor=#fad7ac;strokeColor=#b46504;\" value=\"JSON\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"40\" width=\"120\" x=\"840\" y=\"80\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-77\" parent=\"1\" style=\"text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1\" value=\"STRING\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"30\" width=\"120\" x=\"840\" y=\"50\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-88\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-80\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f8cecc;gradientColor=#ea6b66;strokeColor=#FF2020;\" target=\"eKziOQrJA7Vm6SEomWln-86\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-80\" parent=\"1\" style=\"rounded=1;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;\" value=\"Error\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"40\" width=\"80\" x=\"600\" y=\"30\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-81\" parent=\"1\" style=\"text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1\" value=\"TYPE\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"30\" width=\"80\" x=\"600\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-91\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-86\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#f8cecc;gradientColor=#ea6b66;strokeColor=#FF2020;\" target=\"eKziOQrJA7Vm6SEomWln-54\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\"&gt;\n &lt;Array as=\"points\"&gt;\n &lt;mxPoint x=\"1020\" y=\"50\" /&gt;\n &lt;mxPoint x=\"1020\" y=\"260\" /&gt;\n &lt;/Array&gt;\n &lt;/mxGeometry&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-86\" parent=\"1\" style=\"rounded=1;whiteSpace=wrap;html=1;fillColor=#d0cee2;strokeColor=#56517e;\" value=\"Renderer\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"40\" width=\"80\" x=\"720\" y=\"30\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-87\" parent=\"1\" style=\"text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1\" value=\"FUNC\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"30\" width=\"80\" x=\"720\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-97\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-95\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;\" target=\"eKziOQrJA7Vm6SEomWln-96\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-95\" parent=\"1\" style=\"rounded=1;whiteSpace=wrap;html=1;fillColor=#cdeb8b;strokeColor=#36393d;\" value=\"User TAB\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"40\" width=\"120\" x=\"40\" y=\"320\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-100\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-96\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;\" target=\"eKziOQrJA7Vm6SEomWln-35\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-96\" parent=\"1\" style=\"rounded=1;whiteSpace=wrap;html=1;fillColor=#ffcccc;strokeColor=#36393d;\" value=\"Shell Script\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"40\" width=\"120\" x=\"200\" y=\"320\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-106\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-101\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;\" target=\"eKziOQrJA7Vm6SEomWln-105\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-101\" parent=\"1\" style=\"rounded=1;whiteSpace=wrap;html=1;fillColor=#cdeb8b;strokeColor=#36393d;\" value=\"Suggest\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"60\" width=\"120\" x=\"1050\" y=\"390\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-109\" edge=\"1\" parent=\"1\" source=\"eKziOQrJA7Vm6SEomWln-105\" style=\"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;\" target=\"eKziOQrJA7Vm6SEomWln-95\"&gt;\n &lt;mxGeometry relative=\"1\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;mxCell id=\"eKziOQrJA7Vm6SEomWln-105\" parent=\"1\" style=\"rounded=1;whiteSpace=wrap;html=1;fillColor=#ffcccc;strokeColor=#36393d;\" value=\"Shell Script\" vertex=\"1\"&gt;\n &lt;mxGeometry height=\"40\" width=\"120\" x=\"200\" y=\"480\" as=\"geometry\" /&gt;\n &lt;/mxCell&gt;\n &lt;/root&gt;\n &lt;/mxGraphModel&gt;\n &lt;/diagram&gt;\n&lt;/mxfile&gt;\n"}'
+ ></div>
+ <script
+ type="text/javascript"
+ src="https://viewer.diagrams.net/js/viewer-static.min.js"
+ ></script>
+ </body>
+</html>
diff --git a/docs/res/graph.png b/docs/res/graph.png
index c942f02..ed5ee10 100644
--- a/docs/res/graph.png
+++ b/docs/res/graph.png
Binary files differ
diff --git a/mingling/README.md b/mingling/README.md
index 2f90018..c20955a 100644
--- a/mingling/README.md
+++ b/mingling/README.md
@@ -216,7 +216,7 @@ Mingling abstracts command execution into the following parts:
<summary>Architecture Diagram (click to expand)</summary>
<p align="center">
<a href="https://github.com/CatilGrass/mingling">
- <img alt="Mingling" src="docs/res/graph.png" width="75%">
+ <img alt="Mingling" src="docs/res/graph.png" width="100%">
</a>
</p>
</details>