Files
modeling-app/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_graph_flowchart.snap.md
Jonathan Tran 69553fded7 test: Vendor kcl-samples and add simulation tests for them (#5460)
* Change to unzip

* Download kcl-samples as zip to public dir

* Fix fetch:samples, e2e electron still not working

* Change error message to be clearer

* Refactor so that input and output directories of sim tests can be different

* Add kcl samples test implementation

* Update output since adding kcl_samples tests

* Update kcl-samples branch

* Fix git-ignore pattern to only apply to the root

* Fix yarn install and yarn fetch:samples to work the first time

* Remove unneeded exists check

* Change to use kcl-samples in public directory

* Add kcl-samples

* Update output since updating kcl-samples

* Update output files

* Change to not fetch samples during yarn install

* Update output after merge

* Ignore kcl-samples in codespell

* WIP: Don't run e2e if only kcl-samples changed

* Conditionally run cargo tests

* Fix to round floating point values in program memory arrays

* Update output since merge and rounding numbers in memory

* Fix memory redaction for floating point to find more values

* Fix float redaction pattern

* Update output since rounding floating point numbers

* Add center to floating point pattern

* Fix trigger to use picomatch syntax

* Update output since rounding center

* Remove kcl-samples github workflows

* Enable Rust backtrace

* Update output after re-running

* Update output after changing order of post-extrude commands

* Fix to have deterministic order of commands

* Update output after reverting ordering changes

* Update kcl-samples

* Update output after updating samples

* Fix error messages to show the names of all samples that failed

* Change cargo test command to match current one

* Update kcl-samples

* Update output since updating kcl-samples

* Add generate manifest workflow and yarn script

* Fix error check to actually work

* Change util function to be what we actually need

* Move new files after merge

* Fix paths since directory move

* Add dependabot updates for kcl-samples

* Add GitHub workflow to make PR to kcl-samples repo

* Add GitHub workflow to check kcl-samples header comments

* Fix worfklow to change to the right directory

* Add auto-commit simulation test output changes

* Add permissions to workflows

* Fix to run git commit step

* Install just if needed

* Fix directory of justfile

* Add installation of cargo-insta

* Fix to use underscore

* Fix to allow just command failure

* Change to always install CLI tools and cache them

* Trying to fix overwrite failing

* Combine commands

* Change reviewer

* Change to PR targeting the next branch

* Change git commands to not do unnecessary fetch

* Comment out trigger for creating a PR

* Update kcl-samples from next branch

* Update outputs after kcl-samples change

* Fix to use bash pipefail

* Add rust backtrace

* Print full env from sim tests

* Change command to use long option name

* Fix to use ci profile even when calling through just

* Add INSTA_UPDATE=always

* Fix git push by using an app token on checkout

* Add comments

* Fix to use bash options

* Change to echo when no changes are found

* Fix so that kcl-samples updates don't trigger full run

* Fix paths to reflect new crate location

* Fix path detection

* Fix e2e job to ignore kcl_samples simulation test output

* Fix the fetch logic for the KCL samples after vendoring (#5661)

Fixes the last 2 E2E tests for #5460.

---------

Co-authored-by: Pierre Jacquier <pierre@zoo.dev>
Co-authored-by: Pierre Jacquier <pierrejacquier39@gmail.com>
Co-authored-by: Frank Noirot <frank@zoo.dev>
2025-03-06 18:01:24 -05:00

16 KiB

flowchart LR
  subgraph path2 [Path]
    2["Path<br>[228, 283, 3]"]
    3["Segment<br>[289, 351, 3]"]
    4["Segment<br>[357, 472, 3]"]
    5["Segment<br>[478, 598, 3]"]
    6["Segment<br>[604, 689, 3]"]
    7["Segment<br>[695, 702, 3]"]
    8[Solid2d]
  end
  subgraph path28 [Path]
    28["Path<br>[1137, 1194, 3]"]
    29["Segment<br>[1137, 1194, 3]"]
    30[Solid2d]
  end
  subgraph path36 [Path]
    36["Path<br>[1413, 1450, 3]"]
    37["Segment<br>[1413, 1450, 3]"]
    38[Solid2d]
  end
  subgraph path44 [Path]
    44["Path<br>[1582, 1721, 3]"]
    45["Segment<br>[1582, 1721, 3]"]
    46[Solid2d]
  end
  subgraph path51 [Path]
    51["Path<br>[1966, 2105, 3]"]
    52["Segment<br>[1966, 2105, 3]"]
    53[Solid2d]
  end
  subgraph path59 [Path]
    59["Path<br>[205, 265, 4]"]
    60["Segment<br>[205, 265, 4]"]
    61[Solid2d]
  end
  subgraph path69 [Path]
    69["Path<br>[516, 552, 4]"]
    70["Segment<br>[558, 602, 4]"]
    71["Segment<br>[608, 696, 4]"]
    72["Segment<br>[702, 751, 4]"]
    73["Segment<br>[757, 813, 4]"]
    74["Segment<br>[819, 826, 4]"]
    75[Solid2d]
  end
  subgraph path91 [Path]
    91["Path<br>[923, 1091, 4]"]
    92["Segment<br>[923, 1091, 4]"]
    93[Solid2d]
  end
  subgraph path99 [Path]
    99["Path<br>[1316, 1462, 4]"]
    100["Segment<br>[1316, 1462, 4]"]
    101[Solid2d]
  end
  subgraph path107 [Path]
    107["Path<br>[1778, 1943, 4]"]
    108["Segment<br>[1778, 1943, 4]"]
    109[Solid2d]
  end
  subgraph path116 [Path]
    116["Path<br>[2189, 2229, 4]"]
    117["Segment<br>[2189, 2229, 4]"]
    118[Solid2d]
  end
  subgraph path128 [Path]
    128["Path<br>[253, 396, 5]"]
    129["Segment<br>[402, 518, 5]"]
    130["Segment<br>[524, 602, 5]"]
    131["Segment<br>[608, 724, 5]"]
    132["Segment<br>[730, 786, 5]"]
    133["Segment<br>[792, 799, 5]"]
    134[Solid2d]
  end
  subgraph path150 [Path]
    150["Path<br>[915, 979, 5]"]
    151["Segment<br>[915, 979, 5]"]
    152[Solid2d]
  end
  subgraph path158 [Path]
    158["Path<br>[1169, 1364, 5]"]
    159["Segment<br>[1169, 1364, 5]"]
    160[Solid2d]
  end
  subgraph path166 [Path]
    166["Path<br>[1588, 1632, 5]"]
    167["Segment<br>[1588, 1632, 5]"]
    168[Solid2d]
  end
  subgraph path174 [Path]
    174["Path<br>[1869, 2060, 5]"]
    175["Segment<br>[1869, 2060, 5]"]
    176[Solid2d]
  end
  subgraph path182 [Path]
    182["Path<br>[2412, 2586, 5]"]
    183["Segment<br>[2412, 2586, 5]"]
    184[Solid2d]
  end
  subgraph path191 [Path]
    191["Path<br>[273, 506, 6]"]
    192["Segment<br>[512, 631, 6]"]
    193["Segment<br>[637, 717, 6]"]
    194["Segment<br>[723, 842, 6]"]
    195["Segment<br>[848, 918, 6]"]
    196["Segment<br>[924, 931, 6]"]
    197[Solid2d]
  end
  subgraph path213 [Path]
    213["Path<br>[1045, 1245, 6]"]
    214["Segment<br>[1045, 1245, 6]"]
    215[Solid2d]
  end
  subgraph path221 [Path]
    221["Path<br>[1471, 1659, 6]"]
    222["Segment<br>[1471, 1659, 6]"]
    223[Solid2d]
  end
  subgraph path229 [Path]
    229["Path<br>[2079, 2364, 6]"]
    230["Segment<br>[2079, 2364, 6]"]
    231[Solid2d]
  end
  subgraph path238 [Path]
    238["Path<br>[2463, 2746, 6]"]
    239["Segment<br>[2463, 2746, 6]"]
    240[Solid2d]
  end
  subgraph path247 [Path]
    247["Path<br>[2900, 2938, 6]"]
    248["Segment<br>[2900, 2938, 6]"]
    249[Solid2d]
  end
  subgraph path256 [Path]
    256["Path<br>[3068, 3293, 6]"]
    257["Segment<br>[3299, 3393, 6]"]
    258["Segment<br>[3399, 3542, 6]"]
    259["Segment<br>[3548, 3642, 6]"]
    260["Segment<br>[3648, 3750, 6]"]
    261["Segment<br>[3756, 3858, 6]"]
    262["Segment<br>[3864, 3964, 6]"]
    263["Segment<br>[3970, 4026, 6]"]
    264["Segment<br>[4032, 4039, 6]"]
    265[Solid2d]
  end
  subgraph path290 [Path]
    290["Path<br>[4168, 4393, 6]"]
    291["Segment<br>[4399, 4495, 6]"]
    292["Segment<br>[4501, 4649, 6]"]
    293["Segment<br>[4655, 4751, 6]"]
    294["Segment<br>[4757, 4861, 6]"]
    295["Segment<br>[4867, 4971, 6]"]
    296["Segment<br>[4977, 5079, 6]"]
    297["Segment<br>[5085, 5141, 6]"]
    298["Segment<br>[5147, 5154, 6]"]
    299[Solid2d]
  end
  1["Plane<br>[203, 222, 3]"]
  9["Sweep Extrusion<br>[716, 763, 3]"]
  10[Wall]
  11[Wall]
  12[Wall]
  13[Wall]
  14["Cap Start"]
  15["Cap End"]
  16["SweepEdge Opposite"]
  17["SweepEdge Adjacent"]
  18["SweepEdge Opposite"]
  19["SweepEdge Adjacent"]
  20["SweepEdge Opposite"]
  21["SweepEdge Adjacent"]
  22["SweepEdge Opposite"]
  23["SweepEdge Adjacent"]
  24["EdgeCut Chamfer<br>[769, 1045, 3]"]
  25["EdgeCut Chamfer<br>[769, 1045, 3]"]
  26["EdgeCut Chamfer<br>[769, 1045, 3]"]
  27["EdgeCut Chamfer<br>[769, 1045, 3]"]
  31["Sweep Extrusion<br>[1208, 1274, 3]"]
  32[Wall]
  33["Cap End"]
  34["SweepEdge Opposite"]
  35["SweepEdge Adjacent"]
  39["Sweep Extrusion<br>[1464, 1494, 3]"]
  40[Wall]
  41["Cap End"]
  42["SweepEdge Opposite"]
  43["SweepEdge Adjacent"]
  47["Sweep Extrusion<br>[1868, 1915, 3]"]
  48[Wall]
  49["SweepEdge Opposite"]
  50["SweepEdge Adjacent"]
  54["Sweep Extrusion<br>[2240, 2287, 3]"]
  55[Wall]
  56["SweepEdge Opposite"]
  57["SweepEdge Adjacent"]
  58["Plane<br>[176, 199, 4]"]
  62["Sweep Extrusion<br>[279, 317, 4]"]
  63[Wall]
  64["Cap Start"]
  65["Cap End"]
  66["SweepEdge Opposite"]
  67["SweepEdge Adjacent"]
  68["Plane<br>[487, 510, 4]"]
  76["Sweep Extrusion<br>[841, 871, 4]"]
  77[Wall]
  78[Wall]
  79[Wall]
  80[Wall]
  81["Cap Start"]
  82["Cap End"]
  83["SweepEdge Opposite"]
  84["SweepEdge Adjacent"]
  85["SweepEdge Opposite"]
  86["SweepEdge Adjacent"]
  87["SweepEdge Opposite"]
  88["SweepEdge Adjacent"]
  89["SweepEdge Opposite"]
  90["SweepEdge Adjacent"]
  94["Sweep Extrusion<br>[1105, 1137, 4]"]
  95[Wall]
  96["Cap End"]
  97["SweepEdge Opposite"]
  98["SweepEdge Adjacent"]
  102["Sweep Extrusion<br>[1694, 1726, 4]"]
  103[Wall]
  104["Cap End"]
  105["SweepEdge Opposite"]
  106["SweepEdge Adjacent"]
  110["Sweep Extrusion<br>[1957, 1990, 4]"]
  111[Wall]
  112["Cap End"]
  113["SweepEdge Opposite"]
  114["SweepEdge Adjacent"]
  115["Plane<br>[2160, 2183, 4]"]
  119["Sweep Extrusion<br>[2231, 2262, 4]"]
  120[Wall]
  121["Cap Start"]
  122["Cap End"]
  123["SweepEdge Opposite"]
  124["SweepEdge Adjacent"]
  125["EdgeCut Fillet<br>[323, 406, 4]"]
  126["EdgeCut Fillet<br>[1996, 2079, 4]"]
  127["Plane<br>[224, 247, 5]"]
  135["Sweep Extrusion<br>[813, 861, 5]"]
  136[Wall]
  137[Wall]
  138[Wall]
  139[Wall]
  140["Cap Start"]
  141["Cap End"]
  142["SweepEdge Opposite"]
  143["SweepEdge Adjacent"]
  144["SweepEdge Opposite"]
  145["SweepEdge Adjacent"]
  146["SweepEdge Opposite"]
  147["SweepEdge Adjacent"]
  148["SweepEdge Opposite"]
  149["SweepEdge Adjacent"]
  153["Sweep Extrusion<br>[994, 1027, 5]"]
  154[Wall]
  155["Cap End"]
  156["SweepEdge Opposite"]
  157["SweepEdge Adjacent"]
  161["Sweep Extrusion<br>[1379, 1409, 5]"]
  162[Wall]
  163["Cap End"]
  164["SweepEdge Opposite"]
  165["SweepEdge Adjacent"]
  169["Sweep Extrusion<br>[1784, 1817, 5]"]
  170[Wall]
  171["Cap End"]
  172["SweepEdge Opposite"]
  173["SweepEdge Adjacent"]
  177["Sweep Extrusion<br>[2327, 2360, 5]"]
  178[Wall]
  179["Cap End"]
  180["SweepEdge Opposite"]
  181["SweepEdge Adjacent"]
  185["Sweep Extrusion<br>[2588, 2618, 5]"]
  186[Wall]
  187["Cap End"]
  188["SweepEdge Opposite"]
  189["SweepEdge Adjacent"]
  190["Plane<br>[244, 267, 6]"]
  198["Sweep Extrusion<br>[945, 993, 6]"]
  199[Wall]
  200[Wall]
  201[Wall]
  202[Wall]
  203["Cap Start"]
  204["Cap End"]
  205["SweepEdge Opposite"]
  206["SweepEdge Adjacent"]
  207["SweepEdge Opposite"]
  208["SweepEdge Adjacent"]
  209["SweepEdge Opposite"]
  210["SweepEdge Adjacent"]
  211["SweepEdge Opposite"]
  212["SweepEdge Adjacent"]
  216["Sweep Extrusion<br>[1260, 1293, 6]"]
  217[Wall]
  218["Cap End"]
  219["SweepEdge Opposite"]
  220["SweepEdge Adjacent"]
  224["Sweep Extrusion<br>[1923, 1956, 6]"]
  225[Wall]
  226["Cap End"]
  227["SweepEdge Opposite"]
  228["SweepEdge Adjacent"]
  232["Sweep Extrusion<br>[2378, 2411, 6]"]
  233[Wall]
  234["Cap Start"]
  235["Cap End"]
  236["SweepEdge Opposite"]
  237["SweepEdge Adjacent"]
  241["Sweep Extrusion<br>[2761, 2794, 6]"]
  242[Wall]
  243["Cap Start"]
  244["Cap End"]
  245["SweepEdge Opposite"]
  246["SweepEdge Adjacent"]
  250["Sweep Extrusion<br>[2953, 2987, 6]"]
  251[Wall]
  252["Cap Start"]
  253["Cap End"]
  254["SweepEdge Opposite"]
  255["SweepEdge Adjacent"]
  266["Sweep Extrusion<br>[4054, 4087, 6]"]
  267[Wall]
  268[Wall]
  269[Wall]
  270[Wall]
  271[Wall]
  272[Wall]
  273[Wall]
  274["Cap Start"]
  275["Cap End"]
  276["SweepEdge Opposite"]
  277["SweepEdge Adjacent"]
  278["SweepEdge Opposite"]
  279["SweepEdge Adjacent"]
  280["SweepEdge Opposite"]
  281["SweepEdge Adjacent"]
  282["SweepEdge Opposite"]
  283["SweepEdge Adjacent"]
  284["SweepEdge Opposite"]
  285["SweepEdge Adjacent"]
  286["SweepEdge Opposite"]
  287["SweepEdge Adjacent"]
  288["SweepEdge Opposite"]
  289["SweepEdge Adjacent"]
  300["Sweep Extrusion<br>[5156, 5189, 6]"]
  301[Wall]
  302[Wall]
  303[Wall]
  304[Wall]
  305[Wall]
  306[Wall]
  307[Wall]
  308["Cap Start"]
  309["Cap End"]
  310["SweepEdge Opposite"]
  311["SweepEdge Adjacent"]
  312["SweepEdge Opposite"]
  313["SweepEdge Adjacent"]
  314["SweepEdge Opposite"]
  315["SweepEdge Adjacent"]
  316["SweepEdge Opposite"]
  317["SweepEdge Adjacent"]
  318["SweepEdge Opposite"]
  319["SweepEdge Adjacent"]
  320["SweepEdge Opposite"]
  321["SweepEdge Adjacent"]
  322["SweepEdge Opposite"]
  323["SweepEdge Adjacent"]
  324["StartSketchOnFace<br>[1099, 1131, 3]"]
  325["StartSketchOnFace<br>[1375, 1407, 3]"]
  326["StartSketchOnFace<br>[1544, 1576, 3]"]
  327["StartSketchOnFace<br>[1928, 1960, 3]"]
  328["StartSketchOnFace<br>[885, 917, 4]"]
  329["StartSketchOnFace<br>[1278, 1310, 4]"]
  330["StartSketchOnFace<br>[1740, 1772, 4]"]
  331["StartSketchOnFace<br>[875, 909, 5]"]
  332["StartSketchOnFace<br>[1129, 1163, 5]"]
  333["StartSketchOnFace<br>[1550, 1582, 5]"]
  334["StartSketchOnFace<br>[1831, 1863, 5]"]
  335["StartSketchOnFace<br>[2374, 2406, 5]"]
  336["StartSketchOnFace<br>[1007, 1039, 6]"]
  337["StartSketchOnFace<br>[1433, 1465, 6]"]
  338["StartSketchOnFace<br>[2039, 2073, 6]"]
  339["StartSketchOnFace<br>[2425, 2457, 6]"]
  340["StartSketchOnFace<br>[2860, 2894, 6]"]
  341["StartSketchOnFace<br>[3028, 3062, 6]"]
  342["StartSketchOnFace<br>[4128, 4162, 6]"]
  1 --- 2
  2 --- 3
  2 --- 4
  2 --- 5
  2 --- 6
  2 --- 7
  2 ---- 9
  2 --- 8
  3 --- 10
  3 --- 16
  3 --- 17
  4 --- 11
  4 --- 18
  4 --- 19
  5 --- 12
  5 --- 20
  5 --- 21
  6 --- 13
  6 --- 22
  6 --- 23
  9 --- 10
  9 --- 11
  9 --- 12
  9 --- 13
  9 --- 14
  9 --- 15
  9 --- 16
  9 --- 17
  9 --- 18
  9 --- 19
  9 --- 20
  9 --- 21
  9 --- 22
  9 --- 23
  15 --- 28
  15 --- 44
  15 --- 51
  17 <--x 24
  19 <--x 25
  21 <--x 26
  23 <--x 27
  28 --- 29
  28 ---- 31
  28 --- 30
  29 --- 32
  29 --- 34
  29 --- 35
  31 --- 32
  31 --- 33
  31 --- 34
  31 --- 35
  33 --- 36
  36 --- 37
  36 ---- 39
  36 --- 38
  37 --- 40
  37 --- 42
  37 --- 43
  39 --- 40
  39 --- 41
  39 --- 42
  39 --- 43
  44 --- 45
  44 ---- 47
  44 --- 46
  45 --- 48
  45 --- 49
  45 --- 50
  47 --- 48
  47 --- 49
  47 --- 50
  51 --- 52
  51 ---- 54
  51 --- 53
  52 --- 55
  52 --- 56
  52 --- 57
  54 --- 55
  54 --- 56
  54 --- 57
  58 --- 59
  59 --- 60
  59 ---- 62
  59 --- 61
  60 --- 63
  60 --- 66
  60 --- 67
  62 --- 63
  62 --- 64
  62 --- 65
  62 --- 66
  62 --- 67
  68 --- 69
  69 --- 70
  69 --- 71
  69 --- 72
  69 --- 73
  69 --- 74
  69 ---- 76
  69 --- 75
  70 --- 77
  70 --- 83
  70 --- 84
  71 --- 78
  71 --- 85
  71 --- 86
  72 --- 79
  72 --- 87
  72 --- 88
  73 --- 80
  73 --- 89
  73 --- 90
  76 --- 77
  76 --- 78
  76 --- 79
  76 --- 80
  76 --- 81
  76 --- 82
  76 --- 83
  76 --- 84
  76 --- 85
  76 --- 86
  76 --- 87
  76 --- 88
  76 --- 89
  76 --- 90
  82 --- 91
  91 --- 92
  91 ---- 94
  91 --- 93
  92 --- 95
  92 --- 97
  92 --- 98
  94 --- 95
  94 --- 96
  94 --- 97
  94 --- 98
  96 --- 99
  96 --- 107
  99 --- 100
  99 ---- 102
  99 --- 101
  100 --- 103
  100 --- 105
  100 --- 106
  102 --- 103
  102 --- 104
  102 --- 105
  102 --- 106
  107 --- 108
  107 ---- 110
  107 --- 109
  108 --- 111
  108 --- 113
  108 --- 114
  110 --- 111
  110 --- 112
  110 --- 113
  110 --- 114
  115 --- 116
  116 --- 117
  116 ---- 119
  116 --- 118
  117 --- 120
  117 --- 123
  117 --- 124
  119 --- 120
  119 --- 121
  119 --- 122
  119 --- 123
  119 --- 124
  66 <--x 125
  113 <--x 126
  127 --- 128
  128 --- 129
  128 --- 130
  128 --- 131
  128 --- 132
  128 --- 133
  128 ---- 135
  128 --- 134
  129 --- 136
  129 --- 142
  129 --- 143
  130 --- 137
  130 --- 144
  130 --- 145
  131 --- 138
  131 --- 146
  131 --- 147
  132 --- 139
  132 --- 148
  132 --- 149
  135 --- 136
  135 --- 137
  135 --- 138
  135 --- 139
  135 --- 140
  135 --- 141
  135 --- 142
  135 --- 143
  135 --- 144
  135 --- 145
  135 --- 146
  135 --- 147
  135 --- 148
  135 --- 149
  140 --- 150
  140 --- 158
  141 --- 182
  150 --- 151
  150 ---- 153
  150 --- 152
  151 --- 154
  151 --- 156
  151 --- 157
  153 --- 154
  153 --- 155
  153 --- 156
  153 --- 157
  155 --- 166
  158 --- 159
  158 ---- 161
  158 --- 160
  159 --- 162
  159 --- 164
  159 --- 165
  161 --- 162
  161 --- 163
  161 --- 164
  161 --- 165
  163 --- 174
  166 --- 167
  166 ---- 169
  166 --- 168
  167 --- 170
  167 --- 172
  167 --- 173
  169 --- 170
  169 --- 171
  169 --- 172
  169 --- 173
  174 --- 175
  174 ---- 177
  174 --- 176
  175 --- 178
  175 --- 180
  175 --- 181
  177 --- 178
  177 --- 179
  177 --- 180
  177 --- 181
  182 --- 183
  182 ---- 185
  182 --- 184
  183 --- 186
  183 --- 188
  183 --- 189
  185 --- 186
  185 --- 187
  185 --- 188
  185 --- 189
  190 --- 191
  191 --- 192
  191 --- 193
  191 --- 194
  191 --- 195
  191 --- 196
  191 ---- 198
  191 --- 197
  192 --- 199
  192 --- 205
  192 --- 206
  193 --- 200
  193 --- 207
  193 --- 208
  194 --- 201
  194 --- 209
  194 --- 210
  195 --- 202
  195 --- 211
  195 --- 212
  198 --- 199
  198 --- 200
  198 --- 201
  198 --- 202
  198 --- 203
  198 --- 204
  198 --- 205
  198 --- 206
  198 --- 207
  198 --- 208
  198 --- 209
  198 --- 210
  198 --- 211
  198 --- 212
  203 --- 229
  204 --- 213
  204 --- 238
  213 --- 214
  213 ---- 216
  213 --- 215
  214 --- 217
  214 --- 219
  214 --- 220
  216 --- 217
  216 --- 218
  216 --- 219
  216 --- 220
  218 --- 221
  221 --- 222
  221 ---- 224
  221 --- 223
  222 --- 225
  222 --- 227
  222 --- 228
  224 --- 225
  224 --- 226
  224 --- 227
  224 --- 228
  229 --- 230
  229 ---- 232
  229 --- 231
  230 --- 233
  230 --- 236
  230 --- 237
  232 --- 233
  232 --- 234
  232 --- 235
  232 --- 236
  232 --- 237
  238 --- 239
  238 ---- 241
  238 --- 240
  239 --- 242
  239 --- 245
  239 --- 246
  241 --- 242
  241 --- 243
  241 --- 244
  241 --- 245
  241 --- 246
  243 --- 247
  247 --- 248
  247 ---- 250
  247 --- 249
  248 --- 251
  248 --- 254
  248 --- 255
  250 --- 251
  250 --- 252
  250 --- 253
  250 --- 254
  250 --- 255
  252 --- 256
  252 --- 290
  256 --- 257
  256 --- 258
  256 --- 259
  256 --- 260
  256 --- 261
  256 --- 262
  256 --- 263
  256 --- 264
  256 ---- 266
  256 --- 265
  257 --- 267
  257 --- 276
  257 --- 277
  258 --- 268
  258 --- 278
  258 --- 279
  259 --- 269
  259 --- 280
  259 --- 281
  260 --- 270
  260 --- 282
  260 --- 283
  261 --- 271
  261 --- 284
  261 --- 285
  262 --- 272
  262 --- 286
  262 --- 287
  263 --- 273
  263 --- 288
  263 --- 289
  266 --- 267
  266 --- 268
  266 --- 269
  266 --- 270
  266 --- 271
  266 --- 272
  266 --- 273
  266 --- 274
  266 --- 275
  266 --- 276
  266 --- 277
  266 --- 278
  266 --- 279
  266 --- 280
  266 --- 281
  266 --- 282
  266 --- 283
  266 --- 284
  266 --- 285
  266 --- 286
  266 --- 287
  266 --- 288
  266 --- 289
  290 --- 291
  290 --- 292
  290 --- 293
  290 --- 294
  290 --- 295
  290 --- 296
  290 --- 297
  290 --- 298
  290 ---- 300
  290 --- 299
  291 --- 307
  291 --- 322
  291 --- 323
  292 --- 306
  292 --- 320
  292 --- 321
  293 --- 305
  293 --- 318
  293 --- 319
  294 --- 304
  294 --- 316
  294 --- 317
  295 --- 303
  295 --- 314
  295 --- 315
  296 --- 302
  296 --- 312
  296 --- 313
  297 --- 301
  297 --- 310
  297 --- 311
  300 --- 301
  300 --- 302
  300 --- 303
  300 --- 304
  300 --- 305
  300 --- 306
  300 --- 307
  300 --- 308
  300 --- 309
  300 --- 310
  300 --- 311
  300 --- 312
  300 --- 313
  300 --- 314
  300 --- 315
  300 --- 316
  300 --- 317
  300 --- 318
  300 --- 319
  300 --- 320
  300 --- 321
  300 --- 322
  300 --- 323
  15 <--x 324
  33 <--x 325
  15 <--x 326
  15 <--x 327
  82 <--x 328
  96 <--x 329
  96 <--x 330
  140 <--x 331
  140 <--x 332
  155 <--x 333
  163 <--x 334
  141 <--x 335
  204 <--x 336
  218 <--x 337
  203 <--x 338
  204 <--x 339
  243 <--x 340
  252 <--x 341
  252 <--x 342