From d8c40ce382db9e817378d9adbb48fa02db267120 Mon Sep 17 00:00:00 2001
From: Donald Sebastian Leung
Date: Tue, 20 Oct 2020 13:05:38 +0800
Subject: [PATCH] Add failing trace and trace analysis
---
README.md | 8 +
rtio/sed/output_network.py | 13 +-
traces/0/NOTES.md | 92 +++++
traces/0/trace.vcd | 786 +++++++++++++++++++++++++++++++++++++
4 files changed, 888 insertions(+), 11 deletions(-)
create mode 100644 traces/0/NOTES.md
create mode 100644 traces/0/trace.vcd
diff --git a/README.md b/README.md
index 9fb7d93..d7c3b6e 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,14 @@
Formally verified implementation of the ARTIQ RTIO core in nMigen
+## File Synopsis
+
+- `LICENSE`: License terms (LGPLv3+) for this project
+- `README.md`: this document
+- `shell.nix`: Nix file for setting up the environment for this project
+- `rtio`: RTIO core in nMigen
+- `traces`: History of traces for debugging
+
## Progress
- Devise a suitable migration strategy for `artiq.gateware.rtio` from Migen to nMigen
diff --git a/rtio/sed/output_network.py b/rtio/sed/output_network.py
index 0f03e97..ff33c20 100644
--- a/rtio/sed/output_network.py
+++ b/rtio/sed/output_network.py
@@ -119,18 +119,9 @@ class OutputNetwork(Elaboratable):
f_past_valid = Signal()
m.d.sync += f_past_valid.eq(1)
- # Skip assertions for the first 10 time steps
- counter = Signal(4)
- m.d.sync += counter.eq(counter + 1)
- with m.If(counter >= 10):
- m.d.sync += counter.eq(counter)
- f_past10_valid = Signal()
- m.d.comb += f_past10_valid.eq(counter >= 10)
-
# Valid nodes always come first in outputs
- with m.If(f_past10_valid):
- for i in range(lane_count - 1):
- m.d.comb += Assert(self.output[i].valid | ~self.output[i + 1].valid) # TODO: Figure out why this is failing
+ for i in range(lane_count - 1):
+ m.d.comb += Assert(self.output[i].valid | ~self.output[i + 1].valid) # TODO: Figure out why this is failing
def elaborate(self, platform):
return self.m
diff --git a/traces/0/NOTES.md b/traces/0/NOTES.md
new file mode 100644
index 0000000..584382e
--- /dev/null
+++ b/traces/0/NOTES.md
@@ -0,0 +1,92 @@
+# Dissecting the failing trace
+
+N.B. The value of a node `n` is given by `Cat(n.payload.channel, ~n.valid)`
+
+## Cycle \#0 (MATCH)
+
+Events: N/A
+
+Values:
+
+- node0 value: `0010`
+ - node0 valid: `1`
+ - node0 channel: `010`
+ - node0 sequence: `00`
+- node1 value: `0000`
+ - node1 valid: `1`
+ - node1 channel: `000`
+ - node1 sequence: `00`
+- node2 value: `0001`
+ - node2 valid: `1`
+ - node2 channel: `001`
+ - node2 sequence: `11`
+- node3 value: `0000`
+ - node3 valid: `1`
+ - node3 channel: `000`
+ - node3 sequence: `01`
+
+To compare:
+
+- node0 and node1
+- node2 and node3
+
+## Cycle \#1 (MATCH)
+
+Events: N/A
+
+Values:
+
+- node0 value: `0000`
+ - node0 valid: `1`
+ - node0 channel: `000`
+ - node0 sequence: `00`
+- node1 value: `0010`
+ - node1 valid: `1`
+ - node1 channel: `010`
+ - node1 sequence: `00`
+- node2 value: `0000`
+ - node2 valid: `1`
+ - node2 channel: `000`
+ - node2 sequence: `01`
+- node3 value: `0001`
+ - node3 valid: `1`
+ - node3 channel: `001`
+ - node3 sequence: `11`
+
+To compare:
+
+- node0 and node2
+- node1 and node3
+
+## Cycle \#2 (NOMATCH - see trace for diff)
+
+Events:
+
+- A replacement occurred when comparing node0 and node2
+
+Values:
+
+- node0 value: `0000`
+ - node0 valid: `1`
+ - node0 channel: `000`
+ - node0 sequence: `01`
+- node1 value: `0001`
+ - node1 valid: `1`
+ - node1 channel: `001`
+ - node1 sequence: `11`
+- node2 value: `1000`
+ - node2 valid: `0`
+ - node2 channel: `000`
+ - node2 sequence: `00`
+- node3 value: `0010`
+ - node3 valid: `1`
+ - node3 channel: `010`
+ - node3 sequence: `00`
+
+To compare:
+
+- node1 and node2
+
+# Cycle \#3
+
+TODO: fill this in after figuring out why my prediction for Cycle \#2 fails to match generated trace
diff --git a/traces/0/trace.vcd b/traces/0/trace.vcd
new file mode 100644
index 0000000..2754add
--- /dev/null
+++ b/traces/0/trace.vcd
@@ -0,0 +1,786 @@
+$version Generated by Yosys-SMTBMC $end
+$timescale 1ns $end
+$var integer 32 t smt_step $end
+$var event 1 ! smt_clock $end
+$scope module top $end
+$var wire 1 n0 clk $end
+$var wire 1 n1 f_past_valid $end
+$var wire 1 n2 nondata_difference $end
+$var wire 1 n3 nondata_difference$127 $end
+$var wire 1 n4 nondata_replace_occured $end
+$var wire 1 n5 nondata_replace_occured$22 $end
+$var wire 1 n6 nondata_replace_occured$40 $end
+$var wire 1 n7 nondata_replace_occured$58 $end
+$var wire 3 n8 payload__channel $end
+$var wire 3 n9 payload__channel$28 $end
+$var wire 3 n10 payload__channel$46 $end
+$var wire 3 n11 payload__channel$64 $end
+$var wire 32 n12 payload__data $end
+$var wire 32 n13 payload__data$25 $end
+$var wire 32 n14 payload__data$43 $end
+$var wire 32 n15 payload__data$61 $end
+$var wire 1 n16 rec__nondata_replace_occured $end
+$var wire 1 n17 rec__nondata_replace_occured$133 $end
+$var wire 1 n18 rec__nondata_replace_occured$133$next $end
+$var wire 1 n19 rec__nondata_replace_occured$165 $end
+$var wire 1 n20 rec__nondata_replace_occured$165$next $end
+$var wire 1 n21 rec__nondata_replace_occured$200 $end
+$var wire 1 n22 rec__nondata_replace_occured$232 $end
+$var wire 1 n23 rec__nondata_replace_occured$232$next $end
+$var wire 1 n24 rec__nondata_replace_occured$267 $end
+$var wire 1 n25 rec__nondata_replace_occured$299 $end
+$var wire 1 n26 rec__nondata_replace_occured$334 $end
+$var wire 1 n27 rec__nondata_replace_occured$366 $end
+$var wire 1 n28 rec__nondata_replace_occured$398 $end
+$var wire 1 n29 rec__nondata_replace_occured$398$next $end
+$var wire 1 n30 rec__nondata_replace_occured$404 $end
+$var wire 1 n31 rec__nondata_replace_occured$404$next $end
+$var wire 1 n32 rec__nondata_replace_occured$98 $end
+$var wire 1 n33 rec__nondata_replace_occured$98$next $end
+$var wire 1 n34 rec__nondata_replace_occured$next $end
+$var wire 3 n35 rec__payload__channel $end
+$var wire 3 n36 rec__payload__channel$100 $end
+$var wire 3 n37 rec__payload__channel$100$next $end
+$var wire 3 n38 rec__payload__channel$135 $end
+$var wire 3 n39 rec__payload__channel$135$next $end
+$var wire 3 n40 rec__payload__channel$167 $end
+$var wire 3 n41 rec__payload__channel$167$next $end
+$var wire 3 n42 rec__payload__channel$202 $end
+$var wire 3 n43 rec__payload__channel$234 $end
+$var wire 3 n44 rec__payload__channel$234$next $end
+$var wire 3 n45 rec__payload__channel$269 $end
+$var wire 3 n46 rec__payload__channel$269$next $end
+$var wire 3 n47 rec__payload__channel$301 $end
+$var wire 3 n48 rec__payload__channel$336 $end
+$var wire 3 n49 rec__payload__channel$368 $end
+$var wire 3 n50 rec__payload__channel$400 $end
+$var wire 3 n51 rec__payload__channel$400$next $end
+$var wire 3 n52 rec__payload__channel$406 $end
+$var wire 3 n53 rec__payload__channel$406$next $end
+$var wire 3 n54 rec__payload__channel$next $end
+$var wire 32 n55 rec__payload__data $end
+$var wire 32 n56 rec__payload__data$134 $end
+$var wire 32 n57 rec__payload__data$134$next $end
+$var wire 32 n58 rec__payload__data$166 $end
+$var wire 32 n59 rec__payload__data$166$next $end
+$var wire 32 n60 rec__payload__data$201 $end
+$var wire 32 n61 rec__payload__data$233 $end
+$var wire 32 n62 rec__payload__data$233$next $end
+$var wire 32 n63 rec__payload__data$268 $end
+$var wire 32 n64 rec__payload__data$268$next $end
+$var wire 32 n65 rec__payload__data$300 $end
+$var wire 32 n66 rec__payload__data$335 $end
+$var wire 32 n67 rec__payload__data$367 $end
+$var wire 32 n68 rec__payload__data$399 $end
+$var wire 32 n69 rec__payload__data$399$next $end
+$var wire 32 n70 rec__payload__data$405 $end
+$var wire 32 n71 rec__payload__data$405$next $end
+$var wire 32 n72 rec__payload__data$99 $end
+$var wire 32 n73 rec__payload__data$99$next $end
+$var wire 32 n74 rec__payload__data$next $end
+$var wire 1 n75 rec__replace_occured $end
+$var wire 1 n76 rec__replace_occured$132 $end
+$var wire 1 n77 rec__replace_occured$132$next $end
+$var wire 1 n78 rec__replace_occured$164 $end
+$var wire 1 n79 rec__replace_occured$164$next $end
+$var wire 1 n80 rec__replace_occured$199 $end
+$var wire 1 n81 rec__replace_occured$231 $end
+$var wire 1 n82 rec__replace_occured$231$next $end
+$var wire 1 n83 rec__replace_occured$266 $end
+$var wire 1 n84 rec__replace_occured$298 $end
+$var wire 1 n85 rec__replace_occured$333 $end
+$var wire 1 n86 rec__replace_occured$365 $end
+$var wire 1 n87 rec__replace_occured$397 $end
+$var wire 1 n88 rec__replace_occured$397$next $end
+$var wire 1 n89 rec__replace_occured$403 $end
+$var wire 1 n90 rec__replace_occured$403$next $end
+$var wire 1 n91 rec__replace_occured$97 $end
+$var wire 1 n92 rec__replace_occured$97$next $end
+$var wire 1 n93 rec__replace_occured$next $end
+$var wire 2 n94 rec__seqn $end
+$var wire 2 n95 rec__seqn$131 $end
+$var wire 2 n96 rec__seqn$131$next $end
+$var wire 2 n97 rec__seqn$163 $end
+$var wire 2 n98 rec__seqn$163$next $end
+$var wire 2 n99 rec__seqn$198 $end
+$var wire 2 n100 rec__seqn$230 $end
+$var wire 2 n101 rec__seqn$230$next $end
+$var wire 2 n102 rec__seqn$265 $end
+$var wire 2 n103 rec__seqn$265$next $end
+$var wire 2 n104 rec__seqn$297 $end
+$var wire 2 n105 rec__seqn$332 $end
+$var wire 2 n106 rec__seqn$364 $end
+$var wire 2 n107 rec__seqn$396 $end
+$var wire 2 n108 rec__seqn$396$next $end
+$var wire 2 n109 rec__seqn$402 $end
+$var wire 2 n110 rec__seqn$402$next $end
+$var wire 2 n111 rec__seqn$96 $end
+$var wire 2 n112 rec__seqn$96$next $end
+$var wire 2 n113 rec__seqn$next $end
+$var wire 1 n114 rec__valid $end
+$var wire 1 n115 rec__valid$130 $end
+$var wire 1 n116 rec__valid$130$next $end
+$var wire 1 n117 rec__valid$162 $end
+$var wire 1 n118 rec__valid$162$next $end
+$var wire 1 n119 rec__valid$197 $end
+$var wire 1 n120 rec__valid$197$next $end
+$var wire 1 n121 rec__valid$229 $end
+$var wire 1 n122 rec__valid$229$next $end
+$var wire 1 n123 rec__valid$264 $end
+$var wire 1 n124 rec__valid$264$next $end
+$var wire 1 n125 rec__valid$296 $end
+$var wire 1 n126 rec__valid$296$next $end
+$var wire 1 n127 rec__valid$331 $end
+$var wire 1 n128 rec__valid$331$next $end
+$var wire 1 n129 rec__valid$363 $end
+$var wire 1 n130 rec__valid$363$next $end
+$var wire 1 n131 rec__valid$395 $end
+$var wire 1 n132 rec__valid$395$next $end
+$var wire 1 n133 rec__valid$401 $end
+$var wire 1 n134 rec__valid$401$next $end
+$var wire 1 n135 rec__valid$95 $end
+$var wire 1 n136 rec__valid$95$next $end
+$var wire 1 n137 rec__valid$next $end
+$var wire 1 n138 replace_occured $end
+$var wire 1 n139 replace_occured$19 $end
+$var wire 1 n140 replace_occured$37 $end
+$var wire 1 n141 replace_occured$55 $end
+$var wire 1 n142 rst $end
+$var wire 2 n143 seqn $end
+$var wire 2 n144 seqn$16 $end
+$var wire 2 n145 seqn$34 $end
+$var wire 2 n146 seqn$52 $end
+$var wire 1 n147 valid $end
+$var wire 1 n148 valid$13 $end
+$var wire 1 n149 valid$31 $end
+$var wire 1 n150 valid$49 $end
+$upscope $end
+$enddefinitions $end
+#0
+1!
+b00000000000000000000000000000000 t
+b1 n0
+b0 n1
+b1 n2
+b1 n3
+b0 n4
+b0 n5
+b0 n6
+b0 n7
+b010 n8
+b000 n9
+b001 n10
+b000 n11
+b00000000000000000000000000000000 n12
+b00000000000000000000000000000000 n13
+b00000000000000000000000000000000 n14
+b00000000000000000000000000000000 n15
+b0 n16
+b0 n17
+b0 n18
+b0 n19
+b0 n20
+b0 n21
+b0 n22
+b0 n23
+b0 n24
+b0 n25
+b0 n26
+b0 n27
+b0 n28
+b0 n29
+b0 n30
+b0 n31
+b0 n32
+b0 n33
+b0 n34
+b000 n35
+b000 n36
+b010 n37
+b000 n38
+b000 n39
+b000 n40
+b001 n41
+b000 n42
+b000 n43
+b000 n44
+b000 n45
+b000 n46
+b000 n47
+b000 n48
+b000 n49
+b000 n50
+b000 n51
+b000 n52
+b000 n53
+b000 n54
+b00000000000000000000000000000000 n55
+b00000000000000000000000000000000 n56
+b00000000000000000000000000000000 n57
+b00000000000000000000000000000000 n58
+b00000000000000000000000000000000 n59
+b00000000000000000000000000000000 n60
+b00000000000000000000000000000000 n61
+b00000000000000000000000000000000 n62
+b00000000000000000000000000000000 n63
+b00000000000000000000000000000000 n64
+b00000000000000000000000000000000 n65
+b00000000000000000000000000000000 n66
+b00000000000000000000000000000000 n67
+b00000000000000000000000000000000 n68
+b00000000000000000000000000000000 n69
+b00000000000000000000000000000000 n70
+b00000000000000000000000000000000 n71
+b00000000000000000000000000000000 n72
+b00000000000000000000000000000000 n73
+b00000000000000000000000000000000 n74
+b0 n75
+b0 n76
+b0 n77
+b0 n78
+b0 n79
+b0 n80
+b0 n81
+b0 n82
+b0 n83
+b0 n84
+b0 n85
+b0 n86
+b0 n87
+b0 n88
+b0 n89
+b0 n90
+b0 n91
+b0 n92
+b0 n93
+b00 n94
+b00 n95
+b01 n96
+b00 n97
+b11 n98
+b00 n99
+b00 n100
+b00 n101
+b00 n102
+b00 n103
+b00 n104
+b00 n105
+b00 n106
+b00 n107
+b00 n108
+b00 n109
+b00 n110
+b00 n111
+b00 n112
+b00 n113
+b0 n114
+b0 n115
+b1 n116
+b0 n117
+b1 n118
+b0 n119
+b0 n120
+b0 n121
+b0 n122
+b0 n123
+b0 n124
+b0 n125
+b0 n126
+b0 n127
+b0 n128
+b0 n129
+b0 n130
+b0 n131
+b0 n132
+b0 n133
+b0 n134
+b0 n135
+b1 n136
+b1 n137
+b0 n138
+b0 n139
+b0 n140
+b0 n141
+b0 n142
+b00 n143
+b00 n144
+b11 n145
+b01 n146
+b1 n147
+b1 n148
+b1 n149
+b1 n150
+#5
+b0 n0
+#10
+1!
+b00000000000000000000000000000001 t
+b1 n0
+b0 n1
+b0 n2
+b0 n3
+b0 n4
+b0 n5
+b0 n6
+b0 n7
+b000 n8
+b000 n9
+b000 n10
+b000 n11
+b00000000000000000000000000000000 n12
+b00000000000000000000000000000000 n13
+b00000000000000000000000000000000 n14
+b00000000000000000000000000000000 n15
+b0 n16
+b0 n17
+b0 n18
+b0 n19
+b0 n20
+b0 n21
+b0 n22
+b0 n23
+b0 n24
+b0 n25
+b0 n26
+b0 n27
+b0 n28
+b0 n29
+b0 n30
+b0 n31
+b0 n32
+b0 n33
+b0 n34
+b000 n35
+b010 n36
+b000 n37
+b000 n38
+b000 n39
+b001 n40
+b000 n41
+b000 n42
+b000 n43
+b000 n44
+b000 n45
+b001 n46
+b000 n47
+b000 n48
+b000 n49
+b000 n50
+b000 n51
+b000 n52
+b000 n53
+b000 n54
+b00000000000000000000000000000000 n55
+b00000000000000000000000000000000 n56
+b00000000000000000000000000000000 n57
+b00000000000000000000000000000000 n58
+b00000000000000000000000000000000 n59
+b00000000000000000000000000000000 n60
+b00000000000000000000000000000000 n61
+b00000000000000000000000000000000 n62
+b00000000000000000000000000000000 n63
+b00000000000000000000000000000000 n64
+b00000000000000000000000000000000 n65
+b00000000000000000000000000000000 n66
+b00000000000000000000000000000000 n67
+b00000000000000000000000000000000 n68
+b00000000000000000000000000000000 n69
+b00000000000000000000000000000000 n70
+b00000000000000000000000000000000 n71
+b00000000000000000000000000000000 n72
+b00000000000000000000000000000000 n73
+b00000000000000000000000000000000 n74
+b0 n75
+b0 n76
+b1 n77
+b0 n78
+b0 n79
+b0 n80
+b0 n81
+b0 n82
+b0 n83
+b0 n84
+b0 n85
+b0 n86
+b0 n87
+b0 n88
+b0 n89
+b0 n90
+b0 n91
+b0 n92
+b1 n93
+b00 n94
+b01 n95
+b00 n96
+b11 n97
+b00 n98
+b00 n99
+b00 n100
+b00 n101
+b00 n102
+b11 n103
+b00 n104
+b00 n105
+b00 n106
+b00 n107
+b00 n108
+b00 n109
+b00 n110
+b00 n111
+b00 n112
+b00 n113
+b1 n114
+b1 n115
+b0 n116
+b1 n117
+b0 n118
+b0 n119
+b1 n120
+b0 n121
+b0 n122
+b0 n123
+b1 n124
+b0 n125
+b1 n126
+b0 n127
+b0 n128
+b0 n129
+b0 n130
+b0 n131
+b0 n132
+b0 n133
+b0 n134
+b1 n135
+b0 n136
+b0 n137
+b0 n138
+b0 n139
+b0 n140
+b0 n141
+b0 n142
+b00 n143
+b00 n144
+b00 n145
+b00 n146
+b0 n147
+b0 n148
+b0 n149
+b0 n150
+#15
+b0 n0
+#20
+1!
+b00000000000000000000000000000010 t
+b1 n0
+b0 n1
+b0 n2
+b0 n3
+b0 n4
+b0 n5
+b0 n6
+b0 n7
+b000 n8
+b000 n9
+b000 n10
+b000 n11
+b00000000000000000000000000000000 n12
+b00000000000000000000000000000000 n13
+b00000000000000000000000000000000 n14
+b00000000000000000000000000000000 n15
+b0 n16
+b0 n17
+b0 n18
+b0 n19
+b0 n20
+b0 n21
+b0 n22
+b0 n23
+b0 n24
+b0 n25
+b0 n26
+b0 n27
+b0 n28
+b0 n29
+b0 n30
+b0 n31
+b0 n32
+b0 n33
+b0 n34
+b000 n35
+b000 n36
+b000 n37
+b000 n38
+b000 n39
+b000 n40
+b000 n41
+b000 n42
+b000 n43
+b000 n44
+b001 n45
+b000 n46
+b000 n47
+b000 n48
+b000 n49
+b000 n50
+b000 n51
+b000 n52
+b000 n53
+b000 n54
+b00000000000000000000000000000000 n55
+b00000000000000000000000000000000 n56
+b00000000000000000000000000000000 n57
+b00000000000000000000000000000000 n58
+b00000000000000000000000000000000 n59
+b00000000000000000000000000000000 n60
+b00000000000000000000000000000000 n61
+b00000000000000000000000000000000 n62
+b00000000000000000000000000000000 n63
+b00000000000000000000000000000000 n64
+b00000000000000000000000000000000 n65
+b00000000000000000000000000000000 n66
+b00000000000000000000000000000000 n67
+b00000000000000000000000000000000 n68
+b00000000000000000000000000000000 n69
+b00000000000000000000000000000000 n70
+b00000000000000000000000000000000 n71
+b00000000000000000000000000000000 n72
+b00000000000000000000000000000000 n73
+b00000000000000000000000000000000 n74
+b1 n75
+b1 n76
+b1 n77
+b0 n78
+b0 n79
+b0 n80
+b0 n81
+b1 n82
+b0 n83
+b0 n84
+b0 n85
+b0 n86
+b0 n87
+b0 n88
+b0 n89
+b0 n90
+b0 n91
+b0 n92
+b1 n93
+b00 n94
+b00 n95
+b00 n96
+b00 n97
+b00 n98
+b00 n99
+b00 n100
+b00 n101
+b11 n102
+b00 n103
+b00 n104
+b00 n105
+b00 n106
+b00 n107
+b00 n108
+b00 n109
+b00 n110
+b00 n111
+b00 n112
+b00 n113
+b0 n114
+b0 n115
+b0 n116
+b0 n117
+b0 n118
+b1 n119
+b0 n120
+b0 n121
+b0 n122
+b1 n123
+b0 n124
+b1 n125
+b0 n126
+b0 n127
+b1 n128
+b0 n129
+b0 n130
+b0 n131
+b1 n132
+b0 n133
+b1 n134
+b0 n135
+b0 n136
+b0 n137
+b0 n138
+b0 n139
+b0 n140
+b0 n141
+b0 n142
+b00 n143
+b00 n144
+b00 n145
+b00 n146
+b0 n147
+b0 n148
+b0 n149
+b0 n150
+#25
+b0 n0
+#30
+1!
+b00000000000000000000000000000011 t
+b1 n0
+b0 n1
+b0 n2
+b0 n3
+b0 n4
+b0 n5
+b0 n6
+b0 n7
+b000 n8
+b000 n9
+b000 n10
+b000 n11
+b00000000000000000000000000000000 n12
+b00000000000000000000000000000000 n13
+b00000000000000000000000000000000 n14
+b00000000000000000000000000000000 n15
+b0 n16
+b0 n17
+b0 n18
+b0 n19
+b0 n20
+b0 n21
+b0 n22
+b0 n23
+b0 n24
+b0 n25
+b0 n26
+b0 n27
+b0 n28
+b0 n29
+b0 n30
+b0 n31
+b0 n32
+b0 n33
+b0 n34
+b000 n35
+b000 n36
+b000 n37
+b000 n38
+b000 n39
+b000 n40
+b000 n41
+b000 n42
+b000 n43
+b000 n44
+b000 n45
+b000 n46
+b000 n47
+b000 n48
+b000 n49
+b000 n50
+b000 n51
+b000 n52
+b000 n53
+b000 n54
+b00000000000000000000000000000000 n55
+b00000000000000000000000000000000 n56
+b00000000000000000000000000000000 n57
+b00000000000000000000000000000000 n58
+b00000000000000000000000000000000 n59
+b00000000000000000000000000000000 n60
+b00000000000000000000000000000000 n61
+b00000000000000000000000000000000 n62
+b00000000000000000000000000000000 n63
+b00000000000000000000000000000000 n64
+b00000000000000000000000000000000 n65
+b00000000000000000000000000000000 n66
+b00000000000000000000000000000000 n67
+b00000000000000000000000000000000 n68
+b00000000000000000000000000000000 n69
+b00000000000000000000000000000000 n70
+b00000000000000000000000000000000 n71
+b00000000000000000000000000000000 n72
+b00000000000000000000000000000000 n73
+b00000000000000000000000000000000 n74
+b1 n75
+b1 n76
+b1 n77
+b0 n78
+b0 n79
+b0 n80
+b0 n81
+b1 n82
+b0 n83
+b0 n84
+b0 n85
+b0 n86
+b0 n87
+b0 n88
+b0 n89
+b0 n90
+b0 n91
+b0 n92
+b1 n93
+b00 n94
+b00 n95
+b00 n96
+b00 n97
+b00 n98
+b00 n99
+b00 n100
+b00 n101
+b00 n102
+b00 n103
+b00 n104
+b00 n105
+b00 n106
+b00 n107
+b00 n108
+b00 n109
+b00 n110
+b00 n111
+b00 n112
+b00 n113
+b0 n114
+b0 n115
+b0 n116
+b0 n117
+b0 n118
+b0 n119
+b0 n120
+b0 n121
+b0 n122
+b0 n123
+b0 n124
+b0 n125
+b0 n126
+b1 n127
+b0 n128
+b0 n129
+b0 n130
+b1 n131
+b0 n132
+b1 n133
+b0 n134
+b0 n135
+b0 n136
+b0 n137
+b0 n138
+b0 n139
+b0 n140
+b0 n141
+b0 n142
+b00 n143
+b00 n144
+b00 n145
+b00 n146
+b0 n147
+b0 n148
+b0 n149
+b0 n150
+#35
+b0 n0
+#40
+1!
+b00000000000000000000000000000100 t
+b1 n0