Files
modeling-app/rust/kcl-lib/tests/kcl_samples/cold-plate/artifact_graph_flowchart.snap.md
Jonathan Tran aae34cf1e5 Deterministic artifact graph - bring back the clockwork universe (#7483)
* Change to use deterministic artifact graph

* Update output to use the new order

* Fix to clear everything when scene is cleared

* Fix lots

* Update artifact graph output for the last time

* Delete unused sorting code

* Remove unneeded cfg

* Fix to preserve top-level artifacts when there's an error

* Update output after error fix

* Add better doc comments

* Remove duplicate global operations

* Update comments

* Update ignored tests that were flaky

* Update graph for new samples after rebase

* Fix test assertion message
2025-06-16 17:55:24 +00:00

20 KiB

flowchart LR
  subgraph path2 [Path]
    2["Path<br>[577, 617, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
    3["Segment<br>[623, 670, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
    4["Segment<br>[676, 705, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
    5["Segment<br>[711, 764, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
    6["Segment<br>[770, 798, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
    7["Segment<br>[804, 863, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
    8["Segment<br>[869, 912, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
    9["Segment<br>[918, 971, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
    10["Segment<br>[977, 1019, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 9 }]
    11["Segment<br>[1025, 1072, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 10 }]
    12["Segment<br>[1078, 1128, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 11 }]
    13["Segment<br>[1134, 1196, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 12 }]
    14["Segment<br>[1202, 1253, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 13 }]
    15["Segment<br>[1259, 1281, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 14 }]
    16["Segment<br>[1287, 1309, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 15 }]
    17["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    18["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    19["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    20["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    21["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    22["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    23["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    24["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    25["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    26["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    27["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    28["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    29["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    30["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    31["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    32["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    33["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    34["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    35["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    36["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    37["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    38["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    39["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    40["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    41["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    42["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    43["Segment<br>[1315, 1333, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
    44["Segment<br>[1339, 1346, 0]"]
      %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 17 }]
    45[Solid2d]
  end
  subgraph path131 [Path]
    131["Path<br>[1517, 1560, 0]"]
      %% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
    132["Segment<br>[1566, 1601, 0]"]
      %% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
    133["Segment<br>[1607, 1668, 0]"]
      %% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
    134["Segment<br>[1674, 1743, 0]"]
      %% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
    135["Segment<br>[1749, 1811, 0]"]
      %% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
    136["Segment<br>[1817, 1880, 0]"]
      %% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
    137["Segment<br>[1886, 1947, 0]"]
      %% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
    138["Segment<br>[1953, 2016, 0]"]
      %% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
  end
  subgraph path140 [Path]
    140["Path<br>[2162, 2237, 0]"]
      %% [ProgramBodyItem { index: 5 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
    141["Segment<br>[2162, 2237, 0]"]
      %% [ProgramBodyItem { index: 5 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
    142[Solid2d]
  end
  subgraph path143 [Path]
    143["Path<br>[2264, 2355, 0]"]
      %% [ProgramBodyItem { index: 5 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }, CallKwArg { index: 0 }]
    144["Segment<br>[2264, 2355, 0]"]
      %% [ProgramBodyItem { index: 5 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }, CallKwArg { index: 0 }]
    145[Solid2d]
  end
  subgraph path153 [Path]
    153["Path<br>[2552, 2584, 0]"]
      %% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
    154["Segment<br>[2590, 2680, 0]"]
      %% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
    155["Segment<br>[2686, 2723, 0]"]
      %% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
    156["Segment<br>[2729, 2882, 0]"]
      %% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
    157["Segment<br>[2888, 2944, 0]"]
      %% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
    158["Segment<br>[2950, 2957, 0]"]
      %% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
    159[Solid2d]
  end
  1["Plane<br>[554, 571, 0]"]
    %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
  46["Sweep Extrusion<br>[1352, 1390, 0]"]
    %% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 18 }]
  47[Wall]
    %% face_code_ref=Missing NodePath
  48[Wall]
    %% face_code_ref=Missing NodePath
  49[Wall]
    %% face_code_ref=Missing NodePath
  50[Wall]
    %% face_code_ref=Missing NodePath
  51[Wall]
    %% face_code_ref=Missing NodePath
  52[Wall]
    %% face_code_ref=Missing NodePath
  53[Wall]
    %% face_code_ref=Missing NodePath
  54[Wall]
    %% face_code_ref=Missing NodePath
  55[Wall]
    %% face_code_ref=Missing NodePath
  56[Wall]
    %% face_code_ref=Missing NodePath
  57[Wall]
    %% face_code_ref=Missing NodePath
  58[Wall]
    %% face_code_ref=Missing NodePath
  59[Wall]
    %% face_code_ref=Missing NodePath
  60[Wall]
    %% face_code_ref=Missing NodePath
  61[Wall]
    %% face_code_ref=Missing NodePath
  62[Wall]
    %% face_code_ref=Missing NodePath
  63[Wall]
    %% face_code_ref=Missing NodePath
  64[Wall]
    %% face_code_ref=Missing NodePath
  65[Wall]
    %% face_code_ref=Missing NodePath
  66[Wall]
    %% face_code_ref=Missing NodePath
  67[Wall]
    %% face_code_ref=Missing NodePath
  68[Wall]
    %% face_code_ref=Missing NodePath
  69[Wall]
    %% face_code_ref=Missing NodePath
  70[Wall]
    %% face_code_ref=Missing NodePath
  71[Wall]
    %% face_code_ref=Missing NodePath
  72[Wall]
    %% face_code_ref=Missing NodePath
  73[Wall]
    %% face_code_ref=Missing NodePath
  74["Cap Start"]
    %% face_code_ref=Missing NodePath
  75["Cap End"]
    %% face_code_ref=Missing NodePath
  76["SweepEdge Opposite"]
  77["SweepEdge Adjacent"]
  78["SweepEdge Opposite"]
  79["SweepEdge Adjacent"]
  80["SweepEdge Opposite"]
  81["SweepEdge Adjacent"]
  82["SweepEdge Opposite"]
  83["SweepEdge Adjacent"]
  84["SweepEdge Opposite"]
  85["SweepEdge Adjacent"]
  86["SweepEdge Opposite"]
  87["SweepEdge Adjacent"]
  88["SweepEdge Opposite"]
  89["SweepEdge Adjacent"]
  90["SweepEdge Opposite"]
  91["SweepEdge Adjacent"]
  92["SweepEdge Opposite"]
  93["SweepEdge Adjacent"]
  94["SweepEdge Opposite"]
  95["SweepEdge Adjacent"]
  96["SweepEdge Opposite"]
  97["SweepEdge Adjacent"]
  98["SweepEdge Opposite"]
  99["SweepEdge Adjacent"]
  100["SweepEdge Opposite"]
  101["SweepEdge Adjacent"]
  102["SweepEdge Opposite"]
  103["SweepEdge Adjacent"]
  104["SweepEdge Opposite"]
  105["SweepEdge Adjacent"]
  106["SweepEdge Opposite"]
  107["SweepEdge Adjacent"]
  108["SweepEdge Opposite"]
  109["SweepEdge Adjacent"]
  110["SweepEdge Opposite"]
  111["SweepEdge Adjacent"]
  112["SweepEdge Opposite"]
  113["SweepEdge Adjacent"]
  114["SweepEdge Opposite"]
  115["SweepEdge Adjacent"]
  116["SweepEdge Opposite"]
  117["SweepEdge Adjacent"]
  118["SweepEdge Opposite"]
  119["SweepEdge Adjacent"]
  120["SweepEdge Opposite"]
  121["SweepEdge Adjacent"]
  122["SweepEdge Opposite"]
  123["SweepEdge Adjacent"]
  124["SweepEdge Opposite"]
  125["SweepEdge Adjacent"]
  126["SweepEdge Opposite"]
  127["SweepEdge Adjacent"]
  128["SweepEdge Opposite"]
  129["SweepEdge Adjacent"]
  130["Plane<br>[1472, 1510, 0]"]
    %% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }, CallKwUnlabeledArg]
  139["Plane<br>[2124, 2155, 0]"]
    %% [ProgramBodyItem { index: 5 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }, CallKwUnlabeledArg]
  146["Sweep Sweep<br>[2362, 2390, 0]"]
    %% [ProgramBodyItem { index: 5 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
  147[Wall]
    %% face_code_ref=Missing NodePath
  148["Cap Start"]
    %% face_code_ref=Missing NodePath
  149["Cap Start"]
    %% face_code_ref=Missing NodePath
  150["SweepEdge Opposite"]
  151["SweepEdge Adjacent"]
  152["Plane<br>[2529, 2546, 0]"]
    %% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
  160["Sweep Extrusion<br>[2963, 3001, 0]"]
    %% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
  161[Wall]
    %% face_code_ref=Missing NodePath
  162[Wall]
    %% face_code_ref=Missing NodePath
  163[Wall]
    %% face_code_ref=Missing NodePath
  164[Wall]
    %% face_code_ref=Missing NodePath
  165["Cap Start"]
    %% face_code_ref=Missing NodePath
  166["Cap End"]
    %% face_code_ref=Missing NodePath
  167["SweepEdge Opposite"]
  168["SweepEdge Adjacent"]
  169["SweepEdge Opposite"]
  170["SweepEdge Adjacent"]
  171["SweepEdge Opposite"]
  172["SweepEdge Adjacent"]
  173["SweepEdge Opposite"]
  174["SweepEdge Adjacent"]
  175["StartSketchOnPlane<br>[1458, 1511, 0]"]
    %% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
  176["StartSketchOnPlane<br>[2110, 2156, 0]"]
    %% [ProgramBodyItem { index: 5 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
  1 --- 2
  2 --- 3
  2 --- 4
  2 --- 5
  2 --- 6
  2 --- 7
  2 --- 8
  2 --- 9
  2 --- 10
  2 --- 11
  2 --- 12
  2 --- 13
  2 --- 14
  2 --- 15
  2 --- 16
  2 --- 17
  2 --- 18
  2 --- 19
  2 --- 20
  2 --- 21
  2 --- 22
  2 --- 23
  2 --- 24
  2 --- 25
  2 --- 26
  2 --- 27
  2 --- 28
  2 --- 29
  2 --- 30
  2 --- 31
  2 --- 32
  2 --- 33
  2 --- 34
  2 --- 35
  2 --- 36
  2 --- 37
  2 --- 38
  2 --- 39
  2 --- 40
  2 --- 41
  2 --- 42
  2 --- 43
  2 --- 44
  2 --- 45
  2 ---- 46
  17 --- 73
  17 x--> 74
  17 --- 128
  17 --- 129
  18 --- 72
  18 x--> 74
  18 --- 126
  18 --- 127
  19 --- 71
  19 x--> 74
  19 --- 124
  19 --- 125
  20 --- 70
  20 x--> 74
  20 --- 122
  20 --- 123
  21 --- 69
  21 x--> 74
  21 --- 120
  21 --- 121
  22 --- 68
  22 x--> 74
  22 --- 118
  22 --- 119
  23 --- 67
  23 x--> 74
  23 --- 116
  23 --- 117
  24 --- 66
  24 x--> 74
  24 --- 114
  24 --- 115
  25 --- 65
  25 x--> 74
  25 --- 112
  25 --- 113
  26 --- 64
  26 x--> 74
  26 --- 110
  26 --- 111
  27 --- 63
  27 x--> 74
  27 --- 108
  27 --- 109
  28 --- 62
  28 x--> 74
  28 --- 106
  28 --- 107
  29 --- 61
  29 x--> 74
  29 --- 104
  29 --- 105
  30 --- 60
  30 x--> 74
  30 --- 102
  30 --- 103
  31 --- 59
  31 x--> 74
  31 --- 100
  31 --- 101
  32 --- 58
  32 x--> 74
  32 --- 98
  32 --- 99
  33 --- 57
  33 x--> 74
  33 --- 96
  33 --- 97
  34 --- 56
  34 x--> 74
  34 --- 94
  34 --- 95
  35 --- 55
  35 x--> 74
  35 --- 92
  35 --- 93
  36 --- 54
  36 x--> 74
  36 --- 90
  36 --- 91
  37 --- 53
  37 x--> 74
  37 --- 88
  37 --- 89
  38 --- 52
  38 x--> 74
  38 --- 86
  38 --- 87
  39 --- 51
  39 x--> 74
  39 --- 84
  39 --- 85
  40 --- 50
  40 x--> 74
  40 --- 82
  40 --- 83
  41 --- 49
  41 x--> 74
  41 --- 80
  41 --- 81
  42 --- 48
  42 x--> 74
  42 --- 78
  42 --- 79
  43 --- 47
  43 x--> 74
  43 --- 76
  43 --- 77
  46 --- 47
  46 --- 48
  46 --- 49
  46 --- 50
  46 --- 51
  46 --- 52
  46 --- 53
  46 --- 54
  46 --- 55
  46 --- 56
  46 --- 57
  46 --- 58
  46 --- 59
  46 --- 60
  46 --- 61
  46 --- 62
  46 --- 63
  46 --- 64
  46 --- 65
  46 --- 66
  46 --- 67
  46 --- 68
  46 --- 69
  46 --- 70
  46 --- 71
  46 --- 72
  46 --- 73
  46 --- 74
  46 --- 75
  46 --- 76
  46 --- 77
  46 --- 78
  46 --- 79
  46 --- 80
  46 --- 81
  46 --- 82
  46 --- 83
  46 --- 84
  46 --- 85
  46 --- 86
  46 --- 87
  46 --- 88
  46 --- 89
  46 --- 90
  46 --- 91
  46 --- 92
  46 --- 93
  46 --- 94
  46 --- 95
  46 --- 96
  46 --- 97
  46 --- 98
  46 --- 99
  46 --- 100
  46 --- 101
  46 --- 102
  46 --- 103
  46 --- 104
  46 --- 105
  46 --- 106
  46 --- 107
  46 --- 108
  46 --- 109
  46 --- 110
  46 --- 111
  46 --- 112
  46 --- 113
  46 --- 114
  46 --- 115
  46 --- 116
  46 --- 117
  46 --- 118
  46 --- 119
  46 --- 120
  46 --- 121
  46 --- 122
  46 --- 123
  46 --- 124
  46 --- 125
  46 --- 126
  46 --- 127
  46 --- 128
  46 --- 129
  47 --- 76
  47 --- 77
  79 <--x 47
  48 --- 78
  48 --- 79
  81 <--x 48
  49 --- 80
  49 --- 81
  83 <--x 49
  50 --- 82
  50 --- 83
  85 <--x 50
  51 --- 84
  51 --- 85
  87 <--x 51
  52 --- 86
  52 --- 87
  89 <--x 52
  53 --- 88
  53 --- 89
  91 <--x 53
  54 --- 90
  54 --- 91
  93 <--x 54
  55 --- 92
  55 --- 93
  95 <--x 55
  56 --- 94
  56 --- 95
  97 <--x 56
  57 --- 96
  57 --- 97
  99 <--x 57
  58 --- 98
  58 --- 99
  101 <--x 58
  59 --- 100
  59 --- 101
  103 <--x 59
  60 --- 102
  60 --- 103
  105 <--x 60
  61 --- 104
  61 --- 105
  107 <--x 61
  62 --- 106
  62 --- 107
  109 <--x 62
  63 --- 108
  63 --- 109
  111 <--x 63
  64 --- 110
  64 --- 111
  113 <--x 64
  65 --- 112
  65 --- 113
  115 <--x 65
  66 --- 114
  66 --- 115
  117 <--x 66
  67 --- 116
  67 --- 117
  119 <--x 67
  68 --- 118
  68 --- 119
  121 <--x 68
  69 --- 120
  69 --- 121
  123 <--x 69
  70 --- 122
  70 --- 123
  125 <--x 70
  71 --- 124
  71 --- 125
  127 <--x 71
  72 --- 126
  72 --- 127
  129 <--x 72
  77 <--x 73
  73 --- 128
  73 --- 129
  76 <--x 75
  78 <--x 75
  80 <--x 75
  82 <--x 75
  84 <--x 75
  86 <--x 75
  88 <--x 75
  90 <--x 75
  92 <--x 75
  94 <--x 75
  96 <--x 75
  98 <--x 75
  100 <--x 75
  102 <--x 75
  104 <--x 75
  106 <--x 75
  108 <--x 75
  110 <--x 75
  112 <--x 75
  114 <--x 75
  116 <--x 75
  118 <--x 75
  120 <--x 75
  122 <--x 75
  124 <--x 75
  126 <--x 75
  128 <--x 75
  130 --- 131
  130 <--x 175
  131 --- 132
  131 --- 133
  131 --- 134
  131 --- 135
  131 --- 136
  131 --- 137
  131 --- 138
  139 --- 140
  139 --- 143
  139 <--x 176
  140 --- 141
  140 --- 142
  140 ---- 146
  141 --- 147
  141 x--> 148
  141 --- 150
  141 --- 151
  143 --- 144
  143 --- 145
  146 --- 147
  146 --- 148
  146 --- 149
  146 --- 150
  146 --- 151
  147 --- 150
  147 --- 151
  150 <--x 149
  152 --- 153
  153 --- 154
  153 --- 155
  153 --- 156
  153 --- 157
  153 --- 158
  153 --- 159
  153 ---- 160
  154 --- 164
  154 x--> 165
  154 --- 173
  154 --- 174
  155 --- 163
  155 x--> 165
  155 --- 171
  155 --- 172
  156 --- 162
  156 x--> 165
  156 --- 169
  156 --- 170
  157 --- 161
  157 x--> 165
  157 --- 167
  157 --- 168
  160 --- 161
  160 --- 162
  160 --- 163
  160 --- 164
  160 --- 165
  160 --- 166
  160 --- 167
  160 --- 168
  160 --- 169
  160 --- 170
  160 --- 171
  160 --- 172
  160 --- 173
  160 --- 174
  161 --- 167
  161 --- 168
  170 <--x 161
  162 --- 169
  162 --- 170
  172 <--x 162
  163 --- 171
  163 --- 172
  174 <--x 163
  168 <--x 164
  164 --- 173
  164 --- 174
  167 <--x 166
  169 <--x 166
  171 <--x 166
  173 <--x 166