-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuml_terv.drawio
163 lines (163 loc) · 22 KB
/
uml_terv.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
<mxfile host="app.diagrams.net" modified="2024-04-09T16:45:25.005Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36" etag="j1KOpdLqTqmGi7J-EEP8" version="24.2.2" type="device">
<diagram name="Page-1" id="929967ad-93f9-6ef4-fab6-5d389245f69c">
<mxGraphModel dx="2049" dy="1103" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1.5" pageWidth="1169" pageHeight="826" background="none" math="0" shadow="0">
<root>
<mxCell id="0" style=";html=1;" />
<mxCell id="1" style=";html=1;" parent="0" />
<mxCell id="1672d66443f91eb5-23" value="Gaál Botond - NHF Terv" style="text;strokeColor=none;fillColor=none;html=1;fontSize=24;fontStyle=1;verticalAlign=middle;align=center;" parent="1" vertex="1">
<mxGeometry x="122" y="130" width="1510" height="40" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-16" value="<i>StringBase</i>" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="792" y="190" width="340" height="260" as="geometry">
<mxRectangle x="540" y="720" width="100" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-17" value="# len: size_t<div># str: char*</div>" 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;whiteSpace=wrap;html=1;" parent="ww80NGI2TLnyyEXgtIBK-16" vertex="1">
<mxGeometry y="26" width="340" height="34" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-18" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="ww80NGI2TLnyyEXgtIBK-16" vertex="1">
<mxGeometry y="60" width="340" height="8" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-19" value="+ get_len(): size_t&nbsp;<div>+ c_str(): const char*&nbsp;</div><div>+ ~StringBase() &lt;&lt;virtual&gt;&gt;</div><div>+ StringBase(const char* str = "")</div><div>+ StringBase(const char c)</div><div>+ StringBase(const StringBase&amp; other)</div><div>+ operator[](const size_t idx): char&amp;</div><div>+ operator[](const size_t idx): const char&amp;&nbsp;</div><div><span style="background-color: initial;">+ operator==(const StringBase&amp; rhs): bool&nbsp;</span></div><div><div>+ operator!=(const StringBase&amp; rhs): bool&nbsp;</div></div><div>+ begin(): iterator</div><div><span style="background-color: initial;">+ end(): iterator</span></div><div><br></div>" 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;whiteSpace=wrap;html=1;" parent="ww80NGI2TLnyyEXgtIBK-16" vertex="1">
<mxGeometry y="68" width="340" height="192" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-21" value="StringBase::iterator" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="1182" y="330" width="220" height="150" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-22" value="- ptr: char*" 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;whiteSpace=wrap;html=1;" parent="ww80NGI2TLnyyEXgtIBK-21" vertex="1">
<mxGeometry y="26" width="220" height="26" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-23" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="ww80NGI2TLnyyEXgtIBK-21" vertex="1">
<mxGeometry y="52" width="220" height="8" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-24" value="+ iterator(char* ptr = NULL)<div>+ operator++(): iterator&amp;</div><div><span style="background-color: initial;">+ operator*(): char&amp;&nbsp;</span></div><div>+ operator==(const iterator&amp; rhs): bool&nbsp;</div><div>+ operator!=(const iterator&amp; rhs): bool&nbsp;</div>" 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;whiteSpace=wrap;html=1;" parent="ww80NGI2TLnyyEXgtIBK-21" vertex="1">
<mxGeometry y="60" width="220" height="90" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-32" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>String</b></p><hr size="1" style="border-style:solid;"><p style="margin:0px;margin-left:4px;"></p><p style="margin:0px;margin-left:4px;">+ String(const char* str = "")</p><p style="margin:0px;margin-left:4px;">+ String(const char&nbsp; c)</p><p style="margin:0px;margin-left:4px;">+ String(const StringBase&amp; other)</p><p style="margin:0px;margin-left:4px;"><span style="background-color: initial;">+ operator=(const char rhs): String&amp;</span><br></p><p style="margin:0px;margin-left:4px;">+ operator=(const char* rhs): String&amp;<br></p><p style="margin:0px;margin-left:4px;">+ operator=(const StringBase&amp; rhs): String&amp;<br></p><p style="margin:0px;margin-left:4px;">+ operator=(const String&amp; rhs): String&amp;</p><p style="margin:0px;margin-left:4px;">+ operator+(const String&amp; rhs): String&nbsp;</p><p style="margin:0px;margin-left:4px;">+ operator+=(const String&amp; rhs): String&amp;</p>" style="verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="1132" y="510" width="270" height="180" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-33" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;rounded=0;" parent="1" source="ww80NGI2TLnyyEXgtIBK-32" target="ww80NGI2TLnyyEXgtIBK-19" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="792" y="940" as="sourcePoint" />
<mxPoint x="952" y="940" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-25" value="" style="endArrow=open;startArrow=circlePlus;endFill=0;startFill=0;endSize=8;html=1;rounded=0;" parent="1" source="ww80NGI2TLnyyEXgtIBK-24" target="ww80NGI2TLnyyEXgtIBK-19" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="1252" y="572" as="sourcePoint" />
<mxPoint x="1172" y="670" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-35" value="EncryptedString" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="642" y="580" width="420" height="280" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-36" value="- pEncryptor: Encryptor*<div>- password: String</div>" 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;whiteSpace=wrap;html=1;" parent="ww80NGI2TLnyyEXgtIBK-35" vertex="1">
<mxGeometry y="26" width="420" height="44" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-37" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="ww80NGI2TLnyyEXgtIBK-35" vertex="1">
<mxGeometry y="70" width="420" height="8" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-38" value="<div><span style="background-color: initial;">+ EncryptedString(Encryptor* pEncr, const String&amp; pw, const char* str = "")</span><br></div><div>+ EncryptedString(Encryptor* pEncr, const String&amp; pw, const char c)<br></div><div>+ EncryptedString(Encryptor* pEncr, const String&amp; pw, const String&amp; str)<br></div><div>+ EncryptedString(const EncryptedString&amp; other)</div><div>+ ~EncryptedString()</div><div>+ operator=(const StringBase&amp; rhs): EncryptedString&amp;</div><div>+ operator=(const char* rhs): EncryptedString&amp;</div><div>+ operator=(const char c): EncryptedString&amp;</div><div>+ operator=(const EncryptedString&amp; rhs): EncryptedString&amp;</div><div>+ operator+=(const String&amp; rhs): EncryptedString&amp;</div><div>+ set_pw(const String&amp; new_pw, const String&amp; old_pw): void</div><div>+ decode(const String&amp; pw): String&nbsp;</div><div><span style="background-color: initial;">+ setEncryptor(Encryptor* pEnc, const String&amp; pw)</span></div><div><br></div><div><br></div>" 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;whiteSpace=wrap;html=1;" parent="ww80NGI2TLnyyEXgtIBK-35" vertex="1">
<mxGeometry y="78" width="420" height="202" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-39" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;rounded=0;" parent="1" source="ww80NGI2TLnyyEXgtIBK-35" target="ww80NGI2TLnyyEXgtIBK-19" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="872" y="920" as="sourcePoint" />
<mxPoint x="1032" y="920" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-40" value="<i>Encryptor</i>" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="352" y="220" width="250" height="150" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-41" value="<u># first_char: char</u><div><u># last_char: char</u></div>" 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;whiteSpace=wrap;html=1;" parent="ww80NGI2TLnyyEXgtIBK-40" vertex="1">
<mxGeometry y="26" width="250" height="44" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-42" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="ww80NGI2TLnyyEXgtIBK-40" vertex="1">
<mxGeometry y="70" width="250" height="8" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-43" value="<i>+ encode(char c): char = 0 &lt;&lt;virtual&gt;&gt;</i><div><i>+ decode(char c): char = 0 &lt;&lt;virtual&gt;&gt;<br></i></div><div><i>+ clone(): Encryptor* = 0 &lt;&lt;virtual&gt;&gt;</i></div><div><i>+ cloneInverse(): Encryptor* = 0 &lt;&lt;virtual&gt;&gt;</i></div>" 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;whiteSpace=wrap;html=1;" parent="ww80NGI2TLnyyEXgtIBK-40" vertex="1">
<mxGeometry y="78" width="250" height="72" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-48" value="MyEncryptor" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="532" y="420" width="160" height="130" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-49" value="- key" 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;whiteSpace=wrap;html=1;" parent="ww80NGI2TLnyyEXgtIBK-48" vertex="1">
<mxGeometry y="26" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-50" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="ww80NGI2TLnyyEXgtIBK-48" vertex="1">
<mxGeometry y="52" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-51" value="<div><span style="background-color: initial;">+ encode(char c): char</span><br></div><div>+ decode(char c): char&nbsp;</div><div>+ clone(): Encryptor*</div><div>+ cloneInverse: Encryptor*&nbsp;</div>" 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;whiteSpace=wrap;html=1;" parent="ww80NGI2TLnyyEXgtIBK-48" vertex="1">
<mxGeometry y="60" width="160" height="70" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-52" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;rounded=0;exitX=0.399;exitY=0.033;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="ww80NGI2TLnyyEXgtIBK-48" target="ww80NGI2TLnyyEXgtIBK-43" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="132" y="658.6" as="sourcePoint" />
<mxPoint x="292" y="658.6" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-58" value="EncryptorList" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="352" y="580" width="250" height="200" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-59" value="- head: Node*<div>- tail: Node*</div>" 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;whiteSpace=wrap;html=1;" parent="ww80NGI2TLnyyEXgtIBK-58" vertex="1">
<mxGeometry y="26" width="250" height="34" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-60" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="ww80NGI2TLnyyEXgtIBK-58" vertex="1">
<mxGeometry y="60" width="250" height="8" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-61" value="+ EncryptorList()<div>+ EncryptorList(const EncryptorList&amp; other)</div><div>+ ~EncryptorList()</div><div><span style="background-color: initial;">+ append(Encryptor* pEncr): void</span><br></div><div>+ clone(): Encryptor*&nbsp;</div><div>+ cloneInverse(): Encryptor*&nbsp;</div><div>+ encode(char c): char</div><div>+ decode(char c): char&nbsp;</div><div><br></div>" 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;whiteSpace=wrap;html=1;" parent="ww80NGI2TLnyyEXgtIBK-58" vertex="1">
<mxGeometry y="68" width="250" height="132" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-62" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;rounded=0;" parent="1" source="ww80NGI2TLnyyEXgtIBK-58" target="ww80NGI2TLnyyEXgtIBK-40" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="152" y="680" as="sourcePoint" />
<mxPoint x="312" y="680" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-66" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;rounded=0;" parent="1" source="ww80NGI2TLnyyEXgtIBK-40" target="ww80NGI2TLnyyEXgtIBK-35" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="432" y="880" as="sourcePoint" />
<mxPoint x="592" y="880" as="targetPoint" />
<Array as="points">
<mxPoint x="762" y="300" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-67" value="encrypts" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=bottom;" parent="ww80NGI2TLnyyEXgtIBK-66" connectable="0" vertex="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint x="2" y="-1" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-68" value="is encrypted by" style="edgeLabel;resizable=0;html=1;align=right;verticalAlign=bottom;" parent="ww80NGI2TLnyyEXgtIBK-66" connectable="0" vertex="1">
<mxGeometry x="1" relative="1" as="geometry">
<mxPoint x="80" y="-10" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-73" value="ListEncryptor::Node" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="397" y="850" width="160" height="120" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-74" value="+ pEncr: Encryptor*<div>+ next: Node*</div><div>+ prev: Node*</div><div><br></div>" 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;whiteSpace=wrap;html=1;" parent="ww80NGI2TLnyyEXgtIBK-73" vertex="1">
<mxGeometry y="26" width="160" height="54" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-75" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="ww80NGI2TLnyyEXgtIBK-73" vertex="1">
<mxGeometry y="80" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="ww80NGI2TLnyyEXgtIBK-76" value="<div>+ ~Node()</div>" 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;whiteSpace=wrap;html=1;" parent="ww80NGI2TLnyyEXgtIBK-73" vertex="1">
<mxGeometry y="88" width="160" height="32" as="geometry" />
</mxCell>
<mxCell id="yxS8Rb1M3pRRdxjplUIk-1" value="" style="endArrow=diamondThin;endFill=1;endSize=24;html=1;rounded=0;" edge="1" parent="1" source="ww80NGI2TLnyyEXgtIBK-73" target="ww80NGI2TLnyyEXgtIBK-58">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="92" y="900" as="sourcePoint" />
<mxPoint x="252" y="900" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yxS8Rb1M3pRRdxjplUIk-2" value="" style="endArrow=diamondThin;endFill=0;endSize=24;html=1;rounded=0;" edge="1" parent="1" source="ww80NGI2TLnyyEXgtIBK-32" target="ww80NGI2TLnyyEXgtIBK-35">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="1142" y="840" as="sourcePoint" />
<mxPoint x="1302" y="840" as="targetPoint" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>