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
|
<svg aria-label="Compiler graph" width="1799" height="2202" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1799 2202" style="font-family: sans-serif;"><style>
html, body { height:100%; margin:0; font-family:sans-serif; }
.viewer { height:100%; display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
.source { padding:8px; border-bottom:1px solid #ccc; }
#program { width:min(600px,80vw); vertical-align:middle; }
#status { margin-top:4px; }
#graph { min-height:0; overflow:hidden; position:relative; background:#fafbfc; }
#elk { width:100%; height:100%; }
#graph svg { display:block; }
.tools { display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-top:8px; font-size:12px; }
.hint { color:#616c78; }
.ctrl { color:#b63838; } .mem { color:#2867b2; } .data { color:#536477; }
.edge { fill:none; stroke-width:1.5; }
.edge.CTRL { stroke-width:2; }
.edge.ASSOC { stroke-dasharray:4 4; }
.edge.PARSER { stroke-dasharray:5 4; }
.parser rect { fill:#f6f0ff; stroke:#7956a5; stroke-width:1.5; stroke-dasharray:5 4; }
.edge.selected { stroke-width:3.5; }
.edge.bundle { stroke-width:4; }
.edge.bundle.selected { stroke-width:6; }
.edge-hit { fill:none; stroke:transparent; stroke-width:12; vector-effect:non-scaling-stroke; pointer-events:stroke; cursor:pointer; }
.edge-jump { fill:transparent; pointer-events:all; cursor:pointer; }
.node { cursor:pointer; }
.box { stroke:#758191; stroke-width:1; }
.node.held .box { stroke-dasharray:5 3; }
.node.near .box { stroke:#c18221; stroke-width:2; }
.node.focus .box { stroke:#9c4900; stroke-width:3; }
.node.selected .box { stroke:#1569b9; stroke-width:3; }
.node.folded .box { stroke-width:4; }
.node.folding .box { fill:#f4ccd7; }
.fold-tag { font-size:9px; font-weight:700; fill:#963751; }
.peep-area { fill:#fff3d9; fill-opacity:.8; stroke:#c18221; stroke-width:2; pointer-events:none; }
.node.peep-edit .box { stroke:#9c4900; stroke-width:3; }
.node.error .box { stroke:#b42318; stroke-width:4; }
#event.error { color:#b42318; font-weight:600; white-space:pre-wrap; overflow-wrap:anywhere; }
.peep-ghosts { pointer-events:none; }
.region-box { stroke:#9da9b8; stroke-width:1.5; }
.fold-btn { cursor:pointer; }
.fold-btn rect { fill:white; stroke:#596674; }
.fold-btn text { font-size:14px; fill:#152330; }
.fold-btn:focus rect { stroke:#1569b9; stroke-width:2; }
.shortcut { cursor:pointer; }
.shortcut path { fill:none; stroke-width:1.5; }
.shortcut rect { fill:#fff8ec; stroke:#b63838; stroke-dasharray:3 2; }
.shortcut text { font-size:11px; fill:#783030; }
.shortcut.selected rect, .shortcut:focus rect { stroke-width:2.5; }
.label { font-size:12px; fill:#152330; font-weight:600; }
.node-id { font-size:10px; fill:#596674; font-weight:400; }
.type { font-size:11px; fill:#455768; }
.port { stroke:#536477; stroke-width:1; }
.row { stroke:#b6afcf; stroke-width:1; }
.bind { font-size:12px; fill:#152330; }
.slot { font-size:10px; fill:#364352; paint-order:stroke; stroke:#fafbfc; stroke-width:3; }
#detail { position:absolute; top:8px; right:8px; margin:0; padding:12px; max-width:320px;
max-height:45%; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere;
background:#fffffff2; border:1px solid #bac5d0; border-radius:4px; font-size:12px; }
.controls { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:6px; padding:6px; }
.button { color:white; background:black; font-size:20px; min-width:30px; }
.button:disabled { background:grey; }
.count { font-size:20px; min-width:35px; text-align:center; }
#N { width:6ch; }
#scrub { width:clamp(120px,35vw,600px); }
</style><defs><marker id="arrow-CTRL" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#b63838"/></marker><marker id="arrow-DATA" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#536477"/></marker><marker id="arrow-MEM" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#2867b2"/></marker><marker id="arrow-ASSOC" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#9396a3"/></marker><marker id="arrow-PARSER" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#7956a5"/></marker></defs><rect width="100%" height="100%" fill="rgb(250, 251, 252)"/><g><g class="regions" style="opacity: 1;"><g class="region" transform="translate(600,463)"><rect class="region-box" rx="8" width="836" height="546" fill="#f1f6fc"/></g><g class="region" transform="translate(650,1069)"><rect class="region-box" rx="8" width="1070" height="676" fill="#f1f6fc"/></g></g><rect class="peep-area" rx="36" style="opacity: 0;"/><g class="edges"><path class="edge CTRL" id="e3i0" d="M945,2101 C945,2125 899.5,2128 899.5,2152" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#3[0] → #115 · CTRL</title></path><path class="edge ASSOC" id="e4i0" d="M1017,52 C1017,76 492,151 492,175" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#4[0] → #2 · ASSOC</title></path><path class="edge ASSOC" id="e5i0" d="M1017,52 C1017,76 1112,25 1112,49" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#5[0] → #2 · ASSOC</title></path><path class="edge ASSOC" id="e12i0" d="M1017,52 C1017,76 340,151 340,175" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#12[0] → #2 · ASSOC</title></path><path class="edge MEM" id="e13i2" d="M834,124 L834,136 Q834,144 826,144 L208,144 Q200,144 200,152 L200,172" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#13[2] → #7 · MEM</title></path><path class="edge MEM" id="e13i3" d="M834,124 L834,136 Q834,144 826,144 L232,144 Q224,144 224,152 L224,172" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#13[3] → #7 · MEM</title></path><path class="edge CTRL" id="e14i0" d="M714,124 L714,129 Q714,134 709,134 L125,134 Q117,134 117,142 L117,298" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#14[0] → #6 · CTRL</title></path><path class="edge MEM" id="e14i1" d="M188,228 L188,280 Q188,288 180,288 L171,288 Q166,288 166,293 L166,298" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#14[1] → #13 · MEM</title></path><path class="edge DATA" id="e14i2" d="M340,228 L340,233 Q340,238 335,238 L223,238 Q215,238 215,246 L215,298" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#14[2] → #12 · DATA</title></path><path class="edge DATA" id="e14i3" d="M492,228 L492,270 Q492,278 484,278 L271,278 Q263,278 263,286 L263,298" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#14[3] → #4 · DATA</title></path><path class="edge DATA" id="e14i4" d="M492,228 L492,270 Q492,278 484,278 L320,278 Q312,278 312,286 L312,298" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#14[4] → #4 · DATA</title></path><path class="edge ASSOC" id="e18i0" d="M1017,52 C1017,76 644,151 644,175" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#18[0] → #2 · ASSOC</title></path><path class="edge ASSOC" id="e24i0" d="M1017,52 C1017,76 1009,151 1009,175" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#24[0] → #2 · ASSOC</title></path><path class="edge MEM" id="e26i4" d="M834,124 L834,172" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#26[4] → #7 · MEM</title></path><path class="edge MEM" id="e26i5" d="M834,124 L834,136 Q834,144 842,144 L844,144 Q852,144 852,152 L852,172" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#26[5] → #7 · MEM</title></path><path class="edge CTRL" id="e27i0" d="M714,124 L714,260 Q714,268 722,268 L920,268 Q928,268 928,276 L928,298" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#27[0] → #6 · CTRL</title></path><path class="edge MEM" id="e27i1" d="M807,228 L807,250 Q807,258 815,258 L961,258 Q969,258 969,266 L969,298" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#27[1] → #26 · MEM</title></path><path class="edge DATA" id="e27i2" d="M1009,228 L1009,298" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#27[2] → #24 · DATA</title></path><path class="edge DATA" id="e27i3" d="M644,228 L644,240 Q644,248 652,248 L1041,248 Q1049,248 1049,256 L1049,298" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#27[3] → #18 · DATA</title></path><path class="edge DATA" id="e27i4" d="M492,228 L492,270 Q492,278 500,278 L1082,278 Q1090,278 1090,286 L1090,298" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#27[4] → #4 · DATA</title></path><path class="edge CTRL" id="e32i1" d="M714,124 L714,551" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#32[1] → #6 · CTRL</title></path><path class="edge CTRL" id="e32i2" d="M694,858 L694,863 Q694,868 699,868 L1416,868 Q1424,868 1424,860 L1424,534 Q1424,526 1416,526 L752,526 Q744,526 744,534 L744,554" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#32[2] → #41 · CTRL</title></path><path class="edge DATA" id="e34i1" d="M492,228 L492,270 Q492,278 500,278 L717,278 Q725,278 725,286 L725,430 Q725,438 733,438 L838,438 Q846,438 846,446 L846,551" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#34[1] → #4 · DATA</title></path><path class="edge DATA" id="e34i2" d="M937,710 L937,715 Q937,720 942,720 L1406,720 Q1414,720 1414,712 L1414,542 Q1414,534 1406,534 L894,534 Q886,534 886,542 L886,554" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#34[2] → #60 · DATA</title></path><path class="edge DATA" id="e35i1" d="M866,607 L866,629 Q866,637 858,637 L793,637 Q785,637 785,645 L785,657" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#35[1] → #34 · DATA</title></path><path class="edge DATA" id="e35i2" d="M644,228 L644,420 Q644,428 636,428 L630,428 Q622,428 622,436 L622,639 Q622,647 630,647 L810,647 Q815,647 815,652 L815,657" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#35[2] → #18 · DATA</title></path><path class="edge CTRL" id="e40i0" d="M714,607 L714,761" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#40[0] → #32 · CTRL</title></path><path class="edge DATA" id="e40i1" d="M785,713 L785,718.5 Q785,723 789.5,723 L789.5,723 Q794,723 794,727.5 L794,761" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#40[1] → #35 · DATA</title></path><path class="edge ASSOC" id="e46i0" d="M1017,52 C1017,76 574,321 574,345" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#46[0] → #2 · ASSOC</title></path><path class="edge ASSOC" id="e51i0" d="M1017,52 C1017,76 1503,321 1503,345" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#51[0] → #2 · ASSOC</title></path><path class="edge ASSOC" id="e52i0" d="M1017,52 C1017,76 796,321 796,345" stroke="#9396a3" marker-start="url(#arrow-ASSOC)" style="opacity: 1;"><title>#52[0] → #2 · ASSOC</title></path><path class="edge DATA" id="e53i1" d="M866,607 L866,629 Q866,637 874,637 L1161,637 Q1169,637 1169,645 L1169,657" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#53[1] → #34 · DATA</title></path><path class="edge DATA" id="e53i2" d="M796,398 L796,420 Q796,428 804,428 L1191,428 Q1199,428 1199,436 L1199,657" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#53[2] → #52 · DATA</title></path><path class="edge DATA" id="e54i1" d="M1169,713 L1169,718 Q1169,723 1164,723 L1164,723 Q1159,723 1159,728 L1159,775.6666666666667" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#54[1] → #53 · DATA</title></path><path class="edge DATA" id="e54i2" d="M1503,398 L1503,430 Q1503,438 1495,438 L1247,438 Q1239,438 1239,446 L1239,715 Q1239,723 1231,723 L1197,723 Q1189,723 1189,731 L1189,775.6666666666667" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#54[2] → #51 · DATA</title></path><path class="edge DATA" id="e56i1" d="M866,607 L866,629 Q866,637 874,637 L1303,637 Q1311,637 1311,645 L1311,775.6666666666667" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#56[1] → #34 · DATA</title></path><path class="edge DATA" id="e56i2" d="M954,124 L954,129 Q954,134 959,134 L1333,134 Q1341,134 1341,142 L1341,775.6666666666667" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#56[2] → #8 · DATA</title></path><path class="edge CTRL" id="e57i0" d="M694,861 L694,866 Q694,871 699,871 L837,871 Q845,871 845,879 L845,921" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#57[0] → #41 · CTRL</title></path><path class="edge MEM" id="e57i1" d="M1018,607 L1018,873 Q1018,881 1010,881 L873,881 Q865,881 865,889 L865,921" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#57[1] → #124 · MEM</title></path><path class="edge DATA" id="e57i2" d="M949,398 L949,440 Q949,448 957,448 L1080,448 Q1088,448 1088,456 L1088,883 Q1088,891 1080,891 L893,891 Q885,891 885,899 L885,921" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#57[2] → #28 · DATA</title></path><path class="edge DATA" id="e57i3" d="M1159,831.6666666666667 L1159,893 Q1159,901 1151,901 L913,901 Q905,901 905,909 L905,921" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#57[3] → #54 · DATA</title></path><path class="edge DATA" id="e57i4" d="M1311,831.6666666666667 L1311,903 Q1311,911 1303,911 L930,911 Q925,911 925,916 L925,921" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#57[4] → #56 · DATA</title></path><path class="edge DATA" id="e60i1" d="M866,607 L866,629 Q866,637 874,637 L929,637 Q937,637 937,645 L937,657" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#60[1] → #34 · DATA</title></path><path class="edge DATA" id="e60i2" d="M574,398 L574,430 Q574,438 582,438 L625,438 Q633,438 633,446 L633,619 Q633,627 641,627 L959,627 Q967,627 967,635 L967,657" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#60[2] → #46 · DATA</title></path><path class="edge CTRL" id="e65i1" d="M814,861 L814,1185" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#65[1] → #42 · CTRL</title></path><path class="edge CTRL" id="e65i2" d="M794,1502 L794,1507 Q794,1512 799,1512 L1700,1512 Q1708,1512 1708,1504 L1708,1160 Q1708,1152 1700,1152 L852,1152 Q844,1152 844,1160 L844,1188" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#65[2] → #74 · CTRL</title></path><path class="edge DATA" id="e67i1" d="M492,228 L492,270 Q492,278 484,278 L65,278 Q57,278 57,286 L57,400 Q57,408 65,408 L484,408 Q492,408 492,416 L492,1026 Q492,1034 500,1034 L938,1034 Q946,1034 946,1042 L946,1185" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#67[1] → #4 · DATA</title></path><path class="edge DATA" id="e67i2" d="M744,1354 L744,1359 Q744,1364 749,1364 L1690,1364 Q1698,1364 1698,1356 L1698,1168 Q1698,1160 1690,1160 L994,1160 Q986,1160 986,1168 L986,1188" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#67[2] → #103 · DATA</title></path><path class="edge DATA" id="e68i1" d="M966,1241 L966,1263 Q966,1271 958,1271 L903,1271 Q895,1271 895,1279 L895,1301" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#68[1] → #67 · DATA</title></path><path class="edge DATA" id="e68i2" d="M644,228 L644,240 Q644,248 636,248 L54,248 Q46,248 46,256 L46,420 Q46,428 54,428 L315,428 Q323,428 323,436 L323,1036 Q323,1044 331,1044 L725,1044 Q733,1044 733,1052 L733,1253 Q733,1261 741,1261 L917,1261 Q925,1261 925,1269 L925,1301" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#68[2] → #18 · DATA</title></path><path class="edge CTRL" id="e73i0" d="M814,1241 L814,1405" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#73[0] → #65 · CTRL</title></path><path class="edge DATA" id="e73i1" d="M895,1357 L895,1366.5 Q895,1367 894.5,1367 L894.5,1367 Q894,1367 894,1367.5 L894,1405" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#73[1] → #68 · DATA</title></path><path class="edge DATA" id="e88i1" d="M1118,1241 L1118,1246 Q1118,1251 1113,1251 L998,1251 Q990,1251 990,1259 L990,1517 Q990,1525 982,1525 L944,1525 Q936,1525 936,1533 L936,1611 Q936,1619 944,1619 L987,1619 Q995,1619 995,1627 L995,1657" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#88[1] → #131 · DATA</title></path><path class="edge DATA" id="e88i2" d="M1007,1609 L1007,1614 Q1007,1619 1012,1619 L1017,1619 Q1025,1619 1025,1627 L1025,1657" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#88[2] → #93 · DATA</title></path><path class="edge DATA" id="e91i1" d="M966,1241 L966,1263 Q966,1271 974,1271 L1425,1271 Q1433,1271 1433,1279 L1433,1301" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#91[1] → #67 · DATA</title></path><path class="edge DATA" id="e91i2" d="M796,398 L796,420 Q796,428 804,428 L1455,428 Q1463,428 1463,436 L1463,1301" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#91[2] → #52 · DATA</title></path><path class="edge DATA" id="e92i1" d="M1433,1357 L1433,1419.6666666666667" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#92[1] → #91 · DATA</title></path><path class="edge DATA" id="e92i2" d="M1503,398 L1503,1359 Q1503,1367 1495,1367 L1471,1367 Q1463,1367 1463,1375 L1463,1419.6666666666667" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#92[2] → #51 · DATA</title></path><path class="edge CTRL" id="e93i0" d="M794,1505 L794,1510 Q794,1515 799,1515 L963,1515 Q971,1515 971,1523 L971,1553" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#93[0] → #74 · CTRL</title></path><path class="edge MEM" id="e93i1" d="M1018,607 L1018,612 Q1018,617 1023,617 L1373,617 Q1381,617 1381,625 L1381,1016 Q1381,1024 1373,1024 L1359,1024 Q1351,1024 1351,1032 L1351,1507 Q1351,1515 1343,1515 L1003,1515 Q995,1515 995,1523 L995,1553" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#93[1] → #124 · MEM</title></path><path class="edge DATA" id="e93i2" d="M949,398 L949,440 Q949,448 957,448 L1438,448 Q1446,448 1446,456 L1446,1026 Q1446,1034 1438,1034 L1370,1034 Q1362,1034 1362,1042 L1362,1517 Q1362,1525 1354,1525 L1027,1525 Q1019,1525 1019,1533 L1019,1553" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#93[2] → #28 · DATA</title></path><path class="edge DATA" id="e93i3" d="M1433,1475.6666666666667 L1433,1527 Q1433,1535 1425,1535 L1051,1535 Q1043,1535 1043,1543 L1043,1553" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#93[3] → #92 · DATA</title></path><path class="edge DATA" id="e99i1" d="M1270,1241 L1270,1255.5 Q1270,1261 1275.5,1261 L1275.5,1261 Q1281,1261 1281,1266.5 L1281,1301" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#99[1] → #141 · DATA</title></path><path class="edge DATA" id="e99i2" d="M574,398 L574,430.5 Q574,438 581.5,438 L581.5,438 Q589,438 589,445.5 L589,1016 Q589,1024 597,1024 L1332,1024 Q1340,1024 1340,1032 L1340,1273 Q1340,1281 1332,1281 L1319,1281 Q1311,1281 1311,1289 L1311,1301" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#99[2] → #46 · DATA</title></path><path class="edge DATA" id="e103i1" d="M966,1241 L966,1263 Q966,1271 958,1271 L752,1271 Q744,1271 744,1279 L744,1301" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#103[1] → #67 · DATA</title></path><path class="edge DATA" id="e103i2" d="M574,398 L574,430 Q574,438 566,438 L320,438 Q312,438 312,446 L312,1046 Q312,1054 320,1054 L704,1054 Q712,1054 712,1062 L712,1283 Q712,1291 720,1291 L769,1291 Q774,1291 774,1296 L774,1301" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#103[2] → #46 · DATA</title></path><path class="edge MEM" id="e106i1" d="M834,124 L834,136 Q834,144 826,144 L32,144 Q24,144 24,152 L24,440 Q24,448 32,448 L125,448 Q133,448 133,456 L133,1822 Q133,1830 141,1830 L917,1830 Q925,1830 925,1838 L925,1908 Q925,1916 933,1916 L1638,1916 Q1646,1916 1646,1924 L1646,1944" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#106[1] → #7 · MEM</title></path><path class="edge MEM" id="e106i2" d="M996,1896 L996,1901 Q996,1906 1001,1906 L1656,1906 Q1664,1906 1664,1914 L1664,1944" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#106[2] → #146 · MEM</title></path><path class="edge MEM" id="e106i3" d="M1682,1896 L1682,1944" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#106[3] → #142 · MEM</title></path><path class="edge MEM" id="e106i4" d="M1070,398 L1070,403 Q1070,408 1075,408 L1744,408 Q1752,408 1752,416 L1752,1898 Q1752,1906 1744,1906 L1708,1906 Q1700,1906 1700,1914 L1700,1944" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#106[4] → #29 · MEM</title></path><path class="edge MEM" id="e106i5" d="M1018,607 L1018,612 Q1018,617 1023,617 L1373,617 Q1381,617 1381,625 L1381,1016 Q1381,1024 1389,1024 L1755,1024 Q1763,1024 1763,1032 L1763,1908 Q1763,1916 1755,1916 L1726,1916 Q1718,1916 1718,1924 L1718,1944" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#106[5] → #124 · MEM</title></path><path class="edge DATA" id="e112i1" d="M1270,1241 L1270,1253 Q1270,1261 1278,1261 L1588,1261 Q1596,1261 1596,1269 L1596,1301" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#112[1] → #141 · DATA</title></path><path class="edge DATA" id="e112i2" d="M1118,1241 L1118,1246 Q1118,1251 1123,1251 L1618,1251 Q1626,1251 1626,1259 L1626,1301" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#112[2] → #131 · DATA</title></path><path class="edge CTRL" id="e115i0" d="M914,1505 L914,2048" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#115[0] → #75 · CTRL</title></path><path class="edge MEM" id="e115i1" d="M1673,2000 L1673,2005 Q1673,2010 1668,2010 L953,2010 Q945,2010 945,2018 L945,2048" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#115[1] → #106 · MEM</title></path><path class="edge DATA" id="e115i2" d="M1596,1357 L1596,1752 Q1596,1760 1604,1760 L1766,1760 Q1774,1760 1774,1768 L1774,2012 Q1774,2020 1766,2020 L984,2020 Q976,2020 976,2028 L976,2048" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#115[2] → #112 · DATA</title></path><path class="edge MEM" id="e124i1" d="M1070,398 L1070,403 Q1070,408 1065,408 L1006,408 Q998,408 998,416 L998,551" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#124[1] → #29 · MEM</title></path><path class="edge MEM" id="e124i2" d="M885,974 L885,979 Q885,984 890,984 L1396,984 Q1404,984 1404,976 L1404,550 Q1404,542 1396,542 L1044,542 Q1038,542 1038,548 L1038,554" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#124[2] → #57 · MEM</title></path><path class="edge DATA" id="e131i1" d="M492,228 L492,1026 Q492,1034 500,1034 L1090,1034 Q1098,1034 1098,1042 L1098,1185" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#131[1] → #4 · DATA</title></path><path class="edge DATA" id="e131i2" d="M995,1710 L995,1715 Q995,1720 1000,1720 L1680,1720 Q1688,1720 1688,1712 L1688,1176 Q1688,1168 1680,1168 L1146,1168 Q1138,1168 1138,1176 L1138,1188" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#131[2] → #88 · DATA</title></path><path class="edge DATA" id="e141i1" d="M492,228 L492,1026 Q492,1034 500,1034 L1242,1034 Q1250,1034 1250,1042 L1250,1185" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#141[1] → #4 · DATA</title></path><path class="edge DATA" id="e141i2" d="M1281,1354 L1281,1359 Q1281,1364 1286,1364 L1670,1364 Q1678,1364 1678,1356 L1678,1184 Q1678,1176 1670,1176 L1296,1176 Q1290,1176 1290,1182 L1290,1188" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#141[2] → #99 · DATA</title></path><path class="edge MEM" id="e142i1" d="M301,398 L301,1782 Q301,1790 309,1790 L1654,1790 Q1662,1790 1662,1798 L1662,1840" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#142[1] → #16 · MEM</title></path><path class="edge DATA" id="e142i2" d="M155,398 L155,410 Q155,418 163,418 L1722,418 Q1730,418 1730,426 L1730,1762 Q1730,1770 1722,1770 L1690,1770 Q1682,1770 1682,1778 L1682,1840" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#142[2] → #15 · DATA</title></path><path class="edge DATA" id="e142i3" d="M1503,398 L1503,430 Q1503,438 1511,438 L1733,438 Q1741,438 1741,446 L1741,1782 Q1741,1790 1733,1790 L1710,1790 Q1702,1790 1702,1798 L1702,1840" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#142[3] → #51 · DATA</title></path><path class="edge DATA" id="e142i4" d="M1270,1241 L1270,1253 Q1270,1261 1278,1261 L1517,1261 Q1525,1261 1525,1269 L1525,1772 Q1525,1780 1533,1780 L1714,1780 Q1722,1780 1722,1788 L1722,1840" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#142[4] → #141 · DATA</title></path><path class="edge MEM" id="e146i1" d="M301,398 L301,440 Q301,448 293,448 L152,448 Q144,448 144,456 L144,1812 Q144,1820 152,1820 L968,1820 Q976,1820 976,1828 L976,1840" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#146[1] → #16 · MEM</title></path><path class="edge DATA" id="e146i2" d="M155,398 L155,1802 Q155,1810 163,1810 L988,1810 Q996,1810 996,1818 L996,1840" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#146[2] → #15 · DATA</title></path><path class="edge DATA" id="e146i3" d="M492,228 L492,270 Q492,278 484,278 L43,278 Q35,278 35,286 L35,430 Q35,438 43,438 L158,438 Q166,438 166,446 L166,1792 Q166,1800 174,1800 L1008,1800 Q1016,1800 1016,1808 L1016,1840" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#146[3] → #4 · DATA</title></path><path class="edge DATA" id="e146i4" d="M1118,1241 L1118,1246 Q1118,1251 1123,1251 L1506,1251 Q1514,1251 1514,1259 L1514,1792 Q1514,1800 1506,1800 L1044,1800 Q1036,1800 1036,1808 L1036,1840" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#146[4] → #131 · DATA</title></path></g><g class="edge-hits"/><g class="parser" style="opacity: 1;"/><g class="nodes"><g class="node" id="n2" data-id="2" transform="translate(654,30)" style="opacity: 1;"><path class="box" d="M0,0H360V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="180" y="18"><tspan>Start</tspan><tspan class="node-id"> #2</tspan></text><text class="type" text-anchor="middle" y="35" x="180">[ Ctrl, MemBot, int]</text><title>#2 Start
[ Ctrl, MemBot, int]
[0] → — ASSOC
[1] → — CTRL
[2] → — CTRL</title><circle class="port" cx="90" cy="-3" r="3" fill="white"/><circle class="port" cx="180" cy="-3" r="3" fill="white"/><circle class="port" cx="270" cy="-3" r="3" fill="white"/><text class="slot" x="90" y="-10" text-anchor="middle">0</text><text class="slot" x="180" y="-10" text-anchor="middle">1</text><text class="slot" x="270" y="-10" text-anchor="middle">2</text></g><g class="node" id="n3" data-id="3" transform="translate(863.5,2152)" style="opacity: 1;"><path class="box" d="M0,0H72V26H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="36" y="17"><tspan>Stop</tspan><tspan class="node-id"> #3</tspan></text><text class="type" text-anchor="middle" y="35" x="36"/><title>#3 Stop
Bot
[0] → #115 CTRL</title><circle class="port" cx="36" cy="0" r="3" fill="#536477"/><text class="slot" x="36" y="-7" text-anchor="middle">0</text></g><g class="node" id="n4" data-id="4" transform="translate(432,178)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #4</tspan></text><text class="type" text-anchor="middle" y="35" x="60">0</text><title>#4 Con
0
[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n5" data-id="5" transform="translate(1052,52)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Xctrl</tspan><tspan class="node-id"> #5</tspan></text><text class="type" text-anchor="middle" y="35" x="60">~Ctrl</text><title>#5 Xctrl
~Ctrl
[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n6" data-id="6" transform="translate(654,74)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>$ctrl</tspan><tspan class="node-id"> #6/0</tspan></text><text class="type" text-anchor="middle" y="35" x="60">Ctrl</text><title>#6 $ctrl
Projection 0 of #2
Ctrl
[0] → #2 CTRL</title></g><g class="node" id="n7" data-id="7" transform="translate(774,74)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>$mem</tspan><tspan class="node-id"> #7/1</tspan></text><text class="type" text-anchor="middle" y="35" x="60">MemBot</text><title>#7 $mem
Projection 1 of #2
MemBot
[0] → #2 MEM</title></g><g class="node" id="n8" data-id="8" transform="translate(894,74)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>arg</tspan><tspan class="node-id"> #8/2</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#8 arg
Projection 2 of #2
int
[0] → #2 DATA</title></g><g class="node" id="n12" data-id="12" transform="translate(280,178)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #12</tspan></text><text class="type" text-anchor="middle" y="35" x="60">16</text><title>#12 Con
16
[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n13" data-id="13" transform="translate(128,178)" style="opacity: 1;"><path class="box" d="M10,0H110L120,10V34L110,44H10L0,34V10Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>MemMerge</tspan><tspan class="node-id"> #13</tspan></text><text class="type" text-anchor="middle" y="35" x="60">MemBot</text><title>#13 MemMerge
MemBot
[0] → — CTRL
[1] → — DATA
[2] → #7 MEM
[3] → #7 MEM</title><circle class="port" cx="24" cy="-3" r="3" fill="white"/><circle class="port" cx="48" cy="-3" r="3" fill="white"/><circle class="port" cx="72" cy="-3" r="3" fill="#536477"/><circle class="port" cx="96" cy="-3" r="3" fill="#536477"/><text class="slot" x="24" y="-10" text-anchor="middle">0</text><text class="slot" x="48" y="-10" text-anchor="middle">1</text><text class="slot" x="72" y="-10" text-anchor="middle">2</text><text class="slot" x="96" y="-10" text-anchor="middle">3</text></g><g class="node" id="n14" data-id="14" transform="translate(68,304)" style="opacity: 1;"><path class="box" d="M0,0H293V44H0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="146.5" y="18"><tspan>new_Totals</tspan><tspan class="node-id"> #14</tspan></text><text class="type" text-anchor="middle" y="35" x="146.5">[ *Totals {int !sum; int !visits; }, MemBot]</text><title>#14 new_Totals
[ *Totals {int !sum; int !visits; }, MemBot]
[0] → #6 CTRL
[1] → #13 MEM
[2] → #12 DATA
[3] → #4 DATA
[4] → #4 DATA</title><circle class="port" cx="49" cy="-3" r="3" fill="#536477"/><circle class="port" cx="98" cy="-3" r="3" fill="#536477"/><circle class="port" cx="147" cy="-3" r="3" fill="#536477"/><circle class="port" cx="195" cy="-3" r="3" fill="#536477"/><circle class="port" cx="244" cy="-3" r="3" fill="#536477"/><text class="slot" x="49" y="-10" text-anchor="middle">0</text><text class="slot" x="98" y="-10" text-anchor="middle">1</text><text class="slot" x="147" y="-10" text-anchor="middle">2</text><text class="slot" x="195" y="-10" text-anchor="middle">3</text><text class="slot" x="244" y="-10" text-anchor="middle">4</text></g><g class="node" id="n15" data-id="15" transform="translate(68,348)" style="opacity: 1;"><path class="box" d="M0,0H173V44H0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="86.5" y="18"><tspan>Totals</tspan><tspan class="node-id"> #15/0</tspan></text><text class="type" text-anchor="middle" y="35" x="86.5">*Totals {int !sum; int !visits; }</text><title>#15 Totals
Projection 0 of #14
*Totals {int !sum; int !visits; }
[0] → #14 DATA</title></g><g class="node" id="n16" data-id="16" transform="translate(241,348)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>$mem</tspan><tspan class="node-id"> #16/1</tspan></text><text class="type" text-anchor="middle" y="35" x="60">MemBot</text><title>#16 $mem
Projection 1 of #14
MemBot
[0] → #14 MEM</title></g><g class="node" id="n18" data-id="18" transform="translate(584,178)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #18</tspan></text><text class="type" text-anchor="middle" y="35" x="60">4</text><title>#18 Con
4
[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n24" data-id="24" transform="translate(949,178)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #24</tspan></text><text class="type" text-anchor="middle" y="35" x="60">40</text><title>#24 Con
40
[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n26" data-id="26" transform="translate(744,178)" style="opacity: 1;"><path class="box" d="M10,0H116L126,10V34L116,44H10L0,34V10Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="63" y="18"><tspan>MemMerge</tspan><tspan class="node-id"> #26</tspan></text><text class="type" text-anchor="middle" y="35" x="63">MemBot</text><title>#26 MemMerge
MemBot
[0] → — CTRL
[1] → — DATA
[2] → — DATA
[3] → — DATA
[4] → #7 MEM
[5] → #7 MEM</title><circle class="port" cx="18" cy="-3" r="3" fill="white"/><circle class="port" cx="36" cy="-3" r="3" fill="white"/><circle class="port" cx="54" cy="-3" r="3" fill="white"/><circle class="port" cx="72" cy="-3" r="3" fill="white"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><circle class="port" cx="108" cy="-3" r="3" fill="#536477"/><text class="slot" x="18" y="-10" text-anchor="middle">0</text><text class="slot" x="36" y="-10" text-anchor="middle">1</text><text class="slot" x="54" y="-10" text-anchor="middle">2</text><text class="slot" x="72" y="-10" text-anchor="middle">3</text><text class="slot" x="90" y="-10" text-anchor="middle">4</text><text class="slot" x="108" y="-10" text-anchor="middle">5</text></g><g class="node" id="n27" data-id="27" transform="translate(888,304)" style="opacity: 1;"><path class="box" d="M0,0H242V44H0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="121" y="18"><tspan>new_ary_int</tspan><tspan class="node-id"> #27</tspan></text><text class="type" text-anchor="middle" y="35" x="121">[ *[int] {int #; int ![]; }, MemBot]</text><title>#27 new_ary_int
[ *[int] {int #; int ![]; }, MemBot]
[0] → #6 CTRL
[1] → #26 MEM
[2] → #24 DATA
[3] → #18 DATA
[4] → #4 DATA</title><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="81" cy="-3" r="3" fill="#536477"/><circle class="port" cx="121" cy="-3" r="3" fill="#536477"/><circle class="port" cx="161" cy="-3" r="3" fill="#536477"/><circle class="port" cx="202" cy="-3" r="3" fill="#536477"/><text class="slot" x="40" y="-10" text-anchor="middle">0</text><text class="slot" x="81" y="-10" text-anchor="middle">1</text><text class="slot" x="121" y="-10" text-anchor="middle">2</text><text class="slot" x="161" y="-10" text-anchor="middle">3</text><text class="slot" x="202" y="-10" text-anchor="middle">4</text></g><g class="node" id="n28" data-id="28" transform="translate(888,348)" style="opacity: 1;"><path class="box" d="M0,0H122V44H0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="61" y="18"><tspan>[int]</tspan><tspan class="node-id"> #28/0</tspan></text><text class="type" text-anchor="middle" y="35" x="61">*[int] {int #; int ![]; }</text><title>#28 [int]
Projection 0 of #27
*[int] {int #; int ![]; }
[0] → #27 DATA</title></g><g class="node" id="n29" data-id="29" transform="translate(1010,348)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>$mem</tspan><tspan class="node-id"> #29/1</tspan></text><text class="type" text-anchor="middle" y="35" x="60">MemBot</text><title>#29 $mem
Projection 1 of #27
MemBot
[0] → #27 MEM</title></g><g class="node" id="n32" data-id="32" transform="translate(654,557)" style="opacity: 1;"><path class="box" d="M20,0H100Q120,0 120,20V24Q120,44 100,44H20Q0,44 0,24V20Q0,0 20,0Z" fill="#ffe0ab"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Loop</tspan><tspan class="node-id"> #32</tspan></text><text class="type" text-anchor="middle" y="35" x="60">Ctrl</text><title>#32 Loop
Ctrl
[0] → — ASSOC
[1] → #6 CTRL
[2] → #41 CTRL</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n34" data-id="34" transform="translate(806,557)" style="opacity: 1;"><path class="box" d="M12,0H108L120,22L108,44H12L0,22Z" fill="#f5e4fa"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Phi_i</tspan><tspan class="node-id"> #34</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#34 Phi_i
int
[0] → #32 ASSOC
[1] → #4 DATA
[2] → #60 DATA</title><circle class="port" cx="-3" cy="22" r="3" fill="#536477"/><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><path class="reg" fill="none" stroke="#b63838" d="M-3,22H-18m4,-3l-4,3l4,3"><title>[0] → #32</title></path><text class="slot" x="-10" y="15" text-anchor="middle">0</text><text class="slot" x="40" y="-10" text-anchor="middle">1</text><text class="slot" x="80" y="-10" text-anchor="middle">2</text></g><g class="node" id="n35" data-id="35" transform="translate(725,663)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>LT</tspan><tspan class="node-id"> #35</tspan></text><text class="type" text-anchor="middle" y="35" x="60">bool</text><title>#35 LT
bool
[0] → — CTRL
[1] → #34 DATA
[2] → #18 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n40" data-id="40" transform="translate(634,767)" style="opacity: 1;"><path class="box" d="M0,0H240V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="120" y="18"><tspan>If</tspan><tspan class="node-id"> #40</tspan></text><text class="type" text-anchor="middle" y="35" x="120">[ Ctrl, Ctrl]</text><title>#40 If
[ Ctrl, Ctrl]
[0] → #32 CTRL
[1] → #35 DATA</title><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><circle class="port" cx="160" cy="-3" r="3" fill="#536477"/><text class="slot" x="80" y="-10" text-anchor="middle">0</text><text class="slot" x="160" y="-10" text-anchor="middle">1</text></g><g class="node" id="n41" data-id="41" transform="translate(634,811)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>True</tspan><tspan class="node-id"> #41/0</tspan></text><text class="type" text-anchor="middle" y="35" x="60">Ctrl</text><title>#41 True
Projection 0 of #40
Ctrl
[0] → #40 CTRL</title></g><g class="node" id="n42" data-id="42" transform="translate(754,811)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>False</tspan><tspan class="node-id"> #42/1</tspan></text><text class="type" text-anchor="middle" y="35" x="60">Ctrl</text><title>#42 False
Projection 1 of #40
Ctrl
[0] → #40 CTRL</title></g><g class="node" id="n46" data-id="46" transform="translate(514,348)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #46</tspan></text><text class="type" text-anchor="middle" y="35" x="60">1</text><title>#46 Con
1
[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n51" data-id="51" transform="translate(1443,348)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #51</tspan></text><text class="type" text-anchor="middle" y="35" x="60">8</text><title>#51 Con
8
[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n52" data-id="52" transform="translate(736,348)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Con</tspan><tspan class="node-id"> #52</tspan></text><text class="type" text-anchor="middle" y="35" x="60">3</text><title>#52 Con
3
[0] → #2 ASSOC</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n53" data-id="53" transform="translate(1109,663)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Shl</tspan><tspan class="node-id"> #53</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#53 Shl
int
[0] → — CTRL
[1] → #34 DATA
[2] → #52 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n54" data-id="54" transform="translate(1099,781.6666666666667)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Add</tspan><tspan class="node-id"> #54</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#54 Add
int
[0] → — CTRL
[1] → #53 DATA
[2] → #51 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n56" data-id="56" transform="translate(1251,781.6666666666667)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Add</tspan><tspan class="node-id"> #56</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#56 Add
int
[0] → — CTRL
[1] → #34 DATA
[2] → #8 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n57" data-id="57" transform="translate(825,927)" style="opacity: 1;"><path class="box" d="M10,0H110L120,10V34L110,44H10L0,34V10Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>st_ary</tspan><tspan class="node-id"> #57</tspan></text><text class="type" text-anchor="middle" y="35" x="60">MEM#5:Bot</text><title>#57 st_ary
MEM#5:Bot
[0] → #41 CTRL
[1] → #124 MEM
[2] → #28 DATA
[3] → #54 DATA
[4] → #56 DATA</title><circle class="port" cx="20" cy="-3" r="3" fill="#536477"/><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><circle class="port" cx="100" cy="-3" r="3" fill="#536477"/><text class="slot" x="20" y="-10" text-anchor="middle">0</text><text class="slot" x="40" y="-10" text-anchor="middle">1</text><text class="slot" x="60" y="-10" text-anchor="middle">2</text><text class="slot" x="80" y="-10" text-anchor="middle">3</text><text class="slot" x="100" y="-10" text-anchor="middle">4</text></g><g class="node" id="n60" data-id="60" transform="translate(877,663)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Add</tspan><tspan class="node-id"> #60</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#60 Add
int
[0] → — CTRL
[1] → #34 DATA
[2] → #46 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n65" data-id="65" transform="translate(754,1191)" style="opacity: 1;"><path class="box" d="M20,0H100Q120,0 120,20V24Q120,44 100,44H20Q0,44 0,24V20Q0,0 20,0Z" fill="#ffe0ab"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Loop</tspan><tspan class="node-id"> #65</tspan></text><text class="type" text-anchor="middle" y="35" x="60">Ctrl</text><title>#65 Loop
Ctrl
[0] → — ASSOC
[1] → #42 CTRL
[2] → #74 CTRL</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n67" data-id="67" transform="translate(906,1191)" style="opacity: 1;"><path class="box" d="M12,0H108L120,22L108,44H12L0,22Z" fill="#f5e4fa"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Phi_i</tspan><tspan class="node-id"> #67</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#67 Phi_i
int
[0] → #65 ASSOC
[1] → #4 DATA
[2] → #103 DATA</title><circle class="port" cx="-3" cy="22" r="3" fill="#536477"/><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><path class="reg" fill="none" stroke="#b63838" d="M-3,22H-18m4,-3l-4,3l4,3"><title>[0] → #65</title></path><text class="slot" x="-10" y="15" text-anchor="middle">0</text><text class="slot" x="40" y="-10" text-anchor="middle">1</text><text class="slot" x="80" y="-10" text-anchor="middle">2</text></g><g class="node" id="n68" data-id="68" transform="translate(835,1307)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>LT</tspan><tspan class="node-id"> #68</tspan></text><text class="type" text-anchor="middle" y="35" x="60">bool</text><title>#68 LT
bool
[0] → — CTRL
[1] → #67 DATA
[2] → #18 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n73" data-id="73" transform="translate(734,1411)" style="opacity: 1;"><path class="box" d="M0,0H240V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="120" y="18"><tspan>If</tspan><tspan class="node-id"> #73</tspan></text><text class="type" text-anchor="middle" y="35" x="120">[ Ctrl, Ctrl]</text><title>#73 If
[ Ctrl, Ctrl]
[0] → #65 CTRL
[1] → #68 DATA</title><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><circle class="port" cx="160" cy="-3" r="3" fill="#536477"/><text class="slot" x="80" y="-10" text-anchor="middle">0</text><text class="slot" x="160" y="-10" text-anchor="middle">1</text></g><g class="node" id="n74" data-id="74" transform="translate(734,1455)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>True</tspan><tspan class="node-id"> #74/0</tspan></text><text class="type" text-anchor="middle" y="35" x="60">Ctrl</text><title>#74 True
Projection 0 of #73
Ctrl
[0] → #73 CTRL</title></g><g class="node" id="n75" data-id="75" transform="translate(854,1455)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>False</tspan><tspan class="node-id"> #75/1</tspan></text><text class="type" text-anchor="middle" y="35" x="60">Ctrl</text><title>#75 False
Projection 1 of #73
Ctrl
[0] → #73 CTRL</title></g><g class="node" id="n88" data-id="88" transform="translate(935,1663)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Add</tspan><tspan class="node-id"> #88</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#88 Add
int
[0] → — CTRL
[1] → #131 DATA
[2] → #93 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n91" data-id="91" transform="translate(1373,1307)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Shl</tspan><tspan class="node-id"> #91</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#91 Shl
int
[0] → — CTRL
[1] → #67 DATA
[2] → #52 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n92" data-id="92" transform="translate(1373,1425.6666666666667)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Add</tspan><tspan class="node-id"> #92</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#92 Add
int
[0] → — CTRL
[1] → #91 DATA
[2] → #51 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n93" data-id="93" transform="translate(947,1559)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>ld_ary</tspan><tspan class="node-id"> #93</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#93 ld_ary
int
[0] → #74 CTRL
[1] → #124 MEM
[2] → #28 DATA
[3] → #92 DATA</title><circle class="port" cx="24" cy="-3" r="3" fill="#536477"/><circle class="port" cx="48" cy="-3" r="3" fill="#536477"/><circle class="port" cx="72" cy="-3" r="3" fill="#536477"/><circle class="port" cx="96" cy="-3" r="3" fill="#536477"/><text class="slot" x="24" y="-10" text-anchor="middle">0</text><text class="slot" x="48" y="-10" text-anchor="middle">1</text><text class="slot" x="72" y="-10" text-anchor="middle">2</text><text class="slot" x="96" y="-10" text-anchor="middle">3</text></g><g class="node" id="n99" data-id="99" transform="translate(1221,1307)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Add</tspan><tspan class="node-id"> #99</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#99 Add
int
[0] → — CTRL
[1] → #141 DATA
[2] → #46 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n103" data-id="103" transform="translate(684,1307)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Add</tspan><tspan class="node-id"> #103</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#103 Add
int
[0] → — CTRL
[1] → #67 DATA
[2] → #46 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n106" data-id="106" transform="translate(1610,1950)" style="opacity: 1;"><path class="box" d="M10,0H116L126,10V34L116,44H10L0,34V10Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="63" y="18"><tspan>MemMerge</tspan><tspan class="node-id"> #106</tspan></text><text class="type" text-anchor="middle" y="35" x="63">MemBot</text><title>#106 MemMerge
MemBot
[0] → — CTRL
[1] → #7 MEM
[2] → #146 MEM
[3] → #142 MEM
[4] → #29 MEM
[5] → #124 MEM</title><circle class="port" cx="18" cy="-3" r="3" fill="white"/><circle class="port" cx="36" cy="-3" r="3" fill="#536477"/><circle class="port" cx="54" cy="-3" r="3" fill="#536477"/><circle class="port" cx="72" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><circle class="port" cx="108" cy="-3" r="3" fill="#536477"/><text class="slot" x="18" y="-10" text-anchor="middle">0</text><text class="slot" x="36" y="-10" text-anchor="middle">1</text><text class="slot" x="54" y="-10" text-anchor="middle">2</text><text class="slot" x="72" y="-10" text-anchor="middle">3</text><text class="slot" x="90" y="-10" text-anchor="middle">4</text><text class="slot" x="108" y="-10" text-anchor="middle">5</text></g><g class="node" id="n112" data-id="112" transform="translate(1536,1307)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Add</tspan><tspan class="node-id"> #112</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#112 Add
int
[0] → — CTRL
[1] → #141 DATA
[2] → #131 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n115" data-id="115" transform="translate(883,2054)" style="opacity: 1;"><path class="box" d="M0,0H124V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="62" y="18"><tspan>Return</tspan><tspan class="node-id"> #115</tspan></text><text class="type" text-anchor="middle" y="35" x="62">[ Ctrl, MemBot, int]</text><title>#115 Return
[ Ctrl, MemBot, int]
[0] → #75 CTRL
[1] → #106 MEM
[2] → #112 DATA</title><circle class="port" cx="31" cy="-3" r="3" fill="#536477"/><circle class="port" cx="62" cy="-3" r="3" fill="#536477"/><circle class="port" cx="93" cy="-3" r="3" fill="#536477"/><text class="slot" x="31" y="-10" text-anchor="middle">0</text><text class="slot" x="62" y="-10" text-anchor="middle">1</text><text class="slot" x="93" y="-10" text-anchor="middle">2</text></g><g class="node" id="n124" data-id="124" transform="translate(958,557)" style="opacity: 1;"><path class="box" d="M12,0H108L120,22L108,44H12L0,22Z" fill="#f5e4fa"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>MemPhi_5</tspan><tspan class="node-id"> #124</tspan></text><text class="type" text-anchor="middle" y="35" x="60">MEM#5:Bot</text><title>#124 MemPhi_5
MEM#5:Bot
[0] → #32 ASSOC
[1] → #29 MEM
[2] → #57 MEM</title><circle class="port" cx="-3" cy="22" r="3" fill="#536477"/><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><path class="reg" fill="none" stroke="#b63838" d="M-3,22H-18m4,-3l-4,3l4,3"><title>[0] → #32</title></path><text class="slot" x="-10" y="15" text-anchor="middle">0</text><text class="slot" x="40" y="-10" text-anchor="middle">1</text><text class="slot" x="80" y="-10" text-anchor="middle">2</text></g><g class="node" id="n131" data-id="131" transform="translate(1058,1191)" style="opacity: 1;"><path class="box" d="M12,0H108L120,22L108,44H12L0,22Z" fill="#f5e4fa"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Phi_sum</tspan><tspan class="node-id"> #131</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#131 Phi_sum
int
[0] → #65 ASSOC
[1] → #4 DATA
[2] → #88 DATA</title><circle class="port" cx="-3" cy="22" r="3" fill="#536477"/><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><path class="reg" fill="none" stroke="#b63838" d="M-3,22H-18m4,-3l-4,3l4,3"><title>[0] → #65</title></path><text class="slot" x="-10" y="15" text-anchor="middle">0</text><text class="slot" x="40" y="-10" text-anchor="middle">1</text><text class="slot" x="80" y="-10" text-anchor="middle">2</text></g><g class="node" id="n141" data-id="141" transform="translate(1210,1191)" style="opacity: 1;"><path class="box" d="M12,0H108L120,22L108,44H12L0,22Z" fill="#f5e4fa"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Phi_visits</tspan><tspan class="node-id"> #141</tspan></text><text class="type" text-anchor="middle" y="35" x="60">int</text><title>#141 Phi_visits
int
[0] → #65 ASSOC
[1] → #4 DATA
[2] → #99 DATA</title><circle class="port" cx="-3" cy="22" r="3" fill="#536477"/><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><path class="reg" fill="none" stroke="#b63838" d="M-3,22H-18m4,-3l-4,3l4,3"><title>[0] → #65</title></path><text class="slot" x="-10" y="15" text-anchor="middle">0</text><text class="slot" x="40" y="-10" text-anchor="middle">1</text><text class="slot" x="80" y="-10" text-anchor="middle">2</text></g><g class="node" id="n142" data-id="142" transform="translate(1622,1846)" style="opacity: 1;"><path class="box" d="M10,0H110L120,10V34L110,44H10L0,34V10Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>st_visits</tspan><tspan class="node-id"> #142</tspan></text><text class="type" text-anchor="middle" y="35" x="60">MEM#3:int</text><title>#142 st_visits
MEM#3:int
[0] → — CTRL
[1] → #16 MEM
[2] → #15 DATA
[3] → #51 DATA
[4] → #141 DATA</title><circle class="port" cx="20" cy="-3" r="3" fill="white"/><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><circle class="port" cx="100" cy="-3" r="3" fill="#536477"/><text class="slot" x="20" y="-10" text-anchor="middle">0</text><text class="slot" x="40" y="-10" text-anchor="middle">1</text><text class="slot" x="60" y="-10" text-anchor="middle">2</text><text class="slot" x="80" y="-10" text-anchor="middle">3</text><text class="slot" x="100" y="-10" text-anchor="middle">4</text></g><g class="node" id="n146" data-id="146" transform="translate(936,1846)" style="opacity: 1;"><path class="box" d="M10,0H110L120,10V34L110,44H10L0,34V10Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>st_sum</tspan><tspan class="node-id"> #146</tspan></text><text class="type" text-anchor="middle" y="35" x="60">MEM#2:int</text><title>#146 st_sum
MEM#2:int
[0] → — CTRL
[1] → #16 MEM
[2] → #15 DATA
[3] → #4 DATA
[4] → #131 DATA</title><circle class="port" cx="20" cy="-3" r="3" fill="white"/><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><circle class="port" cx="100" cy="-3" r="3" fill="#536477"/><text class="slot" x="20" y="-10" text-anchor="middle">0</text><text class="slot" x="40" y="-10" text-anchor="middle">1</text><text class="slot" x="60" y="-10" text-anchor="middle">2</text><text class="slot" x="80" y="-10" text-anchor="middle">3</text><text class="slot" x="100" y="-10" text-anchor="middle">4</text></g></g><g class="region-heads" style="opacity: 1;"><g class="region-head" transform="translate(600,463)"><text class="label" x="26" y="17"><tspan>Loop</tspan><tspan class="node-id"> #32</tspan></text><title>Loop · 12 nodes</title><g class="fold-btn" role="button" tabindex="0" transform="translate(4,4)" aria-label="Fold region #32"><rect width="16" height="16" rx="2"/><text x="8" y="12" text-anchor="middle">−</text><title>Fold region</title></g></g><g class="region-head" transform="translate(650,1069)"><text class="label" x="26" y="17"><tspan>Loop</tspan><tspan class="node-id"> #65</tspan></text><title>Loop · 15 nodes</title><g class="fold-btn" role="button" tabindex="0" transform="translate(4,4)" aria-label="Fold region #65"><rect width="16" height="16" rx="2"/><text x="8" y="12" text-anchor="middle">−</text><title>Fold region</title></g></g></g><g class="shortcuts" style="opacity: 1;"/><g class="peep-ghosts" pointer-events="none"/></g></svg>
|