-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathClasses.drawio
442 lines (442 loc) · 50.9 KB
/
Classes.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
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
<mxfile host="65bd71144e">
<diagram name="Страница — 1" id="Bt4thBoPrSUwoxWzjaqT">
<mxGraphModel dx="1660" dy="1140" 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="uj_38s1KniOL5Ioj-gPl-1" value="Alterator" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="90" y="80" width="100" height="100" as="geometry"/>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-2" value="Message loop" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.start_1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="90" y="230" width="100" height="60" as="geometry"/>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-3" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.24;exitY=0.97;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.24;entryY=0.05;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="uj_38s1KniOL5Ioj-gPl-1" target="uj_38s1KniOL5Ioj-gPl-2" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="390" y="410" as="sourcePoint"/>
<mxPoint x="440" y="360" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-4" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.7;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.692;exitY=-0.042;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="uj_38s1KniOL5Ioj-gPl-2" target="uj_38s1KniOL5Ioj-gPl-1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="340" y="390" as="sourcePoint"/>
<mxPoint x="390" y="340" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-5" value="std:: in" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="50" y="200" width="60" height="30" as="geometry"/>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-6" value="std::out" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="170" y="200" width="60" height="30" as="geometry"/>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-8" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.on-page_reference;" parent="1" vertex="1">
<mxGeometry x="500" y="220" width="80" height="70" as="geometry"/>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-9" value="UsbGuard" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="512.5" y="235" width="55" height="40" as="geometry"/>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-11" value="Message Dispatcher" style="html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="290" y="230" width="110" height="50" as="geometry"/>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-12" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.955;exitY=0.306;exitDx=0;exitDy=0;exitPerimeter=0;entryX=-0.035;entryY=0.423;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="uj_38s1KniOL5Ioj-gPl-2" target="uj_38s1KniOL5Ioj-gPl-11" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="300" y="350" as="sourcePoint"/>
<mxPoint x="350" y="300" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-13" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.982;entryY=0.697;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0;exitY=0.75;exitDx=0;exitDy=0;" parent="1" source="uj_38s1KniOL5Ioj-gPl-11" target="uj_38s1KniOL5Ioj-gPl-2" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="300" y="350" as="sourcePoint"/>
<mxPoint x="350" y="300" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-14" value="Messages" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="210" y="280" width="60" height="30" as="geometry"/>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-16" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.375;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="uj_38s1KniOL5Ioj-gPl-11" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="300" y="350" as="sourcePoint"/>
<mxPoint x="500" y="250" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-19" value="Calls" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="414" y="220" width="60" height="30" as="geometry"/>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-20" value="Lisp Gui" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="210" y="100" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-21" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="uj_38s1KniOL5Ioj-gPl-1" target="uj_38s1KniOL5Ioj-gPl-20" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="300" y="330" as="sourcePoint"/>
<mxPoint x="350" y="280" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-22" value="MessageReader" 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="60" y="590" width="160" height="60" as="geometry"/>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-24" 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="uj_38s1KniOL5Ioj-gPl-22" vertex="1">
<mxGeometry y="26" width="160" height="8" as="geometry"/>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-25" value="+ Loop();" 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="uj_38s1KniOL5Ioj-gPl-22" vertex="1">
<mxGeometry y="34" width="160" height="26" as="geometry"/>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-26" value="Message" 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="130" y="390" width="290" height="134" as="geometry"/>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-27" value="<div>+ action :string<br></div><div>+ objects : string<br></div><div>+ parameters: unordered_map&lt;string,string&gt;</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="uj_38s1KniOL5Ioj-gPl-26" vertex="1">
<mxGeometry y="26" width="290" height="74" as="geometry"/>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-28" 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="uj_38s1KniOL5Ioj-gPl-26" vertex="1">
<mxGeometry y="100" width="290" height="8" as="geometry"/>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-29" value="+ operator &lt;&lt; " 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="uj_38s1KniOL5Ioj-gPl-26" vertex="1">
<mxGeometry y="108" width="290" height="26" as="geometry"/>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-31" value="Dispatcher" 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="333" y="578" width="190" height="84" as="geometry"/>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-33" 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="uj_38s1KniOL5Ioj-gPl-31" vertex="1">
<mxGeometry y="26" width="190" height="8" as="geometry"/>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-34" value="+ Dispatch(Message): 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;whiteSpace=wrap;html=1;" parent="uj_38s1KniOL5Ioj-gPl-31" vertex="1">
<mxGeometry y="34" width="190" height="50" as="geometry"/>
</mxCell>
<mxCell id="uj_38s1KniOL5Ioj-gPl-36" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;exitX=0.581;exitY=-0.008;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.473;entryY=1.036;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="uj_38s1KniOL5Ioj-gPl-31" target="uj_38s1KniOL5Ioj-gPl-29" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="360" y="470" as="sourcePoint"/>
<mxPoint x="520" y="470" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="uCA8H9GpGxLCfmrb8BVQ-10" value="UsbDevice" 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="630" y="170" width="160" height="164" as="geometry"/>
</mxCell>
<mxCell id="uCA8H9GpGxLCfmrb8BVQ-12" 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="uCA8H9GpGxLCfmrb8BVQ-10" vertex="1">
<mxGeometry y="26" width="160" height="8" as="geometry"/>
</mxCell>
<mxCell id="uCA8H9GpGxLCfmrb8BVQ-14" value="+ SerializeForLisp();" 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="uCA8H9GpGxLCfmrb8BVQ-10" vertex="1">
<mxGeometry y="34" width="160" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-83" value="+ vid() :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;whiteSpace=wrap;html=1;" parent="uCA8H9GpGxLCfmrb8BVQ-10" vertex="1">
<mxGeometry y="60" width="160" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-88" value="+ vendor_name():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;whiteSpace=wrap;html=1;" parent="uCA8H9GpGxLCfmrb8BVQ-10" vertex="1">
<mxGeometry y="86" width="160" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-89" value="+ name():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;whiteSpace=wrap;html=1;" parent="uCA8H9GpGxLCfmrb8BVQ-10" vertex="1">
<mxGeometry y="112" width="160" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-91" value="+ hash():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;whiteSpace=wrap;html=1;" parent="uCA8H9GpGxLCfmrb8BVQ-10" vertex="1">
<mxGeometry y="138" width="160" height="26" as="geometry"/>
</mxCell>
<mxCell id="uCA8H9GpGxLCfmrb8BVQ-15" value="Guard" 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="590" y="590" width="340" height="132" as="geometry"/>
</mxCell>
<mxCell id="uCA8H9GpGxLCfmrb8BVQ-17" 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="uCA8H9GpGxLCfmrb8BVQ-15" vertex="1">
<mxGeometry y="26" width="340" height="8" as="geometry"/>
</mxCell>
<mxCell id="uCA8H9GpGxLCfmrb8BVQ-18" value="+ ListCurrentDevices:vector&lt;UsbDevice&gt;" 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="uCA8H9GpGxLCfmrb8BVQ-15" vertex="1">
<mxGeometry y="34" width="340" height="26" as="geometry"/>
</mxCell>
<mxCell id="2" value="+ AllowOrBlockDevice(): 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;whiteSpace=wrap;html=1;" parent="uCA8H9GpGxLCfmrb8BVQ-15" vertex="1">
<mxGeometry y="60" width="340" height="24" as="geometry"/>
</mxCell>
<mxCell id="69" value="+ GetConfigStatus() : ConfigStatus" 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="uCA8H9GpGxLCfmrb8BVQ-15" vertex="1">
<mxGeometry y="84" width="340" height="24" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-82" value="+ ProcessJsonRulesChanges(string msg,bool apply):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;whiteSpace=wrap;html=1;" parent="uCA8H9GpGxLCfmrb8BVQ-15" vertex="1">
<mxGeometry y="108" width="340" height="24" as="geometry"/>
</mxCell>
<mxCell id="uCA8H9GpGxLCfmrb8BVQ-32" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="uj_38s1KniOL5Ioj-gPl-25" target="uj_38s1KniOL5Ioj-gPl-34" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="390" y="570" as="sourcePoint"/>
<mxPoint x="440" y="520" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="uCA8H9GpGxLCfmrb8BVQ-33" value="messages" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="230" y="630" width="60" height="30" as="geometry"/>
</mxCell>
<mxCell id="uCA8H9GpGxLCfmrb8BVQ-35" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;exitX=1.013;exitY=0.163;exitDx=0;exitDy=0;exitPerimeter=0;entryX=-0.002;entryY=0.018;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="uj_38s1KniOL5Ioj-gPl-22" edge="1">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="330" y="550" as="sourcePoint"/>
<mxPoint x="332.6199999999999" y="604.4680000000001" as="targetPoint"/>
<Array as="points">
<mxPoint x="290" y="604"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="uCA8H9GpGxLCfmrb8BVQ-43" value="" style="endArrow=none;html=1;rounded=0;exitX=0.563;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.403;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="uj_38s1KniOL5Ioj-gPl-22" target="uj_38s1KniOL5Ioj-gPl-29" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="600" y="620" as="sourcePoint"/>
<mxPoint x="650" y="570" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="uCA8H9GpGxLCfmrb8BVQ-44" value="creates 0..*" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="120" y="540" width="60" height="30" as="geometry"/>
</mxCell>
<mxCell id="uCA8H9GpGxLCfmrb8BVQ-45" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.24;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="uj_38s1KniOL5Ioj-gPl-34" target="uCA8H9GpGxLCfmrb8BVQ-18" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="520" y="650" as="sourcePoint"/>
<mxPoint x="650" y="570" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="uCA8H9GpGxLCfmrb8BVQ-47" value="Creates 0...*" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="680" y="510" width="60" height="30" as="geometry"/>
</mxCell>
<mxCell id="5" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>SerializableForLisp&lt;Impl&gt;</b></p><p style="margin:0px;margin-left:4px;">+ SerializeForLisp(): vec&lt;str&gt;<br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="730" y="30" width="190" height="60" as="geometry"/>
</mxCell>
<mxCell id="6" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="5" target="uCA8H9GpGxLCfmrb8BVQ-10" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="390" y="250" as="sourcePoint"/>
<mxPoint x="550" y="250" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="7" value="ConfigStatus" 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;" parent="1" vertex="1">
<mxGeometry x="860" y="114" width="340" height="268" as="geometry"/>
</mxCell>
<mxCell id="9" 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="7" vertex="1">
<mxGeometry y="26" width="340" height="8" as="geometry"/>
</mxCell>
<mxCell id="14" value="+ SerializeForLisp();" 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="7" vertex="1">
<mxGeometry y="34" width="340" height="26" as="geometry"/>
</mxCell>
<mxCell id="62" value="+ CheckDaemon(): void" 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;" parent="7" vertex="1">
<mxGeometry y="60" width="340" height="26" as="geometry"/>
</mxCell>
<mxCell id="28" value="return" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;startArrow=none;" parent="7" source="62" target="10" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-50" y="440" as="sourcePoint"/>
<mxPoint x="-170" y="260" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="10" value="+ OverwriteRulesFile(str) :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;" parent="7" vertex="1">
<mxGeometry y="86" width="340" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-78" value="+ ParseGuardRulesFile() : pair<vector<GuardRule>,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;" parent="7" vertex="1">
<mxGeometry y="112" width="340" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-79" value="+ ChangeDaemonStatus(bool active,bool enabled) : 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;" parent="7" vertex="1">
<mxGeometry y="138" width="340" height="26" as="geometry"/>
</mxCell>
<mxCell id="70" value="+ ChangeImplicitPolicy(bool block) : 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;" parent="7" vertex="1">
<mxGeometry y="164" width="340" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-80" value="+ TryToRun(bool run) : 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;" parent="7" vertex="1">
<mxGeometry y="190" width="340" height="26" as="geometry"/>
</mxCell>
<mxCell id="83" value="+ GetAudit();" 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;" vertex="1" parent="7">
<mxGeometry y="216" width="340" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-81" value="+ guard_daemon_active();" 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="7" vertex="1">
<mxGeometry y="242" width="340" height="26" as="geometry"/>
</mxCell>
<mxCell id="15" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;entryX=0.562;entryY=-0.016;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryPerimeter=0;" parent="1" source="5" target="7" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="715" y="220" as="sourcePoint"/>
<mxPoint x="720" y="280" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="20" value="Systemd" 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;" parent="1" vertex="1">
<mxGeometry x="980" y="634" width="250" height="216" as="geometry"/>
</mxCell>
<mxCell id="22" 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="20" vertex="1">
<mxGeometry y="26" width="250" height="8" as="geometry"/>
</mxCell>
<mxCell id="23" value="+ IsUnitEnabled(string): optional<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;" parent="20" vertex="1">
<mxGeometry y="34" width="250" height="26" as="geometry"/>
</mxCell>
<mxCell id="53" value="+ IsUnitActive(string): optional<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;" parent="20" vertex="1">
<mxGeometry y="60" width="250" height="26" as="geometry"/>
</mxCell>
<mxCell id="54" value="+ StartUnit(string): optional<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;" parent="20" vertex="1">
<mxGeometry y="86" width="250" height="26" as="geometry"/>
</mxCell>
<mxCell id="55" value="+ RestartUnit(string): optional<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;" parent="20" vertex="1">
<mxGeometry y="112" width="250" height="26" as="geometry"/>
</mxCell>
<mxCell id="24" value="+ StopUnit(string): optional<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;" parent="20" vertex="1">
<mxGeometry y="138" width="250" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-92" value="+ EnableUnit(string): optional<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;" parent="20" vertex="1">
<mxGeometry y="164" width="250" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-93" value="+ DisableUnit(string): optional<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;" parent="20" vertex="1">
<mxGeometry y="190" width="250" height="26" as="geometry"/>
</mxCell>
<mxCell id="29" value="" style="endArrow=open;endFill=1;endSize=12;html=1;exitX=0.578;exitY=1.058;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="s14Ika97lZBA8t4Kk5J2-81" target="20" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="970" y="550" as="sourcePoint"/>
<mxPoint x="760" y="550" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="30" value="return" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;exitX=0.472;exitY=-0.004;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.467;entryY=1.068;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="uCA8H9GpGxLCfmrb8BVQ-15" target="s14Ika97lZBA8t4Kk5J2-91" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="720" y="410" as="sourcePoint"/>
<mxPoint x="700" y="510" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="31" value="UsbType" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
<mxGeometry x="460" y="340" width="140" height="130" as="geometry"/>
</mxCell>
<mxCell id="32" value="+base() :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;" parent="31" vertex="1">
<mxGeometry y="26" width="140" height="26" as="geometry"/>
</mxCell>
<mxCell id="33" value="+ base_str(): 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;" parent="31" vertex="1">
<mxGeometry y="52" width="140" height="26" as="geometry"/>
</mxCell>
<mxCell id="34" value="+ sub_str(): 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;" parent="31" vertex="1">
<mxGeometry y="78" width="140" height="26" as="geometry"/>
</mxCell>
<mxCell id="36" value="+ protocol_str():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;" parent="31" vertex="1">
<mxGeometry y="104" width="140" height="26" as="geometry"/>
</mxCell>
<mxCell id="38" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.372;entryY=1.047;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="36" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="590" y="639" as="sourcePoint"/>
<mxPoint x="700" y="450" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="39" value="GuardRule" 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;" parent="1" vertex="1">
<mxGeometry x="1320" y="400" width="280" height="372" as="geometry"/>
</mxCell>
<mxCell id="41" 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="39" vertex="1">
<mxGeometry y="26" width="280" height="8" as="geometry"/>
</mxCell>
<mxCell id="65" value="+ vendor_name: optional<str>" 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;" parent="39" vertex="1">
<mxGeometry y="34" width="280" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-94" value="+ SerializeForLisp() :vecPairs" 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="39" vertex="1">
<mxGeometry y="60" width="280" height="26" as="geometry"/>
</mxCell>
<mxCell id="42" value="+ GuardRule(str): constructor" 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;" parent="39" vertex="1">
<mxGeometry y="86" width="280" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-95" value="+ BuildJsonObject(): boost::json::object" 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;" parent="39" vertex="1">
<mxGeometry y="112" width="280" height="26" as="geometry"/>
</mxCell>
<mxCell id="66" value="+ BuildString(): 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;" parent="39" vertex="1">
<mxGeometry y="138" width="280" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-96" value="+ InterfacesToString(): 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;" parent="39" vertex="1">
<mxGeometry y="164" width="280" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-97" value="+ vid()" 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;" parent="39" vertex="1">
<mxGeometry y="190" width="280" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-99" value="+ pid()" 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;" parent="39" vertex="1">
<mxGeometry y="216" width="280" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-100" value="+ vendor_name()" 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;" parent="39" vertex="1">
<mxGeometry y="242" width="280" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-98" value="+ level()" 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;" parent="39" vertex="1">
<mxGeometry y="268" width="280" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-101" value="+ number()" 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;" parent="39" vertex="1">
<mxGeometry y="294" width="280" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-102" value="+ hash()" 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;" parent="39" vertex="1">
<mxGeometry y="320" width="280" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-103" value="+ device_name()" 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;" parent="39" vertex="1">
<mxGeometry y="346" width="280" height="26" as="geometry"/>
</mxCell>
<mxCell id="63" value="" style="html=1;verticalAlign=bottom;endArrow=none;dashed=1;endSize=8;entryX=0.471;entryY=1.09;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="uCA8H9GpGxLCfmrb8BVQ-15" target="s14Ika97lZBA8t4Kk5J2-81" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="844.6136363636365" y="570" as="sourcePoint"/>
<mxPoint x="927.0227272727275" y="496" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="78" value="" style="endArrow=open;endFill=1;endSize=12;html=1;entryX=-0.014;entryY=0.016;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryPerimeter=0;" parent="1" source="70" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="970" y="430" as="sourcePoint"/>
<mxPoint x="1316.08" y="426.41599999999994" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-104" value="CsvRule" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="190" y="860" width="250" height="78" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-105" value="+ CsvRule(rapidcsv:Document, index)" 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="s14Ika97lZBA8t4Kk5J2-104" vertex="1">
<mxGeometry y="26" width="250" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-106" value="+ BuildString() :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;whiteSpace=wrap;html=1;" parent="s14Ika97lZBA8t4Kk5J2-104" vertex="1">
<mxGeometry y="52" width="250" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-108" value="namespace guard::utils" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="152.5" y="710" width="360" height="104" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-109" value="+UploadRulesCsv(string) : vector&lt;GuardRule&gt;" 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="s14Ika97lZBA8t4Kk5J2-108" vertex="1">
<mxGeometry y="26" width="360" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-110" value="+BuildJsonArrayOfUpploaded( vec&lt;GuardRule&gt; : 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;whiteSpace=wrap;html=1;" parent="s14Ika97lZBA8t4Kk5J2-108" vertex="1">
<mxGeometry y="52" width="360" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-111" value="+ MapVendorCodesToNames(set&lt;string&gt;) : map&lt;str,str&gt;" 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="s14Ika97lZBA8t4Kk5J2-108" vertex="1">
<mxGeometry y="78" width="360" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-118" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;exitX=0.449;exitY=1.01;exitDx=0;exitDy=0;entryX=0.465;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;exitPerimeter=0;" parent="1" source="uj_38s1KniOL5Ioj-gPl-34" target="s14Ika97lZBA8t4Kk5J2-108" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="600" y="649" as="sourcePoint"/>
<mxPoint x="522" y="481" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-119" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;exitX=0.472;exitY=0.942;exitDx=0;exitDy=0;entryX=0.473;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;exitPerimeter=0;" parent="1" source="s14Ika97lZBA8t4Kk5J2-111" target="s14Ika97lZBA8t4Kk5J2-104" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="328" y="830" as="sourcePoint"/>
<mxPoint x="230" y="878" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-120" value="<b>JsonChanges</b>" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="620" y="770" width="220" height="104" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-121" value="+ JsonChanges(str)" 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="s14Ika97lZBA8t4Kk5J2-120" vertex="1">
<mxGeometry y="26" width="220" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-122" value="+ Process(bool apply)" 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="s14Ika97lZBA8t4Kk5J2-120" vertex="1">
<mxGeometry y="52" width="220" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-123" value="+active_devices(vec&lt;UsbDevice&gt;)" 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="s14Ika97lZBA8t4Kk5J2-120" vertex="1">
<mxGeometry y="78" width="220" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-124" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;exitX=0.471;exitY=1.125;exitDx=0;exitDy=0;entryX=0.587;entryY=0.008;entryDx=0;entryDy=0;entryPerimeter=0;exitPerimeter=0;" parent="1" source="s14Ika97lZBA8t4Kk5J2-82" target="s14Ika97lZBA8t4Kk5J2-120" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="332" y="822" as="sourcePoint"/>
<mxPoint x="318" y="870" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-125" value="<b>JsonRule</b>" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="630" y="900" width="200" height="78" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-126" value="+ JsonRule(boost::json::object*)" 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="s14Ika97lZBA8t4Kk5J2-125" vertex="1">
<mxGeometry y="26" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-127" value="+ BuildString() : str" 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="s14Ika97lZBA8t4Kk5J2-125" vertex="1">
<mxGeometry y="52" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="s14Ika97lZBA8t4Kk5J2-129" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;exitX=0.489;exitY=0.974;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="s14Ika97lZBA8t4Kk5J2-123" target="s14Ika97lZBA8t4Kk5J2-125" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="760" y="735" as="sourcePoint"/>
<mxPoint x="759" y="781" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="79" value="GuardAudit" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" vertex="1" parent="1">
<mxGeometry x="1241" y="56" width="410" height="104" as="geometry"/>
</mxCell>
<mxCell id="80" value="+ getAll() : vector<str>" 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="79">
<mxGeometry y="26" width="410" height="26" as="geometry"/>
</mxCell>
<mxCell id="81" value="+ getByPage(vec<str> filters,uint page,uint page_size): vector<str>" 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="79">
<mxGeometry y="52" width="410" height="26" as="geometry"/>
</mxCell>
<mxCell id="82" value="+ getByFiler(vec<str> filters)" 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="79">
<mxGeometry y="78" width="410" height="26" as="geometry"/>
</mxCell>
<mxCell id="84" value="return" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="s14Ika97lZBA8t4Kk5J2-78" target="81">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1260" y="260" as="sourcePoint"/>
<mxPoint x="1320" y="260" as="targetPoint"/>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>