-
Notifications
You must be signed in to change notification settings - Fork 0
/
ClassDiagram.drawio
183 lines (183 loc) · 21.4 KB
/
ClassDiagram.drawio
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
<mxfile host="app.diagrams.net" modified="2020-10-26T01:48:37.951Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36" etag="gKS89e8QIu2SY-3kLe5x" version="13.8.0" type="github">
<diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">
<mxGraphModel dx="1590" dy="774" 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="WIyWlLk6GJQsqaUBKTNV-0" />
<mxCell id="WIyWlLk6GJQsqaUBKTNV-1" parent="WIyWlLk6GJQsqaUBKTNV-0" />
<mxCell id="EiC5z9EAIgZ3hvvaGwU--0" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>Program</b></p><hr size="1"><p style="margin: 0px ; margin-left: 4px">+ field: Type</p><hr size="1"><p style="margin: 0px ; margin-left: 4px">+ ComputeColumtNate(string): string</p><p style="margin: 0px ; margin-left: 4px">+ Reverse(string) : string</p><p style="margin: 0px ; margin-left: 4px">+ PrintColumnName(int) : string</p><p style="margin: 0px ; margin-left: 4px">+ ParseIdentifier</p><p style="margin: 0px ; margin-left: 4px">+ Main() : void</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="50" y="150" width="220" height="140" as="geometry" />
</mxCell>
<mxCell id="EiC5z9EAIgZ3hvvaGwU--1" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>Form1</b></p><hr size="1"><p style="margin: 0px ; margin-left: 4px">+ CurrentCell: Cell</p><p style="margin: 0px ; margin-left: 4px">+ TableIdentifier : Dictionary&lt;Cell, double&gt;</p><hr size="1"><p style="margin: 0px ; margin-left: 4px">+ Form1()</p><p style="margin: 0px ; margin-left: 4px"><span>- Form1_Load(object, EventArgs) : void</span></p><p style="margin: 0px ; margin-left: 4px"><span>+ IsCyclic(Cell) : bool</span></p><p style="margin: 0px ; margin-left: 4px">- InitializeDataGridView(int, int) : void</p><p style="margin: 0px ; margin-left: 4px">- CreateTableBtn_Click</p><p style="margin: 0px ; margin-left: 4px">- AddARow(int) : void</p><p style="margin: 0px ; margin-left: 4px">- AddAColumn(int) : void</p><p style="margin: 0px ; margin-left: 4px">- AddRow_Click(object, EventArgs) : void</p><p style="margin: 0px ; margin-left: 4px">-&nbsp;<span>AddColumb_Click(object, EventArgs) : void</span></p><div><p style="margin: 0px 0px 0px 4px">- DelRowBtn_Click(object, EventArgs) : void</p></div><div><div><p style="margin: 0px 0px 0px 4px">- DelColBtn_Click(object, EventArgs) : void</p><p style="margin: 0px 0px 0px 4px">- ExportBtn_Click(object, EventArgs) : void</p><p style="margin: 0px 0px 0px 4px">- ImportBtn_Click(object, EventArgs) : void<br></p><p style="margin: 0px 0px 0px 4px">- ReseaseObject(obj) : void</p><div><p style="margin: 0px 0px 0px 4px">- UpdateCellBtn_Click(object, EventArgs) : void</p><div><p style="margin: 0px 0px 0px 4px">- InfoBtn_Click(object, EventArgs) : void</p></div><div><br></div></div><div><br></div></div><div><br></div></div><p style="margin: 0px ; margin-left: 4px"><br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="380" y="110" width="260" height="299" as="geometry" />
</mxCell>
<mxCell id="EiC5z9EAIgZ3hvvaGwU--2" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>ErrorForm</b></p><hr size="1"><p style="margin: 0px ; margin-left: 4px"><span>+ ErrorForm(string) : void</span><br></p><p style="margin: 0px ; margin-left: 4px"><br></p><div><div><br></div></div><p style="margin: 0px ; margin-left: 4px"><br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="70" y="449" width="260" height="60" as="geometry" />
</mxCell>
<mxCell id="EiC5z9EAIgZ3hvvaGwU--3" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>InfoForm</b></p><hr size="1"><p style="margin: 0px ; margin-left: 4px"><span>+ InfoForm() : void</span></p><div><div><br></div></div><p style="margin: 0px ; margin-left: 4px"><br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="545" y="509" width="260" height="60" as="geometry" />
</mxCell>
<mxCell id="EiC5z9EAIgZ3hvvaGwU--4" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>Calculator</b></p><hr size="1"><p style="margin: 0px ; margin-left: 4px"><span>+ Evaluate(string) : double</span></p><div><div><br></div></div><p style="margin: 0px ; margin-left: 4px"><br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="70" y="545" width="260" height="60" as="geometry" />
</mxCell>
<mxCell id="EiC5z9EAIgZ3hvvaGwU--6" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>Lab1Visitor</b></p><hr size="1"><p style="margin: 0px ; margin-left: 4px">+ VisitCompileUnit(Lab1Parser.CompileInitContext) : double</p><p style="margin: 0px 0px 0px 4px">+ VisitNumberExpr(Lab1Parser.NumberExprContext) : double</p><p style="margin: 0px 0px 0px 4px">+ VisitIdentifierExpr(Lab1Parser.IdentifierExprContext) : double</p><p style="margin: 0px 0px 0px 4px">+ VisitParenthesizedExpr(Lab1Parser.ParenthesizedExprContext) : double</p><p style="margin: 0px 0px 0px 4px">+ VisitExponentialExpr(Lab1Parser.ExponentialExprContext) : double</p><p style="margin: 0px 0px 0px 4px">+ VisitMultiplicativeExpr(Lab1Parser.MultiplicativeExprContext) : double</p>&nbsp;+ VisitRelationalExpr(Lab1Parser.RelationalExprContext) : double<br class="Apple-interchange-newline">&nbsp;+ VisitAdditiveExpr(Lab1Parser.AdditiveExprContext) : double<br>&nbsp;+ VisitEqualityExpr(Lab1Parser.EqualityExprContext) : double<br><div><br></div><div><br></div><div><br></div><div><br></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="20" y="790" width="420" height="180" as="geometry" />
</mxCell>
<mxCell id="EiC5z9EAIgZ3hvvaGwU--7" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;exitX=-0.015;exitY=0.839;exitDx=0;exitDy=0;exitPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="EiC5z9EAIgZ3hvvaGwU--1" target="EiC5z9EAIgZ3hvvaGwU--2" edge="1">
<mxGeometry x="0.408" y="140" relative="1" as="geometry">
<mxPoint x="290" y="369" as="sourcePoint" />
<mxPoint x="310" y="455" as="targetPoint" />
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="EiC5z9EAIgZ3hvvaGwU--10" value="0...n" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="210" y="429" width="40" height="20" as="geometry" />
</mxCell>
<mxCell id="EiC5z9EAIgZ3hvvaGwU--11" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;entryX=0;entryY=0.704;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.25;exitY=0;exitDx=0;exitDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="EiC5z9EAIgZ3hvvaGwU--2" target="EiC5z9EAIgZ3hvvaGwU--1" edge="1">
<mxGeometry x="-0.2877" y="-121" relative="1" as="geometry">
<mxPoint x="130" y="380" as="sourcePoint" />
<mxPoint x="350" y="341" as="targetPoint" />
<Array as="points">
<mxPoint x="135" y="341" />
<mxPoint x="165" y="341" />
<mxPoint x="165" y="339" />
<mxPoint x="230" y="339" />
<mxPoint x="230" y="341" />
</Array>
<mxPoint x="-15" y="-1" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="EiC5z9EAIgZ3hvvaGwU--12" value="0...n" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="340" y="310" width="40" height="20" as="geometry" />
</mxCell>
<mxCell id="EiC5z9EAIgZ3hvvaGwU--13" value="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="680" y="489" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="EiC5z9EAIgZ3hvvaGwU--14" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="EiC5z9EAIgZ3hvvaGwU--1" target="EiC5z9EAIgZ3hvvaGwU--3" edge="1">
<mxGeometry x="-0.6889" y="-15" relative="1" as="geometry">
<mxPoint x="639.9999999999999" y="499" as="sourcePoint" />
<mxPoint x="540" y="459" as="targetPoint" />
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="EiC5z9EAIgZ3hvvaGwU--16" value="" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;entryX=0.915;entryY=1.009;entryDx=0;entryDy=0;entryPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="EiC5z9EAIgZ3hvvaGwU--3" target="EiC5z9EAIgZ3hvvaGwU--1" edge="1">
<mxGeometry x="-0.3524" y="-54" relative="1" as="geometry">
<mxPoint x="380" y="359" as="sourcePoint" />
<mxPoint x="540" y="359" as="targetPoint" />
<mxPoint x="25" y="7" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="EiC5z9EAIgZ3hvvaGwU--17" value="0...n" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="620" y="409" width="40" height="20" as="geometry" />
</mxCell>
<mxCell id="EiC5z9EAIgZ3hvvaGwU--18" value="0...n" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="560" y="489" width="40" height="20" as="geometry" />
</mxCell>
<mxCell id="EiC5z9EAIgZ3hvvaGwU--19" value="Control Object" style="ellipse;shape=umlControl;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="475" y="30" width="70" height="80" as="geometry" />
</mxCell>
<mxCell id="EiC5z9EAIgZ3hvvaGwU--20" value="Boundary Object" style="shape=umlBoundary;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="110" y="70" width="100" height="80" as="geometry" />
</mxCell>
<mxCell id="EiC5z9EAIgZ3hvvaGwU--21" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;entryX=1;entryY=0.75;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="EiC5z9EAIgZ3hvvaGwU--1" target="EiC5z9EAIgZ3hvvaGwU--4" edge="1">
<mxGeometry x="-0.8391" y="10" relative="1" as="geometry">
<mxPoint x="380" y="460" as="sourcePoint" />
<mxPoint x="460" y="600" as="targetPoint" />
<Array as="points">
<mxPoint x="410" y="520" />
<mxPoint x="380" y="520" />
<mxPoint x="380" y="580" />
<mxPoint x="375" y="580" />
<mxPoint x="375" y="590" />
</Array>
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="EiC5z9EAIgZ3hvvaGwU--23" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.645;entryY=0.001;entryDx=0;entryDy=0;entryPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="EiC5z9EAIgZ3hvvaGwU--4" target="EiC5z9EAIgZ3hvvaGwU--6" edge="1">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="220" y="720" as="sourcePoint" />
<mxPoint x="70" y="800" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="EiC5z9EAIgZ3hvvaGwU--24" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;" parent="WIyWlLk6GJQsqaUBKTNV-1" edge="1">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="270" y="210" as="sourcePoint" />
<mxPoint x="380" y="210" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="EiC5z9EAIgZ3hvvaGwU--25" value="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="260" y="770" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="EiC5z9EAIgZ3hvvaGwU--26" value="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="340" y="585" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="Y1Qi1rd_7yy1WZsH-nH0-0" value="Cell" style="swimlane;fontStyle=1;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="530" y="690" width="225" height="130" as="geometry" />
</mxCell>
<mxCell id="Y1Qi1rd_7yy1WZsH-nH0-1" value="+ position: string" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Y1Qi1rd_7yy1WZsH-nH0-0">
<mxGeometry y="26" width="225" height="26" as="geometry" />
</mxCell>
<mxCell id="Y1Qi1rd_7yy1WZsH-nH0-2" value="+ Dependencies: List<Cell>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Y1Qi1rd_7yy1WZsH-nH0-0">
<mxGeometry y="52" width="225" height="26" as="geometry" />
</mxCell>
<mxCell id="Y1Qi1rd_7yy1WZsH-nH0-3" value="+ TemporaryDependencies: List<Cell>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Y1Qi1rd_7yy1WZsH-nH0-0">
<mxGeometry y="78" width="225" height="26" as="geometry" />
</mxCell>
<mxCell id="Y1Qi1rd_7yy1WZsH-nH0-4" value="+ Expression: string" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Y1Qi1rd_7yy1WZsH-nH0-0">
<mxGeometry y="104" width="225" height="26" as="geometry" />
</mxCell>
<mxCell id="Y1Qi1rd_7yy1WZsH-nH0-13" value="CellEqualityComparer : IEqualityComparer<Cell>" style="swimlane;fontStyle=1;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="495" y="890" width="310" height="78" as="geometry" />
</mxCell>
<mxCell id="Y1Qi1rd_7yy1WZsH-nH0-14" value="+ Equals(Cell, Cell): bool" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Y1Qi1rd_7yy1WZsH-nH0-13">
<mxGeometry y="26" width="310" height="26" as="geometry" />
</mxCell>
<mxCell id="Y1Qi1rd_7yy1WZsH-nH0-15" value="+ GetHashCode(Cell): int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="Y1Qi1rd_7yy1WZsH-nH0-13">
<mxGeometry y="52" width="310" height="26" as="geometry" />
</mxCell>
<mxCell id="Y1Qi1rd_7yy1WZsH-nH0-17" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;exitX=0.427;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="Y1Qi1rd_7yy1WZsH-nH0-4" target="Y1Qi1rd_7yy1WZsH-nH0-13">
<mxGeometry x="0.0948" y="15" relative="1" as="geometry">
<mxPoint x="630" y="840" as="sourcePoint" />
<mxPoint x="560" y="800" as="targetPoint" />
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="Y1Qi1rd_7yy1WZsH-nH0-18" value="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="660" y="870" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="Y1Qi1rd_7yy1WZsH-nH0-19" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="0.2778" y="200" relative="1" as="geometry">
<mxPoint x="480" y="410" as="sourcePoint" />
<mxPoint x="560" y="690" as="targetPoint" />
<Array as="points">
<mxPoint x="480" y="630" />
<mxPoint x="550" y="630" />
<mxPoint x="550" y="660" />
<mxPoint x="560" y="660" />
</Array>
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="Y1Qi1rd_7yy1WZsH-nH0-20" value="0..n" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="520" y="670" width="40" height="20" as="geometry" />
</mxCell>
<mxCell id="Y1Qi1rd_7yy1WZsH-nH0-21" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="Y1Qi1rd_7yy1WZsH-nH0-0" target="EiC5z9EAIgZ3hvvaGwU--1">
<mxGeometry x="-0.9516" y="-7" relative="1" as="geometry">
<mxPoint x="640" y="640" as="sourcePoint" />
<mxPoint x="560" y="550" as="targetPoint" />
<Array as="points">
<mxPoint x="643" y="610" />
<mxPoint x="510" y="610" />
</Array>
<mxPoint x="1" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="Y1Qi1rd_7yy1WZsH-nH0-22" value="0..n" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="510" y="409" width="40" height="20" as="geometry" />
</mxCell>
<mxCell id="Y1Qi1rd_7yy1WZsH-nH0-23" value="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="360" y="180" width="20" height="20" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>